Linux里面icmp是什么?

Linux里面icmp是什么?,第1张

ICMP是Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。

ping是DOS命令,通常用于检测网络连接和故障。Ping是Internet包资源管理器,用于测试网络连接量的程序。Ping向目的地发送ICMP回声清除消息,并报告是否接收到所需的ICMP回声响应。

需要建立socket,参数是AF_INET,SOCK_RAW,IPPROTO_ICMP

自己构造ICMP数据包, sendto发送给某地址。

ICMP有多种,你可以发送type为13的时间戳请求。

然后调用recvfrom会收到type为14的timestamp reply的IP包,

IP头一般是20 Bytes,里面包含src IP,des IP还有TTL等。

IP包的数据就是返回ICMP timestamp reply报文,里面有origTimestamp,recvTimestamp,transStamp,可以计算出时间。

可以参考网页链接网页链接

觉得有帮助可以注册帐号,给他点个“星”

Linux ping命令用于检测主机。

执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

语法:

ping

[-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]

参数:

-d 使用Socket的SO_DEBUG功能。

-c<完成次数>设置完成要求回应的次数。

-f 极限检测。

-i<间隔秒数>指定收发信息的间隔时间。

-l<网络界面>使用指定的网络接口送出数据包。

-l<前置载入>设置在送出要求信息之前,先行发出的数据包。

-n 只输出数值。

-p<范本样式>设置填满数据包的范本样式。

-q 不显示指令执行过程,开头和结尾的相关信息除外。

-r 忽略普通的Routing Table,直接将数据包送到远端主机上。

-R 记录路由过程。

-s<数据包大小>设置数据包的大小。

-t<存活数值>设置存活数值TTL的大小。

-v 详细显示指令的执行过程。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7288554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存