`
little_rui
  • 浏览: 6855 次
社区版块
存档分类
最新评论
阅读更多
   在Internet上,多媒体业务诸如:流媒体,视频会议和视频点播等,正在成为信息传送的重要组成部分。点对点传输的单播方式不能适应这一类业务传输特性--单点发送多点接收,因为服务器必须为每一个接收者提供一个相同内容的IP报文拷贝,同时网络上也重复地传输相同内容的报文,占用了大量资源。在这种情况下组播(multicast)应运而生,它的出现解决了一个主机向特定的多个接收者发送消息的方法。1989年,IETF通过RFC1112,定义了Internet上的组播方式。
   主机组的成员可以动态变化,主机有权选择加入或者退出某个主机组。主机可以加入多个主机组,也可以向自己没有加入的主机组发送数据。主机组有两种:永久组和临时组。永久组的IP地址是周知的,由Internet管理机构分配,是保留地址。临时组的地址则使用除永久组地址外的非保留D类地址。
      IP组播分组在互联网上的转发由支持组播的路由器来处理。主机发出的IP组播分组在本子网内被所有主机组成员接收,同时与该子网直接相连的组播路由器会把组播报文 转发到所有包含该主机组成员的网络上。组播报文传递的范围由报文的生存期值(TTL, Time-to-Live)决定,如果TTL值等于或者小于设置的路由器端口TTL门限值(TTL Threshold),路由器将不再转发该报文。
单个数据流可以发送到多个客户端的组播能力已成为大多数多媒体应用的传输手段。组播技术利用一个IP地址使IP数据报文 发送到用户组。IP组播采用了特殊定义的目的IP地址和目的MAC地址。IGMP为客户端提供加入和离开组播组的方式。CGMP使路由器为交换机配置组播 转发表,并告诉交换机当前的组播成员。指派路由器根据对网络中的组播成员的分布和使用的不同采用密集模式DM或稀疏模式SM组播路由协议来构造组播的分布 树,而这个分布树将在源子网和组播组之间确定一条唯一路径以提高数据传输效率。
IP组播技术需要三层交换机,或路由器支持,通常应用于专用网络,如:教育网、**网以及企业内部网等,使用IP组播技术可以极大的降低数据发送方的带宽要求,最大的好处是可以让数据接收方的数量成千上万,而不会造成网络的阻塞。
AnyChatPlatform Core SDK V4.0新增了对IP组播技术的支持,下面介绍如何使用相关的API接口,典型的加入多播组,并向多播组发送数据的代码如下:

1.//设置本地组播策略
2.DWORD dwMultiCastPolitic = 1;
3.BRAC_SetSDKOption(BRAC_SO_NETWORK_MULTICASTPOLITIC,(constchar*)&dwMultiCastPolitic,sizeof(DWORD));
4.
5.//加入多播组
6.DWORD dwFlags = BRAC_MCFLAGS_JOINGROUP | BRAC_MCFLAGS_SENDDATA |BRAC_MCFLAGS_RECVDATA;
7.BRAC_MultiCastControl("224.2.3.4",9810, "",5, dwFlags);

上面的代码中“dwFlags”标志指示加入多播组“224.2.3.4:9810”,本地的数据通过该多播组进行传输,同时,自己也从该多播组接收其它用户的音视频数据。

当需要本地发送组播数据时,设置本地组播策略是必须的,因为系统默认是采用服务器所配置的网络数据传输策略(AnyChatCoreServer.ini中的“RoutingPolicy”配置项)进行数据发送,如不设置本地组播策略,则不会向组播地址发送数据,设置之后,可以将本地的数据发送多个组播地址和端口,如下面的代码表示音视频数据将向“224.2.3.4:9810”、“224.2.3.4:9812”两个组播端口广播数据:

1.//设置本地组播策略
2.DWORD dwMultiCastPolitic = 1;
3.BRAC_SetSDKOption(BRAC_SO_NETWORK_MULTICASTPOLITIC,(constchar*)&dwMultiCastPolitic,sizeof(DWORD));
4.
5.//加入多播组
6.DWORD dwFlags = BRAC_MCFLAGS_JOINGROUP | BRAC_MCFLAGS_SENDDATA;
7.BRAC_MultiCastControl("224.2.3.4",9810, "",5, dwFlags);
8.BRAC_MultiCastControl("224.2.3.4",9812, "",5, dwFlags);
当系统有多块网卡,而需要向其中某一块网卡连接的网络进行组播时,可通过“BRAC_MultiCastControl”的第三个参数来指定即可,第三个参数是指定网卡的IP地址。
0
1
分享到:
评论

相关推荐

    zigbee 组播通讯

    在网络技术的应用并不是很多,网上视频会议、网上视频观看特别适合采用组播方式。因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分...

    C#音视频聊天技术源代码

    包含了音视频处理模块(采集、编解码)、流媒体管理模块(丢包重传、抖动平滑、动态缓冲)、流媒体播放模块(多路混音、音视频同步)以及P2P网络模块(NAT穿透、UPnP支持、IP组播支持)等多个子模块,封装了底层的...

    论文研究-基于IP网络的视频传输质量评测方法的实现 .pdf

    基于IP网络的视频传输质量评测方法的实现,谢轩,饶文碧,IP电视业务是IP网络上发展出来的新兴业务,它提供组播、点播等视频功能,而且结合通讯技术,使用户互动地参与视频节目。本文对IP视

    基于Java的视频会议系统(软件程序+WORD论文文档).zip

    用到多媒体技术(JAVA 多媒体框架JMF),视频和音频用TRP协议传输,用到Socket编程技术,多播技术。网络视频会议首先是基于网络传输的,那么就必然要依托于JAVA网络编程的相关知识。在这基础上,由于相关音频、视频...

    胜天通讯新型ADSL新片组帮助IPTV进入多媒体家庭

    美国胜天通讯有限公司(Centillium Communications)宣布,其用于局端(CO)的Maximus III 和Pharos III ADSL芯片组经优化后,可使全球服务提供商和电信公司的下一代视频及IPTV应用获得高清晰度效果。 凭借公司...

    iSee视频监控 v5.2

    iSee视频监控 v5.2 视频监控软件使用说明书 版权所有 翻录必究 2009年10月1日 Ver:01.01.05 注意事项 首先,感谢您选用我公司最新产品。 在...

    Java开发技术大全 电子版

    13.9.3组匹配的使用431 13.9.4检验E-mail的合法性432 13.10本章小结434 第5篇桌面程序开发 第14章GUI程序设计436 14.1GUI程序设计的基本概念436 14.1.1组件437 14.1.2布局管理437 14.1.3事件处理437 14.2...

    vc++ 开发实例源码包

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 FreeBird2011Dlg.h 主对话框类头文件 MultiGroup.h 多播组类头文件 UserLink.h 用户链表类头文件 ListenSocket.h 侦听接口...

    酒店安防监控设计方案.doc

    独有的网络多IP接入:可同时连接多台千眼巨人数字硬盘主机,在现场监看的多割 画面中,每个画面都可以来自不同主机的摄像机画面,可以有效把重要画面与次要画面 灵活组合监看,做到主次分明,且由于采用H.264的视频...

    vc++ 应用源码包_3

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...

    vc++ 应用源码包_1

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...

    vc++ 应用源码包_2

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...

    vc++ 应用源码包_6

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...

    全国首款指挥型智能安全头盔-防爆智能安全帽.pptx

    系统概述 多屏交互 系统管理平台 作业现场 智能穿戴设备 手持终端 智能手机 智能物联网标签 为企业提供具有定位、感知、预警和音视频通讯功能的一体化智能穿戴产品,以及基于公有云或私有云的全IP架构的"云+端"综合...

    vc++ 应用源码包_5

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...

    计算机网络系统设计解决方案.doc

    计算机网络系统设计解决方案 工业园区信息化是社会发展的必然趋势,工业园区除需建设自身的工业园区...采用虚拟化技术后,可以达到以下功能特点:从单播、组播 、单播/组播混合、吞吐量、转发能力等性能指标都是传统热

    中文版RFC,共456

    RFC2466 IP 版本6 管理信息基础:ICMPv6组 RFC2471 IPv6检测地址分配 RFC2474 IPv4与IPv6包头中差分服务字段(DS Field)的定义 RFC2475 分类业务的体系结构 RFC2492 IPv6 通过ATM网络 RFC2495 有关 DS1,E1,DS2,E2...

    RFC中文文档-txt

    RFC2466 IP 版本6 管理信息基础:ICMPv6组 RFC2471 IPv6检测地址分配 RFC2474 IPv4与IPv6包头中差分服务字段(DS Field)的定义 RFC2475 分类业务的体系结构 RFC2492 IPv6 通过ATM网络 RFC2495 有关 DS1,E1,DS2,E2...

    rfc中文文档目录,包含部分翻译

    RFC1822 使用具备Photuris技术的指定IBM专利的权利的授予 RFC1823_LDAP 应用程序界面 RFC1827_IP 密码安全有效载荷 (ESP) RFC1828_使用键控MD5进行IP鉴别 RFC1860_IPv4变量长度子网表 RFC1867 HTML中基于表单的文件...

    JAVA上百实例源码以及开源项目

    Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非...

Global site tag (gtag.js) - Google Analytics