协议术语:消息与数据包的区别

12

实践中,在高级协议(例如在TCP/IP之上的协议)中传输到网络上的通信,最合适的术语是什么?具体而言,我指的是小型二进制数据单元。

我在一些客户端/服务器库中看到过“message”和“packet”两种术语,但我想知道社区的共识是什么。


1
我会称单个TCP PDU为“段”,而不是“消息”或“数据包”,因为TCP使用MSS(最大段大小)来确定它可以在一个IP PDU负载(进而是一个以太网PDU负载)上发送多少数据。以太网PDU我称之为数据报,IP PDU我称之为数据包,TCP / UDP PDU我称之为段。我想对于上述TCP,“消息”也可以,我听说过几次。 - jwbensley
4个回答

15

这些肯定是信息。 "数据包"是一种层-3(在ISO术语中)协议单元,例如IP数据包; 而"分组"是一种层-1或层-2单元,例如可能组成IP数据包片段的多个以太网分组。

因此,如果您正在使用诸如TCP之类的流媒体协议,则消息可能会跨越多个数据包,而数据包可能会跨越多个数据报。


2

这只是我的看法。它可能取决于你所从事的级别。当我想到整个传输(所有标题、数据等)时,我会称之为消息。而在TCP/IP中,尤其是一个数据包只是消息的一部分。多个数据包被推送到网络上,组成一个完整的消息。


1

msgs是网络层中的数据包。

它是传输层TCP协议中的分段。

它是应用层HTTP或FTP中的消息。


1

我认为数据包指的是在较低层(如以太网)传输的数据块,而消息则用于更高级别的信息交换。

在我看来它们基本上是同一个意思...

编辑:

还有另一种术语叫做帧,在RFC 1122中定义为“链路层协议中的传输单位,由链路层头部后跟一个数据包组成。”[维基百科]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接