为什么需要ICMP?
数据在传送中可能会遇到各种异常.
IP层也需要控制功能(拥塞,差错控制).
ICMP的作用
传递网络控制信息,提供差错报告.
问题:为什么要把这两项功能合二为一?
控制和差错报文都是特殊报文.
差错报告与差错控制总是密切相关.
ICMP的工作机制
路由器(主机)向其他路由器(主机)发送ICMP报文.
只能想源端报告差错,不能向中间路由器报告差错.
ICMP协议与IP协议的关系
˃ ICMP与IP同层,只是IP软件中的⼀个模块。
- 功能不独⽴,只是IP的补充;
- 不是上层协议赖以存在的基础 。 ˃ ICMP报⽂封装在IP数据报中传送,其IP⾸部“协议”域指明为ICMP报⽂(代码为1)
ICMP报文格式
说明:
˃ 对整个报⽂计算校验和
˃ 差错报告报⽂的数据区包括:出错数据报的⾸部 + 出错数据报数据
区前64bit,原因:包含上层协议报⽂的重要信息。
˃ ⾮嵌套使⽤:规定不为携带ICMP差错报⽂的数据报中出现的差错⽽
⽣成ICMP报⽂。
˃ 如果该类报⽂出现差错,则产⽣异常。
ICMP类型和代码
˃ 请求与应答报⽂
˃ 差错报告报⽂
˃ 控制报⽂