CN118075221A - 数据处理方法、装置、设备、系统及可读存储介质 - Google Patents
数据处理方法、装置、设备、系统及可读存储介质 Download PDFInfo
- Publication number
- CN118075221A CN118075221A CN202211468987.0A CN202211468987A CN118075221A CN 118075221 A CN118075221 A CN 118075221A CN 202211468987 A CN202211468987 A CN 202211468987A CN 118075221 A CN118075221 A CN 118075221A
- Authority
- CN
- China
- Prior art keywords
- data
- slice
- packet
- address
- chain
- 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
- 238000003672 processing method Methods 0.000 title abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 91
- 239000000872 buffer Substances 0.000 claims abstract description 86
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000004891 communication Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 2
- 238000002844 melting Methods 0.000 abstract description 10
- 230000008018 melting Effects 0.000 abstract description 10
- 239000000284 extract Substances 0.000 abstract description 6
- 230000008569 process Effects 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 17
- 239000004744 fabric Substances 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 10
- 230000006798 recombination Effects 0.000 description 6
- 238000005215 recombination Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 230000008521 reorganization Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241001270131 Agaricus moelleri Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/9057—Arrangements for supporting packet reassembly or resequencing
-
- 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/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种数据处理方法、装置、设备、系统及可读存储介质,涉及交换机控制技术领域。该方法包括:数据处理设备获取待交换数据包的包描述符,根据包描述符携带的切片地址链信息在缓存中提取切片地址链,切片地址链用于指示待交换数据包所包含的至少一个数据切片在缓存中的存储空间,再根据切片地址链从缓存中提取至少一个数据切片,得到至少一个数据切片重组的重组数据包,转发重组数据包来完成数据交换。由此,将数据切片的地址信息与切片数据混合存储于缓存中,相对于数据处理设备在数据交换过程中需要对数据切片的切片描述符进行组链和解链来完成包描述符的交换调度,简化了数据交换步骤,提高了数据交换效率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据处理方法、装置、设备、系统及可读存储介质。
背景技术
交换机包括数据平面(data plane)的功能和控制平面(control plane)的功能,控制平面用于控制和管理所有网络协议的运行。在交换机使用共享缓存结构并采用分片存储方式进行缓存管理时,交换机将数据包分成定长的切片(cell)存储在缓存中,一个数据包的各个切片分散在缓存的不同位置。控制平面在利用包描述符(packet descriptor,PD)控制数据包进行数据交换的过程中,需要对数据包的多个切片的切片描述符(celldescriptor,CD)进行操作,若切片数量较多会消耗较多时间,存在数据交换效率较低的问题。
发明内容
本申请实施例提供一种数据处理方法、装置、设备、系统及可读存储介质,能够解决交换机的数据交换效率较低的问题。
第一方面,提供一种数据处理方法,由数据处理设备(如网络设备或网络设备芯片等)执行,该数据处理方法包括:获取待交换数据包的包描述符,包描述符包含用于指示切片地址链在缓存中的存储空间的第一存储地址,待交换数据包被划分为存储于缓存中的至少一个数据切片,切片地址链包含至少一个数据切片在缓存中的存储地址,然后根据第一存储地址从缓存中获取切片地址链,再根据切片地址链将切片地址链指示的至少一个数据切片重组为重组数据包,对重组数据包进行发送。
基于上述数据处理方法,用于指示待交换数据包的数据切片的存储地址的切片地址链与切片数据混合存储于缓存中,相对于数据处理设备的输入端和输出端的控制平面需要分别对单个数据切片的切片描述符进行一次组链和解链,来依次实现包描述符在控制平面的交换以及数据包的重组,数据处理设备采用本实施例的数据处理方法进行数据交换时,数据处理设备的控制平面根据包描述符携带的第一存储地址获取指示待交换数据包的各数据切片在缓存中的存储地址的切片地址链,再根据切片地址链将缓存中的各数据切片重组为数据包,从而将各数据切片的地址信息存储于数据平面的缓存中,避免由控制平面通过切片描述符来携带各数据切片的地址信息。因此,控制平面无需对切片地址链进行组链和解链等操作就能够根据包描述符从缓存中获取切片地址链,进而根据切片地址链确定待交换数据包的全部数据切片,因此控制平面基于包描述符就能够实现数据包的所有数据切片地址信息的交换以及数据包重组,减少了控制平面对切片描述符进行组链、解链以及缓存描述符等步骤,提高了数据交换效率。
作为一种可能的实现方式,在缓存以切片方式对数据包进行存储时,数据包的各个数据切片的地址信息即切片地址链存储于数据包的一个数据切片中,或是将切片地址链存储于缓存中的任一存储空间。以切片地址链存储于数据包的一个数据切片中为例,数据处理设备接收待交换数据包的包描述符后解析包描述符得到第一存储地址,根据第一存储地址从缓存中获取用于存储切片地址链的数据切片即第一数据切片,得到第一数据切片中的切片地址链。由此,在缓存为分片存储模式时将数据包的切片数据与数据切片的地址信息混合存储于缓存的数据切片中,将现有技术中需控制平面处理的数据切片的地址信息转移至数据平面的缓存进行存储,减轻了数据交换处理对控制平面的资源占用。
可选地,切片地址链存储于数据包的至少一个数据切片中的尾部数据切片中,则第一存储地址用于指示至少一个数据切片中的尾部数据切片在缓存中的存储空间。其中,数据包包含的至少一个数据切片按照顺序组合后为一个完整的数据包,尾部数据切片是指在该顺序下的最后一个数据切片。由此,包描述符仅需携带数据包的尾部数据切片的地址信息,数据交换设备就能够根据尾部数据切片的地址信息获取尾部数据切片包含的切片数据链,无需携带多个数据切片的地址信息,减少了包描述符的数据量,有利于提高数据交换的加速比。
可选地,尾部数据切片可以只存储切片地址链,也可以同时存储切片数据和切片地址链。例如,当待交换数据包中包含切片数据的最后一个数据切片的剩余存储空间大于或等于切片地址链的数据大小时,尾部数据切片为包含切片数据的最后一个数据切片,切片地址链存储于剩余存储空间。又如,待交换数据包中包含切片数据的最后一个数据切片的剩余存储空间小于切片地址链的数据大小时,尾部数据切片是在包含切片数据的最后一个数据切片后新增的数据切片,切片地址链存储于新增的数据切片。由此,最大限度地利用数据切片的存储空间进行切片地址链的存储,减少待交换数据包新增用于携带切片地址链的数据切片导致缓存空间利用率较低的情况。
本实施例中,包描述符还可以包含第二存储地址、目的端口(destinationport,DP)、源端口(source port,SP)、服务等级(Class of Service,CoS)、包长信息(packetlength)、切片链首(cell descriptor listhead,cd listhd)等中的一个或多个。其中,网络设备的源端口和目的端口可以采用位图(bitmap)表示,源端口为网络设备接收待交换数据包的端口,目的端口为网络设备对待交换数据包交换后的输出端口,第二存储地址用于指示待交换数据包中除第一数据切片外的第二数据切片在缓存中的存储空间,第一数据切片包含第三存储地址,第三存储地址用于指示待交换数据包中第三数据切片在缓存中的存储空间。其中,第二数据切片包括待交换数据包中除第一数据切片外的一个或多个数据切片,第三数据切片包括待交换数据包中除第一数据切片和第二数据切片外的一个或多个数据切片。由此,包描述符在携带切片地址链的地址等相关信息时,还额外携带待交换数据包中的一个或多个数据切片的地址信息,从而减少了切片地址链的地址信息的携带量,减少了待交换数据包仅包含一个或几个较少数据切片的情况下需要新增数据切片来携带切片地址链,尾部数据切片存在大量空余存储空间的情形,从而降低了缓存利用率和交换带宽损失。
作为一种可能的实现方式,数据处理设备的控制平面在完成包描述符的交换后,控制平面的输出端根据交换后的包描述符从缓存中获取待交换数据包的至少一个数据切片进行发送,即数据处理设备根据切片地址链从缓存中获取待交换数据包的至少一个数据切片,然后重组至少一个数据切片得到重组数据包,再将重组数据包发送至目的端口,通过目的端口转发重组数据包。由此,数据处理设备利用缓存中的切片地址链实现数据包的重组,避免在控制平面的输出端基于各个数据切片的切片描述符的组链和解链实现数据包的重组。
作为一种可能的实现方式,数据处理设备获取描述符,包括接收输入端口输入的包描述符,基于队列调度将包描述符从输入队列交换至输出队列。
可选地,输入队列包括输入缓存队列,输出队列包括输出缓存队列,包描述符还包括服务等级和目的端口,则数据处理设备在对输入缓存队列中的包描述符进行调度时,可以是根据包描述符在交换结构中的传输速度需求进行调度。数据处理设备在对输出队列中的包描述符进行调度时,可以是根据服务等级和目的端口确定包描述符对应的待交换数据包的服务质量(Quality of Service,QoS)需求进行调度。
第二方面,提供一种数据处理装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式中的数据处理方法的各个模块。
需要说明的是,第二方面所述的图像处理装置可以是终端设备或网络设备,也可以是可设置于终端设备或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
第三方面,提供了一种数据处理设备,包括处理器和通信接口,所述通信接口用于所述设备和其他设备之间进行信息交互,所述处理器执行程序指令,执行第一方面中任一种可能设计中的数据处理方法的操作步骤。
第四方面,提供了一种数据处理系统,包括发送设备、接收设备和如第三方面所述的数据处理设备,发送设备用于向所述数据处理设备发送待交换数据包,数据处理设备用于基于待交换数据包执行第一方面中任一种可能设计中的数据处理方法的操作步骤,以将所述待交换数据包发送至所述接收设备。
此外,第二方面所述的数据处理装置、第三方面所述的数据处理设备、第四方面所述的数据处理系统的技术效果可以参考第一方面所述的数据处理方法的技术效果,此处不再赘述。
第五方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算机系统中运行时,使得计算设备执行如第一方面中任意一种可能的实现方式中所述方法的操作步骤。
第六方面,提供一种计算机程序产品,当计算机程序产品在计算设备上运行时,使得计算设备执行如第一方面中任意一种可能的实现方式中所述方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为现有技术中的Crossbar交换机的结构示意图;
图2为现有技术中的Crossbar交换结构的示意图;
图3为现有技术中的CICQ结构的示意图;
图4为现有技术中切片缓存中的缓存利用率随包长的变化示意图;
图5为现有技术中切片存储的情况下数据切片的存储方式的示意图;
图6为现有技术中交换机控制平面对描述符进行交换的流程示意图;
图7为本申请提供的一种数据处理系统的架构示意图;
图8为本申请提供的一种第二网络设备的结构示意图;
图9为本申请提供的一种数据处理方法的流程示意图;
图10为本申请提供的一种切片地址链和包描述符的结构示意图;
图11为本申请提供的另一种切片地址链和包描述符的结构示意图;
图12为本申请提供的一种切片缓存中的缓存利用率随包长的变化示意图;
图13为本申请提供的一种数据处理装置的结构示意图;
图14为本申请提供的一种数据处理设备的结构示意图。
具体实施方式
为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
(1)交换机
交换(switching)是按照通信两端传输信息的需要,用人工或设备自动完成的方法,把要传输的信息送到符合要求的相应路由上的技术的统称。广义的交换机(switch)就是一种在通信系统中完成信息交换功能的设备。交换机的主要功能包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。
交换机工作在数据链路层(Data Link Layer),交换机拥有一条很高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,控制电路收到数据包以后,处理端口会查找缓存中的地址对照表以确定目的媒体存取控制(Media AccessControl Address,MAC)位址即网卡的硬件地址的网络接口控制器(network interfacecontroller,NIC)即网卡挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口,目的MAC地址若不存在,广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部MAC地址表中。
在光纤通道交换机中,交换结构在交换机性能中起关键性作用。目前交换机中应用的交换结构主要有两种:总线结构和交换式结构。总线结构是在一个高带宽的总线的基础上,直接将输入端口的数据分组传送到输出端口,传输发生冲突时在端口进行排队,这种方式传输的性能取决于总线的吞吐率。交换式的结构一般采用Crossbar来实现,Crossbar被称为交叉开关矩阵或纵横式交换矩阵,这种结构采用交叉点开关的方式将输入与输出相连接,进而形成多条数据通路,没有共享带宽的限制,并且结构比较简单。采用Crossbar的交换机的结构如图1所示,交换机100主要包括线卡110、交叉开关矩阵120、线卡控制单元130以及线卡140,交叉开关矩阵120中的交叉缓存单元123通过输入队列121和输出队列122分别与线卡110和线卡140连接。在实际应用中,交叉缓存单元123还可以通过一组或多组输入队列和输出队列分别与一组或多组线卡连接。其中,线卡110和线卡140是用于交换机、路由器或其它网络设备的访问线路与访问设备间的一种设备接口,线卡控制单元130实现线卡110和线卡140的登录、注销、查找更新路由表等功能,交叉开关矩阵120负责将线卡110接收到的数据经过处理调度后传输到对应的输出端口,还原为原始的在发往线卡140。
(2)联合输入交叉点排队结构
联合输入交叉点排队(Combined Input-Crosspoint-Queued,CICQ)结构是在输入端和交叉点都具有缓存空间的Crossbar交换结构,是交换机的核心模块。
如图2所示,在Crossbar交换结构中,为了保证每个输入端口都能与任一输出端口联通,在规模为N的交换结构中,必须有N*N个交叉点开关,交叉点开关决定了从输入端口i到输出端口j的数据通路打开还是关闭。当交叉点开关CBij打开时,称为cross状态,数据由输入端口i向输出端口j传输数据,关闭时,称为bar状态,不进行这两个端口的数据传输。Crossbar交换结构在需要经过的交叉点开关处于bar状态时会在输入端口排队,造成队头阻塞(head of line),而CICQ结构在输入端和交叉点加入缓存空间,利用虚拟输出排队的方式解决队头阻塞和传输阻塞。
其中,虚拟输出排队的方式是指对N输入端口的交换结构,即在每个输入端口和输出端口设置N个并行的缓存队列,每个缓存队列缓存一组输入端口发送至输出端口的数据,此种方式也称为虚拟输出队列(Virtual Output Queue,VOQ)。
如图3所示,以3*3的CICQ结构300为例,CICQ结构300包括输入队列310、交叉点开关320、调度器330和交叉点缓存321(图3中示例性标注交叉点开关320中9个交叉点缓存中的一个)。CICQ结构由于交叉点存在缓存,输入端与输出端被交叉点开关320分成两个独立的部分,因此调度被划分为从输入端口到交叉点开关320的输入调度和从交叉点开关320到输出端的输出调度两部分,且两个部分互不干涉,具有Crossbar无阻塞的特性,同时交叉点缓存321的引入也使得CICQ结构可以缓解输入排队结构的输入冲突和输出冲突的问题。
输入队列310即VOQ队列,每个端口包含3个对应到输出端口的虚拟输出队列。
交叉点开关320采用Buffered Corssbar结构,每个交叉点CBij对应从输入端口i到输出端口的数据通路,Buffered Corssbar结构是指交叉点具有缓存的Corssbar结构。
调度器330分为输入调度和输出调度,分布于各个输入端口与输出端口,单个端口只处理自身的数据队列,端口之间以及输入端口和输出端口之前无需进行数据交换。
可选地,CICQ结构还可以包含输出队列,与输入队列类似,输出队列也是设置于调度器与输出端口之间的VOQ队列。
在CICQ结构中,输入调度和输出调度的调度算法可以相同或不同,可选的调度算法包括轮询-轮询(round robin-round robin,RR-RR)调度算法、轮询-最长队列优先策略(round robin-longest queue first,RR-LQF)调度算法、轮询-最长队列预测策略(roundrobin-longest queue detect,RR-LQD)调度算法、严格优先级(Strict Priority,SP)调度算法、差分加权轮循(Deficit Weighted Round Robin)调度算法等。
(3)共享缓存
共享缓存(shared cache)是交换机中常用的一种结构,即所有的输入和输出端口都共享一个缓存模块,所有需要经过交换机的数据都在缓存中存储转发。共享缓存的优点是缓存资源可以得到充分使用,获得最佳的时延和吞吐率性能。在交换机芯片的硬件实现上,缓存的集中分布,在芯片的布局和布线上比较方便。
(4)数据切片
在对共享缓存的存储空间存进行分配和管理时,通常采用切片存储方式,而不采用连续存储的方式。切片存储是将变长的数据包分成定长的切片(cell)存储在缓存中,一个数据包的各个切片分散存储在缓存的不同位置。如果一个切片没有被数据填满,则该切片的剩余空间也不能被其他数据包使用。
切片缓存的特点是,一个存储单元只能存储一个切片数据,无论切片数据大小都会占用一个存储单元,因此缓存的利用率和带宽就会和交换的数据包的包长存在如图4所示变化,其中,横坐标表示数据包的包长,以字节(byte)为单位,纵坐标表示数据包在存储中缓存的利用率。
如图5所示,在交换机采用共享缓存对数据包进行切片存储的情况下,输入交换机的数据包无论包长为多少,例如数据包的包长为456byte,数据切片的长度分别为192byte、192byte和72byte,数据包都要按照切片存储方式既定的数据切片定长192byte在缓存中进行存储,即一个切片没有被数据填满,该切片的剩余空间也不能被其他数据包使用,并生成各个切片的切片描述符进入控制平面完成处理。
接下来结合图6对现有技术中交换机的控制平面对切片描述符进行交换的流程进行详细说明,其中,英文缩写标注的模块为用于执行对应步骤的硬件模块,该流程包括如下步骤a-步骤i。
a.重组(reassemble,RSM):从输入端口接收多个数据切片,将同一个数据包的全部数据切片的切片描述符串链以生成包描述符,并将包描述符存入缓冲器。
其中,切片描述符可以由二级缓存地址(second level cache address,slcaddr)、源端口、目的端口、服务等级、有效数据量(byte sel)和其他信息(other)等部分组成。二级缓存地址用于指示数据切片在缓存中的存储空间。包描述符可以由源端口、目的端口、服务等级、切片链首、包长信息、包描述符地址(packet descriptor address,pd addr)和其他信息等部分组成。包描述符中利用切片链首记录了数据包的第一个数据切片的地址,每个数据切片除了记录切片数据还记录下一个数据切片的地址,一个数据包的所有数据切片形成一个链表。其中,源端口是指交换机接收数据包的端口,目的端口是指数据包经交换机交换后从交换机输出的端口,交换机通过源端口与数据包的发送设备连接,通过目的端口与数据包的接收设备连接。
b.任务队列管理(task queue management,TQM):基于VOQ维度对包描述符进行队列管理,主要负责将包描述符解链为切片描述符并写入缓冲器。
c.调度(schedule,SCH):根据调度算法对包描述符的VOQ队列进行调度,完成包描述符的出队。
d.解析链表模块(parse list module,PLM):对出队的包描述符进行解链,得到该数据包的多个切片描述符。
e.切片描述符交换:将同一数据包的多个切片描述符进行交换。
f.重组:对交换来的同一个数据包的全部数据切片的切片描述符串链以生成包描述符,并将包描述符存入缓冲器。
g.任务队列管理:基于VOQ维度对包描述符进行队列管理,主要负责将包描述符解链为切片描述符并写入缓冲器。
h.调度:根据调度算法对包描述符的VOQ队列进行调度,完成包描述符的出队。
i.解析链表模块:对出队的包描述符进行解链,得到该数据包的多个切片描述符,根据该数据包的多个切片描述符从数据平面的缓存中读出数据包包含的全部数据切片的数据。
由上述步骤a-步骤i可知,控制平面在切片描述符进入的交换之前,需要进行两次缓存读写操作,来实现重组和解链的操作,完成切片描述符的交换后、获取数据包的数据之前,还需要进行两次缓存读写操作,会浪费交换机的控制平面资源(例如计算资源、存储资源和交换资源),同时重复的重组和解链操作会消耗大量时间,导致交换机的加速比无法提升,数据交换效率较低。
本申请提供了一种数据处理方法,尤其是一种根据包描述符从缓存中获取的切片地址链将数据切片重组为数据包的数据处理方法,即数据处理设备获取待交换数据包的包描述符,根据包描述符携带的第一存储地址在缓存中提取切片地址链,切片地址链用于指示待交换数据包所包含的至少一个数据切片在缓存中的存储空间,再根据切片地址链从缓存中提取至少一个数据切片,得到至少一个数据切片重组的重组数据包,对重组数据包进行转发。由此,切片地址链与切片数据混合存储于缓存中,数据处理设备的控制平面能够根据包描述符携带的第一存储地址从缓存中获取切片地址链,无需对切片地址链进行组链和解链等操作就能够根据包描述符从缓存中获取切片地址链。控制平面基于包描述符从缓存中获取切片地址链,即包描述符携带了待交换数据包的所有数据切片地址信息,因此控制平面基于包描述符的交换实现数据包的所有数据切片地址信息的交换以及数据包重组,相对于数据处理设备的输入端和输出端的控制平面需要分别对单个数据切片的切片描述符进行一次组链和解链,来依次实现包描述符在控制平面的交换以及数据包的重组,本实施例的数据处理方法减少了控制平面对切片描述符进行组链、解链以及缓存描述符等步骤,提高了数据交换效率。
下面将结合附图对本申请实施例的实施方式进行详细描述。
图7为本申请提供的一种数据处理系统的架构示意图。如图7所示,数据处理系统700包括网关710、第一网络设备720、第二网络设备730、第三网络设备740、终端设备750和服务器760。
第一网络设备720通过网关710与互联网(Internet)连接,并分别与第二网络设备730、第三网络设备740连接,终端设备750通过第二网络设备730与第一网络设备720连接,服务器760通过第三网络设备740与第一网络设备720连接。
网关710用于实现高层协议不同的网络互联,既可以用于广域网互联,也可以用于局域网互联。本实施例中的网关710可以是传输网关,利用传输网关,不同网络上的主机间可以建立起跨越多个网络的、级联的、点对点的传输连接,例如网关710用于支持第一网络设备720与互联网的传输连接。
第一网络设备720用于处理第二网络设备730、第三网络设备740所连接的接入层设备(例如终端设备750和服务器760)的所有通信量,并为接入层设备提供到互联网的上行链路。
可选地,第一网络设备720为汇聚层交换机,作用是将与第二网络设备730、第三网络设备740的接入节点统一出口,该统一的出口为网关710,同时也具备转发及选路功能。
第二网络设备730用于直接面向用户连接或访问网络,支持终端用户连接到网络。
可选地,第二网络设备730和第三网络设备740为接入层交换机,作用是向上获取第一网络设备720的网络接入,向下对接终端设备750,第三网络设备740用于向上获取第一网络设备720的网络接入,向下对接服务器760。
本实施例中不对网络设备即第一网络设备720、第二网络设备730和第三网络设备740的具体结构等进行限制,例如第一网络设备720、第二网络设备730和第三网络设备740的交换结构可以是共享缓存式结构、交叉总线式结构、混合交叉总线式结构、环形总线式结构等。如图8所示,以第二网络设备730为共享缓存式结构为例,第二网络设备730包括一个或多个传输通道,其中第一传输通道(图8中未对第一传输通道外的其他传输通道进行标号)包括输入端口、切分模块731、第一任务队列管理模块732、第一调度模块733、交换结构734、第二任务队列管理模块735、第二调度模块736、重组模块737、输出端口以及共享缓存738。第一传输通道中交换结构734前可以称为输入端,交换结构734后可以称为输出端。
输入端口用于接收第一网络设备720发送的待交换数据包,输出端口用于向终端设备750发送交换后的数据包。
切分模块731用于对数据包进行切分,按照切分策略,首先判断需要切片的数据帧是否准确、完整,提取数据帧中的有效信息,然后根据数据帧的长度来按照既定的策略切分成等长或不等长的数据切片。在定长切片的情况下,若最后一个数据帧长度没有达到切分策略设定的长度,则对其进行填充操作,保证数据切片长度的一致性。
共享缓存738在切分模块731对数据包完成切分后,将数据包的数据切片存入自身缓存中,并返回存储地址,还将数据包的全部数据切片的存储地址组成切片地址链存入自身缓存中,使第二网络设备730利用先进先出(First In First Out,FIFO)缓存器等根据数据包的包头以及切片地址链的存储地址生成包描述符。在后续操作中,第二网络设备730都是对包描述符进行处理,数据包本身只在输出的时候才根据描述符和输出队列的信息调出。
包描述符包含源端口(例如第二网络设备730中与第一网络设备720连接的端口)、目的端口(例如第二网络设备730中与终端设备750连接的端口)、服务等级、切片链首、包长信息、包描述符地址、第一存储地址和其他信息等。其中,第一存储地址用于指示切片地址链在缓存中的存储空间,切片地址链包含数据包的至少一个数据切片在缓存中的存储地址。
第一任务队列管理模块732用于基于VOQ维度对包描述符进行队列管理,将包描述符按照队列顺序发送至第一调度模块733。
第一调度模块733用于根据调度算法对包描述符的VOQ队列进行调度,以缓解交换结构734的传输拥塞,完成包描述符的出队,将包描述符发送至交换结构734。
交换结构734用于采用Crossbar交换方式、CICQ交换方式、Cross交换方式等交换方式将包描述符交换至第二任务队列管理模块735。
第二任务队列管理模块735的功能与第一任务队列管理模块732的功能类似,在此不再赘述。
第二调度模块736用于基于服务等级和目的端口,根据调度算法对包描述符的VOQ队列进行调度,根据包描述符找到数据包的各个数据切片在共享缓存738中的地址,从共享缓存738中取出数据切片发送至重组模块737。
重组模块737用于将该数据包的所有数据切片重组为重组数据包后发送至目的端口,以通过目的端口转发重组数据包。
可选地,第一任务队列管理模块732和第一调度模块733之间,以及第二任务队列管理模块735和第二调度模块736之间,还分别设置有用于存储包描述符的缓冲器(buffer),第一任务队列管理模块732和缓冲器(buffer)可以视为输入缓存队列,第二任务队列管理模块735和缓冲器可以视为输出缓存队列。
其中,第一任务队列管理模块732、第一调度模块733、交换结构734、第二任务队列管理模块735、第二调度模块736可以视为第二网络设备730的控制平面,切分模块732、重组模块737和共享缓存738可以视为第二网络设备730的数据平面。
终端设备750可以是各种终端,如手机终端、平板电脑、笔记本电脑、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、混合现实(MixedReality,MR)设备、扩展现实(Extended Reality,ER)设备、摄像头或车载终端等,还可以是边缘设备(例如,携带具有处理能力芯片的盒子)等。
服务器760对网络中其他机器提供服务的计算机系统。本实施例中的服务器760可以是入门级服务器、工作组级服务器、部门级服务器、企业级服务器等任意一种类型的服务器,且服务器760可以采用Redhat、CentOS、Debian等一种或多种操作系统。
图7仅是本申请实施例提供的一种系统架构的示意图,图7中所示设备、器件、模块等之间的位置关系不构成任何限制。此外,本申请不对图7示出的数据处理系统700的应用场景进行限制,例如,数据处理系统700可以是应用于公司、家庭、工业园区或任意场景的交换架构。
接下来请参考图9,对数据处理方法进行详细阐述。在这里以图7中的第二网络设备730或第二网络设备730的交换芯片为例进行说明。
步骤910、第二网络设备730获取包描述符。
第二网络设备730的输入端获取待交换数据包,根据待交换数据包生成包描述符,将包描述符交换至输出端。
在第二网络设备730的输入端,第二网络设备730的切分模块732从输入端口获取待交换数据包,并对待交换数据包进行切分,得到待交换数据包的至少一个数据切片。共享缓存738将待交换数据包的至少一个数据切片离散地存入自身缓存中,并根据至少一个数据切片在共享缓存738中的地址生成切片地址链,从而根据数据包的包头以及切片地址链在共享缓存738中的地址生成包描述符。包描述符包含第一存储地址,第一存储地址用于指示切片地址链在共享缓存738中的存储空间,例如第一存储地址用于指示第一数据切片在共享缓存738中的存储空间。在生成包描述符后,第一任务队列管理模块732和第一调度模块733根据调度算法对包描述符进行队列调度,完成包描述符的出队,将包描述符发送至交换结构734。
可选地,第一任务队列管理模块732和第一调度模块733采用的调度算法是有利于缓解包描述符在交换结构734中的传输拥塞的调度算法。
作为一种可能的实现方式,除了由切片地址链携带待交换数据包的所有数据切片的地址外,还可以由切片地址链携带待交换数据包的部分数据切片的地址,由包描述符携带待交换数据包的部分数据切片的地址,切片地址链和包描述符携带的数据切片的地址的数量可以根据需求进行灵活调整,具体请参考图10-图12的相关介绍,在此不再赘述。
在第二网络设备730的输出端,第二网络设备730的第二任务队列管理模块735基于VOQ维度对包描述符进行队列管理,将包描述符按照队列顺序发送至第二调度模块736。
可选地,第二任务队列管理模块735对包描述符进行队列管理是根据包描述符中携带的服务质量进行的,以使待交换数据包发送至终端设备750的速率、掉包率、数据正确率等满足服务质量的需求。
步骤920、第二网络设备730根据第一存储地址从缓存中获取切片地址链。
第二网络设备730的输出端从交换得到的包描述符中解析出第一存储地址,根据第一存储地址从共享缓存738中获取切片地址链。
在第二网络设备730的输出端,第二调度模块736从第二任务队列管理模块735接收包描述符,采用调度算法基于包描述符中的服务等级和目的端口对包描述符的VOQ队列进行调度,根据包描述符中的第一存储地址在共享缓存738中读取切片地址链。
作为一种可能的实现方式,切片地址链与待交换数据包的切片数据混合存储于共享缓存738中,第二网络设备730从包描述符中提取第一存储地址后,根据第一存储地址从共享缓存738存储的第一数据切片中读取切片地址链。例如,切片地址链存储于待交换数据包的至少一个数据切片中的尾部数据切片,则第一存储地址用于指示至少一个数据切片中的尾部数据切片在共享缓存738中的存储空间。
可选地,尾部数据切片可以只存储切片地址链,也可以同时存储切片数据和切片地址链。例如,当待交换数据包中包含切片数据的最后一个数据切片的剩余存储空间大于或等于切片地址链的数据大小时,尾部数据切片为包含切片数据的最后一个数据切片,切片地址链存储于剩余存储空间。又如,待交换数据包中包含切片数据的最后一个数据切片的剩余存储空间小于切片地址链的数据大小时,尾部数据切片为包含切片数据的最后一个数据切片的后一数据切片,切片地址链存储于后一数据切片。
由此,包描述符仅需携带数据包的尾部数据切片的地址信息就相当于间接携带了切片地址链即待交换数据包的所有数据切片在共享缓存738中的地址,数据处理设备利用包描述符中的第一存储地址等少量信息就能够完成待交换数据包的交换,减少了包描述符的数据量。另一方面,尽可能地利用待交换数据包的尾部数据切片除切片数据外剩余的存储空间来存储切片地址链,提高了缓存利用率,有利于提高数据交换的加速比。
步骤930、第二网络设备730将切片地址链指示的至少一个数据切片重组为重组数据包后发送重组数据包。
第二网络设备730的第二调度模块736根据切片地址链找到待交换数据包的各个数据切片在共享缓存738中的地址,从共享缓存738中取出数据切片发送至重组模块737,由重组模块737将待交换数据包的至少一个数据切片重组为重组数据包后进行转发。
基于上述数据处理方法,切片地址链与切片数据混合存储于缓存中,由包描述符携带切片地址链在缓存中的地址信息,即包描述符间接携带了待交换数据包的所有数据切片的地址信息,数据处理设备的控制平面无需根据各个数据切片的切片描述符对切片地址链进行组链和解链等操作就能够完成待交换数据包的所有数据切片的地址信息的交换,从而根据数据切片的地址信息从缓存中获取各个数据切片的地址信息。相对于数据处理设备的输入端和输出端的控制平面需要分别对单个数据切片的切片描述符进行一次组链和解链,来依次实现包描述符在控制平面的交换以及数据包的重组,数据处理设备的控制平面基于包描述符就能够实现数据包的所有数据切片地址信息的交换以及数据包重组,减少了控制平面对切片描述符进行组链、解链以及缓存描述符等步骤,提高了数据交换效率。
上文步骤910中提及切片地址链和包描述符携带的数据切片的地址的数量可以根据需求进行灵活调整。例如,除了第一存储地址,包描述符还包含待交换数据包中第二数据切片在缓存中的第二存储地址,则第一数据切片包含待交换数据包中第一数据切片和第二数据切片外的数据切片在缓存中的第三存储地址。其中,第二存储地址用于指示待交换数据包中除第一数据切片外的第二数据切片在缓存中的存储空间,第三存储地址用于指示待交换数据包中第三数据切片在缓存中的存储空间。
接下来以数据切片的大小为192byte为例,对切片地址链和包描述符携带数据的方式进行详细说明。
以数据切片的大小为192byte为例,针对包长为1~1152byte的待交换数据包,切片地址链和包描述符携带数据的方式如图10所示,其中,左侧的数字表示不同包长的场景,数据切片的数字表示每个数据切片在待交换数据包中的序号,有灰度的数据切片表示该数据切片包含切片数据,白色的数据切片表示该数据切片不包含切片数据,仅携带有切片地址链,包描述符中的数字表示对应数据切片的地址信息。
如此,包描述符最多携带了两个数据切片的地址信息,在场景1中,待交换数据包的所有数据切片的地址信息都由包描述符来携带;在场景2、4、6、8中,除了包描述符携带的数据切片的地址信息,待交换数据包的其他数据切片的地址信息都是与尾部数据切片的切片数据共存的;在场景3、5、7、9中,除了包描述符携带的数据切片的地址信息,待交换数据包的其他数据切片的地址信息都是与尾部数据切片的切片数据不共存的。
在图10的示例中,为了提高包长较小的情况下数据切片存储的缓存利用率,将除尾部数据切片的地址信息外的一个数据切片的地址信息添加至包描述符进行携带,避免了包长较小(例如384byte)时需要新增第三个数据切片来携带切片地址链。在另外的实施例中,为了进一步提高需要新增数据切片来携带切片地址链的包长,即奇点包长,还可以将除尾部数据切片的地址信息外的多个(例如2个、3个、5个等)数据切片的地址信息添加至包描述符进行携带。
以数据切片的大小为192byte为例,针对包长为1~1514byte的待交换数据包,如图11所示,包描述符携带2个额外的数据切片的地址信息,其中,左侧的数字表示不同包长的场景,数据切片的数字表示每个数据切片在待交换数据包中的序号,有灰度的数据切片表示该数据切片包含切片数据,白色的数据切片表示该数据切片不包含切片数据,仅携带有切片地址链,包描述符中的数字表示对应数据切片的地址信息。
在图10的示例中,缓存利用率和包长的关系如图12所示,横坐标表示数据包的包长,以字节(byte)为单位,纵坐标表示数据包在存储中缓存的利用率。由图12与图4的对比可知,相对于数据切片不携带切片地址链的现有技术,缓存利用率的峰点和底点并没有变化,指示出现峰点的和底点的包长出现了较少的前移,说明数据切片在存储切片地址链的情况下,待交换数据包在缓存中的缓存利用率几乎没有变化,从而在保证了缓存利用率的情况下简化了数据交换步骤,提高了数据交换效率。
上文结合图7-图12详细描述了根据本实施例所提供的数据处理方法,下面将结合图13,描述本实施例所提供的数据处理装置。
图13为本实施例提供的可能的数据处理装置的示意图。数据处理装置可以用于实现上述方法实施例中第二网络设备730的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该数据处理装置可以是如图7所示的第一网络设备720、第二网络设备730或第三网络设备730,还可以是应用于服务器的模块(如芯片)。
数据处理装置1300包括收发模块1310、处理模块1320。数据处理装置1300用于实现上述图9所示方法实施例中第二网络设备730的功能。
收发模块1310,用于获取待交换数据包的包描述符,包描述符包含第一存储地址,第一存储地址用于指示切片地址链在缓存中的存储空间,切片地址链包含待交换数据包的至少一个数据切片在缓存中的存储地址。例如,收发模块1310用于执行上述图9中所示的步骤910。
处理模块1320,用于根据第一存储地址从缓存中获取切片地址链。例如,处理模块1320用于执行上述图9中所示的步骤920。
收发模块1310,用于将切片地址链指示的至少一个数据切片重组为重组数据包后发送重组数据包。例如,收发模块1310用于执行上述图9中所示的步骤930。
作为一种可能的实现方式,处理模块1320具体用于:
解析包描述符,得到第一存储地址;
根据第一存储地址从缓存中获取至少一个数据切片中的第一数据切片,得到切片地址链,第一数据切片包含切片地址链。
作为一种可能的实现方式,第一数据切片为至少一个数据切片中的尾部数据切片。
作为一种可能的实现方式,当待交换数据包中包含切片数据的最后一个数据切片的剩余存储空间大于或等于切片地址链的数据大小时,尾部数据切片为最后一个数据切片,切片地址链存储于剩余存储空间。
作为一种可能的实现方式,当待交换数据包中包含切片数据的最后一个数据切片的剩余存储空间小于切片地址链的数据大小时,尾部数据切片为最后一个数据切片后新增的数据切片,切片地址链存储于新增的数据切片。
作为一种可能的实现方式,包描述符还包含第二存储地址,包描述符还包含待交换数据包中第二数据切片在缓存中的第二存储地址,第一数据切片包含待交换数据包中第一数据切片和第二数据切片外的数据切片在缓存中的第三存储地址。
作为一种可能的实现方式,处理模块1320具体用于:
根据第一存储地址从第一数据切片中获取第三存储地址;
重组第二存储地址和第三存储地址,得到切片地址链。
作为一种可能的实现方式,收发模块1310具体用于:
根据切片地址链从缓存中获取待交换数据包的至少一个数据切片;
重组至少一个数据切片,得到重组数据包;
将重组数据包发送至目的端口。
应理解的是,本申请实施例的数据处理装置1300可以通过GPU、NPU、ASIC实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。此外,在通过软件实现图9所示的方法时,数据处理装置1300及其各个模块也可以为软件模块。
本申请实施例的数据处理装置1300可对应于执行本申请实施例中描述的方法,并且数据处理装置1300中的各个单元的上述和其它操作和/或功能分别为了实现图9中的各个方法的相应流程,为了简洁,在此不再赘述。
与本申请提供的方法实施例以及虚拟装置实施例相对应,本申请实施例还提供了一种数据处理设备,下面对数据处理设备的硬件结构进行介绍。
下面描述的数据处理设备1400对应于上述方法实施例中的第一网络设备720、第二网络设备730或第三网络设备740中,数据处理设备1400中的各硬件、模块和上述其他操作和/或功能分别为了实现方法实施例中的数据处理装置1300所实施的各种步骤和方法,关于数据处理设备1400的操作流程,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
其中,上文数据处理方法中的各步骤通过数据处理设备1400的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
数据处理设备1400对应于上述虚拟装置实施例中的数据处理装置1300,数据处理装置1300中的每个功能模块采用数据处理设备1400的软件实现。换句话说,数据处理装置1300包括的功能模块为数据处理设备1400的处理器读取存储器中存储的程序代码后生成的。
请参考图14,图14为本申请实施例提供的一种数据处理设备的结构示意图。该数据处理设备1400可以配置为通信网络中的控制器或节点,例如图7所示的数据处理系统中的第一网络设备720、第二网络设备730或第三网络设备740。该数据处理设备1400可以由一般性的总线体系结构来实现。
数据处理设备1400包括至少一个处理器1401、通信总线1402、存储器1403以及至少一个通信接口1404。
处理器1401可以是一个通用CPU、NP、微处理器、或者可以是一个或多个用于实现本申请方案的集成电路,例如,专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线1402用于在上述组件之间传送信息。通信总线1402可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1403可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(randomaccess memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器1403可以是独立存在,并通过通信总线1402与处理器1401相连接。存储器1403也可以和处理器1401集成在一起。
通信接口1404使用任何收发器一类的装置,如接收器、发送器、集成的收发电路、接口电路等,可以用于与其它设备或通信网络通信。通信接口1404包括有线通信接口(图14中实线示出),还可以包括无线通信接口(图14中虚线示出)。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless localarea networks,WLAN)接口,蜂窝网络通信接口或其组合等。
在具体实现中,作为一种实施例,处理器1401可以包括一个或多个CPU,如图14中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,数据处理设备1400可以包括多个处理器,如图14中所示的处理器1401和处理器1405。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,数据处理设备1400还可以包括输出设备1406和输入设备1407(图14中未示出)。输出设备1406和处理器1401通信,可以以多种方式来显示信息。例如,输出设备1406可以是液晶显示器(liquid crystaldisplay,LCD)、发光二级管(lightemitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备1407和处理器1401通信,可以以多种方式接收用户的输入。例如,输入设备1407可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器1403用于存储执行本申请方案的程序代码1410,处理器1401可以执行存储器1403中存储的程序代码1410。也即是,通信设备1400可以通过处理器1401以及存储器1403中的程序代码1410,来实现方法实施例提供的数据处理方法。
本申请实施例的数据处理设备1400可对应于上述各个方法实施例中的第一网络设备720、第二网络设备730或第三网络设备740,并且,该数据处理设备1400中的处理器1401、通信接口1404等可以实现上述各个方法实施例中的设备所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。
本实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccess memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digitalvideo disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (17)
1.一种数据处理方法,其特征在于,包括:
获取待交换数据包的包描述符,所述包描述符包含第一存储地址,所述第一存储地址用于指示切片地址链在缓存中的存储空间,所述切片地址链包含所述待交换数据包的至少一个数据切片在所述缓存中的存储地址;
根据所述第一存储地址从所述缓存中获取所述切片地址链;
将所述切片地址链指示的所述至少一个数据切片重组为重组数据包后发送所述重组数据包。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一存储地址从所述缓存中获取所述切片地址链,包括:
根据所述第一存储地址从所述缓存中获取所述至少一个数据切片中的第一数据切片,得到所述切片地址链,所述第一数据切片包含所述切片地址链。
3.根据权利要求2所述的方法,其特征在于,所述第一数据切片为所述至少一个数据切片中的尾部数据切片。
4.根据权利要求3所述的方法,其特征在于,当所述待交换数据包中包含切片数据的最后一个数据切片的剩余存储空间大于或等于所述切片地址链的数据大小时,所述尾部数据切片为所述最后一个数据切片,所述切片地址链存储于所述剩余存储空间。
5.根据权利要求3所述的方法,其特征在于,当所述待交换数据包中包含切片数据的最后一个数据切片的剩余存储空间小于所述切片地址链的数据大小时,所述尾部数据切片为在所述最后一个数据切片后新增的数据切片,所述切片地址链存储于所述新增的数据切片。
6.根据权利要求2-5中任一项所述的方法,其特征在于,所述包描述符还包含所述待交换数据包中第二数据切片在所述缓存中的第二存储地址,所述第一数据切片包含所述待交换数据包中所述第一数据切片和所述第二数据切片外的数据切片在所述缓存中的第三存储地址。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一存储地址从所述缓存中获取所述切片地址链,包括:
根据所述第一存储地址从所述第一数据切片中获取所述第三存储地址;
重组所述第二存储地址和所述第三存储地址,得到所述切片地址链。
8.一种数据处理装置,其特征在于,所述装置包括:
收发模块,用于获取待交换数据包的包描述符,所述包描述符包含第一存储地址,所述第一存储地址用于指示切片地址链在缓存中的存储空间,所述切片地址链包含所述待交换数据包的至少一个数据切片在所述缓存中的存储地址;
处理模块,用于根据所述第一存储地址从缓存中获取所述切片地址链;
所述收发模块,用于将所述切片地址链指示的所述至少一个数据切片重组为重组数据包后发送所述重组数据包。
9.根据权利要求8所述的装置,其特征在于,所述处理模块具体用于:
根据所述第一存储地址从所述缓存中获取所述至少一个数据切片中的第一数据切片,得到所述切片地址链,所述第一数据切片包含所述切片地址链。
10.根据权利要求9所述的装置,其特征在于,所述第一数据切片为所述至少一个数据切片中的尾部数据切片。
11.根据权利要求10所述的装置,其特征在于,当所述待交换数据包中包含切片数据的最后一个数据切片的剩余存储空间大于或等于所述切片地址链的数据大小时,所述尾部数据切片为所述最后一个数据切片,所述切片地址链存储于所述剩余存储空间。
12.根据权利要求10所述的装置,其特征在于,当所述待交换数据包中包含切片数据的最后一个数据切片的剩余存储空间小于所述切片地址链的数据大小时,所述尾部数据切片为在所述最后一个数据切片后新增的数据切片,所述切片地址链存储于所述新增的数据切片。
13.根据权利要求9-12中任一项所述的装置,其特征在于,所述包描述符还包含第二存储地址,所述包描述符还包含所述待交换数据包中第二数据切片在所述缓存中的第二存储地址,所述第一数据切片包含所述待交换数据包中所述第一数据切片和所述第二数据切片外的数据切片在所述缓存中的第三存储地址。
14.根据权利要求13所述的装置,其特征在于,所述处理模块具体用于:
根据所述第一存储地址从所述第一数据切片中获取所述第三存储地址;
重组所述第二存储地址和所述第三存储地址,得到所述切片地址链。
15.一种数据处理设备,其特征在于,包括处理器和通信接口,所述通信接口用于所述设备和其他设备之间进行信息交互,所述处理器执行程序指令,用以执行上述权利要求1-7中任一项所述的方法的操作步骤。
16.一种数据处理系统,其特征在于,所述计算机系统包括发送设备、接收设备和如权利要求15所述的数据处理设备,所述发送设备用于向所述数据处理设备发送待交换数据包,所述数据处理设备用于执行上述权利要求1-7中任一项所述的方法的操作步骤,以将所述待交换数据包发送至所述接收设备。
17.一种可读存储介质,其特征在于,所述可读存储介质包括计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得所述计算机执行上述权利要求1-7中任一所述的方法的操作步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211468987.0A CN118075221A (zh) | 2022-11-22 | 2022-11-22 | 数据处理方法、装置、设备、系统及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211468987.0A CN118075221A (zh) | 2022-11-22 | 2022-11-22 | 数据处理方法、装置、设备、系统及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118075221A true CN118075221A (zh) | 2024-05-24 |
Family
ID=91110081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211468987.0A Pending CN118075221A (zh) | 2022-11-22 | 2022-11-22 | 数据处理方法、装置、设备、系统及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118075221A (zh) |
-
2022
- 2022-11-22 CN CN202211468987.0A patent/CN118075221A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10182021B2 (en) | Crossbar switch and recursive scheduling | |
US10965586B2 (en) | Resilient network communication using selective multipath packet flow spraying | |
JP3872342B2 (ja) | ネットワークのための装置およびスケーラブル・ネットワーク・プロセッサ | |
JP4066382B2 (ja) | ネットワーク・スイッチ及びコンポーネント及び操作方法 | |
EP2613479B1 (en) | Relay device | |
JP3832816B2 (ja) | ネットワーク・プロセッサ、メモリ構成及び方法 | |
US6628615B1 (en) | Two level virtual channels | |
JP3817477B2 (ja) | Vlsiネットワーク・プロセッサ及び方法 | |
JP3807980B2 (ja) | ネットワーク・プロセッサ処理コンプレックス及び方法 | |
US20020118692A1 (en) | Ensuring proper packet ordering in a cut-through and early-forwarding network switch | |
EP1501247B1 (en) | Software configurable cluster-based router using stock personal computers as cluster nodes | |
US7142555B2 (en) | Method and apparatus for switching data using parallel switching elements | |
CN111434079B (zh) | 一种数据通信方法及装置 | |
CN118075221A (zh) | 数据处理方法、装置、设备、系统及可读存储介质 | |
US7164658B1 (en) | Distribution of data transfer load when transmitting layer-3 datagrams on a layer-2 network | |
CN116962161A (zh) | 路径检测方法、装置、系统及计算机可读存储介质 | |
CN113473267B (zh) | 数据传输方法、装置及通信装置 | |
US11533277B2 (en) | Method and system for virtual channel remapping | |
WO2022147762A1 (zh) | 一种数据包排序方法及装置 | |
CN118802791A (zh) | 报文转发方法、报文排序方法、装置及网络设备 | |
CN117640791A (zh) | 业务处理方法、装置及系统 | |
CN116633726A (zh) | 云网关和用于网络适配器的方法及网络适配器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |