1第2章互联网基础协议体系2.1ARP协议和RARP协议2.2ICMP协议2.3多播和IGMP协议2.4因特网路由选择协议2知识点•单播、广播、多播概念•以太网多播实现•IP多播地址•IP和以太网多播地址的映射•IP通过以太网的多播实现•多播组管理IGMP协议,IP多播基本工作原理•IP多播过程优化处理3要求•理解多播概念和主要应用•掌握以太网硬件多播实现方法•掌握IP多播地址分配•理解和掌握互联网多播地址的映射•理解IP多播通过以太网实现的方法•掌握多播组管理IGMP协议和工作原理•了解IP多播基本工作原理•IP多播过程优化处理和多播路由复杂性4单播、广播、多播•单播(unicast):一个主机向网上的单个目的主机发送帧。•广播(broadcast):一个主机向网上的所有其它主机发送帧。•多播(multicast):介于单播和广播之间,帧仅传送给属于多播组的多个主机。单播多播广播51、单播的方法分别传送N次,当N很大时的问题?对一组计算机完成相同报传送的方法2、广播的方法,分别传送所有计算机,然后由应用端口确定丢弃,最后N台接收。其问题是大量无用数据报经过直至UDP端口的大量处理,才被丢弃,产生大量资源浪费,网络垃圾。且通过路由器的大范围广播实际不存在。3、采用多播方法,由N台计算机构成多播组,一次只向N台计算机传送。所以,多播更具有实际应用价值!6XABCDR3R1R2R5R4R6复制复制多播组G多播组G多播组G主机X向多播组G的三个主机进行多播。主机X在进行多播时只发送一个数据报,只是到了路由器R2才进行复制,然后到了R6再复制一次。这就是说,多播的数据报仅在传送路径分岔时才将数据报复制后继续转发。若不是多播,则源站在一开始就要发送3个数据报,分别发给主机A,C和D。构成多播组的主机数可以是很大的,如成千上万个。因此,采用多播协议可明显地减轻网络中各种资源的消耗。能够接收发往一个特定多播组地址数据的主机集合称为多播组7显然,在因特网范围的多播要靠路由器来实现的,因此这些路由器必须增加一些能够识别多播的软件。能够运行多播协议的路由器称为多播路由器(multicastrouter)。多播路由器可以是一个单独的路由器,也可以是运行多播软件的普通路由器。8多播的应用第一个多播应用提供了音频会议功能。这些应用在可用性和功能方面得到了改进。当前,多播系统的开发步伐不断加快。新的经过改进的应用正被交付使用以支持:•多媒体会议:这些工作已经在MBONE上使用多年。它们支持多到多的单一的音频通信,或者多到多的音频视频通信。•数据分发:这些工具提供了同时把数据分发给大量接收方的能力。例如,一个中心站点能够有效地把更新后的数据文件推入每个地区办公室。多播主干网9•博奕和模拟:这些应用已经存在。然而多播服务集成使应用可以适用于大量用户。多播组能够表示博奕或者模拟的不同部分。当用户从一部分移到另一部分时,它们退出并加入到不同的多播组。•实时数据多播:这些应用把实时数据分发给大量的用户。例如,能够把新闻,证券报价信息提供给许多工作站的集合。10局域网的多播局域网的多播是用硬件实现的。当以太网上的PC机收到一个帧时,用PC机网卡硬件就可判断该帧的目的地址是否属于以下三种地址之一:1.本网卡的硬件地址(单播)。2.全1的目的地址(广播)。3.地址的第一字节的最低位为1的多播地址,且本站已加入到该组(多播)。如果是,就收下该帧,否则就丢弃。11因特网的多播在因特网上进行多播——IP多播。IP多播就有以下一些特点:D类是专用多播地址,范围224.0.0.0-239.255.255.2551110D类28位多播组目的地址一个D类多播地址对应特定一组计算机,这组计算机的集合称为多播主机组。主机组成员可以是因特网上任何主机,成员是动态的。显然,多播地址只能用为目的地址,而不用为源地址。一计算机IP地址与多播组地址是否可以同时存在?1.多播地址122.永久的组地址:224.0.0.1(子网所有多播主机组地址,即发往224.0.0.1地址查询时,任何多播主机组都要报告)224.0.0.2(子网所有参加多播的路由器组)224.0.0.4……(DVMRP路由器)224.0.1.1(网络时间协议组NTP)239.252.0.0-239.255.255.255(限制在一个地点的范围)239.192.0.0-239.251.255.255(限制在一个组织的范围)多播组地址是一类参加多播组所有主机的组地址,而不是一般的网络主机IP地址,主机IP地址是在网络中唯一的位置标识(独立占有),而多播组地址是一组共有,多播组地址与通常IP地址不相关、不矛盾。133.动态的组成员主机组中的成员是动态的。一个进程可请求其主机参加某个特定的组,或在任意时间退出该组。当一个主机新加入某一个主机组时,它就向多播地址中的所有主机发送报文,声明其组员关系。本地的多播路由器收到此报文后,就将此报文转发到因特网中其他的多播路由器。当主机最后一个进程退出某个组时,该主机即不再属于那个组了。由于组内成员的关系是动态的,因此本地的多播路由器要周期性地向本地网络上的主机进行轮询,以确定哪些主机仍留在组内。若经过几次轮询在一个组内已没有主机是其中的成员,多播路由器就认为该网络中已经没有主机属于该组,以后也就不再向其他的多播路由器通告组内成员的状况。14IP多播映射的以太网多播地址范围:当一个IP多播组传送到一个以太网时,以太网怎样完成地址转换,传送到其中的几台计算机上?IANA(InternetAssignedNumbersAuthority)拥有00:00:5e:00:00:00--00:00:5e:ff:ff:ff的以太网地址(高24位为00:00:5e的地址段),并把其中一半的地址00:00:5e:00:00:00--00:00:5e:7f:ff:ff分配给为多播地址,由于以太网多播地址第一字节最低位必须为1,所以IANA定义的可转化的以太网多播地址范围为:01:00:5e:00:00:00—01:00:5e:7f:ff:ff因特网号码指派管理局1501.00.5e.00.00.00—01.00.5e.7f.ff.ff,所以图中第24bit始终为零,实际上只有低23位IP地址与以太网地址直接对应。11100101111100多播和以太网低23位对应07816232432404716进制01:00:5E16进制00:00:00—7F:FF:FFIP多播地址和以太网多播地址映射关系:016通过以上的IP多播地址和以太网多播地址的映射关系,多播路由器IP多播报进入以太网前,把IP多播地址和转化为相应的以太网的硬件多播地址,然后利用以太网的多播机制完成多播。以太网C多播RouterBA地址转换17多播地址转换中的问题:由于多播地址(e0)与以太网地址划分(01:00:5e)定义,D类地址5位bit(20—24bit)在映射中没有定义。11100101111100多播和以太网低23位对应07162024324047D类地址该5位地址没用000000000000000映射地址前25bit是固定的。(01:00:5e及第3字节最高位是0)18所以产生了IP多播地址与以太网多播地址的映射不唯一问题,如地址e0:80:40:20(224.128.64.32)与e0:00:40:20(224.0.64.32)映射的以太网多播地址同样为:01:00:5e:00:40:20。由于不唯一性,需要其他协议对多播数据报进行额外的过滤处理;所以目前多播机制是有缺陷的,但比广播还是有效得多。1110000001011111000000000多播和以太网低23位对应07162024324047e0:80:40:20111000000000000e0:00:40:201001000000001000000100000000100000010000000100000000100000000000019IP多播传送基本过程单个物理网络中IP多播过程:1、发送主机多播进程将目的IP地址指向一个多播地址;2、主机设备驱动将IP多播地址转换为相应的以太网多播地,并发送数据;3、收端接收进程,加入一个多播组,使驱动设备能够接收这些数据报;4、当以太网以多播形式接收数据后,再次根据地址映射关系,传送给IP层相应的多播进程处理;5、注意:一台主机上加入多个不同多播进程;也可能同时存在属于同一多播组的多个进程;一台主机是否加入或撤出一个多播组是动态的。20多个物理网络中IP多播过程2、在多播网络中必须使用多播路由器或运行多播软件的一般路由器,构成多播网络环境;3、网络中多播路由器的专用协议,根据用户的加入或退出,自动记录多播组的成员关系;4、当一个多播数据报传输时,多播路由器可以根据多播组成员的位置,自动进行数据报复制,并选择相关的路径进行传送。1、互联网环境中多播比较复杂,需要管理广域范围的多播组的成员变化、解决动态路由,并最大可能节约各种资源开销问题;215.如果多个多播路由器连接到同一个网络上,它们会迅速而有效地选用一个路由器来轮询主机成员。因此,当网络中添加其它多播路由器时,网络上的通信量总量不会增加。6.主机并不会同时响应路由器的查询,每个查询包含一个N值,指定了最大响应时间(默认值是10秒)。当查询到达时,主机选择0至N之间的一个随机时延,在这个时延之后发送响应报文。实际上,如果某个主机是多个群组的成员,就会为每个群组选择不同的随机数,这样,主机对路由器的响应就会在10秒内随机分布。7.每台主机监听群组中其它主机的响应,并抑制那些不必要的响应通信量。22因特网组管理协议(IGMP)一台主机如何加入或离开多播群组呢?有一个标准协议——因特网组管理协议,每当主机需要加入或离开某个特定的多播群组时,该协议允许该主机去通知邻近的路由器。该协议只用在主机与路由器之间的网络上。而且,协议只把计算机(不是应用进程)定义为群组成员。如果在一给定计算机上有多个进程要加入到一个多播群组,计算机必须要把接收到的每个数据报复制多个副本给每个进程。只有当最后一个进程离开群组时,计算机才利用IGMP通知本地的路由器,表明它不再是群组的成员了。23IGMP报文格式4位版本号081631IP头部IP数据区IGMP数据区IGMP头32位D类多播组地址(查询为0)4位类型响应时间16位校验和以十分之一秒为单位。默认值是10秒。对整个IGMP报文进行检验,其算法和IP数据报的相同。当向所有的组发出询问时,组地址字段就填零。当询问特定的组时,路由器就填入该组的组地址。主机发送成员关系的报告时填入自己的组地址。24IGMP可分为两个阶段第一阶段:当某个主机加入新的多播组时,该主机应向组播组的多播地址发送一个IGMP报文,声明自己要成为该组的成员。本地的多播路由器收到IGMP报文后,将组成员关系转发给因特网上的其他多播路由器。第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。但一个组在经过多次的探询后仍然没有一个主机响应,则多播路由器就认为本网络上的主机已经都离开这个组了因此就不再将该组的成员关系转发给其他的多播路由器。25目的尽量避免多播信息对网络增加大量开销。1、主机和多播路由器的所有通信使用IP多播,只要有可能,携带IGMP报文的数据报都使用硬件多播来传送。2、多播路由器在探询组成员关系时,只需要对所有多播组只发一个查询,而不是对每一个组发送一个查询,默认125S一次。IGMP协议优化处理261、IGMP协议只解决多播组的成员关系变化,而没有涉及多播的路由选择问题。2、多播组成员的动态变化,使多播的路由是动态变化的;多播转发不仅要考虑目的地址,而且还要考虑源地址,以确定复制和转发副本;多播数据报可能不是组成员主机产生,也可能通过无组成员的网络;3、目前采用的多播路由算法思想:寻找从源开始的多播树,使每个数据报在每条链路上传一次(不兜圈子