我出生在深圳的一家工场,然后飘洋过海来到美国,被安拆到一个电脑里, 然后那个电脑又漂洋过海, 被运到了中国。
我晓得我的任务就是传递信件,但有一个前提:我需要晓得对方的地址才行,其实我们网卡都有一个全球独一的地址,那个地址一出生就确定了,就像你们人类的身份证一样,末生稳定。 无论我走到哪里,我都拥有那个独一的标记:11:27:F5: 8A:79:54 , 挺长的是吧,你们人类把它喊做MAC地址, 简单起见, 你能够喊我 “TP-Link 7954”
刚起头的时候我十分孤单,因为那台电脑固然经常开机,但却不联网,实不晓得仆人是怎么想的!
不上彀就没人来找我发信,不发信我也就没什么价值,也没人搭理我,我成天听着CPU阿甜和金士顿内存在那里三言两语的聊天,实是烦死了。
(公家号“码农翻身”注:拜见文章《CPU阿甜》)
只是那两人都记不住对方,每次重启都像是第一次了解,其实是太搞笑了。
1
DHCP
在我进住机箱30天以后,音箱向各人陈述说:“仆人末于决定要上彀了” 那绝对是个重磅新闻!
我很兴奋,各人也很兴奋,早就传闻外边的世界很超卓了。
一天晚上,只听到“咔嗒”一声, 一个RJ45的网线插头便和我密切接触了。
网线的那头传来了目生而熟悉的声音,我的潜意识告诉我,那是交换机在转发信件 。
CPU阿甜看到了那种情状,也反面金士顿内存聊天了,他对着我大喊一声: TP-Link 你在等啥,赶紧上彀啊。
那是他第一次和我说话。
操做系统老迈是见过世面的,他沉着的说: “心急食不了热豆腐, 我们得先搞一个IP地址才行。 那需要用到DHCP(动态主机设置装备摆设协议)”
阿甜说: “谁那里有IP地址啊?”
“那个收集里应该有DHCP 办事器,能够动态的分配地址, 我们能够发个信播送下 ” 老迈接着说 “ 阿甜,你和金士顿赶紧写一封信:”
收件人 : 255.255.255.255 : 67
发件人 : 0.0.0.0 :68
内容: 我想租用一个Ip地址, 谁有啊?
(公家号“码农翻身”注: 那里我做了简化, 现实上那里起首是一个利用层的DHCP发现报文, 然后被一个UDP的报文封拆,然后再被一个IP的数据报封拆。形象化一点如下图所示)
阿甜傻乎乎的, 也不问为什么收件人和发件人那么希罕, 只是飞快的按老迈的指示写信, 信立即写好了,交到我的手里。
“给你, TP-Link 7954, 赶紧发出往吧”。
我对外发信是有原则的: 我工做在数据链路层, 必需得晓得对方的MAC地址才气发信, 假设不晓得, 我就对外播送, 那就是所有的电脑城市收到。
那封信显然就是要播送的,因为到目前为行, 我们仍是收集大海中的一个孤岛, 和外界没有任何联络, 我还不晓得任何其他电脑的MAC地址。
根据规定,我又把阿甜写的信封拆了一下, 拆到别的一个信封里, 只要如许,我最重要的伙伴交换机才气看懂。
目标地: FF:FF:FF:FF:FF:FF (播送到统一子网内的所有电脑)
发件人: 11:27:F5:8A:79:54 (就是我本身了!)
我把它通过网线发给了交换机。 交换机看到FF:FF:FF:FF:FF:FF, 立即转发给了所有连到交换机的设备。
好像老迈所料, 那个局域网里确实有DHCP办事器, 还不行一个!因为没有多久, 交换机转来两封信, 我拆开此中一封, 里边写着:
“我是DHCP办事器192.168.1.1 , 我那里有个闲暇的IP 192.168.1.2, 你租不租?”
别的一封信也差不多, 是别的一个DHCP办事器发来的,供给了别的一个IP地址。
CPU阿甜迫不及待了: “看来我们很受欢送啊,那么多情面愿给我们IP, 老迈, 快夺一个吧。 ”
操做系统老迈说: 好, 我们要那个192.168.1.2吧, 再写一封信:
“你好,办事器192.168.1.1 , 我们就要那个IP 192.168.1.2了”
我又把那封信播送出往, 看来我们所处的收集十分快, 确认的回信眨眼间就到:
“那是一个确认信, IP 192.168.1.2 给你了。 网关路由器是192.168.1.1 , DNS办事器的地址是 202.102.224.69”
金士顿内存说: “不随便啊, 末于搞定一个IP 了, 我把它记下来。 ”
操做系统老迈说: “把所有信息都记下来, 接下来很快就会用到”
我们的IP : 192.168.1.2
网关路由器: 192.168.1.1
DNS办事器: 202.102.224.69
阿甜说:“ 如果重启了, 我们是不是要那么重来一遍? ”
“阿甜, 你如今越来越伶俐了, 确实是如许, 除非仆人手动的给我们设置装备摆设IP地址,网关, DNS , 但是那样很烦,随便出错, 所以一般情状下, 仆人都是依靠我们主动的往用DHCP搞定一个IP 。 ”
颠末那一番折腾, 我也初步领会了我们所在的收集构造:
2
DNS和ARP
搞定了IP地址, 各人都喜气洋洋。
我们赶紧把阅读器村的老IE喊来, 让它拜候一下闻名的google网站。
(公家号“码农翻身”注:拜见文章《老IE为什么把火狐和Chrome打伤了?》)
老IE说: “你们还不晓得? google在中国被屏障了, 拜候不了, 要不拜候百度吧。 ”
我说: “都行, 我们先拜候一下尝尝。 ”
老IE说: ”百度的域名是地址呗!”
阿甜说: “上个网那么费事, 那么多地址要查 ”
“是啊, 收集世界的端方就是如许 ,想要互联, 我们得有IP地址, 也得晓得对方的IP地址, 如今只晓得域名查询吧 ” 老迈说
CPU阿甜遵照指示,先向金士顿内存问了DNS办事器的地址, 然后写了那么一封信, 交给我
发件人: 192.168.1.2 (我们刚刚搞定的IP)
收件人: 202.102.224.69 (DNS办事器)
内容: 哥们, 给我查查地址吧
“但是那封信发给谁呢, 我需要晓得对方MAC地址啊, 总不成仍是对外播送吧。“ 我心里想。
操做系统老迈看出了我的疑虑, 阐明说: “DNS办事器不在我们的局域网内, 我们要把那个信发给 网关路由器 , 他会想办法转给 DNS办事器的。 ”
我说: “可是我不晓得网关路由器的MAC地址啊”
金士顿内存说: “别急, 我查查之前我们存下来没有, 我靠, 适才阿谁DHCP办事器(192.168.1.1)也是网关办事器, 他怎么没把MAC地址趁便发过来啊!”
CPU阿甜急了: “TP-LINK7954, 你是怎么干活的, 怎么非得要MAC地址, 间接用IP地址不可吗?”
我答复说: “没办法, 那是规定, 你不晓得收集是分层的吗? 我只工做在数据链路层, 就得用MAC地址。 别的收集多种多样, 可不单单是TCP/IP , 我如果只用IP地址, 那其他收集怎么工做?”
操做系统老迈说: “我记得似乎有个喊ARP工具, 能够通过播送查询一个IP地址对应的MAC地址, 你尝尝”
其实我也想起来了, 那个ARP喊地址解析协议, 我能够把下面的动静播送出往, 那个子网内的所有机器城市收到, 网关路由器也不破例, 他收到以后,一看是查询本身的MAC地址, 就会创建一个ARP的应答。
收件人: FF:FF:FF:FF:FF:FF (统一子网内的所有电脑)
发件人: 11:27:F5:8A:79:54 (就是我本身了!)
内容:唤喊网关路由器(192.168.1.1), 请问你的MAC地址是什么?
过了一会, ARP应答公然来了, 我们看到了网关路由器的MAC地址: 88-25-93-79-E0-C8
我告诉金士顿内存: “赶紧记下来,下次咱就不消再查询了”
192.168.1.1 -- 88-25-93-79-E0-C8
有了网关路由器的MAC地址, 剩下的工作就好办了, 我只需要把之前预备好的DNS查询发给网关路由器即可。
阿甜猎奇问我:“ 你只把那个信发到网关路由器, 剩下的事就不管了? ”
我没声好气的答复它说: “那当然了, 我只能管局域网的工作, 出了局域网, 那就是路由器的工作了, 路由器能抽取那个DNS查询的数据报, 看到收件人是202.102.224.69 (DNS办事器), 天然能够转发出往, 我们完全不消担忧。”
我们等了一会, DNS办事器很快就返回了
金士顿内存说: “我记下来了, 上彀看来一点都欠好玩啊, 那么费力。 ”
老IE 说: “好玩的在后面呢, 如今所有的工具都齐活了, 开工 ”
老IE起头创建TCP毗连, 然后通过TCP 发送HTT GET恳求, 悄悄松松的把百度的主页给取了下来,展现了出来。
各人第一次看到外边的世界, 冲动万分。
当然仍是我最忙, 因为老IE的所有信件都需要我往发送和领受。
2
尾声
那几个月以来我都是电脑里的最忙碌的人, 一旦能够上彀, 各人都上瘾了, 阅读网页,刷微博, 看视频, 玩游戏, 天天把我累的要死。
日子就那么一天天过往, 有一天, 各人发现仆人把一个新家伙通过USB接口插到了电脑上, 然后随手拔掉了网线 !
我失往了和交换机的联络 , 无法联网了, 莫非我们电脑又要成为一个孤岛了吗?
老IE还正在拜候一个博客网站呢, 一会儿就断了。
不外希罕的是, CPU阿甜, 金士顿内存, 操做系统老迈 竟然都围着新来的家伙从头玩起了DHCP, DNS , ARP , 而且连上彀了, 所有的信件都由那个新家伙来传递。
我悄悄的问老IE :“ 那是怎么回事? ”
老IE说: “看来你已经失宠了, 新来的家伙喊无线网卡!”