1 00:00:02,330 --> 00:00:08,651 [music] 2 00:00:08,652 --> 00:00:09,578 So let's take a look at our 3 00:00:09,578 --> 00:00:10,440 whiteboard for a moment. 4 00:00:10,816 --> 00:00:13,200 We've got this concept here of 5 00:00:13,201 --> 00:00:16,800 let's just say 2 hosts 6 00:00:16,801 --> 00:00:20,687 running IPv4. 7 00:00:20,688 --> 00:00:22,616 Let's just put 3 hosts on here. 8 00:00:23,482 --> 00:00:27,431 Say 2 laptops and a router. 9 00:00:27,432 --> 00:00:29,231 We're going to put them all 3 on 10 00:00:29,232 --> 00:00:31,207 the same exact Ethernet broadcast 11 00:00:31,208 --> 00:00:33,003 domain, the same Ethernet segment. 12 00:00:35,126 --> 00:00:39,011 Okay, so let's give some IPv4 13 00:00:39,012 --> 00:00:40,691 number to these 3 hosts. 14 00:00:40,692 --> 00:00:41,628 Now, we know that because these 15 00:00:41,629 --> 00:00:43,333 3 hosts are on the exact same 16 00:00:43,333 --> 00:00:45,778 network domain part of their 17 00:00:45,779 --> 00:00:46,778 IP address and binary 18 00:00:46,779 --> 00:00:48,461 from left to right 19 00:00:48,462 --> 00:00:50,324 has to represent the group or the 20 00:00:50,325 --> 00:00:51,503 network they're a part of. 21 00:00:53,185 --> 00:00:55,919 So let's say I give them this, 22 00:00:55,920 --> 00:00:57,024 actually I have to make this pretty 23 00:00:57,025 --> 00:00:58,738 small here to fit this in. 24 00:01:00,397 --> 00:01:03,008 So, let's say this guy here is-- 25 00:01:03,009 --> 00:01:04,000 and I'm going to go ahead and 26 00:01:04,001 --> 00:01:05,432 expand this so you can see 27 00:01:05,433 --> 00:01:06,964 a little bit better. 28 00:01:06,965 --> 00:01:13,855 So 1, 0, 1, 2, 3, 4, 29 00:01:13,856 --> 00:01:14,903 5, 6, 7, 8, 9, 10, 30 00:01:14,904 --> 00:01:16,180 11, 12, 13, 14, 15, 31 00:01:16,181 --> 00:01:17,232 16, 17, 18, 19, 20, 32 00:01:17,233 --> 00:01:18,860 21, 22, 23, 24, 25, 26, 27, 28. 33 00:01:18,861 --> 00:01:20,219 All right, I'm not going to count 34 00:01:20,220 --> 00:01:21,579 all up but let's just assume that 35 00:01:21,580 --> 00:01:22,515 that's 32-bits. 36 00:01:22,516 --> 00:01:24,653 I think I'm pretty close there. 37 00:01:39,662 --> 00:01:40,597 And then we'll put one more 38 00:01:40,598 --> 00:01:41,991 address on this guy right here. 39 00:01:42,899 --> 00:01:44,132 I'll do that up at the top 40 00:01:44,133 --> 00:01:46,131 so we have room. 41 00:01:55,271 --> 00:01:58,895 Okay, so in binary these are the 42 00:01:58,896 --> 00:02:00,526 32-bit IP address I've given to 43 00:02:00,527 --> 00:02:02,034 each of these hosts. 44 00:02:03,850 --> 00:02:05,470 Now, if we were looking at these 45 00:02:05,471 --> 00:02:07,381 addresses from the original 46 00:02:07,382 --> 00:02:09,749 implementation of IP back 47 00:02:09,750 --> 00:02:13,350 in the late 1960s, early 1970s, 48 00:02:15,341 --> 00:02:18,058 the IP code or software that was 49 00:02:18,059 --> 00:02:20,025 running on all 3 of these devices 50 00:02:20,026 --> 00:02:21,187 would interpret these addresses 51 00:02:21,188 --> 00:02:22,195 the exact same way. 52 00:02:22,196 --> 00:02:27,695 It would say the first 8 bits 53 00:02:28,579 --> 00:02:30,556 represent our network. 54 00:02:36,167 --> 00:02:37,824 That's not 8 bits right there. 55 00:02:39,996 --> 00:02:42,810 1, 2, 3, 4, 5, 6, 7, 8. 56 00:02:42,811 --> 00:02:44,093 There we go. 57 00:02:44,596 --> 00:02:47,304 1, 2, 3, 4, 5, 6, 7, 8. 58 00:02:48,638 --> 00:02:50,148 So the original implementation 59 00:02:50,148 --> 00:02:53,811 of IP would have said this is 60 00:02:53,812 --> 00:02:56,393 the name of our broadcast domain, 61 00:02:56,394 --> 00:03:00,066 10010010. 62 00:03:00,067 --> 00:03:02,241 That is our network. 63 00:03:02,242 --> 00:03:03,196 All of these other bits 64 00:03:03,197 --> 00:03:05,501 are unique patterns, 65 00:03:05,502 --> 00:03:08,945 host bits, for each of our hosts. 66 00:03:10,351 --> 00:03:11,855 Now I said here that the problem 67 00:03:11,856 --> 00:03:15,330 with this is if I take 8 bits, 68 00:03:17,631 --> 00:03:18,964 that's the very first pattern 69 00:03:18,964 --> 00:03:19,754 I can come up with. 70 00:03:19,755 --> 00:03:20,863 Well we know that's reserved. 71 00:03:20,864 --> 00:03:22,262 No network can be the 72 00:03:22,263 --> 00:03:24,114 all 0s network. 73 00:03:24,115 --> 00:03:25,442 Then we have a whole bunch 74 00:03:25,443 --> 00:03:26,953 of combinations. 75 00:03:26,954 --> 00:03:29,123 The last pattern in binary 76 00:03:29,124 --> 00:03:32,007 I can come up with is that. 77 00:03:32,008 --> 00:03:33,769 We know that's also reserved. 78 00:03:35,469 --> 00:03:37,382 So everything in between here 79 00:03:38,960 --> 00:03:41,114 is 254 combinations. 80 00:03:45,325 --> 00:03:46,775 So if I'm limiting myself to the 81 00:03:46,776 --> 00:03:48,608 original implementation, 82 00:03:48,609 --> 00:03:49,750 here is one combination 83 00:03:49,751 --> 00:03:53,897 I've just used, 10010010 84 00:03:53,898 --> 00:03:58,020 which leaves me 253 networks 85 00:03:58,021 --> 00:03:59,157 which are remaining, 86 00:04:02,404 --> 00:04:03,784 and that's not very many networks, 87 00:04:03,785 --> 00:04:06,243 not very many broadcast domains. 88 00:04:06,244 --> 00:04:07,402 Now with classful, 89 00:04:07,403 --> 00:04:09,105 if I go into the operating system 90 00:04:09,106 --> 00:04:10,797 on all 3 of these devices, 91 00:04:11,508 --> 00:04:13,229 and I change the IP code 92 00:04:13,230 --> 00:04:14,894 in a little bit and I say, 93 00:04:14,895 --> 00:04:18,971 okay, you are now classful devices, 94 00:04:18,972 --> 00:04:20,817 look at your IP address in a 95 00:04:20,818 --> 00:04:22,212 classful way. 96 00:04:23,556 --> 00:04:25,684 Now instead of just assuming 97 00:04:25,684 --> 00:04:26,843 that the first 8 bits 98 00:04:26,844 --> 00:04:28,624 represent the network, 99 00:04:28,624 --> 00:04:31,188 they don't make that assumption. 100 00:04:31,189 --> 00:04:32,703 See if I get rid of this box here 101 00:04:32,704 --> 00:04:35,926 if it'll let me. There we go. 102 00:04:35,926 --> 00:04:36,938 Now instead they do something 103 00:04:36,939 --> 00:04:38,880 else first. 104 00:04:38,881 --> 00:04:40,837 All these 3 devices independently 105 00:04:40,837 --> 00:04:42,989 take a look at the first few bits, 106 00:04:42,990 --> 00:04:44,414 and as classful devices 107 00:04:44,415 --> 00:04:45,958 they say, oh okay, well the first 108 00:04:45,959 --> 00:04:49,014 2 bits that we have are 10, 109 00:04:51,202 --> 00:04:53,885 so that tells me that now my 110 00:04:53,886 --> 00:04:55,408 network is the first half 111 00:04:55,409 --> 00:04:56,152 of this address, 112 00:04:56,153 --> 00:04:57,535 the first 16 bits. 113 00:04:59,224 --> 00:05:04,187 So 1234, 1234, 1, 2, 3, 4. 114 00:05:04,188 --> 00:05:07,868 1, 2, 3, 4. Right there. 115 00:05:07,869 --> 00:05:10,466 So that is the network address, 116 00:05:13,915 --> 00:05:15,744 the first 16 bits. 117 00:05:21,756 --> 00:05:22,629 Now, how does that give 118 00:05:22,630 --> 00:05:24,512 us more networks? 119 00:05:24,513 --> 00:05:25,924 Well let's focus here just for a 120 00:05:25,925 --> 00:05:28,949 moment on the first 8 bits because 121 00:05:28,950 --> 00:05:30,273 remember we, as humans, 122 00:05:30,274 --> 00:05:32,065 read this address in 123 00:05:32,066 --> 00:05:33,572 4 dotted decimal numbers. 124 00:05:33,573 --> 00:05:35,434 So what is the first byte? 125 00:05:35,435 --> 00:05:37,896 1, 2, 3, 4. 1, 2, 3, 4. 126 00:05:37,897 --> 00:05:38,784 So that's the first byte 127 00:05:38,785 --> 00:05:39,561 right there. 128 00:05:39,562 --> 00:05:40,740 Let's go ahead and translate that, 129 00:05:40,741 --> 00:05:41,426 first of all, 130 00:05:41,427 --> 00:05:43,555 to a dotted decimal number. 131 00:05:43,556 --> 00:05:45,361 So we've got the 128-bit, 132 00:05:46,727 --> 00:05:52,263 the 16-bit, which is 144 plus 2, 133 00:05:52,264 --> 00:05:57,831 so this is the 146 network if I did 134 00:05:57,832 --> 00:05:59,654 my math correctly. 135 00:06:02,142 --> 00:06:03,873 Now, in the original days where the 136 00:06:03,874 --> 00:06:05,785 networks was just the first byte, 137 00:06:05,786 --> 00:06:07,575 the first 8 bits, 138 00:06:07,576 --> 00:06:09,661 that means only this broadcast 139 00:06:09,662 --> 00:06:11,895 domain could start with 146. 140 00:06:11,896 --> 00:06:13,396 There were no other networks 141 00:06:13,397 --> 00:06:14,643 available out there that could 142 00:06:14,644 --> 00:06:15,901 start with 146. 143 00:06:15,902 --> 00:06:17,339 This number was reserved 144 00:06:17,340 --> 00:06:19,125 for this wire, 145 00:06:19,126 --> 00:06:20,734 this broadcast domain. 146 00:06:21,702 --> 00:06:23,562 But now with classful addressing, 147 00:06:24,295 --> 00:06:25,285 now that we're saying the first 148 00:06:25,286 --> 00:06:27,136 2 bytes represent the network, 149 00:06:27,137 --> 00:06:29,273 that means one wire could be 150 00:06:29,274 --> 00:06:32,925 146.0.anything. 151 00:06:32,926 --> 00:06:34,159 We could have another wire, 152 00:06:34,160 --> 00:06:35,301 another broadcast domain 153 00:06:35,302 --> 00:06:39,213 that was 146.1.anything. 154 00:06:39,213 --> 00:06:44,469 Another wire that's 146.2.anything, 155 00:06:44,470 --> 00:06:46,778 on and on and on, 156 00:06:46,779 --> 00:06:52,041 all the way up to 146.255.anything. 157 00:06:53,453 --> 00:06:55,293 So that means just for this 158 00:06:55,294 --> 00:06:59,153 single number of 146 159 00:06:59,153 --> 00:07:02,749 we have 256 combinations 160 00:07:02,750 --> 00:07:03,956 of networks. 161 00:07:04,778 --> 00:07:05,467 This one right here - 162 00:07:05,468 --> 00:07:06,737 I'm not sure what this is - this 163 00:07:06,738 --> 00:07:08,151 is 146.-- let's see here, 164 00:07:08,152 --> 00:07:09,605 let's go ahead and add up 165 00:07:09,605 --> 00:07:13,221 the second octet. 166 00:07:13,221 --> 00:07:22,263 This is 192 plus 8, that's 204. 167 00:07:24,472 --> 00:07:25,919 So everybody on this particular 168 00:07:25,920 --> 00:07:29,011 wire recognizes that their group 169 00:07:29,012 --> 00:07:30,247 number - their network number - 170 00:07:30,248 --> 00:07:36,178 is 146.204. 171 00:07:36,179 --> 00:07:37,661 So now with classful addressing, 172 00:07:37,662 --> 00:07:39,399 because I'm able to look at more 173 00:07:39,400 --> 00:07:42,428 bits of this 32-bit address, 174 00:07:42,428 --> 00:07:42,940 that gives me a 175 00:07:42,941 --> 00:07:45,833 lot more combinations. 176 00:07:45,834 --> 00:07:48,021 So with Class B right here 177 00:07:48,022 --> 00:07:48,922 - we know that Class B 178 00:07:48,923 --> 00:07:50,193 starts out with 128. 179 00:07:50,194 --> 00:07:52,564 Well, just with 128 I could have 180 00:07:52,565 --> 00:07:54,284 a wire that's 128.0, 181 00:07:54,285 --> 00:07:56,328 another wire that's 128.1. 182 00:07:56,329 --> 00:07:59,928 I've got 256 combinations of 128, 183 00:07:59,929 --> 00:08:02,039 another 256 combinations of 184 00:08:02,040 --> 00:08:04,078 networks that begin with 129. 185 00:08:04,079 --> 00:08:06,696 Another 256 combinations of 130, 186 00:08:06,697 --> 00:08:11,067 all the way up to 256 combinations 187 00:08:11,068 --> 00:08:14,173 of 191. 188 00:08:14,174 --> 00:08:15,080 That's what gives us 189 00:08:15,081 --> 00:08:17,731 in the Class B space, 190 00:08:17,732 --> 00:08:23,434 over 65,000 unique networks 191 00:08:23,435 --> 00:08:24,511 because we have so many 192 00:08:24,512 --> 00:08:26,256 more bits available to us. 193 00:08:26,257 --> 00:08:29,565 And for this to work, 194 00:08:29,565 --> 00:08:31,125 the system that it's running on 195 00:08:31,126 --> 00:08:33,945 the laptop, the PC, the mainframe 196 00:08:33,946 --> 00:08:35,922 has to be able to look at this 197 00:08:35,923 --> 00:08:38,538 address in a classful way. 198 00:08:38,539 --> 00:08:39,719 The code has to tell it, 199 00:08:39,720 --> 00:08:40,789 the IP code, 200 00:08:40,790 --> 00:08:42,008 the software developer has 201 00:08:42,009 --> 00:08:42,947 to write the code in 202 00:08:42,948 --> 00:08:44,784 such a way that says, look, 203 00:08:44,785 --> 00:08:46,173 don't make any assumptions 204 00:08:46,174 --> 00:08:48,085 about your address, instead, 205 00:08:48,086 --> 00:08:50,105 look at the first few bits. 206 00:08:50,106 --> 00:08:51,322 And whatever the bit pattern 207 00:08:51,323 --> 00:08:52,827 is in the first few bits, 208 00:08:52,828 --> 00:08:54,406 that will tell you of 209 00:08:54,407 --> 00:08:56,236 your 32 bit number, 210 00:08:56,237 --> 00:08:57,356 how much of it belongs 211 00:08:57,357 --> 00:08:59,183 to your group, your network, 212 00:08:59,184 --> 00:09:01,924 your broadcast domain. 213 00:09:01,925 --> 00:09:03,616 And that's what gave us thousands 214 00:09:03,617 --> 00:09:04,889 and thousands and thousands of 215 00:09:04,890 --> 00:09:06,192 more networks that were available 216 00:09:06,193 --> 00:09:09,098 than when all we had was just our 217 00:09:09,099 --> 00:09:10,558 first byte and we couldn't go 218 00:09:10,559 --> 00:09:12,926 beyond our first byte. 219 00:09:12,927 --> 00:09:15,942 So that's why classful addresses 220 00:09:15,942 --> 00:09:17,510 gave us that ability to scale 221 00:09:17,511 --> 00:09:19,166 beyond a much larger 222 00:09:19,167 --> 00:09:20,405 addressing space. 223 00:09:20,406 --> 40:11:43,884 [music]