CN1736076A - 数据包分类的装置及方法 - Google Patents

数据包分类的装置及方法 Download PDF

Info

Publication number
CN1736076A
CN1736076A CNA018142079A CN01814207A CN1736076A CN 1736076 A CN1736076 A CN 1736076A CN A018142079 A CNA018142079 A CN A018142079A CN 01814207 A CN01814207 A CN 01814207A CN 1736076 A CN1736076 A CN 1736076A
Authority
CN
China
Prior art keywords
minterm
packet
template
enters
byte
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
CNA018142079A
Other languages
English (en)
Other versions
CN100444593C (zh
Inventor
G·S·可瑞西那
P·K-F·周
曾世杰
S·维斯万那史
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.)
GlobalFoundries US Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN1736076A publication Critical patent/CN1736076A/zh
Application granted granted Critical
Publication of CN100444593C publication Critical patent/CN100444593C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • 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

Landscapes

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

Abstract

一种网络交换器,经配置而用以执行在一以太网络(IEEE 802.3)中的层2及层3交换,而不阻塞进入的数据包,包含一具有过滤器(即,一数据包分类器模块)的网络交换端口,而该过滤器经配置而在网络交换端口接收进入数据包时,立即对该数据包评价。过滤器在进入数据包的数据流与经配置识别各个数据协议的多个模板之间行同时比较。每一模板由多个最小项所组成,其中每一最小项规定在进入数据包的一个选定的字节内的一个既定比较操作。该模板可由用户程序化,且储存于一内部的最小项内存。而且,该多重同时比较使该网络交换器能执行层3交换,供100Mpbs及千兆位网络使用,而在网络交换器中无阻塞。

Description

数据包分类的装置及方法
技术领域
本发明涉及在网络交换端口上以线率来识别数据包的装置及方法,特别是在一经过配置而用来供数据包于子网络间做交换的无阻塞(nonblocking)网络交换器中,层2及层3数据包的交换。
背景技术
局域网络(LAN)使用网络缆线或其它媒介来链接网络上的网站。每一局域网络架构,在其每一网络节点上都使用一媒体存取控制(MAC)使得网络接口器件能存取网络媒体。
以太网络协议IEEE 802.3(美国电机电子工程师学会802.3标准)已经演进为指定半双工(half-duplex)媒体存取机制及全双工(full-duplex)媒体存取机制来传输数据包。全双工媒体存取机制在两个网络组件间,例如在一网络节点与一交换集线器间,提供双向的点对点通信链接。
交换的局域网络现正日益要求更为高速的连接性、更具弹性的交换性能,以及容纳更复杂网络架构的能力。例如美国专利5,953,335号披露一种网络换器,其经过配置在不同网络节点间用以交换层两种类型的以太网络(IEEE 802.3标准)数据包;一个接收的数据包可依IEEE802.1q协议而包含一VLAN(虚拟局域网络〔virtual LAN〕)卷标框,该协议指定另一子网络(经由一路由器)或既定的网站群。既然交换是发生在层2等级,则通常需要一路由器,在子网络间传送数据包。
为包括层3(如,网际网络协议)处理,加强网络交换器的交换性能的做法有严重的缺点,这是因为现行的层2交换器宜经配置而以无阻塞模式供作业之用,其中数据包能以等于接收时的速率自交换器输出。为确保较高速的交换能提供层2交换及层3交换能力,供较快速的网络(诸如每秒100兆位〔100 Mpbs〕)之用,则需有较新的设计。
然而,诸如此类设计要求,冒有网络交换器无阻塞特征的损失风险,这是因为网络交换器的交换加工渐难于以线率(即,网络数据速率)来处理层3处理。
已知的路由器(router)及高级的交换器(high-end switches)使用以CPU密集方案为主的集中式软件来检查数据包,以供分类之用;并决定其类别或优先性,供数据包交换/选路之用。图1显示,一数据包抵达一已知的网络交换端口(T1)直到其在一输出端口上离开网络交换器(T10),该数据包的时间序列。既然封包必须发送至一处理器(于T3),再由该处理器做分类(于T5-T6),则其执行时间(latency)(第一个进入位至第一个输出位)高,且可以式表为 S1+S2+S3+S4。执行时间长的执行时间是因为数据包在完全接收还未开始被处理。
发明内容
有一种配备的需要,该配备使一网络交换器能提供层2交换及层3交换能力,达100Mpbs及千兆字节链接(gigabit links),而不阻塞数据包。
也需要一种配备,其使一网络交换器能在内有最小缓冲下,提供层2交换及层3交换能力,否则会影响交换的数据包的执行时间。
也需要一种配备,其使一网络交换器可容易程序化,以辨别不同类型的层3数据包,而获得服务品质(QoS)。
也需要一种配备,其使一网络交换端口能立即对一进入的数据包评价,并决定层3或更高的协议,以有充份时间提供关联的交换构件(switch fabric),而依所侦测的协议来处理该进入的数据包。
本发明完成了此类及其它需求,其中,在一网络交换端口中,于数据包的最后一个位一经接收并随即评估整个数据包,基于此而生成一个框卷标。
本发明一方面提供一种评估网络交换端口上的一进入数据包的方法。该方法包含:储存多个经配置而用以识别各个数据格式的模板(template),而每一模板有至少一个最小项(min term),该最小项系经配置而用以比较一对应的既定值与该进入数据包的一对应的选定字节。在该网络交换端口接收该选定的字节的时,立即将该对应于选定字节的最小项同时与该选定字节比较。基于该最小项与该网络交换端口所接收的整个数据包的数据字节所做的比较,生成一识别该进入的数据包的比较结果。当数据包的最后一个位在该网络交换端口一经接收,即基于比较结果而生成一个框卷标。
本发明另外的优点及新颖特征一部份陈述于以下说明中;一部份则为本领域的技术人员阅读下文即可明白,或者可通过本发明的实施而有所了解。本发明的优点可通过工具或工具组合,特别是权利要求书中所指来实现的。
附图说明
参考附图,其中指定为相同参考号数的组件在全文中代表相似组件,又其中:
图1显示一数据包的执行时间,其由数据包抵达一已知的网络交换端口直到数据包离开端口该端口的时间所定义。
图2为一含多个网络交换器的数据包交换网络的方块图,系用来依据本发明的一实施例而供数据包于各别子网络间做交换。
图3阐述一已知的层2以太网络类型的数据包,其运载一个层3因特网协议(IP)数据包。
图4为一流程图,阐述一种评估一IP数据包数据包的已知(先前技艺)方法。
图5为一方块图,依本发明的一实施例,阐述图2网络的网络交换端口,其包含网络交换端口过滤器(filter)。
图6A和图6B描述图5中的最小项生成器同时处理一方程式的四个模板。
图7更详细地描述图5中的最小项生成器同时处理最小项。
图8依本发明的一实施例,描述图5的最小项内存中的一最小项表项(table entry)。
图9显示本发明一实施例的一数据包的执行时间,由封包抵达一网络交换端口直到封包离开端口该端口的时间所定义。
本发明最佳实施方式
图2为一方块图,阐述一封包交换网络10,诸如以太网络(IEEE802.3)。该分组交换网络包含集成集成(即,单一芯片)多端口交换器12,而使网站14间能有数据包通信。每一网站14,例如一客户工作站,都典型地经配置而以10Mbps或100Mbps(依IEE 802.3协议)发送及接收数据包。每一集成多端口交换器12都都由千兆位以太网络链接16而互连,使子网络18a、18b与18c间能传送数据包。由此,每一子网络都包含一交换器12,及一关联的网站14群。
每一交换器12都含一交换端口20,而交换端口20含一媒体存取控制(MAC)模块22及一数据包分类器模块24。MAC模块22依IEEE802.3u协议,跨越10/100 Mbps物理层PHY〔physical layer〕)数据收发器(未示出),而发射并接收数据包至关联的网站14。每一交换器12也含一交换构件25,而构件25经配置,成为用于接收的数据包的框转接决策(frame forwarding decision)。特别是,交换构件25经配置供层2交换决策,该决策是基于源地址、目的地址及以太网络(IEEE 802.3)标头(header)内的VLAN信息,;该交换构件25也经配置供选择性的层3交换决策,该决策是基于以太网络数据包内的IP数据包的评估。
如图2所示,每一交换器12都有一关联的主机CPU 26及一缓冲存储器28(例如一SSRAM(同步静态随机存取内存〔synchronousSRAM〕))。主机CPU 26控制对应的交换器12的全部作业,包括交换构件25的编程。缓冲存储器28为对应的交换器12所使用,以储存资料框;而交换构件25则为接收的数据包处理转接决策。
如上述,交换构件25经配置成为用以执行层2交换决策及层3交换决策。子网络18a内的终端网站14若欲发送一电子邮件信息至子网络18b、18c或两者内的选定网站,则层3交换决策的可用性是格外有效的;若仅有层2交换决策可用,则交换器12a的交换构件25发送电子邮件信息至交换器12b及12c,将无特定的目的地址信息,致使交换器1 2b及12c在所有的端口间四处选路。若非如此,交换器12a的交换构件25则须发送电子邮件至一路由器(未示出);路由器会引入额外的延迟。以交换构件25做层3交换决策,则交换构件25能聪明地决定如何处置一个封包(包括先进转接决策),以及是否视一数据包为一供执行时间敏感应用的高优先性数据包,比如图像或声音。以交换构件25做层3交换决策,也使交换器12a的主机CPU 26能远程程序化另一交换器,例如交换器12b,它是通过发送含IP地址的信息实现的,而该IP地址对应于交换器12b的IP地址;当侦测到一寻址于交换器12b的信息,交换器12b在响应下能转接该信息至对应的主机CPU 26,供交换器12b程序化之用。
图3阐述一以太网络(IEEE 802.3)数据包30,而数据包30运载一IP数据包32做为有效负载数据。具体地说,以太网络数据包30包含一框起始定界符(SFD〔start frame delimiter〕)34、一以太网路标头36、IP数据包32,及一循环冗余核对(CRC〔cyclic redundancy check〕)或框核对序列(FCS〔frame check sequence〕)字段38。由此,经配置而供层3交换决策用的交换器构件25必须能在接收的以太网络框30之内快速处理IP数据包32,以免该框在交换器内阻塞。
图4为一流程图,阐述可对一进入数据包执行的层3处理类型范例。图3中的流程图习惯上在软件中执行,核对进入数据包是否为一超文本传输协议(HTTP)数据包于步骤50、一SNMP(简单网络管理协议)数据包于步骤52,或一高优先性数据包于步骤54。然后指定适当的卷标,来识别该数据包于步骤56、57、58或60。
然而,从实用的观点来说,图4的配置并不能在硬件中执行以提供无阻塞交换而供100 Mbps或千兆位网络之用。特别是,图4中决策过程的顺序本质将对进入的数据包造成过多的执行时间。
依据所公开的实施例,图2的数据包分类器模块经配置,而在进入的数据流与识别该进入的数据流数据格式的模板之间,用来做多重同时的比较。具体地说,主机处理器26的用户将规定策略,以规定含某IP协议的数据包应如何由交换构件25所处置。此类策略通过将一组框转接决策加载到交换构件25以供每个相应的IP传输类型用,由此而得以执行。因此,交换构件25可包含一组框转接指令供一HTTP数据包之用、另一组框转接指令供一SNMP数据包之用,以及另一组框转接指令供一高优先性数据包之用(如,视频或音频等)。
图5为一方框图,阐述依据本发明一实施例的数据包分类器模块24。如图5所示,网络交换端口20包含一MAC 22、一接收FIFO(先入先出)缓冲器27、一标头修饰器(modifier)29,及数据包分类器模块24。数据包分类器模块24也称做网络交换端口过滤器,而经配置,用以识别(如评价)从网络交换端口20进入的数据包,并提供一卷标给交换构件25,该卷标基于正被接收的数据包的类型来规定对该数据包的动作。具体地说,如图9所示,数据包分类器模块24将进入的数据包与多个模板同时比较,经配置而当数据于交换端口20被接收时立即识别各个的数据格式。数据包分类器模块24比较进入的数据包与该多个模板,基于此而识别一将执行的方程式,而该方程式规定将要供应给交换构件25的卷标。如图9所示,既然数据包在交换端口20一经接收即被分类,则不论数据包是否验效,其执行时间S1+S2+S3比起参考图1所述的执行时间,有所减少。
具体地说,数据包分类器模块24生成一比较结果,它通过从多个模板中侦侧出至少一个匹配的模板,以识别进入的数据包。然后数据包分类器模块24识别哪一个方程式包含该匹配的模板,并生成该方程式所规定的卷标。
图6A和图6B阐述了通过数据包分类器模块24对一个方程式的两个模板同时所做的处理。图6A阐述数据包分类器模块24对下述方程式的逻辑评价:
Eq1=M1*M2*M3*M4*(M5+M6+M7+M8)。
图6B阐述,方程式Eq1将如何实际地储存在最小项内存70中。方程式Eq1含四个模板62a、62b、62c及62d:模板62a含最小项M1、M2、M3、M4及M5;模板62b含最小项M1、M2、M3、M4及M6;模板62c含最小项M1、M2、M3、M4及M7;而模板62d含最小项M1、M2、M3、M4及M8。每一模板62都对应一特定的IP数据格式,而该格式可基于IP数据包32的标头来辨识。例如,模板62a及62c可经配置而用以识别一HTTP数据包;模板62b及62d可经配置而用以识别一SNMP数据包。具体地说,如果一数据包是IPv4格式的、IP中的存活时间(time to live)字段大于一、IP标头中的协议字段为TCP、标头核对和(checksum)为正确、源TCP端口为80或目的TCP端口为80,那幺它就会被识别为HTTP数据包。如果一数据包是IPv4格式的、IP中的存活时间字段大于一、IP标头中的协议字段为TCP、标头核对和为正确、源TCP端口为25或目的TCP端口为25,那幺它就会被识别为SNMP数据包。因此,可建立以下最小项来代表所有的上述判据:
M1=数据包为IPv4格式
M2=IP中的存活时间字段大于一
M3=IP标头中的协议字段为TCP
M4=标头核对和为正确
M5=源TCP端口为80
M6=目的TCP端口为80
M7=源TCP端口为25
M8=目的TCP端口为25
由此,模板62a及62c识别HTTP数据包,而模板62b及62d识别SNMP数据包。如此,方程式一(Eq1)规定,如果模板62a、62b、62c及62d任一为真,则应输出一特定结果(如,有一规定值的卷标)至交换构件25。
而且,最小项M1....M8以一既定次序安排在关联的模板62a和/或62b内,而该次序系对应进入数据流中一数据字节的相对位置。如图7所示,最小项M1经配置,而用与IP数据包32的第一字节(B1)比较;最小项M2经配置,而用与IP数据包32的继B1后的字节(B2)比较;最小项M3经配置,而用与IP数据包32的继B2后的字节(B3)比较,等。由此,基于进入的数据流中一数据字节的相对位置,以此为使用的模板62的最小项次序,则能在该进入数据流与该类最小项间做比较。由此,进入数据流能与多个模板比较,不但决定了进入数据包的数据格式,也决定交换构件25须执行何种动作。
如如图5所示,数据包分类器模块24(也称网络交换端口过滤器)包含一最小项内存70,用以储存最小项的值(如,M1、M2,等),如图8所示。以下说明的:数据包分类器模块24也含一框识别器(identifier)72,它经配置而用以识别正被接收的层2框的类型;特别地,识别接收中的层2框的类型(如,以太网、IEEE802至3,等),即能识别层2数据包30内的IP数据包32起始位置64。数据包分类器模块24也含一最小项控制器74、一最小项生成器76、一方程式核(core)78,及一评价结果内存80。使用一处理器接口模块(pi mod),从主机CPU 26传送生成的最小项至最小项内存70。
最小项控制器74经配置,对应于IP框32的一选定的字节而从最小项内存70提取最小项。最小项控制器74也含一位置转换器82,位置转换器82经配置而当接收一来自框识别器72的以规定层2框的类型的框类型(frm_type)信号时,在响应下规定起始点64的实际字节位置(byte_location)。由此,最小项控制器74侦测IP数据包的开端,在响应下提取将与IP数据包的第一字节(B1)比较的所有最小项,例如第7图中用于方程式Eq1、Eq2及Eq3的最小项M1、M9及M14。然后,最小项控制器74转接最小项的值(M_STRU INFO)给最小项生成器76及方程式核心78。
最小项生成器76在最小项控制器所提取的最小项与进入的数据流的选定的字节的间,执行实际的最小项比较。例如在第7图中,最小项生成器76将进入的数据字节B1同时与最小项M1、M9及M14比较,并提供最小项比较结果(mt_result)给方程式核心78。在下一次比较循环期间,最小项生成器76将进入的数据字节B2同时与最小项M2、M10及M15比较。依据所公开的实施例,最小项生成器经配置而用来将进入的数据流同时与多达八个最小项比较。
方程式核心78经配置,基于接收自最小项生成器76的最小项比较结果而生成一个框卷标,相对于有关的模板62。举例来说,方程式核心78在最小项生成器给出结果时,对此最小结果顺序地估值,藉而估算方程式1的值,其描述于图6。举例来说,若对于最小项M1、M2、M3、M4、M5及M6每一项所做的比较导致条件为真,参考如下图8所述,则终结条件在方程式1中为匹配,而致使方程式核心78生成一对应于方程式1规定条件的卷标。该框卷标在必须执行的动作之外,也识别进入的数据包的本质。
由此,当数据包抵达交换端口20时,数据包分类器模块24立即以一可程序化的量子(字节字〔byte word〕、双字〔double word〕,等)边界(quantum boundary),来检查进入的资料是否匹配模板中的适当字段。如果发现是匹配的,则数据包分类器模块24持续追踪哪些模板已匹配,并依抵达次序来继续检查其余进入的数据包字段。循此方式,不再匹配该数据包的模板即遭废除,不做进一步的比较。在数据包终端,或在一完全匹配的模板终端,数据包分类器模块24的方程式核心78以关联于该类匹配模板的卷标,来标记该数据包。或许某些情况中会有多于一个模板匹配该数据包;在诸如此种情形中,卷标优先性解析装置81执行一基于优先性的决定,如由用户所定义的一样,而在框终端或附近选取单一个框卷标值并发送至交换构件25。
图8阐述最小项内存70中的最小项结构的数据格式。依据所公开的实施例,最小项对应于将做比较的数据字节的相对位置,以此次序而储存在最小项内存70中。由此,所有将与第一资料字节比较的最小项一起储存在最小项内存的第一部份中,紧接着是所有将与第二数据字节比较的最小项,等等。
或者,最小项的储存次序除基于将做比较的数据字节的相对位置外,也可基于IP标头内的相关信息。由此,最小项的储存次序可供数据字节序列比较之用,而提供源IP地址、目的IP地址及源和源/目的端口等条件;在此情形中,在IP框开端的无关的数据字节将不会在最小项内存70开端储存其关联的最小项,最小项内存70的效率进而获得改良。
每一表项90包含一最小项部份及一评价部份。最小项部份含一屏蔽字段(屏蔽〔MASK〕)94、一期望数据域位(期望资料〔EXP_DATA〕)96,及一算符字段(算符〔OPERATOR〕)98。基于表项90在最小项内存70中的位置,最小项控制器74能决定IP数据包32的哪一个字节须与对应的最小项比较(相对于IP数据包的开端64)。屏蔽字段94为最小项生成器76执行比较所用的屏蔽,若该屏蔽有一个位设定为1,则比较其值;而若屏蔽值在字段中有零值,则毋庸比较。期望数据域位96规定将与IP数据包32的有关资料字节比较的期望数据。算符字段98规定最小项生成器所将执行的比较的类型,例如:小于、小或等于、等于、大于、大于或等于,及不等于。
估值部份则含一分支部份100、一响应部份(RINP 1)102用于最小项部份比较为真的情形、一第二响应部份(RINP 0)106用于最小项部份比较为伪的情形,及一方程式识别符110。分支部份100规定方程式中OR项的次序;例如第6图及第7图所示的最小项M1,其分支部份将设定为0000 1111,标示着:方程式识别符110中所规定的方程式最先四个分支应包含对应的最小项。以八个位用于分支部份,假设任何给定方程式中最多有八个分支。
响应部份102在最小项部份相对于比较的字节的评价为真时,规定所将执行的作业。特别是,若方程式结果在最小项结果为真时被决定,则结束位(FIN)设定为一;若评价过程在最小项结果为真时应返回初始状态(init),则「回到初始(BINIT)」设定为一。例如在最小项M1的情形中,最小项结果为真时既须做其它比较,则RINP 1的FIN位及BINIT位设定为零。在最小项M5、M6、M7及M8的情形中,因为为“真”的比较结果会结束评价,则RINP 1的FIN位设定为一,如图6所示。
响应部份106在最小项部份相对于比较的字节的评价为伪时,规定将执行的作业。特别是,若方程式结果在最小项结果为伪时被决定,则结束位(FIN)设定为一;若评价过程在最小项结果为伪时应返回初始状态(init),则「回到初始(BINIT)」设定为一。例如在最小项M1的情形中,FIN位设定为零而RINP1的BINIT位设定为一,以致方程式在最小项M1结果为伪时将返回init状态,如图6所示。
方程式识别符110识别最小项所对应的方程式(或者,若方程序中仅有一个模板,则对应该模板)。
由此,方程式核心78决定任何规定的方程式是否有一模板62匹配进入的数据流。对带有多个模板62的进入的数据流做多重同时比较,基于此则方程式核心78能识别一匹配方程式;并对于交换构件25上的框转接决策,生成对应于匹配的方程式的适当卷标。必要时,核心78在传送资料给交换器的前,也输出一指令至标头修正器29,以修正层2标头、层3标头,或两者。
依据所公开的实施例,一网络交换端口包含一过滤器,而该过滤器能在数据包的进入的数据流与经配置而供识别一对应协议用的多个模板的间,执行多重同时比较。既然数据包分类器模块24能处理IP框32的任何字节,则数据包分类器模块24能直译IP数据包32中所有的标头信息,从层3到层7的协议。而且,该类多重同时比较使网络交换器12能执行层3交换,供100Mbps及千兆位网络之用,而在网络交换器中无阻塞。最后,该类多重同时比较以数据接收的次序,而能执行实时(real time)比较,这与可程序化逻辑数组(PLAs)的类的替代方案相反,此类替代方案要求在开始处理之前接收整个标头。
由此,依据所公开的实施例,数据包分类分辨率及关联的交换控制属性在数据包的最后一个位一抵达交换端口时,可立即发生,从而减少全部的交换执行时间,如此,数据包分类器可经配置,以线速(wirespeed),基于任何协议来转接数据包,而常驻在ISO模型的任一层。
本发明虽经目前所知最为实用的优选的实施例说明的,但应了解,本发明并不限于所公开的实施例;反之,它涵盖了权利要求书中的精神及范围内所含的各种不同的修正及等同的设计。

Claims (16)

1.一种评估网络交换端口上进入数据包的方法,该方法包含:
储存多个经配置而用以识别各别数据框的模板,而每一模板有至少一个最小项,该最小项经配置而用以比较一对应的既定值与该进入的数据包之一对应的选定字节;
在该网络交换端口接收该选定的字节之时,立即将该对应于选定字节的最小项同时与该选定字节比较;
基于该最小项与该网络交换端口所接收的整个数据包的数据字节所做比较,生成一识别该进入的数据包的比较结果;以及
当数据包的最后一个位在该网络交换端口一经接收,即基于比较结果而生成一个框卷标。
2.如权利要求1所述的方法,其中该同时比较步骤包含:
将对应于一第一数据字节的最小项加载一最小项生成器;
平行比较该载于最小项生成器的最小项与该第一数据字节;以及
输出该载于最小项生成器的最小项的比较结果到一评价核心。
3.如权利要求2所述的方法,其中该同时比较步骤还包含:将对应于一第二数据字节的最小项,续接于该第一数据字节之后而加载该最小项生成器。
4.如权利要求1所述的方法,还包含:输出该框卷标至一交换构件,该交换构件经配置而基于该对应的框卷标,用以交换该进入的数据包。
5.如权利要求1所述的方法,其中该储存步骤包含:将每一最小项在一内存中储存为一表项,而每一表项基于对应的选定字节的位置而在该内存中有一位置,而该表项含一最小项表达式部份以规定该对应的既定值和一比较操作数,并含一模板识别符字段以规定该使用对应的最小项的模板。
6.如权利要求5所述的方法,其中该生成步骤包含:
暂时储存该等最小项与该进入的数据包的选定字节的比较结果;
基于该最小项的比较结果,而从多个模板侦侧出至少一个匹配的模板;以及
基于该侦侧出的至少一个匹配的模板,而生成比较结果。
7.如权利要求6所述的方法,还包含:当有多于一个模板匹配该进入的数据包,将模板优先性解析为一个最终框卷标。
8.如权利要求5所述的方法,其中该第一资料字节系对应于一既定格式的数据包的数据包字节,而该同时比较的步骤包含:对相应于有既定格式的数据包开端的选定的数据节的评价。
9.如权利要求8中的方法,其中该既定格式为英特网网络协议(IP)格式。
10.如权利要求6所述的方法,其中该基于侦侧出的至少一个匹配模板而生成比较结果的步骤包含:
对于与该进入的数据包比较的最小项的每一个,识别一对应的方程式,而每一方程式为一选定的模板群规定唯一的结果;以及
由该含有侦侧出的至少一个匹配模板的方程式,而生成该比较结果。
11.一种经配置以评价进入数据包的网络交换端口过滤器,它包含:
一最小项内存,经配置以储存最小项值,每一最小项值是基于该进入数据包的一对应的选定字节位置而储存的,该数据包是用来比较的,一表达式部份以规定一个对应的比较操作,以及一模板识别符字段以规定该使用对应的最小项的模板;
一最小项生成器,经配置而当该进入数据字节一经接收,用来将进入的数据包的一个字节同时与对应于该接收的字节的最小项比较,并生成各个最小项比较结果;以及
一经配置的方程式核心以生成一个框卷标,该框卷标基于相应于该模板的最小项比较结果识别该进入数据包。
12.如权利要求11所述的过滤器,还包含一框识别器,该识别器经配置以识别层2数据包的类型,而该进入数据包的选定字节基于该经识别的层2数据包类型而决定。
13.如权利要求12所述的过滤器,其中每一储存的最小项值的位置相对于该层2数据包内的一IP框的开端。
14.如权利要求13所述的过滤器,进一步包含一最小项控制器,经配置,对应于该进入的数据包内的IP框的一选定字节而从最小项内存提取该最小项。
15.如权利要求11所述的过滤器,其中该方程式核心以该进入的数据包的线率,而在该进入数据包终端之前生成该框卷标。
16.如权利要求11中的过滤器,进一步包含一卷标优先性装置,经配置,当有多于一个模板匹配该进入数据包,将模板优先性解析为一个最终框卷标值。
CNB018142079A 2000-08-14 2001-05-22 数据包分类的装置及方法 Expired - Lifetime CN100444593C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/637,015 US6963565B1 (en) 2000-08-14 2000-08-14 Apparatus and method for identifying data packet at wire rate on a network switch port
US09/637,015 2000-08-14
PCT/US2001/016621 WO2002015469A2 (en) 2000-08-14 2001-05-22 Apparatus and method for packet classification

Publications (2)

Publication Number Publication Date
CN1736076A true CN1736076A (zh) 2006-02-15
CN100444593C CN100444593C (zh) 2008-12-17

Family

ID=24554198

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018142079A Expired - Lifetime CN100444593C (zh) 2000-08-14 2001-05-22 数据包分类的装置及方法

Country Status (9)

Country Link
US (1) US6963565B1 (zh)
EP (1) EP1329073B1 (zh)
JP (1) JP2004507158A (zh)
KR (1) KR100755979B1 (zh)
CN (1) CN100444593C (zh)
AU (1) AU2001263375A1 (zh)
DE (1) DE60109052T2 (zh)
TW (1) TW576048B (zh)
WO (1) WO2002015469A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242344B (zh) * 2007-02-05 2013-03-20 财团法人工业技术研究院 网络封包分类器与其方法
CN104079555A (zh) * 2006-02-16 2014-10-01 技术卫士安全有限责任公司 用于确定数据流的系统和方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2375256A (en) * 2001-04-30 2002-11-06 Nokia Corp Determining service level identification to data transmitted between a device and a network
KR20040005276A (ko) * 2002-07-09 2004-01-16 삼성전자주식회사 기가비트 이더넷 레이어 2 스위치 기능을 갖는 이더넷오버 동기 디지털 계층 처리 장치
US7286544B2 (en) * 2002-07-25 2007-10-23 Brocade Communications Systems, Inc. Virtualized multiport switch
US7684400B2 (en) * 2002-08-08 2010-03-23 Intel Corporation Logarithmic time range-based multifield-correlation packet classification
CN1518289B (zh) * 2003-01-17 2010-06-09 华为技术有限公司 一种基于以太网交换机的安全过滤方法
US20040264479A1 (en) * 2003-06-30 2004-12-30 Makaram Raghunandan Method for generating a trie having a reduced number of trie blocks
US7573879B2 (en) * 2004-09-03 2009-08-11 Intel Corporation Method and apparatus for generating a header in a communication network
US7603445B1 (en) * 2004-11-10 2009-10-13 Juniper Networks, Inc. Managing and changing device settings
JP4186971B2 (ja) 2005-09-01 2008-11-26 富士通株式会社 パケット転送装置
US7680096B2 (en) * 2005-10-28 2010-03-16 Qnx Software Systems Gmbh & Co. Kg System for configuring switches in a network
US8526985B2 (en) * 2009-11-30 2013-09-03 Alcatel Lucent System and method of geo-concentrated video detection
US8948174B2 (en) 2011-06-29 2015-02-03 Juniper Networks, Inc. Variable-based forwarding path construction for packet processing within a network device
US9043448B1 (en) * 2012-05-08 2015-05-26 Gigamon Inc. Systems and methods for configuring a network component that involves TCAM
TWI739320B (zh) * 2020-02-25 2021-09-11 瑞昱半導體股份有限公司 網路通訊裝置以及網路映射表的操作方法
CN113364891B (zh) * 2020-03-03 2023-07-18 瑞昱半导体股份有限公司 网络通信装置以及网络映像表的操作方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6433774A (en) * 1987-07-29 1989-02-03 Nec Corp Optical disk controller
JP2985511B2 (ja) * 1992-06-15 1999-12-06 株式会社日立製作所 データ受信方式および通信制御装置
JPH06224932A (ja) * 1993-01-22 1994-08-12 Toshiba Corp パケット変換装置
SE515422C2 (sv) 1993-03-10 2001-07-30 Ericsson Telefon Ab L M Etiketthantering i paketnät
US5666516A (en) * 1993-12-16 1997-09-09 International Business Machines Corporation Protected programmable memory cartridge having selective access circuitry
DE59711831D1 (de) * 1996-03-08 2004-09-09 Siemens Ag Verfahren und anordnung zur übertragung eines datenpakets im ethernet von einer ersten anordnung zu mindestens einer zweiten anordnung
US5802054A (en) * 1996-08-15 1998-09-01 3Com Corporation Atomic network switch with integrated circuit switch nodes
US5949786A (en) * 1996-08-15 1999-09-07 3Com Corporation Stochastic circuit identification in a multi-protocol network switch
JP3689502B2 (ja) * 1996-10-04 2005-08-31 キヤノン株式会社 印刷制御装置および印刷制御方法
US6172990B1 (en) * 1997-06-19 2001-01-09 Xaqti Corporation Media access control micro-RISC stream processor and method for implementing the same
AU6169398A (en) 1997-02-11 1998-08-26 Xaqti Corporation Media access control micro-risc stream processor and method for implementing thesame
US5953335A (en) 1997-02-14 1999-09-14 Advanced Micro Devices, Inc. Method and apparatus for selectively discarding packets for blocked output queues in the network switch
JPH11261649A (ja) * 1998-03-12 1999-09-24 Hitachi Ltd データ処理装置及びそれを適用したルータ・ブリッジ
US6430184B1 (en) * 1998-04-10 2002-08-06 Top Layer Networks, Inc. System and process for GHIH-speed pattern matching for application-level switching of data packets
US6167047A (en) * 1998-05-18 2000-12-26 Solidum Systems Corp. Packet classification state machine
US6347087B1 (en) * 1998-10-05 2002-02-12 Packet Engines Incorporated Content-based forwarding/filtering in a network switching device
US6789116B1 (en) * 1999-06-30 2004-09-07 Hi/Fn, Inc. State processor for pattern matching in a network monitor device
US6700897B1 (en) 1999-10-29 2004-03-02 Advanced Micro Devices, Inc. Apparatus and method for identifying data packet types in real time on a network switch port
US6570884B1 (en) * 1999-11-05 2003-05-27 3Com Corporation Receive filtering for communication interface
US6741594B1 (en) * 2000-06-15 2004-05-25 Advanced Micro Devices, Inc. Arrangement for identifying data packet types from multiple protocol formats on a network switch port
US6693906B1 (en) * 2000-07-17 2004-02-17 Advanced Micro Devices, Inc. Apparatus and method for buffer-free evaluation of packet data bytes with multiple min terms

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104079555A (zh) * 2006-02-16 2014-10-01 技术卫士安全有限责任公司 用于确定数据流的系统和方法
CN104079555B (zh) * 2006-02-16 2017-10-20 技术卫士安全有限责任公司 用于确定数据流的系统和方法
CN101242344B (zh) * 2007-02-05 2013-03-20 财团法人工业技术研究院 网络封包分类器与其方法

Also Published As

Publication number Publication date
KR100755979B1 (ko) 2007-09-06
TW576048B (en) 2004-02-11
EP1329073A2 (en) 2003-07-23
KR20030036700A (ko) 2003-05-09
WO2002015469A2 (en) 2002-02-21
AU2001263375A1 (en) 2002-02-25
CN100444593C (zh) 2008-12-17
US6963565B1 (en) 2005-11-08
DE60109052D1 (de) 2005-03-31
JP2004507158A (ja) 2004-03-04
EP1329073B1 (en) 2005-02-23
WO2002015469A3 (en) 2002-08-29
DE60109052T2 (de) 2005-07-21

Similar Documents

Publication Publication Date Title
US6571291B1 (en) Apparatus and method for validating and updating an IP checksum in a network switching system
EP1224773B1 (en) Apparatus and method for identifying data packet types in real time on a network switch port
CN100444593C (zh) 数据包分类的装置及方法
US8081570B2 (en) High speed flow control methodology
US6950434B1 (en) Arrangement for searching packet policies using multi-key hash searches in a network switch
US6574240B1 (en) Apparatus and method for implementing distributed layer 3 learning in a network switch
US6807179B1 (en) Trunking arrangement in a network switch
CN1178435C (zh) 在网络交换机中选择性地删除地址表项目的方法及使用这种方法的网络交换机
JP2010172011A (ja) ネットワークスイッチング装置におけるコンテントベースの転送/フィルタリング方法
US5406555A (en) Charging in LAN for only packets used by subscribers
US6807183B1 (en) Arrangement for reading a prescribed location of a FIFO buffer in a network switch port
US6711165B1 (en) Apparatus and method for storing min terms in network switch port memory for access and compactness
KR100682645B1 (ko) 복수의 최소항으로 패킷 데이터 바이트를 버퍼없이 평가하는 장치 및 방법
US6741594B1 (en) Arrangement for identifying data packet types from multiple protocol formats on a network switch port
US6678272B1 (en) Apparatus and method using a register scheme for efficient evaluation of equations in a network switch
US6728255B1 (en) Apparatus and method for storing min terms in a network switch port memory for identifying data packet types in a real time
DE60022870T2 (de) Verfahren zur überlastungsverwaltung in einer netzwerkvermittlung
US6714542B1 (en) Apparatus and method for storing min terms in a central min term memory for efficient sharing by a plurality of network switch ports
US6885666B1 (en) Apparatus and method in a network switch for synchronizing transfer of a control tag to a switch fabric with transfer of frame data to a buffer memory
JPH08503349A (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
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: GLOBALFOUNDRIES

Free format text: FORMER OWNER: ADVANCED MICRO DEVICES INC.

Effective date: 20100705

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: CALIFORNIA, THE UNITED STATES TO: CAYMAN ISLANDS, BRITISH

TR01 Transfer of patent right

Effective date of registration: 20100705

Address after: Grand Cayman, Cayman Islands

Patentee after: Globalfoundries Semiconductor Inc.

Address before: American California

Patentee before: Advanced Micro Devices Inc.

TR01 Transfer of patent right

Effective date of registration: 20210226

Address after: California, USA

Patentee after: Lattice chip (USA) integrated circuit technology Co.,Ltd.

Address before: Greater Cayman Islands, British Cayman Islands

Patentee before: GLOBALFOUNDRIES Inc.

TR01 Transfer of patent right
CX01 Expiry of patent term

Granted publication date: 20081217

CX01 Expiry of patent term