TCP可以处理永远不会在单个连接中结束的流吗?

时间:2012-01-22 18:21:02

标签: tcp

这更像是一个理论问题。让我们说有一个无限的数据源,它每秒都在推送数据。一些设备监视“太阳事件”,并且每隔纳秒(意味着它是一个连续的流)连续地向后端系统发送事件。后端系统希望通过TCP将实时数据传输到另一个远程系统。 TCP可以在单个TCP连接中处理无限数据流吗?

我知道序列号限制,但是使用TCP时间戳,序列号将正确地回绕,并且它不会造成问题。此外,假设系统具有几TB的内存(可以认为它接近无限的内存模型)。如果我只给出流开始的基地址,TCP是否能够在单个TCP连接中连续进行(分段,传输,重新传输等),而不必担心数据是否结束?

我的猜测是,因为TCP从不期望任何流长度参数,所以应该是可能的。我是对的吗?

1 个答案:

答案 0 :(得分:1)

基本上,是的。只要数据是字节('八位字节'),对齐,TCP流上的数据就可以在任何地方传输(参见任何路由器)。 TCP通信是一个字节流 - 它不关心消息边界。窗口协议具有内置的流控制,因此它应该都可以工作。