本发明涉及通信,尤其涉及一种rtc代理方法和系统。
背景技术:
1、在rtc(real-time communication,实时通信)通信的场景,通常会用到nat(network address translation),它可以将私有网络中的ip地址转换为公共网络中的ip地址,从而实现多个设备共享一个公共ip地址的功能。然而,在某些情况下,nat的工作方式可能导致symmetric nat(对称型nat)的出现。symmetric nat是指每个内部ip地址与外部ip地址之间建立的映射是唯一的,而不是像其他类型的nat那样固定映射。symmetric nat的出现会导致p2p打洞失败,即两个对等点(peer)之间无法实现通信。
2、为解决symmetric nat导致p2p(point to point)打洞失败的问题,现有技术中通常使用turn(traversal using relay nat)。turn是一种网络协议,主要用于在公网中穿透nat(网络地址转换)设备,以便实现端到端的数据传输。如图1所示,用户peer a和用户peerb之间通过中间的turn的代理,实现通信。
3、但是采用turn仍会存在通信质量差甚至中断的情况,导致用户体验较差,例如(1)如果peer a和peer b距离很远,并且turn的地址位置远离用户,a和b即使能通信,但是因为距离长,导致物理延时或丢包比较大,用户体验较差;(2)turn通常是固定单独的点,如果turn出现问题,会导致无法全局问题,比如数据传输的中断或延迟,从而影响整个通信系统的性能和稳定性。
技术实现思路
1、为了解决相关的rtc通信中turn通信质量差和稳定性低,导致用户体验较差的问题,本发明提供一种rtc代理方法和系统,通过turn与turn的级联以及多点部署,提高了通信质量和稳定性,提升了用户体验。
2、本申请实施例提供了一种rtc代理方法,应用于rtc代理系统,所述rtc代理系统包括管理服务器和与所述管理服务器通信连接的多个turn服务器,
3、所述管理服务器响应于通信请求,构建两个通信端点之间的通信路径,所述通信请求包括两个通信端点的ip地址,所述通信路径为至少三个所述turn服务器所形成的信息传输路径;
4、所述多个turn服务器根据所述通信路径实现所述两个通信端点通信。
5、采用上述技术方案,通过turn与turn的级联,缩短了绝对的物理距离,降低了物理的延时或丢包,提高了通信质量,从而提升了用户体验;并且由于turn是多点部署,择优选路,可避免因为单点故障,导致服务中断,提升了通信稳定性,从而进一步提升了用户体验。
6、在一些实施例中,所述多个turn服务器之间通过第一协议或第二协议通信,所述第一协议包括所述通信路径。
7、采用上述技术方案,通过第一协议将通信信息和地址信息传递给下一个turn,从而实现turn与turn的级联,且实现便捷。
8、在一些实施例中,所述第一协议为stun扩展协议,且所述stun扩展协议为在stun标准协议中增加地址属性,所述地址属性用于描述所述通信路径;
9、所述第二协议为stun标准协议。
10、在一些实施例中,当所述turn服务器接收到的所述第一协议中的所述通信路径为多跳的路径,则所述turn服务器新建客户端,并通过所述第一协议与下一个所述turn服务器连接;
11、当所述turn服务器接收到的所述第一协议中的所述通信路径的剩余跳数为一个,则所述turn服务器新建客户端,并通过所述第二协议与下一个所述turn服务器连接。
12、在一些实施例中,所述通信路径中首尾两个turn服务器分别为物理距离所述两个通信端点最近的turn服务器。
13、采用上述技术方案,通过对通信路径中首尾两个turn服务器位置的限定,一方面便于通信路径的计算,提高计算效率,从而加快通信连接,提升用户体验;另一方面,采用与通信端点分别最近的turn服务器,进一步提高了通信质量和稳定性,从而进一步提升了用户体验。
14、在一些实施例中,所述turn服务器探测所述系统中的其他turn服务器的状态信息,所述状态信息包括延时指标、丢包指标和抖动指标;
15、所述管理服务器根据所述多个turn服务器的状态信息构建所述通信路径,且所述通信路径为所述两个通信端点之间通信质量最优的路径。
16、在一些实施例中,所述管理服务器采用a*算法计算所述通信路径。
17、本申请实施例还提供了一种rtc代理系统,包括管理服务器和与所述管理服务器通信连接的多个turn服务器,
18、所述管理服务器用于响应于通信请求构建两个通信端点之间的通信路径,所述通信请求包括两个通信端点的ip地址,所述通信路径为至少三个所述turn服务器所形成的信息传输路径;
19、所述多个turn服务器用于根据所述通信路径实现所述两个通信端点通信。
20、采用上述技术方案,通过turn与turn的级联,缩短了绝对的物理距离,降低了物理的延时或丢包,提高了通信质量,从而提升了用户体验;并且由于turn是多点部署,择优选路,可避免因为单点故障,导致服务中断,提升了通信稳定性,从而进一步提升了用户体验。
21、本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上任一所述方法。
22、本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行以上任一所述方法的计算机程序。
23、本申请其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本申请说明书中的记载变的显而易见。
1.一种rtc代理方法,应用于rtc代理系统,其特征在于,所述rtc代理系统包括管理服务器和与所述管理服务器通信连接的多个turn服务器,
2.根据权利要求1所述的rtc代理方法,其特征在于,所述多个turn服务器之间通过第一协议或第二协议通信,所述第一协议包括所述通信路径。
3.根据权利要求2所述的rtc代理方法,其特征在于,所述第一协议为stun扩展协议,且所述stun扩展协议为在stun标准协议中增加地址属性,所述地址属性用于描述所述通信路径;
4.根据权利要求3所述的rtc代理方法,其特征在于,当所述turn服务器接收到的所述第一协议中的所述通信路径为多跳的路径,则所述turn服务器新建客户端,并通过所述第一协议与下一个所述turn服务器连接;
5.根据权利要求1所述的rtc代理方法,其特征在于,所述通信路径中首尾两个turn服务器分别为物理距离所述两个通信端点最近的turn服务器。
6.根据权利要求1所述的rtc代理方法,其特征在于,所述turn服务器探测所述系统中的其他turn服务器的状态信息,所述状态信息包括延时指标、丢包指标和抖动指标;
7.根据权利要求6所述的rtc代理方法,其特征在于,所述管理服务器采用a*算法计算所述通信路径。
8.一种rtc代理系统,其特征在于,包括管理服务器和与所述管理服务器通信连接的多个turn服务器,
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1-7任一所述方法的计算机程序。