探测 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,表明存在多路径问题。
➡️