《TCP/IP详解 卷1:协议》 读书笔记 第6章 ICMP:Internet控制报文协议

ICMP:Internet控制报文协议


引言

ICMP通常被认为是IP层的一个组成部分。它传递差错报文及其他需要注意的信息。
ICMP实在IP数据报内部被传输的。(封装在IP中)

ICMP报文

  • 所有ICMP报文前4个字节是一样的。(也就是类型的前4位不变,所以类型只有15个)
  • 检验和字段覆盖整个ICMP报文,ICMP的检验和是必需的。

ICMP报文的类型

ICMP的类型由类型字段和代码字段共同决定。
ICMP报文类型

在对ICMP差错报文进行响应时,永远不会生成另一份ICMP差错报文(如果一个差错引起了另一个差错……一直循环下去)

当发送一份ICMP差错报文时,报文始终包含IP首部和产生ICMP差错报文的IP数据报的前8个字节。(后面会讲)

下面情况不会产生ICMP差错报文:

  1. ICMP差错报文(上面已经提到,不过ICMP查询报文可以差生ICMP差错报文)
  2. 目的地址是广播或多播地址的IP数据报。
  3. 作为链路层广播的数据报。
  4. 不是IP分片的第一片。
  5. 源地址不是单个主机的数据报。(源地址不能为0地址、环回地址、广播地址和多播地址)

ICMP地址掩码请求与应答

ICMP地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码。系统广播它的ICMP请求报文(这一过程与无盘系统在引导过程中用RARP获取I P地址是类似的)。无盘系统获取子网掩码的另一个方法是 BOOTP协议。

ICMP报文中的标识符和序列号字段由发送端任意选择设定,这些值在应答中将被返回。这样,发送端就可以把应答与请求进行匹配。

报文


ICMP时间戳请求与应答

ICMP时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数,协调的统一时间( Coordinated Universal Time, UTC ),不知道日期

时间戳


ICMP端口不可达差错

UDP的规则之一——如果收到一份UDP数据报而目的端口与某个正在使用的进程不相符,那么返回一个ICMP不可达报文。

注意,ICMP报文是在主机之间交换的,而不用目的端口好,而每个20字节的UDP数据报则是从一个特定端口发送到另一个特定端口。

ICMP的一个规则是,ICMP差错报文必须包括生成该差错报文的数据报IP首部,还必须至少包括跟在该IP首部后面的前8个字节。IP首部后面的8个字节实际上是TCP或UDP首部的内容。
因为IP首部中包含了协议字段,使得ICMP可以知道如何解释后面的8个字节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值