協議簡史:如何學習網絡協議?

大學時,學到網絡協議的7層模型時,老師教了你們一個順口溜:物數網傳會表應。並說這是重點,年年必考,5分的題目擺在這裏,大家愛背不背。
考試的時候,果真遇到這個問題,搜索枯腸,只能想到這7個字的第一個字,由於這5分,差點掛科。
後來工做面試,面試官也是很喜歡七層模型,三次握手之類的問題,可是遇到這些問題時,老是以爲很心虛。
有時候也會想,面試官考這些協議方面的東西有什麼用呢?能加工資嗎?
說實在的,做爲一個前端開發,即便你對協議一竅不通,也不影響你用使用React,或者Vue等框架。可是若是你對底層通訊協議有個差很少的認識,你將有能力解決更多的問題。

1. 協議分層

四層網絡協議模型中,應用層如下通常都是交給操做系統來處理。應用層對於四層模型來講,僅僅是冰山一角。海面下巨複雜的三層協議,都被操做系統給隱藏起來了,通常咱們在頁面上發起一個ajax請求,看見了network面板多了一個http請求,至於底層是如何實現的,咱們並不關心。前端

clipboard.png

  • 應⽤層負責處理特定的應⽤程序細節。
  • 運輸層運輸層主要爲兩臺主機上的應⽤程序提供端到端的通訊。
  • 網絡層處理理分組在⽹網絡中的活動,例例如分組的選路
  • 鏈路層處理理與電纜(或其餘任何傳輸媒介)的物理理接⼝口細節

常見網絡協議面試

clipboard.png

  • 應用層的協議,例如SIP, 便可以使用TCP協議,也可使用UDP協議
  • 別太把七層的OSI模型太當回事,由於OSI模型只是模型,基本上已經停用。重要的理解4成網絡模型。
  • 有些應用層的網絡協議比較複雜,可能會涉及到多個底層的協議。能夠參考下面的WebRTC所使用的底層協議棧。

clipboard.png

下面重點講一下運輸層和網絡層ajax

1.1. 運輸層的兩兄弟

運輸層有兩個比較重要的協議。tcp和udp。微信

大哥tcp是比較嚴謹認真、溫柔體貼、慢熱內向的協議,發出去的消息,老是一個一個認真檢查,等待對方回覆和確認,若是一段時間內,對方沒有回覆確認消息,還會再次發送消息,若是對方回覆說你發的太快了,tcp還會體貼的把發送消息的速度下降。網絡

弟弟udp則比較可愛呆萌、調皮好動、不負責任的協議。哥哥tcp所具備的特色,弟弟udp一個也沒有。可是有的人說不清哪裏好 但就是誰都替代不了,udp沒有tcp那些複雜的校驗和重傳等複雜的步驟,因此它發送消息很是快,並且並不保證對方必定收到。若是對方收不到消息,那麼udp就會呆萌的看着你,笑着對你說:我已經盡力了。通常語音而視頻數據都是用udp協議傳輸的,由於音頻或者視頻卡了一下並不影響總體的質量,而對實時性的要求會更高。框架

1.2. 運輸層和網絡層的區別

  • 運輸層關注的是端到端層面,及End1到End2,忽略中間的任何點。
  • 網絡層關注兩點之間的層面,即hop1如何到hop2,hop2如何到hop3
  • 網絡層並不保證消息可靠性,可靠性上層的傳輸層負責。TCP採用超時重傳,分組確認的機制,保證消息不會丟失。

clipboard.png

從下圖tcp, udp, ip協議中,能夠發現tcp

  • 傳輸層的tcp和udp都是有源端口和目的端口,可是沒有ip字段
  • 源ip和目的ip只在ip數據報中
  • 理解各個協議,關鍵在於理解報文的各個字段的含義

clipboard.png

1.3. ip和端口號的真正含義

上個章節講到運輸層和網絡層的區別,其中端口號被封裝在運輸層,ip被封裝到網絡層工具

那麼端口號和ip地址到底有什麼區別呢?學習

  • ip用來用來標記主機的位置
  • 端口號用來標記該數據應該被目標主機上的哪一個應用程序去處理。端口號佔用16位,2的16次方等於65536,因此你明白了爲何端口號的範圍從0到65535了吧。

clipboard.png

1.4. 數據在協議棧的流動 封裝與分用

  • 當發送消息時,數據在向下傳遞時,通過不一樣層次的協議處理,打上各類頭部信息
  • 當接受消息時,數據在向上傳遞,經過不一樣的頭部信息字段,才知道要交給上層的那個模塊來處理。好比一個ip包,若是沒有頭部信息,那麼這個消息到底是交給tcp協議來處理,仍是udp來處理,就不得而知了

clipboard.png

2. 深刻閱讀,好書推薦

上面講的都是很基礎的知識,具體細數據報各個字段的含義,仍是須要看書的。紙上得來終覺淺,絕知此事要抓包。邊看書邊學習抓包。要學會使用wireshark工具,可以熟練使用netstat去發現tcp連接的相關問題。spa

  • 《http權威指南》 有人說這本書太厚,偷偷告訴你,其實這本書並厚,由於這本書的後面的30%部分都是附錄,這本書的精華是前50%的部分
  • 《圖解http》《圖解tcp/ip》這兩本圖解的書,知識點講的都是比較通俗易懂的,適合入門
  • 《tcp/ip 詳解 卷1》這本書,讓你知其然,更知其因此然
  • 《tcp/ip 基礎》、《tcp/ip 路由技術》這兩本書,會讓你從不一樣角度思考協議
  • 《精通wireshark》、《wireshark網絡分析實戰》若是你看了不少書,卻歷來沒有試過網絡抓包,那你只是懂紙上談兵罷了。你永遠沒法理解tcp三次握手的怦然心動,與四次分手的刻骨銘心。
  • 《網絡是怎樣鏈接的》很是好看,引人入勝的科普書籍,做者戶根勤從軟件到硬件,方方面面造詣都很深。
  • 《tcp ip 入門經典》

掃碼訂閱個人微信公衆號:洞香春天。天天一篇技術短文,讓知識再也不高冷。

圖片描述

相關文章
相關標籤/搜索