速讀原著-TCP/IP(封裝)

1.6 封裝

當應用程序用 T C P傳送數據時,數據被送入協議棧中,然後逐個通過每一層直到被當作一串比特流送入網絡。其中每一層對收到的數據都要增加一些首部信息(有時還要增加尾部信息),該過程如圖 1 - 7所示。T C P傳給I P的數據單元稱作 T C P報文段或簡稱爲 T C P段(TCPsegment)。I P傳給網絡接口層的數據單元稱作 I P數據報(IP datagram)。通過以太網傳輸的比特流稱作幀(Frame)。

圖1 - 7中幀頭和幀尾下面所標註的數字是典型以太網幀首部的字節長度。在後面的章節中我們將詳細討論這些幀頭的具體含義。
以太網數據幀的物理特性是其長度必須在 4 6~1 5 0 0字節之間。我們將在 4 . 5節遇到最小長度的數據幀,在2 . 8節中遇到最大長度的數據幀。

所有的I n t e r n e t標準和大多數有關T C P / I P的書都使用o c t e t這個術語來表示字節。使用這個過分雕琢的術語是有歷史原因的,因爲T C P / I P的很多工作都是在D E C - 1 0系統上進行的,但是它並不使用8 bit的字節。由於現在幾乎所有的計算機系統都採用8 bit的字節,因此我們在本書中使用字節(byte)這個術語。

更準確地說,圖1 - 7中I P和網絡接口層之間傳送的數據單元應該是分組( p a c k e t)。分組既可以是一個I P數據報,也可以是I P數據報的一個片(f r a g m e n t)。我們將在11 . 5節討論IP數據報分片的詳細情況。
在這裏插入圖片描述
U D P數據與T C P數據基本一致。唯一的不同是 U D P傳給I P的信息單元稱作 U D P數據報(UDP datagram),而且U D P的首部長爲8字節。

回想1 . 3節中的圖1 - 4,由於T C P、U D P、I C M P和I G M P都要向I P傳送數據,因此I P必須在生成的I P首部中加入某種標識,以表明數據屬於哪一層。爲此, I P在首部中存入一個長度爲8 b i t的數值,稱作協議域。 1表示爲I C M P協議,2表示爲I G M P協議,6表示爲T C P協議,1 7表示爲U D P協議。

類似地,許多應用程序都可以使用 T C P或U D P來傳送數據。運輸層協議在生成報文首部時要存入一個應用程序的標識符。 T C P和U D P都用一個1 6 b i t的端口號來表示不同的應用程序。TCP和UDP把源端口號和目的端口號分別存入報文首部中。

網絡接口分別要發送和接收 I P、A R P和R A R P數據,因此也必須在以太網的幀首部中加入某種形式的標識,以指明生成數據的網絡層協議。爲此,以太網的幀首部也有一個 16 bit的幀類型域。

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