CN113872881A - 队列信息的处理方法及装置 - Google Patents

队列信息的处理方法及装置 Download PDF

Info

Publication number
CN113872881A
CN113872881A CN202010616280.4A CN202010616280A CN113872881A CN 113872881 A CN113872881 A CN 113872881A CN 202010616280 A CN202010616280 A CN 202010616280A CN 113872881 A CN113872881 A CN 113872881A
Authority
CN
China
Prior art keywords
queue
cache
queuing
message
network device
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
Application number
CN202010616280.4A
Other languages
English (en)
Inventor
侯杰
宋跃忠
李磊
李广
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010616280.4A priority Critical patent/CN113872881A/zh
Publication of CN113872881A publication Critical patent/CN113872881A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种队列信息的处理方法,网络设备可以获取第一报文,并确定用于缓存第一报文的队列为第一队列。进一步地,网络设备可以根据第一队列的缓存的使用情况,确定第一报文需要被缓存至第一缓存中。第一队列的缓存包括第一缓存。第一报文需要被缓存至第一缓存中,说明第一报文需要在第一缓存中排队。因此,可以根据第一报文更新第一缓存对应的排队信息。第一缓存对应的排队信息,用于指示一定时间段内第一缓存的累计使用情况。由此可见,利用本方案,可以在获取第一报文之后,对第一缓存的排队信息进行更新,使得第一缓存的排队信息与一定时间段内在第一缓存中的排队的报文情况吻合,从而能够准确的确定第一缓存的排队信息。

Description

队列信息的处理方法及装置
技术领域
本申请涉及通信领域,尤其涉及一种队列信息的处理方法及装置。
背景技术
网络设备在转发报文时,可以将报文缓存在队列中。缓存在队列中的报文可能需要排队出队列。队列的排队情况,可以体现网络设备的报文处理效率。网络设备的报文处理效率在一定程度上会影响报文在网络设备中的驻留时间,进一步影响报文的端到端传输时延。因此,确定队列的排队情况尤为重要。
目前确定队列的排队情况的方案,并不能准确的确定队列的排队情况。
因此,急需一种方案,可以准确的确定队列的排队情况。
发明内容
本申请实施例提供了一种队列信息的处理方法,可以准确的确定队列的排队情况。
第一方面,本申请实施例提供了一种队列信息的处理方法,该方法可以由网络设备执行。具体地:网络设备可以获取第一报文,网络设备获取第一报文之后,可以确定用于缓存第一报文的队列为第一队列。网络设备确定用于缓存第一报文的队列为第一队列之后,可以进一步根据第一队列的缓存的使用情况,确定第一报文需要被缓存至第一缓存中。其中,第一队列的缓存可以包括多个缓存,第一缓存是该多个缓存中的其中一个缓存。第一报文需要被缓存至第一缓存中,说明第一报文需要在第一缓存中排队。因此,在本申请实施例中,可以根据第一报文更新第一缓存对应的排队信息。第一缓存对应的排队信息,用于指示一定时间段内第一缓存的累计使用情况。换言之,第一缓存对应的排队信息,可以用于指示一定时间段内在第一缓存内排队的报文信息。通过以上描述可知,利用本申请实施例的方案,可以在网络设备获取到第一报文之后,对用于缓存第一报文的第一缓存的排队信息进行更新,使得第一缓存的排队信息与一定时间段内在第一缓存中的排队的报文情况吻合,从而能够准确的确定第一缓存的排队信息。
在一种可能的实现方式中,第一队列的缓存是按照缓存长度进行划分的,对于这种情况,网络设备获取第一报文之后,可以根据第一队列中缓存的报文长度,确定第一报文需要被缓存至所述第一缓存中。
在一种可能的实现方式中,第一队列的缓存是按照缓存能够存储的报文数量进行划分的,对于这种情况,网络设备获取第一报文之后,可以根据第一队列缓存的报文数量,确定第一报文需要被缓存至第一缓存中。
在一种可能的实现方式中,排队信息可以是报文排队数量,也可以是报文排队长度。当排队信息是报文排队数量时,第一缓存对应的排队信息,用于指示一定时间段内在第一缓存中排队的报文数量。当排队信息是报文排队长度时,第一缓存对应的排队信息,用于指示一定时间段内在第一缓存中排队的报文长度。
在一种可能的实现方式中,若排队信息是报文排队数量,则网络设备根据第一报文更新第一缓存对应的排队信息在具体实现时,网络设备可以获取第一数量,第一数量为获取第一报文之前第一缓存对应的报文排队数量。获得第一数量之后,网络设备将第一缓存对应的报文排队数量更新为第一数量和第二数量的和。
在一种可能的实现方式中,若网络设备每接收到一条报文,则根据该报文更新缓存该报文的缓存对应的排队信息,则第二数量等于1。对于这种情况,利用本申请实施例的方案所确定的第一缓存的排队信息,能够准确的体现一定时间段内第一缓存的累计使用情况。
在一种可能的实现方式中,若排队信息是报文排队长度,则网络设备根据第一报文更新第一缓存对应的排队信息在具体实现时,网络设备可以获取第一长度,第一长度为获取第一报文之前第一缓存对应的报文排队长度。获得第一长度之后,网络设备将第一缓存对应的报文排队长度更新为第一长度和第二长度的和。
在一种可能的实现方式中,若网络设备每接收到一条报文,则根据该报文更新缓存该报文的缓存对应的排队信息,则第二长度等于第一报文的长度。对于这种情况,利用本申请实施例的方案所确定的第一缓存的排队信息,能够准确的体现一定时间段内第一缓存的累计使用情况。
在一种可能的实现方式中,由于第一队列的缓存包括多个缓存,该多个缓存中的每个缓存是第一队列的缓存的一部分。因此,所述多个缓存中每个缓存对应的排队信息,可以体现第一队列的缓存的部分排队信息。考虑到第一队列对应的排队信息,可以体现第一队列的报文处理效率,因此,在一些实施例中,网络设备确定第一队列对应的多个缓存分别对应的排队信息之后,还可以根据该多个缓存中至少两个缓存分别对应的排队信息,确定第一队列对应的排队信息。其中,第一队列对应的排队信息,用于指示一定时间段内第一队列的缓存的累计使用情况。
在一种可能的实现方式中,考虑到前述多个缓存中至少两个缓存分别对应的排队信息之间的比例关系,可以体现各缓存对应的排队信息的分布情况。而各缓存对应的排队信息的分布情况,可以表示网络设备的报文处理效率。因此,网络设备可以将所述至少两个缓存分别对应的排队信息之间的比例关系,确定为所述第一队列对应的排队信息。
在一种可能的实现方式中,一个端口可以对应多个队列。对于第一端口而言,其也可以对应多个队列。考虑到第一端口对应的各个队列的排队信息,可以体现第一端口的报文处理效率。因此,在一些实施例中,可以确定第一端口对应的多个队列中的至少两个队列分别对应的排队信息,确定所述第一端口对应的多个队列中的至少两个队列分别对应的排队信息之后,可以根据所述至少两个队列分别对应的排队信息,重新分配所述至少两个队列占用所述第一端口的带宽资源,以提升所述第一端口的报文处理效率。
在一种可能的实现方式中,网络设备重新分配所述至少两个队列的占用所述第一端口的带宽资源在具体实现时,例如可以根据所述至少两个队列分别对应的排队信息,确定所述至少两个队列中载荷较轻的队列和载荷较重的队列,并将所述载荷较轻的队列占用所述第一端口的带宽资源中的一部分,重新分配给所述载荷较重的队列。这么做的原因在于,对于载荷较轻的队列而言,其无需占用太多的带宽资源。若将载荷较轻的队列占第一端口的带宽资源转移一部分给载荷较重的队列,则载荷较重的队列中的报文出队速率会得到提升,相应的,会减轻该载荷较重的队列中的排队现象,从而提升了第一端口的报文处理效率。
在一种可能的实现方式中,报文在队列中排队会产生一定的排队时延。报文在队列中的排队时延,对于报文的端到端时延有一定的影响,因此,确定队列的排队时长分布尤为重要。在一些实施例中,网络设备确定至少两个队列分别对应的排队信息之后,还可以进一步根据所述至少两个队列的排队信息,确定所述至少两个队列分别对应的排队时长分布。其中,一个队列的排队时长分布,包括该队列对应的至少两个缓存分别对应的排队时长、以及所述两个缓存分别对应的排队时长的概率。一个队列的排队时长分布,可以用于指示缓存在该队列中的报文的排队时延。
在一种可能的实现方式中,在确定第一端口对应的至少两个队列分别对应的排队时长分布之后,若网络设备若获取到第二报文,且确定用于处理第二报文的端口为第一端口。则为了降低报文在网络设备中的排队时长,网络设备可以根据前述至少两个队列分别对应的排队时长分布,确定排队时长较小的队列,并将第二报文缓存至所述排队时长较小的队列中,以减少第二报文在网络设备中的排队时长。
在一种可能的实现方式中,在业务部署阶段,为了满足业务的时延需求,网络管理设备还可以结合网络设备的队列的排队时长分布,确定缓存业务流的具体队列。对于这种情况,网络设备在确定前述至少两个队列分别对应的排队时长分布之后,还可以将所确定的排队时长分布发送给网络管理设备。
在一种可能的实现方式中,考虑到网络设备根据第一队列的缓存的使用情况确定第一报文需要被缓存至第一缓存中、以及根据第一报文更新第一缓存对应的排队信息需要耗费一定的资源,因此,在一些实施例中,为了节省网络设备的资源消耗,可以对网络设备中的部分队列应用本申请实施例提供的方案。作为一个示例,网络设备可以基于指示信息对第一队列应用本申请实施例的方案。其中,该指示信息用于指示网络设备确定第一队列的排队信息。
第二方面,本申请实施例提供了一种队列信息的处理方法,该方法可以由网络管理设备执行。具体地:网络管理设备可以获取业务流从第一网络设备转发至第二网络设备的时延需求,并获取多个端口中每个端口分别对应的队列的排队时长分布,其中,该多个端口为用于转发该业务流的网络设备上的端口,该多个端口用于转发该业务流。业务流的传输时延包括第一网络设备和第二网络设备之间的链路传输时延、以及在转发所述业务流的网络设备用于缓存所述业务流的队列中的排队时长。因此,网络设备可以根据该业务流的时延需求、前述每个队列分别对应的排队时长分布、以及所述第一网络设备和所述第二网络设备之间的链路传输时延,确定所述每个端口用于缓存所述业务流的队列,使得转发业务流的网络设备将所述业务流缓存至所确定的队列中时,该业务流的传输时延能够满足所述时延需求。由此可见,利用该方案,可以根据业务流的时延需求和队列的排队时长分布,确定能够满足所述业务流的时延需求的、用于缓存业务流的队列,从而保证服务质量。
在一种可能的实现方式中,网络管理设备确定各个端口用于缓存该业务流的队列之后,可以生成转发该业务流的转发路径,并将所述每个端口用于缓存所述业务流的队列携带在所述转发路径中。而后,网络设备可以将该转发路径发送给第一网络设备,以指导第一网络设备转发业务流。
在一种可能的实现方式中,若第一网络设备和第二网络设备之间部署有互联网协议第6版分段路由(Segment Routing Internet Protocol Version 6,SRv6)隧道,则网络管理设备可以生成用于指示前述转发路径的段标识(segment identifier,SID)列表,并将该SID列表发送给第一网络设备。这样一来,第一网络设备以及转发该业务流的网络设备即可根据该SID列表确定缓存所述业务流的队列。
在一种可能的实现方式中,考虑到业务流的优先级与队列的优先级之间有一定的对应关系,一般情况下,业务流优先级越高,缓存该业务流的队列的优先级也越高。换言之,网络设备在确定缓存业务流的队列时,可以根据业务流中的参数来确定。因此,在一种实现方式中,网络管理设备确定每个端口用于缓存所述业务流的队列之后,可以根据所述每个端口用于缓存所述业务流的队列的优先级,确定业务流的第一参数,第一参数用于指示业务流优先级,所述第一参数还用于指示转发业务流的网络设备确定缓存所述业务流的队列。而后,网络管理设备可以将该第一参数发送给第一网络设备,以使得第一网络设备根据第一参数确定缓存该业务流的队列。
在一种可能的实现方式中,转发业务流的网络设备数量可能比较多,而每个网络设备用于缓存业务流的队列的优先级可能并不一样。对于这种情况,由于优先级越高,其对应的排队时长一般会越小,为了使得业务流的时延需求被满足,在确定第一参数时,可以根据所述多个队列中的最高优先级确定第一参数,即所确定的业务流的优先级,与缓存所述业务流的多个队列的最高优先级对应。
在一种可能的实现方式中,第一参数可以为差分服务编码点(differentiatedservices code point,DSCP)。
第三方面,本申请实施例提供了一种队列信息的处理装置,所述装置包括:获取单元,用于获取第一报文;确定单元,用于根据第一队列的缓存的使用情况,确定所述第一报文需要被缓存至第一缓存,所述第一队列的缓存包括多个缓存,所述多个缓存包括所述第一缓存;更新单元,用于根据所述第一报文更新所述第一缓存对应的排队信息,所述第一缓存对应的排队信息,用于指示一定时间段内所述第一缓存的累计使用情况。
在一种可能的实现方式中,所述确定单元,用于:根据所述第一队列中缓存的报文长度,确定所述第一报文需要被缓存至所述第一缓存;或者,根据所述第一队列中缓存的报文数量,确定所述第一报文需要被缓存至所述第一缓存。
在一种可能的实现方式中,所述排队信息包括:报文排队数量;或者,报文排队长度。
在一种可能的实现方式中,若所述排队信息为报文排队数量,所述更新单元,用于:获取第一数量,所述第一数量为获取所述第一报文之前所述第一缓存对应的报文排队数量;将所述第一缓存对应的报文排队数量更新为第一数量和第二数量的和。
在一种可能的实现方式中,所述第二数量等于1。
在一种可能的实现方式中,若所述排队信息为报文排队长度,所述更新单元,用于:获取第一长度,所述第一长度为获取所述第一报文之前所述第一缓存对应的报文排队长度;将所述第一缓存对应的报文排队长度更新为第一长度和第二长度的和。
在一种可能的实现方式中,所述第二长度为所述第一报文的长度。
在一种可能的实现方式中,所述获取单元,还用于获取所述多个缓存中至少两个缓存分别对应的排队信息;所述确定单元,还用于根据所述至少两个缓存分别对应的排队信息,确定所述第一队列对应的排队信息,所述第一队列对应的排队信息,用于指示所述一定时间段内所述的第一队列的缓存的累计使用情况。
在一种可能的实现方式中,所述确定单元,用于:将所述至少两个缓存分别对应的排队信息之间的比例关系,确定为所述第一队列对应的排队信息。
在一种可能的实现方式中,所述第一队列为与第一端口对应的队列,所述第一端口对应多个队列,所述获取单元,还用于获取所述多个队列中至少两个队列分别对应的排队信息;所述装置还包括分配单元,用于根据所述至少两个队列分别对应的排队信息,重新分配所述至少两个队列的占用所述第一端口的带宽资源,以提升所述第一端口的报文处理效率。
在一种可能的实现方式中,所述分配单元,用于:根据所述至少两个队列分别对应的排队信息,确定所述至少两个队列中载荷较轻的队列和载荷较重的队列;将所述载荷较轻的队列占用所述第一端口的带宽资源中的一部分,重新分配给所述载荷较重的队列。
在一种可能的实现方式中,所述确定单元还用于:根据所述至少两个队列分别对应的排队信息,确定所述至少两个队列分别对应的排队时长分布;其中:所述第一队列对应的排队时长分布包括:所述至少两个缓存分别对应的排队时长以及所述两个缓存分别对应的排队时长的概率,所述至少两个缓存包括第二缓存,第二缓存对应的排队时长的概率,等于所述第二缓存对应的排队信息与第一队列的总排队信息的比值,所述第一队列的总排队信息,为所述第一队列包括的多个缓存的排队信息之和。
在一种可能的实现方式中,所述获取单元还用于:获取第二报文;所述确定单元还用于:确定用于处理所述第二报文的端口为所述第一端口;所述确定单元还用于:根据所述至少两个队列分别对应的排队时长分布,确定排队时长较小的队列;所述装置还包括:缓存单元,用于将所述第二报文缓存至所述排队时长较小的队列中。
在一种可能的实现方式中,所述装置还包括:发送单元,用于将所述至少两个队列分别对应的排队时长分布发送给网络管理设备。
在一种可能的实现方式中,所述获取单元,还用于:在根据第一队列的缓存的使用情况,确定所述第一报文需要被缓存至第一缓存之前,获取指示信息,所述指示信息用于指示确定所述第一队列的排队信息。
第四方面,本申请实施例提供了一种队列信息的处理装置,所述装置包括:获取单元,用于获取业务流从第一网络设备转发至第二网络设备的时延需求;所述获取单元,还用于获取多个端口中每个端口分别对应的队列的排队时长分布,所述多个端口为用于转发所述业务流的网络设备上的端口,所述多个端口用于转发所述业务流;确定单元,用于根据所述时延需求、所述每个队列分别对应的排队时长分布、以及所述第一网络设备和所述第二网络设备之间的链路传输时延,确定所述每个端口用于缓存所述业务流的队列,以满足所述时延需求。
在一种可能的实现方式中,所述装置还包括:生成单元,用于生成用于转发所述业务流的转发路径,所述转发路径中携带所述每个端口用于缓存所述业务流的队列;发送单元,用于将所述转发路径发送给所述第一网络设备。
在一种可能的实现方式中,所述第一网络设备和所述第二网络设备之间部署互联网协议第6版段路由SRv6隧道,所述发送单元,用于:将指示所述转发路径的段标识SID列表发送给所述第一网络设备。
在一种可能的实现方式中,所述确定单元,还用于根据所述每个端口用于缓存所述业务流的队列的优先级,确定所述业务流的第一参数,所述第一参数用于指示所述业务流优先级,所述第一参数用于指示转发所述业务流的网络设备确定缓存所述业务流的队列;所述发送单元,还用于将所述第一参数发送给所述第一网络设备。
在一种可能的实现方式中,所述业务流的优先级与多个队列的最高优先级对应,所述多个队列为所述每个端口用于缓存所述业务流的队列。
在一种可能的实现方式中,所述第一参数为:差分服务编码点DSCP。
第五方面,本申请实施例提供了一种设备。所述设备包括处理器和存储器。所述存储器用于存储指令或计算机程序。所述处理器用于执行所述存储器中的所述指令或计算机程序,执行以上第一方面以及第一方面任意一项所述的方法,或者执行以上第二方面以及第二方面任意一项所述的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上第一方面以及第一方面任意一项所述的方法,或者执行以上第二方面以及第二方面任意一项所述的方法。
第七方面,本申请实施例提供了一种包含指令或计算机程序的计算机程序产品,当其在计算机上运行时,使得计算机执行以上第一方面以及第一方面任意一项所述的方法,或者执行以上第二方面以及第二方面任意一项所述的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的一种示例性应用场景示意图;
图1b为本申请实施例提供的一种示例性应用场景示意图;
图2a为本申请实施例提供的一种网络设备的结构示意图;
图2b为本申请实施例提供的一种网络设备的结构示意图;
图3为本申请实施例提供的一种队列信息的处理方法的流程示意图;
图4为本申请实施例提供的一种队列信息的处理方法的流程示意图;
图5a为本申请实施例提供的一种确定队列的排队信息的示意图;
图5b为本申请实施例提供的一种确定队列的排队信息的示意图;
图6为本申请实施例提供的一种网络场景示意图;
图7为本申请实施例提供的一种队列信息的处理装置的结构示意图;
图8为本申请实施例提供的一种队列信息的处理装置的结构示意图;
图9为本申请实施例提供的一种队列信息的处理设备的结构示意图。
具体实施方式
本申请实施例提供了一种队列信息的处理方法,可以准确的确定队列在一定时间内的排队信息。
为方便理解,首先介绍两种可能出现报文排队现象的场景。
参见图1a,该图为本申请实施例提供的一种示例性应用场景示意图。
如图1a所示,网络设备101包括三个端口,分别为端口101a、端口101b和端口101c,端口101a和端口101b为入端口,即接收报文的端口,端口101c为出端口,即将报文转发给其它网络设备的端口。端口101a、端口101b和端口101c的带宽均为10G/s。而端口101a和端口101b接收报文的速率均为6G/s,并且,端口101a和端口101b接收报文均需要通过端口101c转发给其它网络设备。对于这种情况,端口101c待转发的速率12G/s大于端口101c的实际转发能力10G/s,故而端口101c待转发的报文在网络设备101内需要排队。
参见图1b,该图为本申请实施例提供的又一种示例性应用场景示意图。
如图1b所示,网络设备102包括端口102a和端口102b,端口102a为入端口,端口102b为出端口。端口102a的带宽为10G/s,端口102b的带宽为5G/s。端口102a接收报文的速率为6G/s,并且端口102a接收报文需要通过端口102b转发给其它网络设备。对于这种情况,端口102b待转发的速率6G/s大于端口102b的实际转发能力5G/s,故而端口102b待转发的报文在网络设备102内需要排队。
本申请实施例中提及的端口,指的是网络设备上的物理端口。本申请实施例中提及的网络设备,包括但不限于路由器和交换机。
接下来对队列的相关信息进行介绍。
网络设备之间可以利用端口进行通信,例如,网络设备101通过网络设备101上的出端口101c将报文转发给网络设备102,网络设备102通过网络设备102的入端口102a接收来自于网络设备101的报文。网络设备101将报文转发给网络设备102之前,可以先将报文缓存在队列中。
一般情况下,队列是与端口对应的,一个端口可以对应一个或者多个队列,队列也可以具备优先级。当网络设备101需要通过出端口101c将报文转发给网络设备102时,网络设备101可以将该报文缓存在出端口101c对应的队列中。网络设备101将报文缓存在出端口101c对应的队列中之后,可以根据队列调度算法确定该报文何时出队。接下来结合网络设备101的结构,介绍报文入队列101c和出101c的实现方式。
参见图2a,该图为本申请实施例提供的一种网络设备的结构示意图。图2a所示的网络设备,也可以被称为盒式设备。图2a所示的盒式设备包括:媒体接入控制聚合子系统(media access control aggregation subsystem,MAG)201a、网络处理器(NetworkProcessor,NP)201b和出口流量管理(egress traffic management,eTM)模块201c。图2a所示的盒式设备可以包括若干个端口,图2a中示出了两个端口,分别为端口0和端口1。
其中:
MAG 201a可以用于接口协议的解析,解析得到端口收到的报文;
NP 201b可以用于报文的处理和路由的计算;
eTM 201c可以用于流量的管控和统计,确定接收到的报文的优先级等参数。
举例说明,端口0接收数据,MAG 201a对接口协议进行解析,得到端口0接收到的报文,NP 201b根据报文中的参数例如目的地址进行路由计算,确定转发该报文的出端口。例如,转发该报文的出端口为端口1,端口1对应两个队列。eTM 201c根据报文中的参数例如流标识、用户标识等确定将该报文缓存至前述两个队列中的哪个队列中。将报文缓存至队列中之后,eTM 201c可以根据相应的队列调度算法确定报文出队顺序。
此处提及的报文调度算法,包括但不限于严格优先级(strict priority,SP)调度算法、轮询(round robin,RR)调度算法和加权轮询(Weighted Round-Robin,WRR)调度算法。其中:
SP调度算法是一种严格优先级调度算法,利用该算法进行队列调度时,按照队列优先级确定报文出队顺序。优先级高的队列中的报文先出队,只有优先级高的队列中的报文全部出队之后,才能进一步允许下一优先级的队列中的报文出队。
RR调度算法是一种轮询出队的调度算法,利用该算法进行队列调度时,按照一定的顺序轮询各个队列,将端口的总带宽资源平均分配给每个队列。
WRR调度算法是一种基于权重轮询出队的调度算法,利用该算法进行队列调度时,按照一定的顺序轮询各个队列,将端口的总带宽按照一定的比例分配给各个队列。举例说明,端口对应两个队列,将该端口的60%的带宽资源分配给队列1,40%的资源分配给队列2,按照先轮询队列1再轮询队列2的顺序轮询这两个队列,轮询到队列1时,允许出队的报文长度(或数量)为M,轮询到队列2时,允许出队的报文长度(或数量)为N,M和N的比值为60%与40%的比值。
参见图2b,该图为本申请实施例提供的一种网络设备的结构示意图。图2b所示的网络设备,也可以被称为框式设备。框式设备包括多个接口板和一个交换模块230,图2b示出了两个接口板,分别为210和220。如图2b所示,接口板210包括端口211a和端口211b。接口板210还包括MAG 212、NP 213、入口流量管理(ingress traffic management,iTM)模块214、交换接口控制入口(fabric interface control ingress,FICi)215、交换接口控制出口(fabric interface control egress,FICe)216、内置缓存流量管理器(internalbuffer traffic manager,IBTM)217和eTM 218。接口板210和接口板220的结构相同,接口板220包括端口221a和端口221b。接口板220还包括MAG 222、NP 223、iTM模块224、FICi225、FICe 226、IBTM 227和eTM 228。
接下来以接口板210为例,介绍接口板上各模块的功能。
MAG 212可以用于接口协议的解析,解析得到端口收到的报文;
NP 213可以用于报文的处理和路由的计算;
iTM 214可以用于上行流量的管理,控制端口发往交换模块230的流量;
FICi 215和FICe216可以用于交换模块230的对接,进行报文的切分、流量控制等;
IBTM 217可以用于执行下行流量的报文重组,流量的管控和缓存等;
eTM 218可以用于流量的管控和统计,确定接收到的报文的优先级等参数。
需要说明的是,对于图2a所示的盒式设备,前文提及的报文排队现象,会出现在由eTM管理的队列中。对于图2b所示的框式设备,前文提及的报文排队现象,不仅会出现在由eTM管理的队列中,还可能出现在由iTM管理的队列中。无论是iTM管理的队列出现排队现象,还是eTM管理的队列出现排队现象,都会导致报文在网络设备中驻留,即带来一定的排队时延。而排队时延会影响报文的端到端时延,因此,报文在网络设备中的排队时延,可能会影响网络对业务的服务质量,因此,确定网络设备中队列的排队情况,尤为重要。
发明人在研究中发现,目前,网络设备可以利用NP周期性读取队列中已缓存的报文长度,从而确定队列的排队情况。例如,NP每隔1秒读取一次队列中已缓存的报文长度,假设队列的长度为10兆比特(M bits),NP每次读取该队列已缓存的报文长度时,所读取的长度均为9.5M bits,则说明该队列排队严重。但是,由于若NP高频的采集队列中已缓存的报文长度,则会占用网络设备的资源,影响网络设备的性能。因此,NP不能高频率的采集队列中已缓存的报文长度,故而采用这种方案时,NP采集队列中已缓存的报文长度的频率一般设置的不是很高,从而使得所确定的队列排队情况不是很准确。
为了解决上述问题,本申请实施例提供了一种队列信息的处理方法,可以准确的确定队列的排队情况。
参见图3,该图为本申请实施例提供的一种队列信息的处理方法的流程示意图。图3所示的方法,可以由网络设备执行,具体地,可以由网络设备中的iTM模块或者eTM模块执行。该方法可以通过如下S101-S103实现。
S101:网络设备获取第一报文。
在本申请实施例中,网络设备可以从其它设备处接收第一报文,也可以自身生成第一报文,本申请实施例不做具体限定。
S102:网络设备根据第一队列的缓存的使用情况,确定第一报文需要被缓存至第一缓存,第一队列的缓存包括多个缓存,该多个缓存包括第一缓存。
网络设备获取第一报文之后,可以确定转发第一报文的出端口。例如,网络设备可以根据第一报文的目的地址和本地存储的转发表项,确定转发第一报文的出端口。为方便描述,将转发第一报文的出端口称为“第一端口”。第一端口可以对应多个队列,网络设备确定转发第一报文的出端口为第一端口之后,可以进一步基于第一报文携带的信息,确定缓存第一报文的队列。作为一种示例,网络设备可以根据第一报文的目的地址、流标识或者DSCP来确定缓存第一报文的队列。举例说明,第一端口对应两个队列,分别为第一队列和第二队列,第一队列的优先级高于第二队列的优先级,第一报文的DSCP值指示第一报文的优先级比较高,故而网络设备确定缓存第一报文的队列为第一队列。
在本申请实施例中,网络设备可以为第一队列分配缓存,缓存即为用于缓存报文的存储资源。第一队列的缓存可以包括多个缓存,网络设备按照一定的顺序使用该多个缓存。在申请实施例中,可以预先将第一队列的缓存划分成多个缓存。在本申请实施例中,可以按照缓存的长度对第一队列的缓存进行划分,也可以按照缓存能够存储的报文数量对第一队列的缓存进行划分,本申请实施例不做具体限定。
例如,网络设备为第一队列分配的缓存大小为10M bits,则该10M bits缓存可以被划分成3个缓存,分别为缓存1、缓存2和缓存3。这三个缓存分别对应的大小为2M bits、4Mbits和4M bits。网络设备在使用该缓存时,先使用缓存1、再使用缓存2、最后使用缓存3。并且,缓存1使用完之后再使用缓存2,缓存2使用完之后再使用缓存3。又如:网络设备为第一队列分配的缓存可以存储1000条报文,则该缓存可以被划分成3个缓存,分别为缓存1、缓存2和缓存3。这三个缓存分别可以缓存的报文数量为200条、400条和400条。网络设备在使用该缓存时,先使用缓存1、再使用缓存2、最后使用缓存3。并且,缓存1使用完之后再使用缓存2,缓存2使用完之后再使用缓存3。
网络设备确定用于缓存第一报文的队列为第一队列之后,可以根据第一队列的缓存的使用情况,确定第一报文需要被缓存至第一缓存中。第一缓存可以为前述举例中缓存1、缓存2和缓存3中的任意一个缓存。S102在具体实现时,可以包括多种实现方式,以下介绍两种可能的实现方式。
作为一种示例,若第一队列的缓存是按照缓存长度进行划分的,网络设备可以根据第一队列中缓存的报文长度,确定第一报文需要被缓存至所述第一缓存中。
例如:第一队列的缓存大小为10M bits,包括缓存1、缓存2和缓存3,这三个缓存分别对应的大小为2M bits、4M bits和4M bits,网络设备按照先使用缓存1、再使用缓存2、最后使用缓存3的方式使用该3个缓存。网络设备确定第一队列中已经缓存的报文长度为1.5Mbits,则网络设备可以确定缓存1并未使用完,即缓存1中尚有部分资源可以用于继续缓存报文。则网络设备确定第一报文需要被缓存至缓存1中,此时,第一缓存为缓存1。又如,网络设备确定第一队列中已经缓存的报文长度为3.5M bits,网络设备确定缓存1已经使用完,即缓存1中存满了报文,而缓存2并未使用完,即缓存2中尚有部分资源可以用于继续缓存报文,则网络设备确定第一报文需要被缓存至缓存2中,此时,第一缓存为缓存2。再如,网络设备确定第一队列中已经缓存的报文长度为7.5M bits,网络设备确定缓存2已经使用完,缓存3中尚有部分资源可以用于继续缓存报文,则网络设备确定第一报文需要被缓存至缓存3中,此时,第一缓存为缓存3。
作为又一种示例,若第一队列的缓存是按照缓存能够存储的报文数量进行划分的,则网络设备可以根据第一队列缓存的报文数量,确定第一报文需要被缓存至第一缓存中。
例如:第一队列的缓存可以存储1000条报文,包括缓存1、缓存2和缓存3,这三个缓存分别可以缓存的报文数量为200条、400条和400条。网络设备在使用该缓存时,先使用缓存1、再使用缓存2、最后使用缓存3。网络设备确定第一队列中已经缓存的报文数量为150条,则网络设备可以确定缓存1并未使用完,即缓存1中尚有部分资源可以用于继续缓存报文。则网络设备确定第一报文需要被缓存至缓存1中,此时,第一缓存为缓存1。又如,网络设备确定第一队列中已经缓存的报文数量为350条,网络设备确定缓存1已经使用完,即缓存1中存满了报文,而缓存2并未使用完,即缓存2中尚有部分资源可以用于继续缓存报文,则网络设备确定第一报文需要被缓存至缓存2中,此时,第一缓存为缓存2。再如,网络设备确定第一队列中已经缓存的报文数量为750条,网络设备确定缓存2已经使用完,缓存3中尚有部分资源可以用于继续缓存报文,则网络设备确定第一报文需要被缓存至缓存3中,此时,第一缓存为缓存3。
S103:网络设备根据第一报文更新第一缓存对应的排队信息,第一缓存对应的排队信息,用于指示一定时间段内第一缓存的累计使用情况。
第一报文需要被缓存至第一缓存中,说明第一报文需要在第一缓存中排队。因此,在本申请实施例中,可以根据第一报文更新第一缓存对应的排队信息。第一缓存对应的排队信息,用于指示一定时间段内第一缓存的累计使用情况。一定时间段内第一缓存的累计使用情况,指的是:一定时间段内进入第一队列时即被存储在第一缓存内的报文情况。换言之,第一缓存对应的排队信息,可以用于指示一定时间段内刚进入第一队列时就在第一缓存内排队的报文信息。
在本申请实施例中,前述排队信息可以是报文排队数量,也可以是报文排队长度。当排队信息是报文排队数量时,第一缓存对应的排队信息,用于指示一定时间段内在第一缓存中排队的报文数量。当排队信息是报文排队长度时,第一缓存对应的排队信息,用于指示一定时间段内在第一缓存中排队的报文长度。
若排队信息是报文排队数量,则S103在具体实现时,网络设备可以获取第一数量,第一数量为获取第一报文之前第一缓存对应的报文排队数量。第一数量可以存储在网络设备为第一缓存分配的寄存器中。获得第一数量之后,网络设备将第一缓存对应的报文排队数量更新为第一数量和第二数量的和。本申请实施例不具体限定第二数量,在本申请实施例中,若网络设备每接收到一条报文,则执行前述S102-S103,则第二数量等于1。即,网络设备每接收到一条报文,则基于该报文对缓存该报文的缓存的报文排队数量进行更新。对于这种情况,所确定的第一缓存的排队信息,能够准确的体现一定时间段内第一缓存的累计使用情况。若网络设备并不是每接收到一条报文,则执行前述S102-S103,则第二数量的具体取值,与网络设备执行S102-S103的频率有关,本申请实施例不做具体限定。例如,网络设备每接收到两条报文,则执行一次S102-S103,则第二数量的值例如可以为2。
若排队信息是报文排队长度,则S103在具体实现时,网络设备可以获取第一长度,第一长度为获取第一报文之前第一缓存对应的报文排队长度。第一长度可以存储在网络设备为第一缓存分配的寄存器中。获得第一长度之后,网络设备将第一缓存对应的报文排队长度更新为第一长度和第二长度的和。本申请实施例不具体限定第二长度,在本申请实施例中,若网络设备每接收到一条报文,则执行前述S102-S103,则第二长度等于第一报文的长度。即,网络设备每接收到一条报文,则基于该报文对缓存该报文的缓存的报文排队长度进行更新。对于这种情况,所确定的第一缓存的排队信息,能够准确的体现一定时间段内第一缓存的累计使用情况。若网络设备并不是每接收到一条报文,则执行前述S102-S103,则第二长度的具体取值,与网络设备执行S102-S103的频率有关,本申请实施例不做具体限定。例如,网络设备每接收到两条报文,则执行一次S102-S103,则第二长度的值例如可以为第一报文的长度的2倍。
通过以上描述可知,利用本申请实施例的方案,可以在网络设备获取到第一报文之后,对用于缓存第一报文的第一缓存的排队信息进行更新,使得第一缓存的排队信息与一定时间段内在第一缓存中的排队的报文情况吻合,从而能够准确的确定第一缓存的排队信息。
在一些实施例中,网络设备确定第一报文需要被缓存至第一缓存中之后,可以将第一报文存储至第一缓存中。网络设备可以在利用第一报文对第一缓存对应的排队信息进行更新之后,将第一报文存储至第一缓存。网络设备也可以先将第一报文存储至第一缓存中,再利用第一报文对第一缓存对应的排队信息进行更新。网络设备还可以同时执行将第一报文存储至第一缓存中的步骤和利用第一报文对第一缓存对应的排队信息进行更新的步骤。本申请实施例不做具体限定。
在一些实施例中,考虑到执行前述S102-S103会耗费网络设备的部分资源,为了节省网络设备的资源消耗,可以对网络设备中的部分队列应用本申请实施例提供的方案。作为一个示例,网络设备在执行S101之后、在执行S102之前,还可以获取指示信息,该指示信息用于指示网络设备确定第一队列的排队信息。网络设备在获取到该指示信息之后,再执行S102-S103,否则,网络设备不执行S102-S103。该指示信息可以是静态配置在网络设备上的,也可以是网络管理设备发送给网络设备的,本申请实施例不做具体限定。
在本申请实施例中,利用S101-S103,网络设备可以确定出第一缓存对应的排队信息。网络设备可以利用确定第一缓存对应的排队信息的方法,确定第一队列的其它缓存的排队信息。例如:第一队列包括缓存1和缓存2,第一缓存为缓存1,网络设备获取报文之后,可以根据第一队列的缓存的使用情况确定该报文需要被缓存至缓存2,并利用该报文更新缓存2对应的排队信息。关于网络设备根据第一队列的缓存的使用情况确定该报文需要被缓存至缓存2的具体实现,可以参考上文对于S102的描述部分,此处不再重复描述。
如前文,第一队列的缓存包括多个缓存,即该多个缓存中的每个缓存是第一队列的缓存的一部分。因此,所述多个缓存中每个缓存对应的排队信息,可以体现第一队列的缓存的部分排队信息。考虑到第一队列对应的排队信息,可以体现第一队列的报文处理效率,因此,在一些实施例中,网络设备确定第一队列对应的多个缓存分别对应的排队信息之后,还可以根据该多个缓存中至少两个缓存分别对应的排队信息,确定第一队列对应的排队信息。其中,第一队列对应的排队信息,用于指示一定时间段内第一队列的缓存的累计使用情况。
在本申请实施例的一种实现方式中,网络设备获取所述至少两个缓存分别对应的排队信息之后,可以直接将该至少两个缓存分别对应的排队信息确定为第一队列对应的排队信息。先结合前文提及的缓存1、缓存2和缓存3举例说明。例如:网络设备确定缓存1对应的报文排队数量为100条,确定缓存3对应的报文排队数量为1条。则第一队列对应的排队信息为:缓存1对应的报文排队数量为100条、以及缓存3对应的报文排队数量为1条。又如:网络设备确定缓存1对应的报文排队长度为5M bits,确定缓存2对应的报文排队长度为2Mbits,确定缓存3对应的报文排队长度为0M bits。则第一队列对应的排队信息为:缓存1对应的报文排队长度为5M bits、缓存2对应的报文排队长度为2M bits以及缓存3对应的报文排队长度为0M bits。
在本申请实施例的又一种实现方式中,考虑到所述至少两个缓存分别对应的排队信息之间的比例关系,可以体现各缓存对应的排队信息的分布情况。而各缓存对应的排队信息的分布情况,可以表示网络设备的报文处理效率。因此,网络设备可以将所述至少两个缓存分别对应的排队信息之间的比例关系,确定为所述第一队列对应的排队信息。现结合前文提及的缓存1、缓存2和缓存3举例说明。例如:网络设备确定缓存1对应的报文排队数量为100条,确定缓存3对应的报文排队数量为1条。则第一队列对应的排队信息为:缓存1对应的报文排队数量和缓存3对应的报文排队数量的比例为100:1。又如:网络设备确定缓存1对应的报文排队长度为10M bits,确定缓存2对应的报文排队长度为5M bits,确定缓存3对应的报文排队长度为0M bits。则第一队列对应的排队信息为:缓存1对应的报文排队长度、缓存2对应的报文排队长度以及缓存3对应的报文排队长度的比例关系为2:1:0。
如前文,一个端口可以对应多个队列。对于第一端口而言,其也可以对应多个队列。考虑到第一端口对应的各个队列的排队信息,可以体现第一端口的报文处理效率。因此,在一些实施例中,可以确定第一端口对应的多个队列中的至少两个队列分别对应的排队信息。关于确定第一端口对应的队列的排队信息的具体实现方式,与前文说明的确定第一队列的排队信息的具体实现方式是相同的,此处不再详细说明。
确定所述第一端口对应的多个队列中的至少两个队列分别对应的排队信息之后,可以根据所述至少两个队列分别对应的排队信息,重新分配所述至少两个队列占用所述第一端口的带宽资源,以提升所述第一端口的报文处理效率。
在本申请实施例的一种实现方式中,可以预先确定第一端口对应的多个队列中每个队列分别对应的排队信息,而后,从中选择至少两个队列的排队信息,并根据选择的至少两个排队信息重新分配所述至少两个队列占用第一端口的带宽资源。举例说明:第一端口对应三个队列,分别为队列1、队列2和队列3,预先利用本申请实施例的方案确定出队列1的排队信息、队列2的排队信息和队列3的排队信息。而后,从该3个队列的排队信息中选择其中2个或者3个排队信息,并根据选择的2个或者3个排队信息重新分配至少两个队列占用第一端口的带宽资源。例如,重新分配队列1和队列2占用第一端口的带宽资源,又如,重新分配队列1、队列2和队列3占用第一端口的带宽资源。
在本申请实施例中,从每个队列分别对应的排队信息中选择至少两个队列的排队信息在具体实现时,例如可以至少选择出载荷最重的队列和载荷最轻的队列。关于载荷的轻重,需要说明的是,可以根据该队列的多个缓存的排队信息与该队列的多个缓存的总排队信息的比例确定。最后使用的缓存的排队信息与该队列的多个缓存的总排队信息的比例越大,该队列的载荷越高,最先使用的缓存的排队信息与该队列的多个缓存的总排队信息的比例越大,该队列的载荷越低。
举例说明,队列1包括3个缓存,分别为缓存1、缓存2和缓存3,队列1按照先使用缓存1、再使用缓存2、最后使用缓存3的方式使用这3个缓存。缓存1的排队信息占这3个缓存对应的排队信息的总和的比值为95%,缓存2的排队信息占这3个缓存对应的排队信息的总和的比值为5%,缓存3的排队信息占这3个缓存对应的排队信息的总和的比值为0%。这说明网络设备接收到的报文时,有95%的报文被缓存在缓存1中,缓存2和缓存3的使用率比较低。
再举例说明,队列2包括3个缓存,分别为缓存4、缓存5和缓存6,队列2按照先使用缓存4、再使用缓存5、最后使用缓存6的方式使用这3个缓存。缓存4的排队信息占这3个缓存对应的排队信息的总和的比值为5%,缓存5的排队信息占这3个缓存对应的排队信息的总和的比值为5%,缓存6的排队信息占这3个缓存对应的排队信息的总和的比值为90%。这说明网络设备接收到的报文时,有90%的报文被缓存在缓存6中,缓存4和缓存5一直处于满载状态,队列2的载荷比较重。
在本申请实施例的又一种实现方式中,可以预先确定至少两个队列分别对应的排队信息,并根据所确定的至少两个队列的排队信息重新分配所述至少两个队列占用第一端口的带宽资源。举例说明:第一端口对应三个队列,分别为队列1、队列2和队列3,预先利用本申请实施例的方案确定出队列1的排队信息和队列3的排队信息。而后,根据队列1的排队信息和队列3的排队信息重新分配至少两个队列占用第一端口的带宽资源。
在本申请实施例中,网络设备重新分配所述至少两个队列的占用所述第一端口的带宽资源在具体实现时,例如可以根据所述至少两个队列分别对应的排队信息,确定所述至少两个队列中载荷较轻的队列和载荷较重的队列,并将所述载荷较轻的队列占用所述第一端口的带宽资源中的一部分,重新分配给所述载荷较重的队列。这么做的原因在于,对于载荷较轻的队列而言,其无需占用太多的带宽资源。若将载荷较轻的队列占第一端口的带宽资源转移一部分给载荷较重的队列,则载荷较重的队列中的报文出队速率会得到提升,相应的,会减轻该载荷较重的队列中的排队现象,从而提升了第一端口的报文处理效率。
在一种实现方式中,网络设备可以按照比例将载荷较轻的队列占用的带宽资源分配给载荷较重的队列。例如,第一端口对应3个队列,分别为队列1、队列2和队列3。队列1占用的带宽资源为B1,队列2占用的带宽资源为B2,B1与B2的和小于第一端口的总带宽。队列1为载荷较轻的队列,队列2为载荷较重的队列,可以将队列1的带宽资源中的B1*k重新分配给队列2,k小于1且大于0,k的具体取值本申请实施例不具体限定。
报文在队列中排队会产生一定的排队时长。报文在队列中的排队时长,对于报文的端到端时延有一定的影响,因此,确定队列的排队时长分布尤为重要。在一些实施例中,网络设备确定至少两个队列分别对应的排队信息之后,还可以进一步根据所述至少两个队列的排队信息,确定所述至少两个队列分别对应的排队时长分布。在本申请实施例中,一个队列的排队时长分布,包括该队列对应的至少两个缓存分别对应的排队时长、以及所述两个缓存分别对应的排队时长的概率。
在本申请实施例中,一个缓存对应一个排队时长范围,例如,第一缓存的排队时长范围可以是0-200微秒。一个缓存对应的排队时长范围,例如可以根据缓存的带宽和缓存长度来确定。当然,还可以根据端口的总带宽以及队列调度算法来确定,此处不做详细说明。
在本申请实施例中,对于第一队列的一个缓存而言,该缓存对应的排队时长的概率,可以等于该缓存对应的排队信息与第一队列的总排队信息的比值,第一队列的总排队信息,等于第一队列包括的多个缓存分别对应的排队信息之和。
关于第一队列的排队时长分布,现举例说明:第一队列包括缓存1、缓存2和缓存3,队列1按照先使用缓存1、再使用缓存2、最后使用缓存3的方式使用这3个缓存。缓存1的排队信息占这3个缓存对应的排队信息的总和的比值为95%,缓存2的排队信息占这3个缓存对应的排队信息的总和的比值为5%,缓存3的排队信息占这3个缓存对应的排队信息的总和的比值为0%。缓存1对应的排队时长范围为0-200微秒,缓存2对应的排队时长范围为200-400微秒,缓存3对应的排队时长范围为400微秒以上。则第一队列的排队时长分布,可以结合下表1进行理解。
表1
排队时长(单位:微秒) 概率
0-200 95%
200-400 5%
400以上 0
从表1可以看出,对于存储至第一队列中的报文而言,其排队时长在0-200微秒之间的概率是95%,排队时长在200-400微秒之间的概率为5%,其排队时长超过400微秒的概率为0。
在本申请实施例的一种实现方式中,在确定第一端口对应的至少两个队列分别对应的排队时长分布之后,若网络设备获取到第二报文,且确定用于处理第二报文的端口为第一端口。则为了降低报文在网络设备中的排队时延,网络设备可以根据前述至少两个队列分别对应的排队时长分布,确定排队时长较小的队列,并将第二报文缓存至所述排队时长较小的队列中,以减少第二报文在网络设备中的排队时延。例如,第一端口包括队列1和队列2,队列1的时延分布为:0-200微秒的概率为100%,队列2的时延分布为:0-200微秒的概率为5%、200-400微秒的概率为5%,400微秒以上的概率为90%。网络设备可以确定队列1的排队时长比较小,因为第二报文缓存在队列1中,其排队时长小于200微秒的概率为100%,而若缓存在队列2中,其排队时长大于400微秒的概率为90%。
在本申请实施例的一种实现方式中,在业务部署阶段,为了满足业务的时延需求,网络管理设备还可以结合网络设备的队列的排队时长分布,确定缓存业务流的具体队列。对于这种情况,网络设备在确定前述至少两个队列分别对应的排队时长分布之后,还可以将所确定的排队时长分布发送给网络管理设备。在实际应用中,网络设备可以接收来自于多个网络设备的排队时长分布,从而基于接收到的排队时长分布,指导网络设备通过特定的队列缓存业务流,以满足业务流的时延需求。本申请实施例提供的网络管理设备,例如可以为运行了网络管理软件的设备,又如可以为控制器,本申请实施例不做具体限定。
接下来结合图4介绍由网络管理设备执行的队列信息的处理方法,图4为本申请实施例提供的一种队列信息的处理方法的流程示意图。图4所示的队列信息的处理方法,例如可以通过如下S201-S203实现。
S201:网络管理设备获取业务流从第一网络设备转发至第二网络设备的时延需求。
在本申请实施例中,业务流从第一网络设备转发至第二网络设备的时延需求,可以预先配置在网络管理设备上,也可以由其它设备发送给网络管理设备,本申请实施例不做具体限定。该时延需求指的是业务流从第一网络设备转发至第二网络设备的端到端时延需要满足的条件,例如,业务流从第一网络设备转发至第二网络设备的端到端时延小于1000微秒。
在本申请实施例的一种实现方式中,第一网络设备和第二网络设备之间可以部署SRv6隧道。
S202:网络管理设备获取多个端口中每个端口分别对应的队列的排队时长分布,所述多个端口为用于转发该业务流的网络设备上的端口,所述多个端口用于转发所述业务流。
在本申请实施例中,网络设备可以根据业务流的参数,例如该业务流的目的地址,确定转发该业务流的转发路径,即:确定转发该业务流的网络设备以及转发该业务流的端口。确定转发该业务流的端口之后,网络管理设备可以获取转发该业务流的网络设备发送的、所述多个端口分别对应的队列的排队时长分布。其中,队列的排队时长分布,可以根据以上实施例提供的方案计算得到,此处不做重复说明。
S203:网络管理设备根据所述时延需求、所述每个队列分别对应的排队时长分布、以及第一网络设备和第二网络设备之间的链路传输时延,确定所述每个端口用于缓存业务流的队列,以满足所述时延需求。
业务流从第一网络设备转发至第二网络设备的端到端传输时延,包括第一网络设备和第二网络设备之间的链路时延、和业务流在转发该业务流的网络设备中的排队时延。
网络管理设备在执行S201-S202之后,可以根据所述时延需求、所述每个队列分别对应的排队时长分布、以及第一网络设备和第二网络设备之间的链路传输时延,确定所述每个端口用于缓存业务流的队列,使得转发业务流的网络设备将所述业务流缓存至所确定的队列中时,该业务流的传输时延能够满足所述时延需求。由此可见,利用该方案,可以根据业务流的时延需求和队列的排队时延,确定能够满足所述业务流的时延需求的、用于缓存业务流的队列,从而保证服务质量。
关于第一网络设备和第二网络设备之间的链路传输时延,可以采用传统的链路时延测量/计算方法得到,此处不做详细说明。
在本申请实施例的一种实现方式中,网络管理设备确定各个端口用于缓存该业务流的队列之后,可以生成转发该业务流的转发路径,并将所述每个端口用于缓存所述业务流的队列携带在所述转发路径中。而后,网络管理设备可以将该转发路径发送给第一网络设备,以指导第一网络设备转发业务流。作为一种示例,若第一网络设备和第二网络设备之间部署有SRv6隧道,则网络管理设备可以生成用于指示前述转发路径的SID列表,并将该SID列表发送给第一网络设备。这样一来,第一网络设备以及转发该业务流的网络设备即可根据该SID列表确定缓存所述业务流的队列。在本申请实施例的一种实现方式中,各端口用于缓存业务流的队列,例如可以携带在该端口对应的SID的function或者argument字段中,或者,各端口用于缓存业务流的队列,可以携带在该端口所在的网络设备对应的SID的function或者argument字段中。
在本申请实施例中,考虑到业务流的优先级与队列的优先级之间有一定的对应关系,一般情况下,业务流优先级越高,缓存该业务流的队列的优先级也越高。换言之,网络设备在确定缓存业务流的队列时,可以根据业务流中的参数来确定,例如,根据业务流中的DSCP值来确定。因此,在一种实现方式中,网络管理设备确定每个端口用于缓存所述业务流的队列之后,可以根据所述每个端口用于缓存所述业务流的队列的优先级,确定业务流的第一参数,第一参数用于指示业务流优先级,所述第一参数还用于指示转发业务流的网络设备确定缓存所述业务流的队列。此处提及的第一参数,例如可以是前述DSCP。而后,网络管理设备可以将该第一参数发送给第一网络设备,以使得第一网络设备根据第一参数确定缓存该业务流的队列。而且,第一网络设备可以将该第一参数携带在业务流中继续转发,这样一来,转发该业务流的网络设备均可以根据第一参数的值确定缓存该业务流的队列。
举例说明,网络管理设备确定的用于缓存业务流的队列的优先级均为高,则网络管理设备确定第一参数的值为第一值,第一值指示该业务流的优先级为高,网络设备将第一参数发送给第一网络设备。这样一来,第一网络设备根据该第一值,则将业务流缓存至高优先级队列中。相应的,转发该业务流的其它网络设备也可以根据第一值将业务流缓存至高优先级队列中,从而使得该业务流的时延需求被满足。
在一些实施例中,转发业务流的网络设备数量可能比较多,而网络管理设备确定的、每个网络设备用于缓存业务流的队列的优先级可能并不一样。对于这种情况,由于优先级越高,其对应的排队时延一般会越小,为了使得业务流的时延需求被满足,在确定第一参数时,可以根据所述多个队列中的最高优先级确定第一参数,即所确定的业务流的优先级,与缓存所述业务流的多个队列的最高优先级对应。
关于以上实施例提及的队列信息的处理方法,以下结合附图以及具体的应用场景进行示例性介绍。
参见图5a和图5b,图5a和图5b为本申请实施例提供的一种确定队列的排队信息的示意图。图5a和图5b以排队信息是报文排队数量,缓存划分方式为按照长度划分为例进行说明。
如图5a所示,第一队列包括3个缓存,分别为缓存501、缓存502和缓存503,其中,缓存501的长度占总缓存长度的20%,缓存502的长度占总缓存长度的20%,缓存503的长度占总缓存长度的60%。缓存501对应的寄存器为counter1,用于保存缓存501对应的报文排队数量;缓存502对应的寄存器为counter2,用于保存缓存502对应的报文排队数量;缓存503对应的寄存器为counter3,用于保存缓存503对应的报文排队数量。counter1、counter2和counter3的初始值均为0。
如图5a所示:
1、网络设备接收报文1,并确定报文1需要被缓存至缓存501中,则网络设备将counter1的值更新为1,并将报文1缓存至缓存501中。
网络设备可以先更新counter1的值,再将报文1缓存至缓存501中,也可以先将报文1缓存至缓存501中,在更新counter1的值,也可以同时执行更新counter1的值和将报文1缓存至缓存501中的步骤。
本申请实施例不具体限定“更新寄存器的值”和“将报文保存至缓存中”这两个步骤之间的顺序,以下步骤不再一一说明。
2、网络设备接收报文2,并确定报文2需要被缓存至缓存501中,则网络设备将counter1的值更新为2,并将报文2缓存至缓存501中。
3、网络设备接收报文3,并确定报文3需要被缓存至缓存502中,则网络设备将counter2的值更新为1,并将报文3缓存至缓存502中。
4、网络设备接收报文4,并确定报文4需要被缓存至缓存502中,则网络设备将counter2的值更新为2,并将报文4缓存至缓存502中。
5、网络设备接收报文5,并确定报文5需要被缓存至缓存503中,则网络设备将counter3的值更新为1,并将报文5缓存至缓存503中。
6、读取counter1、counter2和counter3的值,得到第一队列的报文排队数量。
根据步骤6读取的内容可知,counter1的值为2,counter2的值为2,counter3的值为1,表示在过去一定时间段内,有2条报文刚进入队列时在缓存1中排队,有2条报文刚进入队列时在缓存2中排队,有1条队列刚进入队列时在缓存3中排队。
进一步地:若缓存501对应的排队时长范围为0-200微秒,缓存502对应的排队时长范围为200-400微秒,缓存503对应的排队时长范围为400微秒以上,则第一队列的排队时长分布为:0-200微秒的概率为40%,200-400微秒的概率为40%,400微秒以上的概率为20%。
如图5b所示:
1、网络设备接收报文1,并确定报文1需要被缓存至缓存501中,则网络设备将counter1的值更新为1,并将报文1缓存至缓存501中。
网络设备可以先更新counter1的值,再将报文1缓存至缓存501中,也可以先将报文1缓存至缓存501中,在更新counter1的值,也可以同时执行更新counter1的值和将报文1缓存至缓存501中的步骤。
2、网络设备接收报文2,并确定报文2需要被缓存至缓存501中,则网络设备将counter1的值更新为2,并将报文2缓存至缓存501中。
3、报文1出队列,缓存501中缓存的报文包括报文1。
4、网络设备接收报文3,并确定报文3需要被缓存至缓存501中,则网络设备将counter1的值更新为3,并将报文3缓存至缓存501中。
5、网络设备接收报文4,并确定报文4需要被缓存至缓存502中,则网络设备将counter2的值更新为1,并将报文4缓存至缓存502中。
6、网络设备接收报文5,并确定报文5需要被缓存至缓存502中,则网络设备将counter2的值更新为2,并将报文5缓存至缓存502中。
步骤7:读取counter1、counter2和counter3的值,得到第一队列的报文排队数量。
根据步骤7读取的内容可知,counter1的值为3,counter2的值为2,counter3的值为0,表示在过去一定时间段内,有3条报文刚进入队列时在缓存1中排队,有2条报文刚进入队列时在缓存2中排队,有0条队列刚进入队列时在缓存3中排队。
进一步地:若缓存501对应的排队时长范围为0-200微秒,缓存502对应的排队时长范围为200-400微秒,缓存503对应的排队时长范围为400微秒以上,则第一队列的排队时长分布为:0-200微秒的概率为60%,200-400微秒的概率为40%,400微秒以上的概率为0%。
参见图6,图6为本申请实施例提供的一种网络场景示意图。在图6所示的场景中,业务流从网络设备610转发至网络设备620的时延需求为端到端时延小于1000微秒,假设转发路径网络设备610-网络设备630-网络设备620的链路时延为600毫秒,转发路径网络设备610-网络设备640-网络设备620的链路时延为600毫秒。
此处以网络设备610、网络设备620、网络设备630和网络设备640均为盒式设备为例进行说明。
网络设备610通过端口611和网络设备630通信,网络设备630通过端口631与网络设备620通信。网络设备610通过端口612和网络设备640通信,网络设备640通过端口641与网络设备620通信。
端口611对应两个队列分别为队列611a和队列611b;端口612对应两个队列分别为队列612a和队列612b;端口631对应两个队列分别为队列631a和队列631b;端口641对应两个队列分别为队列641a和队列641b。
各队列的时延分布情况如下表2所示。
表2
Figure BDA0002563822160000181
Figure BDA0002563822160000191
通过以上表格可知,若报文存储在端口612的队列612a转发给网络设备640,并存储在端口641的队列641a中,则报文在网络设备610和网络设备640中的排队时长在400微秒以内。因此,若通过转发路径网络设备610-网络设备640-网络设备620,并且,网络设备610将业务流存储在队列612a中,网络和设备640将业务流存储在队列641a中,则可以使得业务流的端到端时延小于1000微秒。
在本申请实施例的一种实现方式中,网络管理设备确定上述转发路径之后,可以将该转发路径(包括缓存业务流的队列)发送给网络设备610。
在本申请实施例的又一种实现方式中,网络管理设备确定队列612a和队列641a之后,可以根据队列612a的优先级和队列641a的优先级,确定业务流的DSCP值,并将该DSCP值发送给网络设备610。
基于以上实施例提供的队列信息的处理方法,本申请实施例还提供了对应的装置,以下结合附图介绍该装置。
参见图7,该图为本申请实施例提供的一种队列信息的处理装置的结构示意图。图7所示的队列信息的处理装置700,可以应用于网络设备,用于执行以上方法实施例中由网络设备执行的队列信息的处理方法。该队列信息的处理装置700例如可以包括:获取单元701、确定单元702和更新单元703。
获取单元701用于获取第一报文;
确定单元702用于根据第一队列的缓存的使用情况,确定所述第一报文需要被缓存至第一缓存,所述第一队列的缓存包括多个缓存,所述多个缓存包括所述第一缓存;
更新单元703用于根据所述第一报文更新所述第一缓存对应的排队信息,所述第一缓存对应的排队信息,用于指示一定时间段内所述第一缓存的累计使用情况。
在一种可能的实现方式中,所述确定单元702用于:
根据所述第一队列中缓存的报文长度,确定所述第一报文需要被缓存至所述第一缓存;或者,
根据所述第一队列中缓存的报文数量,确定所述第一报文需要被缓存至所述第一缓存。
在一种可能的实现方式中,所述排队信息包括:
报文排队数量;或者,
报文排队长度。
在一种可能的实现方式中,若所述排队信息为报文排队数量,所述更新单元703,用于:
获取第一数量,所述第一数量为获取所述第一报文之前所述第一缓存对应的报文排队数量;
将所述第一缓存对应的报文排队数量更新为第一数量和第二数量的和。
在一种可能的实现方式中,所述第二数量等于1。
在一种可能的实现方式中,若所述排队信息为报文排队长度,所述更新单元703,用于:
获取第一长度,所述第一长度为获取所述第一报文之前所述第一缓存对应的报文排队长度;
将所述第一缓存对应的报文排队长度更新为第一长度和第二长度的和。
在一种可能的实现方式中,所述第二长度为所述第一报文的长度。
在一种可能的实现方式中,所述获取单元701,还用于获取所述多个缓存中至少两个缓存分别对应的排队信息;
所述确定单元702,还用于根据所述至少两个缓存分别对应的排队信息,确定所述第一队列对应的排队信息,所述第一队列对应的排队信息,用于指示所述一定时间段内所述的第一队列的缓存的累计使用情况。
在一种可能的实现方式中,所述确定单元702,用于:
将所述至少两个缓存分别对应的排队信息之间的比例关系,确定为所述第一队列对应的排队信息。
在一种可能的实现方式中,所述第一队列为与第一端口对应的队列,所述第一端口对应多个队列,
所述获取单元701还用于获取所述多个队列中至少两个队列分别对应的排队信息;
所述装置还包括分配单元,用于根据所述至少两个队列分别对应的排队信息,重新分配所述至少两个队列的占用所述第一端口的带宽资源,以提升所述第一端口的报文处理效率。
在一种可能的实现方式中,所述分配单元,用于:
根据所述至少两个队列分别对应的排队信息,确定所述至少两个队列中载荷较轻的队列和载荷较重的队列;
将所述载荷较轻的队列占用所述第一端口的带宽资源中的一部分,重新分配给所述载荷较重的队列。
在一种可能的实现方式中,所述确定单元702还用于:
根据所述至少两个队列分别对应的排队信息,确定所述至少两个队列分别对应的排队时长分布;
其中:
所述第一队列对应的排队时长分布包括:所述至少两个缓存分别对应的排队时长以及所述两个缓存分别对应的排队时长的概率,所述至少两个缓存包括第二缓存,第二缓存对应的排队时长的概率,等于所述第二缓存对应的排队信息与第一队列的总排队信息的比值,所述第一队列的总排队信息,为所述第一队列包括的多个缓存的排队信息之和。
在一种可能的实现方式中,
所述获取单元701还用于:获取第二报文;
所述确定单元702还用于:确定用于处理所述第二报文的端口为所述第一端口;
所述确定单元702还用于:根据所述至少两个队列分别对应的排队时长分布,确定排队时长较小的队列;
所述装置还包括:
缓存单元,用于将所述第二报文缓存至所述排队时长较小的队列中。
在一种可能的实现方式中,所述装置还包括:
发送单元,用于将所述至少两个队列分别对应的排队时长分布发送给网络管理设备。
在一种可能的实现方式中,所述获取单元701,还用于:
在根据第一队列的缓存的使用情况,确定所述第一报文需要被缓存至第一缓存之前,获取指示信息,所述指示信息用于指示确定所述第一队列的排队信息。
由于所述装置700是与以上方法实施例提供的由网络设备执行的队列信息的处理方法对应的装置,所述装置700的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置700的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。
参见图8,该图为本申请实施例提供的一种队列信息的处理装置的结构示意图。图8所示的队列信息的处理装置800,可以应用于网络管理设备,用于执行以上方法实施例中由网络管理设备执行的队列信息的处理方法。该队列信息的处理装置800例如可以包括:获取单元801和确定单元802。
获取单元801,用于获取业务流从第一网络设备转发至第二网络设备的时延需求;
所述获取单元801,还用于获取多个端口中每个端口分别对应的队列的排队时长分布,所述多个端口为用于转发所述业务流的网络设备上的端口,所述多个端口用于转发所述业务流;
确定单元802,用于根据所述时延需求、所述每个队列分别对应的排队时长分布、以及所述第一网络设备和所述第二网络设备之间的链路传输时延,确定所述每个端口用于缓存所述业务流的队列,以满足所述时延需求。
在一种可能的实现方式中,所述装置还包括:
生成单元,用于生成用于转发所述业务流的转发路径,所述转发路径中携带所述每个端口用于缓存所述业务流的队列;
发送单元,用于将所述转发路径发送给所述第一网络设备。
在一种可能的实现方式中,所述第一网络设备和所述第二网络设备之间部署互联网协议第6版段路由SRv6隧道,所述发送单元,用于:
将指示所述转发路径的段标识SID列表发送给所述第一网络设备。
在一种可能的实现方式中,
所述确定单元802,还用于根据所述每个端口用于缓存所述业务流的队列的优先级,确定所述业务流的第一参数,所述第一参数用于指示所述业务流优先级,所述第一参数用于指示转发所述业务流的网络设备确定缓存所述业务流的队列;
所述发送单元,还用于将所述第一参数发送给所述第一网络设备。
在一种可能的实现方式中,所述业务流的优先级与多个队列的最高优先级对应,所述多个队列为所述每个端口用于缓存所述业务流的队列。
在一种可能的实现方式中,所述第一参数为:
差分服务编码点DSCP。
由于所述装置800是与以上方法实施例提供的由网络管理设备执行的队列信息的处理方法对应的装置,所述装置800的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置800的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。
需要说明的是,前述提及的队列信息的处理装置700和队列信息的处理装置800,其硬件结构可以为如图9所示的结构,图9为本申请实施例提供的一种设备的结构示意图。
请参阅图9所示,设备900包括:处理器910、通信接口920和和存储器930。其中设备900中的处理器910的数量可以一个或多个,图9中以一个处理器为例。本申请实施例中,处理器910、通信接口920和存储器930可通过总线系统或其它方式连接,其中,图9中以通过总线系统940连接为例。
处理器910可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器910还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器930可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(random-access memory,RAM);存储器930也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器930还可以包括上述种类的存储器的组合。当设备900对应前述队列信息的处理装置700时,存储器930例如可以存储第一缓存对应的排队信息;当设备900对应前述队列信息的处理装置800时,存储器930例如可以存储队列的排队时长分布。
可选地,存储器930存储有操作系统和程序、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,程序可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。处理器910可以读取存储器930中的程序,实现本申请实施例提供的时间同步方法或者用于时间同步的消息处理方法。
总线系统940可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线系统940可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供了一种计算机可读存储介质,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上实施例提供的由网络设备执行的队列信息的处理方法,或者,使得计算机执行以上实施例提供的由网络管理设备执行的队列信息的处理方法。
本申请实施例还提供了一种包含指令或计算机程序的计算机程序产品,当其在计算机上运行时,使得计算机执行以上实施例提供的由网络设备执行的队列信息的处理方法,或者,使得计算机执行以上实施例提供的由网络管理设备执行的队列信息的处理方法。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。
集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (44)

1.一种队列信息的处理方法,其特征在于,所述方法包括:
网络设备获取第一报文;
所述网络设备根据第一队列的缓存的使用情况,确定所述第一报文需要被缓存至第一缓存,所述第一队列的缓存包括多个缓存,所述多个缓存包括所述第一缓存;
所述网络设备根据所述第一报文更新所述第一缓存对应的排队信息,所述第一缓存对应的排队信息,用于指示一定时间段内所述第一缓存的累计使用情况。
2.根据权利要求1所述的方法,其特征在于,所述网络设备根据第一队列的缓存的使用情况,确定所述第一报文需要被缓存至第一缓存,包括:
所述网络设备根据所述第一队列中缓存的报文长度,确定所述第一报文需要被缓存至所述第一缓存;或者,
所述网络设备根据所述第一队列中缓存的报文数量,确定所述第一报文需要被缓存至所述第一缓存。
3.根据权利要求1所述的方法,其特征在于,所述排队信息包括:
报文排队数量;或者,
报文排队长度。
4.根据权利要求1-3任意一项所述的方法,其特征在于,若所述排队信息为报文排队数量,所述网络设备根据所述第一报文更新所述第一缓存对应的排队信息,包括:
所述网络设备获取第一数量,所述第一数量为获取所述第一报文之前所述第一缓存对应的报文排队数量;
所述网络设备将所述第一缓存对应的报文排队数量更新为第一数量和第二数量的和。
5.根据权利要求4所述的方法,其特征在于,所述第二数量等于1。
6.根据权利要求1-3任意一项所述的方法,其特征在于,若所述排队信息为报文排队长度,所述网络设备根据所述第一报文更新所述第一缓存对应的排队信息,包括:
所述网络设备获取第一长度,所述第一长度为获取所述第一报文之前所述第一缓存对应的报文排队长度;
所述网络设备将所述第一缓存对应的报文排队长度更新为第一长度和第二长度的和。
7.根据权利要求6所述的方法,其特征在于,所述第二长度为所述第一报文的长度。
8.根据权利要求1-7任意一项所述的方法,其特征在于,所述方法还包括:
所述网络设备获取所述多个缓存中至少两个缓存分别对应的排队信息;
所述网络设备根据所述至少两个缓存分别对应的排队信息,确定所述第一队列对应的排队信息,所述第一队列对应的排队信息,用于指示所述一定时间段内所述的第一队列的缓存的累计使用情况。
9.根据权利要求8所述的方法,其特征在于,所述网络设备根据所述至少两个缓存分别对应的排队信息,确定所述第一队列对应的排队信息,包括:
所述网络设备将所述至少两个缓存分别对应的排队信息之间的比例关系,确定为所述第一队列对应的排队信息。
10.根据权利要求7或8所述的方法,其特征在于,所述第一队列为与第一端口对应的队列,所述第一端口对应多个队列,所述方法还包括:
所述网络设备获取所述多个队列中至少两个队列分别对应的排队信息;
所述网络设备根据所述至少两个队列分别对应的排队信息,重新分配所述至少两个队列的占用所述第一端口的带宽资源,以提升所述第一端口的报文处理效率。
11.根据权利要求10所述的方法,其特征在于,所述网络设备根据所述至少两个队列分别对应的排队信息,重新分配所述至少两个队列的占用所述第一端口的带宽资源,包括:
所述网络设备根据所述至少两个队列分别对应的排队信息,确定所述至少两个队列中载荷较轻的队列和载荷较重的队列;
所述网络设备将所述载荷较轻的队列占用所述第一端口的带宽资源中的一部分,重新分配给所述载荷较重的队列。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
所述网络设备根据所述至少两个队列分别对应的排队信息,确定所述至少两个队列分别对应的排队时长分布;
其中:
所述第一队列对应的排队时长分布包括:所述至少两个缓存分别对应的排队时长以及所述两个缓存分别对应的排队时长的概率,所述至少两个缓存包括第二缓存,第二缓存对应的排队时长的概率,等于所述第二缓存对应的排队信息与第一队列的总排队信息的比值,所述第一队列的总排队信息,为所述第一队列包括的多个缓存的排队信息之和。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述网络设备获取第二报文,并确定用于处理所述第二报文的端口为所述第一端口;
所述网络设备根据所述至少两个队列分别对应的排队时长分布,确定排队时长较小的队列;
所述网络设备将所述第二报文缓存至所述排队时长较小的队列中。
14.根据权利要求12或13所述的方法,其特征在于,所述方法还包括:
所述网络设备将所述至少两个队列分别对应的排队时长分布发送给网络管理设备。
15.根据权利要求1-14任意一项所述的方法,其特征在于,在所述网络设备根据第一队列的缓存的使用情况,确定所述第一报文需要被缓存至第一缓存之前,所述方法还包括:
所述网络设备获取指示信息,所述指示信息用于指示所述网络设备确定所述第一队列的排队信息。
16.一种队列信息的处理方法,其特征在于,所述方法包括:
网络管理设备获取业务流从第一网络设备转发至第二网络设备的时延需求;
所述网络管理设备获取多个端口中每个端口分别对应的队列的排队时长分布,所述多个端口为用于转发所述业务流的网络设备上的端口,所述多个端口用于转发所述业务流;
所述网络管理设备根据所述时延需求、所述每个队列分别对应的排队时长分布、以及所述第一网络设备和所述第二网络设备之间的链路传输时延,确定所述每个端口用于缓存所述业务流的队列,以满足所述时延需求。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
所述网络管理设备生成用于转发所述业务流的转发路径,所述转发路径中携带所述每个端口用于缓存所述业务流的队列;
所述网络管理设备将所述转发路径发送给所述第一网络设备。
18.根据权利要求17所述的方法,其特征在于,所述第一网络设备和所述第二网络设备之间部署互联网协议第6版段路由SRv6隧道,所述网络管理设备将所述转发路径发送给所述第一网络设备,包括:
所述网络管理设备将指示所述转发路径的段标识SID列表发送给所述第一网络设备。
19.根据权利要求16所述的方法,其特征在于,所述方法还包括:
所述网络管理设备根据所述每个端口用于缓存所述业务流的队列的优先级,确定所述业务流的第一参数,所述第一参数用于指示所述业务流优先级,所述第一参数用于指示转发所述业务流的网络设备确定缓存所述业务流的队列;
所述网络管理设备将所述第一参数发送给所述第一网络设备。
20.根据权利要求19所述的方法,其特征在于,所述业务流的优先级与多个队列的最高优先级对应,所述多个队列为所述每个端口用于缓存所述业务流的队列。
21.根据权利要求19或20所述的方法,其特征在于,所述第一参数为:
差分服务编码点DSCP。
22.一种队列信息的处理装置,其特征在于,所述装置包括:
获取单元,用于获取第一报文;
确定单元,用于根据第一队列的缓存的使用情况,确定所述第一报文需要被缓存至第一缓存,所述第一队列的缓存包括多个缓存,所述多个缓存包括所述第一缓存;
更新单元,用于根据所述第一报文更新所述第一缓存对应的排队信息,所述第一缓存对应的排队信息,用于指示一定时间段内所述第一缓存的累计使用情况。
23.根据权利要求22所述的装置,其特征在于,所述确定单元,用于:
根据所述第一队列中缓存的报文长度,确定所述第一报文需要被缓存至所述第一缓存;或者,
根据所述第一队列中缓存的报文数量,确定所述第一报文需要被缓存至所述第一缓存。
24.根据权利要求22所述的装置,其特征在于,所述排队信息包括:
报文排队数量;或者,
报文排队长度。
25.根据权利要求22-24任意一项所述的装置,其特征在于,若所述排队信息为报文排队数量,所述更新单元,用于:
获取第一数量,所述第一数量为获取所述第一报文之前所述第一缓存对应的报文排队数量;
将所述第一缓存对应的报文排队数量更新为第一数量和第二数量的和。
26.根据权利要求25所述的装置,其特征在于,所述第二数量等于1。
27.根据权利要求22-24任意一项所述的装置,其特征在于,若所述排队信息为报文排队长度,所述更新单元,用于:
获取第一长度,所述第一长度为获取所述第一报文之前所述第一缓存对应的报文排队长度;
将所述第一缓存对应的报文排队长度更新为第一长度和第二长度的和。
28.根据权利要求27所述的装置,其特征在于,所述第二长度为所述第一报文的长度。
29.根据权利要求22-28任意一项所述的装置,其特征在于,
所述获取单元,还用于获取所述多个缓存中至少两个缓存分别对应的排队信息;
所述确定单元,还用于根据所述至少两个缓存分别对应的排队信息,确定所述第一队列对应的排队信息,所述第一队列对应的排队信息,用于指示所述一定时间段内所述的第一队列的缓存的累计使用情况。
30.根据权利要求29所述的装置,其特征在于,所述确定单元,用于:
将所述至少两个缓存分别对应的排队信息之间的比例关系,确定为所述第一队列对应的排队信息。
31.根据权利要求29或30所述的装置,其特征在于,所述第一队列为与第一端口对应的队列,所述第一端口对应多个队列,
所述获取单元,还用于获取所述多个队列中至少两个队列分别对应的排队信息;
所述装置还包括分配单元,用于根据所述至少两个队列分别对应的排队信息,重新分配所述至少两个队列的占用所述第一端口的带宽资源,以提升所述第一端口的报文处理效率。
32.根据权利要求31所述的装置,其特征在于,所述分配单元,用于:
根据所述至少两个队列分别对应的排队信息,确定所述至少两个队列中载荷较轻的队列和载荷较重的队列;
将所述载荷较轻的队列占用所述第一端口的带宽资源中的一部分,重新分配给所述载荷较重的队列。
33.根据权利要求31或32所述的装置,其特征在于,所述确定单元还用于:
根据所述至少两个队列分别对应的排队信息,确定所述至少两个队列分别对应的排队时长分布;
其中:
所述第一队列对应的排队时长分布包括:所述至少两个缓存分别对应的排队时长以及所述两个缓存分别对应的排队时长的概率,所述至少两个缓存包括第二缓存,第二缓存对应的排队时长的概率,等于所述第二缓存对应的排队信息与第一队列的总排队信息的比值,所述第一队列的总排队信息,为所述第一队列包括的多个缓存的排队信息之和。
34.根据权利要求33所述的装置,其特征在于,
所述获取单元还用于:获取第二报文;
所述确定单元还用于:确定用于处理所述第二报文的端口为所述第一端口;
所述确定单元还用于:根据所述至少两个队列分别对应的排队时长分布,确定排队时长较小的队列;
所述装置还包括:
缓存单元,用于将所述第二报文缓存至所述排队时长较小的队列中。
35.根据权利要求33或34所述的装置,其特征在于,所述装置还包括:
发送单元,用于将所述至少两个队列分别对应的排队时长分布发送给网络管理设备。
36.根据权利要求22-35任意一项所述的装置,其特征在于,所述获取单元,还用于:
在根据第一队列的缓存的使用情况,确定所述第一报文需要被缓存至第一缓存之前,获取指示信息,所述指示信息用于指示确定所述第一队列的排队信息。
37.一种队列信息的处理装置,其特征在于,所述装置包括:
获取单元,用于获取业务流从第一网络设备转发至第二网络设备的时延需求;
所述获取单元,还用于获取多个端口中每个端口分别对应的队列的排队时长分布,所述多个端口为用于转发所述业务流的网络设备上的端口,所述多个端口用于转发所述业务流;
确定单元,用于根据所述时延需求、所述每个队列分别对应的排队时长分布、以及所述第一网络设备和所述第二网络设备之间的链路传输时延,确定所述每个端口用于缓存所述业务流的队列,以满足所述时延需求。
38.根据权利要求37所述的装置,其特征在于,所述装置还包括:
生成单元,用于生成用于转发所述业务流的转发路径,所述转发路径中携带所述每个端口用于缓存所述业务流的队列;
发送单元,用于将所述转发路径发送给所述第一网络设备。
39.根据权利要求38所述的装置,其特征在于,所述第一网络设备和所述第二网络设备之间部署互联网协议第6版段路由SRv6隧道,所述发送单元,用于:
将指示所述转发路径的段标识SID列表发送给所述第一网络设备。
40.根据权利要求37所述的装置,其特征在于,
所述确定单元,还用于根据所述每个端口用于缓存所述业务流的队列的优先级,确定所述业务流的第一参数,所述第一参数用于指示所述业务流优先级,所述第一参数用于指示转发所述业务流的网络设备确定缓存所述业务流的队列;
所述发送单元,还用于将所述第一参数发送给所述第一网络设备。
41.根据权利要求40所述的装置,其特征在于,所述业务流的优先级与多个队列的最高优先级对应,所述多个队列为所述每个端口用于缓存所述业务流的队列。
42.根据权利要求40或41所述的装置,其特征在于,所述第一参数为:
差分服务编码点DSCP。
43.一种设备,其特征在于,包括:处理器和存储器;
所述存储器,用于存储指令或计算机程序;
所述处理器,用于执行所述指令或计算机程序,执行权利要求1-21任意一项所述的方法。
44.一种计算机可读存储介质,其特征在于,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上权利要求1-21任意一项所述的方法。
CN202010616280.4A 2020-06-30 2020-06-30 队列信息的处理方法及装置 Pending CN113872881A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010616280.4A CN113872881A (zh) 2020-06-30 2020-06-30 队列信息的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010616280.4A CN113872881A (zh) 2020-06-30 2020-06-30 队列信息的处理方法及装置

Publications (1)

Publication Number Publication Date
CN113872881A true CN113872881A (zh) 2021-12-31

Family

ID=78981571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010616280.4A Pending CN113872881A (zh) 2020-06-30 2020-06-30 队列信息的处理方法及装置

Country Status (1)

Country Link
CN (1) CN113872881A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035719A (zh) * 2009-09-29 2011-04-27 华为技术有限公司 一种报文处理方法和装置
CN106209681A (zh) * 2016-06-28 2016-12-07 华为技术有限公司 一种队列管理方法和装置
WO2017000872A1 (zh) * 2015-06-30 2017-01-05 中兴通讯股份有限公司 缓存分配方法及装置
WO2017000657A1 (zh) * 2015-06-30 2017-01-05 深圳市中兴微电子技术有限公司 一种缓存管理的方法、装置和计算机存储介质
CN106789729A (zh) * 2016-12-13 2017-05-31 华为技术有限公司 一种网络设备中的缓存管理方法及装置
CN107528789A (zh) * 2016-06-22 2017-12-29 新华三技术有限公司 报文调度方法及装置
CN111163016A (zh) * 2019-12-09 2020-05-15 杭州迪普科技股份有限公司 一种队列管理的方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035719A (zh) * 2009-09-29 2011-04-27 华为技术有限公司 一种报文处理方法和装置
WO2017000872A1 (zh) * 2015-06-30 2017-01-05 中兴通讯股份有限公司 缓存分配方法及装置
WO2017000657A1 (zh) * 2015-06-30 2017-01-05 深圳市中兴微电子技术有限公司 一种缓存管理的方法、装置和计算机存储介质
CN107528789A (zh) * 2016-06-22 2017-12-29 新华三技术有限公司 报文调度方法及装置
CN106209681A (zh) * 2016-06-28 2016-12-07 华为技术有限公司 一种队列管理方法和装置
CN106789729A (zh) * 2016-12-13 2017-05-31 华为技术有限公司 一种网络设备中的缓存管理方法及装置
CN111163016A (zh) * 2019-12-09 2020-05-15 杭州迪普科技股份有限公司 一种队列管理的方法及装置

Similar Documents

Publication Publication Date Title
CN106817317B (zh) 具有入口控制的业务量管理
US8953454B2 (en) Apparatus for policing traffic in a communication network
US20070070895A1 (en) Scaleable channel scheduler system and method
US9608927B2 (en) Packet exchanging device, transmission apparatus, and packet scheduling method
US20080063004A1 (en) Buffer allocation method for multi-class traffic with dynamic spare buffering
EP3605975A1 (en) Client service transmission method and device
US8989037B2 (en) System for performing data cut-through
CN113225253B (zh) 一种报文转发方法及装置
US20170048145A1 (en) Switching device and control method of switching device
CN111935033B (zh) 用于时间敏感流的终端流预留方法、系统及计算机设备
CN114079638A (zh) 多协议混合网络的数据传输方法、装置和存储介质
CN111181873A (zh) 数据发送方法、装置、存储介质和电子设备
EP3461085B1 (en) Method and device for queue management
US10044632B2 (en) Systems and methods for adaptive credit-based flow
CN116566907A (zh) 一种网络拥塞控制方法及相关装置
CN115622952A (zh) 资源调度方法、装置、设备及计算机可读存储介质
CN111756586B (zh) 一种数据中心网络中基于优先级队列的公平带宽分配方法、交换机及可读存储介质
US7907632B2 (en) Data output apparatus, communication apparatus and switch apparatus
CN112005528A (zh) 一种数据交换方法、数据交换节点及数据中心网络
US20230117851A1 (en) Method and Apparatus for Queue Scheduling
CN112272933B (zh) 队列控制方法、装置及存储介质
CN113872881A (zh) 队列信息的处理方法及装置
CN114448903A (zh) 一种报文处理方法、装置和通信设备
CN113453285B (zh) 一种资源调整方法、装置及存储介质
US7450510B1 (en) System and method for distributing guaranteed bandwidth among service groups in a network node

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