【TCP/IP】ICMP

ICMP介绍:



ICMP它传递差错报文以及其他需要注意的信息

ICMP报文是在IP数据报内部被传输的

所有报文的前4个字节(类型、代码、校验和)都是一样的,类型字段可以有15个值,描述特定类型的ICMP报文,某些ICMP报文还使用代码字段的值进一步描述不同的条件

校验和字段覆盖整个ICMP报文

 

不同类型由报文中的类型字段和代码字段来共同决定

TYPE

CODE

Description

Query

Error

0

0

Echo Reply——回显应答(Ping应答)

x

3

0

Network Unreachable——网络不可达

x

3

1

Host Unreachable——主机不可达

x

3

2

Protocol Unreachable——协议不可达

x

3

3

Port Unreachable——端口不可达

x

3

4

Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特

x

3

5

Source routing failed——源站选路失败

x

3

6

Destination network unknown——目的网络未知

x

3

7

Destination host unknown——目的主机未知

x

3

8

Source host isolated (obsolete)——源主机被隔离(作废不用)

x

3

9

Destination network administratively prohibited——目的网络被强制禁止

x

3

10

Destination host administratively prohibited——目的主机被强制禁止

x

3

11

Network unreachable for TOS——由于服务类型TOS,网络不可达

x

3

12

Host unreachable for TOS——由于服务类型TOS,主机不可达

x

3

13

Communication administratively prohibited by filtering——由于过滤,通信被强制禁止

x

3

14

Host precedence violation——主机越权

x

3

15

Precedence cutoff in effect——优先中止生效

x

4

0

Source quench——源端被关闭(基本流控制)

5

0

Redirect for network——对网络重定向

5

1

Redirect for host——对主机重定向

5

2

Redirect for TOS and network——对服务类型和网络重定向

5

3

Redirect for TOS and host——对服务类型和主机重定向

8

0

Echo request——回显请求(Ping请求)

x

9

0

Router advertisement——路由器通告

10

0

Route solicitation——路由器请求

11

0

TTL equals 0 during transit——传输期间生存时间为0

x

11

1

TTL equals 0 during reassembly——在数据报组装期间生存时间为0

x

12

0

IP header bad (catchall error)——坏的IP首部(包括各种差错)

x

12

1

Required options missing——缺少必需的选项

x

13

0

Timestamp request (obsolete)——时间戳请求(作废不用)

x

14

Timestamp reply (obsolete)——时间戳应答(作废不用)

x

15

0

Information request (obsolete)——信息请求(作废不用)

x

16

0

Information reply (obsolete)——信息应答(作废不用)

x

17

0

Address mask request——地址掩码请求

x

18

0

Address mask reply——地址掩码应答

 

 

 

 

 

BSD系统对ICMP报文的处理:


ICMP差错报文格式:

当发送一份ICMP差错报文时,报文始终包含IP的首部和产生ICMP差错报文的IP数据报的前8个字节。这样,接收ICMP差错报文的模块就会把它与某个特定的协议(根据IP数据首部中的协议字段来判断)和用户进程(根据包含在IP数据报前8个字节中的TCP或UDP报文首部中的TCP或UDP端口号来判断)联系起来

IP首部:源IP地址为发送差错报文的接口IP,目的IP地址为原报文的源IP地址

ICMP首部:类型,代码,校验和。

产生差错的数据报IP首部:造成数据错误的IP头部

UDP首部:造成数据错误的端口号

 

ICMP差错报文

下面各种情况不会导致产生ICMP差错报文:

1.     ICMP差错报文不会再产生ICMP差错报文

2.     目的地址是广播地址或多播地址的IP数据报

3.     作为链路层广播的数据报

4.     不是IP分片的第一片,只有第一片才会有四层信息,其它片里面没有端口号。

5.     源地址不是单个主机的数据报。源地址不能为零地址、环回地址、广播地址、多播地址

这些规则是为了防止过去允许ICMP差错报文对广播的响应所带来的广播风暴。

高能报警!!!

在现实生活中debug 命令不要随便使用,会占用大量CPU资源导致网络瘫痪,设备可能会直接挂掉。

debug ip icmp  查看icmp报错信息

debug ip packet detail 调试IP数据包,判断网络故障原因

ICMP差错报文方便了我们排错,但是也造成了安全隐患。建议在接入层的接口下配置关闭不可达信息no ip unreachables

 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值