traceroute原理(traceroute实现的原理)
本文目录
traceroute实现的原理
raceroute是我们经常用到的一个路由跟踪命令。 它的实现原理如下: 它发送一份 TTL字段为1的IP数据报给目的主机。处理这份数据报的第一个路由器将 T T L值减 1,丢弃该数据报,并发回一份超时I C M P报文。这样就得到了该路径中的第一个路由器的地址。然后 Tr a c e r o u t e程序发送一份T T L值为2的数据报,这样我们就可以得到第二个路由器的地址。继续这个过程直至该数据报到达目的主机。但是目的主机哪怕接收到 T T L值为1的I P数据报,也不会丢弃该数据报并产生一份超时 I C M P报文,这是因为数据报已经到达其最终目的地。那么我们该如何判断是否已经到达目的主机了呢? Traceroute程序发送一份 U D P数据报给目的主机,但它选择一个不可能的值作为 U D P端口号(大于 30 000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的 U D P模块产生一份“端口不可达”错误(见 6 . 5节)的 I C M P报文。这样, Tr a c e r o u t e程序所要做的就是区分接收到的 I C M P报文是超时还是端口不可达,以判断什么时候结束。 我们使用ping命令的R选项也可以打印出源主机到目的主机所经过的路由。但是它和traceroute有些不同,至于区别在哪里?大家可以思考一下
【traceroute】关于traceroute(路由追踪)的原理分析
traceroute 主要利用 IP 数据包的 TTL 字段值 + ICMP 来实现,它发送的用于探测网络路径的数据包的 IP 之上的协议可以是 UDP、TCP或ICMP。 协议表示该数据报文所携带的数据所使用的协议类型,占 8 位。 该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。 例如,TCP 的协议号为 6,UDP 的协议号为 17,ICMP 的协议号为 1。 不同模式下,探测过程中设计的数据包如下: UDP 探测数据包(目标端口大于 30000) + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Destination Unreachable 数据包 TCP 数据包 ICMP Echo (ping) Request 探测数据包 + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Echo (ping) reply 数据包 UDP 端口扫描比较麻烦,它同TCP不一样,因为它不需要建立连接。 我们向 目标主机 的固定端口发送UDP数据包,可以得到 两种结果: 在运营商的路由器上,UDP 与 ICMP 的待遇大不相同。 为了利于 troubleshooting,ICMP ECHO Request/Reply 是不会封的,而 UDP 则不同。 UDP 常被用来做网络攻击,因为 UDP 无需连接,因而没有任何状态约束它,比较方便攻击者伪造源 IP、伪造目的端口发送任意多的 UDP 包,长度自定义。 所以运营商为安全考虑,对于 UDP 端口常常采用白名单 ACL,就是只有 ACL 允许的端口才可以通过,没有明确允许的则统统丢弃。比如允许 DNS/DHCP/SNMP 等。 当网络工程师用Ping时,Ping在偷摸做啥事儿? ping命令是依托于 ICMP协议的, ICMP协议的存在就是为了更高效的转发 IP数据报和提高交付成功的机会。 ping命令除了依托于 ICMP,在局域网下还要借助于 ARP协议, ARP协议能根据 IP地址反查出计算机的 MAC地址。 另外 ARP是有缓存的,为了保证 ARP的准确性,计算机会更新ARP缓存。 有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。 出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。 有些路由器会隐藏的自己的位置,不让ICMP Timeout的消息通过,结果就是在那一跳上始终会显示星号。此外服务器也可以伪造traceroute路径的,不过一般应用服务器也没有理由这么做,所以Traceroute的结果还是能够为网络分析提供一些参考的。 Linux下traceroute程序默认发送的探测包为UDP协议,windows下tracert、mtr,以及Linux下mtr默认都发送的是icmp的数据包,并不是所有网关都会如实返回 ICMP 超时报文。处于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种 ICMP 报文,其余路由器或交换机也可能被管理员主动修改配置变为不返回 ICMP 报文。因此 Traceroute 程序不一定能拿到所有的沿途网关地址。所以,当某个 TTL 值的数据包得不到响应时,并不能停止这一追踪过程,程序仍然会把 TTL 递增而发出下一个数据包。这个过程将一直持续到数据包发送到目标主机,或者达到默认或用参数指定的追踪限制(maximum_hops 默认最大为30)才结束追踪 如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。 如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。 动态图解traceroute(路由追踪)的原理与实现 https://zhuanlan.zhihu.com/p/404043710 IP数据报格式详解 http://c.biancheng.net/view/6411.html 解析为何traceroute探测的时候中间有些节点探测不到? https://zhuanlan.zhihu.com/p/122465496 traceroute使用与实现原理分析 https://zhuanlan.zhihu.com/p/36811672 traceroute(路由追踪)的原理及实现 https://www.jianshu.com/p/75a5822d0eec 为什么目标地址ping能通,但是tracetoute不通? https://cloud.tencent.com/developer/article/1642331 只会用ping测试网络通不通?高级网工还会这么用 https://zhuanlan.zhihu.com/p/458358961 当网络工程师用Ping时,Ping在偷摸做啥事儿? https://zhuanlan.zhihu.com/p/513184441 traceroute原理 https://www.cnblogs.com/zyd112/p/7196341.html TCP/UDP/ICMP Traceroute的原理及区别 https://zhuanlan.zhihu.com/p/101810847
traceroute和tracert命令工作原理的差别
当数据报从你的计算机经过多个网关传送到目的地时,Tracert命令可以用来跟踪数据报使用的路由(路径)。该实用程序跟踪的路径是源计算机到目的地的一条路径,不能保证或认为数据报总遵循这个路径。如果你的配置使用DNS,那么你常常会从所产生的应答中得到城市、地址和常见通信公司的名字。Tracert是一个运行得比较慢的命令(如果你指定的目标地址比较远),每个路由器你大约需要给它15秒钟。Tracert的使用很简单,只需要在tracert后面跟一个IP地址或URL,Tracert会进行相应的域名转换的。Tracert一般用来检测故障的位置,你可以用tracert IP在哪个环节上出了问题,虽然还是没有确定是什么问题,但它已经告诉了我们问题所在的地方,你也就可以很有把握的告诉别人——某某出了问题。 该诊断实用程序将包含不同生存时间 (TTL) 值的 Internet 控制消息协议 (ICMP) 回显数据包发送到目标,以决定到达目标采用的路由。要在转发数据包上的TTL 之前至少递减 1,必需路径上的每个路由器,所以 TTL 是有效的跃点计数。数据包上的 TTL 到达 0 时,路由器应该将“ICMP 已超时”的消息发送回源系统。Tracert 先发送 TTL 为 1 的回显数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。路由通过检查中级路由器发送回的“ICMP 已超时”的消息来确定路由。不过,有些路由器悄悄地下传包含过期 TTL 值的数据包,而 tracert 看不到。tracert target_name 参数 /d 指定不将地址解析为计算机名。 -h maximum_hops 指定搜索目标的最大跃点数。 -j computer-list 指定沿 computer-list 的稀疏源路由。 -w timeout 每次应答等待 timeout 指定的微秒数。 target_name 目标计算机的名称。 NET命令的基本用法
更多文章:
当当网客服电话是多少啊?北京当当网信息技术有限公司电话是多少
2024年9月6日 23:40
lol大虫子怎么出装体型最大?《云顶之弈s6》大虫子阵容怎么玩
2024年6月6日 00:56
谁能给我提供几个单机打怪升级的小游戏,角色扮演的那种,画面最好要好一点,谢谢!!!?求好玩的小游戏,可以打怪升级的那种
2024年6月5日 23:00
腾讯自研骑砍为什么失败?有哪些像《暗黑破坏神3:夺魂之镰》一样的刷装备游戏值得推荐
2023年10月18日 01:40
五福临门蚂蚁庄园(支付宝集五福本周五上线了,你集了几个你会去“蹭蹭”福气吗)
2024年2月4日 03:40