博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Traceroute程序
阅读量:5832 次
发布时间:2019-06-18

本文共 1210 字,大约阅读时间需要 4 分钟。

  window系统可直接在命令行下使用tracert,如tracert www.baidu.com。Ubuntu12.04安装traceroute后第一跳之后都是输出的*,网上说是路由器禁了相关功能,但是win7下的tracert能正常使用。。。。原因是我用的虚拟机网络模式是NAT网络模式,后面虚拟机设置成使用桥接模式。

1、引言

  Traceroute程序可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。

2、Traceroute程序的操作

  Traceroute的实现过程:

  1. 发送一份TTL字段为1的IP数据报给目的主机。
  2. 处理此数据报的第一个路由器将TTL减1,丢弃该数据报,发回一个超时ICMP报文,得到路径中第一个路由地址。
  3. 发送一份TTL字段为2的IP数据报,得到第二个路由地址。
  4. 循环往复。
  5. 判断报文已经到达主机;

  判断报文是否已经到达主机方法:

  目的主机即使得到TTL为1的IP报,也不会丢弃该数据报,故发送一份UDP数据报给目的主机,它选择一个不可能的值作为UDP端口号(大于30000),目的主机的任何应用都不可能使用此端口。当数据报到达时,目的主机UDP报文产生一份“端口不可达”错误的ICMP报文。收到此端口不可达的ICMP报文,以判断结束。

3、局域网输出

  在这里介绍了ICMP超时报文有两种:

  1. 传输期间生存时间为0,对应code为0。
  2. 在数据报组装期间生存时间为0,对应code为1。(11.5节讨论)

  

  此小节简单介绍了计算SLIP链路的往返时间的方法。

  注意事项:

  • 并不能保证现在的路由也是将来所采用的路由,甚至两份连续的IP数据报都可能采用不同的路由
  • 不能保证ICMP报文的路由与traceroute程序发送的UDP数据报采用同一路由。
  • 返回的ICMP报文中的信源IP地址是UDP数据报到达路由器接口的IP地址

4、广域网输出

  • 当出现在摸个路由上数据报变慢时,并不能区分是发出的还是返回的ICMP差错报文被拦截
  • 相同TTL字段的第一个RTT探测值可能比第二个RTT探测值还小。

5、IP源站选路选项

  源站选路(source routing)的原则由发送者指定路由。有两种形式:

  • 严格的源路由选择。发送端指明IP数据报所必须采用的确切路由。如果一个路由器发现源路由所指定的下一个路由器不在其直接连接的网络上,它就返回一个“源站路由失败”的ICMP差错报文。(code:0x89)
  • 宽松的源站选路。发送端指明了一个数据报经过的IP地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其他路由器。(code:0x83)

小结:

  本章说明了IP选路调试工具的使用及相关原理。个人感觉在看完IP选路和动态选路协议后可能更容易理解吧。

 

转载于:https://www.cnblogs.com/mofei004/p/8995390.html

你可能感兴趣的文章
android.os.NetworkOnMainThreadException 异常处理
查看>>
解决多个单选按钮互斥问题
查看>>
NYOJ 106(贪心)
查看>>
浏览器鼠标手势原理简析
查看>>
查看Eclipse中的jar包的源代码:jd-gui.exe
查看>>
Java从零开始学四十(反射简述一)
查看>>
互联网公司站点
查看>>
LibSVM for Python 使用
查看>>
WCF技术
查看>>
已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。...
查看>>
Android性能优化之UncaughtExceptionHandler定制自己的错误日志系统
查看>>
CSS/JS图片鼠标悬浮一道光闪过
查看>>
java8的新特性以及用法简介
查看>>
BZOJ 1342: [Baltic2007]Sound静音问题 [单调队列]
查看>>
小米王川:我与雷军和而不同
查看>>
数据结构--队列
查看>>
JavaScript中的call和apply应用
查看>>
SpringBoot中Redis的set、map、list、value、实体类等基本操作介绍
查看>>
Android OpenGL ES 开发(三): OpenGL ES 定义形状
查看>>
Linux防止“rm -rf /”误删除
查看>>