我有一个小的办公网络,并且正在经历巨大的Internet链接延迟。我们有一个简单的网络拓扑:配置为运行ubuntu服务器10.10的路由器的计算机,2个网卡(一个连接到Internet链接,另一个连接到办公网络)和一台连接20台计算机的交换机。我在路由器处收集了一个巨大的tcpdump日志,我想绘制一个直方图,其中RTT时间为所有 TCP流,以试图找到解决此延迟问题的最佳方法。因此,有人可以告诉我如何使用Wireshark或其他工具进行操作吗?
最佳答案
Wireshark或tshark可以使用 tcp.analysis.ack_rtt 为每个收到的ACK数据包提供TCP RTT,它可以测量捕获TCP数据包与该数据包的ACK之间的时间差。
您需要注意这一点,因为您的大多数ACK数据包将是的,您的办公室机器将ACK从互联网接收到的数据包,因此您将测量路由器看到Internet的数据包并查看来自您的ACK的RTT。办公机器。
要测量您的互联网RTT,您需要从互联网中查找ACK(确认从您的网络发送的数据)。假设您的办公室机器的IP地址为192.168.1.x,并且您已将所有数据记录在路由器的LAN端口上,则可以使用显示过滤器,如下所示:tcp.analysis.ack_rtt and ip.dst==192.168.1.255/24
要将RTT转储到.csv中进行分析,可以使用tshark命令,如下所示:tshark -r router.pcap -Y "tcp.analysis.ack_rtt and ip.dst==192.168.1.255/24" -e tcp.analysis.ack_rtt -T fields -E separator=, -E quote=d > rtt.csv
您可以使用mergecap实用程序将所有pcap文件合并为一个文件,然后再运行此命令。将此输出转换为直方图应该很容易!