网络--网络层协议
IP协议
ip数据报格式
网际控制报文协议ICMP
目的:
为了提高 IP 数据报交付成功的机会
注意:
● 允许主机和路由器报告差错情况和提供有关异常情况的报告
● ICMP不是高层协议,而是IP层的协议
● ICMP报文作为IP层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去
● ICMP报文的前4个字节是统一的格式,共有三个字段:即类型,代码和检验和.接着的4个字节的内容与ICMP的类型有关
种类:
● ICMP 差错报告报文:
○ 终点不可达
○ 源点抑制(Source quench)
○ 时间超过
○ 参数问题
○ 改变路由(重定向)(Redirect)
● ICMP 询问报文:
○ 回送请求和回答报文
○ 时间戳请求和回答报文
报文格式:
ICMP不可达报文
日常生活中,邮寄包裹会经过多个传递环节,任意一环如果无法传下去,都会返回寄件人,并附上无法邮寄的原因。同理,当路由器收到一个无法传递下去的IP报文时,会发送ICMP目的不可达报文(Type为3)给IP报文的源发送方。报文中的Code就表示发送失败的原因。
Code
0 = net unreachable;
1 = host unreachable;
2 = protocol unreachable;
3 = port unreachable;
4 = fragmentation needed and DF set;
5 = source route failed.
ICMP回显请求和回显应答报文格式
ICMP超时报文
网络传输IP数据报的过程中,如果IP数据包的TTL值逐渐递减为0时,需要丢弃数据报。这时,路由器需要向源发送方发送ICMP超时报文(Type为11),Code为0,表示传输过程中超时了。
一个IP数据报可能会因为过大而被分片,然后在目的主机侧把所有的分片重组。如果主机迟迟没有等到所有的分片报文,就会向源发送方发送一个ICMP超时报文,Code为1,表示分片重组超时了。
ICMP重定向报文
当路由收到IP数据报,发现数据报的目的地址在路由表上没有,它就会发ICMP重定向报文(Type为5)给源发送方,提醒它想要发送的地址不在,去其他地方找找
ICMP路由器请求报文格式
ICMP路由器通告报文格式
ICMP 源站抑制差错报文格式
ICMP 类型:
不应发送ICMP差错报告报文的情况:
● 对第一个分片的数据报片的所有后续数据报片都不发送ICMP 差错报告报文
● 多播地址的数据报都不发送ICMP差错报告报文
● 特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP差错报告报文
IGMP 是Internet Group Management Protocol(互联网组管理协议)的简称。它是TCP/IP 协议族中负责IP 组播成员管理的协议,用来在IP 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
IGMP主要功能
当一台主机加入到一个新的组时,它发送一个IGMP消息到组地址以宣告它的成员身份,多播路由器和交换机就可以从中学习到组的成员。利用从IGMP中获取到的信息,路由器和交换机在每个接口上维护一个多播组成员的列表。
IGMP报文格式和分类
一个完整的IGMP数据报:正如ICMP一样, IGMP 也被当作IP 层的一部分。
IGMP报文的基本格式:IGMP有固定的报文长度,没有可选数据。
1) 4位IGMP版本。
2) 4位IGMP类型:为1说明是由多播路由器发出的查询报文,为2说明是主机发出的报告报文。
3) 16位校验和:检验和字段覆盖整个IGMP报文。使用的算法和IP首部校验和算法相同。IGMP的检验和是必需的。