CN115996195B - 一种数据传输方法、装置、设备及介质 - Google Patents

一种数据传输方法、装置、设备及介质 Download PDF

Info

Publication number
CN115996195B
CN115996195B CN202310291147.XA CN202310291147A CN115996195B CN 115996195 B CN115996195 B CN 115996195B CN 202310291147 A CN202310291147 A CN 202310291147A CN 115996195 B CN115996195 B CN 115996195B
Authority
CN
China
Prior art keywords
data stream
transmission
data
target
transmission channel
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
CN202310291147.XA
Other languages
English (en)
Other versions
CN115996195A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310291147.XA priority Critical patent/CN115996195B/zh
Publication of CN115996195A publication Critical patent/CN115996195A/zh
Application granted granted Critical
Publication of CN115996195B publication Critical patent/CN115996195B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请实施例提供了一种数据传输方法、装置、设备及介质,其中的方法包括:当传输通道中产生待传输的第一数据流时,获取传输通道的网络状态;若网络状态指示传输通道存在网络拥塞,则获取与传输通道关联的已存在的至少一个第二数据流;从至少一个第二数据流中筛选目标数据流;将目标数据流所占用的传输资源共享至第一数据流,并采用被共享的传输资源传输第一数据流。采用本申请实施例能够提升网络通信中的流量传输性能。

Description

一种数据传输方法、装置、设备及介质
技术领域
本申请涉及计算机技术领域,尤其涉及网络通信领域,具体涉及一种数据流方法、装置、设备及介质。
背景技术
随着计算机技术的快速发展,计算机网络通信的流量传输成为影响网络通信质量的重要性能。在计算机网络通信的流量传输性能较好的情况下,能够确保端到端之间流量传输的完整性和快速性。
然而,目前计算机网络通信往往存在网络拥塞;例如,在直播业务中处于同一直播房间的多个终端往往需要向直播服务器请求流量,如果请求流量较多,会在直播服务器-终端之间出现网络拥塞,导致网络丢包,降低流量传输性能。因此,如何降低网络丢包,提升流量传输性能成为计算机网络通信领域的研究热点。
发明内容
本申请实施例提供一种数据传输方法、装置、设备及介质,能够提升网络通信中的流量传输性能。
一方面,本申请实施例提供了一种数据传输方法,该方法包括:
当传输通道中产生待传输的第一数据流时,获取传输通道的网络状态;传输通道是指从第一数据流的源地址到第一数据流的目的地址之间的数据通路;
若网络状态指示传输通道存在网络拥塞,则获取传输通道中已存在的至少一个第二数据流;
从至少一个第二数据流中筛选目标数据流;
将目标数据流所占用的传输资源共享至第一数据流,并采用被共享的传输资源传输第一数据流。
另一方面,本申请实施例提供了一种数据传输装置,该装置包括:
获取单元,用于当传输通道中产生待传输的第一数据流时,获取传输通道的网络状态;传输通道是指从第一数据流的源地址到第一数据流的目的地址之间的数据通路;
处理单元,用于若网络状态指示传输通道存在网络拥塞,则获取传输通道中已存在的至少一个第二数据流;
处理单元,还用于从至少一个第二数据流中筛选目标数据流;
处理单元,还用于将目标数据流所占用的传输资源共享至第一数据流,并采用被共享的传输资源传输第一数据流。
在一种实现方式中,与传输通道关联的已存在的至少一个第二数据流,包括:
传输通道中已存在的数据流;其中,传输通道中已存在的数据流的源地址与第一数据流的源地址相同,且目的地址与第一数据流的目的地址相同;
或者,与传输通道存在相同链路的其他传输通道中已存在的数据流;其中,其他传输通道中已存在的数据流的源地址与第一数据流的源地址相同,且目的地址与第一数据流的目的地址属于同一对象群组。
在一种实现方式中,一个数据流对应一种业务;处理单元,用于从至少一个第二数据流中筛选目标数据流时,具体用于:
按照数据流筛选规则,从与传输通道关联的已存在的至少一个第二数据流中筛选目标数据流;
其中,数据流筛选规则包括:将至少一个第二数据流中占用传输资源大于资源阈值的第二数据流作为目标数据流;或者,将至少一个第二数据流中占用传输资源最多的第二数据流作为目标数据流;或者,将至少一个第二数据流中持续时间最长的第二数据流作为目标数据流;或者,将至少一个第二数据流中相应业务的业务等级低于等级阈值的第二数据流作为目标数据流。
在一种实现方式中,数据传输方法应用于数据发送端;传输通道中待传输的第一数据流是基于对象终端发送的流量请求报文所生成的;处理单元,用于获取传输通道的网络状态时,具体用于:
获取传输通道的网络参数,网络参数是数据发送端按照统计周期进行周期性统计得到的;
若网络参数大于等于参数阈值,则确定传输通道的网络状态指示传输通道存在网络拥塞。
在一种实现方式中,网络参数至少包含最大可用带宽和在途数据量;最大可用带宽是指第一数据流传输时所需的发送速率,在途数据量是指传输通道中已使用的发送窗口;
在网络参数为最大可用带宽时,网络参数大于等于参数阈值是指最大可用带宽大于等于带宽阈值;
在网络参数为在途数据量时,网络参数大于等于参数阈值是指在途数据量大于等于数据量阈值。
在一种实现方式中,处理单元,用于将目标数据流所占用的传输资源共享至第一数据流时,具体用于:
获取目标数据流所占用的传输资源;
将目标数据流所占用的传输资源降低目标变化资源量,得到目标数据流所占用的新的传输资源;
将目标数据流降低的目标变化资源量,作为第一数据流的传输资源。
在一种实现方式中,网络参数为最大可用带宽时,传输资源为发送速率,目标变化资源量为目标变化速率量;网络参数为在途数据量时,传输资源为发送窗口,目标变化资源量为目标变化窗口量;
其中,目标变化资源量是基于预设的资源参数比例所确定的。
在一种实现方式中,处理单元,用于采用被共享的传输资源传输第一数据流时,具体用于:
按照目标数据流共享至第一数据流的传输资源,向对象终端发送第一数据流;
处理单元,还用于:按照目标数据流所占用的新的传输资源,向对象终端所属的对象群组发送目标数据流。
在一种实现方式中,数据传输方法应用于中间路由节点;第一数据流是由数据发送端转发所得到的;处理单元,用于获取传输通道的网络状态时,具体用于:
基于第一数据流的目的地址,确定第一数据流对应的对象群组;对象群组中包含通过传输通道的全部或部分链路传输数据流的一个或多个对象终端,第一数据流的目的地址指向对象群组中的一个对象终端;
获取对象群组对应的转发队列,转发队列中按照报文接收顺序,依次存储有对象群组中各对象终端对应的第二数据流的报文;
根据各对象终端对应的第二数据流的报文数量,计算转发队列的使用率;
若使用率大于或等于使用阈值,则确定传输通道的网络状态指示传输通道存在网络拥塞。
在一种实现方式中,目标数据流为占用传输资源大于资源阈值的第二数据流,或者目标数据流为至少一个第二数据流中占用传输资源最多的第二数据流;第二数据流的报文数量越多,第二数据流所占用的传输资源越多;处理单元,用于从至少一个第二数据流中筛选目标数据流时,具体用于:
获取转发队列对应的统计列表,统计列表中关联存储有转发队列中各第二数据流的流量标识和报文数量;统计列表是跟随转发队列动态更新的;
基于统计列表中记录的各第二数据流的报文数量,筛选出目标数据流。
在一种实现方式中,处理单元,用于基于统计列表中记录的各第二数据流的报文数量,筛选出目标数据流时,具体用于:
从统计列表中筛选报文数量最多的第二数据流;
将被筛选出的第二数据流作为目标数据流。
在一种实现方式中,处理单元,用于基于统计列表中记录的各第二数据流的报文数量,筛选出目标数据流时,具体用于:
从转发队列中存储的末端报文开始,依次检索各报文对应的第二数据流在统计列表中记录的报文数量,直至检索到目标报文对应的第二数据流在统计列表中记录的报文数量大于或等于数量阈值;
将目标报文对应的第二数据流作为目标数据流。
在一种实现方式中,传输资源为报文所占用的存储空间;处理单元,用于将目标数据流所占用的传输资源共享至第一数据流时,具体用于:
从转发队列中移除目标数据流的K个报文;目标数据流所包含的报文数量大于或等于K,K为正整数;
将第一数据流的K个报文添加至转发队列中,得到更新后的转发队列;
处理单元,用于采用被共享的传输资源传输第一数据流时,具体用于:
按照更新的转发队列,向对象终端发送第一数据流。
在一种实现方式中,处理单元,还用于:
删除目标数据流中被移除的K个报文,并向数据发送端发送丢包反馈报文,丢包反馈报文用于指示目标数据流中的K个报文被丢失;
或者,将目标数据流中被移除的K个报文转发至中间路由节点的上一路由节点;
在检测到转发队列的使用率小于使用阈值时,从上一路由节点接收目标数据流中被移除的K个报文,并对目标数据流中被移除的K个报文进行转发。
另一方面,本申请实施例提供了一种计算机设备,该设备包括:
处理器,用于加载并执行计算机程序;
计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时,实现上述数据传输方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行上述数据传输方法。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,计算机指令被处理器执行时实现上述的数据传输方法。
本申请实施例中,在传输通道中产生新的待传输的第一数据流(即新的流量),且检测到传输通道的网络状态指示该传输通道存在网络拥塞时,可以获取与传输通道关联的已存在的至少一个第二数据流。然后,从该至少一个第二数据流中筛选出目标数据流;如该目标数据流可以是至少一个第二数据流中数据量最多或持续时长最长的第二数据流,或者,是至少一个第二数据流中与目标业务(如第一数据流对应的业务,或者与第一数据流对应的业务相关的业务)之间的相关性较低的第二数据流等;考虑到目标数据流的数量量多或持续时长较长或者与目标业务的相关性较低,那么该目标数据流少量丢包或减缓传输速率时,对该目标数据流对应的业务的影响性较小,因此本申请实施例支持将该目标数据流所占用的传输资源共享一部分至待传输的第一数据流;这样,不仅确保在网络拥塞的情况下第一数据流不被丢包(即仍然能够正常传输),而且对目标数据流的传输性能影响较小,有效缓解网络通信过程中的网络拥塞,提升了整体流量的传输效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的一种通过传输通道传输多个数据流的网络通信的架构示意图;
图2a是本申请一个示例性实施例提供的一种数据发送端存在网络拥塞的示意图;
图2b是本申请一个示例性实施例提供的一种中间路由节点存在网络拥塞的示意图;
图3是本申请一个示例性实施例提供的一种差异化拥塞控制方式的原理示意图;
图4是本申请一个示例性实施例提供的一种数据传输方法的流程示意图;
图5是本申请一个示例性实施例提供的一种获取至少一个第二数据流的示意图;
图6是本申请一个示例性实施例提供的另一种获取至少一个第二数据流的示意图;
图7是本申请一个示例性实施例提供的另一种数据传输方法的流程示意图;
图8是本申请一个示例性实施例提供的一种数据发送端对应的多个对象群组的示意图;
图9是本申请一个示例性实施例提供的一种在数据发送端实现资源共享的示意图;
图10是本申请一个示例性实施例提供的又一种数据传输方法的流程示意图;
图11是本申请一个示例性实施例提供的一种转发队列对应的统计列表的示意图;
图12是本申请一个示例性实施例提供的一种中间路由节点筛选目标数据流的示意图;
图13是本申请一个示例性实施例提供的另一种中间路由节点筛选目标数据流的示意图;
图14是本申请一个示例性实施例提供的一种移除目标数据流的K个报文,并将第一数据流的K个报文添加至转发队列的示意图;
图15是本申请一个示例性实施例提供的一种数据传输装置的结构示意图;
图16是本申请一个示例性实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例涉及计算机网络通信(或者简称为网络通信),是指利用物理链路将各个孤立的工作站或主机相连在一起组成传输通道(用于传输数据或信息的数据通路),通过该传输通道能够将数据流从一个计算机设备(如上述提及的工作站或主机)传递至另一个计算机设备中,从而达到计算机设备之间通信的目的。值得注意的是,①通过传输通道传输数据流时,具体是依赖于网络通信协议来实现各工作站或主机之间的资源共享和通信;只有收发数据流的计算机设备使用相同的网络通信协议时,才能进行信息的沟通与交流;常见的网络通信协议可以包括但是不限于:传输控制协议(Transmission ControlProtocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)、基于UDP的低时延的互联网传输层协议(Quick UDP Internet Connection,QUIC)或者互联网协议(InternetProtocol,IP)等等。②上述提及的数据流可以称为网络流量(或者简称为流量、流),可以是指计算机网络上传输的数据量(如从数据发送端传输至对象终端的数据),具体是通过传输通道传输的数据量。数据流具有源地址和目的地址,数据流的源地址可以是产生该数据流的计算机设备(如云服务器)的互联网协议(Internet Protocol,IP)地址,数据流的目的地址可以接收该数据流的计算机设备(如用户终端)的IP地址;也就是说,每个数据流均从自己的源地址传输至目的地址,具有流向性。进一步的,用于传输数据流的传输通道可以是指,从数据流的源地址到数据流的目的地址之间的一段数据通路。
应当理解的是,计算机网络中往往存在多个数据流共享传输资源(或者称为网络资源),以实现在传输通道中传输多个数据流的现象。例如,该多个数据流的目的地址可能是同一地址(如某个对象终端的IP地址);如在直播场景中,对象终端始终保持与业务服务器(如直播服务器)之间的通信连接,这样业务服务器可以通过传输通道持续向对象终端下发关于直播业务的一个或多个数据流,以便于对象终端能够持续输出直播音视频;此实现方式下,用于传输各数据流的传输通道相同,即采用同一数据通道传输下发至同一对象终端的不同数据流。再如,该多个数据流的目的地址可能是不同地址(如多个对象终端的IP地址);如在直播场景中,处于同一直播房间内的多个对象设备需要向业务服务器(如直播服务器)进行流量请求,以便于业务服务器通过传输通道向处于该同一直播房间内的多个对象服务器下发数据流,从而实现各对象终端的用户能够同时观看直播;此实现方式下,用于传输各数据流的传输通道并不完全相同,但是各传输通道存在相同的部分数据通路,如各数据流均是从直播服务器下发至路由器节点,再由路由器节点将各数据流转发至不同的对象终端,此时各数据流位于直播服务器与路由器节点之间的数据通路是相同的,但位于路由器节点与各对象终端之间的数据通路不同。
一种示例性的通过传输通道传输多个数据流的网络通信的示意图可以参见图1;如图1所示,该计算机网络中包含有服务器集群、网关集群和对象集群。其中,服务器集群可以是指由负责同一业务的多个服务器构建的集群,网关集群可以是指包含多个路由器(Router)的集群,对象集群可以是指由连接到服务器集群的各对象所持有的对象终端构成的集群;本申请实施例对各集群所包含的计算机设备的数量和命名不作限定,也在此说明。其中:
(1)服务器集群中包含一个或多个业务服务器;业务服务器可以是指承载业务服务的功能的服务器,主要用于计算和处理与业务相关的事务。网关集群中包含一个或多个路由器(或称为路由服务器)。路由器可以理解为负责在业务服务器和对象终端之间进行数据中转的中转设备,起到网关作用;业务服务器只需按照事先协商好的网络通信协议将数据发送至路由器,由路由器作为代理设备将数据转发至目的地址(如对象终端)。
其中,上述提及的服务器(如业务服务器或路由服务器)可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,云计算(cloudcomputing)是云技术(Cloud technology)领域下的重要分支;云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术;是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算是云技术的重要支撑;技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站;伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
(2)对象集群中包含与服务器集群建立有通信连接的一个或多个对象终端;该对象终端是用户所持有的终端设备,用于通过路由器与业务服务器进行业务对接,如从业务服务器中获取业务数据进行输出等。终端设备可以包括但不限于:智能手机(如部署安卓(Android)系统的智能手机,或部署互联网操作系统(Internetworking OperatingSystem,IOS)的智能手机)、平板电脑、便携式个人计算机、移动互联网设备(MobileInternet Devices,MID)、车载设备、头戴设备、智能音箱、智能手表和台式计算机等设备,但并不局限于此。上述提及的业务服务器、路由器和对象终端之间可以通过有线或无线的通信方式进行直接或间接地连接,本申请实施例对各计算机设备之间的具体通信连接方式不作限定;如业务服务器和路由器之间可以通过网线连接,而路由器与对象终端之间可以通过无线(如wifi)连接等。
更详细地,本申请实施例支持按照一定的划分规则,将对象集群中的一个或多个对象终端划分为不同的对象群组;这样,属于同一对象群组的多个对象终端对应的数据流,可以经过相同的路由节点(即上述提及的路由器)转发至相应的对象终端,在一定程度上节省数据流传输的资源开销,提升流量传输效率。其中,划分规则可以包括但是不限于:地域划分规则或者对象属性划分规则(如年龄段或性别)等等。为便于阐述,本申请实施例以划分规则为地域划分规则为例进行阐述,所谓地域划分可以是指:将根据对象终端的IP地址所在的省份、城市、运营商、(园区)或接入方式将对象终端划分为若干对象群组(UserGroup,UG);使得对象终端所处的地域相近的各对象终端划分至同一对象群组(或者将距离较近的各对象终端划分至同一对象群组)程。例如,对象集群中包含对象终端1、对象终端2、对象终端3、对象终端4、对象终端5和对照终端6,如果对象终端1和对象终端2之间距离10米,对象终端1和除开对象终端2之外的其他对象终端之间的距离均大于10米,那么可以将对象终端1和对象终端2划分为同一对象群组1(即图1所示的用户群组1);同理,可以得到对象群组2和对象群组3等等。
继续参见图1,对于用户群组1中的每个对象终端(如对象终端5和对象终端6)而言,业务服务器可以将每个对象终端对应的数据流,依次经由路由器R1→路由器R2→路由器R3转发至相应的对象终端;如对象终端5对应的数据流1经由路由器R1→路由器R2→路由器R3转发至对象终端5,且对象终端6对应的数据流2经由路由器R1→路由器R2→路由器R3转发至对象终端6。由此可见,用户群组1中每个对象终端对应的数据流的源地址是相同的,均指向业务服务器;每个对象终端对应的数据流的目的地址不同,如对象终端5对应的数据流1的目的地址指向对象终端5,而对象终端6对应的数据流2的目的地址指向对象终端6;虽然各数据流的目的地址不同,但是用于传输各数据流的传输通道存在相同(或通用、共用)的链路,如图1所示,用于传输各数据流的传输通道存在相同的链路1、链路2和链路3。
由上述对各数据流对应的传输通道存在相同链路的相关描述可知,在实际应用中传输通道可以用于对多个数据流进行传输;然而,由于传输通道的传输资源是有限的,如路由节点的缓存空间是有限的,或者传输通道的带宽是有限的等等,因此传输通道中传输的数据流过多时,就会导致出现网络拥塞的现象。所谓网络拥塞可以简单理解为传输通道持续过载的一种网络状态,具体是指传输通道所传输的数据量超过传输通道或路由节点所能够处理的上限,导致流量传输性能下降的现象;例如,出现网络拥塞时,对象终端的网速变慢,数据接收出现延迟(如视频场景下导致卡顿,可以采用往返时延(Round-Trip Time,RTT)指标来衡量计算机网络中的时延性能,RTT用于表示从数据发送端(如业务服务器)发送数据开始到数据发送端端收到数据接收端(如对象终端)的确认(数据接收端收到数据后便立即发送确认),所经历的总时延)或者数据丢包(如视频场景下丢帧(如视频帧))等。由此可见,计算机网络维持较好的流量传输性能,能够有效保障数据流的正常传输,确保用户的业务体验。
为了缓解计算机网络中的网络拥塞,确保流量传输性能,本申请实施例提出一种基于资源共享的数据传输方案;该方案从网络拥塞的产生原因(如存在长期占用传输资源的数据流或者数据量较大的数据流(在本申请实施例中可以称为“大流”)所导致的拥塞)出发,提出通过多个数据流之间的有效互动(即“资源共享”)来缓解网络拥塞,具体是将传输通道中已存在的数据流所占用的传输资源“共享”或“借用”一部分至待传输的数据流;这样,被借用传输资源的数据流能够保持正常传输,且新的待传输的数据流不会因为抢占资源导致丢包等现象出现,从而确保了流量传输的传输效率和传输性能。
本申请实施例提供的数据传输方案的大致流程可以包括:假设传输通道中产生新的待传输的第一数据流,首先,可以获取(或探测)传输通道的网络状态,该传输通道可以是用于传输第一数据流的数据通路。若网络状态指示传输通道存在网络拥塞,那么确定待传输的第一数据流可能需要挤占传输通道中已存在的第二数据流所占用的传输资源,或者,待传输的第一数据流可能因为不能存入路由节点的转发队列而被丢包;此时可以获取与传输通道关联的已存在的至少一个第二数据流,所谓与传输通道关联的已存在的至少一个第二数据流可以是指通过该传输通道进行传输的数据流。然后,从至少一个第二数据流中筛选目标数据流,该目标数据流可以包括即使被共享传输资源后对业务影响较小的数据流(如“大流”、业务等级较低的数据流等)。最后,将目标数据流所占用的传输资源共享至第一数据流(具体是共享部分传输资源),此时就可以采用从目标数据流中共享出来的传输资源传输第一数据流。
由此可见,相比于传统无差别的传输参数配置与丢包策略(如采用默认的发送参数传输每个数据流,或者,默认抢占不到传输资源的新数据流被丢包)而言,本申请实施例充分考虑各个数据流之间可以共享传输资源,通过数据流之间的传输资源的有效互动,能够确保被共享传输资源的数据流的稳定传输的同时,避免新产生的待传输的数据流不会因为抢占不到传输资源而被丢包,有效缓解网络拥塞,确保传输通道的流量传输性能,提升对象的业务体验。
需要说明的是,根据传输通道中的网络拥塞发生位置不同,本申请实施例提出的数据传输方案的具体实现过程有所不同。考虑到传输通道传输数据流的过程中产生网络拥塞的主要位置包括:
1)数据发送端(如产生并开始发送数据流的计算机设备)。如图2a所示,在流量传输的开始阶段,云服务器与对象终端之间只有数据流1和数据流2,假设数据流1为“小流(与“大流”相反,可以是指占用传输资源的时间较短,或者数据量较小的数据流)”且数据流2为“大流”,且数据流1和数据流2的发送速率总和与计算机网络中的最大可用带宽相等;那么当对象终端3向云服务器发送流量请求报文时,云服务器按照默认的初始发送参数来执行数据流3的网络传输。但实际情况下,这种通过默认配置的方式“迫使”数据流3去挤占数据流1和数据流2的传输资源(如图2a所示的数据流3会通过挤占数据流1的部分传输资源,和数据流2的部分传输资源),在挤占过程中,会导致新加入的数据流3和原本的数据流1和数据流2都会出现不同程度的网络丢包。
2)中间路由节点(如传输通道上的任一个路由节点)。如图2b所示,中间路由节点R2的转发队列(用于缓存等待转发的数据流)中包含数据流1(如“小流”)和数据流2(如“大流”),此时该转发队列中已处于满载状态;那么当另一条数据流3进入该中间路由节点R2时,由于转发队列中没有额外的存储空间,故将数据流3的流量报文丢弃,即中间路由节点R2不会转发该数据流3。显然,上述在转发队列满载状态时的丢包对于三条数据流来说是不公平的,因为大流(数据流2)占用了多数的传输资源,而导致比大流晚到达中间路由节点的小流(数据流3)被丢弃。
因此,本申请实施例分别从数据发送端和中间路由节点的角度,针对不同网络拥塞提出更为具体的基于数据流资源共享的差异化拥塞控制方式,有效缓解网络拥塞,提升流量传输性能。其中:
1)如图3所示,从数据发送端的角度,本申请实施例提供的差异化拥塞控制方式的原理可以概括为:数据发送端根据传输通道当前的网络状态,通过共享目标数据流(如“大流”)的传输资源,来为相应待传输的数据流配置相应的发送参数,以确保目标数据流不会因为待传输的数据流抢占传输资源而被丢包。也就是说,通过“借用”目标数据流的传输资源来为新加入的数据流(即“小流”)配置相应的发送参数,使得新加入的数据流和被“借用”的目标数据流均不会出现因传输资源抢占而造成大量的报文丢失现象,降低小流在初始阶段竞争传输资源而造成的大小流均丢包的现象,有利于提升对象终端的业务体验。
2)如图3所示,从中间路由节点的角度,本申请实施例提供的差异化拥塞控制方式的原理可以概括为:中间路由节点识别转发队列中的数据流,从中筛选出目标数据流(如“大流”);当转发队列出现或即将出现拥塞时,通过优先丢弃目标数据流的报文的方式来提升待传输的数据流的转发效率,避免目标数据流由于长期占用传输资源而造成新的数据流发送速率偏低、用户体验较差的现象。也就是说,在中间路由节点检测到转发队列满载或即将满载时,通过将目标数据流的传输资源共享给待传输的数据流的方式,降低了待传输的数据流的丢包率,提升了数据流的传输效率;在目标数据流为“大流”时,该“大流”的个别丢包并不会对对象体验造成过于严重的影响。
由此可见,对比传统针对单个流的网络反馈来缓解网络拥塞,本申请实施例设计的多个数据流之间资源共享的方案能够较好地保证小流的网络传输效率,在数据发送端与转发侧(即中间路由节点)通过从大流中“共享”出相应的传输资源,避免了大流长期的资源占用而造成的小流丢包率偏高、发送速率不稳定等问题,有利于提升用户的业务体验。
还需说明的是,本申请实施例提供的数据传输方案可以由计算机设备来执行,该计算机设备可以如前述提及的业务服务器/云服务器,或者中间路由节点;本申请实施例对计算机设备的具体类型不作限定。例如,用于执行数据传输方案的计算机设备还可以包括部署有内容分发网络(Content Delivery Network,CDN)的任一设备;本申请实施例提供的数据传输方案具体是由该内容分发网络来提供的。其中,该内容分发网络可以理解为:可以用于优化网络传输和访问速度的工具,具有帮助避免网路卡顿,确保网络时刻保持畅通的功能。在实际应用中,云服务器可以依赖于内容分发网络提供高效的云端流量传输性能,获得更多的内容服务提供商客户(如直播服务提供商、短视频服务提供商、游戏服务提供商、社交服务提供商、交友服务提供商及音乐服务提供商等;不同服务提供商所提供的业务有所不同),从而获得更多的收益;同理,各类内容服务提供商也更加偏向于选择高性能的内容分发网络为自身提供流量传输服务,以期望能够改善用户的业务体验,从而获得更多的收益。由上述描述可知,将本方案这种能够促使流量传输始终保持高性能的数据传输方案应用于内容分发网络时,能够提升内容分发网络针对流量传输的传输性能和传输效率,从而实现对内容分发网络的有效推广。
基于上述描述的数据传输方案,本申请实施例提出更为详细的数据传输方法,下面结合附图对本申请实施例提出的数据传输方法进行详细介绍。
图4是本申请一个示例性实施例提供的一种数据传输方法的流程示意图;图4所示的数据传输方法可以由前述提及的计算机设备执行,如该计算机设备为业务服务器(即数据发送端)或者中间路由节点,该数据传输方法可以包括但是不限于步骤S401-S404:
S401:当传输通道中产生待传输的第一数据流时,获取传输通道的网络状态。
根据执行本申请实施例提供的数据传输方法的计算机设备不同,计算机设备获取待传输的第一数据流的方式并不相同。可选的,计算机设备为数据发送端时,该待传输的第一数据流是数据发送端基于对象终端发送的流量请求报文产生的数据流。可选的,计算机设备为中间路由节点时,该待传输的第一数据是中间路由节点通过上一节点(如数据发送端或者路由节点)转发得到的;值得注意的是,虽然中间路由节点是从上一节点获取的第一数据流,但该第一数据流追溯至数据发送端时,仍然是由数据发送端产生的。
具体实现中,计算机设备在确定传输通道中存在待传输的第一数据流时,如中间路由节点接收到上一节点转发的待传输的第一数据流时,可以获取传输通道的网络状态,该网络状态用于指示传输通道的当前是否出现网络拥塞或者即将出现网络拥塞的情况。这样,计算机设备可以基于当前传输通道的网络状态进一步判断是采用传统方式对该第一数据流进行流量传输,还是采用本方案对该第一数据流进行流量传输;相比于不作网络状态判断进行流量传输的方式来说,只有在传输通道存在网络拥塞时才采用资源共享来传输第一数据流,可以提升流量传输的智能性,确保传输资源的利用率,提升流量传输性能。
应当理解的是,传输通道的网络状态并不是一成不变的,而是根据传输的数据流的变化而发生变化的;因此,本申请实施例支持只要获取到待传输的第一数据流时,就对待传输该第一数据流的传输通道进行一次网络状态的探测,以确保探测到的传输通道的网络状态是具有实时性。
S402:若网络状态指示传输通道存在网络拥塞,则获取与传输通道关联的已存在的至少一个第二数据流。
其中,网络状态指示传输通道存在网络拥塞,表示该传输通道的传输资源已经被已存在的数据流全部使用或者即将全部使用,此时可以获取与传输通道关联的已存在的至少一个第二数据流;任一第二数据流的创建时间早于待传输的第一数据流。考虑到多个数据流对应的传输通道存在共用的链路时,就可能出现网络拥塞的情况;因此,本申请实施例提及的至少一个第二数据流的传输通道与待传输的第一数据流的传输通道可以相同;或者,至少一个第二数据流的传输通道,与待传输的第一数据流的传输通道可以是存在共用链路的不同通道(如流向同一对象群组的不同数据流)。下面分别结合附图对上述第二数据流的确定方式进行阐述,其中:
(1)如图5所示,假设对象1通过对象终端1所运行的游戏应用程序游玩游戏时,该对象终端1(具体是游戏应用程序通过该对象终端1)在第一时间向目标应用程序对应的业务服务器发送流量请求报文1,此时业务服务器响应该流量请求报文1向对象终端1下发数据流1;如果对象终端1在第二时间(如晚于第一时间的任一时间)向目标应用程序对应的业务服务器发送流量请求报文2,此时业务服务器响应于该流量请求报文2向对象终端下发数据流2。由此可见,流向同一对象终端的不同数据流的传输通道相同,因此流向同一对象终端的数据流较多时,就会导致传输通道出现网络拥塞。
基于此,本申请实施例提及的与传输通道关联的已存在的至少一个第二数据流可以包括:第一数据流对应的传输通道中已存在的数据流;其中,传输通道中已存在的数据流的源地址与第一数据流的源地址相同,且目的地址与第一数据流的目的地址相同。也就是说,至少一个第二数据流可以是从产生第一数据流的数据发送端发出,且按照第一数据流的传输路径流向待接收第一数据流的对象终端的数据流;即第二数据流的传输路径与第一数据流的传输路径完全相同;那么同一传输通道传输多个数据流时,就会导致传输通道可能存在网络拥塞,因此,本申请实施例支持将同一传输通道中已存在的第二数据流的传输资源共享至,该传输通道中待传输的第一数据流;简而言之,支持在流向单个对象终端(如某个用户多次请求流量)的多个数据流之间共享传输资源。通过上述这种在同一对象终端的多个数据流之间共享传输资源的方式,不会对其他对象终端的流量传输产生影响。
(2)如图6所示,假设对象群组中包含对象终端1和对象终端2;对象终端1在第一时间向业务服务器发送流量请求报文1,此时业务服务器响应该流量请求报文1向对象终端1下发数据流1时,该数据流1的传输通道包括:业务服务器→路由器R1→路由器R2→路由器R3→对象终端1。如果对象终端2在第二时间(与第一时间不同或相同)向业务服务器发送流量请求报文2,此时业务服务器响应于该流量请求报文2向对象终端2下发数据流2时,该数据流2的传输通道包括:业务服务器→路由器R1→路由器R2→路由器R3→对象终端。由此可见,流向同一对象群组的不同数据流的传输通道存在共用的链路,因此流向同一对象群组的数据流较多时,就会导致传输通道出现网络拥塞。
基于此,本申请实施例提及的与传输通道关联的已存在的至少一个第二数据流可以包括:与第一数据流对应的传输通道存在相同链路的其他传输通道中已存在的数据流;其中,该其他传输通道中已存在的数据流的源地址与第一数据流的源地址相同,且目的地址与第一数据流的目的地址属于同一对象群组。由前述描述可知,本申请实施例支持将对象按照划分规则划分为不同的对象群组,而不同对象群组中的每个对象终端从同一数据发送端接收的数据流的传输通道具有共用的链路;那么同一对象群组中不同对象终端接收数据流时,就可能导致传输通道产生网络拥塞。因此,本申请实施例支持将同一对象群组中已存在的第二数据流的传输资源共享至,该对象群组中待传输的第一数据流,此时并不关注各数据流(如第二数据流和第一数据流)具体是指向该对象群组中的哪个对象终端;简而言之,支持在对象群组所包含的多个对象终端的多个数据流之间共享传输资源。通过上述这种在同一对象群组中的多个数据流之间共享传输资源的方式,可以实现按照实际流量需求按需分配传输资源,实现传输资源的合理划分和使用。
上述分别以第二数据流与第一数据流的接收者为同一对象终端,或者为同一对象群组为例进行阐述的。应当理解的是,与传输通道关联的至少一个第二数据流中的每个第二数据流可以属于同一对象群组的不同对象终端;或者,至少一个第二数据流中的部分第二数据流可以属于同一对象群组的同一对象终端;本申请实施例对至少一个第二数据流的具体来源不作限定。
为便于阐述,在本申请后续实施例中以在同一对象群组的多个数据流之间共享传输资源为例,即与待传输的第一数据流的传输通道关联的已存在的至少一个第二数据属于同一对象群组为例进行阐述,特在此说明。
S403:从至少一个第二数据流中筛选目标数据流。
基于前述步骤获取到与传输通道关联的至少一个第二数据流后,本申请实施例还支持从至少一个第二数据流中筛选出目标数据流,以便于将该目标数据流的部分传输资源共享至待传输的第一数据流,确保第一数据流能够正常传输,从而提升流量传输性能。具体实现中,本申请实施例支持按照数据流筛选规则,从与传输通道关联的已存在的至少一个第二数据流中筛选目标数据流。本申请实施例主要从两个维度来制定数据流筛选规则,包括:
①数据流占用的传输资源的数量的维度。具体地,考虑到网络拥塞的产生原因包括:传输通道中存在“大流”占用较多的传输资源所导致的网络拥塞;这些“大流”可以是指包含的数据量较大(如数据量大于100千字节(Kilobyte,KB))的数据流,或者,可以是指持续时长(如数据流从创建时刻开始到当前时刻的时长)较长的数据流;相反地,“小流”可以是指包含的数据量较小或者持续时长较短的数据流;“大流”是逐渐积累“小流”得到的。然而,在各类业务场景(如点播(如短视频等)与直播(如直播电商等))中,普遍存在的数据流是“小流”,在计算机设备获取到“小流”后往往由于传输通道中已存在的“大流”占用较多的传输通道,而导致“小流”无法通过竞争获得相应的传输资源,而出现丢包现象,即“小流”具备持续时间短、流量数据少和丢包率偏高等特征。
基于此,本申请实施例支持从数据流占用的传输资源的数量维度,制定数据流筛选规则,此时该数据流筛选规则的筛选原则为:从至少一个第二数据流中将占用传输资源较多的第二数据流作为目标数据流。基于该筛选原则制定的数据流筛选规则可以包括但是不限于:将至少一个第二数据流中占用传输资源大于资源阈值的第二数据流作为目标数据流;或者,将至少一个第二数据流中占用传输资源最多的第二数据流作为目标数据流;或者,数据流的持续时长越长,那么该数据流占用的传输资源越多,因此将至少一个第二数据流中持续时间最长的第二数据流作为目标数据流;等等。进一步的,采用上述数据流筛选规则筛选出目标数据流后,考虑到“大流”缓慢传输或少量丢包往往对业务的影响较小,因此可以将占用大量传输资源的目标数据流的传输资源,共享至待传输的“小流”(即第一数据流),以确保第一数据流不会被丢包或者长时间得不到传输响应,提升传输通道中大小流的流量传输性能。
②数据流对应的业务的业务等级的维度。具体地,考虑到网络拥塞的产生原因包括:业务等级较低的数据流挤占业务等级较高的数据流,导致业务等级较高的数据流得不到及时传输;其中,一个数据流对应一种业务(如直播业务对应有直播数据流,游戏业务对应有游戏数据流等),一种业务可能包含多个数据流。业务的业务等级可以是按照业务的紧急程度划分的,如业务紧急程度越高,则业务的业务等级越高,业务紧急程度越低,则业务的业务等级越低;进一步的,业务的紧急程度可能又是由用户对业务本身的需求来决定,例如,假设用户正在使用对象终端操控游戏和播放音乐,那么在发生网络拥塞时相比于音乐业务而言,游戏业务的业务紧急程度越高,即该游戏业务的业务等级越高;更进一步的,每种业务的业务等级可以是预先设置好的,如计算机设备中可以存储等级列表,该等级列表中记录了各类业务的业务等级;在计算机设备获取到需要进行业务等级比对时,可以根据该等级列表来确定数据流对应的业务的业务等级;当然,本申请实施例并不限定数据流对应业务的业务等级的具体确定方式。
基于此,本申请实施例支持从数据流对应的业务的业务等级的维度,制定数据流筛选规则,此时该数据流筛选规则的筛选原则为:将业务等级较低的第二数据流作为目标数据流。基于该筛选原则制定的数据流筛选规则可以包括但是不限于:将至少一个第二数据流中相应业务的业务等级低于等级阈值的第二数据流作为目标数据流;此处的等级阈值可以是预先设定且固定的数值,还可以是动态变化的,如该等级阈值为待传输的第一数据流的业务等级,那么随着每次待传输的第一数据流的不同,该等级阈值也不相同;这样能够确保始终将业务等级低于待传输的第一数据流的目标数据流的传输资源,共享给第一数据流,确保业务等级较高的第一数据流能够优先传输。或者,将至少一个第二数据流中相应业务的业务等级最低的第二数据流作为目标数据流;等等。进一步的,采用上述数据流筛选规则筛选出目标数据流后,考虑到业务等级较低的数据流缓慢传输或少量丢包往往对业务的影响较小,因此可以将业务等级较低的目标数据流的传输资源,共享至业务等级较高的第一数据流,以确保业务等级较高的第一数据流能够被优先传输,确保业务等级较高的业务能够优先执行,提升用户的业务体验。
基于上述对数据流筛选规则的相关介绍,还需说明的是,本申请实施例对数据流筛选规则的具体规则内容不作限定;上述只是本申请实施例给出的几种示例性数据流筛选规则。此外,本申请实施例并不限定目标数据流的数量;也就是说,本申请实施例支持从与传输通道关联的已存在的至少一个第二数据流中筛选出一个或多个目标数据流;具体可以是综合考虑待传输的第一数据流所需的传输资源的数量,各第二数据流所占用的传输资源的数量,以及各第二数据流的业务等级来确定目标数据流的数量。例如:至少一个第二数据流中包含:第二数据流1和第二数据流2,第二数据流1为“小流”且业务等级低于第一数据流,第二数据流2为“大流”且业务等级高于第二数据流1,但小于第一数据流的业务等级,那么考虑到第二数据流2虽然为“小流”但业务等级较高,因此可以将第二数据流1所占用的传输资源共享部分至第一数据流;进一步的,如果第二数据流1所占用的传输资源比第一数据流所需传输资源的数量少,考虑到第一数据流的业务等级高于第二数据流2,那么也可以将第二数据流2的部分传输共享至第一数据流;也就是说,第一数据流同时“借用”第二数据流1和第二数据流2的传输资源来进行流量传输。
由此可见,计算机设备根据待传输的第一数据流的实际需求,从至少一个第二数据流中按需筛选一个或多个目标数据流来共享传输资源,有利于第一数据流的快速传输,确保流量传输性能。为便于阐述,本申请实施例后续以从至少一个第二数据流中筛选出的目标数据流的数量为1个为例进行介绍,特在此说明。
S404:将目标数据流所占用的传输资源共享至第一数据流,并采用被共享的传输资源传输第一数据流。
基于前述步骤确定出有能力共享传输资源的目标数据流后,可以将该目标数据流的部分传输资源共享给第一数据流,从而可以采用被共享的这部分传输资源来对第一数据流进行传输,确保第一数据流的正常传输,且对目标数据流的流量传输影响较小。
本申请实施例中,在传输通道中产生新的待传输的第一数据流(即新的流量),且检测到传输通道的网络状态指示该传输通道存在网络拥塞时,可以获取与传输通道关联的已存在的至少一个第二数据流。然后,从该至少一个第二数据流中筛选出目标数据流;如该目标数据流可以是至少一个第二数据流中数据量最多或持续时长最长的第二数据流,或者,是至少一个第二数据流中与目标业务(如第一数据流对应的业务,或者与第一数据流对应的业务相关的业务)之间的相关性较低的第二数据流等;考虑到目标数据流的数量量多或持续时长较长或者与目标业务的相关性较低,那么该目标数据流少量丢包或减缓传输速率时,对该目标数据流对应的业务的影响性较小,因此本申请实施例支持将该目标数据流所占用的传输资源共享一部分至待传输的第一数据流;这样,不仅确保在网络拥塞的情况下第一数据流不被丢包(即仍然能够正常传输),而且对目标数据流的传输性能影响较小,有效缓解网络通信过程中的网络拥塞,提升了整体流量的传输效率。
上述图4所示实施例并未限定用于执行数据传输方法的计算机设备具体为数据发送端或者中间路由节点;而计算机设备为数据发送端或者中间路由节点时,执行数据传输方法的具体实现有所不同。示例性地,数据传输方法应用于数据发送端时的流程示意图可以参见图7;如图7所示,该数据传输方法是由数据发送端来执行,该数据传输方法可以包括但是不限于步骤S701-S705:
S701:当传输通道中产生待传输的第一数据流时,获取传输通道的网络参数。
具体地,在对象终端具有流量请求需求时,该对象终端可以生成用于请求第一数据流的流量请求报文;然后,对象终端可以将流量请求报文发送至数据发送端,以便于数据发送端在接收到来自对象终端的流量请求报文后,生成相应的第一数据流。也就是说,在计算机设备为数据发送端时,传输通道中产生的第一数据流是基于对象终端发送的流量请求报文所生成的。进一步的,本申请实施例在生成待传输的第一数据流后,支持查询该对象终端的统计信息,以便于根据统计信息执行后续针对第一数据流的传输;其中,考虑到本申请实施例支持在对象终端所在的对象群组中共享传输资源,具体是在数据发送端流向对象群组的多个数据流之间进行传输资源的共享;因此,上述提及的查询对象终端的统计信息,具体可以是查询该对象终端所在的对象群组的统计信息。
进一步的,对象群组的统计信息可以是数据发送端每隔一段时间(如统计周期记为T)统计得到的;换句话说,数据发送端可以按照统计周期预先对每个对象群组中的信息进行统计,得到每个对象群组的统计信息。其中,统计周期T可以是由管理员预先配置并记载在配置文件中的,如预先设置的统计周期T=10秒;当然,不同对象群组的统计周期可以相同或不同,本申请实施例对此不作限定。
更进一步的,数据发送端对每个对象群组统计的统计信息可以包括但是不限于:对象群组中的每个数据流的流信息(如每条数据流的数据量大小或持续时间长短),以及网络质量信息(或称为网络参数,是数据发送端按照统计周期进行周期性统计得到的)。其中,网络参数可以至少包含:最大可用带宽BW_max和在途数据量Inflight等信息;最大可用带宽BW_max是指第一数据流传输时所需的发送速率(如发送速率为1Mbps,表示每秒传输1000000位(bit,比特位)),在途数据量Inflight是指传输通道中已使用的发送窗口(表示发送方已发送但尚未被确认的帧(frame)的序号队列的界限,单位为字节)。如图8所示,数据发送端(如云服务器)对应的对象群组包括:对象群组1、对象群组2、对象群组3和对象群组4;其中,数据发送端为对象群组i(如i=1、2、3、4)统计得到的统计列表中包含的统计信息分别为:每条数据流的数据量(或称为流量大小(Size))、通往该对象群组i途径网络的最大可用带宽BW_max和当前在途数据量Inflight。其中,每个数据流具有用于唯一标识该数据流的流量标识(或简称为流标识ID),数据流的流标识可以基于该数据流的源地址src、目的地址dst、源端口sport、目的端口dport和协议号protocol计算获得;计算公式如下:
ID = Hash(src||dst||sport||dport||protocol)(1)
其中,Hash()表示哈希操作,符号“||”表示拼接操作。
由上述描述可知,在数据发送端接收到来自对象终端的流量请求报文后,该数据发送端响应于该流量请求报文生成待传输的第一数据流后,可以从针对对象终端所在的对象群组的统计信息中获取到传输通道的网络参数;该网络参数至少包含上述提及的最大可用带宽和在途数据量。通过数据发送端周期性地对对象群组进行统计,使得数据发送端实时掌握传输通道的网络参数和各数据流的流信息,在需要对新产生的数据流进行传输时,能够及时且快速地获取统计信息来确定网络拥塞情况。
S702:判断网络参数是否大于参数阈值;若网络参数大于参数阈值,则确定网络状态指示传输通道存在网络拥塞。
S703:若网络状态指示传输通道存在网络拥塞,则获取与传输通道关联的已存在的至少一个第二数据流。
S704:从至少一个第二数据流中筛选目标数据流。
S705:将目标数据流所占用的传输资源共享至第一数据流,并采用被共享的传输资源传输第一数据流。
步骤S702-S705中,基于前述步骤获取到传输通道的网络参数后,可以根据网络参数来判断传输通道是否处于或即将处于网络拥塞,从而确定是否需要采用本申请实施例提供的资源共享方式来对待传输的第一数据流进行流量传输。具体地,可以将网络参数与相应的参数阈值进行比较;若网络参数大于或者等于参数阈值,则确定传输通道的网络状态指示传输通道存在网络拥塞;若网络参数小于参数阈值,则确定传输通道的网络状态指示阐述通道不存在网络拥塞。
其中,在网络参数为最大可用带宽BW_max时,网络参数大于等于参数阈值是指最大可用带宽BW_max大于等于带宽阈值BW_thres,如最大可用带宽为10吉字节(Gigabyte,GB),而带宽阈值为9.5GB,此时确定传输通道存在网络拥塞。在网络参数为在途数据量时,网络参数大于等于参数阈值是指在途数据量大于等于数据量阈值,此时确定传输通道存在网络拥塞。
本申请实施例在判断上述描述的任一网络参数大于或等于相应的参数阈值时,可以确定传输通道存在网络拥塞,此时可以执行获取与传输通道关联的至少一个第二数据流的步骤(即上述步骤S703)以及从至少一个第二数据流中筛选目标数据流的步骤(即上述步骤S704)。需要说明的是,步骤S703-S704所示的具体实施过程,与前述图4所示实施例中步骤S402-S403所示具体实施过程是类似的,可以参见前述步骤S402-S403所示的相关描述,在此不作赘述。
进一步的,在确定网络参数大于或等于参数阈值时,即确定传输通道存在网络拥塞时,可以执行将目标数据流所占用的传输资源共享至第一数据流的操作;该操作具体可以包括:首先,获取目标数据流所占用的传输资源。然后,将目标数据流所占用的传输资源降低目标变化资源量,得到目标数据流所占用的新的传输资源;其中,目标变化资源量是基于预设的资源参数比例所确定的。最后,将目标数据流降低的目标变化资源量,作为第一数据流的传输资源。通过上述过程,可以实现将目标数据流所占用的部分传输资源借用至第一数据流,从而确保第一数据流能够正常传输。
更进一步的,根据网络参数的不同,上述提及的共享目标数据流所占用的传输资源的具体实施过程有所不同;下面结合图9给出网络参数“最大可用带宽”和“在途数据量”均大于相应参数阈值时,对目标数据流进行资源共享的详细过程。如图9所示,数据发送端可以识别对象群组中各数据流的流信息(如流大小)并统计对象群组的网络参数,得到统计信息。当数据发送端接收到对象群组中的某个对象终端发送的流量请求报文后,可以响应于该流量请求报文生成新的第一数据流,进而根据该新的第一数据流的目的地址指向的对象终端,确定该对象终端所在的对象群组。然后,数据发送端在传输第一数据流之前,先从统计信息中获取网络参数,并将该网络参数与相同的参数阈值进行比较,从而确定传输通道是否存在网络拥塞。最后,在网络参数大于或等于参数阈值时,可以将目标数据流的传输资源共享至第一数据流,并采用被共享的传输资源传输第一数据流;在网络参数小于参数阈值时,可以采用默认的网络参数(如默认的发送速率和/或发送窗口)对第一数据流进行流量传输。具体是将最大可用带宽与带宽阈值进行比较,在确定最大可用带宽小于带宽阈值时,按照默认的发送速率对第一数据流进行流量传输,在确定最大可用带宽大于或等于带宽阈值时,将目标数据流的发送速率共享一部分至第一数据流;进一步的,将在途数据量与数据量阈值进行比较,在确定在途数据量小于数据量阈值时,可以按照默认的发送窗口和共享的发送速率对第一数据流进行流量传输,在确定在途数据量大于等于数据量阈值时,可以将目标数据流的发送窗口共享一部分至第一数据流,此时可以按照最新配置的发送速率和发送窗口对第一数据流进行流量传输,也采用传输资源共享后的发送速率和发送窗口对目标数据流进行流量传输。应当理解的是,上述是按照先判断最大可用带宽,再判断在途数据量为例进行阐述的,但实际应用中,本申请实施例对最大可用带宽和在途数据量的判断顺序不作限定;例如可以先判断在途数据量是否大于数据量阈值,再判断最大可用带宽是否大于带宽阈值,特在此说明。
根据网络参数的不同,传输资源也不相同,传输资源的共享过程有所不同。继续参见图9,在网络参数“最大可用带宽”大于带宽阈值,且网络参数“在途数据量”大于带宽阈值时,示例性地对目标数据流所占用的传输资源的共享,以及对目标数据流和第一数据流的传输流程可以包括:
(1)若网络参数为最大可用带宽,此时待共享的传输资源为发送速率,那么可以将目标数据流(如至少一个第二数据流中的最大流)的发送速率共享一部分至新创建的小流“第一数据流”的具体过程包括:
首先,将目标数据流当前的发送速率Pacing_max降低目标变化资源量(此时为目标变化速率量delta_bw)至新的发送速率Pacing_cur;如公式(2):
Pacing_cur
Figure SMS_1
Pacing_max - delta_bw(2)
然后,将目标变化速率量delta_bw作为第一数据流的初始发送速率Pacing_new;也就是说,新的第一数据流的初始发送速率Pacing_new设置为目标数据流的发送速率降低的部分速率delta_bw;如公式(3)所示:
Pacing_new = delta_bw(3)
其中,目标变化速率量delta_bw是由参数比例Pacing_ratio(0
Figure SMS_2
Pacing_ratio
Figure SMS_3
1)计算获得的;如公式(4)所示:
delta_bw = Pacing_max
Figure SMS_4
Pacing_ratio(4)
其中,该参数比例Pacing_ratio的具体取值是由管理员预先配置,并记录于配置文件中的,如参数比例Pacing_ratio默认设置为20%。
最后,按照目标数据流共享至第一数据流的传输资源,向对象终端发送第一数据流;具体是按照为第一数据流最新配置的发送速率发送第一数据流。此外,按照目标数据流所占用的新的传输资源,向对象群组发送目标数据流;具体是按照目标数据流的发送速率降低目标变化速率量后的新的发送速率发送该目标数据流。
(2)若网络参数为在途数据量,此时待共享的传输资源为发送窗口,那么可以将目标数据流(如至少一个第二数据流中的最大流)的发送窗口共享一部分至新创建的小流“第一数据流”的具体过程包括:
首先,将目标数据流当前的发送窗口cwnd_max降低目标变化资源量(此时为目标变化窗口量cwnd_bw)至新的发送窗口cwnd_cur;如公式(5):
cwnd_cur
Figure SMS_5
cwnd_max - delta_cwnd(5)
然后,将目标变化窗口量cwnd_bw作为第一数据流的初始发送窗口Pacing_new;也就是说,新的第一数据流的初始发送速率Pacing_new设置为目标数据流的发送窗口降低的部分速率cwnd_bw;如公式(6)所示:
Pacing_new = delta_bw(6)
其中,目标变化窗口量cwnd_bw是由参数比例cwnd_rate(0
Figure SMS_6
cwnd_rate/>
Figure SMS_7
1)计算获得的;如公式(7)所示:
delta_cwnd = cwnd_max
Figure SMS_8
cwnd_rate(7)
其中,该参数比例cwnd_rate的具体取值是由管理员预先配置,并记录于配置文件中的,如参数比例cwnd_rate默认设置为20%。
最后,按照目标数据流共享至第一数据流的传输资源,向对象终端发送第一数据流;具体是按照为第一数据流最新配置的发送窗口发送第一数据流。此外,按照目标数据流所占用的新的传输资源,向对象群组发送目标数据流;具体是按照目标数据流的发送窗口降低目标变化窗口量后的新的发送窗口发送该目标数据流。
综上所述,本申请实施例针对数据发送端的网络拥塞,支持通过降低目标数据流的发动窗口或发送速率来为待传输的第一数据流分配相应的发送参数(发送速率和发送窗口),即差异化地为大小流分配发送参数,避免了待传输的第一数据流在网络资源的初始竞争过程中出现大量的丢包而影响对象的业务体验。
上述图7所示实施例主要给出数据传输方法应用于数据发送端时,该数据发送端实现传输资源共享的具体实施过程。数据传输方法应用于中间路由节点时,中间路由节点具体是通过时刻检测自身每个转发队列的网络状态,并根据转发队列是否处于(或即将处于)网络拥塞,针对途径的各数据流采用基于资源共享的差异化丢包策略,来确保整体流量的传输性能。详细地,中间路由节点执行数据传输方法的大致流程可以参见包括:①中间路由节点在收到来自云服务器的流量报文(即第一数据流)后,检查自身转发队列是否处于(或即将处于)网络拥塞的状态。②若转发队列是处于(或即将处于)网络拥塞,则中间路由节点检查转发队列中每种数据流的报文数量(其中该转发队列中报文数量最多的数据流称为转发队列最大流)。③中间路由节点将转发队列最大流的传输资源共享一部分给新到的流量报文,即丢弃少量转发队列最大流的报文,并将新到流量报文增加至转发队列中,以对该新到的流量报文进行正常的流量转发。
上述只简单给出中间路由节点执行数据传输方法的大致流程,下面结合图10对中间路由节点执行数据传输方法的详细实施过程进行介绍;如图10所示,该数据传输方法可以包括但是不限于步骤S1001-S1006:
S1001:当传输通道中产生待传输的第一数据流时,获取第一数据流对应的对象群组中的转发队列。
由前述描述可知,数据流通过传输通道从源地址流向目的地址时,会依次经过数据发送端→中间路由节点(数量为一个或多个)→对象终端。对于中间路由节点而言,可以接收上一节点发送的第一数据流,并将该第一数据流添加至中间路由节点的转发队列(具体是用于缓存该第一数据流对应的对象终端所在的对象群组中的各数据流的存储空间)中,以等待中间路由节点对该第一数据流进行转发;此处的上一节点是指从数据流的源地址到目的地址之间的路径中,与该中间路由节点相邻且位于该中间路由节点的上游的节点,可以包括数据发送端或者路由节点。其中,中间路由节点中存储有多个对象群组中每个对象群组对应的转发队列,转发队列用于存储流向相应对象群组的一个或多个数据流的流量报文(或简称为报文(message),是计算机网络中交换与传输的数据单元,即站点一次性要发送的数据块);当数据流的报文数量愈多时,该数据流的数据量愈大,那么转发队列的使用率(即转发队列的存储空间中被占用的存储内存,与转发队列的总的存储内存之间的比值)越高。
S1002:判断转发队列是否拥塞。
考虑到中间路由节点的转发队列的使用率较高时,表示该转发队列已经没有足够的缓存空间来存储第一数据流,此时该第一数据流可能面临被丢弃的可能。基于此,在中间路由节点获取到待转发的第一数据流后,可以先获取该第一数据流对应的对象群组中的转发队列,并判断该转发队列是否还可以存储数据流;以此判断是否需要执行资源共享操作,来确保第一数据流不会被丢包。
本申请实施例提供的中间路由节点主要是根据转发队列的使用率Utilize_rate来判断是否处于(或即将处于)拥塞状态;当使用率Utilize_rate大于或等于(或超过)使用阈值Utilize_thres时,确定该转发队列当前状态为拥塞;当使用率Utilize_rate小于(或未超过)使用阈值Utilize_thres时,确定该转发队列当前不拥塞。其中,上述提及的使用阈值Utilize_thres是由管理员预先配置并记录于配置文件中的,如默认设置使用阈值为90%。
具体实现中,中间路由节点在接收到上一节点发送的待传输的第一数据流后,可以基于该第一数据流的目的地址,确定该第一数据流的目的地址所指向的对象终端;进一步的,基于该对象终端的终端标识(如用于唯一标识该对象终端的信息),确定出该对象终端所属的对象群组,即第一数据流对应的对象群组,该对象群组中包含通过传输通道的全部或部分链路传输数据流的一个或多个对象终端,第一数据流的目的地址指向该对象群组中的一个对象终端。然后,获取该对象群组对应的转发队列,该转发队列中按照报文接收顺序依次存储有对象群组中各对象终端对应的第二数据流的报文;第二数据流的报文数量越多,第二数据流所占用的传输资源越多,该第二数据流在转发队列中占用的存储空间越多。然后,根据各对象终端对应的第二数据流的报文数量,计算转发队列的使用率;例如,转发队列的存储空间总共可以存储100个报文,目前存储了数据流1的20个报文,数据流2的60个报文,以及数据流3的10个报文,则确定该转发队列的使用率为(20+60+10)/100
Figure SMS_9
100%=90%。最后,判断该转发队列的使用率与使用阈值之间的大小;若使用率大于或等于使用阈值,则确定传输通道的网络状态指示传输通道存在网络拥塞,此时中间路由节点可以将转发队列中占用传输资源较多的大流,或者业务等级低的数据流的传输资源(在中间路由节点侧,该传输资源或称为转发资源)共享一部分至待传输的第一数据流,从而降低多数流(如小流)的丢包率,详见下述步骤S1005;若使用率小于使用阈值,则确定传输通道的网络状态指示传输通道不存在网络拥塞,此时中间路由节点可以按照原本的流量传输方式将新到的第一数据流的报文添加至转发队列中,并转发至下一路由节点(或直接转发至对象终端)。
更详细地,本申请实施例支持中间路由节点为每个转发队列中的流量数据维护一个统计列表;该统计列表关联存储有转发队列中各第二数据流的流量标识和报文数量,且统计列表是跟随转发队列动态更新的(如存在数据流的新的报文进入中间路由节点的转发队列时,中间路由节点在该转发队列对应的统计列表中将对应数据流的报文数量加1;当存在数据流的报文离开中间路由节点的转发队列时,中间路由节点在统计列表中将对应数据流的报文数量减1)。这样,中间路由节点可以根据对象群组对应的统计列表来快速获取到该对象群组对应的转发队列的使用率,从而提升流量传输的速度和效率。
一种示例性的转发队列对应的统计列表的示意图可以参见图11;如图11所示,中间路由节点R2的转发队列中包括数据流1和数据流2,在该转发队列中数据流1的报文数量为2,而数据流2的报文数量为3,表示数据流2所占用的传输资源大于数据流1所占用的传输资源。此外,中间路由节点R2维护了转发队列的统计列表,该统计列表中记录了数据流1和数据流2的报文数量分别为Q_pkt_1(如Q_pkt_1=2)和Q_pkt_2(如Q_pkt_2=3)。
S1003:若网络状态指示传输通道存在网络拥塞,则获取与传输通道关联的已存在的至少一个第二数据流。
S1004:从至少一个第二数据流中筛选目标数据流。
步骤S1003-S1004中,正如前述描述可知,目标数据流可以为至少一个第二数据流中的占用传输资源较多的第二数据流,或者是业务等级较低的第二数据流;为便于阐述,在此实施例中以目标数据流为占用传输资源较多的第二数据流,具体是目标数据流为占用传输资源大于资源阈值的第二数据流,或者目标数据流为至少一个第二数据流中占用传输资源最多的第二数据流为例,对从至少一个第二数据流中筛选目标数据流的具体实施过程进行介绍。
具体实现中,中间路由节点检查到自身的转发队列处于(或即将处于)拥塞状态时,会获取与传输通道关联的已存在的至少一个第二数据流,然后从至少一个第二数据流中筛选出目标数据流;具体是获取转发队列对应的统计列表,然后基于转发队列对应的统计列表中记录的各第二数据流的报文数量,筛选出目标数据流。其中,本申请实施例提供的基于转发队列对应的统计列表筛选目标数据流的具体实施方式可以包括但是不限于:
在一种实现方式中,支持中间路由节点根据自身维护的转发队列对应统计列表,筛选出当前转发队列中报文数量最多的数据流作为目标数据流;也就是说,从统计列表中筛选报文数量最多的第二数据流,直接将被筛选出的第二数据流作为目标数据流。如图11所示,中间路由节点可以直接找到为转发队列维护的统计列表,该统计列表中明确记录了数据流2的报文数量为3,数据流1的报文数量为1,则可以确定将报文数量较多的数据流2作为目标数据流。通过上述这种直接从转发队列对应的统计列表中筛选目标数据流的方式,极大地提升了从繁多数据流中筛选出大流的速率,从而提升流量传输效率。
另一种实现方式中,支持中间路由节点按照转发队列中各报文的排列顺序,依次检索各报文对应的数据流的报文数量,并将报文对应数据流的报文数量大于数量阈值的数据流作为目标数据流。具体实现中,支持从转发队列中存储的末端报文开始,依次检索各报文对应的第二数据流在统计列表中记录的报文数量,直至检索到目标报文对应的第二数据流在统计列表中记录的报文数量大于或等于数量阈值;然后,将目标报文对应的第二数据流作为目标数据流。
举例来说,如图12所示,中间路由节点R2的转发队列中,按照报文接收先后顺序,依次接收到数据流2的三个报文,分别为报文1、报文2和报文3,数据流1的两个报文,分别为报文4和报文5;那么可以从该转发队列中存储的末端报文(或称为尾部报文)“报文5”开始检索,具体是计算该报文5对应的流标识ID_i,以根据该流标识ID_i确定该报文所属的数据流。然后,通过该流标识ID_i从转发队列对应的统计列表中确定相应数据流的报文数量Q_pkt_i,如报文5所属的数据流1的流标识为ID_1,从统计列表中查询到该流标识ID_1对应的数据流1的报文数量为2。最后,判断该报文数量Q_pkt_i是否大于数量阈值Q_pkt_thres;若报文5对应的数据流1的报文数量Q_pkt_i大于或等于数量阈值Q_pkt_thres,则将该报文5对应的数据流1作为目标数据流,此时可以停止检索。反之,若报文5对应的数据流1的报文数量Q_pkt_i小于数量阈值Q_pkt_thres,则继续检索“报文4”,针对报文4的具体检索过程与上述描述的检索报文5的具体检索过程类似的,在此不作赘述;由前述描述可知,报文4也属于数据流1,则确定报文4对应的数据流1的报文数量Q_pkt_i也小于数量阈值Q_pkt_thres,此时可以继续检索“报文3”,直至检索到某个报文对应数据流的报文数量大于数量阈值为止。
需要说明的是,基于转发队列对应的统计列表筛选目标数据流的具体实现方式并不仅限于上述两种。此外,本申请实施例还支持中间路由节点直接对转发队列中的各数据流的报文进行统计,即不依赖于转发队列对应的统计列表来筛选目标数据流。如图13所示,中间路由节点R2在接收到待传输的数据流3的报文后,如果检测到自身的转发队列处于拥塞状态,则中间路由节点R2开始统计该转发队列中的大流,如统计到包含3个报文的数据流2为大流,而包含2个报文的数据流1为小流,大流占用了转发队列的60%的存储空间,可以认为该大流占用60%的传输资源。
S1005:将目标数据流所占用的传输资源共享至第一数据流,并采用被共享的传输资源传输第一数据流。
考虑到中间路由节点在接收到待传输的第一数据流时,如果要实现对该第一数据流的正常传输,则需要将该第一数据流的报文添加至转发队列中;因此,在转发队列中已存储的数据流的报文较多时,该第一数据流的报文就无法再添加至转发队列,从而产生网络拥塞;也就是说,转发队列中的传输资源(此时该传输资源为报文所占用的存储空间)被占用较多时,确定第一数据流的报文无法继续添加至转发队列,从而产生网络拥塞。基于此,中间路由节点主要是通过从转发队列中移除目标数据流的K个报文,并将第一数据流的K个报文添加至转发队列,来实现将目标数据流的传输资源共享至第一数据流的。
具体实现中,首先,从转发队列中移除目标数据流的K个报文,目标数据流所包含的报文数量大于或等于K,K为正整数;然后,将第一数据流的K个报文添加至转发队列中,得到更新后的转发队列。这样,就可以按照更新的转发队列向对象终端发送第一数据流。示例性地,通过在转发队列中移除大流报文并添加小流报文实现资源共享的示意图可以参见图14;如图14所示,转发队列中按照报文接收先后顺序,依次存储有报文1→报文2→报文3→报文4→报文5;其中,报文1、报文2和报文3属于数据流2的报文,报文4和报文5属于数据流1的报文。由图14可知数据流2所包含的报文数量大于数据流1所包含的报文数量,此时将该数据流2作为目标数据流;然后,可以从数据流2所包含的3个报文中取出K个报文,并将新收到的数据流3所包含的K个报文添加至转发队列的尾部(或末端),得到更新后的转发队列。其中,K的取值可以由管理员预先配置并存储至配置文件中,如K=1。继续参见图14,在K=1,且第一数据流中包含报文6时,更新后的转发队列中依次包含的报文为:报文1→报文2→报文4→报文5→报文6,通过上述这种从转发队列中移除大流报文,新增小流报文的方式,可以降低由于小流报文无法抢占传输资源而造成的高丢包率,且现有对象终端的业务对应的数据流往往是小流,因此可以确保对象终端的业务的正常运行,提升对象的业务体验。
值得说明的是,上述图14是以从转发队列中移除目标数据流(如数据流2)的报文3为例进行阐述的;但实际应用中,本申请实施例并不限定具体移除的是目标数据流的哪个或哪些报文。例如,可以从转发队列中随机移除目标数据流中的K个报文。再如,还可以根据各报文所包含的数据类型和数据量,有选择的移除K个报文,如移除与业务相关性较低的数据类型对应的报文,或者移除包含数据量较小的报文等等。
S1006:对从目标数据流中共享出的传输资源进行资源处理。
基于上述步骤,从转发队列中移除目标数据流的K个报文后,本申请实施例还支持对该K个报文进行资源处理。本申请实施例对资源处理的具体过程不作限定,下面给出两种资源处理的具体实现方式,其中:
可选的,支持直接删除目标数据流中被移除的K个报文,并向数据发送端发送丢包反馈报文;也就是说,中间路由节点可以删除目标数据流中被移除的K个报文,并向数据发送端发送丢包反馈报文,该丢包反馈报文用于指示目标数据流中的K个报文被丢失,以便于数据发送端在空闲时间再次发生该K个报文,或者,向对象终端反馈K个报文丢失的情况等。通过上述这种向数据发送端反馈丢包情况的方式,不仅能确保第一数据流的正常传输,而且有利于数据发送端及时了解流量传输情况,实现流量传输的有效控制。
可选的,支持将被移除的K个报文转发至上一路由节点进行缓存,并等到中间路由节点空闲时,再接收该K个报文继续进行转发。具体地,中间路由节点将从目标数据流中移除或提取的K个报文pkt_large转发至该中间路由节点的上一路由节点进行存储,即将目标数据流中被移除的K个报文转发至中间路由节点的上一路由节点;考虑到该中间路由节点的上一路由节点可以包括多个,此处的上一路由节点具体可以是指被移除的K个报文的上一路由节点,即该K个报文是从该上一路由节点转发至当前的中间路由节点的。然后,在中间路由节点的转发队列不再拥塞时,再从上一路由节点中获取该K个报文并转发至下一路由节点,以实现对该K个报文的传输;也就是说,在检测到转发队列的使用率小于使用阈值时,从上一路由节点接收目标数据流中被移除的K个报文,并对目标数据流中被移除的K个报文进行转发。通过上述这种将被移除的K个报文转发至上一路由节点缓存的方式,可以避免目标数据流的K个报文的丢失,采用延时转发K个大流报文以换取小流报文的快速转发,确保小流报文对应业务的及时性。
应当理解的是,对被移除的K个报文的资源处理还可以包括其他实现方式,上述只是本申请实施例给出的示例性资源处理的具体实施过程,并会对本申请实施例产生限定。
综上所述,本申请实施例针对中间路由节点的网络拥塞,支持通过优先移除大流报文的方式来提升小流数据的转发效率,避免大流数据长期占用传输资源而造成小流发送速率偏低、用户体验较差的现象。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
图15示出了本申请一个示例性实施例提供的一种数据传输装置的结构示意图;该数据传输装置可以是运行于计算机设备的一个计算机程序(包括程序代码),例如该数据传输装置可以是计算机设备的应用程序;该数据传输装置可以用于执行图4、图7以及图10所示的方法实施例中的部分或全部步骤。请参见图15,该数据传输装置包括如下单元:
获取单元1501,用于当传输通道中产生待传输的第一数据流时,获取传输通道的网络状态;传输通道是指从第一数据流的源地址到第一数据流的目的地址之间的数据通路;
处理单元1502,用于若网络状态指示传输通道存在网络拥塞,则获取传输通道中已存在的至少一个第二数据流;
处理单元1502,还用于从至少一个第二数据流中筛选目标数据流;
处理单元1502,还用于将目标数据流所占用的传输资源共享至第一数据流,并采用被共享的传输资源传输第一数据流。
在一种实现方式中,与传输通道关联的已存在的至少一个第二数据流,包括:
传输通道中已存在的数据流;其中,传输通道中已存在的数据流的源地址与第一数据流的源地址相同,且目的地址与第一数据流的目的地址相同;
或者,与传输通道存在相同链路的其他传输通道中已存在的数据流;其中,其他传输通道中已存在的数据流的源地址与第一数据流的源地址相同,且目的地址与第一数据流的目的地址属于同一对象群组。
在一种实现方式中,一个数据流对应一种业务;处理单元1502,用于从至少一个第二数据流中筛选目标数据流时,具体用于:
按照数据流筛选规则,从与传输通道关联的已存在的至少一个第二数据流中筛选目标数据流;
其中,数据流筛选规则包括:将至少一个第二数据流中占用传输资源大于资源阈值的第二数据流作为目标数据流;或者,将至少一个第二数据流中占用传输资源最多的第二数据流作为目标数据流;或者,将至少一个第二数据流中持续时间最长的第二数据流作为目标数据流;或者,将至少一个第二数据流中相应业务的业务等级低于等级阈值的第二数据流作为目标数据流。
在一种实现方式中,数据传输方法应用于数据发送端;传输通道中待传输的第一数据流是基于对象终端发送的流量请求报文所生成的;处理单元1502,用于获取传输通道的网络状态时,具体用于:
获取传输通道的网络参数,网络参数是数据发送端按照统计周期进行周期性统计得到的;
若网络参数大于等于参数阈值,则确定传输通道的网络状态指示传输通道存在网络拥塞。
在一种实现方式中,网络参数至少包含最大可用带宽和在途数据量;最大可用带宽是指第一数据流传输时所需的发送速率,在途数据量是指传输通道中已使用的发送窗口;
在网络参数为最大可用带宽时,网络参数大于等于参数阈值是指最大可用带宽大于等于带宽阈值;
在网络参数为在途数据量时,网络参数大于等于参数阈值是指在途数据量大于等于数据量阈值。
在一种实现方式中,处理单元1502,用于将目标数据流所占用的传输资源共享至第一数据流时,具体用于:
获取目标数据流所占用的传输资源;
将目标数据流所占用的传输资源降低目标变化资源量,得到目标数据流所占用的新的传输资源;
将目标数据流降低的目标变化资源量,作为第一数据流的传输资源。
在一种实现方式中,网络参数为最大可用带宽时,传输资源为发送速率,目标变化资源量为目标变化速率量;网络参数为在途数据量时,传输资源为发送窗口,目标变化资源量为目标变化窗口量;
其中,目标变化资源量是基于预设的资源参数比例所确定的。
在一种实现方式中,处理单元1502,用于采用被共享的传输资源传输第一数据流时,具体用于:
按照目标数据流共享至第一数据流的传输资源,向对象终端发送第一数据流;
处理单元1502,还用于:按照目标数据流所占用的新的传输资源,向对象终端所属的对象群组发送目标数据流。
在一种实现方式中,数据传输方法应用于中间路由节点;第一数据流是由数据发送端转发所得到的;处理单元1502,用于获取传输通道的网络状态时,具体用于:
基于第一数据流的目的地址,确定第一数据流对应的对象群组;对象群组中包含通过传输通道的全部或部分链路传输数据流的一个或多个对象终端,第一数据流的目的地址指向对象群组中的一个对象终端;
获取对象群组对应的转发队列,转发队列中按照报文接收顺序,依次存储有对象群组中各对象终端对应的第二数据流的报文;
根据各对象终端对应的第二数据流的报文数量,计算转发队列的使用率;
若使用率大于或等于使用阈值,则确定传输通道的网络状态指示传输通道存在网络拥塞。
在一种实现方式中,目标数据流为占用传输资源大于资源阈值的第二数据流,或者目标数据流为至少一个第二数据流中占用传输资源最多的第二数据流;第二数据流的报文数量越多,第二数据流所占用的传输资源越多;处理单元1502,用于从至少一个第二数据流中筛选目标数据流时,具体用于:
获取转发队列对应的统计列表,统计列表中关联存储有转发队列中各第二数据流的流量标识和报文数量;统计列表是跟随转发队列动态更新的;
基于统计列表中记录的各第二数据流的报文数量,筛选出目标数据流。
在一种实现方式中,处理单元1502,用于基于统计列表中记录的各第二数据流的报文数量,筛选出目标数据流时,具体用于:
从统计列表中筛选报文数量最多的第二数据流;
将被筛选出的第二数据流作为目标数据流。
在一种实现方式中,处理单元1502,用于基于统计列表中记录的各第二数据流的报文数量,筛选出目标数据流时,具体用于:
从转发队列中存储的末端报文开始,依次检索各报文对应的第二数据流在统计列表中记录的报文数量,直至检索到目标报文对应的第二数据流在统计列表中记录的报文数量大于或等于数量阈值;
将目标报文对应的第二数据流作为目标数据流。
在一种实现方式中,传输资源为报文所占用的存储空间;处理单元1502,用于将目标数据流所占用的传输资源共享至第一数据流时,具体用于:
从转发队列中移除目标数据流的K个报文;目标数据流所包含的报文数量大于或等于K,K为正整数;
将第一数据流的K个报文添加至转发队列中,得到更新后的转发队列;
处理单元1502,用于采用被共享的传输资源传输第一数据流时,具体用于:
按照更新的转发队列,向对象终端发送第一数据流。
在一种实现方式中,处理单元1502,还用于:
删除目标数据流中被移除的K个报文,并向数据发送端发送丢包反馈报文,丢包反馈报文用于指示目标数据流中的K个报文被丢失;
或者,将目标数据流中被移除的K个报文转发至中间路由节点的上一路由节点;
在检测到转发队列的使用率小于使用阈值时,从上一路由节点接收目标数据流中被移除的K个报文,并对目标数据流中被移除的K个报文进行转发。
根据本申请的一个实施例,图15所示的数据传输装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该数据传输装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图4、图7以及图10所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图15中所示的数据传输装置,以及来实现本申请实施例的数据传输方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本申请实施例中,在传输通道中产生新的待传输的第一数据流(即新的流量),且检测到传输通道的网络状态指示该传输通道存在网络拥塞时,可以获取与传输通道关联的已存在的至少一个第二数据流。然后,从该至少一个第二数据流中筛选出目标数据流;如该目标数据流可以是至少一个第二数据流中数据量最多或持续时长最长的第二数据流,或者,是至少一个第二数据流中与目标业务(如第一数据流对应的业务,或者与第一数据流对应的业务相关的业务)之间的相关性较低的第二数据流等;考虑到目标数据流的数量量多或持续时长较长或者与目标业务的相关性较低,那么该目标数据流少量丢包或减缓传输速率时,对该目标数据流对应的业务的影响性较小,因此本申请实施例支持将该目标数据流所占用的传输资源共享一部分至待传输的第一数据流;这样,不仅确保在网络拥塞的情况下第一数据流不被丢包(即仍然能够正常传输),而且对目标数据流的传输性能影响较小,有效缓解网络通信过程中的网络拥塞,提升了整体流量的传输效率。
图16示出了本申请一个示例性实施例提供的一种计算机设备的结构示意图。请参见图16,该计算机设备包括处理器1601、通信接口1602以及计算机可读存储介质1603。其中,处理器1601、通信接口1602以及计算机可读存储介质1603可通过总线或者其它方式连接。其中,通信接口1602用于接收和发送数据。计算机可读存储介质1603可以存储在计算机设备的存储器中,计算机可读存储介质1603用于存储计算机程序,计算机程序包括程序指令,处理器1601用于执行计算机可读存储介质1603存储的程序指令。处理器1601(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的处理系统。并且,在该存储空间中还存放了适于被处理器1601加载并执行的一条或多条的指令,这些指令可以是一个或多个的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一个实施例中,该计算机设备可以是前述实施例提到的数据发送端或者中间路由节点;该计算机可读存储介质中存储有一条或多条指令;由处理器1601加载并执行计算机可读存储介质中存放的一条或多条指令,以实现上述漏洞处理方法实施例中的相应步骤;具体实现中,计算机可读存储介质中的一条或多条指令由处理器1601加载并执行如下步骤:
当传输通道中产生待传输的第一数据流时,获取传输通道的网络状态;传输通道是指从第一数据流的源地址到第一数据流的目的地址之间的数据通路;
若网络状态指示传输通道存在网络拥塞,则获取传输通道中已存在的至少一个第二数据流;
从至少一个第二数据流中筛选目标数据流;
将目标数据流所占用的传输资源共享至第一数据流,并采用被共享的传输资源传输第一数据流。
在一种实现方式中,与传输通道关联的已存在的至少一个第二数据流,包括:
传输通道中已存在的数据流;其中,传输通道中已存在的数据流的源地址与第一数据流的源地址相同,且目的地址与第一数据流的目的地址相同;
或者,与传输通道存在相同链路的其他传输通道中已存在的数据流;其中,其他传输通道中已存在的数据流的源地址与第一数据流的源地址相同,且目的地址与第一数据流的目的地址属于同一对象群组。
在一种实现方式中,一个数据流对应一种业务;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行从至少一个第二数据流中筛选目标数据流时,具体执行如下步骤:
按照数据流筛选规则,从与传输通道关联的已存在的至少一个第二数据流中筛选目标数据流;
其中,数据流筛选规则包括:将至少一个第二数据流中占用传输资源大于资源阈值的第二数据流作为目标数据流;或者,将至少一个第二数据流中占用传输资源最多的第二数据流作为目标数据流;或者,将至少一个第二数据流中持续时间最长的第二数据流作为目标数据流;或者,将至少一个第二数据流中相应业务的业务等级低于等级阈值的第二数据流作为目标数据流。
在一种实现方式中,数据传输方法应用于数据发送端;传输通道中待传输的第一数据流是基于对象终端发送的流量请求报文所生成的;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行获取传输通道的网络状态时,具体执行如下步骤:
获取传输通道的网络参数,网络参数是数据发送端按照统计周期进行周期性统计得到的;
若网络参数大于等于参数阈值,则确定传输通道的网络状态指示传输通道存在网络拥塞。
在一种实现方式中,网络参数至少包含最大可用带宽和在途数据量;最大可用带宽是指第一数据流传输时所需的发送速率,在途数据量是指传输通道中已使用的发送窗口;
在网络参数为最大可用带宽时,网络参数大于等于参数阈值是指最大可用带宽大于等于带宽阈值;
在网络参数为在途数据量时,网络参数大于等于参数阈值是指在途数据量大于等于数据量阈值。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行将目标数据流所占用的传输资源共享至第一数据流时,具体执行如下步骤:
获取目标数据流所占用的传输资源;
将目标数据流所占用的传输资源降低目标变化资源量,得到目标数据流所占用的新的传输资源;
将目标数据流降低的目标变化资源量,作为第一数据流的传输资源。
在一种实现方式中,网络参数为最大可用带宽时,传输资源为发送速率,目标变化资源量为目标变化速率量;网络参数为在途数据量时,传输资源为发送窗口,目标变化资源量为目标变化窗口量;
其中,目标变化资源量是基于预设的资源参数比例所确定的。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行采用被共享的传输资源传输第一数据流时,具体执行如下步骤:
按照目标数据流共享至第一数据流的传输资源,向对象终端发送第一数据流;
计算机可读存储介质中的一条或多条指令由处理器1601加载并还执行如下步骤:按照目标数据流所占用的新的传输资源,向对象终端所属的对象群组发送目标数据流。
在一种实现方式中,数据传输方法应用于中间路由节点;第一数据流是由数据发送端转发所得到的;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行获取传输通道的网络状态时,具体执行如下步骤:
基于第一数据流的目的地址,确定第一数据流对应的对象群组;对象群组中包含通过传输通道的全部或部分链路传输数据流的一个或多个对象终端,第一数据流的目的地址指向对象群组中的一个对象终端;
获取对象群组对应的转发队列,转发队列中按照报文接收顺序,依次存储有对象群组中各对象终端对应的第二数据流的报文;
根据各对象终端对应的第二数据流的报文数量,计算转发队列的使用率;
若使用率大于或等于使用阈值,则确定传输通道的网络状态指示传输通道存在网络拥塞。
在一种实现方式中,目标数据流为占用传输资源大于资源阈值的第二数据流,或者目标数据流为至少一个第二数据流中占用传输资源最多的第二数据流;第二数据流的报文数量越多,第二数据流所占用的传输资源越多;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行从至少一个第二数据流中筛选目标数据流时,具体执行如下步骤:
获取转发队列对应的统计列表,统计列表中关联存储有转发队列中各第二数据流的流量标识和报文数量;统计列表是跟随转发队列动态更新的;
基于统计列表中记录的各第二数据流的报文数量,筛选出目标数据流。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行基于统计列表中记录的各第二数据流的报文数量,筛选出目标数据流时,具体执行如下步骤:
从统计列表中筛选报文数量最多的第二数据流;
将被筛选出的第二数据流作为目标数据流。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行基于统计列表中记录的各第二数据流的报文数量,筛选出目标数据流时,具体执行如下步骤:
从转发队列中存储的末端报文开始,依次检索各报文对应的第二数据流在统计列表中记录的报文数量,直至检索到目标报文对应的第二数据流在统计列表中记录的报文数量大于或等于数量阈值;
将目标报文对应的第二数据流作为目标数据流。
在一种实现方式中,传输资源为报文所占用的存储空间;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行将目标数据流所占用的传输资源共享至第一数据流时,具体执行如下步骤:
从转发队列中移除目标数据流的K个报文;目标数据流所包含的报文数量大于或等于K,K为正整数;
将第一数据流的K个报文添加至转发队列中,得到更新后的转发队列;
计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行采用被共享的传输资源传输第一数据流时,具体执行如下步骤:
按照更新的转发队列,向对象终端发送第一数据流。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并还执行如下步骤:
删除目标数据流中被移除的K个报文,并向数据发送端发送丢包反馈报文,丢包反馈报文用于指示目标数据流中的K个报文被丢失;
或者,将目标数据流中被移除的K个报文转发至中间路由节点的上一路由节点;
在检测到转发队列的使用率小于使用阈值时,从上一路由节点接收目标数据流中被移除的K个报文,并对目标数据流中被移除的K个报文进行转发。
基于同一发明构思,本申请实施例中提供的计算机设备解决问题的原理与有益效果与本申请方法实施例中数据传输方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。区块链节点设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行上述数据传输方法。
本领域普通技术对象可以意识到,结合本申请中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术对象可以对每个特定的应用,使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程设备。计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字线(DSL))或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据处理设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术对象在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (17)

1.一种数据传输方法,其特征在于,包括:
当传输通道中产生待传输的第一数据流时,获取所述传输通道的网络状态;所述传输通道是指从所述第一数据流的源地址到所述第一数据流的目的地址之间的数据通路;
若所述网络状态指示所述传输通道存在网络拥塞,则获取与所述传输通道关联的已存在的至少一个第二数据流;所述与所述传输通道关联的已存在的至少一个第二数据流包括:所述传输通道中已存在的数据流,或者,与所述传输通道存在相同链路的其他传输通道中已存在的数据流;
按照数据流筛选规则,从所述至少一个第二数据流中筛选目标数据流;所述数据流筛选规则是从数据流占用的传输资源的数量维度所制定的,或者,所述数据流筛选规则是从数据流对应的业务的业务等级的维度所制定的;
将所述目标数据流所占用的传输资源共享至所述第一数据流,并采用被共享的所述传输资源传输所述第一数据流。
2.如权利要求1所述的方法,其特征在于,所述传输通道中已存在的数据流的源地址与所述第一数据流的源地址相同,且目的地址与所述第一数据流的目的地址相同;
所述其他传输通道中已存在的数据流的源地址与所述第一数据流的源地址相同,且目的地址与所述第一数据流的目的地址属于同一对象群组。
3.如权利要求1所述的方法,其特征在于,一个数据流对应一种业务;
其中,所述数据流筛选规则包括:将至少一个第二数据流中占用传输资源大于资源阈值的第二数据流作为目标数据流;或者,将至少一个第二数据流中占用传输资源最多的第二数据流作为目标数据流;或者,将至少一个第二数据流中持续时间最长的第二数据流作为目标数据流;或者,将至少一个第二数据流中相应业务的业务等级低于等级阈值的第二数据流作为目标数据流。
4.如权利要求1-3任一项所述的方法,其特征在于,所述方法应用于数据发送端;所述传输通道中待传输的第一数据流是基于对象终端发送的流量请求报文所生成的;所述获取所述传输通道的网络状态,包括:
获取所述传输通道的网络参数,所述网络参数是所述数据发送端按照统计周期进行周期性统计得到的;
若所述网络参数大于等于参数阈值,则确定所述传输通道的网络状态指示所述传输通道存在网络拥塞。
5.如权利要求4所述的方法,其特征在于,所述网络参数至少包含最大可用带宽和在途数据量;所述最大可用带宽是指所述第一数据流传输时所需的发送速率,所述在途数据量是指所述传输通道中已使用的发送窗口;
在所述网络参数为所述最大可用带宽时,所述网络参数大于等于参数阈值是指所述最大可用带宽大于等于带宽阈值;
在所述网络参数为所述在途数据量时,所述网络参数大于等于参数阈值是指所述在途数据量大于等于数据量阈值。
6.如权利要求4所述的方法,其特征在于,所述将所述目标数据流所占用的传输资源共享至所述第一数据流,包括:
获取所述目标数据流所占用的传输资源;
将所述目标数据流所占用的传输资源降低目标变化资源量,得到所述目标数据流所占用的新的传输资源;
将所述目标数据流降低的所述目标变化资源量,作为所述第一数据流的传输资源。
7.如权利要求6所述的方法,其特征在于,所述网络参数为最大可用带宽时,所述传输资源为发送速率,所述目标变化资源量为目标变化速率量;所述网络参数为在途数据量时,所述传输资源为发送窗口,所述目标变化资源量为目标变化窗口量;
其中,所述目标变化资源量是基于预设的资源参数比例所确定的。
8.如权利要求6所述的方法,其特征在于,所述采用被共享的所述传输资源传输所述第一数据流,包括:
按照所述目标数据流共享至所述第一数据流的传输资源,向所述对象终端发送所述第一数据流;
所述方法还包括:按照所述目标数据流所占用的新的传输资源,向所述对象终端所属的对象群组发送所述目标数据流。
9.如权利要求1-3任一项所述的方法,其特征在于,所述方法应用于中间路由节点;所述第一数据流是由数据发送端转发所得到的;所述获取所述传输通道的网络状态,包括:
基于所述第一数据流的目的地址,确定所述第一数据流对应的对象群组;所述对象群组中包含通过所述传输通道的全部或部分链路传输数据流的一个或多个对象终端,所述第一数据流的目的地址指向所述对象群组中的一个对象终端;
获取所述对象群组对应的转发队列,所述转发队列中按照报文接收顺序,依次存储有所述对象群组中各对象终端对应的第二数据流的报文;
根据所述各对象终端对应的第二数据流的报文数量,计算所述转发队列的使用率;
若所述使用率大于或等于使用阈值,则确定所述传输通道的网络状态指示所述传输通道存在网络拥塞。
10.如权利要求9所述的方法,其特征在于,所述目标数据流为占用传输资源大于资源阈值的第二数据流,或者所述目标数据流为所述至少一个第二数据流中占用传输资源最多的第二数据流;所述第二数据流的报文数量越多,所述第二数据流所占用的传输资源越多;所述从所述至少一个第二数据流中筛选目标数据流,包括:
获取所述转发队列对应的统计列表,所述统计列表中关联存储有所述转发队列中各第二数据流的流量标识和报文数量;所述统计列表是跟随所述转发队列动态更新的;
基于所述统计列表中记录的所述各第二数据流的报文数量,筛选出目标数据流。
11.如权利要求10所述的方法,其特征在于,所述基于所述统计列表中记录的所述各第二数据流的报文数量,筛选出目标数据流,包括:
从所述统计列表中筛选报文数量最多的第二数据流;
将被筛选出的第二数据流作为目标数据流。
12.如权利要求10所述的方法,其特征在于,所述基于所述统计列表中记录的所述各第二数据流的报文数量,筛选出目标数据流,包括:
从所述转发队列中存储的末端报文开始,依次检索各报文对应的第二数据流在所述统计列表中记录的报文数量,直至检索到目标报文对应的第二数据流在所述统计列表中记录的报文数量大于或等于数量阈值;
将所述目标报文对应的第二数据流作为目标数据流。
13.如权利要求9所述的方法,其特征在于,所述传输资源为报文所占用的存储空间;所述将所述目标数据流所占用的传输资源共享至所述第一数据流,包括:
从所述转发队列中移除所述目标数据流的K个报文;所述目标数据流所包含的报文数量大于或等于K,K为正整数;
将所述第一数据流的K个报文添加至所述转发队列中,得到更新后的转发队列;
所述采用被共享的所述传输资源传输所述第一数据流,包括:
按照更新的转发队列,向对象终端发送所述第一数据流。
14.如权利要求13所述的方法,其特征在于,所述方法还包括:
删除所述目标数据流中被移除的K个报文,并向所述数据发送端发送丢包反馈报文,所述丢包反馈报文用于指示所述目标数据流中的K个报文被丢失;
或者,将所述目标数据流中被移除的K个报文转发至所述中间路由节点的上一路由节点;
在检测到所述转发队列的使用率小于使用阈值时,从所述上一路由节点接收所述目标数据流中被移除的K个报文,并对所述目标数据流中被移除的K个报文进行转发。
15.一种数据传输装置,其特征在于,包括:
获取单元,用于当传输通道中产生待传输的第一数据流时,获取所述传输通道的网络状态;所述传输通道是指从所述第一数据流的源地址到所述第一数据流的目的地址之间的数据通路;
处理单元,用于若所述网络状态指示所述传输通道存在网络拥塞,则获取所述传输通道中已存在的至少一个第二数据流;所述与所述传输通道关联的已存在的至少一个第二数据流包括:所述传输通道中已存在的数据流,或者,与所述传输通道存在相同链路的其他传输通道中已存在的数据流;
所述处理单元,还用于按照数据流筛选规则,从所述至少一个第二数据流中筛选目标数据流;所述数据流筛选规则是从数据流占用的传输资源的数量维度所制定的,或者,所述数据流筛选规则是从数据流对应的业务的业务等级的维度所制定的;
所述处理单元,还用于将所述目标数据流所占用的传输资源共享至所述第一数据流,并采用被共享的所述传输资源传输所述第一数据流。
16.一种计算机设备,其特征在于,包括:
处理器,适于执行计算机程序;
计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1-14任一项所述的数据传输方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机应用程序,所述计算机应用程序被执行时,实现如权利要求1-14任一项所述的数据传输方法。
CN202310291147.XA 2023-03-23 2023-03-23 一种数据传输方法、装置、设备及介质 Active CN115996195B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310291147.XA CN115996195B (zh) 2023-03-23 2023-03-23 一种数据传输方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310291147.XA CN115996195B (zh) 2023-03-23 2023-03-23 一种数据传输方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN115996195A CN115996195A (zh) 2023-04-21
CN115996195B true CN115996195B (zh) 2023-05-30

Family

ID=85995379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310291147.XA Active CN115996195B (zh) 2023-03-23 2023-03-23 一种数据传输方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115996195B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113162790A (zh) * 2020-01-22 2021-07-23 华为技术有限公司 调整服务等级的方法、装置、设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3340518A1 (en) * 2016-12-21 2018-06-27 Gemalto M2M GmbH Method for operating a user equipment communicating in parallel in a cellular network
CN108092888B (zh) * 2017-10-31 2021-06-08 华为技术有限公司 一种基于Overlay网络的传输方法、网关及传输系统
CN108882299B (zh) * 2018-07-06 2021-11-30 杭州电子科技大学 无线多跳网络的分布式拥塞控制、路由及功率分配方法
CN111435922B (zh) * 2019-01-11 2023-03-07 北京邦天信息技术有限公司 一种带宽共享方法
CN114079638A (zh) * 2020-08-17 2022-02-22 中国电信股份有限公司 多协议混合网络的数据传输方法、装置和存储介质
CN114513440A (zh) * 2020-10-29 2022-05-17 华为技术有限公司 一种报文传输的方法、发送端和网络设备
CN113141318B (zh) * 2021-03-29 2023-03-31 重庆邮电大学 一种基于视频流量预测模型的改进tfrc拥塞控制系统及方法
CN114866474B (zh) * 2022-04-29 2023-07-25 鹏城实验室 一种端网协同流量调度方法、装置、系统及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113162790A (zh) * 2020-01-22 2021-07-23 华为技术有限公司 调整服务等级的方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN115996195A (zh) 2023-04-21

Similar Documents

Publication Publication Date Title
US8694675B2 (en) Generalized dual-mode data forwarding plane for information-centric network
CN109412964B (zh) 报文控制方法及网络装置
US10200300B2 (en) Maintaining named data networking (NDN) flow balance with highly variable data object sizes
KR100990340B1 (ko) 무선 통신 환경에서의 패킷 라우팅
KR100990054B1 (ko) 다수의 요청에 기초한 qos 처리의 제공
US9444749B2 (en) Apparatus and method for selectively delaying network data flows
KR101046893B1 (ko) 이동 표시의 리소스 요청기로의 제공
US20180262432A1 (en) Vertical packet aggregation using a distributed network
WO2013029569A1 (en) A Generalized Dual-Mode Data Forwarding Plane for Information-Centric Network
US20100174740A1 (en) Method and apparatus for transmitting packets in the network
KR102160494B1 (ko) 네트워크 노드, 엔드포인트 노드 및 관심 메시지 수신 방법
WO2019179157A1 (zh) 一种数据流量处理方法及相关网络设备
WO2016062106A1 (zh) 报文处理方法、装置及系统
CN107231269B (zh) 一种集群精确限速方法和装置
CN110445723B (zh) 一种网络数据调度方法及边缘节点
CN111935031A (zh) 一种基于ndn架构的流量优化方法及系统
CN111245740B (zh) 配置业务的服务质量策略方法、装置和计算设备
US11991088B2 (en) System and method for congestion management in computer networks
US8601151B2 (en) Apparatus and method for receiving data
CN113726681B (zh) 一种网络拥塞控制方法及网络设备
CN115996195B (zh) 一种数据传输方法、装置、设备及介质
WO2023125380A1 (zh) 一种数据管理的方法及相应装置
CN108076144B (zh) 一种内容中心网络的公平缓存算法及装置
CN107135271B (zh) 一种能量有效的内容中心网络缓存方法
JP5784234B2 (ja) 情報中心ネットワークのための一般化デュアルモードデータ転送プレーン

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
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40084958

Country of ref document: HK