Tracert(traceroute)&Ping 工作原理分析

Tracert(traceroute)&Ping 工作原理分析一、tracert工作过程分析Tracert命令用IP生存时间(TTL)字段和ICMP错误消息来确定从一个主机到网络上其他主机的路由。首先,tracert送出一个TTL是1的IP数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个「ICMPtimeexceeded」消息(

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

Jetbrains全系列IDE稳定放心使用

一、tracert工作过程分析

Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。

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

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

Tracert(traceroute)&Ping 工作原理分析

                                                                                     图4-5-1 Tracert命令

Tracert(traceroute)&Ping 工作原理分析

                                                                                        图4-5-2 Tracert发送的数据包 (TTL递增顺序)

Tracert(traceroute)&Ping 工作原理分析

4-5-3 Tracert接收的数据包

二、ping 工作过程分析

PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP echo请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。原理:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少

反馈信息(百度百科)

Request timed out
a.对方已关机
b.对方与自己不在同一网段内,通过路由也无法找到对方
c.对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)
怎样知道对方是存在,还是不存在呢,可以用带参数 -a 的Ping命令探测对方,如果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。
d.错误设置IP地址
Destination host Unreachable
对方与自己不在同一网段内,而自己又未设置默认的路由,或者网络上根本没有这个地址,比如上例中A机中不设定默认的路由,运行Ping 192.168.1.4就会出现“Destination host Unreachable”。
网线出了故障
这里要说明一下“destination host unreachable”和 “time out”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable”。
Bad IP address
这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是IP地址不存在。
Source quench received
这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
Unknown host——不知名主机
这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。
No answer——无响应
这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的
路由器没有工作;通信线路有故障;中心主机存在路由选择问题。
Ping 127.0.0.1:127.0.0.1是本地循环地址
如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。
no rout to host:网卡工作不正常
transmit failed,error code:10043网卡驱动不正常
unknown host nameDNS配置不正确

参数详解

-a 解析计算机NetBios名。

-n count 发送count指定的Echo数据包数

-l size . 定义echo数据包大小

-f 在数据包中发送“不要分段”标志

-i TTL 指定TTL值在对方的系统里停留的时间

-r count 在“记录路由”字段中记录传出和返回数据包的路由

-w timeout 指定超时间隔,单位为毫秒

-t–连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断

-j host-list 利用 computer-list 指定的计算机列表路由数据包。

Tracert(traceroute)&Ping 工作原理分析

                                                                                                                  图4-5-4 ping数据包

结果分析:

这里发送4个ping数据包,wireshark也是抓到8个数据包,其中包含请求与响应数据包

Tracert(traceroute)&Ping 工作原理分析

                                                                                                           图4-5-5 ping分片重组数据包

结果分析:这里使用命令:ping www.tasfa.cn -l 30000 -n 1 即发送一个大小为30000字节的ICMP数据包(Ping);由于每个数据包最大数目为1514(1514bytes = 1480(icmp数据) + 20(ip头) +14(以太网))所以需要分片重组,由图4-5-5可知ip数据包在#25重组。


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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189841.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 网络地址转换NAT原理及其作用「建议收藏」

    网络地址转换NAT原理及其作用「建议收藏」1 概述1.1 简介NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Interne

  • Mock 测试

    Mock 测试Mock基本概念介绍mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。好处团队并行工作 团队间不需互相等待对方进度,只需约定好相互之间的数据规范(接口文档),即可使用mock构建出可用接口,然后尽快进行开发和自测,提前发现缺陷 测试驱动开发TDD(Test-DrivenDevelopment) 单元测试是TDD实现的基石,而TDD经常会碰到协同模块尚未开发完成的情况,但有了mock,当接口定义好后,测试人

  • lambda表达式pythonlist_python lambda表达式简单用法【转】「建议收藏」

    lambda表达式pythonlist_python lambda表达式简单用法【转】「建议收藏」1、lambda是什么?看个例子:g=lambdax:x+1看一下执行的结果:g(1)>>>2g(2)>>>3当然,你也可以这样使用:lambdax:x+1(1)>>>2可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为:1defg(x):2returnx+1非常容易理解,在这里lambda简化了函数定义的书…

    2022年10月17日
  • apply方法 python_python min函数

    apply方法 python_python min函数Pythonapply函数的用法发布于2014-08-0721:02:24|674次阅读|评论:0|来源:网友投递Python编程语言Python是一种面向对象、解释型计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各…

    2022年10月27日
  • 国内十大正规现货交易平台排名(2021版榜单)

    国内十大正规现货交易平台排名(2021版榜单)现货亦称实物,指可供出货、储存和制造业使用的实物商品。可供交割的现货可在近期或远期基础上换成现金,或先付货,买方在极短的期限内付款的商品的总称。期货的对称。随着互联网的出现,世界已慢慢变成地球村,建立在信息化基础上的现货电子交易走上新经济的舞台。现货电子交易(也称为大宗商品电子交易,或现货仓单交易)是以现货仓单为交易的标的物,采用计算机网络进行的集中竞价买卖,统一撮合成交,统一结算付款,价格行情实时显示的交易方式。国内不少投资者对现货交易还不是太了解,下面小编为您介绍“国内十大正规现货交易平台排名(20

  • django不使用外键连接表_创建表的sql语句外键

    django不使用外键连接表_创建表的sql语句外键外键删除操作如果一个模型使用了外键。那么在对方那个模型被删掉后,该进行什么样的操作。可以通过on_delete来指定。可以指定的类型如下:CASCADE:级联操作。如果外键对应的那条数据被删除了,

发表回复

您的电子邮箱地址不会被公开。

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