ICMP 网络控制消息协议

ICMP,用于IP主机、路由器直接传递控制信息,主要分为查询和差错报文,并不传输用户数据;

- 协议字段

图1:协议字段

ICMP的类型由类型字段解释,代码字段用于标示发送错误的原因。下面介绍常用的ICMP报文:

- 目的不可达

当路由器收到一个无法传递下去的IP报文时,会发送ICMP目的不可达报文(Type3给IP报文的源发送方;

- 超时

图2:超时报文

网络在传送IP报文时,其TTL在不断减小,为0时路由器将其丢弃,并且向源发送方发送超时报文,类型为11,代码未0,即传输期间生存时间为0;

如果目的主机在收端重组分片时,迟迟未收到所有的分片,向源发送方发送超时报文,类型为11,代码为1,即数据报组装期间生存时间为0;

注:TTL的计算本质上基于时间的,所以繁忙的路由器可能减少的值不止为1,但是可以大约认为是1;TTL的使用,是为了防止数据报在网络中循环传输,直至产生拒绝服务的情况;

- 参数错误报文

当路由器或主机处理数据报时,发现因为报文头的参数错误而不得不丢弃报文时,需要向源发送方发送参数错误报文(Type12)。当Code为0时,报文中的Pointer表示错误的字节位置;

- 重定向

当路由收到IP数据报,发现数据报的目的地址在路由表上没有,它就会发ICMP重定向报文(Type5)给源发送方,提醒它想要发送的地址不在;

- 请求回显或回显应答

图3:请求回显或回显应答

ICMP是基于IP进行传输的,协议类型为1,对于网络安全具有重要的意义:

(1)Ping of Death攻击,就是当ICMP数据包的尺寸大于64KB时,主机出现内存分配错误,导致TCP/IP崩溃,主机死机;

(2)"ICMP风暴",是由于网络中充斥着大量ICMP报文,致使目标主机消耗大量CPU,疲于奔命;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、TCP为什么需要3次握手,4次断开? “三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端...
    杰伦哎呦哎呦阅读 3,548评论 0 6
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,138评论 6 174
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,099评论 0 8
  • 网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务(面向连接还是无连接)曾引起了长期的争论,...
    srtianxia阅读 4,039评论 0 12
  • 地址解析协议ARP 物理这一级,主机和路由器是用物理地址来区别的。物理地址是一个本地地址,管辖范围是本地网络,所以...
    顾慎为阅读 1,117评论 0 1