以下情境中“消息分类”是什么?
TCP和UDP之间的一个区别是UDP保留了消息 边界。
我理解 TCP 和 UDP 之间的区别,但不确定“消息边界”的定义。由于UDP包含每个数据包中的目的地和端口信息,是否可以为消息提供“边界”?
答案 0 :(得分:21)
不,消息边界与目标或端口无关。 “消息边界”是通过协议发送的两个消息之间的分离。 UDP保留消息边界。如果您通过UDP发送“FOO”然后“BAR”,另一端将收到两个数据报,一个包含“FOO”,另一个包含“BAR”。
如果通过TCP发送“FOO”然后发送“BAR”,则不会保留任何消息边界。另一端可能会“FOO”然后“BAR”。或者它可能会得到“FOOBAR”。或者它可能会得到“F”然后是“OOB”然后是“AR”。 TCP不会尝试保留应用程序消息边界 - 它只是每个方向的字节流。
答案 1 :(得分:2)
此上下文中的消息边界仅仅是开始和放大。消息/数据包的结尾。使用TCP连接时,所有消息/数据包将组合成连续的数据流,而使用UDP时,消息将以原始形式提供给您。它们将具有精确的字节大小。