CN111385298B - 数据传输的方法、介质、装置和计算设备 - Google Patents

数据传输的方法、介质、装置和计算设备 Download PDF

Info

Publication number
CN111385298B
CN111385298B CN202010146945.XA CN202010146945A CN111385298B CN 111385298 B CN111385298 B CN 111385298B CN 202010146945 A CN202010146945 A CN 202010146945A CN 111385298 B CN111385298 B CN 111385298B
Authority
CN
China
Prior art keywords
server
target
rooms
determining
machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010146945.XA
Other languages
English (en)
Other versions
CN111385298A (zh
Inventor
刘宝
田强
钟奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Youdao Information Technology Jiangsu Co ltd
Original Assignee
Netease Youdao Information Technology Jiangsu Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Youdao Information Technology Jiangsu Co ltd filed Critical Netease Youdao Information Technology Jiangsu Co ltd
Priority to CN202010146945.XA priority Critical patent/CN111385298B/zh
Publication of CN111385298A publication Critical patent/CN111385298A/zh
Application granted granted Critical
Publication of CN111385298B publication Critical patent/CN111385298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1013Network architectures, gateways, control or user entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2183Cache memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明的实施方式提供了一种数据传输的方法。该方法包括:获取多个机房的连通性关系以及两两连通机房之间的默认权重,其中多个机房中的每个机房各自包括多个服务器;获取机房状态及每个机房内的每个服务器的状态;根据机房状态及每个机房内的每个服务器的状态,从多个机房中的多个服务器中确定发布服务器和接入服务器;根据机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第一路由;以及根据第一路由,在发布服务器与接入服务器之间传输目标数据。本发明还提供了一种数据传输的装置、介质和计算设备。

Description

数据传输的方法、介质、装置和计算设备
技术领域
本发明的实施方式涉及计算机领域,更具体地,本发明的实施方式涉及数据传输的方法、介质、装置和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
现有直播方案通过视频CDN(Content Delivery Network,内容分发网络)完成。即视频CDN以分布在例如全国各地BGP(Border Gateway Protocol,边界网关协议)机房的服务器为中心节点,以单线机房,如电信机房、联通机房、移动机房等,为边缘节点,构建一个全国性的全网覆盖网络,并将视频内容缓存或镜像到这些边缘节点上,从而为不同地域的用户提供视频内容加速服务,以实现用户就近访问服务器。
发明内容
但是,现有直播方案在传输层使用TCP协议,TCP协议在出现网络拥堵、抖动的时候,只能以牺牲延迟来保障流畅性。因此随着用户观看时间的增长,现有直播方案延迟会越来越大。为此,非常需要一种改进的数据传输的方法,以降低延迟,保证数据传输的稳定性。
在本上下文中,本发明的实施方式期望提供一种数据传输的方法。
在本发明实施方式的第一方面中,提供了一种数据传输的方法,包括:获取多个机房的连通性关系以及两两连通机房之间的默认权重,其中多个机房中的每个机房各自包括多个服务器;获取机房状态及每个机房内的每个服务器的状态;根据机房状态及每个机房内的每个服务器的状态,从多个机房中的多个服务器中确定发布服务器和接入服务器;根据机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第一路由;以及根据第一路由,在发布服务器与接入服务器之间传输目标数据。
在本发明的一个实施例中,该方法还包括:根据机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第二路由;以及在根据第一路由在发布服务器与接入服务器之间传输目标数据的同时,根据第二路由,在发布服务器与接入服务器之间传输目标数据。
在本发明的另一实施例中,该连通性关系包括第一连通性关系和第二连通性关系;第一路由为具有第一连通性关系的多个机房之间的路由关系,第二路由为具有第二连通性关系的多个机房之间的路由关系。
在本发明的又一个实施例中,该获取机房状态,包括:针对多个机房中的每个机房,获取机房与多个机房中的其他机房之间的第一链路的通信质量参数;确定每一条第一链路的通信质量参数是否小于第一阈值;以及根据通信质量参数小于第一阈值的第一链路的数量,确定机房的状态。
在本发明的再一个实施例中,该获取每个机房内的每个服务器的状态,包括:针对每个机房中的每个服务器,获取服务器与其他机房的服务器之间的第二链路的通信质量参数;确定每一条第二链路的通信质量参数是否小于第二阈值;以及根据通信质量参数小于第二阈值的第二链路的数量,确定服务器的状态。
在本发明的再一个实施例中,该通信质量参数,包括丢包率和延迟中的至少一个。
在本发明的再一个实施例中,该根据机房状态及每个机房内的每个服务器的状态,从多个机房中的多个服务器中确定发布服务器和接入服务器,包括:从多个机房中的服务器中确定与发布用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为发布服务器;以及从多个机房中的服务器中确定与接入用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为接入服务器。
在本发明的再一个实施例中,该根据机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第一路由,包括:针对具有第一连通性关系的多个机房中的每个机房,根据机房的连通性关系、默认权重和机房状态,从多个机房中确定多个目标机房,并确定多个目标机房彼此之间的路由关系;针对多个目标机房中的每个目标机房,根据目标机房内的每个服务器的状态,从目标机房中的多个服务器中确定目标服务器;以及根据多个目标机房彼此之间的路由关系和多个目标服务器,确定发布服务器与接入服务器之间的第一路由。
在本发明的再一个实施例中,该根据机房的连通性关系、默认权重和机房状态,从多个机房中确定多个目标机房,并确定多个目标机房彼此之间的路由关系,包括:根据机房的默认权重和机房状态,确定机房之间的目标权重;以及根据目标权重,从多个机房中确定多个目标机房,并确定多个目标机房彼此之间的路由关系。
在本发明的再一个实施例中,该根据所述机房的默认权重和机房状态,确定所述机房之间的目标权重,包括:根据所述机房状态,确定机房状态系数;以及针对所述多个机房中的任意两个机房,根据以下公式计算所述两个机房之间的目标权重:Wobj=Wdef*C1,其中,所述Wobj为所述两个机房之间的目标权重,所述Wdef为所述两个机房之间的默认权重,所述C1为所述两个机房中任意一个机房的机房状态系数。
在本发明的再一个实施例中,该根据目标权重,从多个机房中确定多个目标机房,并确定多个目标机房彼此之间的路由关系,包括:根据机房之间的目标权重,确定多个机房彼此之间的最短路径;以及根据最短路径,从多个机房中确定发布服务器所在机房与接入服务器所在机房之间的多个目标机房,并确定多个目标机房彼此之间的路由关系。
在本发明的再一个实施例中,该根据目标机房内的每个服务器的状态,从目标机房中的多个服务器中确定目标服务器,包括:从目标机房内的多个服务器中随机确定一个第一服务器;确定第一服务器是否处于预设状态;若第一服务器处于预设状态,则将第一服务器确定为目标服务器;以及若第一服务器没有处于预设状态,则按照预设顺序从目标机房内的其他服务器中确定处于预设状态的第二服务器,作为目标服务器。
在本发明的再一个实施例中,该根据第一路由,在发布服务器与接入服务器之间传输目标数据,包括:根据第一路由,确定与每个目标服务器对应的三元订阅关系,三元订阅关系用于表征目标服务器、目标服务器的上一跳服务器和目标服务器的下一跳服务器之间的对应关系;以及将多个三元订阅关系分别发送至多个目标服务器,以指示多个目标服务器根据三元订阅关系传输目标数据。
在本发明实施方式的第二方面中,提供了一种数据传输的装置,包括:第一获取模块,用于获取多个机房的连通性关系以及两两连通机房之间的默认权重,其中多个机房中的每个机房各自包括多个服务器;第二获取模块,用于获取机房状态及每个机房内的每个服务器的状态;第一确定模块,用于根据机房状态及每个机房内的每个服务器的状态,从多个机房中的多个服务器中确定发布服务器和接入服务器;第二确定模块,用于根据机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第一路由;以及第一传输模块,用于根据第一路由,在发布服务器与接入服务器之间传输目标数据。
在本发明的一个实施例中,所述装置还包括:第三确定模块,用于根据所述机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第二路由;以及第二传输模块,用于在根据所述第一路由在所述发布服务器与所述接入服务器之间传输目标数据的同时,根据所述第二路由,在所述发布服务器与所述接入服务器之间传输所述目标数据。
在本发明的另一个实施例中,所述装置还包括:所述连通性关系包括第一连通性关系和第二连通性关系;所述第一路由为具有第一连通性关系的多个机房之间的路由关系,所述第二路由为具有第二连通性关系的多个机房之间的路由关系。
在本发明的再一个实施例中,所述第二获取模块,还用于:针对所述多个机房中的每个机房,获取所述机房与多个机房中的其他机房之间的第一链路的通信质量参数;确定每一条第一链路的通信质量参数是否小于第一阈值;以及根据所述通信质量参数小于第一阈值的第一链路的数量,确定所述机房的状态。
在本发明的再一个实施例中,所述第二获取模块,还用于:针对所述每个机房中的每个服务器,获取所述服务器与其他机房的服务器之间的第二链路的通信质量参数;确定每一条第二链路的通信质量参数是否小于第二阈值;以及根据所述通信质量参数小于第二阈值的第二链路的数量,确定所述服务器的状态。
在本发明的再一个实施例中,所述通信质量参数,包括丢包率和延迟中的至少一个。
在本发明的再一个实施例中,所述装置还包括:所述第一确定模块,还用于:从所述多个机房中的服务器中确定与所述发布用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为所述发布服务器;以及从所述多个机房中的服务器中确定与所述接入用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为所述接入服务器。
在本发明的再一个实施例中,所述第二确定模块,还用于:针对具有第一连通性关系的多个机房中的每个机房,根据所述机房的连通性关系、默认权重和机房状态,从所述多个机房中确定多个目标机房,并确定所述多个目标机房彼此之间的路由关系;针对所述多个目标机房中的每个目标机房,根据所述目标机房内的每个服务器的状态,从所述目标机房中的多个服务器中确定目标服务器;以及根据所述多个目标机房彼此之间的路由关系和多个所述目标服务器,确定所述发布服务器与所述接入服务器之间的第一路由。
在本发明的再一个实施例中,所述第二确定模块,还用于:根据所述机房的默认权重和机房状态,确定所述机房之间的目标权重;以及根据所述目标权重,从所述多个机房中确定多个目标机房,并确定所述多个目标机房彼此之间的路由关系。
在本发明的再一个实施例中,所述第二确定模块,还用于:根据所述机房状态,确定机房状态系数;以及针对所述多个机房中的任意两个机房,根据以下公式计算所述两个机房之间的目标权重:Wobj=Wdef*C1,其中,所述Wobj为所述两个机房之间的目标权重,所述Wdef为所述两个机房之间的默认权重,所述C1为所述两个机房中任意一个机房的机房状态系数。
在本发明的再一个实施例中,所述第二确定模块,还用于:根据所述每个机房之间的目标权重,确定所述多个机房彼此之间的最短路径;以及根据所述最短路径,从所述多个机房中确定所述发布服务器所在机房与所述接入服务器所在机房之间的多个目标机房,并确定所述多个目标机房彼此之间的路由关系。
在本发明的再一个实施例中,所述第二确定模块,还用于:从所述目标机房内的多个服务器中随机确定一个第一服务器;确定所述第一服务器是否处于预设状态;若所述第一服务器处于所述预设状态,则将所述第一服务器确定为所述目标服务器;以及若所述第一服务器没有处于所述预设状态,则按照预设顺序从所述目标机房内的其他服务器中确定处于预设状态的第二服务器,作为所述目标服务器。
在本发明的再一个实施例中,第一传输模块,还用于:根据所述第一路由,确定与每个目标服务器对应的三元订阅关系,所述三元订阅关系用于表征所述目标服务器、目标服务器的上一跳服务器和所述目标服务器的下一跳服务器之间的对应关系;以及将多个所述三元订阅关系分别发送至所述多个目标服务器,以指示所述多个目标服务器根据所述三元订阅关系传输目标数据。
在本发明实施方式的第三方面中,提供了一种计算设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上所述的方法。
在本发明实施方式的第四方面中,提供了一种介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现如上所述的方法。
根据本发明实施方式的数据传输的方法,可以降低发布服务器与接入服务器之间的延迟,从而增加数据传输的稳定性,为用户带来了更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的应用场景示意图;
图2A示意性地示出了根据本发明实施例的数据传输的方法流程图;
图2B示意性示出了根据本发明实施例的确定第一路由的示例流程图;
图3示意性示出了根据本发明另一实施例的数据传输的方法流程图;
图4示意性地示出了根据本发明再一实施例的机房网络示意图;
图5示意性地示出了根据本发明再一实施例的媒体处理服务器网络的示意图;
图6示意性地示出了根据本发明实施例的示例性介质;
图7A示意性地示出了根据本发明实施例的数据传输的装置的方框图;
图7B示例性公开了另一实施例的数据传输的装置的方框图;以及
图8示意性地示出了根据本发明实施例的可以用于数据传输的计算设备。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种数据传输的方法、介质、装置和计算设备。
在本文中,需要理解的是,所涉及的术语域(Domain)表示一种范围,一般一个国家为一个域;大区(Region),一个域内可以分为几个大区,大区间一般具有地理位置跨度;机房(Site),同一机房内服务可内网访问,一个机房中包括一组满足相关条件的服务器。
有向图(oriented graph),一个有向图D是指一个有序三元组(V(D),A(D),ψ(D)),其中ψ(D)为关联函数,ψ(D)使A(D)中的每一个元素(称为有向边或弧)对应于V(D)中的一个有序元素(称为顶点或点)对。
远程过程调用(Remote Procedure Call,RPC),是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
媒体控制服务(Media Control Service,MCS),包括会话管理,机房路由拓扑计算,媒体处理服务器路由拓扑计算。
媒体处理服务(Media Process Service,MPS),包括两方面,一方面接收来自客户端的信令并转化为内部操作,提供音视频会话的原语操作接口。另一方面,通过媒体处理单元(Media Process Unit,MPU)组件提供媒体接入、媒体转发、媒体代理等服务。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,现有直播方案在传输层使用TCP协议,TCP协议在网络拥堵、抖动的时候,只能以牺牲延迟来保障流畅性。因此,随着用户观看时间的增长,现有直播方案延迟会越来越大。为了解决现有直播方案存在的问题,本发明的实施例根据机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定路由;并在机房状态和服务器状态改变时,实时调整路由,选择延迟较低的路径传输数据,从而保证了直播的稳定性,提高了用户体验。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1,根据本发明的实施例的应用场景,可以根据用户的分布情况和机器资源情况划分多个大区。例如图1中的北方区域和西南区域。每个大区内分别可以包括多个机房。机房可以包括边缘机房11和核心机房12。其中,边缘机房11是单线机房,只能接入单个运营商。核心机房12为边界网关协议(Border Gateway Protocol,BGP)机房,该机房是多线机房,可接入多个运营商。核心机房12还可以与国外的边缘机房相互连通。
需要说明的是,本应用场景中的大区划分方法仅为示例。在实际应用中,还可以采用其他划分方式,例如可以分将中国大陆地区为华东、华西、华南、华北四个大区,其中,华北大区包括北京、天津、河北等省份,华南大区包括广东、广西、湖南等省份,华东大区包括浙江、江苏、上海等省份,华西大区包括四川、重庆、贵州等省份。
根据本发明的实施例,机房彼此之间可以相互连通。例如在本应用场景中,所有的核心机房都可以相互连通,同一个大区中的边缘机房都可以与本大区的核心机房相互连通,同一运营商的边缘机房彼此之间都可以相互连通。例如在本应用场景中,根据机房和大区定义了三种连通性关系:将核心机房之间的连通关系定义为主要关系(Master);将边缘机房与同一大区的核心机房之间的连通关系定义为必选关系(Force);将同一运营商的边缘机房之间的连通关系定义为备选关系(Slave)。
其中,多个机房中的每个机房各自包括多个服务器。根据本发明的实施例,机房中的服务器的类型例如可以为媒体处理服务器(MPS)和媒体控制服务器(MCS)。媒体处理服务器可以用于提供媒体处理服务,媒体控制服务器可以用于提供媒体控制服务。媒体处理服务器有两种角色,分别为核心媒体服务器(Core)和中继服务器(Relay)。其中,中继服务器对上层是不可见的,用户也无法接入中继服务器,只起到转发媒体流的作用。
示例性方法
下面结合图1的应用场景,参考图2A~2B来描述根据本发明示例性实施方式的数据传输的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
如图2A所示,该方法包括操作S210~S250。
在操作S210,获取多个机房的连通性关系以及两两连通机房之间的默认权重。
根据本发明的实施例,机房的连通性关系例如可以包括主要关系(Master)、必选关系(Force)和备选关系(Slave)中的一种或多种。
根据本发明的实施例,可以根据相互连通的机房之间的距离远近为机房设置默认权重。例如,默认权重可以包括1、2、3三个数值,数值越小代表距离越近,优先级越高。例如,将同一个大区内的连通的机房之间的默认权重都设置为1;其他大区中的机房到华东大区中的机房之间的默认权重设置为2;华北、华南、华西大区中相互连通的机房之间的默认权重设置为3。
然后,在操作S220,获取机房状态及每个机房内的每个服务器的状态。
根据本发明的实施例,服务器例如可以为媒体处理服务器。
根据本发明的实施例,获取机房状态的操作例如可以包括:针对多个机房中的每个机房,获取机房与多个机房中的其他机房之间的第一链路的通信质量参数;确定每一条第一链路的通信质量参数是否小于第一阈值;根据通信质量参数小于第一阈值的第一链路的数量,确定机房的状态。其中,第一链路代指机房之间的链路。更具体地,第一链路的通信质量参数代指机房内的所有服务器之间链路(下面描述的第二链路)的通信质量参数的平均值或者最差值。
根据本发明的实施例,获取每个机房内的每个服务器的状态的操作例如可以包括,针对每个机房中的每个服务器,获取服务器与其他机房的服务器之间的第二链路的通信质量参数;确定每一条第二链路的通信质量参数是否小于第二阈值;以及根据通信质量参数小于第二阈值的第二链路的数量,确定服务器的状态。其中,第二链路代指服务器之间的链路,第一阈值与第二阈值可以相同也可以不同。
根据本发明的实施例,通信质量参数例如可以包括丢包率、延迟等可以用于衡量链路通信质量的参数。示例性地,本实施例中,通信质量参数为丢包率。丢包率的第一阈值为15%。丢包率的第二阈值为15%。
根据本发明的实施例,为方便表示,可以将链路划分为好(Good)、正常(Normal)、差(Bad)三个状态。每个状态对应的丢包率如下表1所示。其中,plr为链路的丢包率,当0≤plr<5时,该链路的状态为Good,当5≤plr<15,该链路的状态为Normal,当plr≥15时,该链路的状态为Bad。
plr(%) 状态
0≤plr<5 Good
5≤plr<15 Normal
plr≥15 Bad
表1
相应地,对于一个媒体处理服务器来说,如果该媒体处理服务器到其他媒体处理服务器之间的链路中状态为差的链路数量占链路总数的一半以上,则认为该媒体处理服务器的状态为差;如果该媒体处理服务器到其他媒体处理服务器之间的链路中状态为好的链路数量占链路总数的一半以上,则认为该媒体处理服务器的状态为好;如果该媒体处理服务器到其他媒体处理服务器之间的链路中状态为差的链路数量和状态为好的链路数量均未达到链路总数的一半以上,则认为该媒体处理服务器的状态为正常。根据本发明的实施例,选择两个媒体处理服务器双向链接状态最差的链路的状态作为这两个媒体处理服务器之间的链路状态。
根据本发明的另一些实施例,还需要对媒体控制服务器(MCS)到媒体处理服务器进行TCP连通性的检查。如果媒体控制服务器无法到达该媒体处理服务器,也认为该媒体处理服务器的状态是差(Bad)。另外,还可以分析出每台媒体处理服务器的接入延迟信息、卡顿信息等,并依据这些信息对媒体处理服务器的状态进行辅助判断。
对于一个机房来说,如果该机房到其他机房之间的链路中状态为差的链路数量占链路总数的一半以上,则认为该机房的状态为差;如果该机房到其他机房之间的链路中状态为好的链路数量占链路总数的一半以上,则认为该机房的状态为好;如果该机房到其他机房之间的链路中状态为差的链路数量和状态为好的链路数量均未达到链路总数的一半以上,则认为该机房的状态为正常。同时如果该机房内没有核心媒体服务器(角色为核心(Core)的媒体服务器),或者半数以上核心媒体服务器状态为差(Bad),则该机房的状态也为差(Bad)。根据本发明的实施例,每台媒体处理服务器都有所属的机房,对于机房之间的链路状态,可以选取相互连通两个机房的链路中(包括正向和反向的链路)状态最差的链路的状态作为两个机房之间的链路状态。
根据本发明的实施例,可以通过链路探测机制和客户端数据实时分析数据系统,实时更新每个机房、每台服务器的状态、连通性以及当前负载情况。
接下来,在操作S230,根据机房状态及每个机房内的每个服务器的状态,从多个机房中的多个服务器中确定发布服务器和接入服务器。
根据本发明的实施例,操作S230例如可以包括:从多个机房中的服务器中确定与发布用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为发布服务器;以及从多个机房中的服务器中确定与接入用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为接入服务器。
根据本发明的实施例,可以通过判断发布用户的IP地址确定发布用户的地理位置,选择与该地理位置物理距离最近的,且状态为正常状态或好的服务器,作为发布服务器。同理,可以根据接入用户的IP地址确定接入用户的地理位置,选择与该地理位置物理距离最近的,且状态为正常或好状态的服务器,作为接入服务器。
接下来,在操作S240,根据机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第一路由。
图2B示意性示出了根据本发明实施例的确定第一路由的示例流程图。如图2B所示,操作S240例如可以包括操作S241~S243。
在操作S241,针对具有第一连通性关系(第一连通性关系可以包括主要关系和必选关系)的多个机房中的每个机房,根据机房的连通性关系、默认权重和机房状态,从多个机房中确定多个目标机房,并确定多个目标机房彼此之间的路由关系。
根据本发明的实施例,操作S241例如可以包括根据机房的默认权重和机房状态,确定机房之间的目标权重。然后根据机房之间的目标权重,确定机房彼此之间的最短路径。接着根据最短路径,从机房中确定发布服务器所在机房与接入服务器所在机房之间的多个目标机房,并确定各目标机房彼此之间的路由关系。
根据本发明的实施例,可以根据机房状态,确定与机房状态相对应的机房状态系数,然后根据机房状态系数和默认权重,计算机房之间的目标权重。其中,确定机房状态系数的方法可以如表2所示,当机房状态为好(Good)和正常(Normal)时,机房状态系数为1,机房状态为差(Bad)时,机房状态系数为4。
状态 机房状态系数
Good 1
Normal 1
Bad 4
表2
在确定机房状态系数后,可以根据以下公式计算机房之间的目标权重:
对于任意两个机房A与机房B,其目标权重Wobj=Wdef*C1,其中,Wdef为机房A与机房B之间的默认权重,C1为机房A的机房状态系数或机房B的机房状态系数。示例性地,C1可以为这两个机房中作为下一跳的机房的机房状态系数。
根据本发明的实施例,可以通过迪杰斯特拉算法(Dijkstra)计算出该机房到其他每个机房的最短路径。
在操作S242,针对多个目标机房中的每个目标机房,根据目标机房内的每个服务器的状态,从目标机房中的多个服务器中确定目标服务器。
根据本发明的实施例,操作S242例如可以包括从目标机房内的多个服务器中随机确定一个媒体服务器,即第一服务器,确定该第一服务器是否处于预设状态。若该第一服务器处于预设状态,则将该第一服务器确定为目标服务器;若该第一服务器没有处于预设状态,则按照预设顺序从目标机房内的其他服务器中确定另一个处于预设状态的媒体服务器,即第二服务器,作为目标服务器。目标服务器可以用于作为目标机房的代理进行数据传输。
根据本发明的实施例,预设状态例如可以为正常或好状态。预设顺序例如可以为服务器编号的顺序。基于此,操作S242例如可以包括随机选择一个服务器,若该服务器为正常或好状态,则将该服务器作为机房的代理,即目标服务器;否则,依照服务器编号的顺序遍历所有服务器,选择一台状态为好的服务器作为该机房的代理,如果不存在状态为好的服务器,则选择一台状态为正常的服务器作为代理。如果该机房的服务器状态都为差,则重新计算路由。
在操作S243,根据多个目标机房彼此之间的路由关系和多个目标服务器,确定发布服务器与接入服务器之间的第一路由。
根据本发明的实施例,根据机房的路由关系,将该路由关系中的路由节点由目标机房替换为该目标机房中的目标服务器,即以目标服务器代表目标机房,从而得到第一路由。
然后,在操作S250,根据第一路由,在发布服务器与接入服务器之间传输目标数据。
根据本发明的实施例,根据第一路由所指示的路由路径,依次经过每个目标机房中的目标服务器,在发布服务器与接入服务器之间传输目标数据。其中,目标数据例如可以为音视频流数据。
根据本发明的实施例,操作S250例如可以包括根据第一路由,确定与每个目标服务器对应的三元订阅关系,将多个三元订阅关系分别发送至多个目标服务器,以指示多个目标服务器根据所述三元订阅关系传输目标数据。其中,三元订阅关系用于表征目标服务器、目标服务器的上一跳服务器和目标服务器的下一跳服务器之间的对应关系。通过使用三元订阅关系,可以避免二元订阅关系产生回路的问题。
三元订阅关系例如可以表示为<from,via,to>,其中,via表示该三元订阅关系所针对的目标服务器,from表示该目标服务器的上一跳服务器,to表示该目标服务器的下一跳服务器。
根据本发明的实施例,可以通过媒体处理服务器(MPS)或媒体处理服务器集群对用户操作进行代理,转发给统一的媒体控制服务器(MCS),由统一的控制服务器根据用户的发布订阅信息生成机房拓扑和服务拓扑。并根据该服务拓扑,生成一批媒体流订阅任务,接着调用(Remote Procedure Call,RPC)媒体处理服务器(MPS)中的媒体处理单元(MPU)进行相关的媒体流转发。通过该机制可以实现大规模的流媒体网络分发。
根据本发明的实施例,可以定期更新的媒体流服务拓扑,添加新的订阅关系任务和取消订阅关系任务。其中,会等待一个定时周期后执行取消订阅关系的任务,以避免因为客户端临时取消订阅或网络抖动造成重新订阅。
根据本发明实施方式的数据传输的方法,可以降低发布服务器与接入服务器之间媒体流传输的延迟和网络开销,从而增加服务的稳定性,为用户带来了更好的体验。
图3示意性示出了根据本发明另一实施例的数据传输的方法流程图。
如图3所示,该方法除了操作S210~S250之外,还包括S360~S370。
在操作S360,根据机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第二路由。
在操作S370,在根据第一路由在发布服务器与接入服务器之间传输目标数据的同时,根据第二路由,在发布服务器与接入服务器之间传输目标数据。
根据本发明的实施例,在具有第一连通关系的服务器之间传输目标数据的同时,还可以在具有第二连通关系的服务器之间的传输数据,经由第一路由和第二路由同时传输数据,两条路由线路彼此之间互为主备关系,从而保证数据传输的稳定性。
根据本发明的实施例,第二路由为具有第二连通性关系的多个机房之间的路由关系。第二连通关系与第一连通关系不同。示例性地,本实施例中,第二连通关系为备选关系(Slave)和必选关系(Force)。
除了机房之间的连通性关系不一样之外,第二路由的确定方法与前面描述的第一路由的确定方法类似,这里不再详细描述。
现有直播方案没有主、从实时双线路备份机制,因此无法实现实时无感知切换线路。根据本发明实施例,在根据第一路由在发布服务器与接入服务器之间传输目标数据的同时,根据第二路由,在发布服务器与接入服务器之间传输目标数据,即实时计算主、从两路路由策略,双线路上的媒体处理服务器都订阅媒体流,任何一条线路出现问题,可以实现实时无感知切换,从而保障了服务的稳定性,为用户带来了更好的体验。
图4示意性示出了根据本发明再一实施例的机房网络示意图。下面结合图4和具体实施例,对计算第一路由和第二路由的方法进行说明。
如图4所示,假设圆形代表同一运营商的边缘机房,长方形代表核心机房。边缘机房A、B、G以及核心机房C、D、E的连通关系如图4中的箭头所示,Force表示必选关系,Master表示主要关系,Slave表示备选关系。为了简化说明,假设所有机房之间的默认权重都为1,机房状态除了E的状态为差(Bad),其余机房都为好(Good)。假设有用户在核心机房C进行推流,即向网络发布音视频数据,用户在边缘机房G进行订阅。由于E的状态为差(Bad),则对应的机房状态系数为4;其余机房都为好(Good),则对应的机房状态系数为1。然后将机房状态系数和默认权重代入目标权重计算公式Wobj=Wdef*C1,以计算各机房之间路径的目标权重。其中,Wdef为待计算的两个机房之间的默认权重,C1为这两个机房中作为下一跳的机房的机房状态系数。更具体地,对于C->E来说,其目标权重等于C->E的默认权重1与E的机房状态系数4的乘积,即C->E的目标权重为1*4=4。同理,可以得到其他路径的目标权重。接下来根据迪杰斯特拉算法,可计算出机房主要线路为C->E->G,机房备份线路为C->B->G。
从下面结合具体实施例,对上述数据传输的方法做进一步说明。
首先,根据预设的机房连通性关系,针对机房中的每台媒体服务器建立可达服务器列表。根据可达服务器列表,每个媒体服务器中的媒体处理单元(MPU)会向所有可达媒体处理服务器发送消息,探测各条链路的丢包率(plr)和延迟(rtt),然后向控制服务器(MCS)实时上报探测结果。探测操作可以进行多次,得到多个探测结果,然后在这些探测结果中选择最差的探测结果作为本次上报的数据。
例如图5所示,对于核心媒体服务器Mps1而言,通过中继服务器Relay1和Relay2,对于其他的机房中的核心媒体服务器Mps2、Mps3、Mps4和Mps5都可达,即Mps1的可达服务器列表包括Mps2、Mps3、Mps4和Mps5。根据可达服务器列表,Mps1中的MPU向所有可达媒体处理服务器Mps2、Mps3、Mps4和Mps5发送消息,以探测Mps1与Mps2、Mps3、Mps4和Mps5之间各条链路的丢包率和延迟,然后实时上报探测结果。
需要说明的是,中继服务器对上层是不可见的,用户也无法接入中继服务器,只起到媒体流转发的作用。
接下来,控制服务器根据探测到的各条链路状态以及连通性建立有向图。其中,有向图由顶点、边、以及每条边上的权重组成,核心媒体服务器和中继服务器在有向图中表示为顶点,例如图5中的n1、n2、n3、……n7。两个服务器之间的连通关系由有向图中的边表示,例如图5中的v1、v2、v3、……v6。
然后根据操作S241所示的方法,计算各机房之间的目标权重,对应地作为各媒体服务器之间的目标权重,即有向图中各边上的权重。
例如图5中,Mps1与Mps2之间的目标权重作为v1上的权重,Mps1与Mp3之间的目标权重作为v3上的权重,Mps1与Mps4之间的目标权重作为v2+v4上的权重,Mps1与Mps5之间的目标权重作为v2+v5+v6上的权重。
根据本发明的实施例,可以预先针对各条边上的权重设置最小值、最大值或阀值的约束。这么做的目的是即使某些边的延迟(rtt)和丢包率(plr)都很低或很高,但是由于有最小值(或最大值)或阀值的限制,还是会应用预先设定的路由策略。
在建立好有向图后,控制服务器通过迪杰斯特拉算法,根据有向图中各边上的权重,计算出各台核心媒体服务器到其他各台核心媒体服务器的最短路径。根据最短路径确定路由策略,并把路由策略下发给各核心媒体服务器中的媒体处理单元(MPU)。当控制服务器下发从其他媒体处理服务器(MPS)订阅媒体流任务时,就可以根据该路由策略进行订阅。
另外,各台媒体处理服务器(MPS)会上报实时接入人数。一方面根据预先为每台媒体处理服务器设置的不同接入人数与音视频码率的对应关系,确定当前接入人数所对应的码率,以实时调整码率并下发给客户端。例如,接入人数较多时,根据配置将码率调小一些并下发给客户端,从而进行流量控制。另一方面根据预先设置的不同接入人数与媒体处理服务器接入优先级的对应关系,确定在当前接入人数下媒体处理服务器所对应的优先级,以实时调整媒体处理服务器的优先级。接入定位服务(Location Based Services,LBS)会选择优先级高的媒体处理服务器接入新用户。
示例性介质
在介绍了本发明示例性实施方式的方法之后,接下来,参考图6对本发明示例性实施方式的示例性介质进行说明。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算设备上运行时,所述程序代码用于使所述计算设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的数据传输的方法中的操作,例如,所述计算设备可以执行如图2A中所示的操作S210,获取多个机房的连通性关系以及两两连通机房之间的默认权重;操作S220,获取机房状态及每个机房内的每个服务器的状态;在操作S230,根据机房状态及每个机房内的每个服务器的状态,从多个机房中的多个服务器中确定发布服务器和接入服务器;操作S240,根据机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第一路由;以及操作S250,根据第一路由,在发布服务器与接入服务器之间传输目标数据。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图6所示,描述了根据本发明的实施方式的数据传输的程序产品60,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如Java,C++等,还包括常规的过程式程序设计语言——诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性装置
在介绍了本发明示例性实施方式的介质之后,接下来,参考图7对本发明示例性实施方式的数据传输的装置进行说明。
如图7A所示,该数据传输的装置700包括第一获取模块710、第二获取模块720、第一确定模块730、第二确定模块740和第一传输模块750。
其中,第一获取模块710,用于获取多个机房的连通性关系以及两两连通机房之间的默认权重,其中所述多个机房中的每个机房各自包括多个服务器。
第二获取模块720,用于获取机房状态及每个机房内的每个服务器的状态。
第一确定模块730,用于根据机房状态及每个机房内的每个服务器的状态,从所述多个机房中的多个服务器中确定发布服务器和接入服务器。
第二确定模块740,用于根据所述机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第一路由。
第一传输模块750,用于根据所述第一路由,在所述发布服务器与所述接入服务器之间传输目标数据。
根据本发明实施方式的数据传输的装置,可以降低发布服务器与接入服务器之间媒体流传输的延迟和网络开销,从而增加服务的稳定性,为用户带来了更好的体验。
图7B示例性公开了另一实施例的数据传输的装置的方框图。
如图7B所示,除了第一获取模块710、第二获取模块720、第一确定模块730、第二确定模块740和第一传输模块750,该数据传输的装置700还可以包括第三确定模块760和第二传输模块770。
其中,第三确定模块760,用于根据所述机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第二路由。
第二传输模块770,用于在根据所述第一路由在所述发布服务器与所述接入服务器之间传输目标数据的同时,根据所述第二路由,在所述发布服务器与所述接入服务器之间传输所述目标数据。
在本发明的再一个实施例中,所述连通性关系包括第一连通性关系和第二连通性关系;所述第一路由为具有第一连通性关系的多个机房之间的路由关系,所述第二路由为具有第二连通性关系的多个机房之间的路由关系。
在本发明的再一个实施例中,所述第二获取模块,还用于:针对所述多个机房中的每个机房,获取所述机房与多个机房中的其他机房之间的第一链路的通信质量参数;确定每一条第一链路的通信质量参数是否小于第一阈值;以及根据所述通信质量参数小于第一阈值的第一链路的数量,确定所述机房的状态。
在本发明的再一个实施例中,所述第二获取模块,还用于:针对所述每个机房中的每个服务器,获取所述服务器与其他机房的服务器之间的第二链路的通信质量参数;确定每一条第二链路的通信质量参数是否小于第二阈值;以及根据所述通信质量参数小于第二阈值的第二链路的数量,确定所述服务器的状态。
在本发明的再一个实施例中,所述通信质量参数,包括丢包率和延迟中的至少一个。
在本发明的再一个实施例中,所述第一确定模块,还用于:从所述多个机房中的服务器中确定与所述发布用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为所述发布服务器;以及从所述多个机房中的服务器中确定与所述接入用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为所述接入服务器。
在本发明的再一个实施例中,所述第二确定模块,还用于:针对具有第一连通性关系的多个机房中的每个机房,根据所述机房的连通性关系、默认权重和机房状态,从所述多个机房中确定多个目标机房,并确定所述多个目标机房彼此之间的路由关系;针对所述多个目标机房中的每个目标机房,根据所述目标机房内的每个服务器的状态,从所述目标机房中的多个服务器中确定目标服务器;以及根据所述多个目标机房彼此之间的路由关系和多个所述目标服务器,确定所述发布服务器与所述接入服务器之间的第一路由。
在本发明的再一个实施例中,所述第二确定模块,还用于:根据所述机房的默认权重和机房状态,确定所述机房之间的目标权重;以及根据所述目标权重,从所述多个机房中确定多个目标机房,并确定所述多个目标机房彼此之间的路由关系。
在本发明的再一个实施例中,所述第二确定模块,还用于:根据所述机房状态,确定机房状态系数;以及针对所述多个机房中的任意两个机房,根据以下公式计算所述两个机房之间的目标权重:Wobj=Wdef*C1,其中,所述Wobj为所述两个机房之间的目标权重,所述Wdef为所述两个机房之间的默认权重,所述C1为所述两个机房中任意一个机房的机房状态系数。
在本发明的再一个实施例中,所述第二确定模块,还用于:根据所述每个机房之间的目标权重,确定所述多个机房彼此之间的最短路径;以及根据所述最短路径,从所述多个机房中确定所述发布服务器所在机房与所述接入服务器所在机房之间的多个目标机房,并确定所述多个目标机房彼此之间的路由关系。
在本发明的再一个实施例中,所述第二确定模块,还用于:从所述目标机房内的多个服务器中随机确定一个第一服务器;确定所述第一服务器是否处于预设状态;若所述第一服务器处于所述预设状态,则将所述第一服务器确定为所述目标服务器;以及若所述第一服务器没有处于所述预设状态,则按照预设顺序从所述目标机房内的其他服务器中确定处于预设状态的第二服务器,作为所述目标服务器。
在本发明的再一个实施例中,第一传输模块,还用于:根据所述第一路由,确定与每个目标服务器对应的三元订阅关系,所述三元订阅关系用于表征所述目标服务器、目标服务器的上一跳服务器和所述目标服务器的下一跳服务器之间的对应关系;以及将多个所述三元订阅关系分别发送至所述多个目标服务器,以指示所述多个目标服务器根据所述三元订阅关系传输目标数据。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图8对本发明示例性实施方式的可以用于数据传输的计算设备进行说明。
本发明实施例还提供了一种计算设备。所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的计算设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的数据传输的方法中的操作。例如,所述处理单元可以执行如图2A中所示的操作S210,获取多个机房的连通性关系以及两两连通机房之间的默认权重;操作S220,获取机房状态及每个机房内的每个服务器的状态;操作S230,根据机房状态及每个机房内的每个服务器的状态,从多个机房中的多个服务器中确定发布服务器和接入服务器;操作S240,根据机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第一路由;以及操作S250,根据第一路由,在发布服务器与接入服务器之间传输目标数据。
下面参照图8来描述根据本发明的这种实施方式的用于数据传输的计算设备80。如图8所示的计算设备80仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算设备80以通用计算设备的形式表现。计算设备80的组件可以包括但不限于:上述至少一个处理单元801、上述至少一个存储单元802、连接不同系统组件(包括存储单元802和处理单元801)的总线803。
总线803包括地址总线、数据总线和控制总线。
存储单元802可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)8021和/或高速缓存存储器8022,还可以进一步包括只读存储器(ROM)8023。
存储单元802还可以包括具有一组(至少一个)程序模块8024的程序/实用工具8025,这样的程序模块8024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备80也可以与一个或多个外部设备804(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/0)接口805进行。并且,计算设备80还可以通过网络适配器806与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器806通过总线803与计算设备80的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备80使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了数据传输的装置/设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (26)

1.一种数据传输的方法,包括:
获取多个机房的连通性关系以及两两连通机房之间的默认权重,其中所述多个机房中的每个机房各自包括多个服务器;
获取机房状态及每个机房内的每个服务器的状态;
根据机房状态及每个机房内的每个服务器的状态,从所述多个机房中的多个服务器中确定发布服务器和接入服务器;
根据所述机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第一路由;以及
根据所述第一路由,在所述发布服务器与所述接入服务器之间传输目标数据;
所述根据所述机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第一路由,包括:
针对具有第一连通性关系的多个机房中的每个机房,根据所述机房的连通性关系、默认权重和机房状态,从所述多个机房中确定多个目标机房,并确定所述多个目标机房彼此之间的路由关系;
针对所述多个目标机房中的每个目标机房,根据所述目标机房内的每个服务器的状态,从所述目标机房中的多个服务器中确定目标服务器;以及
根据所述多个目标机房彼此之间的路由关系和多个所述目标服务器,确定所述发布服务器与所述接入服务器之间的第一路由。
2.根据权利要求1所述的数据传输的方法,还包括:
根据所述机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第二路由;以及
在根据所述第一路由在所述发布服务器与所述接入服务器之间传输目标数据的同时,根据所述第二路由,在所述发布服务器与所述接入服务器之间传输所述目标数据。
3.根据权利要求2所述的数据传输的方法,其中,所述连通性关系包括第一连通性关系和第二连通性关系;所述第一路由为具有第一连通性关系的多个机房之间的路由关系,所述第二路由为具有第二连通性关系的多个机房之间的路由关系。
4.根据权利要求1所述的数据传输的方法,其中,所述获取机房状态,包括:
针对所述多个机房中的每个机房,获取所述机房与多个机房中的其他机房之间的第一链路的通信质量参数;
确定每一条第一链路的通信质量参数是否小于第一阈值;以及
根据所述通信质量参数小于第一阈值的第一链路的数量,确定所述机房的状态。
5.根据权利要求1所述的数据传输的方法,其中,所述获取每个机房内的每个服务器的状态,包括:
针对所述每个机房中的每个服务器,获取所述服务器与其他机房的服务器之间的第二链路的通信质量参数;
确定每一条第二链路的通信质量参数是否小于第二阈值;以及
根据所述通信质量参数小于第二阈值的第二链路的数量,确定所述服务器的状态。
6.根据权利要求4或5所述的数据传输的方法,其中,所述通信质量参数,包括丢包率和延迟中的至少一个。
7.根据权利要求1所述的数据传输的方法,其中,所述根据机房状态及每个机房内的每个服务器的状态,从所述多个机房中的多个服务器中确定发布服务器和接入服务器,包括:
从所述多个机房中的服务器中确定与发布用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为所述发布服务器;以及
从所述多个机房中的服务器中确定与接入用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为所述接入服务器。
8.根据权利要求1所述的数据传输的方法,其中,所述根据所述机房的连通性关系、默认权重和机房状态,从所述多个机房中确定多个目标机房,并确定所述多个目标机房彼此之间的路由关系,包括:
根据所述机房的默认权重和机房状态,确定所述机房之间的目标权重;以及
根据所述目标权重,从所述多个机房中确定多个目标机房,并确定所述多个目标机房彼此之间的路由关系。
9.根据权利要求8所述的数据传输的方法,其中,所述根据所述机房的默认权重和机房状态,确定所述机房之间的目标权重,包括:
根据所述机房状态,确定机房状态系数;以及
针对所述多个机房中的任意两个机房,根据以下公式计算所述两个机房之间的目标权重:
Wobj=Wdef*C1
其中,所述Wobj为所述两个机房之间的目标权重,所述Wdef为所述两个机房之间的默认权重,所述C1为所述两个机房中任意一个机房的机房状态系数。
10.根据权利要求8所述的数据传输的方法,其中,所述根据所述目标权重,从所述多个机房中确定多个目标机房,并确定所述多个目标机房彼此之间的路由关系,包括:
根据所述机房之间的目标权重,确定所述多个机房彼此之间的最短路径;以及
根据所述最短路径,从所述多个机房中确定所述发布服务器所在机房与所述接入服务器所在机房之间的多个目标机房,并确定所述多个目标机房彼此之间的路由关系。
11.根据权利要求1所述的数据传输的方法,其中,所述根据所述目标机房内的每个服务器的状态,从所述目标机房中的多个服务器中确定目标服务器,包括:
从所述目标机房内的多个服务器中随机确定一个第一服务器;
确定所述第一服务器是否处于预设状态;
若所述第一服务器处于所述预设状态,则将所述第一服务器确定为所述目标服务器;以及
若所述第一服务器没有处于所述预设状态,则按照预设顺序从所述目标机房内的其他服务器中确定处于预设状态的第二服务器,作为所述目标服务器。
12.根据权利要求1所述的数据传输的方法,其中,所述根据所述第一路由,在所述发布服务器与所述接入服务器之间传输目标数据,包括:
根据所述第一路由,确定与每个目标服务器对应的三元订阅关系,所述三元订阅关系用于表征所述目标服务器、目标服务器的上一跳服务器和所述目标服务器的下一跳服务器之间的对应关系;以及
将多个所述三元订阅关系分别发送至多个目标服务器,以指示所述多个目标服务器根据所述三元订阅关系传输目标数据。
13.一种数据传输的装置,包括:
第一获取模块,用于获取多个机房的连通性关系以及两两连通机房之间的默认权重,其中所述多个机房中的每个机房各自包括多个服务器;
第二获取模块,用于获取机房状态及每个机房内的每个服务器的状态;
第一确定模块,用于根据机房状态及每个机房内的每个服务器的状态,从所述多个机房中的多个服务器中确定发布服务器和接入服务器;
第二确定模块,用于根据所述机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第一路由;以及
第一传输模块,用于根据所述第一路由,在所述发布服务器与所述接入服务器之间传输目标数据;
所述第二确定模块,还用于:
针对具有第一连通性关系的多个机房中的每个机房,根据所述机房的连通性关系、默认权重和机房状态,从所述多个机房中确定多个目标机房,并确定所述多个目标机房彼此之间的路由关系;
针对所述多个目标机房中的每个目标机房,根据所述目标机房内的每个服务器的状态,从所述目标机房中的多个服务器中确定目标服务器;以及
根据所述多个目标机房彼此之间的路由关系和多个所述目标服务器,确定所述发布服务器与所述接入服务器之间的第一路由。
14.根据权利要求13所述的装置,还包括:
第三确定模块,用于根据所述机房的连通性关系、默认权重、机房状态及每个机房内的每个服务器的状态,确定第二路由;以及
第二传输模块,用于在根据所述第一路由在所述发布服务器与所述接入服务器之间传输目标数据的同时,根据所述第二路由,在所述发布服务器与所述接入服务器之间传输所述目标数据。
15.根据权利要求14所述的装置,其中,所述连通性关系包括第一连通性关系和第二连通性关系;所述第一路由为具有第一连通性关系的多个机房之间的路由关系,所述第二路由为具有第二连通性关系的多个机房之间的路由关系。
16.根据权利要求13所述的装置,其中,所述第二获取模块,还用于:
针对所述多个机房中的每个机房,获取所述机房与多个机房中的其他机房之间的第一链路的通信质量参数;
确定每一条第一链路的通信质量参数是否小于第一阈值;以及
根据所述通信质量参数小于第一阈值的第一链路的数量,确定所述机房的状态。
17.根据权利要求13所述的装置,其中,所述第二获取模块,还用于:
针对所述每个机房中的每个服务器,获取所述服务器与其他机房的服务器之间的第二链路的通信质量参数;
确定每一条第二链路的通信质量参数是否小于第二阈值;以及
根据所述通信质量参数小于第二阈值的第二链路的数量,确定所述服务器的状态。
18.根据权利要求16或17所述的装置,其中,所述通信质量参数,包括丢包率和延迟中的至少一个。
19.根据权利要求13所述的装置,其中,所述第一确定模块,还用于:
从所述多个机房中的服务器中确定与发布用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为所述发布服务器;以及
从所述多个机房中的服务器中确定与接入用户之间的距离在预设距离之内,且状态为特定状态的服务器,作为所述接入服务器。
20.根据权利要求13所述的装置,其中,所述第二确定模块,还用于:
根据所述机房的默认权重和机房状态,确定所述机房之间的目标权重;以及
根据所述目标权重,从所述多个机房中确定多个目标机房,并确定所述多个目标机房彼此之间的路由关系。
21.根据权利要求20所述的装置,其中,所述第二确定模块,还用于:
根据所述机房状态,确定机房状态系数;以及针对所述多个机房中的任意两个机房,根据以下公式计算所述两个机房之间的目标权重:
Wobj=Wdef*C1
其中,所述Wobj为所述两个机房之间的目标权重,所述Wdef为所述两个机房之间的默认权重,所述C1为所述两个机房中任意一个机房的机房状态系数。
22.根据权利要求20所述的装置,其中,所述第二确定模块,还用于:根据所述每个机房之间的目标权重,确定所述多个机房彼此之间的最短路径;以及
根据所述最短路径,从所述多个机房中确定所述发布服务器所在机房与所述接入服务器所在机房之间的多个目标机房,并确定所述多个目标机房彼此之间的路由关系。
23.根据权利要求13所述的装置,其中,所述第二确定模块,还用于:
从所述目标机房内的多个服务器中随机确定一个第一服务器;
确定所述第一服务器是否处于预设状态;
若所述第一服务器处于所述预设状态,则将所述第一服务器确定为所述目标服务器;以及
若所述第一服务器没有处于所述预设状态,则按照预设顺序从所述目标机房内的其他服务器中确定处于预设状态的第二服务器,作为所述目标服务器。
24.根据权利要求13所述的装置,其中,第一传输模块,还用于:
根据所述第一路由,确定与每个目标服务器对应的三元订阅关系,所述三元订阅关系用于表征所述目标服务器、目标服务器的上一跳服务器和所述目标服务器的下一跳服务器之间的对应关系;以及
将多个所述三元订阅关系分别发送至多个目标服务器,以指示所述多个目标服务器根据所述三元订阅关系传输目标数据。
25.一种计算设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至12中任一项的方法。
26.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至12中任一项的方法。
CN202010146945.XA 2020-03-05 2020-03-05 数据传输的方法、介质、装置和计算设备 Active CN111385298B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010146945.XA CN111385298B (zh) 2020-03-05 2020-03-05 数据传输的方法、介质、装置和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010146945.XA CN111385298B (zh) 2020-03-05 2020-03-05 数据传输的方法、介质、装置和计算设备

Publications (2)

Publication Number Publication Date
CN111385298A CN111385298A (zh) 2020-07-07
CN111385298B true CN111385298B (zh) 2022-05-27

Family

ID=71221507

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010146945.XA Active CN111385298B (zh) 2020-03-05 2020-03-05 数据传输的方法、介质、装置和计算设备

Country Status (1)

Country Link
CN (1) CN111385298B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112511868B (zh) * 2020-11-17 2022-01-11 创盛视联数码科技(北京)有限公司 视频播放方法、装置、电子设备及计算机存储介质
CN112910798B (zh) * 2021-01-20 2023-07-04 北京洛塔信息技术有限公司 一种流量自动调度方法、系统、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414635A (zh) * 2013-08-21 2013-11-27 深圳市特发泰科通信科技有限公司 基于非相干网络数据通信的路由备份装置及方法
CN104809539B (zh) * 2014-01-29 2018-05-11 宏碁股份有限公司 数据中心服务器资源的动态规划方法
CN105515977B (zh) * 2015-12-21 2020-05-12 腾讯科技(深圳)有限公司 获取网络中传输路径的方法、装置和系统
US11064019B2 (en) * 2016-09-14 2021-07-13 Advanced Micro Devices, Inc. Dynamic configuration of inter-chip and on-chip networks in cloud computing system
CN107026793B (zh) * 2017-03-31 2018-11-13 腾讯科技(深圳)有限公司 路由方法、装置及系统
CN108696428B (zh) * 2018-05-17 2020-10-27 北京大米科技有限公司 基于隧道技术的路由探测方法、路由节点和中心服务器

Also Published As

Publication number Publication date
CN111385298A (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
KR102514250B1 (ko) 모바일 에지 컴퓨팅 노드를 선택하기 위한 방법, 장치 및 시스템
EP3528440B1 (en) Path selection method and system, network acceleration node, and network acceleration system
US7430609B2 (en) Managing access to streams hosted on duplicating switches
Savage et al. Detour: Informed Internet routing and transport
EP2586183B1 (en) A system and method to implement joint server selection and path selection
CN101370035B (zh) 用于动态客户端/服务器网络管理的方法以及系统
CA2445869C (en) Managing access to streams hosted on duplicating switches
WO2011066043A1 (en) System and method for providing quality of service in wide-area messaging fabric
CN111385298B (zh) 数据传输的方法、介质、装置和计算设备
US11431781B1 (en) User-defined quality of experience (QoE) prioritizations
WO2018119677A1 (zh) 传输链路的续传方法、装置和系统
CN106464670A (zh) 网络实体及服务策略管理方法
US11223697B2 (en) Scaling microservices communication over information centric networks
EP3491790A1 (en) A hybrid approach with classification for name resolution and producer selection in icn
CN110247847B (zh) 节点之间回源选路的方法和装置
EP2785017B1 (en) Content-centric networking
US20230291679A1 (en) Dynamic use of a packet recovery mechanism to avoid congestion along a network path
CN113347089B (zh) 软件定义网络sdn系统、网络配置方法、装置和设备
CN115665262A (zh) 一种请求处理方法、装置、电子设备及存储介质
Manjul et al. Single rate based extended logarithmic multicast congestion control
CN109600431B (zh) 面向移动通信网路的内容增量传输方法、移动通信系统
CN111988221A (zh) 数据传输方法、数据传输装置、存储介质与电子设备
CN115474212B (zh) Cdn网络传输的优化方法、系统、电子设备和存储介质
CN116056149B (zh) 一种iab宿主节点的单工作业方法、装置、设备及介质
KR20190077700A (ko) 분산 클라우드 시스템에서 에지 클라우드에 의한 패킷 라우팅 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20210324

Address after: 210019 7th floor, unit 1, building B3, No.8, Jiangdong Street, Jialing, Jianye District, Nanjing City, Jiangsu Province

Applicant after: Netease Youdao information technology (Jiangsu) Co.,Ltd.

Address before: 210019 1708, building 3, No.8, Bailongjiang East Street, Jianye District, Nanjing City, Jiangsu Province

Applicant before: Netease Youdao Information Technology (Beijing) Co.,Ltd. Jiangsu Branch

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant