與TCP/IP協議的初次見面(一)
今下午剛纔女友那邊回來,唉,算是情人節去找她吧,窮屌絲住不起好酒店,住的打折酒店,只是女友來姨媽了,萬幸啊,牙還疼得不行,這幾天光照應她了,沒空寫博客了.回來快補上!html
因爲一直想看TCP/IP的知識,因爲感受網絡知識方面的內容一直是個人軟肋,事實上啥都是個人軟肋,窮屌絲一枚,啥都不會.慢慢努力!web
要討論TCP/IP,就必須知道他究竟是什麼東西.這是開始逐漸深刻一個東西的前提,TCP/IP也不例外.設計模式
那麼TCP/IP到底是什麼?瀏覽器
用本身的話說,tcp/ip就是一套規則.兩個計算機要相互通訊,就得有規矩,一個很廣泛的樣例就是發信件.想象一下,假設信件上面的地址和右邊等信息是隨便寫的,那麼目的地的郵遞員收到信件時,必定會一頭霧水,不知道要發到哪裏.相同的,假設收件人」折磨」,而你寫的是」額邁銳肯」,對方確定是看不懂的,因此兩方的語言也要想通.網絡
計算機之間要通訊,也需要規則,因而tcp/ip就出現了,/tcp/ip各自是兩個協議,而tcp/ip通常泛指一個協議族.這個協議族一共包括四層,各自是鏈路層,網絡層,傳輸層以及應用層.當中tcp是傳輸層的協議,ip則是網絡層的協議.mvc
之因此分層,緣由就像mvc框架的做用同樣,是爲了讓專業的人作專業的事.還記得設計模式其中的單一職責原則嗎,這裏事實上也正是這個原則的體現.每一層都僅僅作本身應該作的事情,並且把它作好,這樣有利於擴展和維護.框架
鏈路層:這是最接近硬件的一層,也是俗稱的」底層」.它主要指咱們俗稱的網卡和網卡驅動程序,網卡是硬件,驅動程序則負責控制網卡.鏈路層主要負責與傳輸介質(比方光纖)配合完畢實際的傳輸數據工做.你可以把它想象成快速公路上的收費章,每一條公路的入口和出口都有一個收費站,而這些收費站之間是有協議的,比方按路程收費.這些收費站就像網絡接口同樣,而公路則像光纖同樣.tcp
網絡層:這一層凌駕於鏈路層以上,主要負責數據報在網絡中的活動,比方該往哪走.這一層就像快速公路上的路標,路標決定了你每到一個路口應該怎麼走.網絡層偏偏就是作這件事,比方ip協議,事實上就是定製一套規則,讓數據依照這套規則可以找到目的地.ide
傳輸層:這一層已經已經比較接近我等屌絲了,他負責應用程序之間的端到端的通訊,這麼說可能比較難理解.這個比較像物流中的一個場景,比方現在我在淄博,在上海買了一個女友,過程應該是這種.首先上海的賣家把個人女友交給快遞小哥(或者公司),而後由他們交給向淄博出發的貨運司機,接下來寶貝到達淄博後會被放到統一的發貨處,終於再由快遞小哥送到本人手中,這麼描寫敘述沒錯吧,明確吧?注意,在這個過程當中,貨車司機並不關心貨物究竟送到誰手裏,他僅僅管送到淄博,淄博的快遞小哥也不關係這些寶貝哪裏來的,他僅僅關心這些貨物將要詳細派送到誰手裏,對吧.這和網絡層與傳輸層關係相似,網絡層僅僅管把數據報從一個計算機送到另一個計算機,詳細是哪一個集成的數據,網絡層可以不管,也不用管,這即是傳輸層負責的事了.這裏端到端通訊,事實上就是指port到port的通訊.設計
應用層:這一層與我等屌絲已有肌膚之親了.比方你每天用的http協議,他就是應用層的一個協議.http定義了各類協議頭,是什麼請求協議頭,響應協議頭,亂七八糟的.這些協議頭都是幹嗎的呢,既然是應用層,固然是給應用程序用的了.比方響應協議頭中有文本格式這個頭,他就定義了瀏覽器應該怎樣展現webserver發回來的響應信息,比方xml,html仍是什麼其它的玩意.
通過上面的解說,相信你們應該都理解了的tcp/ip的含義了吧.
鏈路層就是負責運輸女友的那個司機,它是負責運輸工做的(也就是實際數據傳輸的工做).網絡層就是快速公路上的路標,負責指引司機在快速路上應該怎樣走(也就是在網絡上的活動),並讓司機正確到達目的地.傳輸層就是快遞小哥,負責在詳細的發貨人和收貨人之間(也就是發送port和接收port)的接受.應用層就是女友的使用說明,這就是我等屌絲和賣家之間(也就是應用程序之間)的事了.
總後總結一下,咱是有女友的,儘管不美麗,但是人家對咱挺好,挺好,咱也好好對人家.