ICMP协议简介(一)

ICMP协议简介(一)

1. ICMP介绍

  • 架构IP网络时需要特别注意两点:
    • 1.确认网络是否正常工作
    • 2.遇到异常时进行问题诊断
  • ICMP的主要功能:
    • 1.确认IP包是否成功送达目标地址。
    • 2.通知在发送过程当中IP包被废弃的具体原因。
  • ICMP技术网络设备都配合。

2. ICMP实例

image
eg:如果R1到达R2的包在R2发现没有到达R3的路由,则发送ICMP到R1,告知不可达。

3.ICMP头部

image

  • ICMP头部有8个字节
  • 前四个字节格式固定
    • type类型 8bit
    • code代码 8bit
    • checksum校验和 16bit
  • 后四个字节不固定:可能有可能没有,和类型有关系。

4. ICMP报文的类型

  • 不同类型由报文中的类型字段代码字段共同决定
  • ICMP分为两种类型
    • 查询报文
    • 差错报文

  • 报文类型如下图所示:
    其中最熟悉的两个报文都是 查询报文:++type0-code0++,++type8-code0++。
    • 0-Echo Reply 0。echo响应,被ping使用
    • 8-请求回复 0。echo请求
  • 差错报文占大多数

image

4.1 差错报文

4.1.1差错报文结构
  • 当发送一份ICMP差错报文时,报文始终包含IP的首部和产生ICMP差错报文的IP数据包的前8个字节

image

  • 差错报文数据前8个字节意义:
    tcp,udp,arp前8字节都含有源端口号反馈给源主机。
  • 接收ICMP差错报文的模块就会把它与某个协议、和用户进程联系起来
    • 协议(根据IP数据报首部中的协议字段来判断)
    • 用户进程(根据包含在IP数据报前8字节中的TCP、UDP报文首部中的TCP、UDP端口号判断)
4.1.2 不可达差错
1.路由
  • 回复收到U.U.U,则类型为3:目的不可达

image


  • debug ip icmp 进一步解析为哪种不可达。发现host unreachable(主机不可达)
    image

  • 思科路由器,Telnet一个IP地址,如果收到ICMP报错则会报错

image

2.过滤PING
  • 同样 debug ip icmp
  • 出现administratively prohibited unreachable,表示用户强制过滤
  • 另外可以抓包观察到++type:3,code:13++

image


  • 思科路由器Telnet之后会报错。
  • 当然也存在 TCP reset的可能
  • 但是微软计算机不会报错,只是坚持发送Telnet SYN包,直到超时,程序员不太关心网络。
    image
3.MTU
  • 调小MTU,一个包与出接口MTU有关。
    image
  • ICMP flag为df的包不可分片,一旦大于MTU就丢弃,并且发送不可达信息。

  • 如果因为MTU问题回复ICMP,则ICMP首部后两个字节中会写入MTU大小
    image
4.端口不可达
  • TCP访问一个未开放端口号立刻会失败,(可以利用这个特性进行 端口扫描
    • 有失败反应,则端口未开放
    • 无反应,反而有可能端口已打开
  • UDP访问未开放端口号,会反馈端口不可达信息
    image
4.1.3 关闭不可达信息
  • 面对未知的互联网,不必要提供不可达等重要信息。使用:no ip unreachable
    image
    -思科对ICMP 报错速率已经够进行了控制,避免发送大量的ICMP。
    eg:ip icmp rate-limit unreachable 1000。默认1000毫秒=1秒,发送一个ICMP
4.1.4 ICMP TTL超时
  • TTL不断减少,到0之后超时。
4.1.5 ICMP Redirect

-ICMP 重定向,选择更优化更应该走的路径。路由器不会理会重定向ICMP,无路由信息的二层设备会接收ICMP
image

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值