一:前情概述
互聯網將世界角落的計算機連接成一體的網絡,溝通就需要定製通用協議標準進行規範。如HTTP、SMTP、NFS、SNMP、IP、TCP、UDP等等耳熟能詳的協議,單一職責是優秀的設計理念,TCP/IP協議模型可以理解爲不同職責協議的組合,從而形成完整的國際協議標準模型
二:網絡分層
優秀的架構理所當然需要保持模塊獨立,各司所職,TCP/IP協議模型將不同職責的協議劃分爲四個分層即:應用層、傳輸層、網絡層、鏈路層
三:應用層
直接與用戶交互處理特定的應用程序細節,借用掘金王師傅的一句話:應用層本質是規定了應用程序之間如何傳遞報文
,更直白理解就是應用層的協議都定義了本次請求的目的,不同目的請求的報文自然有着不同的組成。下表爲常見應用層協議作用:
編碼 | 協議名稱 | 協議作用 |
---|---|---|
1 | HTTP | 全稱Hyper Text Transfer Protocol超文本傳輸協議,簡單理解就是維護客戶端與服務端文件傳輸的協議 |
2 | DNS | 域名系統,域名與IP地址之間的轉換 |
3 | SMTP | 郵件傳輸協議,寫過發送郵件功能代碼應該就對該協議不陌生 |
4 | NFS | 網絡文件服務協議,簡單理解就是文件共享,訪問遠程文件就像訪問本地一樣 |
四:傳輸層
傳輸層並不會直接傳輸數據,抽象來講就是建立一個端到端的邏輯通信。比如傳輸層中的TCP協議,通過三次握手創建連接、四次揮手斷開連接。它會把應用層組裝數據分隔爲大小合適的包然後交由下面兩層協議進行實際數據傳輸,其自身主要在於控制:超時重傳、流量控制、校驗和、重排序等
編碼 | 協議名稱 | 協議作用特點 |
---|---|---|
1 | TCP | 可靠的(reliable)、面向連接的(connection-oriented)、基於字節流(byte-stream)、全雙工(full-duplex)的協議 |
2 | UDP | 用戶數據報協議,僅僅提供數據不可靠的交付 |
五:網絡層
也被稱做互聯網層,處理分組在網絡中的活動。例如網絡層中主要被使用的IP協議
編碼 | 協議名稱 | 協議作用 |
---|---|---|
1 | IP | 被運輸層TCP、UDP協議使用,互聯網中的數據傳輸就是通過IP協議 |
2 | ICMP | IP協議附屬協議,用於交換錯誤報文或者其它信息 |
3 | IGMP | 將UDP數據報多播到多個主機 |
六:鏈路層
有時也稱作數據鏈路層或網絡接口層,通常包括操作系統中的設備驅動程序和計算機中對應的網絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節