tcp / ip通信发送器接收器不同的进程速度问题

时间:2010-03-12 04:44:56

标签: tcp

在我的程序中,接收器有更大的工作量,我是否应该通过应用程序级别的ACK等方式让发送方等待接收方?

1 个答案:

答案 0 :(得分:1)

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

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