AnyChat技术支持论坛

标题: 单组播技术(急急急...) [打印本页]

作者: 1106726839    时间: 2014-11-13 16:22
标题: 单组播技术(急急急...)
1、请问anychat中单播技术是点对点还是点对服务器?

2、若是点对服务器 则按照附件中文档的测试结果 当用户A采用单播时,增加接收端数量,此时用户A端检测到的上传速度成倍增长  这不符合点对服务器的方式

AnyChat IP组播开发指南.pdf

686.58 KB, 下载次数: 2


作者: admin    时间: 2014-11-13 16:31
您好,单播是指点对点,组播是指点对整个网络,参考:AnyChat IP组播示例程序及文档

当用户A采用单播时,增加接收端数量,此时用户A端检测到的上传速度成倍增长

这里是指当采用P2P模式时,A向B、C传输数据是单独传输,而不经过服务器,如果增加一个D用户,则A会再多传一路数据给D,一共要传输三路流(A->B、A->C、A->D),而如果是组播技术,则只需要传输一路流。
作者: 1106726839    时间: 2014-11-13 16:42
admin 发表于 2014-11-13 16:31
您好,单播是指点对点,组播是指点对整个网络,参考:AnyChat IP组播示例程序及文档


调用BRAC_SetSDKOption,使用“BRAC_SO_NETWORK_ MULTICASTPOLITIC”参数设置IP组播传输策略:               
0        执行服务器路由策略,禁止组播发送[默认]               
1        忽略服务器路由策略,只向组播组广播媒体流               
2        执行服务器路由策略,同时组播)

问题1、那此处的 0  是执行服务器路由策略 ,这里的服务器 是指什么呢?
问题2、当在禁用组播的情况下,可不可以实现由用户A发一份数据给服务器,有服务器发多份分别给其他用户呢?
作者: admin    时间: 2014-11-13 16:46
您好,服务器是指核心服务器,有关服务器路由策略,请参考:http://www.anychat.cn/faq/index. ... =180&artlang=zh

当在禁用组播的情况下,可不可以实现由用户A发一份数据给服务器,有服务器发多份分别给其他用户呢

可以,就是“服务器转发模式”,RoutingPolicy=1
作者: 1106726839    时间: 2014-11-13 16:49
按照网上查找的单播的定义,当接受端数量增加时,应该是增加了服务器的负担,客户端的上传流量与采用组播是没有区别的
作者: admin    时间: 2014-11-13 16:52
前面有说到,是P2P的情况下,数据不经过服务器。
这里是指当采用P2P模式时,A向B、C传输数据是单独传输,而不经过服务器
您那边现在是什么样的需求呢?有遇到什么问题吗?
作者: 1106726839    时间: 2014-11-13 17:01
admin 发表于 2014-11-13 16:52
前面有说到,是P2P的情况下,数据不经过服务器。
您那边现在是什么样的需求呢?有遇到什么问题吗?

是这样的,我们这边正在增加单组播功能,对于单播想采用服务器转发模式,刚刚看了你给的RoutingPolicy,我们这边设置的是2,应该是采用了P2P模式,现在改成1进行下测试,再看看是否达到希望的流量值,非常感谢您的帮助,谢谢啦
作者: 1106726839    时间: 2014-11-13 17:30
还要再问您一个问题:
1、组播开发指南.pdf中“当一方处于单播,其他人处于组播模式,此时单播模式下的用户无法接受到其他用户的视频”,这是为什么呢?
2、假设有4个人开会,4人均为256kbps,PoutingPolicy=1
   A)4人均为单播模式,则在用户A端监测到的上传流量和下载流量分别是多少?
   B)4人均为组播模式,则在用户A端监测到的上传流量和下载流量分别是多少?
   C)用户A为单播,其他人为组播,则在用户A端监测到的上传流量和下载流量分别是多少?
   D)用户A为组播,其他人为单播,则在用户A端监测到的上传流量和下载流量分别是多少?


作者: admin    时间: 2014-11-13 17:36
“当一方处于单播,其他人处于组播模式,此时单播模式下的用户无法接受到其他用户的视频

要接收组播数据,必须加入IP组播组才可以接收到数据,而处于单播模式时,是不会加入组播组的,所以就接收不到组播组里面的数据了。

您是否把AnyChat里面说的组播(IP组播)理解错了?理解成了业务上的组播(向一组人发送数据)?
作者: admin    时间: 2014-11-13 17:38
网上查找到了一段文字供参考:

IP组播(IP multicasting)是对硬件组播的抽象,是对标准IP网络层协议的扩展。它通过使用特 定的IP组播地址,按照最大投递的原则,将IP数据报传输到一个组播群组(multicast group)的主机集合。它的基本方法是:当某一个人向一组人发送数据时,它不必将数据向每一个人都发送数据,只需将数据发送到一个特定的预约的组地址,所有加入该组的人均可以收到这份数据。这样对发送者而言,数据只需发送一次就可以发送到所有接收者,大大减轻了网络的负载和发送者的负担。
作者: 廖斌    时间: 2014-11-14 13:57
您好,针对您的问题做以下回答。
“BRAC_SO_NETWORK_MULTICASTPOLITIC=1”该策略是忽略服务器路由策略,只向组播组广播媒体流,A用户设置了该策略后,那么只有跟A用户加入同一多播组的用户才能接收到A的音视频数据。

作者: 廖斌    时间: 2014-11-14 14:06
问题1 :如果将用户1 的BRAC_SO_NETWORK_MULTICASTPOLITYC=2,是不是同时参会的其他人不论处于什么模式都能看到用户1的视频呢??


用户1设置BRAC_SO_NETWORK_MULTICASTPOLITYC=2并且从多播组中发送和接收数据,那么跟用户1处于同一个多播组的用户不论是何种模式都能收到用户1的数据。
问题2: 在问题1 设置的情况下,用户1端 如果监测流量 ,是不是发送了  两份  视频数据呢??

如果其他人员跟A处于同一个多播组的话,只会发送一份数据;如果有人不在同一个多播组的话,那么是要向那个人发送一个额外的数据。


作者: 廖斌    时间: 2014-11-14 14:08
廖斌 发表于 2014-11-14 13:57
您好,针对您的问题做以下回答。
“BRAC_SO_NETWORK_MULTICASTPOLITIC=1”该策略是忽略服务器路由策略,只 ...
问题3:假设设置了组播策略为2,只设置了BRAC_MCFLAGS_JOINGROUP | BRAC_MCFLAGS_SENDDATA ,没有设置 BRAC_MCFLAGS_RECVDATA,此时是不是接受不到任何人的视频


策略2是执行服务器路由策略,同时组播,是可以接收到设置策略同样为2或者没有设置组播策略的用户视频数据。
作者: admin    时间: 2014-11-14 14:23
请问用户1端监测到是发了两份数据(一份发往组播地址,一份发往服务器)吗

是的,用户1端会发两份数据。
作者: admin    时间: 2014-11-14 14:49
可以不用再执行BRAC_MultiCastControl,当然了多执行一下也没有坏的影响。
作者: admin    时间: 2014-11-14 17:22
发送的数据都是一致的,不存在重新打包的问题。
作者: admin    时间: 2014-11-15 10:35
如果部分采用单播,部分采用组播,则必然是两份数据,一份是发给服务器(单播),一份是发给本地网络(组播)。
作者: admin    时间: 2014-11-15 11:18
目前组播都是在客户端来控制,服务器只处理单播的转发。
作者: admin    时间: 2014-11-15 15:21
您好,请提供一下客户端的日志信息,我们帮您分析一下,谢谢。




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3