当前位置:网站首页>ping数据包中的进程号
ping数据包中的进程号
2022-08-03 23:50:00 【书唐瑞】
当同一台机器A上执行相同的两个ping命令, 例如 ping 114.114.114.114, 那么机器A的内核收到对方机器的响应之后,如何把响应结果向上投递给应用层的对应的ping进程呢?
【1】查看网络接口
只有一个对外的网络接口eth0, 接下来执行的ping命令, 会通过eth0接口进行收发数据
【2】开启抓包
sudo tcpdump -i eth0 -c 1 -X icmp

监听eth0接口上的icmp数据包
【3】执行ping命令
ping 114.114.114.114

ping命令的底层会发送icmp数据包
【4】查看ping命令的进程号

执行ping命令的进程号是156
【5】
执行ping命令之后, tcpdump会抓取到icmp网络包
红色框圈中的是IP+ICMP协议的数据包, 其中绿色部分是ICMP协议的包, 共计64字节, 如下图是ICMP协议包格式

在icmp协议中, 对于ping命令来说, Identifier中存储着ping命令的进程号. Identifier偏移起始位置4字节, 占2字节.
如下图, 是通过wireshark抓取到的icmp网络包, 与通过tcpdump抓取的网络包一样
如下图, 根据Identifier偏移起始位置4字节, 占2字节. 于是0800e0369c00…数据包中的9c00就是进程号, 这里又涉及到网络字节序问题, 实际的数值应该是009c, 转成十进制就是156, 即Identifier位置存储着进程号156

通过这样就可以区别出来, 同一台机器执行的两个ping命令进程, 内核收到ping的响应之后, 就可以知道该把接收到的网络包给哪个ping进程了. 这个Identifier类似TCP的端口号.
边栏推荐
猜你喜欢

FinClip, help smart TV more imagination

用两个栈模拟队列

Jar a key generation document database

软测人每个阶段的薪资待遇,快来康康你能拿多少?

射频芯片(RFIC)的协议之5G及其调制

Prometheus监控Harbor(二进制版)

YOLOv7改进之二十二:涨点神器——引入递归门控卷积(gnConv)

vscode插件设置——Golang开发环境配置

七夕活动浪漫上线,别让网络拖慢和小姐姐的开黑时间

Code Casual Recording Notes_Dynamic Programming_416 Segmentation and Subsetting
随机推荐
北京电竞元宇宙论坛活动顺利召开
LeetCode 0155. 最小栈
- the skip/skipif Pytest learning
End-to-End Lane Marker Detection via Row-wise Classification
用两个栈模拟队列
YOLOv7改进之二十二:涨点神器——引入递归门控卷积(gnConv)
2022/8/3 Exam Summary
Creo 9.0创建几何点
电子邮件安全或面临新威胁!
XSLT – 编辑 XML概述
libnet
栈的压入、弹出序列
Unity intercepts 3D images and the implementation of picture-in-picture PIP
CAS: 178744-28-0, mPEG-DSPE, DSPE-mPEG, methoxy-polyethylene glycol-phosphatidylethanolamine supply
Pytest learn-setup/teardown
2021年数据泄露成本报告解读
sqlnet.ora文件与连接认证方式的小测试
Binary search tree to solve the fallen leaves problem
Jmeter-参数化
小身材有大作用——光模块寿命分析(二)