一、简介

查看报文到达目的主机的路径。traceroute的工作原理简单:

  • 发送TTL从1开始的UDP报文(win发送ICMP报文)
  • 为了确定下一跳路径,TTL会加1
  • 当路由器丢弃UDP报文的时候,会给发送主机回复 ICMP 超时报文
  • 当到达最后路径时,会给发送主机回复 ICMP 端口不可达报文(win不会回复端口不可达报文,macos回复destination unreachable)

二、流程

  1. 源主机发送IP报文,设置TTL=1;第一个路由器处理报文后:

    1. 将TTL-1
    2. 将报文丢弃
    3. 回复源主机ICMP超时报文,在IP报文的头部,包含了 路由器 的源地址
  2. 同流程1, 源主机发送IP报文,设置TTL=2,得到 第二个路由器的IP地址

  3. 同上面的流程,直到到达最终目的地址,到达最终的目的地址后,给发送主机回复ICMP 端口不可达报文

三、抓包

3.1 LAN OUTPUT

1、win 路径查看

tracert 到内网 10.8.50.101主机

  • 最多30个跃点,表示TTL=30,防止死循环
  • 目的IP:10.8.50.101
  • 下一跳路由器:172.19.0.1
  • RTT时间:12ms, 8ms, 9ms(发送三个报文),第一个RTT时间最长(12ms),表示无172.19.0.1的ARP缓存

2、wireshark 抓包

完整数据包如下:

第一条流

  • 源IP:172.19.0.4
  • 目的IP:10.8.50.101
  • ping request 报文:type 8, code 0,没有收到echo reply响应,记录no response found!
  • 第一跳路由器:172.19.0.1,回复给 172.19.0.4 Time to live exceeded in transit
  • 后面的流以此类推,直到最后一条流
  • TTL值相同,全是1
  • seq值+1,从12852开始

最后一条流:

  • echo request报文

    • TTL:都为6,说明只需要6跳即可到达最终地址
    • 可以收到 echo reply,无 no response found! 报文
  • seq:12868,12869,12870

3.2 WAN OUTPUT

1、Mac OS路径查看

第一行的解释:

  • 目的IP:210.34.0.25
  • TTL不超过:64(防止死循环)
  • 报文大小:52字节
    • IP头部:20字节
    • UDP头部:12字节
    • 用户数据:24字节,包含下列信息
      • 序列号:每次+1
      • TTL:不变
      • 报文发送时间

2、wireshark抓包

每一跳发送3个包,截图所示为第一跳:

  • TTL值相同,从1开始
  • seq+1
  • 每一个包都会计算RTT时间

如果任何一个包超过5s没有收到响应,则会打印3个星号(*)

最后一跳:

  • TTL=9
  • 目的Host回复:destination unreachable

Traceroute到底是什么?相关推荐

  1. 三十天学不会TCP,UDP/IP网络编程-TraceRoute的哲学

    新年快乐,继续来部分粘贴复制我的这一系列文章啦,如果对和程序员有关的计算机网络知识,和对计算机网络方面的编程有兴趣,欢迎去gitbook(https://rogerzhu.gitbooks.io/-t ...

  2. traceroute的工作原理

    MyySophia5个月前 traceroute的工作原理 是利用ICMP差错控制报文中的TTL超时会回向源点发送一个时间超时报文.例如A 主机 traceroute B主机,A会封装一些分组,这些分 ...

  3. 脑残式网络编程入门(五):每天都在用的Ping命令,它到底是什么?

    本文引用了公众号纯洁的微笑作者奎哥的技术文章,感谢原作者的分享. 1.前言 老于网络编程熟手来说,在测试和部署网络通信应用(比如IM聊天.实时音视频等)时,如果发现网络连接超时,第一时间想到的就是使用 ...

  4. traceroute命令结果分析

    traceroute命令结果分析 1. 基本原理 2. IP地址种类 2.1 A类IP地址 2.2 B类IP地址 2.3 C类IP地址 2.4 D类地址用于多点广播(Multicast). 2.5 E ...

  5. GRE和IPsec搭配使用,到底是谁over谁?先看GRE over IPsec

    关于相同的二层子网跨广域网进行互通,目前我们测试了VXLAN.IPsec和GRE三种方式,分别是(VXLAN小实验:VXLAN头端复制配置).(为什么IPsec两端内网的网段能不能重复?分明可以实现! ...

  6. Ubuntu 22.04 一次及其繁琐的 允许 Traceroute 探测漏洞修复之旅

    前言:允许 Traceroute 探测是绿盟漏洞扫描器报出来的一个漏洞,如下图: 我的系统是ubuntu 22.04,但由于是用户提供的虚拟机,会有些定制的部分,具体定制了哪部分就不知道了,直接描述问 ...

  7. Traceroute网络排障实用指南

    目录 一.概述 1.1 什么是Traceroute 1.2Traceroute的问题所在 二.Traceroute原理 2.1Traceroute实现原理 2.2Traceroute实现细节 2.3T ...

  8. [转载]Tensorflow 的reduce_sum()函数的axis,keep_dim这些参数到底是什么意思?

    转载链接:https://www.zhihu.com/question/51325408/answer/125426642 来源:知乎 这个问题无外乎有三个难点: 什么是sum 什么是reduce 什 ...

  9. 硬核科普:到底啥是云原生?

    本文主要根据课程 什么是云原生?_哔哩哔哩_bilibili 总结而来,其他参考文章如下: <云原生人才计划之Kubernetes 技术图谱>发布! - 知乎 (zhihu.com) ku ...

最新文章

  1. Springboot实战:3种 Springboot 全局时间格式化方式
  2. 欧盟为无人机立法,对国产厂商是福还是祸?
  3. 一台机器上启动多个tomcat
  4. python getcwd 与dirname_python慎用os.getcwd() ,除非你知道【文件路径与当前工作路径的区别】...
  5. 01_JNI是什么,为什么使用,怎么用JNI,Cygwin环境变量配置,NDK案例(使用Java调用C代码),javah命令使用
  6. 【Linux】一步一步学Linux——setfacl命令(117)
  7. 电脑高手常用的5个按钮
  8. 私有云为先 ZStack还在谋划一个更大的混合云世界
  9. net 架构师-数据库-sql server-触发器
  10. matlab 上穿,Matlab混入模式(Mixin)
  11. stats | 线性回归(二)——模型假设和模型估计
  12. VMware View4.5相关组件的日志存放路径
  13. java写入文件编码格式为ansi_java 获取文本文件编码格式
  14. html视频怎么转换成图片,视频怎么转成gif格式 录制视频转gif图片用什么软件|gif动画录制工具...
  15. java调试报告_java,生成测试报告.docx
  16. 2010年中国互联网十大事件
  17. 推荐 7 个 yyds 的开源项目
  18. modis遥感影像数据批量下载(不限制网速的办法)
  19. Python 制作按键触发Windows通知的脚本
  20. 算法小讲堂之哈希表|散列表|考研笔记

热门文章

  1. 2018最新云下载不限速神器【电脑版+安卓版】
  2. 各种CPU的ELF编码,ELF并没有为龙芯分配253-256
  3. win10+CUDA9.1安装
  4. 1550:花神游历各国
  5. allegro 走线切换层_多层板走线时,怎样快速换层?
  6. 车机如何安装鸿蒙os,跨平台的鸿蒙OS,会如何影响车机领域?
  7. 电源管理芯片:nxp电源管理芯片的参考与设计
  8. ThinkPhp6+Vue智慧城市后台管理系统
  9. JNI编程 —— 让C 和Java相互调用 - android - 牛蹄印章
  10. imagematte