1.資料報首部
資料報= 乙太網包首部+ip包首部+tcp包首部+資料
其中: ip包首部+tcp包首部+資料的組合是乙太網資料
tcp包首部+資料的組合是ip中的資料
資料是tcp中的資料
2. 包、幀、資料報、段、訊息 術語區分
包是全能性術語
幀用於表示資料鏈路層中包的單位
資料報是tcp和udp等網路層以上的分層中包的單位
訊息是只應用協議中的資料的單位
3. 以傳送郵件為例展示tcpip傳送過程
3.1 應用程式處理
啟動應用程式新建郵件->填好收件人郵箱->由鍵盤輸入郵件內容->應用程式進行編碼處理
->在傳送的那一刻建立tcp連線,將應用的資料傳送給下一層的tcp
3.2 tcp模組的處理
在應用層資料前新增tcp首部->將附加了tcp首部的包傳送給ip
其中,tcp首部包括源埠號、目標埠號(用於識別傳送與接收主機上的應用)、序號(用於表示該包中資料是傳送端整個資料中第幾位元組的序列號)、校驗和(用於判斷資料是否被損壞)
3.3 ip模組的處理
在tcp首部的前端新增ip首部->根據參考路由控制表將ip包傳送給連線這些路由器或主機網路介面的驅動程式,實現真正的傳送資料
其中,ip首部包括接收端ip位址、傳送端ip位址。緊隨ip首部的還有用來判斷其後面資料是tcp還是udp的資訊
若不知道收端mac,根據arp查詢,然後將mac位址和ip位址交給乙太網的驅動程式,實現資料傳輸
3.4 網路介面(乙太網驅動)的處理
給資料附加乙太網首部->進行傳送處理,通過物理層傳輸給接收端
其中,乙太網首部包含接收端mac、傳送端mac、標誌乙太網型別的乙太網資料的協議
傳送處理中的fcs由硬體進行計算,新增到包的最後
4.資料報接收過程
4.1 網路介面(乙太網驅動)的處理
主機接收到乙太網包->從乙太網首部找到mac位址判斷是否是傳送給自己的包->如果不是就丟棄,如果是查詢乙太網包首部中的型別域確定乙太網協議傳送過來的資料型別(上一層協議型別)。->此處為ip包,於是將資料傳給ip模組
4.2 ip模組的處理
4.3 tcp模組的處理
計算校驗和,判斷資料是否被破壞->檢查是否在按序號接收資料->檢查埠號,確定具體的應用程式->資料接收完畢後接收端傳送乙個確認回執的資訊到傳送端,並把完整的資料傳給由埠號識別的應用程式
傳送端未收到回執會一直重傳
4.4 應用程式的處理
解析資料,發現收件人位址是乙的位址,若主機上沒有乙的郵箱,則返回給傳送端「無此收件位址」,若有則「處理正常」
然後乙開啟郵箱後就可以看到內容啦
TCP IP通訊流程
tcp ip協議族進行網路通訊時,通過分層順序與對方進行通訊。傳送端從應用層往下走,接收端從鏈路層往上走。傳送端在應用層 http協議 發出乙個想看某個web頁面的http請求。接著,為了傳輸方便,在傳輸層 tcp協議 把從應用層處收到的資料 http請求報文 進行分割,並在各個報文上打上標記序號及...
TCP IP通訊過程
1 乙太網幀格式 ip資料報格式 tcp段格式 udp段格式 詳解 2 tcp 的那些事兒 上 酷殼 陳皓 3 雲風的 blog 4 抓包神器 tcpdump!我還真沒用過 5.大白話告訴你 tcp 為什麼需要三次握手四次揮手 6.三次握手,四次揮手 你真的懂嗎?7.硬核 30張圖帶你搞懂!路由器,...
socket通訊流程
原文 對 tcp ip udp socket 程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission...