(1)ping -r

ping程序为我们提供了查看IP记录路由(RR)选项的机会。大多数不同版本的ping程序都提供-R选项,以提供记录路由的功能。它使得ping程序在发送出去的IP数据报中设置IPRR选项(该IP数据报包含ICMP回显请求报文)。这样,每个处理该数据报的路由器都把它的IP地址放入选项字段中。当数据报到达目的端时,IP地址清单应该复制到ICMP回显应答中,这样返回途中所经过的路由器地址也被加入清单中。当ping程序收到回显应答时,它就打印出这份IP地址清单。
这个过程听起来简单,但存在一些缺陷。源端主机生成RR选项,中间路由器对RR选项的处理,以及把ICMP回显请求中的RR清单复制到ICMP回显应答中,所有这些都是选项功能。幸运的是,现在的大多数系统都支持这些选项功能,只是有一些系统不把ICMP请求中的IP清单复制到ICMP应答中。
但是,最大的问题是IP首部中只有有限的空间来存放IP地址。我们从图3-1可以看到,IP首部中的首部长度字段只有4bit,因此整个IP首部最长只能包括15个32bit长的字(即60个字节)。由于IP首部固定长度为20字节,RR选项用去3个字节(下面我们再讨论),这样只剩下37个字节(60-20-3)来存放IP地址清单,也就是说只能存放9个IP地址。对于早期的ARPANET来说,9个IP地址似乎是很多了,但是现在看来是非常有限的(在第8章中,我们将用Traceroute工具来确定数据报的路由)。除了这些缺点,记录路由选项工作得很好,为详细查看如何处理IP选项提供了一个机会。
IP数据报中的RR选项的一般格式如图7-3所示。

图7-3IP首部中的记录路由选项的一般格式

code是一个字节,指明IP选项的类型。对于RR选项来说,它的值为7。len是RR选项总字节长度,在这种情况下为39(尽管可以为RR选项设置比最大长度小的长度,但是ping程序总是提供39字节的选项字段,最多可以记录9个IP地址。由于IP首部中留给选项的空间有限,它一般情况都设置成最大长度)。
ptr称作指针字段。它是一个基于1的指针,指向存放下一个IP地址的位置。它的最小值为4,指向存放第一个IP地址的位置。随着每个IP地址存入清单,ptr的值分别为8,12,16,最大到36。当记录下9个IP地址后,ptr的值为40,表示清单已满。
当路由器(根据定义应该是多穴的)在清单中记录IP地址时,它应该记录哪个地址呢?是入口地址还是出口地址?为此,RFC791[Postel1981a]指定路由器记录出口IP地址。我们在后面将看到,当原始主机(运行ping程序的主机)收到带有RR选项的ICMP回显应答时,它也要把它的入口IP地址放入清单中。

(2)tracert

通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。

  Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。

分析以上的目的是因为tracert过程中有些路由节点没有返回结果,所以用了ping -r去测试,发现路由节点IP不一样。这是因为路由器有多个IP,或者说接口。

另外,如果到达目的IP经过路由器数少,可由ping -r 得到完整的路由过。

转载于:https://blog.51cto.com/zeroi23/1028811

ping -r 和tracert相关推荐

  1. 查看网络情况 ping 大包 和 tracert 、 traceroute

    2019独角兽企业重金招聘Python工程师标准>>> 严禁Ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择. Linux下Ping包的默认大小为64Byte,次数不限. ...

  2. ping程序和tracert(traceroute)背后的故事--ICMP协议

    为路由器生,为交换机死,为了Ping通奋斗一辈子-----tracert.cn 上面是一个网络工程师的个人定位,很有意思,哈哈!那么我们来看看ping和tracert都是什么吧 PING (Packe ...

  3. 解除禁tracet_FAQ-S6700如何禁止ping不禁止tracert

    在ACL中可选择禁止对应的ping包ICMP类型即可,比如按照如下的ACL写: [S6700-acl-adv-3000]rule 10 deny icmp icmp-type INTEGER<0 ...

  4. 【分享】一个集成tracert和ping的网络监测工具

    最近接到一个需求,需求背景是这样的:目前Windows平台下本身都有tracert和ping的实现,而且可以直接在cmd下使用. 需求中有两个要求: 1. Windows平台中的tracert执行速度 ...

  5. java tracert_Java模拟Tracert和ping命令实现跃点追踪

    1. Tracert(跟踪路由)用于确定 IP数据包访问目标所采取的路径. Tracert 命令使用用 IP 生存时间  (TTL) 字段和 ICMP错误消息来确定从一个Host到网络上其他主机的Ro ...

  6. 局域网连接其他机器命令_弱电工程师必备技能,PING命令使用方法大全

    做弱电的工程人员都知道,在这个数字化网络时代,要学会一些网络常用命令,有了它们,可以快速排查出问题,Ping就是最基础命令之一,Ping是使用最常用的网络测试命令,主要用于确定网络的连通性.下面是学习 ...

  7. vip地址能ping不通_电脑高手必备ping和netstat命令

    1.Ping的基础知识 ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结 ...

  8. 系列TCP/IP协议-ping与traceroute命令(006)

    一.引言 在错综复杂的网络的世界里,如何知道对方主机是否可达,链路是否畅通是一个不太简单的问题.现在有两种常用的程序或命令来检查这些问题(ping与traceroute命令).   "pin ...

  9. ping 命令还能这么玩?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 小Hub领读: 说实话,我以为ping就仅仅用来判断网络通不通,哈 ...

  10. ping ip 端口_学生会私房菜【20200305期】——Ping命令及其常用参数详解

    一命令原理 Ping是ICMP的一个典型应用.Ping是检测网络连通的常用工具,同时也能收集其他相关信息.用户可以在Ping命令中指定不同参数,如ICMP报文长度.发送的ICMP报文个数.等待回复响应 ...

最新文章

  1. CSS中实现DIV容器垂直居中
  2. csvtk:表格处理神器-美化、统计、头表、合并、转置、筛选、取样、去冗余 、分列、分类汇总和简单绘图...
  3. 用Python几行代码实现简单的人脸识别,10分钟完成(附源码)
  4. UC伯克利博士尤洋回国创业,曾刷新ImageNet纪录!已获超千万融资
  5. 学python有哪些用途-Python语言有哪些用途
  6. Go gin内嵌静态资源go-bindata的安装及使用(GVA)
  7. 服务器安全:浏览器同源策略与跨域请求、XSS攻击原理及防御策略、如何防御CSRF攻击
  8. php 读取onedrive文件夹,oneindex
  9. 初识WINCE的HIVE注册表
  10. r语言 读取dta_R语言与计量经济学(三)异方差
  11. linux下nand flash驱动工作原理,1.3.4. Nand flash驱动工作原理
  12. FISCO BCOS Failed to connect to nodes: [ ssl hanshake failed:/192.168.64.131:20200]
  13. AppStore SDK
  14. 虚拟货币套利怎么处理
  15. Only fullscreen activities can request orientation异常解决
  16. 如何在香港主机上尽可能多的建站
  17. Golang 实现word和Excel处理
  18. iPhone/iPad 传输文件/照片到电脑 - 实践
  19. 对于react的json.parse解析错误
  20. 【c#系列】PDF进行操作-浏览、分割、合并、插入、删除(1)

热门文章

  1. C#中public函数的用法_python中的lambda函数用法
  2. 哪所大学教php_哪所学校保研容易进?准保研生们我来教你怎么选!
  3. 逆水寒7.25服务器维护,逆水寒7月26日更新维护公告 更新内容汇总
  4. java单链表删除重复元素_用加头节点实现链表的删除重复元素、分割、翻转(Java实现)...
  5. 一个网卡设备配置两个不同网段的IP地址
  6. 蓝桥杯- 煤球数目-java
  7. 解决Myeclipse10 Building Workspace速度慢的问题
  8. Android Testing学习02 HelloTesting 项目建立与执行
  9. dede首页如何调用单页文档内容标签
  10. HCIE-OSPFV3