音视频二次开发 IP组播技术

原创 2014年12月05日 11:39:11

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地址。

音视频技术 IP组播

在Internet上,多媒体业务诸如:流媒体,视频会议和视频点播等,正在成为信息传送的重要组成部分。点对点传输的单播方式不能适应这一类业务传输特性--单点发送多点接收,因为服务器必须为每一个接收者提供...
  • little_rui
  • little_rui
  • 2014年11月18日 17:55
  • 659

音视频SDK开发 IP组播技术

在Internet上,多媒体业务诸如:流媒体,视频会议和视频点播等,正在成为信息传送的重要组成部分。点对点传输的单播方式不能适应这一类业务传输特性--单点发送多点接收,因为服务器必须为每一个接收者提供...
  • little_rui
  • little_rui
  • 2015年01月09日 09:40
  • 731

IP组播技术介绍及实现例子

网上好不容易找到关于linux下组播的好例子,希望对读者有帮助,起到抛砖引玉的作用                             引 言 近年来,随着Internet的迅速...
  • sanmaoljh
  • sanmaoljh
  • 2015年12月03日 11:43
  • 552

IP组播技术综述 (2)

四、组播路由协议 要想在一个实际网络中实现组播数据包的转发,必须在各个互连设备上运行可互操作的组播路由协议。组播路由协议可分为三类:密集模式协议(如DVMRP,PIM-DM)、稀疏模式协议(如PIM-...
  • yufangbo
  • yufangbo
  • 2009年04月20日 16:57
  • 1011

IP组播技术的java实现

   最近一直想写一个类似于飞鸽传输那样的局域网传输软件,但对网络技术没有深入的了解,所以只能一点一点的搜寻相关的技术资料,今天找到 IP组播技术这篇文章,觉得挺有启发,就贴在这里,让大家一起来学习。...
  • gqm1982
  • gqm1982
  • 2007年06月23日 21:23
  • 4667

音视频SDK开发包涉及的技术要求

音视频SDK开发包涉及的技术要求 音视频软件开发,也叫音视频即时通信开发。随着互联网的发展,每天都有相当多的人在使用各种网络交流工具,如MSN,腾讯QQ,ICQ,新浪微博。 然而目前大部分网络交流...
  • ucvive
  • ucvive
  • 2017年10月12日 22:34
  • 139

TCP/IP 组播编程

组播描述   组播(Multicast)是网络一种点对多(one to many)的通信方式,通过报文复制完成网络中一台server对应多台接收者的高效数据传送。对其形象的比喻就是类似于广播电台和电...
  • dxpqxb
  • dxpqxb
  • 2014年08月06日 16:22
  • 1022

组播IP地址的使用范围规定

 组播报文的目的地址使用 d 类 ip 地址, 范围是从 224.0.0.0 到 239.255.255.255。d 类地址不能出现在 ip 报文的源 ip 地址字段。 224.0.0.0~...
  • shn_lee
  • shn_lee
  • 2014年01月13日 14:36
  • 3357

组播IP地址到底是谁的IP?

 组播IP地址到底是谁的IP? 组播IP地址是视频网站服务器的?还是ISP某个服务器的呢?加入组播组意思是通过这个有组播IP的服务器获取数据么? ...
  • u011555996
  • u011555996
  • 2017年06月06日 14:06
  • 562

网络直播,如何跳出组播的坑!

互联网上的直播,其数据传输方式都采用“单播”方式,所以大家在讨论直播技术时,少有人提及“组播”这个词。 然而,作为直播的组成部分,在广电有线电视、IPTV等应用中,“组播”依然承担着十分重要的作...
  • charleslei
  • charleslei
  • 2016年07月23日 09:10
  • 4732
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:音视频二次开发 IP组播技术
举报原因:
原因补充:

(最多只允许输入30个字)