一文教会实战网络抓包和分析包(12)


文章插图
 
发送方使用了 Nagle 算法 , 接收方使用了 TCP 延迟确认会发生如下的过程:
 

  • 发送方先发出一个小报文 , 接收方收到后 , 由于延迟确认机制 , 自己又没有要发送的数据 , 只能干等着发送方的下一个报文到达;
  • 而发送方由于 Nagle 算法机制 , 在未收到第一个报文的确认前 , 是不会发送后续的数据;
  • 所以接收方只能等待最大时间 200 ms 后 , 才回 ACK 报文 , 发送方收到第一个报文的确认报文后 , 也才可以发送后续的数据 。
 
很明显 , 这两个同时使用会造成额外的时延 , 这就会使得网络"很慢"的感觉 。
要解决这个问题 , 只有两个办法:
 
  • 要不发送方关闭 Nagle 算法
  • 要不接收方关闭 TCP 延迟确认
 
参考资料:
[1] Wireshark网络分析的艺术.林沛满.人民邮电出版社.
[2] Wireshark网络分析就这么简单.林沛满.人民邮电出版社.
[3] Wireshark数据包分析实战.Chris Sanders .人民邮电出版社.读者问答

【一文教会实战网络抓包和分析包】


推荐阅读