CN112838992A - 报文调度方法及网络设备 - Google Patents
报文调度方法及网络设备 Download PDFInfo
- Publication number
- CN112838992A CN112838992A CN201911159671.1A CN201911159671A CN112838992A CN 112838992 A CN112838992 A CN 112838992A CN 201911159671 A CN201911159671 A CN 201911159671A CN 112838992 A CN112838992 A CN 112838992A
- Authority
- CN
- China
- Prior art keywords
- message
- packet
- queue
- priority
- time
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000005540 biological transmission Effects 0.000 claims abstract description 113
- HRULVFRXEOZUMJ-UHFFFAOYSA-K potassium;disodium;2-(4-chloro-2-methylphenoxy)propanoate;methyl-dioxido-oxo-$l^{5}-arsane Chemical compound [Na+].[Na+].[K+].C[As]([O-])([O-])=O.[O-]C(=O)C(C)OC1=CC=C(Cl)C=C1C HRULVFRXEOZUMJ-UHFFFAOYSA-K 0.000 claims 6
- 230000008569 process Effects 0.000 abstract description 17
- 230000004044 response Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000002146 bilateral effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种报文调度方法及网络设备。网络设备接收第一报文,并识别第一报文为数据流的关键报文;以及调整第一报文的传输资源,使第一报文的传输优先级高于数据流的非关键报文的传输优先级;调整第一报文的传输资源包括:调整第一报文的优先级,使第一报文进入第一队列;或调整第一报文对应的第一队列的传输带宽,使第一队列的传输优先级高于数据流的非关键报文对应的第二队列的传输优先级。采用本申请的方案,将识别出的关键报文在一个传输优先级高的队列中优先调度传输,使得关键流程被执行,以及后续流程能够通畅执行,提高了关键报文传输的优先级及整个数据流传输的通畅性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种报文调度方法及网络设备。
背景技术
在一些应用场景中,例如分布式应用中,多节点之间的操作存在前后的依赖关系,一旦关键流程被阻塞,那么后续操作将没有办法进行。对应到网络层面,关键流程涉及的报文,就是一种关键报文。
如图1所示,以分布式存储业务读操作为例,计算节点读取数据,需要先向存储节点发送读请求。存储节点在收到读请求之后,将被请求的数据发送给计算节点。但是一旦读请求在网络上被阻塞(如图1中,交换机中存在多个出端口队列,队列中的报文先进先出,作为关键报文的读请求报文被位于同一出端口队列1中的非关键报文阻塞),即使存储节点空闲,由于没有收到来自计算节点的读请求,计算节点读数据的需求也不能得到及时的响应。所以关键报文的阻塞,将会拖慢任务的完成时间,最终会影响用户的使用体验。
有鉴于此,如何调整关键报文的传输,使得关键报文可以及时发送出去,提高传输效率,是本申请需要解决的问题。
发明内容
本申请提供一种报文调度方法及网络设备,以使关键报文被优先调度,提高传输效率。
第一方面,提供了一种报文传输调整方法。网络设备接收第一报文,并识别所述第一报文为数据流的关键报文。所述网络设备调整所述第一报文的传输资源,使所述第一报文的传输优先级高于所述数据流的非关键报文的传输优先级。所述网络设备调整所述第一报文的传输资源包括:调整所述第一报文的优先级,使所述第一报文进入第一队列,所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级;或调整所述第一报文对应的第一队列的传输带宽,使所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级。
本申请将识别出的关键报文在一个传输优先级高的队列中优先调度传输,使得关键流程被执行,以及后续流程能够通畅执行,提高了关键报文传输的优先级及整个数据流传输的通畅性。
在一个实现中,所述调整所述第一报文的优先级,使所述第一报文进入第一队列,包括:修改所述第一报文的差分服务代码点DSCP值或虚拟局域网VLAN标签,使所述修改后的DSCP值或VLAN标签对应所述第一队列;以及根据DSCP值或VLAN标签与所述网络设备的队列的优先级的对应关系,将所述第一报文调度到所述第一队列中。
在该实现中,通过修改待优先调度的关键报文的DSCP值或VLAN标签,将关键报文调度到具有较高传输优先级的队列中,使得关键流程被执行,以及后续流程能够通畅执行,提高了关键报文及整个数据流传输的可靠性和通畅性。
在又一个实现中,所述网络设备数据流根据关键报文的标识,在所述网络设备接收到的多个报文中识别所述关键报文。
在又一个实现中,在接收第一报文之后,所述网络设备还记录所述网络设备接收到所述第一报文的第一时间。若所述第一时间与第二时间之间的时间间隔大于或等于第一时间间隔阈值时,所述网络设备调整所述第一报文的优先级,以使所述第一报文进入所述第一队列,其中,所述第二时间为第二报文离开所述网络设备的时间;所述第二报文为在所述第一报文之前接收到所述数据流的最后一个非关键报文。
在该实现中,在调度关键报文到具有较高传输优先级的队列中之前,判断该关键报文与关键报文之前接收到的该数据流的最后一个非关键报文之间的时间间隔是否大于设定值,提高了报文传输的秩序性,使得接收端接收到关键报文和非关键报文不乱序,同时,使得关键报文被优先调度,提高了关键报文及整个数据流传输的可靠性和通畅性。
在又一个实现中,所述第一时间间隔阈值为自定义的阈值,或者所述第一时间间隔阈值为最大的单程端到端时延。
在该实现中,端到端时延是指发送端到接收端之间的时延。
在又一个实现中,若所述第一时间与第二时间之间的时间间隔小于所述第一时间间隔阈值,所述网络设备保持所述第一报文原有的优先级。
在该实现中,如果关键报文与关键报文之前接收到的该数据流的最后一个非关键报文之间的时间间隔不大于设定值,为了使得接收端接收到关键报文和非关键报文不乱序,则不对该关键报文进行优先调度。
第二方面,提供了一种网络设备,包括:接收单元,用于接收第一报文;识别单元,用于识别所述第一报文为数据流的关键报文;以及调整单元,用于调整所述第一报文的传输资源,使所述第一报文的传输优先级高于所述数据流的非关键报文的传输优先级;所述调整单元用于调整所述第一报文的优先级,使所述第一报文进入第一队列,所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级;或所述调整单元用于调整所述第一报文对应的第一队列的传输带宽,使所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级。
在一个实现中,所述调整单元包括:修改单元,用于修改所述第一报文的差分服务代码点DSCP值或虚拟局域网VLAN标签,使所述修改后的DSCP值或VLAN标签对应所述第一队列;以及调度单元,用于根据DSCP值或VLAN标签与所述网络设备的队列的优先级的对应关系,将所述第一报文调度到所述第一队列中。
在又一个实现中,所述识别单元用于根据关键报文的标识,在所述网络设备接收到的多个报文中识别所述关键报文。
在又一个实现中,所述网络设备还包括:记录单元,用于记录所述网络设备接收到所述第一报文的第一时间;所述调整单元用于若所述第一时间与第二时间之间的时间间隔大于或等于第一时间间隔阈值时,调整所述第一报文的优先级,以使所述第一报文进入所述第一队列,其中,所述第二时间为第二报文离开所述网络设备的时间;所述第二报文为在所述第一报文之前接收到所述数据流的最后一个非关键报文。
在又一个实现中,所述第一时间间隔阈值为自定义的阈值,或者所述第一时间间隔阈值为最大的单程端到端时延。
在又一个实现中,所述调整单元还用于若所述第一时间与第二时间之间的时间间隔小于所述第一时间间隔阈值,保持所述第一报文原有的优先级。
第三方面,提供了一种网络设备,所述网络设备包括处理器和物理接口,其中,所述处理器用于执行上述第一方面或第一方面的任一个实现中的方法。
第四方面,提供了一种网络设备,所述网络设备包括存储器和处理器,所述存储器用于存储程序代码,所述处理器用于执行所述程序代码,以使所述网络设备执行上述第一方面或第一方面的任一个实现中的方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一个实现中的方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一个实现中的方法。
附图说明
图1为示例的分布式存储应用场景中关键报文被阻塞的示意图;
图2为本申请实施例提供的一种报文调度方案的系统架构示意图;
图3为本申请实施例提供的一种报文调度方法的流程示意图;
图4为本申请实施例提供的又一种报文调度方法的流程示意图;
图5为本申请实施例提供的又一种报文调度方法的流程示意图;
图6为示例的RoCEv2报文的调度示意图;
图7为本申请实施例提供的一种网络设备的结构示意图;
图8为本申请实施例提供的又一种网络设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
图2为本申请实施例提供的一种报文调度方案的系统架构示意图,一个或多个发送端(例如图2中的发送端1~发送端3)经过网络设备向接收端发送报文。该发送端是网络设备的上一跳,可以是服务器、交换设备,发送端流量进入网络设备。该接收端是网络设备的下一跳,可以是服务器、交换设备。网络设备将调度后的流量发往接收端。该网络设备可以是交换机等。网络设备的出端口具有多个优先级队列,其中最少有两个队列可进行优先级调度(priority queuing,PQ),即报文严格按照优先级调度顺序依次进入各队列等待传输,,高优先级队列的报文先于低优先级队列的报文转发,同一个队列内的报文遵守先进先出准则。
网络设备接收到一个或多个发送端发送的多个报文,该多个报文包括关键报文和非关键报文。其中,关键报文是指业务在运行过程的关键环节发送的报文,若关键报文被阻塞,关键环节无法完成,那么后续操作都无法开展。
在本申请中,网络设备识别同一数据流的中的关键报文,网络设备出端口优先转发关键报文,将关键报文调度到第一队列中传输,而非关键报文则在第二队列中传输。其中,第一队列的传输优先级高于第二队列的传输优先级。
采用本申请实施例提供的报文调度方案,将识别出的关键报文在一个传输优先级高的队列中优先调度传输,使得关键流程先被执行,以及后续流程能够通畅执行,提高了关键报文传输的优先级及整个数据流传输的通畅性。
下面对该报文调度方案涉及的方法流程和网络设备分别进行详细描述。
图3为本申请实施例提供的一种报文调度方法的流程示意图,示例性地,该方法可以包括步骤S101-S103。
在S101中、网络设备接收第一报文。
网络设备接收发送端发送的第一报文。该第一报文可以是数据流中的任一个报文。该数据流中的报文包括关键报文和非关键报文。其中,关键报文是指业务在运行过程的关键环节发送的报文。
S102、网络设备识别所述第一报文为数据流的关键报文。
网络设备的每个出端口具有多个队列,接收到的报文分别进入这多个队列中的相应队列。每个队列中的报文遵循“先进先出”的规则。因为传输带宽等因素影响,传输过程中可能会发生拥塞。若关键报文被阻塞,关键环节无法完成,那么后续操作都无法执行。
例如,在分布式存储场景中,数据都存储在存储节点(例如,存储服务器,存储阵列等)中,客户端跟存储节点通过交换网连接,客户端想要读数据,需要先向存储节点发送读请求。读请求一旦在交换网中阻塞,由于存储节点没有收到读请求,所以不能及时响应客户端的请求。这里的读请求报文就是关键报文。
又例如,在大数据场景中,任务节点需要首先向资源控制中心请求分配完成本次任务的计算资源。任务节点跟资源控制中心通过交换网连接,任务节点的资源分配请求被阻塞的话,同样的,由于没有被分配到计算资源,任务无法执行。这里的资源分配请求是关键报文。
因此,需要提高关键报文传输的优先级。
为了提高关键报文的优先级,网络设备需要先识别每个数据流中的关键报文,即识别接收到的第一报文是否是关键报文。具体地,可以根据报文的标识等识别接收到的上述第一报文是否为某个数据流的关键报文。关键报文的字段中可以包含一些特殊标识,网络设备可以通过识别这些字段中的特殊标识,识别出关键报文。
S103、所述网络设备调整所述第一报文的传输资源,使所述第一报文的传输优先级高于所述数据流的非关键报文的传输优先级。
当识别出接收到的第一报文为关键报文时,网络设备调整第一报文的传输资源,使第一报文的传输优先级高于该第一报文所属的数据流的非关键报文的传输优先级。即为关键报文的传输分配比非关键报文的传输更具有优势的传输资源,以使得关键报文尽可能被优先传输,提高关键报文传输的优先级。
需要指出的是,报文的传输资源的调整,是指对同一个数据流中的报文的传输资源的调整。同一个数据流是指收发两端建立的一条连接,在该连接内报文有序号,发送端按序发出,接收端按序接收,举例来说,传输控制协议(Transmission Control Protocol,TCP)以五元组区分报文是否是同一个数据流,RoCEv2以队列对(queue pair,QP)区分报文是否是同一个数据流。
该传输资源可以是报文在队列中的优先级,也可以是报文所在队列的传输带宽等。
具体地,在一个实现中,调整所述第一报文的传输资源包括:调整所述第一报文的优先级,使所述第一报文进入第一队列,所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级。
网络设备的多个队列中至少存在两个队列可以执行优先级调度。如图2所示,在识别第一报文为关键报文后,调整第一报文的优先级,使第一报文进入第一队列,第一队列的传输优先级高于数据流的非关键报文对应的第二队列的传输优先级。从而,第一队列中的报文被优先传输。
在另一个实现中,调整所述第一报文的传输资源包括:调整所述第一报文对应的第一队列的传输带宽,使所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级。在识别第一报文为关键报文后,调整第一报文对应的第一队列的传输带宽,使得第一队列的传输带宽大于第二队列的传输带宽,使得第一队列中的报文被优先传输,提高了第一队列中的报文传输的可靠性。
上述第二队列可以是一个或多个队列,该一个或多个第二队列的传输优先级均低于第一队列。
在网络设备调整第一报文的传输资源,利用该传输资源发送该第一报文后,接收端是按发送端发送报文的顺序接收到第一队列中的关键报文和第二队列中的非关键报文的,以使得接收端接收到的报文不乱序。
根据本申请实施例提供的一种报文调度方法,将识别出的关键报文在一个传输优先级高的队列中优先传输,使得关键流程被执行,提高了关键报文传输的优先级。
在实际网络系统中,同一个连接中,若盲目直接提高关键报文的优先级,很可能出现同一条数据流的先发送的低优先级的非关键报文还阻塞在交换网里,后发送的高优先级的关键报文由于走高优先级通道在交换设备上优先转发,先到达了接收端,造成接收端报文乱序,引发降速、重传等严重后果。例如,队列1、队列2可进行优先级调度,其中,队列1的优先级高于队列2。发送端依次发送报文1~报文3,网络设备依次接收到报文1~报文3。其中,报文2为关键报文,进入队列1;报文1、报文3为非关键报文,进入队列2。由于队列1的优先级高于队列2,队列1的报文优先发送,队列1的报文有可能先到达接收端,队列2的报文均后到达接收端,则接收端接收报文的顺序为报文2、报文1和报文3,明显地,报文在接收端乱序了。
因此,需要解决的问题还包括:如何给同一个数据流内的关键报文与非关键报文确定不同的优先级,并使得接收端接收到的报文不乱序。
图4为本申请实施例提供的又一种报文调度方法的流程示意图,示例性地,该方法可以包括:
S201、接收第一报文。
该步骤的具体实现可参考图3所示实施例的步骤S101。
S202、根据关键报文的标识,在网络设备接收到的多个报文中识别第一报文为关键报文。
网络设备的出端口具有多个队列,接收到的报文分别进入这多个队列。每个队列中的报文遵循“先进先出”的规则。因为传输带宽等因素影响,传输过程中可能会发生拥塞。若关键报文被阻塞,关键环节无法完成,那么后续操作都无法开展。
网络设备需要识别出数据流中的关键报文,即识别接收到的第一报文是否是关键报文。具体地,可以根据报文的标识等识别接收到的上述第一报文为该数据流的关键报文。关键报文的字段中可以包含一些特殊标识,网络设备可以通过识别这些字段中的特殊标识,过滤出关键报文。关键报文的标识的设置与实际业务相关。例如,分布式存储里的读请求是读操作中的关键报文,若业务需要使用本实施例的方案,则可以在构造读请求报文的时候,在报文的字段中设置唯一标识该报文的比特位。
具体地,可以利用交换机中的访问控制列表(access control list,ACL)模块识别关键报文和非关键报文。
S203、记录网络设备接收到第一报文的第一时间。
其中,S202和S203的步骤的执行顺序不限。即如果依次执行S202和S203,则可以是在识别出第一报文为关键报文后,记录网络设备接收到该关键报文的第一时间。如果先执行S203,再执行S202,也可以是对于网络设备接收到的任一报文,均记录网络设备接收到该报文的第一时间,然后再识别出其中的关键报文。
此外,还可以记录非关键报文离开网络设备的时间。
例如,网络设备记录接收到第一报文的时间为第50μs(该时间可以是一个相对时间),第二报文离开该网络设备的时间(即网络设备发送第二报文的时间)为第100μs,则得到网络设备发送报文的时间如下表1所示,以及报文离开网络设备的时间如下表2所示。当然也可以在一个表中记录网络设备发送报文的时间和报文离开网络设备的时间,本申请实施例对此不作限制:
表1网络设备发送报文的时间示例
报文标识 | 接收到报文的时间 |
第一报文 | 第50μs |
… | … |
表2报文离开的时间示例
报文标识 | 报文离开的时间 |
第二报文 | 第100μs |
其中,第一报文为关键报文,第二报文为非关键报文。网络设备为每个数据流建立表项,该表项记录该数据流最后一个非关键报文离开该设备的时间,并在收到最新的非关键报文的时候自动更新该表项。
S204、判断第一时间与第二时间之间的时间间隔是否大于或等于第一时间间隔阈值。如果是,则进行到步骤S205;否则,转至步骤S207。
为了使得接收端接收到关键报文和非关键报文不乱序,在进行优先级调度之前,可以判断第一时间与第二时间之间的时间间隔是否大于或等于第一时间间隔阈值。该第一时间间隔阈值可以是用户根据经验自定义的阈值,也可以是最大的单程端到端时延。端到端时延是指发送端到接收端的时延,具体是指报文从发送端网卡到达接收端网卡的时延。如果第一时间与第二时间之间的时间间隔大于或等于第一时间间隔阈值,可以保证网络设备接收到第一报文之前的所有非关键报文都已发送出去,并已经到达接收端网卡。
S205、第一时间与第二时间之间的时间间隔大于或等于第一时间间隔阈值,修改第一报文的差分服务代码点(differentiated services code point,DSCP)值或者虚拟局域网(virtual local area network,VLAN)标签,使修改后的DSCP值或VLAN标签对应第一队列。
如果第一时间与第二时间之间的时间间隔大于或等于第一时间间隔阈值,则可以对第一报文进行优先级的调整。
报文进入网络设备后,具体进入出端口的哪个队列,是根据优先级映射关系来选择的。报文有两种优先级携带方式,分别是因特网协议(Internet Protocol,IP)报文头中的DSCP值/字段以及VLAN标签(具体是VLAN标签中的用户优先级(user priority,PRI)字段或优先级码点(priority code point,PCP)字段),即DSCP值或VLAN标签用于标识报文的优先级。优先级映射用来实现报文携带的优先级与网络设备本地优先级(即网络设备内部区分报文的服务等级)之间的转换,然后网络设备根据本地优先级提供有差别的QoS服务。
报文优先级与网络设备内部优先级的映射关系如下表3所示:
表3报文优先级与网络设备内部优先级的映射关系示例
报文优先级 | 服务等级 |
0 | BE |
1 | AF1 |
2 | AF2 |
3 | AF3 |
4 | AF4 |
5 | EF |
6 | CS6 |
7 | CS7 |
网络设备内部优先级跟出端口的队列序号的映射关系如下表4所示:
表4网络设备内部优先级跟出端口的队列序号的映射关系示例
服务等级 | 队列索引 |
BE | 0 |
AF1 | 1 |
AF2 | 2 |
AF3 | 3 |
AF4 | 4 |
EF | 5 |
CS6 | 6 |
CS7 | 7 |
根据表3和表4,可以看出,网络设备的出端口有0~7共八个队列。优先级为0的报文会进入队列0,优先级1的报文会进入队列1,优先级2会进入队列2等等。
因此,要调整第一报文的优先级,则可以修改第一报文的DSCP值或VLAN标签,使修改后的DSCP值或VLAN标签对应第一队列。其中,第一队列的传输优先级高于数据流的非关键报文对应的第二队列的传输优先级。
S206、根据DSCP值或VLAN标签与所述网络设备的队列的优先级的对应关系,将所述第一报文调度到所述第一队列中。
根据上述表3和表4,即根据DSCP值或VLAN标签与网络设备的队列的优先级的对应关系,可以将第一报文调度到第一队列中。例如,第一报文的优先级为0,则根据报文优先级与网络设备内部优先级的映射关系、以及网络设备内部优先级跟出端口的队列序号的映射关系,可以将第一报文调度到网络设备的出端口的队列0进行优先传输。
S207、所述第一时间与第二时间之间的时间间隔小于所述第一时间间隔阈值,保持所述第一报文原有的优先级。
如果第一时间与第二时间之间的时间间隔小于第一时间间隔阈值,此时,如果再调度第一报文优先传输,则接收端接收第一报文和其它非关键报文的顺序会乱序。因此,为了使得接收端接收到关键报文和非关键报文不乱序,如果第一时间与第二时间之间的时间间隔小于第一时间间隔阈值,则不对第一报文进行优先级的调整,使得第一报文仍然保持原有的优先级进入相应的队列进行传输。
根据本申请实施例提供的一种报文调度方法,在调度关键报文到具有较高传输优先级的队列中之前,判断该关键报文与关键报文之前接收到的该数据流的最后一个非关键报文之间的时间间隔是否大于设定值,提高了报文传输的秩序性,使得接收端接收到关键报文和非关键报文不乱序,并且,使得不会乱序的关键报文被优先调度,提高了关键报文传输的效率。
图5为本申请实施例提供的又一种报文调度方法的流程示意图,示例性地,该方法可以包括:
S301、接收第一报文。
该步骤的具体实现可参考图3所示实施例的步骤S101,或图4所示实施例的步骤S201。
S302、根据关键报文的标识,在网络设备接收到的多个报文中识别第一报文为关键报文。
本实施例中数据流中传输的报文可以是RoCEv2报文。利用RoCEv2的点对点可靠连接的发送(send)、读取(read)操作自身的特点,可以实现关键报文的优先级调整。
其中,send、read是远程直接内存访问(remote direct memory access,RDMA)verbs的两类常见操作,其中send操作是双边操作,常用作传输节点之间的控制信息;read操作是单边操作,多用作传输数据报文。send报文包括多种类型:sendfirst,send middle,send last,sendonly等。read报文也包括多种类型:readrequest、readresponse first,readresponse middle,read response last等。
图6为示例的RoCEv2报文的调度示意图,虚拟块系统(virtual block system,VBS)通过网络设备可以与主对象存储设备(object-based storage device,OSD)之间通信。具体地,VBS可以向主OSD发送send_only报文,主OSD向VBS返回确认(ack)报文;主OSD可以向VBS发送读请求(read_request)报文,VBS向主OSD返回读响应(read_response)报文。主OSD也可以通过网络设备与一个或多个副OSD通信。具体地,主OSD可以向副OSD发送send_only报文,副OSD向主OSD返回ack报文;副OSD可以向主OSD发送read_request报文,主OSD向副OSD返回read_response报文。
其中,send_only报文与对应的ack报文的数据包序列号(packetsequencenumber,PSN)号相同,read_response报文的PSN号与对应的read_request的PSN号连续,即send跟read_response报文,即使发送方向相同,PSN号本身就是不连续的。如图6所示,VBS的PSN号排序到100,主OSD的PSN排序到200。例如,VBS先向主OSD发起写数据请求,send报文PSN号100,对应的主OSD回复的ack报文PSN号为100;然后主OSD向VBS请求数据,read_request报文序号是200,VBS对应地回复read_response的PSN是200,201。send与read_response同向,但是PSN不连续,所以在网络中可以优先于read response转发send报文,但是不会造成在接收端网卡乱序问题。
verbs不同的操作可以根据无限带宽(infiniband,IB)报文的opcode字段进行区分。opcode是RoCEv2报文头里的一个字段,这个字段表示具体是选择哪种操作,如下表5所示。一个opcode的值对应一种操作。
表5IB报文的opcode字段
字段值 | 报文名称 |
00000 | send first |
00001 | send middle |
00010 | send last |
00011 | send last with immediate |
00100 | send only |
00101 | send only with immediate |
00110 | RDMA write first |
00111 | RDMA write middle |
01000 | RDMA write last |
01001 | RDMA write last with immediate |
01010 | RDMA write only |
01011 | RDMA write only with immediate |
01100 | RDMA read request |
01101 | RDMA read response first |
01110 | RDMA read response middle |
01111 | RDMA read response last |
10000 | RDMA read response only |
… | … |
其中,send报文承载关键报文,read报文承载业务数据,网络设备根据报文中的opcode字段,即可识别出send报文作为关键报文。
S303、修改第一报文的差分服务代码点DSCP值或虚拟局域网VLAN标签,使修改后的DSCP值或VLAN标签对应第一队列。
该步骤的具体实现可参考图4所示示例的步骤S205。
S304、根据DSCP值或VLAN标签与所述网络设备的队列的优先级的对应关系,将所述第一报文调度到所述第一队列中。
该步骤的具体实现可参考图4所示示例的步骤S206。
根据本申请实施例提供的一种报文调度方法,将识别出的关键报文在一个传输优先级高的队列中优先调度传输,使得关键流程被执行,以及后续流程能够通畅执行,提高了关键报文及整个数据流传输的可靠性和通畅性。
基于上述实施例中的报文调度方法的同一构思,如图7所示,本申请实施例还提供一种网络设备1000,该网络设备1000可应用于上述图3~图5所示的报文调度方法中。该网络设备1000包括:接收单元11、识别单元12和调整单元13;还可以包括记录单元14(图中以虚线表示)。示例性地:
接收单元11,用于接收第一报文;
识别单元12,用于识别所述第一报文为数据流的关键报文;
调整单元13,用于调整所述第一报文的传输资源,使所述第一报文的传输优先级高于所述数据流的非关键报文的传输优先级;
所述调整单元13用于调整所述第一报文的优先级,使所述第一报文进入第一队列,所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级;或
所述调整单元13用于调整所述第一报文对应的第一队列的传输带宽,使所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级。
在一个实现中,所述调整单元13包括:
修改单元131,用于修改所述第一报文的差分服务代码点DSCP值或虚拟局域网VLAN标签,使所述修改后的DSCP值或VLAN标签对应所述第一队列;
调度单元132,用于根据DSCP值或VLAN标签与所述网络设备的队列的优先级的对应关系,将所述第一报文调度到所述第一队列中。
在又一个实现中,所述识别单元12用于根据关键报文的标识,在所述网络设备接收到的多个报文中识别所述关键报文。
在又一个实现中,记录单元14,用于记录所述网络设备接收到所述第一报文的第一时间;
所述调整单元13用于若所述第一时间与第二时间之间的时间间隔大于或等于第一时间间隔阈值时,调整所述第一报文的优先级,以使所述第一报文进入所述第一队列,其中,所述第二时间为第二报文离开所述网络设备的时间;所述第二报文为在所述第一报文之前接收到所述数据流的最后一个非关键报文。
在又一个实现中,所述第一时间间隔阈值为自定义的阈值,或者所述第一时间间隔阈值为最大的单程端到端时延。
在又一个实现中,所述调整单元13还用于若所述第一时间与第二时间之间的时间间隔小于所述第一时间间隔阈值,保持所述第一报文原有的优先级。
有关上述各单元更详细的描述可以参考上述图3~图5所示的报文调度方法中网络设备的相关描述,这里不加赘述。
根据本申请实施例提供的一种网络设备,将识别出的关键报文在一个传输优先级高的队列中优先调度传输,使得关键流程被执行,以及后续流程能够通畅执行,提高了关键报文传输的优先级及整个数据流传输的通畅性。
本申请实施例还提供一种网络设备,图8为本申请实施例提供的又一种网络设备的结构示意图。该网络设备2000包括物理接口21和处理器22。物理接口21用于收发消息。处理器22用于执行图3~图5中网络设备所执行的方法步骤。
物理接口21的数量可以为一个或多个。物理接口21可以包括有线接口。例如,有线接口可以包括以太网接口、异步传输模式接口、光纤通道接口或其任意组合。以太网接口可以为电接口或光接口。物理接口21并不一定包括(尽管通常包括)以太网接口。
处理器22的数量可以为一个或多个。处理器22包括中央处理器,网络处理器,专用集成电路,可编程逻辑器件(programmable logic device,PLD)或其任意组合。上述PLD可以是复杂可编程逻辑器件,现场可编程门阵列,通用阵列逻辑或其任意组合。处理器22可以包括控制面221和转发面222。控制面221和转发面222可以由独立的电路实现,也可以整合在一个电路中。例如,处理器22为多核CPU。多个核中的一个或一些实现控制面221,其他的核实现转发面222。又例如,控制面221由CPU实现,转发面222由网络处理器(networkprocessor,NP),专用集成电路(application specific integrated circuit,ASIC),现场可编程逻辑门阵列(field programmable gate array,FPGA)或其任意组合实现。又例如,网络设备为框式网络设备,控制面221由主控卡实现,转发面222由线卡实现。又例如,控制面221和转发面222都由带控制面能力的NP实现。
在一个实现中,网络设备2000还可以包括存储器,该存储器中存储程序代码,处理器22可以调用存储器中的程序代码,以执行图3~图5中网络设备所执行的方法步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存储存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
Claims (14)
1.一种报文调度方法,其特征在于,包括:
网络设备接收第一报文,并识别所述第一报文为数据流的关键报文;
所述网络设备调整所述第一报文的传输资源,使所述第一报文的传输优先级高于所述数据流的非关键报文的传输优先级;
所述调整所述第一报文的传输资源包括:
调整所述第一报文的优先级,使所述第一报文进入第一队列,所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级;或
调整所述第一报文对应的第一队列的传输带宽,使所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级。
2.根据权利要求1所述的方法,其特征在于,所述调整所述第一报文的优先级,使所述第一报文进入第一队列,包括:
修改所述第一报文的差分服务代码点DSCP值或虚拟局域网VLAN标签,使所述修改后的DSCP值或VLAN标签对应所述第一队列;
根据DSCP值或VLAN标签与所述网络设备的队列的优先级的对应关系,将所述第一报文调度到所述第一队列中。
3.根据权利要求1或2所述的方法,其特征在于,所述识别所述第一报文为数据流的关键报文,包括:
根据关键报文的标识,在所述网络设备接收到的多个报文中识别所述关键报文。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,
网络设备接收第一报文之后,所述方法还包括:
记录所述网络设备接收到所述第一报文的第一时间;
所述调整所述第一报文的优先级包括:
若所述第一时间与第二时间之间的时间间隔大于或等于第一时间间隔阈值时,调整所述第一报文的优先级,以使所述第一报文进入所述第一队列,其中,所述第二时间为第二报文离开所述网络设备的时间;所述第二报文为在所述第一报文之前接收到所述数据流的最后一个非关键报文。
5.根据权利要求4所述的方法,其特征在于,所述第一时间间隔阈值为自定义的阈值,或者所述第一时间间隔阈值为最大的单程端到端时延。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
若所述第一时间与第二时间之间的时间间隔小于所述第一时间间隔阈值,保持所述第一报文原有的优先级。
7.一种网络设备,其特征在于,包括:
接收单元,用于接收第一报文;
识别单元,用于识别所述第一报文为数据流的关键报文;
调整单元,用于调整所述第一报文的传输资源,使所述第一报文的传输优先级高于所述数据流的非关键报文的传输优先级;
当调整所述第一报文的传输资源时,
所述调整单元用于调整所述第一报文的优先级,使所述第一报文进入第一队列,所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级;或
所述调整单元用于调整所述第一报文对应的第一队列的传输带宽,使所述第一队列的传输优先级高于所述数据流的非关键报文对应的第二队列的传输优先级。
8.根据权利要求7所述的网络设备,其特征在于,所述调整单元包括:
修改单元,用于修改所述第一报文的差分服务代码点DSCP值或虚拟局域网VLAN标签,使所述修改后的DSCP值或VLAN标签对应所述第一队列;
调度单元,用于根据DSCP值或VLAN标签与所述网络设备的队列的优先级的对应关系,将所述第一报文调度到所述第一队列中。
9.根据权利要求7或8所述的网络设备,其特征在于,所述识别单元用于根据关键报文的标识,在所述网络设备接收到的多个报文中识别所述关键报文。
10.根据权利要求7-9中任意一项所述的网络设备,其特征在于,还包括:
记录单元,用于记录所述网络设备接收到所述第一报文的第一时间;
所述调整单元用于若所述第一时间与第二时间之间的时间间隔大于或等于第一时间间隔阈值时,调整所述第一报文的优先级,以使所述第一报文进入所述第一队列,其中,所述第二时间为第二报文离开所述网络设备的时间;所述第二报文为在所述第一报文之前接收到所述数据流的最后一个非关键报文。
11.根据权利要求10所述的网络设备,其特征在于,所述第一时间间隔阈值为自定义的阈值,或者所述第一时间间隔阈值为最大的单程端到端时延。
12.根据权利要求10或11所述的网络设备,其特征在于,所述调整单元还用于若所述第一时间与第二时间之间的时间间隔小于所述第一时间间隔阈值,保持所述第一报文原有的优先级。
13.一种网络设备,其特征在于,所述网络设备包括处理器和物理接口,其中,所述处理器用于执行如权利要求1-6中任意一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911159671.1A CN112838992B (zh) | 2019-11-22 | 2019-11-22 | 报文调度方法及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911159671.1A CN112838992B (zh) | 2019-11-22 | 2019-11-22 | 报文调度方法及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112838992A true CN112838992A (zh) | 2021-05-25 |
CN112838992B CN112838992B (zh) | 2024-06-14 |
Family
ID=75922706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911159671.1A Active CN112838992B (zh) | 2019-11-22 | 2019-11-22 | 报文调度方法及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112838992B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115209231A (zh) * | 2022-09-07 | 2022-10-18 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备和计算机可读存储介质 |
CN115277883A (zh) * | 2022-06-27 | 2022-11-01 | 新华三技术有限公司 | 一种报文转发方法以及装置 |
CN115865831A (zh) * | 2023-02-25 | 2023-03-28 | 广州翼辉信息技术有限公司 | 一种基于多队列加速网络性能的方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184024A (zh) * | 2006-11-14 | 2008-05-21 | 中兴通讯股份有限公司 | 优先级调度装置 |
KR20100069441A (ko) * | 2008-12-16 | 2010-06-24 | 한국전자통신연구원 | 큐잉 지연 기반의 우선순위 스케줄링 방법 |
WO2016177215A1 (zh) * | 2015-08-12 | 2016-11-10 | 中兴通讯股份有限公司 | 网络控制的处理方法、装置及软件定义网络系统 |
WO2017000836A1 (zh) * | 2015-06-29 | 2017-01-05 | 华为技术有限公司 | 一种报文传输方法及装置 |
WO2018117280A1 (ko) * | 2016-12-19 | 2018-06-28 | 엘지전자(주) | 네트워크 장치 및 네트워크 장치의 큐 관리 방법 |
CN108429703A (zh) * | 2018-03-12 | 2018-08-21 | 普联技术有限公司 | Dhcp客户端上线方法及装置 |
CN109274601A (zh) * | 2018-08-15 | 2019-01-25 | 迈普通信技术股份有限公司 | 服务质量调度方法及装置 |
CN109391555A (zh) * | 2017-08-08 | 2019-02-26 | 迈普通信技术股份有限公司 | 报文调度方法、装置及通信设备 |
WO2019179384A1 (zh) * | 2018-03-22 | 2019-09-26 | 华为技术有限公司 | 一种通信方法及相关设备 |
CN110445666A (zh) * | 2018-05-04 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 一种网络质量检测方法、装置及服务器 |
-
2019
- 2019-11-22 CN CN201911159671.1A patent/CN112838992B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184024A (zh) * | 2006-11-14 | 2008-05-21 | 中兴通讯股份有限公司 | 优先级调度装置 |
KR20100069441A (ko) * | 2008-12-16 | 2010-06-24 | 한국전자통신연구원 | 큐잉 지연 기반의 우선순위 스케줄링 방법 |
WO2017000836A1 (zh) * | 2015-06-29 | 2017-01-05 | 华为技术有限公司 | 一种报文传输方法及装置 |
WO2016177215A1 (zh) * | 2015-08-12 | 2016-11-10 | 中兴通讯股份有限公司 | 网络控制的处理方法、装置及软件定义网络系统 |
WO2018117280A1 (ko) * | 2016-12-19 | 2018-06-28 | 엘지전자(주) | 네트워크 장치 및 네트워크 장치의 큐 관리 방법 |
CN109391555A (zh) * | 2017-08-08 | 2019-02-26 | 迈普通信技术股份有限公司 | 报文调度方法、装置及通信设备 |
CN108429703A (zh) * | 2018-03-12 | 2018-08-21 | 普联技术有限公司 | Dhcp客户端上线方法及装置 |
WO2019179384A1 (zh) * | 2018-03-22 | 2019-09-26 | 华为技术有限公司 | 一种通信方法及相关设备 |
CN110445666A (zh) * | 2018-05-04 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 一种网络质量检测方法、装置及服务器 |
CN109274601A (zh) * | 2018-08-15 | 2019-01-25 | 迈普通信技术股份有限公司 | 服务质量调度方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277883A (zh) * | 2022-06-27 | 2022-11-01 | 新华三技术有限公司 | 一种报文转发方法以及装置 |
CN115209231A (zh) * | 2022-09-07 | 2022-10-18 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备和计算机可读存储介质 |
CN115209231B (zh) * | 2022-09-07 | 2024-03-22 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备和计算机可读存储介质 |
CN115865831A (zh) * | 2023-02-25 | 2023-03-28 | 广州翼辉信息技术有限公司 | 一种基于多队列加速网络性能的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112838992B (zh) | 2024-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109412964B (zh) | 报文控制方法及网络装置 | |
US11316774B2 (en) | Path selection method and apparatus | |
US9185047B2 (en) | Hierarchical profiled scheduling and shaping | |
CN112838992B (zh) | 报文调度方法及网络设备 | |
US8121120B2 (en) | Packet relay apparatus | |
US11290388B2 (en) | Flow control method and apparatus | |
EP2991306B1 (en) | Technologies for aligning network flows to processing resources | |
KR20140034872A (ko) | 원격 직접 메모리 액세스를 통한 임의 사이즈의 전송 기법 | |
WO2021098425A1 (zh) | 配置业务的服务质量策略方法、装置和计算设备 | |
US7123614B2 (en) | Method and device for communicating between a first and a second network | |
CN112583636B (zh) | 一种政务网络切片的构造方法、电子设备和存储介质 | |
EP3726787B1 (en) | Data stream sending method, device and system | |
US10911364B2 (en) | Packet processing method and router | |
US7209489B1 (en) | Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing | |
WO2019165855A1 (zh) | 一种报文传输的方法及装置 | |
WO2015180426A1 (zh) | 一种数据传输方法、装置及系统 | |
WO2023226716A1 (zh) | 数据包发送方法、转发节点、发送端及存储介质 | |
KR20220027715A (ko) | 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스를 제공하는 프로그램 | |
CN116489777A (zh) | 应用于tdma数据链时隙资源复用的方法、介质及装置 | |
WO2017219950A1 (en) | System and method for mtu size reduction in a packet network | |
CN113541992A (zh) | 一种数据传输的方法和装置 | |
CN112714071A (zh) | 一种数据发送方法及装置 | |
WO2022246710A1 (zh) | 一种控制数据流传输的方法及通信装置 | |
WO2023273788A1 (zh) | 一种数据处理方法以及相关装置 | |
US20240137332A1 (en) | Transmission of a signal from a first electronic component of a vehicle to at least one second electronic component of the vehicle |
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 |