JP2001510947A - コンピュータシステムにおけるネットワークパケットの高速転送及びフィルタリング - Google Patents
コンピュータシステムにおけるネットワークパケットの高速転送及びフィルタリングInfo
- Publication number
- JP2001510947A JP2001510947A JP2000502461A JP2000502461A JP2001510947A JP 2001510947 A JP2001510947 A JP 2001510947A JP 2000502461 A JP2000502461 A JP 2000502461A JP 2000502461 A JP2000502461 A JP 2000502461A JP 2001510947 A JP2001510947 A JP 2001510947A
- Authority
- JP
- Japan
- Prior art keywords
- network
- packet
- network card
- card
- processing unit
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
- Communication Control (AREA)
Abstract
Description
コンピュータ環境におけるネットワークパケットのルーティング及びフィルタリ
ングに関する。
れる。かかるネットワークに接続されたコンピュータシステムは、それらの電気
的な接続を介して情報を送信することによって互いに通信する。ネットワークは
、種々のタイプのトポロジーに編成される。図1は、かかるトポロジーのひとつ
を図示する。ネットワーク100は、ルーティングシステム103に接続された
種々のローカルエリアネットワーク101−102を含む。各ローカルエリアネ
ットワークのコンピュータシステムは、通信リンク101a−102aで接続さ
れる。ローカルエリアネットワークのソースコンピュータシステムが情報を同じ
ローカルエリアネットワークの宛先コンピュータシステムに送信するとき、ソー
スコンピュータシステムは、宛先コンピュータシステムのアドレスを含むパケッ
トを準備し、通信リンクでパケットを伝送する。同じローカルエリアネットワー
ク(即ち、通信リンクに接続されている)他のコンピュータシステムは、伝送さ
れたパケットを読む。宛先コンピュータシステムは、そのアドレスがそのパケッ
トに含まれていることを検出し、それに応じてパケットを処理する。地理的及び
速度を考慮するので、ローカルエリアネットワークは典型的には、近接している
制限された数のコンピュータシステムだけを含む。例えば、様々な場所にオフィ
スを有する会社は、各場所でローカルエリアネットワークを有する。しかしなが
ら、コンピュータシステムのユーザは、ローカルエリアネットワークに関係なく
パケットを互いに送信する必要があり、ユーザのコンピュータシステムは接続さ
れる。
ークへ送信することができることにより、ルーティングシステムが開発された。
ルーティングシステムは典型的には、各ローカルエリアネットワークが接続され
る専用の特定の目的のコンピュータシステムである。ルーティングシステムは、
コンピュータシステムアドレスと、各コンピュータシステムが接続されるローカ
ルエリアネットワークとの間でクロスリファレンスを維持する。あるローカルエ
リアネットワークのコンピュータシステムが、他のローカルエリアネットワーク
のコンピュータシステムにパケットを送信するとき、ルーティングシステムは、
各ローカルエリアネットワークに送信されたパケットを監視する。ルーティング
システムがかかるパケットを検出するとき、それは、宛先コンピュータシステム
が接続されるローカルエリアネットワークに関する通信リンクにそのパケットを
転送する。この場合、ルーティングシステムは、ルーティングシステムは、全体
的なネットワーク内に各ローカルエリアネットワークを相互接続する。同様なル
ーティング技術は、ローカルエリアネットワークではないネットワークを相互接
続するのに使用される。例えば、かかるルーティング技術は、ワイドエリアネッ
トワーク及びインターネットで使用することができる。
ができるように開発されてきた。2つのコンピュータシステムが同じプロトコル
をサポートするならば、それらは情報を交換することができる。あるプロトコル
が、あるタイプの情報交換を十分にサポートするために作られた。例えば、イン
ターネットプロトコル(「IP」)は、地理的に離隔したコンピュータシステム
の間で情報の交換を容易にするために米国国防省によって指定された。IPは、
データを交換するためにソース及び宛先コンピュータシステムを識別するパケッ
トフォーマットにおいて宛先を指定するが、データ自身のフォーマットは指定し
ない。種々の更なるプロトコルが、データのフォーマットを指定するためにIP
と一緒に使用されうる。一つの更なるプロトコルは、伝送制御プロトコル(「T
CP」)である。TCPは更に、パケットのデータのフォーマットを特定するハ
イパーテキスト伝送プロトコル(「HPPT」)及びファイル転送プロトコル(
「FTP」)のようなサブプロトコルを特定する。
る概略図である。パケットは、プロトコル特定データが続くネットワークルーテ
ィングヘッダを含む。ネットワークルーティングヘッダは、宛先コンピュータア
ドレスと、ソースコンピュータアドレスと、パケットの長さとを含む。IPがI
P宛先アドレスと、IPソースアドレスと、パケットのIP部分の長さとを含む
場合、プロトコル特定データは、プロトコルの識別を含む。パケットのデータ部
分は、パケットの他のデータのサブプロトコル識別を含む。
キャッシュ機構をしばしば利用する。パケットが受信されたとき、ルーティング
システムは、ローカルエリアネットワークのそのクロスリファレンスにアクセス
し、パケットがルーティングされるべきローカルエリアネットワークを判断する
。次いで、ルーティングシステムは、キャッシュにそのルーティング情報をスト
アする。次のパケットが受信されるとき、ルーティングシステムはそのキャッシ
ュをチェックし、パケットに関するルーティング情報がキャッシュにあるならば
、ルーティングシステムはキャッシュの情報に従ってパケットを転送する。かか
るキャッシュ技術がパケットのルーティングの高速化を助けるけれども、パケッ
トフィルタリングが適用されるとき、かかるキャッシュ技術は、ルーティングシ
ステムによって使用されない。
ットのタイプ及びタイミングを制限するためにネットワーク管理者によって適用
される。例えば、ネットワーク管理者は、通常のビジネスアワー中にネットワー
クにわたって伝送されているコンピュータゲームによって生成されたパケットを
制限したいと思う。例えば、パケットを受信するIP宛先アドレスによって識別
されたコンピュータシステムのアプリケーションを示すTCP宛先アドレスによ
って、コンピュータゲームに関するパケットが識別可能である。従って、ネット
ワーク管理者は、通常のビジネスアワー中にかかるいかなるパケットを転送しな
いようにルーティングシステムを構成することができる。また、ネットワーク管
理者は、それらのソース及び宛先アドレスに基づいてパケットをフィルタアウト
したいと思う。例えば、会社のCEOだけが、ネットワークの全てコンピュータ
システムでない所定のソースコンピュータシステムからのパケットを受信したい
と思う。フィルタリングが在来のルーティングシステムに適用されるとき、キャ
ッシングは不能であり、クロスリファレンス情報及びフィルタリング情報をチェ
ックするより遅いプロシージャが全てのパケットに関して使用される。従って、
キャッシュが使用できないので、かかるフィルタリングされたパケットの処理だ
けでなく、全てのパケットの処理が遅くなる。
汎用コンピュータシステムで実施される。「高速転送」は、メイン中央演算処理
装置がルーティングを実行することではなく、ネットワークカードがルーティン
グを実行することを指す。コンピュータシステムは、メイン中央演算処理装置と
、該コンピュータシステムを複数のネットワークと接続するためのネットワーク
カードとを有する。ネットワークパケットは、ネットワークカードに受信され、
ネットワークの選択された1つに運命付けられる。受信されたネットワークパケ
ットは、ネットワークパケットがネットワークカードによってその宛先ネットワ
ークに転送されるべきか、又は、メイン中央演算処理装置によってルーティング
されるべきかどうかを判断するためにネットワークカードによって解析される。
ネットワークパケットがネットワークカードによって宛先ネットワークに転送さ
れるべきであると判断されたとき、それはメイン中央演算処理装置の介入なしで
高速転送される。
ットワークに接続するために提供される。ネットワークカードは、高速転送機構
と、複数のネットワークと接続するための複数のポートとを含む。高速転送機構
は、ネットワークカードに受信されたネットワークパケットを、コンピュータシ
ステムのメイン中央演算処理装置による介入なしで宛先ネットワークに高速転送
する。
ティブになる。特に、ネットワークカードで受信されるネットワークパケットを
処理するための方法が、コンピュータシステムで実施される。高速転送は、ネッ
トワークカードに受信された選択されたネットワークパケットが、メイン中央演
算処理装置の介入なしでネットワークカードによって少なくとも1つの宛先ネッ
トワークに高速転送されるようにアクティブである。フィルタリングは、メイン
中央演算処理装置が、ネットワークパケットが受信されたか又はドロップされた
かどうかを判断するためにネットワークカードに受信されたネットワークパケッ
トの少なくともいくつかにフィルタリングを適用するような高速転送で同時にア
クティブである。
ャッシュ機構を使用するルーティングパケットに関する方法及び装置を提供する
。高速転送システムとも呼ばれる本発明のルーティングシステムは、ルーティン
グ情報のキャッシングをすることができる仕方において、及び、コンピュータシ
ステムのメイン中央処理装置に位置決められたオーバーヘッドを最小にする仕方
において、汎用コンピュータシステムで実施される。従って、高速転送システム
は、フィルタリングのときにキャッシングすることができるだけでなく、キャッ
シュ機構を採用する汎用コンピュータで行うことができる。
びに、インターネットプロトコル拡張(IPX)パケットを転送及びフィルタリ
ングする実施形態に対して以下に記載する。それにもかかわらず、当業者は、本
発明が、これらのタイプのネットワークパケットで単独で作動する実施形態に限
定されず、むしろ、本発明がまた他のタイプのネットワークパケットで実施され
ることを認識するであろう。
図である。コンピュータシステムは、多数の異なるコンピュータネットワークに
接続される。コンピュータシステムは、バス16を介してネットワークカード1
4に接続される中央演算処理装置(CPU)12を含む。ネットワークカードは
、ネットワークインターフェース接続(「NIC」)と呼ばれる複数のポートを
含む。各NICは、ネットワークの通信リンクと接続され、ネットワークでパケ
ットを送信及び受信するのに使用される。典型的なタイプのネットワークカード
は、802.3、DIX、TR、FastEthernet及びFDDIカードを含む。コンピュ ータシステムは、ネットワークオペレーティングシステムのようなオペレーティ
ングシステム18を稼働させる。以下に議論の目的で、オペレーティングシステ
ムが米国ワシントン州レドモンドにあるマイクロソフトコーポレーションによっ
て販売されているMicrosoft(登録商標)Windows(登録商標)NTネットワーク
オペレーティングシステムであると仮定する。オペレーティングシステムは、I
Pネットワークパケットのフィルタリングを実施するためのIPフィルタリング
コンポーネント22、及び、IPネットワークパケットをルーティングするため
のIP転送コンポーネント24という多数の異なるコンポーネントを含む。オペ
レーティングシステムはまた、IPXフィルタリングコンポーネント26と、I
PXネットワークパケットをルーティングするためのIPX転送コンポーネント
を含む。オペレーティングシステムはまた、ネットワークドライバインターフェ
ーススペシフィケーション(NDIS)ドライバコンポーネント30を有する。
NDISドライバコンポーネントは、オペレーティングシステムとネットワーク
カードとの間にインターフェースを提供する。オペレーティングシステムは、ネ
ットワークパケットを送信及び受信するために、NDISドライバのサービスを
呼び出す。
図である。ネットワークカードは、多数の異なるコンピュータネットワークを伴
うルーティングシステムを接続するためのコンポーネントを含む。ネットワーク
カードは、多数のNICを含む。これらのNICは、NIC1,NIC2,NI
C3及びNIC4として指定される。ネットワークカードはまた、マイクロプロ
セッサ32,イーサネットチップ34、ランダムアクセスメモリ(RAM)のよ
うなストレージ36とを含む。ストレージは、高速転送キャッシュ76及び入力
パケットキャッシュ80を含む。1つの高速転送キャッシュと1つの入力パケッ
トキャッシュとが示されているが、当業者は、別個のバージョンのこれらのキャ
ッシュがIPネットワークパケット及びIPXネットワークパケットに関して使
用されうることを認識するであろう。高速転送キャッシュは、ネットワークカー
ドによってネットワークパケットの高速転送を容易にする情報を保持する。以下
により詳細に記載するように、高速転送キャッシュは、入力ネットワークパケッ
トが、ネットワークカードによって高速転送されるべきかどうか判断するために
比較されるルックアップテーブルとして機能する。
ピュータシステム10の共用のメモリにストアされる。ネットワークカードがパ
ケットを受信するとき、メイン中央演算ユニットを中断することなく高速転送キ
ャッシュにアクセスするために共用メモリにアクセスする。また、各ネットワー
クカードは、各ネットワークカードに接続されたローカルエリアネットワークの
間のマッピングに対するアクセスを有する。この場合、各ネットワークカードは
、他のネットワークカードに接続されたローカルエリアネットワークにパケット
をルーティングすることができる。
ンテンツを図示する。キャッシュは、高速転送されるべきパケットの各一意的な
パケット識別子に関する行を有する。各行は、高速転送されるべきパケットを識
別するパケット識別子と、宛先コンピュータシステムを示すネットワークアドレ
スと、パケットに適用されるべきフレーミングのタイプを示すフレーミングフィ
ールドと、そのパケット識別子を備えるパケットが伝送されるべきネットワーク
カードのポートを識別するNICポート番号とを包含する。パケット識別子は、
同じ方法で高速転送されるべきパケットを識別するパケットからのフィールドの
結合である。図5Aに示したように、高速転送キャッシュは、最初は空である。
ネットワークカードがパケットを受信するとき、対応するパケット識別子を備え
る行がキャッシュにあるかどうか判断するためにキャッシュをチェックする。こ
の場合、キャッシュが空なので、行がなく、ネットワークカードはNDISドラ
イバを介してパケットをオペレーティングシステムに転送する。ネットワークカ
ードはまた、パケットを入力パケットキャッシュにストアする。オペレーティン
グシステムがパケットを受信するとき、どんなフィルタを適用するか、パケット
が別のネットワークに転送される必要があるかどうかを判断する。適用するフィ
ルタがなく、パケットが転送されるべきならば、オペレーティングシステムは、
適当なローカルエリアネットワークに転送するためにNDISドライバを介して
ネットワークカードにパケットを戻す。ネットワークカードがパケットを受信す
るとき、それは、図5Bに示したような高速転送キャッシュにエントリをストア
する。この場合、パケット識別子「<A5,B2,TCP,14,25>」は、IPソースアドレ スが「A5」であり、IP宛先がアドレス「B2」であり、プロトコルが「TCP」で あり、TCPソースポートが14であり、TCP宛先ポートが25であることを示す
。そのパケット識別子を備えるパケットがルーティングされるべきネットワーク
アドレスは「E7」である。出力パケットは、802.3プロトコルに従ってフレーム され、パケットはNICポート番号3を介してルーティングされるべきである。
次いで、ネットワークカードは、入力パケットキャッシュからパケットを受信し
、ルーティングのためにパケットを準備し、NICポートを介してパケットを伝
送する。ネットワークカードがそのパケット識別子を備える次のパケットを受信
するとき、それはパケット識別子を生成し、そのパケット識別子を備える行が高
速転送キャッシュにあるかどうか判断する。もしそうならば、ネットワークカー
ドは、行を受信し、パケットに関するネットワークアドレスを更新し、802.3プ ロトコルに従うフレーミングを調整し、パケットをNICポート番号3に伝送す
る。処理のパートのように、ネットワークカードはまた、パケットのtime-to-li
veフラグを減少させる。time-to-liveフラグは、最初に時間の数に設定され、パ
ケットは宛先のその道にルーティングされる。time-to-liveフラグがゼロに下が
ったならば、パケットは再びルーティングされず、ネットワークカードはそれを
転送しないことによってパケットを落とす。また、パケットのチェックサムが正
しくないとき、ネットワークカードはまたパケットを落とす。
る。ネットワークカードは、そのパケットに関するパケット識別子を生成し、そ
のパケット識別子に関するキャッシュに行がないかどうか判断する。次いで、ネ
ットワークカードは、そのパケットをオペレーティングシステムに転送する。オ
ペレーティングシステムは、適当なフィルタリングを適用する。この場合、オペ
レーティングシステムは、パケットが転送されないべきかどうか判断する。従っ
て、オペレーティングシステムは、パケットをネットワークカードに転送しない
。従って、ネットワークカードは、パケット識別子に関する行を包含するように
キャッシュを更新しない。従って、次のパケットがパケット識別子で受信される
とき、ネットワークカードはパケット識別子を生成し、そのパケット識別子に関
するキャッシュに行がなく、オペレーティングシステムにパケットを送信するか
どうか判断する。図5Cは、別のパケットに関するパケットが受信され、高速転
送キャッシュがそのパケットに関して更新された後のキャッシュのコンテンツを
図示する。この場合、パケット識別子は、「<E1,B2,UDP,36,97>」であり、ネッ トワークキャッシュアドレスは「A5」であり、フレーミングはイーサネットであ
り、NICポートアドレスは1である。時折、オペレーティングシステムは、そ
のルーティング情報を変更するための要求を受信する。例えば、コンピュータシ
ステムが、あるローカルエリアネットワークから取り除かれ、別のローカルエリ
アネットワークに取り付けられる。かかる場合、そのコンピュータシステムにル
ーティングされたパケットは、異なるNICポートを介して伝送される必要があ
る。オペレーティングシステムがそのルーティング情報を更新するとき、それは
また、キャッシュにおける情報がもはや正当でないので、その高速転送キャッシ
ュをフラッシュするようにネットワークカードに指示する。ネットワークカード
は、図5Dに示したようにそのキャッシュから全てのエントリを除去することに
よってそのキャッシュをフラッシュする。
響しない特定の情報を更新する。かかる状況では、オペレーティングシステムは
、ルーティング情報の更新された部分に関してその高速転送キャッシュの部分だ
けをフラッシュするようにネットワークカードに指示する。例えば、オペレーテ
ィングシステムは、イーサネットアドレスに対するIPアドレスのマッピングを
保持しうる。パケットが、所定の時間で所定のイーサネットアドレスに送信され
なければ、オペレーティングシステムは、そのイーサネットアドレスに関するマ
ッピングを削除し、イーサネットアドレスに関する高速転送キャッシュの部分だ
けをフラッシュするようにネットワークカードに指示する。この場合、ネットワ
ークカードは、フラッシュされないキャッシュの部分に基づいて高速転送パケッ
トを続けることができる。
す。図6Aは、IPパケットヘッダ38から高速転送する際に使用されるフィー
ルドを示す。IPパケットヘッダ38内のオフセット12には、パケットが生成
されるソースに関するアドレスを保持するソースアドレスフィールド40がある
。オフセット16には、パケットが予定付けられた宛先に関するアドレスを保持
する宛先アドレスフィールド42がある。IPパケットヘッダ38内のオフセッ
ト9にはプロトコルフィールド44があり、TCPのようなプロトコルを示す。
図6Bは、TCPパケットヘッダ44のフィールドを示す。オフセット0にはソ
ースポートフィールド46が見られ、パケットを送信するアプリケーションのソ
ースポートを識別する値を保持する。宛先ポートフィールド48がオフセット2
に見られ、パケットが送信されるアプリケーションの宛先ポートを識別する値を
保持する。図6Cは、オフセット0にソースポートフィールド52と、オフセッ
ト2に宛先ポートフィールド54とを含むUDPパケットヘッダ50の一部を示
す。図6Dは、オフセット0でタイプフィールドと、オフセット1でコードフィ
ールドとを保持するICMPパケット56を示す。最後に、図6Eは、オフセッ
ト6に宛先アドレス66と、オフセット18にソースアドレスフィールド68と
、オフセット5にパケットフィールド64とを有するIPXヘッダ62を示す。
に伝送される。パケットフラグメントが受信されるとき、それらはパケットに再
構築される。しかしながら、パケットフラグメントは、高速転送キャッシュにお
ける情報を一意的に識別するのに使用されるパケット識別子の全ての情報を包含
するわけではない。むしろ、パケットフラグメントは、フラグメント化されたフ
ラグと、識別子フィールドとを包含する。パケットがフラグメント化されるとき
、一意的なパケット識別子が各パケットフラグメントに位置決めされ、フラグメ
ント化されたフラグが設定される。フラグメント化されたパケットが受信される
とき、ネットワークカードは、識別子がフラグメントキャッシュにあるかどうか
最初にチェックする。もしそうならば、ネットワークカードはパケットを高速転
送し、そうでなければ、フラグメントをオペレーティングシステムにパスし、伝
送されるときそれをフラグメントキャッシュに加える。この場合、ネットワーク
カードはパケットフラグメントを高速転送することができる。
ーティングシステムによって実施される処理を図示する流れ図である。図7は、
ネットワークからパケットを受信するネットワークカードのルーチンの流れ図で
ある。このルーチンは、パケットを受信し、パケットに関する高速転送情報が高
速転送キャッシュにあるかどうか判断する。高速転送情報がキャッシュにあるな
らば、ルーチンはパケットを高速転送し、さもなければ、ルーチンはパケットを
NDISドライバに送信する。ステップ701では、ルーチンは、受信されたネ
ットワークパケットからパケット識別子を抽出する。ステップ702では、高速
転送キャッシュにおける行が抽出されたパケットと適合するならば、ルーチンは
ステップ704に続き、そうでなければルーチンはステップ703に続く。ステ
ップ703では、ルーチンは、パケットを入力キャッシュにストアし、パケット
をオペレーティングシステムに転送し、完了するNDISドライバにパケットを
転送する。ステップ704乃至706では、ルーチンは、パケットを高速転送す
る。ステップ705では、ルーチンはネットワークソースと、高速転送キャッシ
ュからの情報を備えるパケットにおける宛先アドレスとを更新する。ステップ7
06では、ルーチンは、必要ならば、パケットのフレーミングを調整する。ステ
ップ707では、ルーチンは、更新されたパッケージを、キャッシュに示された
NICポートに伝送し、完了する。更に、ルーチンは、パケットにおけるtime-t
o-liveフィールドを更新する。time-to-liveフィールドの値がゼロに落ちるなら
ば、ルーチンはパケットを落とす。ルーチンはまた、適当にパケットのチェック
サムを更新する。例えば、ルーチンは、time-to-liveフィールドの更新された値
に基づいてIPヘッダチェックサムを再計算する。パケットにおけるオプション
フィールドが設定されるならば、ルーチンは、パケットを高速転送するのではな
く、オペレーティングシステムにパケットを送信する。オプションフィールドは
、パケットが転送される前に、更なる処理が必要であることを示す。いかなる理
由によってでも、ネットワークカードがパケットを処理することができないなら
ば、それは更なる処理に関してオペレーティングシステムにパケットを送信する
。例えば、IPヘッダチェックサムが正しくなく、又は、IPヘッダtime-to-li
veがゼロであるならば、ネットワークカードはパケットをオペレーティングシス
テムに転送する。
に関するルーチンの流れ図である。ルーチンがパケットをNDISドライバから
受信するとき、それは結果的に高速転送キャッシュを更新し、パケットを転送す
る。ステップ801では、ルーチンは行を生成し、行を高速転送キャッシュに追
加する。ステップ802では、ルーチンは、パケットを入力パケットキャッシュ
から検索し、必要に応じてパケットのフレーミングを調整する。ステップ803
では、ルーチンはパケットを行によって示されたNICポートに伝送し、完了す
る。
ティングシステムのルーチンの流れ図である。このルーチンは、パケットを落と
すかどうか判断するためのその種々のフィルタリング基準をチェックする。パケ
ットが落ちるならば、ルーチンは、ネットワークカードに対するパケットの転送
を抑制する。ステップ901では、ルーチンは、受信されたパケットに対する種
々のフィルタリング基準を適用する。フィルタリング基準は、あるIP宛先アド
レスに送信されるパケットを落とすこと、又は、あるTCP宛先ポートに差し向
けられたパケットを落とすことを含む。フィルタリング情報は、ネットワーク管
理者によって典型的には保持される。ステップ902では、受信されたパケット
がフィルタアウトされているならば、ルーチンは完了し、そうでなければ、ルー
チンはステップ903に続く。完了することにより、パケットがフィルタアウト
されるとき、ルーチンはパケットのドロップに影響する。ステップ903では、
ルーチンは、新しいネットワークソースと、ルーティングテーブルからのパケッ
トに関する宛先アドレスとを検索する。ステップ905では、ルーチンは、パケ
ットをネットワークカードに転送するNDISドライバにパケットを送信する。
次いで、ルーチンは終了する。
ルーチンの流れ図を示す。ルーチンは、新しいルーティング指令を受信し、その
ルーティングテーブルを更新し、高速転送キャッシュをフラッシュするためにN
DISドライバを通知する。NDISドライバは、その高速転送キャッシュをフ
ラッシュするために、ネットワークカードを順番に通知する。
の範囲に記載された本発明の範囲から逸脱することなく種々の変更がなされるこ
とを認識しているだろう。例えば、本発明の高速転送技術は変形実施形態として
、ネットワークカードではなく、NDISドライバによって実施されうる。かか
る実施では、標準のネットワークカードは修正なく使用されうる。NDISドラ
イバは高速転送キャッシュを維持し、パケットの高速転送を制御する。NDIS
ドライバは、パケットをネットワークカードから受信するとき、パケットが高速
転送されるべきかどうか判断するためにそのキャッシュをチェックする。パケッ
トが高速転送されるべきならば、NDISドライバは、パケットを転送するため
に適当なネットワークカードに差し向ける。さもなければ、NDISドライバは
パケットをオペレーティングシステムに送信する。また、本発明の技術を、プロ
セッサを備えるネットワークカードで実行されるソフトウェアとして実施される
として記載したけれども、本技術は、ソフトウェアではなく論理回路を使用する
ハードワイヤであってもよい。また、パケットからの異なるフィールドは、関連
するパケットに関するパケット識別子を形成するために選択され、即ち、同じ方
法で高速転送されうる。
る。
。
。
。
。
。
。
である。
ルーチンの流れ図である。
システムのルーチンの流れ図である。
流れ図である。
ットのタイプ及びタイミングを制限するためにネットワーク管理者によって適用
される。例えば、ネットワーク管理者は、通常のビジネスアワー中にネットワー
クにわたって伝送されているコンピュータゲームによって生成されたパケットを
制限したいと思う。例えば、パケットを受信するIP宛先アドレスによって識別
されたコンピュータシステムのアプリケーションを示すTCP宛先アドレスによ
って、コンピュータゲームに関するパケットが識別可能である。従って、ネット
ワーク管理者は、通常のビジネスアワー中にかかるいかなるパケットを転送しな
いようにルーティングシステムを構成することができる。また、ネットワーク管
理者は、それらのソース及び宛先アドレスに基づいてパケットをフィルタアウト
したいと思う。例えば、会社のCEOだけが、ネットワークの全てコンピュータ
システムでない所定のソースコンピュータシステムからのパケットを受信したい
と思う。フィルタリングが在来のルーティングシステムに適用されるとき、キャ
ッシングは不能であり、クロスリファレンス情報及びフィルタリング情報をチェ
ックするより遅いプロシージャが全てのパケットに関して使用される。従って、
キャッシュが使用できないので、かかるフィルタリングされたパケットの処理だ
けでなく、全てのパケットの処理が遅くなる。 書類WO-A-96/35988は、中央制御ボックスと、複数の入力/出力モジュールと を包含するネットワーキングブリッジ/ルータを開示する。該モジュールは、2
,5又は8のネットワーク接続を有する。モジュール及び中央制御ボックスは、
バスによって相互接続される。モジュールは、異なるレベルのインテリジェンス
で処理をサポートし、いくつかのモジュールは比較的パッシブタイプのインター
フェースデバイスであり、他のモジュールは中間のレベルのセミ・インテリジェ
ンス処理デバイスであり、第3の種類のモジュールは、より強力な処理モジュー
ルである。これらのより強力な処理モジュールは、カードとして具現化される。
作動中に、パケットは、パケットの宛先を参照するために解析される。パケッ
トは、同じモジュールで送受信される。他の場合では、受信されたパケットは、
セントラルプロセッサに送信される。即ち、あるクラスのパケットは、モジュー
ルで局所的にルーティングされ、他のものは、中央のエンジンに転送される。こ
の目的に関して、モジュールはキャッシュを包含する。
いて、ネットワークパケットを転送する方法を提供する。本発明は更に、独立の
請求項10に記載したように、対応する汎用コンピュータシステムを提供する。
好ましい実施形態は、従属請求項に定義されている。 本発明の第1の態様によれば、ネットワークパケットを高速転送する方法が、
汎用コンピュータシステムで実施される。「高速転送」は、メイン中央演算処理
装置がルーティングを実行することではなく、ネットワークカードがルーティン
グを実行することを指す。コンピュータシステムは、メイン中央演算処理装置と
、該コンピュータシステムを複数のネットワークと接続するためのネットワーク
カードとを有する。ネットワークパケットは、ネットワークカードに受信され、
ネットワークの選択された1つに運命付けられる。受信されたネットワークパケ
ットは、ネットワークパケットがネットワークカードによってその宛先ネットワ
ークに転送されるべきか、又は、メイン中央演算処理装置によってルーティング
されるべきかどうかを判断するためにネットワークカードによって解析される。
ネットワークパケットがネットワークカードによって宛先ネットワークに転送さ
れるべきであると判断されたとき、それはメイン中央演算処理装置の介入なしで
高速転送される。
Claims (26)
- 【請求項1】 ソースネットワークから宛先ネットワークにデータのパケットを転送するため
のコンピュータシステムにおける方法において、 各パケットがメッセージの一部であり、 コンピュータシステムが、バスを介してネットワークカードに接続されたメイ
ン中央演算処理装置を備え、 ネットワークカードがソース及び宛先ネットワークに接続され、 ネットワークカードが、キャッシュメモリを備え、 コンピュータシステムが、メイン中央演算処理装置によって実行される命令を
備えるオペレーティングシステムを備える、 方法であって、 ネットワークカードの制御下で、 ソースネットワークからパケットを受信し、 キャッシュメモリがパケットに関するルーティング情報を包含するかどうか
判断し、 キャッシュメモリがかかるルーティング情報を包含するとき、ルーティング
情報に従って宛先ネットワークの受信したパケットを伝送し、 キャッシュメモリがかかるルーティング情報を包含しないとき、受信された
パケットをオペレーティングシステムに送信し、 オペレーティングシステムの制御下で、 送信されたパケットを受信し、 受信されたパケットがフィルタリング情報に基づいてドロップされるかどう
か判断し、 受信されたパケットがドロップされなかったとき、 受信パケットが宛先ネットワークに伝送されることを示すルーティング
情報を検索し、 ルーティング情報をネットワークカードに送信し、 ネットワークカードの制御下で、 送信ルーティング情報を受信し、 次のパケットがオペレーティングシステムに送信されることなく、該次のパ
ケットが宛先ネットワークに伝送されるように、受信されたルーティング情報を
メモリキャッシュにストアし、 ルーティング情報に従って宛先ネットワークに受信されたパケットが伝送さ
れ、 同じパケット識別子を備えるパケットが、オペレーティングシステムによる処
理なしで宛先ネットワークに転送され、他のパケット識別子を備えるパケットが
、オペレーティングシステムのフィルタリング基準処理に基づいてドロップされ
る、ことを特徴とする方法。 - 【請求項2】 オペレーティングシステムの制御下で、 ルーティング情報の更新を受信し、 該更新の受信に対応して、そのキャッシュメモリをフラッシュするためにネッ
トワークカードに通知する、 ことを含む、請求項1に記載の方法。 - 【請求項3】 コンピュータシステムは、複数のネットワークカードを有し、キャッシュメモ
リが、メイン中央演算処理装置を中断させることなく各ネットワークカードによ
ってアクセス可能である、請求項1に記載の方法。 - 【請求項4】 汎用コンピュータシステムにおいてネットワークパケットをソースネットワー
クから宛先ネットワークに転送する方法において、 コンピュータシステムが、メイン中央演算処理装置とネットワークカードとを
有し、該ネットワークカードがソース及び宛先ネットワークに接続されている方
法であって、 ネットワークカードでネットワークパケットを受信し、該ネットワークカード
が宛先アドレスを有し、 ネットワークパケットが、ネットワークカードによってその宛先に転送される
か、又は、メイン中央演算処理装置に転送されるかどうかを判断するために受信
されたネットワークパケットを解析し、 ネットワークパケットがネットワークカードによってその宛先に転送されるべ
きであると判断されたとき、メイン中央演算処理装置による介入なくネットワー
クカードによって宛先ネットワークにネットワークパケットを伝送し、 ネットワークパケットが、メイン中央演算処理装置に転送されるべきであると
判断されたとき、更なる処理のために、受信されたネットワークパケットをメイ
ン中央演算処理装置に提供する、 ことを有する方法。 - 【請求項5】 ネットワークカードがマルチポートネットワークカードであり、ネットワーク
パケットが、第1のポートに受信され、第2のポートを介して伝送される、こと
を特徴とする請求項4に記載の方法。 - 【請求項6】 コンピュータシステムが更に、メイン中央演算処理装置及びネットワークカー
ドと通信するバスを有し、ネットワークパケットの伝送が、バスを超えてネット
ワークパケットを送信することなく達成される、ことを特徴とする請求項4に記
載の方法。 - 【請求項7】 解析の際に、使用のためにネットワークカードに高速転送キャッシュを保持す
ることを更に有し、高速転送キャッシュが、どちらのネットワークパケットがメ
イン中央演算処理装置による加入なしでネットワークカードによって伝送される
か判断するためにアクセスされるルーティング情報を有することを特徴とする、
請求項4に記載の方法。 - 【請求項8】 メイン中央演算処理装置が、ネットワークパケットを受信するか又はドロップ
するかどうかを判断するために、フィルタリングをネットワークパケットに適用
し、 かかるフィルタリングが利用可能であり、メイン中央演算処理装置による介入
なしでネットワークカードによる伝送がまた利用可能である、 ことを特徴とする請求項4に記載の方法。 - 【請求項9】 メイン中央演算処理装置と、コンピュータシステムを複数のネットワークと接
続させるネットワークカードとを有するコンピュータシステムにおいて、ネット
ワークカードで受信されるネットワークパケットを処理するための方法であって
、 ネットワークカードで受信される選択されたネットワークパケットが、メイン
中央演算処理装置なしでネットワークカードによって少なくとも1つの宛先ネッ
トワークに高速転送されるような、高速転送アクティブを有することと、 メイン中央演算処理装置が、ネットワークパケットを受信するか又はドロップ
するかどうかを判断するために、ネットワークカードで受信されたネットワーク
パケットの少なくともいくつかにフィルタリングを適用するような、フィルタリ
ングアクティブを同時に有すること、 とを含む方法。 - 【請求項10】 ネットワークパケットの少なくともいくつかが、インターネットプロトコル(
IP)ネットワークパケットであることを特徴とする、請求項9に記載の方法。 - 【請求項11】 メイン中央演算処理装置が、選択されたネットワークパケットを高速転送する
ためのルーティング情報をネットワークカードに提供する、請求項9に記載の方
法。 - 【請求項12】 ネットワークカードが、高速転送されるべきでないそれらのネットワークパケ
ットを、メイン中央演算処理装置に提供することを特徴とする、請求項9に記載
の方法。 - 【請求項13】 汎用コンピュータシステムにおいてネットワークパケットをソースネットワー
クから宛先ネットワークに転送することができる命令を包含するコンピュータ読
み取り可能媒体であって、コンピュータシステムがメイン中央演算処理装置及び
ネットワークカードを有し、該ネットワークカードが ネットワークカードでネットワークパケットを受信し、該ネットワークパケッ
トが宛先アドレスを有し、 ネットワークパケットが、ネットワークカードによってその宛先に転送される
べきか、又は、メイン中央演算処理装置に転送されるべきかどうかを判断するた
めに、受信されたネットワークパケットを解析し、 ネットワークパケットがネットワークカードによってその宛先に転送されるべ
きであると判断されたとき、メイン中央演算処理装置による介入なしでネットワ
ークカードによって宛先ネットワークにネットワークパケットを伝送し、 ネットワークパケットがメイン中央演算処理装置に転送されるべきであると判
断されたとき、ネットワークパケットがドロップされるか又は宛先に転送される
べきか判断するために、受信したネットワークパケットをメイン中央演算処理装
置に提供する、 ことによってソース及び宛先ネットワークに接続される、コンピュータ読み取り
可能媒体。 - 【請求項14】 ネットワークカードがマルチポートネットワークカードであり、ネットワーク
パケットが第1のポートで受信され、第2のポートを介して伝送されることを特
徴とする、請求項13に記載のコンピュータ読み取り可能媒体。 - 【請求項15】 コンピュータシステムが、メイン中央演算処理装置及びネットワークカードと
通信するバスを更に有し、ネットワークパケットの伝送が、バスを超えてネット
ワークパケットを送信することなく達成される、ことを特徴とする請求項13に
記載のコンピュータ読み取り可能媒体。 - 【請求項16】 解析の際に、使用するためにネットワークカードに高速転送キャッシュを保持
することを更に有し、 高速転送キャッシュが、どちらのネットワークパケットがメイン中央演算処理
装置による介入なしでネットワークカードによって伝送されるべきであるか判断
するためにアクセスされるルーティング情報を有する、 ことを特徴とする請求項13に記載のコンピュータ読み取り可能媒体。 - 【請求項17】 メイン中央演算処理装置が、ネットワークパケットを受信し又はドロップする
かどうかを判断するためにフィルタリングをネットワークパケットに適用し、 かかるフィルタリングが、メイン中央演算処理装置による介入なしでネットワ
ークカードによって伝送される間、利用可能である、 ことを特徴とする請求項13に記載のコンピュータ読み取り可能媒体。 - 【請求項18】 メイン中央演算処理装置と、コンピュータシステムをマルチプルネットワーク
と接続するためのネットワークカードとを有するコンピュータシステムであって
、 メイン中央演算処理装置の介入なしでネットワークカードによって少なくとも
1つの宛先ネットワークに高速転送されるように、高速転送がアクティブであり
、メイン中央演算処理装置が、ネットワークパケットを受信するか又はドロップ
するかどうかを判断するためにネットワークカードで受信されたネットワークパ
ケットの少なくともいくつかにフィルタリングを適用するようにフィルタリング
が同時にアクティブである、ネットワークカードで受信されるネットワークパケ
ットを処理する、コンピュータシステム。 - 【請求項19】 少なくともいくつかのネットワークパケットがインターネットプロトコル(I
P)ネットワークパケットであることを特徴とする、請求項18に記載のシステ
ム。 - 【請求項20】 メイン中央演算処理装置が、選択されたネットワークパケットを高速転送する
ためのルーティング情報をネットワークカードに提供することを特徴とする請求
項18に記載のシステム。 - 【請求項21】 ネットワークカードが、高速転送されるべきでないそれらのネットワークパケ
ットをメイン中央演算処理装置に提供する、ことを特徴とする請求項18に記載
のシステム。 - 【請求項22】 汎用コンピュータにおいて、ネットワークパケットをソースネットワークから
宛先ネットワークに転送する方法であって、 コンピュータシステムがオペレーティングシステムと、ネットワークドライバ
と、ネットワークカードとを有し、該ネットワークカードがソース及び宛先ネッ
トワークに接続される、方法において、 ネットワークカードの制御下で、 ソースネットワークからの宛先アドレスを有するネットワークパケットを受
信し、 受信したネットワークパケットをネットワークドライバに転送し、 ネットワークドライバの制御下で、 ネットワークパケットが、ネットワークカードによってその宛先に転送され
るべきか、又は、オペレーティングシステムに提供されるべきかどうか判断する
ために、受信したネットワークパケットを解析し、 ネットワークパケットがネットワークカードによってその宛先に転送される
べきであると判断したとき、ネットワークパケットを宛先ネットワークに伝送す
るようにネットワークカードに命令し、 ネットワークパケットがオペレーティングシステムに提供されるべきである
と判断したとき、受信したネットワークパケットを、更なる処理のためにオペレ
ーティングシステムに提供し、 ネットワークカードの制御下で、 受信したパケットを伝送するように命令されたとき、ネットワークパケット
を宛先ネットワークに伝送し、 ネットワークパケットを転送する判断が、ネットワークドライバによってなさ
れる、 ことを特徴とする方法。 - 【請求項23】 コンピュータシステムが複数のネットワークカードを有し、ネットワークパケ
ットが第1のネットワークカードで受信され、第2のネットワークカードを介し
て伝送される、ことを特徴とする請求項22に記載の方法。 - 【請求項24】 解析の際に使用するためにネットワークドライバによって高速転送キャッシュ
を保持することを更に有し、 高速転送キャッシュが、どちらのネットワークパケットがオペレーティングシ
ステムからの介入なしでネットワークカードによって伝送されるべきか判断する
ためにアクセスされるルーティング情報を有する、 ことを特徴とする請求項22に記載の方法。 - 【請求項25】 オペレーティングシステムが、ネットワークパケットを受信するか又はドロッ
プするかどうか判断するためにネットワークパケットにフィルタリングを適用し
、 かかるフィルタリングが、ネットワークパケットがオペレーティングシステム
による介入なしでネットワークドライバによって高速転送される間、利用可能で
ある、 ことを特徴とする請求項22に記載の方法。 - 【請求項26】 ネットワークドライバがNDISドライバであることを特徴とする、請求項2
2に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/891,020 US6067569A (en) | 1997-07-10 | 1997-07-10 | Fast-forwarding and filtering of network packets in a computer system |
US08/891,020 | 1997-07-10 | ||
PCT/US1998/014135 WO1999003044A2 (en) | 1997-07-10 | 1998-07-08 | Fast-forwarding and filtering of network packets in a computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001510947A true JP2001510947A (ja) | 2001-08-07 |
JP3399928B2 JP3399928B2 (ja) | 2003-04-28 |
Family
ID=25397495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000502461A Expired - Fee Related JP3399928B2 (ja) | 1997-07-10 | 1998-07-08 | コンピュータシステムにおけるネットワークパケットの高速転送及びフィルタリング |
Country Status (6)
Country | Link |
---|---|
US (1) | US6067569A (ja) |
EP (1) | EP0993638B1 (ja) |
JP (1) | JP3399928B2 (ja) |
AT (1) | ATE297570T1 (ja) |
DE (1) | DE69830491T2 (ja) |
WO (1) | WO1999003044A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007251906A (ja) * | 2006-03-20 | 2007-09-27 | Fujitsu Ltd | フレーム中継装置及びフレーム検査装置 |
JP2011526135A (ja) * | 2008-06-23 | 2011-09-29 | クゥアルコム・インコーポレイテッド | マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置 |
Families Citing this family (122)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1165969A (ja) * | 1997-08-19 | 1999-03-09 | Toshiba Corp | サーバ装置および通信接続方法並びに通信の接続を行うプログラムを記録した記録媒体 |
US6061742A (en) * | 1997-10-10 | 2000-05-09 | Nortel Networks Corporation | Computer network adaptor |
US8782199B2 (en) | 1997-10-14 | 2014-07-15 | A-Tech Llc | Parsing a packet header |
US6757746B2 (en) | 1997-10-14 | 2004-06-29 | Alacritech, Inc. | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory |
US8621101B1 (en) | 2000-09-29 | 2013-12-31 | Alacritech, Inc. | Intelligent network storage interface device |
US6687758B2 (en) * | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
US7167927B2 (en) | 1997-10-14 | 2007-01-23 | Alacritech, Inc. | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
US7089326B2 (en) * | 1997-10-14 | 2006-08-08 | Alacritech, Inc. | Fast-path processing for receiving data on TCP connection offload devices |
US6658480B2 (en) * | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
US6226680B1 (en) * | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US6697868B2 (en) * | 2000-02-28 | 2004-02-24 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US7237036B2 (en) * | 1997-10-14 | 2007-06-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
US7133940B2 (en) * | 1997-10-14 | 2006-11-07 | Alacritech, Inc. | Network interface device employing a DMA command queue |
US8539112B2 (en) | 1997-10-14 | 2013-09-17 | Alacritech, Inc. | TCP/IP offload device |
US6807581B1 (en) | 2000-09-29 | 2004-10-19 | Alacritech, Inc. | Intelligent network storage interface system |
US7174393B2 (en) | 2000-12-26 | 2007-02-06 | Alacritech, Inc. | TCP/IP offload network interface device |
US7076568B2 (en) * | 1997-10-14 | 2006-07-11 | Alacritech, Inc. | Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket |
US7185266B2 (en) * | 2003-02-12 | 2007-02-27 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US6330610B1 (en) * | 1997-12-04 | 2001-12-11 | Eric E. Docter | Multi-stage data filtering system employing multiple filtering criteria |
US6401171B1 (en) | 1998-02-27 | 2002-06-04 | Cisco Technology, Inc. | Method and device for storing an IP header in a cache memory of a network node |
US6335935B2 (en) * | 1998-07-08 | 2002-01-01 | Broadcom Corporation | Network switching architecture with fast filtering processor |
US7664883B2 (en) * | 1998-08-28 | 2010-02-16 | Alacritech, Inc. | Network interface device that fast-path processes solicited session layer read commands |
US6295296B1 (en) * | 1998-09-08 | 2001-09-25 | Cisco Technology, Inc. | Use of a single data structure for label forwarding and imposition |
US20020188720A1 (en) * | 1998-12-28 | 2002-12-12 | William F. Terrell | Method and apparatus for dynamically controlling the provision of differentiated services |
US6678283B1 (en) * | 1999-03-10 | 2004-01-13 | Lucent Technologies Inc. | System and method for distributing packet processing in an internetworking device |
FR2797056B1 (fr) | 1999-07-28 | 2001-09-07 | Inst Francais Du Petrole | Methode d'analyse de signaux acquis pour pointer automatiquement sur eux au moins un instant significatif |
US6795866B1 (en) * | 1999-10-21 | 2004-09-21 | Sun Microsystems, Inc. | Method and apparatus for forwarding packet fragments |
US6529983B1 (en) | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
US6854063B1 (en) * | 2000-03-03 | 2005-02-08 | Cisco Technology, Inc. | Method and apparatus for optimizing firewall processing |
US6892237B1 (en) * | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
US8463839B2 (en) | 2000-03-28 | 2013-06-11 | Cybernet Systems Corporation | Distributed computing environment |
US6711558B1 (en) * | 2000-04-07 | 2004-03-23 | Washington University | Associative database scanning and information retrieval |
US8095508B2 (en) * | 2000-04-07 | 2012-01-10 | Washington University | Intelligent data storage and processing using FPGA devices |
US7139743B2 (en) | 2000-04-07 | 2006-11-21 | Washington University | Associative database scanning and information retrieval using FPGA devices |
US6505269B1 (en) | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
US20020010800A1 (en) * | 2000-05-18 | 2002-01-24 | Riley Richard T. | Network access control system and method |
WO2001090838A2 (en) * | 2000-05-24 | 2001-11-29 | Voltaire Advanced Data Security Ltd. | Filtered application-to-application communication |
WO2002017034A2 (en) * | 2000-08-24 | 2002-02-28 | Voltaire Advanced Data Security Ltd. | System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics |
US20020032871A1 (en) * | 2000-09-08 | 2002-03-14 | The Regents Of The University Of Michigan | Method and system for detecting, tracking and blocking denial of service attacks over a computer network |
US6944673B2 (en) * | 2000-09-08 | 2005-09-13 | The Regents Of The University Of Michigan | Method and system for profiling network flows at a measurement point within a computer network |
US8019901B2 (en) * | 2000-09-29 | 2011-09-13 | Alacritech, Inc. | Intelligent network storage interface system |
EP1330725B1 (en) | 2000-09-29 | 2012-03-21 | Alacritech, Inc. | Intelligent network storage interface system and devices |
ATE468562T1 (de) | 2000-12-15 | 2010-06-15 | Ibm | Virtualisierung von e/a-adapterressourcen |
EP1215585B1 (en) | 2000-12-15 | 2010-05-19 | International Business Machines Corporation | Virtualization of i/o adapter resources |
US7716330B2 (en) | 2001-10-19 | 2010-05-11 | Global Velocity, Inc. | System and method for controlling transmission of data packets over an information network |
US20030081599A1 (en) * | 2001-10-30 | 2003-05-01 | Chui-Tsang Wu | System and method for data transmission control |
US7240123B2 (en) * | 2001-12-10 | 2007-07-03 | Nortel Networks Limited | Distributed routing core |
US20030188021A1 (en) * | 2001-12-19 | 2003-10-02 | International Business Machines Corporation | Method and system for processing multiple fragment requests in a single message |
US7412535B2 (en) * | 2001-12-19 | 2008-08-12 | International Business Machines Corporation | Method and system for caching fragments while avoiding parsing of pages that do not contain fragments |
US7509393B2 (en) * | 2001-12-19 | 2009-03-24 | International Business Machines Corporation | Method and system for caching role-specific fragments |
US7426534B2 (en) * | 2001-12-19 | 2008-09-16 | International Business Machines Corporation | Method and system for caching message fragments using an expansion attribute in a fragment link tag |
US7730154B2 (en) * | 2001-12-19 | 2010-06-01 | International Business Machines Corporation | Method and system for fragment linking and fragment caching |
US7587515B2 (en) * | 2001-12-19 | 2009-09-08 | International Business Machines Corporation | Method and system for restrictive caching of user-specific fragments limited to a fragment cache closest to a user |
US7403999B2 (en) | 2001-12-28 | 2008-07-22 | International Business Machines Corporation | Classification support system and method for fragmented IP packets |
US7496689B2 (en) * | 2002-04-22 | 2009-02-24 | Alacritech, Inc. | TCP/IP offload device |
US7543087B2 (en) * | 2002-04-22 | 2009-06-02 | Alacritech, Inc. | Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device |
US7711844B2 (en) * | 2002-08-15 | 2010-05-04 | Washington University Of St. Louis | TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks |
US7337241B2 (en) * | 2002-09-27 | 2008-02-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US7191241B2 (en) * | 2002-09-27 | 2007-03-13 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US20040088262A1 (en) * | 2002-11-06 | 2004-05-06 | Alacritech, Inc. | Enabling an enhanced function of an electronic device |
US10572824B2 (en) | 2003-05-23 | 2020-02-25 | Ip Reservoir, Llc | System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines |
US20070277036A1 (en) | 2003-05-23 | 2007-11-29 | Washington University, A Corporation Of The State Of Missouri | Intelligent data storage and processing using fpga devices |
US7565454B2 (en) * | 2003-07-18 | 2009-07-21 | Microsoft Corporation | State migration in multiple NIC RDMA enabled devices |
US7444515B2 (en) * | 2003-08-14 | 2008-10-28 | Washington University | Method and apparatus for detecting predefined signatures in packet payload using Bloom filters |
US7181675B2 (en) * | 2003-10-06 | 2007-02-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for checksum offloading |
US8090871B2 (en) * | 2003-10-20 | 2012-01-03 | International Business Machines Corporation | Determining a remote management processor's IP address |
US7978716B2 (en) | 2003-11-24 | 2011-07-12 | Citrix Systems, Inc. | Systems and methods for providing a VPN solution |
US7602785B2 (en) | 2004-02-09 | 2009-10-13 | Washington University | Method and system for performing longest prefix matching for network address lookup using bloom filters |
US7206872B2 (en) * | 2004-02-20 | 2007-04-17 | Nvidia Corporation | System and method for insertion of markers into a data stream |
US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
US8495305B2 (en) | 2004-06-30 | 2013-07-23 | Citrix Systems, Inc. | Method and device for performing caching of dynamically generated objects in a data communication network |
US8739274B2 (en) | 2004-06-30 | 2014-05-27 | Citrix Systems, Inc. | Method and device for performing integrated caching in a data communication network |
KR20070039597A (ko) | 2004-07-23 | 2007-04-12 | 사이트릭스 시스템스, 인크. | 사설망에 대한 원격 액세스를 보안화하기 위한 방법 및시스템 |
AU2005266943C1 (en) | 2004-07-23 | 2011-01-06 | Citrix Systems, Inc. | Systems and methods for optimizing communications between network nodes |
EP1776825B1 (en) * | 2004-08-13 | 2012-12-19 | Citrix Systems, Inc. | A method for maintaining transaction integrity across multiple remote access servers |
US8248939B1 (en) | 2004-10-08 | 2012-08-21 | Alacritech, Inc. | Transferring control of TCP connections between hierarchy of processing mechanisms |
US8776206B1 (en) * | 2004-10-18 | 2014-07-08 | Gtb Technologies, Inc. | Method, a system, and an apparatus for content security in computer networks |
US8954595B2 (en) | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US8700695B2 (en) | 2004-12-30 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP pooling |
US8706877B2 (en) | 2004-12-30 | 2014-04-22 | Citrix Systems, Inc. | Systems and methods for providing client-side dynamic redirection to bypass an intermediary |
US7810089B2 (en) | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
US8549149B2 (en) | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
KR20070104566A (ko) * | 2005-01-24 | 2007-10-26 | 사이트릭스 시스템스, 인크. | 네트워크에서 동적으로 발생된 객체들의 캐싱을 수행하는시스템 및 방법 |
JP2008532177A (ja) | 2005-03-03 | 2008-08-14 | ワシントン ユニヴァーシティー | 生物学的配列類似検索を実行するための方法および装置 |
JP4674502B2 (ja) * | 2005-07-22 | 2011-04-20 | ソニー株式会社 | 情報通信システム、情報通信装置及び情報通信方法、並びにコンピュータ・プログラム |
US7702629B2 (en) * | 2005-12-02 | 2010-04-20 | Exegy Incorporated | Method and device for high performance regular expression pattern matching |
US7738500B1 (en) | 2005-12-14 | 2010-06-15 | Alacritech, Inc. | TCP timestamp synchronization for network connections that are offloaded to network interface devices |
US7921184B2 (en) | 2005-12-30 | 2011-04-05 | Citrix Systems, Inc. | System and method for performing flash crowd caching of dynamically generated objects in a data communication network |
US8301839B2 (en) | 2005-12-30 | 2012-10-30 | Citrix Systems, Inc. | System and method for performing granular invalidation of cached dynamically generated objects in a data communication network |
US7954114B2 (en) * | 2006-01-26 | 2011-05-31 | Exegy Incorporated | Firmware socket module for FPGA-based pipeline processing |
US8566840B2 (en) * | 2006-02-27 | 2013-10-22 | Red Hat, Inc. | Method and system for kernel level filtering |
WO2007121035A2 (en) | 2006-03-23 | 2007-10-25 | Exegy Incorporated | Method and system for high throughput blockwise independent encryption/decryption |
US7636703B2 (en) * | 2006-05-02 | 2009-12-22 | Exegy Incorporated | Method and apparatus for approximate pattern matching |
US7840482B2 (en) | 2006-06-19 | 2010-11-23 | Exegy Incorporated | Method and system for high speed options pricing |
US7921046B2 (en) | 2006-06-19 | 2011-04-05 | Exegy Incorporated | High speed processing of financial information using FPGA devices |
US20080086274A1 (en) * | 2006-08-10 | 2008-04-10 | Chamberlain Roger D | Method and Apparatus for Protein Sequence Alignment Using FPGA Devices |
US8051474B1 (en) * | 2006-09-26 | 2011-11-01 | Avaya Inc. | Method and apparatus for identifying trusted sources based on access point |
US7660793B2 (en) | 2006-11-13 | 2010-02-09 | Exegy Incorporated | Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors |
US8326819B2 (en) | 2006-11-13 | 2012-12-04 | Exegy Incorporated | Method and system for high performance data metatagging and data indexing using coprocessors |
US8879727B2 (en) * | 2007-08-31 | 2014-11-04 | Ip Reservoir, Llc | Method and apparatus for hardware-accelerated encryption/decryption |
US8046492B1 (en) * | 2007-11-06 | 2011-10-25 | Juniper Networks, Inc. | Offset independent filtering |
US10229453B2 (en) * | 2008-01-11 | 2019-03-12 | Ip Reservoir, Llc | Method and system for low latency basket calculation |
US8539513B1 (en) | 2008-04-01 | 2013-09-17 | Alacritech, Inc. | Accelerating data transfer in a virtual computer system with tightly coupled TCP connections |
US8374986B2 (en) * | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
US8341286B1 (en) | 2008-07-31 | 2012-12-25 | Alacritech, Inc. | TCP offload send optimization |
US9306793B1 (en) | 2008-10-22 | 2016-04-05 | Alacritech, Inc. | TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies |
CA3184014A1 (en) | 2008-12-15 | 2010-07-08 | Exegy Incorporated | Method and apparatus for high-speed processing of financial market depth data |
WO2012079041A1 (en) | 2010-12-09 | 2012-06-14 | Exegy Incorporated | Method and apparatus for managing orders in financial markets |
US9047243B2 (en) | 2011-12-14 | 2015-06-02 | Ip Reservoir, Llc | Method and apparatus for low latency data distribution |
US9990393B2 (en) | 2012-03-27 | 2018-06-05 | Ip Reservoir, Llc | Intelligent feed switch |
US10650452B2 (en) | 2012-03-27 | 2020-05-12 | Ip Reservoir, Llc | Offload processing of data packets |
US10121196B2 (en) | 2012-03-27 | 2018-11-06 | Ip Reservoir, Llc | Offload processing of data packets containing financial market data |
US11436672B2 (en) | 2012-03-27 | 2022-09-06 | Exegy Incorporated | Intelligent switch for processing financial market data |
US10133802B2 (en) | 2012-10-23 | 2018-11-20 | Ip Reservoir, Llc | Method and apparatus for accelerated record layout detection |
WO2014066416A2 (en) | 2012-10-23 | 2014-05-01 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US9633093B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
WO2015164639A1 (en) | 2014-04-23 | 2015-10-29 | Ip Reservoir, Llc | Method and apparatus for accelerated data translation |
US10942943B2 (en) | 2015-10-29 | 2021-03-09 | Ip Reservoir, Llc | Dynamic field data translation to support high performance stream data processing |
WO2018009468A1 (en) | 2016-07-05 | 2018-01-11 | Idac Holdings, Inc. | Latency reduction by fast forward in multi-hop communication systems |
WO2018119035A1 (en) | 2016-12-22 | 2018-06-28 | Ip Reservoir, Llc | Pipelines for hardware-accelerated machine learning |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3560666A (en) * | 1968-09-12 | 1971-02-02 | Telectronics Corp Of America | Single drive dual cassette tape recorder with radio and tape duplicating |
US5842224A (en) * | 1989-06-16 | 1998-11-24 | Fenner; Peter R. | Method and apparatus for source filtering data packets between networks of differing media |
GB9212655D0 (en) * | 1992-06-15 | 1992-07-29 | Digital Equipment Int | Communications system |
KR960014983B1 (ko) * | 1992-08-31 | 1996-10-23 | 가부시끼가이샤 도시바 | LAN(Local Area Network) 접속장치 |
US5619648A (en) * | 1994-11-30 | 1997-04-08 | Lucent Technologies Inc. | Message filtering techniques |
US5598410A (en) * | 1994-12-29 | 1997-01-28 | Storage Technology Corporation | Method and apparatus for accelerated packet processing |
US5802278A (en) * | 1995-05-10 | 1998-09-01 | 3Com Corporation | Bridge/router architecture for high performance scalable networking |
US5802320A (en) * | 1995-05-18 | 1998-09-01 | Sun Microsystems, Inc. | System for packet filtering of data packets at a computer network interface |
GB9518522D0 (en) * | 1995-09-11 | 1995-11-08 | Madge Networks Ltd | Bridge device |
US5850523A (en) * | 1996-06-21 | 1998-12-15 | National Instruments Corporation | Method and system for monitoring fieldbus network with multiple packet filters |
-
1997
- 1997-07-10 US US08/891,020 patent/US6067569A/en not_active Expired - Lifetime
-
1998
- 1998-07-08 JP JP2000502461A patent/JP3399928B2/ja not_active Expired - Fee Related
- 1998-07-08 DE DE69830491T patent/DE69830491T2/de not_active Expired - Lifetime
- 1998-07-08 AT AT98933265T patent/ATE297570T1/de not_active IP Right Cessation
- 1998-07-08 WO PCT/US1998/014135 patent/WO1999003044A2/en active IP Right Grant
- 1998-07-08 EP EP98933265A patent/EP0993638B1/en not_active Expired - Lifetime
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007251906A (ja) * | 2006-03-20 | 2007-09-27 | Fujitsu Ltd | フレーム中継装置及びフレーム検査装置 |
JP2011526135A (ja) * | 2008-06-23 | 2011-09-29 | クゥアルコム・インコーポレイテッド | マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置 |
JP2013153486A (ja) * | 2008-06-23 | 2013-08-08 | Qualcomm Inc | マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置 |
US8638790B2 (en) | 2008-06-23 | 2014-01-28 | Qualcomm Incorporated | Method and apparatus for managing data services in a multi-processor computing environment |
JP5536051B6 (ja) | 2008-06-23 | 2023-11-08 | クゥアルコム・インコーポレイテッド | マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
ATE297570T1 (de) | 2005-06-15 |
US6067569A (en) | 2000-05-23 |
DE69830491D1 (de) | 2005-07-14 |
DE69830491T2 (de) | 2005-11-03 |
WO1999003044A2 (en) | 1999-01-21 |
EP0993638A2 (en) | 2000-04-19 |
JP3399928B2 (ja) | 2003-04-28 |
EP0993638B1 (en) | 2005-06-08 |
WO1999003044A3 (en) | 1999-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3399928B2 (ja) | コンピュータシステムにおけるネットワークパケットの高速転送及びフィルタリング | |
US7630368B2 (en) | Virtual network interface card loopback fastpath | |
US6683885B1 (en) | Network relaying apparatus and network relaying method | |
US8094660B2 (en) | VLAN server | |
US8477609B1 (en) | Method and system for scaling network traffic managers | |
US7769873B1 (en) | Dynamically inserting filters into forwarding paths of a network device | |
US6731652B2 (en) | Dynamic packet processor architecture | |
US6650642B1 (en) | Network relaying apparatus and network relaying method capable of high-speed routing and packet transfer | |
US6871235B1 (en) | Fast path forwarding of link state advertisements using reverse path forwarding | |
EP1713214B1 (en) | Multiprotocol routing method | |
US20070183415A1 (en) | Method and system for internal data loop back in a high data rate switch | |
US7664045B2 (en) | Sampling to a next hop | |
US7269661B2 (en) | Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet | |
US7864788B2 (en) | System and method for bridging proxy traffic in an electronic network | |
JP4398354B2 (ja) | 中継システム | |
US6658003B1 (en) | Network relaying apparatus and network relaying method capable of high-speed flow detection | |
US6763375B1 (en) | Method for defining and controlling the overall behavior of a network processor device | |
US20070291782A1 (en) | Acknowledgement filtering | |
US20030229713A1 (en) | Server network controller including server-directed packet forwarding and method therefor | |
US6671277B1 (en) | Network relaying apparatus and network relaying method capable of high quality transfer of packets under stable service quality control | |
US20030123387A1 (en) | Device and method for filtering network traffic | |
JP4461017B2 (ja) | データパケットルーティング方法及び当該方法を実現するための装置 | |
JP3635660B2 (ja) | パケット処理装置とそのパケット転送方法 | |
US7006532B1 (en) | Dynamically building encapsulation and decapsulation chains at run time |
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: 20030106 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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: 20080221 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090221 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100221 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100221 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110221 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120221 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120221 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130221 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 |
|
LAPS | Cancellation because of no payment of annual fees |