role
“我想你了”
“別迷戀哥,哥只是個傳說”
“愛上哥,等于愛上寂寞”
雖然內容無比的空洞,但大家都還是樂此不彼。Geek對這樣的場景應該不陌生吧,無論是QQ還是MSN上,寂寞黨徒正以幾何級數增長。咱Geek就算寂寞得蛋疼也不能如此荒廢時間,既然閑來無事,那咱來做個基礎研究——QQ上的信息是怎么傳送到特定對象那里的呢?
很多人看到上面這段話可能已經要發彪了這有什么好研究的,每個QQ都有1個獨立的號碼,從一個號碼到另一個號碼,當然不會發錯啊。持這觀點的家伙認為信息在網絡上是1 vs.1傳播的。不過從邏輯上來說這觀點是有問題的,因為QQ號碼只是登錄憑據而已,雖然它用戶很多,可放眼全球它還不能背負引導數據走向的責任。讓我們用微觀一點的眼光來看看數據在網絡中是怎么流動的吧。
就跟水受地球重力影響會往低處走一樣,數據這種特別的“流體”在被某種規則“潛”過后,混身上下會包裹著一層外衣來保護它那顆寫著所有內容的脆弱的內心不被眾人圍觀。既然選擇了堅強,那么它會重新審視自己,找到人生的方向,并堅定地走下去,直到它達到目的地為止。
還是一頭霧水嗎?沒關系,至少我們知道數據是被“潛”過之后才能在網絡中流動,才知道自己該去哪里、該怎么去的。那咱就來研究下這個傳說中的潛規則吧。其實只要各位Geek在大學計算機課上沒有和周公探討人生,應該都聽過這個潛規則的名字——OSI模型。這家伙將整個電腦網絡粗暴地劃分出了七個層次,并且在每個層次上做出了相當多殘酷的規定。咱就不在這里浪費篇幅說它了,自己翻課本看去,如果你的教材還在的話。像數據這樣的基層人員毫不意外地被劃分到了下三層上。
話說數據在下三層里,只要勤勤懇懇地做自己的事就行了,可偏偏這三層里的規矩不少,它是一條都不能犯。就拿最低層的物理層來說吧,這東西就像它名字一樣,夠物理!咱走路,總得有路才成吧,這東西就是數據的路,沒它,別說走,數據連個落腳的地都沒有,只能在空氣中灰飛煙滅。因此,數據得天天上香保佑物理層上的各位大爺(如網線、電纜、光纖、網卡什么的)仙福永享、壽與天齊。在侍候完物理層后,數據就要面對數據鏈路層了。這家伙最沒人性了,它訂下了許多復雜的規矩,而且誰都不能違背,因為它掌握了不同物理層之間的連接。說得玄一點就是,沒連接起來的路只能叫路段,連接起來的路才能叫公路交通網。雖然我們看不到路是怎么連接的,但它卻是存在的。讓我們來看看數據在第二層上的遭遇吧。拿咱最常接觸的局域網來說,數據要在這上面混,就得按照這層上立下的“以太網”的規矩來。要是數據想更高級一點,走走無線傳輸,就得去拜拜“802 11”和“wi-Fi”這兩座碼頭了。聽上去似乎還好,那就讓我們來看個實例吧。要是數據運氣好,只是想從有線局域網里的A機到B機上去,似乎只要按照“以太網”的規矩來就行了。非也,非也,因為數據鏈路層說了,在它這層只有MAC地址才是唯一合法地址標示,因此數據要想找到B就得按照這個辦,即便AB之間有互相的lP地址也不行。可數據怎么知道B的MAC地址呢?老辦法,拜山頭,找幫手。于是數據找了數據鏈路層的另一位大爺
ARP,ARP大爺雖然肯幫忙但是很講究原則,它讓數據找A機開了封介紹信(B機的IP地址)來,然后自己在整個局域網中廣播,B機收到ARP大爺的呼救之后,連忙把自己的MAC地址傳送回去。這么折騰一番后,數據才能在AB機之間傳送,即便它們在同一個交換機下的局域網中。怎么樣,數據鏈路層是不是很慘無人道呢?
這還是運氣好的情況,要是運氣不好,數據要在廣域網中行走呢?那它就得面對傳說中的OSI第三層——網絡層了。雖說,廣域網就是不同的局域網之間相互連接起來,咱也可以把它看作一個以太網的延伸,不過誰的地盤誰做主,到了這里,數據鏈路層的規矩自然就失效了。先打住,可能有人快暈了,數據鏈路層的以太網難道和網絡層的以太網還不一樣嗎?沒錯,在數據鏈路層的以太網中,最頂層的設備只是交換機:而在網絡層的以太網中,最頂層設備是路由,雖然它也有交換機,但都在路由之下的。看到這里咱也該想到了,數據要想在網絡層下逍遙自在,最重要的就是侍候好各個路由大爺,而且在這個基礎上還不能得罪其他兩層。為啥?因為這三層大爺是唇齒相依的,或者說是官官相護的。因此如果數據要想在不同網段的AB主機之間流通,得付出比在數據鏈路層更多的努力。由于AB主機分屬不同的堂口,A機的數據無法直接同B機點對點傳遞,而是得通過數據鏈路層的ARP大爺討要本堂口的老大路由A的MAC地址,A機得到這個MAC地址后,才能向路由A發送數據,并附上數據的目的地地址——B機的IP。路由A在收到小弟的請求后,知道B機的IP不是自己堂口的,于是就像相鄰堂口傳話,看它們是否知道。由于網絡層的堂口眾多,數據通常會走過10來個堂口之后才能到達目的地。如果某個堂口(路由C)收到數據后,發現數據要找的IP就在自己的網段,那么它就會讓ARP找到這個小弟的MAC地址,并透過數據鏈路層和物理層建立一條通路給數據,讓它直達B主機。
可以看到,IP統治了整個網絡層,就像秦始皇一樣,即便是橫跨二三層的以太網,以及MAC尋址體系,到了第三層通通都得給IP讓位。不過IP內部也不是那么平靜,目前IP體系中掌權的是IPv4,但是IPv6已經迫不及待想要奪權了。不過這些跟數據都沒啥太大的關系,因為無論是誰當權,數據都得遵守它們訂下的規矩才行。
現在,各位Geek應該知道了咱們在QQ上聊得風生水起時,這些數據是怎么跑到對方那里去的了吧?其實咱只把話說了一半,因為OSI模型這個潛規則咱只說了前三層,后面還有四層呢,要想徹底弄懂它,Geek拉得自己研究了。