当前位置:网站首页>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的端口号.
边栏推荐
- 密码学基础以及完整加密通讯过程解析
- (PC+WAP)织梦模板不锈钢类网站
- C语言实验十五 文件
- Jar a key generation document database
- LeetCode 0155. 最小栈
- OPC UA 与IEC61499 深度融合(1)
- Pytest learn-setup/teardown
- rsync basic usage
- The Chinese Valentine's Day event is romantically launched, don't let the Internet slow down and miss the dark time
- 孙宇晨:Web3.0和元宇宙将协助人类更加全面地进入网络世界
猜你喜欢
随机推荐
HNUCM 2022年暑假ACM搜索专项练习
Walk the Maze BFS
用队列模拟实现栈
JS get parameter value of URL hyperlink
BPF 可移植性和 CO-RE(一次编译,到处运行)
Unity2021发布WebGL雾效消失问题
我的祖国
关于mnn模型输出的数据杂乱无章问题
3D 语义分割——2DPASS
苹果对高通说:我4.45亿美元买下一个新园区,可能计划加快基带芯片自研
小身材有大作用——光模块寿命分析(二)
Shell编程之循环语句与函数
2021年数据泄露成本报告解读
P1996 约瑟夫问题
ts用法大全
[Paper Reading] TRO 2021: Fail-Safe Motion Planning for Online Verification of Autonomous Vehicles Using Conve
状态机实验
HNUCM 您好中国
栈的压入、弹出序列
图论-虚拟节点分层建图