多类型媒体数据网络地址转换穿越方法、终端及系统与流程

文档序号:14993532发布日期:2018-07-20 23:01阅读:187来源:国知局

本发明涉及网络技术领域。更具体地,涉及一种多类型媒体数据网络地址转换穿越方法、终端及系统。



背景技术:

nat(networkaddresstranslation,网络地址转换)是一种在ip分组通过路由器或防火墙时重写源ip地址或/和目的ip地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有ip地址访问因特网的私有网络中。

nat穿越是广泛用于p2p(pointtopoint,点对点)领域的通信方式。在视频会议过程中,nat穿越也在内外网消息通信中起到了至关重要的作用。平台服务器之间、与会终端之间以及平台服务器和与会终端之间都可能存在信令、多媒体数据等信息的nat穿越。在p2p音视频通话的过程中,由于通话的两个终端对于公网来说都位于nat后面,也需要通过nat穿越来实现音视频通话。

nat有4种不同的类型:fullcone(完全圆锥型))、addressrestrictedcone(地址限制圆锥型)、portrestrictedcone(端口限制圆锥型)和symmetric(对称形),其中,fullcone、addressrestrictedcone和portrestrictedcone这三种类型又统称为conenat(圆锥形nat)。通常对于symmetric(对称形)nat认为是不可实现穿越的,圆锥形nat是可以实现穿越的。

目前,对于nat穿越比较成熟的是ice(interactiveconnectivityestablishment,互动式连接建立)框架(rfc5245)。ice框架实现nat穿越基于两个协议:stun(simpletraversalofudpovernats,nat的udp简单穿越)(rtc5389)和turn(traversalusingrelaynat,通过中继方式(中继方式即relay方式,中继转发即relay转发,中继服务器即relay服务器)穿越nat)(rtc5766)。如图1所示,ice在p2p音视频通话中的nat穿越大致流程如下:

(1)终端a收集所有的ip地址,并找出其中可以从stun服务器和turn服务器收到流量的地址;

(2)终端a向stun服务器发送一份地址列表,然后按照排序的地址列表向终端b发送启动信息,目的是实现节点间的通信;

(3)终端b向启动信息中的每一个地址发送一条stun请求;

(4)终端a将第一条接收到的stun请求的回复信息发送给终端b;

(5)终端b接到stun回复后,从中找出那些可在终端a和终端b之间实现通信的地址;

(6)利用地址列表中的排序列最高的地址进行进一步的终端间通信;

(7)数据传输通道建立成功,开始媒体数据传输。

以p2p音视频通话为例,需要传输的共有audio、video、rtp和rtcp这四种类型的媒体数据,ice方式中需要针对每一种类型的媒体数据分别建立一个数据传输通道,所以一个完整的ice协商流程会重复以上步骤四次。因此,ice方式的流程交互太多,一个标准的p2p音视频通话,完整的ice协商流程通话双方终端需要交换80个信令,过多的信令交互会降低媒体接续的成功率,尤其是在弱网的情况下。另外,nat具有时效性,在经过一段时间后会更改在nat上映射的公网地址或端口。为了保证通话双方终端的媒体能正常接续,ice方式的解决方法是做re-ice,即重新执行一遍完整的ice协商流程,比较费时且过程繁复。

因此,需要提供一种流程优化的多类型媒体数据网络地址转换穿越方法、终端及系统。



技术实现要素:

本发明的目的在于提供一种流程优化的多类型媒体数据网络地址转换穿越方法、终端及系统。

为达到上述目的,本发明采用下述技术方案:

本发明第一方面提供了一种多类型媒体数据网络地址转换穿越方法,包括:

处于使用网络地址转换设备的私网中的两个终端建立双向数据传输通道,所述双向数据传输通道包括两个单向数据传输通道,每一单向数据传输通道为点对点单向数据传输通道或中继转发单向数据传输通道;

两个终端在数据包包头中添加数据类型标识信息,使用所述双向数据传输通道传输各类型的媒体数据。

优选地,所述建立终端之间的双向数据传输通道进一步包括:

两个终端分别获取对方的私网地址和公网地址;

两个终端分别向对方和中继服务器发送绑定消息,并根据收到绑定回应消息的时序建立本方到对方的点对点单向数据传输通道或中继转发单向数据传输通道。

优选地,所述两个终端分别获取对方的私网地址和公网地址进一步包括:

两个终端中的第一终端从中继服务器获取第一终端的公网地址,通过信令服务器向第二终端发送携带第一终端私网地址和公网地址的请求信息;

第二终端从中继服务器获取第二终端的公网地址,通过信令服务器向第一终端发送携带第二终端私网地址和公网地址的请求回应信息。

优选地,该方法还包括:终端检测到对方的公网地址改变时对对方的用户id进行合法性校验,若合法性校验通过则更新对方的公网地址。

本发明第二方面提供了一种多类型媒体数据网络地址转换穿越终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明第一方面提供的多类型媒体数据网络地址转换穿越方法。

本发明第三方面提供了一种多类型媒体数据网络地址转换穿越系统,包括处于使用网络地址转换设备的私网中的两个终端,所述两个终端建立的双向数据传输通道包括两个单向数据传输通道,每一单向数据传输通道为点对点单向数据传输通道或中继转发单向数据传输通道;所述两个终端在数据包包头中添加数据类型标识信息,使用所述双向数据传输通道传输各类型的媒体数据。

优选地,该系统还包括中继服务器;所述两个终端分别获取对方的私网地址和公网地址;所述两个终端分别向对方和中继服务器发送绑定消息,并根据收到绑定回应消息的时序建立本方到对方的点对点单向数据传输通道或中继转发单向数据传输通道。

优选地,该系统还包括信令服务器;所述两个终端中的第一终端从中继服务器获取第一终端的公网地址,通过信令服务器向第二终端发送携带第一终端私网地址和公网地址的请求信息;第二终端从中继服务器获取第二终端的公网地址,通过信令服务器向第一终端发送携带第二终端私网地址和公网地址的请求回应信息。

优选地,所述两个终端检测到对方的公网地址改变时对对方的用户id进行合法性校验,若合法性校验通过则更新对方的公网地址。

本发明的有益效果如下:

本发明所述技术方案优化了nat穿越的流程,极大的减少了nat穿越中信令协商的交互,提高了nat穿越的效率和成功率,并加快了视频通话的首帧显示。进一步,在终端改变公网地址的情况下,本发明可高效快捷地实现媒体无缝接续。

附图说明

下面结合附图对本发明的具体实施方式作进一步详细的说明;

图1示出ice方式的网络地址转换穿越的示意图。

图2示出本发明实施例提供的多类型媒体数据网络地址转换穿越方法的流程图。

图3示出本发明实施例提供的多类型媒体数据网络地址转换穿越终端的示意图。

图4示出本发明实施例提供的多类型媒体数据网络地址转换穿越系统的信令流程图。

具体实施方式

为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。

如图2所示,本发明的一个实施例提供了一种多类型媒体数据nat穿越方法,包括:

处于使用nat设备的私网中的两个终端建立双向数据传输通道,双向数据传输通道包括两个单向数据传输通道,每一单向数据传输通道为点对点单向数据传输通道或relay转发单向数据传输通道,即可以两个单向数据传输通道均为点对点单向数据传输通道,也可以两个单向数据传输通道均为relay转发单向数据传输通道,或者一个是点对点单向数据传输通道、另一个是relay转发单向数据传输通道;

两个终端在数据包包头中添加数据类型标识信息,使用双向数据传输通道传输各类型的媒体数据,即,双向数据传输通道中的每一个单向数据传输通道均作为一个复合通道,用于传输不同类型的多种媒体数据。

本实施例提供的多类型媒体数据nat穿越方法优化了nat穿越的流程。由于采用复合通道,极大的减少了nat穿越中信令协商的交互,提高了nat穿越的效率和成功率。由于两个终端之间的双向数据传输通道中的两个单向数据传输通道可以不同,使得两个终端分别选择时效高的方式的单向数据传输通道,进而加快视频通话的首帧显示成为可能。

在具体实施时,本实施例中建立终端之间的双向数据传输通道的方法具体为:两个终端分别获取对方的私网地址和公网地址;两个终端分别向对方和relay服务器发送绑定消息,并根据收到绑定回应消息的时序建立本方到对方的点对点单向数据传输通道或relay转发单向数据传输通道。这样,两个终端可分别选择时效高的方式的单向数据传输通道,加快了视频通话的首帧显示。

在具体实施时,本实施例中两个终端分别获取对方的私网地址和公网地址的方法具体为:

两个终端中的第一终端从relay服务器获取第一终端的公网地址,通过信令服务器向第二终端发送携带第一终端私网地址和公网地址的请求信息;

第二终端从relay服务器获取第二终端的公网地址,通过信令服务器向第一终端发送携带第二终端私网地址和公网地址的请求回应信息。

由此可见,本实施例中的relay服务器集成了ice方式中stun服务器和turn服务器的功能。另外,本领域技术人员可以理解的是,各终端均已预先在信令服务器中注册,信令服务器可以连接到各终端。信令服务器和relay服务器均位于公网中。

在具体实施时,本实施例提供的多类型媒体数据nat穿越方法还包括:终端检测到对方的公网地址改变时对对方的用户id进行合法性校验,若合法性校验通过则更新对方的公网地址。这样,在终端改变公网地址的情况下,可高效快捷地实现媒体无缝接续。

本发明的另一个实施例提供了一种多类型媒体数据网络地址转换穿越终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行程序时实现上述多类型媒体数据网络地址转换穿越方法。

如图3所示,以本实施例提供的多类型媒体数据网络地址转换穿越终端为计算机系统为例,其包括中央处理单元(cpu),其可以根据存储在只读存储器(rom)中的程序或者从存储部分加载到随机访问存储器(ram)中的程序而执行各种适当的动作和处理。在ram中,还存储有计算机系统操作所需的各种程序和数据。cpu、rom以及ram通过总线被此相连。输入/输入(i/o)接口也连接至总线。

以下部件连接至i/o接口:包括键盘、鼠标等的输入部分;包括诸如液晶显示器(lcd)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至i/o接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。

特别地,提据本实施例,上文流程图描述的过程可以被实现为计算机软件程序。例如,本实施例包括一种计算机程序产品,其包括有形地包含在计算机可读介质上的计算机程序,上述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。

附图中的流程图和示意图,图示了本实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或示意图中的每个方框可以代表一个模块、程序段或代码的一部分,上述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,示意图和/或流程图中的每个方框、以及示意和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包数据传输通道建立单元和数据包封装单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。例如,数据包封装单元还可以被描述为“数据类型标识信息添加单元”。

作为另一方面,本实施例还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中上述终端中所包含的非易失性计算机存储介质,也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当上述一个或者多个程序被一个终端执行时,使得上述终端:与处于使用网络地址转换设备的私网中的另一个终端建立双向数据传输通道,该双向数据传输通道包括两个单向数据传输通道,每一单向数据传输通道为点对点单向数据传输通道或中继转发单向数据传输通道;

在数据包包头中添加数据类型标识信息,使用双向数据传输通道传输各类型的媒体数据。

本发明的另一个实施例提供了一种多类型媒体数据nat穿越系统,如图4所示,本实施例提供的多类型媒体数据nat穿越系统的信令流程如下:

假设场景为终端a和终端b要进行p2p音视频通话,则需要传输的共有audio、video、rtp和rtcp这四种类型的媒体数据。本实施例中的relay服务器集成了ice方式中stun服务器和turn服务器的功能。另外,各终端均已预先在信令服务器中注册,信令服务器可以连接到各终端。信令服务器和relay服务器均位于公网中,终端a和终端b分别通过各自所处的私网使用的nat设备(nat路由器或nat防火墙等,图4中未示出)连接公网。

具体的信令流程如下:

终端a向公网的relay服务器发送获取公网地址请求,relay服务器返回终端a的公网地址(终端a还可获得自己的公网端口),同时终端a获得自己的私网地址(终端a还可获得自己的私网端口);

终端a通过信令服务器将携带终端a的私网地址和公网地址的请求信息发送至终端b,例如:终端a向信令服务器发送携带终端a的私网地址和公网地址及终端b的用户id的请求信息,信令服务器根据终端b的用户id将请求信息转发至终端b;

终端b在收到请求信息后,向公网的relay服务器发送获取公网地址请求,relay服务器返回终端b的公网地址(终端b还可获得自己的公网端口),同时终端b获得自己的私网地址(终端b还可获得自己的私网端口);

终端b通过信令服务器将携带终端b的私网地址和公网地址的请求回应信息发送至终端a;

终端a开始并行地向relay服务器和终端b发送绑定消息(bind)进行媒体通道协商,relay服务器和终端b收到绑定消息后,向终端a回应绑定回应消息(bindresponse);与此同时,终端b也向relay服务器和终端a发送绑定消息(bind)进行媒体通道协商,relay服务器和终端a收到绑定消息后,向终端b回应绑定回应消息(bindresponse);

当终端a收到终端b的bindresponse后,通过反向解析确认终端b的真实公网地址。对于终端a收到bindresponse的情况,有如下几种处理方式:

如果终端a只收到终端b的bindresponse,那么终端a建立终端a到终端b的点对点单向数据传输通道,终端a开始向终端b的公网地址发送媒体数据(若出现终端a和终端b在一个私网中的特殊情况,终端a可以向终端b的私网地址发送媒体数据);

如果终端a只收到relay服务器的bindresponse,那么终端a建立终端a到终端b的relay转发单向数据传输通道,终端a开始向relay服务器发送媒体数据,由relay服务器向终端b进行relay转发;

如果终端a收到了终端b和relay服务器的bindresponse,则终端a根据收到的时间先后顺序,若终端b的bindresponse先到则终端a建立终端a到终端b的点对点单向数据传输通道,若relay服务器的bindresponse先到则终端a建立终端a到终端b的relay转发单向数据传输通道,然后终端a开始向终端b或relay服务器发送媒体数据,这样的优点是尽早让终端b收到媒体数据,加快首帧显示,实现秒开;

终端b处理其收到的bindresponse的流程与终端a相同,这样,终端a和终端b分别建立了终端a到终端b的单向数据传输通道和终端b到终端a的单向数据传输通道,终端a和终端b之间的双向数据传输通道建立完成。

其中,媒体数据的发送使用复合通道,终端a和终端b在数据包包头中添加数据类型标识信息来区分audio、video、rtp和rtcp等不同类型的数据。不同于ice的标准流程,对这四种媒体类型分别建立不同的通道进行协商,信令交互减少到16条,这样可以极大的减少协商时间,提高nat穿越的效率和成功率。

对于协商和通话过程中终端a的公网地址或端口改变的情况下,终端b校验通道id的合法性后,更新终端a对应的公网地址即可,无需重新进行整个nat穿越流程的协商

在协商和媒体传输的过程中,如果终端a或终端b检测到对方的公网地址发生了改变,终端a或终端b通过对对方的用户id进行合法性校验,若合法性校验通过则更新对方的公网地址,继续发送媒体数据时直接发到更新后的对方的公网地址。其中,终端a和终端b均可知晓对方的用户id。而ice标准流程对于这种情况会做re-ice,重新协商媒体通道。相比之下,本实施例可高效快捷地实现媒体无缝接续。

在本发明的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

还需要说明的是,在本发明的描述中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于本领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1