CN114827042A - 数据流分类装置 - Google Patents

数据流分类装置 Download PDF

Info

Publication number
CN114827042A
CN114827042A CN202110090174.1A CN202110090174A CN114827042A CN 114827042 A CN114827042 A CN 114827042A CN 202110090174 A CN202110090174 A CN 202110090174A CN 114827042 A CN114827042 A CN 114827042A
Authority
CN
China
Prior art keywords
data stream
circuit
queue
classification
elephant
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
CN202110090174.1A
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.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor Corp
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 Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to CN202110090174.1A priority Critical patent/CN114827042A/zh
Publication of CN114827042A publication Critical patent/CN114827042A/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/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation

Landscapes

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

Abstract

一种数据流分类装置包括一转发电路与一设定电路。所述转发电路依据一输入数据流的辨识信息查询一查找表,以得知所述输入数据流的分类,再据以标示所述输入数据流的封包,然后输出这些封包至一缓冲电路。所述设定电路用来接收并存储多道数据流的辨识信息与流量信息,并据以计算这些数据流的流量,这些数据流包括所述输入数据流。所述设定电路另用来依据所述缓冲电路的一目前队列长度与一目标队列长度决定一大象流流量门限,从而依据这些数据流的流量与所述大象流流量门限之间的比较来决定这些数据流的分类,并将这些数据流的分类存储于所述查找表。

Description

数据流分类装置
技术领域
本发明涉及分类装置,特别是涉及数据流分类装置。
背景技术
缓冲膨胀(Bufferbloat)是指转发设备过量地缓冲封包而导致网络发生高转发时延与时延变异的现象。为了解决此问题,最普遍的解决方式有下列三种:
(1)服务等级(Class of Service;CoS)队列排程:分类封包,并令不同分类的封包关联不同队列,再利用排程机制给予不同队列不同的服务等级。
(2)主动式队列管理(Active Queue Management;AQM):不分类封包,但会在封包的队列未满前主动地依据一机率丢弃封包,以降低所述队列的平均队列长度。
(3)权重式AQM:分类封包,并赋予不同分类的封包不同的封包丢弃率,以优先丢弃低优先权的封包,并把缓冲器空间留给高优先权的封包。
然而,如何分类封包一直是个大问题,最常见的方式是让使用者自行设定,但此方式除了造成使用者不便,也难以准确地分类封包。而不分类封包的AQM方式虽能降低平均时延,但由于封包没有被分类,此方式会按相同的机率丢弃高优先权封包与低优先权封包,这会同等地影响高优先权封包(例如:互联网语音协议(VoIP)封包、实时视频串流封包、游戏封包)的流量,并影响用户体验。
发明内容
本申请的目的之一在于提供一种数据流分类装置,能避免现有技术的问题。
本申请的数据流分类装置的一实施例包括一转发电路与一设定电路。所述转发电路与所述设定电路的每一个可通过硬件来实现,或通过硬件执行软件和/或固件来实现。
所述转发电路包括一第一存储电路、一分类电路与一数据流信息取得电路。所述第一存储电路用来存储一查找表。所述查找表包括多种数据流的辨识信息以及所述多种数据流的分类。所述分类电路耦接一数据流输入端与所述第一存储电路,用来从所述数据流输入端接收一第一数据流,以依据所述第一数据流的第一辨识信息查询所述查找表所包括的所述多种数据流的辨识信息。当所述查找表包括所述第一辨识信息时,所述分类电路使用所述查找表以决定所述第一数据流的分类,并输出所述第一数据流至一缓冲电路;当所述查找表未包括所述第一辨识信息时,所述分类电路将所述第一数据流归类为一默认分类,并输出所述第一数据流至所述缓冲电路。所述数据流信息取得电路用来取得所述第一数据流的至少一部分,以获得并输出所述第一辨识信息以及所述第一数据流的第一流量信息。
所述设定电路包括一第二存储电路、一大象流流量门限调整电路与一分类决策电路。所述第二存储电路耦接所述数据流信息取得电路,用来存储一数据流信息表。所述数据流信息表用来存储所述多种数据流的辨识信息以及所述多种数据流的流量信息,其中所述多种数据流的辨识信息包括所述第一辨识信息,所述多种数据流的流量信息包括所述第一流量信息。所述大象流流量门限调整电路耦接所述缓冲电路,用来依据一目标队列特征值(例如:队列长度或队列时延)与所述缓冲电路的一目前队列特征值(例如:队列长度或队列时延)之间的关系的变化,决定一大象流流量门限。所述分类决策电路耦接所述大象流流量门限调整电路与所述第二存储电路,用来依据所述多种数据流的流量信息与所述大象流流量门限之间的关系的变化,决定所述查找表所包括的所述多种数据流的分类。
据上所述,本实施例通过控制所述大象流流量门限,将较多/较少的数据流归类为大象流,以让所述缓冲电路可通过降低大象流的传输优先权或丢弃大象流的封包等方式来避免缓冲膨胀。
有关本发明的特征、实作与功效,现配合附图作较佳实施例详细说明如下。
附图说明
图1显示本申请的数据流分类装置的一实施例;
图2显示图1的转发电路的一实施例;
图3显示图1的设定电路的一实施例;
图4显示图3的大象流流量门限调整电路如何判断所述缓冲电路的状态的一实施例;
图5显示图3的大象流流量门限调整电路如何判断所述缓冲电路的状态的另一实施例;
图6显示图3的大象流流量门限调整电路如何调整所述大象流流量门限的一实施例;
图7显示图3的分类决策电路如何决定所述第一数据流的分类的一实作范例;
图8显示图3的分类决策电路如何决定所述第一数据流的分类的另一实作范例;
图9显示图3的分类决策电路如何决定所述第一数据流的分类的又一实作范例;
图10显示本申请的数据流分类装置的另一实施例;
图11显示图10的转发电路的一实施例;以及
图12显示图10的设定电路的一实施例。
具体实施方式
本申请包括一种数据流分类装置,能够依据多道数据流的流量与一大象流流量(elephant flow)门限之间的比较来分类这些数据流。当一后端的缓冲电路的队列特征(例如:队列长度或队列时延)长于(或短于)一目标门限时,本申请的数据流分类装置能够对应地降低(提高)所述大象流流量门限,以将较多(较少)的数据流归类为大象流,从而让后端的缓冲电路可通过降低大象流的传输优先权或丢弃大象流的封包等方式来避免缓冲膨胀。所述数据流分类装置可应用于一网络封包转发装置(例如:交换器),此时数据流是由连续的封包和/或不连续的封包所构成的数据流;为便于理解,以下说明是以网络封包转发应用为例,然此并非本发明的实施限制。
图1显示本申请的数据流分类装置的一实施例。图1的数据流分类装置100包括一转发电路110与一设定电路120。转发电路110用来接收并分类一数据流,再转发分类后的数据流至一缓冲电路10;转发电路110另提供所述数据流的流量信息给设定电路120。设定电路120用来依据缓冲电路10的队列信息以及所述流量信息决定所述数据流的分类,并提供所述数据流的分类给转发电路110。转发电路110或设定电路120可通过硬件来实现,或通过硬件执行软件和/或固件来实现。
图2显示图1的转发电路110的一实施例。图2的转发电路110包括一记录电路210、一分类电路220与一数据流信息增补电路230,其中记录电路210与分类电路220可整合为一查找表电路(图中未绘示),然此并非本发明的实施限制。
请参阅图1及图2。记录电路210用来计算多种数据流的每一个的流量以获得所述多种数据流的流量信息。举例而言,记录电路210依据一数据流的辨识信息得知所述数据流的身份,然后计数所述数据流的封包数量和/或字节数量,以获得所述数据流的流量信息。记录电路210另包括(或称存储)一查找表212,查找表212包括所述多种数据流的辨识信息、所述多种数据流的流量信息以及所述多种数据流的分类。于一实作范例中,所述多种数据流的每一个的辨识信息为一组数值,所述组数值例如是五数值组(5-tuple),包括一目标地址(destination IP address)、一来源地址(source IP address)、一协议(protocol)、一目标端口(destination port)以及一来源端口(source port),然此并非本发明的实施限制;在实施为可行的情形下,凡是能用于辨识数据流的身份的信息均能作为所述辨识信息。由于前述封包数量/字节数量的计数以及查找表的实施均可用已知或自行开发的技术来实现,其细节在此省略。
请参阅图1及图2。分类电路220耦接一数据流输入端(即图中所示“数据流”箭头的起始端)与记录电路210,用来从所述数据流输入端接收一第一数据流,以依据所述第一数据流的第一辨识信息查询查找表212所记录的所述多种数据流的辨识信息,其中所述用语“第一”是为了说明方便,不具特定意义;换言之,所述第一数据流可以是所述数据流输入端所接收的任一数据流。当查找表212包括所述第一辨识信息时,查找表212也包括所述第一辨识信息所关联的所述第一数据流的分类,因此,分类电路220使用查找表212以决定所述第一数据流的分类,并输出所述第一数据流至缓冲电路10。当查找表212未包括所述第一辨识信息时,分类电路220将所述第一数据流归类为一默认分类,并输出所述第一数据流至缓冲电路10。值得注意的是,当查找表212未包括所述第一辨识信息时,分类电路220可通过发送讯号或其它已知/自行开发的手段(例如:开关的控制),令数据流信息增补电路230能够从分类电路220的输出(如图中所示的“分类后的数据流”)或所述数据流输入端(图中未绘示)取得所述第一数据流的至少一部分,从而数据流信息增补电路230能够选择性地依据所述第一数据流的所述至少一部分更新查找表212。另值得注意的是,图1所示的缓冲电路10可包括于数据流分类装置100中,或独立于数据流分类装置100外。
于一实作范例中,查找表212所包括的所述多种数据流的分类包括一大象流类型与一非大象流(例如,老鼠流)类型;所述大象流类型的任一数据流的流量高于所述非大象流类型的任一数据流的流量;在缓冲电路10的操作中,所述大象流类型所关联的一大象流传输优先权低于所述非大象流类型所关联的一非大象流传输优先权,或者所述大象流类型所关联的一大象流封包丢弃率高于所述非大象流类型所关联的一非大象流封包丢弃率;前述预设分类为所述非大象流类型。于一实作范例中,所述大象流类型包括一第一类型与一第二类型;所述第一类型的任一数据流的流量高于所述第二类型的任一数据流的流量;在缓冲电路10的操作中,所述第一类型所关联的一第一传输优先权低于所述第二类型所关联的一第二传输优先权,或者所述第一类型所关联的一第一封包丢弃率高于所述第二类型所关联的一第二封包丢弃率。视实施需求,所述大象流类型可包括更多类型。
于一实作范例中,所述第一数据流的每个封包包括所述第一辨识信息,分类电路220用来依据所述第一数据流的每个封包所包括的所述第一辨识信息查询查找表212所包括的所述多种数据流的辨识信息。当查找表212包括所述第一辨识信息时,查找表212也包括所述第一数据流的分类,因此,分类电路220得以依据查找表212所包括的所述第一数据流的分类,标示所述第一数据流的每个封包,然后缓冲电路10便能依据每一封包的标示得知所述封包是一大象流封包或是一非大象流封包。于一实作范例中,分类电路220通过决定所述第一数据流的每个封包的一元数据(metadata)(例如:颜色记叙元数据)的值来标示所述封包的分类。由于标示封包可通过已知/自行开发的技术来实现,其细节在此省略。
请参阅图1及图2。数据流信息增补电路230耦接记录电路210与分类电路220。当查找表212未包括所述第一辨识信息时,数据流信息增补电路230选择性地从分类电路220的输出或所述数据流输入端取得所述第一数据流的至少一部分,以获得所述第一辨识信息,然后数据流信息增补电路230将所述第一辨识信息加入查找表212作为所述多种数据流的辨识信息的一部分,而记录电路210会计算所述第一数据流的流量,以获得第一流量信息作为所述多种数据流的流量信息的一部分。若在加入所述第一辨识信息与所述第一流量信息前查找表212已满,数据流信息增补电路230会将查找表212中的某笔数据流(例如:以最久未使用(least recently used;LRU)策略所决定的数据流)的信息移除,然此并非本发明的实施限制。于一实作范例中,考虑到查找表212的大小有限,数据流信息增补电路230按一默认机率(P%,其中P为介于0与100之间的数字)执行一取样操作,因此,数据流信息增补电路230取得所述第一数据流的所述至少一部分的机率为所述默认机率(即数据流信息增补电路230可不对每一数据流进行取样并记录辨识信息及流量)。由于取样操作与取得封包的特定信息的操作均可通过已知/自行开发的技术来实现,其细节在此省略。
图3显示图1的设定电路120的一实施例。图3的设定电路120包括一大象流流量门限调整电路310与一分类决策电路320。
请参阅图1到图3。大象流流量门限调整电路310耦接缓冲电路10,用来依据一目标队列特征值(例如:固定的队列长度或固定的队列时延)与缓冲电路10的一目前队列特征值(例如:易变的队列长度或易变的队列时延)之间的关系的变化,决定一大象流流量门限(ELE_TH);换言之,所述大象流流量门限会随着所述目前队列特征值而动态地改变。于一实作范例中,于所述目前队列特征值(Curr_QL)大于所述目标队列特征值(Target_QL)达N次后,大象流流量门限调整电路310判断缓冲电路10的状态从一非拥塞状态变成一拥塞状态(如图4及5所示),并调低所述大象流流量门限至少一次,从而找出更多可能是大象流的数据流,以让缓冲电路10能够通过丢弃大象流的至少一部分来缓解拥塞,其中所述N为正整数(例如:大于一的整数)。
于一实作范例中,不同分类的封包关联同一队列,缓冲电路10可采用已知的/自行开发的权重式主动式队列管理(weighted active queue management;Weighted AQM)技术来按一定机率丢弃所述队列的封包;在缓冲电路10处于所述拥塞状态的情形下,于所述目前队列特征值小于所述目标队列特征值的K分之一达M次后,大象流流量门限调整电路310判断缓冲电路10回到所述非拥塞状态(如图4所示),并调高所述大象流流量门限至少一次,以减少数据流被判断为大象流的机会;所述K与所述M均为视实施需求所决定的正整数(例如:所述K与所述M均为大于一的整数)。
于一实作范例中,不同分类的封包关联不同队列,缓冲电路10采用已知的/自行开发的服务等级(class of service;CoS)队列排程技术来分别给予不同队列的封包不同的服务等级;缓冲电路10包括一非大象流缓冲队列与至少一大象流缓冲队列(例如:一第一大象流缓冲队列与一第二大象流缓冲队列,其中所述第一大象流缓冲队列相较于所述第二大象流缓冲队列具有较低传输优先权或较高封包丢弃率),所述目前队列特征值为所述非大象流缓冲队列的一目前队列特征值(例如:图5的CurrG_QL);所述非大象流缓冲队列所关联的一非大象流传输优先权高于所述至少一大象流缓冲队列所关联的任一大象流传输优先权,或者所述非大象流缓冲队列所关联的一非大象流封包丢弃率低于所述至少一大象流缓冲队列所关联的任一大象流封包丢弃率;在缓冲电路10处于所述拥塞状态的情形下,于所述至少一大象流缓冲队列的每一目前队列特征值(例如:图5的CurrY_QL与CurrR_QL)小于所述目标队列特征值的K分之一达M次后,大象流流量门限调整电路310判断缓冲电路10回到所述非拥塞状态(如图5所示),并调高所述大象流流量门限至少一次,以减少数据流被判断为大象流的机会;所述K与所述M均为视实施需求所决定的正整数(例如:所述K与所述M均为大于一的整数)。值得注意的是,上述实施例中的“N次”、“M次”以及“K分之一”等等的设置用以控制大象流流量门限调整电路310对缓冲电路10的拥塞状态或非拥塞状态的判断敏感度,避免状态的切换过于频繁,这些数值可根据应用情境灵活设定。
图6为一流程图,显示在拥塞状态下大象流流量门限调整电路310如何调整所述大象流流量门限(ELE_TH)的一实施例。图6的步骤可重复地执行,包括:
S610:大象流流量门限调整电路310判断缓冲电路10处于拥塞状态。
S620:大象流流量门限调整电路310判断所述目前队列特征值(Curr_QL)是否大于所述目标队列特征值(Target_QL);若是,进入步骤S632;若否,进入步骤S634。
S632:大象流流量门限调整电路310判断所述拥塞状态未舒缓,进入步骤S642。
S634:大象流流量门限调整电路310判断所述拥塞状态已舒缓,进入步骤S644。
S642:大象流流量门限调整电路310判断所述目前队列特征值(Curr_QL)是否大于一先前队列特征值(Old_QL);若是,进入步骤S652;若否,进入步骤S654。本步骤中,于一目前时间点缓冲电路10的一队列特征值(例如:队列长度或队列时延)为所述目前队列特征值;于一先前时间点缓冲电路10的所述队列特征值为所述先前队列特征值。
S644:大象流流量门限调整电路310判断所述目前队列特征值(Curr_QL)是否大于一先前队列特征值(Old_QL);若是,进入步骤S654;若否,进入步骤S656。本步骤中,于一目前时间点缓冲电路10的一队列特征值(例如:队列长度或队列时延)为所述目前队列特征值;于一先前时间点缓冲电路10的所述队列特征值为所述先前队列特征值。
S652:大象流流量门限调整电路310判断拥塞状态变得更严重,进入步骤S662。
S654:大象流流量门限调整电路310判断拥塞状态变化不大,进入步骤S664。
S656:大象流流量门限调整电路310维持所述大象流流量门限不变。
S662:大象流流量门限调整电路310调低所述大象流流量门限达一调整值。举例而言,由于步骤S662的背景是拥塞状态变得更严重(步骤S652)以及步骤S664的背景是拥塞状态变化不大(步骤S654),步骤S662的调整值可大于步骤S664的调整值。
S664:大象流流量门限调整电路310调低所述大象流流量门限达一调整值。
于一实作范例中,图6的步骤S662与S664的调整值(Rate_adj)可通过以下公式来决定:
Rate_adj=A×(Curr_QL-Target_QL)+B×(Curr_QL-Old_QL)
其中A、B为视实施需求可调整的常数,用来加强或减弱所述大象流流量门限(ELE_TH)的调整幅度(例如:ELE_TH=ELE_TH–Rate_adj,且ELE_TH不小于0),若A、B均为0,所述大象流流量门限维持不变。另外,所述调整值可选择性地随着所述大象流流量门限的位阶而变,如以下表1的范例所示;然本发明的实施不限于此。
表1
ELE_TH Rate_adj
ELE_TH<1Mbps Rate_adj=Rate_adj/128
ELE_TH<2Mbps Rate_adj=Rate_adj/64
ELE_TH<4Mbps Rate_adj=Rate_adj/32
ELE_TH<8Mbps Rate_adj=Rate_adj/16
ELE_TH<16Mbps Rate_adj=Rate_adj/8
ELE_TH<32Mbps Rate_adj=Rate_adj/4
ELE_TH<64Mbps Rate_adj=Rate_adj/2
ELE_TH≥64Mbps Rate_adj=Rate_adj
如前所述,当大象流流量门限调整电路310判断缓冲电路10回到所述非拥塞状态(如图4及5所示),大象流流量门限调整电路310调高所述大象流流量门限。于一实作范例中,所述大象流流量门限有其上限,在所述大象流流量门限未达所述上限的情形下,所述大象流流量门限(ELE_TH)可通过以下公式来决定:
Figure BDA0002912389510000081
上述公式仅为范例,本领域普通技术人员依其实施需求修改所述公式。
请参阅图1到图3。分类决策电路320耦接大象流流量门限调整电路310与记录电路210。分类决策电路320从记录电路210取得所述多种数据流的流量信息,用来依据所述多种数据流的流量信息与所述大象流流量门限之间的关系的变化,决定查找表212所包括的所述多种数据流的分类,并将这些数据流的分类存储于查找表212;换言之,所述多种数据流的分类会随着所述多种数据流的流量信息与所述大象流流量门限而变。举例而言,分类决策电路320依据前述第一数据流的第一流量信息(例如:记录电路210于一段计数时间内所计数的所述第一数据流的封包数量或字节数量)计算所述第一数据流的流量(例如:将所述第一流量信息所指出的封包数量/字节数量除以所述段计数时间),然后判断所述第一数据流的流量是否大于所述大象流流量门限;当所述第一数据流的流量大于所述大象流流量门限时,分类决策电路320决定所述第一数据流的分类为一大象流类型;当所述第一数据流的流量小于所述大象流流量门限时,分类决策电路320决定所述第一数据流的分类为一非大象流类型。
图7显示分类决策电路320如何决定所述第一数据流的分类的一实作范例,其中横轴表示数据流的流量(Flow[i].Rate),每条垂直箭头线表示一数据流。如图7所示,所述大象流流量门限高于一第一门限(RED_MIN[i]),因此,分类决策电路320决定所述大象流类型为一第一类型;当所述第一数据流的流量大于所述大象流流量门限时,分类决策电路320决定所述第一数据流的分类为所述第一类型(图中ELE_TH右侧的两道数据流);当所述第一数据流的流量小于所述大象流流量门限时,分类决策电路320决定所述第一数据流的分类为所述非大象流类型(图中ELE_TH左侧的七道数据流)。图8显示分类决策电路320如何决定所述第一数据流的分类的另一实作范例。如图8所示,所述大象流流量门限小于所述第一门限(RED_MIN[i])但大于一第二门限(YEL_MIN[i]),其中所述第一门限大于所述第二门限,因此,分类决策电路320决定所述大象流类型包括所述第一类型与一第二类型;若所述第一数据流的流量大于所述第一门限,分类决策电路320决定所述第一数据流的分类为所述第一类型(图中RED_MIN[i]右侧的三道数据流);若所述第一数据流的流量小于所述第一门限但大于所述大象流流量门限,分类决策电路320决定所述第一数据流的分类为所述第二类型(图中介于RED_MIN[i]与ELE_TH之间的两道数据流);若所述第一数据流的流量小于所述大象流流量门限,分类决策电路320决定所述第一数据流的分类为所述非大象流类型(图中ELE_TH左侧的四道数据流)。图9显示分类决策电路320如何决定所述第一数据流的分类的又一实作范例。如图9所示,所述大象流流量门限低于所述第二门限(YEL_MIN[i]),因此,分类决策电路320决定所述大象流类型包括所述第一类型与一第二类型;若所述第一数据流的流量大于所述第一门限(RED_MIN[i]),分类决策电路320决定所述第一数据流的分类为所述第一类型(图中RED_MIN[i]右侧的三道数据流);若所述第一数据流的流量小于所述第一门限且大于所述第二门限也大于所述大象流流量门限,分类决策电路320决定所述第一数据流的分类为所述第二类型(介于RED_MIN[i]与YEL_MIN[i]之间的二道数据流);若所述第一数据流的流量小于所述第二门限,不论其是否大于大象流流量门限,分类决策电路320决定所述第一数据流的分类为所述非大象流类型(图中YEL_MIN[i]左侧的四道数据流),亦即大象流流量门限调整至低于第二门限(YEL_MIN[i])后,改以第二门限为判断非大象流的标准,任何小于第二门限的数据流均判断为非大象流类型。值得注意的是,前述第一门限和/或第二门限的设定可视实施需求随着数据流的分类而变;所述第一门限和/或第二门限可保存于分类决策电路320中,或由一外部电路(图中未绘示)输入至分类决策电路320。
于一实作范例中,分类决策电路320可进一步依据所述多种数据流的辨识信息与所述多种数据流的流量信息判断所述第一数据流是否属于一特殊的数据流群组(例如:点对点(peer to peer;P2P)数据流群组),其中所述特殊的数据流群组的条件可依实施需求而定,且会包括多道数据流。举例而言,所述多种数据流的流量信息可包括封包长度信息与封包间隔时间信息;若前述多种数据流的流量信息显示其平均封包长度大于X字节(例如,500Bytes)和/或平均封包间隔时间小于Y毫秒(例如,1ms),其中X及Y均为大于0的正数,分类决策电路320判断所述第一数据流属于一P2P数据流群组。值得注意的是,本发明主要利用数据流的流量统计特性来进行判断,前述实例并非本发明的实施限制,例如,也可利用封包间距变异量等特性。若所述第一数据流属于所述特殊的数据流群组,分类决策电路320依据所述特殊的数据流群组的总流量(亦即:所述特殊的数据流群组所包括的所有数据流的流量的加总)与所述大象流流量门限决定所述第一数据流的分类;更明确地说,纵然所述第一数据流的流量小于所述大象流流量门限,若所述第一数据流所属的数据流群组的总流量大于所述大象流流量门限,分类决策电路320仍会决定所述第一数据流为一大象流(即判断所述数据流群组中的所有数据流均为大象流)。
图10显示本申请的数据流分类装置的另一实施例。图10的数据流分类装置1000包括一转发电路1010与一设定电路1020。转发电路1010与设定电路1020的每一个可通过硬件来实现,或通过硬件执行软件和/或固件来实现。尽管图1与图10的实施例均用来分类数据流,图1的转发电路110包括取得一数据流的流量信息(例如:封包数/字节数)的功能,而图10的转发电路1010不需要包括这样的功能;图1的设定电路120不需要包括记录所述数据流的流量信息(例如:封包序号及其对应的封包取得时间)的功能,但图10的设定电路1020包括这样的功能。简言之,图1的设定电路120可选择性地具有较少的功能,而图10的转发电路1010可选择性地具有较少的功能,故实施本发明者可依其需求采用图1或图10的架构。值得注意的是,本领域普通技术人员能够参考图1的实施例的申请来了解图10的实施例的细节与变化,其意味着图1的实施例的技术特征可以一合理的方式应用于图10的实施例中,因此,图10的实施例的说明原则上不重复图1的实施例已说明的部分。
图11显示图10的转发电路1010的一实施例。图11的转发电路1010包括一第一存储电路1110、一分类电路1120与一数据流信息取得电路1130,其中第一存储电路1110与分类电路1120可整合为一查找表电路(图中未绘示),然此并非本发明的实施限制。
请参阅图10及图11。第一存储电路1110用来存储一查找表1112。查找表1112包括多种数据流的辨识信息以及所述多种数据流的分类。于一实作范例中,所述多种数据流的每一个的辨识信息例如为五数值组(5-tuple),然此并非本发明的实施限制;在实施为可行的情形下,凡是能用于辨识数据流的身份的信息均能作为所述辨识信息。
请参阅图10及图11。分类电路1120耦接一数据流输入端(即图中所示“数据流”箭头的起始端)与第一存储电路1110,用来从所述数据流输入端接收一第一数据流,以依据所述第一数据流的第一辨识信息查询查找表1112所记录的所述多种数据流的辨识信息,其中所述第一数据流可以是所述数据流输入端所接收的任一数据流。分类电路1120查询查找表1112的方式的一实施例同于图2的分类电路220查询查找表212的方式。当查找表1112包括所述第一辨识信息时,分类电路1120使用查找表1112以决定所述第一数据流的分类,并输出所述第一数据流至一缓冲电路11;分类电路1120决定所述第一数据流的分类的方式的一实施例同于图2的分类电路220决定所述第一数据流的分类的方式。当查找表1112未包括所述第一辨识信息时,分类电路1120将所述第一数据流归类为一默认分类(例如:非大象流类型),并输出所述第一数据流至缓冲电路11。值得注意的是,缓冲电路11可包括于数据流分类装置1000中,或独立于数据流分类装置1000外。
于一实作范例中,查找表1112所包括的所述多种数据流的分类的一范例同于图2的查找表212所包括的所述多种数据流的分类(亦即:多种分类包括大象流类型与非大象流类型),且缓冲电路11与缓冲电路10相仿,会分别给予不同分类的数据流的封包不同的传输优先权或封包丢弃率。于一实作范例中,当查找表1112包括所述第一辨识信息时,查找表1112也包括所述第一辨识信息所关联的所述第一数据流的分类,因此,分类电路1120得以依据查找表1112所包括的所述第一数据流的分类,标示所述第一数据流的每个封包,然后缓冲电路90便能依据每一封包的标示得知所述封包的分类。
请参阅图10及图11。数据流信息取得电路1130用来从所述数据流输入端或分类电路1120的输出取得所述第一数据流的至少一部分,以获得并输出所述第一数据流的第一辨识信息(例如:前述的五数值组)与第一流量信息(例如:封包的序号与取样时间)。值得注意的是,本实施例中,无论查找表1112是否包括所述第一辨识信息,数据流信息取得电路1130都会用来取得所述第一数据流的至少一部分。于一实作范例中,数据流信息取得电路1130按一默认机率执行一取样操作,以试着取得所述第一数据流的所述至少一部分,从而取得所述第一辨识信息以及所述第一流量信息;换言之,数据流信息增补电路1130取得所述第一数据流的所述至少一部分的机率为所述默认机率,因此,数据流信息增补电路1130有可能不会采样到某些数据流的封包。
图12显示图10的设定电路1020的一实施例。图12的设定电路1020包括一第二存储电路1210、一大象流流量门限调整电路1220与一分类决策电路1230。
请参阅图10到图12。第二存储电路1210耦接数据流信息取得电路1130,用来存储一数据流信息表1212。数据流信息表1212用来存储来自数据流信息取得电路1130的所述多种数据流的辨识信息与流量信息,所述多种数据流的辨识信息包括所述第一辨识信息,所述多种数据流的流量信息包括所述第一流量信息。
请参阅图10到图12。大象流流量门限调整电路1220耦接缓冲电路11,用来依据一目标队列特征值(例如:固定的队列长度或固定的队列时延)与缓冲电路11的一目前队列特征值(例如:易变的队列长度或易变的队列时延)之间的关系的变化,决定一大象流流量门限。大象流流量门限调整电路1220的一实施例同于图3的大象流流量门限调整电路310,细节见于图3到图6及其相关说明。
请参阅图10到图12。分类决策电路1230耦接大象流流量门限调整电路1220、第二存储电路1210与第一存储电路1110。分类决策电路1230用来依据所述多种数据流的流量信息与所述大象流流量门限之间的关系的变化,决定第一存储电路1110的查找表1112所包括的所述多种数据流的分类,并将这些数据流的分类存储于查找表1112。举例而言,分类决策电路1230先依据数据流信息表1212所包括的所述第一数据流的第一流量信息计算所述第一数据流的流量,再依据所述第一数据流的流量与所述大象流流量门限决定所述第一数据流的分类,然后以此更新查找表1112中所述第一数据流的分类。分类决策电路1230决定所述第一数据流的分类的方式的一实施例同于分类决策电路320决定所述第一数据流的分类的方式。
于一实作范例中,当所述第一数据流的一封包协议是传输控制协议(TCP)时,数据流信息取得电路1130按一默认机率执行一取样作业,以取得所述第一数据流的一先前封包与一目前封包,然后分类决策电路1230依据所述二封包的序号与所述二封包的取样时间得到所述第一数据流的流量。举例而言,所述先前封包的序号(Pre_SN)及取样时间(Pre_Time)存储于第二存储电路1210中,所述目前封包的序号(Cur_SN)及取样时间(Cur_Time)由数据流信息取得电路1130实时提供,而分类决策电路1230将所述二封包的序号的一序号差值(deltaSN=Cur_SN–Pre_SN)除以所述二封包的取样时间的一间隔时间(deltaTime=Cur_Time–Pre_Time),以得到所述第一数据流的流量(Flow[i].rate),如下式所示:
Figure BDA0002912389510000131
值得注意的是,数据流信息取得电路1130所提供的最新的封包的序号及取样时间会用来更新所述先前封包的序号与取样时间。
于一实作范例中,当所述第一数据流的一封包协议不是传输控制协议时,数据流信息取得电路1130按一默认机率执行一取样作业,以取得所述第一数据流的二封包包括一先前封包与一目前封包,然后分类决策电路1230依据所述目前封包的长度、所述预设机率与所述二封包的取样时间得到所述第一数据流的流量。举例而言,所述先前封包的取样时间(Pre_Time)存储于第二存储电路1210中,所述目前封包的取样时间(Cur_Time)及长度(Cur_Length)由数据流信息取得电路1130实时提供,而分类决策电路1230将所述目前封包的长度除以所述预设机率(P%),再除以所述二封包的取样时间的一间隔(deltaTime=Cur_Time–Pre_Time),以估计所述第一数据流的流量(Flow[i].rate),如下式所示:
Figure BDA0002912389510000132
于一实作范例中,分类决策电路1230可进一步依据所述多种数据流的辨识信息与所述多种数据流的流量信息判断所述第一数据流是否属于一特殊的数据流群组(例如:点对点(peer to peer;P2P)数据流群组),分类决策电路1230与分类决策电路320采用相同方式来判断所述第一数据流是否属于一特殊的数据流群组。
请注意,在实施为可能的前提下,本技术领域普通技术人员可选择性地实施前述任一实施例中部分或全部技术特征,或选择性地实施前述多个实施例中部分或全部技术特征的组合,藉此增加本发明实施时的弹性。
综上所述,本发明能够依据多道数据流的流量与一大象流流量门限之间的比较来分类这些数据流,从而避免现有技术的问题。
虽然本发明的实施例如上所述,然而这些实施例并非用来限定本发明,本技术领域普通技术人员可依据本发明的明示或隐含的内容对本发明的技术特征施以变化,凡此种种变化均可能属于本发明所寻求的专利保护范围,换言之,本发明的专利保护范围须视本权利要求书所界定的范围为准。
附图标记说明
100:数据流分类装置
110:转发电路
120:设定电路
10:缓冲电路
210:记录电路
212:查找表
220:分类电路
230:数据流信息增补电路
310:大象流流量门限调整电路
320:分类决策电路
ELE_TH:大象流流量门限
Curr_QL:目前队列特征值
Target_QL:目标队列特征值
CurrG_QL:非大象流缓冲队列的目前队列特征值
CurrY_QL:大象流缓冲队列的目前队列特征值
CurrR_QL:大象流缓冲队列的目前队列特征值
S610~S664:步骤
Old_QL:先前队列特征值
Flow[i].Rate:数据流的流量
RED_MIN[i]:第一门限
YEL_MIN[i]:第二门限
1000:数据流分类装置
1010:转发电路
1020:设定电路
11:缓冲电路
1110:第一存储电路
1112:查找表
1120:分类电路
1130:数据流信息取得电路
1210:第二存储电路
1212:数据流信息表
1220:大象流流量门限调整电路
1230:分类决策电路

Claims (10)

1.一种数据流分类装置,包括:
一转发电路,包括:
一第一存储电路,用来存储一查找表,所述查找表包括多种数据流的辨识信息以及所述多种数据流的分类;
一分类电路,耦接一数据流输入端与所述第一存储电路,用来从所述数据流输入端接收一第一数据流,以依据所述第一数据流的第一辨识信息查询所述查找表所包括的所述多种数据流的辨识信息,当所述查找表包括所述第一辨识信息时,所述分类电路使用所述查找表以决定所述第一数据流的分类,并输出所述第一数据流至一缓冲电路,当所述查找表未包括所述第一辨识信息时,所述分类电路将所述第一数据流归类为一默认分类,并输出所述第一数据流至所述缓冲电路;以及
一数据流信息取得电路,用来取得所述第一数据流的至少一部分,以获得并输出所述第一辨识信息以及所述第一数据流的第一流量信息;以及
一设定电路,包括:
一第二存储电路,耦接所述数据流信息取得电路,用来存储一数据流信息表,所述数据流信息表用来存储所述多种数据流的辨识信息以及所述多种数据流的流量信息,所述多种数据流的辨识信息包括所述第一辨识信息,所述多种数据流的流量信息包括所述第一流量信息;
一大象流流量门限调整电路,耦接所述缓冲电路,用来依据一目标队列特征值与所述缓冲电路的一目前队列特征值之间的关系的变化,决定一大象流流量门限;以及
一分类决策电路,耦接所述大象流流量门限调整电路与所述第二存储电路,所述分类决策电路用来依据所述多种数据流的流量信息与所述大象流流量门限之间的关系的变化,决定所述查找表所包括的所述多种数据流的分类。
2.根据权利要求1的数据流分类装置,其特征在于,所述第一数据流的每个封包包括所述第一辨识信息,所述分类电路用来依据所述第一数据流的每个封包所包括的所述第一辨识信息查询所述查找表所包括的所述多种数据流的辨识信息,当所述查找表包括所述第一辨识信息时,所述查找表也包括所述第一辨识信息所关联的所述第一数据流的分类,所述分类电路依据所述查找表所包括的所述第一数据流的分类,标示所述第一数据流的每个封包。
3.根据权利要求1的数据流分类装置,其特征在于,所述数据流信息取得电路按一默认机率执行一取样操作,以取得所述第一数据流的所述至少一部分,从而取得所述第一辨识信息以及所述第一流量信息。
4.根据权利要求1的数据流分类装置,其特征在于,于所述目前队列特征值大于所述目标队列特征值达N次后,所述大象流流量门限调整电路判断所述缓冲电路处于一拥塞状态,并调低所述大象流流量门限至少一次,所述N为正整数。
5.根据权利要求4的数据流分类装置,其特征在于,于一目前时间点所述缓冲电路的一队列特征值为所述目前队列特征值,于一先前时间点所述缓冲电路的所述队列特征值为一先前队列特征值;所述队列特征值为一队列长度或一队列时延;在所述大象流流量门限调整电路判断所述缓冲电路处于所述拥塞状态的情形下,若所述目前队列特征值大于所述目标队列特征值,所述大象流流量门限调整电路进一步依据所述目前队列特征值与所述先前队列特征值之间的关系的变化来调低所述大象流流量门限。
6.根据权利要求4的数据流分类装置,其特征在于,于一目前时间点所述缓冲电路的一队列特征值为所述目前队列特征值,于一先前时间点所述缓冲电路的所述队列特征值为一先前队列特征值;所述队列特征值为一队列长度或一队列时延;在所述大象流流量门限调整电路判断所述缓冲电路处于所述拥塞状态的情形下,若所述目前队列特征值小于所述目标队列特征值,所述大象流流量门限调整电路进一步依据所述目前队列特征值与所述先前队列特征值之间的关系的变化,调低所述大象流流量门限或维持所述大象流流量门限不变。
7.根据权利要求4的数据流分类装置,其特征在于,于所述目前队列特征值小于所述目标队列特征值的K分之一达M次后,所述大象流流量门限调整电路判断所述缓冲电路处于一非拥塞状态,并调高所述大象流流量门限至少一次;所述K与所述M为正整数。
8.根据权利要求4的数据流分类装置,其特征在于,所述缓冲电路包括一非大象流缓冲队列与至少一大象流缓冲队列,所述目前队列特征值为所述非大象流缓冲队列的一队列特征值;所述非大象流缓冲队列所关联的一非大象流传输优先权高于所述至少一大象流缓冲队列所关联的任一大象流传输优先权,或者所述非大象流缓冲队列所关联的一非大象流封包丢弃率低于所述至少一大象流缓冲队列所关联的任一大象流封包丢弃率;于所述至少一大象流缓冲队列的每一目前队列特征值小于所述目标队列特征值的K分之一达M次后,所述大象流流量门限调整电路判断所述缓冲电路处于一非拥塞状态,并调高所述大象流流量门限至少一次;所述K与所述M为正整数。
9.根据权利要求1的数据流分类装置,其特征在于,当所述分类决策电路依据所述第一流量信息判断所述第一数据流的流量大于所述大象流流量门限时,所述分类决策电路决定所述第一数据流的分类为一大象流类型;当所述分类决策电路依据所述第一流量信息判断所述第一数据流的流量小于所述大象流流量门限时,所述分类决策电路决定所述第一数据流的分类为一非大象流类型。
10.根据权利要求1的数据流分类装置,其特征在于,所述分类决策电路依据所述多种数据流的辨识信息与所述多种数据流的流量信息判断所述第一数据流是否属于一特殊的数据流群组;若所述第一数据流属于所述特殊的数据流群组,所述分类决策电路依据所述特殊的数据流群组的总流量与所述大象流流量门限决定所述第一数据流的分类。
CN202110090174.1A 2021-01-22 2021-01-22 数据流分类装置 Pending CN114827042A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110090174.1A CN114827042A (zh) 2021-01-22 2021-01-22 数据流分类装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110090174.1A CN114827042A (zh) 2021-01-22 2021-01-22 数据流分类装置

Publications (1)

Publication Number Publication Date
CN114827042A true CN114827042A (zh) 2022-07-29

Family

ID=82524006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110090174.1A Pending CN114827042A (zh) 2021-01-22 2021-01-22 数据流分类装置

Country Status (1)

Country Link
CN (1) CN114827042A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106453130A (zh) * 2016-09-30 2017-02-22 杭州电子科技大学 一种基于大象流精确识别的流量调度系统及方法
US20180048578A1 (en) * 2015-03-05 2018-02-15 Mitsubishi Electric Corporation Classification device and method of performing a real- time classification of a data stream, computer program product, and system
US20190158415A1 (en) * 2017-11-22 2019-05-23 Cisco Technology, Inc. Layer 3 fair rate congestion control notification
CN110034966A (zh) * 2018-01-11 2019-07-19 中国科学院声学研究所 一种基于机器学习的数据流分类方法及系统
US20190238461A1 (en) * 2018-01-26 2019-08-01 Opanga Networks, Inc. Systems and methods for identifying candidate flows in data packet networks
CN110661723A (zh) * 2018-06-29 2020-01-07 华为技术有限公司 一种数据传输方法、计算设备、网络设备及数据传输系统
US20200014486A1 (en) * 2005-04-07 2020-01-09 Opanga Networks, Inc. System and method for peak flow detection in a communication network
US20200169509A1 (en) * 2018-11-27 2020-05-28 Xaxar Inc. Systems and methods of data flow classification
CN112104564A (zh) * 2020-08-31 2020-12-18 新华三技术有限公司 一种负载分担方法及设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200014486A1 (en) * 2005-04-07 2020-01-09 Opanga Networks, Inc. System and method for peak flow detection in a communication network
US20180048578A1 (en) * 2015-03-05 2018-02-15 Mitsubishi Electric Corporation Classification device and method of performing a real- time classification of a data stream, computer program product, and system
CN106453130A (zh) * 2016-09-30 2017-02-22 杭州电子科技大学 一种基于大象流精确识别的流量调度系统及方法
US20190158415A1 (en) * 2017-11-22 2019-05-23 Cisco Technology, Inc. Layer 3 fair rate congestion control notification
CN110034966A (zh) * 2018-01-11 2019-07-19 中国科学院声学研究所 一种基于机器学习的数据流分类方法及系统
US20190238461A1 (en) * 2018-01-26 2019-08-01 Opanga Networks, Inc. Systems and methods for identifying candidate flows in data packet networks
CN110661723A (zh) * 2018-06-29 2020-01-07 华为技术有限公司 一种数据传输方法、计算设备、网络设备及数据传输系统
US20200169509A1 (en) * 2018-11-27 2020-05-28 Xaxar Inc. Systems and methods of data flow classification
CN112104564A (zh) * 2020-08-31 2020-12-18 新华三技术有限公司 一种负载分担方法及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHUN-YU LIN等: ""Elephant flow detection in datacenters using OpenFlow-based Hierarchical Statistics Pulling"", 《2014 IEEE GLOBAL COMMUNICATIONS CONFERENCE》, 12 February 2015 (2015-02-12), pages 2264 - 2269 *
郭秉礼;赵宁;朱志文;宁帆;黄善国;: "数据中心中面向光互联的流量识别与调度研究", 《通信学报》, no. 39, 25 September 2018 (2018-09-25), pages 122 - 128 *

Similar Documents

Publication Publication Date Title
US10230645B1 (en) Dynamic adjustment of quality of service parameters
JP3548720B2 (ja) 入側速度の監視に基づくキュー管理によってデータネットワーク内のシステム性能を改善する方法
US8665892B2 (en) Method and system for adaptive queue and buffer control based on monitoring in a packet network switch
US20040246895A1 (en) Bandwidth-limited supervisory packet transmission to control congestion and call establishment in packet-based networks
US8761012B2 (en) Packet relay apparatus and method of relaying packet
Abbas et al. Fairness-driven queue management: A survey and taxonomy
CN108234338B (zh) 报文传输方法及混合接入网关
TWI763261B (zh) 數據流分類裝置
CN109428830B (zh) 一种动态调整onu设备端口限速阀值的装置及方法
US20060187835A1 (en) Apparatus and method for adjusting adaptive service bandwidth in quality of service guaranteed network
EP2761826A1 (en) Attribution of congestion contributions
US20030223366A1 (en) Flow control in computer networks
CN1549508A (zh) 一种系统流量控制方法
EP4007225A1 (en) Method and apparatus for managing network congestion
CN114785741B (zh) 数据流分类装置
CN114827042A (zh) 数据流分类装置
US7391785B2 (en) Method for active queue management with asymmetric congestion control
TWI739706B (zh) 數據流分類裝置
CN114629847B (zh) 基于可用带宽分配的耦合多流tcp拥塞控制方法
CN112787919B (zh) 报文传输方法及设备、可读介质
Irawan et al. Performance evaluation of queue algorithms for video-on-demand application
Chitra et al. Adaptive CHOKe: An algorithm to increase the fairness in Internet Routers
US11182205B2 (en) Multi-processor queuing model
KR100458707B1 (ko) 차별화 서비스 네트워크에서 서비스 품질 제공을 위한적응 패킷 포워딩 방법 및 장치
JP6894167B2 (ja) 通信装置及び通信方法

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