10 |
您所在的位置:网站首页 › icmp类型代码 › 10 |
1. ICMP数据报文格式
icmp数据报文的格式如图1所示: ![]() 代码(code):占用了8 bit位,根据ICMP差错报文的类型,进一步分析错误的原因,代码值不同对应的错误也不同,例如:类型为11且代码为0,表示数据传输过程中超时了,超时的具体原因是TTL值为0,数据报被丢弃。 校验和(checksum):占用了16 bit位,数据发送到目的地后需要对ICMP数据报文做一个校验,用于检查数据报文是否有错误。 标识符(Identifier):占用了16 bit位,对于每一个发送的数据报进行标识 序列号(Sequence number):占用了16 bit位,对于发送的每一个数据报文进行编号,比如:发送的第一个数据报序列号为1,第二个序列号为2。 数据(Data):要发送的ICMP数据。 以icmp请求报文为例,我们来看一下icmp请求报文的封装格式: ![]() 这是我们刚才通过ping命令抓的ICMP协议包,其中request是ICMP请求数据报,reply是ICMP回答数据报,另外request和reply是一组ICMP请求回答数据报 我们再针对一组ICMP请求回答数据报分析两个ICMP数据报是否为一组。 ![]() 在图3中,左侧是ICMP请求,右侧是ICMP回答,我们在分析的时候发现,这两个ICMP数据报的序列号都是一样的,说明了这两个ICMP数据报就是一组的。而不同组的ICMP数据报的序列号也是不同的,由此可知,通过判断两个ICMP报文的序列号就可以知道是否为一组。 下面我们来看一下,我们在用ping命令发送的ping包携带的是什么数据。 ![]() 其中Data就是刚才ping命令所发送的ICMP数据报文里的数据部分,这些数据是ping命令发送的测试内容,左侧部分是以十六进制表示,右侧部分就是我们所发送的数据部分,这些数据长度正好是32字节,一个字母代表一个字节。 2. ICMP报文通用格式![]() 前面我们说过ICMP数据报文种类有ICMP差错报文和ICMP查询报文,这些报文的格式除了类型,代码,校验和这些字段是一样的,但是不同的ICMP数据报文的类型,代码等字段也是不一样的,而上面的图5是ICMP数据报文的通用格式。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |