Tracert原理_traceroute命令工作原理

Tracert原理_traceroute命令工作原理traceroute原理traceroute通过ICMP“超时”和“端口不可达”两种消息记录所经过路径的路由。 使用“超时”消息记录经过的路由:traceroute程序发送的数据报首部TTL字段由发送端设置成一个8bit字段。每个处理数据报的路由器都需要把TTL的值减1或减去数据报在路由器中停留的秒数。由于大多数的路由器转发数据报的时延都小于1秒,因此TTL最终成为一个跳数计数器,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

traceroute原理

traceroute通过ICMP“超时”和“端口不可达”两种消息记录所经过路径的路由。

 

使用“超时”消息记录经过的路由:

traceroute程序发送的数据报首部TTL字段由发送端设置成一个8bit字段。每个处理数据报的路由器都需要把TTL的值减1或减去数据报在路由器中停留的秒数。由于大多数的路由器转发数据报的时延都小于1秒,因此TTL最终成为一个跳数计数器,每经过一台路由器就将其值减1。

当路由器收到一份IP数据报,如果其TTL字段是0或1,则路由器不转发该数据报。通常情况下,系统不会接收TTL值为0的数据报。

1 接收到这种数据报的主机是目的主机,直接将其交给应用程序。

2 接收主机不是目的主机,直接将其丢弃,并给发送端发一份ICMP超时消息。

traceroute程序记录所经过路由的关键在于包含这份ICMP信息的IP报文的信源地址是该路由器的入站接口IP地址。

 

使用“端口不可达”消息判断是否到达目的主机:

traceroute程序发送一份UDP数据报给目的主机。但它选择一个不可能的值作为UDP端口号(大于30000),目的主机的任何一个应用程序都不可能使用该端口。因此,当该数据报到达时,将使目的主机的UDP模块产生一份“端口不可达”错误的ICMP报文。traceroute程序要做的就是区分接收到的ICMP错误报文是“超时”还是“端口不可达”来判断什么时间结束。

 

tracert工作过程分析

 Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。 首先,tracert送出一个TTL是1的IP 数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),tracert 收到这个消息后,便知道这个路由器存在于这个路径上,接着tracert 再送出另一个TTL是2 的数据包,发现第2 个路由器…… tracert 每次将送出的数据包的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个数据包 抵达目的地。当数据包到达目的地后,该主机则不会送回ICMP time exceeded消息,一旦到达目的地,由于tracert通过UDP数据包向不常见端口(30000以上)发送数据包,因此会收到「ICMP port unreachable」消息,故可判断到达目的地。

 

tracert 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Tracert给TTL记数器加1,继续进行。 —

 

更新分界线


将上面的tracert全部换成traceroute

思科的traceroute与微软的tracert原理是不同的,tracert是发ICMP request包,但路过的设备也同样会发ICMP exceeded超时信息,而目的地发的是ICMP echo reply的包。

traceroute原理各个所发的包描述:

发起方:一开始,发送一个TTL=1,高端口号的UDP包,之后TTL递增。

路经的路由器:返回TTL超时的type为11,code为0的ICMP包

目标方:返回端口不可达type为3,code为3的ICMP包

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

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

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


相关推荐

  • 什么是pisa测试_从PISA测试看中国四省市学生:成绩遥遥领先之外,这些特质令人意外…

    什么是pisa测试_从PISA测试看中国四省市学生:成绩遥遥领先之外,这些特质令人意外…印象中PISA测试就是证明中国学生是王者的时刻。最新的这次也不例外。但除了考试分数高,中国学生还有哪些特质?——我是无所不能的分割线———先来了解下什么是PISA:PISA全名“国际学生评估项目”(theProgrammeforInternationalStudentAssessment),由国际经合组织(OECD)举办,每三年一次,针对全世界多个国家和地区(包括但不…

    2022年6月6日
    50
  • dsPIC33EP 时钟初始化程序

    dsPIC33EP 时钟初始化程序

    2021年8月26日
    56
  • navicat15激活码3月最新在线激活「建议收藏」

    navicat15激活码3月最新在线激活,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    191
  • java课程设计成绩管理系统_Java课程设计–学生成绩管理系统

    java课程设计成绩管理系统_Java课程设计–学生成绩管理系统一、团队名称:##团队成员林艺薇201721123032网络1712黄毓颖201721123033网络1712唐川201721123034网络1712梁才玉201721123038网络1712##任务分配#三、项目git提交记录截图#四、项目功能架构图与主要功能流程图##思维导图##成绩管理流程图#五、项目运行截图##主界面##选择用户##教师登陆界面##…

    2022年7月9日
    20
  • 代理IP池(sqlmap外部代理ip池)

    这些公共代理是完全免费提供的,不需要任何授权。免费代理通常是开放的、流行的公共代理。与私人代理不同,公共代理不需要注册或密码。事实上,它们是负责安装在计算机上的代理服务器并且不关心更改默认设置的系统管理员的错误或疏忽。因此,服务器通过特殊的扫描仪快速定位到网络中,成为渴望匿名的公众的财产。这些信息足以安全地浏览全球网络,而无需显示您的真实IP地址。这些代理有很大的优势:他们有一个简单的设置-这些代理不需要授权并且设置简单他们是免费的!没有流量限制或使用目的但是,除了所有这些优点之外,这

    2022年4月14日
    209
  • superset、metabase、redash三个开源BI工具的个人使用心得及分析

    superset、metabase、redash三个开源BI工具的个人使用心得及分析数据可视化也是大数据领域里极为关键的一环 一开始我们用的是 SpringBoot ECharts 的经典组合来做可视化的 确实功能很强也很灵活 但后来随着统计需求越来越多 每来一个新需求都要写大量的重复的 MVC 代码 这等于花费了许多无用的时间和精力 这种时候就需要一个 BI 工具来简化这个过程 市面上有很多极为优秀的 BI 像 Tableau PowerBI 等 但这些都是收费的 不在考虑范围内 而开源免费的

    2025年7月15日
    6

发表回复

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

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