首页 > 代码库 > ICMP基础知识

ICMP基础知识

  1、ICMP(Internet Control Message Protocol):Internet控制报文协议。它传递差错报文以及其它需要注意的信息。

  2、应用场景:

  1)Ping程序。Ping的目的是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。(《TCP/IP详解 卷1:协议》第7章)

  2)ICMP端口不可达错误。如图,向本机61535端口发送一个UDP数据报(对应下图tcpdump捕获到的第一个数据包),但该端口没有进程在监听,因此:

  技术分享

  系统会增加/proc/net/snmp文件的UDP NoPorts计数器,并给源主机返回一个ICMP端口不可达报文。

  技术分享

  观察tcpdump捕获到的第二个数据包(对应ICMP报文),可以发现:它没有源和目的端口;第一个包的IP首部+IP数据(图中1)被封装到第二个包的IP报文数据部分(图中2)。

  

  待学习:/proc/sys/net/ipv4/目录。icmp_ratelimit(icmp频率限制)、icmp_ratemask(掩码)等。

 

 

 

 

 

不断学习中。。。

ICMP基础知识