最近lz有了一點時間,於是便拿出tcp/ip的書本開始啃。開始的時候,啃起來枯燥無味,現在好不容易有點開竅,於是趕忙記錄一下,生怕自己一轉眼就給忘了。不過計算機系統原理就有點可惜了,最近一直沒時間看,選來選去,還是覺得tcp更加重要一些,或者說現階段更加重要一些。
好了,廢話不多說,我們開始記錄吧。
要討論tcp/ip,就必須知道它究竟是什麼東西。這是開始逐漸深入乙個東西的前提,tcp/ip也不例外。
lz用自己的話回答一下這個問題,tcp/ip是什麼?
簡單的說,tcp/ip就是一套規矩。兩個計算機要互相通訊,就得有規矩,乙個非常普遍的例子就是發信件。想像一下,如果信件上面的位址和郵編等資訊是隨便寫的,那麼目的地的郵遞員收到信件時,一定會一頭霧水,不知道到底要送到哪。同樣的,如果收件人是「額買瑞肯」,而你寫的字是「拆泥漬」,對方肯定是看不懂的,所以雙方的語言也要相通。
計算機之間要通訊,也需要規矩,於是tcp/ip就出現了。tcp和ip分別是兩個協議,而tcp/ip一般泛指乙個協議族。這個協議族一共包含四層,分別是鏈路層,網路層,傳輸層以及應用層。其中tcp是傳輸層的協議,ip則是網路層的協議。
之所以分層,原因就像mvc框架的作用一樣,是為了讓專業的人做專業的事。還記得設計模式當中的單一職責原則嗎,這裡其實也正是這個原則的體現。每一層都只做自己應該做的事情,並且把它做好,這樣有利於擴充套件和維護。
接下來,lz就自己的理解,給大家簡單介紹一下各個分層。
鏈路層:這是最接近硬體的一層,也是俗稱的「底層」。它主要指我們俗稱的網絡卡和網絡卡驅動程式,網絡卡是硬體,驅動程式則負責控制網絡卡。鏈路層主要負責與傳輸介質(比如光纖)配合完成實際的資料傳輸工作。你可以把它想像成高速公路上可惡的收費站,每一條公路的入口和出口都有乙個收費站,而這些收費站之間是有協議的,比如按路程收費。這些收費站就像網路介面一樣,而公路則像光纖一樣。
網路層:這一層凌駕於鏈路層之上,主要負責資料報在網路中的活動,比如該往哪走。這一層就像高速公路上的路標,路標決定了你每到乙個路口應該怎麼走。網路層恰恰就是做這件事,比如ip協議,其實就是制定一套規則,讓資料按照這套規則可以找到目的地。
傳輸層:這一層已經比較接近我等屌絲了,它負責應用程式之間端到端的通訊,這麼說可能比較難理解。這個比較像物流中的乙個場景,比如現在lz在北京,並且在上海買了乙個女朋友要送過來,那麼過程應該是這樣的。首先由上海的快遞小哥把lz的女朋友拿走,然後交給向北京出發運送貨物的司機,接下來lz的女朋友到北京後會被交給物流公司的統一發貨處,最終由快遞小哥負責把女朋友送到lz手中。請注意,這個過程中,貨車司機並不關心貨物到底送到哪,他只管送到北京,而最終快遞小哥需要把貨物送給具體的收貨人。這和網路層與傳輸層的關係類似,網路層只管把資料報從乙個計算機送給另外乙個計算機,具體是哪個程序的資料,網路層可不管,這便是傳輸層負責的事了。這裡的端到端通訊,其實就是指埠到埠的通訊。
應用層:這一層與我等屌絲已經有肌膚之親,可謂是再熟悉不過了。比如你天天要用的http協議,它就是應用層的乙個協議。http定義了各種協議頭,什麼請求協議頭,響應協議頭,亂七八糟的。這些協議頭都是幹嘛的呢,既然是應用層,當然是給應用程式用的了。比如響應協議頭中有文字格式這個頭,它就定義了瀏覽器應該如何展示web伺服器發回來的響應資訊,比如xml,html還是什麼其它的玩意。
這麼一看,其實tcp/ip協議族挺好理解的,接下來lz還用上面物流的例子來說明。
鏈路層就是負責運輸lz女朋友的那個司機,他是實際負責運輸工作的(也就是實際傳輸資料的工作)。網路層就是高速路上的路標,負責指引司機在高速上該如何走(也就是在網路上的活動),並讓司機正確到達目的地。傳輸層則是快遞小哥,負責在具體的發貨人和收穫人之間(也就是傳送埠和接收埠)的接收。應用層就像是lz女朋友的使用說明,這就是lz和賣家之間(也就是應用程式之間)的事了。
本篇就到此為止吧,畢竟內容不在多,有精就行。只是為了更好的說明本文的內容,lz犧牲了自己的形象,只是希望媳婦不要看到這篇文章。lz發誓,本文中的所有例子都純屬虛構。
待續待續吧!
與TCP IP協議的初次見面(一)
最近lz有了一點時間,於是便拿出tcp ip的書本開始啃。開始的時候,啃起來枯燥無味,現在好不容易有點開竅,於是趕忙記錄一下,生怕自己一轉眼就給忘了。不過計算機系統原理就有點可惜了,最近一直沒時間看,選來選去,還是覺得tcp更加重要一些,或者說現階段更加重要一些。好了,廢話不多說,我們開始記錄吧。要...
與TCP IP協議的初次見面 一
今下午剛才女朋友那邊回來,唉,算是情人節去找她吧 窮屌絲住不起好酒店 住的打折酒店 只是女朋友來姨媽了 萬幸啊 牙還疼得不行 這幾天光照應她了 沒空寫部落格了 回來快補上 由於一直想看tcp ip 的知識,由於感覺網路知識方面的內容一直是我的軟肋 事實上啥都是我的軟肋 窮屌絲一枚 啥都不會 慢慢努力...
與雲效的初次見面
這兩天十分有幸參加了阿里的乙個活動,可以免費體驗他們的產品 雲效。阿里官方是將雲效定位為企業級一站式devops的解決方案,也就是企業或者開發者團隊可以在雲效上面進行devops的操作。因為在公測期間,他開放了比較多的與雲效相關的產品功能。具體如下圖所示 專案協作在我個人看來就類似於乙個線上多人的 ...