1. 程式人生 > 實用技巧 >《深入理解 TCP 協議:從原理到實戰》學習筆記 1

《深入理解 TCP 協議:從原理到實戰》學習筆記 1

當發出一個http請求時,如在瀏覽器輸入www.baidu.com並回車時,其流程如下所示:

應用層

應用層規定了應用程式之間如何相互傳遞報文,以HTTP協議為例,規定了:

  • 報文型別:請求或者是響應報文
  • 報文語法:分為幾段,每段的含義 分隔符 每個部分的每個欄位的含義
  • 程序應該以什麼樣的時序傳送報文和處理響應報文

HTTP報文格式由三部分組成:

  • 起始行:確定是請求還是響應報文
  • 首部(header):常見的K-V結構,如 Content-length
  • 可選的實體(entity):實體就是HTTP真正要傳輸的內容,比如傳輸的一段HTML

如下所示:

除了我們熟知的HTTP協議,還有下面這些非常常用的應用層協議

  • 域名解析協議 DNS
  • 郵件收發協議SMTPPOP3
  • 時鐘同步協議NTP
  • 網路檔案共享協議NFS

傳輸層

傳輸層的作用是為兩臺主機之間的應用程序提供端到端的邏輯通訊,相隔幾千公里的兩臺主機的程序可以直接進行通訊。傳輸層主要對傳輸行為進行控制,主要的協議有TCPUDPTCP主要為下面兩層協議提供資料包的重傳、流量控制、擁塞控制等。

傳輸層使用埠號來標識不同的應用程式,主機收到資料包以後根據目標埠號將資料包傳遞給對應的應用程式進行處理。比如常見的80埠,伺服器在接收到請求之後,將會把這個請求交給監聽80埠的應用程式(也有可能是Ngix等負載均衡器)處理。

網路互連層

網路互連層提供了主機到主機的通訊,將傳輸層產生的資料包封裝成分組資料包傳送到目標主機,並提供路由選擇的能力。這層的主要協議主要是IP

協議,TCPUDP都是使用IP協議作為網路層協議。這一層的主要作用就是給包加上源地址和目標地址,將資料包傳送到目標地址。

網路訪問層

網路訪問層也稱之為網路介面層,乙太網、WIFI以及藍芽都是在這一層,網路訪問層提供了主機連線到物理網路需要的硬體和相關協議。

整體分層圖如下所示:

分層好處

  • 限制了依賴關係範圍,各層之間使用標準化介面,各層之間不需要知道上下層如何工作
  • 靈活性更好
  • 易於測試和維護
  • 促進標準化