当前位置:   article > 正文

Linux内核中ICMP简介_linux下如何查看icmp报文统计

linux下如何查看icmp报文统计

  【推荐一篇很好的文章】 代码大佬的【Linux内核开发笔记】分享,前人栽树后人乘凉!

前言ICMP既(INTERNET CONTROL MESSAGE PROTOCOL)网络控制消息协议.属于TCP/IP协议族,工作在网络层(第三层),用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

对于查询报文,常用的ping命令,以及用于无盘系统启动获取网络子网掩码查询报文,以及时间戳报文,目标主机收到返回相应的格式的回应包;对于差错报文在一些情况下目标主机不会返回对应的数据包:

接下来列出Linux系统中ICMP相关内核参数:

参数可以在/etc/sysctl.conf中修改,使用sysctl -a查看,使用sysctl -w parameter=VALUE修改。

一、ICMP协议的功能

1. 确认IP包是否成功到达目标地址

2. 通知在发送过程中IP包被丢弃的原因

二、流程说明

三、需要注意

1.ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议

2. ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6

四、常见的ICMP报文

1.ping命令

ping命令的功能

(1)能验证网络的连通性

(2)会统计响应时间和TTL(IP包中的Time To Live,生存周期)

那么如何验证的呢?

(1)ping命令会先发送一个 ICMP Echo Request给对端

(2)对端接收到之后, 会返回一个ICMP Echo Reply

(3)若没有返回,就是超时了,会认为指定的网络地址不存在。

问题:

telnet是23端口,ssh是22端口,那么ping是什么端口?

答:ping命令是基于ICMP,是在网络层。

而端口号,是传输层的内容。所以在ICMP中根本就不关注端口号这样的信息。

2.traceroute:traceroute也是基于ICMP协议实现的。

功能:

打印出可执行程序主机,一直到目标主机之前经历多少路由器。

五、报文协议

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/819169
推荐阅读
相关标签
  

闽ICP备14008679号