IGMP培训课件
- 格式:ppt
- 大小:135.50 KB
- 文档页数:17
组播(⼆)---IGMP⽬录组播(⼆)---IGMP组播⾥⾯⾮常重要的两个协议 IGMP和PIM,我们先学⼀个简单的那就IGMP,IGMP运⾏于终端与最后⼀跳路由器中间(注意是终端与最后⼀跳路由器,⽽不是第⼀跳路由器)。
IGMP有三个版本,V1/V2/V3,V1最为简陋,我们要从V1开始学起,V2弥补了V1的⼀些坑,使⽤的频率⽐较⼴,V3最⼤特点是⽀持SSM,SSM还记得吗?SSM是特定组播源的意思,换句话说V1和V2是不⽀持SSM的。
IGMP的全称是internet group management protocol,名字叫的点⼤,互联⽹组管理协议,我们先从第⼀个版本聊起。
IGMP是构建在IP报⽂的基础上IGMP和ICMP协议看着有点像,是否还记得⼀张OSI七层参考模型的图,在⽹络层这个地⽅,有IP,然后有ICMP和IGMP,IGMP和ICMP们于IP之上,但⼜位于传输层之下,当时不理解这是什么意思,⼯作多年后才发现,ICMP和IGMP都是在IP基本上,也就说数据的结构这样的:帧头--IP头---IGMP报⽂,我们也可以再进⼀步,IP头是晚于IGMP或ICMP封装的,也就是我们可以通过IP的头部的字段来判断出上层协议是什么?如上图所⽰,在IP层的protocol字段当中显⽰为1,意味着他的上层协议是ICMP,如果这个字段是2呢?2其实就是代表上层协议是IGMP,那arp报⽂是什么样?arp是建⽴IP报⽂之上吗?其实arp并不是建⽴在IP之上的,⽽应该在IP之下,所以arp到底是⼆层协议还是三层协议,从这个⾓度来看,arp协议应该是⼆层协议。
IGMPV1IGMPV1的报⽂⽐较简单,就两种类型的报⽂,请求和通告,请求报⽂是周期性发送的,默认是60秒。
请求报⽂是路由器发送的,发送给谁呢?发送给终端,其实就是路由器问⼀下当前接⼝下有没有组员,如果有组员的话,组员通过特定的MAC地址就会收到路由器请求的报⽂,然后组员会通过通告报⽂,告诉路由器(其实也就是⽹关)⾃⼰所属的组,然后路由器会记录下来,知道⾃⼰所连接的某⼀个接⼝下有⼀个组播组,收到这个组的流量要转发到此接⼝;如果没有组员呢?其实没有组员,路由器就收不到通告,路由器悻悻⽽归,知道了⾃⼰的接⼝下没有主机属于某个组,当到了某个组的流量,也不会转发,⽆动于衷。
1引言本文将介绍用于支持主机和路由器进行多播的Internet组管理协议(IGMP)。
它让一个物理网络上的所有系统知道主机当前所在的多播组。
多播路由器需要这些信息以便知道多播数据报应该向哪些接口转发。
IGMP在RFC 1112中定义[Deering 1989].正如ICMP一样,IGMP 也被当作IP 层的一部分。
IGMP报文通过IP数据报进行传输。
不像我们已经见到的其他协议,IGMP有固定的报文长度,没有可选数据。
图13-1显示了IGMP报文如何封装在IP数据报中。
IGMP(Internet组管理协议)报文及协议(图一)IGMP报文通过IP首部中协议字段值为2来指明。
2 IGMP报文图1 3 - 2显示了长度为8字节的IGMP报文格式。
IGMP(Internet组管理协议)报文及协议(图二)这是版本为1的IGMP.IGMP类型为1说明是由多播路由器发出的查询报文,为2说明是主机发出的报告报文。
检验和的计算和ICMP协议相同。
组地址为D类IP地址。
在查询报文中组地址设置为0,在报告报文中组地址为要参加的组地址。
在下一节中,当介绍IGMP如何操作时,我们将会更详细地了解它们。
3 IGMP 协议3.1 加入一个多播组多播的基础就是一个进程的概念(使用的术语进程是指操作系统执行的一个程序),该进程在一个主机的给定接口上加入了一个多播组。
在一个给定接口上的多播组中的成员是动态的—它随时因进程加入和离开多播组而变化。
这里所指的进程必须以某种方式在给定的接口上加入某个多播组。
进程也能离开先前加入的多播组。
这些是一个支持多播主机中任何API所必需的部分。
使用限定词“接口”是因为多播组中的成员是与接口相关联的。
一个进程可以在多个接口上加入同一多播组。
Stanford大学伯克利版Unix中的IP 多播详细说明了有关socket API的变化,这些变化在Solaris 2.x和ip(7)的文档中也提供了。
这里暗示一个主机通过组地址和接口来识别一个多播组。
IGMP的含义:Internet 组管理协议(IGMP)是因特网协议家族中的一个组播协议,用于 IP 主机向任一个直接相邻的路由器报告他们的组成员情况。
IGMP是一个用于在单个网络上特定多播组中主机和网关间建立主机成员关系的协议。
网关在连接一个多播路由协义时使用此信息以支持通过Internet的IP多播。
IGMP被用在IP主机和它们的紧接的邻机多点播送代理之间支持临时组的生成,添加和删除一个组的成员,定期证实组员身份。
IGMP是一个不对称协议而且这里从一个主机观点出发而非一个多播代理来加以说明。
IGMP 信息封装在 IP 报文中,其 IP 的协议号为 2。
IGMP的用途:和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
IGMP不包括组播路由器之间的组成员关系信息的传播与维护,这部分工作由各组播路由协议完成。
所有参与组播的主机必须实现IGMP。
参与IP的主机可以在任意位置、任意时间、成员总数不受限制地加入或退出组播组。
组播路由器不需要也不可能保存所有主机的成员关系,它只是通过IGMP每个接口连接的网段上检测在某个组播组的接收者,即组成员。
而主机方只需要保存自己加入了哪些组播组。
IGMP在主机与路由器之间是不对称的:主机需要响应组播路由器的IGMP查询报文,即以IGMP membership report报文响应;路由器周期性发送成员资格查询报文,然后根据收到的响应报文确定某个特定组在自己所在子网上是否有主机加入,并且当收到主机的退出组的报告时,发出特定组的查询报文(IGMP版本2),以确定某个特定组是否已无成员存在。
多播路由器发送主机成员关系查询信息(下文中称为查询)来发现在哪些主机组在它们附属的本地网络上有成员.查询被写入所有主机组地址(地址是224.0.0.1),携带的IP 生存时间是1.IGMP具有三种版本: IGMP v1、v2 和 v3。
IGMPv1:主机可以加入组播组。
没有离开信息(leave messages)。
I G M P使用详解IGMP一、Internet 组管理协议IGMP 是Internet 组管理协议(Internet Group Management Protocol)的缩写。
IGMP 在TCP/IP 协议中的位置:应用层协议(FTP,HTTP,SMTP)TCP UDP ICMP IGMPIPARP RARPMACPHY在了解IGMP 协议的之前,我们首先看看以太网对报文的处理方法。
我们知道,目前使用的以太网(ethernet)有一个特点,当一个报文在一条线路上传输时,该线路上的所有主机都能够接收到这个报文。
只是当报文到达MAC 层时,主机会检测这个报文是不是发送给自己的,如果不是该报文就会被丢弃。
常用的抓包软件ethereal, sniffer 都可以捕获当前物理线路上的所有报文,不管该报文的目的地址是不是自己。
以太网中有一种特殊的报文广播包其目的mac 地址全为0xff,所有的主机都必须接收。
说到IGMP 不能不提“组播”的概念。
假如现在一个主机想将一个数据包发给网络上的若干主机,有什么方法可以做到呢?一个方法是采用广播包发送,这样网络上的所有主机都能够接收到,另一种方式是将数据包复制若干份分别发给目的主机。
这两个方法都存在问题:方法一,广播的方法导致网络上所有的主机都能接收到,占用了网络上其他主机的资源。
方法二,由于所有目的主机接收的报文都是相同的,采用单播方式显然效率很低。
为了解决上面所述的问题,人们提出了“组播”的概念,控制一个报文发送给对该报文感兴趣的主机,IGMP 就是组播管理协议。
我们来看一个简单的组播应用场景PC,如何处理呢?首先STB 要发起一个连接请求,也就是IGMP report 报文,加入到电视直播的组播组中。
同样当STB 要断开连接的时候就发送一个IGMP leave 报文。
Router 也需要知道当前有哪些STB 加入了组播组,防止有的STB 异常掉线了,却依然占用系统资源。
1.1 因特网组管理协议1.1.1 IGMP简介IGMP——ÏîÉÔÊø¬é¶Ü½íÍÏél IGMPÍÏéÇÄÓð¸úÐë¿«ÐÆÃðÓ®¹ä˨ϸ;îÍÏél RFC1112¶æ´¨¾ÈIGMP V1£¨Ó§±Ówindows95£¦l RFC2236¶æ´¨¾ÈIGMP V2£¨Ó§±Ówindows·Ê²ï´ÇýUnix¬îÍ¿³Á«þËñü£¦©l Draft-ietf-idmr-igmp-v3-03.txt¶æ´¨¾È¬îÍ¿³ÁIGMP V3IGMP协议运行于主机与和主机直接相连的组播路由器之间,主机通过此协议告诉本地路由器希望加入并接受某个特定组播组的信息,同时路由器通过此协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现所连网络组成员关系的收集与维护。
IGMP协议协议名称:Internet组管理协议(IGMP)1. 引言1.1 目的1.2 背景1.3 范围2. 术语和定义2.1 术语定义3. 协议概述3.1 功能3.2 适合范围3.3 协议特点4. 协议规范4.1 消息格式4.2 消息类型4.3 消息处理4.4 路由器行为4.5 主机行为5. 协议实现5.1 IGMP版本5.2 IGMP报文封装5.3 IGMP报文处理5.4 路由器实现5.5 主机实现6. 协议安全性6.1 防止欺骗攻击6.2 防止拒绝服务攻击6.3 加密和认证7. 性能优化7.1 IGMP查询优化7.2 IGMP报文压缩7.3 IGMP缓存管理8. 互操作性8.1 路由器互操作性8.2 主机互操作性8.3 IGMP与其他协议的互操作性9. 错误处理和故障恢复9.1 错误码定义9.2 错误处理流程9.3 故障恢复机制10. 协议测试10.1 测试环境10.2 测试用例10.3 测试结果11. 协议管理11.1 版本控制11.2 更新和修订11.3 协议发布12. 参考文献1. 引言1.1 目的IGMP(Internet组管理协议)是用于在IPv4网络中管理多播组成员关系的协议。
本协议旨在规范IGMP的功能、消息格式、路由器和主机的行为以及相关安全性、性能优化、互操作性等方面的内容。
1.2 背景随着互联网的发展,多播技术被广泛应用于视频、音频、实时通信等场景。
为了有效管理多播组成员关系,IGMP协议应运而生。
IGMP协议允许主机加入和离开多播组,并与路由器进行通信以实现多播数据的传输。
1.3 范围本协议适合于所有支持IGMP协议的路由器和主机设备。
2. 术语和定义2.1 术语定义- IGMP:Internet组管理协议,用于管理IPv4网络中的多播组成员关系。
- 路由器:在网络中转发数据包的设备,支持IGMP协议。
- 主机:连接到网络的设备,可以加入和离开多播组。
- 多播组:一组具有相同IP地址的主机,可以接收多播数据。