找出ip数据包在网络中经过的路由

有两种方法

  1. 利用icmp协议,icmp协议一般用于传递udp、tcp报文的差错信息,但是也有个选项可以被配置成为可以记录沿路的路由ip的功能(在icmp报文的首部有类型和代码两个字段,被分别配置为8和0的时候)。使用ping -R的形式可以查看ip记录路由。这时候每一个接到该数据包的路由器都会在ip数据包的选项字段中加入自己的ip地址。但是选项字段的空间是有限的,最多只能记录下9个ip地址,因此这种查看路由的方式是有限制的。

  2. 另外一种方式是利用traceroute程序。在ip数据报有一个字段叫做ttl,当一个路由器接到一个ttl为0或者1的数据包时,假设数据包的目的ip并不是该路由,那么此时该数据包不会再被往下传输了,只会返回一个icmp报文(具体类型是传送超时)给源主机。根据这个特点,可以发出一个ttl设置为1的数据包,那么源主机就会收到一个从第一个路由发来的icmp报文,记录下发送端的ip,然后源主机发出一个ttl为2的报文,那么源主机就会收到第二个路由发来的icmp报文,再次记录下发送端的ip,像这样一直类推的话就可以一直到最后一站。但是最后一站有些特别,因为这时候发出的IP数据包的目的地已经到了,即使此时的ttl为0了也不会发出一个超时的icmp的。这时候就该利用icmp的另一项功能了。当目的端口在不可达的时候(可能是由于目的主机并没有开放该端口),目的主机会返回一个端口不可达的icmp报文。利用这个功能,发出一个端口设置为一个不常用的数字的udp数据包,当发现返回的icmp是端口不可达的类型时,说明已经到达目的主机了。traceroute程序就是这样的原理。

缺陷

  1. 对于traceroute程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值