TCP/IP協議-封裝和分用
阿新 • • 發佈:2018-12-20
資料進入協議棧時的封裝過程
由於TCP、UDP、ICMP和IGMP都要向IP傳送資料,因此IP必須在生成的IP首部中加入某種標識,以表明資料屬於哪一層。為此, IP在首部中存入一個長度為8 bit的數值,稱作協議域。 1表示為ICMP協議,2表示為IGMP協議,6表示為TCP協議,17表示為UDP協議。
許多應用程式都可以使用 TCP或UDP來傳送資料。運輸層協議在生成報文首部時要存入一個應用程式的識別符號。 TCP和UDP都用一個16 bit的埠號來表示不同的應用程式。TCP和UDP把源埠號和目的埠號分別存入報文首部中。
網路介面分別要傳送和接收 IP
分用
當目的主機收到一個乙太網資料幀時,資料就開始從協議棧中由底向上升,同時去掉各層協議加上的報文首部。每層協議盒都要去檢查報文首部中的協議標識,以確定接收資料的上層協議。這個過程稱作分用(Demultiplexing),圖1 - 8顯示了該過程是如何發生的。
- 為協議ICMP和IGMP定位一直是一件很棘手的事情。在圖1 - 4中(本人部落格:TCP/IP協議-分層),把它們與IP放在同一層上,那是因為事實上它們是IP的附屬協議。但是在這裡,我們又把它們放在IP
層的上面,這是因為ICMP和IGMP報文都被封裝在IP資料報中。- 對於ARP和RARP,在這裡把它們放在乙太網裝置驅動程式的上方,這是因為它們和IP資料報一樣,都有各自的乙太網資料幀型別。但我們又把ARP和RARP作為乙太網裝置驅動程式的一部分,放在 IP層的下面,其原因在邏輯上是合理的
參考書籍:《TCP/IP詳解卷1-協議》