TCP连接-保持还是重新连接?

4

我有一个关于TCP-IP通信的一般性问题...

目前,我正在尝试在ATMega和Raspberry Pi之间创建一个小型通信。我将通过TCP/IP协议每5分钟传输一些数据(例如100字节)。

是保持连接开启还是为每个数据集创建一个新连接更有意义呢?

感谢您的帮助...

webbolle


尽可能保持连接,但准备好在失败时重新连接。 - user207421
1个回答

3
我倾向于保持TCP连接的打开状态而不是每次都打开新的连接,原因如下。首先,通过使用相同的连接,您可以节省发送TCP握手消息(SYN消息)和拆除消息(FIN消息)的时间。在您的情况下,如果您要每5分钟传输100个字节,那么SYN / FIN消息的开销可能会更大。其次,如果您已经打开了连接,则由于无需重新连接,因此可以节省时间。第三,TCP可能会在每次启动连接时都进入慢启动状态 - 对于100个字节来说不应该是问题,但是如果您需要发送更多字节,则每次新连接时TCP都会从1 MSS开始其发送窗口。但是,如果您重用现有连接,则TCP将(可能)使用当前窗口。
另外:
已打开的连接除了在两个设备上占用端口外,不会消耗任何资源(带宽等)。基本上,未关闭的每个TCP连接仍然处于打开状态,保存意外断开等情况。检测这些情况是否保持打开或重新打开没有区别:如果在此期间连接中断,您将收到更多或更少相同的错误。

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