JPH08503349A - Method and apparatus for extracting connection information from protocol header - Google Patents

Method and apparatus for extracting connection information from protocol header

Info

Publication number
JPH08503349A
JPH08503349A JP6520550A JP52055094A JPH08503349A JP H08503349 A JPH08503349 A JP H08503349A JP 6520550 A JP6520550 A JP 6520550A JP 52055094 A JP52055094 A JP 52055094A JP H08503349 A JPH08503349 A JP H08503349A
Authority
JP
Japan
Prior art keywords
protocol
information
cam
header
data stream
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
JP6520550A
Other languages
Japanese (ja)
Other versions
JP2732549B2 (en
Inventor
カイザースヴェルス、マティアス
リュッツエ、エーリヒ
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Priority to JP6520550A priority Critical patent/JP2732549B2/en
Publication of JPH08503349A publication Critical patent/JPH08503349A/en
Application granted granted Critical
Publication of JP2732549B2 publication Critical patent/JP2732549B2/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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 本明細書は、たとえば通信ネットワークのトークンリング・アダプタ内で、データ・ストリームを処理するための独自の接続識別子を提供するために前記データ・ストリームの前にあるプロトコル・ヘッダのさまざまなフィールドを処理するための方法および装置に関する。関連プロトコル情報のすべてが、連想記憶(80)での表引きのために前記プロトコル・ヘッダから抽出される。前記CAM(80)内の項目が、CAMの入力(84)に印加されたプロトコル情報と一致するたびに、この記憶部分のCAMアドレスすなわち、前記CAM(80)の行のアドレスが、その出力(82)に供給される。前記プロトコル・ヘッダから得られたCAMアドレスを、接続番号構築機構(CNB95)によって連結して、前記データ・ストリームの処理のために使用される、プロトコル・フィルタの出力(96)に供給される独自の接続識別子をもたらす。 (57) Summary This specification describes a protocol header that precedes a data stream to provide a unique connection identifier for processing the data stream, for example, in a token ring adapter of a communication network. Method and apparatus for processing various fields of a. All relevant protocol information is extracted from the protocol header for lookup in associative memory (80). Each time an item in the CAM (80) matches the protocol information applied to the input (84) of the CAM, the CAM address of this stored portion, i.e. the address of the row of the CAM (80), is returned in its output ( 82). A unique CAM address obtained from the protocol header, concatenated by the connection number builder (CNB95), and supplied to the output (96) of the protocol filter used for processing the data stream. Yields the connection identifier of.

Description

【発明の詳細な説明】 プロトコル・ヘッダから接続情報を抽出するための方法および装置 [技術分野] 本発明は、通信ネットワーク内のデータ・ストリームを走査し、独自のプロト コル接続識別子を提供するために接続情報を抽出する方法および装置に関する。 [背景技術] コンピュータと通信ネットワークの技術的融合ならびにこれら2つの領域での 迅速な発展のため、情報処理と通信の緊密な混合が生じ、データ、音声、画像な どの伝送と交換がますます複雑になってきている。情報(さまざまな種類のデー タ、サービスおよび通信の同義語として使用する)のそれぞれの伝送または交換 は、必然的に手順規則によって管理しなければならない。 異なる装置たとえば2台の遠隔コンピュータ端末、または2つの手順が、イン ターフェース(ハードウェア・インターフェースである必要はない)を介して対 話している時には、それぞれのプロトコルが使用される。ネットワークに応じて 、さまざまなプロトコルが階層的に並べられ、各プロトコルがそれぞれ隣接する プロトコルと対話するプロトコルの垂直ス タックがもたらされる。ホスト・コンピュータなどの遠隔システム間の情報交換 と伝送を編成するための基本トランスポート・プロトコルが知られている。典型 的な例が、ARPA(Advanced Research Projects Agency)ホスト間プロトコル である。このような基本プロトコルを用いると、垂直プロトコル・スタックの上 位プロトコルが、その動作のすべてを基本プロトコル機構に基づくものとするこ とが可能になる。 ネットワーク環境に応じて、複数の上位プロトコルが基本プロトコル上にセッ トアップされる。CCITT(国際電信電話諮問委員会)アプリケーション用の OSI(オープン・システム相互接続)参照モデルと称する典型的な垂直プロト コル・スタックの概略表現が、CCITT勧告X.200、”Reference Model of Open Systems Interconnection for CCITT Applications”,Blue Book,Fas cicle VIII.4、ジュネーブ、1989年で定義されている。前記OSI参照モ デルでは、レイヤと称する7つのレベルを使用する。各レイヤは、それ自体の固 有機能を有し、下のレイヤによって提供されるサービスを使用して上のレイヤに 定義済みサービスを提供する。 たとえば、第1のシステムで走行するアプリケーシヨン・プログラムが第2の 遠隔システムに保持されているデータの使用を要求する場合、情報の交換が行わ れる。前記第2のシステムが特定のデータ・パケットの送信を求める要求を受け 取る時に、このデータ・パケットは、物理リンクを介して送 信される前に、アプリケーション・レイヤなどの最上位プロトコル・レベルから 、すべての下位プロトコル・レベルを介して下に伝送されなければならない。こ れらのプロトコル・レイヤのそれぞれが、上位レイヤから受け取ったデータ・パ ケットに、そのレイヤに固有の接続情報を追加する。したがって、2つのシステ ムの間の通信接続は、垂直プロトコル・スタックの接続情報を担持するフィール ドの集合によって、パケット・ヘッダ(以下、プロトコル・ヘッダと呼称する) 内で定義される。 レシーバ・サイトでデータ・パケットからなるデータ・ストリームを受信する 時には、経路指定、多重化または圧縮の前に、前記プロトコル・ヘッダを走査し て、次の処理のために接続情報を含むそれぞれのワードを抽出しなければならな い。 今日まで、プロトコル接続の大半は、ソフトウェアでプロトコル・ヘッダを逐 次処理することによって識別されている。この動作は、たとえばサーバ内などの 多数の接続を処理する時やマルチメディア・データ・ストリームを処理する時に は特に、プロトコル処理のかなりの時間を消費する。 プロトコル・ヘッダのプロトコル・タイプを認識し、プロトコル固有データ・ フィールドを抽出するのに使用されるマイクロプログラム式コントローラが、H. W.チン(Chin)他著、”Implementing PE-1000 Based Internetworking Nodes” ,Part 3 of 3,Transfer,Vol.5,No.3,1992年5〜6月、 5〜8ページに記載されている。 パケット識別子を適切な物理出力リンクへ変換するための経路指定テーブルの ハードウェア実施態様が、T.B.ペイ (Pei)およびC.ツコウスキ(Zukowski)著,” Putting RoutingTables in Silicon”,IEEE Network Magazine,1992年1 月、42〜50ページに記載されている。この手法は、主に、連想記憶(CAM )を使用して、単一プコトコルのヘッダ内の接続情報を突き合わせることを特徴 とする。さらに、経路指定情報の記憶に使用される、CAM対通常のランダム・ アクセス・メモリ(RAM)の長所と短所が、ペイとツコウスキによって評価さ れた。 上記の2つのシステムは、どちらもが副次的な問題の解決に関連するが、この どちらも、また他の既知のソフトウェア手法のいずれもが、インターネット・プ ロトコル(IP、”Internet Protocol; DARPA Internet Program Protocol Sp ecification”,RFC 791,DARPA(米国国防高等研究計画庁)、1981年9月 )上で構築されるTCP(送信制御プロトコル、"Transmission Control Protoc ol; DARPA Internet Program Protocol Specification”,RFC 793,DARPA) 1 981年9月)およびXTP (Express Transport Protocol、”XTPProtocol D efinition”,Protocol Engines Incorporated,Revisjon 3.6.,edited by Pro tocol Engines,Mountain View,米国カリフォルニア州、1992年1月11日 )または、CLNP(Connectionless Network Protocol、”Protocol f or Providing the Connectionless-Mode Network Service”,ISO ISO/IEC 8473 )上で構築されるTP4(トランスポート.プロトコル、タイプ4、”Connecti on Oriented TransportProtocol Specification”,ISO/IEC JTCI Draft Intern ational Standard ISO/IEC DIS 8073)などの複数のトランスポート・プロトコル の高速処理を可能にするものではない。本明細書で使用する略語RFCは、用語 Request for Comments(コメント要求)の頭字語である。さらに、本発明は、 たとえばST−II(ストリーム・プロトコル、バージョン2、C.トボルチツ ク(Topolcic)編、”Experimental Internet Stream Protocol; Version 2 (ST -II)”,RFC119O、 1990年10月)などのマルチメディア・トラフィックの 処理に十分に適している。リアルタイムでのプロトコル・ヘッダの処理および異 なるプロトコル・タイプの認識は、非常に複雑で困難な作業である。ほとんどす べてのネットワーク・システムで、ヘッダ処理は、いまだに主要なCPU(中央 処理装置)サイクル消費活動である。本発明は、プロトコル・データ・フィール ドを抽出する(チン他参照)だけではなく、これらのフィールドを使用して、独 自の接続識別子を抽出する。この動作は、リアルタイムで実行される。さらに、 本発明の方法および装置は、プロトコル・スタックを処理するように設計されて いる。 本発明の目的は、さまざまなプロトコルのトラフィックを担持するネットワー ク内での改良されたヘッダ処理のための 方法を提供することである。 本発明のもう1つの目的は、マルチ・プロトコル・データ・ストリームの情報 の、高速で信頼性のあるアドレッシングの処理すなわち接続のための方法を提供 することである。 本発明のもう1つの目的は、マルチメディア・データを含むマルチ・プロトコ ル・データ・ストリームの高速で信頼性のある処理の方法を提供することである 。 本発明のもう1つの目的は、複合プロトコル・ヘッダの情報のリアルタイムの アドレッシングの処理すなわち接続を可能にする方法を提供することである。 本発明のもう1つの目的は、前記方法のハードウェア実施態様を提供すること である。 [発明の摘要] 上記の目的は、請求項9に従う方法と、請求項1に従う前記方法の、プロトコ ル・フィルタと称するハードウェア実施態様とを提供することによって達成され た。この方法および装置は、第1のプロトコルのプロトコル・タイプ情報が抽出 され、前記第1プロトコル上で構築されたプコトコルのプロトコル情報が逐次読 み取られることを特徴とする。プロトコル・タイプ情報と前記プロトコル情報を 、CAMの入力に印加して、この入力に印加される情報が前記CAMに記憶され た情報と一致するたびにCAMの出力にアドレスを供給する。この出力に供給さ れたアドレスを連結して、独自の接続識別 子にする。 [図面の説明] 第1図は、本発明の第1の実施例によるプロトコル・フィルタの概略ブムック 図である。 第2図は、2つの異なるプロトコルのヘッダ・フィールドを含むプロトコル・ ヘッダが先頭にあるデータ・ストリームを示す図である。 第3図は、LLC(論理リンク制御)フレームを示す図である。 第4図は、IP(インターネット・プロトコル)上で構築されるTCP(送信 制御プロトコル)と、IP上で構築されるST−IIプロトコルの階層構造を示 す図である。 第5図は、CLNP (Connection Less Network Protocol)上で構築されるT P4(トランスポート・プロトコル、タイプ4)の階層構造を示す図である。 第6A図は、IPヘッダ上で構築されるTCPヘッダの諸フィールドを示す図 である。 第6B図は、ST−IIヘッダの諸フィールドを示す図である。 第7図は、CLNPヘッダ上で構築されるTP4ヘッダの諸フィールドを示す 図である。 第8図は、第1実施例のプロトコル・フィルタで使用される連想記憶(CAM )を示す図である。 第9図は、本発明の第1実施例によるプロトコル・フィルタのブロック図であ る。 第10A図は、本発明のプロトコル・フイルタによって区別される接続識別子 を示す図である。 第10B図は、本発明のプロトコル・フイルタによって区別される接続識別子 を示す図である。 第11図は、本発明のプロトコル・フィルタによって区別される接続指標を示 す図である。 第12図は、本発明の第2実施例による、マルチプロトコル・フィルタの一部 としてのプロトコル・フィルタのブロック図である。 第13図は、マルチメディア・ワークステーションの一部としてのプロトコル ・フィルタの概略ブロック図である。 第14図は、サーバの一部としてのプコトコル・フィルタの概略ブロック図で ある。 [全般的説明] データ・パケットやマルチメディア・データ・ストリームなどの情報をネット ワーク内またはネットワークに沿って交換または送信する時には、その交換また は送信は、複数のプロトコル・タイプの上で構築される。異なるプロトコル・タ イプのプロトコル情報は、送信されるデータ・パケットまたはデータ・ストリー ムのプロトコル・ヘッダに挿入される。 このプロトコル・ヘッダの受信と処理は、交換機またはネ ットワークを介する添付データ・ストリームの経路指定の前、着信トラフィック の圧縮の前、またはその多重化の前に、行わなければならない。ヘッダの処理、 具体的には、ヘッダ内のプロトコル関連ワードの処理は、想像できる環境のいく つかを挙げると、通常はネットワーク・ノード、アダプタ、ブリッジ、マルチプ レクサ、コンプレッサ、プロトコル・アナライザおよび交換機で行われるが、サ ーバでも行われる。 第1の環境に関連して、本発明の基本概念を説明する。本発明のプロトコル・ フィルタ (以下、PFと呼称する)10を、第1図に示す。PFI0によって 、プロトコルの処理がはるかに単純になる。というのは、レイヤ化されたプロト コル・ヘッダの接続識別子(本発明の方法による)が、ハードウェアで実施され る時に、はるかに高速になるからである。PFI0の機能は、受信したデータ・ ストリームまたはパケットのプロトコル・ヘッダから関連情報を抽出し、この情 報を記憶された接続情報と比較し、2つのデータが等しい場合に関連する接続識 別子を提供することである。この実施例では、PFI0を、トークン・リング・ ネットフーク・アダプタ14内で使用して、第2図に概略的に示されるように、 バス11を介して受信するデータ・ストリーム21に先行するプロトコル・ヘッ ダ20のフィールド22ないし27から関連ワードのすべてを抽出する。出力ポ ート12に、接続識別子が供給され、これを別の処理に使用することができる。 この別の処理は、PF10を使用する環境に依存する。 第2図に概略的に示されるように、データ・ストリーム21の前に、前記プロ トコル・ヘッダ20がある。この簡略化された図では、プロトコル・ヘッダ20 に、第1プロトコルに属するフィールド22、23および24と、前記第1プロ トコル上で構築される第2プロトコルに属するフィールド25ないし27が含ま れる。この図では、それぞれのデータ・ストリーム21の処理に関連するプロト コル情報を含むフィールドに、斜線が書き込まれている。 第1実施例の、前記トークン・リング・ネットワーク・アダプタ14の一部と してのPF10は、TCP/IP、ST−IIおよびISO CLNP/TP4 トラフィックを担持するトークン・リング・ネットワーク内で使用される。前記 ネットワークの詳細は、”IBM Token-Ring Network:Architec ture Reference ”,SC30-3374-02,third edition) 1989年9月に記載されている。トークン・ リング・ネットワーク・アダプタ14は、その有限状態機械で媒体アクセス制御 (MAC)を処理する。トークン・リング・ネットワーク・アダプタ14が受信 し、PF10によって処理される、LPDU(リンク・プロトコル・データ・ユ ニット)フォーマットのLLC(論理リンク制御)フレームを、第3図に示す。 DSAP(宛先サービス・アクセス・ポイント)フイールド30は、前記LPD Uが意図されたアクセス・ポイントを識別する。DSAPフィールド30の典型 的な値は、上述の”IBM Token-Ring Network: Architecture Reference", SC3 0-3 374-02に記載されている。DSAP値すなわち、プロトコル・タイプ情報は、異 なるプロトコル・アドレスの中での探索の際にPF10によって開始点として使 用される。これらのプロトコル・アドレスは、本発明によって、ツリーに配置さ れる。第1実施例では、TCP/IPおよびST−IIアドレスが、第4図に示 されれる第1ツリーの一部であり、CLNP/TP4プロトコルに対応するアド レスが、第5図に示される第2ツリーに配置される。 インターネット・プロトコル(IP)のさまざまなレイヤで使用されるアドレ スおよびプロトコル固有情報が、第4図に示されるツリーを形成する。インター ネット・プロトコル上で構築される第1プロトコルすなわちTCP/IPは、第 4図の左側に配置され、ツリーの4レベルからなる。TCP/IP接続は、TC Pが構築されるプロトコル・タイプ(=インターネット)の特徴を表すツリーの 根40から始まる前記ツリーを介する経路(短破線)によって定義される。第1 レベルは、プロトコル・バージョン(Ver.Prot.)41を定義し、第2 レベルはソース・アドレス(S.Addr.)43、第3レベルはデスティネー ション・アドレス(D.Λddr.)44、第4レベルはソース/デスティネー ション・ポート(S.D.P.)45を定義する。このTCP/IP接続を定義 する第1経路は、後で説明するようにPF10の連想記憶に記憶される。第2経 路(破線)は、ST−II接続を定義する。この第2経路は、同じツリーの根 40から始まり、第1レベルの符号42で終わる。この第2接続は、この例では プロトコル・タイプ(=インターネット)とプロトコル・バージョン(=#00 52HID)だけによって定義される。この第2経路も、PF10に記憶される 。本明細書では、記号#を使用して、16進数表記を表す。 第6A図は、TCP/IPヘッダを示す図である。第6A図の上側に、インタ ーネット・プロトコル・ヘッダを示す。IPヘッダ・フィールドに使用される略 語の意味を、下の表1にリストする。PF10での処理を必要とする、すなわち 、プロトコル情報からなるワードを担持するIPヘッダ・フィールド60ないし 65の略語は、末尾に記号*を付す。 プロトコル・ヘッダのTCP部分も、第6A図に示す。このTCPヘッダのフ ィールドに使用される略語を、表2にリストする。TCPヘッダの関連フィール ド66、67の略字 の末尾に、記号*を付す。 IPヘッダのヘッダ・フィールドの内容は、C.トポルチック(Topolcic)編、 ”Experimental Internet Strealn Protocol; Version 2 (ST-II)”,RFC 11 90、 1990年10月に定義されタイル(具体的には、その第75ページ)。 IPバージョン番号の値(Ver;60)は、#4であり、インターネット・ヘ ッダの正常なヘッダ長(IHL 61)は、#5であり、サービス・タイプ・フ ィールド(TOS 62)は、#00であり、これらの値は、すべて16進数表 記である。IPのプロトコル・フィールド(PROTO 63)は、J.パステ ル(Postel)著、”Ass igned Numbers”,RFC 790) 1981年9月で定義された 8ビット数を保持する。このプロトコル・フィールド(PROTO 63)の8 ビット数は、#06である。本発明によって、これら4つのIPヘッダ・ フィールド60ないし63を連結し、パディングして、PF10に記憶される3 2ビット・ワードを得る。これは、現在の例では、Ver.Prot.フィール ド41(第4図のツリーの第1レベル)と称するプロトコル・バージョンを定義 する32ビット・ワード、#00450006をもたらす。前記IPヘッダのソ ース・アドレス(SA 64)とデスティネーション・アドレス(DA 65) は、このツリーの符号43(S.Addr.)と44(D.Addr.)にある アドレスと等しい。これら2つのフィールドに保持されるアドレスのフォーマッ トも、J.パステル(Postel)著、”Assigned Numbers”,RFC 790、1981 年9月に定義されている。ツリーのソース/デスティネーション・ポート(S. D.P.)アドレス45は、第6A図のTCPヘッダのソース・ポート(SP 66)フィールドとデスティネーション・フィールド(DP 67)から導出さ れる。TCPの詳細は、前述のプロトコル仕様書、"Transmission Control Prot ocol; DARPA Internet Program Protocol Specification”,RFC 793,DARPA、 1981年9月に記載されている。第4図に示されたッリーのTCP/IP部分 の4つのレベルがプロトコル・フィルタにどのように記憶されるかを、第8図に 示す。 インターネット・プロトコルから導出された、第2のプロトコルであるST− IIプロトコルのへッダを第6B図に示す。略語を、表3で解説する。フィール ド68ないし70は、関連するプロトコル情報を担持する。 STは、STパケットに割り当てられたIPバージョン番号であり、Verフ ィールド69に、STバージョン番号が含まれる。STの値は、#5であり、V erの値は、C.トポルチック(Topolcic)編、"Experimental Internet Stream Protocol;Version 2(ST-II)”,RFC 1190、1990年10月の定義によれば 、ST−IIの場合には#2である。ST−IIの場合、ST)VerおよびH IDフィールド68ないし70の内容を、ヘッダから抽出し、連結して、32ビ ット・ワード#0052HIDにし、これを本発明のPF10に記憶する。 CLNP上で構築されるTP4のそれぞれのフレームならびに、CLNPに対 応するフレームを、第7図に示す。CLNPパケット・ヘッダのそれぞれのフレ ームに割り当てられた略語を、表4で説明する。 次に、CLNPヘッダのフィールド71ないし74の典型的な値を示す。NL PI=#81は、それぞれのプロトコルのバージヨン1を使用することを示す。 V/PIEの値は、#01である。値11100は、DT PDUの場合にTy peフレーム74に割り当てられる。CLNPヘッダの後続フィールド、NLP I=#81、V/PIE=#01、F=XおよびType=Yを連結し、パディ ングして、32ビット・ワード#008101XYにする。このワードを、本明 細書ではCLNP Hdr51 (第5図)と称する。TP4ヘッダ・フィール ドに使用される略語の意味を、表5に示す。 前記TP4ヘッダのDataフィールド(DT 75)の値は、1111 0 000であり、これは、16進数表記を使用すると#F0に等しい。Dest inationreference(DR 76)は、XXXXであり、TP4 へッダ(TP4 Hdr 52)と称する32ビット・ワード#F000XXX Xをもたらす。この独特の32ビット・ワードCLNP Hdr 51とTP4 Hdr 52は、下で説明するように本発明のPF10に記憶される。 ここで第8図を参照すると、連想記憶(CAM)80が示 されており、これは、PF10の一部である。このCAM80は、その入力84 のプロトコル情報、たとえばワード83が、ある行に記憶されたワードと一致す るたびに、そのワードを含む行のアドレスが出力82に提示されることを特徴と する。たとえば、ワード#1000450006がCAMの入力84に印加され る場合、CAMは、入力84のワードが記憶されたワードと一致すると同時に、 その出力82に対応する行のCAMアドレスを提供する。この実施例のCAM8 0は、256行を有するCAMであるから、28ビットを有するCAMアドレス または2桁の16進アドレスが必要である。所与の例では、行81に対応する2 桁アドレス#01が、出力82に送られるはずである。CAMは、L.チスビム( Chisvim)他著、”Content-Addressable and Associative Memory”,IEEE Comp uter、1989年7月、51〜63ページに記載されている。 第8図からわかるように、異なる経路がCAMに記憶され、CAMでは、1行 に1ツリー・レベルの情報(Tag)、プロトコル・タイプ情報(PType) およびアドレス情報(HId)が含まれる。プロトコル・フィルタ内では、プロ トコル情報とCAM内容を比較するのに2つの可能性がある。最も単純な方法は 、このCAMの行の幅である幅wの連結された情報ワードにヘッダ情報を連結し 、これを1つの演算でCAMの行と比較することである。この手法は、実施が簡 単であるという長所を有する。CAMの幅は、可能な最大の数 のヘッダ情報を連結した時に必要になるビット数によって決定される。 第1の実施例で提示されたタグ付きのCAM80は、通常のCAMより少ない メモリ空間を消費する。操作する必要のあるヘッダ・ワードの数は、たとえばX TPなどのプロトコルが媒体アクセス制御(MAC)上に直接に構築される場合 には1つであり、たとえば第4図の左側では多くとも5つである。タグ付きCA Mを使用することによって、プロトコルとプロトコル・アドレスの階層構造を利 用できる。第8図では、例のCAMの行83が示されている。この行83の最初 の部分に、レベル番号とも称するタグが含まれ、これは、第4図および第5図の プロトコル・ツリーのうちの1つのそれぞれのレベルに等しい。タグ・フィール ドの右の次のフィールドには、それぞれのプロトコル・タイプ情報(PType )が記憶され、その右に、たとえば32ビット・ワードなどのアドレスVer. Prot、D.Addr.などが記憶される。 前記タグ付きCAM80を有する本発明のPP10のさまざまなユニットの相 互作用を、第9図に関連してこれから説明する。PF10には、次の4つのユニ ットが含まれる。すなわち、前述のCAM80,プロトコル・タイプ検出機構( PTD)90、マスク生成機構(MG)91および接続番号構築機構(CNB) 95である。 PTD90は、たとえばトークン・リングのバス97上の ヘッダ・プロトコル・タイプ情報を読み取り、着信プロトコル・ヘッダからプロ トコル・タイプ情報を抽出する状態機械である。次に、PTD90は、このプロ トコル・タイプ情報を、MG91に転送する。LLCヘッダの場合、第3図に示 されるように、PTD90は、テーブル内でDSAPを表引きすることによって 、DSAPフィールド30からプロトコル・タイプ情報を抽出する。このテーブ ルは、図示されていないが、256×tのサイズのメモリであり、このtは、M G91のマスク・レジスタ(MR)93内のプロトコル・タイプ・フィールド9 9のサイズと等しい。DSAPは、このテーブル内でプロトコル・タイプ情報を 読み取るためのアドレスとして使用される。 MG91は、ヘッダ状態機械(HSM)94とタグ・カウンタ(TC)92か らなる。HSM94は、PTDプロトコル・タイプ情報によって起動され、HS M94は、バス97を介して供給されるヘッダ・ファイルを順次読み取る。接続 検出すなわちデータ・ストリームの処理に関連する情報を含むヘッダ・フィール ドに達した楊合、そのヘッダ・フィールドが、MR93のフィールド100に書 き込まれる。上で述べたように、タグによって、ヘッダ・ワードが有効であるツ リー・レベルが決定される。TC92は、cビット・カウンタであり、比較され る関連フィールドごとに増分され、PTD90によってリセットされる。TCP /IPと他のほとんどのトランスポート・プロトコル・スタックの場合、2ビッ ト・カウンタで十分である。IPヘッダの場合(第6A図参照)、1つの動作で 、プロトコル情報であるIPヘッダ・フィールド60ないし63が、連結情報ワ ードと呼ばれる1つの32ビット・ワード(#00450006)に連結され、 CAM80の行と比較される。タグ・カウンタとPTDタイプは、MR93内で プロトコル情報と連結される。タグ・カウンタは、MR93のタグ・フィールド 98に記憶される。前記MR93のプロトコル・タイプ・フィールド99のサイ ズtは、処理しなければならない異なるプロトコルの数に依存する。6ビットあ れば、現在のプロトコルのほとんどをカバーできる。第1の実施例によるPF1 0を用いると、第4図および第5図に示された2つの異なるプロトコル・タイプ の処理が可能である。この具体的な例では、プロトコル・タイプ・フィールド9 9の長さtは、1ビットにすぎない。 CAM80は、MR93と同一の幅(w=c+t+32ビット)を有する。一 致の場合、そのデータのCAMアドレスが出力される。ワード#100052H IDが前記MR93に置かれる場合、MR93の内容は、CAMアドレスA=# 05(=0000 0101)に記憶される行の内容と一致し、CAMアドレス A=#05が、CAMの出力82に供給される。プロトコル・タイプ情報とタグ が、MR93に含まれるので、出力82でのCAM出力は、特定のプロトコル情 報、プロトコル・タイプ情報およびツリー・レベルに関して独自である。CAM 80は、外部から書き込むことができる。 CNB95は、CAM80の出力でのCAMアドレスを読み取り、プロトコル ・ツリーのうちの1つを通る現経路のCAMアドレスを連結することによって、 独自の接続識別子を生成する。CNB95は、MG91によってトリガされて、 CAMの出力82を読み取る。CAM80が一致を発見しない場合、CNB95 がリセットされ、プロトコル情報は、現在のPF10に未知であり、ソフトウェ アで処理しなければならない。このCNB95は、第10A図および第10B図 に関連して示すように、LLC/IP/TCPのスタック式プロトコル・ヘッダ (第4図のIPツリー内の短破線経路参照)から、独自の接続識別子すなわち独 自の数を生成する。Ver.Prot.101、S.Addr.102、D.A ddr.103およびS.D.P.104と称する8ビットCAMアドレスを連 結して、1つの連結された情報ワード105を形成する。LLC/IP/TCP 経路の場合、このワードの値は、第10B図に示されるように、16進表記で# 01020304である。プロトコル・タイプ情報、たとえば、この楊合ではP Type=#00がこのフードの前にある時には、独自の接続識別子#0001 020304が、現在のプロトコル・スタックに割り当てられる。 ST−IIプロトコル・スタックの特徴を表す値#0052HIDが記憶され ているCAM行のCAMアドレスを連結する時には、接続番号#0005が得ら れる(A=#05の前にPType=#00がある)。 CLNPの特徴を表す32ビット・ワード#008101XY、ヘッダ、およ びTP4ヘッダに割り当てられた32ビット・ワードが、CAM80のアドレス #07および#08に記憶される。独自の接続識別子は、プコトコル・タイプの 特徴を表す数(PType)が前にあるこれら2つの8ビット幅16進数を連結 する時に、CNB95によって生成される。この、プロトコル・タイプ情報と称 する、プロトコル・タイプの特徴を表す数は、現在の例では#01である。接続 識別子の値は、#010708になる。 TCP/IPプロトコル・スタックの場合、Ver.prot.フィールドの 値が、それぞれのプロトコル・スタックを識別する。ソース・アドレス(S.A ddr.)、デスティネーション・アドレス(D.Addr.)およびソース/ デスティネーション・ボート(S.D.P.)のそれぞれが、256個までのア ドレスを識別できる。接続制御ブロックの配列内のポインタとして接続識別子を 使用するためには、32ビット接続識別子が、接続指標までカバーされなければ ならない。これは、下記の例の方法で行うことができる。Ver.Prot.フ ィールド101内で与えられる第1バイトを、特定のプロトコル・バージヨンの 制御ブロック、この例ではTCP/IP制御ブロックの配列を指すポインタとし て使用する。8ビット・アドレスは、各アドレスが別のツリー・レベルでの識別 子を符号化するので、異なる。したがって、ツリー ・レベルiで2のb1乗個 のアドレスを区別するには、 8ビットのうちのb1ビットだけが必要である。接続指標は、各アドレスのb1ビ ットを抽出し、これらを連結することによって生成される。CAMには、同一プ ロトコル・タイプでツリー・レベルiのすべてのアドレスが、下位b1ビットで 異なるように書き込まなければならない。 たとえば、8個のソースIPアドレス、4個のデスティネーション・アドレス および8個のソース/デスティネーシヨン・アドレスを予約して接続指標を生成 する場合、これらは、それぞれ3ビット、2ビットおよび3ビットで符号化でき る。8ビット幅のワード110ないし112の2ビットおよび3ビットの識別子 を連結して、第11図に示される8ビットの連結された接続指標113にする。 この例では、CAM80内の20項目がTCP/IPのために使用され、残りの 236項目は、他のプロトコルのために空いている。レベルiでのアドレス項目 の最大個数が、動的な増大を許可され、レベルiの2のb1+1乗個のアドレスを 区別しなければならない場合、ツリー・レベルiのために使用されるすべてのア ドレスを試験して、それらが下位b1+1ビットで異なっていることを保証しなけ ればならない。接続指標113のサイズは、1ビットだけ増やされる。したがっ て、経路指定テーブルと称する、制御ブロックを指すポインタを保持するテーブ ルを作成しなければならず、接続指標は、このテーブルを指すポインタとして使 用される。接続指標の生成とCAMの管理は、アーキテクチャの柔軟性を保つた めに、プコトコル・プロセッ サによって実行される。 多くのプロトコル接続が、4未満のツリー・レベルを使用する。たとえば、S T−11は、第4図のツリーの根40と符号42で与えられるプロトコル・タイ プとストリーム識別子だけを使用する。結果の接続識別子は、16個の優位なビ ットを有し、トークン・リング・ネットワーク・アダプタ14によって、マルチ メディア・データの検出とこれらのデータを専用装置で処理するのに直接に使用 することができる。 本発明の他の実施例を説明する前に、通常のCAMに関するタグ付きCAMの 長所を指摘する。プロトコル・フィル夕では、必要なプロトコル情報をCAM内 容と比較するのに3つの可能性がある。最も単純な方法は、第1の実施例に関連 して説明したように、プロトコル情報、プロトコル・タイプ情報を含むワードお よびタグ(レベル番号)を連結して、幅wの連結された情報ワードにすることで ある。この手法は、「プロトコル・ツリー」の階層構造を利用している。実施が 簡単な第2の手法は、あるプロトコル・ヘッダの関連プロトコル情報のすべてを 連結して、幅kの1フードを形成することを特徴とする。CAMの幅kは、ヘッ ダ情報の可能な最大の個数を連結する時に必要なビット数によって決定される。 必要なビット数は、第6A図に示される、LLC−Type1を介するTCP/ IPでは、表6に示されるように128である。 256接続をサポートするためには、256CAM行、合計32768ビット が必要である。ヘッダ情報は、プロトコル・タイプ検出機構(PTD)およびマ スク生成機構(MG)と同様の形で抽出される。 第3の手法は、プロトコル・ヘッダからCAMの入力へ読み取られる、それぞ れがアドレス情報を担持するワードを、1ワードずつ順次印加することである。 この手法によれば、ヘッダ・ワードをCAMに印加する前にこれらを連結する必 要も、「プロトコル・ツリー」の階層構造を反映して前記CAMに情報を記憶す る必要もない。 第1の実施例に関連して提示されたタグ付きのCAM80は、他の2つの手法 より少ないメモリ空間を消費する。走査する必要があるヘッダ・フィールドの数 は、たとえばMAC (媒体直接制御)上に直接構築されるXTPの場合には1つ、第4図の例では多 くとも5つである。タグ付きの手法を使用することによって、プロトコルとプロ トコル・アドレスの階層構造を利用できる。タグ情報がMR93に一体化されて いるので、4レベルまでが比較される。この例で256個のTCP/IP接続の ために消費されるメモリ空間は、800ビットすなわち、40ビットのCAM幅 の20倍である。256個のXTP接続のためには、256行、合計10240 ビットが消費される。 本発明の第2の実施例に関して、マルチプロトコル・ルータ124の一部であ るプロトコル・フィルタ120を説明する。このマルチプロトコル・ルータ12 4には、第12図に示されるように、経路指定テーブル(RT)125と経路指 定エンジン127が含まれる。単純化のため、第2の実施例は、4つの異なるプ ロトコルすなわち、インターネット・プロトコル(IP)、システム・ネットワ ーク体系(SNA)、Netbios(ローカル・エリア・ネットワーク基本入 出力システム)およびOSI(オープンシステム相互接続)に制限する。データ ・ストリームが入力121を介して受信される場合、前記プロトコル・フィルタ 120は、このデータ・ストリームを走査し、そのプロトコル・タイプ情報を抽 出する。次に、すべての関連プロトコル・ヘッダ・フィールドを走査し、読み取 る。これらのフィールドの情報は、前記プロトコル・タイプ情報の後にあり、タ グ・カウンタによって 生成されたレベル番号を使用してタグを付けられる。その後、タグ付きCAMの 同一項目を探し、CAMの出力に供給されるそれぞれのCAMアドレスを連結し て、独自の接続識別子を形成する。この独自の接続識別子またはその区別された 接続指標は、リンク122を介して経路指定テーブル125に転送される。この 経路指定テーブル125の経路指定情報の助けを得て、経路指定エンジン127 は、プコトコル・ヘッダが走査され、同時にプロトコル・フィルタ120によっ て処理されるデータ・ストリームの処理を開始する。 本発明の方法および装置の使用は、上で述べた2つの実施例に制限されるもの ではない。別の応用例を、第13図および第14図に示す。第13図では、プロ トコル・フィルタ130が、受信したオーディオ・データ、ビデオ・データおよ び通常データの分離に使用される、マルチメディア・プロトコル・アダプタの一 部として示されている。独自の接続識別子は、異なるデータ・ストリームの分離 のために、ストリーム・デマルチプレクサ(SD)131に転送される。第14 図では、プロトコル・フィルタ140が、サーバ142に接続されている。受信 データ並びに独自の接続識別子は、次の処理のためにプロトコル・プロセッサ( PP)141に転送される。 プロトコル・フィルタは、軽量マルチメディア・アダプタ内で、等時性データ ・ストリームおよび非同期データ・ストリームの分離と、データのチェックサム 作成、非暗号化およ び圧縮解除のためのユニットをトリガするのにも使用できる。このようなマルチ メディア・アダプタには、少なくとも、媒体アクセス制御(MAC)ユニット、 チェックサム・ユニット、直接メモリ・アクセス(DMA)ユニットおよびプロ トコル・フィルタが含まれる。 前述の実施例および応用例のほかに、本発明によるプロトコル・フィルタを、 プロトコル・スニッファとも称するプロトコル・アナライザで使用すると有利で ある。プロトコル・アナライザは、問題が発生した時に、その理由を監視するた めにネットワークに挿入することができる。 本発明のプロトコル・フィルタの典型的な環境は、FDDI(ファイバ分散デ ータ・インターフェース)、ATM(非同期転送モード)およびFCS(ファイ バ・チャネル標準規格)ネットワークである。Description: METHOD AND APPARATUS FOR EXTRACTION OF CONNECTION INFORMATION FROM PROTOCOL HEADER TECHNICAL FIELD The present invention is for scanning a data stream in a communication network and providing a unique protocol connection identifier. A method and apparatus for extracting connection information. [Background Art] Due to the technical fusion of computers and communication networks and the rapid development in these two areas, a close mixture of information processing and communication has arisen, and the transmission and exchange of data, voice, images, etc. have become increasingly complex. Is becoming. Each transmission or exchange of information (used as a synonym for various types of data, services and communications) must necessarily be governed by rules of procedure. When different devices, such as two remote computer terminals, or two procedures, are interacting via an interface (which need not be a hardware interface), the respective protocol is used. Depending on the network, the various protocols are arranged in a hierarchy, resulting in a vertical stack of protocols, with each protocol interacting with its neighbors. Basic transport protocols are known for organizing information exchange and transmission between remote systems such as host computers. A typical example is the ARPA (Advanced Research Projects Agency) host-to-host protocol. Such a basic protocol allows the higher level protocols of the vertical protocol stack to base all of their operations on the basic protocol mechanism. Depending on the network environment, multiple higher level protocols are set up on the basic protocol. A schematic representation of a typical vertical protocol stack called the OSI (Open Systems Interconnection) Reference Model for CCITT (International Telegraph and Telephone Advisory Committee) applications is provided in CCITT Recommendation X. 200, "Reference Model of Open Systems Interconnection for CCITT Applications", Blue Book, Fascicle VIII. 4, Geneva, 1989. The OSI reference model uses seven levels called layers. Each layer has its own unique functionality and uses the services provided by the layers below to provide the defined services to the layers above. For example, if an application program running on the first system requires the use of data held on the second remote system, an exchange of information occurs. When the second system receives a request to send a particular data packet, the data packet is sent from the highest protocol level, such as the application layer, before being sent over the physical link. Must be transmitted down through the lower protocol level of. Each of these protocol layers adds to the data packet received from the higher layers connection information specific to that layer. Thus, the communication connection between two systems is defined in the packet header (hereinafter referred to as the protocol header) by the set of fields that carry the connection information of the vertical protocol stack. When a data stream consisting of data packets is received at the receiver site, before routing, multiplexing or compression, the protocol header is scanned for each word containing connection information for further processing. Must be extracted. To date, most protocol connections have been identified in software by serially processing the protocol header. This operation consumes a significant amount of protocol processing time, especially when processing large numbers of connections, such as in a server, or when processing multimedia data streams. A microprogrammed controller used to recognize the protocol type in the protocol header and extract the protocol-specific data field is described by HW Chin et al., “Implementing PE-1000 Based Internetworking Nodes”, Part 3 of 3, Transfer, Vol. 5, No. 3, May-June 1992, pp. 5-8. A hardware implementation of a routing table for translating packet identifiers into appropriate physical output links is described by TB Pay (Pei) and C. Zukowski, “Putting RoutingTables in Silicon”, IEEE Network Magazine, 1992. January, pages 42-50. This approach is primarily characterized by using associative memory (CAM) to match connection information in the header of a single protocol. In addition, the advantages and disadvantages of CAM versus conventional random access memory (RAM) used to store routing information were evaluated by Pay and Tsukowski. Both of the above two systems are related to solving side problems, but neither of these, nor any of the other known software techniques, is based on the Internet Protocol (IP, "Internet Protocol; DARPA Internet"). Program Protocol Specification ", RFC 791, DARPA (US Defense Advanced Research Projects Agency), September 1981" TCP (Transmission Control Protocol; DARPA Internet Program Protocol Specification ", RFC 793 , DARPA) September 981) and XTP (Express Transport Protocol, "XTPProtocol Definition", Protocol Engines Incorporated, Revisjon 3.6., Edited by Protocol Engines, Mountain View, California, USA, January 11, 1992). Alternatively, it is built on CLNP (Connectionless Network Protocol, "Protocol or Providing the Connectionless-Mode Network Service", ISO ISO / IEC 8473). It does not enable high-speed processing of multiple transport protocols such as P4 (transport protocol, type 4, "Connecti on Oriented Transport Protocol Specification", ISO / IEC JTCI Draft International Standard ISO / IEC DIS 8073). . The abbreviation RFC, as used herein, is an acronym for the term Request for Comments. Further, the present invention is applicable to, for example, ST-II (Stream Protocol, Version 2, edited by C. Topolcic, "Experimental Internet Stream Protocol; Version 2 (ST-II)", RFC119O, October 1990). Well-suited for handling multimedia traffic. Processing protocol headers and recognizing different protocol types in real time is a very complex and difficult task. In almost all network systems, header processing is still a major CPU (Central Processing Unit) cycle consumption activity. The present invention not only extracts the protocol data fields (see Chin et al.), But uses these fields to extract a unique connection identifier. This operation is performed in real time. Further, the method and apparatus of the present invention is designed to handle protocol stacks. It is an object of the present invention to provide a method for improved header processing in networks carrying various protocol traffic. Another object of the present invention is to provide a method for fast and reliable addressing of information in multi-protocol data streams. Another object of the present invention is to provide a method for fast and reliable processing of multi-protocol data streams containing multimedia data. Another object of the present invention is to provide a method that enables real-time addressing of complex protocol header information, ie a connection. Another object of the invention is to provide a hardware implementation of the method. SUMMARY OF THE INVENTION The above objects have been achieved by providing a method according to claim 9 and a hardware implementation of the method according to claim 1 called a protocol filter. The method and the device are characterized in that the protocol type information of the first protocol is extracted and the protocol information of the Pukotocol constructed on the first protocol is read sequentially. The protocol type information and the protocol information are applied to the input of the CAM and an address is provided at the output of the CAM whenever the information applied to this input matches the information stored in the CAM. The address supplied to this output is concatenated into a unique connection identifier. DESCRIPTION OF THE DRAWINGS FIG. 1 is a schematic Bumuk diagram of a protocol filter according to a first embodiment of the present invention. FIG. 2 shows a data stream headed by a protocol header containing header fields for two different protocols. FIG. 3 is a diagram showing an LLC (logical link control) frame. FIG. 4 is a diagram showing a hierarchical structure of TCP (transmission control protocol) constructed on IP (Internet Protocol) and ST-II protocol constructed on IP. FIG. 5 is a diagram showing a hierarchical structure of TP4 (transport protocol, type 4) constructed on CLNP (Connection Less Network Protocol). FIG. 6A is a diagram showing various fields of the TCP header constructed on the IP header. FIG. 6B is a diagram showing fields of the ST-II header. FIG. 7 is a diagram showing various fields of the TP4 header constructed on the CLNP header. FIG. 8 is a diagram showing an associative memory (CAM) used in the protocol filter of the first embodiment. FIG. 9 is a block diagram of a protocol filter according to the first embodiment of the present invention. FIG. 10A is a diagram showing connection identifiers distinguished by the protocol filter of the present invention. FIG. 10B is a diagram showing connection identifiers distinguished by the protocol filter of the present invention. FIG. 11 is a diagram showing connection indexes distinguished by the protocol filter of the present invention. FIG. 12 is a block diagram of a protocol filter as part of a multi-protocol filter according to a second embodiment of the present invention. FIG. 13 is a schematic block diagram of a protocol filter as part of a multimedia workstation. FIG. 14 is a schematic block diagram of a Pukotocol filter as part of the server. General Description When exchanging or transmitting information, such as data packets or multimedia data streams, in or along a network, the exchange or transmission is built on multiple protocol types. Protocol information of different protocol types is inserted in the protocol header of the transmitted data packet or data stream. The reception and processing of this protocol header must occur prior to routing the attached data stream through the switch or network, prior to compression of incoming traffic, or prior to its multiplexing. The processing of headers, and in particular the protocol-related words in headers, is usually done in network nodes, adapters, bridges, multiplexers, compressors, protocol analyzers and switches, to name a few. However, it is also done on the server. The basic concept of the present invention will be described with reference to the first environment. A protocol filter (hereinafter referred to as PF) 10 of the present invention is shown in FIG. PFI0 makes the handling of the protocol much simpler. This is because the layered protocol header connection identifier (according to the method of the present invention) is much faster when implemented in hardware. The function of PFI0 is to extract the relevant information from the protocol header of the received data stream or packet, compare this information with the stored connection information and provide the relevant connection identifier if the two data are equal. Is. In this embodiment, PFI0 is used in the token ring nethook adapter 14 to allow the protocol stream preceding the data stream 21 received over the bus 11, as schematically illustrated in FIG. Extract all relevant words from fields 22 to 27 of header 20. The output port 12 is provided with a connection identifier, which can be used for further processing. This other process depends on the environment in which the PF 10 is used. Before the data stream 21, there is the protocol header 20, as shown schematically in FIG. In this simplified diagram, the protocol header 20 comprises fields 22, 23 and 24 belonging to the first protocol and fields 25 to 27 belonging to the second protocol built on said first protocol. In this figure, the fields containing protocol information related to the processing of each data stream 21 are shaded. The PF 10 as part of the token ring network adapter 14 of the first embodiment is used in a token ring network carrying TCP / IP, ST-II and ISO CLNP / TP4 traffic. Details of the network are described in "IBM Token-Ring Network: Architecture Reference", SC30-3374-02, third edition) September 1989. The token ring network adapter 14 handles media access control (MAC) in its finite state machine. An LLC (Logical Link Control) frame in LPDU (Link Protocol Data Unit) format received by the token ring network adapter 14 and processed by the PF 10 is shown in FIG. A DSAP (Destination Service Access Point) field 30 identifies the access point for which the LPDU was intended. Typical values for the DSAP field 30 are described in "IBM Token-Ring Network: Architecture Reference", SC3 0-3 374-02, above. The DSAP value, or protocol type information, is used by the PF 10 as a starting point when searching in different protocol addresses. These protocol addresses are arranged in a tree according to the invention. In the first embodiment, the TCP / IP and ST-II addresses are part of the first tree shown in FIG. 4, and the address corresponding to the CLNP / TP4 protocol is the second shown in FIG. It is placed in a tree. The addresses and protocol-specific information used at the various layers of the Internet Protocol (IP) form the tree shown in FIG. The first protocol, TCP / IP, built on the Internet Protocol, is located on the left side of FIG. 4 and consists of four levels of tree. A TCP / IP connection is defined by a path (short dashed line) through the tree, starting from the root 40 of the tree, which represents the characteristics of the protocol type (= Internet) on which the TCP is built. The first level defines the protocol version (Ver.Prot.) 41, the second level is the source address (S.Addr.) 43, the third level is the destination address (D.Λddr.) 44, The fourth level defines the source / destination port (SDP) 45. The first path that defines this TCP / IP connection is stored in the associative memory of the PF 10, as will be described later. The second path (dashed line) defines the ST-II connection. This second path starts at the root 40 of the same tree and ends at the first level code 42. This second connection is defined in this example only by the protocol type (= Internet) and the protocol version (= # 00 52HID). This second route is also stored in the PF 10. The symbol # is used herein to represent hexadecimal notation. FIG. 6A is a diagram showing a TCP / IP header. At the top of Figure 6A, the Internet Protocol header is shown. The meanings of the abbreviations used for the IP header fields are listed in Table 1 below. The abbreviations of the IP header fields 60-65 that require processing at the PF 10, that is, which carry words of protocol information, are suffixed with the symbol *. The TCP portion of the protocol header is also shown in Figure 6A. The abbreviations used in the fields of this TCP header are listed in Table 2. The symbol * is added to the end of the abbreviations of the related fields 66 and 67 of the TCP header. The contents of the header field of the IP header are The tiles defined in "Experimental Internet Strealn Protocol; Version 2 (ST-II)", RFC 1190, October 1990, edited by Topolcic (specifically, page 75). The IP version number value (Ver; 60) is # 4, the normal header length of the Internet header (IHL 61) is # 5, and the service type field (TOS 62) is # 00. Yes, these values are all in hexadecimal notation. The protocol field (PROTO 63) of IP is based on J. Postel, "Assigned Numbers", RFC 790, holds an 8-bit number defined in September 1981. The 8-bit number of this protocol field (PROTO 63) is # 06. In accordance with the present invention, these four IP header fields 60-63 are concatenated and padded to obtain the 32 bit word stored in PF 10. In the current example, this is Ver. Prot. It results in a 32-bit word, # 00450006, which defines a protocol version called field 41 (first level of the tree in FIG. 4). The source address (SA 64) and destination address (DA 65) of the IP header are equal to the addresses at 43 (S. Addr.) And 44 (D. Addr.) In this tree. The format of the address held in these two fields is also described in J. Defined by Postel, "Assigned Numbers", RFC 790, September 1981. The source / destination port (SD) address 45 of the tree is derived from the source port (SP 66) and destination fields (DP 67) of the TCP header of Figure 6A. Details of TCP are described in the aforementioned protocol specification, "Transmission Control Protocol; DARPA Internet Program Protocol Specification", RFC 793, DARPA, September 1981. FIG. 8 shows how the four levels of the TCP / IP portion of the Dolly shown in FIG. 4 are stored in the protocol filter. A second protocol, the ST-II protocol header, derived from the Internet Protocol, is shown in FIG. 6B. Abbreviations are explained in Table 3. Fields 68-70 carry relevant protocol information. ST is an IP version number assigned to the ST packet, and the Ver field 69 includes the ST version number. The value of ST is # 5 and the value of Ver is C.I. According to the definition of "Experimental Internet Stream Protocol; Version 2 (ST-II)", edited by Topolcic, RFC 1190, October 1990, it is # 2 in the case of ST-II. For ST-II, the contents of the ST) Ver and HID fields 68-70 are extracted from the header and concatenated into the 32-bit word # 0052HID, which is stored in the PF 10 of the present invention. Each frame of TP4 constructed on CLNP and the frame corresponding to CLNP are shown in FIG. The abbreviations assigned to each frame of the CLNP packet header are described in Table 4. Next, typical values of the fields 71 to 74 of the CLNP header are shown. NL PI = # 81 indicates that version 1 of each protocol is used. The value of V / PIE is # 01. The value 11100 is assigned to the Type frame 74 for DT PDUs. The subsequent fields of the CLNP header, NLP I = # 81, V / PIE = # 01, F = X and Type = Y are concatenated and padded into the 32-bit word # 008101XY. This word is referred to herein as CLNP Hdr51 (FIG. 5). The meanings of the abbreviations used in the TP4 header field are shown in Table 5. The value of the Data field (DT 75) of the TP4 header is 11110000, which is equivalent to # F0 using hexadecimal notation. Destination reference (DR 76) is XXXX, which results in a 32-bit word # F000XXXX called TP4 header (TP4 Hdr 52). The unique 32-bit words CLNP Hdr 51 and TP4 Hdr 52 are stored in the PF 10 of the present invention as described below. Referring now to FIG. 8, an associative memory (CAM) 80 is shown, which is part of the PF 10. The CAM 80 is characterized in that whenever the protocol information of its input 84, for example the word 83, matches the word stored in a row, the address of the row containing that word is presented at the output 82. For example, if word # 1000450006 is applied to the input 84 of the CAM, the CAM provides the CAM address of the row corresponding to its output 82 at the same time that the word at input 84 matches the stored word. Since CAM80 of this embodiment is a CAM having 256 rows, 2 8 A CAM address with bits or a two digit hexadecimal address is required. In the given example, the two digit address # 01 corresponding to row 81 would be sent to output 82. CAM is based on L.L. Chisvim et al., "Content-Addressable and Associative Memory", IEEE Computer, July 1989, pages 51-63. As can be seen from FIG. 8, different routes are stored in the CAM, where each row contains one tree level of information (Tag), protocol type information (PType) and address information (HId). Within the protocol filter, there are two possibilities to compare the protocol information with the CAM content. The simplest way is to concatenate the header information into a concatenated information word of width w which is the width of this CAM row and compare it with the CAM row in one operation. This approach has the advantage of being simple to implement. The width of the CAM is determined by the number of bits required when concatenating the maximum possible number of header information. The tagged CAM 80 presented in the first embodiment consumes less memory space than a normal CAM. The number of header words that need to be manipulated is one if the protocol, eg XTP, is built directly on the medium access control (MAC), eg at most 5 on the left side of FIG. Is one. By using tagged CAM, a hierarchical structure of protocols and protocol addresses can be utilized. In FIG. 8, an example CAM row 83 is shown. The first part of this line 83 contains a tag, also referred to as a level number, which is equal to the respective level of one of the protocol trees of FIGS. 4 and 5. The next field to the right of the tag field stores the protocol type information (PType) for each, and to the right of it is the address Ver. Prot, D.I. Addr. Are remembered. The interaction of the various units of the PP10 of the invention with the tagged CAM 80 will now be described with reference to FIG. The PF 10 includes the following four units. That is, the CAM 80, the protocol type detection mechanism (PTD) 90, the mask generation mechanism (MG) 91 and the connection number construction mechanism (CNB) 95 described above. The PTD 90 is, for example, a state machine that reads header protocol type information on the token ring bus 97 and extracts the protocol type information from the incoming protocol header. The PTD 90 then transfers this protocol type information to the MG 91. For the LLC header, the PTD 90 extracts the protocol type information from the DSAP field 30 by looking up the DSAP in the table, as shown in FIG. Although not shown, this table is a memory of size 256 × t, where t is equal to the size of the protocol type field 99 in the mask register (MR) 93 of MG 91. DSAP is used as the address to read the protocol type information in this table. MG 91 consists of a header state machine (HSM) 94 and a tag counter (TC) 92. The HSM94 is activated by the PTD protocol type information and the HSM94 sequentially reads the header files provided via the bus 97. When a header field is reached that contains information related to connection detection or data stream processing, that header field is written to field 100 of MR 93. As mentioned above, the tag determines which tree level the header word is valid. The TC92 is a c-bit counter that is incremented and reset by the PTD 90 for each relevant field that is compared. For TCP / IP and most other transport protocol stacks, a 2-bit counter is sufficient. In the case of the IP header (see FIG. 6A), in one operation, the protocol header IP header fields 60 to 63 are concatenated into one 32-bit word (# 00450006) called concatenation information word, and the CAM 80 Compared to the row. The tag counter and PTD type are concatenated with the protocol information in MR 93. The tag counter is stored in the tag field 98 of MR 93. The size t of the protocol type field 99 of the MR 93 depends on the number of different protocols that have to be processed. With 6 bits, most current protocols can be covered. With PF10 according to the first embodiment, it is possible to process two different protocol types shown in FIGS. 4 and 5. In this particular example, the length t of the protocol type field 99 is only 1 bit. The CAM 80 has the same width as the MR 93 (w = c + t + 32 bits). If they match, the CAM address of the data is output. When the word # 100052H ID is placed in the MR 93, the contents of the MR 93 match the contents of the row stored in the CAM address A = # 05 (= 0000 0101), and the CAM address A = # 05 outputs the CAM output. 82. Since the protocol type information and tags are included in the MR 93, the CAM output at output 82 is unique with respect to the particular protocol information, protocol type information and tree level. The CAM 80 can be written externally. The CNB 95 reads the CAM address at the output of the CAM 80 and concatenates the CAM address of the current path through one of the protocol trees to generate a unique connection identifier. The CNB 95 is triggered by MG 91 to read the output 82 of the CAM. If the CAM 80 does not find a match, the CNB 95 is reset and the protocol information is unknown to the current PF 10 and must be processed by software. The CNB 95, as shown in connection with FIGS. 10A and 10B, uses the unique connection identifier from the LLC / IP / TCP stack protocol header (see short dashed path in the IP tree of FIG. 4). That is, it creates its own number. Ver. Prot. 101, S.I. Addr. 102, D.I. A ddr. 103 and S. D. P. The 8-bit CAM addresses, called 104, are concatenated to form one concatenated information word 105. For the LLC / IP / TCP path, the value of this word is # 01020304 in hexadecimal notation, as shown in Figure 10B. A unique connection identifier # 0001 020304 is assigned to the current protocol stack when protocol type information, eg, P Type = # 00 in this case, is in front of this hood. When concatenating the CAM address of the CAM row in which the value # 0052HID representing the characteristics of the ST-II protocol stack is stored, the connection number # 0005 is obtained (PType = # 00 before A = # 05). . The 32-bit word # 008101XY representing CLNP features, the header, and the 32-bit word assigned to the TP4 header are stored at addresses # 07 and # 08 of the CAM 80. The unique connection identifier is generated by the CNB 95 when concatenating these two 8-bit wide hexadecimal numbers preceded by a number (PType) that is characteristic of the Pcotocol type. The number indicating the characteristic of the protocol type, which is called protocol type information, is # 01 in the present example. The value of the connection identifier is # 010708. For the TCP / IP protocol stack, Ver. prot. The value of the field identifies each protocol stack. Each of the source address (S. A. Drdr), destination address (D. Addr.) And source / destination port (S. D.P.) can identify up to 256 addresses. To use the connection identifier as a pointer in the array of connection control blocks, the 32-bit connection identifier must be covered up to the connection index. This can be done by the method of the example below. Ver. Prot. The first byte provided in field 101 is used as a pointer to the control block for the particular protocol version, in this example the array of TCP / IP control blocks. 8-bit addresses are different because each address encodes an identifier at a different tree level. Therefore, b at 2 at tree level i 1 To distinguish the exponentiated addresses, b out of 8 bits is used. 1 Only a bit is needed. The connection index is b for each address 1 It is generated by extracting bits and concatenating them. In the CAM, all addresses at the tree level i with the same protocol type are 1 Must be written differently in bits. For example, if you reserve 8 source IP addresses, 4 destination addresses and 8 source / destination addresses to generate a connection indicator, these are 3 bits, 2 bits and 3 bits respectively. Can be encoded with. The 2-bit and 3-bit identifiers of 8-bit wide words 110-112 are concatenated into the 8-bit concatenated connection index 113 shown in FIG. In this example, 20 items in CAM 80 are used for TCP / IP and the remaining 236 items are free for other protocols. The maximum number of address items at level i is allowed to grow dynamically, level 2 b of level i. 1 + 1 If we have to distinguish the exponentiated addresses, we test all the addresses used for tree level i so that 1 + 1 You have to ensure that they are bit different. The size of the connection index 113 is increased by 1 bit. Therefore, a table, called a routing table, must be created to hold a pointer to the control block, the connection index being used as a pointer to this table. Connection index generation and CAM management are performed by the Pukotocol processor to maintain architectural flexibility. Many protocol connections use tree levels below 4. For example, ST-11 uses only the protocol type and stream identifier given by the root 40 and 42 of the tree of FIG. The resulting connection identifier has 16 dominant bits and can be directly used by the token ring network adapter 14 to detect multimedia data and process these data on dedicated devices. it can. Before explaining another embodiment of the present invention, the advantages of the tagged CAM with respect to a normal CAM will be pointed out. In the protocol filter, there are three possibilities to compare the required protocol information with the CAM content. The simplest method is to concatenate a word containing protocol information, protocol type information and a tag (level number), as described in connection with the first embodiment, into a concatenated information word of width w. It is to be. This approach utilizes a hierarchical structure of "protocol trees". A second approach, which is simple to implement, is characterized by concatenating all the relevant protocol information in a protocol header to form a hood of width k. The width k of the CAM is determined by the number of bits required when concatenating the maximum possible number of header information. The required number of bits is 128 as shown in Table 6 for TCP / IP over LLC-Type 1 shown in FIG. 6A. To support 256 connections, 256 CAM rows, 32768 total bits are required. The header information is extracted in the same manner as the protocol type detection mechanism (PTD) and mask generation mechanism (MG). A third approach is to sequentially apply the words, each carrying address information, read word by word from the protocol header to the input of the CAM. According to this approach, it is not necessary to concatenate the header words before applying them to the CAM or to store information in said CAM reflecting the hierarchical structure of the "protocol tree". The tagged CAM 80 presented in connection with the first embodiment consumes less memory space than the other two approaches. The number of header fields that need to be scanned is, for example, one for XTP built directly on the MAC (Media Direct Control) and at most five in the example of FIG. By using the tagged approach, you can take advantage of the hierarchical structure of protocols and protocol addresses. Since tag information is integrated in the MR 93, up to 4 levels are compared. The memory space consumed for 256 TCP / IP connections in this example is 20 times the CAM width of 800 bits or 40 bits. For 256 XTP connections, 256 rows are consumed, for a total of 10240 bits. With respect to the second embodiment of the present invention, the protocol filter 120 that is part of the multi-protocol router 124 is described. The multi-protocol router 124 includes a routing table (RT) 125 and a routing engine 127, as shown in FIG. For simplicity, the second embodiment has four different protocols: Internet Protocol (IP), Systems Network Architecture (SNA), Netbios (Local Area Network Basic Input / Output System) and OSI (Open System). Mutual interconnection). When a data stream is received via input 121, the protocol filter 120 scans this data stream and extracts its protocol type information. It then scans and reads all relevant protocol header fields. The information in these fields follows the protocol type information and is tagged using the level number generated by the tag counter. It then looks for the same item in the tagged CAM and concatenates each CAM address provided at the output of the CAM to form a unique connection identifier. This unique connection identifier or its distinguished connection indicator is transferred to the routing table 125 via the link 122. With the help of the routing information in this routing table 125, the routing engine 127 begins processing the data stream being scanned by the protocol header and simultaneously processed by the protocol filter 120. Use of the method and apparatus of the present invention is not limited to the two embodiments described above. Another application example is shown in FIGS. 13 and 14. In FIG. 13, protocol filter 130 is shown as part of a multimedia protocol adapter used to separate received audio data, video data and normal data. The unique connection identifier is transferred to the stream demultiplexer (SD) 131 for the separation of different data streams. In FIG. 14, the protocol filter 140 is connected to the server 142. The received data as well as the unique connection identifier are transferred to the Protocol Processor (PP) 141 for further processing. Protocol filters also trigger separation of isochronous and asynchronous data streams and trigger units for checksumming, decrypting and decompressing data within the lightweight multimedia adapter. Can be used. Such multimedia adapters include at least a media access control (MAC) unit, a checksum unit, a direct memory access (DMA) unit and a protocol filter. In addition to the embodiments and applications described above, it is advantageous to use the protocol filter according to the invention in a protocol analyzer, also called protocol sniffer. When a problem occurs, a protocol analyzer can be inserted in the network to monitor the reason. Typical environments for the protocol filter of the present invention are FDDI (Fiber Distributed Data Interface), ATM (Asynchronous Transfer Mode) and FCS (Fibre Channel Standard) networks.

Claims (1)

【特許請求の範囲】 1.データ・ストリームの処理のため、前記データ・ストリームのプロトコル・ ヘッダ(20)から抽出される接続識別子を提供するための装置において、前記 プロトコル・ヘッダ(20)が、第1プロトコルのフィールドと、前記第1プロ トコルに基づいて構築される第2プロトコルのフィールド(22ないし24、2 5ないし27)とを含み、 前記プロトコル・ヘッダ(20)内の前記第1プロトコルのプロトコル・タイ プ情報を検出し、読み取るために前記データストリームを走査する手段(プロト コル・タイプ検出機構90)と、 前記プロトコル・ヘッダ(20)の第1プコトコルのフィールドおよび第2プ ロトコルのフィールド(22ないし24、25ないし27)の、前記データ・ス トリームの処理に関連するプロトコル情報を読み取る手段(マスク生成機構91 )と、 連想記憶(CAM80)の入力(84)に前記プロトコル・タイプ情報と前記 プロトコル情報とを印加する手段と、 前記入力(84)に印加された前記プコトコル・タイプ情報および前記プロト コル情報を、前記CAM(80)に記憶された情報と比較し、前記CAM(80 )の出力(82)に同一の情報を含むCAMアドレスを供給する手段と、 CAM(80)の前記出力(82)に供給されたCAMア ドレスを連結することによって前記接続識別子を生成する手段(接続番号構築機 構95)と を含む装置。 2.さらに、前記プロトコル情報のそれぞれを、好ましくはワード単位で、前記 プロトコル・タイプ情報と連結して、連結された情報をCAMの入力(84)に 適用する前に1つの前記連結された情報を形成するための手段(マスク・レジス タ93)を含む、請求項1に記載の装置。 3.さらに、前記読み取る手段(マスク生成機構91)によって次のプロトコル 情報が読み取られるたびにレベル番号を増分するカウンタ(タグ・カウンタ92 )を含み、前記カウンタ(92)の出力が、前記連結された情報ワードの先頭に 生成された前記レベル番号を挿入するために、前記連結するための手段(マスク ・レジスタ93)に接続され、前記カウンタ(92)が、関連プロトコル情報の すべてが読み取られたときにリセットされ、次のプロトコルのプコトコル情報の それぞれによって再び増分を開始する、請求項2に記載の装置。 4.さらに、前記CAMアドレスの上位ビット群だけを連結して前記接続識別子 を形成する前に、CAM(80)の前記出力(82)に供給されるCAMからの 上位ビット群だけを抽出する手段を含む、請求項1に記載の装置。 5.さらに、前記CAM(80)内に、CAMの入力(84)に印加された情報 と一致する情報がない場合に、ソフトウェ アによって前記プロトコル・ヘッダを処理する手段を含む、請求項1に記載の装 置。 6.前記接続識別子が、前記データ・ストリームの処理に必要なすべての情報を 提供する経路指定テーブル(125)を指すポインタとして使用されることを特 徴とする、請求項1に記載の装置。 7.前記第1プロトコルが、インターネット・プロトコル(IP)またはST− 11マルチメディア・プロトコルであることを特徴とする、請求項1に記載の装 置。 8.マルチメディア・プロトコル・アダプタの一部か、マルチプロトコル・ルー タ(124)、集線装置、ブリッジまたは交換機の一部か、プロトコル・アナラ イザの一部である、請求項1に記載の装置。 9.データ・ストリームの処理のため、前記データ・ストリームのプロトコル・ ヘッダ(20)から抽出される、必要な前記接続識別子を供給する方法において 、前記プロトコル・ヘッダ(20)が、第1プロトコルのフィールドと、前記第 1プロトコル上で構築される第2プロトコルのフィールドと(22ないし24、 25ないし27)を含み、 a)前記第1プロトコルのプロトコル・タイプ情報を読み取るために前記プロ トコル・ヘッダ(20)を走査するステップと、 b)前記データ・ストリームの処理に関連するプロトコル情報を、前記プロト コル・ヘッダ(20)の第1プロトコル のフィールドおよび第2プロトコルのフィールド(22ないし24、25ないし 27)内で読み取るステップと、 c)連想記憶(CAM80)の入力(84)に、ステップa)およびb)で読 み取られた前記プロトコル・タイプ情報および前記プロトコル情報を印加するス テップと、 d)前記CAM(80)に記憶された情報と前記プロトコル・タイプ情報およ び前記プロトコル情報を比較し、前記CAM(80)の出力(82)に同一情報 を含むCAMアドレスを提供するステップと、 e)CAM(80)の前記出力(82)に供給されたCAMアドレスを連結す ることによって前記接続識別子を生成するステップと を含む方法。 10.前記プロトコル・ヘッダが、前記第2プロトコル上で構築される第3プロ トコルのフィールドを含み、前記方法が、 f)前記第3プロトコルの、前記データ・ストリームの処理に関連するプロトコ ル情報を読み取るステップと、 g)請求項9のステップd)を実行するため、ステップf)で読み取られた前記 プロトコル情報を、CAM(80)の前記入力(84)に印加するステップと を含む、請求項9に記載の方法。 11.前記第3プロトコルおよびそれ以降のプロトコルの上で構築されるさらな るプロトコルのそれぞれについて、諸ステップが同様の形で実行されることを特 徴とする、請求項1 0に記載の方法。 12.h)前記プロトコル情報のそれぞれを、好ましくはワード単位で、前記プ ロトコル情報と連結して、1つの連結された情報ワードを形成するステップと、 i)前記連結された情報ワードを前記CAM(80)の入力(84)に印加して 、請求項9のステップd)を実行するステップと を含む、請求項9に記載の方法。 13.j)前記プロトコル・ヘッダからプロトコル情報を読み取るたびに、レベ ル番号を増分するステップと、 k)請求項9のステップd)を実行する前に、ステップh)の前記連結された情 報ワードの先頭に、前記レベル番号を挿入するステツプと を含む、請求項12に記載の方法。[Claims] 1. A data stream protocol for processing the data stream. In an apparatus for providing a connection identifier extracted from a header (20), said The protocol header (20) includes a field of the first protocol and the first protocol. The second protocol fields (22-24, 2 and 2) constructed based on Tocol 5 to 27),   Protocol tie of the first protocol in the protocol header (20) Means for scanning the data stream to detect and read the group information (protocol). Coll type detection mechanism 90),   The first protocol field and the second protocol of the protocol header (20) Data field of the field (22-24, 25-27) of Rotocol Means for reading protocol information related to the processing of the stream (mask generation mechanism 91 )When,   In the input (84) of the associative memory (CAM80), the protocol type information and the Means for applying protocol information and   The protocol type information and the protocol applied to the input (84) The Col information is compared with the information stored in the CAM (80) and the CAM (80 ) Output (82) providing a CAM address containing the same information,   The CAM address supplied to the output (82) of the CAM (80). Means for generating the connection identifier by connecting the dresses (connection number construction machine Structure 95)   A device that includes. 2. Further, each of the protocol information, preferably in word units, Concatenated with protocol type information and input the concatenated information to CAM input (84) Means for Forming One Said Concatenated Information Before Applying (Mask Regis Device according to claim 1, including a switch 93). 3. Further, the following protocol is applied by the reading means (mask generation mechanism 91). A counter (tag counter 92 that increments the level number each time information is read. ), The output of the counter (92) is at the beginning of the concatenated information word. Means for concatenating (mask to insert the generated level number) A register 93) connected to the counter (92) for the related protocol information. It is reset when everything is read, and the next protocol's 3. The apparatus according to claim 2, wherein the increment is initiated again by each. 4. Further, by connecting only the upper bits of the CAM address, the connection identifier From the CAM supplied to the output (82) of the CAM (80) before forming The apparatus of claim 1 including means for extracting only the high order bits. 5. Further, in the CAM (80), information applied to the input (84) of the CAM. If no information matches The device of claim 1, including means for processing the protocol header by Place. 6. The connection identifier contains all the information needed to process the data stream. Specially used as a pointer to the provided routing table (125). The device of claim 1, which is a signature. 7. The first protocol is Internet Protocol (IP) or ST- Device according to claim 1, characterized in that it is an 11 multimedia protocol. Place. 8. Part of a multimedia protocol adapter or a multiprotocol router (124), concentrator, part of a bridge or switch, or protocol analyzer The device of claim 1 which is part of an Iser. 9. A data stream protocol for processing the data stream. In a method of supplying the required connection identifier extracted from a header (20) , The protocol header (20) includes a first protocol field, The fields of the second protocol constructed on one protocol (22 to 24, 25 to 27),   a) In order to read the protocol type information of the first protocol, Scanning the Tokol header (20),   b) providing protocol information related to the processing of the data stream to the protocol. Col header (20) first protocol Field and the second protocol field (22 to 24, 25 to 27) the step of reading in   c) Read in associative memory (CAM80) input (84) in steps a) and b) Applying the captured protocol type information and the protocol information. Tep,   d) Information stored in the CAM (80) and the protocol type information and And the protocol information are compared, and the same information is output to the output (82) of the CAM (80). Providing a CAM address including   e) Concatenate the CAM address supplied to the output (82) of the CAM (80) Generating the connection identifier by   Including the method. 10. The third protocol in which the protocol header is built on the second protocol. Including the field of Tocol, the method is f) A protocol related to the processing of the data stream of the third protocol. Read the information, g) to carry out step d) of claim 9 so that the Applying protocol information to the input (84) of the CAM (80);   10. The method of claim 9, comprising: 11. Further builds on top of said third protocol and beyond The steps are performed in a similar fashion for each of the Claim 1 The method described in 0. 12. h) Each of said protocol information, preferably in word units, Concatenating with the protocol information to form a concatenated information word, i) applying the concatenated information word to the input (84) of the CAM (80) , Performing step d) of claim 9,   10. The method of claim 9, comprising: 13. j) Each time the protocol information is read from the protocol header, the level The step of incrementing the k) prior to performing step d) of claim 9, the linked information of step h) The step of inserting the level number at the beginning of the information word   13. The method of claim 12, comprising:
JP6520550A 1993-03-20 1993-03-20 Method and apparatus for extracting connection information from protocol header Expired - Fee Related JP2732549B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6520550A JP2732549B2 (en) 1993-03-20 1993-03-20 Method and apparatus for extracting connection information from protocol header

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6520550A JP2732549B2 (en) 1993-03-20 1993-03-20 Method and apparatus for extracting connection information from protocol header

Publications (2)

Publication Number Publication Date
JPH08503349A true JPH08503349A (en) 1996-04-09
JP2732549B2 JP2732549B2 (en) 1998-03-30

Family

ID=18527614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6520550A Expired - Fee Related JP2732549B2 (en) 1993-03-20 1993-03-20 Method and apparatus for extracting connection information from protocol header

Country Status (1)

Country Link
JP (1) JP2732549B2 (en)

Also Published As

Publication number Publication date
JP2732549B2 (en) 1998-03-30

Similar Documents

Publication Publication Date Title
US5684954A (en) Method and apparatus for providing connection identifier by concatenating CAM's addresses at which containing matched protocol information extracted from multiple protocol header
US5999541A (en) Transmission of token-ring packets over ethernet by tunneling
US7379454B2 (en) Packet routing apparatus and routing controller
US6571291B1 (en) Apparatus and method for validating and updating an IP checksum in a network switching system
JP4999957B2 (en) Content-based forwarding / filtering method in network switching device
US6650642B1 (en) Network relaying apparatus and network relaying method capable of high-speed routing and packet transfer
US5487064A (en) Network layer packet structure
JP3574184B2 (en) Method and apparatus for analysis of information contained in a data structure
EP1005746B1 (en) Method and device for network packet forwarding lookup with a reduced number of memory accesses
JP2002511703A (en) Systems and processes for application-level flow connections in data processing networks
CN1178435C (en) Selective address table aging in a network switch
JP2001517379A (en) Method and apparatus for filtering multicast packets on a LAN based on a transparent intermediate system
US6658003B1 (en) Network relaying apparatus and network relaying method capable of high-speed flow detection
JP2002152268A (en) Multilayer packet processing unit
CN100444593C (en) Apparatus and method for data packet classification
JP2005012381A (en) Device and method for transferring data, data communication system using the same and program
US20020191621A1 (en) Programmable protocol processing engine for network packet devices
US6711165B1 (en) Apparatus and method for storing min terms in network switch port memory for access and compactness
EP1303949B1 (en) Apparatus and method for buffer-free evaluation of packet data bytes with multiple min terms
US6671277B1 (en) Network relaying apparatus and network relaying method capable of high quality transfer of packets under stable service quality control
JP3672517B2 (en) Communication device
JPH08503349A (en) Method and apparatus for extracting connection information from protocol header
US6728255B1 (en) Apparatus and method for storing min terms in a network switch port memory for identifying data packet types in a real time
JP2000049791A (en) Ip datagram encapsulation method and ip processor
CA2158013A1 (en) Method and apparatus for extracting connection information from protocol headers

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees