JP2001517878A - Method and computer program product for classifying network communication packets processed in a network stack - Google Patents

Method and computer program product for classifying network communication packets processed in a network stack

Info

Publication number
JP2001517878A
JP2001517878A JP2000513226A JP2000513226A JP2001517878A JP 2001517878 A JP2001517878 A JP 2001517878A JP 2000513226 A JP2000513226 A JP 2000513226A JP 2000513226 A JP2000513226 A JP 2000513226A JP 2001517878 A JP2001517878 A JP 2001517878A
Authority
JP
Japan
Prior art keywords
classification
pattern
absolute
reference pattern
database
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
JP2000513226A
Other languages
Japanese (ja)
Other versions
JP3461802B2 (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2001517878A publication Critical patent/JP2001517878A/en
Application granted granted Critical
Publication of JP3461802B2 publication Critical patent/JP3461802B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

A method and computer program product for classifying network communication packets being processed in a network stack. The computer program product is a centralized packet classifier that receives classification requests from drivers or other clients according to a defined interface. This reduces the cost for producing a driver since less code is required initially at development time as well as a corresponding reduction in maintenance costs. The present invention groups drivers or other clients that utilize a certain body of classification information into classification families. Further, reference patterns used to make classifications are stored in separate databases depending on whether they are specific or general. There exists a single specific pattern database for all specific reference patterns regardless of classification family having a constant search time and a general pattern database for each general reference pattern for each classification family defined to the system whose search time may vary according to the amount of information contained therein. When servicing a classification request, the packet classifier will first search the specific pattern database followed by a search in the appropriate general pattern database if necessary.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】 (発明の背景) 1.発明の分野 本発明は、ネットワーク・スタック内において処理したネットワーク通信パケ
ットの分類に関する。更に特定すれば、本発明は、各々分類を行うための異なる
目的を有するドライバのような、異なるソフトウエア・コンポーネントからネッ
トワーク通信パケットを分類するために使用可能な、一般化したパケット・クラ
シファイア(packet classifier)を提示する。 2.現在の技術的現状 時と共に、至る所にあるパーソナル・コンピュータのような単体の計算機器の
有用性および利点は、このような計算機器の多くが通信ネットワークを通じて互
いに通信可能としたことによって、高まってきた。コンピュータ間のネットワー
ク通信により、多くの異なる種類のアプリケーションが存在するができる。そう
でなければ、これらは単体のコンピュータ機器では不可能である。更に共通かつ
有用な用途の1つに、イーメールとしても知られている電子メールによって通信
するために多くの人々が用いている単純なメッセージ送信がある。
BACKGROUND OF THE INVENTION FIELD OF THE INVENTION The present invention relates to the classification of network communication packets processed in a network stack. More specifically, the present invention relates to a generalized packet classifier that can be used to classify network communication packets from different software components, such as drivers, each with a different purpose for performing the classification. classifier). 2. BACKGROUND OF THE INVENTION With the current state of the art, the usefulness and benefits of stand-alone computing devices, such as ubiquitous personal computers, have been enhanced by the fact that many such computing devices can communicate with each other through communication networks. Was. With network communication between computers, there can be many different types of applications. Otherwise, these are not possible with a single computer device. One more common and useful application is simple messaging, which is used by many people to communicate by e-mail, also known as e-mail.

【0002】 ネットワークを通じて通信するためには、コンピュータ間で搬送すべき情報を
多数のネットワーク通信パケットに分割する。これらのネットワーク通信パケッ
ト(単に「パケット」としても知られている)は、最終的には物理的な通信ネッ
トワークを経由して搬送する。PC環境では、送信を処理するのは、パーソナル
・コンピュータ内に常駐するネットワーク・インターフェース・カードである。
この出願明細書全体を通じてPC環境を想定するが、その概念の論述および応用
は、当業者は認めるように、多くの異なるネットワーク計算機環境にも適用され
る。
[0002] To communicate over a network, information to be conveyed between computers is divided into a number of network communication packets. These network communication packets (also known simply as "packets") eventually carry through the physical communication network. In the PC environment, it is the network interface card that resides in the personal computer that handles the transmission.
Although a PC environment is assumed throughout this application, the discussion and application of that concept also applies to many different network computing environments, as those skilled in the art will appreciate.

【0003】 PC上で走るあるアプリケーション・プログラムにおいて発生した情報は、種
々のソフトウエア・コンポーネントを通過することによって、ネットワーク通信
パケットにパケット化し、次いでネットワーク・インターフェース・カードに到
達し、物理的な通信ネットワーク上で送信する。ソフトウエア・コンポーネント
は、典型的に、適宜相互接続した階層状ドライバであり、ネットワーク・スタッ
クとして知られているものを形成する。
Information generated in an application program running on a PC is packetized into network communication packets by passing through various software components, and then reaches a network interface card for physical communication. Send over the network. The software components are typically hierarchical drivers, suitably interconnected, forming what is known as a network stack.

【0004】 各ドライバまたはその他の処理コンポーネントは、データを連続的に処理し、
連続的に異なるパケット化方式に元のデータを細分化し、データをパケットに形
成し、ネットワーク・インターフェースを介して送信するまで、あるレベルから
次のレベルにネットワーク・スタックを降下していく。「ネットワーク通信パケ
ット」という用語は、実際のフォーマットには関係なく、ネットワーク・プロト
コル・スタックにおいて用いられるあらゆるデータ・パケットを指すものとする
。元のデータがドライバ・レイヤを通過して行くに連れて、これを次々にパケッ
ト化しフォーマット化する。例えば、TCPレイヤは、データをTCPパケット
単位にカプセル化する。その各々は、更に、IPレイヤによって多数のIPパケ
ットに断片化することもある。
[0004] Each driver or other processing component processes data continuously,
The original data is broken down into successively different packetization schemes, the data is formed into packets, and the network stack is descended from one level to the next until it is transmitted over the network interface. The term "network communication packet" shall refer to any data packet used in a network protocol stack, regardless of the actual format. As the original data passes through the driver layer, it is packetized and formatted one after another. For example, the TCP layer encapsulates data in TCP packet units. Each of them may also be fragmented into multiple IP packets by the IP layer.

【0005】 典型的に、各ドライバは、あるプロトコルまたはその他の制約によって指定し
た特定の機能を有する。例えば、1つのドライバはインターネット・プロトコル
(IP)のようなネットワーク・プロトコルを管理することができ、別のドライ
バは実際のネットワーク・インターフェース・カードを管理することができる。
このような様式化(modality)によって、コードを書き換えることなく、種々の
異なるユーザ・コンフィギュレーションを形成することが可能となる。例えば、
ネットワーク・プロトコルは、いずれの特定の物理的送信システムからも関連を
解除(disassociate)することができる。言い換えると、ネットワーク・スタッ
ク内で相互接続したドライバを用いることによって、特定の物理的コンフィギュ
レーションにしたがって、同じネットワーク・プロトコル・ドライバを種々の物
理インターフェース・ドライバと共に用いることも可能である。
Typically, each driver has a specific function specified by a protocol or other constraint. For example, one driver can manage a network protocol, such as Internet Protocol (IP), and another driver can manage the actual network interface card.
Such a modality allows a variety of different user configurations to be created without rewriting the code. For example,
Network protocols can disassociate from any particular physical transmission system. In other words, by using interconnected drivers in the network stack, it is also possible to use the same network protocol driver with various physical interface drivers according to the specific physical configuration.

【0006】 あるコンピュータから別のコンピュータにイーメール・メッセージを送るため
には、情報のテキストを、何らかのパケット・ヘッダ情報と共に、より高いレベ
ルのプロトコル・パケットに配し、アプリケーションからネットワーク・スタッ
クに引き渡す。ネットワーク・スタックの各エレメントは、追加のヘッダ情報を
付加し、パケット自体の情報に基づいて、またはより高いレベルのドライバが以
前に作成したヘッダ情報のいずれかに基づいて、処理の判断を行うことができる
。更に、ネットワーク・スタックのあるレベルにおけるパケットは、ネットワー
ク・スタックの別のレベルにおける多数のパケットに分解または構成し直すこと
ができる。最終的に、全てのデータは、ネットワーク・インターフェースを通じ
た送信に適したパケットにパケット化されることになる。
To send an e-mail message from one computer to another, the text of the information, along with some packet header information, is placed in higher level protocol packets and passed from the application to the network stack. . Each element of the network stack adds additional header information and makes processing decisions based on information in the packet itself or based on either previously created header information by a higher level driver. Can be. Further, packets at one level of the network stack can be broken down or reassembled into multiple packets at another level of the network stack. Eventually, all data will be packetized into packets suitable for transmission over the network interface.

【0007】 イーメール・メッセージの送信は、通常の郵便によって手紙を送ることと同様
と見なすことができる。メッセージ自体の本体は、いずれの場合もユーザが作成
する。通常の郵便で手紙を送る処理工程は多数あり、その後に郵便サービスの保
護に置かれる(通信ネットワークを通じたパケットの送信と同様である)。封筒
を調達し、封筒に住所を書き、ポストに手紙を投函する前に、切手を貼らなけれ
ばならない。各中間工程は、コンピュータ間のネットワーク通信による配信のた
めに、個々のドライバがイーメール・メッセージを処理することによって作成す
るヘッダ情報(住所記入、封筒等)として考えることができる。
Sending an e-mail message can be thought of as sending a letter by regular mail. The body of the message itself is created by the user in each case. There are a number of processing steps to send a letter by regular mail, followed by protection of the postal service (similar to sending a packet over a communication network). You have to get the envelope, write the address on the envelope, and stamp it before posting the letter to the post. Each intermediate step can be thought of as header information (address entry, envelope, etc.) that individual drivers create by processing email messages for distribution by network communication between computers.

【0008】 受信端では、パケットをネットワーク・スタックまで受け渡す。ネットワーク
・スタックの各エレメントは、ヘッダ情報の一部を除去し、パケット自体または
下位レベルのドライバが除去していないヘッダ情報のいずれかに基づいて、処理
判断を行うことができる。更に、ネットワーク・スタックのあるレベルにおける
多数のパケットを、ネットワーク・スタックの別のレベルにおけるパケット集合
体に組み合わせることも可能である。
At the receiving end, the packet is passed to the network stack. Each element of the network stack removes some of the header information and can make processing decisions based either on the packet itself or on header information not removed by lower level drivers. In addition, multiple packets at one level of the network stack can be combined into packet aggregations at another level of the network stack.

【0009】 図1は、ネットワーク・スタックの一例を示し、アプリケーション・プログラ
ム20が最上位にあり、ネットワーク・インターフェース・カード22に到達す
るまで、各連続レベルに多数のドライバがある。即ち、ドライバA24、ドライ
バB26、ドライバC28、およびドライバD30がある。各ドライバは、パケ
ットに関連する処理を実行し、次いでパケットを次のドライバに受け渡す。
FIG. 1 shows an example of a network stack, with an application program 20 at the top and a number of drivers at each successive level until reaching the network interface card 22. That is, there are a driver A24, a driver B26, a driver C28, and a driver D30. Each driver performs processing associated with the packet, and then passes the packet to the next driver.

【0010】 パケットは、ヘッダ内に含まれているパケットに関する情報、パケット自体の
データ部分内にある情報に基づいて、所与のドライバにおけるある処理のために
「分類」される。その分類に基づいて、パケットはドライバによって異なる処理
を施され、図1に示すように、パケット分類を行い、パケット内の情報に基づい
て判断を行う必要があるドライバは、パケット・クラシファイア(packet class
ifier)と呼ばれる、特殊なドライバ・コード部分を有する。図1において、ド ライバA24は、パケット・クラシファイア32を用い、ドライバC28はパケ
ット・クラシファイア34を用い、ドライバD30はパケット・クラシファイア
36を用いる。前述のように、元のデータのパケット化は、異なるドライバ毎に
異なるフォーマットを有する可能性がある。ドライバB26は、パケット分類が
不要となるようなパケット処理を行うことを注記しておく。
A packet is “classified” for some processing at a given driver based on information about the packet included in the header, information in the data portion of the packet itself. Based on the classification, the packet is subjected to different processing by the driver. As shown in FIG. 1, the driver that needs to perform packet classification and make a decision based on the information in the packet is a packet classifier (packet class).
ifier). In FIG. 1, a driver A 24 uses a packet classifier 32, a driver C 28 uses a packet classifier 34, and a driver D 30 uses a packet classifier 36. As mentioned above, the packetization of the original data may have different formats for different drivers. It is noted that the driver B26 performs packet processing so that packet classification is not required.

【0011】 各ドライバは、当該ドライバの目的に応じて、異なる種類の分類を行う。異な
る分類の状況(scenario)をより良く理解できるように、これより多数の異なる
種類のネットワーク通信パケットの分類を示す。最も単純な形態の分類は、パケ
ットのある値を特定の値と比較することから成る。以下の表1に、特定の値との
照合に基づく分類を示す。
Each driver classifies different types according to the purpose of the driver. To better understand the different classification scenarios, a classification of a number of different types of network communication packets is shown. The simplest form of classification consists of comparing one value of a packet to a particular value. Table 1 below shows classifications based on matching with specific values.

【0012】[0012]

【表1】 [Table 1]

【0013】 表1は、表に掲示した宛先アドレスの1つとパケットが正確に一致することに
基づく、6つの可能な異なるパケットの分類を示す。例えば、あるパケットは、
その宛先アドレスが「11.22.33.44」である場合にのみ、分類0に属
するとして分類する。同様に、分類すべき個々のパケットに対する宛先アドレス
・フィールドの正確な一致が、他の5つの分類の各々に必要である。
Table 1 shows six possible different packet classifications based on the exact match of a packet with one of the destination addresses listed in the table. For example, one packet is
Only when the destination address is “11.22.33.44” is classified as belonging to classification 0. Similarly, an exact match of the destination address field for each packet to be classified is required for each of the other five classifications.

【0014】 多少複雑化する別の形態の分類として、分類対象のパケットからの2つ以上の
フィールドを特定の基準値と比較し、分類を達成するには全てが一致しなければ
ならないというものがある。これを以下の図2の例に示す。
Another form of classification that is somewhat complicated is that two or more fields from the packet being classified are compared to a particular reference value and all must match to achieve the classification. is there. This is shown in the example of FIG. 2 below.

【0015】[0015]

【表2】 [Table 2]

【0016】 表2は、宛先アドレスおよび宛先ポートに値を有する、6つの異なるマルチ・
フィールド分類を示す。例えば、あるパケットは、その宛先アドレスが「11.
22.33.44」であり、その宛先ポートが「1」である場合にのみ、分類0
に属するものとして分類する。同様に、表2に示す他の分類にしたがってあるパ
ケットを分類するには、正確に一致するネットワーク・パケット内で見出される
宛先アドレス・フィールドおよび宛先ポート・フィールド双方が、他の5つの分
類の各々に対して正確に対応するエントリと一致しなければならない。
[0016] Table 2 shows six different multi-ports with values for destination address and destination port.
Indicates the field classification. For example, a packet has a destination address “11.
22.33.44 "and classification 0 only when the destination port is" 1 ".
Classify as belonging to Similarly, to classify a packet according to the other classifications shown in Table 2, both the destination address field and the destination port field found in the exact matching network packet must match each of the other five classifications. Must exactly match the corresponding entry.

【0017】 以下の表3は、更に複雑な分類形態を示すために、ワイルドカード(「x」で
表わす)を基準指定に導入したものである。ワイルドカードを有する表の中の値
には、2つ以上の値が該当することができる。
Table 3 below introduces wildcards (represented by “x”) in the criteria specification to show more complex classification forms. More than one value can correspond to a value in a table with a wildcard.

【0018】[0018]

【表3】 [Table 3]

【0019】 表3に示す6つの分類の内、ワイルドカード値を有するものは、分類対象のパ
ケットからの2つ以上の値、または値の集合と一致することができる。言い換え
ると、異なるパケット内で見出された異なる値でも、同じ分類を受ける可能性が
ある。一方、分類0および1は、ワイルドカードを含んでおらず、したがって正
確な基準指定であり、表2において見出されるものと丁度同じように、分類する
ためには、完全な一致(identical match)が必要となる。しかしながら、分類 2には、「11.22.55.66」の宛先アドレス値を有する全てのパケット
が、当該パケット内にファイルされていている宛先ポートの値には無関係に該当
する。同様に、分類3には、宛先アドレスが「11.22.77」で始まり、「
1」の宛先ポート・フィールド値を有するネットワーク・パケット全てが該当す
る。
Of the six classifications shown in Table 3, those with wildcard values can match more than one value or set of values from the packet to be classified. In other words, different values found in different packets can receive the same classification. On the other hand, classifications 0 and 1 do not contain wildcards and are therefore exact criteria designations, just like those found in Table 2 in order to classify an exact match Required. However, all packets having a destination address value of "11.22.55.66" fall under Category 2 regardless of the value of the destination port filed in the packet. Similarly, in the category 3, the destination address starts with “11.2.7.77” and “
All network packets having a destination port field value of "1" are relevant.

【0020】 本質的に、ワイルドカードは、特定の分類集合の省略表現であり、特定の分類
グループに関連する処理の全てが同一であるという状況において、有利に用いる
ことができる。このようなワイルドカードを含む分類、またはその他の方法で異
なる値でも一致を得ることを可能にする分類は、概略分類(general classifica
tion)と呼ぶことができる。
In essence, a wildcard is an abbreviation for a particular taxonomy set, and can be advantageously used in situations where all of the processing associated with a particular taxonomy group is the same. Classifications that include such wildcards, or that otherwise allow different values to be matched, are classified as general classifica
tion).

【0021】 概略分類は、多数の異なる値をカバーするので、分類が重複する潜在的な可能
性が存在する。言い換えると、所与のネットワーク・パケットが、2つ以上の分
類に正当に分類される可能性がある。このような重複分類は、次の2つの異なる
場合において発生する。(1)1つの分類の各値およびあらゆる値が、他の上位
の概略分類に含まれる、包摂(subsuming)または階層的重複、および(2)1 つの分類が他の分類と、全てではないが、いくつかの値を共有する、部分的重複
。包摂重複では、より具体的な分類と一致するパケットは、定義によって、より
具体的な分類に該当させ、一方部分的重複では、所与のパケットは、関係するパ
ケット・フィールドの実際の値に応じて、双方の分類に組み入れる場合も、組み
入れない場合もあり得る。
Since the general classification covers many different values, there is the potential for overlapping classifications. In other words, a given network packet can be properly classified into more than one classification. Such overlapping classification occurs in the following two different cases. (1) subsuming or hierarchical duplication, where each value and every value of one class is included in other higher-level classes, and (2) one class is not all, but not all, of the other classes Partial overlap, sharing some values. In inclusive overlap, packets that match a more specific classification fall by definition into more specific classifications, while in partial overlap, a given packet depends on the actual value of the relevant packet field. Therefore, it may or may not be included in both categories.

【0022】 一般に、分類は、単一の最良の分類カテゴリが戻されることを要求するので、
規則やその他の評価基準を導入して、重複状態が生じた場合に、単一の分類を返
すようにしなければならない。1つのパケットが多数の分類に該当する場合、最
も具体的なものが最良の一致として見なされるという場合が多い。したがって、
包摂重複の場合、最も具体的な分類が通常は用いられる。
In general, classification requires that a single best classification category be returned,
Rules and other criteria must be introduced to return a single classification in the event of a duplicate condition. If one packet falls into many classes, the most specific one is often considered the best match. Therefore,
In the case of subsumption overlap, the most specific classification is usually used.

【0023】 部分的重複では、勝ち残り分類(winning classification)は、他の評価基準
に基づいて選択しなければならない。何故なら、どの分類にしても他の分類より
も具体的ではないからである。評価基準の一例は、部分的重複状態を有する各分
類に関連する、明示的で別個の優先度属性である。このような評価基準は、重複
する分類間で調停を行い、各場合に最良の一致が得られるようにするために用い
ることができる。
In partial overlap, the winning classification must be selected based on other criteria. This is because no classification is more specific than other classifications. One example of a criterion is an explicit and distinct priority attribute associated with each classification having a partial overlap state. Such evaluation criteria can be used to arbitrate between overlapping classifications and to get the best match in each case.

【0024】 以下の表4に、包摂重複分類および部分的重複分類の例を示す。Table 4 below shows examples of subsumed and partially duplicated classifications.

【0025】[0025]

【表4】 [Table 4]

【0026】 表4は、6つの分類を指定し、一部は概略的、一部は具体的である。宛先ポー
ト・アドレス「11.22.33.44」および宛先ポート「1」を有するパケ
ットは、分類0および分類1に該当する。分類0および分類1は包摂重複分類で
あるので、一般規則にしたがって、最良の一致は最も具体的な分類とするので、
この場合は分類0となる。
Table 4 specifies six classifications, some are schematic and some are specific. A packet having a destination port address “11.22.33.44” and a destination port “1” falls into Class 0 and Class 1. Class 0 and Class 1 are subsumed overlapping classes, so according to the general rules, the best match is the most specific one, so
In this case, the classification is 0.

【0027】 宛先アドレス「11.22.55.66」および宛先ポート「2」を有するパ
ケットは、分類4および分類5双方に該当する。これは、部分的重複状況である
。何故なら、分類4および分類5はいずれも他よりも具体的ではなく、最良の一
致を求めるためには、重複分類に関連付けた優先度情報を頼りとする。分類4は
分類5よりも優先度が低いことが示されているので、最良の一致は分類5となる
A packet having a destination address “11.22.55.66” and a destination port “2” falls under both Class 4 and Class 5. This is a partially overlapping situation. Classes 4 and 5 are both less specific than others and rely on priority information associated with duplicate classes to find the best match. Class 4 is shown to have a lower priority than Class 5, so the best match would be Class 5.

【0028】 分類のプロセスを簡略化するために、この明細書全体を通じてある用語を用い
ることにする。「パターン」とは、ある順序で一緒に連結された全分類評価基準
である。例えば、基準パターンは、各分類毎に表4に見出される宛先アドレスお
よび宛先ポートの連結である。言い換えると、表4は、6つの基準パターンを含
み、ネットワーク通信パケット内のフィールドの実際の値によって作成する対応
の分類パターンとこれらを照合することができる。この場合も、分類パターンは
、パケットから取り込んだ実際の値を規定の順序で並べることによって作成し、
多数の基準パターンと比較して、一致が得られた場合には、特定の分類に到達す
ることができるようにする。
In order to simplify the process of classification, certain terms will be used throughout this specification. "Patterns" are all classification criteria that are linked together in some order. For example, the reference pattern is a concatenation of the destination address and destination port found in Table 4 for each classification. In other words, Table 4 contains six reference patterns, which can be matched with the corresponding classification patterns created by the actual values of the fields in the network communication packet. Again, the classification pattern is created by arranging the actual values captured from the packet in a prescribed order,
When a match is obtained as compared with a large number of reference patterns, a specific classification can be reached.

【0029】 一般に、パケット・クラシファイアは、各ドライバにおいて、ドライバ・コー
ドの開発の一部として独立して開発する。パケット分類は多くの点で全てのドラ
イバに類似しているので、これは、ドライバのコード開発における手間の重複お
よび複雑化を意味する。この非効率性は、パケット分類コードの開発に要する余
分な時間、ならびに余分なコードのデバッグおよび保守に要する追加時間という
形態で露呈する。
Generally, the packet classifier is developed independently in each driver as part of the development of the driver code. This implies duplication and complexity in the driver's code development, as packet classification is similar in all respects to all drivers. This inefficiency manifests itself in the form of extra time required to develop the packet classification code, and additional time required to debug and maintain the extra code.

【0030】 別の問題として、実行中に各ドライバが同一パケットに対して繰り返し分類を
行わなければならないことがあげられる。各ドライバは、各パケットがプロトコ
ル・タスクを上にまたは下に向かって通過する毎に、各パケットに同じ分類を実
行する可能性があるので、冗長な処理が同じように行われる。
Another problem is that during execution each driver must repeatedly classify the same packet. Each driver may perform the same classification on each packet as it passes up or down the protocol task, so redundant processing is done in the same way.

【0031】 必要なのは、全てのドライバまたはその他のクライアントによるアクセスが可
能であり、特定のドライバの具体的な目的に応じて個々のドライバが使用可能な
、集中パケット・クラシファイアである。パケット・クラシファイアを汎用化し
かつ集中化すれば、パケット分類を必要とするドライバのためのコード開発を削
減し、更に、パケット・クラシファイアを集中化すれば、ドライバ作成者が直ち
に使用することができるという追加の特徴も得ることができる。
What is needed is a centralized packet classifier that is accessible by all drivers or other clients, and that can be used by individual drivers for the specific purpose of a particular driver. Generalizing and centralizing packet classifiers reduces code development for drivers that require packet classification, and centralizing packet classifiers can be used immediately by driver writers. Additional features can also be obtained.

【0032】 集中パケット・クラシファイアが、ドライバ作成者に有効に受け入れられるよ
うになるには、解決しなければならない2つの主要な問題がある。第1に、汎用
化かつ集中化したパケット・クラシファイアの実際の分類は、ドライバが適当な
時間評価基準内でその目的を遂行できるように、適度な処理能力がなければなら
ない。多くのドライバが用いる集中パケット・クラシファイアは、単一のドライ
バのために個別化したクラシファイアよりも大きなデータベースに、潜在的に可
能な分類または基準パターンを有する場合が多く、基準パターン・データベース
が大型化する程、分類の効率に影響を与える可能性がある。
There are two major issues that must be resolved before a centralized packet classifier can be effectively accepted by driver writers. First, the actual classification of a generalized and centralized packet classifier must have a reasonable amount of processing power so that the driver can perform its purpose within reasonable time criteria. Centralized packet classifiers used by many drivers often have potentially possible classifications or reference patterns in a larger database than individualized classifiers for a single driver, resulting in a larger reference pattern database Can affect the efficiency of the classification.

【0033】 汎用化かつ集中化したパケット・クラシファイアに伴う他の問題は、特定のド
ライバに固有の必要性を満たせる柔軟性に欠ける虞れがあるということである。
個別化したパケット・クラシファイアを、ドライバ開発の一部として作成する場
合、ドライバ作成者は、所望の目的に対する最適な性能および適用可能性(appl
icability)を求めて、ドライバ・コードをカスタム化し調整するであろう。集 中パケット・クラシファイアは、分類サービスに対する全てのドライバまたはク
ライアントに完全無欠なインターフェースを提供するには、全てのドライバにと
って十分に柔軟ではない可能性がある。
Another problem with generalized and centralized packet classifiers is that they may not be flexible enough to meet the specific needs of a particular driver.
When creating a personalized packet classifier as part of driver development, the driver writer must provide optimal performance and applicability (appl
icability), and will customize and adjust the driver code. The centralized packet classifier may not be flexible enough for all drivers to provide a complete interface to all drivers or clients to the classification service.

【0034】 必要なのは、必要性や目的が異なるクライアントに十分な柔軟性を与えるよう
にドライバやその他のクライアントに分類サービスを提供し、機能単位で効果を
あげられる、汎用化かつ集中化したパケット・クラシファイアである。更に、こ
のような集中パケット・クラシファイアは、必然的に適当な性能特性を有さねば
ならず、更に多くの場合個別化したパケット・クラシファイアによって達成可能
な分類と、性能において比肩し得るようでなければならない。 (発明の概要) 本発明の追加の利点は、以下に続く説明において明記し、部分的にその記載か
ら自明であり、本発明の実施によって習得することができよう。本発明の利点は
、添付した請求の範囲に特定して指摘した手段および組み合わせによって実現し
、獲得することができる。
What is needed is a versatile and centralized packet traversal that provides drivers and other clients with classification services to provide sufficient flexibility to clients with different needs and objectives, and is effective on a functional basis. Classifier. In addition, such centralized packet classifiers must necessarily have adequate performance characteristics, and should be comparable in performance to the classifications that can often be achieved with individualized packet classifiers. Must. SUMMARY OF THE INVENTION Additional advantages of the invention will be set forth in the description that follows, and will be in part obvious from the description, and may be learned by practice of the invention. The advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims.

【0035】 ここに具体化し広義に記載する本発明によれば、ネットワーク・スタックにお
いて処理するネットワーク通信パケットを分類する方法およびコンピュータ・プ
ログラム生産物を提供する。
According to the invention, embodied herein and broadly described, there is provided a method and computer program product for classifying network communication packets for processing in a network stack.

【0036】 本発明は、パケット化したネットワーク・データの処理中に、ネットワーク・
スタック内の連続する階層化ドライバにまたがって処理が行われる際に、パケッ
トを分類する方法を対象としている。集合的に分類パターンとして知られている
、パケット内の所定の値に基づいて、異なる種類の処理に対してパケットを「分
類」する。
The present invention provides a method for processing network data during processing of packetized network data.
It is intended for a method of classifying packets when processing is performed across successive layered drivers in a stack. Packets are "classified" for different types of processing based on predetermined values in the packets, collectively known as a classification pattern.

【0037】 本発明は、多数のドライバまたはその他のクライアントに対応し、各ドライバ
毎のパケット分類コード開発を簡略化する、汎用化かつ集中化したパケット分類
サービス即ちパケット・クラシファイアである。パケットを処理するために用い
ることができる対応の分類情報と共に1つ以上の基準パターンを登録した後、い
ずれのドライバも、格納してある基準パターンと照合可能な分類パターンを提示
し、一致が得られた場合、対応する分類情報を受け取りアクセスすることができ
る。集中パケット・クラシファイアを有することは、ドライバ開発時間、デバッ
グ時間、および汎用コードの保守の削減に相当する。更に、どのような機構(fe
ature)を新たにパケット・クラシファイアに追加しても、全てのドライバまた はその他のクライアントがサービスに使用することができる。
The present invention is a generalized and centralized packet classification service or packet classifier that accommodates multiple drivers or other clients and simplifies packet classification code development for each driver. After registering one or more reference patterns along with the corresponding classification information that can be used to process the packet, any driver presents a classification pattern that can be matched against the stored reference pattern, and a match is obtained. If received, the corresponding classification information can be received and accessed. Having a centralized packet classifier represents a reduction in driver development time, debug time, and general code maintenance. Furthermore, what mechanism (fe
) can be used by any driver or other client for service.

【0038】 本発明は、集中化かつ汎用化したパケット分類に伴う処理能力上の限界を克服
するものであり、そのために基準パターンを異なる2種類のデータベースに分離
し、基準パターンを分類ファミリに集合化した。分類ファミリとは、1組のパケ
ット分類情報を共有するドライバまたはその他のクライアントのグループのこと
である。
The present invention overcomes the processing limitations associated with centralized and generalized packet classification, for which the reference patterns are separated into two different databases and the reference patterns are grouped into classification families. Has become A classification family is a group of drivers or other clients that share a set of packet classification information.

【0039】 2つ以上の分類パターンと一致可能な概略基準パターンを概略パターン・デー
タベースに格納する。その探索時間は、格納されているデータの量および種類に
よって変動する可能性がある。探索時間を短縮するためには、各分類ファミリ毎
に、概略パターン・データベースを設ける。
A rough reference pattern that can match two or more classification patterns is stored in a rough pattern database. The search time may vary depending on the amount and type of data stored. In order to reduce the search time, a rough pattern database is provided for each classification family.

【0040】 全ての分類ファミリの絶対基準パターン(specific reference pattern)を、
ハッシュ・テーブルのような絶対パターン・データベースに格納する。このデー
タベースは、その中に収容されている絶対基準パターンの数には無関係に、探索
時間は一定である。分類要求に応ずる場合、集中パケット・クラシファイアは、
最初に絶対パターン・データベースを探索し、その後に、分類ファミリの概略パ
ターン・データベースを探索する。この構成は、処理能力上、カスタム化した分
類コードと同等であるという利点がある。
The specific reference pattern for all classification families is
Store in an absolute pattern database such as a hash table. This database has a constant search time regardless of the number of absolute reference patterns contained therein. In response to a classification request, the centralized packet classifier
The absolute pattern database is searched first, followed by the general pattern database of the classification family. This configuration has the advantage that the processing capacity is equivalent to a customized classification code.

【0041】 本発明のこれらおよびその他の特徴は、以下の説明および添付した請求の範囲
から一層完全に明確化し、以下に明記する本発明の実施によって学習することが
できよう。
These and other features of the present invention will become more fully apparent from the following description and appended claims, and may be learned by the practice of the invention as set forth hereinafter.

【0042】 本発明の先に引用した利点およびその他の利点が得られるように、添付図面に
示す具体的な実施形態を参照しながら、先に端的に記載した本発明の更に特定的
な説明を行う。これらの図面は本発明の典型的な実施形態のみを示すものであり
、したがってその範囲を限定すると見なすべきでないことを理解の上で、添付図
面を用いて、更に具体的かつ詳細に本発明について記載し説明する。 (好適な実施形態の詳細な説明) ここで用いる場合、「ソフトウエア・コンポーネント」という用語は、コンピ
ュータ・システムを管理するオペレーティング・システムに個別に認識可能な、
実行可能命令のあらゆる集合を意味するものとする。その例には、別個のプロセ
スまたはスレッド、アプリケーション・プログラム、システム・デバイス・ドラ
イバ、およびその他のこういったあらゆるオペレーティング・システムのエンテ
ィティが含まれる。
To obtain the above-cited and other advantages of the present invention, a more particular description of the invention briefly described above will be rendered with reference to specific embodiments illustrated in the accompanying drawings. Do. BRIEF DESCRIPTION OF THE DRAWINGS These drawings show only exemplary embodiments of the invention and, therefore, are not to be taken as limiting the scope thereof, but rather specific and detailed descriptions of the invention with reference to the accompanying drawings. Describe and explain. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS As used herein, the term "software component" is individually recognizable to the operating system that manages the computer system.
Shall mean any set of executable instructions. Examples include separate processes or threads, application programs, system device drivers, and any other such operating system entities.

【0043】 ここで用いる場合、「ドライバ」という用語は、特権システム環境において走
り、オペレーティング・システム・アーキテクチャの一部としてI/Oサブシス
テムと双方向処理を行う、ソフトウエア・ドライバ・プログラムを意味するもの
とする。このようなドライバは、アプリケーション・プログラムおよびその他の
ソフトウエアとは区別可能である。
As used herein, the term “driver” refers to a software driver program that runs in a privileged system environment and interacts with the I / O subsystem as part of the operating system architecture. It shall be. Such drivers are distinguishable from application programs and other software.

【0044】 ここで用いる場合、「クライアント」という用語は、ここに開示する本発明の
集中パケット・クラシファイアを用いることができる、あらゆるコード部分を意
味するものとする。ドライバのような単一のソフトウエア・コンポーネントでも
多数の分類を必要とする場合もあるので、集中パケット・クラシファイアから見
た場合、多数のクライアントとして見なすことができる。言い換えると、集中パ
ケット・クラシファイアは、必ずしも分類要求の発行元を区別するのではない。
これは、単に、ネットワーク通信パケットを分類する手段に過ぎない。
As used herein, the term “client” is intended to mean any piece of code that can use the inventive centralized packet classifier disclosed herein. A single software component, such as a driver, may require multiple classifications, and thus can be viewed as multiple clients from the perspective of a centralized packet classifier. In other words, the centralized packet classifier does not necessarily distinguish the source of the classification request.
This is merely a means of classifying network communication packets.

【0045】 ここで用いる場合、「パターン」という用語は、所定の順序で互いに連結され
、ビット集合または系列と見なされる、パケットまたはパケット・ヘッダ内にあ
るフィールドの特定値または汎用値を意味するものとする。
As used herein, the term “pattern” refers to a specific or generic value of a field in a packet or packet header that is concatenated together in a predetermined order and is considered a bit set or sequence. And

【0046】 「基準パターン」とは、特定のドライバまたはソフトウエア・コンポーネント
によって使用可能であり、集中パケット・クラシファイアによってデータベース
内に保持されている、所定の分類情報を関連付けるパターンのことである。「絶
対基準パターン(specific reference pattern)」とは、その中の各値およびあ
らゆる値に対して具体的な値を有する基準パターンのことである。「概略基準パ
ターン(general reference pattern)」とは、異なるパターンが概略基準パタ ーンに一致し得るようないずれかの値を有することができるワイルドカードが1
つ以上内部に含まれている基準パターンのことである。このように、概略基準パ
ターンは、絶対基準パターンのグループまたは集合を指定する簡略化方法と見な
すことができる。
A “reference pattern” is a pattern that can be used by a particular driver or software component and that associates certain classification information that is maintained in a database by a centralized packet classifier. An “specific reference pattern” is a reference pattern that has a specific value for each value and every value therein. A "general reference pattern" is a wildcard that can have any value such that a different pattern can match the general reference pattern.
One or more reference patterns contained inside. In this way, the rough reference pattern can be regarded as a simplified method for specifying a group or a set of absolute reference patterns.

【0047】 「分類パターン」とは、ドライバまたはその他のクライアントによって、汎用
化パケット・クラシファイアに提示されるパターンであり、分類対象のパケット
の実際の値から作られる。分類パターンが基準パターン(絶対または概略のいず
れか)と一致した場合、一致した基準パターンに関連する分類情報へのアクセス
がドライバに戻され、ドライバがこれを用いて、その分類にしたがってパケット
を処理することができる。
A “classification pattern” is a pattern presented to a generalized packet classifier by a driver or other client, and is made from the actual values of the packets to be classified. If the classification pattern matches the reference pattern (either absolute or approximate), access to the classification information associated with the matched reference pattern is returned to the driver, which uses it to process packets according to the classification. can do.

【0048】 ここで用いる場合、「分類情報」という用語は、基準パターンに関連するいず
れかの関係情報(relevant information)を意味するものとする。このような分
類情報の例には、分類の単純な数値指示、次の処理を実行するために使用可能な
データ・ブロック、または処理においてドライバに有用なその他のあらゆる情報
が含まれる。
As used herein, the term “classification information” means any relevant information related to the reference pattern. Examples of such classification information include a simple numerical indication of the classification, a block of data that can be used to perform the next operation, or any other information useful to the driver in the operation.

【0049】 ここで用いる場合、「分類ファミリ」という用語は、多数のドライバが共有す
る、論理的に関係のある基準パターンの集合を意味するものとする。これによっ
て、ドライバまたはその他のクライアントの集合が、関係する分類情報のデータ
ベースを共有することが可能になる。ここで用いる場合、各基準パターンには、
分類ファミリが関連付けられており、分類ファミリに基づいて、正確に同じ基準
パターンと共に異なる分類情報を用いることができるようになっている。
As used herein, the term “classification family” shall mean a set of logically related reference patterns shared by many drivers. This allows a collection of drivers or other clients to share a database of related classification information. When used here, each reference pattern includes
Classification families are associated so that different classification information can be used with exactly the same reference pattern based on the classification families.

【0050】 ここで用いる場合、「分類ブロック」という用語は、絶対基準パターンに関連
するデータ・ブロックであり、当該絶対基準パターンのためにインストールされ
た全ての分類ファミリの分類情報にアクセスするために用いることができるもの
を意味するものとする。ここに開示する分類ブロックの一実施態様は、分類ファ
ミリによってインデックス化が可能な、ポインタのリストである。
As used herein, the term “classification block” is a data block associated with an absolute reference pattern, and is used to access the classification information of all the classification families installed for that absolute reference pattern. It shall mean what can be used. One embodiment of the classification block disclosed herein is a list of pointers that can be indexed by classification family.

【0051】 ここで用いる場合、「分類ハンドル」という用語は、所与の絶対基準パターン
と関連する全ての異なる分類情報に対する引用である。言い換えると、特定の分
類ファミリと共に分類ハンドルを用いると、ドライバは、所与の絶対基準パター
ンおよび分類ファミリの分類情報に到達することができる。例えば、分類ハンド
ルの一実施態様は、分類ブロックへのポインタである。分類ハンドルは、絶対基
準パターンが既に得られてわかっている場合、所望の分類情報に到達するために
、分類ハンドルと共に分類ファミリだけ用いればよいというときに有用である。
As used herein, the term “classification handle” is a citation to all different classification information associated with a given absolute reference pattern. In other words, using a classification handle with a particular classification family allows the driver to reach the classification information for a given absolute reference pattern and classification family. For example, one implementation of a classification handle is a pointer to a classification block. The classification handle is useful when the absolute reference pattern has already been obtained and known and only the classification family needs to be used with the classification handle to reach the desired classification information.

【0052】 図2および以下の論述は、本発明を実現可能とするのに適した計算機環境につ
いて、手短な概略的説明を行うことを意図したものである。必ずしも必要ではな
いが、本発明は、パーソナル・コンピュータによって実行するプログラム・モジ
ュールのような、コンピュータ実行可能命令に全般的に関連付けて説明する。一
般的に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コ
ンポーネント、データ構造等を含み、特定のタスクを実行したり、あるいは特定
の抽象的データ型を実現する。更に、本発明は、ハンド・ヘルド機器、マルチプ
ロセッサ・システム、マイクロプロセッサを用いた即ちプログラム可能な民生用
電子機器、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュー
タ等を含む、その他のコンピュータ・システム構成を用いても実施可能であるこ
とを、当業者は認めよう。また、本発明は、通信ネットワークを通じてリンクし
てあるリモート処理機器によってタスクを実行する分散型計算機環境においても
実施可能である。分散型計算機環境では、プログラム・モジュールは、ローカル
およびリモート双方のメモリ記憶装置に配置することも可能である。
FIG. 2 and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the invention may be implemented. Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by a personal computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. Further, the present invention relates to other computer system configurations, including handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics devices, network PCs, minicomputers, mainframe computers, etc. Those skilled in the art will recognize that this can also be performed using The present invention can also be implemented in a distributed computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

【0053】 図2を参照すると、本発明を実現するシステムの一例は、従来のパーソナル・
コンピュータ40の形態とした汎用計算機を含み、演算装置41、システム・メ
モリ42、およびシステム・メモリを含む種々のシステム・コンポーネントを演
算装置41に結合するシステム・バス43を含む。システム・バス43は、メモ
リバスまたはメモリ・コントローラ、周辺バス、および種々のバス・アーキテク
チャのいずれかを用いたローカル・バスを含む数種類のバス構造のいずれであっ
てもよい。システム・メモリは、リード・オンリ・メモリ(ROM)44および
ランダム・アクセス・メモリ(RAM)45を含む。起動中におけるように、パ
ーソナル・コンピュータ40内部のエレメント間で情報を転送する際に役立つ基
本ルーチンを含む基本入出力システム46(BIOS)が、ROM44に格納し
てある。更に、パーソナル・コンピュータ40は、図示しないハード・ディスク
に対して読み出しおよび書き込みを行うハード・ディスク・ドライブ47、リム
ーバブル磁気ディスク49に対して読み出しおよび書き込みを行う磁気ディスク
・ドライブ48、ならびにCD ROMまたはその他の光媒体等のリムーバブル
光ディスク51に対して読み出しおよび書き込みを行う光ディスク・ドライブ5
0を含む。ハード・ディスク・ドライブ47、磁気ディスク・ドライブ48、お
よび光ディスク・ドライブ50は、それぞれ、ハード・ディスク・ドライブ・イ
ンターフェース52、磁気ディスク・ドライブ・インターフェース53、および
光ドライブ・インターフェース54を介してシステム・バス43に接続してある
。ドライブおよびそれらと関連するコンピュータ読取可能媒体は、コンピュータ
読取可能命令、データ構造、プログラム・モジュール、およびパーソナル・コン
ピュータ40のためのその他のデータの不揮発性格納を行う。ここに記載する環
境の一例では、ハード・ディスク、リムーバブル磁気ディスク49およびリムー
バル光ディスク51を採用するが、磁気カセット、フラッシュ・メモリ・カード
、ディジタル・ビデオ・ディスク、ベルヌーイ・カートリッジ、ランダム・アク
セス・メモリ(RAM)、リード・オンリ・メモリ(ROM)等のような、コン
ピュータによるアクセスが可能なデータを格納することができる、その他の種類
のコンピュータ読取可能媒体も、動作環境の一例では使用可能であることは、当
業者には認められよう。
Referring to FIG. 2, one example of a system for implementing the present invention is a conventional personal computer.
It includes a general purpose computer in the form of a computer 40 and includes a computing unit 41, a system memory 42, and a system bus 43 that couples various system components including the system memory to the computing unit 41. System bus 43 may be any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory includes a read only memory (ROM) 44 and a random access memory (RAM) 45. A basic input / output system 46 (BIOS) containing basic routines useful in transferring information between elements within personal computer 40, such as during start-up, is stored in ROM 44. Further, the personal computer 40 includes a hard disk drive 47 that reads and writes a hard disk (not shown), a magnetic disk drive 48 that reads and writes a removable magnetic disk 49, and a CD ROM or Optical disk drive 5 for reading and writing to removable optical disk 51 such as other optical media
Contains 0. The hard disk drive 47, the magnetic disk drive 48, and the optical disk drive 50 are connected to the system via a hard disk drive interface 52, a magnetic disk drive interface 53, and an optical drive interface 54, respectively. It is connected to a bus 43. The drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules, and other data for personal computer 40. One example of the environment described here employs a hard disk, a removable magnetic disk 49 and a removable optical disk 51, but includes a magnetic cassette, a flash memory card, a digital video disk, a Bernoulli cartridge, a random access memory. Other types of computer-readable media capable of storing computer-accessible data, such as (RAM), read-only memory (ROM), etc., may also be used in one example operating environment. It will be appreciated by those skilled in the art.

【0054】 オペレーティング・システム55、1つ以上のアプリケーション・プログラム
56、その他のプログラム・モジュール57、およびプログラム・データ58を
含む、多数のプログラム・モジュールを、ハード・ディスク、磁気ディスク49
、光ディスク51、ROM44またはRAM45に格納することができる。ユー
ザは、キーボード60およびポインティング・デバイス62のような入力デバイ
スを介して、コマンドおよび情報をパーソナル・コンピュータ40に入力するこ
とができる。その他の入力デバイス(図示せず)には、マイクロフォン、ジョイ
スティック、ゲーム・パッド、衛星ディッシュ、スキャナ等が含まれる場合もあ
る。これらおよびその他の入力デバイスは、多くの場合システム・バスに結合し
てあるシリアル・ポート・インターフェース66を介して演算装置41に接続す
るが、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス
(USB)のような他のインターフェースを介して接続することも可能である。
モニタ67またはその他の種類の表示装置も、ビデオ・アダプタ68のようなイ
ンターフェースを介して、システム・バス43に接続してある。モニタに加えて
、パーソナル・コンピュータは典型的に、スピーカおよびプリンタのような、そ
の他の周辺出力装置(図示せず)も含む。
A number of program modules, including an operating system 55, one or more application programs 56, other program modules 57, and program data 58, are stored on a hard disk, magnetic disk 49.
, The optical disk 51, the ROM 44 or the RAM 45. A user can enter commands and information into the personal computer 40 via input devices such as a keyboard 60 and a pointing device 62. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices connect to the computing device 41 via a serial port interface 66, which is often coupled to the system bus, but with a parallel port, game port or universal serial bus ( It is also possible to connect via other interfaces such as USB).
A monitor 67 or other type of display device is also connected to the system bus 43 via an interface, such as a video adapter 68. In addition to the monitor, personal computers typically also include other peripheral output devices (not shown), such as speakers and printers.

【0055】 パーソナル・コンピュータ40は、リモート・コンピュータ69のような、1
つ以上のリモート・コンピュータへの論理接続を用いて、ネットワーク化環境に
おいても動作することができる。リモート・コンピュータ69は、別のパーソナ
ル・コンピュータ、サーバ、ルータ、ネットワークPC、ピア・デバイス、また
はその他の共通ネットワーク・ノードとすることができ、典型的に、パーソナル
・コンピュータ40に関して先に述べたエレメントの多くまたは全てを含むが、
図2にはメモリ記憶装置70のみを示してある。図2に示す論理接続は、ローカ
ル・エリア・ネットワーク(LAN)71およびワイド・エリア・ネットワーク
(WAN)72を含む。このようなネットワーク化環境は、オフィスの企業規模
のコンピュータ・ネットワーク、イントラネットおよびインターネットでは一般
的である。
The personal computer 40 has one, such as a remote computer 69,
It can also operate in a networked environment with logical connections to one or more remote computers. Remote computer 69 may be another personal computer, server, router, network PC, peer device, or other common network node, and typically includes the elements described above with respect to personal computer 40. Including many or all of
FIG. 2 shows only the memory storage device 70. The logical connections shown in FIG. 2 include a local area network (LAN) 71 and a wide area network (WAN) 72. Such networking environments are commonplace in office enterprise-wide computer networks, intranets and the Internet.

【0056】 LANネットワーク化環境において用いる場合、パーソナル・コンピュータ4
0はネットワークまたはアダプタ73を経由してローカル・ネットワーク71に
接続する。WANネットワーク化環境において用いる場合、パーソナル・コンピ
ュータ40は典型的にモデム74、またはインターネットのような広域ネットワ
ーク72を通じて通信を確立するその他の手段を含む。モデム74は、内蔵型で
も外付けでもよく、シリアル・ポート・インターフェース66を介してシステム
・バス43に接続してある。ネットワーク化環境では、パーソナル・コンピュー
タ40に関して図示したプログラム・モジュール、またはその部分をリモート・
メモリ記憶装置に格納することも可能である。このネットワーク接続は一例であ
り、コンピュータ間に通信リンクを確立するその他の手段も使用可能であること
は認められよう。
When used in a LAN network environment, the personal computer 4
0 connects to the local network 71 via the network or the adapter 73. When used in a WAN networking environment, personal computer 40 typically includes a modem 74 or other means for establishing communication over a wide area network 72, such as the Internet. The modem 74 may be internal or external, and is connected to the system bus 43 via a serial port interface 66. In a networked environment, program modules depicted relative to the personal computer 40, or portions thereof, may be stored remotely.
It is also possible to store it in a memory storage device. It will be appreciated that this network connection is one example and that other means of establishing a communication link between the computers can be used.

【0057】 これより図3を参照し、集中パケット・クラシファイア80とネットワーク・
スタックにおける種々のドライバとの間の双方向処理を例示する、図1と同様の
論理図を示す。集中パケット・クラシファイア80は、ネットワーク・スタック
のドライバが処理するネットワーク通信パケットを分類する手段として用いる。
この場合も、アプリケーション・プログラム82がネットワーク・インターフェ
ース・カード84を介してネットワークを通じてデータを送ろうとしており、連
続的に処理される複数のスタック化ドライバを通じて情報を受け渡す。情報は、
最初にアプリケーション82からドライバA86に移り、次いでドライバB88
へ、次いでドライバC90へ、そして最終的にドライバ92に移り、その後ネッ
トワーク・インターフェース・カード84の制御の下で、通信ネットワークを通
じて送出する。
Referring now to FIG. 3, the centralized packet classifier 80 and the network
FIG. 2 shows a logic diagram similar to FIG. 1, illustrating bi-directional processing with various drivers in a stack. The centralized packet classifier 80 is used as a means for classifying network communication packets processed by the drivers of the network stack.
Again, the application program 82 is about to send data over the network via the network interface card 84 and passes information through a plurality of stacked drivers that are processed sequentially. Information is
First, the application 82 shifts to the driver A 86, and then the driver B 88
To the driver C90, and finally to the driver 92, and then out through the communication network under the control of the network interface card 84.

【0058】 処理の間ネットワーク通信パケットに対して分類サービスを必要とする各ドラ
イバは、集中パケット・クラシファイア80を用いて分類を行うことができる。
図3に示すように、ドライバA86は、矢印94で示すように、集中パケット・
クラシファイアを用いる。同様に、ドライバC90およびドライバD92も、集
中パケット・クラシファイア80を用いる。ドライバB88は、内部パケット分
類を行う場合もあるが、集中パケット・クラシファイアを用いないことを注記し
ておく。
Each driver that requires a classification service for network communication packets during processing can perform classification using a centralized packet classifier 80.
As shown in FIG. 3, the driver A 86
Use a classifier. Similarly, driver C90 and driver D92 also use centralized packet classifier 80. Note that driver B88 may perform internal packet classification, but does not use a centralized packet classifier.

【0059】 潜在的に大型化し得る基準データベースが分類プロセスの効率を低下させてし
まうことを防止するために、本発明の集中パケット・クラシファイアでは、2つ
の主要な技法を採用する。第1に、パターンが絶対基準パターンかあるいは概略
基準パターンかに応じて、パターンを異なるデータベースに振り分ける。全ての
分類ファミリに単一の絶対基準パターン・データベース(「絶対データベース」
)があり、各分類ファミリに1つの概略基準パターン・データベース(「概略デ
ータベース」)がある。各分類ファミリに別個の概略データベースを有すること
により、提示された分類パターンとの一致を求めて概略基準パターンを探索する
際に、1つの分類ファミリのデータベース・サイズが、他の分類ファミリの分類
に影響を及ぼすことがなくなる。第2に、絶対パターン・データベース内にある
全ての絶対基準パターンは、一定時間の内に探索可能なデータ構造に格納してあ
るので、データベースのサイズは、実際の探索時間とは無関係となる。パターン
をデータベースに格納することを、本発明のデータベース即ちシステムにインス
トールするとも言うことにする。
In order to prevent a potentially large reference database from reducing the efficiency of the classification process, the centralized packet classifier of the present invention employs two main techniques. First, patterns are distributed to different databases depending on whether the pattern is an absolute reference pattern or a rough reference pattern. A single absolute reference pattern database ("absolute database") for all taxonomic families
), And there is one rough reference pattern database for each classification family (the “short database”). By having a separate summary database for each classification family, the database size of one classification family is reduced by the classification of other classification families when searching for a rough reference pattern for a match with the proposed classification pattern. It has no effect. Second, the size of the database is independent of the actual search time because all the absolute reference patterns in the absolute pattern database are stored in a searchable data structure within a certain period of time. Storing patterns in a database is also referred to as installing in the database or system of the present invention.

【0060】 インストールした各概略基準パターンからは、個々の概略パターンに関連する
分類ファミリおよび概略データベースにしたがって、適切な分類情報に対する1
つのポインタがある。インストールした各絶対基準パターンからは、適切な分類
情報に対する多数のポインタがあり、各ポインタは、絶対データベースにインス
トールしてある一致パターンを有する各分類ファミリに対応する。
From each installed schematic reference pattern, one for the appropriate classification information according to the classification family and summary database associated with the individual schematic pattern.
There are two pointers. From each installed absolute reference pattern, there are a number of pointers to the appropriate classification information, with each pointer corresponding to each classification family with a matching pattern installed in the absolute database.

【0061】 これより図4を参照し、本発明によるパケット・クラシファイアにおいて用い
る、2つの分類ファミリを有する分類システム例の論理図を示す。以下の表5は
、図4に示す分類システムに含まれる情報を示す。
Referring now to FIG. 4, there is shown a logic diagram of an example classification system having two classification families for use in a packet classifier according to the present invention. Table 5 below shows the information included in the classification system shown in FIG.

【0062】[0062]

【表5】 [Table 5]

【0063】 ここで図4を参照すると、分類ファミリ1の概略パターン・データベース即ち
概略データベース96は、分類ファミリ1の分類ファミリ情報98を指し示すエ
ントリを有し、分類ファミリ0の概略データベース100は分類ファミリ0の分
類ファミリ情報102を指し示し、絶対パターン・データベース即ち絶対データ
ベース104は、分類ファミリ1の分類ファミリ情報98および分類ファミリ0
の分類情報102双方を指し示すエントリを有する。
Referring now to FIG. 4, the summary pattern database or summary database 96 for classification family 1 has an entry pointing to classification family information 98 for classification family 1 and the summary database 100 for classification family 0 includes classification family 100. 0, and the absolute pattern database or absolute database 104 contains the classification family information 98 of classification family 1 and the classification family 0.
Has an entry indicating both of the classification information 102.

【0064】 ここで絶対データベース104を参照し、一例として絶対基準パターン「10
1100」のエントリ106について詳細に調べる。実際の絶対基準パターン以
外に、エントリ106は、矢印110で表わすように、分類ブロック108を指
し示し、その中に基準カウント・フィールド112を含んでいる。基準カウント
・フィールド112は、明示的にその中にインストールされている、このエント
リに対する絶対基準パターン(例えば、このエントリについては「101100
」)を有する分類ファミリの数を示す。
Here, the absolute database 104 is referred to, and as an example, the absolute reference pattern “10
The entry 106 of “1100” is examined in detail. In addition to the actual absolute reference pattern, entry 106 points to classification block 108, as indicated by arrow 110, and includes a reference count field 112 therein. The reference count field 112 includes an absolute reference pattern for this entry, explicitly installed therein (eg, “101100 for this entry”).
)) Indicates the number of classification families.

【0065】 絶対パターンは、クライアントがインストールする際、またはクライアントの
探索の結果として自動的にインストールされる際に、分類ファミリに明示的にイ
ンストールされる。これらの手順双方については以下で説明する。絶対パターン
は、概略パターンのインストールの結果得られる性能向上として、分類ブロック
を更新する際、明示的にインストールされる。このプロセスについても後に示す
。明示的インストールは、基準カウント・フィールドを増分させない。
The absolute pattern is explicitly installed in the classification family when the client installs or automatically installs as a result of a client search. Both of these procedures are described below. The absolute pattern is explicitly installed when updating the classification block as a performance improvement resulting from the installation of the general pattern. This process will be described later. Explicit installation does not increment the reference count field.

【0066】 一例のエントリ106では、特定の絶対基準パターンが2つインストールされ
ており、分類ファミリ0の明示的インストールおよび分類ファミリ1の暗示的イ
ンストールがある。したがって、その基準カウント・フィールド112は1の値
を有する。分類ブロック108は、分類ファミリに応じて、特定の分類情報に対
するポインタを含む。例えば、ポインタ114は分類情報0a 116を指し示
し、一方ポインタ118は分類情報1d 120を指し示す。パターン「010
100」のエントリ112は、分類ブロック124において唯一のポインタ、お
よび1の基準カウント・フィールド126を有することを注記しておく。特定の
絶対基準パターンが特定の分類ファミリのためにインストールされてない場合、
分類ブロックはそのポインタに対して値を含まない。エントリの基準カウントは
、特定の絶対基準パターンの明示的にインストールされたインスタンスの数のみ
を示す(即ち、クライアントのインストールによって関連付けられた分類情報ま
たはクライアントの探索の結果としての自動的にインストールされた分類情報を
有するもの)。明示的インストールは、存在する可能性はあるが、基準カウント
には反映されない。
In the example entry 106, two specific absolute reference patterns have been installed, an explicit installation of classification family 0 and an implicit installation of classification family 1. Therefore, its reference count field 112 has a value of one. The classification block 108 includes a pointer to specific classification information depending on the classification family. For example, pointer 114 points to classification information 0a 116, while pointer 118 points to classification information 1d 120. Pattern "010
Note that the entry "100" has a unique pointer in the classification block 124 and a reference count field 126 of one. If a specific absolute reference pattern is not installed for a specific classification family,
The classification block contains no value for that pointer. The entry's reference count indicates only the number of explicitly installed instances of a particular absolute reference pattern (i.e., the classification information associated with the client installation or automatically installed as a result of the client's search). With classification information). Explicit installs may be present but are not reflected in the reference count.

【0067】 一定探索時間を有するために、絶対データベースの構造は注意深く選択しなけ
ればならない。本発明は、この目的のためにハッシュ・テーブル(hash table)
、即ち、1997年8月12日に出願したImproved Hash Table Expansion and
Contraction for Use with Internal Searching(内部探索と共に用いるために 改良したハッシュ・テーブルの拡張および縮小)と題する米国特許出願番号第0
8/0911,105号に開示したような、漸増可変サイズハッシュ・テーブル
(incrementally sizable hash table)を含む。尚、この特許出願の内容は、こ
の言及により本願にも含まれるものとする。
In order to have a fixed search time, the structure of the absolute database must be carefully selected. The present invention provides a hash table for this purpose.
That is, the Improved Hash Table Expansion and filed on Aug. 12, 1997.
US patent application Ser. No. 0, entitled Contraction for Use with Internal Searching.
No. 08 / 0911,105, including an incrementally sizable hash table. The contents of this patent application are incorporated herein by this reference.

【0068】 ハッシュ・テーブルに格納することに加えて、各絶対基準パターンは、当技術
分野では一般に公知の構造である、パトリシア・ツリー(Patricia tree)にも 格納する。パトリシア・ツリーは、絶対パターン・データベースを素早く探索し
、所与の概略基準パターンと一致する全ての絶対基準パターンを求めることがで
きる。これは、基準パターンのインストールおよび除去に関連して実行する必要
のあるユーティリティ動作であり、以下で更に詳しく説明する。
In addition to storing in a hash table, each absolute reference pattern is also stored in a Patricia tree, a structure commonly known in the art. The Patricia tree can quickly search the absolute pattern database and find all absolute reference patterns that match a given rough reference pattern. This is a utility operation that needs to be performed in connection with the installation and removal of the reference pattern, and will be described in more detail below.

【0069】 汎用基準パターンはワイルドカードを含み、したがって絶対基準パターンのよ
うに単純な値ではないので、これらは従来の一定探索時間データ構造には格納す
ることができない。概略基準パターンの格納に対処し、重複パターンの包摂に対
応するデータ構造の1つ(即ち、一致は、階層的に関連付けられ包摂する重複パ
ターンの内最も具体的なものに求める)に、A Technique for Efficiently Clas
sifying Packets Using a Trie-Indexed Hierarchy Forest that Accommodates
Wildcards(ワイルドカードに対応する三重インデックス化階層フォーレストを 用いてパケットを効率的に分類する技法)と題する米国特許出願第08/933
,476号に記載されている、Rhizome(リゾーム)データ構造がある。
その内容は、この言及により本願にも含まれるものとする。
Since the universal reference patterns contain wildcards and thus are not as simple values as the absolute reference patterns, they cannot be stored in the conventional constant search time data structure. One of the data structures corresponding to the storage of the rough reference pattern and corresponding to the inclusion of the overlapping pattern (i.e., the match is determined to be the most specific among the hierarchically related and subsuming overlapping patterns) is the A Technique for Efficiently Clas
sifying Packets Using a Trie-Indexed Hierarchy Forest that Accommodates
U.S. patent application Ser. No. 08/933, entitled Wildcards, a technique for efficiently classifying packets using triple indexed hierarchical forests corresponding to wildcards.
, 476, there is a Rhizome data structure.
The contents thereof are incorporated herein by this reference.

【0070】 部分的に重複する概略基準パターンに対して、探索中に実際の最良一致パター
ンを判定するためには、優先度情報が必要となる。これは、各優先度レベル毎に
1つRhizomeデータ構造のアレイを用い、最も高い優先度レベルでRhi
zomeにおいて探索を行い、次いで、一致が見つかるまでまたはアレイ内で全
ての優先度レベルのRhizomeが尽きるまで、連続する各優先度レベルにお
いてRhizomeの探索を行うことによって実現する。包摂重複概略基準パタ
ーンの場合に最も具体的な概略基準パターンを返し、または部分的重複概略パタ
ーンの場合の探索に対して優先度が高い方の概略基準パターンを返すという結果
が得られる、実際の概略基準パターン・データベースを実現するためには、その
他の方法や手段も使用可能であることを当業者は認めよう。
In order to determine an actual best matching pattern during a search for a partially overlapping general reference pattern, priority information is required. This uses an array of Rhisome data structures, one for each priority level, with Rhizo at the highest priority level.
This is achieved by performing a search in the zoom, and then performing a search in each successive priority level until a match is found or until all the priority levels in the array are exhausted. Returns the most specific approximate reference pattern in the case of subsumed overlapping approximate reference patterns, or returns the higher-priority approximate reference pattern for the search in the case of partially overlapping approximate patterns. One skilled in the art will recognize that other methods and means may be used to implement the general reference pattern database.

【0071】 図示のエントリ128は、「101XXX」の値を有する実際の基準パターン
130、分類情報1c 134を示すポインタ132、およびゼロの値を有する
優先度フィールド136を含むことを注記しておく。分類ファミリが非階層的ま
たは部分的に重複する概略パターンを有することが予期されない場合、本発明の
実施形態では、部分的に重複する概略基準パターンを区別するために優先度情報
は不要となることを当業者は認めよう。
It is noted that the illustrated entry 128 includes an actual reference pattern 130 having a value of “101XXX”, a pointer 132 indicating the classification information 1 c 134, and a priority field 136 having a value of zero. If the classification families are not expected to have non-hierarchical or partially overlapping schematic patterns, embodiments of the present invention may not require priority information to distinguish partially overlapping rough reference patterns. The skilled artisan will appreciate.

【0072】 図4においてここで示した絶対データベースおよび概略データベースに分割し
た基準パターン・システムにおいて探索を行うためには、絶対データベース上で
探索を行い、次いで一致が得られるまで、特定の分類ファミリの概略データベー
スにおいて探索を行う。このプロセスは、以下で図9との関連で更に詳しく説明
する。
To perform a search in the reference pattern system split here into an absolute database and a schematic database as shown in FIG. 4, a search is performed on the absolute database and then until a match is obtained for a particular classification family. Perform a search in the summary database. This process is described in more detail below in connection with FIG.

【0073】 ドライバまたはその他のクライアントが基準パターンをインストールする場合
、集中パケット・クラシファイアは最初に、当該基準パターン内部にワイルドカ
ードがあるか否かチェックすることによって、その基準パターンが絶対かまたは
概略かについて判定を行う。基準パターンがワイルドカードを含まない場合、こ
れは絶対であるので、図5に示すフロー・チャートの処理ステップを実行する。
一方、ワイルドカードを含む基準パターンについては、これらは概略であるので
、図7に示すフロー・チャートの処理ステップを実行する。
When a driver or other client installs a reference pattern, the centralized packet classifier first checks whether the reference pattern is absolute or schematic by checking for wildcards within the reference pattern. Is determined. If the reference pattern does not include a wildcard, this is absolute and the processing steps of the flow chart shown in FIG. 5 are executed.
On the other hand, as for the reference pattern including the wild card, since these are rough, the processing steps of the flowchart shown in FIG. 7 are executed.

【0074】 これより図5を参照し、絶対基準パターンを絶対データベースにインストール
する処理ステップを示す。インストールのために基準パターンを提示した場合、
ドライバまたはその他のクライアントはこの基準パターン、関連する分類情報、
分類ファミリ、および概略基準パターンの場合優先度情報を提示する。ステップ
136において開始した後、ステップ138において、絶対データベースを探索
し、ドライバまたはその他のクライアントから集中パケット・クラシファイアに
与えられた新たな絶対基準パターンを求める。前述のように、この探索は、一定
時間の内に比較的素早く行うことができる。何故なら、絶対データベースは、ハ
ッシュ・テーブルまたはその他の一定探索時間構造を用いているからである。
Referring now to FIG. 5, the process steps for installing an absolute reference pattern in an absolute database are shown. If you provide a reference pattern for installation,
The driver or other client may use this reference pattern, related classification information,
The classification family and priority information in the case of the general reference pattern are presented. After starting in step 136, in step 138 the absolute database is searched for a new absolute reference pattern provided by the driver or other client to the centralized packet classifier. As described above, this search can be performed relatively quickly within a certain period of time. This is because absolute databases use hash tables or other constant search time structures.

【0075】 ステップ140において、絶対データベースが既にそのエントリの1つに新た
な絶対基準パターンを含んでいるか否かについて判定を行う。含んでいる場合、
ステップ142において、分類ブロックにアクセスし、その中にある新たな絶対
基準パターンの分類ファミリに関係するポインタを、指定した分類情報を指し示
すようにセットする。加えて、このインストールはクライアントによる明示的な
ものであるので、ステップ142において基準カウント・フィールドの増分も行
う。最後に、処理はステップ144において終了し、パターンがインストールさ
れる。ステップ142を含むこの状況は、別の分類ファミリに対して既にインス
トールされている絶対基準パターンでも起こるので、絶対データベースのエント
リ構造は既に作成され適所にあり、インストールを実行するためには、ステップ
142において説明したように、変更するだけでよいことを注記しておく。
At step 140, a determination is made as to whether the absolute database already contains a new absolute reference pattern in one of its entries. If so,
In step 142, the classification block is accessed and the pointer associated with the new absolute reference pattern classification family therein is set to point to the specified classification information. In addition, since the installation is explicit by the client, step 142 also increments the reference count field. Finally, the process ends at step 144 and the pattern is installed. This situation involving step 142 also occurs with an absolute reference pattern already installed for another classification family, so that the absolute database entry structure is already created and in place, and to perform the installation, step 142 Note that only the changes need to be made, as described in.

【0076】 ステップ140において、絶対データベースが新たなパターンを含んでいない
と判定した場合、ステップ146においてデータ・エントリを作成し、新たな絶
対パターンのために初期化しなければならない。このプロセスは、絶対データベ
ース内に新たな絶対パターンをインストールし、分類ブロックを作成し、クライ
アントが提示した分類ファミリによって示されるポインタを、指定された分類情
報を指し示すようにセットする。更に、これがクライアントによる明示的インス
トールであるので、このエントリのために基準カウントを1にセットする。
If it is determined in step 140 that the absolute database does not contain the new pattern, a data entry must be created and initialized in step 146 for the new absolute pattern. This process installs a new absolute pattern in the absolute database, creates a classification block, and sets a pointer pointed to by the client-supplied classification family to point to the specified classification information. In addition, since this is an explicit installation by the client, set the reference count to 1 for this entry.

【0077】 こうして新たな絶対パターンが1つの分類ファミリに存在し、クライアントの
分類ファミリ以外の分類ファミリの概略データベース全てを探索し、この新たな
絶対基準パターンと一致する概略基準パターンを求める。一致が得られた場合、
絶対データベース探索の間に他の分類ファミリとの一致も見つかるように、絶対
データベースを設定することにより、効率を高め、分類時間を短縮する。ステッ
プ148において、これら概略データベースの最初のものを探索し、新たな絶対
パターンに対する最良の一致を求める。
In this way, a new absolute pattern exists in one classification family, and the entire outline database of the classification families other than the classification family of the client is searched to find an outline reference pattern that matches the new absolute reference pattern. If a match is found,
Setting up the absolute database so that matches with other classification families are found during the absolute database search increases efficiency and reduces classification time. At step 148, the first of these summary databases is searched for the best match for the new absolute pattern.

【0078】 ステップ150において、特定の概略データベースが新たなパターンを含むか
否かについて判定を行う。含む場合、ステップ152において、分類ブロックを
調節し、概略データベース探索から発見した、指定の分類情報に対する参照(re
ference)を含ませる。このプロセスは、概略データベースの分類ファミリが指 示する分類ブロックにおけるポインタを、対応する分類情報を指し示すようにセ
ットする。新たな絶対基準パターンに関係する絶対データベース・エントリの基
準カウントを増分しないことを注記しておく。何故なら、これは、明示的に絶対
パターンをインストールする分類ファミリ以外の分類ファミリに対して新たにイ
ンストールしたパターンの概略データベースの一致に基づく性能向上による暗示
的なインストールであるからである。
At step 150, a determination is made as to whether the particular summary database includes a new pattern. If so, in step 152, the classification block is adjusted to reference (re) the specified classification information found from the summary database search.
ference). This process sets the pointer in the classification block pointed to by the classification family in the summary database to point to the corresponding classification information. Note that the reference count of the absolute database entry associated with the new absolute reference pattern is not incremented. This is because this is an implicit installation due to performance enhancement based on the match of the newly installed pattern's summary database for classification families other than those that explicitly install absolute patterns.

【0079】 概略データベースが新たな絶対基準パターンを含まない場合、ステップ154
において、関係する全ての概略データベースを探索し終えたか否かについて判定
を行う。探索し終えた場合、ステップ144において処理を終了し、それ以外の
場合、ステップ156において新たな絶対パターンに対する最良の一致を求めて
、次の概略データベースの探索を行う。このように、新たな絶対基準パターンの
分類ファミリの概略データベース以外の全概略データベースを探索し、新たにイ
ンストールした絶対基準に対する最良の一致を求める。一致が得られる毎に、絶
対データベースは当該分類ファミリのために新たな基準パターンをインストール
し、対応する概略データベースの探索から、分類情報を自動的に得る。
If the summary database does not include the new absolute reference pattern, step 154
In, it is determined whether or not all the relevant summary databases have been searched. If the search has been completed, the process ends in step 144; otherwise, in step 156, the next general database is searched for the best match with the new absolute pattern. In this way, all the summary databases other than the summary database of the classification family of the new absolute reference pattern are searched, and the best match with the newly installed absolute reference is obtained. Each time a match is obtained, the absolute database installs a new reference pattern for the classification family and automatically obtains classification information from a search of the corresponding summary database.

【0080】 絶対基準パターンをどのようにインストールするのかを例示するために、図4
に示す論理図に2つのパターンを追加する。即ち、絶対基準パターン「0101
00」を分類ファミリ1に追加し、絶対基準パターン「011100」を分類フ
ァミリ1に追加する。図6は、2つの絶対基準パターンを追加した後の図4の論
理図を示す。
FIG. 4 illustrates how to install the absolute reference pattern.
Two patterns are added to the logic diagram shown in FIG. That is, the absolute reference pattern “0101”
00 ”is added to the classification family 1, and the absolute reference pattern“ 011100 ”is added to the classification family 1. FIG. 6 shows the logic diagram of FIG. 4 after adding two absolute reference patterns.

【0081】 分類情報1a 158が関連付けられている絶対基準パターン「010100
」を分類ファミリ1に追加するには、図5のフロー・チャートの処理ステップを
実行し、ステップ140において、図4に見られるように、絶対データベースが
既に新たな絶対基準パターンのエントリ122を含むことを判定する。したがっ
て、処理はステップ142に進み、分類ブロック内のポインタをヌルから分類情
報1a 158を示すように変更する。これは明示的なクライアントのインスト
ールであるので、図6に見られるように、エントリ122の基準カウンタ・フィ
ールド126を1から2に増分する。新たなエントリは作成されず、このような
インストールは、絶対データベース内に新たなエントリの作成を必要とするもの
よりも素早く行われることを注記しておく。
The absolute reference pattern “010100” associated with the classification information 1a 158
To the classification family 1, the processing steps of the flow chart of FIG. 5 are performed, and in step 140 the absolute database already contains the new absolute reference pattern entry 122, as seen in FIG. Is determined. Therefore, the process proceeds to step 142, and the pointer in the classification block is changed from null to indicate the classification information 1a 158. Since this is an explicit client installation, increment the reference counter field 126 of entry 122 from one to two, as seen in FIG. Note that no new entries are created, and such installations occur faster than those that require the creation of new entries in the absolute database.

【0082】 分類情報1a 158が関連付けられている、分類ファミリ1の絶対基準パタ
ーン「011100」をインストールするには、図6に見られるように、新たな
エントリ162を作成する。これを行うのは、図5のフロー・チャートにおいて
実行する処理ステップの間に、ステップ140において新たな絶対基準パターン
が絶対データベースの既存のエントリの中に存在せず、ステップ146を実行す
る必要がある場合である。これらのステップにより、分類ブロックにおいて、分
類情報1a 158を指し示すポインタを有する新たなエントリを作成する。こ
れは明示的なクライアントのインストールであるので、基準カウント・フィール
ド164を最初に1にセットする。
To install the absolute reference pattern “011100” of the classification family 1 with which the classification information 1a 158 is associated, a new entry 162 is created as shown in FIG. To do this, during the processing steps performed in the flow chart of FIG. 5, the new absolute reference pattern does not exist in the existing entry of the absolute database in step 140 and step 146 must be performed. There are cases. With these steps, a new entry having a pointer to the classification information 1a 158 is created in the classification block. Since this is an explicit client installation, the reference count field 164 is initially set to one.

【0083】 アルゴリズムが全ての概略データベースを探索し他の分類ファミリを求めてい
くに連れて、分類ファミリ0の概略データベース100において、絶対基準パタ
ーンの一致が得られる。分類0の概略データベース100を探索すると、エント
リ168によって示される、その中で発見された概略基準パターンは分類情報0
d 166を指し示す。ここで、絶対データベース104の分類ブロックにおい
て、分類ファミリ0に関係するエントリ162に対してポインタを作成し、直前
の探索中に発見した分類情報0d 166を指し示す。その後、分類を行い、分
類ファミリ0に対してこの絶対基準パターンを有する場合、分類ファミリ0の概
略データベース100内における余分な探索に頼ることなく、絶対データベース
104内における探索で十分である。
As the algorithm searches all summary databases for other classification families, a match of the absolute reference pattern is obtained in the summary database 100 for classification family 0. When searching the summary database 100 for category 0, the rough reference pattern found therein, indicated by entry 168, is
d 166. Here, in the classification block of the absolute database 104, a pointer is created for the entry 162 related to the classification family 0, and points to the classification information 0d 166 found during the immediately preceding search. Thereafter, if the classification is performed and this absolute reference pattern is present for classification family 0, a search in absolute database 104 is sufficient without resorting to an extra search in summary database 100 for classification family 0.

【0084】 この時点で、図6は、分類ファミリ1に対して絶対基準パターン「01010
0」、分類ファミリ1に対して絶対基準パターン「011100」が追加された
図4の分類システム例を示す。分類ファミリ1の絶対基準パターン「01110
0」のインストールに付随して、概略基準データベース100において見つけら
れた概略基準パターンに、分類ファミリ0の同じ基準パターンが見つかり、対応
する絶対基準パターンを分類ファミリ0にインストールして、効率の向上を図る
。図11において後に示す絶対基準パターンの削除(de-installation)におい て、絶対基準パターン「011100」も分類ファミリ0に対して自動的に削除
される。
At this point, FIG. 6 shows that the absolute reference pattern “01010”
5 shows an example of the classification system of FIG. 4 in which an absolute reference pattern “011100” is added to the classification family 1. Absolute reference pattern “01110” of classification family 1
Along with the installation of "0", the same reference pattern of classification family 0 is found in the rough reference pattern found in the rough reference database 100, and the corresponding absolute reference pattern is installed in classification family 0 to improve efficiency. Aim. In the deletion (de-installation) of the absolute reference pattern shown later in FIG. 11, the absolute reference pattern “011100” is also automatically deleted from the classification family 0.

【0085】 図7を参照し、集中パケット・クラシファイアが概略基準パターンをインスト
ールするために実行する処理ステップを詳細に説明する。概略基準パターンとは
、先に説明したように、少なくとも1つのワイルドカードを含むものである。概
略基準パターンをインストールするドライバまたはその他のクライアントは、概
略基準パターン、当該概略基準パターンに関連する分類ファミリ、分類情報、お
よび部分的に重複した条件を解決するために用いる優先度を、集中パケット・ク
ラシファイアに提示する。
Referring to FIG. 7, the processing steps performed by the centralized packet classifier to install the general reference pattern will be described in detail. The rough reference pattern includes at least one wild card as described above. The driver or other client that installs the general reference pattern may use the centralized packet / package to specify the general reference pattern, the classification family associated with the general reference pattern, the classification information, and the priority used to resolve the partially duplicated condition. Present to the classifier.

【0086】 ステップ168において開始した後、ステップ170において、特定の分類フ
ァミリに関係する概略データベースに、新たな概略基準パターンをインストール
する。また、指示された分類情報を指し示すポインタをセットする。ステップ1
72において、絶対データベース内を探索し、新たな概略パターンと一致する既
存の絶対基準パターン・エントリを求める。この概略基準パターンと一致する絶
対基準パターンが既に存在する場合、絶対データベースにおいて、インストール
した概略基準パターンに関連する分類情報へのリンクを形成する。これによって
探索効率が向上し、総分類時間が短縮する。概略基準パターンは絶対基準パター
ン集合に拡張することができ、絶対データベースを探索する目的は、インストー
ルする概略基準パターンと一致する絶対基準パターンで、現在インストールされ
ているもの全てを見つけ出すことである。
After starting in step 168, step 170 installs a new general reference pattern in the general database associated with the particular classification family. In addition, a pointer indicating the designated classification information is set. Step 1
At 72, the absolute database is searched for an existing absolute reference pattern entry that matches the new schematic pattern. If an absolute reference pattern that matches this general reference pattern already exists, a link to classification information related to the installed general reference pattern is formed in the absolute database. This improves search efficiency and reduces total classification time. The rough reference pattern can be extended to a set of absolute reference patterns, and the purpose of searching the absolute database is to find all currently installed absolute reference patterns that match the rough reference pattern to be installed.

【0087】 新たにインストールした概略基準パターンと一致し得る、絶対基準パターンが
もはや絶対データベースにはないとステップ174で判定した場合、新たな概略
基準パターンのインストールに対する処理はステップ176において終了する。
それ以外の場合、一致した絶対基準パターンを用いて、システムに定義してある
各分類ファミリ毎にポインタを含む対応の分類ブロックにアクセスする。
If it is determined in step 174 that the absolute reference pattern that can match the newly installed general reference pattern is no longer in the absolute database, the process for installing the new general reference pattern ends in step 176.
Otherwise, the corresponding absolute reference pattern is used to access a corresponding classification block containing a pointer for each classification family defined in the system.

【0088】 ステップ178において、新たにインストールした概略基準パターンの分類フ
ァミリに対する分類ブロックにおけるポインタが、現在いずれかの分類情報を指
し示しているか否かについて判定を行う。ステップ178において判定した分類
ブロック内の対応するポインタがヌル、即ち、関連する分類情報を有さない場合
、ステップ180において、新たにインストールした概略基準パターンに関連す
る分類情報を指し示すように、ポインタをセットする。これによって、概略デー
タベースを実際に探索する前に、絶対データベースの探索によって、分類情報に
一層素早くアクセスすることが可能となるという点で効率的になる。次に、ステ
ップ182において絶対パターン・データベースにおいて発見した概略基準パタ
ーンに対する次の一致を求めて、探索のループを繰り返す。
In step 178, it is determined whether or not the pointer in the classification block for the classification family of the newly installed general reference pattern currently indicates any classification information. If the corresponding pointer in the classification block determined in step 178 is null, ie, has no associated classification information, then in step 180, the pointer is moved to point to the classification information associated with the newly installed general reference pattern. set. This is efficient in that a search of the absolute database allows for quicker access to the classification information before actually searching the summary database. Next, the search loop is repeated for the next match with the rough reference pattern found in the absolute pattern database in step 182.

【0089】 インストールした概略基準パターンの分類ファミリに対応する分類ブロックに
おけるポインタが、既に分類情報を指し示しているか、それ以外の方法で割り当
てられたとステップ178において判定した場合、ステップ184において、分
類情報が明示的に割り当てられたのか、あるいは特定の基準パターンに自動的に
割り当てられたのかについて判定を行う。明示的な割り当てが行われるのは、別
の分類ファミリの絶対基準パターンのインストールまたは概略パターンのインス
トール中に自動的にインストールされたのではなく、絶対基準パターンが絶対デ
ータベースに独立してインストールされた場合である。言い換えると、自動イン
ストールは、別の独立した基準パターンのインストールの副産物である性能向上
として、行うことができる。
If it is determined in step 178 that the pointer in the classification block corresponding to the classification family of the installed general reference pattern has already pointed to the classification information or has been allocated by another method, in step 184 the classification information is A determination is made as to whether the assignment was made explicitly or automatically to a particular reference pattern. The explicit assignment is not automatically installed during the installation of the absolute reference pattern or the summary pattern of another classification family, but rather the absolute reference pattern is installed independently in the absolute database Is the case. In other words, automatic installation can be performed as a performance enhancement that is a by-product of installing another independent reference pattern.

【0090】 分類情報が明示的に割り当てられたことをステップ184において判定した場
合、これ以上のアクションを実行する必要はなく、処理はステップ182におい
て概略基準パターンと一致した絶対データベースにおいて、次の一致を求める探
索に進む。明示的な割り当ては、当然、性能向上のための自動割り当てに優先す
る。
If it is determined in step 184 that the classification information has been explicitly assigned, no further action needs to be performed, and the process proceeds to step 182 in the absolute database that matches the rough reference pattern. Proceed to search for. Explicit assignment naturally takes precedence over automatic assignment to improve performance.

【0091】 分類情報が明示的に割り当てられなかったとステップ184で判定した場合、
特定の分類ファミリに対して概略データベースにおいて最高の一致が見つけられ
たのであれば、それに関連する分類情報を、当該分類ファミリの絶対基準パター
ンに割り当てる。これは、ステップ186において行われ、概略データベースを
探索し、この絶対基準に対する最高の一致を発見する。新たな概略基準パターン
のインストールは、結果的に得られる絶対基準パターンに対する最高の一致を変
化させる場合も、させない場合もあることを注記しておく。言い換えると、より
具体的な重複する概略基準パターンが存在する、または優先度が高い部分的に重
複する概略基準パターンが存在するという事実のため、明示的に割り当てられた
のではない既存の分類情報が既に最高の一致である可能性がある。
If it is determined in step 184 that the classification information has not been explicitly assigned,
If the best match is found in the summary database for a particular classification family, the associated classification information is assigned to the absolute reference pattern for that classification family. This is done in step 186, which searches the summary database for the best match to this absolute criterion. Note that the installation of the new global reference pattern may or may not change the best match to the resulting absolute reference pattern. In other words, existing classification information that was not explicitly assigned due to the fact that there are more specific overlapping rough reference patterns or that there are partially overlapping rough reference patterns with higher priority Could already be the best match.

【0092】 ステップ186において行った探索の結果によって、新たにインストールした
概略基準パターンの分類ファミリに対応する絶対基準パターンの分類ブロックに
おけるポインタは、ステップ188において、探索によって指示された分類情報
を指し示すようにセットされる。
Based on the result of the search performed in step 186, the pointer in the absolute reference pattern classification block corresponding to the newly installed general reference pattern classification family may point to the classification information specified by the search in step 188. Is set to

【0093】 この時点で、ステップ182において、新たな概略基準パターンに一致するパ
ターンに対して、絶対データベースにおいて、処理のために次の照合を行う。こ
こでも、既に説明したように、別の一致する絶対基準パターンを見つけることが
できなかったとステップ174において判定された場合、処理はステップ176
において終了する。
At this point, in step 182, the next matching is performed on the pattern that matches the new rough reference pattern in the absolute database for processing. Here, as described above, if it is determined in step 174 that another matching absolute reference pattern could not be found, the process proceeds to step 176.
Ends at

【0094】 ある実施形態において実現可能な別の性能上の利点として、絶対基準パターン
の対応する集合に、概略基準パターンを自動的に拡張することがあげられる。こ
の絶対基準パターン集合は、概略基準パターンに対するあらゆる照合が一定探索
時間の絶対データベースにおいて行うことができるように、絶対データベースに
インストールすることができる。これは、比較的少ない数のワイルドカードが内
部で見つかった概略基準パターンの場合には実用的であろうが、大きな絶対基準
パターン集合に拡張する概略基準パターンでは余りに非効率的になり過ぎる可能
性がある。前述の自動拡張およびその他の性能を向上させる変更を行うのは、本
発明における分類の効率向上のためであることは当業者にはお分かりであろう。
Another performance advantage achievable in certain embodiments includes automatically extending the approximate reference pattern to a corresponding set of absolute reference patterns. This set of absolute reference patterns can be installed in the absolute database so that any match against the rough reference pattern can be made in the absolute database with a fixed search time. This may be practical for rough reference patterns where a relatively small number of wildcards are found internally, but may be too inefficient for rough reference patterns extending to large sets of absolute reference patterns. There is. Those skilled in the art will appreciate that the aforementioned auto-extension and other performance-enhancing changes are made to improve the efficiency of the classification in the present invention.

【0095】 新たな概略基準パターンのインストールを例示するために、分類情報0c 1
90に関連し、0の優先度を有する分類ファミリ0のパターン「01X100」
のインストール例を示す。一旦インストールが完了すると、図6の分類システム
例の論理図は図8に示すようになる。
To exemplify the installation of a new general reference pattern, the classification information 0c 1
The pattern “01X100” of the classification family 0 having a priority of 0, which is related to 90
Here is an installation example. Once the installation is complete, the logical diagram of the example classification system of FIG. 6 is as shown in FIG.

【0096】 最初に、ステップ170において、新たな概略基準パターンを図8におけるエ
ントリ196としてインストールし、ポインタは分類情報0c 190を指し示
す。処理の一部として、2つの絶対基準パターン、即ち、エントリ162によっ
て表わされるパターン「011100」およびエントリ122によって表わされ
るパターン「010100」を、絶対データベース104において見つける。エ
ントリ122は、分類ファミリ0に対して既に明示的にインストールされており
、分類情報0b 195を指し示すのであり、エントリ162は、図6において
見られるように、暗示的なインストールの結果として、最初に分類情報0d 1
66を指し示すことを注記しておく。これら2つのパターンの各々について、分
類ファミリによって示される分類ブロック内のポインタは、ステップ178(図
7)において判定したように、既に割り当てられている。したがって、ステップ
180の処理は実行しない。
First, in step 170, a new general reference pattern is installed as the entry 196 in FIG. 8, and the pointer points to the classification information 0c 190. As part of the process, two absolute reference patterns are found in the absolute database 104: the pattern “011100” represented by entry 162 and the pattern “010100” represented by entry 122. Entry 122 has already been explicitly installed for classification family 0 and points to classification information 0b 195, and entry 162 initially appears as a result of the implicit installation, as seen in FIG. Classification information 0d 1
Note that it points to 66. For each of these two patterns, the pointer in the classification block indicated by the classification family has already been allocated, as determined in step 178 (FIG. 7). Therefore, the process of step 180 is not executed.

【0097】 ステップ184において分類情報が明示的に割り当てられたか否かについての
判定を参照すると、基準パターン「010100」に対応するエントリ122は
明示的に割り当てられたものであった。したがって、エントリ122は、新たな
概略基準パターンの追加による変化を全く受けることはない。
Referring to the determination as to whether or not the classification information has been explicitly assigned in step 184, the entry 122 corresponding to the reference pattern “010100” has been explicitly assigned. Therefore, the entry 122 is not affected at all by the addition of the new rough reference pattern.

【0098】 しかしながら、エントリ162ではこのようにはならず、これは、既に説明し
た分類ファミリ1の絶対基準パターン「011100」のインストールの一部と
して、分類ファミリ0に自動的に割り当てられたものであった。したがって、続
いて処理ステップ186および188を実行し、この絶対基準パターンに対して
概略基準データベース内で見つけられた最高の一致に対応する分類情報を自動的
に再度割り当てる。
However, this is not the case with entry 162, which was automatically assigned to classification family 0 as part of the installation of the absolute reference pattern “011100” of classification family 1 already described. there were. Accordingly, processing steps 186 and 188 are subsequently performed, and the classification information corresponding to the highest match found in the rough reference database is automatically reassigned to this absolute reference pattern.

【0099】 絶対基準パターン「011100」を用いて分類ファミリ0の概略パターン・
データベース100を探索することにより、エントリ196(図8)によって示
される、新たに追加した概略基準パターンが最高の一致となる。何故なら、これ
は最も具体的な一致であるからである。したがって、分類ファミリ0に対するエ
ントリ162に対応する分類ブロックにおけるポインタは、もはや分類情報0d
166を指し示さず、図8に示すように分類情報0cを指し示すように変更す
る。
Using the absolute reference pattern “011100”, the general pattern of the classification family 0
By searching the database 100, the newly added general reference pattern, indicated by entry 196 (FIG. 8), is the best match. Because this is the most specific match. Therefore, the pointer in the classification block corresponding to entry 162 for classification family 0 no longer has classification information 0d.
166 is changed to indicate the classification information 0c as shown in FIG.

【0100】 これより図9を参照して、ドライバまたはその他のクライアントから受け取っ
た分類パターンを分類するために実行する処理ステップを示すフロー・チャート
について説明する。ドライバまたはその他のクライアントは、分類対象のパケッ
トから値を取り込み、それらを適切な順序で一緒に連結することによって、分類
パターンを作成する。ステップ198において開始した後、ステップ200にお
いて、集中パケット・クラシファイアは、クライアントが作成した分類パターン
即ちクライアント・パターンが、クライアントの分類ファミリと共に受け取る。
Referring now to FIG. 9, a flow chart illustrating the processing steps performed to classify a classification pattern received from a driver or other client will be described. The driver or other client creates a classification pattern by taking the values from the packets to be classified and concatenating them together in the appropriate order. After starting in step 198, in step 200, the centralized packet classifier receives the client-created classification pattern or client pattern along with the client's classification family.

【0101】 最初に、ステップ202において、絶対データベースにおいて探索を行いクラ
イアント分類パターンを求める。クライアント分類パターンに対応するエントリ
が絶対データベース内で見つかった場合、関連する分類ブロックにアクセスする
ことができ、クライアントの分類ファミリを用いて、分類ブロック内の適切なポ
インタにアクセスする。分類ファミリに対応する分類ブロック内のポインタが非
ヌルである場合、ステップ204において分類パターンが見つかったと見なす。
クライアント分類パターンのエントリが存在しないか、またはエントリは存在す
るがポインタがクライアントの分類ファミリに対してヌルである場合、ステップ
204においてパターンは見つからなかったと見なす。
First, in step 202, a search is performed in the absolute database to obtain a client classification pattern. If an entry corresponding to the client classification pattern is found in the absolute database, the associated classification block can be accessed and the appropriate pointer in the classification block is accessed using the client's classification family. If the pointer in the classification block corresponding to the classification family is non-null, it is considered in step 204 that a classification pattern has been found.
If there is no entry for the client classification pattern, or if the entry is present but the pointer is null for the client's classification family, it is considered in step 204 that the pattern was not found.

【0102】 ステップ204においてパターンが見つかった場合、ステップ206において
分類情報に対するポインタ、および分類ブロックのハンドルをクライアントに返
し、その後ステップ208において処理を終了する。適切な分類情報に対するポ
インタは、ドライバまたはその他のクライアントが、現在分類しているパケット
を処理する際に用いることができる。分類ハンドルは、後に別のドライバが、異
なる分類ファミリに属す可能性のある分類を実行しなければならない場合もあり
得る処理を行う際に有用である。言い換えると、ドライバは、分類ハンドルを別
のドライバに渡すことができ、この分類ハンドルを用いることによって、その他
のドライバまたは現ドライバは、絶対データベースも概略データベースも探索す
ることなく、集中パケット・クラシファイアを用いて、より素早くかつ効率的に
分類を実行することができる。分類ハンドルは、情報自体に対するポインタより
も、実際の分類情報に至る信頼性の高い手段である。何故なら、分類情報、した
がってポインタは、基準パターンのインストールおよび削除、または自動的にイ
ンストールした基準パターンの消滅(expiration)のような集中パケット・クラ
シファイアの別の動作の間に変化する可能性があるからである。
If a pattern is found in step 204, a pointer to the classification information and a handle of the classification block are returned to the client in step 206, and then the process ends in step 208. A pointer to the appropriate classification information can be used by the driver or other client when processing a packet that is currently being classified. The classification handle is useful in later processing when another driver may have to perform a classification that may belong to a different classification family. In other words, a driver can pass a classification handle to another driver, which allows other or current drivers to search the centralized packet classifier without searching the absolute or summary database. Can be used to perform the classification more quickly and efficiently. The classification handle is a more reliable means of reaching the actual classification information than a pointer to the information itself. Because the classification information, and thus the pointer, can change during another operation of the centralized packet classifier, such as the installation and removal of a reference pattern, or the expiration of an automatically installed reference pattern. Because.

【0103】 パターンが見つからなかったとステップ204で判定した場合、ステップ21
0において、クライアント分類パターンの分類ファミリに対応する概略データベ
ースを探索し、クライアント分類パターンと一致する既存の概略基準パターンを
見つけ出す。クライアント・パターンとの一致が見つかったとステップ212で
判定した場合、図5において破線216で囲って示すフロー・チャートのステッ
プを用いて、ステップ214においてクライアント・パターンを絶対データベー
スにインストールする。これらのステップの動作については、既に説明した。他
の分類ファミリの他の概略データベースも全て同様に探索し、インストールを最
大限最適化する。
If it is determined in step 204 that no pattern has been found, step 21
At 0, the general database corresponding to the classification family of the client classification pattern is searched to find an existing general reference pattern that matches the client classification pattern. If it is determined in step 212 that a match with the client pattern has been found, then in step 214 the client pattern is installed in the absolute database using the steps of the flow chart enclosed by dashed line 216 in FIG. The operation of these steps has already been described. All other summary databases of the other taxonomic families are similarly searched to maximize installation.

【0104】 次に、この自動的にインストールしたクライアント分類パターンに関連して、
ステップ218においてタイマをセットし、ある時間期間このパターンが絶対基
準パターンとして絶対データベースにインストールしたまま留まらせることがで
きる。タイマが満了したとき、絶対基準パターンを自動的に削除する。一時的イ
ンストールの理由は、多くの場合、所与のクライアント分類パターンは、ネット
ワーク・スタック内の現ドライバおよびその他のドライバによって多数回用いら
れるからである。絶対データベースに既にインストールしてある分類パターンを
他の分類試行において用いることにより、集中パケット・クラシファイアによる
今後の分類試行を一層効率的に行うことが可能となる。
Next, in connection with this automatically installed client classification pattern,
At step 218, a timer can be set to cause this pattern to remain installed in the absolute database as an absolute reference pattern for a period of time. When the timer expires, the absolute reference pattern is automatically deleted. The reason for a temporary installation is that a given client classification pattern is often used many times by the current driver and other drivers in the network stack. By using the classification patterns already installed in the absolute database in other classification trials, future classification trials with a centralized packet classifier can be performed more efficiently.

【0105】 一旦ステップ214においてクライアント・パターンのインストールによって
分類ブロックをセットし、ステップ218においてタイマをセットしたなら、ス
テップ206において分類ハンドルおよび分類情報ポインタをクライアントに返
し、次いでステップ208において処理を終了する。ドライバまたはその他のク
ライアントに関する限り、分類情報ポインタと、絶対データベースまたは概略デ
ータベースのいずれかから検索した分類ブロック・ハンドルとの相違は認められ
ないことを注記しておく。
Once the classification block is set by installing the client pattern in step 214 and the timer is set in step 218, the classification handle and the classification information pointer are returned to the client in step 206, and then the process ends in step 208 . Note that as far as the driver or other client is concerned, there is no discrepancy between the classification information pointer and the classification block handle retrieved from either the absolute or summary database.

【0106】 概略データベースにおいてクライアント分類パターンが見つからないとステッ
プ212において判定した場合、ステップ220において、当該特定の分類ファ
ミリの絶対データベースおよび概略データベースのいずれにも一致するパターン
を見つけることができなかったので、分類ができなかったという指示をクライア
ントに返す。最後に、ステップ208において処理を終了する。
If it is determined in step 212 that the client classification pattern is not found in the summary database, then in step 220, a pattern that matches neither the absolute database nor the summary database for the particular classification family could be found. , Returns an indication to the client that the classification could not be performed. Finally, the process ends in step 208.

【0107】 図8の論理図を始点として開始し、存在しないパターンを探索する例を、図9
の処理ステップを辿りながら示していく。即ち、分類ファミリ1の「10111
1」というクライアント分類パターンを集中パケット・クラシファイアに提示す
る。ステップ202(図9)において絶対データベースを探索した後、パターン
は見つからない。次に、ステップ210において、クライアントの分類ファミリ
に対応する概略データベースの探索を行う。クライアント・パターンは、分類フ
ァミリ0の概略データベース96において、概略パターン「101XXX」と一
致する。ステップ214において、絶対データベースにクライアント・パターン
をインストールする。一方、破線216で囲った図5の処理ステップに続くステ
ップ214におけるインストールの一部として、ステップ148または156(
図5)において実行した探索中の分類ファミリ1の概略パターン・データベース
に対する照合により、分類ファミリ1に対する分類ブロックにおけるポインタが
、対応する分類情報を指し示すようにする。インストールの間対応する概略デー
タベースにおいて分類ファミリ0のクライアント分類パターンは見つからなかっ
たので、新たにインストールした時限絶対データベース・エントリ(timed spec
ific database entry)の分類ブロックは、分類ファミリ0についてはヌルのま まとなる。ステップ214におけるインストールの一部として、検査を行い他の
分類ファミリにおいて概略パターンと照合することを注記しておく。
An example of starting from the logical diagram of FIG. 8 as a starting point and searching for a nonexistent pattern is shown in FIG.
Are shown while following the processing steps of. That is, “10111” of the classification family 1
A client classification pattern of "1" is presented to the centralized packet classifier. After searching the absolute database in step 202 (FIG. 9), no pattern is found. Next, in step 210, a search is performed of a summary database corresponding to the classification family of the client. The client pattern matches the general pattern “101XXX” in the general database 96 of the classification family 0. At step 214, the client pattern is installed in the absolute database. On the other hand, as part of the installation at step 214 following the processing step of FIG.
The collation performed on the schematic pattern database of the classification family 1 being searched performed in FIG. 5) causes the pointer in the classification block for the classification family 1 to point to the corresponding classification information. Since no client classification pattern for classification family 0 was found in the corresponding summary database during installation, the newly installed timed absolute database entry (timed spec
The classification block of the ific database entry) remains null for classification family 0. Note that as part of the installation at step 214, a check is performed and matched against the general pattern in other classification families.

【0108】 次に、ステップ218において前述のエントリに対してタイマをセットし、そ
の後ステップ206において分類ハンドラおよび分類情報に対するポインタをク
ライアントに返す。パターンが絶対データベースまたは概略データベースのどち
らで見つかったかには無関係に、同じ情報をクライアントに返すことを注記して
おく。
Next, at step 218, a timer is set for the aforementioned entry, and then at step 206, a pointer to the classification handler and the classification information is returned to the client. Note that the same information is returned to the client regardless of whether the pattern was found in the absolute or summary database.

【0109】 これより図10を参照し、ドライバまたはその他のクライアントが開始した分
類要求によって絶対基準パターンを追加する場合の、図8と同様の分類システム
の論理図を示す。新たなエントリ222には、タイマ224を関連付けてある。
「101111」のパターン値226以外は、基準カウント値228を最初に1
にセットする。分類ファミリ0の絶対基準パターンは見つからなかったので、基
準ブロック230に対するポインタ232はヌルであり、ポインタ234は分類
情報1c 134を指し示す。
Referring now to FIG. 10, there is shown a logic diagram of a classification system similar to FIG. 8, where an absolute reference pattern is added by a driver or other client initiated classification request. A timer 224 is associated with the new entry 222.
Except for the pattern value 226 of “101111”, the reference count value 228 is initially set to 1
Set to. Since no absolute reference pattern for classification family 0 was found, pointer 232 to reference block 230 is null and pointer 234 points to classification information 1c 134.

【0110】 これより図11を参照し、絶対基準パターンの削除のために集中パケット・ク
ラシファイアが実行する処理ステップを示す。ステップ236で開始した後、ス
テップ238において、特定の絶対基準パターンに対する絶対データベース内の
エントリの参照カウント・フィールドの値を、1だけ減少させる。ステップ24
0において、基準カウント・フィールドの値が0に等しいか否かについて判定を
行い、0に等しい場合、ステップ242において絶対データベースから絶対基準
パターン・エントリを完全に除去し、次いでステップ244において処理を終了
する。本質的に、0の基準カウント・フィールド値は、この絶対パターンはいず
れの分類ファミリについても明示的にインストールされたのではなく、したがっ
て除去すべきことを示す。
Referring now to FIG. 11, the processing steps performed by the centralized packet classifier to delete the absolute reference pattern are shown. After starting at step 236, at step 238, the value of the reference count field of the entry in the absolute database for the particular absolute reference pattern is decremented by one. Step 24
At 0, a determination is made as to whether the value of the reference count field is equal to 0, and if so, the absolute reference pattern entry is completely removed from the absolute database at step 242 and then the process ends at step 244. I do. In essence, a reference count field value of 0 indicates that this absolute pattern was not explicitly installed for any classification family and should therefore be removed.

【0111】 基準カウント・フィールド値が0に等しくないとステップ240で判定した場
合、ステップ246において、削除動作で示された分類ファミリの概略データベ
ース内で探索を行い、絶対基準パターンに対する最高の一致を求める。特定の分
類ファミリに対して絶対基準パターンを削除しても、当該絶対基準パターンとの
一致が概略パターン・データベース内に未だある可能性がある。そのような場合
、関係する分類情報、および分類ブロック内の適切な場所へのポインタを置くこ
とにより、効率化を図る。
If it is determined in step 240 that the reference count field value is not equal to 0, then in step 246 a search is performed in the summary database of the classification family indicated by the delete operation to find the best match for the absolute reference pattern. Ask. Even if an absolute reference pattern is deleted for a particular classification family, a match with the absolute reference pattern may still exist in the general pattern database. In such a case, the efficiency is improved by placing a pointer to an appropriate location in the classification block and the relevant classification information.

【0112】 一致する概略基準パターンがステップ248で見つかった場合、分類ファミリ
が示す分類プロックにおけるポインタを、ステップ246で行った概略データベ
ースの探索の間に見つかった分類情報を指し示すようにセットする。ステップ2
50においてポインタの設定を行い、次いでステップ244で処理を終了する。
If a matching general reference pattern is found at step 248, the pointer in the classification block indicated by the classification family is set to point to the classification information found during the search of the general database performed at step 246. Step 2
The pointer is set at 50, and then the process ends at step 244.

【0113】 一致する概略基準パターンが見つからないとステップ248において判定した
場合、ステップ252において分類ファミリが示す分類ブロックにおけるポイン
タをヌルにセットし、次いでステップ244において終了する。その場合、その
絶対基準パターンおよび分類ファミリに利用可能な分類情報は、本当にないこと
になる。
If it is determined in step 248 that no matching general reference pattern is found, the pointer in the classification block indicated by the classification family is set to null in step 252, and the process ends in step 244. In that case, there would really be no classification information available for that absolute reference pattern and classification family.

【0114】 これより図12を参照し、図11において説明した処理ステップにしたがって
3つの絶対基準パターンを除去した後の、図10に示した構成システムの論理図
を示す。即ち、分類ファミリ0の絶対基準パターン「010100」を除去する
ことにより、対応するポインタが指示する分類情報を変化させ、分類ファミリ0
の絶対基準パターン「101100」を除去することにより、データベースから
このパターンを完全に除去し、更に分類ファミリ0の絶対基準パターン「100
111」を除去し、対応するポインタをヌルにセットする。
Referring now to FIG. 12, there is shown a logic diagram of the configuration system shown in FIG. 10 after removing the three absolute reference patterns according to the processing steps described in FIG. That is, by removing the absolute reference pattern “010100” of the classification family 0, the classification information indicated by the corresponding pointer is changed, and the classification family 0 is deleted.
By completely removing the absolute reference pattern “101100” from the database, the absolute reference pattern “100” of the classification family 0 is completely removed.
111 "is removed and the corresponding pointer is set to null.

【0115】 分類ファミリ0の絶対基準パターン「101100」を除去する場合、図11
のステップ240で判定したように、基準カウントは結局0に等しくなり、図1
0に示すように以前には存在しており消失したエントリを指し示す矢印254で
わかるように、基準パターン・データベース104からこの基準パターン全体を
除去する。分類ファミリ1の絶対基準パターン「101100」の暗示的なイン
ストールも除去することを注記しておく。クライアントによる分類ファミリ1の
絶対基準パターンを分類するあらゆる努力の結果、既に説明したように、タイマ
による自動インストールが行われる。
When removing the absolute reference pattern “101100” of the classification family 0, FIG.
The reference count eventually equals zero, as determined in step 240 of FIG.
The entire reference pattern is removed from the reference pattern database 104, as indicated by the arrow 254 pointing to the previously existing and lost entry, as shown at 0. Note that the implicit installation of the absolute reference pattern “101100” of classification family 1 is also removed. Any effort by the client to classify the absolute reference pattern of Classification Family 1 results in automatic installation by the timer, as described above.

【0116】 分類ファミリ0の絶対基準パターン「100111」の除去即ち削除に関して
、絶対パターン・データベース104におけるエントリ106は、図11のステ
ップ238における絶対パターン基準カウント・フィールド112の減少によっ
て1となった、基準カウント・フィールド112の値を示す。また、ステップ2
48で判定したように、分類ファミリ0の概略パターン・データベースにおいて
一致が見つからなかったため、分類ファミリ0に対応する分類ブロック108の
ポインタ114は、ステップ252(図11)においてヌルにセットされた。分
類ブロック108のポインタ118はなおも分類ファミリ1の分類情報1a 1
19を示すことを注記しておく。
With respect to the removal or deletion of the absolute reference pattern “100111” of classification family 0, the entry 106 in the absolute pattern database 104 became 1 due to the decrease of the absolute pattern reference count field 112 in step 238 of FIG. Shows the value of the reference count field 112. Step 2
As no match was found in the general pattern database for classification family 0, as determined at 48, pointer 114 of classification block 108 corresponding to classification family 0 was set to null in step 252 (FIG. 11). The pointer 118 of the classification block 108 is still the classification information 1a 1 of the classification family 1.
Note that it indicates 19.

【0117】 分類ファミリ0の絶対基準パターン「010100」の削除に関して、図12
のエントリ122を適用する。ステップ238において基準カウント・フィール
ドを減少させ、図11のステップ246において概略データベースの探索を行っ
た後、ステップ248において概略データベースにおいて一致する概略基準パタ
ーンを見つけたならば、ポインタは分類情報0c 190を指し示す。これが行
われるのは、分類ファミリ0の概略パターン・データベース100においてエン
トリ196によって見つけられた概略基準パターン「01X100」との一致が
見つかったからである。言い換えると、分類ファミリ0においてエントリ122
に関連する分類ブロックに対するポインタは、分類情報0b 163から分類情
報0c 190を指し示すように切り替わる。
Regarding the deletion of the absolute reference pattern “010100” of the classification family 0, FIG.
Of the entry 122 is applied. After the reference count field is decremented in step 238 and the rough database is searched in step 246 of FIG. 11, if a matching rough reference pattern is found in the rough database in step 248, the pointer stores the classification information 0c 190. Point. This is done because a match with the rough reference pattern “01X100” found by entry 196 in the rough pattern database 100 for classification family 0 is found. In other words, entry 122 in classification family 0
Is switched from the classification information 0b 163 to the classification information 0c 190.

【0118】 これより図13を参照し、概略データベースから概略基準パターンを除去する
ために実行する処理ステップについて詳細に説明する。ステップ270において
開始した後、概略基準パターンを、それに関連するあらゆる分類情報と共に、概
略データベースから完全に除去する。
Referring now to FIG. 13, the processing steps performed to remove the general reference pattern from the general database will be described in detail. After starting at step 270, the general reference pattern, along with any classification information associated with it, is completely removed from the general database.

【0119】 次に、絶対データベースを探索し、この概略基準パターンに対応する絶対パタ
ーンの集合と一致する全ての絶対基準パターンを求める。ステップ274におい
て、絶対データベースを探索し、概略基準パターンに対する最初の一致を求める
。ステップ276において、もはや一致する絶対基準パターンを見つけることが
できないと判定した場合、処理はステップ278において終了する。それ以外の
場合、フロー・チャートの本体は全ての一致する絶対パターンを見つけ出して処
理するまで継続する。
Next, the absolute database is searched to find all absolute reference patterns that match the set of absolute patterns corresponding to the general reference pattern. In step 274, the absolute database is searched for the first match to the rough reference pattern. If it is determined in step 276 that a matching absolute reference pattern can no longer be found, the process ends in step 278. Otherwise, the body of the flow chart continues until all matching absolute patterns have been found and processed.

【0120】 ステップ276において一致する絶対基準パターンを見つけたと判定した場合
、ステップ280において特定の分類ファミリに対する分類情報が明示的にこの
絶対基準パターンに割り当てられたか否かについて判定を行う。割り当てられた
場合、絶対基準パターンはより具体的に設計されたのであり、何らかの方法で自
動的に割り当てられたのではないので、新たな処理は不要である。したがって、
ステップ282において、絶対データベースを探索し、概略基準パターンに対す
る次の一致を求め、ループを繰り返す。
If it is determined in step 276 that a matching absolute reference pattern has been found, then in step 280 a determination is made as to whether classification information for a particular classification family has been explicitly assigned to this absolute reference pattern. If assigned, the absolute reference pattern was designed more specifically and was not automatically assigned in any way, so no new processing is required. Therefore,
In step 282, the absolute database is searched for the next match to the approximate reference pattern, and the loop is repeated.

【0121】 分類情報が明示的に割り当てられたのではないとステップ280で判定した場
合、ステップ284において概略データベースを探索し、この特定の絶対パター
ンおよび分類ファミリに対する最高の一致を求める。このような探索の結果は、
最高の一致が見つからなかった場合にはヌルを示し、さもなければ最高の一致に
関連する分類情報を示す。ステップ286において、分類ファミリが示すエント
リの分類ブロック・ポインタを、ステップ284において行った探索から得た分
類情報を指し示すようにセットする。本質的に、自動的にインストールした絶対
基準パターンを再インストールし、特定の分類ファミリの汎用データベースから
自動的に最高の一致を得る。場合によっては、分類ブロックにおけるポインタが
変化し、別の場合には変化しない。
If it is determined in step 280 that the classification information has not been explicitly assigned, the summary database is searched in step 284 for the best match for this particular absolute pattern and classification family. The result of such a search is
Indicates null if no best match was found, otherwise indicates classification information associated with the best match. In step 286, the classification block pointer of the entry indicated by the classification family is set to point to the classification information obtained from the search performed in step 284. In essence, it reinstalls the automatically installed absolute reference pattern and automatically gets the best match from a generic database for a particular classification family. In some cases, the pointer in the classification block changes, and in other cases it does not.

【0122】 これより図14を参照し、概略基準パターンを除去した後の、図12の分類シ
ステム例を表わす論理図を示す。即ち、0の優先度を有する分類ファミリ0の概
略基準パターン「01XX00」を、図13のフロー・チャートにおいて説明し
た処理ステップにしたがって除去した。図14では、消失した当該概略基準パタ
ーンのエントリを示す矢印288によって、これを示す。
Referring now to FIG. 14, there is shown a logic diagram representing the exemplary classification system of FIG. 12 after the general reference pattern has been removed. That is, the general reference pattern “01XX00” of the classification family 0 having the priority of 0 is removed according to the processing steps described in the flowchart of FIG. In FIG. 14, this is indicated by an arrow 288 indicating the lost entry of the general reference pattern.

【0123】 図13のステップ274における概略データベースからの概略基準パターンの
除去の後、最後に除去した概略基準パターン(「01XX00」)に対応する絶
対パターン・データベースにおいて、3つの一致する絶対パターンが見つけられ
る。即ち、絶対基準パターン「011100」のエントリ162、絶対基準パタ
ーン「010100」のエントリ122、および基準パターン「011000」
のエントリ292である。エントリ122およびエントリ162に関して、分類
ファミリ1に対するパターンの明示的インストールの結果として、分類情報は暗
示的に割り当てられる。したがって、より良い一致が見つからなかったので、調
節が必要となり、分類ファミリ0の概略データベースを各場合について再度探索
し、ポインタに同じ分類情報を再度割り当てる。
After removal of the rough reference pattern from the rough database in step 274 of FIG. 13, three matching absolute patterns are found in the absolute pattern database corresponding to the last removed rough reference pattern (“01XX00”). Can be That is, the entry 162 of the absolute reference pattern “011100”, the entry 122 of the absolute reference pattern “010100”, and the reference pattern “011000”
292. For entries 122 and 162, classification information is implicitly assigned as a result of an explicit installation of a pattern for classification family 1. Therefore, a better match could not be found, so an adjustment would be needed and the summary database for classification family 0 would be searched again in each case and the same classification information would be reassigned to the pointer.

【0124】 エントリ292に関して、分類情報は、分類ファミリ0の絶対基準パターンに
暗示的に割り当てられた。したがって、このような判定がステップ280におい
て行われた場合、エントリ292の絶対基準パターンを用いて、分類ファミリ0
の概略データベースを再度ステップ284において探索する。この探索の結果は
、絶対基準パターン「011000」と一致する他の概略基準パターンが存在し
ないことを示す。ステップ286において、ポインタ296を有するエントリ2
92に関連する分類ブロック294を調節し、ポインタ296をここでヌルにす
る。このように、自動的に発生した絶対パターン・データベース104の分類情
報への参照は、分類ファミリ0の概略パターン・データベース102の除去によ
って調和する。
For entry 292, the classification information was implicitly assigned to the absolute reference pattern of classification family 0. Therefore, if such a determination is made in step 280, the classification family 0
Is searched again in step 284. The result of this search indicates that there is no other general reference pattern that matches the absolute reference pattern “011000”. In step 286, entry 2 with pointer 296
Adjust the classification block 294 associated with 92 so that the pointer 296 is now null. Thus, the automatically generated reference to the classification information of the absolute pattern database 104 is coordinated by the removal of the general pattern database 102 of the classification family 0.

【0125】 本発明は、その精神または必須の特性から逸脱することなく他の特定形態にお
いても具体化可能である。記載した実施形態は全ての観点において、限定ではな
く例示として見なすものとする。したがって、本発明の範囲は、前述の記載では
なく、添付した請求の範囲によって示すものとする。請求の範囲の均等の意味お
よび範囲に該当する全ての変更は、その範囲に包含されるものとする。
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects as illustrative and not restrictive. Therefore, the scope of the present invention should be indicated by the appended claims rather than by the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 従来技術では一般的である、それぞれのドライバに個々のパケット・クラシフ
ァイアを有するネットワーク通信パケットを処理する相互接続ドライバのネット
ワーク・スタックを示すブロック図である。
FIG. 1 is a block diagram illustrating a network stack of interconnect drivers that process network communication packets, each with an individual packet classifier in each driver, as is common in the prior art.

【図2】 従来のパーソナル・コンピュータの形態で汎用計算機器を含む、本発明を実現
するためのシステム例のブロック図である。
FIG. 2 is a block diagram of an example of a system for realizing the present invention, including a general-purpose computer in the form of a conventional personal computer.

【図3】 本発明に係り図1に示した同じドライバに対応するパケット分類を必要とする
ドライバのために、集中パケット・クラシファイアを用いる相互接続ドライバの
ネットワーク・スタックを示すブロック図である。
FIG. 3 is a block diagram illustrating a network stack of interconnect drivers using a centralized packet classifier for drivers requiring packet classification corresponding to the same drivers shown in FIG. 1 according to the present invention.

【図4】 本発明による集中パケット・クラシファイアのデータベース構成を示す論理図
である。即ち、各絶対基準パターン・エントリが、分類ファミリに応じた適切な
分類情報を示す絶対データベース、ならびに概略基準パターン・エントリおよび
対応する分類情報へのポインタを収容する、分類ファミリ毎の概略データベース
を示す。この例では、2つの分類ファミリがある。
FIG. 4 is a logic diagram showing a database structure of a centralized packet classifier according to the present invention. That is, each absolute reference pattern entry shows an absolute database that indicates appropriate classification information according to the classification family, and a general database for each classification family that contains a general reference pattern entry and a pointer to the corresponding classification information. . In this example, there are two classification families.

【図5】 所与の分類ファミリに対する新たな絶対パターンを、絶対データベースにイン
ストールする処理ステップを示すフロー・チャートである。
FIG. 5 is a flow chart showing the process steps for installing a new absolute pattern for a given classification family into an absolute database.

【図6】 図5のフロー・チャートにおいて説明した処理ステップにしたがって、多数の
新たな絶対基準パターンをシステムにインストールした後の、図4のデータベー
ス編成および例を示す論理図である。
6 is a logic diagram showing the database organization and example of FIG. 4 after installing a number of new absolute reference patterns into the system according to the processing steps described in the flow chart of FIG. 5;

【図7】 概略基準パターンを、特定の分類ファミリに関連する概略データベースにイン
ストールするために必要な処理ステップを示すフロー・チャートである。
FIG. 7 is a flow chart showing the processing steps required to install a general reference pattern into a general database associated with a particular classification family.

【図8】 図7のフロー・チャートにおいて説明した処理ステップにしたがって、新たな
概略基準パターンをインストールした後の、図6のデータベース編成および例を
示す論理図である。
FIG. 8 is a logic diagram showing the database organization and example of FIG. 6 after installing a new general reference pattern according to the processing steps described in the flow chart of FIG. 7;

【図9】 分類パターンを受け取り、それを最初に絶対データベース内の基準パターン、
次いで特定の分類ファミリに対する概略データベース内の基準パターンと比較す
ることによって、パケットを分類するために必要な処理パターンを示すフロー・
チャートである。更に、クライアント分類パターンを絶対データベースに一時的
にインストールし、効率向上を図るステップも示す。
FIG. 9: Receives a classification pattern and first converts it to a reference pattern in the absolute
A flow that indicates the processing pattern required to classify the packet by comparing it to a reference pattern in the summary database for a particular classification family.
It is a chart. Further, a step of temporarily installing the client classification pattern in the absolute database to improve the efficiency is shown.

【図10】 図9のフロー・チャートにおいて説明した処理ステップにしたがって、一時的
にインストールした絶対パターンを追加した後の、図8のデータベース編成およ
び例を示す論理図である。
FIG. 10 is a logic diagram showing the database organization and example of FIG. 8 after adding a temporarily installed absolute pattern according to the processing steps described in the flowchart of FIG. 9;

【図11】 絶対データベースから絶対パターンを除去するために必要な処理ステップを示
すフロー・チャートである。
FIG. 11 is a flow chart showing the processing steps required to remove an absolute pattern from an absolute database.

【図12】 図11のフロー・チャートにおいて説明した処理ステップにしたがって、ある
数の絶対基準パターンを除去した後の、図10のデータベース編成および例を示
す論理図である。
FIG. 12 is a logic diagram showing the database organization and example of FIG. 10 after removing a number of absolute reference patterns according to the processing steps described in the flowchart of FIG. 11;

【図13】 特定の分類ファミリに対する概略データベースから概略基準パターンを除去す
るために必要な処理ステップを示すフロー・チャートである。
FIG. 13 is a flow chart showing the processing steps required to remove a rough reference pattern from a rough database for a particular classification family.

【図14】 図13のフロー・チャートにおいて説明した処理ステップにしたがって、ある
数の概略基準パターンを除去した後の、図12のデータベース編成および例を示
す論理図である。
FIG. 14 is a logic diagram showing the database organization and example of FIG. 12 after removing a number of general reference patterns according to the processing steps described in the flowchart of FIG. 13;

【手続補正書】[Procedure amendment]

【提出日】平成12年4月13日(2000.4.13)[Submission date] April 13, 2000 (2000.4.13)

【手続補正1】[Procedure amendment 1]

【補正対象書類名】図面[Document name to be amended] Drawing

【補正対象項目名】全図[Correction target item name] All figures

【補正方法】変更[Correction method] Change

【補正内容】 [Correction contents]

【手続補正書】[Procedure amendment]

【提出日】平成12年12月7日(2000.12.7)[Submission date] December 7, 2000 (2000.12.7)

【手続補正1】[Procedure amendment 1]

【補正対象書類名】図面[Document name to be amended] Drawing

【補正対象項目名】全図[Correction target item name] All figures

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【図1】 FIG.

【図2】 FIG. 2

【図3】 FIG. 3

【図4】 FIG. 4

【図5】 FIG. 5

【図6】 FIG. 6

【図7】 FIG. 7

【図8】 FIG. 8

【図9】 FIG. 9

【図10】 FIG. 10

【図11】 FIG. 11

【図12】 FIG.

【図13】 FIG. 13

【図14】 FIG. 14

───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,ML,MR, NE,SN,TD,TG),AP(GH,GM,KE,L S,MW,SD,SZ,UG,ZW),EA(AM,AZ ,BY,KG,KZ,MD,RU,TJ,TM),AL ,AM,AT,AU,AZ,BA,BB,BG,BR, BY,CA,CH,CN,CU,CZ,DE,DK,E E,ES,FI,GB,GE,GH,GM,GW,HU ,ID,IL,IS,JP,KE,KG,KP,KR, KZ,LC,LK,LR,LS,LT,LU,LV,M D,MG,MK,MN,MW,MX,NO,NZ,PL ,PT,RO,RU,SD,SE,SG,SI,SK, SL,TJ,TM,TR,TT,UA,UG,UZ,V N,YU,ZW (72)発明者 バーネット,ヨーラム アメリカ合衆国ワシントン州98105,シア トル,ファースト・アベニュー・ノースイ ースト 4515 (72)発明者 バー,オファー アメリカ合衆国ワシントン州98056,ニュ ーキャッスル,ワンハンドレッドトゥエン ティサード・アベニュー・エイイー 8816 Fターム(参考) 5B089 HB19 KA10 KB06 KC31 5K030 GA11 HA08 HB18 HB20 KA07 LD17 【要約の続き】 量に応じて変化する可能性がある。分類要求に対応する 場合、パケット・クラシファイア(80)は、最初に絶 対分類データベースを探索し、次いで、必要であれば、 適切な概略パターン・データベースにおいて探索を行 う。──────────────────────────────────────────────────続 き Continuation of front page (81) Designated country EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LU, MC, NL, PT, SE ), OA (BF, BJ, CF, CG, CI, CM, GA, GN, ML, MR, NE, SN, TD, TG), AP (GH, GM, KE, LS, MW, SD, SZ, UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, CA, CH, CN, CU, CZ, DE, DK, EE, ES, FI, GB, GE, GH, GM, GW, HU, ID, IL, IS, JP, KE, KG, KP, KR , KZ, LC, LK, LR, LS, LT, LU, LV, MD, MG, MK, MN, MW, MX, NO, NZ, PL, PT, RO, RU, SD, SE, SG, SI, SK, SL, TJ, TM, TR, TT, UA, UG, UZ, VN, YU, ZW (72) Inventor Barnett, Yoram 98105, Washington, USA USA, Seattle, First Avenue Northeast 4515 (72) Inventor Bar, offer One Hundred Twenty-Seventh Avenue AEE 8816 F-term (reference) 98056, Newcastle, Washington 98056, USA 5B089 HB19 KA10 KB06 KC31 5K030 GA11 HA08 HB18 HB20 KA07 LD17 there's a possibility that. When responding to a classification request, the packet classifier (80) first searches the absolute classification database, and then, if necessary, in the appropriate summary pattern database.

Claims (25)

【特許請求の範囲】[Claims] 【請求項1】 ネットワーク・スタックにおいて複数のドライバによって処
理したネットワーク通信パケットを分類する方法であって、 共有基準パターン・データベースに、少なくとも1つの基準パターンと対応す
る分類情報を格納するステップであって、該共有基準パターン・データベースが
、多数のドライバが共有する基準パターンと、分類ファミリに論理的に関係付け
た基準パターンの前記分類情報とを含む、ステップと、 前記共有基準パターン・データベースを探索し、ネットワーク通信パケットか
ら作成した分類パターンに一致する基準パターンを求めるステップと、 前記分類パターンが、格納してある基準パターンと一致する場合、該一致した
基準パターンに対応する前記分類情報を用いて、前記ネットワーク通信パケット
を処理するステップと、 から成ることを特徴とする方法。
1. A method for classifying network communication packets processed by a plurality of drivers in a network stack, the method comprising the step of storing classification information corresponding to at least one reference pattern in a shared reference pattern database. Searching for the shared reference pattern database, the shared reference pattern database including a reference pattern shared by a number of drivers, and the classification information of the reference pattern logically related to a classification family. Determining a reference pattern that matches the classification pattern created from the network communication packet; and, if the classification pattern matches a stored reference pattern, using the classification information corresponding to the matched reference pattern. Process the network communication packet And B. a method comprising the steps of:
【請求項2】 請求項1記載の方法において、前記格納してある基準パター
ンが、概略基準パターンまたは絶対基準パターンのいずれかであり、かつ分類フ
ァミリに関係し、前記共有パターン・データベースが、分類ファミリには無関係
に全絶対基準パターンの絶対データベースと、各分類ファミリ毎に、当該分類フ
ァミリに関係する概略基準パターンの概略データベースとを備え、分類パターン
を格納基準パターンと照合する際、最初に前記分類パターンの前記絶対データベ
ースを探索し、続いて、必要であれば、前記分類パターンの分類ファミリに関係
する前記概略データベースを探索することを特徴とする方法。
2. The method of claim 1, wherein the stored reference pattern is either a general reference pattern or an absolute reference pattern, and is associated with a classification family, and wherein the shared pattern database includes a classification pattern. An absolute database of all absolute reference patterns irrespective of the family, and for each classification family, a rough database of rough reference patterns related to the classification family are provided. When comparing a classification pattern with a stored reference pattern, A method comprising searching the absolute database of classification patterns, and then, if necessary, searching the summary database associated with a classification family of the classification patterns.
【請求項3】 請求項2記載の方法において、前記絶対データベースが、分
類ファミリに応じて所与の絶対パターンに対して異なる分類情報への参照を有す
る分類ブロック構造を備え、1つの分類ファミリに対して絶対基準パターンを格
納する前記格納ステップが、更に、 前記格納してある絶対基準パターンと一致する概略基準パターンに対する別の
各分類ファミリを求めて、前記概略データベースを探索するステップと、 各一致毎に、前記分類ブロックにおいて、前記一致した概略基準パターンの前
記分類情報を参照する前記特定の分類ファミリを参照し、他の分類ファミリにお
いて前記絶対基準パターンに一致することを示す今後の分類パターンは、前記概
略データベースに頼ることなく、前記絶対データベース探索において照合するこ
とにより、探索効率を高めるステップと、 から成ることを特徴とする方法。
3. The method of claim 2, wherein the absolute database comprises a classification block structure having references to different classification information for a given absolute pattern depending on the classification family. Storing the absolute reference pattern with respect to the stored general reference pattern, further searching the general database for another classification family for the general reference pattern that matches the stored absolute reference pattern; For each, in the classification block, refer to the specific classification family that refers to the classification information of the matched general reference pattern, and in the other classification families, a future classification pattern that indicates that it matches the absolute reference pattern is , Without relying on the summary database, Accordingly, method characterized by consisting of the steps of increasing the search efficiency.
【請求項4】 請求項2記載の方法において、前記絶対データベースが、分
類ファミリに応じて所与の絶対パターンに対して異なる分類情報への参照を有す
る分類ブロック構造を備え、1つの分類ファミリに対して絶対基準パターンを格
納する前記格納ステップが、更に、 前記インストールした概略基準パターンと一致する既存の各絶対パターンを求
めて、前記概略データベースを探索するステップと、 各一致毎に、前記インストールした新たな概略基準パターンに対応する前記特
定の分類ファミリに対する参照がヌルである場合、前記インストールした概略基
準パターンの前記分類情報を参照する前記特定の分類ファミリに対する分類ブロ
ックを参照し、前記分類ファミリにおいて前記絶対基準パターンに一致すること
を示す今後の分類パターンは、前記概略データベースに頼ることなく、前記絶対
データベース探索において照合することにより、探索効率を高めるステップと、
から成ることを特徴とする方法。
4. The method of claim 2, wherein the absolute database comprises a classification block structure having references to different classification information for a given absolute pattern depending on the classification family. The storage step of storing an absolute reference pattern with respect to each of the installed general reference patterns, and searching the general database, for each match, If the reference to the specific classification family corresponding to the new general reference pattern is null, refer to the classification block for the specific classification family referring to the classification information of the installed general reference pattern, and in the classification family A future classification pattern that indicates a match with the absolute reference pattern Over emissions, without resorting to the general database by matching in the absolute database search, comprising the steps of increasing the search efficiency,
A method comprising:
【請求項5】 請求項2記載の方法において、前記絶対データベースが、分
類ファミリに応じて所与の絶対パターンに対して異なる分類情報への参照を有す
る分類ブロック構造を備え、1つの分類ファミリに対して絶対基準パターンを格
納する前記格納ステップが、更に、 前記インストールした概略基準パターンと一致する既存の各絶対パターンを求
めて、前記概略データベースを探索するステップと、 前記分類ブロック構造における前記新たな概略基準パターンに対応する前記特
定の分類ファミリに対する参照を有する各一致毎に、前記インストールした概略
基準パターンの前記分類ファミリの前記概略データベースを探索し、この絶対パ
ターンと一致する最良の概略基準パターンを求め、前記最良の一致した概略基準
パターンの分類情報を参照する前記特定の分類ファミリに対する分類ブロックを
参照し、前記分類ファミリにおいて前記絶対基準パターンに一致することを示す
今後の分類パターンは、前記概略データベースに頼ることなく、前記絶対データ
ベース探索において照合することにより、探索効率を高めるステップと、 から成ることを特徴とする方法。
5. The method of claim 2, wherein the absolute database comprises a classification block structure having references to different classification information for a given absolute pattern depending on the classification family. The storage step of storing an absolute reference pattern with respect to each of the existing outline patterns that match the installed outline reference pattern, and searching the outline database; and For each match having a reference to the particular classification family corresponding to the general reference pattern, searching the general database of the classification family of the installed general reference pattern for the best general reference pattern that matches this absolute pattern. The classification information of the best matched rough reference pattern Referring to a classification block for the specific classification family to be referred to, a future classification pattern indicating that the classification family matches the absolute reference pattern is checked in the absolute database search without relying on the general database. Increasing the search efficiency by means of the method.
【請求項6】 請求項2記載の方法において、概略基準パターンを格納する
前記ステップが、 前記概略基準パターンに対応する絶対基準パターン集合全体を発生するステッ
プと、 前記絶対基準パターン集合の各絶対基準パターンを、前記概略基準パターンを
与えられた前記分類情報を参照する絶対データベースに格納するステップと、 から成ることを特徴とする方法。
6. The method of claim 2, wherein the step of storing a rough reference pattern comprises: generating an entire set of absolute reference patterns corresponding to the rough reference pattern; and each absolute reference of the set of absolute reference patterns. Storing a pattern in an absolute database referencing said classification information given said general reference pattern.
【請求項7】 請求項2記載の方法において、探索する各分類パターンを前
記絶対データベース内に絶対パターンとして自動的に格納し、分類効率を高める
ことを特徴とする方法。
7. The method according to claim 2, wherein each classification pattern to be searched is automatically stored as an absolute pattern in the absolute database to increase the classification efficiency.
【請求項8】 請求項2記載の方法において、探索する各分類パターンを前
記絶対データベース内に絶対パターンとして自動的に格納し、更にある時間期間
経過後に除去し、それに対する分類を行わずに、今後の分類効率を高めることを
特徴とする方法。
8. The method according to claim 2, wherein each classified pattern to be searched is automatically stored as an absolute pattern in the absolute database, and is further removed after a certain period of time, without performing classification on it. A method characterized by increasing the classification efficiency in the future.
【請求項9】 請求項1に記載したステップを実行するコンピュータ実行可
能命令を有するコンピュータ読取可能媒体。
9. A computer-readable medium having computer-executable instructions for performing the steps recited in claim 1.
【請求項10】 ネットワーク・スタックにおいて処理したパケットを分類
する方法であって、 ソフトウエア・コンポーネントによって、少なくとも1つの基準パターンと関
連する分類情報とを、基準パターンおよび対応する分類情報を格納する共通デー
タベースを内蔵するパケット分類手段にインストールするステップと、 前記パケット分類手段に、前記分類手段の外側から、既定のインターフェース
を介して、コードの少なくとも一部分によって分類すべきパケットからの分類パ
ターンを提示するステップと、 前記分類パターンが、インストールしてある基準パターンと一致した場合、前
記分類手段によって、前記コードの少なくとも一部分に前記基準パターンに関連
する分類情報へのアクセスを返し、該分類情報を用いて前記パケットを処理可能
とするステップと、 から成ることを特徴とする方法。
10. A method for classifying packets processed in a network stack, comprising: a software component for combining at least one reference pattern and associated classification information with a reference pattern and corresponding classification information. Installing on a packet classifying means incorporating a database; and presenting the packet classifying means with a classification pattern from a packet to be classified by at least a part of a code from outside the classifying means via a predetermined interface. When the classification pattern matches the installed reference pattern, the classifying unit returns access to the classification information related to the reference pattern to at least a part of the code, and uses the classification information to packet Enabling the processing of: A method comprising:
【請求項11】 請求項10記載の方法において、前記既定のインターフェ
ースを介して前記分類パターンを提示する前記コードの少なくとも一部分が、前
記パケット分類手段とは別個のソフトウエア・コンポーネントであり、多数のソ
フトウエア・コンポーネントが前記既定のインターフェースを介して前記パケッ
ト分類手段にアクセス可能となるようにすることを特徴とする方法。
11. The method of claim 10, wherein at least a portion of the code for presenting the classification pattern via the predefined interface is a software component separate from the packet classification means, A method wherein a software component is made accessible to said packet classification means via said predefined interface.
【請求項12】 請求項10記載の方法において、前記既定のインターフェ
ースを介して前記分類パターンを提示する前記コードの少なくとも一部分が、ソ
フトウエア・ドライバであり、多数のソフトウエア・ドライバが前記既定のイン
ターフェースを介して前記パケット分類手段にアクセス可能となるようにするこ
とを特徴とする方法。
12. The method of claim 10, wherein at least a portion of the code that presents the classification pattern via the predefined interface is a software driver, wherein a number of software drivers are configured by the predefined software interface. A method comprising making said packet classifying means accessible via an interface.
【請求項13】 請求項10記載の方法において、前記一致した基準パター
ンに対応する前記分類情報に対するポインタを返すことによって、アクセスを与
えることを特徴とする方法。
13. The method according to claim 10, wherein access is provided by returning a pointer to the classification information corresponding to the matched reference pattern.
【請求項14】 請求項10記載の方法であって、更に、分類ファミリを備
え、前記分類手段の外側の前記コードの少なくとも一部分が、分類ファミリを共
有する少なくとも2つの別個のコード部分を備えることを特徴とする方法。
14. The method of claim 10, further comprising a classification family, wherein at least a portion of the code outside the classification means comprises at least two separate code portions sharing a classification family. A method characterized by the following.
【請求項15】 請求項10記載の方法において、前記パケット分類手段が
、前記インストールした基準パターンを格納するデータベースを備え、前記デー
タベースを探索し前記分類パターンを求めることによって、一致を判定すること
を特徴とする方法。
15. The method according to claim 10, wherein said packet classifying means comprises a database storing said installed reference patterns, and determining a match by searching said database to determine said classification patterns. Features method.
【請求項16】 請求項10記載の方法において、前記インストールした基
準パターンが、概略基準パターンまたは絶対基準パターンのいずれかであり、か
つ分類ファミリに関係し、前記パケット分類手段が、分類ファミリには無関係に
全絶対基準パターンの絶対データベースと、各分類ファミリ毎に、当該分類ファ
ミリに関係する概略基準パターンの概略データベースとを備え、分類パターンを
インストールしてある基準パターンと照合する際、最初に前記分類パターンの前
記絶対データベースを探索し、続いて、必要であれば、前記分類パターンに対す
る分類ファミリに関係する前記概略データベースを探索することによって照合効
率を高めることを特徴とする方法。
16. The method of claim 10, wherein the installed reference pattern is either a general reference pattern or an absolute reference pattern and is associated with a classification family, and wherein the packet classification means includes: Irrespective of the above, an absolute database of all absolute reference patterns and a general database of general reference patterns related to the classification families are provided for each classification family. When the classification patterns are compared with the installed reference patterns, A method for increasing matching efficiency by searching said absolute database of classification patterns and subsequently, if necessary, searching said summary database relating to classification families for said classification patterns.
【請求項17】 請求項16記載の方法において、前記絶対データベースが
、分類ファミリに応じて所与の絶対パターンに対して異なる分類情報への参照を
有する分類ブロック構造を備え、1つの分類ファミリに対して絶対基準パターン
をインストールする前記インストール・ステップが、更に、 前記インストールした絶対基準パターンと一致する概略基準パターンに対する
別の各分類ファミリを求めて、前記概略データベースを探索するステップと、 各一致毎に、前記分類ブロックにおいて、前記一致した概略基準パターンの前
記分類情報を参照する前記特定の分類ファミリを参照し、他の分類ファミリにお
いて前記絶対基準パターンに一致することを示す今後の分類パターンは、前記概
略データベースに頼ることなく、前記絶対データベース探索において照合するこ
とにより、探索効率を高めるステップと、 から成ることを特徴とする方法。
17. The method of claim 16, wherein the absolute database comprises a classification block structure having references to different classification information for a given absolute pattern depending on the classification family, wherein one classification family has Installing said absolute reference pattern against said general reference pattern further comprising: searching said summary database for another respective classification family for a rough reference pattern that matches said installed absolute reference pattern; In the classification block, referring to the specific classification family referring to the classification information of the matched general reference pattern, the future classification pattern indicating that the other classification family matches the absolute reference pattern, Without relying on the summary database, the absolute database By matching the scan search method characterized by consisting of the steps of increasing the search efficiency.
【請求項18】 請求項16記載の方法において、前記絶対データベースが
、分類ファミリに応じて所与の絶対パターンに対して異なる分類情報への参照を
有する分類ブロック構造を備え、1つの分類ファミリに対して概略基準パターン
をインストールする前記インストール・ステップが、更に、 前記インストールした概略基準パターンと一致する既存の各絶対パターンを求
めて、前記概略データベースを探索するステップと、 各一致毎に、前記インストールした新たな概略基準パターンに対応する前記特
定の分類ファミリに対する参照がヌルである場合、前記インストールした概略基
準パターンの前記分類情報を参照する前記特定の分類ファミリに対する分類ブロ
ックを参照し、前記分類ファミリにおいて前記絶対基準パターンに一致すること
を示す今後の分類パターンは、前記概略データベースに頼ることなく、前記絶対
データベース探索において照合することにより、探索効率を高めるステップと、
から成ることを特徴とする方法。
18. The method of claim 16, wherein the absolute database comprises a classification block structure having references to different classification information for a given absolute pattern depending on the classification family. Installing the general reference pattern for the existing general pattern; further searching the general database for each existing absolute pattern that matches the installed general reference pattern; and If the reference to the specific classification family corresponding to the new general reference pattern is null, refer to the classification block for the specific classification family referring to the classification information of the installed general reference pattern, and Matches the absolute reference pattern at DOO future classification patterns that indicate, without resorting to the general database by matching in the absolute database search, comprising the steps of increasing the search efficiency,
A method comprising:
【請求項19】 請求項16記載の方法において、前記絶対データベースが
、分類ファミリに応じて所与の絶対パターンに対して異なる分類情報への参照を
有する分類ブロック構造を備え、1つの分類ファミリに対して概略基準パターン
をインストールする前記インストール・ステップが、更に、 前記インストールした概略基準パターンと一致する既存の各絶対パターンを求
めて、前記概略データベースを探索するステップと、 前記分類ブロック構造における前記新たな概略基準パターンに対応する前記特
定の分類ファミリに対する参照を有する各一致毎に、前記インストールした概略
基準パターンの前記分類ファミリの前記概略データベースを探索し、この絶対パ
ターンと一致する最良の概略基準パターンを求め、前記最良の一致した概略基準
パターンの分類情報を参照する前記特定の分類ファミリに対する分類ブロックを
参照し、前記分類ファミリにおいて前記絶対基準パターンに一致することを示す
今後の分類パターンは、前記概略データベースに頼ることなく、前記絶対データ
ベース探索において照合することにより、探索効率を高めるステップと、 から成ることを特徴とする方法。
19. The method of claim 16, wherein the absolute database comprises a classification block structure having references to different classification information for a given absolute pattern depending on the classification family. The installation step of installing a general reference pattern with respect to, further searching the general database for each existing absolute pattern that matches the installed general reference pattern; and For each match having a reference to the particular classification family corresponding to the general schematic reference pattern, searching the general database of the classification family of the installed general reference patterns and finding the best general reference pattern that matches this absolute pattern Find the best matched summary Referencing the classification block for the specific classification family that refers to the classification information of the quasi-pattern, future classification patterns indicating that the classification family matches the absolute reference pattern will be referred to as the absolute classification without relying on the summary database. Increasing the search efficiency by matching in a database search.
【請求項20】 請求項16記載の方法において、概略基準パターンをイン
ストールする前記ステップが、 前記概略基準パターンに対応する絶対基準パターン集合全体を発生するステッ
プと、 前記絶対基準パターン集合の各絶対基準パターンを、前記概略基準パターンを
与えられた前記分類情報を参照する絶対データベースにインストールするステッ
プと、 から成ることを特徴とする方法。
20. The method of claim 16, wherein the step of installing a general reference pattern comprises: generating an entire set of absolute reference patterns corresponding to the general reference pattern; and each absolute reference of the absolute reference pattern set. Installing a pattern in an absolute database referencing said classification information given said general reference pattern.
【請求項21】 請求項16記載の方法において、前記パケット分類手段に
提示する各分類パターンを、前記絶対データベースに絶対パターンとして自動的
にインストールすることを特徴とする方法。
21. The method according to claim 16, wherein each classification pattern presented to said packet classification means is automatically installed as an absolute pattern in said absolute database.
【請求項22】 請求項16記載の方法において、前記パケット分類手段に
提示する各分類パターンを、前記絶対データベースに絶対パターンとして自動的
にインストールし、更にある時間期間が経過した後に削除し、それに対する分類
を行わないことを特徴とする方法。
22. The method of claim 16, wherein each classification pattern presented to said packet classification means is automatically installed as an absolute pattern in said absolute database, and further deleted after a certain period of time. A method characterized by not performing classification on.
【請求項23】 請求項10に記載したステップを実行するコンピュータ実
行可能命令を有するコンピュータ読取可能媒体。
23. A computer-readable medium having computer-executable instructions for performing the steps recited in claim 10.
【請求項24】 ネットワーク・スタックにおいて処理したパケットを分類
する方法であって、 ソフトウエア・コンポーネントによって、編成した少なくとも1つの基準パタ
ーンおよび関連する分類情報を、パケット分類手段にインストールするステップ
であって、前記少なくとも1つの基準パターンおよび関連する分類情報を分類フ
ァミリに編成し、前記パケット分類手段が、 概略基準パターンおよび対応する分類情報を格納する、各分類ファミリ毎のデ
ータベースと、 分類ファミリには無関係に、絶対基準パターンおよび対応する分類情報を格納
する共通一定時間データベースと、 を含み、 ドライバによって、分類すべきパケットからの分類パターンを、既定のインタ
ーフェースを介して前記分類手段に提示するステップと、 前記分類パターンが、インストールしてある基準パターンと一致した場合、前
記ドライバに、前記基準パターンに関連する分類情報へのアクセスを返し、該分
類情報を用いて前記パケットを処理可能とするステップと、 から成ることを特徴とする方法。
24. A method for classifying packets processed in a network stack, the software component installing at least one organized reference pattern and associated classification information in a packet classification means. Organizing the at least one reference pattern and associated classification information into classification families, the packet classification means storing a general reference pattern and corresponding classification information, a database for each classification family; Presenting a classification pattern from a packet to be classified to said classification means via a predetermined interface by a driver, comprising: a common fixed time database storing an absolute reference pattern and corresponding classification information; The classification If the pattern matches an installed reference pattern, returning to the driver access to the classification information associated with the reference pattern and enabling the packet to be processed using the classification information. A method comprising:
【請求項25】 個々のパケットからの分類パターンに基づいてネットワー
ク・スタックにおいて処理したパケットを分類するために具体化したコンピュー
タ実行可能プログラム・コード手段を有するコンピュータ読取可能媒体であって
、前記コンピュータ読取可能プログラム・コード手段が、 コードの他の部分とインターフェースし、基準パターンおよび対応する分類情
報を分類ファミリにインストールする要求を受け取り、分類すべきパケットから
分類パターンの分類要求を受け取り、アクセス手段を分類情報に返す、インター
フェース手段と、 各分類ファミリ毎に前記インターフェース手段によるインストール要求の受け
取り時に、概略基準パターンおよび関連する分類情報を格納する概略データベー
ス手段と、 分類ファミリには無関係に、前記インストール手段によるインストール要求の
受け取り時に、絶対基準パターンおよび関連する分類情報を格納する一定探索時
間データベース手段と、 分類要求に基づいて、前記インターフェース手段が受け取った分類パターンを
、双方のデータベース手段に格納してある前記基準パターンと比較し、一致する
基準パターンが見つかった場合、前記一致した基準パターンに対応する分類情報
へのアクセスを、前記インターフェース手段を介して返し、前記分類情報を用い
て前記パケットを処理可能とする、照合手段と、 を備えることを特徴とするコンピュータ読取可能媒体。
25. A computer readable medium having computer executable program code means embodied for classifying packets processed in a network stack based on a classification pattern from individual packets, said computer readable medium comprising: Enableable program code means for interfacing with other parts of the code, receiving a request to install a reference pattern and corresponding classification information into a classification family, receiving a classification pattern classification request from a packet to be classified, and classifying the access means Interface means for returning information, general database means for storing general reference patterns and related classification information when an installation request is received by the interface means for each classification family; In particular, upon receiving an installation request by the installation means, a fixed search time database means for storing an absolute reference pattern and related classification information; and a classification pattern received by the interface means based on the classification request. Compared with the reference pattern stored in the means, if a matching reference pattern is found, return access to the classification information corresponding to the matched reference pattern via the interface means, using the classification information A computer-readable medium comprising: a collation unit configured to process the packet.
JP2000513226A 1997-09-19 1998-06-03 Method and computer program product for classifying network communication packets processed in a network stack Expired - Fee Related JP3461802B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/933,868 1997-09-19
US08/933,868 US5956721A (en) 1997-09-19 1997-09-19 Method and computer program product for classifying network communication packets processed in a network stack
PCT/US1998/011430 WO1999015993A1 (en) 1997-09-19 1998-06-03 Method and computer program product for classifying network communication packets processed in a network stack

Publications (2)

Publication Number Publication Date
JP2001517878A true JP2001517878A (en) 2001-10-09
JP3461802B2 JP3461802B2 (en) 2003-10-27

Family

ID=25464632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000513226A Expired - Fee Related JP3461802B2 (en) 1997-09-19 1998-06-03 Method and computer program product for classifying network communication packets processed in a network stack

Country Status (8)

Country Link
US (2) US5956721A (en)
EP (2) EP1032894B1 (en)
JP (1) JP3461802B2 (en)
AT (1) ATE368896T1 (en)
AU (1) AU7812498A (en)
CA (1) CA2304145C (en)
DE (1) DE69838180T2 (en)
WO (1) WO1999015993A1 (en)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956721A (en) * 1997-09-19 1999-09-21 Microsoft Corporation Method and computer program product for classifying network communication packets processed in a network stack
US6141686A (en) * 1998-03-13 2000-10-31 Deterministic Networks, Inc. Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control
JP2000092118A (en) * 1998-09-08 2000-03-31 Hitachi Ltd Programmable network
US6807667B1 (en) * 1998-09-21 2004-10-19 Microsoft Corporation Method and system of an application program interface for abstracting network traffic control components to application programs
US7188168B1 (en) 1999-04-30 2007-03-06 Pmc-Sierra, Inc. Method and apparatus for grammatical packet classifier
US7185081B1 (en) 1999-04-30 2007-02-27 Pmc-Sierra, Inc. Method and apparatus for programmable lexical packet classifier
GB2349717A (en) * 1999-05-04 2000-11-08 At & T Lab Cambridge Ltd Low latency network
US7069335B1 (en) * 1999-08-10 2006-06-27 Microsoft Corporation Method and system for exchanging messages between entities on a network comprising an actor attribute and a mandatory attribute in the header data structure
US7043467B1 (en) 2000-02-08 2006-05-09 Mips Technologies, Inc. Wire-speed multi-dimensional packet classifier
US20050195743A1 (en) * 2000-04-03 2005-09-08 P-Cube Ltd. Real time charging of pre-paid accounts
US7436830B2 (en) 2000-04-03 2008-10-14 P-Cube Ltd. Method and apparatus for wire-speed application layer classification of upstream and downstream data packets
US6831893B1 (en) 2000-04-03 2004-12-14 P-Cube, Ltd. Apparatus and method for wire-speed classification and pre-processing of data packets in a full duplex network
US6947931B1 (en) * 2000-04-06 2005-09-20 International Business Machines Corporation Longest prefix match (LPM) algorithm implementation for a network processor
EP1324206A4 (en) 2000-10-03 2008-07-23 Netagent Co Ltd Communication information recorder
US7379475B2 (en) * 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
US7116663B2 (en) * 2001-07-20 2006-10-03 Pmc-Sierra Ltd. Multi-field classification using enhanced masked matching
EP1418709B1 (en) * 2001-08-09 2012-02-08 Panasonic Corporation Apparatus and transmission method
US7769896B2 (en) * 2001-08-30 2010-08-03 Siebel Systems, Inc. Method, apparatus and system for dispatching messages within a system
US7506068B2 (en) * 2001-08-30 2009-03-17 Siebel Systems, Inc. Method, apparatus and system for transforming, converting and processing messages between multiple systems
US7299230B2 (en) * 2001-08-30 2007-11-20 Siebel Systems, Inc. Method, apparatus and system for transforming, converting and processing messages between multiple systems
US7054315B2 (en) * 2001-09-17 2006-05-30 Pmc-Sierra Ltd. Efficiency masked matching
US7765313B2 (en) * 2001-10-09 2010-07-27 Alcatel Lucent Hierarchical protocol classification engine
US20030093566A1 (en) * 2001-11-09 2003-05-15 Jardin Cary A. System and method for network and application transparent database acceleration
US7042886B2 (en) 2001-12-06 2006-05-09 P-Cube Ltd. Apparatus, method, and computer program for wire-speed classification and pre-processing of data packets in an ATM network
US7584262B1 (en) 2002-02-11 2009-09-01 Extreme Networks Method of and system for allocating resources to resource requests based on application of persistence policies
US7814204B1 (en) 2002-02-11 2010-10-12 Extreme Networks, Inc. Method of and system for analyzing the content of resource requests
US7512129B1 (en) * 2002-02-19 2009-03-31 Redback Networks Inc. Method and apparatus for implementing a switching unit including a bypass path
US7145874B2 (en) 2002-03-01 2006-12-05 P-Cube Ltd. Apparatus, method, and software for limiting session rates in a computer network
US7054950B2 (en) * 2002-04-15 2006-05-30 Intel Corporation Network thread scheduling
US7254632B2 (en) * 2002-04-26 2007-08-07 P-Cube Ltd. Apparatus and method for pattern matching in text based protocol
US7587517B2 (en) * 2002-07-08 2009-09-08 Precache Inc. Packet routing via payload inspection for quality of service management
US20040015591A1 (en) * 2002-07-18 2004-01-22 Wang Frank Xiao-Dong Collective TCP control for improved wireless network performance
US7684400B2 (en) * 2002-08-08 2010-03-23 Intel Corporation Logarithmic time range-based multifield-correlation packet classification
US20040054736A1 (en) * 2002-09-17 2004-03-18 Daniell W. Todd Object architecture for integration of email and instant messaging (IM)
US7657598B2 (en) * 2002-09-17 2010-02-02 At&T Intellectual Property I, L.P. Address book for integrating email and instant messaging (IM)
US20040078447A1 (en) * 2002-09-17 2004-04-22 Malik Dale W. User profiles for managing email and instant messaging (IM)
US7933957B2 (en) * 2002-09-17 2011-04-26 At&T Intellectual Property Ii, L.P. Tracking email and instant messaging (IM) thread history
US8037141B2 (en) 2002-09-17 2011-10-11 At&T Intellectual Property I, L.P. Instant messaging (IM) internet chat capability from displayed email messages
US7921160B2 (en) 2002-09-17 2011-04-05 At&T Intellectual Property I, L.P. Initiating instant messaging (IM) chat sessions from email messages
US7085745B2 (en) * 2003-03-05 2006-08-01 Klug John R Method and apparatus for identifying, managing, and controlling communications
US7366352B2 (en) * 2003-03-20 2008-04-29 International Business Machines Corporation Method and apparatus for performing fast closest match in pattern recognition
US7227994B2 (en) * 2003-03-20 2007-06-05 International Business Machines Corporation Method and apparatus for imbedded pattern recognition using dual alternating pointers
US20040190506A1 (en) * 2003-03-24 2004-09-30 International Business Machines Corp. Method and apparatus for performing complex pattern matching in a data stream within a computer network
CN1788473B (en) * 2003-05-16 2012-02-15 松下电器产业株式会社 Communication terminal device for communication network system, method and integrated circuit
US7840696B2 (en) * 2003-07-25 2010-11-23 Broadcom Corporation Apparatus and method for classifier identification
US7996470B2 (en) * 2003-10-14 2011-08-09 At&T Intellectual Property I, L.P. Processing rules for digital messages
US7408932B2 (en) * 2003-10-20 2008-08-05 Intel Corporation Method and apparatus for two-stage packet classification using most specific filter matching and transport level sharing
US20050232153A1 (en) * 2004-04-16 2005-10-20 Vieo, Inc. Method and system for application-aware network quality of service
US7599361B2 (en) * 2004-07-02 2009-10-06 P-Cube Ltd. Wire-speed packet management in a multi-pipeline network processor
US9197857B2 (en) 2004-09-24 2015-11-24 Cisco Technology, Inc. IP-based stream splicing with content-specific splice points
US8966551B2 (en) 2007-11-01 2015-02-24 Cisco Technology, Inc. Locating points of interest using references to media frames within a packet flow
US7855974B2 (en) * 2004-12-23 2010-12-21 Solera Networks, Inc. Method and apparatus for network packet capture distributed storage system
US20100195538A1 (en) * 2009-02-04 2010-08-05 Merkey Jeffrey V Method and apparatus for network packet capture distributed storage system
WO2007011841A2 (en) 2005-07-15 2007-01-25 Indxit Systems, Inc. Systems and methods for data indexing and processing
US8023419B2 (en) 2007-05-14 2011-09-20 Cisco Technology, Inc. Remote monitoring of real-time internet protocol media streams
US7936695B2 (en) 2007-05-14 2011-05-03 Cisco Technology, Inc. Tunneling reports for real-time internet protocol media streams
US7835406B2 (en) * 2007-06-18 2010-11-16 Cisco Technology, Inc. Surrogate stream for monitoring realtime media
US7817546B2 (en) 2007-07-06 2010-10-19 Cisco Technology, Inc. Quasi RTP metrics for non-RTP media flows
US7996520B2 (en) 2007-09-19 2011-08-09 Cisco Technology, Inc. Behavioral classification of communication sessions using active session initiation
US8521732B2 (en) 2008-05-23 2013-08-27 Solera Networks, Inc. Presentation of an extracted artifact based on an indexing technique
US20090292736A1 (en) * 2008-05-23 2009-11-26 Matthew Scott Wood On demand network activity reporting through a dynamic file system and method
US8625642B2 (en) 2008-05-23 2014-01-07 Solera Networks, Inc. Method and apparatus of network artifact indentification and extraction
US8004998B2 (en) * 2008-05-23 2011-08-23 Solera Networks, Inc. Capture and regeneration of a network data using a virtual software switch
US9342589B2 (en) * 2008-07-30 2016-05-17 Nec Corporation Data classifier system, data classifier method and data classifier program stored on storage medium
WO2010013473A1 (en) * 2008-07-30 2010-02-04 日本電気株式会社 Data classification system, data classification method, and data classification program
US8418079B2 (en) 2009-09-01 2013-04-09 James J. Nicholas, III System and method for cursor-based application management
WO2011060368A1 (en) * 2009-11-15 2011-05-19 Solera Networks, Inc. Method and apparatus for storing and indexing high-speed network traffic data
WO2011060377A1 (en) * 2009-11-15 2011-05-19 Solera Networks, Inc. Method and apparatus for real time identification and recording of artifacts
US8301982B2 (en) * 2009-11-18 2012-10-30 Cisco Technology, Inc. RTP-based loss recovery and quality monitoring for non-IP and raw-IP MPEG transport flows
US8819714B2 (en) 2010-05-19 2014-08-26 Cisco Technology, Inc. Ratings and quality measurements for digital broadcast viewers
US8849991B2 (en) 2010-12-15 2014-09-30 Blue Coat Systems, Inc. System and method for hypertext transfer protocol layered reconstruction
US8666985B2 (en) 2011-03-16 2014-03-04 Solera Networks, Inc. Hardware accelerated application-based pattern matching for real time classification and recording of network traffic
JP6102108B2 (en) * 2012-07-24 2017-03-29 富士通株式会社 Information processing apparatus, data providing method, and data providing program
US10095720B2 (en) * 2016-02-05 2018-10-09 Amadeus S.A.S. Database table index
EP4002151A1 (en) * 2020-11-16 2022-05-25 Prescient Healthcare Group Limited Data tagging and synchronisation system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983004A (en) * 1991-09-20 1999-11-09 Shaw; Venson M. Computer, memory, telephone, communications, and transportation system and methods
US5414650A (en) * 1993-03-24 1995-05-09 Compression Research Group, Inc. Parsing information onto packets using context-insensitive parsing rules based on packet characteristics
US5446736A (en) * 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
US5787430A (en) * 1994-06-30 1998-07-28 International Business Machines Corporation Variable length data sequence backtracking a trie structure
US5485460A (en) * 1994-08-19 1996-01-16 Microsoft Corporation System and method for running multiple incompatible network protocol stacks
US5648965A (en) * 1995-07-07 1997-07-15 Sun Microsystems, Inc. Method and apparatus for dynamic distributed packet tracing and analysis
US5802307A (en) * 1995-11-24 1998-09-01 Sun Microsystems, Inc. Network communications subsystem and method for digital computer system employing protocol stack having diverse lower-level network driver components optimized for each of base and enhance operating systems
US5761424A (en) * 1995-12-29 1998-06-02 Symbios, Inc. Method and apparatus for programmable filtration and generation of information in packetized communication systems
US5802511A (en) * 1996-01-02 1998-09-01 Timeline, Inc. Data retrieval method and apparatus with multiple source capability
US5956721A (en) * 1997-09-19 1999-09-21 Microsoft Corporation Method and computer program product for classifying network communication packets processed in a network stack

Also Published As

Publication number Publication date
ATE368896T1 (en) 2007-08-15
EP1032894A4 (en) 2005-02-09
CA2304145C (en) 2005-05-03
DE69838180D1 (en) 2007-09-13
WO1999015993A1 (en) 1999-04-01
EP1843546B1 (en) 2017-11-15
AU7812498A (en) 1999-04-12
JP3461802B2 (en) 2003-10-27
US5956721A (en) 1999-09-21
EP1032894A1 (en) 2000-09-06
EP1843546A1 (en) 2007-10-10
EP1032894B1 (en) 2007-08-01
DE69838180T2 (en) 2008-04-30
CA2304145A1 (en) 1999-04-01
US6185568B1 (en) 2001-02-06

Similar Documents

Publication Publication Date Title
JP2001517878A (en) Method and computer program product for classifying network communication packets processed in a network stack
US6785674B2 (en) System and method for structuring data in a computer system
US10956518B2 (en) Systems and methods for improved web searching
US6754799B2 (en) System and method for indexing and retrieving cached objects
US7627570B2 (en) Highly scalable subscription matching for a content routing network
US5995971A (en) Apparatus and accompanying methods, using a trie-indexed hierarchy forest, for storing wildcard-based patterns and, given an input key, retrieving, from the forest, a stored pattern that is identical to or more general than the key
KR100477391B1 (en) Full match(fm) search algorithm implementation for a network processor
US7054855B2 (en) Method and system for performing a pattern match search for text strings
US6775737B1 (en) Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
US8335779B2 (en) Method and apparatus for gathering, categorizing and parameterizing data
CN100385880C (en) Packet classification apparatus and method using field level tries
EP1585030A2 (en) Automatic Capitalization Through User Modeling
US20030033278A1 (en) Data sort method, data sort apparatus, and data sort program
US20020174095A1 (en) Very-large-scale automatic categorizer for web content
US8554738B2 (en) Mitigation of obsolescence for archival services
KR101467716B1 (en) Method and apparatus for distributing published messages
JP2006018829A (en) Automated classification generation
JP2006107467A (en) Method for analyzing a plurality of search sessions to identify intent-based clusters therein and recording medium
US20060074852A1 (en) Method and data structure for performing regular expression searches in a fixed length word language
US20070156820A1 (en) Message classification system and method
US7535899B2 (en) Packet classification
CN109754021B (en) Online packet classification method based on range tuple search
CN116680367B (en) Data matching method, data matching device and computer readable storage medium
JP3443356B2 (en) Packet classifier
JPH0581102A (en) System for controlling table

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030715

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080815

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080815

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090815

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090815

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100815

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 10

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees