自己动手学TCP/IP--ICMP(ping报文)

本文介绍了ping命令的工作原理,涉及ICMP报文的结构,包括报文长度、类型、标识符和序列号。通过分析ICMP回显请求和应答报文,解释了如何计算时间差来评估网络延迟。还提及了使用wireshark抓取ping请求报文,并提供了简单ping功能的代码实现。
摘要由CSDN通过智能技术生成

ping是ICMP的一种,是用来检查网络是否通畅或者网络连接速度的命令。

报文长度(98bytes)= 以太网头(14bytes)+ IP头(20bytes)+ICMP头(8)+ ICMP数据内容(56字节)

报文格式

ICMP回显请求报文类型是8(ICMP_ECHO),标识符字段是进程的ID,用于接受应答包的处理,序列号是不断加1,ICMP数据内容选项则包含了发送包时系统的时间。
ICMP回显应答报文类型是1(ICMP_ECHOREPLY),标识符字段是发送进程的ID号,ICMP数据内容保存的是发送请求的时间,ping程序收到ICMP的回显应答包时,获取当前系统时间,然后与回显包中数据内容(发送的时间)相减,算出时间差。

下面是一张wireshark抓到的ping请求报文


下面是模拟简单的ping功能的代码,详细的代码可以查看

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值