WEBVTT 0:00:06.480000 --> 0:00:11.240000 The title of this video is Understanding the OSI Model. 0:00:11.240000 --> 0:00:14.900000 This is part of the Cisco Certified Technician in Routing and Switching 0:00:14.900000 --> 0:00:16.500000 Curriculum Series. 0:00:16.500000 --> 0:00:22.360000 My name is Keith Bogart and I'll be your instructor for this session. 0:00:22.360000 --> 0:00:27.800000 Now in section 3.0 of the CCT Routing and Switching Blueprint, it has 0:00:27.800000 --> 0:00:30.840000 the following bullet item. 0:00:30.840000 --> 0:00:35.600000 It says, use the OSI slash TCPIP models and their associated protocols 0:00:35.600000 --> 0:00:39.480000 to explain how data flows through a network. 0:00:39.480000 --> 0:00:43.560000 However, up until this point in time, I haven't said anything about the 0:00:43.560000 --> 0:00:48.100000 OSI model. And I don't want to assume that you know what the OSI model 0:00:48.100000 --> 0:00:51.740000 is. So I'm breaking this up into two different videos. 0:00:51.740000 --> 0:00:55.860000 This video will focus on just an introduction of the OSI model, talking 0:00:55.860000 --> 0:00:58.780000 about the layers, what they're designed to do. 0:00:58.780000 --> 0:01:02.900000 And then the next video after this will actually directly address this 0:01:02.900000 --> 0:01:08.020000 particular bullet point about using the OSI model to track how data goes 0:01:08.020000 --> 0:01:09.180000 through a network. 0:01:09.180000 --> 0:01:12.720000 So if you're already familiar with the OSI model, you can skip this video 0:01:12.720000 --> 0:01:15.160000 and go on to the next one. 0:01:15.160000 --> 0:01:17.920000 So for those of you who aren't familiar with the OSI model, let's start 0:01:17.920000 --> 0:01:19.820000 with that. What is it? 0:01:19.820000 --> 0:01:23.300000 So the OSI model is a what's called a reference model. 0:01:23.300000 --> 0:01:28.540000 It's basically a way of describing how networking works. 0:01:28.540000 --> 0:01:32.800000 Instead of having networking be this big, big, nebulous thing where all 0:01:32.800000 --> 0:01:37.000000 sorts of hundreds of things happen in order to get data from point A to 0:01:37.000000 --> 0:01:42.000000 point B, the reference model says, well, let's break all that down into 0:01:42.000000 --> 0:01:43.560000 a series of steps. 0:01:43.560000 --> 0:01:47.020000 We'll subdivide it into seven different categories. 0:01:47.020000 --> 0:01:50.100000 And data has to go through each category. 0:01:50.100000 --> 0:01:54.380000 Something happens to the data at that particular level before we move 0:01:54.380000 --> 0:01:56.180000 on to the next category. 0:01:56.180000 --> 0:02:00.660000 And by the time you've gone through all these different layers, now the 0:02:00.660000 --> 0:02:05.200000 data is actually ready to leave your laptop per PC and go through the 0:02:05.200000 --> 0:02:08.920000 network. So it's a reference model. 0:02:08.920000 --> 0:02:12.960000 And you can see here there's a variety of benefits of creating a reference 0:02:12.960000 --> 0:02:14.600000 model for networking. 0:02:14.600000 --> 0:02:18.840000 Helps people to understand a little bit better about what networking does. 0:02:18.840000 --> 0:02:23.820000 If I say, oh, this particular protocol, this feature was designed to operate 0:02:23.820000 --> 0:02:27.100000 at layer four of the OSI model. 0:02:27.100000 --> 0:02:31.720000 Well, if you know what the generality of layer four is, what any protocol 0:02:31.720000 --> 0:02:37.280000 at layer four is supposed to accomplish, now you know, sort of in general, 0:02:37.280000 --> 0:02:38.860000 what my protocol does. 0:02:38.860000 --> 0:02:42.000000 You might not know all the bells and whistles and how to configure my 0:02:42.000000 --> 0:02:46.900000 protocol. But if I tell you, this particular protocol or feature sits 0:02:46.900000 --> 0:02:50.740000 squarely at layer four, and if you know what layer four is responsible 0:02:50.740000 --> 0:02:54.920000 for doing at a high level, you know what my protocol is responsible for 0:02:54.920000 --> 0:02:56.820000 doing at a high level. 0:02:56.820000 --> 0:02:59.080000 So let's talk about these layers. 0:02:59.080000 --> 0:03:02.640000 As I mentioned, there are seven layers to the OSI model you can see here. 0:03:02.640000 --> 0:03:08.320000 So starting from the top, layer seven is called the application layer. 0:03:08.320000 --> 0:03:10.460000 Layer six is the presentation. 0:03:10.460000 --> 0:03:12.440000 Five is session. 0:03:12.440000 --> 0:03:14.560000 Layer four is transport. 0:03:14.560000 --> 0:03:16.520000 Layer three is network. 0:03:16.520000 --> 0:03:20.600000 Layer two is data link, and layer one is physical. 0:03:20.600000 --> 0:03:25.060000 Now, as a network administrator, as a field engineer dealing with Cisco 0:03:25.060000 --> 0:03:29.480000 devices, most likely you're going to spend the majority of your time probably 0:03:29.480000 --> 0:03:31.360000 right in this area here. 0:03:31.360000 --> 0:03:35.680000 The physical, the data link, and the network. 0:03:35.680000 --> 0:03:40.980000 So people who are like software designers and software developers, they 0:03:40.980000 --> 0:03:44.800000 really spend the majority of their time here at layer seven, six, and 0:03:44.800000 --> 0:03:48.520000 five. So what do each of these layers do? 0:03:48.520000 --> 0:03:53.940000 Well, let's start with layer seven, which is our application layer. 0:03:53.940000 --> 0:03:56.520000 So what is this? 0:03:56.520000 --> 0:03:59.220000 So imagine from moment your laptop. 0:03:59.220000 --> 0:04:04.080000 Now you might have more than one web browser in your laptop. 0:04:04.080000 --> 0:04:09.400000 You might have Google Chrome as well as Microsoft Edge or Internet Explorer 0:04:09.400000 --> 0:04:12.120000 or Firefox or all of them. 0:04:12.120000 --> 0:04:17.540000 Now, at their core, all these, even though they have different interfaces 0:04:17.540000 --> 0:04:21.600000 and different drop-down menus and different ways they can do things, all 0:04:21.600000 --> 0:04:26.420000 those web browsers essentially are designed for web browsing. 0:04:26.420000 --> 0:04:31.640000 So there's a protocol at the application layer that defines how is web 0:04:31.640000 --> 0:04:33.340000 browsing supposed to happen? 0:04:33.340000 --> 0:04:37.420000 In other words, what's the name of the message that your laptop is supposed 0:04:37.420000 --> 0:04:40.460000 to send to the server to get a web page? 0:04:40.460000 --> 0:04:41.900000 How's that message look? 0:04:41.900000 --> 0:04:46.280000 How big is it? What are some required fields inside that message? 0:04:46.280000 --> 0:04:51.500000 So that is called HTTP, the hypertext transfer protocol. 0:04:51.500000 --> 0:04:54.000000 Now, that's not the only one, but that's the one most commonly known. 0:04:54.000000 --> 0:05:01.420000 So HTTP is a standard way of sending data across the Internet, across 0:05:01.420000 --> 0:05:04.600000 using web browsing connections, HTTP. 0:05:04.600000 --> 0:05:10.800000 So HTTP is technically our layer seven application. 0:05:10.800000 --> 0:05:13.760000 So the application layer is HTTP. 0:05:13.760000 --> 0:05:20.600000 Now, a software developer can develop Google Chrome, Microsoft Edge, Firefox, 0:05:20.600000 --> 0:05:24.480000 and then hook that into HTTP. 0:05:24.480000 --> 0:05:29.180000 So the developers of Google Chrome and Microsoft Edge, those are just 0:05:29.180000 --> 0:05:33.760000 the gooeys. Those are the front ends that you as the human being use. 0:05:33.760000 --> 0:05:39.160000 So you as the human being are not directly touching the application layer. 0:05:39.160000 --> 0:05:42.420000 For example, if you want to do web browsing, you don't have to go into 0:05:42.420000 --> 0:05:50.120000 the code of your CPU and invoke the HTTP process and manually tell HTTP, 0:05:50.120000 --> 0:05:53.860000 I want you to send this message, this big that looks like this. 0:05:53.860000 --> 0:05:58.660000 All that is built into the GUI for you, of Firefox, or Chrome, or Microsoft 0:05:58.660000 --> 0:06:04.680000 Edge. Similarly, if you want to do file transfer, you'll probably download 0:06:04.680000 --> 0:06:20.880000 a GUI and application software like something called TFTP or FTP. 0:06:20.880000 --> 0:06:25.260000 So TFTP and FTP, you don't necessarily directly interact with, but those 0:06:25.260000 --> 0:06:27.760000 applications are connecting to it. 0:06:27.760000 --> 0:06:32.840000 So an application layer feature is something that actually interacts with 0:06:32.840000 --> 0:06:34.700000 the user application. 0:06:34.700000 --> 0:06:40.080000 All right, so let's go down to the next layer, the presentation layer. 0:06:40.080000 --> 0:06:44.440000 If you're doing any kind of encryption, for example, these days a lot 0:06:44.440000 --> 0:06:47.860000 of times when you open up a website to something like your bank, or even 0:06:47.860000 --> 0:06:53.980000 Google, you're not just doing HTTP, you're doing HTTPS, which is secure 0:06:53.980000 --> 0:06:59.100000 HTTP, which means that HTTP session is being encrypted. 0:06:59.100000 --> 0:07:04.080000 Well, whatever the process is within your laptop that is doing that encryption 0:07:04.080000 --> 0:07:09.020000 and the process on the server that's de-encrypting stuff, that process 0:07:09.020000 --> 0:07:12.320000 resides at the presentation layer. 0:07:12.320000 --> 0:07:16.640000 It also ensures that data is presented correctly to the application used. 0:07:16.640000 --> 0:07:18.720000 Another presentation layer process. 0:07:18.720000 --> 0:07:22.640000 Let's say you downloaded something that converts file formats. 0:07:22.640000 --> 0:07:26.320000 For example, you've got some audio files that are in .wave format, and 0:07:26.320000 --> 0:07:29.260000 you need to convert that into MP3. 0:07:29.260000 --> 0:07:34.020000 Well, you're dealing with a GUI, but that software you're dealing with 0:07:34.020000 --> 0:07:36.940000 is a presentation layer software. 0:07:36.940000 --> 0:07:41.080000 It's changing formats of how that data is presented from one format into 0:07:41.080000 --> 0:07:43.620000 another. So that's our presentation layer. 0:07:43.620000 --> 0:07:49.080000 Next down the list, now we're at layer five of the OSI model, is the session 0:07:49.080000 --> 0:07:54.480000 layer. Helps establish a session with reserved port numbers. 0:07:54.480000 --> 0:07:58.880000 Session ID is assigned, tracks connections between hosts and remote computers 0:07:58.880000 --> 0:08:01.400000 and servers. What's this talking about? 0:08:01.400000 --> 0:08:05.080000 Well, imagine for a moment, once again, let's go back to web browsing. 0:08:05.080000 --> 0:08:07.260000 You open up your web browser. 0:08:07.260000 --> 0:08:11.260000 Chances are you have more than one tab at the top of your web browser. 0:08:11.260000 --> 0:08:15.160000 You probably have a tab for Google, a tab for CNN, another tab for your 0:08:15.160000 --> 0:08:16.180000 banking website. 0:08:16.180000 --> 0:08:18.080000 You've got multiple tabs. 0:08:18.080000 --> 0:08:23.860000 You ever wondered how when I click on the banking tab for Bank of America 0:08:23.860000 --> 0:08:28.860000 or Wells Fargo, whatever my bank is, and I click on some button in that 0:08:28.860000 --> 0:08:34.800000 web page, clearly when I click on a button with my mouse, my laptop is 0:08:34.800000 --> 0:08:39.240000 sending some sort of HTTP message to the bank saying, hey, I just clicked 0:08:39.240000 --> 0:08:42.420000 on this button. This part of the web page right here, the Xot of button, 0:08:42.420000 --> 0:08:44.000000 I just clicked on it. 0:08:44.000000 --> 0:08:50.100000 Well, when that website at the bank responds back to you, so now you've 0:08:50.100000 --> 0:08:53.960000 got a bunch of ones and zeros coming back into your laptop, which is the 0:08:53.960000 --> 0:08:56.540000 result of you clicking on that button. 0:08:56.540000 --> 0:08:59.140000 But your laptop has multiple tabs open. 0:08:59.140000 --> 0:09:02.460000 As those ones and zeros, have you ever wondered when those ones and zeros 0:09:02.460000 --> 0:09:06.900000 comes in, how does my web browser know that the result of those ones and 0:09:06.900000 --> 0:09:10.400000 zeros should be displayed on my banking tab? 0:09:10.400000 --> 0:09:14.560000 What's preventing them from being displayed on my Google tab or on my 0:09:14.560000 --> 0:09:17.400000 tab going to CNN.com? 0:09:17.400000 --> 0:09:18.840000 How does it know? 0:09:18.840000 --> 0:09:23.580000 Because as ones and zeros come in, they're probably all HTTP and some 0:09:23.580000 --> 0:09:27.700000 of those HTTP bits belong to my Google tab, some of them belong to my 0:09:27.700000 --> 0:09:32.980000 banking tab. How does it keep track of those individual sessions? 0:09:32.980000 --> 0:09:38.080000 Well, however it does that, that protocol that answers that question resides 0:09:38.080000 --> 0:09:40.000000 at the session layer. 0:09:40.000000 --> 0:09:43.120000 Now, in reality, how does this work? 0:09:43.120000 --> 0:09:46.800000 Well, the session layer relies on something called port numbers. 0:09:46.800000 --> 0:09:48.840000 So here's the way it works. 0:09:48.840000 --> 0:09:53.120000 You bring up a tab in Google Chrome. 0:09:53.120000 --> 0:09:55.380000 I'll just use Google Chrome as an example. 0:09:55.380000 --> 0:10:01.080000 So that means that HTTP process is invoked in the CPU of your laptop. 0:10:01.080000 --> 0:10:09.220000 At that point, HTTP creates its ones and zeros and it says, okay, in these 0:10:09.220000 --> 0:10:12.520000 ones and zeros, I'm going to create an HTTP message saying, hey, Google, 0:10:12.520000 --> 0:10:13.840000 I need your page. 0:10:13.840000 --> 0:10:15.380000 I need your home page. 0:10:15.380000 --> 0:10:17.360000 So those are the ones and zeros it creates. 0:10:17.360000 --> 0:10:21.100000 Now, after that, the presentation layer says, oh, this is going to be 0:10:21.100000 --> 0:10:25.020000 HTTPS. So the presentation layer says, I need to put some ones and zeros 0:10:25.020000 --> 0:10:28.360000 in there that are going to be used for encrypting and decrypting this 0:10:28.360000 --> 0:10:31.460000 message. All right, presentation layer does that. 0:10:31.460000 --> 0:10:34.940000 Now, the session layer gets ahold of these ones and zeros. 0:10:34.940000 --> 0:10:40.200000 The session layer says, okay, well, these ones and zeros are going to 0:10:40.200000 --> 0:10:43.140000 Google's HTTP process. 0:10:43.140000 --> 0:10:47.800000 In other words, there's some server that Google owns and that server might 0:10:47.800000 --> 0:10:49.100000 be doing multiple things. 0:10:49.100000 --> 0:10:53.440000 It might be an email server for Google's own internal employees. 0:10:53.440000 --> 0:10:57.780000 It might be a video server and it's also an HTTP server. 0:10:57.780000 --> 0:11:01.480000 So when ones and zeros come into that server, that server has to know 0:11:01.480000 --> 0:11:05.260000 what process should be looking at those ones and zeros. 0:11:05.260000 --> 0:11:08.600000 Oh, it's my HTTP process that should be doing that. 0:11:08.600000 --> 0:11:11.420000 Well, the session layer takes track of that. 0:11:11.420000 --> 0:11:14.620000 The session layer says, okay, HTTP. 0:11:14.620000 --> 0:11:21.820000 In this case, HTTPS is port number 443. 0:11:21.820000 --> 0:11:23.020000 What does that mean? 0:11:23.020000 --> 0:11:26.660000 That means that when I'm sending those ones and zeros to the Google web 0:11:26.660000 --> 0:11:28.880000 server, remember I've got my data here. 0:11:28.880000 --> 0:11:32.160000 I've got my HTTP data, which is get me this web page. 0:11:32.160000 --> 0:11:36.700000 In front of that, I got my layer six bits that were added on saying, oh, 0:11:36.700000 --> 0:11:37.880000 by the way, this is encrypted. 0:11:37.880000 --> 0:11:39.460000 And here's the stuff you're going to need for that. 0:11:39.460000 --> 0:11:43.400000 And then in front of that are some ones and zeros and saying, by the way, 0:11:43.400000 --> 0:11:46.700000 this is going to your port number 443. 0:11:46.700000 --> 0:11:51.180000 That way that server knows, oh, the stream of ones and zeros, I need to 0:11:51.180000 --> 0:11:55.620000 direct that to my HTTP process and my CPU, not my email process, not my 0:11:55.620000 --> 0:11:58.240000 video process, my HTTP process. 0:11:58.240000 --> 0:12:01.120000 Now, that gets it there. 0:12:01.120000 --> 0:12:05.440000 But when the server responds back with a bunch of ones and zeros, how 0:12:05.440000 --> 0:12:09.480000 do we ensure that gets in the correct tab of my browser? 0:12:09.480000 --> 0:12:13.600000 Well, why was just talking about what's a destination port number? 0:12:13.600000 --> 0:12:16.420000 It's destined for HTTP. 0:12:16.420000 --> 0:12:22.460000 So here's my ones and zeros, 0111, 0111. 0:12:22.460000 --> 0:12:23.840000 So this is all stuff. 0:12:23.840000 --> 0:12:30.980000 This is my HTTP, HTTP data. 0:12:30.980000 --> 0:12:34.600000 So that's my layer seven stuff. 0:12:34.600000 --> 0:12:38.160000 And then we put some ones and zeros in the front of it. 0:12:38.160000 --> 0:12:42.580000 So this is my encryption. 0:12:42.580000 --> 0:12:48.220000 So that's my layer six stuff. 0:12:48.220000 --> 0:12:53.560000 Oops, layer six. 0:12:53.560000 --> 0:12:57.940000 And then here's what the session layer puts on in front of that. 0:12:57.940000 --> 0:13:01.380000 It says, okay, here's some ones and zeros right here. 0:13:01.380000 --> 0:13:06.320000 And that translates to the number 443. 0:13:06.320000 --> 0:13:10.660000 That's my destination port. 0:13:10.660000 --> 0:13:17.100000 So wherever these bits are going to, it knows what's the correct process 0:13:17.100000 --> 0:13:22.860000 in the CPU. And behind that, it puts some other ones and zeros. 0:13:22.860000 --> 0:13:29.520000 And this is what's called my source port. 0:13:29.520000 --> 0:13:33.360000 So this is what all layer five puts in here. 0:13:33.360000 --> 0:13:35.540000 So here's the deal. 0:13:35.540000 --> 0:13:40.780000 Whatever this number is, this source port number, this is a random number 0:13:40.780000 --> 0:13:45.760000 generated from my laptop that's assigned to that particular tab. 0:13:45.760000 --> 0:13:50.420000 If I have Google Chrome open and I have a second tab or a third tab, that 0:13:50.420000 --> 0:13:57.140000 is also sending out bits to 443, but the source port number is different. 0:13:57.140000 --> 0:14:06.560000 So when a server responds back to me, when that server is talking to me, 0:14:06.560000 --> 0:14:11.520000 I'm talking to you at 10111 011. 0:14:11.520000 --> 0:14:16.260000 That's how my laptop knows, oh, that source port for the session layer 0:14:16.260000 --> 0:14:20.740000 is reserved for tab number three or tab number four. 0:14:20.740000 --> 0:14:24.560000 So it's a combination of the source port and the destination port that 0:14:24.560000 --> 0:14:27.340000 helps us multiplex these sessions. 0:14:27.340000 --> 0:14:32.060000 So as far as the destination port is concerned, that's typically a well 0:14:32.060000 --> 0:14:35.980000 -known number. If I'm initiating a session, if I'm starting a session to 0:14:35.980000 --> 0:14:42.100000 a well-known protocol like Telnet or HTTP or HTTPS, I'm going to be sending 0:14:42.100000 --> 0:14:47.440000 my bits to a reserved number that's reserved for that protocol. 0:14:47.440000 --> 0:14:49.580000 And you can see here some of those popular numbers. 0:14:49.580000 --> 0:14:52.920000 HTTP is 80, DNS is 53. 0:14:52.920000 --> 0:14:55.940000 And as far as the source port is concerned, well, that's what's called 0:14:55.940000 --> 0:14:57.740000 an ephemeral port. 0:14:57.740000 --> 0:15:00.740000 No way to predict what that's going to be, but you can see here, it's 0:15:00.740000 --> 0:15:06.460000 going to be somewhere most likely in the range of 1024 to 65, 535. 0:15:06.460000 --> 0:15:09.280000 So that's what the session layer does. 0:15:09.280000 --> 0:15:11.780000 So now we've got a stream of ones and zeros, but we're not done yet. 0:15:11.780000 --> 0:15:13.640000 We're not ready to put those in the wire yet. 0:15:13.640000 --> 0:15:17.940000 Now we need to send those down to layer four, which is the transport layer. 0:15:17.940000 --> 0:15:20.160000 Now this is all happening inside my laptop. 0:15:20.160000 --> 0:15:22.580000 Nothing has left my laptop yet. 0:15:22.580000 --> 0:15:27.140000 This is just a result of opening up that tab for the very first time. 0:15:27.140000 --> 0:15:34.200000 So now the transport layer says, okay, application, do you want me to 0:15:34.200000 --> 0:15:38.840000 have this as a reliable connection or an unreliable connection? 0:15:38.840000 --> 0:15:43.320000 In other words, reliable meaning when I'm sending out your bits, do you 0:15:43.320000 --> 0:15:46.920000 want me to get an acknowledgement that the destination got them? 0:15:46.920000 --> 0:15:48.660000 Or do you not care about that? 0:15:48.660000 --> 0:15:51.880000 That's something the transport layer does. 0:15:51.880000 --> 0:15:54.700000 If you say, yes, I want reliability. 0:15:54.700000 --> 0:15:58.780000 Well, how that reliability is done is that the transport layer, for example, 0:15:58.780000 --> 0:16:03.700000 the transport layer might do sequencing and reassembly, windowing, buffering 0:16:03.700000 --> 0:16:05.560000 and congestion avoidance. 0:16:05.560000 --> 0:16:13.360000 For example, you know, your CPU on your laptop, the HTTP process and layer 0:16:13.360000 --> 0:16:18.420000 six and layer five, one thing they don't know, those layers, what they 0:16:18.420000 --> 0:16:23.240000 don't know is that destination server you're talking to, how busy is it? 0:16:23.240000 --> 0:16:25.380000 Is it like, oh, yeah, sure, go ahead and talk to me. 0:16:25.380000 --> 0:16:26.700000 Nobody else is talking to me right now. 0:16:26.700000 --> 0:16:28.600000 So send me everything you've got. 0:16:28.600000 --> 0:16:32.520000 Or is that destination web server saying, oh, man, I've got like 10,000 0:16:32.520000 --> 0:16:35.020000 simultaneous connections right now. 0:16:35.020000 --> 0:16:38.460000 You can talk to me, but send me very, very small little things because 0:16:38.460000 --> 0:16:39.480000 I'm running out of room. 0:16:39.480000 --> 0:16:40.980000 I'm running out of memory here. 0:16:40.980000 --> 0:16:42.400000 They don't know that. 0:16:42.400000 --> 0:16:45.160000 But the transport layer can discover that. 0:16:45.160000 --> 0:16:48.920000 So the transport layer, there's going to be a protocol that runs here 0:16:48.920000 --> 0:16:52.220000 that adds some bits to the front of that bitstream. 0:16:52.220000 --> 0:16:54.020000 So we're adding even more bits now. 0:16:54.020000 --> 0:16:57.380000 And those bits of the front will be saying stuff like, hey, destination 0:16:57.380000 --> 0:17:00.180000 device, are you alive? 0:17:00.180000 --> 0:17:03.420000 Are you there? Destination device will say, yes, I'm here. 0:17:03.420000 --> 0:17:07.420000 They'll say, okay, how much data can I send you at one time before you're 0:17:07.420000 --> 0:17:11.020000 going to choke? And the destination device will say, send me this much. 0:17:11.020000 --> 0:17:12.420000 And then I'll acknowledge it. 0:17:12.420000 --> 0:17:17.540000 So all that type of stuff and how that occurs happens here at layer four 0:17:17.540000 --> 0:17:19.440000 at the transport layer. 0:17:19.440000 --> 0:17:22.880000 Or the application that you're using might decide it doesn't need that. 0:17:22.880000 --> 0:17:25.900000 For example, video doesn't need that. 0:17:25.900000 --> 0:17:28.940000 When you're doing video over the Internet, a lot of times video uses another 0:17:28.940000 --> 0:17:31.400000 protocol that transport layers says, you know what? 0:17:31.400000 --> 0:17:32.800000 I don't need acknowledgments. 0:17:32.800000 --> 0:17:34.360000 I don't need all that sequencing and stuff. 0:17:34.360000 --> 0:17:35.840000 Just send it on out. 0:17:35.840000 --> 0:17:37.100000 I'll hope it gets there. 0:17:37.100000 --> 0:17:38.620000 I'll trust it gets there. 0:17:38.620000 --> 0:17:41.960000 Well, then another protocol at the transport layer would take care of 0:17:41.960000 --> 0:17:47.000000 doing that. And the transport layer can also provide a means of air detection 0:17:47.000000 --> 0:17:49.120000 and retransmission. 0:17:49.120000 --> 0:17:53.120000 Now at layer four, there's a lot of protocols that run at layer four. 0:17:53.120000 --> 0:17:57.360000 But the two that you're going to hear the most talk about are TCP and 0:17:57.360000 --> 0:18:01.500000 UDP. TCP is that one I was describing first. 0:18:01.500000 --> 0:18:03.020000 It's connection oriented. 0:18:03.020000 --> 0:18:05.520000 It makes sure the destination exists. 0:18:05.520000 --> 0:18:08.660000 It, you know, negotiate some parameters with that destination to see, 0:18:08.660000 --> 0:18:12.120000 you know, how much stuff can I send you before I should expect an acknowledgement? 0:18:12.120000 --> 0:18:13.340000 All sorts of stuff like that. 0:18:13.340000 --> 0:18:17.060000 That's TCP. UDP is connectionless. 0:18:17.060000 --> 0:18:18.540000 That's the opposite. 0:18:18.540000 --> 0:18:20.240000 That's, hey, just send it and forget it. 0:18:20.240000 --> 0:18:22.080000 Let's just hope it gets there. 0:18:22.080000 --> 0:18:24.540000 Now, what do we mean here by these protocol numbers? 0:18:24.540000 --> 0:18:28.300000 What's that? So previously I drew this. 0:18:28.300000 --> 0:18:33.520000 I said, okay, here's a bunch of ones and zeros, which is my HTTP. 0:18:33.520000 --> 0:18:35.760000 All right, that was my layer seven. 0:18:35.760000 --> 0:18:40.020000 So that was layer seven right here. 0:18:40.020000 --> 0:18:47.940000 And then after that, we had some ones and zeros for like encryption. 0:18:47.940000 --> 0:18:52.800000 And that was layer six. 0:18:52.800000 --> 0:18:56.580000 And then I had some ones and zeros here from my source and destination 0:18:56.580000 --> 0:19:01.240000 port numbers. So that's port numbers. 0:19:01.240000 --> 0:19:04.740000 So that was layer five. 0:19:04.740000 --> 0:19:06.340000 All right, seven, six and five. 0:19:06.340000 --> 0:19:07.860000 Now we're at layer number four. 0:19:07.860000 --> 0:19:12.760000 So layer number four is going to put some ones and zeros in here. 0:19:12.760000 --> 0:19:17.380000 Most of the data that's going across networks these days is TCP based. 0:19:17.380000 --> 0:19:21.500000 I think I recently read statistics that say like, you know, 85 or 90% 0:19:21.500000 --> 0:19:24.240000 of all data that goes across networks is TCP. 0:19:24.240000 --> 0:19:26.300000 But there is some UDP. 0:19:26.300000 --> 0:19:28.460000 So I'm just going to assume that this is TCP now here. 0:19:28.460000 --> 0:19:30.580000 So these are bits that TCP puts in. 0:19:30.580000 --> 0:19:34.180000 This is layer four. 0:19:34.180000 --> 0:19:38.060000 Okay. And we're about to get to layer three. 0:19:38.060000 --> 0:19:42.500000 And I have to sort of briefly go into layer three to be able to describe 0:19:42.500000 --> 0:19:44.960000 what this thing is called a protocol number. 0:19:44.960000 --> 0:19:51.620000 So at layer three, see if I can find a different color right here. 0:19:51.620000 --> 0:19:54.760000 We got some bits right here. 0:19:54.760000 --> 0:19:56.580000 So that's layer three. 0:19:56.580000 --> 0:19:57.140000 We're going to get to that. 0:19:57.140000 --> 0:19:58.560000 That's the networking layer. 0:19:58.560000 --> 0:20:05.920000 But there's a field here in layer three that says, what's next? 0:20:05.920000 --> 0:20:10.000000 Is it TCP next? Is it UDP next? 0:20:10.000000 --> 0:20:11.320000 Is it something else? 0:20:11.320000 --> 0:20:15.820000 So this field is called the protocol field. 0:20:15.820000 --> 0:20:22.400000 So the protocol field is actually in the bits that layer three is responsible 0:20:22.400000 --> 0:20:26.860000 for. But it's a reference to what comes next. 0:20:26.860000 --> 0:20:32.840000 So in your layer three bits, if that field has the number six in it, that 0:20:32.840000 --> 0:20:37.220000 means the bits that follow here in black were put in there from TCP. 0:20:37.220000 --> 0:20:41.940000 If that field has the number 17, that means the bits that follow were 0:20:41.940000 --> 0:20:49.700000 put in by UDP. So let's go into those blue bits now, which is layer three. 0:20:49.700000 --> 0:20:53.320000 And layer three is what we call the networking layer. 0:20:53.320000 --> 0:20:56.340000 So what are some of the things that the networking layers are responsible 0:20:56.340000 --> 0:21:02.080000 for? Well, for identifying unique separate networks or broadcast domains, 0:21:02.080000 --> 0:21:03.000000 what does that mean? 0:21:03.000000 --> 0:21:11.340000 Well, for example, so imagine you're in your office right now. 0:21:11.340000 --> 0:21:13.160000 Okay, let's say your office is fairly small. 0:21:13.160000 --> 0:21:14.460000 It's you and 15 other people. 0:21:14.460000 --> 0:21:17.000000 You're all connected to one switch and one router. 0:21:17.000000 --> 0:21:19.300000 So you are in one network. 0:21:19.300000 --> 0:21:25.260000 Now, you need to talk to the office upstairs that's in a different network. 0:21:25.260000 --> 0:21:33.320000 How does your laptop, when it creates data, tag or identify that data 0:21:33.320000 --> 0:21:38.280000 as coming from your network and going to their network? 0:21:38.280000 --> 0:21:41.380000 How does it know it's different? 0:21:41.380000 --> 0:21:44.960000 The answer to that question is answered by the network layer. 0:21:44.960000 --> 0:21:48.640000 So typically, this is the internet protocol IP and there's IP version 0:21:48.640000 --> 0:21:50.100000 four and IP version six. 0:21:50.100000 --> 0:21:54.140000 But IP is not the only protocol the network layer. 0:21:54.140000 --> 0:21:55.640000 There are others. 0:21:55.640000 --> 0:21:59.300000 But it is the most predominant protocol currently in existence today. 0:21:59.300000 --> 0:22:02.180000 And one of the things that IP does it says, okay, I'm going to give a 0:22:02.180000 --> 0:22:07.300000 unique identifier, a number to this network that's different than any 0:22:07.300000 --> 0:22:10.420000 other networks. So I can distinguish between networks. 0:22:10.420000 --> 0:22:13.460000 That's a job of the network layer. 0:22:13.460000 --> 0:22:18.380000 Provides a mechanism for fragmentation and reassembly of data if necessary. 0:22:18.380000 --> 0:22:22.940000 Another job of the network layer says, okay, you know, the cable that 0:22:22.940000 --> 0:22:28.200000 my laptop is connected to right now might support a maximum amount of 0:22:28.200000 --> 0:22:29.920000 bits that are this long. 0:22:29.920000 --> 0:22:33.800000 You know, a lot of bits and then I have to stop transmitting. 0:22:33.800000 --> 0:22:36.660000 But not every cable from here to the destination. 0:22:36.660000 --> 0:22:41.580000 Maybe the destination I'm trying to reach is a device that's in, you know, 0:22:41.580000 --> 0:22:43.540000 3,000 miles away. 0:22:43.540000 --> 0:22:46.200000 So I'm going to have to go through a lot of networking devices, a lot 0:22:46.200000 --> 0:22:47.760000 of routers to get there. 0:22:47.760000 --> 0:22:52.540000 Well, not every hop, not every cable might support bits this long. 0:22:52.540000 --> 0:22:55.800000 There might be at some point where a router gets the series of bits and 0:22:55.800000 --> 0:22:57.300000 says, oh, I have a problem here. 0:22:57.300000 --> 0:23:01.780000 In order for me to keep transmitting this, my outbound interface only 0:23:01.780000 --> 0:23:04.420000 supports this many bits. 0:23:04.420000 --> 0:23:06.960000 So that router will have to do something called fragmentation. 0:23:06.960000 --> 0:23:10.780000 It'll have to take my frame, which is this large and cut up into little 0:23:10.780000 --> 0:23:15.780000 pieces. So that has a whole bunch of questions associated with it. 0:23:15.780000 --> 0:23:17.660000 What's the size of those pieces? 0:23:17.660000 --> 0:23:21.700000 When those pieces get to the ultimate destination, how does it know? 0:23:21.700000 --> 0:23:25.020000 Those are pieces of a larger hole. 0:23:25.020000 --> 0:23:30.040000 How does it know how to reassemble those back into the original piece? 0:23:30.040000 --> 0:23:34.500000 The answers to those questions are also done at the network layer. 0:23:34.500000 --> 0:23:40.160000 Once again, the Internet Protocol IP knows how to do that. 0:23:40.160000 --> 0:23:45.320000 It also provides protocols for providing layer management such as network 0:23:45.320000 --> 0:23:47.220000 domain and ID discovery. 0:23:47.220000 --> 0:23:52.880000 So for example, your laptop, your PC, if it's running the Internet Protocol 0:23:52.880000 --> 0:23:58.780000 at layer three, which it is, it understands the identifier, the network 0:23:58.780000 --> 0:24:01.160000 identifier for the network that you live in. 0:24:01.160000 --> 0:24:05.200000 There's some number that was assigned to the network you live in, and 0:24:05.200000 --> 0:24:07.840000 your laptop has that number on it. 0:24:07.840000 --> 0:24:12.760000 It knows that. It also knows that there's another device in your network 0:24:12.760000 --> 0:24:15.600000 with you called a router. 0:24:15.600000 --> 0:24:17.180000 Why is that relevant? 0:24:17.180000 --> 0:24:20.600000 Because your laptop says, hey, if I ever need to send data to another 0:24:20.600000 --> 0:24:24.840000 network that's not my number, I'm going to send it to the router. 0:24:24.840000 --> 0:24:28.940000 Because the laptop says, I don't know where all those other networks live. 0:24:28.940000 --> 0:24:31.820000 The destination networks I'm trying to reach at any given point in time 0:24:31.820000 --> 0:24:34.820000 might be 10 feet away or 10,000 miles away. 0:24:34.820000 --> 0:24:37.380000 I don't know. But the router will know. 0:24:37.380000 --> 0:24:41.840000 That's his job. So the router is going to be running a protocol or feature 0:24:41.840000 --> 0:24:46.640000 that's responsible for learning of networks that are remote. 0:24:46.640000 --> 0:24:49.780000 Networks that that router is not directly connected to, but he knows how 0:24:49.780000 --> 0:24:55.280000 to get there. So the protocols that do that reside at the network layer. 0:24:55.280000 --> 0:24:58.560000 As well as network path determination. 0:24:58.560000 --> 0:25:01.860000 Maybe that router says, hey, I've learned of this particular network, 0:25:01.860000 --> 0:25:05.020000 but I've got three different ways I can get there. 0:25:05.020000 --> 0:25:06.460000 Which one is the best? 0:25:06.460000 --> 0:25:08.120000 Which one is the fastest? 0:25:08.120000 --> 0:25:10.540000 However, it answers that question. 0:25:10.540000 --> 0:25:12.440000 That resides at the network layer. 0:25:12.440000 --> 0:25:14.900000 Also network status updates. 0:25:14.900000 --> 0:25:18.020000 We want that router to know if a particular network goes down. 0:25:18.020000 --> 0:25:20.800000 Well, if there's a power outage in some building somewhere and all the 0:25:20.800000 --> 0:25:24.000000 networks in that building are no longer available, we want my router to 0:25:24.000000 --> 0:25:25.060000 know about that. 0:25:25.060000 --> 0:25:28.980000 So however, it discovers that information, that resides at the network 0:25:28.980000 --> 0:25:32.660000 layer. Now we keep going down. 0:25:32.660000 --> 0:25:35.100000 So so far, everything's in my laptop. 0:25:35.100000 --> 0:25:38.160000 HTTP was invoked, created a bunch of bits. 0:25:38.160000 --> 0:25:40.700000 It sent that down to the presentation layer, which added a bunch of bits 0:25:40.700000 --> 0:25:44.020000 for encryption. Sent that down to the session layer, which added source 0:25:44.020000 --> 0:25:46.360000 and destination port numbers. 0:25:46.360000 --> 0:25:49.680000 These are just all bits being added to the string of bits here. 0:25:49.680000 --> 0:25:53.200000 Sent it down to the transport layer, which was probably TCP. 0:25:53.200000 --> 0:25:55.380000 TCP definitely works with HTTP. 0:25:55.380000 --> 0:25:58.140000 Those two are in the same family. 0:25:58.140000 --> 0:26:00.520000 TCP added a bunch of bits. 0:26:00.520000 --> 0:26:02.440000 Now sent down to the networking layer. 0:26:02.440000 --> 0:26:05.600000 The networking layer said, oh, let me add some bits indicating the network 0:26:05.600000 --> 0:26:09.460000 I live on and the network this data is going to, as well as a few other 0:26:09.460000 --> 0:26:15.400000 things. Now we've started out with this amount of bits for HTTP has now 0:26:15.400000 --> 0:26:18.620000 grown and grown and grown as all these other layers have been adding and 0:26:18.620000 --> 0:26:20.560000 adding and adding bits to it. 0:26:20.560000 --> 0:26:25.880000 We're not quite ready yet to put that on the wire though, because so far, 0:26:25.880000 --> 0:26:30.300000 none of the protocols we've talked about answer additional questions like, 0:26:30.300000 --> 0:26:35.200000 okay, when it's time to put data on the wire, how do I know if it's my 0:26:35.200000 --> 0:26:40.440000 turn or not? Once I start putting data on the wire, how do I know how 0:26:40.440000 --> 0:26:43.000000 long I can go before I have to stop? 0:26:43.000000 --> 0:26:46.840000 If data is coming in, if I'm receiving data, how do I know if it's for 0:26:46.840000 --> 0:26:49.180000 me or for somebody else? 0:26:49.180000 --> 0:26:51.980000 None of these layers answer that question. 0:26:51.980000 --> 0:26:56.440000 So now we have to drop it down to the next layer, which is layer two. 0:26:56.440000 --> 0:26:59.840000 Layer two does answer that question. 0:26:59.840000 --> 0:27:03.560000 So when we're talking about putting bits on the wire and those bits are 0:27:03.560000 --> 0:27:07.560000 destined for somebody else on the wire, I might say, hold on a second, 0:27:07.560000 --> 0:27:12.300000 Keith, I'm sending bits to Google or to CNN. 0:27:12.300000 --> 0:27:17.300000 That destination is definitely not on the same wire as me. 0:27:17.300000 --> 0:27:18.580000 Well, that's true. 0:27:18.580000 --> 0:27:23.780000 But does your laptop or PC know how to get to Google or CNN? 0:27:23.780000 --> 0:27:27.280000 No, it doesn't. Who does? 0:27:27.280000 --> 0:27:32.280000 Your router, your router, your default gateway is on the same wire as 0:27:32.280000 --> 0:27:36.740000 you. So at layer two, those bits you're putting on the wire, those ones 0:27:36.740000 --> 0:27:41.060000 and zeros, are actually have to go to the router first and then keep going 0:27:41.060000 --> 0:27:46.260000 on. So layer two is responsible saying, hey, I'm on the wire, the router's 0:27:46.260000 --> 0:27:48.700000 on the wire. We're both connected to the same wire. 0:27:48.700000 --> 0:27:50.440000 How do we talk to each other? 0:27:50.440000 --> 0:27:52.520000 How do I know when it's my turn to go? 0:27:52.520000 --> 0:27:55.260000 When I put these bits on the wire, what can I put in there to say, hey, 0:27:55.260000 --> 0:27:58.340000 router, this is for you because there might be somebody else on this wire 0:27:58.340000 --> 0:28:00.120000 too, as well as just the two of us. 0:28:00.120000 --> 0:28:02.700000 There might be other devices. 0:28:02.700000 --> 0:28:07.200000 So layer two is for answering all of those questions. 0:28:07.200000 --> 0:28:11.440000 How do I communicate with another host, which could be a router on the 0:28:11.440000 --> 0:28:13.380000 same cable as me? 0:28:13.380000 --> 0:28:16.840000 And then lastly, we get down to layer one. 0:28:16.840000 --> 0:28:19.300000 Now, before I get down to layer one, there's a couple of additional things 0:28:19.300000 --> 0:28:22.240000 here about the data link layer I want to talk about. 0:28:22.240000 --> 0:28:27.780000 So the IEEE, the Institute of Electrical and Electronics Engineers, they 0:28:27.780000 --> 0:28:29.680000 have a committee called 802. 0:28:29.680000 --> 0:28:32.920000 That's the numerical designation of their committee. 0:28:32.920000 --> 0:28:38.040000 And they decided that they were going to take the data link layer two 0:28:38.040000 --> 0:28:40.820000 and subdivide it into two sub layers. 0:28:40.820000 --> 0:28:47.200000 So you've got the MAC sub layer and the LLC sub layer. 0:28:47.200000 --> 0:28:50.840000 So let's start with the MAC sub layer. 0:28:50.840000 --> 0:28:54.220000 So the MAC sub layer, this is all part of layer two now. 0:28:54.220000 --> 0:28:58.300000 The MAC sub layer is responsible for defining things like addressing structure. 0:28:58.300000 --> 0:29:02.020000 If I'm putting bits on the wire and I want those bits to go to my default 0:29:02.020000 --> 0:29:05.040000 gateway, what does a dress look like? 0:29:05.040000 --> 0:29:06.440000 How many bits is it? 0:29:06.440000 --> 0:29:09.000000 How long is it? How do I know it's for him? 0:29:09.000000 --> 0:29:12.100000 So the MAC sub layer does that. 0:29:12.100000 --> 0:29:13.780000 Protocols for accessing the link. 0:29:13.780000 --> 0:29:15.820000 How do I know when it's my turn to go? 0:29:15.820000 --> 0:29:17.560000 How do I know when to stop? 0:29:17.560000 --> 0:29:20.660000 If somebody's talking at the same time as me and they messed up my data, 0:29:20.660000 --> 0:29:22.420000 how do I know that? 0:29:22.420000 --> 0:29:25.140000 MAC sub layer does all that. 0:29:25.140000 --> 0:29:28.880000 So that's all about how do I access the wire? 0:29:28.880000 --> 0:29:35.560000 Now the LLC, the logical link control sub layer is for multiplexing multiple 0:29:35.560000 --> 0:29:38.400000 protocols. What do I mean by that? 0:29:38.400000 --> 0:29:41.840000 Remember when I was drawing all those bits, I said, hey, here at the networking 0:29:41.840000 --> 0:29:44.200000 layer, there's a bunch of ones and zeros. 0:29:44.200000 --> 0:29:47.600000 And some of those ones and zeros indicate what comes next. 0:29:47.600000 --> 0:29:52.240000 I said, well, if that field, which was called the protocol field, if the 0:29:52.240000 --> 0:29:56.620000 ones and zeros in the networking section say six, that meant TCP came 0:29:56.620000 --> 0:30:02.320000 next. If they said 17, that meant UDP comes next. 0:30:02.320000 --> 0:30:07.060000 Well, just like there's a field in the networking layer that says what 0:30:07.060000 --> 0:30:12.140000 comes next, well, at layer two, there's also a field that indicates what 0:30:12.140000 --> 0:30:15.880000 comes next. Because there's more than one thing that resides at the networking 0:30:15.880000 --> 0:30:19.520000 layer. For example, if I'm receiving a bunch of bits off the wire, if 0:30:19.520000 --> 0:30:25.240000 ones and zeros are coming in, the MAC sub layer will answer the question, 0:30:25.240000 --> 0:30:26.580000 are these bits for me? 0:30:26.580000 --> 0:30:28.000000 Where's the address? 0:30:28.000000 --> 0:30:30.040000 Is that address my address? 0:30:30.040000 --> 0:30:31.140000 He'll answer that question. 0:30:31.140000 --> 0:30:35.240000 But once I know that these bits are for me, then I know, okay, once I 0:30:35.240000 --> 0:30:39.620000 get beyond the layer two stuff, the next set of bits are going to be for 0:30:39.620000 --> 0:30:40.800000 the networking layer. 0:30:40.800000 --> 0:30:44.940000 But maybe in my laptop, maybe I'm running a couple of networking layers 0:30:44.940000 --> 0:30:50.440000 things. Like maybe I'm running IP version four and IP version six. 0:30:50.440000 --> 0:30:56.060000 Well, I have to know which process in my CPU to interrupt to say, hey, 0:30:56.060000 --> 0:31:00.160000 I got some bits for you IP before or I've got some bits for you IPV6. 0:31:00.160000 --> 0:31:04.320000 So in my data link header and the ones and zeros that come in that layer 0:31:04.320000 --> 0:31:09.240000 two put in there, the LLC sub layers responsible for saying, hey, here's 0:31:09.240000 --> 0:31:12.020000 a number that indicates IPV4 is next. 0:31:12.020000 --> 0:31:16.020000 Or here's a number that indicates IPV6 is next. 0:31:16.020000 --> 0:31:18.860000 So an ethernet, that's called the ether type field. 0:31:18.860000 --> 0:31:21.340000 The ether type field contains that number. 0:31:21.340000 --> 0:31:24.560000 And that is the LLC sub layer that's responsible for determining that 0:31:24.560000 --> 0:31:27.040000 number and putting it in there. 0:31:27.040000 --> 0:31:31.780000 And then lastly, we have layer one, which is the physical layer. 0:31:31.780000 --> 0:31:35.680000 Protocols that define your electrical or light signals for the transmission 0:31:35.680000 --> 0:31:39.940000 of data. Now, how actually do we represent a one and a zero? 0:31:39.940000 --> 0:31:42.840000 Is it a plus three volts and a plus one volt? 0:31:42.840000 --> 0:31:47.680000 Is it light of a certain frequency as one and another frequency as a zero? 0:31:47.680000 --> 0:31:50.340000 How exactly do we do that? 0:31:50.340000 --> 0:31:52.240000 Cable specifications. 0:31:52.240000 --> 0:31:54.180000 How thick should the cable be? 0:31:54.180000 --> 0:32:00.800000 Should it be made of glass or copper? 0:32:00.800000 --> 0:32:06.060000 The physical shape and format of NIC connectors, you know, an RJ45 jack. 0:32:06.060000 --> 0:32:08.500000 Physical layer defines what that is. 0:32:08.500000 --> 0:32:12.300000 How big it is, how many pins it has in it, what type of metal those pins 0:32:12.300000 --> 0:32:13.580000 should be made out of. 0:32:13.580000 --> 0:32:16.240000 That's all physical layer stuff. 0:32:16.240000 --> 0:32:18.800000 And power regulations and usage. 0:32:18.800000 --> 0:32:22.480000 You know, how much power does this NIC card need to pump out ones and 0:32:22.480000 --> 0:32:25.680000 zeros? That's all stuff at the physical layer. 0:32:25.680000 --> 0:32:29.080000 So that is the seven layers of the OSI model. 0:32:29.080000 --> 0:32:30.900000 We're almost done here. 0:32:30.900000 --> 0:32:35.080000 Next thing I want to talk about is this term called protocol data units 0:32:35.080000 --> 0:32:41.000000 or PDUs. So this is the final structured data unit that's created by a 0:32:41.000000 --> 0:32:43.180000 particular OSI layer. 0:32:43.180000 --> 0:32:45.760000 What is this talking about? 0:32:45.760000 --> 0:32:51.840000 Let's go to this last slide here in this particular section. 0:32:51.840000 --> 0:32:56.460000 So I mentioned that just to do this one more time. 0:32:56.460000 --> 0:33:04.560000 I said I had a bunch of ones and zeros that were created by layer seven. 0:33:04.560000 --> 0:33:11.000000 Okay. And then so if I just stopped right here and we know I can't, I 0:33:11.000000 --> 0:33:14.040000 can't just put that in the wire, but I could say that is a protocol data 0:33:14.040000 --> 0:33:18.500000 unit. That is the PDU that was created by the application layer. 0:33:18.500000 --> 0:33:21.520000 And then I put some more ones and zeros in here. 0:33:21.520000 --> 0:33:24.540000 And that was layer six. 0:33:24.540000 --> 0:33:32.000000 So now this whole thing is the PDU that layer six has created. 0:33:32.000000 --> 0:33:40.580000 Now I put in some ones and zeros, which are for layer five. 0:33:40.580000 --> 0:33:45.780000 Now this whole thing, the whole thing beginning to end is the protocol 0:33:45.780000 --> 0:33:48.220000 data unit that layer five created. 0:33:48.220000 --> 0:33:52.540000 Up until this point in time, those PDUs don't really have any names. 0:33:52.540000 --> 0:33:56.400000 But now when we get down to layers four, three and two, we actually have 0:33:56.400000 --> 0:33:58.240000 specific names for them. 0:33:58.240000 --> 0:34:05.820000 So here are some ones and zeros that layer four creates. 0:34:05.820000 --> 0:34:09.200000 This whole thing here from beginning to end. 0:34:09.200000 --> 0:34:16.360000 Now, if layer four was TCP, we call that whole thing a segment. 0:34:16.360000 --> 0:34:18.820000 All those bits are called a segment. 0:34:18.820000 --> 0:34:24.340000 If the layer four process was UDP, we call it a datagram. 0:34:24.340000 --> 0:34:26.400000 That whole thing is called a datagram. 0:34:26.400000 --> 0:34:33.920000 Now if I continue on, some ones and zeros right here from layer three. 0:34:33.920000 --> 0:34:38.880000 This whole thing beginning to end is called a packet. 0:34:38.880000 --> 0:34:42.720000 Now you might say, well, if it's an IPv4 is it a packet? 0:34:42.720000 --> 0:34:45.840000 If it's IPv6 is a packet, in this case it doesn't matter. 0:34:45.840000 --> 0:34:49.520000 At layer four, we had different names, depending on what protocol created, 0:34:49.520000 --> 0:34:51.040000 either a segment or a datagram. 0:34:51.040000 --> 0:34:53.700000 At layer three, it's always a packet. 0:34:53.700000 --> 0:34:55.440000 IP version four creates packets. 0:34:55.440000 --> 0:34:57.380000 IP version six creates packets. 0:34:57.380000 --> 0:34:59.160000 Apple talk creates packets. 0:34:59.160000 --> 0:35:03.380000 Any protocol that puts on this layer three header, we say this whole thing 0:35:03.380000 --> 0:35:05.180000 is called a packet. 0:35:05.180000 --> 0:35:08.240000 And then lastly, I'll revert back to red here. 0:35:08.240000 --> 0:35:10.460000 So we got some ones and zeros right here. 0:35:10.460000 --> 0:35:12.660000 This is my layer two stuff. 0:35:12.660000 --> 0:35:19.720000 This whole thing, this PDU, is now called a frame. 0:35:19.720000 --> 0:35:25.180000 A frame. So to recap, layer two creates frames. 0:35:25.180000 --> 0:35:27.540000 Layer three creates packets. 0:35:27.540000 --> 0:35:32.180000 Layer four creates either segments or datagrams. 0:35:32.180000 --> 0:35:37.160000 So that concludes this video on an introduction to the OSI reference model.