報文、報文段、分組、包、數據報、幀、數據流的概念區別


1.報文(message)
我們將位於應用層的信息分組稱為報文。報文是網絡中交換與傳輸的數據單元,也是網絡傳輸的單元。報文包含了將要發送的完整的數據信息,其長短不需一致。報文在傳輸過程中會不斷地封裝成分組、包、幀來傳輸,封裝的方式就是添加一些控制信息組成的首部,那些就是報文頭。

2.報文段(segment)

通常是指起始點和目的地都是傳輸層的信息單元。

3.分組/包(packet)
分組是在網絡中傳輸的二進制格式的單元,為了提供通信性能和可靠性,每個用戶發送的數據會被分成多個更小的部分。在每個部分的前面加上一些必要的控制信息組成的首部,有時也會加上尾部,就構成了一個分組。它的起始和目的地是網絡層

4.數據報(datagram)
面向無連接的數據傳輸,其工作過程類似於報文交換。采用數據報方式傳輸時,被傳輸的分組稱為數據報。通常是指起始點和目的地都使用無連接網絡服務的的網絡層的信息單元。

5.幀(frame)
幀是數據鏈路層的傳輸單元。它將上層傳入的數據添加一個頭部和尾部,組成了幀。它的起始點和目的點都是數據鏈路層。

6.數據單元(data unit)

指許多信息單元。常用的數據單元有服務數據單元(SDU)、協議數據單元(PDU)。

SDU是在同一機器上的兩層之間傳送信息。PDU是發送機器上每層的信息發送到接收機器上的相應層(同等層間交流用的)。

 

應用層——消息

傳輸層——數據段/報文段(segment) (注:TCP叫TCP報文段,UDP叫UDP數據報,也有人叫UDP段)

網絡層——分組、數據包(packet)

鏈路層——幀(frame)

物理層——P-PDU(bit)

其實,segment,datagram,packet,frame是存在於同條記錄中的,是基於所在協議層不同而取了不同的名字。我們可以用一個形象的例子對數據包的概念加以說明:我們在郵局郵寄產品時,雖然產品本身帶有自己的包裝盒,但是在郵寄的時候只用產品原包裝盒來包裝顯然是不行的。必須把內裝產品的包裝盒放到一個郵局指定的專用紙箱里,這樣才能夠郵寄。這里,產品包裝盒相當於數據包,里面放着的產品相當於可用的數據,而專用紙箱就相當於幀,且一個幀中通常只有一個數據包。
 

TCP數據流(TCP stream)

Wireshark中是這么定義的:相同四元組(源地址,源端口,目的地址,目的端口)的包就為一條TCP流,即一條流有很多個包。

 [IP address A, TCP port A, IP address B, TCP port B]

All the packets for the same tcp.stream value should have the same values for these fields (though the src/dest will be switched for A->B and B->A packets).

the stream index is an internal Wireshark mapping to: [IP address A, TCP port A, IP address B, TCP port B]

All the packets for the same tcp.stream value should have the same values for these fields (though the src/dest will be switched for A->B and B->A packets)

see the Statistics/Conversations/TCP tab in Wireshark to show a summary of these streams.

 

以下用Wireshark實際抓包說明一下:

一個包就是一行記錄,可看出是從No.1開始計數的。

點擊Follow->TCP Stream可查看該包所屬的流:

可看出wireshark中流是從0開始計數的,這個流序號沒什么意義,只是為了唯一標識一條流(Stream indexes are Wireshark-internal. It just uses a number to uniquely identify a TCP stream.),該流有3個客戶端包,40個服務端包,最左邊的packet 2 表示鼠標點擊的這個包在全部包序列中的序號。

點擊Statistics->Conversations

(注:我的ipv4地址是公網ip,所以做了馬賽克處理,ipv6是臨時ip就無所謂了。)

可看到:TCP流有24條,UDP流有26條。IPv4流有19條,IPv6流有11條,為什么IPv4+IPv6流總數小於TCP+UDP流呢?

因為IP流沒有端口,只考慮相同二元組(源ip,目的ip):

 

參考鏈接:https://stackoverflow.com/questions/6076897/follow-tcp-stream-where-does-field-stream-index-come-from


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM