TCP/IP协议-学习笔记3-ICMP报文

目录

一、报文结构

二、各种ICMP报文类型

2.1 查询报文

2.1.1 回显请求和应答

2.1.2 时间戳请求和应答

2.1.3 信息请求和应答

2.1.4 地址掩码和应答

2.2 差错报文

2.2.1 目的不可达

2.2.2 冷却报文

2.2.3 重定向 

2.2.4 超时

2.2.5 参数错误 


一、报文结构

ICMP(网络控制管理协议)报文是封装在IP报文内部传输的,也就是ICMP报文是IP报文的数据部分。

下图为ICMP报文格式:

其中 8位类型,有15种不同类型,部分协议还可以复用8位代码来扩展类型。

二、各种ICMP报文类型

可以总的将ICMP报文分为查询报文和差错报文。

 

2.1 查询报文

2.1.1 回显请求和应答

Ping就是用这种报文进行查询和回应。Type(8)请求回显报文(Echo)Type(0)回显应答报文(Echo Reply)

2.1.2 时间戳请求和应答

时间戳报文是用来记录收发以及传输时间的报文。Originate Timestamp记录的是发送方发送报文的时刻;Receive Timestamp记录的是接收方收到报文的时刻;Transmit Timestamp表示回显这最后发送报文的时刻。Type(13) 是请求报文,Type(14)是应答报文

2.1.3 信息请求和应答

这种报文是用来找出一个主机所在的网络个数(一个主机可能会在多个网络中)。报文的IP消息头的目的地址会填为全0,表示this,源地址会填为源IP所在的网络IP。

2.1.4 地址掩码和应答

ICMP地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码。

 

2.2 差错报文

2.2.1 目的不可达

        网络在传输过程中,发现目的无法到达, 这时候,就会向源主机发送目的不可达(type 为 3), code 不同代表不同的原因。

2.2.2 冷却报文

        路由器在处理报文时会有一个缓存队列。如果超过最大缓存队列,将无法处理,从而丢弃报文。并向源发送方发一个ICMP冷却报文(Type4)

2.2.3 重定向 

         当路由收到IP数据报,发现数据报的目的地址在路由表上没有,它就会发ICMP重定向报文(Type为5)给源发送方

2.2.4 超时

        网络传输IP数据报的过程中,如果IP数据包的TTL值逐渐递减为0时,需要丢弃数据报。这时,路由器需要向源发送方发送ICMP超时报文(Type为11),Code为0,表示传输过程中超时了。

        一个IP数据报可能会因为过大而被分片,然后在目的主机侧把所有的分片重组。如果主机迟迟没有等到所有的分片报文,就会向源发送方发送一个ICMP超时报文,Code为1,表示分片重组超时了。

2.2.5 参数错误 

         当路由器或主机处理数据报时,发现因为报文头的参数错误而不得不丢弃报文时,需要向源发送方发送 ICMP 参数错误(type为12) IP首部错误code为0,缺少必须的选项code为1.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章