在我只能使用UDP
和ICMP
协议的情况下,我如何发现(以字节为单位)路径MTU用于从我的计算机到目标 IP 的数据包传输?
答案1
我相信您正在寻找的东西,最容易通过以下方式获得traceroute --mtu <target>
;也许-6
根据您的兴趣添加一个开关以进行良好的测量。 Linuxtraceroute
默认使用 UDP,如果您相信使用 ICMP 运气更好,也可以尝试一下-I
。
答案2
在 CentOS5 上快速搜索apropos mtu
结果是:
tracepath
跟踪网络主机的路径,沿着该路径发现 MTU
该命令甚至可以在用户空间中无特权地运行。
答案3
在 Python 下,您只需安装一次即可:
pip install ofunctions.network
然后你可以运行下面的python代码
from ofunctions.network import probe_mtu
print(probe_mtu(target_IP))
这是最简单的语法,但您也可以强制 ICMPv6 或 ICMPv4 发现,并限制最小和最大探测设置,以便更快地进行探测。
免责声明:我是 ofunctions 的作者;)