如何在使用IOCP时识别TCP回退?即如何才能发现接收方没有收到,连接两端的tx / rx缓冲区已满,发送方应该停止发送更多数据?
答案 0 :(得分:3)
使用任何异步TCP发送操作,确定对等方接收数据的速率的方法是监视发送方的发送完成率。
我已经深入了解了这一点here。总之,当接收器的缓冲区填满并且TCP流控制正在运行并且TCP窗口减少时,发送方不能发送导致发送方的TCP缓冲区填充的内容。这意味着异步发送请求无法完成。如果您跟踪待处理的未完成发送请求的数量,您可以发现这种情况并限制发件人。
答案 1 :(得分:2)
发生这种情况时,发送不会完成。