【计算机网络】TCP IP通信处理过程
1.數據包首部
每個分層中都會對所發送的數據附加一個首部,其中包含了該層必要的信息,如發送端地址、接收端地址以及協議等相關信息。
2.發送數據包
1)應用程序處理
進行編碼處理(相當于表示層功能),管理何時建立通信何時發送數據等功能(相當于會話層功能)。建立連接后將數據發送給下一層的TCP,再做實際的轉發處理。
2)TCP模塊的處理
TCP根據應用的提示,負責建立連接、發送數據以及斷開連接。提供可靠傳輸。
在數據前端附加一個TCP首部,包括源端口號、目標端口號(用以識別發送主機跟接收主機上的應用)、序號以及校驗和(判斷數據是否被損壞)。再將數據發送給IP。
3)IP模塊的處理
IP在TCP傳過來的數據前附加IP首部,包括接收端IP、發送端IP、上層協議等信息。
IP包生成后,參考路由控制表決定接收此IP包的路由或主機。隨后將數據發送給連接這些路由器或主機網絡接口驅動程序,以實現真正的數據發送。
如果不知道接收端MAC地址,則通過ARP查找。
4)網絡接口(以太網驅動)的處理
在接收到的數據前面附加以太網首部進行發送處理。以太網首部中包含接收端MAC地址、發送端MAC地址以及標志以太網類型的以太網數據協議。發送處理中的FCS由硬件計算,添加到包的最后。FCS為了判斷數據包在傳輸過程中是否被破壞。
3.經過數據鏈路的包
包流動時,從前往后依次被附加了以太網包首部、IP包首部、TCP包首部(或UDP包首部)以及應用自己的包首和數據。而包的最后則被添加了以太網包尾。
每個包首部中至少包含兩個信息:一個是發送端和接收端地址,另一個是上一層的協議類型。
經過每個協議分層時,都必須有識別包發送端和接收端的信息。以太網會用MAC地址,IP會用IP地址,而TCP/IP則會用端口號作為識別兩端主機的地址。
4.數據包接收處理
包的接收流程是發送流程的逆序過程。
1)網絡接口(以太網驅動)的處理
主機接收到以太網包以后,首先從包首部找到MAC地址判斷是否為發給自己的包。如果不是則丟棄數據。
如果是發給自己的包,就查找包首部中的類型域,確定傳送過來的數據類型,傳給相應的子程序進行處理(若是IP類型作為傳給IP,若是ARP類型則傳給ARP處理),若沒有對應的類型,則丟棄數據。
2)IP模塊的處理
IP模塊收到包以后,做相似處理。如果包首部的IP地址與自己的IP地址匹配,則接收數據并查找上一層協議。如果上一層是TCP就傳給TCP處理,如果是UDP則傳給UDP處理。對于路由器,往往接收端地址不是自己的地址,此時需要借助路由控制表轉發數據。
3)TCP模塊的處理
TCP模塊首先會計算校驗和,判斷數據是否被破壞。然后檢查是否按照序號接收數據。最后檢查端口號,確定具體的應用程序。
數據接收完畢后,接收端會發送一個“確認回執”給發送端。如果該信息一直未到達,那么發送端會認為接收端沒有接收數據而一直反復發送。
數據完整地接收以后,會傳給由端口號識別的應用程序。
4)應用程序的處理
接收端應用程序會直接接收發送的數據。如果接收正常,會返回“處理正常”的回執,否則會發送相應的錯誤信息。
——《圖解TCP IP》學習筆記
總結
以上是生活随笔為你收集整理的【计算机网络】TCP IP通信处理过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哈利波特魔法觉醒回响罗恩怎么样
- 下一篇: 【计算机网络】数据链路相关技术