一篇文章帶你熟悉 TCP/IP 協議-(一)

一篇文章帶你熟悉 TCP/IP協議-(一)- https://segmentfault.com/a/11...
一篇文章帶你熟悉 TCP/IP協議-(二)- https://segmentfault.com/a/11...
一篇文章帶你熟悉 TCP/IP協議-(三)- https://segmentfault.com/a/11...

1、 計算機網絡體系結構分層

一圖看完本文

計算機網絡體系結構分層

計算機網絡體系結構分層

不難看出,TCP/IP 與 OSI 在分層模塊上稍有區別。OSI 參考模型注重「通訊協議必要的功能是什麼」,而 TCP/IP 則更強調「在計算機上實現協議應該開發哪一種程序」。前端

2、 TCP/IP 基礎

1. TCP/IP 的具體含義

從字面意義上講,有人可能會認爲 TCP/IP 是指 TCP 和 IP 兩種協議。實際生活當中有時也確實就是指這兩種協議。然而在不少狀況下,它只是利用 IP 進行通訊時所必須用到的協議羣的統稱。具體來講,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都屬於 TCP/IP 協議。他們與 TCP 或 IP 的關係緊密,是互聯網必不可少的組成部分。TCP/IP 一詞泛指這些協議,所以,有時也稱 TCP/IP 爲網際協議羣。互聯網進行通訊時,須要相應的網絡協議,TCP/IP 本來就是爲使用互聯網而開發制定的協議族。所以,互聯網的協議就是 TCP/IP,TCP/IP 就是互聯網的協議。segmentfault

網際協議羣

2. 數據包包、幀、數據包、段、消息以上五個術語都用來表述數據的單位,大體區分以下:
  • 包能夠說是全能性術語;
  • 幀用於表示數據鏈路層中包的單位;
  • 數據包是 IP 和 UDP 等網絡層以上的分層中包的單位;
  • 段則表示 TCP 數據流中的信息;
  • 消息是指應用協議中數據的單位。

每一個分層中,都會對所發送的數據附加一個首部,在這個首部中包含了該層必要的信息,如發送的目標地址以及協議相關信息。一般,爲協議提供的信息爲包首部,所要發送的內容爲數據。在下一層的角度看,從上一層收到的包所有都被認爲是本層的數據。網絡

數據包首部

網絡中傳輸的數據包由兩部分組成:一部分是協議所要用到的首部,另外一部分是上一層傳過來的數據。首部的結構由協議的具體規範詳細定義。在數據包的首部,明確標明瞭協議應該如何讀取數據。反過來講,看到首部,也就可以瞭解該協議必要的信息以及所要處理的數據。包首部就像協議的臉。編碼

3. 數據處理流程

下圖以用戶 a 向用戶 b 發送郵件爲例子:spa

數據處理流程

  • ① 應用程序處理
    首先應用程序會進行編碼處理,這些編碼至關於 OSI 的表示層功能;編碼轉化後,郵件不必定立刻被髮送出去,這種什麼時候創建通訊鏈接什麼時候發送數據的管理功能,至關於 OSI 的會話層功能。
  • ② TCP 模塊的處理
    TCP 根據應用的指示,負責創建鏈接、發送數據以及斷開鏈接。TCP 提供將應用層發來的數據順利發送至對端的可靠傳輸。爲了實現這一功能,須要在應用層數據的前端附加一個 TCP 首部。
  • ③ IP 模塊的處理
    IP 將 TCP 傳過來的 TCP 首部和 TCP 數據合起來當作本身的數據,並在 TCP 首部的前端加上本身的 IP 首部。IP 包生成後,參考路由控制表決定接受此 IP 包的路由或主機。
  • ④ 網絡接口(以太網驅動)的處理
    從 IP 傳過來的 IP 包對於以太網來講就是數據。給這些數據附加上以太網首部並進行發送處理,生成的以太網數據包將經過物理層傳輸給接收端。
  • ⑤ 網絡接口(以太網驅動)的處理
    主機收到以太網包後,首先從以太網包首部找到 MAC 地址判斷是否爲發送給本身的包,若不是則丟棄數據。若是是發送給本身的包,則從以太網包首部中的類型肯定數據類型,再傳給相應的模塊,如 IP、ARP 等。這裏的例子則是 IP 。
  • ⑥ IP 模塊的處理
    IP 模塊接收到 數據後也作相似的處理。從包首部中判斷此 IP 地址是否與本身的 IP 地址匹配,若是匹配則根據首部的協議類型將數據發送給對應的模塊,如 TCP、UDP。這裏的例子則是 TCP。另外嗎,對於有路由器的狀況,接收端地址每每不是本身的地址,此時,須要藉助路由控制表,在調查應該送往的主機或路由器以後再進行轉發數據。
  • ⑦ TCP 模塊的處理
    在 TCP 模塊中,首先會計算一下校驗和,判斷數據是否被破壞。而後檢查是否在按照序號接收數據。最後檢查端口號,肯定具體的應用程序。數據被完整地接收之後,會傳給由端口號識別的應用程序。
  • ⑧ 應用程序的處理接收端應用程序會直接接收發送端發送的數據。經過解析數據,展現相應的內容。
相關文章
相關標籤/搜索