请教各位,IP组播的原理,和实现。

wudid007 2003-09-27 03:38:00
加精
比如说主机是在接到相同的请求后进行组播还是对特定的组进行广播。
...全文
1582 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
cenhaiy 2003-10-30
  • 打赏
  • 举报
回复
多谢,看了后受益匪浅呀!
phoenixandlinda 2003-10-29
  • 打赏
  • 举报
回复
mark
zlfpeak 2003-10-28
  • 打赏
  • 举报
回复
这个需要网络支持吗,我是说当我们想做一个组播系统时,需要考虑硬件问题吗,需要与网络提供商协商吗,还是完全只需编写程序包括服务器和客户机,就可以了
Skt32 2003-10-03
  • 打赏
  • 举报
回复
组播,多博说的是一个东西。他跟广播类是,但是,只有感兴趣的主机才会受到,不敢兴趣的直接被网卡过滤掉了,而广播不一样,广播报总是能到达网络协议层的。另外,做播能够卡网段,到达任何网络,而广播不行。
做播地址有一定的范围。
Skt32 2003-10-03
  • 打赏
  • 举报
回复
多址广播(multicast,也译作多点传送或组播)是一种一对多的传输方式,传输发起者通过一次传输就将信息传送到一组接收者,与单点传送(unicast)和广播(broadcast)相对应。

多址广播使用最广泛的是IP multicast,它标准IP网络层协议的扩展,由Steve Deering定义的Host Extensions for IP Multicasting(RFC 1112)奠定基础。IP Multicasting的定义为:到一个“主机组”的IP数据报的传送,主机组是由零个或多个用同一IP目的地址标识的主机集合。Multicast数据报被传递到其目的主机组的所有成员,并且同常规单点传送的IP数据报一样可靠。主机组的成员是动态的,也就是说,主机可以在任何时间加入或离开主机组。主机组中成员在位置上和数量上都没有限制,一个主机可以同时是一个以上主机组的成员。

在Windows Sockets 1.1中没有定义多址广播,因此,绝大多数Windows Sockets 1.1实现不支持多址广播。Windows Sockets 2为支持IP multicast而定义了一组新的与协议无关的多址广播应用程序接口,归纳起来可以用表1表示。

表1 WinSock 2的多址广播API

WSAEnumProtocols()
检测多址广播支持

WSASocket()
指定多址广播类型

WSAJoinLeaf()
加入一个多址广播组并指定角色(发送者和/或接收者)

WSAIoctl() SIO_MULTICAST_SCOPE
设置IP生存时间

WSAIoctl() SIO_MULTIPOINT_LOOPBACK
禁止内部回送(loopback)


函数WSAEnumProtocols()返回当前系统中安装的协议的详细描述,这些信息存放在一个协议信息结构(WSAPROTOCOL_INFO)的数组中。在其中的域dwServiceFlags1中的一些标识指示此服务由IP/UDP协议提供,并且位标识XP1_SUPPORT_MULTIPOINT指示该服务支持IP multicast。

为了适用不同的多址广播模式,WinSock 2定义了数据平面(data plane)和控制平面(control plane)两个概念,每一个平面都可以是“有根(rooted)”的或“无根(non-rooted)”的。关于这些概念的详细解释,参见WinSock 2规范附录B。IP multicast是一种无根的数据平面和控制平面。在使用WSASocket()函数请求一个多址广播套接字时需要指定这些角色。这通过在WSASocket()函数的参数dwFlags中使用四个标志位来实现:

· WSA_FLAG_MULTIPOINT_C_ROOT,用来创建一个作为c_root节点的套接字,并且只有在相应的WSAPROTOCOL_INFO入口中指示了使用rooted控制平面时才允许。

· WSA_FLAG_MULTIPOINT_C_LEAF,用来创建一个作为c_leaf节点的套接字,并且只有在相应的WSAPROTOCOL_INFO入口中指示了XP1_SUPPORT_MULTIPOINT时才允许。

· WSA_FLAG_MULTIPOINT_D_ROOT,用来创建一个作为d_root节点的套接字,并且只有在相应的WSAPROTOCOL_INFO入口中指示了使用rooted数据平面时才允许。

· 用来创建一个作为d_leaf节点的套接字,并且只有在相应的WSAPROTOCOL_INFO入口中指示了XP1_SUPPORT_MULTIPOINT时才允许。

注意,在IP multicast中,只有标志WSA_FLAG_MULTIPOINT_C_LEAF 和WSA_FLAG_MULTIPOINT_D_LEAF能用来作为WSASocket()函数的dwFlags参数。

WSAIoctl()函数的SIO_MULTIPOINT_LOOP命令码用来设置是否允许内部回送。当d_leaf套接字用于non-rooted数据平面时,它通常是希望能够控制发送出去的通信流量是否能够在同一个套接字上也被接收。WSAIoctl()函数的SIO_MULTIPOINT_LOOP命令码用来允许或禁止多址广播的通信流量的内部回送。

WSAIoctl()函数的SIO_MULTICAST_SCOPE命令码用来设置多址广播范围。当使用多址广播时,常常需要指定多址广播传播的范围。范围由包括的路由网段来定义。范围为0指示多址广播不传播信息到“网线”上,但是可以在本地主机的多个套接字间传播。范围为1(默认值)指示将传播信息到“网线”上,但是不跨越路由器。更高的范围值决定了可以跨越的路由器数量。注意这相当于IP multicast的生存时间(time-to-live,TTL)。

WSAJoinLeaf()函数用来加入一个叶子节点到多址广播会话,其函数原型为:

SOCKET WSAAPI WSAJoinLeaf ( SOCKET s, const struct sockaddr FAR * name, int namelen, LPWSABUF lpCallerData, LPWSABUF lpCalleeData, LPQOS lpSQOS, LPQOS lpGQOS, DWORD dwFlags );

WSAJoinLeaf()具有与WSAConnect()相同的参数和语法,除了它还返回一个套接字描述符(这和函数WSAAccept()一样)及多了一个dwFlags参数外。参数dwFlags用来指示套接字是用来作为发送者还是接收者还是两者兼具。在此函数中,只有多址广播套接字可以用来作为输入参数s。如果此多址广播套接字处于非阻塞模式,返回的套接字描述符只有在接收到相应的FD_CONNECT指示后才能使用。参数name指示套接字将加入的多址广播的地址。

另外,在上面的API中没有提到如何离开一个多址广播组。唯一与协议无关的API是关闭套接字,即使用标准的closesocket()函数,它可以用来离开多址广播组。

Windows 95不支持IP multicast,如果要在Windows 95 上开发IP multicast程序,需要下载WinSock 2的软件开发包WS295SDK,这可以通过Internet免费下载。相关站点地址为:http://www.microsoft.com/win32dev/netwrk/winsock2/ws295sdk.html。Windows 98支持IP multicast,如果使用Windows 98,则不必运行其中的ws2setup.exe。


Skt32 2003-10-03
  • 打赏
  • 举报
回复
优秀的IP网络语音通讯软件Speak Fleely源代码 详细信息 < 音频技术 >

实现网络在线语音对话.支持GSM编码,ADPCM编码,LPC编码,LPC-10编码
支持RTP,vat协议,并有广播发送,按组进行多点传送,文字交谈等功能

[代码性质] VC完整应用程序代码
[代码作者] John Walker & Brian
[文件大小] 1176K
[更新日期] 2002-3-30 10:06:00
[下载次数] 9383

http://www.vckbase.com/code/downcode.asp?id=1510
廖雪峰 2003-09-30
  • 打赏
  • 举报
回复
java 代码:

// join a Multicast group and send the group salutations
...
String msg = "Hello";
InetAddress group = InetAddress.getByName("228.5.6.7");
MulticastSocket s = new MulticastSocket(6789);
s.joinGroup(group);
DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(),
group, 6789);
s.send(hi);

// get their responses!
byte[] buf = new byte[1000];
DatagramPacket recv = new DatagramPacket(buf, buf.length);
s.receive(recv);
...
// OK, I'm done talking - leave the group...
s.leaveGroup(group);
softcar 2003-09-30
  • 打赏
  • 举报
回复
记得java中组播的例子好像是先建立一个虚拟ip,然后组中的都从这个ip接受。
这样服务器只用往虚拟ip发,所有人都可以收到。
softcar 2003-09-30
  • 打赏
  • 举报
回复
谢谢楼上,楼主块散分吧。
要是谁能给个组播的实现例程就更好了。
zihan 2003-09-29
  • 打赏
  • 举报
回复
楼上的说的很清楚了.
fengge8ylf 2003-09-29
  • 打赏
  • 举报
回复
据说一般广域网都会禁止组播的


-------------------------------------------
为了得到我应该得到的
为了找回我曾经失去的
sheerfish999 2003-09-29
  • 打赏
  • 举报
回复
up
Skt32 2003-09-28
  • 打赏
  • 举报
回复
请教各位高手:
请问要在VC++中用UDP实现组播,服务器端和客户端分别要调用哪些函数?调用顺序?
  誰有例子源代码?可以发到我的e-mail: ylfgd@21cn.com 吗?
刚柔并济 回复于2002-5-21 19:34:01
--------------------------------------------------------------------------------

服务器端:
1.WSAStartup();
2.WSASocket()
3.setsockopt() //可多个
4.bind()
5.WSAIoctl() //可多个
6.WSAJoinLeaf()
7.WSASendTo()
8.WSACleanup()
客户端:
1.WSAStartup()
2.WSASocket()
3.setsockopt() //可多个
4.bind()
5.WSAIoctl() //可多个
6.WSAJoinLeaf()
7.WSARecvFrom()
8.WSACleanup()


fiven
零点MFC 回复于2002-5-22 21:54:06
--------------------------------------------------------------------------------

使用SETSOCKOPT设定选项
smart790225 2003-09-28
  • 打赏
  • 举报
回复
三、组播的实现
在IP组播技术中有四个方面的问题:首先是发送给谁的问题、其次是接收方如何接收组播信息、第三是用户主机如何通知路由器对某个组不再感兴趣、第四是路由器如何转发组播信息。
1、组播地址分配与MAC地址
在组播通信中,我们需要两种地址:一个IP组播地址和一个Ethernet组播地址。其中,IP组播地址标识一个组播组。由于所有IP数据包都封装在Ethernet帧中,所以还需要一个组播Ethernet地址。为使组播正常工作,主机应能同时接收单播和组播数据,这意味着主机需要多个IP和Ethernet地址。IP地址方案专门为组播划出一个地址范围,在IPv4中为D类地址,范围是224.0.0.0到239.255.255.255,并将D类地址划分为局部链接组播地址、预留组播地址、管理权限组播地址。
局部链接地址:224.0.0.0~224.0.0.255,用于局域网,路由器不转发属于此范围的IP包;
预留组播地址:224.0.1.0~238.255.255.255,用于全球范围或网络协议;
管理权限地址:239.0.0.0~239.255.255.255,组织内部使用,用于限制组播范围;
以太网组播MAC地址映射方法: IP组播帧都使用以0X0100.5EXX.XXXX的24位前缀开始的MAC层地址,但只有其中的一半MAC地址可以被IP组播使用,剩下的MAC地址空间的23位作为第三层IP组播地址进入第二层MAC地址的映射使用。由于第三层IP组播的28位地址不能映射到只有23位的可用MAC地址空间,造成有32:1的地址不明确,所以主机CPU必须对收到的每一个组播数据包做出判断。这增加了主机CPU的开销。此外,还产生抑制第二层局域网交换的组播扩散问题。
2、组管理协议IGMP
主机使用IGMP通知子网组播路由器,希望加入组播组;路由器使用IGMP查询本地子网中是否有属于某个组播组的主机。
1)加入组播组
当某个主机加入某一个组播组时,它通过“成员资格报告”消息通知它所在的IP子网的组播路由器,同时将自己的IP模块做相应的准备,以便开始接收来自该组播组传来的数据。如果这台主机是它所在的IP子网中第一台加入该组播组的主机,通过路由信息的交换,组播路由器加入组播分布树。
加入之后,接收方主机的网络接口卡开始侦听与组播组地址相关的组播MAC地址,路由器把发送方的信息包一跳一跳地发送到有接受者的网段上去,局域网路由器根据信息包中的组地址转换成与之相关的MAC地址,接收方侦听到这个地址,收到信息包后,将IP层的组播数据包取出传向上层。
2)退出组播组
在IGMP v1中,当主机离开某一个组播组时,它将自行退出。组播路由器定时使用“成员资格查询” 消息向IP子网中的所有主机的组地址(224.0.0.1)查询,如果某一组播组在IP子网中已经没有任何成员,那么组播路由器在确认这一事件后,将不再在子网中转发该组播组的数据。与此同时,通过路由信息交换,从特定的组播组分布树中删除相应的组播路由器。这种不通知任何人而悄悄离开的方法,使得组播路由器知道IP子网中已经没有任何成员的事件延时了一段时间,在IGMP v2.0中,当每一个主机离开某一个组播组时,需要通知子网组播路由器,组播路由器立即向IP子网中的所有组播组询问,从而减少了系统处理停止组播的延时。
3、组播转发
1)逆向路径转发(Reverse Path Forward: RPF)
当组播数据包到达路由器时,路由器作RPF检查,以决定是否转发或抛弃该数据包,若成功则转发,否则抛弃。RPF检查过程如下:
检查数据包的源地址,以确定该数据包经过的接口,是否在从源到此的路径上;
若数据包是从可返回源主机的接口上到达,则RPF检查成功,转发该数据包到输出接口表上的所有接口,否则RPF检查失败,抛弃该数据包。
2)组播转发缓存
对于每一个输入组播数据包进行RPF检查会导致较大的路由器性能损失。因此,建立组播转发缓存时,通常由组播路由确定RPF接口。然后将RPF接口变成组播转发缓存项的输入接口。一旦RPF检查程序使用的路由表发生变化,必须重新计算RPF接口;并更新组播转发缓存项。
3)TTL阈值
每当路由器转发组播数据包,IP包中的TTL(Time To Live)值都减1。若数据包的TTL减少到0,则路由器将抛弃该数据包。TTL阈值可用于组播路由器的各个接口,以防止在该接口上转发低于TTL阈值的组播数据包。这样可对组播的范围加以控制。
4)管理权限边界
除TTL阈值外,组播提供另一种称为管理权限的地址机制作为边界,以限制组播信息转发到域外。管理权限的组播地址是从239.0.0.0到239.255.255.255,这段地址被认为是本地分配(类似于单播中的192.168.xx.xx),不能用于Internet。这种机制使得在Intranet内部可重复使用组播地址,提高组播地址空间的利用率。
4、组播树
在单播模型中,数据包通过网络沿着单一路径从源主机向目标主机传递,但在组播模型中,组播源向某一组地址传递数据包,而这一地址却代表一个主机组。为了向所有接收者传递数据,一般采用组播分布树描述IP组播在网络里经过的路径。
组播分布树有两种基本类型 有源树和共享树。
1)有源树
有源树也称为基于信源的树或最短路径树(Shortest Path Tree:SPT)。它是以组播源为根构造的从根到所有接收者路径都最短的分布树。如果组中有多个组播源,则必须为每个组播源构造一棵组播树。由于不同组播源发出的数据包被分散到各自分离的组播树上,因此采用SPT有利于网络中数据流量的均衡。同时,因为从组播源到每个接收者的路径最短,所以端到端(end-to-end)的时延性能较好,有利于流量大、时延性能要求较高的实时媒体应用。SPT的缺点是:要为每个组播源构造各自的分布树,当数据流量不大时,构造SPT的开销相对较大。
2)共享树
共享树也称RP树(RPT),是指为每个组播组选定一个共用根(汇合点RP或核心),以RP为根建立的组播树。同一组播组的组播源将所要组播的数据单播到RP,再由RP向其它成员转发。目前,讨论最多同时也是最具代表性的两种共享树是Steiner树和有核树(CBT)。
共享树在路由器所需存储的状态信息的数量和路由树的总代价两个方面具有较好的性能。当组的规模较大,而每个成员的数据发送率较低时,使用共享树比较适合。但当通信量大时,使用共享树将导致流量集中及根(RP)附近的瓶颈。
smart790225 2003-09-28
  • 打赏
  • 举报
回复
三、组播的实现
在IP组播技术中有四个方面的问题:首先是发送给谁的问题、其次是接收方如何接收组播信息、第三是用户主机如何通知路由器对某个组不再感兴趣、第四是路由器如何转发组播信息。
1、组播地址分配与MAC地址
在组播通信中,我们需要两种地址:一个IP组播地址和一个Ethernet组播地址。其中,IP组播地址标识一个组播组。由于所有IP数据包都封装在Ethernet帧中,所以还需要一个组播Ethernet地址。为使组播正常工作,主机应能同时接收单播和组播数据,这意味着主机需要多个IP和Ethernet地址。IP地址方案专门为组播划出一个地址范围,在IPv4中为D类地址,范围是224.0.0.0到239.255.255.255,并将D类地址划分为局部链接组播地址、预留组播地址、管理权限组播地址。
局部链接地址:224.0.0.0~224.0.0.255,用于局域网,路由器不转发属于此范围的IP包;
预留组播地址:224.0.1.0~238.255.255.255,用于全球范围或网络协议;
管理权限地址:239.0.0.0~239.255.255.255,组织内部使用,用于限制组播范围;
以太网组播MAC地址映射方法: IP组播帧都使用以0X0100.5EXX.XXXX的24位前缀开始的MAC层地址,但只有其中的一半MAC地址可以被IP组播使用,剩下的MAC地址空间的23位作为第三层IP组播地址进入第二层MAC地址的映射使用。由于第三层IP组播的28位地址不能映射到只有23位的可用MAC地址空间,造成有32:1的地址不明确,所以主机CPU必须对收到的每一个组播数据包做出判断。这增加了主机CPU的开销。此外,还产生抑制第二层局域网交换的组播扩散问题。
2、组管理协议IGMP
主机使用IGMP通知子网组播路由器,希望加入组播组;路由器使用IGMP查询本地子网中是否有属于某个组播组的主机。
1)加入组播组
当某个主机加入某一个组播组时,它通过“成员资格报告”消息通知它所在的IP子网的组播路由器,同时将自己的IP模块做相应的准备,以便开始接收来自该组播组传来的数据。如果这台主机是它所在的IP子网中第一台加入该组播组的主机,通过路由信息的交换,组播路由器加入组播分布树。
加入之后,接收方主机的网络接口卡开始侦听与组播组地址相关的组播MAC地址,路由器把发送方的信息包一跳一跳地发送到有接受者的网段上去,局域网路由器根据信息包中的组地址转换成与之相关的MAC地址,接收方侦听到这个地址,收到信息包后,将IP层的组播数据包取出传向上层。
2)退出组播组
在IGMP v1中,当主机离开某一个组播组时,它将自行退出。组播路由器定时使用“成员资格查询” 消息向IP子网中的所有主机的组地址(224.0.0.1)查询,如果某一组播组在IP子网中已经没有任何成员,那么组播路由器在确认这一事件后,将不再在子网中转发该组播组的数据。与此同时,通过路由信息交换,从特定的组播组分布树中删除相应的组播路由器。这种不通知任何人而悄悄离开的方法,使得组播路由器知道IP子网中已经没有任何成员的事件延时了一段时间,在IGMP v2.0中,当每一个主机离开某一个组播组时,需要通知子网组播路由器,组播路由器立即向IP子网中的所有组播组询问,从而减少了系统处理停止组播的延时。
3、组播转发
1)逆向路径转发(Reverse Path Forward: RPF)
当组播数据包到达路由器时,路由器作RPF检查,以决定是否转发或抛弃该数据包,若成功则转发,否则抛弃。RPF检查过程如下:
检查数据包的源地址,以确定该数据包经过的接口,是否在从源到此的路径上;
若数据包是从可返回源主机的接口上到达,则RPF检查成功,转发该数据包到输出接口表上的所有接口,否则RPF检查失败,抛弃该数据包。
2)组播转发缓存
对于每一个输入组播数据包进行RPF检查会导致较大的路由器性能损失。因此,建立组播转发缓存时,通常由组播路由确定RPF接口。然后将RPF接口变成组播转发缓存项的输入接口。一旦RPF检查程序使用的路由表发生变化,必须重新计算RPF接口;并更新组播转发缓存项。
3)TTL阈值
每当路由器转发组播数据包,IP包中的TTL(Time To Live)值都减1。若数据包的TTL减少到0,则路由器将抛弃该数据包。TTL阈值可用于组播路由器的各个接口,以防止在该接口上转发低于TTL阈值的组播数据包。这样可对组播的范围加以控制。
4)管理权限边界
除TTL阈值外,组播提供另一种称为管理权限的地址机制作为边界,以限制组播信息转发到域外。管理权限的组播地址是从239.0.0.0到239.255.255.255,这段地址被认为是本地分配(类似于单播中的192.168.xx.xx),不能用于Internet。这种机制使得在Intranet内部可重复使用组播地址,提高组播地址空间的利用率。
4、组播树
在单播模型中,数据包通过网络沿着单一路径从源主机向目标主机传递,但在组播模型中,组播源向某一组地址传递数据包,而这一地址却代表一个主机组。为了向所有接收者传递数据,一般采用组播分布树描述IP组播在网络里经过的路径。
组播分布树有两种基本类型 有源树和共享树。
1)有源树
有源树也称为基于信源的树或最短路径树(Shortest Path Tree:SPT)。它是以组播源为根构造的从根到所有接收者路径都最短的分布树。如果组中有多个组播源,则必须为每个组播源构造一棵组播树。由于不同组播源发出的数据包被分散到各自分离的组播树上,因此采用SPT有利于网络中数据流量的均衡。同时,因为从组播源到每个接收者的路径最短,所以端到端(end-to-end)的时延性能较好,有利于流量大、时延性能要求较高的实时媒体应用。SPT的缺点是:要为每个组播源构造各自的分布树,当数据流量不大时,构造SPT的开销相对较大。
2)共享树
共享树也称RP树(RPT),是指为每个组播组选定一个共用根(汇合点RP或核心),以RP为根建立的组播树。同一组播组的组播源将所要组播的数据单播到RP,再由RP向其它成员转发。目前,讨论最多同时也是最具代表性的两种共享树是Steiner树和有核树(CBT)。
共享树在路由器所需存储的状态信息的数量和路由树的总代价两个方面具有较好的性能。当组的规模较大,而每个成员的数据发送率较低时,使用共享树比较适合。但当通信量大时,使用共享树将导致流量集中及根(RP)附近的瓶颈。
smart790225 2003-09-28
  • 打赏
  • 举报
回复
IP组播技术
近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网络视频会议、网络音频/视频广播、股市行情发布、多媒体远程教育、大规模协同计算等。这就带来了带宽的急剧消耗和网络拥挤问题。为了缓解网络瓶颈,人们提出各种方案,其中一种是采用IP Multicast(组播、多播或多路广播)技术,它是一种能最大限度利用现有带宽的技术。比较而言,IP组播技术有其独特的优越性,在组播网络中,即使用户数量成倍增长,主干带宽不需要随之增加。
一、IP组播发展简史
20世纪80年代中期,斯坦福大学实施了第一次多目的通话,博士生S. E. Deering发表Host group: A multicast extension to the Internet Protocol (RFC0966) 和Host extensions for IP Multicasting (RFC0988) 两篇论文。提出了IP组播的可能性。
1988年,D. Waltzman, C. Portridge, S. E. Deering发表题为《距离向量组播路由协议》的文章(RFC1075),它是组播路由协议的首次实践;
1991年12月,S. E. Deering发表了他的博士论文《数据报互连网络中的组播路由》(RFC1112)。它奠定了组播网络体系结构和路由协议的基础。该文也成为Internet组管理协议(IGMP)的原型;
1994年3月,形成了OSPF协议的扩展协议MOSPF(RFC1584);
1995年,Cisco公司开始销售支持组播的路由器和交换机
1997年11月,组管理协议IGMPv2得到IETF的批准,成为标准(RFC2336);
1998年6月,评估可靠组播传输协议RMTP的IETF标准出台(RFC2357);
1998年7月,在制定IPv6地址体系标准时,确定IPv6组播地址分配方案(RFC2373),这为组播技术在下一代Internet上的应用做出了必要的准备;
2000年底2001年初,人们着手制定各种组播MIB库,这标志组播技术正向可管理、可控制方向发展。
二、组播网络的体系结构
组播网络体系结构包括:组播的基本工作原理、实现组播的条件、组播的地址分配方案及与MAC地址映射、Internet组管理协议。
1、组播的工作原理
组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的,同时的)的网络技术。组播源把数据包发送到特定组播组,而只有属于该组播组的地址才能接收到数据包。简单地说,
主机通过使用INTERNET组管理协议加入野火所个组中,并且可以动态离开组,即成员关系常有变化,路由器跟踪这种关系并试图形成一条到达组播成员的无回路路径。组播路有些已用于得到正在使用的组播组的路径上那些路由器,以及到达这些组播组的最佳路径信息。一旦报文到达目标LAN,该报文就有可能泛洪或转发到主机。三种传输方式比较如下:
单播(Unicast)传输:在发送者和每一接收者之间需要单独的数据信道。如果一台主机同时给很少量的接收者传输数据,一般没有什么问题。但如果有大量主机希望获得数据包的同一份拷贝时却很难实现。这将导致发送者负担沉重、延迟长、网络拥塞。为保证一定的服务质量需增加硬件和带宽。
组播(Multicast)传输:它提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络。
广播(Broadcast)传输:是指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播意味着网络向子网主机都投递一份数据包,不论这些主机是否乐于接收该数据包。广播的使用范围非常小,只在本地子网内有效,因为路由器会隔离广播通信。广播传输增加非接收者的开销。
2、实现IP组播的前提条件
实现IP组播传输,组播源和接收者以及两者之间的下层网络都必须支持组播。即主机的TCP/IP实现支持发送和接收IP组播;主机的网络接口支持组播;有一套用于加入、离开、查询的组管理协议,即IGMP(v1,v2);有一套IP地址分配策略,并能将第三层IP组播地址映射到第二层MAC地址;支持IP组播的应用软件;所有介于组播源和接收者之间的路由器、交换机均需支持组播;Cisco的路由器不仅支持DVMRP、PIM路由协议、IGMP组管理协议,而且支持Cisco专有Cisco组管理协议CGMP,对于不支持IP组播传输的中间路由器采用IP隧道(Tunneling)技术作为过渡方案。
Skt32 2003-09-27
  • 打赏
  • 举报
回复
组播动态链接库
作者:srh666 网址: 日期:2003-1-7


  使用该dll,可以以组播的形式发送接受数据流,
http://www.csdn.net/cnshare/soft/15/15487.shtm
sheerfish999 2003-09-27
  • 打赏
  • 举报
回复
我理解是对特定的组进行广播。
wudid007 2003-09-27
  • 打赏
  • 举报
回复
还请各位高手指点指点呀!
bb123456789 2003-09-27
  • 打赏
  • 举报
回复
关注!!!

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧