不用组播协议如何实现组播路由?
你能够在不使用组播协议的情况下进行组播路由吗?换句话说,你能简单地把组播数据包发送到一个地址吗? 先提供一点背景知识。从一个源点向多个接收者发送同样的信息有三种主要的方法。需要这种技术的最普通的应用是桌面视频会议。在视频会议中,一个发送的信息将发送给多个接收者。首先是单播,单个数据包发送给每一个预定的接受者。这种方法浪费带宽和资源。发送一个单一的广播数据包到网络的所有端口这种广播方式可以解决浪费带宽的问题。然而,由于有广播业务,所有的主机不管是否需要都要接收这些信息。因此,建立了组播协议。组播协议仅向加入组播组的网络中的一组主机发送信息流。 RFC 1112(IP多点传送的主机扩展)中规定的互联网组管理协议(IGMP)是IP组播标准。为了保证组播在网络上顺利执行,所有连接的设备都要求网络硬件支持IGMP。 为了解决这个问题,有很多方法为直接连接到交换机的那些没有直接支持IGMP的设备创建支持IGMP的功能。在交换机中安装一个IGMP服务器。这个服务器监听和接收组播组信息并且把组播信息流发送到指定的接收者。多平台和操作系统支持IGMP服务器配置。然而,这个解决方案不适合多个设备,只能在有限的基础上予以考虑。 编译:东缘
组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。
224000~22400255为预留的组播地址(永久组地址),地址224000保留不做分配,其它地址供路由协议使用;
224010~22401255是公用组播地址,可以用于Internet;
224020~238255255255为用户可用的组播地址(临时组地址),全网范围内有效;
239000~239255255255为本地管理组播地址,仅在特定的本地范围内有效。 列表如下:
224000 基准地址(保留)
224001 所有主机的地址 (包括所有路由器地址)
224002 所有组播路由器的地址
224003 不分配
224004 dvmrp路由器
224005 所有ospf路由器
224006 ospf DR/BDR
224007 st路由器
224008 st主机
224009 rip-2路由器
2240010 Eigrp路由器
2240011 活动代理
2240012 dhcp 服务器/中继代理
2240013 所有pim路由器
2240014 rsvp封装
2240015 所有cbt路由器
2240016 指定sbm
2240017 所有sbms
2240018 vrrp
以太网传输单播ip报文的时候,目的mac地址使用的是接收者的mac地址。但是在传输组播报文时,传输目的不再是一个具体的接收者,而是一个成员不确定的组,所以使用的是组播mac地址。组播mac地址是和组播ip地址对应的。iana(internet assigned number authority)规定,组播mac地址的高24bit为0x01005e,mac 地址的低23bit为组播ip地址的低23bit。
由于ip组播地址的后28位中只有23位被映射到mac地址,这样就会有32个ip组播地址映射到同一mac地址上。
bonjour服务器开启的方法:
1、桌面,右击“计算机”,选择“管理”;
2、然后点开“服务和应用程序”下的“服务”;
3、在中间的服务找到“Bonjour服务”;
4、右击“Bonjour服务”,选择“启动”;
5、服务已经启动。
Bonjour是苹果为基于组播域名服务的开放性零设置网络标准所起的名字,能自动发现IP网络上的电脑、设备和服务。Bonjour使用工业标准的IP协议来允许设备自动发现彼此,而不需输入IP地址或配置DNS服务器。
使用Bonjour的设备在网络中自动传播自己的服务信息并聆听其它设备的服务信息,设备之间就象在打招呼,这也是命名为Bonjour的原因。这样,Bonjour使局域网中的系统和服务即使在没有网络管理员的情况下很容易被找到。
linux不设置路由无法接收组播数据解决方法有使用静态路由、使用代理服务器。
1、使用静态路由:在Linux系统中,可以使用静态路由来将数据包路由到特定的位置。
2、使用代理服务器:可以使用代理服务器来接收数据包,代理服务器可以充当中间人,将数据包路由到目标主机。
Windows server 2003中提供了网络负载均衡(NLB)功能。NLB的操作模式有单播和多播两种,它们之间有什么区别呢?
首先,给大家介绍一下NLB的工作原理:当客户向NLB群集(NLB的虚拟IP地址)发起请求时,其实客户的请求数据包是发送到所有的NLB节点,然后运行在NLB节点上的NLB服务根据同样的NLB算法来确定是否应该由自己进行处理,如果不是则丢弃客户的请求数据包,如果是则进行处理。
如何将请求数据包发送到所有的NLB节点是NLB运行的关键之处,单播和多播这两种操作模式就是用于实现这一需求。NLB不支持单个NLB群集中的单播/多播的混合环境;在每一个NLB群集中,该群集中的所有节点都必须配置为多播或单播,否则,此NLB群集将无法正常工作。
单播和多播的运行方式和不同之处分别为:
单播
在单播模式下,NLB重新对每个NLB节点中启用NLB的网络适配器分配MAC地址(此MAC地址称为群集MAC地址),并且所有的NLB节点均使用相同的MAC地址(均使用群集MAC地址),同时NLB修改所有发送的数据包中的源MAC地址,从而使交换机不能将此群集MAC地址绑定在某个端口上。
工作在单播模式下的NLB可以在所有网络环境下正常运行,但是由于它的工作特性,具有以下两个限制:
由于NLB所使用的群集MAC地址没有绑定在某个具体的交换机端口上,所以所有的NLB通讯均通过在交换机的所有端口上广播进行,而不管此端口是否连接了NLB节点,这造成了额外的网络流量负担;
由于所有的NLB节点具有相同的MAC地址,NLB节点之间不能通过自己原有的专用IP地址进行通讯。
多播
在多播模式下,NLB不会修改NLB节点启用NLB的网络适配器的MAC地址,而是为它再分配一个二层多播MAC地址专用于NLB的通讯(此MAC地址称为群集MAC地址),这样NLB节点之间可以通过自己原有的专用IP地址进行通讯。但是在多播模式中,NLB节点发送的针对群集IP地址MAC地址ARP请求的ARP回复会将群集IP地址映射到多播MAC地址,而许多路由器或者交换机(包括CISCO的产品)会拒绝这一行为。当出现这种情况时,你必须在路由器和交换机上手动添加静态映射,将群集IP地址映射到群集的多播MAC地址。
Windows Server 2003提供了一个新的特性,称为IGMP 多播,它可以通过使用IGMP协议支持来使交换机只将NLB通讯发送到连接NLB节点的端口,而不是所有交换机端口。但是此特性必须要求交换机支持IGMP侦听,并且要求群集工作在多播模式下。
1、交换机开启多播功能。
2、ghostsrv和客户端的ghost要求版本同一。
3、最好先用ghostsrv采集母盘,成功率比较高。
组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。
公共互联网中的一些团体经常会用到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等协议。同时为了有效抑制组播数据在链路层的扩散,引入了IGMP Snooping、CGMP等二层组播协议。对组播的技术历史作出了巨大的贡献!
IGMP建立并且维护路由器直联网段的组成员关系信息。域内组播路由协议根据IGMP维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分发树进行组播数据包转发。域间组播路由协议在各自治域间发布具有组播能力的路由信息以及组播源信息,以使组播数据在域间进行转发。 组播IP地址用于标识一个IP组播组。IANA(internet assigned number authority)把D类地址空间分配给IP组播,其范围是从224000到239255255255。如下图所示(二进制表示),IP组播地址前四位均为1110八位组⑴ 八位组⑵ 八位组⑶ 八位组⑷1110
XXXX XXXXXXXX XXXXXXXX XXXXXXXX组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。
224000~22400255为预留的组播地址(永久组地址),地址224000保留不做分配,其它地址供路由协议使用。
224010~238255255255为用户可用的组播地址(临时组地址),全网范围内有效。
239000~239255255255为本地管理组播地址,仅在特定的本地范围内有效。常用的预留组播地址列表如下:
224000 基准地址(保留)
224001 所有主机的地址
224002 所有组播路由器的地址
224003 不分配
224004dvmrp(Distance Vector Multicast Routing Protocol,距离矢量组播路由协议)路由器
224005 ospf(Open Shortest Path First,开放最短路径优先)路由器
224006 ospf dr(Designated Router,指定路由器)
224007 st (Shared Tree,共享树)路由器
224008 st主机
224009 rip-2路由器
2240010 Eigrp(Enhanced Interior Gateway Routing Protocol,增强网关内部路由线路协议)路由器 2240011 活动代理
2240012 dhcp服务器/中继代理
2240013 所有pim (Protocol Independent Multicast,协议无关组播)路由器
2240014 rsvp (Resource Reservation Protocol,资源预留协议)封装
2240015 所有cbt 路由器
2240016 指定sbm(Subnetwork Bandwidth Management,子网带宽管理)
2240017 所有sbms
2240018 vrrp(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)
239255255255 SSDP协议使用
组播MAC地址
组播MAC地址的高24bit为0x01005e,第25bit为0,即高25bit为固定值。MAC地址的低23bit为组播IP地址的低23bit。由于 IP组播地址的前4bit 是1110,代表组播标识,而后28bit 中只有23bit 被映射到MAC 地址,这样IP 地址中就有5bit 信息丢失,导致的结果是出现了32 个IP 组播地址映射到同一MAC 地址上。 在组播方式中,信息的发送者称为“组播源”,信息接收者称为该信息的“组播组”,支持组播信息传输的所有路由器称为“组播路由器”。加入同一组播组的接收者成员可以广泛分布在网络中的任何地方,即“组播组”没有地域限制。需要注意的是,组播源不一定属于组播组,它向组播组发送数据,自己不一定是接收者。多个组播源可以同时向一个组播组发送报文。
假设只有 Host B、Host D 和Host E 需要信息,采用组播方式时,可以让这些主机加入同一个组播组(Multicast group),组播源向该组播组只需发送一份信息,并由网络中各路由器根据该组播组中各成员的分布情况对该信息进行复制和转发,最后该信息会准确地发送给Host B、Host D 和Host E。 IGMP协议运行于主机和与主机直接相连的组播路由器之间,主机通过此协议告诉本地路由器希望加入并接受某个特定组播组的信息,同时路由器通过此协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现所连网络组成员关系的收集与维护。
IGMP有三个版本,IGMPv1由RFC1112定义,目前通用的是IGMPv2,由RFC2236定义。IGMPv3目前仍然是一个草案。IGMPv1中定义了基本的组成员查询和报告过程,IGMPv2在此基础上添加了组成员快速离开的机制,IGMPv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。这里着重介绍IGMPv2协议的功能。
IGMPv2通过查询器选举机制为所连网段选举唯一的查询器。查询器周期性的发送普遍组查询消息进行成员关系查询;主机发送报告消息来应答查询。当要加入组播组时,主机不必等待查询消息,主动发送报告消息。当要离开组播组时,主机发送离开组消息;收到离开组消息后,查询器发送特定组查询消息来确定是否所有组成员都已离开。
通过上述IGMP机制,在组播路由器里建立起一张表,其中包含路由器的各个端口以及在端口所对应的子网上都有哪些组的成员。当路由器接收到某个组G的数据报文后,只向那些有G的成员的端口上转发数据报文。至于数据报文在路由器之间如何转发则由路由协议决定,IGMP协议并不负责。 网络二层组播相关协议包括IGMP Snooping,IGMP Proxy和CGMP协议。
IGMP Snooping的实现机理是:交换机通过侦听主机发向路由器的IGMP成员报告消息的方式,形成组成员和交换机接口的对应关系;交换机根据该对应关系将收到组播数据包只转给具有组成员的接口。
IGMP Proxy与IGMP Snooping实现功能相同但机理相异:IGMP snooping只是通过侦听IGMP的消息来获取有关信息,而IGMP Proxy则拦截了终端用户的IGMP请求并进行相关处理后,再将它转发给上层路由器。
CGMP(Cisco Group Management Protocol)是Cisco基于客户机/服务器模型开发的私有协议,在CGMP的支持下,组播路由器能够根据接收到的IGMP数据包通知交换机哪些主机何时加入和脱离组播组,交换机利用由这些信息所构建的转发表来确定将组播数据包向哪些接口转发。GMRP是主机到以太网交换机的标准协议,它使组播用户可以在第二层交换机上对组播成员进行注册。 众多的组播路由协议中,目前应用最多的协议是 PIM-SM稀疏模式协议无关组播。
在PIM-SM域中,运行PIM-SM协议的路由器周期性的发送Hello消息,用以发现邻接的PIM路由器,并且负责在多路访问网络中进行指定路由器(DR)的选举。这里,DR负责为其直连组成员朝着组播分发树根节点的方向发送加入/剪枝消息,或是将直连组播源的数据发向组播分发树。 组播的规范是在1989年出版的,但是它的使用受到了限制。Internet上的路由器目前并不是都具有组播的能力。在这样一种情况下,研究者们为了在现有情况下开发和测试组播协议的应用,建立了组播骨干网(Multicast Backbone,Mbone)。Mbone支持组播分组的路由选择而不打扰其它的因特网业务流。
Mbone是一种跨越几个大陆的,由志愿者合作完成的实验性的网络。它是一个相互连接的子网和路由器的集合,这些子网和路由器支持IP组播业务流的传送。作为因特网上的虚拟网络,Mbone通过隧道(Tunneling)来旁路因特网上无组播能力的路由器。
隧道把组播数据包封装在IP包(即单播数据包)中来通过哪些不支持组播路由的网络。如图5所示,MR3和MR4是支持IGMP协议的有组播能力的路由器,他们把组播数据包封装在单播数据包中来发送,同时它们还从收到的单播数据包中取出组播数据包。R1和R2是没有组播能力的路由器,它们像传送其它普通单播数据包那样来传送封装有组播数据包的单播数据包。 点对多点应用是指一个发送者,多个接收者的应用形式,这是最常见的组播应用形式。
典型的应用包括:
媒体广播:如演讲、演示、会议等按日程进行的事件。其传统媒体分发手段通常采用电视和广播。这一类应用通常需要一个或多个恒定速率的数据流,当采用多个数据流(如语音和视频)时,往往它们之间需要同步,并且相互之间有不同的优先级。它们往往要求较高的带宽、较小的延时抖动,但是对绝对延时的要求不是很高。
媒体推送:如新闻标题、天气变化、运动比分等一些非商业关键性的动态变化的信息。它们要求的带宽较低、对延时也没有什么要求。
信息缓存: 如网站信息、执行代码和其他基于文件的分布式复制或缓存更新。它们对带宽的要求一般,对延时的要求也一般。
事件通知:如网络时间、组播会话日程、随机数字、密钥、配置更新、有效范围的网络警报或其他有用信息。它们对带宽的需求有所不同,但是一般都比较低,对延时的要求也一般。
状态监视:如股票价格、传感设备、安全系统、生产信息或其他实时信息。这类带宽要求根据采样周期和精度有所不同,可能会有恒定速率带宽或突发带宽要求,通常对带宽和延时的要求一般。 多点对多点应用是指多个发送者和多个接收者的应用形式。通常,每个接收者可以接收多个发送者发送的数据,同时,每个发送者可以把数据发送给多个接收者。
典型应用包括:
多点会议: 通常音/视频和白板应用构成多点会议应用。在多点会议中,不同的数据流拥有不同的优先级。传统的多点会议采用专门的多点控制单元来协调和分配它们,采用组播可以直接由任何一个发送者向所有接收者发送,多点控制单元用来控制当前发言权。这类应用对带宽和延时要求都比较高。
资源同步:如日程、目录、信息等分布数据库的同步。它们对带宽和延时的要求一般。
并行处理: 如分布式并行处理。它对带宽和延时的要求都比较高。
协同处理:如共享文档的编辑。它对带宽和延时的要求一般。
远程学习: 这实际上是媒体广播应用加上对上行数据流(允许学生向老师提问)的支持。它对带宽和延时的要求一般。
讨论组:类似于基于文本的多点会议,还可以提供一些模拟的表达。
分布式交互模拟(DIS):它对带宽和时延的要求较高。
多人游戏: 多人游戏是一种带讨论组能力的简单分布式交互模拟。它对带宽和时延的要求都比较高。
Jam Session:这是一种音频编码共享应用。它对带宽和时延的要求都比较高。
多点对点的应用
多点对点应用是指多个发送者,一个接收者的应用形式。通常是双向请求响应应用,任何一端(多点或点)都有可能发起请求。典型应用包括:
资源查找:如服务定位,它要求的带宽较低,对时延的要求一般。
数据收集:它是点对多点应用中状态监视应用的反向过程。它可能由多个传感设备把数据发回给一个数据收集主机。带宽要求根据采样周期和精度有所不同,可能会有恒定速率带宽或突发带宽要求,通常这类应用对带宽和延时的要求一般。
网络竟拍:拍卖者拍卖产品,而多个竟拍者把标价发回给拍卖者。
信息询问: 询问者发送一个询问,所有被询问者返回应答。通常这对带宽的要求较低,对延时不太敏感。
Juke Box:如支持准点播(Near-On-Demand)的音视频倒放。通常接收者采用“带外的”协议机制(如HTTP、RTSP、SMTP,也可以采用组播方式)发送倒放请求给一个调度队列。它对带宽的要求较高,对延时的要求一般。
0条评论