1. 程式人生 > >資料段、資料報、資料包、幀的區別與聯絡

資料段、資料報、資料包、幀的區別與聯絡

幀與資料包

首先不容易理解的是資料包

資料包,就是從最上層,一層一層封裝,直到網路層的,最後藉由資料鏈路層傳送出去的資料單元。

幀,是資料鏈路層的傳輸單元。

這麼一看,資料包和幀好像沒什麼不一樣,好像資料傳遞的都是一樣的。可是為什麼會把它們區分開呢?學習 TCP/IP 協議的同學應該都知道,資料鏈路層中有 MTU 這樣一個東西,它是幀最大傳輸單元。

資料包是一個完整的資料單元,但是如果資料包的大小超過了 MTU 呢?所以,可能許多幀組合在一起,才能形成一個完整的資料包,這就是幀和資料包的關係。

資料包與資料報

說完了資料包與幀,那麼資料包與資料報又是什麼關係呢?

資料包是整個的資料單元,那麼資料報就是組成這一個資料單元的分組。每一層封裝後的資料都可以稱作資料報也就是說,一個完整的資料包是有若干個資料報組成的。

而和幀不同的是,幀是作為資料鏈路層的傳輸單元,而資料報資料包的分組。

資料段

在看協議的時候,有了一個疑問,那就是同是在傳輸層的 TCP 和 UDP 兩個協議,一個稱為 TCP 資料段,一個稱為 UDP 資料報。這是為啥嘞?

原來上面的資料報還有一條,資料報是面向無連線傳輸的協議,而 TCP 是面向連線的協議。

UDP 是無連線的協議,就是隨著 IP 一起傳輸就可以了,不必去管連線和分組問題。可是 TCP 不一樣了,面向連線,在資料部分很大的時候,要分組。這樣每個分組就稱為 TCP 資料段。這些 TCP 段組成了一個完整的 TCP 資料報。