数据传输方法、设备及计算机存储介质与流程

文档序号:17584691发布日期:2019-05-03 21:12阅读:141来源:国知局
本发明涉及通信
技术领域
:,尤其涉及数据传输方法、设备及计算机存储介质。
背景技术
::数据中心网络(datacenternetwork,dcn)是应用于数据中心内的网络,其提出要求满足高吞吐量和低延迟的需求。然而,网络的吞吐量和延迟本是两个相互制约的指标,如图1示出网络负载分别对吞吐量以及延迟的影响示意图。如图1,当网络负载小于网络饱和点之前,网络吞吐量随着负载的增加而增长,延迟也增加;在网络负载大于网络饱和点后,网络吞吐量随着负载的增加而急速降低,相应地延迟也急速增长。dcn中数据传输(即网络流量)控制的目的即是具备较大吞吐量的同时也具备较小的延迟。现有技术为实现对数据传输的控制提出了两种方案,分别是:第一种方案是基于被动流控的数据传输方法。具体的,源节点采用主动推送的方式向目的节点推送数据,当网络发生拥塞后,源节点得到反馈才开始限制向目标节点发送数据;但这种方法延迟较低,此外只有在网络发生拥塞后才能控制,吞吐量下降且容易产生数据丢包。第二种方案是基于主动流控的数据传输方法。具体的,源节点采用拉推的方式向目的节点推送数据。“拉”是指源节点向目的节点发送数据之前,需先向目的节点请求数据发送量,目的节点向源节点反馈可支持发送的数据量。“推”是指源节点在接收到目的节点反馈的数据量后,可根据授权的数据量向目的节点发送数据;这种方法存在“拉”这个请求应答的协商流程,增加了网络延迟。因此本申请需提出一种合理的数据传输控制方案。技术实现要素:本发明实施例公开了数据传输方法、设备及计算机存储介质,能够兼顾实现网络高吞吐量和低时延。第一方面,本发明实施例公开提供了一种数据传输方法,所述方法包括:第一设备获取传输端口的拥塞状态,所述传输端口为第二设备向所述第一设备传输数据时,所述第一设备所使用的通信端口,所述拥塞状态用于指示所述传输端口是否发生数据拥塞;在满足模式切换条件的情况下,向所述第二设备发送指示信息,其中,所述指示信息用于指示切换所述第二设备传输数据时所采用的传输模式,以使所述第二设备采用切换后的传输模式向所述第一设备传输数据,所述模式切换条件与所述传输端口的拥塞状态关联。在一些可能的实施例中,所述模式切换条件为第一条件或者第二条件,其中,所述第一条件包括:所述拥塞状态用于指示所述传输端口发生了数据拥塞,且所述第一设备中预存的传输模式为第一模式,所述第一模式用于指示所述第二设备采用推送方式向所述第一设备传输数据;所述第二条件包括:所述拥塞状态用于指示所述传输端口未发生数据拥塞,且所述第一设备中预存的传输模式为第二模式,所述第二模式用于指示所述第二设备采用拉推方式向所述第一设备传输数据。在一些可能的实施例中,若所述模式切换条件为所述第一条件,则所述指示信息用于指示所述第二设备将所述传输模式从所述第一模式切换至所述第二模式,以采用所述第二模式所指示的拉推方式向所述第一设备传输数据;若所述模式切换条件为所述第二条件,则所述指示信息用于指示所述第二设备将所述传输模式从所述第二模式切换至所述第一模式,以采用所述第一模式所指示的推送方式向所述第一设备传输数据。在一些可能的实施例中,所述传输端口的拥塞状态是根据所述传输端口处的数据队列的长度确定的。在一些可能的实施例中,所述传输端口的拥塞状态是根据所述数据队列的传输速率以及第一采样时刻所采集的所述数据队列的长度确定的,其中,所述数据队列的传输速率是根据所述第一采样时刻所采集的所述数据队列的长度以及第二采样时刻所采集的所述数据队列的长度确定的,所述第二采样时刻优先于所述第一采样时刻。在一些可能的实施例中,所述方法还包括:同步更新所述第一设备中预存的所述传输模式。在一些可能的实施例中,所述方法还包括:在所述第二设备存在多个的情况下,记录模式标识信息,所述模式标识信息包括所述多个第二设备各自与所述第一设备进行数据传输时所采用的传输模式对应的标识信息,以便所述第一设备根据所述模式识别信息获知当前是否已向目标设备发送所述指示信息,所述目标设备为所述多个第二设备中的设备。第二方面,本发明实施例提供一种数据传输方法,所述方法包括:接收第一设备发送的指示信息,所述指示信息用于指示第二设备切换向所述第一设备传输数据时所采用的传输模式,所述指示信息为所述第一设备在确定到满足模式切换条件的情况下发送的,所述模式切换条件与传输端口的拥塞状态关联,所述传输端口为第二设备向所述第一设备传输数据时所述第一设备所使用的通信端口,所述拥塞状态用于指示所述传输端口是否发生数据拥塞;根据所述指示信息的指示,采用切换后的传输模式向所述第一设备传输数据。在一些可能的实施例中,所述模式切换条件为第一条件或者第二条件,其中,所述第一条件包括:所述拥塞状态用于指示所述传输端口发生了数据拥塞,且所述第一设备中预存的传输模式为第一模式,所述第一模式用于指示所述第二设备采用推送方式向所述第一设备传输数据;所述第二条件包括:所述拥塞状态用于指示所述传输端口未发生数据拥塞,且所述第一设备中预存的传输模式为第二模式,所述第二模式用于指示所述第二设备采用拉推方式向所述第一设备传输数据。在一些可能的实施例中,若所述模式切换条件为所述第一条件,则所述指示信息用于指示所述第二设备将所述传输模式从所述第一模式切换至所述第二模式,以采用所述第二模式所指示的拉推方式向所述第一设备传输数据;若所述模式切换条件为所述第二条件,则所述指示信息用于指示所述第二设备将所述传输模式从所述第二模式切换至所述第一模式,以采用所述第一模式所指示的推送方式向所述第一设备传输数据。在一些可能的实施例中,所述方法还包括:同步更新所述第二设备中预存的所述传输模式。第三方面,本发明实施例公开提供了一种网络设备,包括用于执行上述第一方面的方法的功能单元。第四方面,本发明实施例公开提供了一种网络设备,包括用于执行上述第二方面的方法的功能单元。第五方面,本发明实施例提供了一种网络设备,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行上述第一方面描述的方法。第六方面,本发明实施例提供了一种网络设备,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行上述第二方面描述的方法。第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储了用于邮件传输的程序代码。所述程序代码包括用于执行上述第一方面描述的方法的指令。第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储了用于邮件传输的程序代码。所述程序代码包括用于执行上述第二方面描述的方法的指令。第九方面,提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面描述的方法。第十方面,提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面描述的方法。通过实施本发明实施例,能够兼顾实现网络高吞吐和低时延的性能。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图1是现有技术提供的一种网络性能指标示意图;图2是现有技术提供的一种主动流控的场景示意图;图3a是现有技术提供的又一种主动流控的场景示意图;图3b是现有技术提供的又一种主动流控的场景示意图;图4是本发明实施提供的一种网络框架示意图;图5是本发明实施例提供的一种数据传输方法的流程示意图;图6是本发明实施例提供的一种数据队列的场景示意图;图7a是本发明实施例提供的一种网络设备的结构示意图;图7b是本发明实施例提供的又一种网络设备的结构示意图。具体实施方式下面将结合本发明的附图,对本发明实施例中的技术方案进行详细描述。本申请的发明人在提出本申请的过程中发现:dcn网络的目标是同时满足高吞吐量和低时延的要求。在现有技术中为实现dcn的目标,常用的流量控制(即数据传输控制)方法包括主动流控和被动流控。当其应用在网络设备(具体为网络中间设备,如路由器)中,追求的第一网络指标为高吞吐量,不允许网络拥塞出现丢包等情况,此时网络设备采用的流量控制方法即是主动流控方法,具体存在以下两种实施方案。第一种方案:如图2,在源节点向目的节点传输数据之前,需向目的节点发送请求包request(图示为req),该请求包携带有请求发送的数据量。当目的节点接收该请求包后,可根据自身的网络速率和/或缓存区buffer的缓存容量确定可授权给各个源节点各自对应的授权数据量(即可发送的数据量),并封装在授权应答包(图示为gnt)反馈给相应地源节点。相应地,源节点在接收到反馈的授权数据量时,可开始向目的节点发送数据,具体可通过数据量寄存器来统计已发送的数据量以及剩余可用的数据量。相应地,在可用数据量低于一定阈值时,源节点可再次向目的节点发送请求包,将接收到目的节点反馈的授权数据量添加更新至数据量寄存器中。如此反复,使得源节点有能力、且不拥塞地向目的节点发送数据。然而,由于数据发送之前需加入前期协商流程,增大了网络延迟。为解决该问题,提出以下第二种方案。第二种方案:srp(networkcongestionavoidancethroughspeculativereservation)是一种面向dcn提出的主动流量控制协议,可通过源节点、目的节点资源预留协商来避免网络拥塞。具体的,如图3a和图3b示出spr协议的收发场景示意图。其中,图3a示出没有拥塞情况下数据传输的收发示意图,图3b示出在发生拥塞时数据传输的收发示意图。图中r(n)是指具备高优先级的资源请求包,n为待申请所需发送的数据包的数量(即申请的数据量)。具体的,如图3a,当源节点向目的节点发送数据时,需先向目的节点发送请求包r(n),同时开始推送数据包,具体如图3a中的数据包p1和p2。推送数据包的过程中可能由于网络拥塞导致丢包,因此当推送的数据包到的目的节点时,目的节点需反馈授权包g(ts),其中ts规定了源节点发包的开始时间。相应地,当源节点接收到授权包g(ts)后,停止推送数据包,从ts时开始向目的节点推送n个数据包,具体如图示的p3~pn。当请求包r(n)发送完毕后,重复此过程。特别地如图3b,当网络发生拥塞时,发送过程中数据包在网络中产生丢包,相应地目的节点需向源节点返回nack应答包(图示为n1)。相应地,当源节点接收到nack应答包n1后停止向目的节点推送数据包。等待到目的节点返回的授权时间ts时,可从丢弃的数据包开始向目的节点发送n个数据包,具体如图示的p1~pn。在实践中发现,该方案虽然在请求过程中通过推送一部分数据来弥补请求带来的带宽损耗和延迟,但并未充分发挥主动流控的性能优势,网络延迟仍然比较高。为解决上述问题,本申请提出在主动流控和被动流控中来回切换的方案,充分利用主动流控和被动流控各自的性能优势,以达到同时兼顾高吞吐量和低时延的性能。首先,介绍本发明适用的网络架构示意图,具体如图4所示。如图4,该网络架构示意图包括源节点和目的节点。可选地,还可包括中间节点。关于各种节点的数量本发明并不做限定,例如图示分别给出2个源节点、一个中间节点和n个目的节点,其中n为正整数。在可选实施例中,所述目的节点也可为中间节点,所述中间节点包括但不限于网络设备、终端设备。其中,该网络设备可以是例如路由器、交换机等中间设备,也可是例如网卡等端点设备。所述终端设备包括但不限于用户终端、智能手机(如android手机、ios手机等)、个人电脑、平板电脑、掌上电脑、移动互联网设备(mid,mobileinternetdevices)或穿戴式智能设备等互联网设备,本发明实施例不作限定。所述源节点也可为网络设备或终端设备,本发明并不限定。在可选实施例中,在源节点侧,数据是基于队列机制处理的。源节点侧可根据数据到达的目的节点(或最后一级交换设备中)建立独立的虚拟输入输出(virtualoutputqueue,voq)队列,如图4交换机tor下连接n个host服务器,每个voq队列对应一个或多个host服务器。具体的,在资源允许的情况下,可按照目的host静态创建voq队列,即一个voq队列对应一个host。相应地在资源不允许的情况下,根据通信局部特征,一个源节点不可能同时与所有节点进行通信,因此可根据需求动态创建voq队列,即一个voq队列可对应多个host。在实际应用中,当源节点通过交换机tor向目的host发送数据时,首先将数据存储在voq队列中,然后向tor发送数据包(也可是请求包)。相应地,tor可接收多个源节点发送的数据包(或请求包)。特别的,当所述数据包为请求包(即在主动流控模式下)时,tor可根据自身的网络速率以及缓冲区buffer的缓存量向所述源节点反馈相应地授权数据量。应理解的,tor可接收各个源节点发送的数据包,受限于tor与其下host之间的速率,可能造成tor的buffer中逐渐堆积,将造成主动流控方式的优势失效。为解决上述问题,如图4本申请中在源节点侧设置有调度模块(图示为scheduler模块)。该调度模块用于根据目的节点发送的传输模式来匹配并调度数据,以发送给目的节点。该传输模式是指源节点和目的节点之间传输数据时所采用的模式,该模式包括但不限于第一模式(被动流控模式)和第二模式(主动流控模式)。在目的节点(或中间节点)侧设置有三个功能模块,分别为第一模块、第二模块以及第三模块。具体的,该第一模块(src2dsttable功能模块)用于接收源节点发送的数据包,建立源节点和目的节点之间的映射关系,并存储该映射关系,例如存储至src2dsttable中。其中,所述目的节点可以为多个,如连接至同一中间节点tor下的所有目的host。在可选实施例中,所述第一模块中还可记录有源节点和目的节点之间传输数据时所采用的传输模式,关于所述传输模式可参见前述实施例中的相关介绍,这里不再赘述。在可选实施例中,所述第一模块中还可记录有模式标识信息,该模式标识信息用于指示所述第一设备是否向所述第二设备发送过用于指示将传输模式切换为第二模式的所述指示信息。具体的,以所述传输模式包括第一模式和第二模式为例,所述模式标识信息可用预设字符串、预设字符等形式来表示。例如当所述模式标识信息为“0”,则表示所述第一设备向所述第二设备发送过指示将所述传输模式从第一模式切换至第二模式的指示信息;相应地,当所述模式标识信息为“1”,则表示所述第一设备向所述第二设备发送过指示将所述传输模式从第二模式切换至第一模式的指示信息,具体在下文中进行详述。所述第二模块(congestiondetect功能模块)用于检测/监测各个传输端口的拥塞状态,该传输端口也可称下行端口,是指源节点向目的节点发送数据时所使用的端口;或者,如果存在中间节点tor时,该传输端口是指中间节点与目的节点之间的端口;所述拥塞状态用于指示所述传输端口是否发生数据拥塞。所述第三模块(activeflowcontrol功能模块)用于根据监测的所述传输端口的拥塞状态来自动调整所述第一模块中记录的所述传输模式,实现传输模式之间的相互切换,具体在下文中进行详述。其次,基于图4所示的网络框架示意图,下面介绍本申请涉及的方法实施例。具体如图5,是本发明实施例提供的一种数据传输方法的流程示意图。如图5所述的方法可包括如下实施步骤:步骤s102、第一设备获取传输端口的拥塞状态,所述传输端口为第二设备向所述第一设备传输数据时,所述第一设备所使用的通信端口,所述拥塞状态用于指示所述传输端口是否发生数据拥塞。步骤s104、在满足模式切换条件的情况下,向所述第二设备发送指示信息,其中,所述指示信息用于指示切换所述第二设备传输数据时所采用的传输模式,以使所述第二设备采用切换后的传输模式向所述第一设备传输数据,所述模式切换条件与所述传输端口的拥塞状态关联。所述传输模式是指所述第二设备向所述第一设备传输数据时所采用的模式,该模式包括但不限于第一模式(被动流控模式)、第二模式(主动流控模式)。所述被动流控模式是指发送端采用推送方式向接收端发送数据,所述主动流控模式是指发送端采用拉推方式向接收端发送数据,关于所述被动流控模式和所述主动流控模式可参见前述主动流控方法和被动流控方法中的相关阐述,这里不再赘述。所述第一设备和所述第二设备可以是网络设备,其中,所述第一设备可以是中间网络设备(如交换机、路由器)或者端点网络设备(如网卡)等,且所述第一设备和所述第二设备的数量,本发明并不做限定。下面本申请以所述第一设备为中间网络设备(交换机)为例进行相关内容的详细阐述。下面介绍本申请所涉及的一些具体实施例和可选实施例。步骤s102中,当所述第一设备为中间网络设备(如交换机)时,第二设备通过第一设备向目的设备传输数据。相应地,所述第一设备可接收所述数据,然后在转发给所述目的设备。所述第一设备可检测本设备与所述目的设备之间的通信端口的拥塞状态。当所述第一设备为端点网络设备(如网卡)时,第二设备可直接向第一设备发送数据,同时所述第一设备可检测本设备与第二设备进行数据传输时所使用到的通信接口的拥塞状态。以便所述第一设备根据该端口的拥塞状态调节设备间数据传输时所使用的传输模式,实现网络数据传输时同时兼顾高吞吐量和低时延的性能指标。步骤s104中,所述第一设备可判断当前是否满足模式切换条件,如果满足,则向所述第二设备发送指示信息。该指示信息用于指示切换所述第二设备的传输模式至目标模式,以使后续所述第二设备采用目标模式向所述第一设备发送数据。该模式切换条件是用户侧或终端设备侧预先设置的,且该模式切换条件与所述传输端口的拥塞状态关联。具体的,针对首次通信的源节点(如第二设备)和目的节点而言,第二设备开始将采用第一模式(被动流控模式)通过所述第一设备向目的节点(如host0)传输数据。即网络初始化时,源节点与目的节点将采用推送方式向第一设备传输数据。可选地,在源节点(第二设备)侧,所述第二设备可创建并保存有所述第二设备与多个目的节点之间的关联关系。可选地,所述第二设备还可记录有所述第二设备与所述多个目标节点中每个节点之间传输数据时所采用的传输模式。其中,所述多个目的节点中当然包括有所述第一设备。具体如下表1示出一个源节点中存储的数据表。表1由上表1可知,示出源节点与多个支持与该源节点通信的目的节点,以及给出源节点与每个目的节点之间所采用的传输模式(endtoendflowcontrol,e2efc_mode)。表1中的“0”表示第一模式,即采用推送方式(push)向目的节点传输数据;反之,“1”表示第二模式,即采用拉推方式(pull)向目的节点传输数据。相应地,在第一设备侧当然也可存储有多个源节点与目的节点(host0)之间传输数据所采用的传输模式。具体的,在网络初始化时,初始化第一设备下传输端口的传输模式为第一模式,即指示与该目的节点host0连接的所有源节点均采用推送方式来传输数据。如下表2示出一种第一设备中存储的数据表。表2目的节点的标识(hostidx)传输模式(e2efc_mode)0(host0)0(push模式)10(push模式)20(push模式)…………n0(push模式)由上表2可知,第一设备中记录有每个目的节点与各自对应的多个源节点之间进行数据传输时所采用的传输模式,表2仅示出采用第一模式“0”的情况。在可选实施例中,第一设备中还可记录有与每个目的节点(如host0)各自连接的多个源节点对应的模式标识信息,该模式标识信息用于指示每个源节点是否向目的节点(如host0)发送过用于指示将所述传输模式从第一模式切换至第二模式的指示信息,即该模式标识信息用于指示在源节点侧是否切换至第二模式来传输数据。具体如下表3示出多个源节点与多个目的节点之间的数据表,其中最上一层的数据表为与目的节点host0连接的多个源节点(srcid)各自对应的模式标识信息(即pull_en)。表3由上表3可知:以host0为例,当前与该host0通信的源节点0、源节点3、源节点9以及源节点m各自对应的模式标识信息,该模式标识信息用于指示当前源节点与目的节点数据传输时所采用的传输模式;同样地,也可用该模式标识信息来确定在发生模式切换时(即满足模式切换条件),第一设备(或目的节点)是否向与该目的节点通信的多个源节点发送了用于指示切换传输模式的指示信息。下面介绍步骤s104中涉及的两种具体实施方式。第一种实施方式中:针对所有采用第一模式的源节点和目的节点之间,源节点采用第一模式(推送方式)向目的节点发送数据;相应地,目的节点接收该数据包,并记录源节点与目的节点之间的映射关系、传输数据所采用的传输模式等等信息。进一步,还可检测目的节点通信时使用的传输端口的拥塞状态,判断是否满足模式切换条件。在满足模式切换条件的情况下,向第二设备发送指示信息。这里所述模式切换条件可为第一条件,该第一条件包括:所述拥塞状态用于指示所述传输端口发生了数据拥塞,且所述第一设备中预存的传输模式为第一模式,所述第一模式用于指示所述第二设备采用推送方式向所述第一设备传输数据。具体的,以所述第二设备采用第一模式向第一设备传输数据为例,在所述第一设备侧记录有开始数据传输所采用的第一模式,同时判断当前传输端口的拥塞状态用于指示该传输端口是否发生了数据拥塞。如果所述拥塞状态用于指示该传输端口发生了数据拥塞,则所述第一设备向所述第二设备发送指示信息,该指示信息用于指示所述第二设备将所述传输模式从第一模式切换至第二模式,以便所述第二设备后续按照所述第二模式(推拉方式)向第一设备传输数据。可选的,所述第一设备还可同步更新该第一设备中记录的所述第二设备的传输模式为第二模式。如果所述拥塞状态用于指示该传输端口未发生数据拥塞,则不予处理,所述第二设备还是采用第一模式向第一设备发送数据,此时可结束流程。第二种实施方式中:针对所有采用第二模式的源节点和目的节点之间,源节点采用第二模式(拉推方式)向目的节点发送数据;相应地,目的节点接收该数据包,并记录源节点与目的节点之间的映射关系、传输数据所采用的传输模式等等信息。进一步,还可检测目的节点通信时使用的传输端口的拥塞状态,判断是否满足模式切换条件。在满足模式切换条件的情况下,向第二设备发送指示信息。这里所述模式切换条件可为第二条件,该第二条件包括:所述拥塞状态用于指示所述传输端口未发生数据拥塞,且所述第一设备中预存的传输模式为第二模式,所述第一模式用于指示所述第二设备采用拉推方式向所述第一设备传输数据。具体的,以所述第二设备采用第二模式向第一设备传输数据为例,在所述第一设备侧记录有开始数据传输所采用的第二模式,同时判断当前传输端口的拥塞状态用于指示该传输端口是否发生了数据拥塞。如果所述拥塞状态用于指示该传输端口并未发生数据拥塞,则所述第一设备向所述第二设备发送指示信息,该指示信息用于指示所述第二设备将所述传输模式从第二模式切换至第一模式,以便所述第二设备后续按照所述第一模式(推送方式)向第一设备传输数据。可选的,所述第一设备还可同步更新该第一设备中记录的所述第二设备的传输模式为第一模式。如果所述拥塞状态用于指示该传输端口发生了数据拥塞,则不予处理,所述第二设备还是采用第二模式向第一设备发送数据,此时可结束流程。在可选实施例中,当所述传输端口的拥塞状态用于指示该传输端口发生了数据拥塞,如果此时第一设备(目的节点)接收到新的源节点发送的数据包,则所述第一设备还可记录新的源节点与目的节点之间的关联关系,且模式标识信息并未被设置。此时第一设备可向第二设备发送用于指示切换将传输模式从第一模式切换至第二模式的指示信息,并将该模式标识信息如上表2中的pull_en设置为1。在可选实施例中,本申请中的数据传输可以是基于队列机制处理的,如voq队列。所述传输端口的拥塞状态取决于在该传输端口所形成的数据队列(voq队列)的长度。具体的,如图6示出一种voq队列的场景示意图。图6示出设备缓冲区支持的voq队列,第一设备可实时或周期性地采集voq队列的长度。所述传输端口的拥塞状态是根据数据队列的传输速率,以及第一采样时刻(如当前时刻)时所述数据队列的长度。如下给出传输端口的拥塞状态的计算公式(1)。队列长度偏移qoff=qeq–qlen入队出队速率差qdelta=pktdeq-pktenq=qlen’–qlen拥塞测量p=qoff+w*qdelta公式(1)其中,qlen为设备在第一采样时刻采集的voq队列的长度;qlen’为设备在第二采样时刻采集的voq队列的长度,其中,所述第一采样时刻晚于所述第二采样时刻,例如所述第一采样时刻为当前时刻,则所述第二采样时刻为上一采样时刻。qeq为用户侧或设备侧自定义设置的,其可表示为数据队列将充满缓存buffer、接近拥塞状态所对应的队列均衡阈值。qoff为qlen相比于设定的阈值qeq之间的差值,当qoff为负值或值越小时,表明越接近拥塞状态(即越容易发生数据拥塞)。qdelta为两次相邻采样间隔间,队列长度的变化大小,反应了数据包入队和出队的速率。qdelta值大于零,表明出队速率大于入队速率,不容易发生数据拥塞;qdelta值小于零,则表明入队速率大于出队速率,很容易发生数据拥塞情况。相应地,本申请可通过队列长队qlen偏离设定的阈值qeq的差值以及两次相邻采样间隔队列长度的变化大小qdelta的加权组合来表示传输端口的拥塞状态;具体如上公式(1)的表达式所示。如果p为负,则表明传输端口发生了拥塞,否则传输端口并未发生拥塞。通过本发明实施例,能够融合主动流控模式和被动流控模式各自的优势,自动实现模式间的相互切换,实现网络同时兼顾高吞吐和低时延的性能指标。需要说明的是,当所述第一设备和第二设备为多个的情况下,即网络中存在多个源节点和多个目的节点相互通信,此时在网络轻载时可采用被动流控模式(推送方式)传输数据,提供网络低延迟的性能指标;在网络轻度拥塞时,在部分拥塞的源节点和目的节点间采用主动流控模式(拉推方式,请求协商)传输数据;在网络重度拥塞(即重载)时,采用主动流控模式(拉推方式,请求协商)传输数据,提供网络高吞吐量的性能指标。但每组源节点和目的节点之间的传输模式的调整方法均参加本申请图5所述实施例中的相关描述,这里不再赘述。上述主要从节点设备的角度出发对本发明实施例提供的方案进行了介绍。可以理解的是,网络设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本发明中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的技术方案的范围。本发明实施例可以根据上述方法示例对网络设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在采用集成的单元的情况下,图7a示出了上述实施例中所涉及的网络设备的一种可能的结构示意图。网络设备700包括:处理单元702和通信单元703。处理单元702用于对网络设备700的动作进行控制管理,例如,处理单元702用于支持网络设备700执行图5中步骤s102,和/或用于执行本文所描述的技术的其它步骤。通信单元703用于支持网络设备700与其它设备的通信,例如,通信单元703用于支持网络设备700执行图5中步骤s104,和/或用于执行本文所描述的技术的其它步骤。网络设备700还可以包括存储单元701,用于存储网络设备700的程序代码和数据。其中,处理单元702可以是处理器或控制器,例如可以是中央处理器(英文:centralprocessingunit,cpu),通用处理器,数字信号处理器(英文:digitalsignalprocessor,dsp),专用集成电路(英文:application-specificintegratedcircuit,asic),现场可编程门阵列(英文:fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信单元703可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如网络设备与其他设备之间的接口。存储单元701可以是存储器。当处理单元702为处理器,通信单元703为通信接口,存储单元701为存储器时,本发明实施例所涉及的网络设备可以为图7b所示的网络设备。参阅图7b所示,该网络设备710包括:处理器712、通信接口713、存储器77。可选地,网络设备710还可以包括总线714。其中,通信接口713、处理器712以及存储器77可以通过总线714相互连接;总线714可以是外设部件互连标准(英文:peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(英文:extendedindustrystandardarchitecture,简称eisa)总线等。所述总线714可以分为地址总线、数据总线、控制总线等。为便于表示,图7b中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。上述图7a或图7b所示的网络设备的具体实现还可以对应参照图1至图6所示实施例的相应描述,此处不再赘述。结合本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(英文:randomaccessmemory,ram)、闪存、只读存储器(英文:readonlymemory,rom)、可擦除可编程只读存储器(英文:erasableprogrammablerom,eprom)、电可擦可编程只读存储器(英文:electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于网络设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备中。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1