网络学习之ping指令

本文探讨了ping指令的工作原理,包括它如何利用ICMP协议进行网络诊断。通过ping,我们可以检测主机间的可达性,而ICMP是IP协议的一部分,用于传输控制消息。ping的时间差异可能由路由路径不同或网络延迟引起。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

和同学聊天的时候被问到这样一个问题:在虚拟环境路由中主机A ping主机B的时间 加上主机B ping主机C的时间 为什么比主机A ping主机C的时间长?

我们经常使用ping指令探测主机间是否通信,然而细究起来还是一知半解,所以这个问题也引起了我的兴趣。

1.ping指令

windows系统下打开cmd命令行工具就可以使用ping网络诊断工具。

我们ping一个网站的效果:

我们再ping本机的效果:

ping 使用的是ICMP协议,它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。
PING命令是属于ICMP协议规定的,而ICMP是内嵌于IP层的,IP协议是一种无连接的,不可靠的数据包协议。因此,可以说, PING是网络层的命令。按照缺省设置,Windows上运行的Ping命令发送4个ICMP(网间控制报文协议)回送请求,每个32字节数据,如果一切 正常,我们应能得到4个回送应答。 Ping能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接速度比较快。

关于TTL(存活时间)我们可以推算下数据包经过了多少个路由器:源地点TTL起始值(一个2的乘方数)-返回时的TTL

例如第一个ping amazon的时候就是256-235=21跳;第二个ping本机就是128-128=0跳

2. ICMP协议


ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个面向无连接子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

ICMP的应用:ping ,traceroute

3. ping工作流程

主机A构建一个固定格式的ICMP请求数据包加ip地址->IP层协议,构建IP数据包->在ARP映射表中查找出IP地址对应的MAC地址->路由传输->主机B收到数据帧验证接收->提取IP数据包交给IP层协议->提取信息交给ICMP协议,构建ICMP应答包->发送给主机A

4.回到问题

由于ping指令基于非面向连接的协议,所以其消耗时间主要基于路由路径和网络传输速度。所以具体原因很可能是两次的路由算法算出的路径不一样导致时间差异,或者是网络传输途中发生的网络延迟等问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值