代码之家  ›  专栏  ›  技术社区  ›  Benny

TCP/IP通信发送方-接收方不同进程速度问题

tcp
  •  0
  • Benny  · 技术社区  · 15 年前

    在我的程序中,接收者有更大的工作量,我应该让发送者通过应用程序级ACK等方法等待接收者吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   JSBÕ±Õ¸Õ£Õ¹    15 年前

    您不应该直接发送TCP ACK消息——这些消息由操作系统在较低的级别处理。我将按照可能性的顺序看以下内容:

    • 接收器是否有一些简单的优化?很少有人能比接收器处理数据更快地填满网络管道。确保接收器至少有两个线程:网络I/O线程和工作线程。
    • 如果接收器开始恐慌,它可能会向服务器发送油门信息,这会使服务器冷却脚跟,直到接收器赶上。这比在每条消息后等待ACK消息更有效,但它要求接收者知道消息的时间。 关于 落后,这可能很困难。
    • 或者,最慢但最可靠的事情是让接收者确认来自服务器的每一条消息,就像您提到的那样。这不是TCP ACK,而是发送方/接收方用于通信的数据格式的特殊消息。