大學時,學到網絡協議的7層模型時,老師教了你們一個順口溜:物數網傳會表應。並說這是重點,年年必考,5分的題目擺在這裏,大家愛背不背。
考試的時候,果真遇到這個問題,搜索枯腸,只能想到這7個字的第一個字,由於這5分,差點掛科。
後來工做面試,面試官也是很喜歡七層模型,三次握手之類的問題,可是遇到這些問題時,老是以爲很心虛。
有時候也會想,面試官考這些協議方面的東西有什麼用呢?能加工資嗎?
說實在的,做爲一個前端開發,即便你對協議一竅不通,也不影響你用使用React,或者Vue等框架。可是若是你對底層通訊協議有個差很少的認識,你將有能力解決更多的問題。
四層網絡協議模型中,應用層如下通常都是交給操做系統來處理。應用層對於四層模型來講,僅僅是冰山一角。海面下巨複雜的三層協議,都被操做系統給隱藏起來了,通常咱們在頁面上發起一個ajax請求,看見了network面板多了一個http請求,至於底層是如何實現的,咱們並不關心。前端
應⽤層
負責處理特定的應⽤程序細節。運輸層
運輸層主要爲兩臺主機上的應⽤程序提供端到端的通訊。網絡層
處理理分組在⽹網絡中的活動,例例如分組的選路鏈路層
處理理與電纜(或其餘任何傳輸媒介)的物理理接⼝口細節常見網絡協議面試
下面重點講一下運輸層和網絡層ajax
運輸層有兩個比較重要的協議。tcp和udp。微信
大哥tcp是比較嚴謹認真、溫柔體貼、慢熱內向
的協議,發出去的消息,老是一個一個認真檢查,等待對方回覆和確認,若是一段時間內,對方沒有回覆確認消息,還會再次發送消息,若是對方回覆說你發的太快了,tcp還會體貼的把發送消息的速度下降。網絡
弟弟udp則比較可愛呆萌、調皮好動、不負責任的協議。哥哥tcp所具備的特色,弟弟udp一個也沒有。可是有的人說不清哪裏好 但就是誰都替代不了
,udp沒有tcp那些複雜的校驗和重傳等複雜的步驟,因此它發送消息很是快,並且並不保證對方必定收到。若是對方收不到消息,那麼udp就會呆萌的看着你,笑着對你說:我已經盡力了
。通常語音而視頻數據都是用udp協議傳輸的,由於音頻或者視頻卡了一下並不影響總體的質量,而對實時性的要求會更高。框架
運輸層關注的是端到端層面
,及End1到End2,忽略中間的任何點。網絡層關注兩點之間的層面
,即hop1如何到hop2,hop2如何到hop3網絡層並不保證消息可靠性
,可靠性上層的傳輸層負責。TCP採用超時重傳,分組確認的機制,保證消息不會丟失。從下圖tcp, udp, ip協議中,能夠發現tcp
上個章節講到運輸層和網絡層的區別,其中端口號被封裝在運輸層,ip被封裝到網絡層工具
那麼端口號和ip地址到底有什麼區別呢?學習
上面講的都是很基礎的知識,具體細數據報各個字段的含義,仍是須要看書的。紙上得來終覺淺,絕知此事要抓包。邊看書邊學習抓包。要學會使用wireshark工具,可以熟練使用netstat去發現tcp連接的相關問題。spa
有人說這本書太厚,偷偷告訴你,其實這本書並厚,由於這本書的後面的30%部分都是附錄,這本書的精華是前50%的部分
這兩本圖解的書,知識點講的都是比較通俗易懂的,適合入門
這本書,讓你知其然,更知其因此然
這兩本書,會讓你從不一樣角度思考協議
若是你看了不少書,卻歷來沒有試過網絡抓包,那你只是懂紙上談兵罷了。你永遠沒法理解tcp三次握手的怦然心動,與四次分手的刻骨銘心。
很是好看,引人入勝的科普書籍,做者戶根勤從軟件到硬件,方方面面造詣都很深。
掃碼訂閱個人微信公衆號:洞香春天
。天天一篇技術短文,讓知識再也不高冷。