(57)【要約】【課題】ＤＰＩ(Deep Packet Inspection)のようにデータパケットのペイロードを検査キーと照合すると共に、優先度に応じて高速に出力する入出力装置等を提供する。【解決手段】ヘッダ情報を登録したフローテーブルと、検査キーを登録した検査キーテーブルと、入力バッファから出力されたデータパケットについて、そのヘッダ情報が、フローテーブルに登録されたヘッダ情報と一致するか否かを判定し、真と判定した場合、当該データパケットを出力バッファへ出力するフロー制御手段と、フロー制御手段によって偽と判定されたデータパケットについて、そのペイロード情報に、検査キーテーブルに登録された検査キーが含まれているか否かを判定し、真と判定した場合、当該データパケットのヘッダ情報をフローテーブルへ登録する共に、判定後の当該データパケットを出力バッファへ出力する検査キー照合手段とを有する。【選択図】図１
2014236268.tif 000002
【特許請求の範囲】
【請求項１】
データパケットに対して、入力バッファ及び出力バッファを有する入出力装置において、
データパケットのヘッダ情報を登録したフローテーブルと、
データパケットのペイロード情報から検査すべき検査キーを登録した検査キーテーブルと、
前記入力バッファから出力されたデータパケットについて、そのヘッダ情報が、前記フローテーブルに登録されたヘッダ情報と一致するか否かを判定し、真と判定した場合、当該データパケットを出力バッファへ出力するフロー制御手段と、
前記フロー制御手段によって偽と判定された前記データパケットについて、そのペイロード情報に、前記検査キーテーブルに登録された検査キーが含まれているか否かを判定し、真と判定した場合、当該データパケットのヘッダ情報を前記フローテーブルへ登録する共に、判定後の当該データパケットを出力バッファへ出力する検査キー照合手段と
を有することを特徴とする入出力装置。
【請求項２】
前記入力バッファの前段で、データパケット毎にタイムスタンプを付与するタイムスタンプ付与手段と、
前記フロー制御手段によって偽と判定された前記データパケットを、前記検査キー照合手段の前段でバッファする待機バッファと、
前記待機バッファから出力されたデータパケットについて、そのデータパケットに付与されたタイムスタンプと現在時刻との時間差が、所定遅延閾値以上であるか否かを判定し、真と判定した場合、当該データパケットを出力バッファへ出力し、前記検査キー照合手段へ出力しないように制御する遅延制限手段と
を更に有することを特徴とする請求項１に記載の入出力装置。
【請求項３】
前記出力バッファは、通信遅延の異なる複数の出力バッファから構成されており、
前記フローテーブルは、前記ヘッダ情報に、当該データパケットを出力すべき出力バッファの識別子とを対応付けて登録し、
前記検査キーテーブルは、前記検査キーに、当該データパケットを出力すべき出力バッファの識別子とを対応付けて登録し、
前記フロー制御手段は、真と判定した場合、当該データパケットを、当該ヘッダ情報に対応する識別子の出力バッファへ出力し、
前記検査キー照合手段は、真と判定した場合、当該データパケットのヘッダ情報と、当該検査キーに登録された出力バッファの識別子とを対応付けて、前記フローテーブルへ登録する
ことを特徴とする請求項１又は２に記載の入出力装置。
【請求項４】
前記入出力装置は、ネットワークに接続され且つデータパケットを中継する通信装置に搭載されており、
前記ヘッダ情報は、レイヤ１からレイヤ４までのプロトコルヘッダに基づく情報である
ことを特徴とする請求項１から３のいずれか１項に記載の入出力装置。
【請求項５】
前記ネットワークに接続された他の通信装置へ、自らの前記フローテーブルを送信し、及び／又は、他の通信装置からフローテーブルを受信し且つ自らのフローテーブルへ登録するフロータブル共有手段を更に有することを特徴とする請求項４に記載の入出力装置。
【請求項６】
データパケットに対して、入力バッファ及び出力バッファを有する装置における入出力方法において、
前記装置は、
データパケットのヘッダ情報を登録したフローテーブルと、
データパケットのペイロード情報から検査すべき検査キーを登録した検査キーテーブルと
を有し、
前記入力バッファから出力されたデータパケットについて、そのヘッダ情報が、前記フローテーブルに登録されたヘッダ情報と一致するか否かを判定し、真と判定した場合、当該データパケットを出力バッファへ出力する第１のステップと、
第１のステップによって偽と判定された前記データパケットについて、そのペイロード情報に、前記検査キーテーブルに登録された検査キーが含まれているか否かを判定し、真と判定した場合、当該データパケットのヘッダ情報を前記フローテーブルへ登録する共に、判定後の当該データパケットを出力バッファへ出力する第２のステップと
を有することを特徴とする入出力方法。
【請求項７】
第１のステップの前に、データパケット毎にタイムスタンプを付与し、
第１のステップと第２のステップとの間で、
第１のステップによってヘッダ情報が一致しないと判定した前記データパケットを、待機バッファにバッファし、
前記待機バッファから出力されたデータパケットについて、そのデータパケットに付与されたタイムスタンプと現在時刻との時間差が、所定遅延閾値以上であるか否かを判定し、真と判定した場合、当該データパケットを出力バッファへ出力し、第２のステップを実行しないように制御する
ことを特徴とする請求項６に記載の入出力方法。
【請求項８】
前記出力バッファは、通信遅延の異なる複数の出力バッファから構成されており、
前記フローテーブルは、前記ヘッダ情報に、当該データパケットを出力すべき出力バッファの識別子とを対応付けて登録し、
前記検査キーテーブルは、前記検査キーに、当該データパケットを出力すべき出力バッファの識別子とを対応付けて登録し、
第１のステップは、真と判定した場合、当該データパケットを、当該ヘッダ情報に対応する識別子の出力バッファへ出力し、
第２のステップは、真と判定した場合、当該データパケットのヘッダ情報と、当該検査キーに登録された出力バッファの識別子とを対応付けて、前記フローテーブルへ登録する
ことを特徴とする請求項６又は７に記載の入出力方法。
【請求項９】
前記入出力装置は、ネットワークに接続され且つデータパケットを中継する通信装置に搭載されており、
前記ヘッダ情報は、レイヤ１からレイヤ４までのプロトコルヘッダに基づく情報である
ことを特徴とする請求項６から８のいずれか１項に記載の入出力方法。
【請求項１０】
前記ネットワークに接続された他の通信装置へ、自らの前記フローテーブルを送信し、及び／又は、他の通信装置からフローテーブルを受信し且つ自らのフローテーブルへ登録することを特徴とする請求項９に記載の入出力方法。
【請求項１１】
データパケットに対して、入力バッファ及び出力バッファを有する装置に搭載されたコンピュータを機能させるプログラムにおいて、
データパケットのヘッダ情報を登録したフローテーブルと、
データパケットのペイロード情報から検査すべき検査キーを登録した検査キーテーブルと、
前記入力バッファから出力されたデータパケットについて、そのヘッダ情報が、前記フローテーブルに登録されたヘッダ情報と一致するか否かを判定し、真と判定した場合、当該データパケットを出力バッファへ出力するフロー制御手段と、
前記フロー制御手段によって偽と判定された前記データパケットについて、そのペイロード情報に、前記検査キーテーブルに登録された検査キーが含まれているか否かを判定し、真と判定した場合、当該データパケットのヘッダ情報を前記フローテーブルへ登録する共に、判定後の当該データパケットを出力バッファへ出力する検査キー照合手段と
してコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データパケットを一時的に蓄積するバッファを有する入出力装置について、通信遅延を制御する技術に関する。
【背景技術】
【０００２】
従来、バッファの通信遅延が重要視される入出力装置として、一般的にルータ・スイッチがある。ルータ・スイッチは、受信したデータパケット毎の優先度に応じて中継転送するために、バッファを最適に構成する必要がある。具体的には、パケット毎に計測されたバッファ内の待機時間と、その優先度に基づく許容遅延時間とを考慮して、優先度に応じて中継転送される。
【０００３】
ルータ・スイッチにおけるデータパケットのフィルタリングには、一般にＳＰＩ(Stateful Packet Inspection)の技術がある。ＳＰＩによれば、データパケットのヘッダフィールド（例えば宛先／送信元のＩＰアドレスやポート番号）を検査することによって、次の動作が決定される。例えば、ルータ・スイッチは、所定の通信遅延制約を識別するヘッダ情報をキーとして、そのデータパケットのヘッダフィールドの固定位置に書き込まれた固定長データと照合する技術がある（例えば特許文献１参照）。ヘッダフィールドにそのキーが含まれていると判断した場合、その通信遅延制約に応じて、優先度順に構成された出力バッファのいずれかが選択される。
【０００４】
また、ユーザネットワークから見えない基幹ネットワーク内のみで、通信遅延制約に対応するために、エッジルータ（基幹ネットワークに対する入出力箇所のルータ）が、ユーザネットワークから受信したデータパケットのヘッダフィールドに「通信遅延制約の照合データ」を書き込む技術がある（例えば特許文献２参照）。この技術によれば、コアルータ（基幹ネットワーク内の中継ルータ）は、検査キーと一致する照合データを有するデータパケットについては、優先度を高めて伝送することができる。即ち、多様なアプリケーションが要求する通信品質を、基幹ネットワーク内でも維持することができる。
【０００５】
このようなＳＰＩに対し、ＤＰＩ(Deep Packet Inspection)の技術がある。近年、インターネットに流れるサービスやアプリケーションが複雑となっているために、ＤＰＩによって、データパケットの可変長のペイロードに含まれる情報を検査することができる。ＤＰＩは、アプリケーション固有の情報に基づいて検査することができ、特にファイアウォールやウイルス検知に用いられる。この技術は、可変長文字列のシグニチャと称される「検査キー」が、データパケットのペイロードに含まれてるか否かスキャンする。特に、検査キーは、非固定であって、ペイロードのいずれの位置に含まれていてもよい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１２−５２３１４４号公報
【特許文献２】特表２０１２−５３３２３１号公報
【特許文献３】特開２０１２−３８１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＤＰＩの場合、データパケット全てをメモリ内に蓄積し、その可変長のペイロードの最初から最後まで、検査キーと逐次に照合する必要がある。その照合の処理そのものに時間がかかり、結果的に、データパケットの許容遅延時間以内に出力することができない場合がある。一方で、データパケットの許容遅延時間以内に出力しようとした場合、逆に、検査キーの照合処理を完了できずに、そのデータパケットを出力しなければならなくなる。ＤＰＩによれば、照合すべき検査キーの数が多くなるほど、更にその照合時間が長くなってしまうという課題もある（例えば特許文献３参照）。このような課題は、特許文献２に記載された技術のように、基幹ネットワーク内の配置されたルータ・スイッチほど、データパケットの許容遅延時間の制約が厳しく、ＤＰＩを適用することが困難となる。
【０００８】
そこで、本発明は、ＤＰＩのようにデータパケットのペイロードを検査キーと照合する場合であっても、データパケットの優先度に応じてできる限り高速に出力することができる入出力装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明によれば、データパケットに対して、入力バッファ及び出力バッファを有する入出力装置において、
データパケットのヘッダ情報を登録したフローテーブルと、
データパケットのペイロード情報から検査すべき検査キーを登録した検査キーテーブルと、
入力バッファから出力されたデータパケットについて、そのヘッダ情報が、フローテーブルに登録されたヘッダ情報と一致するか否かを判定し、真と判定した場合、当該データパケットを出力バッファへ出力するフロー制御手段と、
フロー制御手段によって偽と判定されたデータパケットについて、そのペイロード情報に、検査キーテーブルに登録された検査キーが含まれているか否かを判定し、真と判定した場合、当該データパケットのヘッダ情報をフローテーブルへ登録する共に、判定後の当該データパケットを出力バッファへ出力する検査キー照合手段と
を有することを特徴とする。
【００１０】
本発明の入出力装置における他の実施形態によれば、
入力バッファの前段で、データパケット毎にタイムスタンプを付与するタイムスタンプ付与手段と、
フロー制御手段によって偽と判定されたデータパケットを、検査キー照合手段の前段でバッファする待機バッファと、
待機バッファから出力されたデータパケットについて、そのデータパケットに付与されたタイムスタンプと現在時刻との時間差が、所定遅延閾値以上であるか否かを判定し、真と判定した場合、当該データパケットを出力バッファへ出力し、検査キー照合手段へ出力しないように制御する遅延制限手段と
を更に有することも好ましい。
【００１１】
本発明の入出力装置における他の実施形態によれば、
出力バッファは、通信遅延の異なる複数の出力バッファから構成されており、
フローテーブルは、ヘッダ情報に、当該データパケットを出力すべき出力バッファの識別子とを対応付けて登録し、
検査キーテーブルは、検査キーに、当該データパケットを出力すべき出力バッファの識別子とを対応付けて登録し、
フロー制御手段は、真と判定した場合、当該データパケットを、当該ヘッダ情報に対応する識別子の出力バッファへ出力し、
検査キー照合手段は、真と判定した場合、当該データパケットのヘッダ情報と、当該検査キーに登録された出力バッファの識別子とを対応付けて、フローテーブルへ登録することも好ましい。
【００１２】
本発明の入出力装置における他の実施形態によれば、
入出力装置は、ネットワークに接続され且つデータパケットを中継する通信装置に搭載されており、
ヘッダ情報は、レイヤ１からレイヤ４までのプロトコルヘッダに基づく情報であることも好ましい。
【００１３】
本発明の入出力装置における他の実施形態によれば、
ネットワークに接続された他の通信装置へ、自らのフローテーブルを送信し、及び／又は、他の通信装置からフローテーブルを受信し且つ自らのフローテーブルへ登録するフロータブル共有手段を更に有することも好ましい。
【００１４】
本発明によれば、データパケットに対して、入力バッファ及び出力バッファを有する装置における入出力方法において、
装置は、
データパケットのヘッダ情報を登録したフローテーブルと、
データパケットのペイロード情報から検査すべき検査キーを登録した検査キーテーブルと
を有し、
入力バッファから出力されたデータパケットについて、そのヘッダ情報が、フローテーブルに登録されたヘッダ情報と一致するか否かを判定し、真と判定した場合、当該データパケットを出力バッファへ出力する第１のステップと、
第１のステップによって偽と判定されたデータパケットについて、そのペイロード情報に、検査キーテーブルに登録された検査キーが含まれているか否かを判定し、真と判定した場合、当該データパケットのヘッダ情報をフローテーブルへ登録する共に、判定後の当該データパケットを出力バッファへ出力する第２のステップと
を有することを特徴とする。
【００１５】
本発明の入出力方法における他の実施形態によれば、
第１のステップの前に、データパケット毎にタイムスタンプを付与し、
第１のステップと第２のステップとの間で、
第１のステップによってヘッダ情報が一致しないと判定したデータパケットを、待機バッファにバッファし、
待機バッファから出力されたデータパケットについて、そのデータパケットに付与されたタイムスタンプと現在時刻との時間差が、所定遅延閾値以上であるか否かを判定し、真と判定した場合、当該データパケットを出力バッファへ出力し、第２のステップを実行しないように制御することも好ましい。
【００１６】
本発明の入出力方法における他の実施形態によれば、
出力バッファは、通信遅延の異なる複数の出力バッファから構成されており、
フローテーブルは、ヘッダ情報に、当該データパケットを出力すべき出力バッファの識別子とを対応付けて登録し、
検査キーテーブルは、検査キーに、当該データパケットを出力すべき出力バッファの識別子とを対応付けて登録し、
第１のステップは、真と判定した場合、当該データパケットを、当該ヘッダ情報に対応する識別子の出力バッファへ出力し、
第２のステップは、真と判定した場合、当該データパケットのヘッダ情報と、当該検査キーに登録された出力バッファの識別子とを対応付けて、フローテーブルへ登録する
ことも好ましい。
【００１７】
本発明の入出力方法における他の実施形態によれば、
入出力装置は、ネットワークに接続され且つデータパケットを中継する通信装置に搭載されており、
ヘッダ情報は、レイヤ１からレイヤ４までのプロトコルヘッダに基づく情報であることも好ましい。
【００１８】
本発明の入出力方法における他の実施形態によれば、
ネットワークに接続された他の通信装置へ、自らのフローテーブルを送信し、及び／又は、他の通信装置からフローテーブルを受信し且つ自らのフローテーブルへ登録することも好ましい。
【００１９】
本発明によれば、データパケットに対して、入力バッファ及び出力バッファを有する装置に搭載されたコンピュータを機能させるプログラムにおいて、
データパケットのヘッダ情報を登録したフローテーブルと、
データパケットのペイロード情報から検査すべき検査キーを登録した検査キーテーブルと、
入力バッファから出力されたデータパケットについて、そのヘッダ情報が、フローテーブルに登録されたヘッダ情報と一致するか否かを判定し、真と判定した場合、当該データパケットを出力バッファへ出力するフロー制御手段と、
フロー制御手段によって偽と判定されたデータパケットについて、そのペイロード情報に、検査キーテーブルに登録された検査キーが含まれているか否かを判定し、真と判定した場合、当該データパケットのヘッダ情報をフローテーブルへ登録する共に、判定後の当該データパケットを出力バッファへ出力する検査キー照合手段と
してコンピュータを機能させることを特徴とする。
【発明の効果】
【００２０】
本発明の装置、方法及びプログラムによれば、ＤＰＩのようにデータパケットのペイロードを検査キーと照合する場合であっても、データパケットの優先度に応じてできる限り高速に出力することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明における基本的な機能構成図である。
【図２】データパケットのフレーム構成に対する照合部分を表す説明図である。
【図３】図１に対して遅延制限部を更に搭載した機能構成図である。
【図４】図１に対して複数の出力バッファを搭載した機能構成図である。
【図５】図３に対して複数の出力バッファを搭載した機能構成図である。
【図６】エッジルータ間でフロータテーブルを交換するシステム構成図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００２３】
図１は、本発明における基本的な機能構成図である。
図２は、データパケットのフレーム構成に対する照合部分を表す説明図である。
【００２４】
図１によれば、データパケットに対して、入力バッファ及び出力バッファを有する入出力装置が表されている。図１の入出力装置によれば、入力インタフェース１１０と、入力バッファ１１１と、出力インタフェース１２０と、出力バッファ１２１と、フローテーブル１３０と、フロー制御部１３１と、検査キーテーブル１４０と、検査キー照合部１４１とを有する。これら機能構成部は、装置に搭載されたコンピュータを機能させるプログラムを実行させることによって実現できる。また、これら機能構成部の処理の流れは、装置における入出力方法としても理解できる。
【００２５】
入力インタフェース１１０は、外部からデータパケットを入力（受信）し、そのデータパケットを入力バッファ１１１へ出力する。入力バッファ１１１は、データパケットを、ＦＩＦＯ(First-In First-Out)形式でフロー制御部１３１へ出力する。一方で、出力バッファ１２１は、フロー制御部１３１及び検査キー照合部１４１からデータパケットを入力し、そのデータパケットを、ＦＩＦＯ形式で出力インタフェース１２０へ出力する。出力インタフェース１２０は、そのデータパケットを外部へ出力（送信）する。
【００２６】
［フローテーブル１３０］
フローテーブル１３０は、データパケットの「ヘッダ情報」（フロー識別子）を登録する。装置が、ネットワークに接続され且つデータパケットを中継する通信装置である場合、ヘッダ情報は、「フロータプル」であってもよい。フロータプルとは、レイヤ１（例えばスイッチの物理ポート）から、レイヤ４（例えばＴＣＰ／ＩＰのポート番号）までのプロトコルヘッダに基づく情報である。例えばOpenFlowスイッチに本発明を適用する場合、フロータプルは１４種類程度あり、フローテーブルには、特定のレイヤに基づくことなく設定することができる。また、フローテーブルには、各種のフロータプルを、個々に又は組み合わせて登録することもできる。図１のフローテーブル１３０によれば、例えば以下のように種々のヘッダ情報が登録されている。
［ヘッダ情報］
MAC:11:22:33:44:55:66
IP:111.111.111.111
・・・・・
図２によれば、データパケットにおけるレイヤ１からレイヤ４までのプロトコルヘッダに基づく情報が表されている。
【００２７】
［検査キーテーブル１４０］
検査キーテーブル１４０は、データパケットのペイロード情報から検査すべき「検査キー」を登録する。ここで、検査キーは、「シグネチャ(signature)」であってもよい。シグネチャとは、例えばメソッド、フィールド、プロパティ、又はローカル変数の定義に関係する型をいう。メソッドの場合、シグネチャは、メソッドの名前や、パラメータの数と型、返される型、及び、呼び出し規約であってもよい。図１の検査キーテーブル１４０によれば、例えば以下のように種々の検査キーが登録されている。
［検査キー］
"Media=Voice"
"Media=Text"
・・・・・
図２によれば、データパケットのペイロードにおける不定位置に、"Media=Voice"のテキストが含まれている。ここで、メディアが音声のようなデータパケットは、ネットワーク内では低遅延で中継転送されることが所望される。
【００２８】
［フロー制御部１３１］
フロー制御部１３１は、入力バッファ１１１から出力されたデータパケットについて、そのヘッダ情報が、フローテーブル１３０に登録されたヘッダ情報と一致するか否かを判定する。ここで、真と判定された場合、当該データパケットを出力バッファ１２１へ出力する。これによって、フローテーブル１３０に登録されたヘッダ情報を含むデータパケットは、ＤＰＩの検査キー照合部１４１の処理を実行することなく、出力バッファ１２１へ出力される。検査キー照合部１４１の処理を実行しないということは、その照合にかかる時間だけ、通信遅延時間が短縮されることを意味する。
【００２９】
一方で、フロー制御部１３１は、データパケットのヘッダ情報が、フローテーブル１３０のヘッダ情報と一致しない（偽）と判定した当該データパケットを、検査キー照合部１４１へ出力する。
【００３０】
フローテーブル１３０は、登録されるヘッダ情報の数が容量の上限に達した場合、過去所定期間でヘッダ情報が一致した数が最も少なく、且つ、過去に登録されたヘッダ情報から順に、削除される。
【００３１】
［検査キー照合部１４１］
検査キー照合部１４１は、データパケットのペイロード情報に、検査キーテーブル１４０に登録された検査キーが含まれているか否かを判定する。これは、ＤＰＩにおけるペイロードの照合処理である。ここで、真と判定した場合、検査キー照合部１４１は、当該データパケットのヘッダ情報をフローテーブル１３０へ登録する。また、検査キー照合部１４１は、判定後の当該データパケットを、出力バッファ１２１へ出力する。
【００３２】
図１の入出力装置によれば、以下の２段階で遅延が制御される。
（高速）フローテーブル１３０に登録されたヘッダ情報を有するデータパケットは、ペイロードの照合処理を実行することなく直ぐに、出力バッファ１２１へ出力される。
（低速）フローテーブル１３０に登録されていないヘッダ情報を有するデータパケットは、ペイロードの照合処理を実行した後、出力バッファ１２１へ出力される。
【００３３】
図３は、図１に対して遅延制限部を更に搭載した機能構成図である。
【００３４】
図３は、図１と比較して、タイムスタンプ付与部１５と、待機バッファ１６１と、遅延制限部１６２とを更に有する。
【００３５】
［タイムスタンプ付与部１５］
タイムスタンプ付与部１５は、入力インタフェース１１０から出力されたデータパケット毎に、タイムスタンプを付与する。タイムスタンプが付与されたデータパケットは、入力バッファ１１１へ出力される。入力時のタイムスタンプを記録することによって、後段の処理について、その入出力装置における許容遅延時間以内に、そのデータパケットが出力されるように制御する。
【００３６】
［待機バッファ１６１］
待機バッファ１６１は、フロー制御部１３１によって、フローテーブル１３０に登録されたヘッダ情報（フロータプル）と一致しない（偽）と判定されたデータパケットを、ＦＩＦＯ形式でバッファする。そして、待機バッファ１６１は、データパケットを逐次、遅延制限部１６２へ出力する。
【００３７】
［遅延制限部１６２］
遅延制限部１６２は、待機バッファ１６１から出力されたデータパケットについて、そのデータパケットに付与されたタイムスタンプと現在時刻との「時間差」が、「所定遅延閾値」以上であるか否かを判定する。所定遅延閾値とは、当該データパケットにおける許容遅延時間に近い値を意味する（所定遅延閾値＜許容遅延時間）。
現在時刻−タイムスタンプ＝時間差（現在遅延時間）
時間差と所定遅延閾値とを比較
ここで、真と判定した場合、当該データパケットを出力バッファ１２１へ出力し、検査キー照合部１４１へ出力しないように制御する。即ち、許容遅延時間に近づいているデータパケットは、できるだけ早くに入出力装置から出力する必要があるために、検査キー照合部１４１へ出力することなく、出力バッファ１２１へ出力する。
【００３８】
図３の入出力装置によれば、以下の３段階で遅延が制御される。
（高速）フローテーブル１３０に登録されたヘッダ情報を有するデータパケットは、ペイロードの照合処理を実行することなく直ぐに、出力バッファ１２１へ出力される。
（中速）フローテーブル１３０に登録されていないヘッダ情報を有するデータパケットは、所定遅延閾値に達した際、ペイロードの照合処理を実行することなく、出力バッファ１２１へ出力される。
（低速）フローテーブル１３０に登録されていないヘッダ情報を有するデータパケットは、所定遅延閾値に達していなければ、ペイロードの照合処理を実行した後、出力バッファ１２１へ出力される。
【００３９】
図４は、図１に対して複数の出力バッファを搭載した機能構成図である。
【００４０】
図４によれば、図１と比較して、出力バッファ１２１は、通信遅延の異なる複数の出力バッファから構成されている。通信遅延が大きいバッファとしては例えば１００ミリ秒（ｍｓ）程であり、通信遅延が小さいバッファとしては例えば１００マイクロ秒（μｓ）程度である。
【００４１】
検査キーテーブル１４０は、検査キー毎に、当該データパケットを出力すべき出力バッファの識別子を対応付けて登録する。
［検査キー］         <->  ［出力バッファ］
"Media=Voice"        <->  出力バッファＣ（伝送遅延：小）
"Media=Text"         <->  出力バッファＡ（伝送遅延：大）
・・・・・         <->  ・・・・・・・・・・・・
これによって、検査キー照合部１４１は、データパケットのペイロード情報に検査キーが含まれている（真）と判定した場合、判定後の当該データパケットを、その検査キーに応じた優先度の出力バッファ１２１を選択して出力することができる。
【００４２】
これによって、検査キー照合部１４１は、ヘッダ情報に、当該検査キーに登録された出力バッファの識別子を対応付けて、フローテーブル１３０に登録する。
［ヘッダ情報］       <->  ［出力バッファ］
MAC:11:22:33:44:55:66  <->  出力バッファＣ（伝送遅延：小）
IP:111.111.111.111     <->  出力バッファＡ（伝送遅延：大）
・・・・・         <->  ・・・・・・・・・・・・
これによって、フロー制御部１３１は、データパケットのヘッダ情報に、フローテーブル１３０のヘッダ情報が含まれている（真）と判定された場合、当該データパケットを、そのヘッダ情報に応じた優先度の出力バッファ１２１を選択して出力することができる。
【００４３】
図５は、図３に対して複数の出力バッファを搭載した機能構成図である。
【００４４】
図５によれば、その動作は、図３及び図４の説明を組み合わせたものである。尚、フローテーブル１３０及び検査キーテーブル１４０のヘッダ情報及び検査キーと一致しないデータパケットについては、例えば伝送遅延が最も大きい出力バッファが選択される。
【００４５】
図６は、エッジルータ間でフロータテーブルを交換するシステム構成図である。
【００４６】
図６によれば、本発明における入出力装置が、基幹ネットワークのエッジルータとして配置されている。ここで、各エッジルータは、フロータプル共有機能を有する。これによって、基幹ネットワークに配置されたエッジルータ同士の間で、定期的又は逐次的にフローテーブルを交換する。端末２が移動した場合、その端末２のデータパケットは、そのフローテーブルを登録した他のエッジルータでも、直ぐに検査キーの照合処理を実行することなく、高速に中継転送される。
【００４７】
尚、エンドノード（端末、サーバ等）間で区別されるデータパケットは、同一の通信遅延制約を求めるものと想定する。エンドノードは、エンドアプリケーションとみなすこともできる。その場合、中継ノードは、同一エンドノードのアプリケーションを識別するために、一般にフロータプルを用いる。このフロータプルを用いるパケット識別は、固定長・位置固定データの照合となり、検査キーの照合処理と比較して十分に高速に処理することができる。そのために、本発明によれば、前段でフロータプルに基づく識別処理を実行し、後段でペイロードに対する検査キーの照合処理を実行する。
【００４８】
以上、詳細に説明したように、本発明の装置、方法及びプログラムによれば、ＤＰＩのようにデータパケットのペイロードを検査キーと照合する場合であっても、データパケットの優先度に応じてできる限り高速に出力することができる。
【００４９】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【００５０】
１１０  入力インタフェース
１１１  入力バッファ
１２０  出力インタフェース
１２１  出力バッファ
１３０  フローテーブル
１３１  フロー制御部
１４０  検査キーテーブル
１４１  検査キー照合部
１５  タイムスタンプ付与部
１６１  待機バッファ
１６２  遅延制限部
２  端末
【図１】
2014236268.tif 000003
【図２】
2014236268.tif 000004
【図３】
2014236268.tif 000005
【図４】
2014236268.tif 000006
【図５】
2014236268.tif 000007
【図６】
2014236268.tif 000008