ICMP报文类型及作用(简答)

ICMP报文类型及作用(简答),第1张

总体上被分为两种类型差错报文和信息报文。差错报文的报文类型从0到127;信息报文的类型从128到255。

ICMP报文包含在IP数据报中,属于IP的一个用户,IP头部就在ICMP报文的前面,所以一个ICMP报文包括IP头部、ICMP头部和ICMP报文,IP头部的Protocol值为1就说明这是一个ICMP报文,ICMP头部中的类型(Type)域用于说明ICMP报文的作用及格式。

此外还有一个代码(Code)域用于详细说明某种ICMP报文的类型,所有数据都在ICMP头部后面。ICMP报文格式具体由RFC 777,RFC 792规范。

扩展资料

ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。

比如,可以利用 *** 作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)攻击。“Ping of Death” 攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。

此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命。

参考资料来源:百度百科-ICMP

参考资料来源:百度百科-icmp数据包

参考资料来源:百度百科-ICMPv6

BYTE 8位

USHORT 16位

ULONG 32位

结构体一共12字节,时间戳相当于一个标记,将时间和数据绑定在一起,提供一个时间证明,发送的时候才进行填充,ICMP里的时间戳是为了计算从发送回显请求到接收到回显应答报文经过了多少时间。

例如:

dwOldTime = GetTickCount()

DoSomething()

dwTimeElapsed = GetTickCount() – dwOldTime

ICMP报文格式

ICMP虽然是网络层的协议,但要将ICMP报文放入IP中发送。如图3.1所示,下一个头标值

58表示ICMP报文。由该图可见,ICMP报文的公共头标由1字节的类型(type)、1字节的

代码(code)和2字节的校验和(checksum)组成。

类型域和代码域用来标识各种ICMP报文。类型域表示ICMP报文的类型,目前已定义了14

种,表3.1示出了类型值所对应的报文类型。从类型值来看ICMP报文可分为二大类。第1

类是取值为1~127的差错报文,取值128以上的是信息(informational)报文。

1不能到达信宿(Destination Unreachable)差错报文

2分组过大(Packet Too Big)差错报文

3超时(Time Exceeded)差错报文

4参数问题(Parameter Problem)差错报文

128返回请求(Echo Request)报文

129返回应答(Echo Reply)报文

130组成员查询(Group Membership Query)

131组成员报告(Group Membership Report)

132组成员结束(Group Membership Termination)

133路由器请求(Router Solicitation)

134路由器公告(Router Advertisement)

135邻机请求(Neighbor Solicitation)

136邻机公告(Neighbor Advertisement)

137 重定向(Redirect)


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

原文地址: http://outofmemory.cn/tougao/11738727.html

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

发表评论

登录后才能评论

评论列表(0条)

保存