TCP/IP Illustrated vol1 笔记 IGMP

1. IGMP 用于支持多播的主机和路由器中;

2. IGMP消息封装在IP数据报中,消息是固定长度的8字节,封装格式如下:

TCP/IP Illustrated vol1 笔记 IGMP_第1张图片


version 字段为1;type 字段,1的话是query,2是response/report;

3. 主机

一个进程是在一个指定的接口上加入一个多播组的;主机是通过组ID和接口来确定一个多播组的,主机维护了一张表,表项 包含多播组和它拥有的进程数;

4.   路由器  

路由器维护了一张表,每一项包含接口和对应的组ID;


5. IGMP 协议规则

- 主机上有进程加入多播组,发送IGMP report 消息,多个进程加入同一个多播组,只需发送一个 IGMP report;(由于IP不能保证传送成功,间隔一个0-10秒的随机时间后,需要再次发送一个report)

- 主机上的进程离开多播组,不需要发送 report,因为路由器会定时查询;

- 路由器定时发送 IGMP query 消息,有些系统为2分钟左右;

- 主机会对 query 发送 report,为 每个活跃着的多播组 发送一个 report;

6. TTL

多播数据报的TTL一般为1,高于1的多播数据报可能会跨越路由器;

当TTL=0时,多播路由器并不会对多播数据报产生 “time exceeded” ICMP 错误消息;

目的地为 224.0.0.0~224.0.0.255  的多播数据报不会跨越路由器,不管其TTL是什么值,都当做TTL=1来处理;其中,所有支持多播的主机和路由器自动加入 224.0.0.1,这个地址称为 all-hosts group address;

你可能感兴趣的:(report,query,路由器)