用于流媒体转发的方法及装置、路由方法及装置与流程

文档序号:12499426阅读:136来源:国知局
用于流媒体转发的方法及装置、路由方法及装置与流程

本公开总体涉及流媒体数据在以太网中的传输技术领域,具体而言,涉及一种用于流媒体转发的方法及装置、路由方法及装置。



背景技术:

随着近几年在线教育与直播业务的广泛兴起,多媒体在线视频技术越来越多地应用在互联网市场领域。流量的增长和业务的扩张,随之也带来了更多技术挑战,高可靠性、高实时性、高扩展性也越来越成为在线视频方向的技术瓶颈。

在现有的流媒体服务器拓扑架构中,往往大多数的流媒体服务器的部署方案为单点部署或两层结构,即便是多层的流媒体服务器拓扑,也都是在媒体服务器中配置静态的路由服务。

如,单点部署为推流(publish)和拉流(play)为同一台流媒体服务器,两层结构则往往是推流服务器为主,拉流服务器为从,从服务器向主服务器同步主服务器的流信息。两层以上的复杂层级结构,往往是将静态路由部署于链路上行的流媒体服务器上,这样当下行部署多台流媒体服务器时,多台下行流媒体服务器会对上行流媒体服务器的所有媒体流进行拷贝。

上述的拓扑方案往往只适用于结构简单的业务场景,并且多半限制推流服务与拉流服务两者的地理位置不会涉及到跨洋。

例如,推流服务在北美,拉流服务在中国。如果流媒体服务器部署为两层或单点结构,则无法满足在线流媒体低时延、高稳定性要求。如果将拓扑形式设置成为静态拓扑,则整个路由链路扩展性较差,部署升级成本较高。

因此,需要一种新的用于流媒体转发的方法及装置、路由方法及装置。

在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本公开提供一种用于流媒体转发的方法及装置、路由方法及装置,能够提高多层流媒体网络中的流媒体服务器路由的扩展性和灵活性。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本公开的一个方面,提供一种用于流媒体转发的方法,用于多层流媒体网络,所述多层流媒体网络包括多台流媒体服务器,该方法包括以下步骤:接收上一节点发送的数据包,所述数据包包括预设字段,所述预设字段包括上一节点类型;以及根据所述上一节点类型执行预设操作;其中,所述流媒体服务器中配置有路由表,所述路由表包括所述流媒体服务器的上一跳信息和下一跳信息。

在本公开的一种示例性实施例中,所述上一跳信息包括上一跳类型和备选上一跳地址,所述下一跳信息包括下一跳类型和备选下一跳地址。

在本公开的一种示例性实施例中,所述根据所述上一节点类型执行预设操作包括:当所述上一节点类型为客户端类时,根据所述上一跳类型和所述下一跳类型确定所述数据包的转发方向;根据所述转发方向发送路由请求;接收响应于所述路由请求返回的目标地址,其中所述目标地址为所述路由表中所述备选上一跳地址或者所述备选下一跳地址其中之一;根据所述目标地址将所述数据表转发至相应的下一节点。

在本公开的一种示例性实施例中,所述预设字段还包括上一节点标识,所述根据所述上一节点类型执行预设操作还包括:更改所述预设字段的上一节点类型为重定向类,且更改所述上一节点标识为当前接收所述数据包的流媒体服务器的标识;将更改后的所述预设字段封装进所述数据表后转发至所述下一节点。

在本公开的一种示例性实施例中,所述预设字段还包括上一节点标识,所述根据所述上一节点类型执行预设操作包括:当所述上一节点标识为重定向类时,根据所述上一节点标识和所述路由表确定所述数据表的转发方向;根据所述转发方向发送路由请求;接收响应于所述路由请求返回的目标地址,其中所述目标地址为所述路由表中所述备选上一跳地址或者所述备选下一跳地址其中之一;根据所述目标地址将所述数据表转发至相应的下一节点。

在本公开的一种示例性实施例中,所述根据所述目标地址将所述数据表转发至相应的下一节点包括:根据所述路由表中的所述上一跳类型或者所述下一跳类型判断所述下一节点是否为边缘节点类;当所述下一节点为所述边缘节点类时,更改所述预设字段的所述上一节点类型为终点类,且更改所述上一节点标识为当前接收所述数据包的流媒体服务器的标识;将更改后的所述预设字段封装进所述数据包后转发至所述下一节点。

在本公开的一种示例性实施例中,所述根据所述上一节点类型执行预设操作包括:当所述上一节点类型为到达类时,停止所述数据包的转发,处理相应的业务逻辑。

根据本公开的一个方面,提供一种路由方法,包括:根据节点类型配置流媒体服务器的路由表;其中所述路由表包括所述流媒体服务器的上一跳信息和下一跳信息。

在本公开的一种示例性实施例中,所述上一跳信息包括多个备选上一跳地址,所述下一跳信息包括多个备选下一跳地址,所述方法还包括:对所述路由表中的所述多个备选上一跳地址和所述多个备选下一跳地址对应的多个节点分别进行测试,获取测试结果;根据所述测试结果确定所述流媒体服务器的所述多个备选上一跳地址中的上一跳最优地址和所述多个备选下一跳地址中的下一跳最优地址。

在本公开的一种示例性实施例中,所述方法还包括:接收路由请求;根据所述路由请求将所述上一跳最优地址或者所述下一跳最优地址作为目标地址发送至所述流媒体服务器。

根据本公开的一个方面,提供一种用于流媒体转发的装置,用于多层流媒体网络,所述多层流媒体网络包括多台流媒体服务器,该装置包括:数据包接收模块,用于接收上一节点发送的数据包,所述数据包包括预设字段,所述预设字段包括上一节点类型;以及执行模块,用于根据所述上一节点类型执行预设操作;其中,所述流媒体服务器中配置有路由表,所述路由表包括所述流媒体服务器的上一跳信息和下一跳信息。

在本公开的一种示例性实施例中,所述上一跳信息包括上一跳类型和备选上一跳地址,所述下一跳信息包括下一跳类型和备选下一跳地址。

在本公开的一种示例性实施例中,所述预设字段还包括上一节点标识,所述执行模块包括:转发方向确定单元,用于当所述上一节点类型为重定向类时,根据所述上一节点标识和所述路由表确定所述数据包的转发方向;发送请求单元,用于根据所述转发方向发送路由请求;目标地址接收单元,用于接收响应于所述路由请求返回的目标地址,其中所述目标地址为所述路由表中所述备选上一跳地址或者所述备选下一跳地址其中之一;数据包转发单元,用于根据所述目标地址将所述数据包转发至相应的下一节点。

根据本公开的一个方面,提供一种路由装置,包括:第一配置模块,用于根据节点类型配置流媒体服务器的路由表,其中所述路由表包括所述流媒体服务器的上一跳信息和下一跳信息,所述上一跳信息包括多个备选上一跳地址,所述下一跳信息包括多个备选下一跳地址;第一测试模块,用于对所述路由表中的所述多个备选上一跳地址和所述多个备选下一跳地址对应的多个节点分别进行测试,获取测试结果;第一最优地址确定模块,用于根据所述测试结果确定所述流媒体服务器的所述多个备选上一跳地址中的上一跳最优地址和所述多个备选下一跳地址中的下一跳最优地址。

根据本公开的用于流媒体转发的方法及装置、路由方法及装置,能够提高多层流媒体网络拓扑中的流媒体数据包转发的扩展性和灵活性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。

图1示意性示出根据本公开示例实施方式的多层流媒体网络的拓扑示意图;

图2示意性示出根据本公开示例实施方式的一种用于流媒体转发的方法的流程图;

图3示意性示出根据本公开示例实施方式的另一种用于流媒体转发的方法的流程图;

图4示出根据本公开示例实施方式的一种路由方法的流程图;

图5示出根据本公开示例实施方式的另一种路由方法的流程图;

图6示出根据本公开示例实施方式的一种用于流媒体转发的装置的框图;

图7示出根据本公开示例实施方式的另一种用于流媒体转发的装置的框图;

图8示出根据本公开示例实施方式的一种路由装置的框图;

图9示出根据本公开示例实施方式的另一种路由装置的框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。

附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

流媒体指以流方式在网络中传送音频、视频和多媒体文件的媒体形式。相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等待整个文件下载完毕。由于流媒体技术的优越性,该技术广泛应用于视频点播、视频会议、远程教育、远程医疗和在线直播系统中。作为新一代互联网应用的标志,流媒体技术在近几年得到了飞速的发展。需要说明的是,本发明实施例中的流媒体包括但不限于:视频文件或视频流或音频文件或音频流。

流媒体服务器是流媒体应用的核心系统,是运营商向用户提供视频服务的关键平台。流媒体服务器的主要功能是对流媒体内容进行采集、缓存、调度和传输播放。流媒体应用系统的主要性能体现都取决于媒体服务器的性能和服务质量。因此,流媒体服务器是流媒体应用系统的基础,也是最主要的组成部分。

推流为将直播内容推送至服务器的过程;拉流为服务器已有直播内容,用指定地址进行拉取的过程。一个完整的直播过程,包括采集、处理、编码、封包、推流、传输、转码、分发、拉流、解码、播放,从推流到播放,再经过中间转发环节,延迟越低,用户体验越好。

本发明实施方式首先提供了一种多层流媒体网络,将其他实施方式中的方法及装置应用于该多层流媒体网络。

图1示意性示出根据本公开示例实施方式的多层流媒体网络的拓扑示意图。

如图1所示,该多层流媒体网络包括多台流媒体服务器(MediaServer)。

在图1所示的实施例中,根据各流媒体服务器在网络拓扑中所处的位置,所述多台流媒体服务器可以分为边缘节点(Edge Point,EP),边缘节点通常是流媒体推流和拉流的点,例如EP11、EP12、EP13、EP14、EP21、EP22、EP23、EP24;汇聚节点(Aggregate Point,AP),汇聚节点通常部署为流媒体转发节点,例如AP11、AP12、AP21、AP22;核心节点(Key Point,KP),核心节点通常部署为流媒体转发节点,且核心节点之间一般通过专线网络(例如光纤)通信,例如KP11、KP21。需要说明的是,图1中的多层流媒体网络仅是示例性的,并不用于限制本发明,其网络中的流媒体服务器数量、流媒体服务器类型以及各类型的流媒体服务器数量可以根据实际系统需求灵活设置,并不需要严格按照该实施例来部署。

在图1所示的实施例中,该多层流媒体网络拓扑结构是一个双向图结构,通常为:边缘部署多个EP负责接入业务,EP通过路由机制将数据包转达到AP,AP通过路由机制转发数据包到KP,KP可以用于负责跨洋传输(但并不限定用于跨洋传输),同样在拓扑的另一路,也存在由KP-AP-EP的路由方式。

在该多层流媒体网络的边缘节点接收客户端(例如Client11、Client12和/或Client21、Client22)发出的获取流媒体文件的请求,以及接收并播放流媒体服务器返回的切片数据。

链路是从一个节点到相邻节点的一段物理线路。在本发明实施例中,客户端发送获取流媒体文件的请求到流媒体服务器,以使得客户端与流媒体服务器间建立了TCP(Transmission Control Protocol,传输控制协议)连接,即建立了客户端与流媒体服务器之间的获取流媒体文件的请求所关联的链路。

由上文讲到,现有的路由多半是静态路由实现的,即在EP-AP-KP的路由表中,静态配置完成下一跳的地址,在路由过程中,直接利用下一跳地址进行路由。而本发明实施例中采用动态路由机制,实时找寻最优路由路径。

在本发明实施例中,所述流媒体服务器中配置有路由表,所述路由表包括所述流媒体服务器的上一跳信息和下一跳信息。这样能够确保从流媒体源和客户端两个方向发来的数据都能够找到下一跳路径。

所谓路由表,是一种记录信息的载体,可以以列表的形式存在,也可以以程序段等形式存在。命名为路由表仅为说明方便而非局限。

在示例性实施例中,所述上一跳信息包括上一跳类型和备选上一跳地址,所述下一跳信息包括下一跳类型和备选下一跳地址。

本发明实施例中的动态路由机制如下:每一台流媒体服务器配置有至少一个路由表,该路由表基本结构可以如下表1和2所示。

表1:(R,R)型路由表

表2:(C,R)型路由表

其中,表1和2中的D1代表所述上一跳信息,D1下的Type代表所述上一跳类型,D1下的Group代表所述备选上一跳地址;D2代表所述下一跳信息,D2下的Type代表所述下一跳类型,D2下的Group代表所述备选下一跳地址。

其中所述上一跳类型和/所述下一跳类型可以为客户端类(Client,简写为C)、重定向类(Redirect,简写为R)、边缘节点类(Edge,简写为E)。但本公开不限定于此。

其中所述备选上一跳地址(例如Group1、Group2)和/所述备选下一跳地址(例如Group3、Group4、Group5、Group6)可以为上一节点/下一节点对应的流媒体服务器的主机名(hostname)、IP地址等可以唯一标识该流媒体服务器的任意标识。下面的实施例中以流媒体服务器的hostname为例进行说明。

需要说明的是,本发明实施例中的上一跳、下一跳均是相对而言的,其根据数据包转发方向而定的。例如,在推流时,某一流媒体服务器对应为上一跳地址;在拉流时,该流媒体服务器对应为下一跳地址。

在本发明实施例中,各路由表中的Group信息通过路由装置配置在其路由表中,每个Group都可以作为路由的备选节点。

当流媒体服务器部署在边缘节点(EP)上时,配置的路由表类型则应为表2的(C,R)型;如果是中间的路由转发节点(汇聚节点或者核心节点),则路由表应配置为表1的(R,R)型。

在数据包与流媒体服务器通信期间,除了封装基本的视、音频包以及控制信令的同时,还可以带有一预设字段(例如UpStreamType字段)。UpStreamType字段最早由客户端生成,设置其类型为C,中间经过转发流媒体服务器时将其修改值为相应的流媒体服务器的hostName。

在上述的实施例中,均以数据包的在该网络中的双向转发为例进行说明。但实际上,该动态路由机制也可以仅应用于单向转发,在反方向的路由机制仍然可以采用静态路由或者其他路由方式。

在示例性实施例中,所述流媒体服务器中配置有路由表,所述路由表包括所述流媒体服务器的下一跳信息,其中所述下一跳信息包括多个备选下一跳地址。

本文中描述的各种技术可用于各种无线通信系统,例如当前2G,3G通信系统和下一代通信系统,例如全球移动通信系统(GSM,Global System for Mobile communications),码分多址(CDMA,Code Division Multiple Access)系统,时分多址(TDMA,Time Division Multiple Access)系统,宽带码分多址(WCDMA,Wideband Code Division Multiple Access Wireless),频分多址(FDMA,Frequency Division Multiple Addressing)系统,正交频分多址(OFDMA,Orthogonal Frequency-Division Multiple Access)系统,单载波FDMA(SC-FDMA)系统,通用分组无线业务(GPRS,General Packet Radio Service)系统,长期演进(LTE,Long Term Evolution)系统,以及其他此类通信系统。

客户端,可以是无线终端也可以是有线终端,无线终端可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(例如,RAN,Radio Access Network)与一个或多个核心网进行通信,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(PCS,Personal Communication Service)电话、个人数字助理(PDA,Personal Digital Assistant)等设备。无线终端也可以称为系统、远程终端(Remote Terminal)、接入终端(Access Terminal)、客户端(User Terminal)、用户代理(User Agent)、用户设备(User Device)、或用户装备(User Equipment)。

图2示意性示出根据本公开示例实施方式的一种用于流媒体转发的方法的流程图。

如图2所示,该用于流媒体转发的方法,用于上述实施例中的多层流媒体网络,所述多层流媒体网络包括多台流媒体服务器。所述流媒体服务器中配置有路由表,所述路由表包括所述流媒体服务器的上一跳信息和下一跳信息。所述上一跳信息包括上一跳类型和备选上一跳地址,所述下一跳信息包括下一跳类型和备选下一跳地址。

该方法包括以下步骤。

在步骤S110中,接收上一节点发送的数据包,所述数据包包括预设字段,所述预设字段包括上一节点类型。

在一实施例中,所述预设字段包括UpStreamType字段。但本公开并不限定于此。在另一实施例中,所述上一节点类型可以包括客户端类(Client)、重定向类(Redirect)、边缘节点类(Edge)以及到达类(Reach)。

在一实施例中,该方法还可以包括流媒体初始化阶段,将生成的流媒体对应的流媒体标识(mediaId)及其所在的流媒体服务器的主机名(hostName)添加到集成持久化节点(Global Persistent Node,GPN)上。在另一实施例中,仅将该流媒体对应的边缘节点(EP)的hostname添加到该GPN节点上。一般来说,一个流媒体服务器往往包括多个流媒体,则此时,流媒体的IP地址相同,必须再通过流媒体标识(mediaId)加以区分。这样,可以建立流媒体服务器之间和/或流媒体服务器和客户端之间的长连接,当遇到异常情况(例如网络中断时),只需要去GPN节点上提取相应的信息即可再次寻找到相应流媒体所在的主机并重新建立连接。

当前节点的流媒体服务器接收到数据包时,解析上游(上一节点)请求的数据包,得到该UpStreamType字段,从而能够获知上一节点类型。

在步骤S120中,根据所述上一节点类型执行预设操作。

在示例性实施例中,所述根据所述上一节点类型执行预设操作包括:当所述上一节点类型为客户端类时,根据所述上一跳类型和所述下一跳类型确定所述数据包的转发方向;根据所述转发方向发送路由请求;接收响应于所述路由请求返回的目标地址,其中所述目标地址为所述路由表中所述备选上一跳地址或者所述备选下一跳地址其中之一;根据所述目标地址将所述数据包转发至相应的下一节点。

判断如果该UpStreamType字段的上一节点类型为Client类,则表示收到的数据包是从客户端发来的,则选择其路由表中的D2Type=R(Redirect,重定向类)类型的非客户端类的下一条地址设置为其目标地址。

在示例性实施例中,所述预设字段还包括上一节点标识。其中所述上一节点标识可以为上一节点对应的流媒体服务器或者客户端的主机名(hostName),但本发明不限定于此。

在示例性实施例中,所述根据所述上一节点类型执行预设操作还包括:更改所述预设字段的上一节点类型为重定向类,且更改所述上一节点标识为当前接收所述数据包的流媒体服务器的标识;将更改后的所述预设字段封装进所述数据包后转发至所述下一节点。

该当前流媒体服务器确定下一跳的目标地址后,对该数据包进行封包,如果UpStreamType字段类型为client,则将其置为Redirect@hostName形式。

在示例性实施例中,所述根据所述上一节点类型执行预设操作包括:当所述上一节点标识为重定向类时,根据所述上一节点标识和所述路由表确定所述数据包的转发方向;根据所述转发方向发送路由请求;接收响应于所述路由请求返回的目标地址,其中所述目标地址为所述路由表中所述备选上一跳地址或者所述备选下一跳地址其中之一;根据所述目标地址将所述数据包转发至相应的下一节点。

例如,如果解析出来的UpStreamType字段的上一节点类型为Redirect类,则表示该数据包是经由转发节点而来的,这时需根据UpStreamType的Redirect@hostName格式,解析出hostName值,然后以hostName作为键值(key)从其路由表中查找其转发方向,并取另一个方向的目标地址(bestDest)作为其转发地址。

在示例性实施例中,所述根据所述目标地址将所述数据包转发至相应的下一节点包括:根据所述路由表中的所述上一跳类型或者所述下一跳类型判断所述下一节点是否为边缘节点类;当所述下一节点为所述边缘节点类时,更改所述预设字段的所述上一节点类型为终点类,且更改所述上一节点标识为当前接收所述数据包的流媒体服务器的标识;将更改后的所述预设字段封装进所述数据包后转发至所述下一节点。

例如,如果判断出下一跳地址对应的下一节点为Edge类(其路由表中的D类型设置为E),则查询GPN节点,找到该数据包的mediaId所在的EP,并路由到该EP节点上,并封装该数据包格式为reach@hostName格式。

在示例性实施例中,所述根据所述上一节点类型执行预设操作包括:当所述上一节点类型为到达类(reach)时,停止所述数据包的转发,处理相应的业务逻辑。

当该当前节点判断收到的数据包结构的UpStreamType字段的上一节点类型为reach,则表明该数据包已经到达相应的边缘节点,该数据包此次路由结束,则停止查找,直接处理业务逻辑。

本实施方式提供的用于流媒体转发的方法,针对复杂的多层流媒体网络拓扑,通过动态路由机制,能够提供高扩展性、高稳定性、高灵活性的流媒体转发路由方案。

另一方面,本发明实施例的用于流媒体转发的方法能够服务于流媒体跨洋业务,能够有效承载跨洋多媒体服务业务,并能够有效优化当前多层静态的扩展性较差,灵活性较低的结构,为跨洋流媒体业务提供更稳定的解决方案。

图3示意性示出根据本公开示例实施方式的另一种用于流媒体转发的方法的流程图。该用于流媒体转发的方法用于多层流媒体网络,所述多层流媒体网络包括多台流媒体服务器。所述流媒体服务器中配置有路由表,所述路由表包括所述流媒体服务器的下一跳信息,其中所述下一跳信息包括多个备选下一跳地址。

如图3所示,该用于流媒体转发的方法包括以下步骤。

在步骤S210中,接收上一节点发送的数据包。

当前节点对应的流媒体服务器接收上一节点对应的流媒体服务器发送的数据包。

在步骤S220中,发送路由请求。

在一实施例中,当为单向发送时,即已明确知道转发方向的情况下,该当前节点对应的流媒体服务器向一路由装置发送路由请求,该路由请求中包括该当前节点对应的流媒体服务器的标识信息例如主机名,该路由装置根据该主机名查找到该相应的流媒体服务器的路由表,从而返回该流媒体服务器对应的下一跳的目标地址。其中具体的该路由装置如何从多个备选下一跳地址中筛选下一跳的目标地址的方法参考下述实施例,在此不再详述。

在示例性实施例中,所述路由表还包括所述流媒体服务器的上一跳信息。在一实施例中,所述数据包可以包括预设字段。

在示例性实施例中,所述发送路由请求包括:根据所述预设字段和所述路由表确定所述数据包的转发方向;根据所述转发方向发送所述路由请求。

该数据包通过解析该数据包获得该预设字段能够获取该预设字段中的上一跳信息,例如上一节点类型及上一节点对应的流媒体服务器的主机名。根据该上一节点对应的流媒体服务器的主机名通过查找该路由表中的所述上一跳信息,能够确定该数据包的转发方向。

在步骤S230中,接收响应于所述路由请求返回的目标地址,其中所述目标地址为所述多个备选下一跳地址的其中之一。

在步骤S240中,根据所述目标地址将所述数据包转发至相应的下一节点。

图4示出根据本公开示例实施方式的一种路由方法的流程图。

如图4所示,该路由方法包括以下步骤。

在步骤S310中,根据节点类型配置流媒体服务器的路由表。

在上线前配置好每一个节点(每一流媒体服务器)的路由表。路由表主要配置为该节点的备选下一跳地址,可以包括拓扑上行和下行两个方向。配置路由表需根据节点类型,例如,如果该节点为边缘节点,则该节点的上一节点(Node)类型为Client。如果该节点本身为汇聚节点,则上一节点为边缘节点,则设置其上一节点的D Type值为E。

其中所述路由表包括所述流媒体服务器的上一跳信息和下一跳信息。

在示例性实施例中,所述上一跳信息包括多个备选上一跳地址,所述下一跳信息包括多个备选下一跳地址。

在示例性实施例中,所述方法还可以包括步骤S320:对所述路由表中的所述多个备选上一跳地址和所述多个备选下一跳地址对应的多个节点分别进行测试,获取测试结果。

在示例性实施例中,所述方法还可以包括步骤S330:根据所述测试结果确定所述流媒体服务器的所述多个备选上一跳地址中的上一跳最优地址和所述多个备选下一跳地址中的下一跳最优地址。

定时对所述多个备选下一跳地址和所述多个备选上一跳地址做TestService测试,可以包括上行和下行两个方向。TestService主要是对路由表中的备选下一跳地址做N次ping。对每次ping服务返回的结果做排序。如果做降序排列,则更新相应流媒体服务器的默认下一跳地址即目标地址为TestService排序后的第一条结果。如果做升序排列,则更新相应流媒体服务器的默认下一跳地址即目标地址为TestService排序后的最后一条结果。

在一实施例中,可以根据所述备选下一跳地址和/或所述备选上一跳地址对应的流媒体服务器的负载情况、CPU利用率、内存利用率等中的一项或者多项的综合评分来对其进行排序,选择性能最优的流媒体服务器作为下一跳的目标流媒体服务器。

在示例性实施例中,所述方法还可以包括步骤S340:接收路由请求。

其中,路由装置接收当前接收到数据包的流媒体服务器发送的所述路由请求,所述路由请求包括该流媒体服务器的主机名(用于查找对应的路由表)、转发方向(用于确定选择多个备选上一跳地址还是多个备选下一跳地址中的一个作为目标地址)。

在示例性实施例中,所述方法还可以包括步骤S350:根据所述路由请求将所述上一跳最优地址或者所述下一跳最优地址作为目标地址发送至所述流媒体服务器。

根据所述路由请求中的转发方向将相应的所述上一跳最优地址或者所述下一跳最优地址作为目标地址返回至该当前接收到数据包的流媒体服务器。

需要说明的是,在一实施例中,上述步骤S320-330和上述步骤S340-S350并没有先后之后,即路由装置定时测试筛选上行和下行方向的所述上一跳最优地址、所述下一跳最优地址与流媒体服务器接收数据包后发送路由请求之间是异步的,这样,当路由装置接收到路由请求后,可以实时的将已经筛选好的所述上一跳最优地址或者所述下一跳最优地址返回给该发出路由请求的流媒体服务器,流媒体服务器不需要等待。

在另一实施例中,所述路由装置也可以等待接收到流媒体服务器发送的路由请求之后,再开始上述测试筛选排序工作,找出对应的路由表的所述上一跳最优地址或者所述下一跳最优地址返回给该发出路由请求的流媒体服务器。

本实施方式提供的路由方法,通过路由装置给多层流媒体网络中的每一流媒体服务器配置路由表,该路由表中包括上行和下行两个方向的多个备选上一跳地址和多个备选下一跳地址,通过测试实时选择最优的目标地址返回给当前接收到数据包的流媒体服务器,从而该流媒体服务器能够根据各流媒体服务器的实时性能情况找到最优的路由路径,从而实现了流媒体转发的动态路由。

图5示出根据本公开示例实施方式的另一种路由方法的流程图。

如图5所示,该路由方法包括以下步骤。

在步骤S510中,配置流媒体服务器的路由表,所述路由表包括所述流媒体服务器的下一跳信息,其中所述下一跳信息包括多个备选下一跳地址。

在示例性实施例中,所述下一跳信息还包括下一跳节点类型。

在示例性实施例中,所述节点包括边缘节点和转发节点。

在示例性实施例中,所述转发节点包括汇聚节点和核心节点,其中所述核心节点之间通过专线网络通信。

在示例性实施例中,所述配置流媒体服务器的路由表包括:当所述节点为边缘节点时,配置所述边缘节点的路由表为第一路由表类型;当所述节点为转发节点时,配置所述转发节点的路由表为第二路由表类型。

在示例性实施例中,所述路由表还包括所述流媒体服务器的上一跳信息。

在步骤S520中,对所述流媒体服务器的所述多个备选下一跳地址对应的多个节点分别进行测试,获取测试结果。

在步骤S530中,根据所述测试结果确定所述流媒体服务器的下一跳最优地址,其中所述下一跳最优地址为所述多个备选下一跳地址的其中之一。

在示例性实施例中,所述方法还包括:接收路由请求;根据所述路由请求将所述下一跳最优地址作为目标地址发送至所述流媒体服务器,其中所述流媒体服务器根据所述目标地址将接收到的数据包转发至相应的下一节点。

在示例性实施例中,还包括:当所述上一跳信息中包括多个备选上一跳地址时,对所述多个备选上一跳地址对应的多个节点分别进行测试,获取测试结果;根据所述测试结果确定所述流媒体服务器的上一跳最优地址,其中所述上一跳最优地址为所述多个备选上一跳地址的其中之一。

本发明实施例中的其他内容参考上述实施例,在此不再赘述。

下面对本发明实施例提供的装置进行描述,由于其相应模块的实现过程在上述方法实施例中已经有过详细阐述,上述方法实施例中的内容均可应用于下述的装置实施例。

图6示出根据本公开示例实施方式的一种用于流媒体转发的装置的框图。

如图6所示,该用于流媒体转发的装置100用于多层流媒体网络,述多层流媒体网络包括多台流媒体服务器。在一实施例中,所述流媒体服务器中配置有路由表,所述路由表包括所述流媒体服务器的上一跳信息和下一跳信息。在另一实施例中,所述上一跳信息包括上一跳类型和备选上一跳地址,所述下一跳信息包括下一跳类型和备选下一跳地址。

该装置100包括:数据包接收模块110以及执行模块120。

其中数据包接收模块110用于接收上一节点发送的数据包,所述数据包包括预设字段,所述预设字段包括上一节点类型。

其中执行模块120用于根据所述上一节点类型执行预设操作。

在示例性实施例中,所述预设字段还包括上一节点标识。

在示例性实施例中,执行模块120包括:转发方向确定单元,用于当所述上一节点类型为重定向类时,根据所述上一节点标识和所述路由表确定所述数据包的转发方向;发送请求单元,用于根据所述转发方向发送路由请求;目标地址接收单元,用于接收响应于所述路由请求返回的目标地址,其中所述目标地址为所述路由表中所述备选上一跳地址或者所述备选下一跳地址其中之一;数据包转发单元,用于根据所述目标地址将所述数据包转发至相应的下一节点。

图7示出根据本公开示例实施方式的另一种用于流媒体转发的装置的框图。该用于流媒体转发的装置200用于多层流媒体网络,所述多层流媒体网络包括多台流媒体服务器。其中所述流媒体服务器中配置有路由表,所述路由表包括所述流媒体服务器的下一跳信息,其中所述下一跳信息包括多个备选下一跳地址。

如图7所示,该用于流媒体转发的装置200包括数据包接收模块210、发送请求模块220、目标地址接收模块230以及数据包转发模块240。

其中数据包接收模块210用于接收上一节点发送的数据包。

其中发送请求模块220用于发送路由请求。

在示例性实施例中,所述路由表还包括所述流媒体服务器的上一跳信息。在一实施例中,所述数据包包括预设字段。

在示例性实施例中,发送请求模块220包括:转发方向确定单元,用于根据所述预设字段和所述路由表确定所述数据包的转发方向;发送请求单元,用于根据所述转发方向发送所述路由请求。

其中目标地址接收模块230用于接收响应于所述路由请求返回的目标地址,其中所述目标地址为所述多个备选下一跳地址的其中之一。

其中数据包转发模块240用于根据所述目标地址将所述数据包转发至相应的下一节点。

图8示出根据本公开示例实施方式的一种路由装置的框图。

如图8所示,该路由装置300包括第一配置模块310、第一测试模块320以及第一最优地址确定模块330。

第一配置模块310用于根据节点类型配置流媒体服务器的路由表,其中所述路由表包括所述流媒体服务器的上一跳信息和下一跳信息,所述上一跳信息包括多个备选上一跳地址,所述下一跳信息包括多个备选下一跳地址。

第一测试模块320用于对所述路由表中的所述多个备选上一跳地址和所述多个备选下一跳地址对应的多个节点分别进行测试,获取测试结果。

第一最优地址确定模块330用于根据所述测试结果确定所述流媒体服务器的所述多个备选上一跳地址中的上一跳最优地址和所述多个备选下一跳地址中的下一跳最优地址。

图9示出根据本公开示例实施方式的另一种路由装置的框图。

如图9所示,该路由装置400包括第二配置模块410、第二测试模块420以及第二最优地址确定模块430。

其中第二配置模块410用于配置流媒体服务器的路由表,所述路由表包括所述流媒体服务器的下一跳信息,其中所述下一跳信息包括多个备选下一跳地址。

其中第二测试模块420用于对所述流媒体服务器的所述多个备选下一跳地址对应的多个节点分别进行测试,获取测试结果。

其中第二最优地址确定模块430用于根据所述测试结果确定所述流媒体服务器的下一跳最优地址,其中所述下一跳最优地址为所述多个备选下一跳地址的其中之一。

应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施方式。

图2、3、4或5示出根据本公开示例实施方式的用于流媒体转发的方法或者路由方法的流程图。该方法可例如利用如图6、7、8或9所示的用于流媒体转发的装置或者路由装置实现,但本公开不限于此。需要注意的是,图2、3、4或5仅是根据本公开示例实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,图2、3、4或5所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块/进程/线程中同步或异步执行的。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。

以上具体地示出和描述了本公开的示例性实施方式。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

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