(57)【要約】  本発明の実施例は、サービス拒否攻撃及びＳＹＮフラッド攻撃を含む、コンピュータ・システムに対する様々なタイプの攻撃を回避するための種々の異なる統合された、多段階の方法及びシステムを含む。これらの統合された方法及びシステムのコンポーネントは、コンヒュータ・システム内の電子関連の十分なリソースの使い果しを回避し、コンピュータ・システム内の電子通信コンポーネントを深刻に機能劣化させ或いは利用不能にすることを回避するため、見込みパケット・ドロッパー、パケット速度調節器、リソース管理部、自動ファイヤーウォール、メモリ・ソース内の効果的な通信状態情報ストレージ及び接続状態情報分布、を含んでいる。
2010521839.tif 000002
【特許請求の範囲】
【請求項１】
サーバー・コンピュータに組み込まれた通信セキュリティ・システムであって、前記通信セキュリティ・システムは、
起動されると、到来する通信パケットの特定のものを無作為に排除する、見込みパケット・ドロッパーと、
各ソース・コンピュータからのパケット受信速度を監視し、あるソースについてのパケット受信速度がある最大速度を上回ると、ブラックリスト期間に亘って、ソースからのパケット受信を停止し、その後に、後続のグレイリスト期間の最中に、ソースが機能回復される、自動ファイヤーウォール・コンポーネントと、
パケット受信速度全体を監視し、パケット受信速度全体がある最大許容速度を超えるときは、前記見込みパケット・ドロッパーを起動する、バケット速度調節コンポーネントと、
サーバー内のリソース利用状況を監視し、リソースの使い尽しの発端が検知されると、前記見込みパケット・ドロッパーを起動する、リソース管理部コンポーネントと、
を有し、
仕掛り中の接続状態を分散し、仕掛り中の接続がタイムリーに完了されないときは、仕掛り中の接続を速やかに終了させ、リソースの使い尽しを回避する、
通信セキュリティ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ・システムのセキュリティ、コンピュータ・システム内の通信インターフェースのセキュリティ、特に、サービス拒否攻撃、ＳＹＮフラッド攻撃、及び通信インターフェースに関連したその他のリソース使い尽し現象を回避するために通信インターフェースを守るための手法に関する。
【背景技術】
【０００２】
過去５０年間、コンピュータ・システムは、比較的低速度でアクセスされる、隔離された、スタンド・アローン・システムであるが、しかし、プリント・カード・デッキ及びテレタイプ・コンソールを含む、比較的容易にセキュリティが確保された入力／出力システム（Ｉ／Ｏシステム）から、高帯域電子通信システムを通じて高度に相互接続された、ユビキタス・パーソナル・コンピュータ、サーバー、メインフレーム、及び、分散コンピュータ・システムで満ちた世界へと展開している。単一のコンピュータは、何時でも、何十、何百、何千、或いは、それを超える外部コンピュータ・システムと相互接続される可能性がある。コンピュータ・システムの大量の相互接続は膨大な利益をもたらし、少なからず、その相互接続とは、インターネットを通じての膨大な数のパーソナル・コンピュータ・ユーザと組織体との相互接続である。 インターネットは、振り返ると、全く新しい産業を広め、そして今、広範な種類の商業活動のための主だった媒体及び枠組みを示している。インターネットの発展が人間社会に衝撃を与える程度は、例えば、公開ライブラリーのカード・カタログ及び大きな参照セクションにかつては慣れていたいかなる人にも明らかで、現在はパーソナル・コンピュータを通じてアクセスされるインターネット・ベースの情報源に取って代わられている。人々が書籍、ＣＤ、ソフトウェア、及び、様々な他の大衆商品を大きなインターネット・ベースの小売店から購入するようになればなる程、地方や地域の書店や音楽展は消えていく。
【０００３】
多くの利点に伴い、電子通信媒体による多量のコンピュータ・システムの相互接続は、種々の異なるタイプの通信に関連する破壊的活動、コンピュータ詐欺行為、及び多数のコンピュータ・システムのハイジャックすら含む、新たな大問題を拡大させており、それらは、互いに協働してサーバー・コンピュータ及び組織体を攻撃して衰弱させ、サービス拒否攻撃及びＳＹＮフラッド攻撃を発進し、スパム・イーメールを発散し、そして、コンピュータ・ウィルスやウォームを発散する。不運にも、これらの新しい問題に対する簡単な解決策はない。電子通信は全く持って両刃の剣であり、大きな利益と機会をもたらすが、同時に、意図的ではない棄損及びその他の合法的なコンピュータを用いた活動に対するのと同様に、悪意の攻撃に対しても、個人及びコンピュータのセキュリティに関して脆弱性を発揮する。通信に起因する脅威及びコンピュータ内のセキュリティについての脆弱性の多様性の故に、意図的な攻撃及び意図しないセキュリティの崩壊からの相互接続されたコンピュータのセキュリティの確保は、種々の層、多層の手法及び方法を含んでいる。ある種の脆弱性は、ハードウェア・レベル及びオペレーティング・レベルの両方における、個々のコンピュータ・システムのセキュリティの向上により解消される必要がある。他の脆弱性は、コンピュータ・システムの通信関連のコンポーネント中の適切な個所における、効果的で適切なフィルター、チェックポイント、及び、モニターを構築することにより、解決される必要があるかもしれない。
【０００４】
今日のコンピュータ・システムが晒されているセキュリティの脆弱性の一つのタイプは、悪意の、或いは、ある場合には、意図しないパターンの通信要求であり、それは、後続の通信が深刻に棄損され或いは完全に破壊されるまで、受信コンピュータのリソースを使い尽す。サーバー・コンピュータの通信関連リソースを使い尽す意図的な試みの例は、サービス拒否攻撃及びＳＹＮフラッド攻撃を含み、後続部分で更に論述される。サービ拒否攻撃及びＳＹＮフラッド攻撃を阻止するために、様々な戦略が発明されてきており、様々な程度の成功を収めてきた。ドメイン・ネイム・サーバー及びその他のインターネットの根幹のコンポーネントを含む、重要なコンピュータ・システムについては、サービス拒否攻撃、ＳＹＮフラッド攻撃、及びその他のタイプの攻撃が、インターネットの基盤に向けられると、インターネット・ベースの通信を相当な期間に亘り崩壊させ、そのことにより、商取引、極めて重要な情報の提供サービス、そして、更には、国家防衛と国家セキュリティを損なうので、そのようなことを阻止するような、より良い手法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施例は、サービス拒否攻撃及びＳＹＮフラッド攻撃を含む、コンピュータ・システムに対する種々のタイプの攻撃を回避するための、種々の統合された、多層の方法及びシステムを含む。
【発明を解決するための手段】
【０００６】
このような統合された方法及びシステムは、コンピュータ・システム内の電子通信コンポーネントを深刻に劣化させたり利用不可能にさせたりするような、コンピュータ・システム内の十分な数の通信関連リソースの使い尽しを回避するため、見込みパケット・ドロッパー、パケット速度調節器、リソース管理部、自動ファイヤーウォール、及び、メモリー・リソース内の効率的接続状態情報ストレージ及び接続状態情報分布を含む。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施例が実践されるコンピュータ環境を示す。
【図２Ａ】サーバーの立場から、通信インターフェースへのパケットの受信及び送信を図示する。
【図２Ｂ】サーバーの立場から、通信インターフェースへのパケットの受信及び送信を図示する。
【図２Ｃ】サーバーの立場から、通信インターフェースへのパケットの受信及び送信を図示する。
【図２Ｄ】サーバーの立場から、通信インターフェースへのパケットの受信及び送信を図示する。
【図２Ｅ】サーバーの立場から、通信インターフェースへのパケットの受信及び送信を図示する。
【図２Ｆ】サーバーの立場から、通信インターフェースへのパケットの受信及び送信を図示する。
【図２Ｇ】サーバーの立場から、通信インターフェースへのパケットの受信及び送信を図示する。
【図２Ｈ】サーバーの立場から、通信インターフェースへのパケットの受信及び送信を図示する。
【図３Ａ】サーバー・コンピュータと遠隔クライアント・コンピュータとの間の通信の劣化や完全な崩壊をもたらす、サーバー・コンピュータ内のリソース使い尽しの２つのタイプを図示する。
【図３Ｂ】サーバー・コンピュータと遠隔クライアント・コンピュータとの間の通信の劣化や完全な崩壊をもたらす、サーバー・コンピュータ内のリソース使い尽しの２つのタイプを図示する。
【図４Ａ】図３Ａ−Ｂに図示されたリソース使い尽し関連の通信失敗を回避するための本発明の一実施例による、サーバー・コンピュータに組込まれた多層の通信セキュリティ・システムのコンポーネントを図示する。
【図４Ｂ】図３Ａ−Ｂに図示されたリソース使い尽し関連の通信失敗を回避するための本発明の一実施例による、サーバー・コンピュータに組込まれた多層の通信セキュリティ・システムのコンポーネントを図示する。
【図５】本発明の一実施例の見込みパケット・ドロッパーの制御フロー図である。
【図６】本発明の一実施例のパケット速度調節器の制御フロー図。
【図７】本発明の一実施例のリソース管理部の制御フロー図。
【図８】本発明の一実施例の多層通信セキュリティ・システムのファイヤーウォール・コンポーネントにより用いられるテーブルを示す。
【図９Ａ】本発明を表す多層通信セキュリティ・システムの自動ファイヤーウォールの制御フロー図。
【図９Ｂ】本発明を表す多層通信セキュリティ・システムの自動ファイヤーウォールの制御フロー図。
【図９Ｃ】本発明を表す多層通信セキュリティ・システムの自動ファイヤーウォールの制御フロー図。
【図９Ｄ】本発明を表す多層通信セキュリティ・システムの自動ファイヤーウォールの制御フロー図。
【図９Ｅ】本発明を表す多層通信セキュリティ・システムの自動ファイヤーウォールの制御フロー図。
【図１０】ＴＣＰプロトコルの三段階接続確立トランザアクションを図示する。
【図１１】本発明の一実施例を表すＳＹＮフラッド攻撃回避方法のデータ・コンポーネントを図示する。
【図１２】本発明の一実施例を表す三段階接続方法のための制御フロー図。
【図１３】本発明の一実施例を表す、図１２中のステップ１２０８でコールされる「ＳＹＮ」ルーチンの制御フロー図。
【図１４】本発明の一実施例を表す、図１２のステップ１２１２でコールされる「ＡＣＫ」ルーチンの制御フロー図。
【発明を実施するための形態】
【０００８】
本発明は、セキュリティ、特に、遠隔のクライアント・コンピュータと通信する、ドメイン・ネーム・サーバーを含む、サーバーの通信セキュリティに関する。ここで特に述べられている本発明の一実施例が向けられている、セキュリティへの統合されたアプローチは、特定のタイプの電子通信への特定のタイプの脅威により動機づけられているが、この手法は合理的に一般化されて、広範な様々な異なるタイプの通信媒体及びコンピュータ・システムに適用可能である。従って、本発明は以下に一般的な用語で述べられ、本発明の多層アプローチを用いて守られ得る数多くのタイプの通信インターフェース及びコンポーネントの一つ一つについての特定の側面については掘下げられていない。本発明は電子通信媒体を通じて遠隔コンピュータと通信する全てのコンピュータ・システムに適用可能であり、そのため、この文書中では、用語「サーバー」は限定的な意味で用いられておらず、外部の、或いは、離隔したコンピュータにより要求が作られるコンピュータ・システムを表している。サーバーは、例えば、多数の個々のコンピュータ・システムやマルチ・サーバー・エンクロージャー内のサーバー・モジュールであってもよい。
【０００９】
図１は、本発明の実施例が実践されるコンピュータ環境を示す。この環境では、サーバー・コンピュータ１０２は、一つ或いは複数の通信媒体を通じて、クライアント・コンピュータ１０４のような、多数の遠隔クライアント・コンピュータに相互接続されている。サーバー１０２と遠隔クライアント・コンピュータ１０４との間の通信接続１０６のような、図１において、平行な双方向矢印で表された通信接続は、動的で、通常、クライアント・コンピュータの先導で作られ、サーバー・コンピュータからの、或いは、へのデータの要求及び受信、或いは、送信をし、そして、一つ或いは複数の要求がサーバー・コンピュータにより満たされたときに、終了する。図１に示される通信接続は論理的なものである。実際のハードウェア及びソフトウェア及び通信接続が確立される物理リンクは極めて複雑であり、多数の中間的なコンピュータ・システムやネットワークを含んでいる。
【００１０】
一般に、遠隔クライアント・コンピュータと特定のサーバー・コンピュータとの間の通信接続の総数は、動的で、急激にその値が変化し、僅かな数の通信接続から何万或いはそれを超える通信接続に至る、非常に広範囲にわたって素早く変化する。接続の平均期間は一般に予測不可能であり、サーバーの性質により、クライアント・コンピュータにより要求される情報トランザクションの性質により、また、接続が作られ、維持される特定の物理的及び論理的通信媒体の性質による。多くの通信媒体では、情報は比較的小さな分離したメッセージ、即ち、パッケージとして交換される。物理ハードウェア及びより高いレベルのハードウェアとソフトウェアとで実現されるプロトコル層は、送信側において、膨大な量の転送データをパケット化する働きをし、通信ベースのトランザクションの受信側においてパケットを膨大な量のデータにする働きをする。通信媒体のハードウェア及びソフトウェア層はまた、パケットのタイムリーで信頼性ある送り出し、パケットの順番、パケット内のデータのセキュリティの確保、その他の働きをする。
【００１１】
図２Ａ−Ｈは、サーバーの立場からの、通信インターフェースへのパケットの受信及び送信を図示している。図２Ａ−Ｈは、後続の図面でも用いられる図法を採用している。図２Ａ−Ｈ中に示される通信媒体関連コンポーネントは、図示の目的のために、一般化されており、本発明の説明にとっては不必要な非常な詳細は省かれている。これらの図は、一つの特定の通信媒体インターフェースに関連するサーバー内部のコンポーネントを示している。特定のサーバーは膨大な数の異なる通信媒体にインターフェースするために膨大な数のそのようなコンポーネントを含むことが出来る。
【００１２】
図２Ａに示される通信媒体コンポーネントは、通信媒体ポートの受信コンポーネント２０２及び送信コンポーネント２０４、受信したパケットが待ち行列に入れられる先入れ先出し（「ＦＩＦＯ」）バッファ２０６、パケットを処理した結果遠隔コンピュータのために応答パケットを構築する処理コンポーネント２０８、共に電子メモリ内にあって大容量メモリ２１２内にあり、接続の状態に関連する情報の記憶するためのメモリ・リソース２１０、受信した情報と同様に接続に関連する情報、及び、遠隔クライアント・コンピュータにデータを返すために処理された情報を記憶する付加的データ・ストレージ、及び、通信媒体ポートの送信コンポーネント２０４を介してクライアント・コンピュータに送信するためのパケットが待ち行列に入っている、出力ＦＩＦＯキュー２１４を含む。多くの通信プロトコルでは、メッセージとは、一つ或いはそれを超える数の、より低レベルのパケットを有する、より高いレベルの構成概念であるが、ここでの論述では、用語「パケット」と用語「メッセージ」とは、互いに交換可能に用いられる。入力ＦＩＦＯキュー２０６及び出力ＦＩＦＯキュー２１４は、ＤＱポインター２１６及び２１８の夫々に、また、Ｑポインター２２０及び２２２の夫々に、連結されている。ＱポインターはＦＩＦＯキューへのパケットの入力のための次の空のスロットを示すために用いられ、また、ＤＱポインターはＦＩＦＯキューから除かれる次のキュー・パケットを示すために用いられる。ＤＱ及びＱポインターは、モジュロｎ演算により、増分され、ここでｎはキュー内のスロット数であり、論理的にキューのスロットの一次元的な順番が回状に繰り返され、よく知られた、論理的な循環キューを構成する。図２Ａにおいて、両ＦＩＦＯキューのＤＱ及びＱポインターが同じく、空スロットを示している状態では、入力ＦＩＦＯキュー２０６及び出力ＦＩＦＯキュー２１４の両方が空である。 
図２Ｂ−Ｅは、遠隔クライアント・コンピュータとサーバー・コンピュータとの間の簡単なパケット交換を図示している。図２Ｂにおいて、パケット２２８はクライアント・コンピュータ或いはソースから受信（２２６）され、入力ＦＩＦＯキュー内に置かれる。図２Ｃにおいて、処理コンポーネント２０８は待ち行列に新たに入れられたパケットを検知し、入力ＦＩＦＯキュー２０６から、その新たに待ち行列に入れられたパケットを取り出す（２３０）。処理コンポーネントは、新たに到着したパケットが通信接続の最初のパケットであるときには、状態情報２３２を創りメモリ・ソース２１０にストアし、或いは、通信接続の一部として送られた後続のパケットを処理するために、ストアされた状態情報に引き続いてアクセスする。加えて、処理コンポーネント２０８はパケットを処理するためメモリ或いは大容量ストレージからの付加的な情報にアクセス（２３４）することもある。パケットを処理した後、図２Ｄに示されるように、処理コンポーネント２０８は通例、応答パケットを用意し、出力ＦＩＦＯキュー２１４内にその応答パケット２３８を待ち行列させる（２３６）。図２Ｅにおいて、応答パケットは送信コンポーネント２０４により出力ＦＩＦＯキュー２１４から抽出されて遠隔クライアント・コンピュータに送信される。
【００１３】
図２Ｆ−Ｈは通信接続の最後のパケット交換を図示する。図２Ｆにおいて、図２Ｂ−Ｅで示されたような従前のパケット交換により、通信接続が従前より確立され、そして、接続のための状態情報２３２がメモリ・コンポーネント２１０内にストアされている。接続が一旦確立されると、特定のタイプのクライアント及びサーバー間トランザクション及び通信プロトコルに従う交換手順において、パケット或いはメッセージは、サーバー・コンピュータにより、クライアント・コンピュータから受信され、クライアント・コンピュータへと送信される。最後に、図２Ｆに示されるように、クライアント・コンピュータは最後の接続終了メッセージをサーバー・コンピュータに送信し、そのメッセージは受信コンポーネント２０２により受信（３４０）され、入力ＦＩＦＯキュー２０６内に置かれる。図２Ｇにおいて、処理コンポーネントはパケットを取りだし（２４２）、接続を記述する状態情報にアクセス（２４４）し、任意にではあるが、付加的情報にアクセス（２４６）し、パケットを適切に処理して、処理コンポーネントが出力送信キュー２１４に待ち行列入りさせる、最後のアクノレッジメント・メッセージ２４８を構築する。図２Ｈに示されるように、最後のアクノレッジメント・メッセージは次に送信コンポーネント２０４によりキューから取り出されてクライアント・コンピュータに送信され（２１６）、状態情報２３２を保持していたメモリー・リソース・ロケーションは空となる。
【００１４】
要するに、クライアント及びサーバー間トランザクションは一般にクライアント・コンピュータからサーバー・コンピュータへのパケット、或いはメッセージの送信を含み、クライアント・コンピュータによりサーバー・コンピュータに送られる各パケットについて、サーバー・コンピュータからクライアント・コンピュータへと応答パケットが送り返されるのである。接続が初期化されたときは、接続を記述する状態がメモリ・リソースにストアされ、そして、接続が終了するときは、一つまたはそれを超えるデータ転送トランザクションのやり取りに続いて、状態情報がメモリ・リソースから除去される。勿論、状態情報は、直ちに上書きされたり或いはきれいに消されたりしなくともよくて、後続の通信接続の確立の最中に状態情報によって占められたメモリの一つまたは複数のワードが後に上書きされるまでは、メモリ・リソース内に存続してもよい。
【００１５】
図２Ａ−Ｈは、サーバー・コンピュータとクライアント・コンピュータとの間のシングル・パケットの交換を図示している。しかしながら、時間内のどのような特定の瞬間であっても、サーバーは何百、何千、何万、或いは、それを超える、クライアント・コンピュータからパケットを受信し、クライアント・コンピュータにパケットを送信する。このように、入力ＦＩＦＯキューは何万或いはそれを超えるスロットを有し、その多くは処理を待つ受信パケットで占められる。現在の通信接続の全てを記述する状態情報は、状態情報をストアするためのメモリ・リソースの相当な部分を占めてしまう。最後に、処理コンポーネントの帯域幅の全体の相当の部分は受信パケットの処理及びクライアント・コンピュータへの応答パケットの返送の生成に費やされる。
【００１６】
図３Ａ−Ｂは、サーバー・コンピュータと遠隔クライアント・コンピュータとの間の通信の性能劣化或いは完全な崩壊につながり得るような、サーバー・コンピュータ内の二つのタイプのリソース使い尽しを図示している。図３Ａに示されるように、パケットが受信コンポーネント２０２によって、とても速い速度で受信（３０２）されるときは、入力ＦＩＦＯキュー２０６は完全に満杯になる。それは、処理コンポーネント２０８が、追加の受信パケットを待ち行列に入れるＦＩＦＯキューのスロットを空にするほど十分に早くは受信パケットを処理できないからである。この場合、受信コンポーネント２０２は受信したパケットをストアする場所がないので、受信コンポーネントはスペースが入力キュー上に利用可能になるまで、到来するパケットを単に無視し、排除する。このような状況は、一つ或いはそれを超える遠隔コンピュータが接続要求やその他のパケットの洪水を特定のサーバー・コンピュータに送信する、サービス拒否（「ＤｏＳ」）攻撃の結果であり得る。サーバー・コンピュータは受信パケットを引き続いて処理できるが、正当なパケットよりも到来する悪意のパケットの数がすこぶる大きいので、ＤｏＳ攻撃の最中に、正当なパッケージが受信されて処理される機会は極めて低く、そして、正当なクライアントはそれ故にサーバー・コンピュータへのアクセスが拒否される。
【００１７】
図３Ｂは、リソースの使い尽しの第二のタイプを図示している。図３Ｂに示されるように、更なるパケットの受信のために入力ＦＩＦＯキュー２０６内には多数の空のスロットが残されているが、メモリ・リソース２１０は状態情報で完全に満杯になっており、処理コンポーネント２０８は、入力ＦＩＦＯキューからたとえ更なる接続要求を取り出したとしても、その接続要求を処理するために状態情報を創り出してストアすることが出来ない。この場合、サーバーは一般に接続要求を拒否して終わる。この状況はＳＹＮフラッド攻撃の結果であり得、ＳＹＮフラッド攻撃では、メモリ・リソースを使い尽させ、サーバーが後続の接続を受け付け出来ないようにさせるために、膨大な数の三段階ＴＣＰプロトコル接続確立手順のＳＹＮパケットがサーバー・コンピュータに送信される。これらは、受信パケット或いは接続要求をサーバーが処理できるよりも速い速度で外部コンピュータから膨大な数のメッセージ或いはパケットを受け取ることによる、或いは、ストアされた状態情報が蓄積し、状態情報ストレージ・リソースを使い尽しさせる結果を引き起こすような有害な接続要求の故に、サーバー・コンピュータ内に生じるリソース使い尽し状況の異なるタイプの二つの例である。
【００１８】
図４Ａ−Ｂは、本発明の一実施例による、図３Ａ−Ｂに図示されたリソース使い尽し関連の通信失敗を回避するためのサーバー・コンピュータ内に組込まれた多層通信セキュリティ・システムのコンポーネントを図示する。図４Ａ−Ｂに図示された本発明の一実施例は、本発明によるサーバー・コンピュータ内の或いは分散サーバー・コンピュータ内の多層通信セキュリティ・システムの多くの異なり得る実施例の内の僅かに一つである。
【００１９】
図４Ａにおいて、サーバー・コンピュータの通信媒体関連コンポーネントは図２Ａ−Ｈ及び図３Ａ−Ｂと同様に示されている。加えて、多くの新しいコンポーネントが示されている。これらの新しいコンポーネントは、見込みパケット・ドロッパー４０２、パケット速度調節器４０４、自動ファイヤーウォール４０６、及び、リソース管理コンポーネント４０８及び４１０の二つの例を含んでいる。見込みパケット・ドロッパーは、パケット速度調節器、或いは、二つのリソース管理コンポーネント４０８及び４１０の一方或いは両方により、起動される。見込みパケット・ドロッパーは、パケットを待ち行列に入れるために入力ＦＩＦＯキュー２０６に通過させるのではなく、リソース使い尽しの発端に応答して、入力パケットの一部を無作為に選択し、それらのパケットを排除する。パケット速度調節器４０４は、サーバーによる処理能力を超えた速さの到来パケットの速さを検知し、見込みパケット・ドロッパーを起動して通常のパッケト受信速度が或る最大受信速度に、或いは、それよりも低くなるように、調節する。自動ファイヤーウォール４０６は、個々のクライアント・コンピュータが或る最大パケット送信速度を超えるとき、個々のクライアント・コンピュータからのパケット受信を調節するように働く。第一のリソース管理部４０８は入力ＦＩＦＯキュー２０６の使い尽しの発端を検知し、見込みパケット・ドロッパー４０２を起動して入力ＦＩＦＯキュー２０６の使い尽しを回避する。第二のリソース管理部４１０はメモリ・リソース２１０の使い尽しの発端を検知し、見込みパケット・ドロッパー４０２を起動してメモリ・リソース２１０の使い尽しを回避する。
【００２０】
図４Ｂは、メモリ・リソースの使い尽しを回避する、サーバー・コンピュータに組込まれた接続要求処理方法を図解する。サーバーとのＴＣＰ接続を確立することを要求する、次のＳＹＮパケットが受信（４２０）されると、ＴＣＰ三段階接続確立手順の間に、ストアされなければならない状態情報４２２が最小化され、状態情報の一つの部分４２４はメモリ・リソース４２６にストアされ、状態情報のもう一つの部分４２８は、スクランブル化され、或いは、暗号化され、ＳＹＮ要求を送信したクライアント・コンピュータに、ＳＹＮ−ＡＣＫ応答メッセージ４０３内で、返信される。加えて、メモリ・リソース４２６にストアされた状態情報、及び、要求元クライアント・コンピュータに返信される状態情報４２８をスクランブル化或いは暗号化するために用いられる情報、の両方には、終了時間が付与され、そうして、ＳＹＮ要求を送信したクライアント・コンピュータが、ＳＹＮ要求に対するＳＹＮ−ＡＣＫ応答への応答をタイムリーな状態で失敗し、状態情報及びスクランブル化或いは暗号化情報が効果的にサーバー・コンピュータから取り除かれ、接続の発端に関連する不必要な状態情報がサーバー・コンピュータ内に維持されることを許すのではなく、接続の発端が速やかに終了される。この方法は、サーバー・コンピュータ内に保持される状態情報の量を減らし、仕掛り中の接続を速やかに終了させることによって、そのための状態情報が限りあるメモリ・リソースにストアされるところの接続要求の数を非常に増大させ、そして、接続の発端を速やかに終了させることにより、山と積まれたＳＹＮフラッド攻撃を挫折させ、三段階接続確立トランザクションを延長させたり、不正に完了させたりする試みから、悪意ある遠隔の主体を遠ざける。
【００２１】
図５は、本発明の一実施例による見込みパケット・ドロッパーの制御フロー図を提供する。見込みパケット・ドロッパー（図４Ａ中の４０２）は、パケット速度調節器（図４Ａの４０４）、第一のリソース管理部（図４Ａの４０８）、及び、又は、第二のリソース管理部（図４Ａの４１０）により、起動されると、受信パケットの一部を排除する。見込みパケット・ドロッパーは、２つのローカル・可変アレイｄｒｏｐ及びｐを採用するものであってもよい。ローカル・アレイｄｒｏｐは、見込みパケット・ドロッパーが図４Ａで論述された３つのコンポーネント４０４、４０８、及び４１０の夫々によって起動されているか否かを示す３つのブール値を含んでいる。これら２つのアレイは、初期化ステップ５０２で初期化され、ｄｒｏｐアレイの場合はブール値の偽、即ち、０値を、ｐアレイの場合は全て０値を含むことになる。そして、ステップ５０４で、見込みパケット・ドロッパーはシステム動作中に生じる全てのイベントを待ち、そして処理する。ステップ５０６で判断されるように、次のイベントが起動信号であるときは、ステップ５０８において、ｄｒｏｐアレイの対応する要素はブール値の真にセットされ、ｐアレイの対応する要素は起動コンポーネントから送られる比にセットされる。ステップ５１０で判断されるように、受信信号が停止信号であるときは、ｄｒｏｐアレイ及びｐアレイ中の対応する要素はクリアされる。ステップ５１４で判断されるように、イベントがパケットの受信であり、そして見込みパケット・ドロッパーが起動されているときは、ステップ５１８で、０及び１間の乱数ｒが計算され、そして、ステップ５２０で判断されるように、ｒが、ｐアレイ内にストアされた最大値より小さいときは、ステップ５２２で、受信したパケットが排除される。ｒが、ｐアレイ内の最大値より大きいか或いは等しいとき、ステップ５２４で、パケットはサーバーに転送される。全ての他のイベントはステップ５２６で包括ハンドラーにより処理される。こうして、見込みパケット・ドロッパーは、サーバー・コンピュータが働いてパケットの受信を継続している間、ステップ５０４及び後続のステップのイベント処理ループの実行を継続する。ｐアレイの要素は、排除されることが見込まれる到来パケットの比の表示である。見込みパケット・ドロッパーは、図４Ａに示される、コンポーネント４０４、４０８、及び４１０の何れかにより起動されていると、パケットを最大比まで排除する。 
図６は、本発明の一実施例によるパケット速度調節器の制御フロー図を与える。パケット速度調節器（図４Ａの４０４）は、到来するパケットの速度が最大速度を超えるときにはいつでも見込みパケット・ドロッパーを起動する。初期化ステップ６０２で、パケット速度調節器は最大パケット速度ｍａｘ＿ｒａｔｅを受取り、インターバル・タイマーをセットし、現在時間変数ｔをセットし、変数ｉｎｃを０にセットし、Ｆ（０）＝０により、指数連続平均関数Ｆを初期化する。そして、ステップ６０４において、パケット速度調節器は次に起きるイベントを待ち、後続のステップでイベントを処理する。こうして、パケット速度調節器は、見込みパケット・ドロッパーと同様に、継続的なイベント処理ループとして働く。ステップ６０６で判断されるように、次のイベントがパケットの受信であるときは、ステップ６０８で、変数ｉｎｃは増分される。ステップ６１０で判断されるように、次のイベントがタイマー終了であるときは、ステップ６１２で、変数ｔは増分され、現在の指数連続平均Ｆ（ｔ）は、Ｆ（ｔ）＝Ｆ（ｔ−１）＋Ｗ（ｉｎｃ−Ｆ（ｔ−１））として計算され、ここで、Ｗは重みづけ関数であり、変数ｉｎｃはそして０にセットされる。ステップ６１４において、差分ｄｉｆｆは、現在の指数連続平均からパケットの受信の許され得る最大値ｍａｘ＿ｒａｔｅを引いたものである。ステップ６１６で判断されるように、差分が０より大きいとき、パケット速度調節器はステップ６１８で起動信号を見込みパケット・ドロッパー（ｐｐｄ）に送り、ステップ６２０でタイマーをリセットする。そうでなければ、ステップ６２２において、パケット速度調節器は停止信号を見込みパケット・ドロッパー（ｐｐｄ）に送る。ステップ６２４において、包括ハンドラーは発生するイベントの他の全てのタイプを処理する。ステップ６１８において、パケット速度調節器は、１−（ｍａｘ＿ｒａｔｅ）／ｄｉｆｆにより、排除するパケットの比ｐを計算する。こうして、パケット速度調節器は、到来するパケットを継続的に監視し、受信したパケットの速度が最大速度を超えるときは、パケット受信速度が最大速度或より最大値より低下するまで、見込みパケット・ドロッパーを起動してパケットを排除する。
【００２２】
図７は、本発明の一実施例によるリソース管理部についての制御フロー図を提供する。リソース管理部は、図４Ａに示されるように、入力ＦＩＦＯキュー２０６及びメモリ・ソース２１０の何れか一方、或いは、両方に組込まれ得る。リソース管理部はサーバー・システムの他のリソース・コンポーネントにも同様に組込まれてよい。初期化ステップ７０２において、リソース管理部は二つの指数連続関数Ｆｉｎｃ及びＹｄｅｃを初期化し、レファレンス値或いはベクトルを受信し、ローカル変数値ｉｎｃ及びｄｅｃを０にセットし、間隔タイマーをセットし、また、時間変数値ｔを０にセットする。そして、ステップ７０４において、リソース管理部は次のイベントを待ち、そして、後続のステップでイベントを処理する。パケット速度調節器及び見込みパケット・ドロッパーと同様に、リソース管理部は、サーバーが動作して外部コンピュータ・システムからのパケットを受信している間は、イベント処理ループを実質的に連続的に実行する。ステップ７０６で判断されるように、パケットを入力ＦＩＦＯキュー２０６の待ち行列に入れたり、或いは、メモリ・ソース２１０に状態情報を置いたりするように、次のイベントがリソースを使用するものであるときは、ステップ７０８で、変数値ｉｎｃが増分される。そうでなく、ステップ７１０で判断されるように、特定の状態値をストアしているリソースの一部を空にすることや、或いは、入力ＦＩＦＯキューからのエントリーの取り出しのように、イベントがリソースの返還であるときは、ステップ７１２で変数値ｄｅｃが増分される。ステップ７１４で判断されるように、イベントがタイマー終了であるときは、ステップ７１６で、時間変数値ｔは増分され、Ｆｉｎｃ（ｔ）＝Ｆｉｎｃ（ｔ−１）＋Ｗ（ｉｎｃ−Ｆｉｎｃ（ｔ−１））及びＦｄｅｃ（ｔ）＝Ｆｄｅｃ（ｔ−１）＋Ｗ（ｄｅｃ−Ｆｄｅｃ（ｔ−１））のようにして、現在の連続平均値Ｆｉｎｃ（ｔ）及びＦｄｅｃ（ｔ）が計算され、そして変数値ｄｅｃ及びｉｎｃはクリアされる。そして、ステップ７１８で、ベクトル或いは値ｃｏｎｔｒｏｌは、現在の指数連続平均値Ｆｉｎｃ及びＦｄｅｃの関するとして計算される。ステップ７２０で、差分値或いはベクトルｄｉｆｆは、コントロール、及び、レファレンス値或いはベクトル間の、差分として計算される。ステップ７２２で判断されるように、差分ベクトルの傾斜（ｓｌｏｐ）が正であるとき、或いは、コントロール値及びレファレンス値の差分が正であるときは、ステップ７２４で、リソース管理部は起動信号を見込みパケット・ドロッパー（ｐｐｄ）に送り、差分ベクトル或いは値の大きさの関数として、排除すべきパケットの比ｐを計算し、ステップ７２６でタイマーがリセットされる。差分ベクトルの傾斜が正でないとき、制御値及び参照値の間の差分の傾斜が正でないとき、ステップ７２８で、停止信号が見込みパケット・ドロッパーに送られ、ステップ７３０でタイマーがリセットされる。包括タイマーが用いられて、ステップ７３２で、全ての他のタイプのイベントが処理される。こうして、リソースの使い尽しの前に、見込みパケット・ドロッパーを起動するために、割り当て対割り当て解除の平均数を監視して使い尽し状態の発端を監視することによりリソース管理部はリソースの利用状況を監視する。
【００２３】
参照値及び制御値は見込みの分布の中心点に対応するベクトルであってもよいし、その代りに、リソースの割り当ての解除に対する割り当ての比率に対応するスカラー値であってもよい。どちらにあっても、或いは、代替的な案にあっては、参照値は期待されるリソース利用を示し、最も近くに測定された、実際のリソースの利用状況に対応する制御値がリソースの使い尽しの発端を示す方向に参照値から異なっているときは、パケットの受信が調節される。
【００２４】
図８は、本発明の一実施例を表す多層通信セキュリティ・システムのファイヤーウォールにより使用されるテープルを示す。ここで、エントリーとは、行８０２のような、行であるが、テーブル内の各行は、サーバー・コンピュータにパケットを送信した遠隔クライアント・コンピュータのアドレスに対応するソースＩＤフィールド値８０４によって索引付けされる。このように、テーブル内の各エントリーは遠隔クライアント・コンピュータに対応する。各テーブル・エントリーは更なるフィールドとして：（１）クライアント・コンピュータ、或いはソースから最後のパケットを受信した時間である、ｔｉｍｅ８０６、（２）現在の時間間隔の間に受信したパケットの数の計数値である、ｎｕｍ８０８、（３）ソースによるパケットの受信の現在の最大速度である、ｒａｔｅ８１０、（４）ソースが現在、ブラックリストに載せられているか否かを示すブール代数値である、ブラックリスト入り８１２、そして、（５）ソースのブラックリスト或いはグレイリスト終了時間である、ｂＴ８１４（グレイリストは以下で説明される。）を含む。
【００２５】
図９Ａ−Ｅは、本発明の一実施例を表す多層通信セキュリティ・システムの自動ファイヤーウォール・コンポーネントについての制御フロー図を提供する。図９Ａは、自動ファイヤーウォール・コンポーネントについてのハイレベルな制御フロー図である。ステップ９０２で、図８を参照して上述されたソース・テーブルは最大速度ｍａｘ＿ｒａｔｅに初期化され、ここで、ｍａｘ＿ｒａｔｅとはいかなるソースについても許容される最大パケット通信速度であり、そして、タイマーがセットされる。そして、ステップ９０４で、自動ファイヤーウォールは次のイベントが発生するのを待ち、そして、後続のステップで次のイベントを処理する。ステップ９０６で判断されるように、次のイベントが受信パケットであるときは、ステップ９０８で、パケットを送りだしたクライアント・コンピュータのソースＩＤ即ちアドレスがパケットから抽出され、そしてステップ９１０で「パケット」ルーチンがコールされる。そうでなければ、ステップ９１２で判断されるように、イベントがタイマー終了であるときは、ステップ９１４で、「ファイヤーウォール・タイマー」ルーチンがコールされ、そして、ステップ９１６で、タイマーがリセットされる。ステップ９１８で、包括ハンドラーがその他の全ての発生するイベントを処理する。
【００２６】
図９Ｂは、図９Ａのステップ９１０でコールされる、ルーチン「パケット」についての制御フロー図を提供する。ステップ９２０で、パケットのソースについてのエントリーがテーブル内で特定される。ステップ９２２で判断されるように、エントリーが見つかると、ステップ９２４で、ソース・テーブルのエントリー内のフィールドｎｕｍが増分される。ステップ９２６で判断されるように、ソースがブラックリスト入りしていると、ステップ９２８で受信パケットが排除される。そうでないときは、ステップ９３０で、パケットはサーバーに転送される。ステップ９２２で判断されるように、エントリーがソース・テーブル内に見つからないと、ステップ９３２で、空エントリーが見つけられ、そして、ステップ９３４に示されるようなエントリーの種々のフィールドの値をセットすることによりステップ９３４で空エントリーは初期化される。タイマーの仕組みが期限切れのエントリーを時間切れにして空にするために用いられる。
【００２７】
図９Ｃは、図９Ａのステップ９１４でコールされる、「ファイヤーウォール・タイマー」ルーチンについての制御フロー図を提供する。タイマーが切れると、ソース・テーブル内の現在、起動されているソースの全てがステップ９４０で始まる、ループ内での処理対象とされる。ステップ９４２で、次のソースについてのソース・テーブル内のエントリーが見つけられる。ステップ９４４で判断されるように、ソース・テーブルのエントリー内のｎｕｍフィールド及びタイマー間隔期間から計算されるような、ソースからのパケット受信の現在速度が、そのソースについて現在許容されるパケット受信の最大速度を超えるときは、もし、ステップ９４６で判断されるように、ソースはまだブラックリスト入りされていないなら、「ブラックリスト」ルーチンがステップ９４８でコールされて、ソースはブラックリスト入りし、ある時間に亘って、ソースからのそれ以上の如何なるパケットの受信を停止する。そうでなければ、ステップ９５０で判断されるように、次のブラックリスト或いはグレイリスト期間が終了すると、そして、ステップ９５２で判断されるように、ソースが現在、ブラックリスト入りされていると、ステップ９５４で、ソースはブラックリスト入りされていることから除かれ、そして、代わりに、グレイリスト入りされ、減速された最大速度でソースはパケットをサーバーに送信することが許される。そうでなければ、ソースはグレイリスト入りされ、そして、ステップ９５６で「機能回復」ルーチンがコールされ、ソースは更に機能回復処理される。ステップ９５８で判断されるように、「ｄｅａｄ＿ｔｉｍｅ」よりも長い時間、パケットがソースから受信されていないときは、ステップ９６０で、ソース・テーブル内のソースのエントリーは空にさせられる。そうでなければ、ステップ９６２で、ソースのエントリーのフィールドｎｕｍは０にセットされる。こうして、ファイヤーウォール・タイマーの終了時に、リソースの全てが処理される。パケット通信速度が、現在、許される最大速度を超えたときには、それらはブラックリスト入りされる。そうでなければ、それらの現在の通信速度が許容される通信速度を下回るときは、それまでは時間超過でブラックリスト入りされていたソースは機能回復され、一般に、ソースについて許容される最大の速度でソースは再びパケットをサーバーに送信することが許される。機能回復は一つ或いはそれを超えるグレイリスト期間を含み、その間、ソースは、最大速度より低い速度でパケットを送信することが許容される。文言「特定の速度でソースが送信することを許容する」とは、サーバーによる、受信速度が最大速度を超えない限り、ソースから受信されるパケットは意図的に排除されることはない、ということを意味する。
【００２８】
図９Ｄは、図９Ｃのステップ９４８でコールされる「ブラックリスト」ルーチンについての制御図を提供する。ステップ９７０で、ブラックリスト入りのフィールドは真にセットされ、プラックリスト終了時間ｂＴは、現在の時間ｔ、プラス、ブラックリスト期間ｂｌａｃｋである、ソースについての通信の最大速度はその現在の速度から半減される。ステップ９７２で判断されるように、ソースについての結果的な通信速度が或る最小速度よりも低いときには、ステップ９７４で、許容される通信速度は最小値ｍｉｎにセットされる。
【００２９】
図９Ｅは、図９Ｃのステップ９５６でコールされる、ルーチン「機能回復」ルーチンについての制御フロー図を提供する。ステップ９８０で、ソースについてのパケット通信の許容される速度は２倍にされる。速度がその結果、ステップ９８２で判断されるように、ソースについての最大通信速度ｍａｘ＿ｒａｔｅを超えるときは、ステップ９８４でソースについての最大転送速度は、最大速度ｍａｘ−ｒａｔｅにセットされる。ステップ９８６で、ブラックリスト或いはグレイリスト終了期間ｂＴはグレイリスト時間にセットされる。
【００３０】
勿論、多層通信セキュリティ・システムの自動ファイヤーウォール・コンポーネントは、見込みパケット・ドロッパー、パケット速度調節器、或いは、多層通信セキュリティ・システムの他のコンポーネントに組み込まれることが出来る。他の、代替的な実施例もまた可能である。例えば、ソースの異なるセットについて夫々のタイマー終了期間を調整することは好ましく、少数のソースには夫々のタイマー終了期間毎に処理される。極端な場合、各異なるソースには別のタイマーが関連付けられ、「ファイヤーウォール・タイマー」ルーチンは現在のソースの全てに一貫するループは含まず、しかし、単に一つの特定のソースが処理される。
【００３１】
次に、図３Ｂを参照して論述したＳＹＮフラッド回避方法を更に詳細に述べる。図１０は、ＴＣＰプロトコルの３段階接続確立トランザクションを図示する。遠隔クライアント・コンピュータ、或いは、ソースは、一つ或いはそれを超えるデータ転送トランザクションを実行するためにサーバー・コンピュータに接続する必要があるかを判断し、そうするには、ステップ１００２で、サーバーへの転送のために、ＳＹＮパケットを準備して送り出す。ステップ１００４で、サーバーがＳＹＮパケットを受信すると、サーバーは、ソース及びサーバーの通信媒体アドレスにより示される、接続の発端に関連する状態情報をセーブし、ステップ１００６で、ＳＹＮ−ＡＣＫメッセージを返す。ＳＹＮ−ＡＣＫメッセージはサーバーにより予期される次の連続数を示す３２ビット値を含むが、その値は、以下で論述されるように、ソースに状態情報を送り出すために、代替的に用いられることが出来る。ステップ１００８で、ソースがＳＹＮ−ＡＣＫメッセージを受信すると、ステップ１０１０で、ソースはＡＣＫメッセージを準備してそれをサーバーに送り返す。ステップ１０１２で、サーバーがＡＣＫメッセージを受信し、そして、ＡＣＫメッセージに含まれる返信情報がＳＹＮ−ＡＣＫメッセージに含まれる情報と同じとき、３段階接続確立トランザクションが成功裡に完了され、ソースとサーバーとの間で通信接続が確立されて開通される。
【００３２】
図１１は、本発明の一実施例を表すＳＹＮフラッド回避方法のデータ・コンポーネントを図示する。ＴＣＰ接続のための状態情報がｂｉｎテーブル１１０２とハッシュ・テーブル１１０４の両方にストアされる。ｂｉｎテーブルの各エントリーは二つの部分に分割される。「Ｓ」で参照される部分は終了時間１１０６、再試行フラッグ１１０８、及び、秘密テーブル１１１２内にストアされた秘密への参照１１１０をストアする。「Ｒ」１１４で参照される、ｂｉｎテーブルの他の部分は、ハッシュ・テープル・エントリー１１１６への参照を含み、ハッシュ・テーブル・エントリー１１１６は付加参照１１１８及び１１２０に潜在的に連結され、そうして、同じｂｉｎテーブルにハッシュ化される複数の異なるサーバーＩＤ及びソースＩＤの対が繋がれる。以下で更に論述されるように、タイミング機構１１２２は定められた時間の経過の後にｂｉｎテーブル・エントリーと秘密テーブル内にストアされた秘密とを無効化する。
【００３３】
図１２は、本発明の一実施例を表す３段階接続方法のための制御フロー図を提供する。最初のステップ１２０２で、ｂｉｎテーブル、ハッシュ・テーブル、秘密、及びタイミング機構が初期化される。そして、ステップ１２０４で、ルーチンは次に起きるイベントを待ち、後続のステップで起きるイベントを処理する。ステップ１２０６で判断されるように、次に起きたイベントがＳＹＮパケットの受信のときは、ステップ１２０８で、「ＳＹＮ」ルーチンがコールされる。ステップ１２１０で判断されるように、次のイベントが３段階接続確立トランザクションの最終のＡＣＫメッセージの受信であるときは、ステップ１２１２で「ＡＣＫ」ルーチンがコールされる。ステップ１２１４で判断されるように、イベントがタイマー終了であるときは、ステップ１２１６で、現在の時間より前の終了時間を有する秘密が無効化され、少なくとも一つの新しい秘密が生成される。包括イベント・ハンドラーが他のすべてのタイプのイベントのためにステップ１２１８でコールされる。
【００３４】
図１３は、本発明の一実施例を表す、図１２のステップ１２０８でコールされる、ルーチン「ＳＹＮ」についての制御フロー図を提供する。第一に、ステップ１３０２で、ソース及びサーバーについてのソースＩＤ及びサーバーＩＤが結合されハッシュされてｂｉｎテーブルへのインデックスを生成する。サーバーは、夫々が異なるポート番号であって、サーバーＩＤ中に組み込まれるような、複数の異なるポートを有してもよいことに、気付かれたい。ｂｉｎテーブル・エントリーは４つの異なる状態の何れかであり得る。前のイベントによって、ｂｉｎテーブル・エントリーのＳ部分は活性或いは非活性の何れかとされ得て、また、ｂｉｎテーブル・エントリーのＲ部分は有効化或いは無効化され得る。ｂｉｎテーブル・エントリーのＳ部分は、まだ期限切れとなっていないときに活性化され、秘密テーブル中の秘密への参照を含む。ｂｉｎテーブル・エントリーのＲ部分は、接続を表すハッシュ・テーブル・エントリーをｂｉｎテーブルが参照するときに有効で、それ以外では、無効である。ｂｉｎテーブル・エントリーの４つの取り得る状態は、従って：（１）ステップ１３０４で検知されるように、Ｓ部分が非活性でＲ部分が無効、（２）ステップ１３０６で検知されるように、Ｓ部分が非活性でＲ部分が有効、（３）ステップ１３０８で判断されるように、Ｓ部分が活性でＲ部分が無効、そして、（４）ステップ１３１０で判断されるように、Ｓ部分が活性でＲ部分が有効、である。ステップ１３１２で処理されるように、他の如何なる状態もエラーである。
【００３５】
ケース（１）について、サーバーＩＤ及びソースＩＤの対から生成されるインデックス値についての仕掛り中或いは完了した接続がなく、従って、ステップ１３０７で、ｂｉｎテーブル・エントリーのＳ部分が初期化され、インデックス値についての仕掛り中の接続の存在を示し、Ｓ部分はソースに返信される情報をスクランブル或いは暗号化するために用いられる秘密テーブル中の秘密への参照をストアすることを含んでいる。ケース（２）について、インデックスについての現在の接続があるが、仕掛り中の接続はない。ステップ１３１６で判断されるように、参照したハッシュ・テーブル・エントリー中の情報を利用して、現在のＳＹＮメッセージについてのサーバーＩＤ及びソースＩＤ間の接続に関するエントリー中のサーバーＩＤ及びソースＩＤの対をチェックするために、ＳＹＮメッセージが現在の接続に向けられると、エラー状態が生じて、ステップ１３１８で処理される。そうでないときは、ステップ１３０７で新しい接続が準備される。ケース（３）について、仕掛り接続が既にあるが、インデックスについての完了した接続はない。このケースでは、ｂｉｎエントリーが期限切れになると、ステップ１３２０で、ｂｉｎエントリーのＳ部分はクリアされ、制御はステップ１３１６に移り、期限切れになった、仕掛り中の接続についてのＳＹＮメッセージの再送によるエラー状態が起こっているか否かが判断される。そうではければ、ステップ１３２２で判断されるように、ＳＹＮ情報のために情報をスクランブル或いは暗号化するための秘密への参照を計算し、参照がｂｉｎテーブル・エントリーのＳ部分にストアされた参照と同一か否かをチェックすることにより、ＳＹＮメッセージが既に起動された、仕掛り中の接続に向けられているときは、そして、ステップ１３２４で判断さるように、再試行ビットがｂｉｎテーブル・エントリー中でセットされるときは、エラーの結果となり、エラーはステップ１３２６で処理される。そうでなければ、サーバーから以前に送信されたＳＹＮ−ＡＣＫメッセージは、失われ、或いは、排除されており、ステップ１３２８で再送される。ＳＹＮメッセージが既に仕掛り中の接続に向けられていないときは、ステップ１３３０で、ＳＹＮメッセージは無視される。ケース（４）について、インデックスについての接続が既に存在し、そして、インデックスについての仕掛り中の接続も存在する。ステップ１３３４で判断されるように、ｂｉｎエントリーが期限切れになると、制御はステップ１３２０に移る。そうでなければ、ステップ１３３６で判断されるように、ＳＹＮメッセージは既に確立された接続に向けられているときは、エラーが発生しており、ステップ１３３８で処理される。ＳＹＮメッセージのための情報を暗号化或いはスクランブル化するための秘密への参照を計算し、その参照がｂｉｎエントリー中のＳ部分にストアされた参照と同一か否かをチェックすることにより、ステップ１３４０で判断されるように、ＳＹＮメッセージが仕掛り中の接続に向けられているときは、制御はステップ１３２４に移る。そうでなければ、ステップ１３４２で、ＳＹＮメッセージは無視される。
【００３６】
図１４は、本発明の一実施例を表す、図１２のステップ１２１２でコールされる、「ＡＣＫ」ルーチンについての制御フロー図を提供する。ステップ１４０２で、サーバーＩＤ及びソースＩＤがハッシュされてｂｉｎテーブル中にインデックスが生成される。図１３を参照して、上述したｂｉｎテーブル・エントリーについての同じ４つのケースは図１４の「ＡＣＫ」ルーチンにより再び処理される。ステップ１４０４及び１４０６で判断されるように、ＡＣＫメッセージが現在の接続でも仕掛り中の接続でもないインデックスに向けられ、或いは、仕掛り中の接続でないインデックスに向けられるとき、エラーが発生し、ステップ１４０８で処理される。ＡＣＫメッセージが、ステップ１４１０で判断されるように、仕掛り中の接続はあるが現在の接続はないインデックスに向けられているときは、そして、ＡＣＫメッセージが、ステップ１４１２で判断されるように、暗号化された或いはスクランブル化された情報を再計算するためのＳＹＮ情報についての情報を最初に暗号化或いはスクランブル化するために用いられる秘密へのストアされた参照を用い、二つが同一か否かをチェックすることにより、仕掛り中の接続のインデックスに向けられているときは、仕掛り中の接続は成功裡に完了し、そのとき、返された情報はＳＹＮ−ＡＣＫメッセージの中で送られた情報と同一であり、ステップ１４１４で仕掛り中の接続のために全ハッシュ・テーブル・エントリーが準備される。そうでなければ、ＡＣＫメッセージは現在の接続に向けられており、エラーが発生してステップ１４０８で処理される。ステップ１４１６で判断されるように、ＡＣＫメッセージが、現在の接続及び仕掛り中の接続を示すインデックスに向けられているときは、そして、ステップ１４１８で判断されるように、ＡＣＫメッセージが、現在の接続に向けられているときは、エラーが発生し、ステップ１４２０で処理される。そうでなければ、制御フローはステップ１４１２に移ってＡＣＫメッセージが仕掛り中の接続に向けられているか否かが判断され、その場合、ＡＣＫメッセージは適切に処理される。
【００３７】
本発明は特定の実施例に基づいて述べられてきたが、これらの実施例に本発明が限定されるべきではない。本発明の意図の範囲内の変更は当業者にとって明らかである。例えば、ソース制御、見込みパケット・ドロッパー、パケット速度調節器、自動ファイヤーウォール、及び、接続要求コンポーネントは、たくさんのどのような異なる実行可能なプログラミング言語で実現されてもよいし、たくさんの異なるオペレーティング・システムやそのほかの制御プログラムを伴うものであっても、なくても、よいし、異なるモジュール組織、データ構造、制御構造、変数、を用いてもよいし、実行上の制約に従って変化する他のプログラミング・パラメーターを伴うものでもよい。本発明の実施例は、電子通信を通じて遠隔物と通信するあらゆるコンピュータ或いはコンピュータのシステムに組み込まれ得る。コンピュータ・システムのリソースの使い尽し、及び、又は、パケットのオーバーロードの発端を検知し、見込みパケット・ドロッパーを起動して対応するために、異なる計測手段が用いられてもよい。異なるタイマー間隔が用いられてよく、グレイリスト入り及びブラックリスト入りの異なる期間、異なる最大速度及び個別のソースの最大速度、及び、論述してきた発明のその他のパラメーターは、必要に応じて、サーバーの通信コンポーネントを適切に守るために、変更し得る。説明目的のため、先行の記述は、発明の十分な理解を提供するために、特定の用語を用いた。しかしながら、発明を実施するためには特定の詳細は必要でないことが当業者にとっては明瞭である。本発明の特定の実施例の先行する記述は図解と既述のために表されている。それらは、本発明を開示した精巧な形式にのみ適用し或いは限定しようと意図されていない。上記の教示からたくさんの変更や変化が可能である。実施例は本発明の原理及びその実践的応用を最もよく説明するために示され、記述され、それにより、当業者が発明及び熟考された特定の利用に適合した様々な変更を伴う実施例を最もよく利用できるようにしている。発明の範囲は以下の特許請求の範囲及びその均等物によって特定される。
【図１】
2010521839.tif 000003
【図２Ａ】
2010521839.tif 000004
【図２Ｂ】
2010521839.tif 000005
【図２Ｃ】
2010521839.tif 000006
【図２Ｄ】
2010521839.tif 000007
【図２Ｅ】
2010521839.tif 000008
【図２Ｆ】
2010521839.tif 000009
【図２Ｇ】
2010521839.tif 000010
【図２Ｈ】
2010521839.tif 000011
【図３Ａ】
2010521839.tif 000012
【図３Ｂ】
2010521839.tif 000013
【図４Ａ】
2010521839.tif 000014
【図４Ｂ】
2010521839.tif 000015
【図５】
2010521839.tif 000016
【図６】
2010521839.tif 000017
【図７】
2010521839.tif 000018
【図８】
2010521839.tif 000019
【図９Ａ】
2010521839.tif 000020
【図９Ｂ】
2010521839.tif 000021
【図９Ｃ】
2010521839.tif 000022
【図９Ｄ】
2010521839.tif 000023
【図９Ｅ】
2010521839.tif 000024
【図１０】
2010521839.tif 000025
【図１１】
2010521839.tif 000026
【図１２】
2010521839.tif 000027
【図１３】
2010521839.tif 000028
【図１４】
2010521839.tif 000029
【国際調査報告】
2010521839.tif 000030
2010521839.tif 000031