您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 《计算机网络》研究生教程--第8章因特网组管理协议IGMP.
多播技术郑州大学信息工程学院李向丽郑州大学信息工程学院李向丽两种多播协议•根据协议的作用范围,多播协议分为:–主机-路由器之间的协议,即多播成员管理协议(包括IGMP互连网组管理协议)–路由器-路由器之间协议,主要是各种多播路由协议郑州大学信息工程学院李向丽第8章因特网组管理协议(IGMP)8.1IGMP概述8.2IGMPv18.3IGMP28.4IGMP3郑州大学信息工程学院李向丽8.1IGMP概述•8.1.1IGMP的功能•8.2.2IGMP在TCP/IP协议栈的位置郑州大学信息工程学院李向丽8.1IGMP概述•IGMP:因特网组管理协议,它运行于主机和与主机直接相连的多播路由器之间,用来管理组成员的关系。•IGMP协议把网络上所连接的主机的成员关系传送给多播路由器。帮助多播路由器创建和更新与每一个路由器接口有关的多播组表。•多播路由器根据这些信息来了解多播分组应该向哪些接口转发。郑州大学信息工程学院李向丽IGMP有三个版本•IGMPv1,RFC1112,定义了基本的组成员查询和报告过程•IGMPv2,RFC2236,在IGMPv1的基础上增加了组成员快速离开的机制•IGMPv3,RFC3376,增加的主要功能是:成员可以指定接收或不接收某些多播源的报文•着重介绍IGMPv2协议的原理郑州大学信息工程学院李向丽(多播源地址,组地址)地址对表示方式•(S,G)地址对方式表示从源S向多播组G所发送的分组,用来对某一多播分组进行唯一标识。•(*,G)地址对方式未指定源地址,只是用来说明是发送给多播组G的多播分组。–(*,G)又可细分为由该组地址和多个源地址所标识的多个更加精确的多播分组,例如(S1,G)、(S2,G)、(S3,G)等。郑州大学信息工程学院李向丽IGMPv1、IGMPv2和IGMPv3协议的不同•v1、v2的主机只能根据组地址来识别和接收多播分组,即识别和接收(*,G)表示的多播分组。–如果主机需要选择接收某一特定(S,G)的多播分组,则需要相应的上层协议在(*,G)分组中选择接收(S,G)的多播分组。•v3中的主机可以直接对特定的多播组(S,G)进行接收和过滤。郑州大学信息工程学院李向丽8.1.1IGMP的功能•IGMP实现的功能是双向的:–一方面通过IGMP协议,主机通知本地路由器希望加入并接收某个特定多播组–另一方面路由器通过IGMP协议,周期性地查询子网内某个已知组的成员是否处于活动状态,即该网段是否仍有属于某个多播组的成员,实现所连网络组成员关系的收集与维护。•通过IGMP,路由器能够记录特定的多播组在某个主机上是否有组成员。郑州大学信息工程学院李向丽多播组地址表•多播路由器都有一个多播组地址表,表中记录了与每一个接口连接的物理网络上的多播组成员关系。路由器根据多播分组的目的地址查找多播组地址表,转发多播分组。•IGMP多播路由器通过查询网络上的主机来建立和维护多播组地址表。–多播路由器周期性(125秒)查询本地网络上的主机。–主机对IGMP的查询进行响应。–不管有一台还是多台主机属于某个多播组,表中只包含一个该多播组的地址。郑州大学信息工程学院李向丽•多播组内的成员关系是动态的,进程可以随时离开一个组。–隐式退出。当主机检测到参加到某个多播组的进程全部都退出时,对这个组就不再发送IGMP响应报文。–显式退出。主机也可以发送离开组报文,显式通知路由器它要退出多播组。郑州大学信息工程学院李向丽8.1.2IGMP在TCP/IP协议栈的位置ICMPIGMPIPARPRARPIP分组首部IGMP报文郑州大学信息工程学院李向丽封装IGMP报文的IP分组首部的三个字段•协议字段,值为2,说明封装的是IGMP报文。•TTL字段,值为1,表示IGMP报文只能在本网络传送。•目的IP地址字段,其值随报文类型的不同而不同。–如果是成员关系查询报文,则目的IP地址是224.0.0.1(本网络上的所有节点);–如果是成员关系报告报文,则目的IP地址是被报告的多播地址;(一个多播路由器必须接收在它所有接口上的所有多播分组)–如果是离开组报文,则目的IP地址应该是224.0.0.2(本网络上的所有路由器)。郑州大学信息工程学院李向丽8.2IGMPv1•8.2.1IGMPv1的报文格式•8.2.2IGMPv1查询-响应过程•8.2.3报告抑制•8.2.4查询路由器选举•8.2.5主机加入组和离开组的过程郑州大学信息工程学院李向丽8.2IGMPv1•大多数设备都支持IGMPv2,仍有许多设备在使用IGMPv1。•IGMPv1的工作原理:–路由器定期向网络内广播成员关系查询报文,探询网络内是否有多播组成员。–如果主机想加入某个多播组,就向路由器发送成员关系报告报文;–隐式离开。主机如果想离开某个多播组,就对路由器的查询报文保持沉默,经过一段时间后,路由器便知道网络内没有多播组成员了。郑州大学信息工程学院李向丽8.2.1IGMPv1的报文格式•版本字段,4比特。IGMPv1为1。•类型字段,4比特。报文的类型。在IGMPv1中,该字段只有两个值:–取值为1,成员关系查询。是多播路由器向主机发送的查询,询问主机所属的多播组;–取值为2,成员关系报告。主机向多播路由器发送,可以由主机主动发出,或者是主机对多播路由器的查询报文的响应。该报文用来说明主机属于某个多播组。版本类型未使用校验和组地址郑州大学信息工程学院李向丽•校验和字段,16比特。用于IGMP报文的校验。•组地址字段,32比特。–若是成员关系查询报文,设置为0(0.0.0.0),被主机忽略。表示多播路由器希望主机对它想加入的每个多播组,都需要发回一个报告报文。–若用于成员关系报告报文时,包含一个主机要参加的多播组地址,这是一个D类IP地址。郑州大学信息工程学院李向丽8.2.2IGMPv1查询-响应过程查询路由器RA主机A⑶报告加入224.1.1.1⑵报告加入224.1.1.1主机B⑷报告加入224.2.2.2主机C×响应抑制非查询路由器RB⑴查询224.0.0.1⑸路由器接收到成员关系报告报文后,维护更新多播组地址表中关于这些多播组的表项。郑州大学信息工程学院李向丽8.2.3报告抑制•主机对成员关系查询报文的处理流程如下:•⑴主机接收成员关系查询报文后,对加入的每个多播组启动一个倒计时器。计时值为随机值,默认为10秒。•⑵当计时器为0时,主机发送成员关系报告报文,通知路由器:网络内仍有某个多播分组的接收者。•⑶当计时器到达0之前,若主机接收到来自其它主机发送的同一个组成员关系报告报文,那么它就取消对多播组224.1.1.1的计时。避免了发送同一个成员关系报告报文给路由器。通过报告抑制机制,有助于减少IGMP报文数量。郑州大学信息工程学院李向丽报告抑制例子•例如:三台主机,在时间0收到查询报文,对每一个组的随机响应时间如图所示。•若每个主机发送响应报文,则需要7个报文。若使用延迟响应,则只需要4个报文。组计时器组计时器组计时器组计时器郑州大学信息工程学院李向丽8.2.4查询路由器选举•如果在一个网络中有多个多播路由器,那么多个路由器都发送IGMP查询报文是一种浪费,应当确定一个查询路由器。•IGMPv1没有提供选举查询路由器的机制,把这一任务留给了PIM、DVMRP等多播路由协议。•由于不同的协议使用不同的选举机制,会造成在一个网络中出现多个查询路由器,这是IGMPv1的缺点。郑州大学信息工程学院李向丽8.2.5主机加入组和离开组的过程查询路由器RA主机A主机B主动报告加入224.3.3.3主机C非查询路由器RB郑州大学信息工程学院李向丽IGMPv1缺乏显式离开组方式•一台主机离开一个多播组时,就不响应路由器的查询报文。当一个网络内某个多播组的最后一个成员退出后,路由器还会继续转发关于这个多播组的数据分组,直到一段时间内路由器接收不到任何来自该组的成员响应,才停止向该网络转发该组的多播数据分组。•路由器为网络中的每个多播组维护一个计时器。–当路由器接收到某台主机的成员关系报告报文时,就会将该组的计时器清零。–当某个计时器超时后,说明在本网络上没有这个多播组的接收者了,于是停止向该网络转发该多播组的分组。郑州大学信息工程学院李向丽8.3IGMPv28.3.1IGMPv2的报文格式8.3.2查询-响应过程8.3.3主机加入多播组和离开多播组的过程8.3.4选举查询路由器8.3.5IGMPv1与IGMPv2的互操作性8.3.6IGMPv2的操作8.3.7IGMPv2的实现郑州大学信息工程学院李向丽8.3IGMPv2•IGMPv1的缺点:–离开组的延迟过大–选举查询路由器需要依赖多播路由协议进行。•IGMPv2的改进:–增加了离开多播组的报文格式,当主机想要离开时,向路由器发送离开组报文即可。–明确了查询路由器的选举机制。•除此之外,IGMPv2的工作原理与IGMPv1基本一致。郑州大学信息工程学院李向丽8.3.1IGMPv2的报文格式•IGMPv2的报文格式进行了两处改动。–将IGMPv1的版本字段和类型字段进行了合并;–增加了最大响应时间(MaxResponseTime)字段。类型最大响应时间校验和组地址郑州大学信息工程学院李向丽IGMPv2报文字段含义•类型字段,8比特。新增了两种报文类型,共定义了4种类型。–0x11,成员关系查询报文。IGMPv2的查询分为两种:•一般查询(GeneralQuery),组地址字段置为全0,对所有多播组进行组成员查询;•特定组查询(Group-specificQuery),组地址字段设置为特定多播组的地址。–0x12,IGMPv1成员关系报告报文,兼容IGMPv1。–0x16,IGMPv2成员关系报告报文。–0x17,离开组(LeaveGroup)报文。郑州大学信息工程学院李向丽IGMPv2报文类型IGMP报文查询报文报告报文离开报文一般特定郑州大学信息工程学院李向丽IGMPv2报文字段含义(续)•最大响应时间字段,8比特。只有在成员关系查询报文中有效,用来指定对这个查询报文进行响应的最大等待时间。–主机必须在最大响应时间到达之前进行响应,发送成员关系报告报文。•校验和字段,16比特。与IGMPv1中的一样。•组地址字段,32比特。与IGMPv1中的基本一样。只是当采用特定多播组查询时,该字段存放要查询的多播组的地址。郑州大学信息工程学院李向丽8.3.2查询-响应过程•与IGMPv1工作原理基本相同,但是有两个方面的改进:–⑴增加了特定多播组查询。路由器使用特定多播组查询报文,了解特定多播组在网络内是否还有组成员,决定是否还需要向该网络转发该多播组的数据分组。–⑵IGMPv2的成员关系报告报文的类型代码不一样。郑州大学信息工程学院李向丽8.3.3主机加入多播组和离开多播组的过程•IGMPv2的组成员加入与IGMPv1完全一样。–多播的基础是进程的概念。–进程可以要求它的主机加入或离开一个组。–当一台主机的最后一个进程离开一个组的时候,此主机就不再属于这个组。–每台主机都记录它的进程当前属于哪些组。郑州大学信息工程学院李向丽主机记录进程和多播组的关系•主机中维护了一个进程表,包含所有参与多播的进程的进程号,以及它们所加入的多播组的地址。–当一个进程想加入到一个多播组时,主机在它的进程表中增加或更新维护相关表项。•如果进程表中没有这个多播组的表项,则增加一个表项。并且主机需要向路由器发送成员关系报告报文。表项内容包括:–进程号、请求加入的多播组地址、进程计数值等信息。•如果进程表中已经有这个多播组的表项,主机不发送成员关系报告报文。只是增加该多播组的进程数。郑州大学信息工程学院李向丽路由器维护一个多播组地址表•多播组地址表给出了连接到每个接口的网络的成员关系。路由器和主机一样,都能够加入一个多播组。路由器也可以发送成员关系报告报文。•因为IGMP使用IP传送报文,IP并不能够保证成员关系报告报文被可靠接收,要求发送两次成员关系报告报文。第二个报告报文将在间隔一段时间后发送。–时间间隔在0~10秒的范围内。郑州大学信息工程学院李向丽IGMPv2
本文标题:《计算机网络》研究生教程--第8章因特网组管理协议IGMP.
链接地址:https://www.777doc.com/doc-2803530 .html