|
|
1
0
我认为这可能是路由问题。以上关于单向交通的其他评论仅适用于
两个方向的路线可能不同(如@ronmaupin所指出的)。或者可能只是在某个中间路由器的某个方向上存在大量拥塞。任何一种情况都可能导致数据包丢失。 面对这样丢掉的数据包,由于没有接收到ACK(我认为您已经正确地描述了),双方将继续重试他们的传输。初始重传时间基于每个端点机器计算的近似往返时间。随后的重传有一个指数退避——例如,请参见 http://www.pcvr.nl/tcpip/tcp_time.htm#21_2 为了解释。结果是最终超时。 考虑到指数退避和一定数量的重传(该数字是平台特定的,并且通常是可配置的),通常需要18秒以上的时间,本地网络堆栈才会宣布会话死机。但听起来您的应用程序可能用它自己的超时(对于游戏服务器来说似乎是合理的)来短路这个进程。 我怀疑你以前从未见过,因为一般来说,两个方向的路由是相同的,当路由器“向下”时,它在两个方向都向下。 |