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