「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(網絡七層協議)


分享到:


相關文章: