OSI模型、網際網協議模型

OSI模型和網際網協議模型對應關係如下圖所示:


       計算機網絡各層對等實體間交換的單位信息稱爲協議數據單元(protocol data unit,PDU)。按照協議與服務之間的關係(物理層除外),每層的PDU都是由緊鄰下層提供給本層的服務接口,作爲下層的服務數據單元(service data unit,SDU)傳遞給下層,並由下層間接完成本層的PDU交換。如果本層的PDU大小超過緊鄰下層的最大SDU限制,那麼本層還要事先把PDU劃分成若干個合適的片段讓下層分開載送,再在相反方向把這些片段重組成PDU。同一層內SDU作爲PDU的淨荷(頭部信息除外的信息)字段出現,因此可以說上層PDU由本層PDU(通過其SDU字段)承載。每層的PDU除用於承載緊鄰上層的PDU外,也用於承載本層協議內部通信所需的控制信息。

        應用層實體(如客戶或者服務器進程)間交換的PDU稱爲應用數據(application data),其中在TCP應用進程之間交換的是沒有長度限制的單個雙向字節流,在UDP應用進程之間交換的是其長度不超過UDP發送緩衝區大小的單個記錄(record)。

        傳輸層實體間交換的PDU稱爲消息(message),其中TCP的PDU特稱爲分節(segment)。消息或分節的長度是有限的。在TCP傳輸層中,發送端TCP把來自應用進程的字節流數據按順序經分割後封裝在各個分節中傳送給接收端TCP,其中每個分節所封裝的數據既可能是發送端應用進程單次輸出操作的結果,也可能是連續數次輸出操作的結果,而且每個分節所封裝的單次輸出操作的結果或者首尾兩次輸出操作的結果既可能是完整的,也可能是不完整的,具體取決於在連接建立階段由對端通告的最大分節大小(maximum segment size,MSS)以及外出接口的最大傳輸單元(maximun transmission unit,MTU)或外出路徑的MTU(如果網絡層具有路徑MTU發現功能,如IPv6)。分節除了用於承載應用數據外,也用於建立連接(SYN分節)、終止連接(FIN分節)、中止連接(RST分節)、確認數據接收(ACK分節)、刷送待發數據(PSH分節)、攜帶緊急數據指針(URG分節),而且這些功能(包括承載數據)可以靈活組合。 UDP傳輸層相當簡單,發送端UDP就把來自應用進程的單個記錄整個封裝在UDP消息中傳送給接收端UDP。

        網絡層實體間交換的PDU稱爲IP數據報(IP datagram),其長度有限:IPv4數據報最大65535字節,IPv6數據報最大65575字節。發送端IP把來自傳輸層的消息(或TCP分節)整個封裝在IP數據報中傳送。IP數據報由IP首部和所承載的傳輸層數據(即網絡層的SDU)構成。

        鏈路層實體間交換的PDU稱爲幀(frame),其長度取決於具體的接口。過長的IP數據報無法封裝在單個幀中,需要先對其SDU進行分片,再把分成的各個片段冠以新的IP首部封裝到多個幀中。在一個IP數據報從源端到目的端的傳送過程中,分片操作既可能發生在源端,也可能發生在途中,而其重做一般只發生在目的端。TCP/IP協議族爲提高效率會儘可能避免IP的分片/重組操作:TCP根據MSS和MTU限定每個分節的大小。IPv6禁止在途中的分片操作(基於其路徑MTU發現功能),IPv4也儘量避免這種操作。不論是否分片,都由IP數據報作爲鏈路層的SDU傳入鏈路層,並由鏈路層封裝在幀中的數據稱爲分組(packet,俗稱包)。可見一個分組既可能是一個完整的IP數據報,也可能是某個數據報的SDU的一個片段被冠以新的IP首部後的結果。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章