traceroute确定路径MTU
时间: 2023-07-19 11:57:31 浏览: 262
Traceroute无法直接确定路径的MTU,但可以通过使用不同大小的数据包进行探测来估计路径的MTU。
Traceroute发送的第一个数据包通常是最小的,因此如果该数据包的大小超过了某个路由器的MTU,则该路由器会将其分片。如果分片的数据包无法通过,则该路由器会向源发送ICMP“分片需要进行重组”错误消息。这个错误消息可以告诉源数据包的大小超过了该路由器的MTU。
通过逐渐增加数据包的大小并观察是否会出现分片错误消息,可以逐步确定路径的MTU。但是,这种方法不是完美的,因为某些路由器可能会屏蔽ICMP错误消息或不会正确报告MTU。因此,实际上需要使用其他工具来确定路径的MTU。
相关问题
traceroute命令用法
traceroute命令用于跟踪网络数据包从源地址到目的地址的路径。它通过向目标地址发送一系列的IP数据包,并在每个路由器上记录返回的数据包信息,以确定数据包在互联网上传输时经过的路径。以下是traceroute命令的用法:
```
traceroute [-dFITnreAUDV] [-f first_ttl] [-g gateway] [-i device] [-m max_ttl] [-p port] [-s src_addr] [-t tos] [-w waittime] [-q nqueries] [-z pausemsecs] host [packetsize]
```
其中,常用参数解释如下:
- `-d`:不进行DNS反向解析。
- `-F`:不使用IP分片(即不进行MTU探测)。
- `-I`:使用ICMP Echo请求代替UDP数据包。
- `-n`:不进行DNS解析。
- `-m max_ttl`:设置最大跃点数(默认为30)。
- `-p port`:设置UDP端口号(默认为33434)。
- `-q nqueries`:设置每个跃点的发送数据包个数(默认为3)。
- `-r`:忽略普通路由表,直接将数据包发送到目标地址或者下一跳地址。
- `-s src_addr`:设置源地址。
- `-t tos`:设置服务类型(TOS)字段。
- `-w waittime`:设置每个跃点的最大等待时间(默认为5秒)。
例如,要跟踪到目标主机`www.example.com`的路径,可以使用以下命令:
```
traceroute www.example.com
```
阅读全文