以下上下文中的“消息边界”是什么?
One difference between TCP and UDP is that UDP preserves message boundaries.
我了解TCP 和UDP 之间的区别,但不确定“消息边界” 的定义。由于 UDP 在每个单独的数据包中包含目的地和端口信息,是否可以为消息提供“边界”?
最佳答案
不,消息边界与目的地或端口无关。 “消息边界”是通过协议(protocol)发送的两条消息之间的分隔。 UDP 保留消息边界。如果您通过 UDP 发送“FOO”,然后发送“BAR”,另一端将收到两个数据报,一个包含“FOO”,另一个包含“BAR”。
如果您通过 TCP 发送“FOO”,然后发送“BAR”,则不会保留任何消息边界。另一端可能会得到“FOO”,然后是“BAR”。或者它可能会得到“FOOBAR”。或者它可能会得到“F”,然后是“OOB”,然后是“AR”。 TCP 不会尝试保留应用程序消息边界——它只是每个方向上的字节流。
关于sockets - 什么是消息边界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9563563/