专利名称:经过网络地址转换(nat)设备的媒体流传输的利记博彩app
技术领域:
本公开一般地涉及数字媒体网络,并且更具体地,涉及用于有效地进行通过支持网络地址转换(NAT)设备的数字媒体流传输的技术。
背景技术:
数字视频内容在传统的有线电视和电话网络上实时地流传输给客户端,服务提供商借助有线电视和电话网络这两者来向客户提供更加有吸引力和多样化的服务。因为唯一的网际协议(IP)地址是有限的资源,所以接收流传输的数字视频内容的客户端通常位于 NAT设备的后面。NAT设备一般在专用和公用地址空间之间重新映射IP地址,使得专用地址空间中的多个IP地址可以经由作为公用IP地址空间的一部分的单个IP地址被访问。从流服务器到客户端的数字视频内容实时流传输通常使用开放式系统互连(OSI) 模型的传输层(即第4层)的用户数据报协议(UDP),其中,OSI模型由国际标准化组织 (OSI)和互联网工程任务组(IETF)定义。另外,已经开发了称为UDP对网络地址转换器的简单穿越(STUN)的协议,其使能对被重新映射的IP地址和端口号的发现,并且,还使能(例如从流服务器到客户端的)入站UDP流量对NAT设备的穿越。STUN协议利用各种消息来建立使得UDP流量能够成功穿越NAT设备的状态信息。另外,诸如实时流传输协议(RTSP)之类的其它控制协议也被用来在服务器和客户端之间传递新的参数,以便使能实时流传输。 在视频流传输应用中,可能希望或有必要将视频流的源从一个流服务器切换至另一流服务器。在传统的系统中,将视频流从一个流服务器切换至另一流服务器触发根据STUN协议和另外的RTSP通知所生成的状态信息的改变,这可以是资源密集型操作。
发明内容
一种用于管理网络的客户端侧的客户端和该网络的流服务器侧的流服务器之间的媒体流传输的方法,其中,该客户端侧和该流服务器侧之间的通信要求网络地址转换 NAT,该方法涉及允许在多个流服务器之间共享相同的流服务器侧IP地址,使得流服务器能够同时使用该相同的IP地址来源发(source)不同的媒体会话。因为流服务器可以同时使用相同的IP地址来源发不同的媒体会话,所以媒体会话可以在不触发STUN信令或NAT 映射中的改变的情况下,从一个流服务器被切换到不同的流服务器。在一个实施例中,所建立的媒体会话的映射的知识被聚合以使得流服务器组内的每个活动的媒体会话的源流服务器是已知的。聚合的知识随后被用来确保完成每个上游消息的所意欲的目的。例如,聚合的知识被用来确保上游消息被提供给正在源发该媒体会话的流服务器,而不论是哪个流服务器接收到该消息。在另一实施例中,正在源发媒体会话的流服务器将该流服务器所特有的反馈IP 地址嵌入被下游发送至客户端的消息中。客户端从该消息提取反馈IP地址并且使用该反馈IP地址作为从客户端被上游发送至该流服务器的随后的实时控制协议(RTCP)消息的目的地IP地址。因为目的地IP地址是正在源发该媒体会话的流服务器所特有的,所以上游RTCP分组被直接地路由至对应的流服务器。本发明的其它方面和优点将从以下结合以示例方式图示出本发明原理的附图而进行的详细描述中显而易见。
图1图示出用于将数字媒体流传输至多个不同端用户地点的系统的实施例。图2A是由一个媒体流组成的媒体会话的逻辑示图,其中,媒体流仅由一个单向IP 流组成。图2B是由两个媒体流即MAIN媒体流和REPA^媒体流组成的媒体会话的逻辑示图,其中,MAIN媒体流具有单向的服务器至客户端RTP IP流和双向的RTCP IP流,而REPA^ 媒体流具有单向的服务器至客户端RTP IP流和双向的RTCP IP流。图3A图示出流服务器、主要控制模块、NAT设备和机顶盒(STB)之间的消息传送以及流服务器之一和STB之间的媒体会话。图;3B图示出在媒体会话已经被切换至不同的流服务器之后的和图3A中相同的媒体会话。图4A图示出将媒体会话ID、流服务器侧IP地址和流服务器侧端口号与正在源发媒体会话的流服务器相关联的媒体会话映射的表格的示例。图4B图示出在媒体会话已经被切换至不同的流服务器之后的图4A的表格。图5A图示出在使用MPEG-TS RTP来将数字视频内容流传输至STB的系统中的流服务器和STB之间经由NAT设备的消息传送。图5B图示出在媒体会话已经被切换到不同的流服务器之后的图5A的流服务器和 STB之间的消息传送。图6图示出图3A、图3B、图5A和图5B中所示的控制模块的实施例。图7图示出图3A、图3B、图5A和图5B中所示的流服务器的实施例。图8是用于管理网络的客户端侧的客户端与网络的流服务器侧的流服务器之间的媒体流传输的方法的处理流程图,其中,客户端侧和流服务器侧之间的通信要求NAT。在描述中,类似的标号用来标识类似的元素。
具体实施例方式图1图示出用于将数字媒体流传输至多个不同端用户地点102的系统100的实施例。该系统包括流服务器104、分发网络106、NAT设备108,以及各种端用户设备,诸如电话 110、机顶盒(STB) 112和个人计算机114,它们统称为“客户端”。在图1的实施例中,该系统能够提供从流服务器中的任一个流服务器向端用户设备中的任一个端用户设备提供数字视频内容流传输。例如,数字视频内容使用UDP/IP或实时传输(RTP)/UDP/IP上的运动图像专家组(MPEG)-2传输流(化)从流服务器被下游流传输至STB。在一个实施例中,媒体会话包括一个或多个媒体流,并且,媒体流包括一个或多个 IP流,其中,IP流通过在具体源IP地址和传输层端口号(在此简称为“端口号”)与具体目的地IP地址和目的地端口号之间流动的流量来定义。在MPEG-2TS UDP的情况中,仅存在一个媒体流,其仅包括一个IP流,即单向的服务器至客户端IP流。图2A是媒体会话10的逻辑示图,媒体会话10包括一个媒体流12,媒体流12仅包括一个单向IP流14。在MPEG-2TS RTP的情况中,可以存在多于一个的媒体流,其中,每个媒体流具有一个或多个IP流。在 MPEG-2TS RTP实现的一个实施例中,存在两个媒体流,MAIN(主要)媒体流和REPA^(修复)媒体流。MAIN媒体流具有单向的服务器至客户端RTP IP流和双向的RTCP IP流,而 REPA^流具有单向的服务器至客户端RTP IP流和双向的RTCP IP流。图2B是媒体会话 16的逻辑示图,媒体会话16包括两个媒体流即MAIN媒体流18和REPA^媒体流20。MAIN 媒体流具有单向的服务器至客户端RTP IP流22和双向的RTCP IP流M,而REPA^流具有单向的服务器至客户端RTP IP流沈和单向的RTCP IP流观。媒体会话的另外的媒体流包括例如前向纠错(FEC)媒体流和/或多个可伸缩视频编解码(SVC)媒体流。在一个实施例中,多个协议利用相同的IP地址和端口号组合。例如,STUN消息可以发送给与RTP IP 流和/或RTCP IP流相同的IP地址和端口号组合。在MPEG-2TS RTP的情况中,对于MAIN RTP IP流,没有上游消息被发送,但是STUN消息使用与该RTP IP流相同的服务器侧IP地址和端口号组合被发送。对于MAIN RTCP IP流,RTCP消息和STUN消息二者都被上游发送至同一服务器侧IP地址和端口号组合。这里所描述的用于管理客户端和服务器之间的媒体流传输的技术适用于这里所描述的媒体会话、媒体流和IP流。在图1的系统100中,流服务器104吸收数字视频内容,并且,将数字媒体视频流传输到分发网络106中。在一个实施例中,流服务器在物理上位于彼此的附近,例如,位于同一视频中心局(VHO)中,而在其它实施例中,流服务器位于不同的VHO中。流服务器104和端用户地点102之间的分发网络106可以是基于线缆的网络。可替换地,其它类型的分发网络可以包括例如数字用户线路(DSL)网络、被动式光网络(PON) 和无线接入网络。分发网络是基于分组的网络,并且,例如利用IP、以太网、ATM或其组合来进行数字视频内容通信。在基于分组的网络中,数字视频内容经由多播和单播来分发。多播通常涉及在包括导向不同客户端的多个分支的节点处复制分组。分支节点处的分组复制消除了在同一链路上发送同一内容的多个分组的需要。单播通常涉及节点(例如服务器和客户端)之间的点对点消息传送。点对点消息传送可以例如使用公知的基于源/目的地地址的协议(例如IP或以太网)来实现。通常,多播不受NAT的影响,但是多播被提及是要表明分发网络可以支持多播和单播这两者。分发网络106支持从流服务器104到端用户设备的数字视频内容的下游多播和单播。分发网络还支持从端用户设备到流服务器的上游多播消息传送。分发网络可以利用支持多播和单播的任意网络技术。端用户设备110、112和114是从分发网络接收数字视频内容并且将数字视频内容提供给视频显示设备(例如电视机)的系统。客户端可以体现为硬件、固件、软件或它们的任意组合。虽然在图1的实施例中,STB112接收来自流服务器104的数字视频内容,但是其它端用户设备可以接收来自流服务器的数字视频内容。客户端也可以供应其它功能,例如建立与流服务器的媒体会话。在一个实施例中,客户端管理网络层(层幻和传输层(层 4)通信。NAT设备108将端用户设备110、112和114的IP地址从专用地址空间中的IP地址重新映射到公用地址空间中的IP地址。具体地,对于从客户端侧到流服务器侧的上游方向的单播通信,NAT设备将端用户设备的IP地址和端口号映射到NAT设备的IP地址和端口号。对于给定的IP流,NAT设备的IP地址和端口号随后被用作上游传送至流服务器侧的分组中的源IP地址和端口号。对于从流服务器侧到客户端侧的下游方向上的通信,NAT 设备的IP地址和端口号被用作目的地IP地址和目的地端口号,并且NAT设备将目的地IP 地址和目的地端口号转换成对应端用户设备的IP地址和端口号。在典型的NAT操作中,所有流服务器产生的分组的源IP地址和端口号保持为未经修改的,以便穿过NAT设备。在图 1的示例中,媒体会话的IP流用IP地址和端口号的组合来标识,并且,NAT设备映射在流服务器侧(即,公用IP地址域)和客户端侧(即,专用IP地址域)之间的IP地址和端口号的组合。在NAT的极端形式(例如,对称式NAT)中,NAT设备仅将来自特定外部源IP地址 /端口组合的(流服务器到客户端的)入站流量传递给特定外部目的地IP地址/端口组合,其中该特定外部目的地IP地址/端口组合是先前已经经由例如STUN或另一协议而从外部源IP地址/端口组合进行出站消息传送检测到的。NAT设备本就执行过滤功能。艮口, NAT设备丢弃与已知的IP地址/端口号组合的简档(profile)不相匹配的入站分组,已知的IP地址/端口号组合是由NAT设备授权的,其中,该授权是出站消息检查功能并且是“η” 周期保活出入映射。在图1的示例中,媒体会话可以从流服务器104中的任一者中被发送或“源发”给端用户设备110、112和114中的任一者。多个流服务器的存在提供了源发媒体会话的灵活性。在某些情形下,希望或有必要将媒体会话的源从一个流服务器切换至不同的流服务器。 另外,希望在端用户设备处没有任何服务中断的情况下进行该切换。然而,在传统的流传输体系架构中,每个流服务器具有用于媒体流传输的不同IP地址,因此媒体会话中的切换需要控制平面信令来获知媒体会话两侧的IP地址和端口号组合。例如,将媒体会话从一个流服务器切换至另一流服务器需要明确的控制平面信令(例如RTSP和STUN信令),以便向客户端告知媒体会话的新的IP地址和端口号组合,并且,致使客户端利用信令来开启经过 NAT设备的路径。虽然切换一个媒体会话所需的控制平面信令在轻负荷的网络中可能不是无法承受的负担,但是例如在故障情形中可能需要的短时期内的大量媒体会话的迁移则可能花费很长一段时间,并且,可能导致服务中断。为了避免触发将媒体会话从一个流服务器切换至另一流服务器通常需要的控制平面信令(例如RTSP和STUN信令),在不改变服务器侧的IP地址和端口号的情况下,媒体会话从一个流服务器被切换至不同的流服务器。在一个实施例中,通过允许在多个流服务器之间共享相同的流服务器侧IP地址,使得流服务器可以同时使用相同的IP地址来源发不同的媒体会话,来在不改变媒体会话的服务器侧的IP地址和端口号的情况下,将媒体会话从一个流服务器切换至不同的流服务器。因为媒体会话切换至不同的流服务器不需要改变流服务器侧IP地址和端口号,所以该切换不会触发RTSP信令、STUN信令,或NAT映射中的任何改变。因为在多个流服务器之间共享相同的流服务器侧IP地址,所以将该共享的流服务器侧IP地址作为它们的目的地IP地址的上游消息可以被路由至流服务器中的任一个。 因此,与一个流服务器正在源发的媒体会话有关的上游消息可以被路由到流服务器组中的不同流服务器而不是该源发流服务器。如果因为接收流服务器不是正在源发该媒体会话所以该流服务器没有识别该媒体会话,则该消息可能被丢弃,并且,上游消息的所意欲的目的无法完成。另外,因为路由网络的动态特性,接收上游消息的流服务器可能随时间而改变。
为了确保上游消息能够完成它们的所意欲的目的,所建立的媒体会话的映射的知识被聚合,使得流服务器组内的每个活动媒体会话的源流服务器是已知的。聚合的知识随后被用来确保完成上游消息的所意欲的目的。例如,聚合的知识被用来确保上游消息被提供给对应的流服务器。在一个实施例中,流服务器被配置为预先处理上游消息来确保完成上游消息的所意欲的目的。例如,流服务器可以被配置为充当这样的代理,其确保接收的消息被直接或间接地提供给正在源发与该消息相对应的媒体会话的流服务器。具体地,聚合的知识可以用来识别正在源发与该上游消息相对应的媒体会话的流服务器。另外,流服务器可以被配置为处理与其它流服务器所源发的媒体会话相对应的消息,例如实时控制协议 (RTCP)报告消息,并且将处理后的数据提供给单独的日志记录服务器(logging server)。图3A图示出三个流服务器104、主要控制模块118、次要控制模块120、NAT设备 108和STB 112。流服务器、NAT设备和STB与参考图1所描述的那些类似,并且,通过分发网络(在图3中未示出)相互连接。流服务器被组织成流服务器组122,其包括三个流服务器、主要控制模块和次要控制模块。主要控制模块执行用于该组的各个控制功能,而次要控制模块充当对主要控制模块的备份。在图3A的实施例中,主要控制模块提供集中式控制功能,但是在其它实施例中,控制功能可以分布在流服务器中。在图3A的实施例中,各个流服务器共享相同的IP地址IP1,STB具有IP地址IP101,并且NAT设备具有IP地址IP2。在图3A的实施例中,流服务器和NAT设备的IP地址即IPl和IP2在公用IP地址空间中,并且STB的IP地址IPlOl在专用IP地址空间中。在一个实施例中,每个流服务器可以主有 (host)多于一个的IP地址。另外,有些IP地址可在流服务器之间共享,而其它IP地址是具体流服务器所特有的。图3A还图示出在UDP上的单个MPEG-2TS IP流的情况中的流服务器和STB之间经由NAT设备的消息传送。在图3A的实施例中,STUN用来支持流服务器和STB之间的通信,并且,RTSP用来控制从流服务器到STB的媒体的流传输。如在本领域中已知的,客户端到服务器RTSP消息包括DESCRIBE (描述)、SETUP (建立)、PLAY (播放)、PAUSE (暂停)、 RECORD(记录)和TEARD0WN(拆卸)消息。图3A图示出从STB上游发送至主要控制模块的SETUP、PLAY 1和PLAY 2消息124。作为STUN信令的一部分,STUN绑定请求和/或响应 (req/rsp)消息1 在流服务器组、NAT设备和STB之间被传送。具体地,STUN绑定req/ rsp消息和保活从客户端侧被上游发送至服务器侧,并且,STUN绑定req/rsp消息从服务器侧被下游发送至客户端侧。作为RTSP和STUN消息传送的结果,由STB、流服务器和NAT设备建立状态信息,并且在流服务器之一和STB之间建立包括媒体流128的媒体会话。由NAT设备108生成的状态信息包括客户端IP地址和端口号与流服务器IP地址和端口号之间的绑定。例如,NAT设备维护将STB 112的专用IP地址和端口号与NAT设备的公用IP地址和端口号相关联的表格。将公用IP地址和端口号绑定到专用IP地址和端口号通过从客户端侧到流服务器侧的上游流量而被发起。一旦状态信息(即绑定)被建立,NAT设备将下游分组的目的地IP地址和端口号转换成STB的专用IP地址和端口号,并且将上游分组的源IP地址和端口号转换成NAT设备的公用IP地址和端口号。在一个实施例中,建立客户端和服务器之间的媒体会话(由单个媒体流和单个IP 流组成)涉及将流服务器侧IP地址和流服务器侧端口号映射到媒体会话标识符(ID)和流服务器。例如,具有流服务器侧IP地址IPl和端口号A的媒体会话被映射到流服务器1。另外,针对流服务器组122的所有媒体会话映射的知识在流服务器侧被聚合。例如,媒体会话映射的知识被聚合到标识由流服务器组中的流服务器源发的多个媒体会话的媒体会话映射的表格130中。图4A图示出将媒体会话ID、流服务器侧IP地址和流服务器侧端口号与源发媒体会话的流服务器相关联的媒体会话映射表的示例。在图4A的示例中,该表的顶行上的媒体会话映射对应于图3A中所示的媒体会话。具体地,表的顶行表明媒体会话ID 99的媒体流的IP流具有流服务器侧IP地址IP1、流服务器侧端口号A,并且,是由流服务器 1 SSl源发的。媒体会话映射的指示例如可以由主要控制模块118集中地聚合,或由每个流服务器104以分布式的方式聚合。另外,聚合的知识可以例如由主要控制模块集中保持或分发给组122中的流服务器。各个不同技术可以用来聚合知识并且用来使得聚合的知识可以使用。在参考图3A和图4A所描述的实施例中,媒体会话映射的知识由主要控制模块来聚合和保持。在NAT映射被建立(例如RTSP和STUN完成了 )并且媒体会话被建立了时,媒体流 1 可以从流服务器104之一经由NAT设备108被发送至STB 112。尽管媒体会话是活动的,但是上游消息132从客户端侧被发送至服务器侧。因为相同的IP地址在所有三个流服务器之间被共享,所以上游消息可以(经由IP路由选择)被路由至流服务器中的任一个。 例如,在图3A的实施例中,上游消息被路由至流服务器2。流服务器2被配置为处理上游消息来判断上游消息是否需要在与该流服务器不同的实体处被处理。例如,上游消息或其一些部分可能需要由主要控制模块118、另一流服务器或诸如日志记录服务器之类的另一实体来处理。如图3A中所示,如果必要,上游消息可以被转发至主要控制模块和/或直接被转发至流服务器1。在其中聚合的知识被集中存储的实施例中,接收上游消息的流服务器将上游消息转发给主要控制模块,并且,主要控制模块使用聚合的知识来将上游消息或与上游消息有关的信息分发给对应的流服务器。在其中聚合的知识被分发给流服务器的实施例中,接收上游消息的流服务器可以使用聚合的知识来将上游消息或与上游消息有关的某些信息直接地转发给适当的流服务器,例如正在源发与该上游消息相对应的媒体会话的流服务器。尽管描述了用于处理上游消息的一些技术,但是可以使用用于处理上游消息的其它技术,只要能完成上游消息的目的即可。例如,可以通过以下方式来完成消息的目的将消息本身提供给对应的流服务器104或通过将与消息有关的某些信息(例如,指令、命令或数据)提供给正在源发媒体会话的流服务器,或者逻辑地处理消息,例如查看保活消息和丢弃保活消息。因为流服务器每一个都能够预先处理上游消息使得所以上游消息的意图目的被完成,所以即使接收流服务器不是正在源发媒体会话的同一流服务器,该流服务器组相对于上游消息也相当于单个IP主机。尽管在图3A中图示出流服务器组122内的某些通信路径,但是流服务器组内的其它通信路径也是可以的。例如,主要控制模块118可以与次要控制模块120通信,并且流服务器104可以相互直接通信。再次参考图3A,当流服务器1 104和STB 112之间的媒体会话是活动的时,可能希望或有必要将媒体会话切换至流服务器组122的流服务器中的不同一个流服务器。例如,可能希望将媒体会话切换到不同的流服务器以用于负载平衡,或切换到新的内容,或者可能因为故障的原因而有必要将媒体会话切换到不同的流服务器,故障例如是流服务器故障、接口故障、链路故障等。如上所述,通过允许在该组中的所有流服务器之间共享流服务器IP地址IPl,使得该组中的流服务器可以同时使用IPl来源发不同的媒体会话,可以在不改变服务器侧的IP地址和端口号的情况下,将图3A中所示的媒体会话从流服务器1切换至不同的流服务器。因为流服务器可以同时使用IPl来源发不同的媒体会话,所以可以在不改变IP流的端口号和服务器侧IP地址的情况下将媒体会话99被切换至不同的服务器。图;3B图示出在媒体会话被从由流服务器1104源发切换为由流服务器3源发之后与图3A中相同的媒体会话,其包括媒体流128。如图;3B中所示,不需要另外的RTSP或STUN 绑定req/rsp信令来完成该切换。一旦媒体会话被切换至流服务器3,媒体会话映射的表格必须被更新来反映该变化。图4B图示出在媒体会话被从由流服务器1源发切换为由流服务器3源发之后图4A的表格130。如图4B中所示,媒体会话99的媒体流的IP流仍然具有相同的流服务器侧IP地址IPl和端口号A,但是流服务器已经从流服务器1 SSl改变为流服务器3 SS3。尽管媒体会话现在正由流服务器3源发,但是对应于该媒体会话的上游消息132 仍然是由流服务器2 104来接收的。与当媒体会话是正由流服务器1源发时的情况一样,流服务器2预先处理上游消息并且确保上游消息的目的被完成。例如,流服务器2可以将上游消息转发给主要控制模块118,将上游消息直接转发给流服务器3,本地地处理该消息,和/ 或将消息转发给诸如日志记录服务器之类的另一实体。如果上游消息被转发给主要控制模块,则主要控制模块使用聚合的知识来判断哪个流服务器正在源发与该上游消息相对应的媒体会话。如果接收流服务器负责将消息直接转发给对应的流服务器,则接收流服务器使用聚合的知识的本地版本来做出转发决定。例如,上游消息132可以包括STUN保活、RTCP报告和RTCP NACK。在一个实施例中,STUN保活消息被接收流服务器跟踪,RTCP报告被记录入日志,但是它们可以触发向源发流服务器转发标记来指示流的质量,并且如果容量可用的话,则RTCP NACK被转发给源发流服务器,或如果容量不可用则它们被丢弃。除了使用用于管理上游消息的聚会知识以外,聚会知识可以用来确保相同的流服务器侧IP地址和端口号组合不被用于源发两个不同的媒体会话。在一个实施例中,以上参考图3A和图;3B描述的示例应用于UDP上的单个 MPEG-2TS IP流的使用。在另一实施例中,用MPEG-TS RTP来替代MPEG-TS UDP来将数字视频内容流传输至端用户地点。RTP的一个特征是RTCP消息,其被用来传送用于RTP媒体流的带外控制信息。例如,RTCP消息被用来向流服务器提供有关由RTP媒体流经由第二 IP 流提供的服务质量的反馈。RTCP消息包括有关媒体连接的统计数据,例如发送的字节、发送的分组、丢失的分组、抖动和往返延迟。RTCP也用来生成否定确认(NAK)使得流服务器可以经由例如REPA^ RTP IP流生成修复分组。尽管如上所述可以处理上游RTCP消息,其中,上游RTCP消息具有共享的流服务器侧IP地址IP1来作为它们的目的地IP地址并且接收流服务器104预先处理接收的消息来确保消息的目的被完成,但是在可替换实施例中,上游RTCP消息使用源发流服务器特有的反馈IP地址被直接发送给源发流服务器。在一个实施例中,正在源发媒体会话的流服务器将特定于该流服务器的反馈IP地址嵌入被下游发送给STB 112的RTCP消息。STB从RTCP消息中提取反馈IP地址,并且,使用反馈IP地址作为从STB上游发送至流服务器的随后的 RTCP消息的目的地IP地址。因为目的地IP地址是正在源发该媒体会话的流服务器所特有的,所以上游RTCP分组被直接路由至对应的流服务器。如果媒体会话被切换至新的流服务器,则媒体会话的MAIN和REPA^ IP流在服务器侧上的IP地址和端口号不必改变,如上所述,而是新的源发流服务器所特有的新的反馈IP地址被嵌入到至少一个下游RTCP消息中。 STB提取新的反馈IP地址并且使用新的反馈IP地址作为随后的上游RTCP消息的目的地 IP地址,使得上游RTCP消息被直接路由至新的源发流服务器。在一个实施例中,反馈IP地址被嵌入在下游消息的有效载荷部分中,例如从源发流服务器发送至STB的RTCP消息的有效载荷部分中。图5A图示出使用MPEG-TS RTP来将数字视频内容流传输至STB的媒体会话。媒体会话包括MAIN RTP IP流138和双向的MAIN RTCP IP流,下游140和上游141。如图5A 中所示,STUN绑定req/rsp消息126在流服务器侧和客户端侧之间被交换来建立NAT映射和媒体会话。一旦NAT映射和媒体会话被建立并且是活动的,则双向的MAIN RTCP IP流 140和141 (例如RTCP报告、NAK、保活)在流服务器侧和客户端侧之间流动。另外,如上所述,流服务器1将流服务器1所特有的反馈IP地址例如IP3嵌入到被下游(MAIN RTCP IP 流140)发送至STB的至少一个RTCP消息中。STB从RTCP消息中提取反馈IP地址,并且, 使用反馈IP地址作为被从STB上游(MAIN RTCP IP流141)发送的随后的RTCP消息的目的地IP地址。因为目的地IP地址IP3时流服务器1所特有的,但是上游RTCP分组被直接地路由至流服务器1。如果媒体消息被切换至新的流服务器104,则媒体会话的MAIN RTP和REPA^ RTP IP流的服务器侧上的IP地址和端口号不必改变,如上所述,而是新的源发流服务器所特有的新的反馈IP地址被嵌入到下游RTCP消息(MAIN RTCP IP流140)中。新的反馈IP地址被用作随后的上游RTCP消息(MAIN RTCP IP流141)的目的地IP地址。图5B图示出在媒体消息已经从流服务器1被切换至流服务器3之后在流服务器和STB 112之间的消息传送。如以上参考图5A所述,流服务器3将流服务器3所特有的反馈IP地址IP4嵌入到被下游发送至STB (MAIN RTCP IP流140)至少一个RTCP消息中。STB从RTCP消息中提取新的反馈IP地址,并且,将反馈IP地址用作从STB上游发送(MAIN RTCP IP流141)的随后的RTCP消息的目的地IP地址。因为目的地IP地址IP4是流服务器3所特有的,所以上游 RTCP分组被直接地路由至流服务器3。STUN信令也针对用于反馈信令的RTCP IP流而发生。应当注意,MPEG-TS UDP和MPEG-TS RTP可以同时用在相同的流服务器中。然而, 使用反馈地址来引导上游消息的技术特定地适用于MPEG-TS RTP0此外,以上参考图3A和图3B所描述的示例适用于适用MPEG TS RTP的实现。例如,当不同的流服务器被选择来源发媒体会话时,所有4个IP流(MAIN RTP,MAIN RTCP,REPAIR RTP和REPAIR RTCP)都经由 STUN被进行信号传送,并且,流服务器上的所有操作都如在图3A和图;3B的单个IP流的情况中那样进行。在参考图3A至图4B所描述的实施例中,流服务器被主要控制模块集中控制。在可替换实施例中,控制功能可以是完全地或部分地分布在流服务器中。另外,控制模块可以是在流服务器外部(如图3A至图4B中所示)或在一个或多个流服务器的内部。
要求相同的固定的服务器侧和客户端侧IP地址和端口组合的网络地址转换称为对称式NAT,但是上述技术适用于任意类型的NAT,甚至适用于路径行没有NAT的媒体会话。 上述技术特别适用于对称式NAT。图6图示出了图3A、图3B、图5A和图5B中所示的控制模块118。在图6的实施例中,控制模块包括媒体会话管理器150、聚合知识模块152和上游消息处理器154。媒体会话管理器管理媒体会话的建立、拆除和切换。聚合知识模块管理流服务器组内的媒体会话映射的聚合。另外,聚合知识管理器存储当处理上游消息时和当建立和/或切换媒体会话时可以使用的聚合知识。上游消息处理器处理上游消息或与上游消息有关的信息。在一个实施例中,上游消息处理器使用聚合知识模块中所存储的聚合知识来确保上游消息或与上游消息有关的信息被提供给适当的流服务器,例如正在源发与该上游消息相对应的媒体会话的(一个或多个)媒体流的(一个和多个)IP流的那个流服务器。媒体会话管理器、聚合知识模块和上游消息处理器可以体现为软件、硬件、固件或其组合。图7图示出图3A、图;3B、图5A和图5B中所示的流服务器104。在图7的实施例中, 流服务器包括流播放管理器160、聚合知识模块162和上游消息处理器164。流播放管理器管理媒体会话的播放和切换。聚合知识模块管理流服务器组内的媒体会话映射的聚合。另外,聚合知识管理器存储当处理上游消息时和当建立和/或切换媒体会话时可以使用的聚合知识。上游消息处理器处理上游消息或与上游消息有关的信息。在一个实施例中,上游消息处理器使用聚合知识模块中所存储的聚合知识来确保上游消息或与上游消息有关的信息被提供给适当的流服务器,例如正在源发与该上游消息相对应的媒体会话的那个流服务器。在一个可替换实施例中,上游消息处理器识别流服务器是否是正在源发与上游消息有关的媒体会话,并且,将与不是该服务器正在源发的媒体会话有关的消息转发给控制模块。 流播放管理器、合知识模块和上游消息处理器可以体现为软件、硬件、固件或其组合。控制模块和流服务器的具体功能将根据责任在流服务器组内的分布而不同。以上描述了不同的功能分布的示例。图8图示出用于管理网络的客户端侧的客户端与网络的流服务器侧的流服务器之间的媒体流传输的方法的流程图,其中,客户端侧和流服务器侧之间的通信要求NAT穿越。在块702处,在多个流服务器之间共享相同的IP地址,使得流服务器可以同时使用该 IP地址作为不同媒体会话的流服务器侧IP地址。在块704处,在客户端和多个流服务器的流服务器之间建立媒体会话,其中,建立媒体会话涉及将流服务器侧IP地址和流服务器侧端口号映射到流服务器,其中,端口号是传输层端口号,并且,其中,客户端侧与流服务器侧之间的通信要求根据NAT映射的NAT。在块706处,在不改变媒体会话的流服务器侧IP地址或流服务器侧端口号的情况下将所建立的媒体会话从一个流服务器切换到不同的流服务器,以使得媒体会话的切换不触发NAT映射中的改变。在方法的附加步骤中,在块708处,从多个流服务器聚合所建立的媒体会话的映射的知识。在块710处,使用所聚合的映射的知识来确保从客户端侧发送至流服务器侧的, 并且,与正由流服务器之一源发的特定媒体会话相对应的消息完成其所意欲的目的。上述技术的操作中的至少一些操作可以使用计算机可使用存储介质上所存储的供计算机执行的软件指令来实现。例如,计算机程序产品的实施例包括在一个或多个有形介质中被编码以用于执行的逻辑,并且当被执行时使得计算机执行如上所述的操作。
13
上述技术的实施例可以采用全部硬件的实施例、全部软件的实施例或包含硬件和软件元素两者的实施例的形式。在一个实施例中,上述技术以软件实现,软件包括但不限于固件、常驻的软件、微代码等。此外,上述技术的实施例可以采用计算机程序产品的形式,计算机程序产品可以从提供通过与计算机或任意指令执行系统连接而使用的程序代码的计算机可使用的或计算机可读的存储介质取得。为了描述的目的,计算机可使用的或计算机可读的存储介质可以是能够存储通过与指令执行系统、装置或设备连接而使用的程序的任何装置。计算机可使用的或计算机可读的存储介质可以是电子的、磁的、光的、电磁的、红外的或半导体的系统(或装置或设备),或传播介质。计算机可读存储介质的示例包括半导体或固态存储器,磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、 硬磁盘和光盘。光盘的当前示例包括带有只读存储器的致密盘(CD-ROM)、可读写的致密盘 (⑶-R/W)、数字视频盘(DVD),以及诸如蓝光和HD-DVD之类的高清晰度(HD)盘。适合于存储和/或执行程序代码的数据处理系统的实施例包括通过诸如数据、地址、和/或控制总线之类的系统总线直接地或间接地耦合到存储器元件的至少一个处理器。存储器元件可以包括在程序代码的实际执行期间所采用的本地存储器、大容量存储装置,以及缓冲存储器,缓冲存储器提供对至少某些程序代码的临时存储以便减少在执行期间必须从大容量存储装置取回代码的次数。尽管已经描述和图示出了本发明的具体实施例,但是本发明不限于这里所描述和所图示的具体形式或部件布置。本发明仅由权利要求限定。
权利要求
1.一种用于管理网络的客户端侧的客户端和该网络的流服务器侧的流服务器之间的媒体流传输的方法,其中,所述客户端侧和所述流服务器侧之间的通信要求网络地址转换 NAT,所述方法包括在多个流服务器之间共享相同的网际协议IP地址,使得所述流服务器能够同时使用该IP地址作为不同媒体会话的流服务器侧IP地址;在客户端和所述多个流服务器中的流服务器之间建立媒体会话,其中,建立媒体会话涉及将流服务器侧IP地址和流服务器侧端口号映射到流服务器,其中,所述端口号是传输层端口号,并且,其中,所述客户端侧和所述流服务器侧之间的通信要求根据NAT映射的 NAT ;在不改变所建立的媒体会话的流服务器侧IP地址或流服务器侧端口号的情况下,将所述媒体会话从一个流服务器切换至不同的流服务器,使得所述媒体会话的切换不会触发所述NAT映射中的改变。
2.根据权利要求1所述的方法,还包括聚合来自所述多个流服务器的所建立的媒体会话的映射的知识;以及使用所聚合的所述映射的知识来确保消息完成其所意欲的目的,所述消息是从所述客户端侧被发送至所述流服务器侧的并且与所述流服务器中的一个流服务器正在源发的特定媒体会话相对应。
3.根据权利要求1所述的方法,还包括接收上游消息,该上游消息对应于所述流服务器中的一个流服务器正在源发的特定媒体会话;在接收所述上游消息的流服务器处,判断所述上游消息是否需要在远离所述流服务器的实体处被处理;以及如果判定所述消息需要被远程地处理则将所述消息发送给另一实体。
4.根据权利要求2所述的方法,其中,所述上游消息被发送给控制模块。
5.根据权利要求2所述的方法,其中,与所述上游消息有关的信息被发送给正在源发与所述上游消息相对应的媒体会话的流服务器。
6.根据权利要求2所述的方法,其中,所述上游消息包括RTCP报告消息,所述方法还包括,在接收到所述上游消息的所述流服务器处,处理所述RTCP报告消息,并且,将处理后的与所述RTCP报告消息有关的信息转发给实体,该实体不是所述多个流服务器之一。
7.根据权利要求6所述的方法,其中,所述实体是日志记录服务器。
8.根据权利要求1所述的方法,还包括在流服务器处,接收上游消息,所述上游消息与所述流服务器中的一个流服务器正在源发的特定媒体会话相对应,其中,接收到所述上游消息的所述流服务器不是正在源发所述媒体会话的流服务器;响应于所述上游消息,从接收到所述上游消息的所述流服务器发送消息;以及响应于所发送的消息,触发正在源发所述媒体会话的流服务器处的操作。
9.根据权利要求1所述的方法,其中,NAT包括对称式NAT。
10.根据权利要求1所述的方法,还包括在所述流服务器侧,将反馈IP地址嵌入消息中,其中,所述反馈IP地址是正在源发媒体会话的所述流服务器所特有的;在所述客户端侧,从所述消息提取所述反馈IP地址;使用所述反馈IP地址作为所述目的地IP地址,将与所述媒体会话有关的RTCP消息从所述客户端侧发送至所述流服务器侧;在所建立的媒体会话从一个流服务器被切换至不同的流服务器之后,将新的反馈IP 地址嵌入消息中,其中,所述新的反馈IP地址是所述不同的流服务器所特有的; 在所述客户端侧,从所述消息提取所述新的反馈IP地址;以及使用所述新的反馈IP地址作为所述目的地IP地址,将与所述媒体会话有关的RTCP消息从所述客户端侧发送至所述流服务器侧。
11.一种用于管理网络的客户端侧的客户端和该网络的流服务器侧的流服务器之间的媒体流传输的系统,其中,所述客户端侧和所述流服务器侧之间的通信要求网络地址转换 NAT,所述系统包括控制模块,该控制模块被配置为在客户端和多个流服务器中的流服务器之间建立媒体会话,其中,所建立的媒体会话包括被映射到流服务器的流服务器侧网际协议IP地址和流服务器侧端口号,其中,所述端口号是传输层端口号,并且,其中,所述客户端侧和所述流服务器侧之间的通信要求根据 NAT映射的NAT,并且,其中,相同的IP地址在多个流服务器之间被共享,使得所述流服务器能够同时使用该IP地址作为不同媒体会话的流服务器侧IP地址;并且在不改变所建立的媒体会话的流服务器侧IP地址或流服务器侧端口号的情况下,将所述媒体会话从一个流服务器切换至不同的流服务器,使得所述媒体会话的切换不会触发所述NAT映射中的改变。
12.根据权利要求11所述的系统,其中,所述控制模块还被配置为 聚合来自所述多个流服务器的所建立的媒体会话的映射的知识;以及使用所聚合的所述映射的知识来确保消息完成其所意欲的目的,该消息是从所述客户端侧被发送至所述流服务器侧的并且与所述流服务器中的一个流服务器正在源发的特定媒体会话相对应。
13.根据权利要求11所述的系统,还包括所聚合的来自所述多个流服务器的所建立的媒体会话的映射的知识的表格。
14.根据权利要求13所述的系统,其中,所述表格被存储在所述流服务器处。
15.根据权利要求11所述的系统,其中,所述流服务器被配置为接收上游消息,该上游消息与所述流服务器中的一个流服务器正在源发的特定媒体会话相对应;在接收所述上游消息的流服务器处,判断所述上游消息是否需要在远离该流服务器的实体处被处理;以及如果判定所述消息需要被远程地处理,则将所述消息发送给另一实体。
16.根据权利要求15所述的系统,其中,所述上游消息被发送给控制服务器。
17.根据权利要求15所述的系统,其中,所述上游消息被发送给正在源发与所述上游消息相对应的媒体会话的流服务器。
18.根据权利要求11所述的系统,其中,所述流服务器被配置为将反馈IP地址嵌入消息中,其中,所述反馈IP地址是正在源发媒体会话的流服务器所特有的,其中,所述反馈IP地址在所述客户端侧被用作RTCP消息的目的地IP地址;以及在所建立的媒体会话从一个流服务器被切换至不同的流服务器之后,将新的反馈IP 地址嵌入消息中,其中,所述新的反馈IP地址是所述不同的流服务器所特有的。
19.一种用于管理网络的客户端侧的客户端和该网络的流服务器侧的流服务器之间的媒体流传输的方法,其中,所述客户端侧和所述流服务器侧之间的通信要求对称的网络地址转换NAT,所述方法包括在多个流服务器之间共享相同的网际协议IP地址,使得所述流服务器能够同时使用该IP地址作为不同媒体会话的流服务器侧IP地址;在客户端和所述多个流服务器中的流服务器之间建立媒体会话,其中,建立媒体会话涉及将流服务器侧IP地址和流服务器侧端口号映射到流服务器,其中,所述端口号是传输层端口号,并且,其中,所述客户端侧和所述流服务器侧之间的通信要求根据NAT映射的对称的NAT ;聚合来自所述多个流服务器的所建立的媒体会话的映射的知识; 在不改变所建立的媒体会话的流服务器侧IP地址或流服务器侧端口号的情况下,将所述媒体会话从一个流服务器切换至不同的流服务器,使得所述媒体会话的切换不会触发所述NAT映射中的改变;以及使用所聚合的所述映射的知识来确保消息完成其所意欲的目的,所述消息是从所述客户端侧被发送至所述流服务器侧的并且与所述流服务器中的一个流服务器正在源发的特定媒体会话相对应。
20.根据权利要求19所述的方法,还包括将反馈IP地址嵌入下游消息的有效载荷部分中,其中,所述反馈IP地址是正在源发媒体会话的流服务器所特有的,并且,其中,所述反馈IP地址在所述客户端侧被用作上游 RTCP的目的地IP地址;以及在所建立的媒体会话从一个流服务器被切换至不同的流服务器之后,将新的反馈IP 地址嵌入消息中,其中,所述新的反馈IP地址是所述不同的流服务器所特有的。
全文摘要
本发明公开了用于管理网络的客户端侧的客户端和该网络的流服务器侧的流服务器之间的媒体流传输的方法和系统,其中客户端侧和流服务器侧之间的通信要求网络地址转换(NAT),涉及允许在多个流服务器之间共享相同的流服务器侧IP地址,使得流服务器能够同时使用该相同的IP地址来源发不同的媒体会话。因为流服务器可以同时使用相同的IP地址来源发不同的媒体会话,所以媒体会话可以在不触发STUN信令或NAT映射中的改变的情况下,从一个流服务器被切换到不同的流服务器。
文档编号H04L29/12GK102301681SQ201080006155
公开日2011年12月28日 申请日期2010年1月27日 优先权日2009年1月30日
发明者乔纳森·伽木, 约翰·皮肯斯, 霍伊-塔夫·卓扎夫·周 申请人:思科技术公司