【手続補正書】
【提出日】平成17年4月26日(2005.4.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項６
【補正方法】変更
【補正の内容】
【請求項６】
最長時間未使用の（ＬＲＵ）二重リンクリストを設定し維持するステップをさらに含み、このリストは先頭と末尾を有し、最短時間未使用のセッションは末尾に記憶され、最長時間未使用のセッションは先頭に記憶される、請求項１に記載の方法。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１５
【補正方法】変更
【補正の内容】
【請求項１５】
通信セッションの状態をモニターする方法であって、
各セッションがソケットに対応した複数のセッションに対して、セッションに関係するデータを記憶するセッションデータベースを設けるステップ；
受信パケットに関連したソケットについての第１ハッシュ計算に従ってセッションを認識するステップ；
前記受信パケットに関連した部分ソケットについての第２ハッシュ計算に従ってホールセッションを認識するステップ；
認識されたセッションか又は認識されたホールセッションのどちらかに関連した前記セッションデータを前記セッションデータベースから読み出すステップ；
前記セッションの接続状態を追跡し、複数の規則に基づいて前記状態をチェックして前記受信パケットの許否を決定するステップ；及び
更新されたセッションデータを元の前記セッションデータベースに書き込むステップ
を含む前記方法。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１９
【補正方法】変更
【補正の内容】
【請求項１９】
最長時間未使用の（ＬＲＵ）二重リンクリストを設定し維持するステップをさらに含み、このリストが先頭と末尾を有し、最短時間未使用のセッションが末尾に記憶され、最長時間未使用のセッションが先頭に記憶される、請求項１５に記載の方法。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２８
【補正方法】変更
【補正の内容】
【請求項２８】
前記主フィルターが、前記受信パケットの許否の決定後に修正されたセッションデータを元の前記セッションデータベースに書き込む、請求項２７に記載の動的フィルター。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３２
【補正方法】変更
【補正の内容】
【請求項３２】
前記セッション管理モジュールが、最長時間未使用の（ＬＲＵ）二重リンクリストを設定及び維持し、このリストは先頭と末尾を有し、その末尾には最短時間未使用のセッションが記憶され、その先頭には最長時間未使用のセッションが記憶される、請求項２７に記載の動的フィルター。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３７
【補正方法】変更
【補正の内容】
【請求項３７】
前記主フィルターが、もしセッションが伝送制御プロトコル（ＴＣＰ）開設セッションを含むならば伝送制御プロトコル（ＴＣＰ）開設のハンドシェイクの状態を追跡するための手段をさらに備える、請求項２７に記載の動的フィルター。
【手続補正７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３８
【補正方法】変更
【補正の内容】
【請求項３８】
前記主フィルターが、もしセッションが伝送制御プロトコル（ＴＣＰ）閉鎖セッションを含むならば伝送制御プロトコル（ＴＣＰ）閉鎖のハンドシェイクの状態を追跡するための手段を備える、請求項２７に記載の動的フィルター。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
図面の簡単な説明
ここでは、単なる例として添付図面に関して本発明を説明する。
図１は、ＷＡＮ又はインターネットとの関連において本発明の動的パケットフィルターのいくつかの適用例を示すブロック図であり；
図２は、本発明の動的パケットフィルターをさらに詳細に示したブロック図であり；
図３は、本発明の主フィルタープロセッサ法を示すフローチャートであり；
図４は、一致が見つかった場合の本発明の主フィルタープロセッサ法を示す状態遷移図であり；
図５は、一致が見つからなかった場合の本発明の主フィルタープロセッサ法を示す状態遷移図であり；
図６は、入力パケットに関連したセッションを決めるハッシング技術を示す図であり；
図７は、本発明のセッション認識プロセスのハッシング方法を示すフローチャートであり；
図８は、本発明のセッション認識プロセスのホールサーチ方法を示すフローチャートであり；
図９は、ＴＣＰセッションのパケットフローを示す図であり；
図１０は、ＴＣＰセッションを開く際の３−ウエイハンドシェイクを示す状態遷移図であり；
図１１Ａと図１１Ｂは、ＴＣＰセッションを閉じる際の４−ウエイハンドシェイクを示す状態遷移図であり；
図１２は、ＡＲＰセッションのパケットフローを示す図であり；
図１３は、ＩＣＭＰエコーセッションのパケットフローを示す図であり；
図１４は、ＩＣＭＰメッセージ／エラーセッションのパケットフローを示す図であり；
図１５は、主フィルタープロセッサによる規則のチェック中に行われるシーケンス番号のウインドウ追跡を示す図であり；
図１６は、主フィルタープロセッサによる規則チェック中に行われる肯定応答シーケンス番号のウインドウ追跡を示す図であり；
図１７は、セッションの古さを追跡するのに用いられる最長時間未使用のリンクリスト構造を示す図であり；
図１８は、入力パケットに関連したセッションを認識したときＬＲＵリンクリストを更新する方法を示すフローチャートであり；
図１９は、本発明のセッション管理モジュールの処理を示すフローチャートであり；
図２０は、セッションを開くために本発明のセッション管理モジュールにより実行される処理を示すフローチャートであり；
図２１は、セッションを閉じるために本発明のセッション管理モジュールにより実行される処理を示すフローチャートであり；
図２２は、セッションに対するファミリーポインタを示す図であり；
図２３は、複数のセッション間のファミリー関係の例を示す図であり；
図２４は、本発明のセッション追跡方法を用いて動的パケットフィルタリングを実行するのに適応したプラットフォームに対するコンピュータ処理システムの例を示すブロック図である。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
発明の詳細な説明
全体を通して用いられる表記
この文書全体を通して以下の表記を用いる。
2004538678.tif 000001
用語            定義                                                  
2004538678.tif 000002
ＡＤＳＬ        非対称デジタル加入者回線                              
ＡＲＰ          アドレス絞り込みプロトコル                            
ＡＳＩＣ        特定用途向け集積回路                                  
ＣＰＵ          中央演算処理装置                                      
ＤＡＴ          デジタルオーディオテープ                              
ＤＳＬ          デジタル加入者回線                                    
ＤＳＰ          デジタル・シグナル・プロセッサ                        
ＤＶＤ          デジタル多用途ディスク                                
ＥＥＰＲＯＭ    電気的消去・プログラム可能型読取専用メモリ            
ＥＥＲＯＭ      電気的消去・書込み可能ＰＲＯＭ                        
ＥＰＲＯＭ      消去可能プログラム可能読取専用メモリ                  
ＦＰＧＡ        フィールド・プログラマブル・ゲート・アレイ            
ＦＴＰ          ファイル転送プロトコル                                
ＨＤＳＬ        高ビットレート・デジタル加入者回線                    
ＨＴＭＬ        ハイパーテキスト・マークアップ言語                    
ＩＡＢ          インターネット・アーキテクチャ委員会                  
ＩＣＭＰ        インターネット・コントロール・メッセージ・プロトコル  
ＩＰ            インターネット・プロトコル                            
ＩＳＰ          インターネット・サービス・プロバイダ                  
ＬＡＮ          ローカルエリア・ネットワーク                          
ＬＲＵ          最長時間未使用(Least Recently Used)                     
ＮＩＣ          ネットワーク・インターフェース・カード                
ＯＳＩ          開放型システム間相互接続                              
ＰＣ            パーソナル・コンピュータ                              
ＰＤＡ          パーソナル・デジタル・アシスタント                    
ＰＤＵ          プロトコル・データ・ユニット                          
ＲＡＭ          ランダムアクセスメモリ                                
ＲＯＭ          読み出し専用メモリ                                    
ＴＣＰ          伝送制御プロトコル                                    
ＵＤＰ          ユーザー・データグラム・プロトコル                    
ＶＤＳＬ        超高ビットレート・デジタル加入者回線                  
ＷＡＮ          広域ネットワーク                                      
ＷＷＷ          ワールドワイドウエブ                                  
2004538678.tif 000003
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
主フィルタープロセッサは、ＣＰＵインターフェース５８を備え、動的フィルターの主要な処理ブロックとして機能する。これは、新しいセッションを開き、既存のセッションを処理し、そして、特定のプロトコルに従って正当、すなわち許可された状態変化を検証している間に、セッションの状態を追跡する。セッション認識モジュールは、ソケットを受信し、セッションデータベースにおいてそのソケットに一致する開かれたセッションを検索する機能を有する。セッション管理モジュールは、ハッシュリンクリストと最長時間未使用（ＬＲＵ）リンクリストを維持し、それによってリストへのセッションの追加およびリストからセッションの削除を行う機能を有する。セッションデータベースは、動的フィルターの様々な処理モジュールによる使用のために、セッション状態と現在のステータスを含めて、ソケットとその他のセッション関連データとを記憶する機能を有する。セッションの認識を加速するのために、ハッシュテーブルとホールテーブルが用いられる。これらのコンポーネントについては、後にさらに詳細に説明する。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
セッション管理モジュール
本発明によると、セッション管理モジュールは、最長時間未使用の順番にてセッションを記憶すべくリンクリストを維持する機能を有する。セッション管理モジュールは、セッションデータベースの維持及び制御に関係したいくつかの機能を実行する。セッション管理モジュールは、ＣＰＵからの命令に応じて、セッションデータベース中に記憶されたセッションのタイムスタンプの有効性をチェック（すなわちエージ測定）するよう機能する。エージ測定を実行する命令が受信されると、セッションデータベース中の各レコードのタイムスタンプフィールドが調査され、期限が切れたレコードが閉じられる。古くなり且つ何らかの理由で正常に閉じられなかったセッションを廃棄する(flush) ために、エージ測定がセッションについて行われる。例えば、セッションは、もしそれが規則に違反したパケットに対応するならば、エージオーバーし得る。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
図１７は、セッション使用を追跡するのに用いられる最長時間未使用の（ＬＲＵ）リンクリスト構造を示す。セッションが認識（すなわちアクセス）され、対応するパケットが主フィルター処理によって許可される度に、セッションがＬＲＵリンクリストの末尾に配置される。全体として符号２２０で示された二重リンクリストは複数のセッション２２６を含み、その各々が次のポインタ２２２と前のポインタ２２４を有する。ＬＲＵリンクリストの末尾のセッションは、ｔａｉｌ＿ＬＲＵ＿ｉｎｄｅｘ＿ｒｅｇレジスタ２２８の内容によって指示される。このレジスタにより指示されたセッションは、最短時間未使用のセッションを表す。ＬＲＵリンクリストの先頭のセッションは、ｈｅａｄ＿ＬＲＵ＿ｉｎｄｅｘ＿ｒｅｇレジスタ２２７の内容によって指示される。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
セッションデータベースがいっぱいの場合において、新しいセッションが加えられたときにどのセッションを除去するかを決めるために、ＬＲＵリンクリストが用いられる。この場合、最長時間未使用のセッションが閉じられ、新しいセッションを記憶するのにそのレコードが用いられる。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】０１０３
【補正方法】変更
【補正の内容】
【０１０３】
図１８は、入力パケットに関連したセッションを認識した際にＬＲＵリンクリストを更新する方法を示すフローチャートである。一致セッションがアクセスされかつ対応するパケットが許可される度に、この更新方法が実行される。図１７に関し、特に前のセッション、一致セッション及び次のセッションとラベル付けされたセッションに関し、一致セッションがリスト中のその位置から末尾に移されて最短時間未使用のセッションとなる。一致セッションは、（１）前のセッションの次のＬＲＵポインタを一致セッションの次のＬＲＵポインタに設定すること、及び（２）次のセッションの前のＬＲＵポインタを一致セッションの前のＬＲＵポインタに設定することによって除去される（ステップ２３０）。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】０１０４
【補正方法】変更
【補正の内容】
【０１０４】
次に、一致セッションは、（１）一致セッションの次のＬＲＵポインタをヌルに設定すること、（２）一致セッションの前のＬＲＵポインタをｔａｉｌ＿ＬＲＵ＿ｉｎｄｅｘ＿ｒｅｇレジスタの内容に設定すること、及び（３）ｔａｉｌ＿ＬＲＵ＿ｉｎｄｅｘ＿ｒｅｇレジスタを一致セッションのインデックスに設定することによって、最短時間未使用のものとされる（ステップ２３２）。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】０１０５
【補正方法】変更
【補正の内容】
【０１０５】
図１９は、本発明のセッション管理モジュールの処理を示すフローチャートである。セッション管理処理はアイドルステップ３４２にて始まり、事象に依存して次のステップに移動する。ＣＰＵ又は主フィルタープロセッサからの「未使用を得る(get unused)」命令の場合、最長時間未使用のセッションのステータスがフェッチされる（ステップ３４４）。もしセッションが使用中であるならば（ステップ３５０）、そのセッションは閉じられる（ステップ３４８）。もしセッションが使用中でないならば、ｈｅａｄ＿ＬＲＵ＿ｉｎｄｅｘ＿ｒｅｇは、最長時間未使用のセッションの次のＬＲＵポインタに設定され、次の（前のＬＲＵポインタ）(next (previous LRU pointer))はヌルに設定される（ステップ３５２）。次に、除去されたセッションの次のＬＲＵポインタと前のＬＲＵポインタが、ヌルに設定され、それにより、最長時間未使用のセッションをＬＲＵリンクリストから除去する（ステップ３５４）。ｕｎｕｓｅｄ＿ｓｅｓ変数は、ちょうど切り離されたセッションに設定され、従って、ＣＰＵ又は主フィルター処理に知らせるフラグは、「１」に設定される（ステップ３５６）。次に、プロセスはアイドルに戻る（ステップ３５８）。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】０１１０
【補正方法】変更
【補正の内容】
【０１１０】
もしセッションを閉じることができず、閉鎖のリクエストがタイムアウトのチェックに起因していたならば（ステップ３９０）、セッションは閉じられず（ステップ３９６）、本方法はアイドル状態に戻る（ステップ４０４）。もし閉鎖リクエストがタイムアウトのチェックに起因したものでないならば、最長時間未使用のセッションにより指示された次のセッションがフェッチされる（ステップ３９８）。もしこのセッションを閉じることができないならば（ステップ４００）、本方法はステップ３９８を続け、本プロセスは、閉じられ得るセッションが見つかるまで繰り返される。もし閉じられ得るセッションが見つかれば（ステップ４００）、セッションはＬＲＵとして構成される（ステップ４０１）。次に、セッションはＬＲＵポインタを除いて消去され（ステップ４０２）、そして本方法はアイドル状態に戻る（ステップ４０４）。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】０１２３
【補正方法】変更
【補正の内容】
【０１２３】
【図１】ＷＡＮ又はインターネットとの関連において本発明の動的パケットフィルターのいくつかの適用例を示すブロック図である。
【図２】本発明の動的パケットフィルターをさらに詳細に示したブロック図である。
【図３】本発明の主フィルタープロセッサ法を示すフローチャートである。
【図４】一致が見つかった場合の本発明の主フィルタープロセッサ法を示す状態遷移図である。
【図５】一致が見つからなかった場合の本発明の主フィルタープロセッサ法を示す状態遷移図である。
【図６】入力パケットに関連したセッションを決めるハッシング技術を示す図である。
【図７】本発明のセッション認識プロセスのハッシング方法を示すフローチャートである。
【図８】本発明のセッション認識プロセスのホールサーチ方法を示すフローチャートである。
【図９】ＴＣＰセッションのパケットフローを示す図である。
【図１０】ＴＣＰセッションを開く際の３−ウエイハンドシェイクを示す状態遷移図である。
【図１１Ａ】ＴＣＰセッションを閉じる際の４−ウエイハンドシェイクを示す状態遷移図である。
【図１１Ｂ】ＴＣＰセッションを閉じる際の４−ウエイハンドシェイクを示す状態遷移図である。
【図１２】ＡＲＰセッションのパケットフローを示す図である。
【図１３】ＩＣＭＰエコーセッションのパケットフローを示す図である。
【図１４】ＩＣＭＰメッセージ／エラーセッションのパケットフローを示す図である。
【図１５】主フィルタープロセッサによる規則のチェック中に行われるシーケンス番号のウインドウ追跡を示す図である。
【図１６】主フィルタープロセッサによる規則チェック中に行われる肯定応答シーケンス番号のウインドウ追跡を示す図である。
【図１７】セッションの古さを追跡するのに用いられる最長時間未使用のリンクリスト構造を示す図である。
【図１８】入力パケットに関連したセッションを認識したときＬＲＵリンクリストを更新する方法を示すフローチャートである。
【図１９】本発明のセッション管理モジュールの処理を示すフローチャートである。
【図２０】セッションを開くために本発明のセッション管理モジュールにより実行される処理を示すフローチャートである。
【図２１】セッションを閉じるために本発明のセッション管理モジュールにより実行される処理を示すフローチャートである。
【図２２】セッションに対するファミリーポインタを示す図である。
【図２３】複数のセッション間のファミリー関係の例を示す図である。
【図２４】本発明のセッション追跡方法を用いて動的パケットフィルタリングを実行するのに適応したプラットフォームに対するコンピュータ処理システムの例を示すブロック図である。
【手続補正１９】
【補正対象書類名】図面
【補正対象項目名】図２０
【補正方法】変更
【補正の内容】
【図２０】
2004538678.tif 000004