趣谈网络协议【6】—— ICMP

---  ---   课程笔记:《趣谈网络协议》 刘超

 

ICMP 互联网控制报文协议

  * 该协议支持主机或路由器

 

作用:  差错(或异常)报告

 

          网络探询

 

分类:

 

  • 差错报告报文(5种)
  1. 目的不可达
  2. 源抑制: 路由器等缓存已满,后续到达的IP数据报被丢弃
  3. 超时/超期:TTL超时
  4. 参数问题:
  5. 重定向:不该发送到当前的路由器上
  • 网络探询报文(2种)
  1. 回声(Echo)请求与应答报文(Reply) —— ping
  2. 时间戳请求和应答报文

 

  

几种不发送ICMP差错报文的特殊情况:

  1. ICMP差错报告报文不再发送ICMP差错报告报文;
  2. 除第1IP数据报分片外,对所有后续分片均不发送ICMP差错报告报文;
  3. 对所有多播IP数据均不发送ICMP差错报告报文;
  4. 对具有特殊地址(如127.0.0.00.0.0.0)的IP数据报不发送ICMP差错报告报文

 

几种ICMP报文已不再使用:

 

  1. 信息请求与应答报文;
  2. 子网掩码请求和应答报文;
  3. 路由器查询和通告报文

ICMP报文的格式:ICMP报文封装到IP数据包中传输

  

 

 

 

ICMP网络探询报文的应用举例: ping

 

 

 

 

  ICMP 数据包内包含多个字段。最重要的是两个,第一个是类型字段,对于请求数据包而言该字段为 8;另外一个是顺序号,主要用于区分连续 ping 的时候发出的多个数据包。每发出一个请求数据包,顺序号会自动加 1。为了能够计算往返时间 RTT,它会在报文的数据部分插入发送时间。

  ICMP 应答包,应答数据包的类型字段为 0,顺序号为接收到的请求数据包中的顺序号,然后再发送出去给主机 A。

 

ICMP差错报告报文的应用举例: Traceroute

 

 

   Traceroute 还有一个作用是故意设置不分片,从而确定路径的 MTU要做的工作首先是发送分组,并设置“不分片”标志。发送的第一个分组的长度正好与出口 MTU 相等。如果中间遇到窄的关口会被卡住,会发送 ICMP 网络差错包,类型为“需要进行分片但设置了不分片位”。每次收到 ICMP“不能分片”差错时就减小分组的长度,直到到达目标主机。

 

参考:

  MOOC 江苏电子信息职业学院《路由交换技术与应用》史红彦 、朱东进

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-08-27 16:14  傻子诶~  阅读(345)  评论(0)    收藏  举报