#IGMP:Internet 组管理协议
上一章介绍了简单的多播,但是当涉及多个网络并且多播数据必须通过路由器转发时,情况就复杂得多。
本章介绍用于支持主机和路由器进行多播的 Internet 组管理协议 IGMP。其让物理网络上所有系统知道主机当前所在的多播组。
IGMP 报文通过 IP 数据报进行传输(IP 首部协议字段值为 2),固定长度为 8 字节。
##IGMP 报文
- 版本:4bit,版本 1 代表 IGMP
- 类型:4bit,1 带 i 报多播路由器发出的查询报文;2 代表主机发出的报告报文。
- 校验和:16bit,计算方法和 ICMP 协议相同。
- 组地址:32bit,D 类 IP 地址,在查询报文中组地址设置为 0
##IGMP 协议
###加入一个多播组
多播的基础概念是:一个进程在主机的给定接口上加入一个多播组。
这里暗示,主机通过组地址和接口来识别一个多播组。
###IGMP 报告和查询
多播路由器使用 IGMP 报文来记录与该路由器相连网络中组成员的变化情况。
- 当第一个进程加入一个组时,主机就发送一个 IGMP 报告。如果主机的多个进程加入同一组中,只发送一个 IGMP 报告。
- 进程离开一个组时主机不发送 IGMP 报告。主机知道在确定的组中已不再有组成员后,在随后收到的 IGMP 查询中就不再发送报告报文。
- 多播路由器定时发送 IGMP 查询来了解是否还有任何主机包含有属于多播组的进程。对每个接口必须发送一个 IGMP 请求。
- 主机通过发送 IGMP 报文来响应 IGMP 查询。
###实现细节
- 由于 IGMP 使用 IP 进行不可靠传输,因此当主机首次发送 IGMP 报告后,下一个报告将间隔一段时间后发送。
- 主机收到路由器发出的查询后,并不立即响应,而是经过一定的时间间隔才发出响应(对参加的每个组均发送一个响应)
- 在没有任何多播路由器的单个物理网络中,仅有的 IGMP 通信量就是在主机加入一个新的多播组时,支持 IP 多播的主机发出的报告。
###生存时间字段
IGMP 报告和查询的生存时间(TTL)均设置为 1。使多播数据报仅局限在同一子网内传送。仅有与网络直接相连的多播路由器才有必要了解该网络主机的多播分组情况。
###所有主机组
多播路由器的 IGMP 查询被送到目的 IP 地址为 224.0.0.1。该地址被称为所有主机组地址。当接口初始化后,往里网络中所有具备多播能力的主机和路由器均自动啊计入到这个多播组。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于