通用底层协议(ICMP)

为什么需要ICMP?
数据在传送中可能会遇到各种异常.
IP层也需要控制功能(拥塞,差错控制).
ICMP的作用
传递网络控制信息,提供差错报告.
问题:为什么要把这两项功能合二为一?
控制和差错报文都是特殊报文.
差错报告与差错控制总是密切相关.
ICMP的工作机制
路由器(主机)向其他路由器(主机)发送ICMP报文.
只能想源端报告差错,不能向中间路由器报告差错.
ICMP协议与IP协议的关系
˃ ICMP与IP同层,只是IP软件中的⼀个模块。

  • 功能不独⽴,只是IP的补充;
  • 不是上层协议赖以存在的基础 。 ˃ ICMP报⽂封装在IP数据报中传送,其IP⾸部“协议”域指明为ICMP报⽂(代码为1)
    ICMP报文格式
    在这里插入图片描述
    说明:
    ˃ 对整个报⽂计算校验和
    ˃ 差错报告报⽂的数据区包括:出错数据报的⾸部 + 出错数据报数据
    区前64bit,原因:包含上层协议报⽂的重要信息。
    ˃ ⾮嵌套使⽤:规定不为携带ICMP差错报⽂的数据报中出现的差错⽽
    ⽣成ICMP报⽂。
    ˃ 如果该类报⽂出现差错,则产⽣异常。
    ICMP类型和代码
    ˃ 请求与应答报⽂
    ˃ 差错报告报⽂
    ˃ 控制报⽂
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    » Tracert/traceroute
    ˃ 功能
  • (1)查看IP数据报所经过的路径
  • (2)可指定IP源路由选项
    ˃ 问题:有了IP记录路由选项和Ping命令,为何还需要Traceroute? + (1)不是所有的路由器都⽀持记录路由选项
  • (2)Ping记录下来的地址翻了⼀番(⼀来⼀回)
  • (3)IP⾸部中记录路由选项空间有限
    ˃ 2、traceroute⼯作原理
  • ICMP超时报⽂ + IP⾸部的TTL
  • (1) 发送IP数据报,TTL = 1,则到达第⼀个路由器后TTL = 0,该路由器向
    源端发送ICMP超时报⽂,该报⽂封装在IP数据报中,源端收到该报⽂后提取
    IP⾸部的IP地址字段,则记录了第⼀个路由器。
  • (2) 发送IP数据报,TTL = 2,记录第⼆个路由器。
  • ……
    +在这里插入图片描述
    在这里插入图片描述
    路由跟踪
    1.发出报文:
    在这里插入图片描述
    2.收到报文
    在这里插入图片描述
发布了69 篇原创文章 · 获赞 12 · 访问量 7370

猜你喜欢

转载自blog.csdn.net/weixin_43291459/article/details/103050867