CN113037640A - 数据转发方法、数据缓存方法、装置和相关设备 - Google Patents
数据转发方法、数据缓存方法、装置和相关设备 Download PDFInfo
- Publication number
- CN113037640A CN113037640A CN201911249818.6A CN201911249818A CN113037640A CN 113037640 A CN113037640 A CN 113037640A CN 201911249818 A CN201911249818 A CN 201911249818A CN 113037640 A CN113037640 A CN 113037640A
- Authority
- CN
- China
- Prior art keywords
- message
- flow
- data
- storage device
- packet
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
Abstract
本申请提供了一种数据转发方法、数据缓存方法、装置和相关设备。其中,网络设备在出口队列解除拥塞后,接收上游节点发送的报文,并确定出口队列关联的存储设备是否缓存有与该报文属于同一数据流的在先报文;当存储设备未缓存在先报文时,将报文调度到出口队列,以转发给下游节点;其中,存储设备包括第一缓存区和第二缓存区,用于在出口队列发生拥塞期间接收网络设备发送的报文;获取当前已接收的与该报文属于同一数据流的全部报文的数据量;当数据量小于或者等于预设阈值时,存储设备将报文缓存至第一缓存区;当拥塞解除后,存储设备优先将第一缓存区中的报文发送给网络设备。由此,实现对新数据流和小数据流的优先调度,提高设备高转发性能。
Description
技术领域
本申请涉及网络通信技术领域,尤其涉及一种数据转发方法、数据缓存方法、装置和相关设备。
背景技术
当网络中的一个发送端设备向一个接收端设备发送报文时,该报文需要途经发送端设备和接收端设备之间的路径上的多个转发设备。当有多个发送端设备向同一个接收端设备发送报文时,这些报文可能会汇聚到同一个转发设备的同一个出口队列,如果这个出口队列的入速率大于出速率,就会导致该出口队列出现拥塞甚至被填满,导致后续到达转发设备的报文无法被送入到该出口队列中,只能做丢弃处理,造成网络丢包,严重降低转发设备的转发性能。
目前,当出口队列发生拥塞甚至被填满时,一些转发设备使用出口队列以外的缓存队列,临时缓存接收到的报文,当出口队列的拥塞状态解除或者缓解之后,转发设备再从缓存队列取出临时缓存中的报文,重新送入到该出口队列中,以降低丢包。然而,在实际应用中,来自不同的发送端设备的报文属于不同的数据流或者业务流,不同数据流包含的报文数量有多有少,数据量有大有小。对于小数据流来说,由于它在转发路径中传输所消耗的时长较小,当它在转发设备的出口队列和缓存队列中滞留时间较长时,对转发设备传输性能的影响更大。并且,在转发设备从缓存队列中调度报文到出口队列的过程中,如果有之前未出现过的一条新数据流到达转发设备,转发设备也会将这条新数据流中的报文发送到缓存队列中进行缓存,因此,影响了新的数据流的转发,使拥塞产生了一定扩散,降低了设备的转发性能。
发明内容
本申请提供了一种数据转发方法、数据缓存方法、装置和相关设备,以提高转发设备的转发性能。
第一方面,本申请提供了一种数据转发方法。该方法包括:网络设备在出口队列解除拥塞后,接收上游节点发送的报文;网络设备获取报文的流标识,流标识指示报文所属的数据流;网络设备根据流标识,确定出口队列关联的存储设备中是否缓存有属于数据流的在先报文;当存储设备未缓存数据流的在先报文时,网络设备将报文调度到出口队列,以将报文转发给下游节点;其中,存储设备用于缓存网络设备在该网络设备的出口队列发生拥塞期间接收到的报文。
根据上述方法,网络设备在出口队列解除拥塞后,如果接收到上游设备发送到的报文,会判断存储设备中是否缓存了与这个报文属于同一数据流的在先报文,如果存储设备未缓存在先报文,则网络设备可以确定该报文属于新的数据流,那么为了不影响这条新的数据流的转发性能,网络设备将这个报文直接调度到出口队列,实现插队,因此本申请实施例的方案,在网络设备的出口队列解除拥塞的情况下,能够降低新的数据流的报文从到达网络设备到被转发给下游节点所消耗的时长,提高网络设备的转发性能。
在一种实现方式中,该方法还包括:当存储设备缓存有数据流的在先报文时,网络设备将报文发送给存储设备进行缓存。由此,如果存储设备缓存在先报文,那么网络设备可以确定这个报文属于存储设备中已缓存的数据流,因此,为了防止数据流中的报文乱序,网络设备将这个报文发送到存储设备进行缓存。
在一种实现方式中,该方法还包括:网络设备在该网络设备的出口队列发生拥塞期间,将接收到的报文发送给存储设备进行缓存。由此,防止出现出口队列拥塞或者被占满而导致丢包的现象。
在一种实现方式中,该方法还包括:网络设备记录存储设备缓存的各个数据流的报文数量。由此,网络设备在出口队列解除拥塞之后根据记录的报文数量确定新收到的报文是否继续发送到存储设备进行缓存。在一种实现方式中,网络设备将存储设备缓存的各个数据流的报文数量记录在流表中,流表包括至少一个表项,每个表项包括一个流标识及其对应的报文数量。由此,网络设备可以通过查询流表的方式获得存储设备缓存的各个数据流的报文数量。
在一种实现方式中,网络设备根据流标识查询流表,以获取数据流在流表中对应的报文数量;当报文数量等于0时,网络设备确定存储设备当前未缓存数据流的在先报文;当报文数量大于0时,网络设备确定存储设备当前缓存有数据流的在先报文。
第二方面,本申请还提供了一种数据缓存方法。该方法包括:存储设备接收报文,报文是网络设备在该网络设备的出口队列发生拥塞期间发送的,存储设备包括第一缓存区和第二缓存区;存储设备获取报文的流标识,流标识指示报文所属的数据流;存储设备获取当前已接收的属于数据流的全部报文的数据量;当数据量小于或者等于预设阈值时,存储设备将报文缓存至第一缓存区;当拥塞解除后,存储设备优先将第一缓存区中的报文发送给网络设备。
根据上述方法,存储设备在网络设备的出口队列发送拥塞期间,判断从网络设备接收到的报文是属于大流还是小流,如果报文属于小流,则将报文缓存在第一缓存区,如果报文属于大流,则将报文缓存在第二缓存区,在网络设备的出口队列解除拥塞后,存储设备首先从第一缓存区发送报文到出口队列。因此,本申请实施例的方案,在网络设备的出口队列解除拥塞的情况下,能够降低小流的报文在出口队列中等待的时长,提高网络设备对小流的转发效率,改善设备性能。
在一种实现方式中,该方法还包括:当数据量大于预设阈值时,存储设备将报文缓存至第二缓存区。由此,当数据量大于阈值时,存储设备认为报文所属的数据流属于大流,将报文缓存至第二缓存区。
在一种实现方式中,该方法还包括:存储设备记录从网络设备接收的属于各个数据流的报文的数据量。由此,存储设备可以根据记录的数据量确定接收到的报文属于大流还是小流。
在一种实现方式中,存储设备将从网络设备接收的属于各个数据流的报文的数据量记录在流表中,流表包括至少一个表项,每个表项包括一个流标识及其对应的报文的数据量。由此,存储设备可以通过查询流表的方式获得存储设备缓存的各个数据流的报文的数数量。
在一种实现方式中,存储设备在缓存报文之前,更新流表。由此,存储设备每接收到一个报文都会根据接收到的报文的大小更新流表,实现流表的实时更新。
第三方面,本申请还提供了一种数据转发装置,该数据转发装置具有实现上述网络设备的行为的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的单元模块。在一个可能的设计中,上述数据转发装置包括接收单元、处理单元和发送单元。接收单元,用于在出口队列拥塞解除后,接收上游节点发送的报文;处理单元,用于获取报文的流标识,流标识指示报文所属的数据流;处理单元,还用于根据流标识,确定出口队列关联的存储设备中是否缓存有属于数据流的在先报文;发送单元,用于当存储设备未缓存数据流的在先报文时,将报文调度到出口队列,以将报文转发给下游节点;其中,存储设备用于缓存网络设备在该网络设备的出口队列发生拥塞期间接收到的报文。
根据上述装置,网络设备在出口队列解除拥塞后,如果接收到上游设备发送到的报文,会判断存储设备中是否缓存了与这个报文属于同一数据流的在先报文,如果存储设备未缓存在先报文,则网络设备可以确定该报文属于新的数据流,那么为了不影响这条新的数据流的转发性能,网络设备将这个报文直接调度到出口队列,实现插队,因此本申请实施例的方案,在网络设备的出口队列解除拥塞的情况下,能够降低新的数据流的报文从到达网络设备到被转发给下游节点所消耗的时长,提高网络设备的转发性能。
第四方面,本申请还提供了一种数据缓存装置,该数据缓存装置具有实现上述存储设备行为的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的单元模块。在一个可能的设计中,上述数据缓存装置包括存储单元、接收单元、处理单元和发送单元。存储单元,包括第一缓存区和第二缓存区;接收单元,用于接收报文,报文是网络设备在该网络设备的出口队列发生拥塞期间发送的;处理单元,用于获取报文的流标识,流标识指示报文所属的数据流;处理单元,还用于获取装置当前已接收的属于数据流的全部报文的数据量;处理单元,还用于当数据量小于或者等于预设阈值时,将报文缓存至第一缓存区;发送单元,用于当拥塞解除后,优先将第一缓存区中的报文发送给网络设备。
根据上述装置,存储设备在网络设备的出口队列发送拥塞期间,判断从网络设备接收到的报文是属于大流还是小流,如果报文属于小流,则将报文缓存在第一缓存区,如果报文属于大流,则将报文缓存在第二缓存区,在网络设备的出口队列解除拥塞后,存储设备首先从第一缓存区发送报文到出口队列。因此,本申请实施例的方案,在网络设备的出口队列解除拥塞的情况下,能够降低小流的报文在出口队列中等待的时长,提高网络设备对小流的转发效率,改善设备性能。
第五方面,本申请还提供了一种网络设备。该网络设备包括:存储器和处理器;存储器和处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器执行计算机指令时,使网络设备执行上述第一方面及其实现方式中的方法。
第六方面,本申请还提供了一种存储设备。该存储设备包括:存储器和处理器;存储器和处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器执行计算机指令时,使存储设备执行上述第二方面及其实现方式中的方法。
第七方面,本申请还提供了一种计算机存储介质。该计算机存储介质计算机指令,当计算机指令在网络设备上运行时,使得网络设备执行上述第一方面及其实现方式中的方法。
第八方面,本申请还提供了一种计算机存储介质。该计算机存储介质计算机指令,当计算机指令在存储设备上运行时,使得存储设备执行上述第二方面及其实现方式中的方法。
第九方面,本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面及其实现方式中的方法。
第十方面,本申请还提供了一种芯片系统,该芯片系统包括处理器,用于支持上述装置或设备实现上述各方面及其实现方式中所涉及的功能,例如,生成或处理上述方法中所涉及的信息。
附图说明
图1是本申请实施例提供的一种包含转发设备的报文传输场景的示意图;
图2是本申请实施例提供的一种网络设备的结构示意图;
图3是本申请实施例提供的另一种网络设备的结构示意图;
图4是本申请实施例提供的一种包含转发设备的网络系统的架构示意图;
图5是本申请实施例提供的转发设备向下游节点转发数据流的示意图;
图6是本申请实施例提供的出口队列状态的示意图;
图7是本申请实施例提供的转发设备使用远程存储设备临时缓存报文的示意图;
图8是本申请实施例提供的转发设备使用远程存储设备临时缓存报文的示意图;
图9是本申请实施例提供的转发设备从远程存储设备重新获取报文的示意图;
图10是本申请实施例提供的一种数据转发方法的示意图;
图11是本申请实施例提供的网络设备在出口队列拥塞期间维护流表的示意图;
图12是本申请实施例提供的网络设备在出口队列拥塞解除后维护流表的示意图;
图13是本申请实施例提供的网络设备在出口队列解除拥塞之后对接收到的报文进行调度的示意图;
图14是本申请第一实施例的技术效果示意图;
图15是本申请实施例提供的一种数据缓存方法的示意图;
图16是本申请实施例提供的存储设备记录报文的数据量的示意图;
图17是本申请实施例提供的存储设备查询流标识对应的报文的数据量的示意图;
图18是本申请实施例提供的存储设备向第一缓存队列缓存报文的示意图;
图19是本申请第二实施例的技术效果示意图;
图20是本申请实施例提供的一种数据转发装置的示意图;
图21是本申请实施例提供的一种数据缓存装置的示意图。
具体实施方式
下面首先结合附图对本申请实施例的应用场景进行说明。
图1是本申请实施例提供的一种包含转发设备的报文传输场景的示意图。如图1所示,当网络中的一个发送端设备向一个接收端设备发送报文时,该报文需要途经发送端设备和接收端设备之间转发路径上的多个网络设备,其中,每个网络设备用于接收来自转发路径上的上游节点(即报文的上一跳节点)的报文,并将报文转发给转发路径上的下游节点(即报文的下一跳节点),因此,从功能上来看,发送端设备和接收端设备之间转发路径上的网络设备也可以称为转发设备。
图2是本申请实施例提供的一种网络设备的结构示意图。该网络设备具体可以是路由器、交换机、网络主机或者服务器等,可以作为转发设备在上游节点和下游节点之间转发报文。如图2所示,该网络设备可以包括:至少一个处理器、至少一个存储器和至少一个接口单元。作为示例地,该网络设备具体可以包括主控板100和接口板200。其中,主控板100可以包括处理器110和存储器120,处理器110和存储器120耦合连接。存储器120中存储有程序指令,处理器110可调用存储器120中的程序指令,使网络设备执行相关的方法,例如解析报文或者生成报文。接口板200可以包括处理器210、存储器220和接口单元230。处理器 210、存储器220和接口单元230耦合连接。存储器220中存储有程序指令,处理器210可调用存储器220中的程序指令,使网络设备执行相关的方法,例如通过接口单元230接收和转发报文。本申请实施例中,接口单元230用于与其他网络设备建立通信链路,实现报文的收发,接口单元230例如可以包括一个或者多个光纤链路接口、以太网接口、微波链路接口或者铜线接口等。主控板100和接口板200可以通过总线建立连接,实现数据交换。
图3是本申请实施例提供的另一种网络设备的结构示意图。该网络设备具体可以是路由器、交换机、网络主机或者服务器等,可以作为转发设备在源节点和目的节点之间转发报文。如图3所示,该网络设备可以包括存储器310、通信接口320和处理器330。存储器310、通信接口320和处理器330耦合连接,存储器310中存储有程序指令,处理器330可调用存储器310中的程序指令,使网络设备执行相关的方法,例如解析报文、生成报文,通过通信接口320接收和转发报文等。
本申请实施例中,网络设备的处理器可以包括一个或者多个处理单元,例如系统芯片 (system on a chip,SoC)、中央处理器(central processing unit,CPU)、微控制器(microcontroller, MCU)、存储控制器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
本申请实施例中,网络设备的存储器可以包括一个或者多个存储单元,例如可以包括易失性存储器(volatile memory),如:动态随机存取存储器(dynamic random accessmemory, DRAM)、静态随机存取存储器(static random access memory,SRAM)等;还可以包括非易失性存储器(non-volatile memory,NVM),如:只读存储器(read-only memory,ROM)、闪存(flash memory)等。其中,不同的存储单元可以是独立的器件,也可以集成或者封装在一个或者多个处理器或者通信接口中,成为处理器或者通信接口的一部分。
本申请实施例中,网络设备的通信接口例如可以包括网络适配器(networkadapter)、网卡(network interface card)、局域网接收器(LAN adapter)、网络接口控制器(network interface controller,NIC)、调制解调器(modem)等。其中,通信接口可以是独立的器件,也可以部分或者全部地集成或者封装在处理器中,成为处理器的一部分。
可以理解的是,本申请实施例示意的结构并不构成对网络设备的具体限定。在本申请另一些实施例中,网络设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
图4是本申请实施例提供的一种包含转发设备的网络系统的架构示意图。该网络架构例如可以应用到数据中心(data center,DC),以部署高性能计算机群(highperformance computing,HPC)、分布式存储系统(distributed storage system,DSS)、分布式机器学习系统 (distributed machine learning),以及其他分布式的业务系统等。如图4所示,该网络系统具有两级系统架构,包括至少一个高层级的转发设备(如spine交换机)和多个低层级的转发设备(如leaf交换机),每个低层级的转发设备都会分别连接到所有高层级的转发设备。低层级的转发设备用于连接服务器、网络主机或其他网络设备。高层级的转发设备是网络系统的骨干设备,用于将所有低层级的转发设备连接起来。
在图4所示的结构中,任意一个服务器、网络主机或其他网络设备都可以通过转发设备向另一个服务器、网络主机或其他网络设备发送报文,其中,发送报文的一方可以称作源节点或者发送端设备(sender),接收报文的一方可以称作目的节点或者接收端设备(receiver)。如果一个发送端设备连续向一个接收端设备发送了多条报文,那么可以认为发送端设备向接收端设备发送了一个数据流(也可以称作业务流)。当有多个发送端设备向同一个接收端设备发送数据流时,这些数据流可能会汇聚到同一个转发设备进行转发,因此,转发设备在同一时段内会向同一个下游节点转发多条数据流。示例地,sender 1向receiver发送的数据流1可以途经leaf 1、spine 1和leaf 4的转发到达receiver;sender2向receiver发送的数据流2可以途经leaf 2、spine 2和leaf 4的转发到达receiver;sender 3向receiver发送的数据流3可以途经leaf 3、spine 2和leaf 4的转发到达receiver;当数据流1、数据流2和数据流3是在同一时段内发送时,这些数据流会在相同时段到达leaf 4,因此leaf 4会在同一时段向receiver转发数据流1、数据流2和数据流3。
图5是本申请实施例提供的转发设备向下游节点转发数据流的示意图。如图5所示,一般来说,转发设备可以为每个下游节点分配对应的下行端口(port),并为每个下行端口分配出口队列,出口队列可以在如图2或者图3中的任意存储器中实现。出口队列用于缓存待发送给下游节点的报文,并按照先进先出(first in first out,FIFO)的原则将报文出队列并转发给下游节点。示例地,如图5所示,如果leaf 4为receiver分配了下行端口port 1,并为下行端口port 1分配了出口队列queue 1,那么leaf 4接收到的属于数据流1、数据流2和数据流3 的报文会首先缓存到出口队列queue 1中,然后按照先进先出的原则依次出队列转发给 receiver,因此,出口队列queue 1会同时包含属于多个数据流的报文。
需要补充说明的是,转发设备的下行端口可以是物理端口也可以是虚拟端口,其中,物理端口例如可以与转发设备的光纤链路接口,以太网接口,微波链路接口,或者铜线接口等对应,每个接口就是一个端口,虚拟端口是逻辑上划分的网络端口,例如传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)端口,作为转发设备之间通信的端点,每个端口具有一个端口编号,并且与转发设备的IP地址和通信协议关联。
对于出口队列来说,单位时间内送入到出口队列的报文流量(例如字节数)可以称作出口队列的入速率Cin,而单位时间内出队列的报文流量可以称作出口队列的出速率Cout。受到转发设备的硬件性能、负载和端口限速配置等因素的影响,出口队列的出速率会具有上限,该上限可以称作出口队列的最大出速率。出口队列的入速率与转发设备在单位时间内接收到的需要通过该出口队列对应的下行端口转发的报文流量有关。示例地,对于leaf 4来说,如果单位时间内接收到的属于数据流1、数据流2和数据流3的报文流量越大,单位时间内需要送入到出口队列queue 1的报文流量就越大,那么出口队列queue 1的入速率也就越大;如果leaf 4在单位时间内接收到的属于数据流1、数据流2和数据流3的报文流量越小,单位时间内需要送入到出口队列queue 1的报文流量就越小,那么出口队列queue1的入速率也就越小。
图6是本申请实施例提供的出口队列状态的示意图。如图6所示,根据出口队列的入速率和出速率的不同,出口队列可能出现以下几种状态:
状态1:出速率大于入速率。在这种状态下,如果出口队列中有报文,那么报文的数据量会逐渐减少甚至出口队列排空,如果报文的数据量小于预设的阈值Q2,则可以认为出口队列处于空闲状态或者非拥塞状态。
状态2:出速率等于入速率。在这种状态下,如果出口队列中有报文,那么报文的数据量会保持恒定。此时,如果报文的数据量小于预设的阈值Q2,则可以认为出口队列处于空闲状态或者非拥塞状态;如果报文的数据量大于或者等于阈值Q1,则可以认为出口队列处于拥塞状态,但是拥塞状态不会进一步加重。其中,阈值Q1和阈值Q2可以是相同的值,也可以是不同的值,例如阈值Q1大于阈值Q2。
状态3:出速率小于入速率。在这种状态下,出口队列中的报文的数据量会逐渐增加,当报文的数据量大于或者等于阈值Q1时,则可以认为出口队列处于拥塞状态,并且随着出口队列中的报文的数据量的继续增加,拥塞状态会进一步加重。由于出口队列的容量是有限的,因此出口队列最终会被填满,在此以后到达转发设备的报文将无法被送入到出口队列中,只能做丢弃处理,导致网络丢包的现象发生,严重降低转发设备的转发性能。
目前,当出口队列发生拥塞甚至被填满时,一些转发设备使用出口队列以外的缓存队列,临时缓存接收到的报文,当出口队列的拥塞状态解除或者缓解之后,转发设备再从缓存队列取出临时缓存中的报文,送入到出口队列中,以发送给下游节点,以达到缓解拥塞,降低丢包的目的。其中,上述“缓存队列”可以是转发设备中用作出口队列以外的其他存储器的存储空间,也可以是图4示出的转发设备之外的远程存储设备中的存储空间,转发设备可以和远程存储设备通过通信链路建立连接。
本申请实施例中,远程存储设备可以是与转发设备建立有通信连接的服务器、计算机主机或网络附加存储(network attached storage,NAS)等设备。远程存储设备可以设置有一个或者多个用于缓存报文的存储器,该存储器可以包括易失性存储器(volatilememory)或非易失性存储器(non-volatile memory,NVM),为了提高远程存储设备的存储性能,降低存储和读取延时,该存储器可以是基于非易失性存储器规范(non-volatilememory express,NVMe) 的固态硬盘驱动器(solid-state drive,SSD),或者双倍数据率同步动态随机存取存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)等。
转发设备使用远程存储设备临时缓存报文的方案可以通过远程直接内存访问(remote direct memory access,RDMA)协议实现,RDMA是一种绕过远程存储设备操作系统内核访问其内存中数据的技术,支持零复制网络传输,实现转发设备和远程存储设备直接在应用程序内存间传输数据,不再需要在应用程序内存与操作系统缓冲区之间复制数据,因此能够实现较低的网络通信延迟,在大规模并行计算机集群中有广泛应用。
下面以RDMA协议为示例,对转发设备在出口队列发生拥塞期间使用远程存储设备临时缓存报文,以及在拥塞解除之后从远程存储设备获取报文到出口队列的方法进行说明。
图7是本申请实施例提供的转发设备使用存储设备临时缓存报文的示意图。如图7所示,转发设备可以在存储设备的存储器中注册缓存队列,该缓存队列例如可以是按照“先进先出”的原则建立的环形缓存队列。其中,存储设备可以包含多个缓存队列,每个缓存队列关联转发设备的一个出口队列,用于在这个出口队列发生报文拥塞时,缓存需要进入到这个出口队列的报文。需要注意的是,如图7所示,多个缓存队列可以位于一个存储设备中,也可以位于不同的存储设备中。示例地,当转发设备包括出口队列1、出口队列2和出口队列3时,转发设备可以在存储设备中注册缓存队列1、缓存队列2和缓存队列3。其中,缓存队列1关联出口队列1,用于在出口队列1发生拥塞时,缓存需要进入到出口队列1中的报文;缓存队列2关联出口队列2,用于在出口队列2发生拥塞时,缓存需要进入到出口队列2中的报文;缓存队列3关联出口队列3,用于在出口队列3发生拥塞时,缓存需要进入到出口队列3 中的报文。
下面结合图8和图9,以一组具有关联关系的出口队列和缓存队列为例,对转发设备使用存储设备临时缓存报文,以及从存储设备获取报文到出口队列的过程进行具体说明。
如图8所示,出口队列中缓存的报文以出速率Cout出队列转发给下游节点,转发设备以入速率Cin将接收到的报文调度到出口队列,容易理解的是,转发设备接收到的报文可能属于不同的数据流。当入速率Cin大于出速率Cout时,出口队列中的报文的数据量(也可称作队列长度)会逐渐增加,并在某一时刻T1达到阈值Q1,此时可以认为出口队列在T1时刻进入到拥塞状态。从T1时刻开始,无论转发设备接收到的报文属于哪一条数据流,转发设备都会对报文进行封装,然后发送给存储设备的缓存队列中进行临时缓存。进一步如图8所示,缓存队列可以被实施为环形缓存队列,该环形缓存队列通过写入指针(write pointer)和读取指针(read pointer)进行存储器访问(memory access)。
如图9所示,当入速率Cin小于出速率Cout时,出口队列中的报文的数据量会逐渐减小,并在某一时刻T2达到阈值Q1,此时可以认为出口队列在T2时刻拥塞解除。转发设备开始按照“先进先出”原则从存储设备的缓存队列中读取报文,并将缓存队列中的报文调度到出口队列中,使缓存队列中的报文的数据量逐渐减少直至排空;与此同时,为了防止报文乱序,只要缓存队列中尚有报文,转发设备仍会继续将接收到的报文发送到缓存队列中进行缓存。
在实际应用中,图8和图9示出的技术方案还存在以下技术问题:
第一、在转发设备从缓存队列中调度报文到出口队列的过程中,如果有一条新数据流(例如图9中的数据流3)到达转发设备,转发设备也会将这条新数据流中的报文发送到缓存队列中进行缓存,并且按照缓存队列的先进先出原则,新数据流的报文需要在缓存队列先前已缓存的报文全部调度到出口队列中之后,才能够被调度到出口队列进行转发,导致转发设备转发新数据流的报文所消耗的时长增加,降低设备的转发性能。其中,上述“新数据流”是指缓存队列之前从未缓存过的数据流,或者是缓存队列曾经缓存过但当前时刻未缓存的数据流。
第二、当缓存队列中包含多条数据流的报文时,根据先进先出原则,位于队列尾部的数据流(如图8中的数据流2)会在位于队列头部的数据流(如图8中的数据流1)之后被调度到出口队列中,当“位于队列头部的数据流”包含的报文数量较多时,其被调度到出口队列需要消耗的时间也较长,因此位于“队列尾部的数据流”在缓存队列中等待的时间也相应较长,导致转发设备转发“队列尾部的数据流”所消耗的时长增加,降低设备的转发性能,尤其是“队列尾部的数据流”仅包含少量报文时,设备的转发性能下降的更加明显。
本申请实施例提供了一种数据转发方法、数据缓存方法及其对应的装置、网络设备和存储设备,以解决上述技术方案存在的技术问题。
实施例一
本申请第一实施例提供了一种数据转发方法,应用于网络设备,该网络设备可以是上述图1-图9中任意的用于转发报文的转发设备,例如交换机、服务器、服务器或者网络主机等。在对本申请实施例的方法进行阐述之前,首先对本申请实施例以涉及到的名词概念进行解释,本申请实施例中会涉及到“上游节点”“下游节点”“报文”“出口队列”等名词概念,其中:
上游节点:是指网络设备在转发路径中的上一跳节点。以图4示出的网络结构为例,leaf 4的上游节点可以是spine 1或者spine 2,spine 2的上游节点可以是leaf 1、leaf 2或者leaf 3。
下游节点:是指网络设备在转发路径中的下一跳节点。以图4示出的网络结构为例,leaf 4的下游节点可以是receiver,spine 2的下游节点可以是leaf 4。
另外,本申请实施例提及的“报文”“出口队列”均具有对应关系,即:本申请实施例提及的“报文”均指的是需要调度到本申请实施例提及的“出口队列”中的报文。例如,当“出口队列”为图5中示出的出口队列1时,“报文”可以是需要调度到出口队列1中的属于数据流1、数据流2、数据流3以及其他数据流中的报文。
如图10所示,该方法包括以下步骤:
步骤S401,网络设备在出口队列解除拥塞后,接收上游节点发送的报文。
网络设备可以实时监测出口队列中的报文的数据量,如果报文的数据量大于或者等于阈值Q1,则说明出口队列处于拥塞状态,如果报文的数据量小于阈值Q2,则说明出口队列解除拥塞。
网络设备在出口队列发生拥塞期间,会将从上游节点接收到的报文发送到出口队列关联的存储设备中进行缓存。网络设备在出口队列解除拥塞后,如果接收到上游节点发送的报文,会首先执行步骤S402。
步骤S402,网络设备获取所述报文的流标识,所述流标识指示所述报文所属的数据流。
本申请实施例中,流标识用于识别报文具体属于哪一条数据流,不同的数据流对应不同的流标识。在具体实现中,流标识可以从报文头(header)中获得。报文头中通常包含报文的五元组信息,五元组是由报文的源IP地址,源端口,目的IP地址,目的端口和传输层协议这五个量组成的一个集合。其中,源IP地址和源端口是指报文的发送端设备的IP地址和端口,目的IP地址和目的端口是指报文的接收端设备的IP地址和端口。示例地,如果一个报文的五元组为“192.168.1.1 10000TCP 121.14.88.76 80”,表示这个报文是一个IP地址为192.168.1.1的网络设备使用端口10000,利用传输控制协议Transmission ControlProtocol, TCP),向另一个IP地址为121.14.88.76的网络设备的80端口发送的。根据五元组的上述含义,如果两条报文的发送端设备和接收端设备有任何一个是不同的,它们的五元组必然不同,因此,五元组可以用来区分不同的数据流。
可选的,网络设备可以使用散列函数(又称散列算法、哈希函数)计算五元组的散列值,将五元组的散列值作为流标识。此处可以使用的散列函数包括但不限于MD5消息摘要算法(MD5 message-digest algorithm,MD5)、安全散列算法1(secure hash algorithm 1,SHA-1)、循环冗余校验32(cyclic redundancy check 32,CRC32)等,本申请实施例中对具体使用哪一种散列函数生成流标识不做具体限定。
示例地,对于上述五元组“192.168.1.1 10000TCP 121.14.88.76 80”,如果使用CRC32算法计算散列值,会得到结果1353400c,那么这条报文的流标识就是1353400c。可见,相比于五元组本身,以散列值表示的流标识的字段长度明显缩短,因此,如果网络设备只记录五元组的散列值,能够降低存储空间的占用,提高设备性能。
需要补充说明的是,在一些其他的实现方式中,网络设备还可以从报文头中获取报文的四元组或者七元组信息,并计算四元组或者七元组的散列值作为流标识。其中,四元组包括报文的:源IP地址、目的IP地址、源端口、目的端口;七元组包括报文的:源IP地址、目的IP地址、源端口、目的端口、传输层协议,服务类型以及接口索引。
步骤S403,网络设备根据所述流标识,确定所述出口队列关联的存储设备中是否缓存有属于所述数据流的在先报文。
具体实现中,网络设备在该网络设备的出口队列发生拥塞期间,可以统计其发送给存储设备进行缓存的各个数据流的报文数量。
示例地,网络设备可以将存储设备缓存的各个数据流的报文数量记录在一个流表中,如表1所示,该流表包括至少一个表项,每个表项包括一个流标识及其对应的报文数量。
表1
下面结合图11,对网络设备在该网络设备的出口队列发生拥塞期间维护流表的过程进行示例性说明。
如图11所示,当报文1到达网络设备时,如果网络设备对报文1的五元组进行hash计算之后得到报文1的流标识为key1,网络设备会判断key1在流表中是否存在,如果流表中已经包含了key1的表项,网络设备会将key1对应的报文数量m加1,使key1对应的报文数量更新为m+1;如果流表中不包含key1的表项,网络设备会创建key1的表项,并将key1对应的报文数量从初始值0加1,使key1对应的报文数量更新为1。与此同时,网络设备将报文 1发送到存储设备中进行缓存。
如图11所示,当报文2在报文1后到达网络设备时,如果网络设备对报文2的五元组进行hash计算之后得到报文2的流标识为key1,那么,网络设备会将流表中的key1对应的报文数量m+1加1,使key1对应的报文数量更新为m+2。与此同时,网络设备将报文2发送到存储设备中进行缓存。
如图11所示,当报文3在报文2后到达网络设备时,如果网络设备对2的五元组进行hash计算之后得到报文3的流标识为key2,网络设备会判断key2在流表中是否存在,如果流表中已经包含了key2的表项,网络设备会将key2对应的报文数量n加1,使key2对应的报文数量更新为n+1,如果流表中不包含key2的表项,网络设备会创建key2的表项,并将 key2对应的报文数量从初始值0加1,使key2对应的报文数量更新为1。与此同时,网络设备将报文3发送到存储设备中进行缓存。
下面结合图12,对网络设备在出口队列拥塞解除之后维护流表的过程进行示例性说明。
如图12所示,存储设备可以使用按照“先进先出”的原则建立的环形缓存队列存储报文。网络设备根据“先进先出”原则,从缓存队列中依次取出报文,并调度到出口队列中,每取出一个报文,网络设备都会更新流表中的数值。
示例地,网络设备首先从缓存队列中取出报文1,调度到出口队列中,由于报文1的流标识为key1,因此,网络设备将流表中key1对应的报文数量m+2减1,使key1对应的报文数量更新为m+1。网络设备随后从缓存队列中取出报文2,调度到出口队列中,由于报文1 的流标识为key1,因此,网络设备将流表中key1对应的报文数量m+1减1,使key1对应的报文数量更新为m。网络设备随后从缓存队列中取出报文3,调度到出口队列中,由于报文3 的流标识为key2,因此,网络设备将流表中key2对应的报文数量n+1减1,使key2对应的报文数量更新为n。
图13是网络设备在出口队列解除拥塞之后对接收到的报文进行调度的示意图。如图13 和图14所示,在网络设备从缓存队列取出报文的过程中,如果网络设备从上游节点接收到了报文4,那么网络设备可以获取报文4的流标识,然后根据报文4的流标识查询流表,获取报文4的流标识在流表对应的报文数量,以确定缓存队列中是否缓存有与报文4属于同一数据流的在先报文。
具体实现中,如果报文4的流标识未记录在流表中,则说明缓存队列未缓存与报文4属于同一数据流的在先报文;如果报文4的流标识记录在流表中,但是流标识对应的报文数量等于0,也能够说明缓存队列未缓存与报文4属于同一数据流的在先报文;如果报文4的流标识在流表中对应的报文数量大于0,则说明缓存队列缓存有与报文4属于同一数据流的在先报文。
示例地,当报文4的流标识为key1时,由于流表中包含key1,并且key1对应的报文数量m(m大于0),因此网络设备可以确定缓存队列缓存了在先报文。当报文4的流标识为key3 时,虽然流表中包含key3,但是由于key3对应的报文数量为0,因此网络设备可以确定缓存队列未缓存在先报文。当报文4的流标识为key4时,由于流表中不包含key4,因此网络设备可以确定缓存队列未缓存在先报文。
步骤S4041,当存储设备未缓存所述数据流的在先报文时,网络设备将所述报文调度到所述出口队列,以将所述报文转发给下游节点。
示例地,如图13所示,当报文4的流标识为key3时,由于缓存队列未缓存流标识为key3 的报文,因此,网络设备将报文4调度到出口队列,由出口队列按照“先进先出”的原则出队列并发送给下游节点,而不是先缓存到缓存队列中。
步骤S4042,当存储设备缓存有所述数据流的在先报文时,网络设备将所述报文发送给所述存储设备进行缓存。
示例地,如图13所示,当报文4的流标识为key1时,由于缓存队列缓存有流标识为key1 的报文,因此,网络设备将报文4发送给存储设备,以将报文4缓存到存储设备的缓存队列中。
下面结合图14,对本申请第一实施例产生的技术效果进行具体地示例性说明。
如图14所示,假设在出口队列解除拥塞的时刻,出口队列中包含待出队列的数据流1和数据流2中的部分报文,缓存队列中包含数据流1和数据流2的另一部分报文,网络设备又接收到了来自上游节点的属于数据流3的报文。那么,在不使用本申请实施例一的技术方案的情况下,网络设备会按照图14中的顺序1将报文加入到出口队列,即数据流3的报文需要等到图14示出的数据流1和数据流2的全部报文被转发之后,才能够被转发,数据流3的报文需要排队等待的时长可以如图14中的Δt1所示。如果使用本申请第一实施例的技术方案,网络设备会按照图14中的顺序2将报文加入到出口队列,即数据流3只需等到出口队列中已包含的数据流1和数据流2中的部分报文被转发之后,就能够被转发,数据流3的报文需要排队等待的时长可以如图14中的Δt2所示。显然,Δt2小于Δt1,可见本申请实施例的方案,在网络设备的出口队列解除拥塞的情况下,能够降低新数据流的报文从到达网络设备到被转发给下游节点所消耗的时长。
实施例二
本申请实施例提供了一种数据缓存方法,应用于存储设备,该存储设备可以是上述图1- 图9中任意的用于在转发设备的出口队列拥塞期间临时缓存报文的存储设备,例如与转发设备建立有通信连接的服务器、计算机主机或者NAS等。
如图15所示,该方法包括以下步骤:
步骤S501,存储设备接收报文,所述报文是网络设备在所述网络设备的出口队列发生拥塞期间发送的,所述存储设备包括第一缓存区和第二缓存区。
其中,第一缓存区具体可以包括一个缓存队列,第二缓存区具体可以包括另一个缓存队列,为了便于描述,本申请实施例中将第一缓存区的缓存队列称作第一缓存队列,将第二缓存区的缓存队列称作第二缓存队列。第一缓存队列和第二缓存队列可以是按照“先进先出”的原则建立的环形缓存队列。
第一缓存队列和第二缓存队列与网络设备的出口队列具有关联关系,用于在出口队列发生拥塞时,缓存出口队列无法容纳的报文,这些报文由网络设备在该网络设备的出口队列发生拥塞期间发送给存储设备,由存储设备分配缓存至第一缓存队列或者第二缓存队列。
步骤S502,存储设备获取所述报文的流标识,所述流标识指示所述报文所属的数据流。
步骤S503,存储设备获取当前已接收的属于所述数据流的全部报文的数据量。
具体实现中,存储设备可以记录从网络设备接收的属于各个数据流的报文的数据量。
示例地,存储设备可以将从网络设备接收的属于各个数据流的报文的数据量记录在一个流表中,如表2所示,该流表包括至少一个表项,每个表项包括一个流标识及其对应的报文的数据量,例如,数据流key1对应的数据量为size1,数据流key2对应的数据量为size2…。
流标识(flowkey) | 数据量(flowsize) |
key1 | size1 |
key2 | size2 |
key3 | size3 |
… | … |
表2
其中,报文的数据量可以使用字节单位进行统计,包括但不限于字节(byte)、千字节(KB)、兆字节(MB)等。
下面首先结合图16,对存储设备记录报文的数据量的过程进行示例性说明。
如图16所示,当一条报文1到达存储设备时,如果存储设备对报文1的五元组进行hash 计算之后得到报文1的流标识为key1,存储设备会判断key1在流表中是否存在,如果流表中已经包含了key1的表项,存储设备会根据报文1的数据大小B1,对流表中key1对应的数据量进行累加更新,即:将原有的数据量,假设为B01,加上报文1的数据大小B1,得到新的数据量B01+B1;如果流表中不包含key1的表项,存储设备会创建key1的表项,并将key1 表项的数据量更新为B1。
如图16所示,当一条报文2在报文1后到达存储设备时,如果存储设备对报文2的五元组进行hash计算之后得到报文2的流标识为key1,那么,存储设备会根据报文2的数据大小 B2对流表中的key1对应的数据量进行再次累加更新,即:将数据量B01+B1加上报文2的数据大小B2,得到新的数据量B01+B1+B2。
如图16所示,当一条报文3在报文2后到达存储设备时,如果存储设备对报文3的五元组进行hash计算之后得到报文3的流标识为key2,存储设备会判断key2在流表中是否存在,如果流表中已经包含了key2的表项,存储设备会根据报文3的数据大小B3,对流表中key2 对应的数据量进行累加更新,即:将原有的数据量B02加上报文3的数据大小B3,得到新的数据量B02+B3;如果流表中不包含key2的表项,存储设备会创建key2的表项,并将key2表项的数据量更新为B3。
需要补充说明的是,在本申请实施例中,存储设备每接收到一个报文,都要更新流表,并且更新流表的过程发生在报文被缓存进第一缓存队列或者第二缓存队列之前。
基于存储设备统计的流表,下面结合图17,对步骤S503中的存储设备根据接收到的报文的流标识,获取当前已接收的属于该流标识指示的数据流的全部报文的数据量的过程进行示例性说明。
如图17所示,当存储设备在接收到一个报文4时,可以根据报文4的流标识查询流表,以获取存储设备已接收的与报文4属于同一数据流的全部报文的数据量。
示例地,如果报文4的流标识是key1,那么查询流表能够得到对应的数据量是size1;如果报文4的流标识是key2,那么查询流表能够得到对应的数据量是size2;如果报文4的流标识是key4,由于流表中未记录key4的表项,查询流表能够得到的数据量是0。
步骤S5041,所述数据量小于或者等于预设阈值时,所述存储设备将所述报文缓存至所述第一缓存区。
本申请实施例中,第一缓存区被配置为缓存数据量小于或者等于预设阈值W的数据流 (以下简称小流),第二缓存区被配置为缓存数据量大于预设阈值W的数据流(以下简称大流)。由于一条数据流会包含多个报文,这些报文会在不同的时刻到达缓存设备,因此流表中记录的各个数据流的数据量会随着时间累积增加,使得各个数据流的数据量在记录初期都会小于或者等于预设阈值W。
当一条数据流记录的数据量小于或者等于阈值W时,缓存设备默认这条数据流是小流,因此将属于该数据流的报文缓存到第一缓存区内。
示例地,如图18所示,如果报文4的流标识是key1,并且存储设备查询流表确定key1 对应的数据量size1小于或者等于预设阈值W时,存储设备会将报文4缓存到第一缓存队列。
其中,预设阈值W可以具有字节单位,包括但不限于字节(byte,B)、千字节(KB)、兆字节(MB)等。例如,预设阈值W为100B、100KB、100MB等。本申请实施例对预设阈值W的取值不做具体限制,本领域技术人员在实施本申请实施例时,可以根据对大流和小流的定义响应地确定预设阈值W的取值。
步骤S5042,当所述数据量大于所述预设阈值时,存储设备将所述报文缓存至所述第二缓存区。
随着时间的推移,流表中记录的各个数据流的数据量会不断增大,一些数据流的数据量开始大于预设阈值W,显现出了大流的性质,那么,从一条数据流的数据量大于阈值W的那一刻开始,之后到达的所有属于这条数据流的报文都放入第二缓存队列中进行缓存。
示例地,如图18所示,存储设备在接收到报文5,如果报文5的流标识是key2,并且存储设备查询流表确定key2对应的数据量size2大于预设阈值W时,存储设备会将报文4缓存到第二缓存队列。
本申请实施例中,当网络设备的出口队列的拥塞解除后,存储设备优先将第一缓存区中的报文发送给网络设备。具体实现中,当网络设备需要从存储设备获取报文到出口队列时,存储设备按照“先进先出”原则,首先将第一缓存队列中的报文发送给网络设备,待第一缓存队列完全排空之后,再将第二缓存队列中的报文发送给网络设备。
需要补充说明的是,本申请实施中的流表累计记录各个数据流的数据量,是为了在网络设备的出口队列发生拥塞期间,判断存储设备从网络设备接收到的报文属于大流还是小流,将大流和小流存入不同的缓存队列,并在网络设备的出口队列的拥塞解除后,优先发送小流的报文给网络设备,可见流表记录的数据量仅对应网络设备的一次拥塞。因此,本申请实施例可以对流表记录的数据量增加老化机制,以避免流表记录过期的数据和数据膨胀。具体实现中,老化机制例如:在存储设备缓存的报文全部发送到网络设备之后(即:第一缓存队列和第二缓存队列均完全排空之后),存储设备清除流表中的表项,使流表得到重置;或者,在存储设备缓存的报文全部发送到网络设备之后,存储设备判断是否在一段预设的时长内没有新的报文到达存储设备,如果没有新的报文到达存储设备,存储设备清除流表中的表项,使流表得到重置。
下面结合图19,对本申请第二实施例产生的技术效果进行具体地示例性说明。
如图19所示,假设网络设备在其出口队列发送拥塞期间,先后向存储设备发送的报文分别属于3条数据流,例如:数据流1、数据流2和数据流3,其中,数据流3位于数据流1和数据流2之后发送,并且,按照本申请实施例的定义,数据流1和数据流2为大流、数据流 3属于小流。那么,在不使用本申请实施例二的技术方案的情况下,存储设备会将数据流1、数据流2和数据流3缓存在一个环形缓存队列中,并在出口队列的拥塞解除后,将缓存的报文按照“先进先出”的原则发送给网络设备,使得数据流1、数据流2和数据流3的报文按照图19的顺序3加入到出口队列,数据流3的报文需要排队等待的时长可以如图19中的Δt3 所示。如果使用本申请第一实施例的技术方案,存储设备会将先接收到的一部分数据流1、先接收到的一部分数据流2,以及数据流3缓存在第一缓存区、将其余接收到的另一部分数据流1和另一部分数据流2缓存在第二缓存区,并在出口队列的拥塞解除之后,按照“先进先出”的原则,首先将第一缓存队列中的报文发送给网络设备,待第一缓存队列完全排空之后,再将第二缓存队列中的报文发送给网络设备,使得数据流1、数据流2和数据流3的报文按照图19的顺序4加入到出口队列,数据流3的报文需要排队等待的时长可以如图19中的Δt4所示。显然,Δt4小于Δt3,可见本申请实施例的方案,在网络设备的出口队列解除拥塞的情况下,能够降低小流的报文在出口队列中等待的时长,提高网络设备对小流的转发效率,改善设备性能。
上述本申请提供的实施例中,分别从设备本身、以及从设备之间交互的角度对本申请提供的数据转发方法、数据缓存方法的各方案进行了介绍。可以理解的是,各个设备,例如上述网络设备和存储设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
例如,上述设备通过软件模块来实现相应的功能。
在一个实施例中,如图20所示,用于实现上述网络设备行为的功能的数据转发装置包括:接收单元601,用于在出口队列拥塞解除后,接收上游节点发送的报文;处理单元602,用于获取报文的流标识,流标识指示报文所属的数据流;处理单元602,还用于根据流标识,确定出口队列关联的存储设备中是否缓存有属于数据流的在先报文;发送单元603,用于当存储设备未缓存数据流的在先报文时,将报文调度到出口队列,以将报文转发给目的节点;其中,存储设备用于缓存网络设备在该网络设备的出口队列发生拥塞期间接收到的报文。
根据上述装置,网络设备在出口队列解除拥塞后,如果接收到上游设备发送到的报文,会判断存储设备中是否缓存了与这个报文属于同一数据流的在先报文,如果存储设备未缓存在先报文,则网络设备可以确定该报文属于新的数据流,那么为了不影响这条新的数据流的转发性能,网络设备将这个报文直接调度到出口队列,实现插队,因此本申请实施例的方案,在网络设备的出口队列解除拥塞的情况下,能够降低新的数据流的报文从到达网络设备到被转发给下游节点所消耗的时长,提高网络设备的转发性能。
可选的,发送单元603还用于当存储设备缓存有数据流的在先报文时,将报文发送给存储设备进行缓存。由此,如果存储设备缓存在先报文,则网络设备可以确定这个报文属于存储设备中已缓存的数据流,因此,为了防止数据流中的报文乱序,网络设备将这个报文发送到存储设备进行缓存。
可选的,发送单元603还用于在出口队列发生拥塞期间,将接收到的报文发送给存储设备进行缓存。由此,防止出现出口队列拥塞或者被占满而导致丢包的现象。
可选的,处理单元602还用于记录存储设备缓存的各个数据流的报文数量。由此,网络设备在出口队列解除拥塞之后根据记录的报文数量确定新收到的报文是否继续发送到存储设备进行缓存。
可选的,处理单元602具体用于将存储设备缓存的各个数据流的报文数量记录在流表中,流表包括至少一个表项,每个表项包括一个流标识及其对应的报文数量。由此,网络设备可以通过查询流表的方式获得存储设备缓存的各个数据流的报文数量。
可选的,处理单元602具体用于根据流标识查询流表,以获取数据流在流表中对应的报文数量;以及,当报文数量等于0时,确定存储设备当前未缓存数据流的在先报文;以及,当报文数量大于0时,确定存储设备当前缓存有数据流的在先报文。
在一个实施例中,如图21所示,用于实现上述网络设备行为的功能的数据转发装置包括:
存储单元701,包括第一缓存区7011和第二缓存区7012;接收单元702,用于接收报文,报文是网络设备在该网络设备的出口队列发生拥塞期间发送的;处理单元703,用于获取报文的流标识,流标识指示报文所属的数据流;处理单元703,还用于获取装置当前已接收的属于数据流的全部报文的数据量;处理单元703,还用于当数据量小于或者等于预设阈值时,将报文缓存至第一缓存区7011;发送单元704,用于当拥塞解除后,优先将第一缓存区7011 中的报文发送给网络设备。
根据上述装置,存储设备在网络设备的出口队列发送拥塞期间,判断从网络设备接收到的报文是属于大流还是小流,如果报文属于小流,则将报文缓存在第一缓存区,如果报文属于大流,则将报文缓存在第二缓存区,在网络设备的出口队列解除拥塞后,存储设备首先从第一缓存区发送报文到出口队列。因此,本申请实施例的方案,在网络设备的出口队列解除拥塞的情况下,能够降低小流的报文在出口队列中等待的时长,提高网络设备对小流的转发效率,改善设备性能。
可选的,处理单元703还用于当数据量大于预设阈值时,将报文缓存至第二缓存区7012。由此,当数据量大于阈值时,存储设备认为报文所属的数据流属于大流,将报文缓存至第二缓存区。
可选的,处理单元703还用于记录从网络设备接收的属于各个数据流的报文的数据量。由此,存储设备可以根据记录的数据量确定接收到的报文属于大流还是小流。
可选的,处理单元703还用于将从网络设备接收的属于各个数据流的报文的数据量记录在流表中,流表包括至少一个表项,每个表项包括一个流标识及其对应的报文的数据量。由此,存储设备可以通过查询流表的方式获得存储设备缓存的各个数据流的报文的数数量。
可选的,处理单元703还用于在缓存报文之前,更新流表。由此,存储设备每接收到一个报文都会根据接收到的报文的大小更新流表,实现流表的实时更新。
另外,例如,上述设备通过硬件模块来实现相应的功能。
在一个实施例中,网络设备的上述功能可以通过图2所示的结构实现。例如,接口单元 230用于接收上游节点发送的报文,以及将报文转发给下游节点或者存储设备;存储器120 和/或220用于存储计算机程序代码,该计算机程序代码包括计算机指令;当处理器110和/ 或220执行计算机指令时,使网络设备执行上述各实施例中涉及的方法,例如:获取报文的流标识,根据流标识,确定出口队列关联的存储设备中是否缓存有属于数据流的在先报文,以及,当存储设备未缓存数据流的在先报文时,将报文调度到出口队列等。
在另一个实施例中,网络设备的上述功能可以通过图3所示的硬件结构实现。例如,通信接口320用于接收上游节点发送的报文,以及将报文转发给下游节点或者存储设备;存储器310用于存储计算机程序代码,该计算机程序代码包括计算机指令;当处理器310执行计算机指令时,使网络设备执行上述各实施例中涉及的方法,例如:获取报文的流标识,根据流标识,确定出口队列关联的存储设备中是否缓存有属于数据流的在先报文,以及,当存储设备未缓存数据流的在先报文时,将报文调度到出口队列等。
在另一个实施例中,存储设备的上述功能可以通过图3所示的硬件结构实现。例如,通信接口320用于从网络设备接收报文,以及将报文发送给网络设备;存储器310可以分配第一缓存区和第二缓存区,以及用于存储计算机程序代码,该计算机程序代码包括计算机指令;当处理器310执行计算机指令时,使存储设备执行上述各实施例中涉及的方法,例如:获取报文的流标识;以及,获取当前已接收的属于数据流的全部报文的数据量;以及,当数据量小于或者等于预设阈值时,将报文缓存至第一缓存区;以及,当数据量大于预设阈值时,将报文缓存至第二缓存区;以及,当拥塞解除后,优先将第一缓存区中的报文发送给网络设备。
本申请实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请还提供了一种芯片系统。该芯片系统包括处理器,用于支持上述装置或设备实现上述方面中所涉及的功能,例如,生成或处理上述方法中所涉及的信息。在一种可能的设计中,芯片系统还包括存储器,用于保存上述装置或设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (26)
1.一种数据转发方法,其特征在于,包括:
网络设备在出口队列解除拥塞后,接收上游节点发送的报文;
所述网络设备获取所述报文的流标识,所述流标识指示所述报文所属的数据流;
所述网络设备根据所述流标识,确定所述出口队列关联的存储设备中是否缓存有属于所述数据流的在先报文;
当所述存储设备未缓存所述数据流的在先报文时,所述网络设备将所述报文调度到所述出口队列,以将所述报文转发给下游节点;
其中,所述存储设备用于缓存网络设备在所述出口队列发生拥塞期间接收到的报文。
2.根据权利要求1所述的方法,其特征在于,还包括:
当所述存储设备缓存有所述数据流的在先报文时,所述网络设备将所述报文发送给所述存储设备进行缓存。
3.根据权利要求1所述的方法,其特征在于,还包括:
所述网络设备在所述出口队列发生拥塞期间,将接收到的报文发送给所述存储设备进行缓存。
4.根据权利要求1-3任一项所述的方法,其特征在于,还包括:
所述网络设备记录所述存储设备缓存的各个数据流的报文数量。
5.根据权利要求4所述的方法,其特征在于,
所述网络设备将所述存储设备缓存的各个数据流的报文数量记录在流表中,所述流表包括至少一个表项,每个表项包括一个流标识及其对应的报文数量。
6.根据权利要求5所述的方法,其特征在于,所述网络设备根据所述流标识,确定所述出口队列关联的存储设备中是否缓存有属于所述数据流的在先报文,包括:
所述网络设备根据所述流标识查询所述流表,以获取所述数据流在所述流表中对应的报文数量;
当所述报文数量等于0时,所述网络设备确定所述存储设备当前未缓存所述数据流的在先报文;
当所述报文数量大于0时,所述网络设备确定所述存储设备当前缓存有所述数据流的在先报文。
7.一种数据缓存方法,其特征在于,包括:
存储设备接收报文,所述报文是网络设备在所述网络设备的出口队列发生拥塞期间发送的,所述存储设备包括第一缓存区和第二缓存区;
所述存储设备获取所述报文的流标识,所述流标识指示所述报文所属的数据流;
所述存储设备获取当前已接收的属于所述数据流的全部报文的数据量;
当所述数据量小于或者等于预设阈值时,所述存储设备将所述报文缓存至所述第一缓存区;
当所述拥塞解除后,所述存储设备优先将所述第一缓存区中的报文发送给所述网络设备。
8.根据权利要求7所述的方法,其特征在于,还包括:
当所述数据量大于所述预设阈值时,所述存储设备将所述报文缓存至所述第二缓存区。
9.根据权利要求7所述的方法,其特征在于,还包括:
所述存储设备记录从所述网络设备接收的属于各个数据流的报文的数据量。
10.根据权利要求9所述的方法,其特征在于,
所述存储设备将从所述网络设备接收的属于各个数据流的报文的数据量记录在流表中,所述流表包括至少一个表项,每个表项包括一个流标识及其对应的报文的数据量。
11.根据权利要求10所述的方法,其特征在于,
所述存储设备在缓存所述报文之前,更新所述流表。
12.一种数据转发装置,其特征在于,包括:
接收单元,用于在出口队列拥塞解除后,接收上游节点发送的报文;
处理单元,用于获取所述报文的流标识,所述流标识指示所述报文所属的数据流;
所述处理单元,还用于根据所述流标识,确定所述出口队列关联的存储设备中是否缓存有属于所述数据流的在先报文;
发送单元,用于当所述存储设备未缓存所述数据流的在先报文时,将所述报文调度到出口队列,以将所述报文转发给下游节点;
其中,所述存储设备用于缓存所述装置在所述出口队列发生拥塞期间接收到的报文。
13.根据权利要求12所述的装置,其特征在于,
所述发送单元,还用于当所述存储设备缓存有所述数据流的在先报文时,将所述报文发送给所述存储设备进行缓存。
14.根据权利要求12所述的装置,其特征在于,
所述发送单元,还用于在所述出口队列发生拥塞期间,将接收到的报文发送给所述存储设备进行缓存。
15.根据权利要求12-14任一项所述的装置,其特征在于,
所述处理单元,还用于记录所述存储设备缓存的各个数据流的报文数量。
16.根据权利要求15所述的装置,其特征在于,
所述处理单元,具体用于将所述存储设备缓存的各个数据流的报文数量记录在流表中,所述流表包括至少一个表项,每个表项包括一个流标识及其对应的报文数量。
17.根据权利要求16所述的装置,其特征在于,
所述处理单元,具体用于根据所述流标识查询所述流表,以获取所述数据流在所述流表中对应的报文数量;
所述处理单元,还用于当所述报文数量等于0时,确定所述存储设备当前未缓存所述数据流的在先报文;
所述处理单元,还用于当所述报文数量大于0时,确定所述存储设备当前缓存有所述数据流的在先报文。
18.一种数据缓存装置,其特征在于,包括:
存储单元,包括第一缓存区和第二缓存区;
接收单元,用于接收报文,所述报文是网络设备在所述网络设备的出口队列发生拥塞期间发送的;
处理单元,用于获取所述报文的流标识,所述流标识指示所述报文所属的数据流;
所述处理单元,还用于获取所述装置当前已接收的属于所述数据流的全部报文的数据量;
所述处理单元,还用于当所述数据量小于或者等于预设阈值时,将所述报文缓存至所述第一缓存区;
发送单元,用于当所述拥塞解除后,优先将所述第一缓存区中的报文发送给所述网络设备。
19.根据权利要求18所述的装置,其特征在于,
所述处理单元,还用于当所述数据量大于所述预设阈值时,将所述报文缓存至所述第二缓存区。
20.根据权利要求18所述的装置,其特征在于,
所述处理单元,还用于记录所述装置从所述网络设备接收的属于各个数据流的报文的数据量。
21.根据权利要求20所述的装置,其特征在于,
所述处理单元,还用于将从所述网络设备接收的属于各个数据流的报文的数据量记录在流表中,所述流表包括至少一个表项,每个表项包括一个流标识及其对应的报文的数据量。
22.根据权利要求21所述的装置,其特征在于,
所述处理单元,还用于在缓存所述报文之前,更新所述流表。
23.一种网络设备,其特征在于,包括存储器和处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,使所述网络设备执行如权利要求1-6中任一项所述的方法。
24.一种存储设备,其特征在于,包括存储器和处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,使所述存储设备执行如权利要求7-11中任一项所述的方法。
25.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在网络设备上运行时,使得所述网络设备执行如权利要求1-6中任一项所述的方法。
26.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在存储设备上运行时,使得所述存储设备执行如权利要求7-11中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911249818.6A CN113037640A (zh) | 2019-12-09 | 2019-12-09 | 数据转发方法、数据缓存方法、装置和相关设备 |
PCT/CN2020/115582 WO2021114793A1 (zh) | 2019-12-09 | 2020-09-16 | 数据转发方法、数据缓存方法、装置和相关设备 |
EP20900364.9A EP4057579A4 (en) | 2019-12-09 | 2020-09-16 | DATA TRANSFER METHOD, DATA BUFFERING METHOD, DEVICE AND ASSOCIATED APPARATUS |
US17/835,266 US20220303217A1 (en) | 2019-12-09 | 2022-06-08 | Data Forwarding Method, Data Buffering Method, Apparatus, and Related Device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911249818.6A CN113037640A (zh) | 2019-12-09 | 2019-12-09 | 数据转发方法、数据缓存方法、装置和相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113037640A true CN113037640A (zh) | 2021-06-25 |
Family
ID=76329468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911249818.6A Pending CN113037640A (zh) | 2019-12-09 | 2019-12-09 | 数据转发方法、数据缓存方法、装置和相关设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220303217A1 (zh) |
EP (1) | EP4057579A4 (zh) |
CN (1) | CN113037640A (zh) |
WO (1) | WO2021114793A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326228A (zh) * | 2021-07-30 | 2021-08-31 | 阿里云计算有限公司 | 基于远程直接数据存储的报文转发方法、装置及设备 |
CN113765882A (zh) * | 2021-07-27 | 2021-12-07 | 子长科技(北京)有限公司 | 逻辑隔离的跨域信息传输系统 |
CN114189477A (zh) * | 2021-10-22 | 2022-03-15 | 新华三大数据技术有限公司 | 一种报文拥塞控制方法及装置 |
CN114666276A (zh) * | 2022-04-01 | 2022-06-24 | 阿里巴巴(中国)有限公司 | 一种发送报文的方法和装置 |
WO2023283902A1 (zh) * | 2021-07-15 | 2023-01-19 | 新华三技术有限公司 | 一种报文传输方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7436712B2 (ja) * | 2021-06-25 | 2024-02-22 | 新華三技術有限公司 | パケットマッチング方法、装置、ネットワークデバイスおよび媒体 |
WO2023122995A1 (zh) * | 2021-12-28 | 2023-07-06 | 华为技术有限公司 | 一种报文传输方法和装置 |
CN115150340B (zh) * | 2022-06-29 | 2023-10-27 | 武汉烽火技术服务有限公司 | 一种动态调整消息队列权重的方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1297097C (zh) * | 2003-04-09 | 2007-01-24 | 华为技术有限公司 | 提高网络拥塞时数据传输性能的方法 |
US8942100B2 (en) * | 2012-09-18 | 2015-01-27 | Cisco Technology, Inc. | Real time and high resolution buffer occupancy monitoring and recording |
US10003544B2 (en) * | 2014-12-11 | 2018-06-19 | Futurewei Technologies, Inc. | Method and apparatus for priority flow and congestion control in ethernet network |
CN108667739B (zh) * | 2017-03-27 | 2020-12-08 | 华为技术有限公司 | 拥塞控制方法、装置及系统 |
CN109412964B (zh) * | 2017-08-18 | 2022-04-29 | 华为技术有限公司 | 报文控制方法及网络装置 |
CN110493145B (zh) * | 2019-08-01 | 2022-06-24 | 新华三大数据技术有限公司 | 一种缓存方法及装置 |
-
2019
- 2019-12-09 CN CN201911249818.6A patent/CN113037640A/zh active Pending
-
2020
- 2020-09-16 EP EP20900364.9A patent/EP4057579A4/en active Pending
- 2020-09-16 WO PCT/CN2020/115582 patent/WO2021114793A1/zh unknown
-
2022
- 2022-06-08 US US17/835,266 patent/US20220303217A1/en active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023283902A1 (zh) * | 2021-07-15 | 2023-01-19 | 新华三技术有限公司 | 一种报文传输方法及装置 |
CN113765882A (zh) * | 2021-07-27 | 2021-12-07 | 子长科技(北京)有限公司 | 逻辑隔离的跨域信息传输系统 |
CN113765882B (zh) * | 2021-07-27 | 2023-08-25 | 子长科技(北京)有限公司 | 逻辑隔离的跨域信息传输系统 |
CN113326228A (zh) * | 2021-07-30 | 2021-08-31 | 阿里云计算有限公司 | 基于远程直接数据存储的报文转发方法、装置及设备 |
CN114189477A (zh) * | 2021-10-22 | 2022-03-15 | 新华三大数据技术有限公司 | 一种报文拥塞控制方法及装置 |
CN114189477B (zh) * | 2021-10-22 | 2023-12-26 | 新华三大数据技术有限公司 | 一种报文拥塞控制方法及装置 |
CN114666276A (zh) * | 2022-04-01 | 2022-06-24 | 阿里巴巴(中国)有限公司 | 一种发送报文的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP4057579A1 (en) | 2022-09-14 |
US20220303217A1 (en) | 2022-09-22 |
WO2021114793A1 (zh) | 2021-06-17 |
EP4057579A4 (en) | 2023-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113037640A (zh) | 数据转发方法、数据缓存方法、装置和相关设备 | |
US11916781B2 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC) | |
KR102317523B1 (ko) | 패킷 제어 방법 및 네트워크 기기 | |
US6628615B1 (en) | Two level virtual channels | |
US7400638B2 (en) | Apparatus and methods for managing packets in a broadband data stream | |
US7957392B2 (en) | Method and apparatus for high-performance bonding resequencing | |
JP5863076B2 (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
JP3734704B2 (ja) | パケット分類エンジン | |
US8184540B1 (en) | Packet lifetime-based memory allocation | |
US7620693B1 (en) | System and method for tracking infiniband RDMA read responses | |
US20020176430A1 (en) | Buffer management for communication systems | |
US7307998B1 (en) | Computer system and network interface supporting dynamically optimized receive buffer queues | |
US8929372B2 (en) | Grid router | |
WO2022109986A1 (zh) | 报文转发方法、装置以及电子设备 | |
US6918005B1 (en) | Method and apparatus for caching free memory cell pointers | |
US10419370B2 (en) | Hierarchical packet buffer system | |
CN116114233A (zh) | 自动流管理 | |
US6850999B1 (en) | Coherency coverage of data across multiple packets varying in sizes | |
US6526452B1 (en) | Methods and apparatus for providing interfaces for mixed topology data switching system | |
US6484207B1 (en) | Switching system having interconnects dedicated to store and retrieve data including management of dedicated memory segments allocated when a general memory is depleted | |
CN113454957B (zh) | 一种存储器的管理方法及装置 | |
US9584446B2 (en) | Memory buffer management method and system having multiple receive ring buffers | |
CN114531488A (zh) | 一种面向以太网交换器的高效缓存管理系统 | |
US10990447B1 (en) | System and method for controlling a flow of storage access requests | |
US6463065B1 (en) | Mixed topology data switching system |
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 |