TCP/IP 网络:Traceroute程序

article/2025/10/14 6:39:37

Traceroute是一个用来探索TCP/IP协议的工具,他通过ICMP协议可以让我们看到IP数据报从一台主机传送到另一台主机所经过的所有路由。

使用方法:

traceroute [参数] [主机名]

windows下命令为 tracert [] []

  • [-n]:显示的地址是用数字表示而不是符号
  • [-v]:长输出
  • [-p]:UDP端口设置(缺省为33434)
  • [-q]:设置TTL测试数目(缺省为3)
  • [-t]:设置测包的服务类型
  • [-s]:设置本地主机送出数据包的IP地址。

Traceroute程序使用ICMP报文和IP首部中的TTL字段。TTL字段是由发送端设置的一个8比特字段。

        每个处理数据报的路由器都需要把TTL的值减1或减去数据报在路由器中停留的描述。由于大多数的路由器转发数据报的时延都小于1秒钟,因此TTL最终成为一个跳站的计数器,所以经过的每个路由器都将其值减1。

        TTL字段的目的是防止数据报在选路是无休止地在网络中流动。 如:当路由器瘫痪或者两个路由器的连接丢失时,选路协议有时会去检测丢失的路由并一直进行下去。在这段时间内,数据报可能在循环回路被终止。TTL字段就是在这些循环传递的数据报上加上一个生存期限。

        当路由器收到一份IP数据报,如果TTL字段是0或1,则路由器不转发该数据报(接收到这种数据报的目的主机可以将它交给应用程序,这是因为不需要转发该数据报。但是在通常情况下,系统不该接收TTL字段为0的数据报)。相反,路由器将该数据报丢弃,并给源主机发一份ICMP“超时”信息。Traceroute的关键在于包含这份ICMP信息的IP报文的信源地址是该路由器的IP地址。

        Traceroute发送一份UDP数据报给目的主机,但它选择一个不可达的值作为UDP端口(>3000),使目的主机的任何一个应用程序都不肯使用该端口。因此,当该数据报到达时,目的主机的UDP将产生一份“端口不可达”的ICMP错误报文。Traceroute区分接收到的ICMP报文时超时还是端口不可达,已判断什么时候结束。

Traceroute需要注意的是

1、并不能保证现在的路由也是将来要采用的路由,甚至两份连续的IP数据报都可能采用不同的路由。 对于一个给定的TTL,如果其路由发生变化,Traceroute程序将打印出新的IP地址。

2、不能保证ICMP报文的路由与Traceroute发送的UDP数据报采用统一路由。

3、返回的ICMP报文中的信源IP地址是UDP数据报到达的路由器接口的IP地址。

4、在广域网情况下,由于Traceroute程序接收到ICMP报文时,它所获得的唯一信息就是IP地址,因此在给定IP地址的情况下,它做一个“反向域名查看”工作来获取域名。

IP源站选路选项

        一般IP路由是动态的,即每个路由器都要判断数据报下一跳该转发到哪个路由器。应用程序对此不进行控制,通常也比你够不关心路由。

源站选路的思想是由发送者指定路由。可以采用两种形式:

1)、严格的源站选路。发送端指明IP数据报所必须采用的确切路由。如果一个路由器发现原路由所指定的饿下一个路由器不再其直接连接的网络上,那么它就返回一个”源站路由失败“的ICMP差错报文。

2)、宽松的源站选路。发送端指明一个数据报经过的IP地址清单,但数据报在清单上指明的任意两个地址之间kiyomi通过其他路由。

 


http://chatgpt.dhexx.cn/article/9QDNe2E3.shtml

相关文章

hdfs创建文件报错 mkdir: Cannot create directory /Flink. Name node is in safe mode.

据资料是说hdfs刚刚启动,还在验证和适配,所以进入安全模式,等一会儿就好了,然后我等了几分钟并没有好 然后找到了解决安全模式的办法: 用户可以通过dfsadmin -safemode value 来操作安全模式,参数value…

network_tcp三次握手

TCP是TCP/IP的传输层控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 首先需要了解几个名词:tcp标志位,有6种分别为:SYN(synchronous建立联机) 、ACK(acknowledgement 确认) 、PSH(push传送) 、FIN(finish结束)、 RS…

mysql1396错误

波尔,被控制的电脑通讯端口是多少? 1222nervSNIR&Dnetwork 1239nmsdNMSD 1243Sub-7木马 1245Vodoo 1248hermes 1269MavericksMatrix 1492FTP99CMP(BackOriffice.FTP) 1509StreamingServer 1524ingreslock后门 1313bmc_patroldb 1314pdps 1321pipPIP …

NetFlow

 NetFlow是一种数据交换方式。Netflow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息。也许它不能象tcpdump那样提供网络流量的完整记录,但是当汇集起来时,它更加易于管理和易读。Netflow由Cisco创造。 工作原…

failed to create network error response from daemon filed to setup ip tables问题

问题 今天在环境上搭建平台,执行docker-compose up -d 报错 Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-b649822bbcff -j RETURN: iptables: No chai…

Devtools 热部署

文章目录 前言使用步骤 1.引入库2.配置总结 前言 在实际开发过程中,每次修改代码就得将项目重启,重新部署,对于一些大型应用来说,重启时间需要花费大量的时间成本。对于一个后端开发者来说,重启过程确实很难受啊 一、使…

内网渗透的那些net命令|Net config|Net

Net命令 Net命令是一个命令行命令,Net命令有很多函数用于实用和核算计算机之间的NetBIOS连接,可以查看我们的管理网络环境,服务,用户,登陆等信息内容 Net使用方法 显示当前域的计算机列表net view 查看指定计算机的共享资源列表net view \test 查看共享的资源net share 查看…

failed to load response dataRequest content was evicted from inspector cache

在项目中,我用谷歌浏览器查看后台返回的json数据,但是发现前端页面已经接收成功,并且渲染了对应json数据了,但是network里面的response却报错: 调整对应json数据后发现,当后台返回前端的数据超过了一定大…

火狐浏览器提示响应已被截断(有效解决)

产生问题如下:JSON传递数据超过1M 解决方案: 第一步:地址栏输入about:config 第二步:devtools.netmonitor.responseBodyLimit 改为0,相当于禁用大小限制,保存之后即可。

failed to load response data:Request content was evicted from inspector cache

在项目中,我用谷歌浏览器查看后台返回的json数据,但是发现前端页面已经接收成功,并且渲染了对应json数据了,但是network里面的response却报错: 调整对应json数据后发现,当后台返回前端的数据超过了一定大…

必须做作业三:Network-Monitor观察者模式解析

一、总述 观察者模式,由观察者和被观察对象组成,java已经提供了相关类供我们开发者调用! 当数据变化时,Observable会通知集合里的所有观察者对象!具体在数据变化后,app调用Observable的notifyObservers方法,那么 集合里的所有Observer的update()会被执行! 设计其实很简单&#…

n个数 全排列算法

全排列 给定N个数&#xff0c;如 [1,2,3,4,5]&#xff0c;获取它的全排列 经典交换算法 核心思路是交换 #include<stdio.h> void swap(int* a, int* b){int temp *a;*a *b;*b temp; } //int a[] { 1,2,3,4}; //sort(a, 0, 4); void sort(int* a, int k, int m){…

全排列算法(C语言)

全排列算法&#xff08;C语言&#xff09; 思路图形理解树结构 代码 思路 图形理解 我看先看一下从1–4的全排列&#xff0c;如下&#xff1a; &#xff08;1&#xff09;就整体排列而言可以分为四组&#xff0c;分别是以1打头的&#xff0c;以2打头的&#xff0c;以3打头的&a…

全排列算法(无重复数字全排列/有重复数字全排列)/ 组合算法/ 求子集算法

写在前面全排列1 无重复数字全排列1.1 紫书版本1.2 回溯法 2 有重复数字全排列 复盘易错点&#xff08;可跳过&#xff09; 写在前面 很久很久以前就想写的一篇博客&#xff0c;因为懒一直没开工&#xff0c;但是学习全排列算法算是我对递归理解的转折点&#xff0c;感觉很有意…

全排列算法的全面解析

概述 对数组进行全排列是一个比较常见问题&#xff0c;如果是一个比较喜欢考算法的公司&#xff08;貌似一些大公司都比较喜欢考算法&#xff09;&#xff0c;那么估计就会考察应聘者这个全排列的问题了&#xff08;就算不让你编写完整代码&#xff0c;也会让你描述大致的思路&…

【算法】——全排列算法讲解

前言&#xff1a; 今天&#xff0c;我给大家讲解的是关于全排列算。我会从三个方面去进行展开&#xff1a; 首先&#xff0c;我会给大家分析关于全排列算法的思想和定义&#xff1b;紧接着通过手动实现出一个全排列代码来带大家见见是怎么实现的&#xff1b;最后我会给出两道题…

算法 | 全排列问题(图文详解)

目录 一.全排列的定义 1.什么是全排列 2.例子 二.code 三.分析 一.全排列的定义 1.什么是全排列 从n个不同元素中任取m&#xff08;m≤n&#xff09;个元素&#xff0c;按照一定的顺序排列起来&#xff0c;叫做从n个不同元素中取出m个元素的一个排列。当mn时所有的排列情…

全排列算法思路解析

1.全排列的定义和公式&#xff1a; 从n个数中选取m&#xff08;m<n&#xff09;个数按照一定的顺序进行排成一个列&#xff0c;叫作从n个元素中取m个元素的一个排列。由排列的定义&#xff0c;显然不同的顺序是一个不同的排列。从n个元素中取m个元素的所有排列的个数&#…

全排列算法

全排列的概念 排列 从n个数中选取m&#xff08;m<n&#xff09;个数按照一定的顺序进行排成一个列&#xff0c;叫作从n个元素中取m个元素的一个排列。不同的顺序是一个不同的排列。从n个元素中取m个元素的所有排列的个数&#xff0c;称为排列数&#xff08;几种排法&#…

激活JRebel

生成新的 GUID 将生成的GUID 粘贴到此处 https://jrebel.qekang.com/ 如&#xff1a; https://jrebel.qekang.com/cf0c9d95-c31f-4e75-bc5a-146291b8bb71