探测 TCP 乱序问题

💡 原文中文,约3800字,阅读约需9分钟。
📝

内容提要

TCP协议基于IP协议,遇到下载速度慢的问题,抓包发现乱序包。使用traceroute和mtr工具探测乱序节点。利用TCP traceroute原理,保持local port不变探测乱序。测试发现乱序在hop 4到hop 5之间。

🎯

关键要点

  • TCP协议基于IP协议,IP协议不保证包的顺序,可能导致TCP性能下降。
  • 下载速度慢的问题通过抓包分析发现有乱序包。
  • traceroute工具利用TTL字段探测网络路径,识别中间节点。
  • mtr工具结合了traceroute和ping,提供每个节点的延迟信息。
  • 网络中可能存在多条路径,导致数据包乱序。
  • mtr的TCP traceroute功能可以探测中间转发节点,使用TCP包而非ICMP。
  • 保持local port不变可以确保相同四元组走同一路径,减少乱序。
  • 使用scapy编写代码进行TCP multipath探测,发送不同TTL的包。
  • 实际测试中发现ICMP响应不稳定,可能导致探测结果不准确。
  • 通过日志分析发现hop 4到hop 5之间出现了多个IP,表明存在多路径问题。
➡️

继续阅读