【问题标题】:Live TCP Connection constraints实时 TCP 连接约束
【发布时间】:2020-06-17 16:28:24
【问题描述】:

我正在从事一个涉及使用套接字进行 TCP 通信的遗留 VB6 项目。

应用程序需要长寿命的套接字连接,但我怀疑它在多大程度上是可能的。 应用程序在 Windows 操作系统中运行。 如果在建立套接字连接并且定期交换一些数据后,比如 30 秒, 连接会永远存在吗?操作系统或 TCP 堆栈或网络提供商是否有任何限制?

【问题讨论】:

  • "需要长寿命的套接字",不,这总是一个坏主意,因为 TCP 套接字需要在路径上的不同位置分配资源。因此,公平地说,您不应该长时间使用连接。不要克服任何超时...如果您使用虚拟数据包来使连接处于活动状态,那么重新连接可能会对您起到完全相​​同的作用,不是吗?
  • 亲爱的@ Jean-Baptiste Yunès,我们的应用程序侦听来自已连接网络调制解调器的嵌入式设备的连接。应用程序需要按计划的时间间隔从设备获取数据。如果我们在会话结束后关闭连接,我们需要在下一个时间间隔等待来自设备的连接请求。
  • 只要您能够应对断开连接(接受来自同一设备的新连接并恢复您正在做的事情),您应该没问题。只需将连续连接视为一种优化。但是您不能假设连接必须保持正常。如果你每 30 秒左右才获得一次数据,你并没有真正获得太多。 TCP 协议不会中断您的连接,但干预网络设备可能会。

标签: tcp vb6 winsock


【解决方案1】:

连续几个月连接 TCP 套接字没有技术限制。

只要服务器正在运行,Skype 就会与服务器建立 24/7 全天候 TCP 会话。

TCP 的理念是:

  • 同步
  • synack
  • 确认

现在您的连接已建立。除非出现一些技术问题(重新启动的机器),否则 TCP 连接将永远保持不变。是的,可能有各种边缘防火墙必须维护有关该 TCP/IPv6(或 TCP/IPv4)连接的状态信息 - 但这是防火墙的问题。

他们的工作是引导流量。如果他们不能处理 n 个打开的连接:那么他们需要重新设计。

【讨论】:

    猜你喜欢
    • 2015-04-26
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 2013-09-23
    相关资源
    最近更新 更多