「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)

我是“hello, world”,寒假了,我要去拜见一位超级大师,

布莱恩·柯林汉向我保证这将是一场奇妙之旅。地图上都没标注这位超级大师的家在哪,我只知道大家都称呼TA为sunwei.xyz(不好意思,脸皮厚一下下)。但布莱恩告诉我,将会有许多热心人帮助我到达目的地的。没错,我就这样上路了,因为我相信布莱恩。

我最先碰到的就是HTTP大叔,他热情大方,嘴角总是浸着微笑,给人一种温暖可靠的感觉,大家都喜欢他,从他那好得过份的人缘就能看出。他说带我去一个他最喜欢去的地方,叫浏览器,这里是通往世界的入口,但说去那儿之前得让我有OSI(Open Systems Interconnection) style才行:

「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)

OSI style

没错,正如你们所见,我也有OSI style了,在浏览器这种大场合下,感觉不能再好了,大家都主动和我打招呼,就像好久不见的好朋友一样,这种感觉真的很棒,我越来越喜欢浏览器这世界入口了。

HTTP大叔最先找到了DNS大婶子,告诉了大婶子我要去的地方,大叔告诉我大婶子朋友很多,人称百事通,能帮我们找到sunwei.xyz现在的地址,这样我们就能马上出发了。我一杯可乐还没喝完,大婶子已经急匆匆的向我们走来,手里显然拿着的是门牌号了:

「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)

DNS大婶儿们

我恭敬接过门牌号,不停着道着谢。还没等大婶走远,我就迫不及待的问着HTTP大叔,大婶儿是怎么做到的,这也太神了吧。大叔耐心的逐条给我解释到:

  1. 你告诉了我你想找的人后,我将这些信息给到了大婶(DNS resolver)
  2. 大婶就把这些信息分发给了自己的根朋友们(DNS root name server)
  3. 这些朋友很快给到了大婶更详细的信息,告诉大婶可以找掌管xyz的TLD问问
  4. 大婶找到了.xyz TLD name server询问
  5. TLD果然知道更进一步的信息,告诉大婶,目前sunwei.xyz入住了AWS,Route 53就知道详细的门牌号
  6. 大婶又找到了AWS Route 53 name server
  7. Route 53很快找到了门牌号: 185.199.108.153
  8. 这就是大婶手里的门牌号来历

听完我不禁赞叹,太厉害了,背后有这么多详细的分工和高效的协作,百事通实至名归。

有了门牌号,还没等我喝完可乐。大叔就把我介绍给了他的另一位路由器小姐姐,因为得从小姐姐这买票才能坐上超光速游轮,直达超级大师家。我把门牌号给到了小姐姐,很快,她就把我的船票做好了,居然还是往返的。正当我盯着这新奇的船票看得出神时,HTTP大叔拍拍我的肩膀对我说,我就不上船了,我就在这等你回来,就不说再见了。

正当我纳闷为什么不用说再见时,小姐姐已经在招呼我上船了,万万没想到,整艘游轮,就一个乘客的坐位,绝对是VIP,难怪船票上没写座位号:

「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)

可以看出我出发的港口是192.168.1.1,也就是192.168.1.0/24网段,这是默认的C类地址。原来为了组织和管理这个庞大的网络,让互联网的居民居者有其屋,先祖巨人们精心设计了这一套寻址体系,也就是我们现在说的ipv4,设计之初谁也没想到互联网发展如此迅速,以至于ipv4已经用尽了,他妹妹ipv6已经来了。通过网段192.168.1.0/24,了解到原来小姐姐的网络号是192.168.1.0,主机号是0〜255,小姐姐管理了256艘超光速游轮,我现在坐的就是其中之一。

我座位还没坐热呼,船长两兄弟UDP/TCP就来和我打招呼了。UDP看起来很热情,大大咧咧的;TCP则一丝不苟,让人放心。他们拿着我的船票看了下,翻开自己的手册,好像在查询着什么东西,然后在我船票上盖了个章:

「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)

NAT

并告诉我,马上要和世界对接了,所以不能再用局域网(LAN - Local Area Network)的方式交流了,那是我们自己沟通起来方便用的一套方法。得改用广域网(WAN - Wide Area Network)的方式来和更多的人交流了。目前是IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)在管理这一套标准,算是行话了。船长看了看我的HTTP style,又给了我一套专业冲浪服,说这是他们的style,我装扮上后,看起来简直了:

「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)

船长看着我,满意的说:看来你已经完全准备好冲浪了。说着回了驾驶室,准备起航了。

「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)

速度简直不要太快,启动既是最高时速,眨眼的功能就到了交换机,船长告诉我,他们负责导航,用下面的手册:

「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)

通过最匹配的一条,指引我们前行,眨眼间都通过了不知多少个交换机机长处:

「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)

这是我看到的船长行驶日志,‘* * *’说明这些地方没有提供相应的ttl,所以没法详细记录了。还没一会功夫,船就已经停了下来,到达目的地了。我褪去冲浪服,只剩下HTTP style。船外迎接我的,正是超级大师,没有起手势,我的HTTP style也褪了去,大师同时也赋予了我一枚金灿灿的超级勋章,我变成了"Super Hello, World!",啊哈:

「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)

快乐的时光永远都是短暂的,和大师依依不舍的告别后。我又打扮成HTTP style,进了船仓,穿上了船服,原路返回了。正如我所料,HTTP大叔还在出发点那儿。

一切发生的如此之快,但这趟超级之旅,让我仿佛拥有了全世界!

「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)

OSI 七层和简版四层

全文完

「Network」“hello, world”的奇妙之旅 - OSI(网络七层协议)


分享到:


相關文章: