traceroute的原理与使用

traceroute的原理与使用traceroute,路由跟踪,用来跟踪一个分组从源点到终点的整个过程。原理分析traceroute是通过ICMP协议中的时间超时差错报告报文来实现的,他从源主机到目的主机发送一连串的IP数据报p1-pn,并且数据报是无法交付的udp数据报。第一个数据报的TTL设置为1,这样当这个数据报转发到第一个路由器的时候,路由器收到后TTL减1,减完1之后发现TTL变为0,路由器会向源主机发送一个超时差…

大家好,又见面了,我是你们的朋友全栈君。

traceroute,路由跟踪,用来跟踪一个分组从源点到终点的整个过程。

原理分析

traceroute是通过ICMP协议中的时间超时差错报告报文来实现的,他从源主机到目的主机发送一连串的IP数据报p1-pn,并且数据报是无法交付的udp数据报。第一个数据报的TTL设置为1,这样当这个数据报转发到第一个路由器的时候,路由器收到后TTL减1,减完1之后发现TTL变为0,路由器会向源主机发送一个超时差错报告报文。
然后是第二个,第二个数据报的TTL设置为2,这样转发到第二个路由器的时候,TTL变为0,并会向源主机在发送一个超时差错报告报文,依次进行此操作。直到第n个数据报pn到达目的主机,但是由于数据报无法交付,因此目的主机会向源主机发送终点不可达差错报告报文。
通过这种方式,源主机就可以通过发送过来的超时差错报告报文和终点不可达差错报告报文来的得到经过的路由器以及往返时间等信息,达到路由跟踪的目的。

使用方法

  • 命令的格式
traceroute [option ...] host

以跟踪百度为例
在这里插入图片描述
从图中可以看出按照顺序到达的路由,后面的时间是一次往返时间,有三次是因为连续发了三个IP数据报。

  • 参数的类型
    通过Linux的man traceroute 查看手册得到以下信息
-f  <存活数值>设置第一个检测数据包的存活数值TTL的大小。
-F  设置勿离断位。
-g  <网关>设置来源路由网关,最多可设置8个。
-I  使用ICMP响应取代UDP资料信息。
-m  <存活数值>设置检测数据包的最大存活数值TTL的大小。
-p  <通信端口>设置UDP传输协议的通信端口。
-t  <服务类型>设置检测数据包的TOS数值。
-w  <超时秒数>设置等待远端主机回报的时间。

下面对一些常用的参数的功能进行演示

-m设置IP数据报的最大存活数值TTL

在这里插入图片描述
通过-m进行数量设置之后,最多发送10此IP数据报后结束操作

-f设置第一个检测数据包的存活数值TTL的大小

在这里插入图片描述
这张图和第一张相比,说明数据报是从第三个开始发的,也就是第一个数据包的TTL为3,所以数据报传递三次之后才会返回ICMP。

-q 设置探测包的个数

在这里插入图片描述
通过-q设置后探测包发送四个

-w 设置等待远端主机回报的时间

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162547.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C# 项目没有.sln文件的解决办法:

    C# 项目没有.sln文件的解决办法:什么是sln文件?sln文件开发中使用的解决方案文件,使用解决方案文件(后缀为sln的文件)表示一个项目组,他通常包含一个项目中所有的工程文件信息。包括文件版本,工程信息,全局设置,通过打开sln文件就可以加载整个项目.但是我新建的一个项目里面没有Sln文件,该如何打开整个项目?解决办法:打开VS,点击新建项目,同时会生成一个解决方法,然后往这个解决方案里面添加现有项目,注意添加的是.cspro

    2022年5月3日
    184
  • 从char 数据类型到smalldatetime 数据类型的转换导致smalldatetime 值越界

    从char 数据类型到smalldatetime 数据类型的转换导致smalldatetime 值越界
    SQL:
    select*fromdbo.pds_operation_log  where(plan_code=12andcreate_timebetween’1900-01-01’and’2098-12-31′)orderbycreate_time asc
     
    出错:
    消息296,级别16,状态3,第1行
    从char数据类型到smalldatetime数据类型的转换导致smalldatetime值越界。

    2022年5月19日
    39
  • jsessionid的困扰「建议收藏」

    问题:向某银行发送支付请求时,如果客户端cookie开启,第一次请求时,请求地址会自动增加一jsessionid,第二次没有问题。如果客户端cookie关闭,无论如何请求地址会自动添加一jsessionid,从而导致支付页面不能显示。————————-查了网上的一些解决办法,找到原因,如下:在你的程序第一次访问服务器的时候,服务端并不知道

    2022年4月14日
    110
  • QT6.1.2下载和安装教程

    QT6.1.2下载和安装教程QT6.1.2下载和安装教程Qt自从5.15版本开始,对非商业版本(开源版本)不提供已经制作好的离线exe安装包,QT6.1.2版本需要在线下载安装。参考链接:1-Qt6在线安装图文步骤文章目录下载安装用到的软件下载安装用到的软件一、下载QT软件在线下载器:1、国内清华大学开源软件镜像站下载 (推荐,网速快)https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/online_installers/2、Q.

    2022年5月16日
    43
  • java 内存分析工具 生成 dump_java内存检测工具

    java 内存分析工具 生成 dump_java内存检测工具jmap-heap1234查看进程号为1234的Java程序的整个jvm内存状态jmap-histo1234查找进程号为1234的java程序的jvm堆中对象详细占用情况jmap-dump:format=b,file=/my.dump1234导出1234进程的java程序的整个JVM信息jhat-J-Xmx1024M/my.dump,启动web服务查看jmap导出的jav…

    2022年10月2日
    3
  • Determining IP information for eth0… failed; no link present.  Check cable?

    Determining IP information for eth0… failed; no link present.  Check cable?问题1:docker pull nginx 拉取失败问题2:Determining IP information for eth0… failed; no link present. Check cable?问题3:“VMware Network Adapter VMnet8”没有有效的 IP 配置问题4:没有开启VMware NAT service和VMware DHCP …

    2022年6月13日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号