CN112243028A - 内容分发网络数据传输方法及装置 - Google Patents
内容分发网络数据传输方法及装置 Download PDFInfo
- Publication number
- CN112243028A CN112243028A CN202011092930.6A CN202011092930A CN112243028A CN 112243028 A CN112243028 A CN 112243028A CN 202011092930 A CN202011092930 A CN 202011092930A CN 112243028 A CN112243028 A CN 112243028A
- Authority
- CN
- China
- Prior art keywords
- node
- request
- packet
- data packet
- service data
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/083—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请的实施例提供了一种内容分发网络数据传输方法及装置,该数据传输方法包括:根据终端设备发送的请求数据包的目的地址,从所述多个节点中确定用于路由所述请求数据包的出口节点;若确定出的所述出口节点与所述入口节点不是同一节点,则根据所述多个节点之间的网络状态信息确定所述入口节点与所述出口节点之间的第一传输路径;将所述请求数据包通过所述第一传输路径发送至所述出口节点,以使所述出口节点转发所述请求数据包至所述目的地址对应的源站;接收所述源站通过所述出口节点转发的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。本申请实施例的技术方案提高请求处理效率以及内容分发网络的可用性。
Description
技术领域
本申请涉及云计算技术领域,具体而言,涉及一种内容分发网络数据传输方法及装置。
背景技术
随着互联网的发展,全球网络结构变得越来越复杂,直接在互联网上进行数据传输会经常遇到诸如丢包、响应慢等情况,影响用户体验。内容分发网络利用遍布全球的节点及最优链路算法,可以实现全球范围内稳定、安全的动态请求加速。
然而,目前的网络加速方案仍然存在难以有效处理网络实时出现的突发状况,可用性低等诸多缺点。
发明内容
本申请的实施例提供了一种内容分发网络数据传输方法及装置,进而至少在一定程度上能够提高请求处理效率以及内容分发网络的可用性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种内容分发网络数据传输方法,所述内容分发网络包含有多个节点,所述数据传输方法由所述多个节点中的入口节点执行,所述数据传输方法包括:根据终端设备发送的请求数据包的目的地址,从所述多个节点中确定用于路由所述请求数据包的出口节点;若确定出的所述出口节点与所述入口节点不是同一节点,则根据所述多个节点之间的网络状态信息确定所述入口节点与所述出口节点之间的第一传输路径;将所述请求数据包通过所述第一传输路径发送至所述出口节点,以使所述出口节点转发所述请求数据包至所述目的地址对应的源站;接收所述源站通过所述出口节点转发的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。
根据本申请实施例的一个方面,提供了一种内容分发网络数据传输方法,所述内容分发网络包含有多个节点,所述数据传输方法由所述多个节点中的出口节点执行,所述数据传输方法包括:接收入口节点通过所述入口节点与所述出口节点之间的第一传输路径发送的来自于终端设备的请求数据包,所述第一传输路径是所述入口节点在根据所述终端设备发送的请求数据包的目的地址从所述多个节点中确定出用于路由所述请求数据包的出口节点,且确定所述出口节点与所述入口节点不是同一节点后,根据所述多个节点之间的网络状态信息确定出的;将所述请求数据包发送至所述目的地址对应的源站;接收所述源站返回的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述入口节点,以使所述入口节点转发所述响应数据包至所述终端设备。
根据本申请实施例的一个方面,提供了一种内容分发网络数据传输装置,所述内容分发网络包含有多个节点,所述数据传输方法由所述多个节点中的入口节点执行,所述数据传输装置包括:第一确定单元,配置为根据终端设备发送的请求数据包的目的地址,从所述多个节点中确定用于路由所述请求数据包的出口节点;第二确定单元,配置为若确定出的所述出口节点与所述入口节点不是同一节点,则根据所述多个节点之间的网络状态信息确定所述入口节点与所述出口节点之间的第一传输路径;第一发送单元,配置为将所述请求数据包通过所述第一传输路径发送至所述出口节点,以使所述出口节点转发所述请求数据包至所述目的地址对应的源站;第一接收单元,配置为接收所述源站通过所述出口节点转发的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。
在本申请的一些实施例中,基于前述方案,所述第一接收单元还配置为:接收所述源站通过所述入口节点与所述出口节点之间的第二传输路径发送的针对所述请求数据包的响应数据包,所述第二传输路径是所述出口节点根据所述多个节点之间的网络状态信息确定出的。
在本申请的一些实施例中,基于前述方案,所述第一发送单元包括:生成子单元,配置为根据所述请求数据包,生成多个业务数据包,并将各个业务数据包分别和所述第一传输路径进行组合编码,生成多个请求数据帧;发送子单元,配置为通过所述第一传输路径将所述多个请求数据帧发送至所述出口节点。
在本申请的一些实施例中,基于前述方案,所述生成子单元还配置为:将所述多个业务数据包按序存储至请求发送队列;从所述请求发送队列中按序提取所述多个业务数据包,将按序提取的各个业务数据包分别和所述第一传输路径进行组合编码,生成所述多个请求数据帧。
在本申请的一些实施例中,基于前述方案,所述数据传输装置还包括:请求数据包发送单元,配置为若确定出的所述出口节点与所述入口节点是同一节点,则发送所述请求数据包至所述源站;响应数据包接收的单元,配置为接收所述源站返回的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。
在本申请的一些实施例中,基于前述方案,所述请求数据包发送单元包括:生成存储子单元,配置为根据所述请求数据包,生成多个业务数据包,并将所述多个业务数据包按序存储至请求发送队列;第一提取子单元,配置为若确定出的所述出口节点与所述入口节点是同一节点,则从所述请求发送队列中按序提取所述多个业务数据包,将提取出的多个业务数据包按序存储至请求接收队列;第二提取子单元,配置为从所述请求接收队列中按序提取所述多个业务数据包,并对所述多个业务数据包进行解包,将解包得到的多个数据片段进行重组后发送至所述源站。
在本申请的一些实施例中,基于前述方案,所述第一提取子单元配置为:若所述多个业务数据包中目标业务数据包的序列号大于所述请求接收队列中队列末尾业务数据包的序列号,则将所述目标业务数据包存储至所述请求接收队列的队列尾部;若所述多个业务数据包中目标业务数据包的序列号小于所述请求接收队列中所有业务数据包的序列号,则将所述目标业务数据包存储至所述请求接收队列的队列头部;若所述多个业务数据包中目标业务数据包的序列号大于所述请求接收队列中第一业务数据包的序列号小于所述请求接收队列中第二数据包的序列号,所述第一业务数据包和所述第二业务数据包为所述请求接收队列中相邻的两个业务数据包,则将所述目标业务数据包存储至所述第一业务数据包和所述第二业务数据包之间;若所述多个业务数据包中目标业务数据包的序列号等于所述请求接收队列中任一业务数据包的序列号,则丢弃所述目标业务数据包。
在本申请的一些实施例中,基于前述方案,所述生成子单元或所述生成存储子单元配置为:根据预设数据长度对所述请求数据包进行分解,得到多个数据片段;对各个数据片段进行编号,生成所述各个数据片段对应的序列号;将所述各个数据片段以及所述各个数据片段对应的序列号进行封装,生成所述多个业务数据包。
根据本申请实施例的一个方面,提供了一种内容分发网络数据传输装置,所述内容分发网络包含有多个节点,所述数据传输方法由所述多个节点中的出口节点执行,所述数据传输装置包括:第二接收单元,配置为接收入口节点通过所述入口节点与所述出口节点之间的第一传输路径发送的来自于终端设备的请求数据包,所述第一传输路径是所述入口节点在根据所述终端设备发送的请求数据包的目的地址从所述多个节点中确定出用于路由所述请求数据包的出口节点,且确定所述出口节点与所述入口节点不是同一节点时,根据所述多个节点之间的网络状态信息确定出的;第二发送单元,配置为将所述请求数据包发送至所述目的地址对应的源站;第三接收单元,配置为接收所述源站返回的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述入口节点,以使所述入口节点转发所述响应数据包至所述终端设备。
在本申请的一些实施例中,基于前述方案,所述第三接收单元还配置为:根据所述多个节点之间的网络状态信息确定所述入口节点与所述出口节点之间的第二传输路径;将所述响应数据包通过所述第二传输路径发送至所述入口节点。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的内容分发网络数据传输方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的内容分发网络数据传输方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的内容分发网络数据传输方法。
在本申请的一些实施例所提供的技术方案中,内容分发网络包含有多个节点,多个节点中的入口节点根据终端设备发送的请求数据包的目的地址,从多个节点中确定用于路由请求数据包的出口节点;若确定出的出口节点与入口节点不是同一节点,则根据多个节点之间的网络状态信息确定入口节点与出口节点之间的第一传输路径;将请求数据包通过第一传输路径发送至出口节点,以使出口节点转发请求数据包至目的地址对应的源站;最后,入口节点接收源站通过出口节点转发的针对请求数据包的响应数据包,并将响应数据包发送至终端设备。通过第一传输路径不是事先指定好的路径,而是由入口节点根据内容分发网络中节点之间的网络状态信息动态确定的,传输路径在不同的时间段可能会受内容分发网络中节点之间网络状态信息的影响而发生变化,本申请实施例确定的传输路径更加科学,更加适用于当前的网络状态,能够屏蔽网络中的故障节点,提高了对用户请求的处理效率;并且,可以充分利用内容分发网络进行用户请求的转发,有效处理内容分发网络中实时出现的突发状态,提高了内容分发网络的可用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本申请实施例的技术方案的一个示例性系统架构的示意图;
图2示出了根据本申请的一个实施例的内容分发网络数据传输方法的流程图;
图3示出了根据本申请的一个实施例的内容分发网络数据传输方法的流程图;
图4示出了根据本申请的一个实施例的内容分发网络数据传输方法的流程图;
图5示出了根据本申请的一个实施例的内容分发网络数据传输方法的流程图;
图6示出了根据本申请的一个实施例的内容分发网络数据传输方法的流程图;
图7示出了根据本申请的一个实施例的内容分发网络数据传输方法的流程图;
图8示出了根据本申请的一个实施例的内容分发网络数据传输装置的框图;
图9示出了根据本申请的一个实施例的内容分发网络数据传输装置的框图;
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
需要说明的是,本申请的说明书和权利要求书及上述附图中使用的术语仅用于描述实施例,并不旨在限制本申请的范围。应该理解的是,术语“包括”、“包含”、“具有”等在本文中使用时指定存在所陈述的特点、整体、步骤、操作、元件、组件和/或其群组,但并不排除存在或添加其他特点、整体、步骤、操作、元件、组件和/或其群组中的一个或多个。
将进一步理解的是,尽管术语“第一”、“第二”、“第三”等可以在本文中用于描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于区分一个元件和另一个元件。例如,在不脱离本发明的范围的情况下,第一元件可以被称为第二元件。类似地,第二元件可以被称为第一元件。如本文所使用的,术语“和/或”包含关联的列出的项目中的一个或多个的任何和所有组合。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
节点:可以是工作站、客户、网络用户或个人计算机,还可以是服务器、打印机和其他网络连接的设备。每一个工作站、服务器、终端设备、网络设备,即拥有自己唯一网络地址的设备都可以是节点。在本申请实施例中指内容分发网络中的节点,可用于在内容分发网络中传输数据。
入口节点:用户请求接入到内容分发网络中的第一个节点。
出口节点:内容分发网络中转发用户请求的最后一个节点,出口节点用于将用户请求发送至源站。
源站:接入到内容分发网络的外部站点,可以是服务器或其他网络设备等,是用户访问请求的目的站点。
DNS(Domain Name System,域名系统):因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP(Internet Protocol,网络之间互连的协议)数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS服务器将域名地址翻译为该域名所对应的IP地址后,才能正常连接目标服务器。
目前,内容分发网络利用遍布全球的节点及最优链路算法,实现了全球范围内稳定、安全的动态请求加速,解决互联网数据传输由于跨运营商、跨国、网络不稳定所带来的响应慢、丢包、服务不稳定等问题。
用户请求到达内容分发网络入口节点的时候,入口节点X1通过预先静态配置或动态获取的路由信息,确定下一跳的某个节点X2作为中转节点,入口节点X1与中转节点X2建立网络连接L1;请求数据到达中转节点X2的时候,中转节点X2通过预先配置或动态获取的路由信息,确定下一跳中转节点X3,中转节点X2与X3建立网络连接L2;相似的传输过程持续到最后一个中转节点Xn-1,Xn-1与出口节点Xn建立连接Ln,由此得到一条唯一确定的传输链路X1(L1)X2(L2)X3…Xn-1(Ln)Xn,此后用户的请求和源站响应都通过这条固定的传输链路进行传输。
上述网络加速方案的最大问题在于:(1)对路由信息采用一成不变的处理方式,即路由信息一旦确定下来就不再变化,请求和响应的数据传输都被固化到同一条路径上。(2)对传输数据没有任何处理,只在节点间单一连接上原样转发。这样的方案难以有效处理网络实时出现的突发状况,无法充分利用内容分发网络的带宽,难以提升网络传输速率,在实际应用中存在以下不足:
首先,内容分发网络某个节点出现故障时,所有需要经过该节点的数据传输都会受影响,使得网络可用性降低。此外网络节点的负载和节点间传输速率也时刻在变化,节点性能下降会导致传输延迟上涨,传输质量下降。固化路由的加速方案解决不了这些问题。
其次,内容分发网络可能会增加或删除节点,固化的路由不再是最优的甚至可能变得不可用。内容分发网络也可能对节点进行软件/硬件更新从而提升性能,固化的路由不能反映这种变化,无法高效利用网络资源。
最后,对传输数据没有更多处理,只能通过节点间的单一连接原样转发,无法充分利用内容分发网络的带宽,没法实现数据的多路并行传输,加速效果局限于底层网络协议的传输能力。
对此,本申请实施例中提供了一种内容分发网络数据传输方法,内容分发网络包含有多个节点,多个节点中的入口节点根据终端设备发送的请求数据包的目的地址,从多个节点中确定用于路由请求数据包的出口节点;若确定出的出口节点与入口节点不是同一节点,则根据多个节点之间的网络状态信息确定入口节点与出口节点之间的第一传输路径;将请求数据包通过第一传输路径发送至出口节点,以使出口节点转发请求数据包至目的地址对应的源站;最后,入口节点接收源站通过出口节点转发的针对请求数据包的响应数据包,并将响应数据包发送至终端设备。本申请实施例的技术方案中第一传输路径不是事先指定好的路径,而是由入口节点根据内容分发网络中节点之间的网络状态信息动态确定的,针对源站,传输路径在不同的时间段可能会受内容分发网络中节点之间网络状态信息的影响而发生变化,本申请实施例确定的传输路径更加科学,更加适用于当前的网络状态,使得内容分发网络承担能力更高,提高了对访问请求的处理效率;并且,可以充分利用内容分发网络进行用户请求的转发,有效处理内容分发网络中实时出现的突发状态,提高了内容分发网络的可用性。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、内容分发网络102以及源站103。内容分发网络102包含有多个节点。在本申请实施例中,终端设备101为用户使用的电子设备,该电子设备可以是个人计算机、手机、平板电脑、笔记本、电子书阅读器等具有一定计算能力并且运行有即时通讯类软件及网站或者社交类软件及网站的计算机设备。终端设备101通过内容分发网络102与源站103通信,源站103可以是一台服务器或若干台服务器组成的服务器集群或云计算中心,或者是一个虚拟化平台。
用户A在需要访问源站103时,可通过终端设备101向内容分发网络102中的入口节点发送请求数据包,入口节点在接收到请求数据包后,根据请求数据包的目的地址,从内容分发网络102包含的多个节点中确定用于路由请求数据包的出口节点,如果确定出的出口节点和入口节点不是同一节点,入口节点则可以根据多个节点之间的网络状态信息确定入口节点与出口节点之间的第一传输路径,将请求数据包通过第一传输路径发送至出口节点,以使出口节点转发请求数据包至源站103。
在终端设备101向内容分发网络102中的入口节点发送请求数据包之前,还需要通过DNS服务器对源站103的域名进行解析。
具体而言,用户A需要访问源站103时,首先通过终端设备101将源站103的域名发送给本地DNS服务器(图中未示出),由于该域名是需要接入到内容分发网络102的,因而本地DNS服务器将该域名解析为内容分发域名,并发送给终端设备101;终端设备101在接收到内容分发域名后,将内容分发域名发送给内容分发DNS服务器(图中未示出),由内容分发DNS服务器对内容分发域名进一步解析,得到内容分发网络的入口节点的入口地址,其中入口地址指通过内容分发网络将请求数据包转发给内容分发网络时的第一个节点的地址,终端设备101根据入口地址则可将请求数据包发送给内容分发网络102中的入口节点。
入口节点在接收到终端设备的请求数据包后,可以根据请求数据包的目的地址,从多个节点中确定用于路由请求数据包的出口节点,如果确定出的出口节点和入口节点不是同一节点,入口节点则可以根据多个节点之间的网络状态信息确定入口节点与出口节点之间的第一传输路径,将请求数据包通过第一传输路径发送至出口节点,以使出口节点转发请求数据包至源站103。
入口节点确定的第一传输路径中可以包括多个中转节点,如图1所示,第一传输路径中包括节点1和节点2,且节点1和节点2均是入口节点的下一跳节点,也即是,入口节点在通过第一传输路径发送请求数据包时,会将接收到的请求数据包发送至节点1和节点2,然后,由节点1和节点2作为中转节点将请求数据包发送至出口节点。在一个实施例中,入口节点在向节点1和节点2发送请求数据包之前,可以将请求数据包拆分为N个数据片段,然后,向节点1发送M个数据片段,向节点2发送N-M个数据片段,其中,M<N。
当内容分发网络102中的出口节点将请求数据包发送至源站103后,源站103可通过第一传输路径信息,将针对请求数据包的响应数据包再转发给终端设备101,以实现终端设备101与源站103的通信。也即是,出口节点可以先将响应数据包发送至节点1和节点2,然后,由节点1和节点2转发响应数据包发送至入口节点。
在其他实施例中,当内容分发网络102中的出口节点将请求数据包发送至源站103后,出口节点还可以根据内容分发网络102中多个节点之间的网络状态信息确定出第二传输路径,然后,源站103可以通过第二传输路径,将针对请求数据包的响应数据包再转发给终端设备101,以实现终端设备101与源站103的通信。
出口节点确定的第二传输路径也可以包括多个中转节点,如图1所示,第二传输路径中包括节点3和节点4,且节点3和节点4均是出口节点的下一跳节点,也即是,出口节点在通过第二传输路径发送响应数据包时,会将接收到的响应数据包发送至节点3和节点4,然后,由节点3和节点4作为中转节点将响应数据包发送至入口节点。在一个实施例中,出口节点在向节点3和节点4发送响应数据包之前,可以将响应数据包拆分为N’个数据片段,然后,向节点3发送M’个数据片段,向节点4发送N’-M’个数据片段,其中,M’<N’。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图2示出了根据本申请的一个实施例的内容分发网络数据传输方法的流程图,该内容分发网络数据传输方法可以由内容分发网络包含的多个节点中的入口节点来执行,该内容分发网络可以是图1中所示的内容分发网络102。参照图2所示,所述方法包括:
步骤S210、根据终端设备发送的请求数据包的目的地址,从所述多个节点中确定用于路由所述请求数据包的出口节点;
步骤S220、若确定出的所述出口节点与所述入口节点不是同一节点,则根据所述多个节点之间的网络状态信息确定所述入口节点与所述出口节点之间的第一传输路径;
步骤S230、将所述请求数据包通过所述第一传输路径发送至所述出口节点,以使所述出口节点转发所述请求数据包至所述目的地址对应的源站;
步骤S240、接收所述源站通过所述出口节点转发的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。
下面对这些步骤进行详细描述。
在步骤S210中,根据终端设备发送的请求数据包的目的地址,从所述多个节点中确定用于路由所述请求数据包的出口节点。
在本实施例中,用户在需要访问源站时,可通过终端设备向内容分发网络中的入口节点发送请求数据包,内容分发网络可以是云加速网络。内容分发网络的入口节点在接收到请求数据包后,可以根据请求数据包的目的地址,从内容分发网络包含的多个节点中确定出口节点,出口节点可以用于将请求数据包路由至源站。
由于终端设备需要访问源站,因此,终端设备发送的请求数据包的目的地址也即是源站地址。入口节点接收到终端设备的请求数据包后,可以根据所设置的负载均衡算法确定出口节点。
在一些实施例中,在终端设备向内容分发网络中的入口节点发送请求数据包之前,可以首先通过终端设备将源站的域名发送给本地DNS服务器,由于该域名是需要接入到内容分发网络的,因而本地DNS服务器将该域名解析为内容分发域名,并发送给终端设备;终端设备在接收到内容分发域名后,将内容分发域名发送给内容分发DNS服务器,由内容分发DNS服务器对内容分发域名进一步解析,得到内容分发网络的入口节点的入口地址,终端设备根据入口地址则可将请求数据包发送给内容分发网络中的入口节点。入口节点可以是距离用户最近的节点。例如,当位于北京的用户想要访问源站时,则入口节点是位于北京的节点。
步骤S220、若确定出的所述出口节点与所述入口节点不是同一节点,则根据所述多个节点之间的网络状态信息确定所述入口节点与所述出口节点之间的第一传输路径。
具体而言,入口节点确定出口节点后,如果确定出的出口节点与入口节点不是同一节点,则需要进一步确定入口节点与出口节点之间的第一传输路径,以实现将请求数据包从入口节点转发至出口节点。具体而言,入口节点可以根据内容分发网络中多个节点之间的网络状态信息确定第一传输路径,其中,多个节点之间的网络状态信息可以包括节点之间的传输时延,此外,还可以包括节点的丢包率、节点的负载等中的一种或多种。网络状态信息可通过在内容分发网络中主动发送网络探测包探测得到。
在本申请的一个实施例中,入口节点根据内容分发网络中多个节点之间的网络状态信息,确定入口节点和出口节点之间的第一传输路径,可以是通过查询路由表的方式。
具体的,根据预先配置的路由策略,从路由表中查询由入口节点至出口节点的至少一条传输路径。第一传输路径可以是至少一条传输路径中最短传输路径。其中路由表中记载了内容分发网络中可用的节点以及每两个节点之间的网络距离,网络距离可以根据节点之间的传输时延确定的。
需要说明的是,上述实施例列举的是仅依据传输时延来确定网络距离的一种方式,此外,还可综合考虑传输时延、丢包率和负载等状态信息来确定网络距离,在此不做具体限定。
在上述实施方式中,入口节点通过查表的方式即可确定第一传输路径,简便易操作,效率较高。其中,路由表中记载了内容分发网络中可用的节点,因而通过查询路由表可以确定出准确可靠的路径信息,避免路径信息中存在故障节点,提高了内容分发网络的可用性和网络的性能,提高了请求处理效率。
步骤S230、将所述请求数据包通过所述第一传输路径发送至所述出口节点,以使所述出口节点转发所述请求数据包至所述目的地址对应的源站。
具体实施时,入口节点在确定第一传输路径后,则可以将请求数据包通过第一传输路径发送至出口节点。其中,第一传输路径中包括从入口节点到出口节点所需的各个中转节点的路由信息,以及入口节点和出口节点的路由信息,包括距离、IP地址等。
因而,根据第一传输路径中所需的各个中转节点的路由信息,入口节点则可以将请求数据包发送至第一中转节点,第一中转节点接收到来自终端设备的请求数据包后,如果判断出自己不是出口节点,则继续转发请求数据包至第二中转节点,直至请求数据包达到出口节点。出口节点接收到请求数据包后,则可以转发请求数据包至源站。值得强调的是,“第一中转节点”、“第二中转节点”中的“第一”、“第二”是用于表示中转节点顺序上的先后,无论是第一中转节点,还是第二中转节点,其数量是不进行限制的,也就是说,第一中转节点可以是一个或多个,第二中转节点也可以是一个或多个。
需要说明的是,内容分发网络中两两节点之间可以保持多条传输通道,上一节点可以通过多路传输的方式将请求数据包发送至下一节点,通过节点之间的多路并行传输,可以最大程度地提升网络传输效率。
步骤S240、接收所述源站通过所述出口节点转发的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。
当出口节点将请求数据包发送至源站后,源站可通过原路向终端设备返回针对请求数据包的响应数据包,也即是通过第一传输路径信息将响应数据包再转发给终端设备,以实现终端设备与源站的通信。
在本申请的一个实施例中,出口节点可以根据内容分发网络中多个节点之间的网络状态信息确定入口节点与出口节点之间的第二传输路径,这样一来,源站在向终端设备返回响应数据包时,可以不通过原来的第一传输路径,而是通过第二传输路径将响应数据包发送给终端设备。本实施例在源站向终端设备返回响应数据包时,通过动态确定用于路由响应数据包的第二传输路径,动态确定出的第二传输路径更加能够适应内容分发网络的网络状态变化,屏蔽网络中的故障节点,保证了响应数据包的可靠传输。
在上述实施方式中,第一传输路径不是事先指定好的路径,而是由入口节点根据内容分发网络中节点之间的网络状态信息动态确定的,针对源站,传输路径在不同的时间段可能会受内容分发网络中节点之间网络状态信息的影响而发生变化,本申请实施例确定的传输路径更加科学,更加适用于当前的网络状态,使得内容分发网络承担能力更高,提高了对访问请求的处理效率;并且,可以充分利用内容分发网络进行用户请求的转发,有效处理内容分发网络中实时出现的突发状态,提高了内容分发网络的可用性。
在本申请的一个实施例中,在传输请求数据包还可以进行数据包的处理,如图3所示,在该实施例中,可以具体包括步骤S310-步骤S320,现详细说明如下:
步骤S310、根据所述请求数据包,生成多个业务数据包,并将各个业务数据包分别和所述第一传输路径进行组合编码,生成多个请求数据帧。
在本实施例中,入口节点在接收到来自终端设备的请求数据包后,可以将请求数据包拆分为多个业务数据包,然后将各个业务数据包分别和第一传输路径进行组合编码,生成多个请求数据帧。
步骤S320、通过所述第一传输路径将所述多个请求数据帧发送至所述出口节点。
在将请求数据包进行处理,生成多个请求数据帧后,入口节点则可以通过确定出的第一传输路径将多个请求数据帧发送至出口节点。
具体实施例时,第一传输路径中包括从入口节点到出口节点所需的各个中转节点的路由信息,以及入口节点和出口节点的路由信息,包括距离、IP地址等。因此,入口节点可以将多个请求数据帧发送至第一中转节点,第一中转节点在接收到多个请求数据帧后,可以对各个请求数据帧解码获得业务数据包和第一传输路径的信息,如果第一中转节点根据第一传输路径判断出自己不是出口节点,则可以继续转发多个请求数据帧至第二中转节点,直至多个请求数据帧到达出口节点。
在本申请的一个实施例中,入口节点在根据请求数据包生成多个业务数据包之后,可以先将多个业务数据包存储至请求发送队列,在请求发送队列中的多个业务数据包是具有顺序的,这样,在入口节点准备发送时,则可以直接从请求发送队列中按序提取出业务数据包,将按序提取的的各个业务数据包分别和第一传输路径进行组合编码,生成多个请求数据帧,然后,将多个请求数据帧通过第一传输路径进行发送。
进一步地,出口节点在接收到多个请求数据帧之后,可以对多个请求数据帧进行解码获得多个业务数据包和第一传输路径的信息,然后,出口节点可以将解码得到的多个业务数据包存储至请求接收队列,并触发向源站的数据传输。
在本申请的一个实施例中,入口节点在接收到终端设备发送的请求数据包后,可以根据请求数据包的目的地址确定出口节点。实际情况中,入口节点确定出的出口节点可能就是入口节点本身,在这种情况下,入口节点可以直接发送请求数据包,如图4所示,具体包括步骤S410-步骤S420,现详细说明如下:
步骤S410、若确定出的所述出口节点与所述入口节点是同一节点,则发送所述请求数据包至所述源站。
具体地,如果确定出的出口节点与入口节点是同一节点,那么入口节点(也即出口节点)可以直接发送请求数据包至源站,以实现终端设备与源站之间的通信。
步骤S420、接收所述源站返回的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。
在本实施例中,由于入口节点不仅是接收终端设备的请求数据包的节点,也是将请求数据包路由至源站的节点,因此,源站在接收到请求数据包后,则可以向入口节点(也即出口节点)返回针对请求数据包的响应数据包,然后由入口节点(也即出口节点)将响应数据包发送至终端设备。
在本申请的一个实施例中,如图5所示,步骤S410可以具体包括步骤S510-步骤S530,现详细说明如下:
步骤S510、根据所述请求数据包,生成多个业务数据包,并将所述多个业务数据包按序存储至请求发送队列。
与入口节点直接发送请求数据包不同的是,在本实施例中,入口节点可以对请求数据包进行拆分,生成多个业务数据包,然后将多个业务数据包按序存储至请求发送队列中。
步骤S520、若确定出的所述出口节点与所述入口节点是同一节点,则从所述请求发送队列中按序提取所述多个业务数据包,将提取出的多个业务数据包按序存储至请求接收队列。
在对请求数据包进行处理,且按序存储至请求发送队列之后,如果确定出的出口节点与入口节点是同一节点,那么入口节点(也即出口节点)可以直接从请求发送队列中按序提取多个业务数据包,然后,将提取出的多个业务数据包按序存储至请求接收队列,并触发向源站的数据传输。
步骤S530、从所述请求接收队列中按序提取所述多个业务数据包,并对所述多个业务数据包进行解包,将解包得到的多个数据片段进行重组后发送至所述源站。
由于入口节点(也即出口节点)将多个业务数据包按序存储至请求接收队列,也就触发了向源站的数据传输。而这一数据传输过程具体可以是,首先入口节点(也即出口节点)从请求接收队列中按序提取多个业务数据包,然后对多个业务数据包进行解包得到多个数据片段,最后入口节点(也即出口节点)将解码的多个数据片段进行重组后发送至源站。
其中,业务数据包解包重组的具体做法可以是:入口节点(也即出口节点)判断请求接收队列里是否有紧接着上次已发送给源站的最后一个数据包的序列号的数据包,有则将若干连续的数据包从请求接收队列中取出,将去除的若干个连续的业务数据包进行解包重组后发往源站。
在本申请的一个实施例中,入口节点(也即出口节点)将提取出的多个业务数据包按序存储至请求接收队列可以具体包括:
若所述多个业务数据包中目标业务数据包的序列号大于所述请求接收队列中队列末尾业务数据包的序列号,则将所述目标业务数据包存储至所述请求接收队列的队列尾部;
若所述多个业务数据包中目标业务数据包的序列号小于所述请求接收队列中所有业务数据包的序列号,则将所述目标业务数据包存储至所述请求接收队列的队列头部;
若所述多个业务数据包中目标业务数据包的序列号大于所述请求接收队列中第一业务数据包的序列号小于所述请求接收队列中第二数据包的序列号,所述第一业务数据包和所述第二业务数据包为所述请求接收队列中相邻的两个业务数据包,则将所述目标业务数据包存储至所述第一业务数据包和所述第二业务数据包之间;
若所述多个业务数据包中目标业务数据包的序列号等于所述请求接收队列中任一业务数据包的序列号,则丢弃所述目标业务数据包。
在该实施例中,根据序列号将请求接收队列实现为有序队列,当多个业务数据包中序列号为x的目标业务数据包P(x)需要放入请求接收队列的时候,如果目标业务数据包P(x)的序列号x大于队列末尾业务数据包的序列号y,则可以将目标业务数据包P(x)存储在序列号为y的业务数据包P(y)之后。
如果目标业务数据包P(x)的序列号x小于请求接收队列中所有业务数据包的序列号,则可以将目标业务数据包存储至请求接收队列的队列头部。
如果目标业务数据包P(x)的序列号x大于请求接收队列中第一业务数据包的序列号z1小于请求接收队列中第二数据包的序列号z2,第一业务数据包P(z1)和第二业务数据包P(z2)为请求接收队列中相邻的两个业务数据包,则可以将所述目标业务数据包存储至第一业务数据包P(z1)和第二业务数据包P(z2)之间。
如果目标业务数据包P(x)的序列号x等于请求接收队列中任一数据包的序列号,则说明目标业务数据包P(x)是网络重传数据,则可以将目标业务数据包P(x)丢弃。
在本申请的一个实施例中,如图6所示,上述根据请求数据包生成多个业务数据包可以具体包括:
步骤S610、根据预设数据长度对所述请求数据包进行分解,得到多个数据片段;
步骤S620、对各个数据片段进行编号,生成所述各个数据片段对应的序列号;
步骤S630、将所述各个数据片段以及所述各个数据片段对应的序列号进行封装,生成所述多个业务数据包。
在该实施例中,入口节点可以根据预先设定的适合内容分发网络传输的数据长度,将接收到的来自终端设备的请求数据包分解成多个数据片段,并对各个数据片段按顺序进行编号,按特定的算法(比如严格递增)生成序列号,最后,将序列号连同原始数据片段一起封装成业务数据包。
图7示出了根据本申请的一个实施例的基于内容分发网络数据传输方法的流程图,该基于内容分发网络数据传输方法可以由内容分发网络包含的多个节点中的出口节点来执行,该内容分发网络可以是图1中所示的内容分发网络102。参照图7所示,所述方法包括步骤S710-步骤S720,现详细说明如下:
步骤S710、接收入口节点通过所述入口节点与所述出口节点之间的第一传输路径发送的来自于终端设备的请求数据包,所述第一传输路径是所述入口节点在根据所述终端设备发送的请求数据包的目的地址从所述多个节点中确定出用于路由所述请求数据包的出口节点,且确定所述出口节点与所述入口节点不是同一节点后,根据所述多个节点之间的网络状态信息确定出的。
本实施例中的数据传输方法由内容分发网络包含的多个节点中的出口节点执行,在用户需要访问源站时,可以通过终端设备向内容分发网络中的入口节点发送请求数据包,入口节点在接收到请求数据包后,可以根据请求数据包的目的地址,从内容分发网络包含的多个节点中确定出口节点。出口节点是内容分发网络中转发用户的请求数据包的最后一个节点,出口节点用于将请求数据包发送至源站。
在本实施例中,请求数据包发送至入口节点后,入口节点可以确定出出口节点,且在入口节点与出口节点不是同一节点时,根据内容分发网络中多个节点之间的网络状态信息确定入口节点与出口节点之间的第一传输路径,这样一来,入口节点可以通过第一传输路径向出口节点发送来自终端设备的请求数据包。
步骤S720、将所述请求数据包发送至所述目的地址对应的源站。
出口节点接收到请求数据包后,则可以发送请求数据包至源站。源站是请求数据包的目的地址所对应的外部站点,也是用户请求的目的站点。
步骤S730、接收所述源站返回的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述入口节点,以使所述入口节点转发所述响应数据包至所述终端设备。
源站在接收到用户的请求数据包,且通过响应请求数据包得到针对请求数据包的响应数据包后,可以将响应数据包发送至出口节点,以使出口节点可以转发响应数据包至入口节点。
在本申请的一些实施例中,出口节点可以通过入口节点与出口节点之间的第一传输路径将响应数据包发送至入口节点,这种方式比较适用于整个请求响应时间短,内容分发网络的网络状态变化几乎不大的情况下。
在本申请的其他实施例中,内容分发网络中节点以及节点之间的网络状态都是动态变化的,随着时间的推移,内容分发网络中可能会出现增删节点、网络故障等情况。因此,为了适应于内容分发网络环境的动态变化,入口节点与出口节点之间的传输路径也是随之变化的,在该实施例中,出口节点将响应数据包发送至入口节点还可以是出口节点通过入口节点与出口节点之间的第二传输路径将响应数据包发送至入口节点,其中,第二传输路径可以是出口节点根据多个节点之间的网络状态信息确定出的。
在本申请的一个实施例中,出口节点接收到源站发送的响应数据包之后,可以根据预先设定的适合内容分发网络传输的数据长度对响应数据包进行分解,得到多个数据片段,然后,出口节点可以将数据片段按顺序进行编号生成序列号,并将序列号连同原始数据片段一起封装成业务结果数据包,得到多个业务结果数据包。
进一步,出口节点可以将各个业务结果数据包分别和第二传输路径进行组合编码,生成多个响应数据帧;通过第二传输路径将多个响应数据帧发送至入口节点。
在本申请的一个实施例中,出口节点在生成多个业务结果数据包之后,可以将多个业务数据包按序存储至响应发送队列,这样的话,在出口节点准备发送时,则可以从响应发送队列中按序提取多个业务结果数据包,将按序提取的各个业务结果数据包分别和第二传输路径进行组合编码,生成多个响应数据帧。
进一步,入口节点在接收到多个响应数据帧之后,可以对多个响应数据帧进行解码获得多个业务结果数据包和第二传输路径的信息,然后入口节点可以将解码得到的多个业务结果数据包存储至响应接收队列,并触发向终端设备的数据传输。
在本申请的一个实施例中,如果入口节点和出口节点是同一节点,则出口节点(也即入口节点)在接收到源站返回的响应数据包后,出口节点(也入口节点)可以在对响应数据包进行处理得到多个业务结果数据包之后,将多个业务结果数据包按序存储至响应发送队列,这样一来,出口节点(也即入口节点)可以直接从响应发送队列中按序提取多个业务结果数据包,然后将提取出的多个业务结果数据包按序存储至请求接收队列,并触发向终端设备的数据传输。
具体而言,出口节点(也即入口节点)向终端设备的数据传输过程具体可以是,首先出口节点(也即入口节点)从响应接收队列中按序提取多个结果业务数据包,然后对多个业务结果数据包进行解包得到多个数据片段,最后出口节点(也即入口节点)将解码的多个数据片段进行重组后发送至终端设备。
还需要进一步说明的是,出口节点(也入口节点)将多个业务结果数据包按序存储至响应发送队列与上述入口节点(也即出口节点)将提取出的多个业务数据包按序存储至请求接收队列的规则相同,在此不再赘述。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的基于内容分发网络的数据传输方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的基于内容分发网络数据传输方法的实施例。
图8示出了根据本申请的一个实施例的基于内容分发网络数据传输装置的框图,参照图8所示,根据本申请的一个实施例的基于内容分发网络数据传输装置800,包括:第一确定单元802、第二确定单元804、第一发送单元806以及第一接收单元808。
其中,所述第一确定单元802,配置为根据终端设备发送的请求数据包的目的地址,从所述多个节点中确定用于路由所述请求数据包的出口节点;所述第二确定单元804,配置为若确定出的所述出口节点与所述入口节点不是同一节点,则根据所述多个节点之间的网络状态信息确定所述入口节点与所述出口节点之间的第一传输路径;所述第一发送单元806,配置为将所述请求数据包通过所述第一传输路径发送至所述出口节点,以使所述出口节点转发所述请求数据包至所述目的地址对应的源站;所述第一接收单元808,配置为接收所述源站通过所述出口节点转发的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。
在本申请的一些实施例中,所述第一接收单元808还配置为:接收所述源站通过所述入口节点与所述出口节点之间的第二传输路径发送的针对所述请求数据包的响应数据包,所述第二传输路径是所述出口节点根据所述多个节点之间的网络状态信息确定出的。
在本申请的一些实施例中,所述第一发送单元806包括:生成子单元,配置为根据所述请求数据包,生成多个业务数据包,并将各个业务数据包分别和所述第一传输路径进行组合编码,生成多个请求数据帧;发送子单元,配置为通过所述第一传输路径将所述多个请求数据帧发送至所述出口节点。
在本申请的一些实施例中,所述生成子单元还配置为:将所述多个业务数据包按序存储至请求发送队列;从所述请求发送队列中按序提取所述多个业务数据包,将按序提取的各个业务数据包分别和所述第一传输路径进行组合编码,生成所述多个请求数据帧。
在本申请的一些实施例中,所述数据传输装置还包括:请求数据包发送单元,配置为若确定出的所述出口节点与所述入口节点是同一节点,则发送所述请求数据包至所述源站;响应数据包接收的单元,配置为接收所述源站返回的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。
在本申请的一些实施例中,所述请求数据包发送单元包括:生成存储子单元,配置为根据所述请求数据包,生成多个业务数据包,并将所述多个业务数据包按序存储至请求发送队列;第一提取子单元,配置为若确定出的所述出口节点与所述入口节点是同一节点,则从所述请求发送队列中按序提取所述多个业务数据包,将提取出的多个业务数据包按序存储至请求接收队列;第二提取子单元,配置为从所述请求接收队列中按序提取所述多个业务数据包,并对所述多个业务数据包进行解包,将解包得到的多个数据片段进行重组后发送至所述源站。
在本申请的一些实施例中,所述第一提取子单元配置为:若所述多个业务数据包中目标业务数据包的序列号大于所述请求接收队列中队列末尾业务数据包的序列号,则将所述目标业务数据包存储至所述请求接收队列的队列尾部;若所述多个业务数据包中目标业务数据包的序列号小于所述请求接收队列中所有业务数据包的序列号,则将所述目标业务数据包存储至所述请求接收队列的队列头部;若所述多个业务数据包中目标业务数据包的序列号大于所述请求接收队列中第一业务数据包的序列号小于所述请求接收队列中第二数据包的序列号,所述第一业务数据包和所述第二业务数据包为所述请求接收队列中相邻的两个业务数据包,则将所述目标业务数据包存储至所述第一业务数据包和所述第二业务数据包之间;若所述多个业务数据包中目标业务数据包的序列号等于所述请求接收队列中任一数据包的序列号,则丢弃所述目标业务数据包。
在本申请的一些实施例中,所述生成子单元或所述生成存储子单元配置为:根据预设数据长度对所述请求数据包进行分解,得到多个数据片段;对各个数据片段进行编号,生成所述各个数据片段对应的序列号;将所述各个数据片段以及所述各个数据片段对应的序列号进行封装,生成所述多个业务数据包。
图9示出了根据本申请的一个实施例的基于内容分发网络数据传输装置的框图。
参见图9所示,根据本申请的一个实施例的基于内容分发网络数据传输装置900,包括:第二接收单元902、第二发送单元904以及第三接收单元906。
其中,所述第二接收单元902,配置为接收入口节点通过所述入口节点与所述出口节点之间的第一传输路径发送的来自于终端设备的请求数据包,所述第一传输路径是所述入口节点在根据所述终端设备发送的请求数据包的目的地址从所述多个节点中确定出用于路由所述请求数据包的出口节点,且确定所述出口节点与所述入口节点不是同一节点时,根据所述多个节点之间的网络状态信息确定出的;所述第二发送单元904,配置为将所述请求数据包发送至所述目的地址对应的源站;所述第三接收单元906,配置为接收所述源站返回的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述入口节点,以使所述入口节点转发所述响应数据包至所述终端设备。
在本申请的一些实施例中,所述第三接收单元906还配置为:根据所述多个节点之间的网络状态信息确定所述入口节点与所述出口节点之间的第二传输路径;将所述响应数据包通过所述第二传输路径发送至所述入口节点。
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图10示出的电子设备的计算机系统1000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理单元(Central Processing Unit,CPU)1001,其可以根据存储在只读存储器(Read-Only Memory,ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(Random Access Memory,RAM)1003中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1003中,还存储有系统操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(Input/Output,I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (12)
1.一种内容分发网络数据传输方法,其特征在于,所述内容分发网络包含有多个节点,所述数据传输方法由所述多个节点中的入口节点执行,所述数据传输方法包括:
根据终端设备发送的请求数据包的目的地址,从所述多个节点中确定用于路由所述请求数据包的出口节点;
若确定出的所述出口节点与所述入口节点不是同一节点,则根据所述多个节点之间的网络状态信息确定所述入口节点与所述出口节点之间的第一传输路径;
将所述请求数据包通过所述第一传输路径发送至所述出口节点,以使所述出口节点转发所述请求数据包至所述目的地址对应的源站;
接收所述源站通过所述出口节点转发的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。
2.根据权利要求1所述的方法,其特征在于,接收所述源站通过所述出口节点转发的针对所述请求数据包的响应数据包,包括:
接收所述源站通过所述入口节点与所述出口节点之间的第二传输路径发送的针对所述请求数据包的响应数据包,所述第二传输路径是所述出口节点根据所述多个节点之间的网络状态信息确定出的。
3.根据权利要求1所述的方法,其特征在于,将所述请求数据包通过所述第一传输路径发送至所述出口节点,包括:
根据所述请求数据包,生成多个业务数据包,并将各个业务数据包分别和所述第一传输路径进行组合编码,生成多个请求数据帧;
通过所述第一传输路径将所述多个请求数据帧发送至所述出口节点。
4.根据权利要求3所述的方法,其特征在于,在根据所述请求数据包,生成多个业务数据包之后,所述方法还包括:
将所述多个业务数据包按序存储至请求发送队列;
将各个业务数据包分别和所述第一传输路径进行组合编码,生成多个请求数据帧,包括:
从所述请求发送队列中按序提取所述多个业务数据包,将按序提取的各个业务数据包分别和所述第一传输路径进行组合编码,生成所述多个请求数据帧。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若确定出的所述出口节点与所述入口节点是同一节点,则发送所述请求数据包至所述源站;
接收所述源站返回的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。
6.根据权利要求5所述的方法,其特征在于,所述若确定出的所述出口节点与所述入口节点是同一节点,则发送所述请求数据包至所述源站,包括:
根据所述请求数据包,生成多个业务数据包,并将所述多个业务数据包按序存储至请求发送队列;
若确定出的所述出口节点与所述入口节点是同一节点,则从所述请求发送队列中按序提取所述多个业务数据包,将提取出的多个业务数据包按序存储至请求接收队列;
从所述请求接收队列中按序提取所述多个业务数据包,并对所述多个业务数据包进行解包,将解包得到的多个数据片段进行重组后发送至所述源站。
7.根据权利要求6所述的方法,其特征在于,将提取出的多个业务数据包按序存储至请求接收队列,包括:
若所述多个业务数据包中目标业务数据包的序列号大于所述请求接收队列中队列末尾业务数据包的序列号,则将所述目标业务数据包存储至所述请求接收队列的队列尾部;
若所述多个业务数据包中目标业务数据包的序列号小于所述请求接收队列中所有业务数据包的序列号,则将所述目标业务数据包存储至所述请求接收队列的队列头部;
若所述多个业务数据包中目标业务数据包的序列号大于所述请求接收队列中第一业务数据包的序列号小于所述请求接收队列中第二数据包的序列号,所述第一业务数据包和所述第二业务数据包为所述请求接收队列中相邻的两个业务数据包,则将所述目标业务数据包存储至所述第一业务数据包和所述第二业务数据包之间;
若所述多个业务数据包中目标业务数据包的序列号等于所述请求接收队列中任一业务数据包的序列号,则丢弃所述目标业务数据包。
8.根据权利要求2或5所述的方法,其特征在于,根据所述请求数据包,生成多个业务数据包,包括:
根据预设数据长度对所述请求数据包进行分解,得到多个数据片段;
对各个数据片段进行编号,生成所述各个数据片段对应的序列号;
将所述各个数据片段以及所述各个数据片段对应的序列号进行封装,生成所述多个业务数据包。
9.一种基于内容分发网络的数据传输方法,其特征在于,所述内容分发网络包含有多个节点,所述数据传输方法由所述多个节点中的出口节点执行,所述数据传输方法包括:
接收入口节点通过所述入口节点与所述出口节点之间的第一传输路径发送的来自于终端设备的请求数据包,所述第一传输路径是所述入口节点在根据所述终端设备发送的请求数据包的目的地址从所述多个节点中确定出用于路由所述请求数据包的出口节点,且确定所述出口节点与所述入口节点不是同一节点后,根据所述多个节点之间的网络状态信息确定出的;
将所述请求数据包发送至所述目的地址对应的源站;
接收所述源站返回的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述入口节点,以使所述入口节点转发所述响应数据包至所述终端设备。
10.根据权利要求9所述的方法,其特征在于,将所述响应数据包发送至所述入口节点,包括:
根据所述多个节点之间的网络状态信息确定所述入口节点与所述出口节点之间的第二传输路径;
将所述响应数据包通过所述第二传输路径发送至所述入口节点。
11.一种内容分发网络数据传输装置,其特征在于,所述内容分发网络包含有多个节点,所述数据传输方法由所述多个节点中的入口节点执行,所述数据传输装置包括:
第一确定单元,配置为根据终端设备发送的请求数据包的目的地址,从所述多个节点中确定用于路由所述请求数据包的出口节点;
第二确定单元,配置为若确定出的所述出口节点与所述入口节点不是同一节点,则根据所述多个节点之间的网络状态信息确定所述入口节点与所述出口节点之间的第一传输路径;
第一发送单元,配置为将所述请求数据包通过所述第一传输路径发送至所述出口节点,以使所述出口节点转发所述请求数据包至所述目的地址对应的源站;
第一接收单元,配置为接收所述源站通过所述出口节点转发的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述终端设备。
12.一种内容分发网络数据传输装置,其特征在于,所述内容分发网络包含有多个节点,所述数据传输方法由所述多个节点中的出口节点执行,所述数据传输装置包括:
第二接收单元,配置为接收入口节点通过所述入口节点与所述出口节点之间的第一传输路径发送的来自于终端设备的请求数据包,所述第一传输路径是所述入口节点在根据所述终端设备发送的请求数据包的目的地址从所述多个节点中确定出用于路由所述请求数据包的出口节点,且确定所述出口节点与所述入口节点不是同一节点时,根据所述多个节点之间的网络状态信息确定出的;
第二发送单元,配置为将所述请求数据包发送至所述目的地址对应的源站;
第三接收单元,配置为接收所述源站返回的针对所述请求数据包的响应数据包,并将所述响应数据包发送至所述入口节点,以使所述入口节点转发所述响应数据包至所述终端设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011092930.6A CN112243028A (zh) | 2020-10-13 | 2020-10-13 | 内容分发网络数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011092930.6A CN112243028A (zh) | 2020-10-13 | 2020-10-13 | 内容分发网络数据传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112243028A true CN112243028A (zh) | 2021-01-19 |
Family
ID=74169012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011092930.6A Pending CN112243028A (zh) | 2020-10-13 | 2020-10-13 | 内容分发网络数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112243028A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112788154A (zh) * | 2021-01-29 | 2021-05-11 | 北京奇艺世纪科技有限公司 | 一种数据传输系统及方法 |
CN113965508A (zh) * | 2021-12-22 | 2022-01-21 | 北京华云安信息技术有限公司 | 双路径数据传输方法、电子设备和计算机可读存储介质 |
-
2020
- 2020-10-13 CN CN202011092930.6A patent/CN112243028A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112788154A (zh) * | 2021-01-29 | 2021-05-11 | 北京奇艺世纪科技有限公司 | 一种数据传输系统及方法 |
CN113965508A (zh) * | 2021-12-22 | 2022-01-21 | 北京华云安信息技术有限公司 | 双路径数据传输方法、电子设备和计算机可读存储介质 |
CN113965508B (zh) * | 2021-12-22 | 2022-08-02 | 北京华云安信息技术有限公司 | 双路径数据传输方法、电子设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110708393B (zh) | 用于传输数据的方法、装置和系统 | |
CN109951880B (zh) | 通信处理方法、装置、计算机可读介质及电子设备 | |
US9374241B2 (en) | Tagging virtual overlay packets in a virtual networking system | |
CN111294415B (zh) | 域名解析的方法和装置 | |
CN111131037A (zh) | 基于虚拟网关的数据传输方法、装置、介质与电子设备 | |
US11064021B2 (en) | Method, device and computer program product for managing network system | |
CN110012118B (zh) | 一种提供网络地址转换nat服务的方法及控制器 | |
CN113691589B (zh) | 报文传输方法、装置及系统 | |
CN112243028A (zh) | 内容分发网络数据传输方法及装置 | |
CN113746749A (zh) | 网络连接设备 | |
US10630589B2 (en) | Resource management system | |
CN109426631A (zh) | 一种基于rdma的通信方法、装置及存储介质 | |
CN112003945A (zh) | 服务请求响应方法及装置 | |
CN105450585A (zh) | 一种信息传输方法及装置 | |
CN110545230B (zh) | 用于转发vxlan报文的方法和装置 | |
CN111913817A (zh) | 一种数据传输方法、系统和设备以及计算机可读存储介质 | |
CN114640679B (zh) | 数据包传输方法及装置、存储介质、电子设备 | |
US8819107B2 (en) | Relay apparatus, recording medium storing a relay program, and a relay method | |
CN109005250B (zh) | 用于访问服务端的方法和装置 | |
CN111800223A (zh) | 生成发送报文、处理接收报文的方法、装置和系统 | |
CN115514771A (zh) | 数据传输方法、装置、电子设备及计算机可读存储介质 | |
US20240193249A1 (en) | Method of processing cross-domain authorization and method of processing cross-domain call | |
CN111988221B (zh) | 数据传输方法、数据传输装置、存储介质与电子设备 | |
CN116781764A (zh) | 长连接的任务执行方法、装置及相关设备 | |
CN116418726A (zh) | 源路由编码方法、数据包路由方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40037360 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |