组播
目录
一种通讯模式。主机之间的通讯模式,也就是加入了同一个组的主机可以接收到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯
本发明提供了一种文件组播传输方法和系统,其中,该方法包括:当发送端处理机启动文件的组播传输时,初始化组播控制结构表;根据组播控制结构表,发送端处理机向接收端处理机发送预传输信息,并将关于将要进行组播传输的文件的数据包填入组播数据包结构表中;在填写完组播数据包结构表之后,发送端处理机采用组播方式发送数据包,并将数据包放入发送端处理机的发送缓冲区中;在接收到数据包之后,接收端处理机向发送端处理机反馈数据包接收确认消息,并将数据包放入接收端处理机的接收缓冲区中;以及根据组播数据包结构表,接收端处理机判断组播传输是否完成,并在确定组播传输完成后,将接收到的数据包写入存储设备并清空接收缓冲区。
在Internet网络发展的过程中,组播是一个旧概念而不是一个新概念。但它由于各种原因发展比较缓慢。
IP组播的概念于1988年最早出现在SteveDeering的博士论文中,在1989年SteveDeering对标准IP网络层协议进行了扩展,提出了IP组播规范;1992年3月第一次建立组播主干网MBone,IETF并成功地在组播网上举行了一次会议,才引起人们的广泛关注。而第一个WWW浏览器出现在1990年,到1993年已发展到100个WWW站点,所以组播和WWW虽处于同一时期,但组播的发展远远慢于WWW,主要原因是IP组播通信模式需要相当状态和复杂性的路由器,要求路由器能提供每个群组和每个源的信息状态,并且随着Internet网络的越来越复杂给组播的进一步的发展带来了困难。后来,出现了一些设计精巧的组播路由协议(如PIM-DM、PIM-SM),使组播IP包能正确而又迅速地发送给成千上万的接收者,IP组播的技术和应用开始快速发展。
目前,IP组播可以运行在任意构造的网络之上,包括因特网、ATM、帧中继、SMDS和卫星,涉及网络的许多领域,能应用在视频和电信会议、多媒体种类、新闻发布和那些来自太空的远程实况广播。
公共互联网中的一些团体经常会用到IP组播(Mbone就是一个例子),此外IP组播还被用于Internet2等私有IP网络中的一些特殊应用。链路本地组播是指将IP组播包发往处于同一物理的或虚拟的数据链路层的若干主机组。由于这种组播不需要复杂的路由,因此其应用要广泛得多。在IPv6中,它被用于地址解析,而在零配置网络中,它取代了低效的广播协议,完成服务发现、名字解析和地址冲突解析的功能。
IP组播会议的第一次大规模演示是在1992年3月的第23届IETF大会上,当时它被用于向全世界的研究人员和感兴趣的观察员们广播一些会议。之后,IETF的一些会议就被有选择地继续在MBONE和一些私有组播网络上多播。
组播安全性是一个重要的问题。标准的、实用的通信安全解决方案一般采用的是对称加密。但是将其应用于IP组播流量可能会使任何一个接收方都拥有冒充发送方的能力。这显然是令人无法接受的。IETF的MSEC工作组正在开发用以解决这一问题的安全协议,这些协议大多都是在IPsec协议集的体系框架内开发的。
IPsec不能被用于组播方案,这是因为IPsec安全关联是被绑定到两个而非多个主机的。IETF提出了一个新的协议——TESLA,就组播安全性而言,这个协议是灵活且令人信服的。
组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。组成员关系协议包括IGMP(互连网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。域内组播路由协议包括PIM-SM、PIM-DM、DVMRP等协议,域间组播路由协议包括MBGP、MSDP等协议。同时为了有效抑制组播数据在链路层的扩散,引入了IGMPSnooping、CGMP等二层组播协议。对组播的技术历史作出了巨大的贡献!
IGMP建立并且维护路由器直联网段的组成员关系信息。域内组播路由协议根据IGMP维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分发树进行组播数据包转发。域间组播路由协议在各自治域间发布具有组播能力的路由信息以及组播源信息,以使组播数据在域间进行转发。
组播MAC地址的高24bit为0x01005e,第25bit为0,即高25bit为固定值。MAC地址的低23bit为组播IP地址的低23bit。由于IP组播地址的前4bit是1110,代表组播标识,而后28bit中只有23bit被映射到MAC地址,这样IP地址中就有5bit信息丢失,导致的结果是出现了32个IP组播地址映射到同一MAC地址上。
在组播方式中,信息的发送者称为“组播源”,信息接收者称为该信息的“组播组”,支持组播信息传输的所有路由器称为“组播路由器”。加入同一组播组的接收者成员可以广泛分布在网络中的任何地方,即“组播组”没有地域限制。需要注意的是,组播源不一定属于组播组,它向组播组发送数据,自己不一定是接收者。多个组播源可以同时向一个组播组发送报文。
假设只有HostB、HostD和HostE需要信息,采用组播方式时,可以让这些主机加入同一个组播组(Multicastgroup),组播源向该组播组只需发送一份信息,并由网络中各路由器根据该组播组中各成员的分布情况对该信息进行复制和转发,最后该信息会准确地发送给HostB、HostD和HostE。
IGMP协议运行于主机和与主机直接相连的组播路由器之间,主机通过此协议告诉本地路由器希望加入并接受某个特定组播组的信息,同时路由器通过此协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现所连网络组成员关系的收集与维护。
IGMP有三个版本,IGMPv1由RFC1112定义,目前通用的是IGMPv2,由RFC2236定义。IGMPv3目前仍然是一个草案。IGMPv1中定义了基本的组成员查询和报告过程,IGMPv2在此基础上添加了组成员快速离开的机制,IGMPv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。这里着重介绍IGMPv2协议的功能。
IGMPv2通过查询器选举机制为所连网段选举唯一的查询器。查询器周期性的发送普遍组查询消息进行成员关系查询;主机发送报告消息来应答查询。当要加入组播组时,主机不必等待查询消息,主动发送报告消息。当要离开组播组时,主机发送离开组消息;收到离开组消息后,查询器发送特定组查询消息来确定是否所有组成员都已离开。
通过上述IGMP机制,在组播路由器里建立起一张表,其中包含路由器的各个端口以及在端口所对应的子网上都有哪些组的成员。当路由器接收到某个组G的数据报文后,只向那些有G的成员的端口上转发数据报文。至于数据报文在路由器之间如何转发则由路由协议决定,IGMP协议并不负责。
组播路由器负责监视一个组播组中的所有成员,看他们是否想继续它们在组播组中的成员身份。组播路由器定时的发送询问信息到组播地址224.0.0.1.在这条信息中,组地址域设定为0.0.0.0.这意味着这种询问是面向一个主机所在所有组播组,而不是一个组播组。组播路由器希望从每一个组播组都获得一个应答
具有组播能力的主机保留有一个想继续组播组成员身份的进程表。当一个主机接收到一个由组播路由器发出的询问信息,它就检查一下它所保留的进程表。对于每一个组播组,如果至少有一个进程想继续组播组成员身份,主机就必须向组播路由器发送一条报告信息。需要注意的是这种为了响应询问消息而发送的报告信息是为了确认对组播组成员身份的继续而不是为了作为新的成员加入组播组。而且为了使不同的组播组中的成员身份得以继续,对于不同的组播组就必须分别发送报告信息。
在IGMPv1中,当每一个主机离开某一个组播组时,它不通知任何组播路由器就自然地离开,组播路由器定时(如120秒)向IP子网中的所有组播组询问,如果某一个组播组在IP子网中已经没有任何成员,则组播路由器在确认这一事件后,不再将该组播组的数据在子网中进行传送,同时通过路由信息的交换,将相应的组播路由器从特定的组播组分配树中删除.这种不通知任何人而悄悄离开的方法,使得组播路由器知道IP子网中已经没有任何成员的事件延时了一段时间,所以在IGMPv2中,当每一个主机要离开某一个组播组时,需要通知子网组播路由器,组播路由器立即向IP子网中的所有组播组询问,从而减少了系统处理停止组播的延时.离开组播组时主机要发送信息这一点是IGMPVersion2和IGMPVersion1的主要区别。
组播的规范是在1989年出版的,但是它的使用受到了限制。Internet上的路由器目前并不是都具有组播的能力。在这样一种情况下,研究者们为了在现有情况下开发和测试组播协议的应用,建立了组播骨干网(MulticastBackbone,Mbone)。Mbone支持组播分组的路由选择而不打扰其它的因特网业务流。
Mbone是一种跨越几个大陆的,由志愿者合作完成的实验性的网络。它是一个相互连接的子网和路由器的集合,这些子网和路由器支持IP组播业务流的传送。作为因特网上的虚拟网络,Mbone通过隧道(Tunneling)来旁路因特网上无组播能力的路由器。
隧道把组播数据包封装在IP包(即单播数据包)中来通过哪些不支持组播路由的网络。如图5所示,MR3和MR4是支持IGMP协议的有组播能力的路由器,他们把组播数据包封装在单播数据包中来发送,同时它们还从收到的单播数据包中取出组播数据包。R1和R2是没有组播能力的路由器,它们像传送其它普通单播数据包那样来传送封装有组播数据包的单播数据包。
IP组播的最大的用处就是用来做Internet上的音频和视频的传输,比如向成百上千的使用者发送音频和视频数据流。可是传统的IP组播的有一个最大的缺点就是这些所有的使用者都是被动的接受者。换句话说,IP组播并没有让这些使用者进行交互式主动参与的内置机制。利用H.323国际标准中对会议成员的管理技术,SAP(SessionAnnouncementProtocol),SDP(SessionDescriptionProtocol),RTCP(Real-timeTransportControlProtocol)等协议,就可以使传统的IP组播技术具有交互功能。交互式IP组播技术应用范围很广,特别是Internet上多媒体的传输业务。比如视频会议,远程教育,Internet上的视频点播(VoD)等。
附件列表
故事内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
如果您认为本故事还有待完善,请 编辑
上一篇 全国委员会常务委员会会议 下一篇 “天山—2014”综合反恐演习
