JP2005192220A - 通信プロトコルの並列処理の方法および装置 - Google Patents
通信プロトコルの並列処理の方法および装置 Download PDFInfo
- Publication number
- JP2005192220A JP2005192220A JP2004372442A JP2004372442A JP2005192220A JP 2005192220 A JP2005192220 A JP 2005192220A JP 2004372442 A JP2004372442 A JP 2004372442A JP 2004372442 A JP2004372442 A JP 2004372442A JP 2005192220 A JP2005192220 A JP 2005192220A
- Authority
- JP
- Japan
- Prior art keywords
- data
- protocol
- finite state
- packet data
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5603—Access techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/325—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
【課題】通信プロトコルの並列処理の方法および装置を提供する。
【解決手段】本発明は、通信プロトコルの並列処理の方法および装置に関する。より詳細には、本発明は、データ・パケットの処理に用いられる通信プロトコルを並列に処理するために有限状態機械(FSM)を実装することに関する。有限状態機械を並列実装すると、従来型の蓄積転送技術を用いることなく、迅速かつ効率的なデータ処理が可能になる。
【選択図】図1
【解決手段】本発明は、通信プロトコルの並列処理の方法および装置に関する。より詳細には、本発明は、データ・パケットの処理に用いられる通信プロトコルを並列に処理するために有限状態機械(FSM)を実装することに関する。有限状態機械を並列実装すると、従来型の蓄積転送技術を用いることなく、迅速かつ効率的なデータ処理が可能になる。
【選択図】図1
Description
本発明は、通信プロトコルの並列処理の方法および装置に関する。より詳細には、本発明は、通信データ・パケットの処理に用いられる通信プロトコルを並列に処理するために、ワイヤード・ロジック・デバイスを有限状態機械(FSM)の形で実装することに関する。有限状態機械(FSM)を並列実装すると、従来型のソフトウェア・スタックや蓄積転送技術を用いることなく、迅速かつ効率的なデータ処理が可能になる。
本発明は、特に通信プロトコルの処理技術を対象としているため、特定の例を参照して説明するが、本発明が他の分野や用途でも有用であろうことは理解されよう。たとえば、本発明は、通信プロトコルをベースとする任意の製品と組み合わせて実装できる。
背景として、従来のプロトコル処理技術は、プロトコル内容の処理および生成のために高度に最適化された命令セットを用いて、種々のソフトウェア・スタック(広く用いられている蓄積プログラム制御メカニズム)をシングルスレッド・プロセッサやマルチスレッド・プロセッサやネットワーク・プロセッサに適用する。通常は、プロトコル層を順々に処理するために別々のプログラムを用いる。プロトコル層と処理の間でのメッセージのキューイング、蓄積、転送、時刻指定、およびスケジューリングには、オペレーティング・システムまたはオペレーティング・システム構造を用いる。プロトコル処理は、メッセージ全体を受け取ってから行う。つまり、蓄積転送である。
これまで知られていた、通信プロトコル処理のソフトウェアベースの実装では、プロトコルの状態変化をソフトウェアでエミュレートする。これにより、システムはより複雑になる。さらに、いつでも実行可能なのはシングル・スレッドのデータだけである。したがって、回線レートより著しく低いレートでプロトコル層を(一度に1つずつ)処理するためには、中間の構造、キュー、およびソフトウェアが必要である。通常、1つのパケットの中には、様々なプロトコル層が存在する。たとえば、パケット・データには、RTP(リアルタイム転送プロトコル)データ、UDP(ユーザ・データグラム・プロトコル)データ、IP(インターネット・プロトコル)データ、ICMP(インターネット制御メッセージ・プロトコル)データ、IPCP(インターネット・プロトコル制御プロトコル)データ、LCP(リンク制御プロトコル)データ、HDLC(高レベル・データ・リンク制御)データなどを含めることができる。ソフトウェアを用いる場合はさらに、多数のソフトウェア層(たとえば、オペレーティング・システムやアプリケーション・プログラムなど)が必要であり、そのような層は、様々な分野や領域の多数の開発者に対応するためにさらに多くの通信技術を必要とする。また、ソフトウェアベースのシステムでは、データの保全性は事後評価のみ可能である。さらに、ソフトウェア・システムでは、ハードウェアとソフトウェアの多彩な連係が必要である。最後に、ソフトウェア・システムを用いるためには、ハードウェアとソフトウェアの堅固な結合が必要であり、これによって、プロトコル層の処理に必要なオーバーヘッドが増える。
このように、ソフトウェアベースのプロトコル層処理技術は、かなり高度な反面、複雑であり、比較的効率がよくない。これは、特定のシステムを改良するためにソフトウェアを実装する(たとえば、ソフトウェアを何層も積み重ねる)ことに重点をおいた結果である。歴史的には、コンピュータベースのシステムは、ハードウェアをソフトウェアで制御することによって、高い費用対効果で実現されていた。ソフトウェアの制御により、ハードウェアはより柔軟になる。ハードウェアをサポートするためにソフトウェア層の上にソフトウェア層を構築するというアプローチの動機付けになったのは、ハードウェアが本質的に固定されたものであるという事実である。すなわち、ハードウェアの機能は、プロセッサ、メモリ、および固定機能の半導体素子に組み込まれている。さらに、ハードウェアは相対的に(特にソフトウェアと比較して)費用がかかりがちである。このため、費用と柔軟性の観点から、どのようなシステムでも柔軟な制御機構としてソフトウェアを用いることの方が容易なものとなった。
その結果、プログラミング言語の普及によって生産性が向上した。各言語は、特定の状況での問題を解決して特定問題領域での生産性を向上させるように特化された。その結果、ソフトウェアの方言のサブセットが出現した。さらなる著しい性能向上が、トランスレータ、コンパイラ、および開発環境を用いることで実現された。この、ソフトウェアを用いてハードウェアの柔軟性を高め、コンピュータベース技術の性能を向上させるというアプローチの結果として、12,000を超えるソフトウェア開発言語および環境が生まれている。
逆に、ハードウェア・ロジックのほうは、ここ数年、ほとんど無視されている。ハードウェア・ロジック・デバイスは、以前から、小さく、高価であり、実用的なキャプチャ言語でプログラミングするのが困難であった。ここ数年の間に進化してきたソフトウェア開発とは対照的に、ハードウェア・ロジックに使用できるキャプチャ言語は12を下回る。
しかしながら、近年、ハードウェア(ワイヤード)・ロジックを活かす技術として、FPGA(フィールド・プログラマブル・ゲートアレイ)が登場している。FPGAは、既知のキャプチャ言語とともに、これらの技術が実装される用途に向けて、格段にシンプルかつ高効率の処理環境を提供できる。さらにFPGAは、近年いよいよ費用対効果が高まりつつある。同様に、ASIC(特定用途向け集積回路)も、従来のアプローチに向けてのより経済的な選択肢として進化している。
そこで、通信プロトコルを処理するために現在用いられている非効率的な技術に代わるものとして、ワイヤード・ハードウェア・ロジックを利用する通信プロトコル用並列処理システムを実装することが求められている。
本発明は、上述した問題や他の問題を解決する、通信プロトコルの並列処理のための改良された新しいシステムを企図するものである。
米国出願第09/975,113号
米国公開第2003/0196194 A1号
本発明は、上述した問題や他の問題を解決する、通信プロトコルの並列処理のための改良された新しいシステムを企図するものである。
通信プロトコルの並列処理の方法および装置を提供する。
本発明の一態様では、本装置は、インターフェース・モジュールと、少なくとも1つの第1の有限状態機械の集合と、第2の有限状態機械の集合とを備える。インターフェース・モジュールは、パケット・データを受信するよう動作する。第1の有限状態機械の集合の各集合は、パケット・データの複数の通信プロトコル層のうちの選択された層を処理し、処理結果に基づいて出力データを生成するよう動作する。第2の有限状態機械の集合は、パケット・データを蓄積し、出力データを処理するよう動作する。複数の第1の有限状態機械の集合と、第2の有限状態機械の集合は、並列に動作し、それによって、パケット・データの複数のプロトコル層が回線レートで処理される。
本発明の別の態様では、少なくとも1つの第1の有限状態機械の集合と、第2の有限状態機械の集合は、FPGA(フィールド・プログラマブル・ゲートアレイ)で形成される。
本発明の別の態様では、複数の通信プロトコル層として、IP(インターネット・プロトコル)層、ICMP(インターネット制御メッセージ・プロトコル)層、RTP(リアルタイム転送プロトコル)層、UDP(ユーザ・データグラム・プロトコル)層、IPCP(インターネット・プロトコル制御プロトコル)層、LCP(リンク制御プロトコル)層、HDLC(高レベル・データ・リンク制御プロトコル)層などがある。
本発明の別の態様では、本装置は、パケット・データを受信するよう動作するインターフェース・モジュールと、第1のプロトコル層データを処理するよう動作する第1のワイヤード・ロジック・デバイスと、第2のプロトコル層データを処理するよう動作する第2のワイヤード・ロジック・デバイスと、第3のプロトコル層データを処理するよう動作する第3のワイヤード・ロジック・デバイスと、第4のプロトコル層データを処理するよう動作する第4のワイヤード・ロジック・デバイスと、パケット・データを蓄積し、第1、第2、第3、および第4のワイヤード・ロジック・デバイスからのデータ出力を処理するよう動作する第5のワイヤード・ロジック・デバイスとを備える。第1、第2、第3、第4、および第5のワイヤード・ロジック・デバイスは並列に動作し、それによって、パケット・データの複数のプロトコル層が回線レートで処理される。
本発明の別の態様では、本方法は、パケット・データを受信するステップ、及びパケット・データの各層を、ワイヤード・ロジックを用いて並列に、回線レートで処理するステップを含む。
本発明の別の態様では、本装置は、パケット・データを受信する手段と、パケット・データの各層を、ワイヤード・ロジックを用いて並列に、回線レートで処理する手段とを備える。
本発明のさらなる応用範囲については、以下の詳細な説明から明らかになるであろう。ただし、以下の詳細な説明および具体例は、本発明の好ましい実施形態を示すものであるが、あくまで例示的なものであることを理解されたい。当業者であれば、本発明の趣旨および範囲の中で様々な変形や変更が可能であることは明らかだからである。
本発明は、デバイスの種々の部品の構成、配置、および組み合わせと、方法の各工程のかたちで存在する。よって、企図した目的は、以下で詳細に記載し、特許請求項で限定的に指摘し、添付図面で例示するように達成される。
本発明は、通信プロトコルの処理および実装に対する従来のアプローチからの脱却を表すものである。本発明による、この新しいアプローチは、蓄積プログラム制御にまつわるオーバーヘッドや複雑さを一掃する。そのために、本発明の実施形態では、N個の並列ワイヤード・ロジック・リソースを、有限状態機械(FSM)または有限状態機械の集合の形で用いる。これらのFSMデバイスは、プロトコル・データを受信したときに(つまり、蓄積する前に)、プロトコル層(またはプロトコル層のフラグメント)を回線において、回線レートで処理するよう機能を特化される。これらのFSMを、プロトコル内容の認識、解析、時間指定、変換、ログ記録、蓄積、転送、および生成を行うために、ワイヤード・ロジックで実装する。
後で詳述するように、有限状態機械(FSM)は、FPGA(フィールド・プログラマブル・ゲートアレイ)を用いて実装するのが好ましい。ただし、適切なワイヤード・ロジック・デバイスであれば何でも使用できる。たとえば、状況によっては、ASICデバイスを使用できる。
本発明のシステムを実装すると、様々な点で性能が向上する。第1に、有限状態機械(FSM)のエミュレーションが不要になる。少なくとも1つの実施形態で有限状態機械(FSM)を実際に使用するので、変換を必要とせずにプロトコルが実行される。第2に、本発明のシステムでは、複数のスレッドを回線レートで実行することが可能になる。これにより、中間の構造、キューイング、およびソフトウェア制御が不要になるか、必要性が著しく低くなる。第3に、ハードウェア・ワイヤード・ロジックを用いることで、より統一された処理にすることができる。第4に、インライン・チェッカを用いることで、保全性を回線レートで、かつリアルタイムに維持できる。第5に、ハードウェア・ワイヤード・ロジックを用いることで、必要な調整およびテストの費用が現在より少なくなる。最後に、オーバーヘッドが最小化される。
以下、例示的実施態様により、本発明を説明する。ワイヤード・ロジックを利用しやすい環境を選択する限り、本発明の実装に適する他の様々な環境が存在することを理解されたい。本発明の全体を通しての目的は、そのようなすべての実装において同じである。すなわち、ワイヤード・ロジック・デバイスを実装することによってソフトウェア・スタックの量を減らし、複数の異なるプロトコル層を並列処理することによって効率を高めることである。
以下、図面を参照していく(これらの図面は本発明の好ましい実施形態を例示する目的でのみ提示するものであり、同じものに限定することを目的としていない)。図1は、本発明を実装できるネットワークを表したものである。図に示すように、ネットワーク全体10は、光インターフェース・ユニット14および16を介して通信するIP(インターネット・プロトコル)バックボーン・ネットワーク12を含んでいる。図に示すように、IPバックボーン・ネットワーク12と光インターフェース・ユニット14との間にルータ18を設け、IPバックボーン・ネットワーク12と光インターフェース・ユニット16との間にADM(アド/ドロップ・マルチプレクサ)20を設けている。光インターフェース・ユニット14および16は、SS7シグナリングなどの様々なシグナリング技術の任意のいずれかを用いて互いに通信する。もちろん、様々なネットワーク構成を用いて本発明を実現できることを理解されたい。
本発明は、様々な用途に実装して、本発明の多くの利点を実現することができるが、本発明の一実施態様は、光インターフェース・ユニット14の中に配置される。当業者であれば理解されるように、光インターフェース・ユニット14は、OFI(光ファシリティ・インターフェース)など様々な回路パックを内蔵する。この特定の実施態様では、OFI(光ファシリティ・インターフェース)は、FPGA(フィールド・プログラマブル・ゲートアレイ)が中に実装されたパケットを内蔵する。
図2は、そのようなFPGA(フィールド・プログラマブル・ゲートアレイ)50の一部を示している。図に示すように、この回路は、一連の有限状態機械の集合に接続されたインターフェース・モジュール52を含む。本発明の教示が実装されるシステムの設計、目的、および構成に応じて、単一の有限状態機械(FSM)または複数の有限状態機械(FSM)を含むことができるように、有限状態機械(FSM)が集合の形で配置されていることを理解されたい。用途に応じて、異なる集合を組み合わせることもできる。1つの通信プロトコル層を処理するために複数の有限状態機械(FSM)が集合の形で実装される場合は、個々の有限状態機械(FSM)のそれぞれが1つの通信プロトコル層の一部分ずつを処理することを理解されたい。
本発明の一実施形態では、これらの有限状態機械の集合は、IP(インターネット・プロトコル)オブザーバ54を形成する第1の有限状態機械(FSM)の集合と、IPCP(インターネット・プロトコル制御プロトコル)オブザーバ56を形成する第2の有限状態機械(FSM)の集合と、LCP(リンク制御プロトコル)オブザーバ58を形成する第3の有限状態機械(FSM)の集合と、HDLC(高レベル・データ・リンク制御)オブザーバ60を形成する第4の有限状態機械(FSM)の集合と、受信パケット・ローダ62を形成する第5の有限状態機械(FSM)の集合とを含む。さらに表示されている受信パケット・バッファおよび制御ロジック64は、パケット・ローダからデータを受け取り、そのデータをパケット・ハンドラ68および69に転送するよう動作する。受信パケット・バッファおよび制御ロジック64は、様々な形をとることができ、有限状態機械(FSM)ロジックの使用を含むことができる。
この構成では、データを、インターフェース・モジュール52の内部で、通信ネットワークからパケットの形で受信し、有限状態機械(FSM)の集合54〜62で処理し、最後に、ATM(非同期転送モード)スイッチに関連付けられたスイッチ・ファブリックなどのスイッチ・ファブリックに転送するか、そうでなければ、送信処理モジュール70に送信することを理解されたい。明確化のために、パケット・データは、特に指定がない限り、データ・コンテンツと制御フィールドの両方を含むことを理解されたい。実際は、場合によって、パケットの中にある通信プロトコルの制御フィールドが、別の通信プロトコルのデータ・コンテンツとして機能することもある。
図に示すように、また、上記で暗に述べたように、回路50の一部分はパケット・データの送信も処理する。この点においては、パケット・データをスイッチ・ファブリックまたはパケット・ハンドラ69から取得し、(図では参照要素70として示されている)様々な送信処理モジュールで処理することが可能である。送信処理モジュール70には、バッファ、ローダ(たとえば、ローダ62に近いもの)、制御ロジック、アンローダなど、データ送信に有用な様々な要素を含めることができることを理解されたい。一実施形態では、それらの要素は、有限状態機械や類似のロジック・デバイスの形をとることができる。もちろん、そのような有限状態機械(FSM)は、FPGAなどを用いて実装できる。処理されたパケット・データは、宛先への送信のために、インターフェース・モジュール52に転送される。
動作としては、まず、インターフェース・モジュール52が、データをパケット・データの形で受信する。インターフェース・モジュール52は、パケット・データ・ネットワークとのインターフェースに必要なハンドシェーク機能を備えており、それによって、実際にパケット・データを受信する。インターフェース・モジュール52は、受信したパケット・データに対し、特定の処理機能を実行する。たとえば、インターフェース・モジュール52は、パケット・データが存在することを確認し、そのパケット・データが有効かどうかを判別する。インターフェース・モジュール52はさらに、パケットの開始、パケットの終了、パケット・データの転送にエラーがないかどうか、および特定タイプのデータ(つまり、モジュロ2のデータ)を受信したかどうかを判別する。インターフェース・モジュールは、これらの予備判別を実施した後、独自の出力信号を、有限状態機械(FSM)の集合54〜62への入力信号として供給する。
図3では、以下に述べるインターフェース・モジュールの各出力信号を、時間tを基準として示している。まず、受信データ信号(rdat)80が示されている。この信号は、受信パケット・データからの入力信号として供給される。また、有効性信号(rval)82も示されている。信号値「1」は、パケット・データが有効であることを意味する。また、パケット信号の開始(rsop)84も示されている。信号値「1」は、任意の時刻tにおけるパケットの開始を示す。同様に、パケット信号の終了(reop)86も示されている。特定の時刻tにおける信号値「1」は、パケットの終了を示す。特殊なタイプのデータ信号(rmod)88は、モジュロ2のデータが、たとえば、受信されたかどうかを示す。最後に、エラー信号(rerr)90が示されている。信号値「1」は、受信したパケットの転送においてエラーが発生したことを意味する。
注目すべきは、これらのインターフェース信号が、実際のパケット・データとともに、有限状態機械(FSM)の集合54〜62に、並列に供給されることである。この実施形態では、パケット・データは有限状態機械(FSM)の集合に16ビットずつ転送されるのが好ましい。ただし、16ビットより大きいサイズでも、小さいサイズでも、有限状態機械(FSM)の集合がそのような転送サイズのばらつきを吸収するように構成されていれば、転送可能である。有限状態機械(FSM)の集合54〜62のそれぞれは、それぞれの目的を達成するために、それぞれの方式でパケット・データを処理する。この処理の結果のデータは、パケット・ローダ62で蓄積され、さらなる処理のために、パケット・データとともに出力される。このシステムの利点は、通信プロトコルの各層を並列に回線レートで処理できることである。この処理には、ソフトウェア・スタック(ソフトウェアの階層)は関与しない。したがって、効率は、これまで認識されていたレベルから格段に向上している。
図4は、IPオブザーバ54の機能400を示している。IPオブザーバは、まず、パケット・データを受け取る(402)。パケット・データを受け取ったら、そのパケットを観察する(404)。この点においては、IPオブザーバ54は、たとえば、パケット・データ内のIPヘッダとIPペイロードを検出しようとし、HDLCアドレス・データや制御データなど、パケット・データ内の他のデータ・フィールドは無視する。一実施形態では、IPオブザーバはさらに、ICMP(インターネット制御メッセージ・プロトコル)パケット・データ、UDP(ユーザ・データグラム・プロトコル)パケット・データ、およびRTP(リアルタイム転送プロトコル)パケット・データのヘッダ情報とペイロード情報を検出しようとする。次にIPオブザーバは、しかるべきヘッダ情報を処理する(406)。同様に、対応するペイロードを処理する(408)。この情報のすべての処理(すなわち、通信プロトコル層の処理)には、1)パケット・データの認識(識別または解析)、2)パケット・フォーマットとしかるべきパラメータの検査、3)選択した情報(パケット・エラー、イベント、統計など)のログ記録、4)パケットの到着および送信の時刻の監視、5)プロトコルの状態およびコンテキストの遷移の実施、6)応答またはパケット・データ(コンテンツあり)の生成が含まれることを理解されたい。通信プロトコル層の処理により、パケットをさらに転送するか、処理またはドロップするかの決定が下される。通常、パケット・データの処理は、適用可能な標準および業界の同意に照らして行われることをさらに理解されたい。たとえば、処理の特定の態様(検査など)には、特定の受信値が既知または想定内かどうかの判別を、適用可能な標準または同意に基づいて行うことが含まれる。最後に、処理したデータを出力する(410)。この出力データは、いずれかのデータ型が認識されたかどうかの判別と、処理に関して上記で示したように、他のステータス照会(たとえば、データの各部分が有効かどうか)を含むことが好ましい。
IPオブザーバは、IP(インターネット・プロトコル)データの処理だけを行うように構成することも可能であることを理解されたい。この場合、他の有限状態機械(FSM)は、ICMP(インターネット制御メッセージ・プロトコル)パケット・データ、UDP(ユーザ・データグラム・プロトコル)パケット・データ、およびRTP(リアルタイム転送プロトコル)パケット・データを処理するように実装される。これらの機械の構成は、もちろん、IPオブザーバ54の構成と同様になる。
同様に、IPCPオブザーバ56は、その固有の目的に従ってパケット・データを処理する。図5に示すように、IPCPオブザーバ56は、まず、パケット・データを受け取る(502)。次に、パケットを観察する(504)。もちろん、この観察には、IPCP(インターネット・プロトコル制御プロトコル)データ(IPCPコードやパケット長など)の存在を確認することが含まれる。注目すべきは、HDLC(高レベル・データ・リンク制御)アドレス・フィールドと他の制御データ・フィールドが無視されることである。次に、IPCPデータを処理する(506)。ここでも同様に、この情報の処理(すなわち、IPCP通信プロトコル層の処理)には、1)パケット・データの認識(識別または解析)、2)パケット・フォーマットとしかるべきパラメータの検査、3)選択した情報(パケット・エラー、イベント、統計など)のログ記録、4)パケットの到着および送信の時刻の監視、5)プロトコルの状態およびコンテキストの遷移の実施、6)応答またはパケット・データ(コンテンツあり)の生成が含まれることを理解されたい。通信プロトコル層の処理により、パケットをさらに転送するか、処理またはドロップするかの決定が下される。通常、パケット・データの処理は、適用可能な標準および業界の同意に照らして行われることをさらに理解されたい。たとえば、処理の特定の態様(検査など)には、特定の受信値が既知または想定内かどうかの判別を、適用可能な標準または同意に基づいて行うことが含まれる。処理を終了したら、データを出力する(508)。出力データは、たとえば、IPCPパケットが観察されたかどうかの表示を含むことが好ましい。出力データはさらに、パケット長データが不良か、コードがサポートされていないか、データ型がサポートされていないかの理由でパケットをドロップするかどうかの表示を含む場合がある。出力データは、もちろん、処理内容に基づく。
同様かつ同時に、図6に示すように、LCPオブザーバ58は、まず、パケット・データを受け取る(602)。次に、そのパケット・データを観察する(604)。ここでも同様に、この観察は、LCP(リンク制御プロトコル)パケット・コードが存在することの確認を含む。他のデータ・フィールド(HDLC(高レベル・データ・リンク制御)アドレス・フィールドや制御フィールド)は無視される。次にLCPオブザーバは、検出したLCP(リンク制御プロトコル)パケット・データを処理する(606)。ここでも同様に、この情報の処理(すなわち、LCP通信プロトコル層の処理)には、1)パケット・データの認識(識別または解析)、2)パケット・フォーマットとしかるべきパラメータの検査、3)選択した情報(パケット・エラー、イベント、統計など)のログ記録、4)パケットの到着および送信の時刻の監視、5)プロトコルの状態およびコンテキストの遷移の実施、6)応答またはパケット・データ(コンテンツあり)の生成が含まれることを理解されたい。通信プロトコル層の処理により、パケットをさらに転送するか、処理またはドロップするかの決定が下される。通常、パケット・データの処理は、適用可能な標準および業界の同意に照らして行われることをさらに理解されたい。たとえば、処理の特定の態様(検査など)には、特定の受信値が既知または想定内かどうかの判別を、適用可能な標準または同意に基づいて行うことが含まれる。次に、処理したデータを出力する(608)。この出力データは、LCPパケットを受け取ったかどうかの表示と、他のステータス情報を含むことが好ましい。たとえば、出力データは、いずれかのコード、プロトコル、またはデータ型がサポートされていないかどうかの情報を含むことができる。さらに、無効なデータ長の表示も出力データに含めることができる。ここでも同様に、これらの出力形態は、処理工程に基づく。
LCPパケット・データとIPCPパケット・データの両方を処理することが、PPP(ポイントツーポイント・プロトコル)の確立に有効であることを理解されたい。この点においては、LCPデータの処理は、リンク・パラメータのネゴシエートが目的であり、IPCPデータの処理は、IPパラメータのネゴシエートが目的である。
図7に示すように、HDLCオブザーバ60は、処理700を、前述の諸処理と同様かつ同時に実行する。まず、パケット・データを受け取る(702)。次に、HDLC(高レベル・データ・リンク制御)アドレス・フィールドと選択された制御フィールドを調べる(704)。次に、データに対して、適切なテストを行う(706)。テストされるのは、アドレスおよび制御データの有効性である。ここでも同様に、パケット・データの処理は、通常、適用可能な標準および業界の同意に照らして行われることを理解されたい。たとえば、処理の特定の態様(アドレスおよび制御フィールドの検査など)には、特定の受信値が既知または想定内かどうかの判別を、適用可能な標準または同意に基づいて行うことが含まれる。無効なデータがあれば、さらなる処理の必要を示す、しかるべきインジケータが設定される。
すべての有限状態機械が同時に動作しているため、生成されたデータはその近くに蓄積される。この点においては、図8に示すように、パケット・ローダ62がこの機能800を実行する。パケット・ローダは、まず、パケット・データを受け取る(802)。パケット・ローダは、データを受け取ると、受信パケット・バッファ64にパケットをロードする(804)。パケット・ローダはさらに、IPオブザーバ54、IPCPオブザーバ56、LCPオブザーバ58、およびHDLCオブザーバ60から受け取ったパケット・ステータス情報をロードし、1つにまとめる(806)。次に、この情報を使用して、さらなる処理をハンドラに指示する。次に、しかるべきデータを出力する(808)。
本発明によって実装される有限状態機械(および/または有限状態機械の集合)は、FPGA(フィールド・プログラマブル・ゲートアレイ)として実装されることが好ましいことを理解されたい。当業者であれば、しかるべきキャプチャ言語による、そのようなデバイスのプログラミングの詳細については理解されよう。しかしながら、少なくとも1つの実施形態においては、参照により本明細書に組み込まれている同時係属の、2001年10月11日に出願し(米国出願第09/975,113号)、2003年10月16日に公開された(米国公開第2003/0196194 A1号)米国特許出願「Hardware Design Protocol and System」(Clifford R.Johns、David A.Pierceら)で開示および説明されている言語を使用するのが有利であろう。さらに、FPGAの代替となるものの使用も可能である。そのような代替として、ASIC(特定用途向け集積回路)がある。
有限状態機械をこの回路部分に実装することは、本発明の単なる例示であることを理解されたい。同様の機能性は、通信プロトコルの処理の役割を担う他のネットワーク部分でも、有限状態機械を用いて実装することが可能である。たとえば、ハンドラ68および69も同様に、有限状態機械を用いて実装することが可能である。図2に戻ると、ハンドラ68は、RTPハンドラ68a、ICMPハンドラ68b、IPCPハンドラ68c、およびLCPハンドラ68dを有するように示されている。同様に、ハンドラ69は、RTPハンドラ69a、ICMPハンドラ69b、IPCPハンドラ69c、およびLCPハンドラ69dを有するように示されている。これらのハンドラは、オブザーバ54〜60と同様または同等に構成され、運用され、機能する。ただし、これらは、パケット・データを受信のために処理するのではなく(オブザーバ内では受信のために処理する)、パケット・データを送信のために処理する。すなわち、ハンドラ68は、パケット・データを、スイッチ・ファブリックへの送信のために処理し、ハンドラ69は、パケット・データを、送信処理回路70およびインターフェース・モジュール52を介して送信するために処理する(たとえば、応答パケットなどを生成する)。注目すべきは、両ハンドラとも、要素54〜62との関連で前述した同じ技法を用いて、種々の通信プロトコル層を並列に処理するようにパケット・データを処理する点である(パケット送信か、パケット受信かという点が異なる)。ただし、この処理段階にはすべての通信プロトコル層が存在しているわけではないことは理解されよう。たとえば、IP層は、ハンドラでは処理されない。さらに、ハンドラは、様々な方式で、特定のハンドラで複数の層の処理を合体するよう構成することもできる。たとえば、ハンドラ68および69では、HDLC層の処理を他のハンドラ内(つまり、RTP、ICMP、IPCP、またはLCPハンドラ内)で行う。
回路内の様々な場所や他の環境での本発明のあらゆる実施態様において、目的はほぼ同じである。すなわち、様々なプロトコル層を並列に、ほんの数クロック・サイクル以内で処理することにより、処理の効率と連続性を高めることができる。処理は回線レートで行うことができ、通信プロトコルを処理するために多数のソフトウェア層を実装した状況で用いていた従来型の蓄積転送アプローチを用いずにすむ。
以上の説明は、単に、本発明の特定の実施形態を開示するものであり、それらの実施形態と同じに限定することを意図したものではない。したがって、本発明は、前述の実施形態のみには限定されない。むしろ、当業者であれば、本発明の範囲内で代替の実施形態を考案することが可能であろうことが認識される。
以上の説明は、単に、本発明の特定の実施形態を開示するものであり、それらの実施形態と同じに限定することを意図したものではない。したがって、本発明は、前述の実施形態のみには限定されない。むしろ、当業者であれば、本発明の範囲内で代替の実施形態を考案することが可能であろうことが認識される。
Claims (10)
- 複数の通信プロトコル層を有するパケット・データの処理装置であって、
前記パケット・データを受信するよう動作するインターフェース・モジュール、
各有限状態機械の集合が、前記パケット・データの前記複数の通信プロトコル層のうちの選択された層を処理し、処理結果に基づく出力データを生成するよう動作する少なくとも1つの第1の有限状態機械の集合、及び
前記パケット・データを蓄積し、前記出力データを処理するよう動作する第2の有限状態機械の集合からなり、
前記少なくとも1つの第1の有限状態機械の集合と前記第2の有限状態機械の集合が並列に動作し、これによって、前記パケット・データの前記複数のプロトコル層が回線レートで処理される装置。 - 請求項1に記載の装置であって、前記少なくとも1つの第1の有限状態機械の集合と前記第2の有限状態機械の集合がフィールド・プログラマブル・ゲートアレイで形成される装置。
- 請求項1に記載の装置であって、前記少なくとも1つの第1の有限状態機械の集合と前記第2の有限状態機械の集合が特定用途向け集積回路で形成される装置。
- 請求項1に記載の装置であって、前記複数の通信プロトコル層が、IP(インターネット・プロトコル)層、ICMP(インターネット制御メッセージ・プロトコル)層、RTP(リアルタイム転送プロトコル)層、UDP(ユーザ・データグラム・プロトコル)層、IPCP(インターネット・プロトコル制御プロトコル)層、LCP(リンク制御プロトコル)層、およびHDLC(高レベル・データ・リンク制御プロトコル)層を含む装置。
- 請求項1に記載の装置であって、前記少なくとも1つの第1の有限状態機械の集合のうちのいずれかがIP(インターネット・プロトコル)データ、ICMP(インターネット制御メッセージ・プロトコル)データ、UDP(ユーザ・データグラム・プロトコル)データ、およびRTP(リアルタイム転送プロトコル)データを処理する装置。
- 請求項1に記載の装置であって、前記少なくとも1つの第1の有限状態機械の集合のうちのいずれかがIPCP(インターネット・プロトコル制御プロトコル)データを処理する装置。
- 請求項1に記載の装置であって、前記少なくとも1つの第1の有限状態機械の集合のうちのいずれかがLCP(リンク制御プロトコル)データを処理する装置。
- 請求項1に記載の装置であって、前記少なくとも1つの第1の有限状態機械の集合のうちのいずれかがHDLC(高レベル・データ・リンク制御プロトコル)データを処理する装置。
- 複数の通信プロトコル層を有するパケット・データの処理装置であって、
前記パケット・データを受信するよう動作するインターフェース・モジュール、
第1のプロトコル層データを処理するよう動作する第1のワイヤード・ロジック・デバイス、
第2のプロトコル層データを処理するよう動作する第2のワイヤード・ロジック・デバイス、
第3のプロトコル層データを処理するよう動作する第3のワイヤード・ロジック・デバイス、
第4のプロトコル層データを処理するよう動作する第4のワイヤード・ロジック・デバイス、及び
前記パケット・データを蓄積し、前記第1、第2、第3、および第4のワイヤード・ロジック・デバイスから出力されたデータを処理するよう動作する第5のワイヤード・ロジック・デバイスからなり、
前記第1、第2、第3、第4、および第5のワイヤード・ロジック・デバイスが並列に動作し、これによって、前記パケット・データの前記複数のプロトコル層が回線レートで処理される装置。 - 複数の通信プロトコル層を有するパケット・データの処理方法であって、
前記パケット・データを受信するステップ、及び
ワイヤード・ロジックを用いて前記パケット・データの各層を並列に回線レートで処理するステップ
からなる方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/746,624 US20050141557A1 (en) | 2003-12-24 | 2003-12-24 | Method and apparatus for parallel processing of communication protocols |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005192220A true JP2005192220A (ja) | 2005-07-14 |
Family
ID=34552888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004372442A Pending JP2005192220A (ja) | 2003-12-24 | 2004-12-24 | 通信プロトコルの並列処理の方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20050141557A1 (ja) |
EP (1) | EP1549015A1 (ja) |
JP (1) | JP2005192220A (ja) |
KR (1) | KR20050065323A (ja) |
CN (1) | CN1638382A (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7352707B2 (en) * | 2003-05-28 | 2008-04-01 | D-Link Corporation | Processing method enabling each unit in stacking network device to run rapid spanning tree protocol |
US8045564B2 (en) * | 2005-09-12 | 2011-10-25 | Microsoft Corporation | Protocol-level filtering |
US20070242697A1 (en) * | 2006-04-14 | 2007-10-18 | Declan Caulfield | Method and apparatus for processing data at physical layer |
KR20130040090A (ko) * | 2011-10-13 | 2013-04-23 | 삼성전자주식회사 | 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법 |
US20150236904A1 (en) * | 2014-06-02 | 2015-08-20 | Hsiaokuei Tsui | Internet Device Architecture to Save Power And Cost |
US10334085B2 (en) | 2015-01-29 | 2019-06-25 | Splunk Inc. | Facilitating custom content extraction from network packets |
CN107395631B (zh) * | 2017-08-24 | 2020-08-04 | 科芯(天津)生态农业科技有限公司 | 一种hdiot通信技术平台 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0537407B1 (en) * | 1991-10-14 | 1996-04-17 | International Business Machines Corporation | Flexible encoding method and architecture for high-speed data transmission and storage |
US6836838B1 (en) * | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
US7035247B2 (en) * | 1998-07-22 | 2006-04-25 | Synchrodyne Networks, Inc. | Link transmission control with common time reference |
US6721555B1 (en) * | 1999-02-19 | 2004-04-13 | Qualcomm Incorporated | System and method for facilitating device authentication in a wireless communications system |
US6952409B2 (en) * | 1999-05-17 | 2005-10-04 | Jolitz Lynne G | Accelerator system and method |
US6868069B2 (en) * | 2001-01-16 | 2005-03-15 | Networks Associates Technology, Inc. | Method and apparatus for passively calculating latency for a network appliance |
WO2002060150A2 (en) * | 2001-01-24 | 2002-08-01 | Broadcom Corporation | Method for processing multiple security policies applied to a data packet structure |
US6934302B2 (en) * | 2001-05-11 | 2005-08-23 | Alcatel | Context switching system and method for implementing a high speed link (HSL) in a network element |
US7451216B2 (en) * | 2001-06-14 | 2008-11-11 | Invision Networks, Inc. | Content intelligent network recognition system and method |
US20030196194A1 (en) * | 2001-10-11 | 2003-10-16 | Johns Clifford R. | Hardware design protocol and system |
US7180893B1 (en) * | 2002-03-22 | 2007-02-20 | Juniper Networks, Inc. | Parallel layer 2 and layer 3 processing components in a network router |
KR20030080443A (ko) * | 2002-04-08 | 2003-10-17 | (주) 위즈네트 | 하드웨어 프로토콜 프로세싱 로직으로 구현된 인터넷 통신프로토콜 장치 및 상기 장치를 통한 데이터 병렬 처리 방법 |
US9032065B2 (en) * | 2004-07-30 | 2015-05-12 | Qualcomm Incorporated | Fast link establishment for network access |
-
2003
- 2003-12-24 US US10/746,624 patent/US20050141557A1/en not_active Abandoned
-
2004
- 2004-11-25 EP EP04257332A patent/EP1549015A1/en not_active Ceased
- 2004-12-17 KR KR1020040107799A patent/KR20050065323A/ko not_active Application Discontinuation
- 2004-12-22 CN CNA2004101046174A patent/CN1638382A/zh active Pending
- 2004-12-24 JP JP2004372442A patent/JP2005192220A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP1549015A1 (en) | 2005-06-29 |
KR20050065323A (ko) | 2005-06-29 |
CN1638382A (zh) | 2005-07-13 |
US20050141557A1 (en) | 2005-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7773599B1 (en) | Packet fragment handling | |
US7616562B1 (en) | Systems and methods for handling packet fragmentation | |
US8503450B2 (en) | TCP receiver acceleration | |
JP5497564B2 (ja) | セッションアクティブチェッカを有する並列パケットプロセッサ | |
US7936758B2 (en) | Logical separation and accessing of descriptor memories | |
US8121148B2 (en) | Protocol stack using shared memory | |
US8085780B1 (en) | Optimized buffer loading for packet header processing | |
US7269661B2 (en) | Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet | |
JP2012050091A (ja) | ダイナミックmplsラベル割り当てを用いるトラフィックジェネレータ | |
US9319441B2 (en) | Processor allocation for multi-core architectures | |
JP2005192220A (ja) | 通信プロトコルの並列処理の方法および装置 | |
US7239630B1 (en) | Dedicated processing resources for packet header generation | |
US7158520B1 (en) | Mailbox registers for synchronizing header processing execution | |
US8572260B2 (en) | Predetermined ports for multi-core architectures | |
US7180893B1 (en) | Parallel layer 2 and layer 3 processing components in a network router | |
JP2007259374A (ja) | ネットワーク送受信装置 | |
JPWO2007010593A1 (ja) | Tcpセッションエミュレーション装置 | |
JP3491724B2 (ja) | データ受信装置 | |
Borslehag | Implementation of a Gigabit IP router on an FPGA platform | |
JP2006203935A (ja) | 送信装置、受信装置およびそれらの方法 | |
JP2004129295A (ja) | ルータ装置、データ通信ネットワークシステム及びデータ転送方法 |