作用

可以让我们看到IP数据报从1台主机传到另一台主机所经过的路由。比Ping程序看到更多东西

优势

  1. 不是所有路由器都支持RR选项。所以有些路由器上会出现不记录IP的现象。Traceroute不需要路由器具备任何特殊的功能
  2. RR选项的数据报的目的Ping服务器(主机)会将接受到的RR清单Copy回去。然后再加上回去的IP清单。这样就是X2。这会收到一些限制
  3. IP首部的空间有限,不能存放太多的IP(最多9个)
  4. 将TTL字段改成跳站的计数器

TTL

如果TTL的值为1或0时,路由器丢弃该数据报。并且给源主机发送一份ICMP超时信息。Traceroute程序将该路由器的IP地址包含在这份ICMP数据报中

如果是主机返回的ICMP是端口不可达的ICMP数据报。以此来区分路由器发送回来的还是主机发送回来的

ICMP超时报文

如果是TTL值等于0的时候产生的那code字段的值为0
如果是组装分片的时候发生超时,则code字段的值为1

Traceroute注意事项

不能保证ICMP报文的路由与Traceoute程序发送的UDP数据报采用同一路由
返回的ICMP数据报中包含的信源地址是路由器地址。但是IP记录路由选项(RR)是记录发送接口的地址。由于路由器有多个接口因此 A-B和B-A上运行Traceroute的返回结果可能会有所不同

IP源站选路选项

路由器发现下一站需要转发的路由器通常是采用Traceroute这样的程序完成。由发送者指定路由
规则有两种,严格的源路由选择(SSRR)和宽松的源路由选择(LSRR)
严格的源路由选择: 发送端指明IP数据报所要经过的确切路由,如果该IP不在其直接相连的网络上,则返回一个“源站路由失败”的ICMP差错报文
宽松的源路由选择:发送端指名IP数据报所要经过的IP清单,清单上的任意两个IP地址之间可以通过其他路由器

IP首部路由选项通用格式

跟IP路由选项的格式一样,不同的是源站选路一开始就要把清单填入。并且只需要分配足够的空间即可(IP地址清单通长会少于9个)
宽松的源站选路的code是0x83,严格的是0x89

源站路由选项运行过程:

  1. 发送主机收到源站路由清单,将第1个表项去掉(数据报的最终目的地),将剩下的项往前移动,然后将目的地址作为清单最后一项,类似把原本第一行的数据丢到最后一行去
  2. 每个处理数据报的路由都会检查自己的IP是否是清单中的最终地址。如果不是则转发(宽松的源站选路才可以)
  3. 如果路由是最终地址了那就将路由器的外出接口相对应的IP设为源地址,指针+4

TCP/IP协议详解 卷1 Traceroute程序相关推荐

  1. TCP/IP协议详解---概述

    工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本书,希望 ...

  2. 《TCP IP协议 详解》思考总结 · 三

    前言 这一篇文章主要围绕了IP协议,ICMP协议和UDP协议展开,希望可以在这里大概做一个总结,将<TCP/IP协议详解 卷一>书中TCP相关章节前面的内容做一个结束,在下一篇文章专心的去 ...

  3. TCP /IP协议详解【转】

    转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...

  4. TCP/IP协议详解、TCP三次握手

    TCP/IP协议详解:TCP/IP协议详解_王佳斌-CSDN博客_tcp/ip协议认识HTTP协议它是互联网协议(Internet Protocol Suite),一个网络通信模型,是互联网的一个基本 ...

  5. TCP/IP协议详解卷一:Chapter21 笔记

    TCP/IP协议详解卷一:Chapter21 笔记 Chapter 21 TCP的超时与重传 21.3 往返时间测量 21.5 拥塞举例 21.6 拥塞避免算法 21.7 快速重传与快速恢复算法 21 ...

  6. 04 TCP/IP协议详解

    目录 章节目标 4.1 概述 1.为什么会有TCP/IP协议 2.介绍 4.2 TCP/IP协议族 4.2.1 TCP/IP协议栈 1.协议的分层 2. 主机与主机之间通信的三要素 3.应用层 4.传 ...

  7. 【网络基础】TCP/IP协议详解

    TCP/IP协议定义 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是在多个不同网络间实现信息传输的通信协议.是 ...

  8. WinSock API网络编程——TCP/IP协议详解

     WinSock API网络编程--TCP/IP协议(http://www.impcas.ac.cn/usr/lujun/browse.asp?id=winsock_tcp)            ...

  9. TCP/IP协议详解内容总结(怒喷一口老血)

    TCP/IP协议(本文源自外部链接) TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络 ...

最新文章

  1. mysql localhost和127.0.0.1的区别
  2. MYSQL WHERE 当一个字段不为NULL的时候使用另一个字段判断
  3. 利用叉乘快速判断点是否在三角形内
  4. js 判断浏览器是否64位
  5. raft协议 MySQL 切换_Raft 协议实战系列(二)—— 选主
  6. ASP.NET 2.0中发送电子邮件
  7. 使用webpack打包ThinkPHP的资源文件
  8. Keepalived+LVS
  9. err2matlab,matlab中增量调制的编程问题
  10. 第一次作业 四班05
  11. matlab 实验七 低层绘图操作,matlab实验内容解答.doc
  12. 软件需求说明书模板概要书
  13. 简单易操作Jsp动态网页
  14. linux gpu 地址空间,显卡内存和进程的虚拟地址空间
  15. 父债子偿有法可依吗?可法院却对这个案子说:不!
  16. python怎么重启内核_python怎么重启服务器
  17. 第14届蓝桥杯省赛真题剖析-2023年5月7日Scratch编程初级组
  18. 汽车matlab小论文,基于matlab汽车道路模型研究论文
  19. cocos creator2.2.2休闲游戏(单机捕鱼)源码H5+安卓+IOS三端源码
  20. 光耦w314的各引脚图_单通道光耦ACPL-312U-500E设计,ACPL-W314-000E线路图

热门文章

  1. 2023中国(北京)国际职业教育装备展览会
  2. Google 街景工程车现身台北
  3. 阿里终面:如何才能盛下最多的水?
  4. Oracle dbwr 什么意思,oracle的字典缓存命中率是什么意思?
  5. (附源码)springboot旧物回收管理系统 毕业设计 221713
  6. 下载安装jave运行环境eclipse
  7. 纯CSS实现-小风车
  8. 江哥带你玩转C语言 | 08 - C语言函数
  9. [数据库] 理解数据库范式-通俗易懂
  10. 高档住宅小区智能化弱电系统设计方案