概述
IP协议完成各个主机之间的数据交互,但是并不可靠
ICMP协议,为了弥补IP协议的缺陷,数据错误信息 网络状况信息 ,提高数据报递交的有效性
ICMP协议虽然很复杂,但是 LWIP中只实现了一部分
ICMP协议
作用:
- 在IP数据报递交出现异常时,能够提供错误信息,实现重传或其他处理
- 主机的管理与查询机制: 确定主机是否活跃,获取路由器的信息用来进行自身的配置
层次划分:
- 封装在 IP 数据报中,但不是传输层信息,而是网络层, 所以IMCP 本身也存在丢失的可能
- ICMP 报文,不是为2个主机的应用程序提供服务,而是网络层
报文类型: 详细见 图11-2
差错报告报文
介绍:路由器/主机不能对当前数据报进行处理: 无法将数据报递交给上层 或者:TTL为0
作用: 只是简单的报告差错,不能纠正错误,差错的纠正应该留给上层
查询报文
介绍: 查询时间戳 查询
差错报文
接收与发送处理:
- 差错报文发送:根据数据报的处理异常,发送: 目的站不可达报文 和 数据包超时报文
- 差错报文处理: 直接将报文丢弃,不做处理
目的站不可达
网络不可达、主机不可达、协议不可达、端口不可达
数据报超时
数据报 每转发一次,TTL就减一,当TTL=0时,数据报超时
源站抑制
IP协议没有流量控制: 因为数据报源主机 转发数据报的路由器 目的主机 之间没有稳定的 通信关系
所以不可能存在流量控制
导致拥塞: 源主机不知道 通路上的设备已经 负荷
源站抑制解决拥塞: 告诉数据源
1. 你的数据报发送的太快,我丢了好多
2. 路径中拥塞,放慢脚步
重定向
设备刚上电会将所有的报文发送给一个默认的路由器,而这些报文的正确路径是其他路由器,所以重定向报文告诉源主机,改变他的路由表,你可以直接将那些数据发送给另外一个路由器。
查询报文
LWIP中唯一实现的报文: 回送请求和回答报文
目的:诊断,任何一台主机都可以用它,发现网络上的问题
使用:ping 命令的本质:发送查询报文