icmp应答包如何定位ping进程

在TCP和UDP中,端口号用于定位对应进程,但ICMP协议没有端口号。通过RFC标准,发现ICMP请求包的identifier和sequence number可用于匹配请求与应答,从而解决ping程序如何定位应答包的问题。可以通过修改ping程序进行验证,当启动两个ping程序时,一个应答包会反馈给这两个程序。
摘要由CSDN通过智能技术生成

今天一个朋友说他自己实现一个ping程序。要过他的代码看了一看。通常的ping程序都是通过icmp协议实现,但是icmp协议却不同于tcp与udp。tcp与udp协议首部包含着源端口号和目的端口号,所以当一个tcp或udp协议应答返回时,我们可以根据对应的端口号,定位到相应的处理进程。但是icmp的协议里面并不包含端口号,ping程序是如何定位到应答包属于自己发出的呢?

icmp 报文首部

// ICMP header for both IPv4 and IPv6.
//
// The wire format of an ICMP header is:
// 
// 0               8               16                             31
// +---------------+---------------+------------------------------+      ---
// |               |               |                              |       ^
// |     type      |     code      |       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值