TCP/IP详解--第六章

本文详细介绍了ICMP协议,包括其在IP层的作用、报文格式和不同类型,如地址掩码请求与应答、时间戳请求与应答,以及端口不可达的错误处理。ICMP报文用于传递错误信息和查询,例如网络故障诊断和时间同步。文中还讨论了ICMP报文的处理方法和实际应用示例。
摘要由CSDN通过智能技术生成


第6章 ICMP:Internet控制报文协议


6.1   引言

 

I C M P 经常被认为是 I P 层的一个组成部分。它传递差错报文以及其他需要注意的信息。 ICMP报文通常被 IP 层或更高层协议( TCP或UDP)使用。一些 ICMP报文把差错报文返回给 用户进程。


ICMP报文是在 IP数据报内部被传输的,如 图6-1所示。

ICMP  的正式规范参见  RFC  792  [Posterl

1981b]。


 

IP首部

20字节


IP数据报

 

ICMP报文


ICMP报文的格式如图 6-2所示。所有报文的


图6-1   ICMP封装在IP数据报内部


前4个字节都是一样的,但是剩下的其他字节则互不相同。下面我们将逐个介绍各种报文格式。类型字段可以有 15个不同的值,以描述特定类型的 ICMP报文。某些 ICMP报文还使用代

码字段的值来进一步描述不同的条件。

检验和字段覆盖整个 ICMP报文。使用的算法与我们在 3.2节中介绍的 IP首部检验和算法相 同。ICMP的检验和是必需的。

 

 

8位类型                8位代码                            16位检验和

 

 

 

(不同类型和代码有不同的内容)

 

 

 

图6-2   ICMP报文

 

在本章中,我们将一般地讨论 ICMP 报文,并对其中一部分作详细介绍:地址掩码请求和 应答、时间戳请求和应答以及不可达端口。我们将详细介绍第 27章Ping程序所使用的回应请 求和应答报文和第 9章处理 IP路由的 ICMP报文。

6.2    ICMP报文的类型

 

各种类型的ICMP报文如图6-3所示,不同类型由报文中的类型字段和代码字段来共同决定。 图中的最后两列表明 ICMP报文是一份查询报文还是一份差错报文。因为对  ICMP 差错报 文有时需要作特殊处理,因此我们需要对它们进行区分。例如,在对 ICMP差错报文进行响应 时,永远不会生成另一份 ICMP差错报文(如果没有这个限制规则,可能会遇到一个差错产生

另一个差错的情况,而差错再产生差错,这样会无休止地循环下去)。 当发送一份 ICMP差错报文时,报文始终包含 IP的首部和产生 ICMP差错报文的 IP数据报的

前8个字节。这样,接收 ICMP 差错报文的模块就会把它与某个特定的协议(根据  IP数据报首


 

类      型         代      码                                  描      述

查     询

差      错

0                   0                       回显应答( Ping应答,第 7章)

 

3                                            目的不可达:

0                      网络不可达( 9.3节)

1                      主机不可达( 9.3节)

2                      协议不可达

3                      端口不可达( 6.5节)

4                      需要进行分片但设置了不分片比特( 11.6节)

5                      源站选路失败( 8.5节)

6                      目的网络不认识

7                      目的主机不认识

8                      源主机被隔离(作废不用)

9                      目的网络被强制禁止

10                      目的主机被强制禁止

11                      由于服务类型 TOS,网络不可达( 9.3节)

12                      由于服务类型 TOS,主机不可达( 9.3节)

13                      由于过滤,通信被强制禁止

14                      主机越权

15                      优先权中止生效

 

 

4                   0                       源端被关闭(基本流控制, 11.11节)

 

5                                            重定向( 9.5节):

0                      对网络重定向

1                      对主机重定向

2                      对服务类型和网络重定向

3                      对服务类型和主机重定向

 

8                   0                       请求回显( Ping请求,第 7章)

 

9                   0                       路由器通告( 9.6节)

10                 0                       路由器请求( 9.6节)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值