什么是消息边界?

什么是“消息bonudaries”在以下背景下?

TCP和UDP之间的一个区别是UDP保留了消息边界。

我理解TCPUDP之间的区别,但不确定“消息边界”的定义。 由于UDP包含每个数据包中的目的地和端口信息,是否可以为消息提供“边界”

不,消息边界与目标或端口无关。 “消息边界”是通过协议发送的两个消息之间的分离。 UDP保留消息边界。 如果您通过UDP发送“FOO”然后“BAR”,另一端将收到两个数据报,一个包含“FOO”,另一个包含“BAR”。

如果通过TCP发送“FOO”然后“BAR”,则不保留任何消息边界。 另一端可能会得到“FOO”,然后是“BAR”。 或者它可能会得到“FOOBAR”。 或者它可能会得到“F”然后是“OOB”然后是“AR”。 TCP不会尝试保留应用程序消息边界 – 它只是每个方向的字节流。

此上下文中的消息边界只是消息/数据包的开始和结束。 使用TCP连接,所有消息/数据包将组合成连续的数据流,而使用UDP时,消息将以原始forms提供给您。 它们将具有精确的字节大小。