首页 > 代码库 > TCP/IP||ICMP

TCP/IP||ICMP

技术分享

  

1.概述

  ICMP为IP组成部分之一,传递差错报文并返回用户进程,在IP数据报内部被传输

技术分享

  类型字段可以有15个不同的值,以描述特定类型的ICMP报文,检验和字段覆盖整个ICMP报文。

 

2.报文类型

  技术分享

  在报文类型中,不同类型由报文的类型字段和代码字段来决定,当发送一份ICMP差错报文时,豹纹始终包含IP的首部和产生ICMP报文的IP数据报的前8个字节,在接收ICMP报文的模块会把某个特定协议和用户线程联系,在以下情况不会导致产生差错报文

  1.ICMP差错报文

  2.目的地址是广播地址

  3.链路层广播数据报

  4.不是IP分片得第一片

  5.原地址不是单个地址的数据报,不能是零地址

 

3.ICMP请求应答

技术分享

  ICMP报文中的标示符河序列号由发送端任意选择设定,这些值在应答中被返回,发送端可以把应答与请求进行分配。

 

4.ICMP时间戳请求应答

  时间戳请求允许系统向另一个系统查询当前时间,返回的建议值是自午夜开始计算的毫秒数,这种ICMP报文好处提供毫秒级的分辨率,利用其他参数获取时间

技术分享

 

5.ICMP端口不可达报文差错

    ICMP存在一个规则,ICMP差错报文必须包括生成该差错报文的数据报IP首部,也必须包括该IP首部的前8个字节.

    在导致差错的数据报中IP首部要被送回是因为IP首部包含了协议字段,使ICMP知道如何解释后8个字节.

技术分享

不同类型的不可达报文,代码分别为0~15,ICMP不可达代码为3,第二个32bit为0,当为4时,MTU发现机制允许路由器把外出接口的MTU填在这个32bit的低16bit中

TCP/IP||ICMP