CN105391567A - 流量管理实现方法、装置和网络设备 - Google Patents

流量管理实现方法、装置和网络设备 Download PDF

Info

Publication number
CN105391567A
CN105391567A CN201410451900.8A CN201410451900A CN105391567A CN 105391567 A CN105391567 A CN 105391567A CN 201410451900 A CN201410451900 A CN 201410451900A CN 105391567 A CN105391567 A CN 105391567A
Authority
CN
China
Prior art keywords
message
queue
management
scheduling
management request
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
Application number
CN201410451900.8A
Other languages
English (en)
Other versions
CN105391567B (zh
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 CN201410451900.8A priority Critical patent/CN105391567B/zh
Priority to PCT/CN2015/076090 priority patent/WO2016033970A1/zh
Priority to ES15837302T priority patent/ES2709354T3/es
Priority to EP15837302.7A priority patent/EP3079303B1/en
Publication of CN105391567A publication Critical patent/CN105391567A/zh
Priority to US15/258,439 priority patent/US10129151B2/en
Application granted granted Critical
Publication of CN105391567B publication Critical patent/CN105391567B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/11Identifying congestion
    • H04L47/115Identifying congestion using a dedicated packet
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/326Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames with random discard, e.g. random early discard [RED]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC

Landscapes

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

Abstract

本发明实施例公开了一种流量管理实现方法、装置和网络设备,TM实现装置侧挂在处理器或交换网芯片旁,接收处理器或交换网芯片发送的报文管理请求,所述报文管理请求中包括队列标识,所述队列标识用于标识所述处理器或所述交换网芯片存储数据报文的流队列;对所述报文管理请求进行流量管理,并根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;向所述处理器或所述交换网芯片发送所述报文管理响应,以使得所述处理器或所述交换网芯片根据所述管理指示处理所述队列标识对应的流队列中的数据报文。这样,TM实现装置无需存储和处理数据报文,通过与处理器或交换网芯片的交互和联动,实现流量管理功能。

Description

流量管理实现方法、装置和网络设备
技术领域
本发明涉及网络通信领域,尤其涉及流量管理实现方法、装置和网络设备。
背景技术
随着网络和互联网协议(InternetProtocol,简称IP)技术的发展,IP网络已经从仅有数据业务的网络向集成数据、语音、视频和图像等多种业务的网络转变。由于不同业务的特点,设备需要应用服务质量(QualityofService,简称QoS)技术,对不同业务类型的数据流提供不同等级的QoS。评估服务质量的要素包括传输带宽、传输时延、丢包率、抖动等。一般可以通过保证传输带宽,降低传输时延,降低数据的丢包率,降低抖动等几方面来提高QoS。通常,设备通过流量管理(TrafficManagement,简称TM)功能实现数据流的传输带宽、传输时延、丢包率、抖动等性能目标。TM功能可以与协议处理芯片或交换网芯片合在一起,也可以由独立的TM芯片实现。
独立的TM芯片可以满足越来越多的业务需求,越来越大的交换容量和带宽需求,以及越来越高的QoS要求。目前,设备中的TM芯片通常位于中央处理器(CPU)和交换网芯片的数据通路之间,如图1所示。TM芯片的接口需要保持与数据通路的高速数据接口一致,造成TM芯片的接口不灵活,实现复杂;且TM芯片需要选用高规格的现场可编程门阵列(FPGA),例如,Altera公司的Stratix系列、赛灵思(Xilinx)公司的virtex系列等,以满足流量管理功能、逻辑处理和性能的要求。此外,除了处理器或交换网芯片需要有需要配备专门的外部存储单元,例如双倍数据率同步动态随机存取存储器(DoubleDataRateSynchronousDynamicRandomAccessMemory,简称DDRSDRAM)、四倍数据率同步动态随机存取存储器(QuadDataRateSynchronousDynamicRandomAccessMemory,简称QDRSDRAM),用于存储数据报文和相关信息。TM芯片也需要配备专门的外部存储单元,例如DDRSDRAM、QDRSDRAM等,用于存储数据报文和相关信息,从而导致成本较高。
发明内容
本发明实施例提供了一种流量管理实现方法、装置和网络设备,将专门用于流量管理的TM芯片组件化,侧挂在处理器或交换网芯片旁,通过TM芯片与处理器或交换网芯片的交互和联动,实现网络设备的流量管理功能,可以降低硬件TM的实现难度和复杂度,以及设备成本。
第一方面,提供了一种流量管理实现方法,由TM实现装置执行,包括:
接收所述处理器或所述交换网芯片发送的所述报文管理请求,所述报文管理请求中包括队列标识,所述队列标识用于标识处理器或交换网芯片上存储数据报文的流队列;
对所述报文管理请求进行流量管理,并根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;
向所述处理器或所述交换网芯片发送报文管理响应,以使得所述处理器或所述交换网芯片根据所述管理指示处理所述队列标识对应的流队列中的数据报文。
根据第一方面,在第一方面的第一种可能的实现方式中,所述对报文管理请求进行流量管理,并根据管理结果生成报文管理响应包括:
根据拥塞管理策略和调度队列的缓存状态,判断是否丢弃所述报文管理请求,所述调度队列用于存储所述报文管理请求;
如果判断结果为是,则丢弃所述报文管理请求,并生成所述报文管理响应,其中所述管理指示为丢弃处理指示,以使得所述处理器或所述交换网芯片丢弃所述队列标识对应的流队列中的数据报文;
如果判断结果为否,则将所述报文管理请求存入所述调度队列。
根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述对报文管理请求进行流量管理,并根据管理结果生成报文管理响应包括:
根据队列调度策略对所述调度队列进行出队调度;
在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应,其中所述管理指示为转发处理指示,以使得所述处理器或所述交换网芯片转发所述队列标识对应的流队列中的数据报文。
根据第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述队列调度策略为按字节调度;所述报文管理请求中还包括报文长度;
所述根据队列调度策略对调度队列进行出队调度包括:
根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
根据第一方面的第一种至第三种可能的实现方式中的任意一种,在第一方面的第四种可能的实现方式中,所述拥塞管理策略为拥塞尾丢弃;
所述根据拥塞管理策略和调度队列的缓存状态,判断是否丢弃所述报文管理请求包括:
如果所述调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;
如果所述调度队列的缓存未满,则判定不丢弃所述报文管理请求。
根据第一方面的第一种至第三种可能的实现方式中的任意一种,在第一方面的第五种可能的实现方式中,所述拥塞管理策略为拥塞随机丢弃;
所述根据拥塞管理策略和调度队列的缓存状态,判断是否丢弃所述报文管理请求包括:
如果所述调度队列的缓存已满,根据所述拥塞管理策略从所述调度队列中获取准备随机丢弃的报文;如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;
如果所述调度队列的缓存未满,则判定不丢弃所述报文管理请求。
根据第一方面和第一方面的第一种和第二种可能的实现方式中的任意一种,所述报文管理请求中还包括报文长度;
所述报文管理响应还包括所述报文长度,以使得所述处理器或所述交换网芯片根据所述报文长度从所述队列标识对应的所述流队列中获取数据报文。
第二方面,提供了一种流量管理TM实现装置,包括:
接收模块,用于接收处理器或交换网芯片发送的报文管理请求,所述报文管理请求中包括队列标识,所述队列标识用于标识所述处理器或所述交换网芯片存储数据报文的流队列;
流量管理模块,用于对所述报文管理请求进行流量管理,并根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;
发送模块,用于向所述处理器或所述交换网芯片发送所述报文管理响应,以使得所述处理器或所述交换网芯片根据所述管理指示处理所述队列标识对应的流队列中的数据报文。
根据第二方面,在第二方面的第一种可能的实现方式中,所述流量管理模块,具体用于根据拥塞管理策略和调度队列的缓存状态,判断是否丢弃所述报文管理请求,所述调度队列用于存储所述报文管理请求;如果判断结果为是,则丢弃所述报文管理请求,并生成所述报文管理响应,其中所述管理指示为丢弃处理指示,以使得所述处理器或所述交换网芯片丢弃所述队列标识对应的流队列中的数据报文;如果判断结果为否,则将所述报文管理请求存入所述调度队列。
根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述流量管理模块,具体还用于根据队列调度策略对所述调度队列进行出队调度,并在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应,其中所述管理指示为转发处理指示,以使得所述处理器或所述交换网芯片转发所述队列标识对应的流队列中的数据报文。
根据第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述队列调度策略为按字节调度;所述报文管理请求中还包括报文长度;
所述流量管理模块,具体用于根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
根据第二方面的第一种至第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述拥塞管理策略为拥塞尾丢弃;
所述流量管理模块,具体用于如果所述队列标识对应的调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
根据第二方面的第一种至第三种可能的实现方式,在第二方面的第五种可能的实现方式中,所述拥塞管理策略为拥塞随机丢弃;
所述流量管理模块,具体用于如果所述队列标识对应的调度队列的缓存已满,根据所述拥塞管理策略获取准备随机丢弃的报文,如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
根据第二方面和第二方面的第一种和第二种可能的实现方式中的任一种,在第二方面的第六种可能的实现方式中,所述报文管理请求中还包括报文长度;
所述报文管理响应还包括所述报文长度,以使得所述处理器或所述交换网芯片根据所述报文长度从所述队列标识对应的所述流队列中获取数据报文。
第三方面,提供了一种网络设备,包括:流量管理TM实现装置,处理器和交换网芯片;
所述处理器包括第一接口和第二接口;所述处理器通过所述第一接口与所述TM装置通信;通过所述第二接口与所述交换网芯片通信;
所述交换网芯片,用于将数据报文通过第二接口发送给所述处理器;
所述处理器,用于对所述数据报文进行解析,获取流标识;根据所述流标识获取对应的流队列的队列标识,将所述数据报文存入所述流队列中;通过所述第一接口向所述TM实现装置发送报文管理请求,所述报文管理请求中包括所述队列标识;
所述TM实现装置,用于接收所述报文管理请求,对所述报文管理请求进行流量管理,根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;并向所述处理器发送所述报文管理响应,以使得所述处理器根据所述管理指示处理所述队列标识对应的流队列中的数据报文;
所述处理器,还用于通过所述第一接口接收所述报文管理响应,根据所述管理指示,处理所述队列标识对应的流队列中的数据报文,以实现所述网络设备的流量管理。
根据第三方面,在第三方面的第一种可能的实现方式中,
所述TM实现装置,具体用于根据拥塞管理策略和调度队列的缓存状态,判断是否丢弃所述报文管理请求,所述调度队列用于存储所述报文管理请求;如果判断结果为是,则丢弃所述报文管理请求,并生成所述报文管理响应,其中所述管理指示为丢弃处理指示,以使得所述处理器丢弃所述队列标识对应的流队列中的数据报文;如果判断结果为否,则将所述报文管理请求存入所述调度队列;
所述处理器,具体用于根据所述丢弃处理指示,丢弃所述队列标识对应的流队列中的数据报文。
根据第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,
所述TM实现装置,具体还用于根据队列调度策略对所述调度队列进行出队调度;在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应,其中所述管理指示为转发处理指示,以使得所述处理器转发所述队列标识对应的流队列中的数据报文;
所述处理器,具体还用于根据所述转发处理指示,转发所述队列标识对应的流队列中的数据报文。
根据第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述队列调度策略为按字节调度;所述报文管理请求中还包括报文长度;
所述TM实现装置,具体用于根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度;
所述处理器,具体用于根据所述报文长度,从所述队列标识对应的所述流队列中获取所述数据报文。
根据第三方面的第一种至第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述拥塞管理策略为拥塞尾丢弃;
所述TM实现装置,具体用于如果所述队列标识对应的调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
根据第三方面的第一种至第三种可能的实现方式,在第三方面的第五种可能的实现方式中,所述拥塞管理策略为拥塞随机丢弃;
所述TM实现装置,具体用于如果所述队列标识对应的调度队列的缓存已满,根据所述拥塞管理策略获取准备随机丢弃的报文,如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
根据第三方面和第三方面的第一种和第二种可能的实现方式中的任一种,在第三方面的第六种可能的实现方式中,所述报文管理请求中还包括报文长度;所述报文管理响应还包括所述报文长度;
所述处理器,具体用于根据所述报文长度,从所述队列标识对应的所述流队列中获取所述数据报文。
第四方面,提供了一种网络设备,包括:流量管理TM实现装置和交换网芯片;
所述交换网芯片包括第一接口,并通过所述第一接口与所述TM实现装置通信;
所述交换网芯片,用于对所述数据报文进行解析,获取流标识;根据所述流标识获取对应的流队列的队列标识,将所述数据报文存入所述流队列中;通过所述第一接口向所述TM实现装置发送报文管理请求,所述报文管理请求中包括所述队列标识;
所述TM实现装置,用于接收所述报文管理请求,对所述报文管理请求进行流量管理,根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;并向所述交换网芯片发送所述报文管理响应,以使得所述交换网芯片根据所述管理指示处理所述队列标识对应的流队列中的数据报文;
所述交换网芯片,还用于通过所述第一接口接收所述报文管理响应,根据所述管理指示,处理所述队列标识对应的流队列中的数据报文,以实现所述网络设备的流量管理。
根据第四方面,在第四方面的第一种可能的实现方式中,
所述TM实现装置,具体用于根据拥塞管理策略和调度队列的缓存状态,判断是否丢弃所述报文管理请求,所述调度队列用于存储所述报文管理请求;如果判断结果为是,则丢弃所述报文管理请求,并生成所述报文管理响应,其中所述管理指示为丢弃处理指示,以使得所述交换网芯片丢弃所述队列标识对应的流队列中的数据报文;如果判断结果为否,则将所述报文管理请求存入所述调度队列;
所述交换网芯片,具体用于根据所述丢弃处理指示,丢弃所述队列标识对应的流队列中的数据报文。
根据第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,
所述TM实现装置,具体还用于根据队列调度策略对所述调度队列进行出队调度;在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应,其中所述管理指示为转发处理指示,以使得所述交换网芯片转发所述队列标识对应的流队列中的数据报文;
所述交换网芯片,具体还用于根据所述转发处理指示,转发所述队列标识对应的流队列中的数据报文。
根据第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述队列调度策略为按字节调度;所述报文管理请求中还包括报文长度;
所述TM实现装置,具体用于根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度;
所述交换网芯片,具体用于根据所述报文长度,从所述队列标识对应的所述流队列中获取所述数据报文。
根据第四方面的第一种至第三种可能的实现方式,在第四方面的第四种可能的实现方式中,所述拥塞管理策略为拥塞尾丢弃;
所述TM实现装置,具体用于如果所述队列标识对应的调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
根据第四方面的第一种至第三种可能的实现方式,在第四方面的第五种可能的实现方式中,所述拥塞管理策略为拥塞随机丢弃;
所述TM实现装置,具体用于如果所述队列标识对应的调度队列的缓存已满,根据所述拥塞管理策略获取准备随机丢弃的报文,如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
根据第四方面和第四方面的第一种和第二种可能的实现方式中的任一种,在第四方面的第六种可能的实现方式中,所述报文管理请求中还包括报文长度;所述报文管理响应还包括所述报文长度;
所述交换网芯片,具体用于根据所述报文长度,从所述队列标识对应的所述流队列中获取所述数据报文。
根据第四方面和第四方面的第一种至第六种可能的实现方式中的任一种,在第四方面的第七种可能的实现方式中,所述网络设备还包括处理器;
所述交换网芯片还包括第二接口,并通过所述第二接口与所述处理器通信。
本发明实施例提供的流量管理实现方法、装置和网络设备,将TM实现装置组件化,侧挂在处理器或交换网芯片旁,通过与处理器或交换网芯片的联动,实现网络设备的流量管理功能。由于在处理器或交换网芯片上对数据报文进行解析和流分类,TM实现装置通过与处理器或交换网芯片通信获取数据报文相关的信息,进行流量管理。因此,TM实现装置无须用高规格FPGA,由中低档FPGA芯片即可满足流量管理功能、逻辑处理和性能的要求,降低了网络设备的成本。并且TM实现装置不用存储数据报文,减少了设备外部存储单元的数量,可以进一步降低网络设备的成本。此外,由于TM实现装置与处理器或交换网芯片之间通信的接口,不受数据通路(交换网芯片与处理器之间通信)的高速数据接口的限制,接口实现灵活,也可以降低网络设备的实现复杂度和难度。
附图说明
图1是本发明实施例提供的一种网络设备的结构示意图;
图2A,2B是本发明实施例提供的另一种网络设备的结构示意图;
图3是本发明实施例提供的一种流量管理实现方法的流程图;
图4是本发明实施例提供的流量管理实现装置示意图。
具体实施方式
为使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
与现有技术中TM芯片串接在处理器与交换网(英文:switchingfabric)芯片的数据通路上不同。本发明实施例中,TM实现装置(硬件TM或TM芯片),侧挂在处理器旁或者侧挂在交换网芯片旁,TM实现装置的接口不必受限于数据通路的高速数据接口。TM实现装置无需存储和处理数据报文,而是由处理器或交换网芯片存储数据报文并对数据报文进行解析、流分类等处理。TM实现装置通过与处理器或交换网芯片通信,获取数据报文的相关信息,例如流队列标识,报文长度,序列号等信息,然后根据数据报文的相关信息执行拥塞控制,队列调度等流量管理功能。这样TM实现装置只需存储数据报文的相关信息,而无需专门的外部存储单元来存储数据报文,减少了设备所需外部存储单元的数量,可以降低设备成本。TM实现装置再将根据数据报文的相关信息执行流量管理的结果反馈给处理器或交换网芯片,使得处理器或交换网芯片根据该结果对数据报文执行相应的操作,来实现对数据报文的流量管理。这样,通过TM实现装置与处理器或交换网芯片之间的联动,不仅可以实现网络设备的流量管理功能,还可以降低设备成本;并且将TM实现装置与处理器或交换网芯片之间通信的接口与数据通路的高速数据接口解耦,也可以降低网络设备的实现复杂度。
参见图1,本发明实施例提供了一种网络设备,该网络设备10包括TM实现装置101,处理器102,交换网芯片103和存储器104。
TM实现装置101、处理器102和交换网芯片103之间通过总线105相互连接;处理器102可以通过所述总线105对TM实现装置101、交换网芯片103进行配置,控制和管理等操作。
处理器102通过所述总线105访问存储器104。
总线105可以是外设部件互连标准(peripheralcomponentinterconnect,简称PCI)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称EISA)总线等。所述总线105可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
TM实现装置101侧挂在处理器102旁,通过与处理器102的交互和联动,实现流量管理功能。
处理器102包括与TM实现装置101通信的第一接口,还包括与交换网芯片103通信的第二接口。所述第二接口通常为高速数据接口,例如40吉比特每秒(Gbit/s)接口,可以采用所述处理器102和所述交换网芯片103所支持的任意协议类型,例如,10吉比特媒体无关接口(10GigabitMediaIndependentInterface,简称XGMII),XAUI(是对XGMII的扩展),PCIe(PCIExpress,PeripheralComponentInterconnectExpress)等。所述第一接口的速率可以低于所述第二接口的速率,例如所述第一接口的速率可以为4Gbit/s,10Gbps等。所述第一接口的协议类型可以与所述第二接口的协议类型相同,也可以不同,具体根据所述处理器102和所述TM实现装置101所支持的协议类型确定。
进一步地,所述网络设备10还包括若干通信端口,用于与其他网络设备通信。所述网络设备10从通信端口收到数据报文之后,通过交换网芯片103发送给处理器102处理。
存储器104,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器104可能包括随机存取存储器(randomaccessmemory,简称RAM),例如DDRSDRAM,也可能还包括非易失性存储器(non-volatilememory),例如,快闪存储器(英文:flashmemory,也称为闪存),硬盘(英文:harddiskdrive,缩写:HDD)或固态硬盘(英文:solid-statedrive,缩写:SSD)。
交换网芯片103,用于将数据报文通过第二接口发送给处理器102。
处理器102执行存储器104中存放的程序,用于:对所述数据报文进行解析,获取流标识;根据所述流标识获取对应的流队列的队列标识,将所述数据报文存入所述流队列中;通过第一接口向TM实现装置101发送报文管理请求,所述报文管理请求中包括所述队列标识。
所述存储器104,还用于存放所述流队列;所述队列标识用于标识所述流队列。
TM实现装置101,用于接收所述报文管理请求,对所述报文管理请求进行流量管理,根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;并向所述处理器102发送所述报文管理响应,以使得所述处理器102根据所述管理指示处理所述队列标识对应的流队列中的数据报文;
所述处理器102还用于通过所述第一接口接收所述报文管理响应,根据所述管理指示处理所述队列标识对应的流队列中的数据报文,以实现所述网络设备的流量管理。
TM实现装置101,具体用于根据所述TM实现装置101拥塞管理策略和所述TM实现装置101的调度队列的缓存状态,判断是否丢弃所述报文管理请求;如果判断结果为是,则丢弃所述报文管理请求,并生成所述报文管理响应,其中所述管理指示为丢弃处理指示,以使得所述处理器102丢弃所述队列标识对应的流队列中的数据报文;如果判断结果为否,则将所述报文管理请求存入所述调度队列。所述调度队列用于存储所述报文管理请求。
所述处理器102,具体用于根据所述丢弃处理指示,丢弃所述队列标识对应的流队列中的数据报文。
所述TM实现装置101,具体还用于根据所述TM实现装置101的队列调度策略,对所述调度队列进行出队调度;在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应,其中所述管理指示为转发处理指示,以使得所述处理器102转发所述队列标识对应的流队列中的数据报文。
所述处理器102,具体还用于根据所述转发处理指示,转发所述队列标识对应的流队列中的数据报文。
由于报文管理请求的长度相对于数据报文的长度要小很多,因此TM实现装置101只需要一个外部存储单元,例如,QDRSDRAM,存储所述调度队列;且该外部存储单元的容量也无需很大。此外,由于报文管理请求的长度一般比较固定,所述调度队列可采用链表的形式来实现。
所述TM实现装置101的拥塞管理策略包括拥塞尾丢弃,拥塞随机丢弃等策略。
当所述拥塞管理策略为拥塞尾丢弃时,所述TM实现装置101根据拥塞管理策略和所述队列标识对应的调度队列的缓存状态,判断是否丢弃所述报文管理请求包括:
如果所述队列标识对应的调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;
如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
当所述拥塞管理策略为拥塞随机丢弃时,所述TM实现装置101根据拥塞管理策略和所述队列标识对应的调度队列的缓存状态,判断是否丢弃所述报文管理请求包括:
如果所述队列标识对应的调度队列的缓存已满,根据所述拥塞管理策略从所述调度队列中获取准备随机丢弃的报文;如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;
如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
所述TM实现装置101的队列调度策略可以是按字节调度,也可以是按数据包调度。
当所述TM实现装置101的队列调度策略为按数据包调度时,所述TM实现装置101无需根据报文长度进行队列调度,所述TM实现装置101与所述处理器102之间是否要交互数据报文的报文长度,根据处理器102的实现方式确定。
处理器102存在如下三种可能的实现方式:
一种可能的实现方式中,所述处理器102在将所述数据报文存入所述队列标识对应的流队列之后,保存所述数据报文在所述流队列中的头指针和尾指针,从而可以根据该头指针和该尾指针从所述流队列中正确获取出所述数据报文。
当所述TM实现装置101的队列调度策略为按字节调度时,所述报文管理请求中还包括报文长度;所述处理器102还用于获取所述数据报文的报文长度。
所述根据队列调度策略,对所述调度队列进行出队调度包括:
根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
另一种可能的实现方式中,所述处理器102在将所述数据报文存入所述队列标识对应的流队列之后,保存所述数据报文在所述流队列中的头指针和所述数据报文的报文长度,以界定所述流队列中的数据报文,从而可以根据该头指针和所述报文长度从所述流队列中正确获取出所述数据报文;
所述处理器102还用于获取所述数据报文的报文长度。
当所述TM实现装置101的队列调度策略为按字节调度时,所述报文管理请求中还包括报文长度。
所述根据队列调度策略,对所述调度队列进行出队调度包括:
根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
再一种可能的实现方式中,所述处理器102在将所述数据报文存入所述队列标识对应的流队列之后,仅保存所述数据报文在所述流队列中的头指针;所述处理器102还获取所述数据报文的报文长度,并与TM实现装置101之间交互数据报文的报文长度;
所述报文管理请求中还包括报文长度;
所述报文管理响应还包括所述报文长度,以使得所述处理器102根据所述报文长度从所述队列标识对应的所述流队列中获取数据报文。所述处理器102,具体用于根据所述报文长度和保存的头指针,从所述队列标识对应的所述流队列中正确获取出所述数据报文,并根据所述管理指示处理所述数据报文。
本发明实施例上述处理器102可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、FPGA或者其他可编程逻辑器件。
上述TM实现装置101可以是FPGA或者其他可编程逻辑器件。
进一步地,所述处理器102通过所述第二接口收到的可能是分片报文。也就是说,一个数据报文被分为若干个分片报文。
所述处理器102还可以用于将若干个分片报文重组为一个完整的数据报文;然后再如上所述,对数据报文进行解析和流分类,即,获取流标识,根据所述流标识获取对应的流队列的队列标识,将所述数据报文存入所述流队列中。
可替代的,所述处理器102向所述TM实现装置发送与分片报文对应的分片管理请求,所述分片管理请求中包括分片信息以及上述队列标识,可选的还包括分片报文的报文长度。所述TM实现装置还包括分片链表,用于存储一个数据报文对应的若干个分片管理请求,所述TM实现装置将存储一个数据报文对应的若干个分片管理请求的分片链表作为一个整体,进行上述流量管理,即进行拥塞控制,存入调度队列和出队等。
所述TM实现装置101与所述处理器102之间传输的报文管理请求/响应也可能出现丢包,为此,所述报文管理请求还可以包括第一序列号;所述报文管理响应中还可以包括第二序列号,以便于识别所述TM实现装置101与所述处理器102之间传输的报文管理请求/响应是否发生了丢包。
具体地,所述处理器102按照序列号递增或递减生成报文管理请求,并在第一预设重传时间内缓存报文管理请求,所述TM实现装置101收到报文管理请求后,检查该报文管理请求的序列号相对于上一个收到的报文管理请求的序列号是否递增或递减,例如递增1或递减1。如果是,则判定没有发生丢包。如果否,则判定发生了丢包,所述TM实现装置101向所述处理器102请求重传该报文管理请求的序列号与上一个收到报文管理请求的序列号之间所差序列号的报文管理请求。
所述TM实现装置101还用于发送第一报文重传请求,所述第一报文重传请求中包括所述第一序列号。所述处理器102还用于接收所述第一报文重传请求,并重发所述第一序列号对应的报文管理请求。
同理,所述TM实现装置101按照序列号递增或递减生成报文管理响应,并在第二预设重传时间内缓存报文管理响应,所述处理器102收到报文管理响应后,检查该报文管理响应的序列号相对于上一个收到的报文管理响应的序列号是否递增或递减,例如递增1或递减1。如果是,则判定没有发生丢包。如果否,则判定发生了丢包,所述处理器102向所述TM实现装置101请求重传该报文管理响应的序列号与上一个收到报文管理响应的序列号之间所差序列号的报文管理响应。
所述处理器102还用于发送第二报文重传请求,所述第二报文重传请求中包括所述第二序列号。所述TM实现装置101还用于接收所述第二报文重传请求,并重发所述第二序列号对应的报文管理响应。
进一步地,所述交换网芯片103还可以反向流控,即根据所述交换网芯片103进行流交换和转发的情况,反向控制所述处理器102对流队列的转发。所述交换网芯片103还用于向所述处理器102发送反向流控报文,所述反向流控报文中包括流量控制要求,以及队列标识或者通信端口的信息(例如,端口号)。所述处理器102还用于解析和处理所述反向流控报文,向所述TM实现装置101发送流控请求,所述流控请求中包括队列标识和所述流量控制要求,以使得所述TM实现装置101可以根据所述流量控制要求,对所述队列标识对应的调度队列进行入队和出队调度。
本发明实施例提供的网络设备,TM实现装置101侧挂在处理器102旁,通过与处理器102的交互和联动,实现网络设备的流量管理功能。TM实现装置101无须用高规格FPGA,由中低档FPGA芯片即可满足流量管理功能、逻辑处理和性能的要求,降低了网络设备的成本。并且,与现有技术中TM芯片必须配备专门的外部存储单元来存储数据报文不同,本发明实施例中的TM实现装置101不用缓存数据报文,减少了设备外部存储单元的数量,可以进一步降低网络设备的成本。此外,由于TM实现装置101与处理器102之间通信的接口(即第一接口),不受数据通路(即交换网芯片与处理器之间通信)的高速数据接口(即第二接口)的限制,接口实现灵活,也可以降低网络设备的实现复杂度和难度。
参见图2A,本发明实施例提供了另一种网络设备,该网络设备20包括TM实现装置201,交换网芯片202和存储器203。
TM实现装置201和交换网芯片202之间通过总线204相互连接。
总线204可以是PCI总线或EISA总线等。所述总线204可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
交换网芯片202通过所述总线204访问存储器203。
TM实现装置201侧挂在交换网芯片202旁,通过与交换网芯片202的交互和联动,实现流量管理功能。
所述交换网芯片202包括与所述TM实现装置201通信的第一接口,所述第一接口的速率不要求很高,可以为4Gbps,10Gbps等。所述第一接口可以采用所述TM实现装置201和所述交换网芯片202所支持的任意协议类型,例如,XAUI,PCIe等。
所述网络设备20还包括若干通信端口,用于与其他网络设备通信。所述网络设备20从通信端口收到数据报文之后,上送至所述交换网芯片202。
交换网芯片202,用于对数据报文进行解析,获取流标识;根据所述流标识获取流队列的队列标识,将所述数据报文存入所述队列标识对应的流队列中;通过所述第一接口向TM实现装置201发送报文管理请求,所述报文管理请求中包括所述队列标识。
存储器203,用于存放所述流队列;所述队列标识用于标识所述流队列。
存储器203可能包含RAM,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
TM实现装置201,用于接收所述报文管理请求,对所述报文管理请求进行流量管理,根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;并向所述交换网芯片202发送所述报文管理响应,以使得所述交换网芯片202根据所述管理指示处理所述队列标识对应的流队列中的数据报文;
所述交换网芯片202,还用于通过所述第一接口接收所述报文管理响应,根据所述管理指示处理所述队列标识对应的流队列中的数据报文。
所述TM实现装置201,具体用于根据所述TM实现装置201拥塞管理策略和所述TM实现装置201的调度队列的缓存状态,判断是否丢弃所述报文管理请求;如果判断结果为是,则丢弃所述报文管理请求,并生成所述报文管理响应,其中所述管理指示为丢弃处理指示,以使得所述交换网芯片202丢弃所述队列标识对应的流队列中的数据报文;如果判断结果为否,则将所述报文管理请求存入所述调度队列。所述调度队列用于存储所述报文管理请求。
所述交换网芯片202,具体用于根据所述丢弃处理指示,丢弃所述队列标识对应的流队列中的数据报文。
所述TM实现装置201,具体还用于根据所述TM实现装置201的队列调度策略,对所述调度队列进行出队调度;在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应,其中所述管理指示为转发处理指示,以使得所述交换网芯片202转发所述队列标识对应的流队列中的数据报文。
所述交换网芯片202,具体还用于根据所述转发处理指示,转发所述队列标识对应的流队列中的数据报文。
由于报文管理请求的长度相对于数据报文的长度要小很多,因此TM实现装置201只需要一个外部存储单元,例如,QDRSDRAM,存储所述调度队列;且该外部存储单元的容量也无需很大。此外,由于报文管理请求的长度一般比较固定,所述调度队列可采用链表的形式来实现。
所述TM实现装置201的拥塞管理策略包括拥塞尾丢弃,拥塞随机丢弃等策略。
当所述拥塞管理策略为拥塞尾丢弃时,所述TM实现装置201根据拥塞管理策略和所述队列标识对应的调度队列的缓存状态,判断是否丢弃所述报文管理请求包括:
如果所述队列标识对应的调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;
如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
当所述拥塞管理策略为拥塞随机丢弃时,所述TM实现装置201根据拥塞管理策略和所述队列标识对应的调度队列的缓存状态,判断是否丢弃所述报文管理请求包括:
如果所述队列标识对应的调度队列的缓存已满,根据所述拥塞管理策略从所述调度队列中获取准备随机丢弃的报文;如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;
如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
如图2B所示,所述网络设备20还包括处理器205。所述处理器205通过所述总线204与所述TM实现装置201和所述交换网芯片202相互连接。
所述处理器205可以通过所述总线204对所述TM实现装置201、所述交换网芯片202进行配置,控制和管理等操作。
所述处理器205可以是通用处理器,包括CPU、NP等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、FPGA或者其他可编程逻辑器件。
所述交换网芯片202还可以包括与所述处理器205通信的第二接口。所述第二接口通常为高速数据接口,例如40Gbps接口,通常高于所述第一接口的速率。所述第二接口可以采用所述处理器205和所述交换网芯片202所支持的任意协议类型,例如,XAUI,PCIe等。所述第二接口的协议类型可以与所述第一接口的协议类型相同,也可以不同,具体根据所述处理器205和所述TM实现装置201所支持的协议类型确定。
所述交换网芯片202,还用于将所述数据报文通过所述第二接口发送给所述处理器205。
进一步地,所述网络设备20还可以包括存储器206,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器206可能包括RAM,例如DDRSDRAM,也可能还包括非易失性存储器,例如,闪存,HDD或SSD。
处理器205通过所述总线204访问所述存储器206。处理器205执行存储器206中存放的程序,用于对所述TM实现装置201、所述交换网芯片202进行配置,控制和管理等操作;还用于与所述交换网芯片202通信,接收所述交换网芯片202发送的所述数据报文。
所述TM实现装置201的队列调度策略可以是按字节调度,也可以是按数据包调度。
详细地来说,所述TM实现装置201与所述交换网芯片202之间是否要交互数据报文的报文长度,需要根据交换网芯片对数据报文进行流分类时的处理以及所述TM实现装置201的队列调度策略来确定。
当所述TM实现装置201的队列调度策略为按数据包调度时,所述TM实现装置201无需根据报文长度进行队列调度,所述TM实现装置201与所述交换网芯片202之间是否要交互数据报文的报文长度,根据交换网芯片202的实现方式确定。
交换网芯片202存在如下三种可能的实现方式:
一种可能的实现方式中,所述交换网芯片202在将所述数据报文存入所述队列标识对应的流队列之后,可以保存所述数据报文在所述流队列中的头指针和尾指针,从而可以根据该头指针和该尾指针从所述流队列中正确获取出所述数据报文。
当所述TM实现装置201的队列调度策略为按字节调度时,所述报文管理请求中还包括报文长度;所述交换网芯片202还用于获取所述数据报文的报文长度。
所述根据队列调度策略,对所述调度队列进行出队调度包括:
根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
另一种可能的实现方式中,所述交换网芯片202在将所述数据报文存入所述队列标识对应的流队列之后,可以保存所述数据报文在所述流队列中的头指针和所述数据报文的报文长度,以界定所述流队列中的数据报文,从而可以根据该头指针和所述报文长度从所述流队列中正确获取出所述数据报文。
所述交换网芯片202还用于获取所述数据报文的报文长度。
当所述TM实现装置201的队列调度策略为按字节调度时,所述报文管理请求中还包括所述报文长度。
所述根据队列调度策略,对所述调度队列进行出队调度包括:
根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
再一种可能的实现方式中,所述交换网芯片202在将所述数据报文存入所述队列标识对应的流队列之后,可以保存所述数据报文在所述流队列中的头指针;所述交换网芯片202还获取所述数据报文的报文长度,并与TM实现装置101之间交互数据报文的报文长度;
所述报文管理请求中还包括报文长度;
所述报文管理响应还包括所述报文长度,以使得所述交换网芯片202可以根据所述报文长度,正确地从所述队列标识对应的所述流队列中获取数据报文。所述交换网芯片202,具体用于根据所述报文长度和保存的头指针,从所述队列标识对应的所述流队列中正确获取出所述数据报文,并根据所述管理指示处理所述数据报文。
上述TM实现装置201可以是FPGA或者其他可编程逻辑器件。
进一步地,所述交换网芯片202收到的可能是分片报文。也就是说,一个数据报文被分为若干个分片报文。
所述交换网芯片202还可以用于将若干个分片报文重组为一个完整的数据报文;然后再如上所述,对数据报文进行解析和流分类,即,获取流标识,根据所述流标识获取对应的流队列的队列标识,将所述数据报文存入所述流队列中。
可替代的,所述交换网芯片202向所述TM实现装置201发送与分片报文对应的分片管理请求,所述分片管理请求中包括分片信息以及上述队列标识,可选的还包括分片报文的报文长度。所述TM实现装置201还包括分片链表,用于存储一个数据报文对应的若干个分片管理请求,所述TM实现装置201将存储一个数据报文对应的若干个分片管理请求的分片链表作为一个整体,进行上述流量管理,即进行拥塞控制,存入调度队列和出队等。
所述TM实现装置201与所述交换网芯片202之间传输的报文管理请求/响应也可能出现丢包,为此,所述报文管理请求还可以包括第一序列号;所述报文管理响应中还可以包括第二序列号,以便于识别所述TM实现装置201与所述交换网芯片202之间传输的报文管理请求/响应是否发生了丢包。
具体地,所述交换网芯片202按照序列号递增或递减生成报文管理请求,并在第一预设重传时间内缓存报文管理请求,所述TM实现装置201收到报文管理请求后,检查该报文管理请求的序列号相对于上一个收到的报文管理请求的序列号是否递增或递减,例如递增1或递减1。如果是,则判定没有发生丢包。如果否,则判定发生了丢包,所述TM实现装置101向所述交换网芯片202请求重传该报文管理请求的序列号与上一个收到报文管理请求的序列号之间所差序列号的报文管理请求。
所述TM实现装置201还用于发送第一报文重传请求,所述第一报文重传请求中包括所述第一序列号。所述交换网芯片202还用于接收所述第一报文重传请求,并重发所述第一序列号对应的报文管理请求。
同理,所述TM实现装置201按照序列号递增或递减生成报文管理响应,并在第二预设重传时间内缓存报文管理响应,所述交换网芯片202收到报文管理响应后,检查该报文管理响应的序列号相对于上一个收到的报文管理响应的序列号是否递增或递减,例如递增1或递减1。如果是,则判定没有发生丢包。如果否,则判定发生了丢包,所述交换网芯片202向所述TM实现装置201请求重传该报文管理响应的序列号与上一个收到报文管理响应的序列号之间所差序列号的报文管理响应。
所述交换网芯片202还用于发送第二报文重传请求,所述第二报文重传请求中包括所述第二序列号。所述TM实现装置201还用于接收所述第二报文重传请求,并重发所述第二序列号对应的报文管理响应。
进一步地,所述交换网芯片202还可以反向流控,即反向控制流队列的转发。所述交换网芯片202还用于向所述TM实现装置201发送流控请求,所述流控请求中包括队列标识和流量控制要求,以使得所述TM实现装置201可以根据所述流量控制要求,对所述队列标识对应的调度队列进行入队和出队调度。
本发明实施例提供的网络设备,TM实现装置201侧挂在交换网芯片202旁,通过与交换网芯片202的交互和联动,实现网络设备的流量管理功能。TM实现装置201无须用高规格FPGA,由中低档FPGA芯片即可满足流量管理功能、逻辑处理和性能的要求,降低了网络设备的成本。并且,与现有技术中TM芯片必须配备专门的外部存储单元来存储数据报文不同,本发明实施例中的TM实现装置201不用存储数据报文,减少了设备外部存储单元的数量,可以进一步降低网络设备的成本。此外,由于TM实现装置201与交换网芯片202之间通信的接口(即第一接口),不受数据通路(即交换网芯片与处理器之间通信)的高速数据接口(即第二接口)的限制,接口实现灵活,也可以降低网络设备的实现复杂度和难度。
参见图3,本发明实施例提供了一种流量管理实现方法,由上述TM实现装置执行。如图3所示,所述方法包括:
301、接收处理器或交换网芯片发送的所述报文管理请求,所述报文管理请求中包括队列标识;
302、对报文管理请求进行流量管理,并根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;
303、向所述处理器或所述交换网芯片发送报文管理响应,以使得所述处理器或所述交换网芯片根据所述管理指示处理所述队列标识对应的流队列中的数据报文。
具体地,TM实现装置从处理器或交换网芯片接收所述报文管理请求,然后对所述报文管理请求进行流量管理。
所述队列标识(ID)用于标识所述处理器或所述交换网芯片上存储数据报文的流队列。
本发明实施例中,TM实现装置侧挂在处理器或交换网芯片旁。处理器或交换网芯片对数据报文解析,获取流标识并进行流分类,然后将数据报文存入所述处理器或交换网芯片的流队列中,流队列通过所述队列ID标识,队列ID与流标识一一对应。TM实现装置通过对报文管理请求进行流量管理,并向处理器或交换网芯片返回对报文管理请求进行流量管理的结果,使处理器或交换网芯片根据该结果处理相应流队列中的数据报文,从而通过TM实现装置与处理器或交换网芯片的联动,实现网络设备的流量管理功能。TM实现装置不用存储数据报文,减少了设备外部存储单元的数量;并且由于TM实现装置与处理器或交换网芯片之间交互的是数据报文相关的信息(报文管理请求/响应),因此TM实现装置与处理器或交换网芯片之间通信的接口,不受数据通路(交换网芯片与处理器之间通信)的高速数据接口的限制,从而将TM实现装置的接口与数据通路的高速数据接口解耦。
TM实现装置接收到处理器或交换网芯片发送的所述报文管理请求,首先要根据所述TM实现装置的拥塞管理策略和所述TM实现装置的调度队列的缓存状态,判断是丢弃所述报文管理请求还是将所述报文管理请求存入所述调度队列中。
所述TM实现装置的调度队列用于存储所述报文管理请求。TM实现装置上可能同时存在多个调度队列,用于存储不同流队列对应的报文管理请求。本发明实施例中,所述调度队列优选地用所述队列ID来标识。当然,也可以用与所述队列ID一一对应的其他ID来标识。本发明对此不做限定。
所述对报文管理请求进行流量管理,并根据管理结果生成报文管理响应包括:
根据拥塞管理策略和调度队列的缓存状态,判断是否丢弃所述报文管理请求;
如果判断结果为是,则丢弃所述报文管理请求,并生成所述报文管理响应,其中所述管理指示为丢弃处理指示,以使得所述处理器或所述交换网芯片丢弃所述队列标识对应的流队列中的数据报文;
如果判断结果为否,则将所述报文管理请求存入所述调度队列。
具体地,如果判断结果为否,则所述TM实现装置将所述报文管理请求存入所述队列ID对应的调度队列中,以便所述TM实现装置按照队列调度策略进行管理和调度。如果判断结果为是,则所述TM实现装置不缓存所述报文管理请求,而是直接丢弃所述报文管理请求,并向述处理器或所述交换网芯片发送管理指示为丢弃处理指示的所述报文管理响应,以使得所述处理器或所述交换网芯片丢弃所述队列标识对应的流队列中的数据报文。
TM实现装置还需要根据所述TM实现装置的队列调度策略对各个调度队列进行管理和调度,以实现流量管理功能。
所述对报文管理请求进行流量管理,并根据管理结果生成报文管理响应还包括:
根据队列调度策略对调度队列进行出队调度;
在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应;所述管理指示为转发处理指示,以使得所述处理器或所述交换网芯片转发所述队列标识对应的流队列中的数据报文。
由于报文管理请求的长度相对于数据报文的长度要小很多,因此TM实现装置201只需要一个外部存储单元,例如,QDRSDRAM,存储所述调度队列;且该外部存储单元的容量也无需很大。此外,由于报文管理请求的长度一般比较固定,所述调度队列可采用链表的形式来实现。
所述TM实现装置的拥塞管理策略包括拥塞尾丢弃,拥塞随机丢弃等策略。
当所述TM实现装置的拥塞管理策略为拥塞尾丢弃时,所述根据拥塞管理策略和所述队列标识对应的调度队列的缓存状态,判断是否丢弃所述报文管理请求包括:
如果所述队列标识对应的调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;
如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
当所述拥塞管理策略为拥塞随机丢弃时,所述TM实现装置根据拥塞管理策略和所述队列标识对应的调度队列的缓存状态,判断是否丢弃所述报文管理请求包括:
如果所述队列标识对应的调度队列的缓存已满,根据所述拥塞管理策略从所述调度队列中获取准备随机丢弃的报文;如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;
如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
进一步地,所述报文管理请求中还可以包括报文长度。所述报文管理响应还包括所述报文长度,以使得所述处理器或所述交换网芯片可以根据所述报文长度,正确地从所述队列ID对应的所述流队列中获取数据报文。
所述TM实现装置的队列调度策略可以是按字节调度,也可以是按数据包调度。
当所述队列调度策略为按字节调度时,所述报文管理请求中还包括报文长度;所述根据队列调度策略,对所述调度队列进行出队调度包括:根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
详细地来说,所述TM实现装置与所述处理器或交换网芯片之间是否要交互数据报文的报文长度,需要根据处理器或交换网芯片对数据报文进行流分类时的处理以及TM实现装置的所述队列调度策略来确定。
当所述TM实现装置的队列调度策略为按数据包调度时,所述TM实现装置无需根据报文长度进行队列调度,所述TM实现装置与所述处理器或交换网芯片之间是否要交互数据报文的报文长度,根据所述处理器或交换网芯片的实现方式确定。
所述处理器或交换网芯片存在如下三种可能的实现方式:
一种可能的实现方式中,所述处理器或交换网芯片在将所述数据报文存入所述队列标识对应的流队列之后,保存所述数据报文在所述流队列中的头指针和尾指针,从而可以根据该头指针和该尾指针从所述流队列中正确获取出所述数据报文。
若所述TM实现装置的队列调度策略为按字节调度,所述处理器或所述交换网芯片还需要获取数据报文的报文长度,所述报文管理请求中包括报文长度。所述根据队列调度策略,对所述调度队列进行管理和出队调度包括:根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
另一种可能的实现方式中,所述处理器或所述交换网芯片在将所述数据报文存入所述队列标识对应的流队列之后,保存所述数据报文在所述流队列中的头指针和所述数据报文的报文长度,以界定所述流队列中的数据报文,从而可以根据该头指针和所述报文长度从所述流队列中正确获取出所述数据报文。则所述处理器或所述交换网芯片需要获取所述数据报文的报文长度。
若所述TM实现装置的队列调度策略为按字节调度,所述报文管理请求中还包括所述报文长度。
所述根据队列调度策略,对所述调度队列进行出队调度包括:
根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
再一种可能的实现方式中,所述处理器或所述交换网芯片在将所述数据报文存入所述队列标识对应的流队列之后,仅保存所述数据报文在所述流队列中的头指针。所述处理器或所述交换网芯片还获取所述数据报文的报文长度,并与TM实现装置之间交互数据报文的报文长度。
则无论所述TM实现装置的队列调度策略为按字节调度还是按数据包调度,所述报文管理请求中还包括报文长度;所述报文管理响应中也要包括所述报文长度,以使得所述处理器或所述交换网芯片可以根据所述报文长度,正确地从所述队列标识对应的所述流队列中获取数据报文。
进一步地,所述处理器或交换网芯片收到的可能是分片报文。也就是说,一个数据报文被分为若干个分片报文。
所述处理器或交换网芯片可以将若干个分片报文重组为一个完整的数据报文;然后再如上所述,对数据报文进行解析和流分类,即,获取流标识,根据所述流标识获取对应的流队列的队列标识,将所述数据报文存入所述流队列中。
可替代的,所述处理器或交换网芯片也可以向所述TM实现装置发送与分片报文对应的分片管理请求,所述分片管理请求中包括分片信息以及上述队列标识,可选的还包括分片报文的报文长度。所述TM实现装置还包括分片链表,用于存储一个数据报文对应的若干个分片管理请求。所述TM实现装置将存储一个数据报文对应的若干个分片管理请求的分片链表作为一个整体,进行上述流量管理,即进行拥塞控制,存入调度队列和出队等。
所述TM实现装置与所述处理器或交换网芯片之间传输的报文管理请求/响应也可能出现丢包,为此,所述报文管理请求还可以包括第一序列号;所述报文管理响应中还可以包括第二序列号,以便于识别所述TM实现装置与所述处理器或交换网芯片之间传输的报文管理请求/响应是否发生了丢包。
具体地,所述处理器或交换网芯片按照序列号递增或递减生成报文管理请求,并在第一预设重传时间内缓存报文管理请求。所述TM实现装置收到报文管理请求后,检查该报文管理请求的序列号相对于上一个收到的报文管理请求的序列号是否递增或递减,例如递增1或递减1。如果是,则判定没有发生丢包。如果否,则判定发生了丢包,所述TM实现装置向所述处理器或交换网芯片请求重传该报文管理请求的序列号与上一个收到报文管理请求的序列号之间所差序列号的报文管理请求。具体地,所述TM实现装置向所述处理器或交换网芯片发送第一报文重传请求,所述第一报文重传请求中包括所述第一序列号。所述处理器或交换网芯片接收所述第一报文重传请求,并重发所述第一序列号对应的报文管理请求。
同理,所述TM实现装置按照序列号递增或递减生成报文管理响应,并在第二预设重传时间内缓存报文管理响应,所述处理器或交换网芯片收到报文管理响应后,检查该报文管理响应的序列号相对于上一个收到的报文管理响应的序列号是否递增或递减,例如递增1或递减1。如果是,则判定没有发生丢包。如果否,则判定发生了丢包,所述处理器或交换网芯片向所述TM实现装置请求重传该报文管理响应的序列号与上一个收到报文管理响应的序列号之间所差序列号的报文管理响应。具体地,所述处理器或交换网芯片向所述TM实现装置发送第二报文重传请求,所述第二报文重传请求中包括所述第二序列号。所述TM实现装置接收所述第二报文重传请求,并重发所述第二序列号对应的报文管理响应。
进一步地,所述交换网芯片还可以反向流控,即反向控制流队列的转发。所述处理器或交换网芯片向所述TM实现装置发送流控请求,所述流控请求中包括队列标识和流量控制要求,以使得所述TM实现装置可以根据所述流量控制要求,对所述队列标识对应的调度队列进行入队和出队调度。
本发明实施例提供的流量管理实现方法,TM实现装置侧挂在处理器或交换网芯片旁,通过与处理器或交换网芯片的联动,实现网络设备的流量管理功能。由于在处理器或交换网芯片上对数据报文进行解析和流分类,TM实现装置通过与处理器或交换网芯片通信获取数据报文相关的信息,进行流量管理。因此,TM实现装置无须用高规格FPGA,由中低档FPGA芯片即可满足流量管理功能、逻辑处理和性能的要求,降低了网络设备的成本。并且TM实现装置不用存储数据报文,减少了设备外部存储单元的数量,可以进一步降低网络设备的成本。此外,由于TM实现装置与处理器或交换网芯片之间通信的接口,不受数据通路(交换网芯片与处理器之间通信)的高速数据接口的限制,接口实现灵活,也可以降低网络设备的实现复杂度和难度。
参见图4,本发明实施例提供了一种流量管理实现装置,所述流量管理TM实现装置400包括:
接收模块401,用于接收处理器或交换网芯片发送的报文管理请求,所述报文管理请求中包括队列标识;所述队列标识用于标识所述处理器或所述交换网芯片存储数据报文的流队列;
流量管理模块402,用于对报文管理请求进行流量管理,并根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;
发送模块403,用于向所述处理器或所述交换网芯片发送所述报文管理响应,以使得所述处理器或所述交换网芯片根据所述管理指示处理所述队列标识对应的流队列中的数据报文。
所述流量管理模块402,具体还用于根据所述TM实现装置400的拥塞管理策略和所述TM实现装置400的调度队列的缓存状态,判断是否丢弃所述报文管理请求;如果判断结果为否,则将所述报文管理请求存入调度队列;如果判断结果为是,则丢弃所述报文管理请求并生成所述报文管理响应,其中,所述管理指示为丢弃处理指示,以使得所述处理器或所述交换网芯片丢弃所述队列标识对应的流队列中的数据报文。
所述调度队列用于存储所述报文管理请求。
所述流量管理模块402,具体还用于根据所述TM实现装置400的队列调度策略对所述调度队列进行出队调度,在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应;其中,所述管理指示为转发处理指示,以使得所述处理器或所述交换网芯片转发所述队列标识对应的流队列中的数据报文。
可选地,所述流量管理模块402,包括:
拥塞控制子模块4021,用于根据拥塞管理策略和所述调度队列的缓存状态,判断是否丢弃所述报文管理请求;
队列管理子模块4022,用于在所述拥塞控制模块的判断结果为否时,将所述报文管理请求存入所述调度队列;还用于根据队列调度策略对所述调度队列进行出队调度,在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应;其中,所述管理指示为转发处理指示,以使得所述处理器或所述交换网芯片转发所述队列标识对应的流队列中的数据报文;
丢弃子模块4023,用于在所述拥塞控制模块的判断结果为是时,丢弃所述报文管理请求,并生成所述报文管理响应,其中,所述管理指示为丢弃处理指示,以使得所述处理器或所述交换网芯片丢弃所述队列标识对应的流队列中的数据报文。
所述拥塞管理策略包括拥塞随机丢弃,拥塞尾丢弃等策略。
当所述拥塞管理策略为拥塞尾丢弃时,所述拥塞控制模块,具体用于如果所述队列标识对应的调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
当所述拥塞管理策略为拥塞随机丢弃时,所述拥塞控制模块,具体用于如果所述队列标识对应的调度队列的缓存已满,根据所述拥塞管理策略获取准备随机丢弃的报文,如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
进一步地,所述报文管理请求中还可以包括报文长度。所述报文管理响应还包括所述报文长度,以使得所述处理器或所述交换网芯片可以根据所述报文长度,正确地从所述队列ID对应的所述流队列中获取数据报文。
所述TM实现装置400的队列调度策略可以是按字节调度,也可以是按数据包调度。
当所述队列调度策略为按字节调度时,所述报文管理请求中还包括报文长度;所述队列管理子模块4022,具体用于根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
详细地来说,所述TM实现装置400与所述处理器或交换网芯片之间是否要交互数据报文的报文长度,需要根据处理器或交换网芯片对数据报文进行流分类时的处理以及所述TM实现装置400的队列调度策略来确定。
当所述TM实现装置的队列调度策略为按数据包调度时,所述TM实现装置无需根据报文长度进行队列调度,所述TM实现装置与所述处理器或交换网芯片之间是否要交互数据报文的报文长度,根据所述处理器或交换网芯片的实现方式确定。
所述处理器或交换网芯片存在如下三种可能的实现方式:
一种可能的实现方式中,所述处理器或所述交换网芯片在将所述数据报文存入所述队列标识对应的流队列之后,可以保存所述数据报文在所述流队列中的头指针和尾指针,从而可以根据该头指针和该尾指针从所述流队列中正确获取出所述数据报文。
若所述队列调度策略为按字节调度,所述处理器或所述交换网芯片还需要获取数据报文的报文长度,所述报文管理请求中包括所述报文长度。所述队列管理子模块4022,具体用于根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
另一种可能的实现方式中,所述处理器或所述交换网芯片在将所述数据报文存入所述队列标识对应的流队列之后,保存所述数据报文在所述流队列中的头指针和所述数据报文的报文长度,以界定所述流队列中的数据报文,从而可以根据该头指针和所述报文长度从所述流队列中正确获取出所述数据报文。则所述处理器或所述交换网芯片还需要获取所述数据报文的报文长度。
若所述队列调度策略为按字节调度,所述报文管理请求中还包括所述报文长度。所述队列管理子模块4022,具体用于根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
再一种可能的实现方式中,所述处理器或所述交换网芯片在将所述数据报文存入所述队列标识对应的流队列之后,仅保存所述数据报文在所述流队列中的头指针。所述处理器或所述交换网芯片还获取所述数据报文的报文长度,并与TM实现装置400之间交互数据报文的报文长度。
所述报文管理请求中还包括所述报文长度;
所述报文管理响应中也要包括所述报文长度,以使得所述处理器或所述交换网芯片可以根据所述报文长度,正确地从所述队列标识对应的所述流队列中获取数据报文。
进一步地,所述处理器或交换网芯片收到的可能是分片报文。也就是说,一个数据报文被分为若干个分片报文。
所述处理器或交换网芯片还可以用于将若干个分片报文重组为一个完整的数据报文;然后再如上所述,对数据报文进行解析和流分类,即,获取流标识,根据所述流标识获取对应的流队列的队列标识,将所述数据报文存入所述流队列中。
可替代的,所述处理器或交换网芯片可以向所述TM实现装置发送与分片报文对应的分片管理请求,所述分片管理请求中包括分片信息以及上述队列标识,可选的还包括分片报文的报文长度。所述TM实现装置还包括分片链表,用于存储一个数据报文对应的若干个分片管理请求。所述TM实现装置具体将存储一个数据报文对应的若干个分片管理请求的分片链表作为一个整体,进行上述流量管理,即进行拥塞控制,存入调度队列和出队等。
所述TM实现装置与所述处理器或交换网芯片之间传输的报文管理请求/响应也可能出现丢包,为此,所述报文管理请求还可以包括第一序列号;所述报文管理响应中还可以包括第二序列号,以便于识别所述TM实现装置与所述处理器或交换网芯片之间传输的报文管理请求/响应是否发生了丢包。
具体地,所述处理器或交换网芯片按照序列号递增或递减生成报文管理请求,并在第一预设重传时间内缓存报文管理请求。所述TM实现装置收到报文管理请求后,检查该报文管理请求的序列号相对于上一个收到的报文管理请求的序列号是否递增或递减,例如递增1或递减1。如果是,则判定没有发生丢包。如果否,则判定发生了丢包,所述TM实现装置向所述处理器或交换网芯片请求重传该报文管理请求的序列号与上一个收到报文管理请求的序列号之间所差序列号的报文管理请求。
所述TM实现装置还用于发送第一报文重传请求,所述第一报文重传请求中包括所述第一序列号。所述处理器或交换网芯片还用于接收所述第一报文重传请求,并重发所述第一序列号对应的报文管理请求。
同理,所述TM实现装置按照序列号递增或递减生成报文管理响应,并在第二预设重传时间内缓存报文管理响应,所述处理器或交换网芯片收到报文管理响应后,检查该报文管理响应的序列号相对于上一个收到的报文管理响应的序列号是否递增或递减,例如递增1或递减1。如果是,则判定没有发生丢包。如果否,则判定发生了丢包,所述处理器或交换网芯片向所述TM实现装置请求重传该报文管理响应的序列号与上一个收到报文管理响应的序列号之间所差序列号的报文管理响应。
所述处理器或交换网芯片还用于发送第二报文重传请求,所述第二报文重传请求中包括所述第二序列号。所述TM实现装置还用于接收所述第二报文重传请求,并重发所述第二序列号对应的报文管理响应。
进一步地,所述交换网芯片还可以反向流控,即反向控制流队列的转发。所述处理器或交换网芯片还用于向所述TM实现装置发送流控请求,所述流控请求中包括队列标识和流量控制要求,以使得所述TM实现装置可以根据所述流量控制要求,对所述队列标识对应的调度队列进行入队和出队调度。
本发明实施例提供的TM实现装置400,侧挂在处理器或交换网芯片旁,通过与处理器或交换网芯片的交互和联动,实现网络设备的流量管理功能。TM实现装置400无须用高规格FPGA,由中低档FPGA芯片即可满足流量管理功能、逻辑处理和性能的要求,降低了网络设备的成本。并且,与现有技术中TM芯片必须配备专门的外部存储单元来存储数据报文不同,本发明实施例中的TM实现装置400不用存储数据报文,减少了设备外部存储单元的数量,可以进一步降低网络设备的成本。此外,由于TM实现装置400与处理器或交换网芯片之间的通信,不受数据通路(交换网芯片与处理器之间通信)的限制,接口实现灵活,也可以降低网络设备的实现复杂度和难度。
本领域普通技术人员可以理解,实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于计算机可读存储介质中,上述存储介质可以是随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘或光盘等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (29)

1.一种流量管理实现方法,其特征在于,包括:
接收处理器或交换网芯片发送的所述报文管理请求,所述报文管理请求中包括队列标识,所述队列标识用于标识所述处理器或所述交换网芯片存储数据报文的流队列;
对所述报文管理请求进行流量管理,并根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;
向所述处理器或所述交换网芯片发送所述报文管理响应,以使得所述处理器或所述交换网芯片根据所述管理指示处理所述队列标识对应的流队列中的数据报文。
2.根据权利要求1所述的方法,其特征在于,所述对报文管理请求进行流量管理,并根据管理结果生成报文管理响应包括:
根据拥塞管理策略和调度队列的缓存状态,判断是否丢弃所述报文管理请求,所述调度队列用于存储所述报文管理请求;
如果判断结果为是,则丢弃所述报文管理请求,并生成所述报文管理响应,其中所述管理指示为丢弃处理指示,以使得所述处理器或所述交换网芯片丢弃所述队列标识对应的流队列中的数据报文;
如果判断结果为否,则将所述报文管理请求存入所述调度队列。
3.根据权利要求2所述的方法,其特征在于,所述对报文管理请求进行流量管理,并根据管理结果生成报文管理响应还包括:
根据队列调度策略对所述调度队列进行出队调度;
在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应,其中所述管理指示为转发处理指示,以使得所述处理器或所述交换网芯片转发所述队列标识对应的流队列中的数据报文。
4.根据权利要求3所述的方法,其特征在于,所述队列调度策略为按字节调度;
所述报文管理请求中还包括报文长度;
所述根据队列调度策略对调度队列进行出队调度包括:
根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
5.根据权利要求2至4任一项所述的方法,其特征在于,所述拥塞管理策略为拥塞尾丢弃;
所述根据拥塞管理策略和调度队列的缓存状态,判断是否丢弃所述报文管理请求包括:
如果所述调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;
如果所述调度队列的缓存未满,则判定不丢弃所述报文管理请求。
6.根据权利要求2至4任一项所述的方法,其特征在于,所述拥塞管理策略为拥塞随机丢弃;
所述根据拥塞管理策略和调度队列的缓存状态,判断是否丢弃所述报文管理请求包括:
如果所述调度队列的缓存已满,根据所述拥塞管理策略从所述调度队列中获取准备随机丢弃的报文;如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;
如果所述调度队列的缓存未满,则判定不丢弃所述报文管理请求。
7.根据权利要求1至3任一项所述的方法,其特征在于,所述报文管理请求中还包括报文长度;
所述报文管理响应还包括所述报文长度,以使得所述处理器或所述交换网芯片根据所述报文长度从所述队列标识对应的所述流队列中获取数据报文。
8.一种流量管理TM实现装置,其特征在于,包括:
接收模块,用于接收处理器或交换网芯片发送的报文管理请求,所述报文管理请求中包括队列标识,所述队列标识用于标识所述处理器或所述交换网芯片存储数据报文的流队列;
流量管理模块,用于对所述报文管理请求进行流量管理,并根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;
发送模块,用于向所述处理器或所述交换网芯片发送所述报文管理响应,以使得所述处理器或所述交换网芯片根据所述管理指示处理所述队列标识对应的流队列中的数据报文。
9.根据权利要求8所述的装置,其特征在于,
所述流量管理模块,具体用于根据拥塞管理策略和调度队列的缓存状态,判断是否丢弃所述报文管理请求,所述调度队列用于存储所述报文管理请求;如果判断结果为是,则丢弃所述报文管理请求,并生成所述报文管理响应,其中所述管理指示为丢弃处理指示,以使得所述处理器或所述交换网芯片丢弃所述队列标识对应的流队列中的数据报文;如果判断结果为否,则将所述报文管理请求存入所述调度队列。
10.根据权利要求9所述的装置,其特征在于,
所述流量管理模块,具体还用于根据队列调度策略对所述调度队列进行出队调度;并在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应,其中所述管理指示为转发处理指示,以使得所述处理器或所述交换网芯片转发所述队列标识对应的流队列中的数据报文。
11.根据权利要求10所述的装置,其特征在于,所述队列调度策略为按字节调度;所述报文管理请求中还包括报文长度;
所述流量管理模块,具体用于根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度。
12.根据权利要求9至11任一项所述的装置,其特征在于,所述拥塞管理策略为拥塞尾丢弃;
所述流量管理模块,具体用于如果所述队列标识对应的调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
13.根据权利要求9至11任一项所述的装置,其特征在于,所述拥塞管理策略为拥塞随机丢弃;
所述流量管理模块,具体用于如果所述队列标识对应的调度队列的缓存已满,根据所述拥塞管理策略获取准备随机丢弃的报文,如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
14.根据权利要求8至10任一项所述的装置,其特征在于,所述报文管理请求中还包括报文长度;
所述报文管理响应还包括所述报文长度,以使得所述处理器或所述交换网芯片根据所述报文长度从所述队列标识对应的所述流队列中获取数据报文。
15.一种网络设备,其特征在于,包括:流量管理TM实现装置,处理器和交换网芯片;
所述处理器包括第一接口和第二接口;所述处理器通过所述第一接口与所述TM装置通信;通过所述第二接口与所述交换网芯片通信;
所述交换网芯片,用于将数据报文通过第二接口发送给所述处理器;
所述处理器,用于对所述数据报文进行解析,获取流标识;根据所述流标识获取对应的流队列的队列标识,将所述数据报文存入所述流队列中;通过所述第一接口向所述TM实现装置发送报文管理请求,所述报文管理请求中包括所述队列标识;
所述TM实现装置,用于接收所述报文管理请求,对所述报文管理请求进行流量管理,根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;并向所述处理器发送所述报文管理响应,以使得所述处理器根据所述管理指示处理所述队列标识对应的流队列中的数据报文;
所述处理器,还用于通过所述第一接口接收所述报文管理响应,根据所述管理指示,处理所述队列标识对应的流队列中的数据报文。
16.根据权利要求15所述的网络设备,其特征在于,
所述TM实现装置,具体用于,根据所述TM实现装置的拥塞管理策略和所述TM实现装置的调度队列的缓存状态,判断是否丢弃所述报文管理请求,所述调度队列用于存储所述报文管理请求;如果判断结果为是,则丢弃所述报文管理请求,并生成所述报文管理响应,其中所述管理指示为丢弃处理指示,以使得所述处理器丢弃所述队列标识对应的流队列中的数据报文;如果判断结果为否,则将所述报文管理请求存入所述调度队列;
所述处理器,具体用于根据所述丢弃处理指示,丢弃所述队列标识对应的流队列中的数据报文。
17.根据权利要求16所述的网络设备,其特征在于,
所述TM实现装置,具体还用于根据所述TM实现装置的队列调度策略对所述调度队列进行出队调度;在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应,其中所述管理指示为转发处理指示,以使得所述处理器转发所述队列标识对应的流队列中的数据报文;
所述处理器,具体还用于根据所述转发处理指示,转发所述队列标识对应的流队列中的数据报文。
18.根据权利要求17所述的网络设备,其特征在于,所述队列调度策略为按字节调度;所述报文管理请求中还包括报文长度;
所述TM实现装置,具体用于根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度;
所述处理器,具体用于根据所述报文长度,从所述队列标识对应的所述流队列中获取所述数据报文。
19.根据权利要求16至18任一项所述的网络设备,其特征在于,所述拥塞管理策略为拥塞尾丢弃;
所述TM实现装置,具体用于如果所述队列标识对应的调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
20.根据权利要求16至18任一项所述的网络设备,其特征在于,所述拥塞管理策略为拥塞随机丢弃;
所述TM实现装置,具体用于如果所述队列标识对应的调度队列的缓存已满,根据所述拥塞管理策略获取准备随机丢弃的报文,如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
21.根据权利要求15至17任一项所述的网络设备,其特征在于,所述报文管理请求中还包括报文长度;所述报文管理响应还包括所述报文长度;
所述处理器,具体用于根据所述报文长度,从所述队列标识对应的所述流队列中获取所述数据报文。
22.一种网络设备,其特征在于,包括流量管理TM实现装置和交换网芯片;
所述交换网芯片包括第一接口,并通过所述第一接口与所述TM实现装置通信;
所述交换网芯片,用于对所述数据报文进行解析,获取流标识;根据所述流标识获取对应的流队列的队列标识,将所述数据报文存入所述流队列中;通过所述第一接口向所述TM实现装置发送报文管理请求,所述报文管理请求中包括所述队列标识;
所述TM实现装置,用于接收所述报文管理请求,对所述报文管理请求进行流量管理,根据管理结果生成报文管理响应,所述报文管理响应中包括管理指示和所述队列标识;并向所述交换网芯片发送所述报文管理响应,以使得所述交换网芯片根据所述管理指示处理所述队列标识对应的流队列中的数据报文;
所述交换网芯片,还用于通过所述第一接口接收所述报文管理响应,根据所述管理指示,处理所述队列标识对应的流队列中的数据报文,以实现所述网络设备的流量管理。
23.根据权利要求22所述的网络设备,其特征在于,
所述TM实现装置,具体用于根据所述TM实现装置的拥塞管理策略和所述TM实现装置的调度队列的缓存状态,判断是否丢弃所述报文管理请求,所述调度队列用于存储所述报文管理请求;如果判断结果为是,则丢弃所述报文管理请求,并生成所述报文管理响应,其中所述管理指示为丢弃处理指示,以使得所述交换网芯片丢弃所述队列标识对应的流队列中的数据报文;如果判断结果为否,则将所述报文管理请求存入所述调度队列;
所述交换网芯片,具体用于根据所述丢弃处理指示,丢弃所述队列标识对应的流队列中的数据报文。
24.根据权利要求23所述的网络设备,其特征在于,
所述TM实现装置,具体还用于根据所述TM实现装置的队列调度策略对所述调度队列进行出队调度;在所述报文管理请求从所述调度队列出队时,生成所述报文管理响应,其中所述管理指示为转发处理指示,以使得所述交换网芯片转发所述队列标识对应的流队列中的数据报文;
所述交换网芯片,具体还用于根据所述转发处理指示,转发所述队列标识对应的流队列中的数据报文。
25.根据权利要求24所述的网络设备,其特征在于,所述队列调度策略为按字节调度;所述报文管理请求中还包括报文长度;
所述TM实现装置,具体用于根据所述队列调度策略和所述报文长度,对所述调度队列进行出队调度;
所述交换网芯片,具体用于根据所述报文长度,从所述队列标识对应的所述流队列中获取所述数据报文。
26.根据权利要求23至25任一项所述的网络设备,其特征在于,所述拥塞管理策略为拥塞尾丢弃;
所述TM实现装置,具体用于如果所述队列标识对应的调度队列的缓存已满,则根据所述拥塞管理策略判定丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
27.根据权利要求23至25任一项所述的网络设备,其特征在于,所述拥塞管理策略为拥塞随机丢弃;
所述TM实现装置,具体用于如果所述队列标识对应的调度队列的缓存已满,根据所述拥塞管理策略获取准备随机丢弃的报文,如果所述随机丢弃的报文中包括所述报文管理请求,则判定丢弃所述报文管理请求,如果所述随机丢弃的报文中不包括所述报文管理请求,则判定不丢弃所述报文管理请求;如果所述队列标识对应的调度队列的缓存未满,则判定不丢弃所述报文管理请求。
28.根据权利要求22至24任一项所述的网络设备,其特征在于,所述报文管理请求中还包括报文长度;所述报文管理响应还包括所述报文长度;
所述交换网芯片,具体用于根据所述报文长度,从所述队列标识对应的所述流队列中获取所述数据报文。
29.根据权利要求22至28任一项所述的网络设备,其特征在于,还包括处理器;
所述交换网芯片还包括第二接口,并通过所述第二接口与所述处理器通信。
CN201410451900.8A 2014-09-05 2014-09-05 流量管理实现方法、装置和网络设备 Active CN105391567B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201410451900.8A CN105391567B (zh) 2014-09-05 2014-09-05 流量管理实现方法、装置和网络设备
PCT/CN2015/076090 WO2016033970A1 (zh) 2014-09-05 2015-04-08 流量管理实现方法、装置和网络设备
ES15837302T ES2709354T3 (es) 2014-09-05 2015-04-08 Procedimiento y aparato de implementación de gestión de tráfico y dispositivo de red
EP15837302.7A EP3079303B1 (en) 2014-09-05 2015-04-08 Traffic management implementation method and apparatus and network device
US15/258,439 US10129151B2 (en) 2014-09-05 2016-09-07 Traffic management implementation method and apparatus, and network device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410451900.8A CN105391567B (zh) 2014-09-05 2014-09-05 流量管理实现方法、装置和网络设备

Publications (2)

Publication Number Publication Date
CN105391567A true CN105391567A (zh) 2016-03-09
CN105391567B CN105391567B (zh) 2019-05-24

Family

ID=55423421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410451900.8A Active CN105391567B (zh) 2014-09-05 2014-09-05 流量管理实现方法、装置和网络设备

Country Status (5)

Country Link
US (1) US10129151B2 (zh)
EP (1) EP3079303B1 (zh)
CN (1) CN105391567B (zh)
ES (1) ES2709354T3 (zh)
WO (1) WO2016033970A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254269A (zh) * 2016-08-18 2016-12-21 杭州迪普科技有限公司 一种报文转发方法及装置
WO2018000820A1 (zh) * 2016-06-28 2018-01-04 华为技术有限公司 一种队列管理方法和装置
WO2018113331A1 (en) * 2016-12-22 2018-06-28 Huawei Technologies Co., Ltd. Systems and methods for buffer management
WO2021249058A1 (zh) * 2020-06-10 2021-12-16 中兴通讯股份有限公司 一种交换网络流量控制方法、设备及储存介质
CN114124839A (zh) * 2021-09-07 2022-03-01 中国联合网络通信集团有限公司 接口板和数据处理方法
CN115242731A (zh) * 2022-07-21 2022-10-25 中国农业银行股份有限公司 一种报文处理方法、装置、设备及存储介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860841B2 (en) * 2015-08-20 2018-01-02 Apple Inc. Communications fabric with split paths for control and data packets
US10088643B1 (en) 2017-06-28 2018-10-02 International Business Machines Corporation Multidimensional torus shuffle box
US10169048B1 (en) 2017-06-28 2019-01-01 International Business Machines Corporation Preparing computer nodes to boot in a multidimensional torus fabric network
US10571983B2 (en) 2017-06-28 2020-02-25 International Business Machines Corporation Continuously available power control system
US10356008B2 (en) 2017-06-28 2019-07-16 International Business Machines Corporation Large scale fabric attached architecture
US10476803B2 (en) * 2017-12-18 2019-11-12 Mellanox Technologies, Ltd. Elephant flow detection in network access
US10462060B2 (en) 2018-02-14 2019-10-29 Mellanox Technologies, Ltd. Ability to detect unlimited elephant flows
US11030102B2 (en) 2018-09-07 2021-06-08 Apple Inc. Reducing memory cache control command hops on a fabric
JP7480675B2 (ja) * 2020-10-29 2024-05-10 株式会社デンソー 中継装置
CN115842792B (zh) * 2023-02-20 2023-05-12 之江实验室 一种数据处理方法、装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035212B1 (en) * 2001-01-25 2006-04-25 Optim Networks Method and apparatus for end to end forwarding architecture
CN1946054A (zh) * 2006-09-30 2007-04-11 华为技术有限公司 一种高速数据流的传输方法、装置及数据交换设备
CN101505242A (zh) * 2008-12-25 2009-08-12 华为技术有限公司 路由器故障检测方法及路由装置
CN101984608A (zh) * 2010-11-18 2011-03-09 中兴通讯股份有限公司 报文拥塞避免方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892285B1 (en) * 2002-04-30 2005-05-10 Cisco Technology, Inc. System and method for operating a packet buffer
US20050147032A1 (en) * 2003-12-22 2005-07-07 Lyon Norman A. Apportionment of traffic management functions between devices in packet-based communication networks
US7554908B2 (en) * 2004-12-10 2009-06-30 Intel Corporation Techniques to manage flow control
US7582137B2 (en) * 2006-01-18 2009-09-01 United Technologies Corporation Fuel deoxygenator with non-planar fuel channel and oxygen permeable membrane
US8154996B2 (en) * 2008-09-11 2012-04-10 Juniper Networks, Inc. Methods and apparatus for flow control associated with multi-staged queues
JP2014236453A (ja) * 2013-06-05 2014-12-15 富士通株式会社 情報処理装置、情報処理システム及び情報処理システムの制御方法
CN106031094B (zh) * 2014-01-02 2020-01-21 马维尔国际贸易有限公司 分布式计数器的准确测量
CN105684382A (zh) * 2014-08-11 2016-06-15 华为技术有限公司 报文的控制方法、交换机及控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035212B1 (en) * 2001-01-25 2006-04-25 Optim Networks Method and apparatus for end to end forwarding architecture
CN1946054A (zh) * 2006-09-30 2007-04-11 华为技术有限公司 一种高速数据流的传输方法、装置及数据交换设备
CN101505242A (zh) * 2008-12-25 2009-08-12 华为技术有限公司 路由器故障检测方法及路由装置
CN101984608A (zh) * 2010-11-18 2011-03-09 中兴通讯股份有限公司 报文拥塞避免方法及系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018000820A1 (zh) * 2016-06-28 2018-01-04 华为技术有限公司 一种队列管理方法和装置
US10951551B2 (en) 2016-06-28 2021-03-16 Huawei Technologies Co., Ltd. Queue management method and apparatus
CN106254269A (zh) * 2016-08-18 2016-12-21 杭州迪普科技有限公司 一种报文转发方法及装置
CN106254269B (zh) * 2016-08-18 2019-08-06 杭州迪普科技股份有限公司 一种报文转发方法及装置
WO2018113331A1 (en) * 2016-12-22 2018-06-28 Huawei Technologies Co., Ltd. Systems and methods for buffer management
US10171369B2 (en) 2016-12-22 2019-01-01 Huawei Technologies Co., Ltd. Systems and methods for buffer management
WO2021249058A1 (zh) * 2020-06-10 2021-12-16 中兴通讯股份有限公司 一种交换网络流量控制方法、设备及储存介质
CN114124839A (zh) * 2021-09-07 2022-03-01 中国联合网络通信集团有限公司 接口板和数据处理方法
CN114124839B (zh) * 2021-09-07 2023-06-06 中国联合网络通信集团有限公司 接口板和数据处理方法
CN115242731A (zh) * 2022-07-21 2022-10-25 中国农业银行股份有限公司 一种报文处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN105391567B (zh) 2019-05-24
ES2709354T3 (es) 2019-04-16
WO2016033970A1 (zh) 2016-03-10
EP3079303A4 (en) 2017-02-22
US10129151B2 (en) 2018-11-13
US20160380895A1 (en) 2016-12-29
EP3079303A1 (en) 2016-10-12
EP3079303B1 (en) 2018-11-14

Similar Documents

Publication Publication Date Title
CN105391567A (zh) 流量管理实现方法、装置和网络设备
CN102132535B (zh) 在通信网中传输数据分组的方法和交换装置
US8942094B2 (en) Credit-based network congestion management
CN100596114C (zh) 一种基于信誉的流量控制系统、装置和方法
JP2004509512A (ja) データ・パケット・スイッチのマルチキャスト・トラフィックを制御するためのシステム及び方法
WO2018036173A1 (zh) 一种网络负载均衡方法、设备及系统
US9319310B2 (en) Distributed switchless interconnect
US10911364B2 (en) Packet processing method and router
US20200351215A1 (en) Data Stream Sending Method and System, and Device
WO2021244450A1 (zh) 一种通信方法及装置
US8121138B2 (en) Communication apparatus in label switching network
KR20200121863A (ko) 서비스 기능 체이닝 혼잡 피드백
CN112005528B (zh) 一种数据交换方法、数据交换节点及数据中心网络
US11646978B2 (en) Data communication method and apparatus
CN103516619A (zh) 一种网络虚拟化系统中带宽调整的方法及装置
CN102957625A (zh) 一种实现端到端层次化服务质量的系统和方法
CN109219944B (zh) 用于减小分组网络中mtu大小的系统和方法
CN113014498A (zh) 一种收发数据的方法及装置
CN113037651A (zh) 流量转发的提升QoS的方法、装置、设备及存储介质
WO2024065481A1 (zh) 一种数据处理方法、装置、网络设备及存储介质
JP2013042355A (ja) 情報処理装置及びパケット複製方法
JP2012080420A (ja) データ転送装置及び方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant