WEBVTT 0:00:05.220000 --> 0:00:08.800000 So in this next session, we're going to look at what happens to a packet 0:00:08.800000 --> 0:00:10.440000 when it is routed. 0:00:10.440000 --> 0:00:14.440000 In other words, your laptop has created some data. 0:00:14.440000 --> 0:00:18.800000 It has discovered the routable destination address of where this data 0:00:18.800000 --> 0:00:24.760000 needs to go. It's done this comparison of its own address, the source, 0:00:24.760000 --> 0:00:28.620000 compared against that destination and has discovered this destination 0:00:28.620000 --> 0:00:33.140000 is not on link. It is not in your network. 0:00:33.140000 --> 0:00:35.520000 It needs to go to the default gateway. 0:00:35.520000 --> 0:00:39.220000 So what happens to that data at that point? 0:00:39.220000 --> 0:00:45.860000 So before we look at that, just real briefly here, we use this term rout. 0:00:45.860000 --> 0:00:49.220000 And I want to make sure that for those who are just starting their CCNA, 0:00:49.220000 --> 0:00:52.780000 this might be the first time they've ever heard of this term rout in a 0:00:52.780000 --> 0:00:54.280000 networking concept. 0:00:54.280000 --> 0:00:58.680000 So for just a moment, take networking away for a minute and just think 0:00:58.680000 --> 0:01:03.520000 about when you think about the word rout in your own head, not networking, 0:01:03.520000 --> 0:01:08.380000 what other context does that word, is that word used in language? 0:01:08.380000 --> 0:01:10.520000 For example, you might be thinking of a map. 0:01:10.520000 --> 0:01:14.760000 Okay, I need to rout myself from my work over here to the South Point 0:01:14.760000 --> 0:01:15.940000 Mall movie theater. 0:01:15.940000 --> 0:01:18.040000 Okay, what's the rout I'm going to take? 0:01:18.040000 --> 0:01:22.780000 Or the rout that an airplane takes from point A to point B? 0:01:22.780000 --> 0:01:27.080000 Or the postal service or something else to rout a package? 0:01:27.080000 --> 0:01:30.940000 So this idea of routing, and we're not talking about networking, routing 0:01:30.940000 --> 0:01:38.100000 just means I have something that needs to get from point A to point B. 0:01:38.100000 --> 0:01:41.080000 Point A and point B are not directly connected. 0:01:41.080000 --> 0:01:43.220000 They're not on the same street. 0:01:43.220000 --> 0:01:50.020000 They're not, you have to take transitionary steps, intermediary steps, 0:01:50.020000 --> 0:01:52.880000 to get from point A to point B. 0:01:52.880000 --> 0:01:57.800000 So the idea of routing is identifying what that path is. 0:01:57.800000 --> 0:01:59.380000 What are the steps I need to take? 0:01:59.380000 --> 0:02:01.940000 What are the intermediary points I need to take? 0:02:01.940000 --> 0:02:04.460000 Whether it be in the concept of a map? 0:02:04.460000 --> 0:02:06.880000 You know, what are the intersections I need to look for? 0:02:06.880000 --> 0:02:09.460000 How do I get from one intersection to the next? 0:02:09.460000 --> 0:02:12.640000 Whether it be in the case of a flight route, right? 0:02:12.640000 --> 0:02:15.820000 What are the, what's the way the airplane is going to take? 0:02:15.820000 --> 0:02:19.660000 Where the various control towers is going to talk to as it goes through 0:02:19.660000 --> 0:02:21.920000 the sky from point A to point B? 0:02:21.920000 --> 0:02:24.740000 So routing of data is no different. 0:02:24.740000 --> 0:02:29.140000 Routing of data says, okay, I know what network I'm on. 0:02:29.140000 --> 0:02:33.860000 I know the destination I need to send this to is not on my network. 0:02:33.860000 --> 0:02:39.160000 So now, what are all the intermediary points to get me to that destination? 0:02:39.160000 --> 0:02:40.560000 What is the path? 0:02:40.560000 --> 0:02:41.740000 How do I discover the path? 0:02:41.740000 --> 0:02:46.920000 How do I get my package, my data along the various different paths to 0:02:46.920000 --> 0:02:51.760000 where it ultimately needs to go? 0:02:51.760000 --> 0:02:56.720000 So routing really is the process of forwarding packets between networks. 0:02:56.720000 --> 0:02:59.500000 So I mentioned to you in the previous video when we were looking at the 0:02:59.500000 --> 0:03:03.240000 output of the route print command in DOS. 0:03:03.240000 --> 0:03:06.720000 I said, I don't really like calling this a routing table, even though 0:03:06.720000 --> 0:03:08.280000 it says IPv4 route table. 0:03:08.280000 --> 0:03:11.160000 And I said, I consider that to be kind of a misnomer. 0:03:11.160000 --> 0:03:20.320000 Here's why. In my mind, a routing table, a routing table is a table. 0:03:20.320000 --> 0:03:25.600000 It's a data structure that's used by a device that has the capability 0:03:25.600000 --> 0:03:32.380000 of taking information that originated in one network and forwarding it 0:03:32.380000 --> 0:03:34.820000 to a different network. 0:03:34.820000 --> 0:03:37.500000 Information that did not start on this device. 0:03:37.500000 --> 0:03:39.780000 This is just a forwarding device. 0:03:39.780000 --> 0:03:41.760000 He's not originating the data. 0:03:41.760000 --> 0:03:45.680000 A routing device takes information that somebody else created from one 0:03:45.680000 --> 0:03:50.480000 network. He looks in his routing table and that routing table allows him 0:03:50.480000 --> 0:03:52.680000 to know where to forward it out. 0:03:52.680000 --> 0:03:57.460000 What outbound interface or outbound cable, he needs to put it on. 0:03:57.460000 --> 0:04:01.540000 In your laptop, your laptop by default does not have that ability. 0:04:01.540000 --> 0:04:06.220000 In other words, imagine for a moment that your laptop was connected to 0:04:06.220000 --> 0:04:08.180000 two networks at the center. 0:04:08.180000 --> 0:04:10.620000 You're connected to a Wi-Fi network. 0:04:10.620000 --> 0:04:14.040000 At the same time, you're connected to a wired Ethernet network. 0:04:14.040000 --> 0:04:16.260000 You had a cable going into your laptop. 0:04:16.260000 --> 0:04:19.980000 So you're going to have two routable addresses. 0:04:19.980000 --> 0:04:22.920000 They're most likely going to be in two different broadcast domains. 0:04:22.920000 --> 0:04:26.100000 There's going to be a broadcast domain or a network for your Wi-Fi and 0:04:26.100000 --> 0:04:30.380000 another broadcast domain or network for your wired connection. 0:04:30.380000 --> 0:04:32.080000 So you're going to look like this. 0:04:32.080000 --> 0:04:35.180000 Here's your laptop right here. 0:04:35.180000 --> 0:04:38.360000 On the Wi-Fi, maybe that's the... 0:04:38.360000 --> 0:04:39.940000 What's happening there? 0:04:39.940000 --> 0:04:46.340000 Stop that. So the Wi-Fi might be the 10.7.1 network, which is what I was 0:04:46.340000 --> 0:04:50.420000 in my Wi-Fi here. 0:04:50.420000 --> 0:04:55.120000 Then the wired network is going to be something different. 0:04:55.120000 --> 0:05:05.060000 Let's just say that's the 10.10 network. 0:05:05.060000 --> 0:05:10.740000 And this laptop, this PC, when I do route print in its routing table, 0:05:10.740000 --> 0:05:14.740000 it's going to say I am on link for all 10.7.1. 0:05:14.740000 --> 0:05:17.660000 I am on link for all 10.10.10. 0:05:17.660000 --> 0:05:19.480000 It recognizes that. 0:05:19.480000 --> 0:05:22.740000 But it is not a router. 0:05:22.740000 --> 0:05:27.040000 In other words, if all of a sudden, let's say a packet came in this way. 0:05:27.040000 --> 0:05:29.820000 So this came in from somebody else. 0:05:29.820000 --> 0:05:33.200000 We don't know what the source is. 0:05:33.200000 --> 0:05:39.920000 You know, X. And the destination was 10.7.1.50. 0:05:39.920000 --> 0:05:43.640000 Let's say that was the destination of this packet. 0:05:43.640000 --> 0:05:49.260000 If this was a router, the router would say, okay, the destination is not 0:05:49.260000 --> 0:05:51.700000 for me. He's not trying to talk to me directly. 0:05:51.700000 --> 0:05:55.500000 So I will look at my routing table and figure out if I know what to do 0:05:55.500000 --> 0:05:58.080000 with this. And if this was a router, he'd say, oh yeah, I know exactly 0:05:58.080000 --> 0:05:59.580000 where 10.7.1 is. 0:05:59.580000 --> 0:06:00.980000 I'm connected to it. 0:06:00.980000 --> 0:06:03.340000 But your laptop is not a router. 0:06:03.340000 --> 0:06:07.020000 When this comes in, the laptop will simply say, oh, not for me. 0:06:07.020000 --> 0:06:08.640000 And he'll throw it away. 0:06:08.640000 --> 0:06:12.320000 Even though he's connected via Wi-Fi to the 10.7.1 network, he is not 0:06:12.320000 --> 0:06:13.960000 routing between networks. 0:06:13.960000 --> 0:06:16.120000 That is not his job. 0:06:16.120000 --> 0:06:18.760000 So he does have a route table. 0:06:18.760000 --> 0:06:22.240000 But that's why I say I don't like to call it a routing table because he 0:06:22.240000 --> 0:06:26.200000 doesn't have the capability of routing packets from one network onto the 0:06:26.200000 --> 0:06:28.080000 other network. Now you can turn that on. 0:06:28.080000 --> 0:06:31.820000 Yes, for those of you who are sticklers for detail, there are ways you 0:06:31.820000 --> 0:06:33.420000 can enable that in a laptop. 0:06:33.420000 --> 0:06:37.760000 But by default, a PC or a laptop that's connected to two or more networks 0:06:37.760000 --> 0:06:42.460000 is not going to route data from one network over to another network. 0:06:42.460000 --> 0:06:44.360000 He is the termination point for those. 0:06:44.360000 --> 0:06:48.540000 He says, okay, when I create data, I can send it on network A, B, or C 0:06:48.540000 --> 0:06:50.180000 that I'm directly connected to. 0:06:50.180000 --> 0:06:54.040000 And he data that starts with me because I live on those networks. 0:06:54.040000 --> 0:06:59.160000 But he cannot route data that came in and go out a different network. 0:06:59.160000 --> 0:07:01.000000 He doesn't have that capability. 0:07:01.000000 --> 0:07:08.740000 So what are some of the basic components we need that a router needs to 0:07:08.740000 --> 0:07:10.600000 be able to route data? 0:07:10.600000 --> 0:07:14.500000 Well, number one, it has to be able to receive a routable packet. 0:07:14.500000 --> 0:07:16.360000 It seems kind of self-explanatory. 0:07:16.360000 --> 0:07:18.060000 But think about this for a second. 0:07:18.060000 --> 0:07:21.620000 Imagine that your router, he's connected to an Ethernet segment. 0:07:21.620000 --> 0:07:23.080000 He's connected to a wire. 0:07:23.080000 --> 0:07:25.300000 Here comes an Ethernet frame. 0:07:25.300000 --> 0:07:31.780000 Okay? Now, inside that Ethernet frame, there is a non-routable address. 0:07:31.780000 --> 0:07:34.280000 There's a destination non-routable address. 0:07:34.280000 --> 0:07:35.940000 That's the destination MAC address. 0:07:35.940000 --> 0:07:38.340000 And there's a source non-routable address. 0:07:38.340000 --> 0:07:41.940000 That's the names of the devices that are in that room that can talk to 0:07:41.940000 --> 0:07:43.520000 each other directly. 0:07:43.520000 --> 0:07:47.800000 If those are the only addresses in that whole thing and the entire thing 0:07:47.800000 --> 0:07:51.060000 he looks and he says, okay, all I see here are non-routable addresses. 0:07:51.060000 --> 0:07:54.600000 That's it. That's not a routable packet. 0:07:54.600000 --> 0:07:57.380000 There's no way for that router to say, okay, it should go over here. 0:07:57.380000 --> 0:07:58.420000 Or it should go over here. 0:07:58.420000 --> 0:08:01.740000 If there's no routable address in there, he can't route it. 0:08:01.740000 --> 0:08:07.260000 Now, when he does see a routable address in there, he has to be able to 0:08:07.260000 --> 0:08:10.820000 extract from that what network it belongs to. 0:08:10.820000 --> 0:08:14.040000 And he's going to use a subnet mass to be able to do that. 0:08:14.040000 --> 0:08:17.200000 So the router's going to say, okay, here came in some data. 0:08:17.200000 --> 0:08:19.760000 It had some non-routable addresses. 0:08:19.760000 --> 0:08:21.860000 The non-routable address that it was for me. 0:08:21.860000 --> 0:08:24.540000 Someone in my room was trying to talk to me. 0:08:24.540000 --> 0:08:28.420000 Okay, great. So he throws away the Ethernet header and now he looks at 0:08:28.420000 --> 0:08:30.360000 the IP header that's behind it. 0:08:30.360000 --> 0:08:34.260000 He says, oh, well, the IP header has got some routable addresses. 0:08:34.260000 --> 0:08:38.580000 And the routable destination address is not me. 0:08:38.580000 --> 0:08:42.720000 Now, at this point, if it was a laptop, he'd say, done, throw it away. 0:08:42.720000 --> 0:08:45.940000 But because he's a router, he says, okay, this isn't for me. 0:08:45.940000 --> 0:08:47.860000 But maybe I can help this guy out. 0:08:47.860000 --> 0:08:51.360000 Maybe the guy who sent this, I can help him by forwarding it. 0:08:51.360000 --> 0:08:53.800000 I've got lots of other interfaces here. 0:08:53.800000 --> 0:08:58.760000 So now he says, okay, let me take a look at my routing table. 0:08:58.760000 --> 0:09:02.200000 Look for something that looks like this destination network. 0:09:02.200000 --> 0:09:05.600000 If he has a destination network, great. 0:09:05.600000 --> 0:09:10.040000 But he says, oh, this packet's going to, let's just draw this here. 0:09:10.040000 --> 0:09:16.320000 The packet said the destination is 8888. 0:09:16.320000 --> 0:09:20.660000 And in my routing table, let's put RT right here, I have an entry for 0:09:20.660000 --> 0:09:31.980000 8800 slash 16. If that's all he had, if his table said, oh, yeah, I know 0:09:31.980000 --> 0:09:35.100000 where 888 is, that wouldn't be enough. 0:09:35.100000 --> 0:09:36.740000 He'd say, great. 0:09:36.740000 --> 0:09:40.840000 But I've got like three interfaces here, which one of those interfaces 0:09:40.840000 --> 0:09:44.620000 leads to 8.8. Who told me about it? 0:09:44.620000 --> 0:09:46.460000 That's why we need a next hop. 0:09:46.460000 --> 0:09:49.280000 I need to know who told me about 8.8. 0:09:49.280000 --> 0:09:52.040000 Whoever told me about it, that's why I'm going to forward this information 0:09:52.040000 --> 0:10:01.640000 to. Okay? And then if I tell him, oh, you learned about 8888 or 888 via, 0:10:01.640000 --> 0:10:05.880000 let's say, 2.2.2.2. 0:10:05.880000 --> 0:10:13.300000 Well, let's assume that this address belongs to somebody in one of my 0:10:13.300000 --> 0:10:16.920000 other rooms, one of my other networks that I'm connected to that I can 0:10:16.920000 --> 0:10:18.680000 speak to directly. 0:10:18.680000 --> 0:10:20.080000 But remember, I'm a router. 0:10:20.080000 --> 0:10:23.620000 I might have two or three or 20 interfaces. 0:10:23.620000 --> 0:10:26.400000 Which interface belongs to 222? 0:10:26.400000 --> 0:10:28.580000 How do I talk to the guy with the name of 222? 0:10:28.580000 --> 0:10:33.820000 If I get in some data and it's going to 8.8.something, and there's a guy 0:10:33.820000 --> 0:10:37.860000 out there whose name is 222.2 .2 who said, I can get to 8.8. 0:10:37.860000 --> 0:10:40.000000 I'd say, thanks for talking to me. 0:10:40.000000 --> 0:10:41.600000 Where do you live? 0:10:41.600000 --> 0:10:44.700000 Which of my networks, which of my cables do you live on? 0:10:44.700000 --> 0:10:47.760000 That's why I need an egress interface. 0:10:47.760000 --> 0:10:49.880000 So I have to match all this stuff up. 0:10:49.880000 --> 0:10:54.280000 Without all of these components, there's no way for me to route a packet. 0:10:54.280000 --> 0:10:59.660000 There's no way for a router to route a packet. 0:10:59.660000 --> 0:11:03.220000 So let's just see the process that's involved right here. 0:11:03.220000 --> 0:11:09.000000 So the PC there on the left says, I need to create some data going to 0:11:09.000000 --> 0:11:14.200000 1.4.1.1. He does a quick comparison. 0:11:14.200000 --> 0:11:17.580000 He says very quickly, he says, okay, 1.4. 0:11:17.580000 --> 0:11:20.980000 That is clearly not in my network, because I am 1.1. 0:11:20.980000 --> 0:11:23.760000 Now, how would he know that without a subnet mask? 0:11:23.760000 --> 0:11:26.520000 He wouldn't. So clearly, he would need to have a subnet mask on here. 0:11:26.520000 --> 0:11:30.020000 Let's just assume his subnet mask looks something like this. 0:11:30.020000 --> 0:11:34.240000 Without that, we wouldn't even get passed step number one. 0:11:34.240000 --> 0:11:37.800000 He says, okay, that address is not on my network. 0:11:37.800000 --> 0:11:42.340000 So in his route table, he'd say, send that to the gateway. 0:11:42.340000 --> 0:11:46.960000 And his gateway is 1.1.1.254. 0:11:46.960000 --> 0:11:50.980000 He's most likely to learn that via the dynamic host configuration protocol 0:11:50.980000 --> 0:11:58.100000 via DHCP. He says, okay, well, my gateway, because he is a gateway, has 0:11:58.100000 --> 0:12:00.200000 to be in the same network as me. 0:12:00.200000 --> 0:12:05.240000 So he's going to say, okay, I can talk to him directly via his non-routable 0:12:05.240000 --> 0:12:11.340000 address. So if this is the first time this guy has ever needed to send 0:12:11.340000 --> 0:12:14.480000 anything to his gateway, he's going to say, okay, I know what my MAC address 0:12:14.480000 --> 0:12:18.120000 is, AA, that's my non -routable address. 0:12:18.120000 --> 0:12:21.240000 What is the non-routable address of the default gateway? 0:12:21.240000 --> 0:12:24.040000 He's going to say, I don't know, so I'm going to shout. 0:12:24.040000 --> 0:12:27.840000 He's going to shout into the room, hey, 1.1.254. 0:12:27.840000 --> 0:12:28.900000 Are you out there? 0:12:28.900000 --> 0:12:33.240000 If so, I need to know what your non-routable address is. 0:12:33.240000 --> 0:12:35.720000 This is what we call an ARP request. 0:12:35.720000 --> 0:12:37.460000 Address resolution. 0:12:37.460000 --> 0:12:42.820000 ARP request. This is when you broadcast into your network into your room, 0:12:42.820000 --> 0:12:45.780000 hey, does somebody exist that can help me out? 0:12:45.780000 --> 0:12:52.120000 And then he's going to respond back with an ARP response or an ARP reply, 0:12:52.120000 --> 0:12:54.360000 depending on what document you're reading. 0:12:54.360000 --> 0:12:58.960000 And he'll say, yes, my name is 111254, and you can talk to me directly. 0:12:58.960000 --> 0:13:04.340000 My other name that I use for all my good friends in the room with me is 0:13:04.340000 --> 0:13:07.560000 BB. So talk to me is BB. 0:13:07.560000 --> 0:13:15.300000 So now the laptop has learned about the default gateway's layer three 0:13:15.300000 --> 0:13:21.300000 and he learned about his layer two non-routable address via ARP. 0:13:21.300000 --> 0:13:26.040000 So now he can take this packet that he's been holding onto, and he can 0:13:26.040000 --> 0:13:28.260000 put it inside of an Ethernet frame. 0:13:28.260000 --> 0:13:33.860000 And the Ethernet frame, he can say, okay, my name is AA, and the person 0:13:33.860000 --> 0:13:37.720000 in my room and my network what I'm talking to is BB. 0:13:37.720000 --> 0:13:41.420000 That's who this data needs to go to, my default gateway. 0:13:41.420000 --> 0:13:43.880000 Now the default gateway gets that. 0:13:43.880000 --> 0:13:47.680000 Initially at layer two, he says, oh, okay, this is for me. 0:13:47.680000 --> 0:13:49.280000 Someone's trying to talk to me. 0:13:49.280000 --> 0:13:53.720000 But then when he strips off the layer two header, he realizes, oh, they're 0:13:53.720000 --> 0:13:55.300000 not really trying to talk to me after all. 0:13:55.300000 --> 0:13:59.200000 They're trying to talk to somebody whose name is 1411. 0:13:59.200000 --> 0:14:01.580000 So now he goes into his routing table. 0:14:01.580000 --> 0:14:06.760000 He says, okay, do I have any entries that match this in any way? 0:14:06.760000 --> 0:14:10.520000 Do I have any entries that match any portion of this? 0:14:10.520000 --> 0:14:13.780000 And he'll say, I'm not connected to the one for network, but in his routing 0:14:13.780000 --> 0:14:19.260000 table, which we don't see here, he will have learned via router E about 0:14:19.260000 --> 0:14:20.560000 the one for network. 0:14:20.560000 --> 0:14:25.740000 The assumption is previously at some point in time, the way it started 0:14:25.740000 --> 0:14:29.720000 was router F, let's look at router F here. 0:14:29.720000 --> 0:14:32.900000 Router F was directly connected to the one for network. 0:14:32.900000 --> 0:14:37.460000 He sent a message to router E saying, hey, if you need to get to the one 0:14:37.460000 --> 0:14:40.080000 for network, you can go through me. 0:14:40.080000 --> 0:14:43.940000 Then router E sent that same information to router D. 0:14:43.940000 --> 0:14:47.720000 Router E said, hey, if you need to get to the one for network, you can 0:14:47.720000 --> 0:14:54.660000 go through me. So that's why we have this entry right here in the routing 0:14:54.660000 --> 0:14:59.140000 table. Router D, if he did not have it, drop the packet. 0:14:59.140000 --> 0:15:02.260000 If a router receives an IP packet and he looks at the destination, he 0:15:02.260000 --> 0:15:06.020000 says, nothing in my routing table even matches this at all. 0:15:06.020000 --> 0:15:07.960000 He kills it. He drops it. 0:15:07.960000 --> 0:15:12.320000 It's dead. In this case, he knows how to get there. 0:15:12.320000 --> 0:15:18.420000 He says, okay. But once again, if I'm going to send this to one for X, 0:15:18.420000 --> 0:15:22.760000 if I'm going to send this to one, two, one, two, fifty three, he's going 0:15:22.760000 --> 0:15:24.700000 to do a lookup. He's going to do another lookup. 0:15:24.700000 --> 0:15:26.760000 Okay, let me go back in my routing table. 0:15:26.760000 --> 0:15:28.880000 How do I get to one, two, one, two, fifty three? 0:15:28.880000 --> 0:15:31.680000 Well, his routing table will say, hey, he is on link. 0:15:31.680000 --> 0:15:34.240000 He's on the same link as you are. 0:15:34.240000 --> 0:15:37.120000 He's in your room, in your network. 0:15:37.120000 --> 0:15:39.500000 So now he'll send out an ARP request. 0:15:39.500000 --> 0:15:43.180000 Only once he doesn't have to keep doing this every time. 0:15:43.180000 --> 0:15:45.980000 He'll send out an ARP request saying, hey, one, two, one, two, fifty three. 0:15:45.980000 --> 0:15:48.780000 What's your non-routable address? 0:15:48.780000 --> 0:15:52.520000 Router E will respond back with his own ARP reply. 0:15:52.520000 --> 0:15:54.540000 Saying my MAC address is DD. 0:15:54.540000 --> 0:15:56.680000 That's my non-routable address. 0:15:56.680000 --> 0:16:01.080000 So if you ever need to talk to me, talk to me on DD. 0:16:01.080000 --> 0:16:04.460000 So now Router D can take this packet, which is going to one, four, one, 0:16:04.460000 --> 0:16:07.520000 one. And because he knows he needs to send it to this guy, he's going 0:16:07.520000 --> 0:16:10.240000 to create a new layer two header. 0:16:10.240000 --> 0:16:15.220000 So notice here that something has changed as this data went from the laptop 0:16:15.220000 --> 0:16:19.140000 through the router out the other cable. 0:16:19.140000 --> 0:16:23.900000 At minimum, we can see right now that at layer two, everything about layer 0:16:23.900000 --> 0:16:25.140000 two had changed. 0:16:25.140000 --> 0:16:28.580000 The original layer two header, the original Ethernet header, was only 0:16:28.580000 --> 0:16:30.940000 used. It's only purpose. 0:16:30.940000 --> 0:16:35.060000 Was so the laptop could talk directly to the default gateway. 0:16:35.060000 --> 0:16:38.640000 That was it. Then he stripped off that layer two header because it wasn't 0:16:38.640000 --> 0:16:43.000000 needed anymore. Then once he decided, okay, this data needs to go to Router 0:16:43.000000 --> 0:16:47.860000 E, he said, I need to create a brand new Ethernet frame, a brand new layer 0:16:47.860000 --> 0:16:50.520000 two header. In this case, the MAC address has changed. 0:16:50.520000 --> 0:16:59.300000 Now the source non-routable address was himself CC destination was DD. 0:16:59.300000 --> 0:17:02.740000 There are other portions of this packet that are rewritten as well. 0:17:02.740000 --> 0:17:05.820000 They'll look at, we'll talk about in just a moment. 0:17:05.820000 --> 0:17:10.260000 And so this layer two rewrite is going to happen at every single hop. 0:17:10.260000 --> 0:17:12.040000 So we're going to repeat ourselves. 0:17:12.040000 --> 0:17:15.560000 So now Router E is going to say, okay, here's something coming into DD. 0:17:15.560000 --> 0:17:17.680000 Oh, that's me. Okay. 0:17:17.680000 --> 0:17:19.180000 Someone wants to talk to me. 0:17:19.180000 --> 0:17:22.000000 Then he's going to strip off that layer two header. 0:17:22.000000 --> 0:17:25.680000 He's going to get rid of it, revealing the layer three, the IP packet 0:17:25.680000 --> 0:17:28.880000 and signs are going to say, oh, I don't want to talk to me at all. 0:17:28.880000 --> 0:17:30.400000 They're just using me. 0:17:30.400000 --> 0:17:33.220000 They're using me to get to 1411. 0:17:33.220000 --> 0:17:35.340000 So he's going to go into his routing table. 0:17:35.340000 --> 0:17:41.100000 He's going to say, oh, okay, well, my neighbor, 131254, told me he can 0:17:41.100000 --> 0:17:46.840000 get there. So at this point, Router E is going to need to know what is 0:17:46.840000 --> 0:17:52.300000 the layer two non-routable address I use to get to Router F. 0:17:52.300000 --> 0:17:54.040000 Now, notice this is not Ethernet link. 0:17:54.040000 --> 0:17:55.760000 This is a serial link. 0:17:55.760000 --> 0:17:57.160000 So we're not going to use ARP here. 0:17:57.160000 --> 0:18:00.300000 We're going to use whatever protocols running on here, whether it be PPP 0:18:00.300000 --> 0:18:02.360000 or HDLC or whatever. 0:18:02.360000 --> 0:18:07.000000 But somehow, Router E is going to have to determine the layer two address 0:18:07.000000 --> 0:18:08.840000 of Router F is ZZ. 0:18:08.840000 --> 0:18:15.100000 So then he can take this packet, put a new layer two header on it, and 0:18:15.100000 --> 0:18:21.340000 send it out the wire with a source layer two address of XX destination 0:18:21.340000 --> 0:18:26.880000 of ZZ. And then lastly, when Router F gets it, he's going to say, oh, 0:18:26.880000 --> 0:18:27.900000 someone's trying to talk to me. 0:18:27.900000 --> 0:18:29.700000 Oh, no, they're not. 0:18:29.700000 --> 0:18:34.160000 They're just trying to use me to get to 1411. 0:18:34.160000 --> 0:18:39.080000 And his case, his routing table will say, on link, I live there. 0:18:39.080000 --> 0:18:40.940000 I'm part of that network. 0:18:40.940000 --> 0:18:46.620000 And so now Router F will say, okay, let me go ahead and send out my own 0:18:46.620000 --> 0:18:51.400000 ARP request where he shouts out into his room. 0:18:51.400000 --> 0:18:54.340000 Hey, 1411, do you live out there? 0:18:54.340000 --> 0:18:56.280000 Need to talk to you. 0:18:56.280000 --> 0:19:04.780000 And then 1411 responds back with his ARP reply saying, hey, buddy, glad 0:19:04.780000 --> 0:19:08.260000 to meet you. Yeah, I'm 1411, but since we're in the same network, since 0:19:08.260000 --> 0:19:11.940000 we're in the same room, you can call me AF. 0:19:11.940000 --> 0:19:16.420000 And so now Router F will say, okay, I've got some data here that's going 0:19:16.420000 --> 0:19:22.040000 to UAF came through me. 0:19:22.040000 --> 0:19:27.100000 So we can clearly see here that in the process of routing a packet, the 0:19:27.100000 --> 0:19:33.200000 layer two information was used to get the data hop by hop by hop to get 0:19:33.200000 --> 0:19:35.300000 it to the next person in the next room. 0:19:35.300000 --> 0:19:38.160000 And then the room after that, and then the room after that, our layer 0:19:38.160000 --> 0:19:41.260000 two non-routable addresses were used for that and our layer two header 0:19:41.260000 --> 0:19:45.060000 was changed hop by hop by hop. 0:19:45.060000 --> 0:19:48.540000 But that's not the only thing that's changed. 0:19:48.540000 --> 0:19:53.080000 For example, if you're familiar with the IP packet header, and hopefully 0:19:53.080000 --> 0:19:58.420000 you are, you know that when this packet first went out, in the layer three 0:19:58.420000 --> 0:20:04.780000 header, there was a field in there called the time to live field, TTL. 0:20:04.780000 --> 0:20:08.320000 It started out with some non-zero number. 0:20:08.320000 --> 0:20:10.740000 Now you might be wondering, well, Keith, what number did it start with? 0:20:10.740000 --> 0:20:12.180000 I have no way of telling you that. 0:20:12.180000 --> 0:20:14.940000 It's all depending on the application. 0:20:14.940000 --> 0:20:20.020000 You know, it could be Microsoft Outlook might start with a TTL of 50, 0:20:20.020000 --> 0:20:24.280000 whereas Google Chrome might start with a TTL of 100. 0:20:24.280000 --> 0:20:27.460000 Whoever designs the individual applications, that's one of the things 0:20:27.460000 --> 0:20:30.920000 they have to figure out is what is the initial TTL value that I'm going 0:20:30.920000 --> 0:20:35.020000 to use. Usually the minimum that you'll see is 64. 0:20:35.020000 --> 0:20:38.260000 Very rarely is there anything less than that. 0:20:38.260000 --> 0:20:43.420000 Now we also know that when a packet is routed by a router, in addition 0:20:43.420000 --> 0:20:49.060000 to swapping one layer two header for another, he takes that layer three 0:20:49.060000 --> 0:20:52.100000 TTL and he decrements it by one. 0:20:52.100000 --> 0:20:56.240000 So as it goes through here, the layer three TTL will now be 63. 0:20:56.240000 --> 0:21:00.240000 As it goes through here, it'll be 62. 0:21:00.240000 --> 0:21:06.680000 And by the time it finally pops out of here, the TTL will be 61. 0:21:06.680000 --> 0:21:11.660000 So in addition to the layer two header being swapped out, the layer three 0:21:11.660000 --> 0:21:14.200000 header has its TTL value modified. 0:21:14.200000 --> 0:21:19.400000 Now, because the TTL value is modified, if we actually took a look at 0:21:19.400000 --> 0:21:22.640000 an IP packet header, I'm not going to write all the fields in here, but 0:21:22.640000 --> 0:21:26.620000 let's just say these are the various fields of the header right here. 0:21:26.620000 --> 0:21:30.960000 And let's just say that TTL was in here. 0:21:30.960000 --> 0:21:33.440000 Here's my TTL field. 0:21:33.440000 --> 0:21:39.740000 Well, in the IP packet header, there is a field called a CRC. 0:21:39.740000 --> 0:21:41.920000 Cyclic redundancy check. 0:21:41.920000 --> 0:21:44.520000 It's basically an error checking method. 0:21:44.520000 --> 0:21:50.680000 When you create an IP packet header, I should say when a device does, 0:21:50.680000 --> 0:21:56.040000 it takes all of the bits of the IP header, runs it through a formula, 0:21:56.040000 --> 0:21:58.400000 and comes up with the CRC value. 0:21:58.400000 --> 0:22:01.960000 And so the idea is if I give this packet to you and you run those exact 0:22:01.960000 --> 0:22:06.480000 same bits through the exact same formula, your CRC should be the same 0:22:06.480000 --> 0:22:11.900000 as mine. That way you know that this packet was not modified, it was not 0:22:11.900000 --> 0:22:13.800000 corrupted in any way. 0:22:13.800000 --> 0:22:18.180000 Well, if I've changed the TTL, then the original CRC here, whatever this 0:22:18.180000 --> 0:22:25.280000 CRC was, let's just say CRC was 1, 0, a, b, c, d, whatever it was, when 0:22:25.280000 --> 0:22:30.380000 it pops out of here with a TTL of 63, I can't use the CRC anymore. 0:22:30.380000 --> 0:22:34.840000 This CRC has to be changed because this was valid when the TTL was 64, 0:22:34.840000 --> 0:22:37.220000 it's no longer valid when it's 63. 0:22:37.220000 --> 0:22:42.400000 So the CRC also has to be modified to some new value. 0:22:42.400000 --> 0:22:49.120000 So at minimum, those are the things that are going to be changed as something 0:22:49.120000 --> 0:22:50.440000 is routed through a router. 0:22:50.440000 --> 0:22:57.520000 So as a recap, the inbound layer two header will be stripped off and removed, 0:22:57.520000 --> 0:23:01.620000 and then once it's put on the outbound wire, a new layer two header will 0:23:01.620000 --> 0:23:04.940000 be added to it, and that'll happen hop by hop by hop. 0:23:04.940000 --> 0:23:11.640000 At layer three, in our IP version four or our IP version six header, our 0:23:11.640000 --> 0:23:16.320000 time to live value, in the case of IP version six, we call it hop count, 0:23:16.320000 --> 0:23:20.580000 it's still the same thing, will be decremented, and the CRC will have 0:23:20.580000 --> 0:23:21.840000 to be recomputed. 0:23:21.840000 --> 0:23:27.200000 So that concludes this particular section on what happens to a packet 0:23:27.200000 --> 0:23:28.700000 when it's routed. 0:23:28.700000 --> 0:23:31.780000 In the next section we're going to take a look at, okay, now that my router 0:23:31.780000 --> 0:23:35.580000 has learned of routes, where are they kept? 0:23:35.580000 --> 0:23:39.840000 Where are they stored so they can be accessed and used to accomplish what 0:23:39.840000 --> 0:23:40.640000 we just saw right here?