(57)【要約】      （修正有）【課題】安定したパケットの転送処理を実現する方法を提供する。【解決手段】パケットを転送先に転送する転送部と、転送部から受信する複数のパケットのまとまりであるパケット群に対して所定の処理を実行する機能実行部と機能実行部によって所定の処理が実行されたパケット群を転送先に転送する転送処理部と機能実行部が所定の処理を実行する対象のパケット群に属するパケットのうち所定の条件のパケットの転送処理を転送部が実行するように制御する転送処理制御部とを有する機能拡張部と、を備える。【選択図】図１Ｂ
2016163085.tif 000002
【特許請求の範囲】
【請求項１】
パケットを転送先に転送する転送部を備える通信装置であって、
前記転送部から受信する複数のパケットのまとまりであるパケット群に対して所定の処理を実行する機能実行部と、
前記機能実行部によって前記所定の処理が実行された前記パケット群を転送先に転送する転送処理を実行する転送処理部と、
前記機能実行部が前記所定の処理を実行する対象のパケット群である処理対象パケット群に属するパケットのうち、所定の条件のパケットの転送処理を前記転送部が実行するように制御する転送処理制御部と、
を有する機能拡張部
を備える
ことを特徴とする通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記所定の条件のパケットは、
前記機能実行部によって前記所定の処理が実行されたパケット群に属し、前記機能実行部が前記所定の処理を実行した後に前記転送部から受信するパケットであり、
前記転送処理制御部は、
前記機能実行部による前記所定の処理の実行を維持し、前記転送処理部が実行する前記処理対象パケット群に属するパケットの転送処理を前記転送部が実行するように制御する
ことを特徴とする通信装置。
【請求項３】
請求項２に記載の通信装置であって、
前記転送処理制御部は、
前記転送処理部の転送処理の負荷状況を監視し、前記負荷状況に応じて、前記転送処理を前記転送処理部から前記転送部に変更するよう制御する
ことを特徴とする通信装置。
【請求項４】
請求項３に記載の通信装置であって、
前記機能拡張部は、
前記処理対象パケット群を識別する処理対象識別情報と前記処理対象識別情報にて識別されるパケット群の転送処理を実行する転送機能部を識別する転送機能部情報とを対応づけて格納する転送処理制御情報と、前記転送処理部が転送する前記パケット群の転送先を識別する転送処理情報と、
を記憶する記憶部をさらに有し、
前記転送処理制御部は、
前記転送部から前記パケット群を受信すると、受信した前記パケット群に属する任意のパケットに含まれる所定の情報を前記処理対象識別情報に格納し、前記転送機能部情報に前記転送機能部として前記機能拡張部を示す情報を格納し、前記処理対象識別情報に格納した前記所定の情報を前記転送処理情報に格納し、
前記転送処理部は、
前記転送処理情報を参照して前記パケット群を転送先に転送する
ことを特徴とする通信装置。
【請求項５】
請求項４に記載の通信装置であって、
前記所定の処理は、
一連の通信の接続関係を制御する接続制御処理であり、
前記処理対象識別情報は、
前記接続制御処理の処理対象パケット群を識別し、前記接続関係を識別する接続関係情報であり、
前記転送処理制御情報は、
前記接続関係情報を格納した時刻を示す格納時刻情報と前記格納時刻情報に関する閾値と前記処理対象識別情報と前記転送機能部情報とを対応づけて格納し、
前記転送処理制御部は、
前記転送部から前記パケット群を受信すると、受信した前記パケット群に属するパケットのうち外部から受信する前記接続関係の確立を要求する確立要求パケットに含まれる確立を要求する接続関係に関する情報を、前記転送処理制御情報の前記接続関係情報として格納した後、前記格納時刻情報が示す時刻から現在時刻までの経過時間が前記閾値を超える接続関係情報と対応する転送機能部情報の値を前記転送機能部として前記転送部を示す情報に変更して、前記転送処理部での前記転送処理を前記転送部に変更するよう制御する
ことを特徴とする通信装置。
【請求項６】
請求項５に記載の通信装置であって、
前記転送部は、
外部から受信するパケット群を識別する識別情報と前記識別情報にて識別されるパケット群の転送先とを対応づけて格納する転送情報を有し、
前記転送情報は、
前記識別情報のうち、前記接続制御処理の前記処理対象パケット群を識別する識別情報に対応する転送先として前記機能拡張部を示す情報を予め格納し、
前記転送部は、
前記接続制御処理の前記処理対象パケット群を識別する前記識別情報にて識別されるパケット群を外部から受信すると、前記転送情報を参照して前記識別情報にて識別されるパケット群を転送先である前記機能拡張部に転送する転送処理を実行し、
前記転送処理制御部は、
前記転送機能部情報の値を前記転送機能部として前記転送部を示す情報に変更すると、前記接続関係情報に格納した前記接続関係に関する情報を前記転送部に送信し、
前記転送部は、
受信した前記接続関係に関する情報を前記識別情報として格納した後、格納した前記識別情報にて識別されるパケット群を外部から受信すると、前記機能拡張部へ転送していたパケット群を外部の転送先へ転送する
ことを特徴とする通信装置。
【請求項７】
請求項３に記載の通信装置であって、
前記転送部は、
外部から受信するパケット群を識別する識別情報と前記識別情報にて識別されるパケット群の転送先とを対応づけて格納する転送情報を有し、
前記外部からパケット群を受信すると、前記転送情報を参照して前記識別情報にて識別されるパケット群を前記転送先に転送する転送処理を実行し、
前記機能拡張部は、
前記処理対象パケット群を識別する処理対象識別情報と前記処理対象識別情報にて識別されるパケット群の転送処理を実行する転送機能部を識別する転送機能部情報とを対応づけて格納する転送処理制御情報と、前記転送処理部が転送する前記パケット群の転送先を識別する転送処理情報と、
を記憶する記憶部をさらに有し、
前記転送処理制御部は、
前記転送部から前記パケット群を受信すると、受信した前記パケット群に属する任意のパケットに含まれる所定の情報を前記処理対象識別情報に格納し、前記転送機能部情報に前記転送機能部として前記転送部を示す情報を格納し、前記処理対象識別情報に格納した前記所定の情報を前記転送部に送信し、
前記転送部は、
受信した前記所定の情報を前記識別情報として格納した後、格納した前記識別情報にて識別されるパケット群を外部から受信すると、受信した前記パケット群を前記転送情報に従って外部の転送先へ転送する
ことを特徴とする通信装置。
【請求項８】
請求項７に記載の通信装置であって、
前記所定の処理は、
一連の通信の接続関係を制御する接続制御処理であり、
前記処理対象識別情報は、
前記接続制御処理の処理対象パケット群を識別し、前記接続関係を識別する接続関係情報であり、
前記転送情報は、
前記識別情報のうち、前記接続制御処理の前記処理対象パケット群を識別する識別情報に対応する転送先として前記機能拡張部を示す情報を予め格納し、
前記転送処理制御部は、
前記転送部から前記パケット群を受信すると、受信した前記パケット群に属するパケットのうち外部から受信する前記接続関係の確立を要求する確立要求パケットに含まれる確立を要求する接続関係に関する情報を、前記転送処理制御情報の前記接続関係情報として格納し、前記転送機能部情報に前記転送部を示す情報を格納すると、前記接続関係情報に格納した前記接続関係に関する情報を前記転送部に送信し、
前記転送部は、
受信した前記接続関係に関する情報を前記識別情報として格納した後、格納した前記識別情報にて識別されるパケット群を外部から受信すると、受信した前記パケット群を前記転送情報に従って外部の転送先へ転送し、
前記転送処理制御部は、
前記転送機能部情報の値を前記機能拡張部を示す情報に変更すると、前記転送部が格納した前記転送処理制御部が送信した前記接続関係に関する情報を前記転送部から削除するよう要求する削除要求を前記転送部に送信して前記転送部での前記転送処理を前記転送処理部に変更するよう制御し、
前記転送部は、
受信した前記削除要求に従って、要求された前記接続関係に関する情報を前記転送情報から削除した後、前記予め前記転送先として前記機能拡張部を示す情報を格納した前記識別情報にて識別されるパケット群を外部から受信すると、受信した前記パケット群を前記転送情報に従って転送先である前記機能拡張部へ転送する
ことを特徴とする通信装置。
【請求項９】
請求項４に記載の通信装置であって、
前記所定の処理は、
受信したパケット群を検査する検査処理であり、
前記処理対象識別情報は、
前記検査処理の処理対象パケット群を識別し、当該処理対象パケット群のフローを識別するフロー情報であり、
前記転送処理制御情報は、
前記転送機能部が使用したパケット群の帯域量である使用帯域量情報と前記帯域量に関する閾値と前記処理対象識別情報と前記転送機能部情報とを対応づけて格納し、
前記転送処理制御部は、
前記転送部から前記処理対象パケット群を受信すると、受信した前記処理対象パケット群に属する前記任意のパケットに含まれる前記所定の情報を、前記転送処理制御情報の前記フロー情報として格納した後、前記使用帯域量情報が示す帯域量が前記閾値を超えるフロー情報と対応する転送機能部情報の値を前記転送部を示す情報に変更して、前記転送処理部での前記転送処理を前記転送部に変更するよう制御する
ことを特徴とする通信装置。
【請求項１０】
パケットを転送先に転送する転送部を備える通信装置であって、 
前記転送部から受信する複数のパケットのまとまりであるパケット群に対して所定の処理を実行する機能実行部と、 
前記機能実行部によって前記所定の処理が実行された前記パケット群を転送先に転送する転送処理を実行する転送処理部と、 
前記機能実行部が前記所定の処理を実行した後、前記所定の処理が実行されたパケット群に属するパケットの転送処理を前記転送部または前記転送処理部のいずれかが実行するように制御する転送処理制御部と、 
を有する機能拡張部 
を備える 
ことを特徴とする通信装置。 
【請求項１１】
請求項１０に記載の通信装置であって、
前記転送処理制御部は、
前記転送処理部の転送処理の負荷状況を監視し、前記負荷状況に応じて、前記転送処理部が実行する前記所定の処理が実行された前記パケット群の転送処理を前記転送部が実行するように制御する
ことを特徴とする通信装置。
【請求項１２】
請求項１１に記載の通信装置であって、
前記転送部は、
外部から受信するパケット群を識別する識別情報と前記識別情報にて識別されるパケット群の転送先とを対応づけて格納する転送情報を有し、
前記機能拡張部は、
前記機能実行部が前記所定の処理を実行する対象のパケット群である処理対象パケット群を識別する処理対象識別情報と前記処理対象識別情報にて識別されるパケット群の転送処理を実行する転送機能部を識別する転送機能部情報とを対応づけて格納する転送処理制御情報と、前記転送処理部が転送する前記パケット群の転送先を識別する転送処理情報と、
を記憶する記憶部をさらに有し、
前記転送処理制御部は、
前記転送部から前記パケット群を受信すると、受信した前記パケット群に属する任意のパケットに含まれる所定の情報を前記処理対象識別情報に格納し、前記転送機能部情報に前記転送機能部として前記機能拡張部または前記転送部を示す情報を格納し、前記転送機能部情報に前記機能拡張部を示す情報を格納した場合、前記処理対象識別情報に格納した前記所定の情報を前記転送処理情報に格納し、前記転送機能部情報に前記転送部を示す情報を格納した場合、前記処理対象識別情報に格納した前記所定の情報を前記転送部に送信し、
前記転送処理部は、
前記転送処理情報を参照して前記転送処理を実行し、
前記転送部は、
前記機能拡張部から受信した前記所定の情報を前記識別情報として格納した後、前記転送情報を参照して前記転送処理を実行する
ことを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングに代表されるネットワークを介したコンピューティング資源の利用の広まりや、ネットワークのマルチメディア利用などにより、ネットワーク上における多様なサービスの提供が求められている。そのような状況の中、ネットワーク上の通信装置に対して、従来の通信装置が持つ単純なパケット転送機能に加えて、複雑な処理（例えば、Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＩＰ）電話などのセッションを制御する処理や、パケットを検査する処理、各種プロトコルに従った処理など）を行う機能を付加することが一般的になってきている。
【０００３】
特開２００６−２００３４号公報（特許文献１）には、ネットワーク回線との間でパケットを送受信する複数のネットワークインタフェースモジュールと、Ｗｅｂキャッシュサービスを提供する複数の拡張モジュールと、これらのモジュール間を相互接続するスイッチング部と、を有し、複数の転送機能部であるネットワークインタフェースモジュールと拡張モジュールが協調して動作することで一体となって動作するパケット通信ノード装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２００３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示されたパケット通信ノード装置のような通信装置の場合、単純な転送機能の処理を実装する機能部（以下、「転送部」と呼ぶ。）は、パケットの宛先検索処理や中継処理など転送機能の処理に特化した専用のハードウェア（例えば、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＡＳＩＣ）など）によって実現されることが多い。
【０００６】
また、通信装置が持つ単純なパケットの転送機能に付加する機能である複雑な処理を行う機能（以下、「付加機能」と呼ぶ。）は、転送部とは別の機能部に実装することが一般的である。また、そのような付加機能の処理を実装する機能部（以下、「機能拡張部」と呼ぶ。）は、開発コストを下げるなどのために、単純な転送機能と、付加機能の双方を実装し、転送部とは独立して動作するように構成される場合がある。この場合、付加機能を有する通信装置では、転送機能を実装する機能部を複数（転送部および機能拡張部）持つ。
【０００７】
また、このような機能拡張部は、ネットワーク処理に特化したプロセッサがメモリに格納された付加機能の処理のプログラムとパケット転送機能の処理のプログラムを読み込むことで実現されることが多い。
転送部と機能拡張部は、それぞれの構成や実行する機能の違いのために、それぞれが実行する転送機能の転送性能や転送するパケットを識別する転送情報のそれぞれの格納容量などの特性が異なる。
【０００８】
さらに、機能拡張部では、１つの付加機能が処理する対象の複数のパケットのまとまりであり、一連の通信に属していることを示すパケット群を識別する情報を格納する量は増えてきており、また、機能拡張部は、複数の付加機能の処理を実行するため、より多くの負荷が掛かる。そのため、機能拡張部の転送性能が低下し、例えば、機能拡張部が多量のパケットの転送処理を行おうとすると転送性能が不足してパケットを喪失し、転送処理が不安定となるという課題がある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の代表的な通信装置の１つは、機能拡張部が実行するパケットの転送処理を転送部が実行するように変更する。
通信装置は、転送部から受信する複数のパケットのまとまりであるパケット群に対して所定の処理を実行する機能実行部と、機能実行部によって所定の処理が実行されたパケット群を転送先に転送する転送処理部と、機能実行部が所定の処理を実行する対象のパケット群に属するパケットのうち、所定の条件のパケットの転送処理を転送部が実行するように制御する転送処理制御部と、を有する機能拡張部を備える。
【発明の効果】
【００１０】
本発明によれば、安定したパケットの転送処理を実現する。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１Ａ】転送処理の動作主体を変更する動作の概要を説明する図の例である。
【図１Ｂ】転送処理の動作主体を変更する動作の概要を説明する図の例である。
【図２】通信装置の装置構成図の例である。
【図３】統計テーブルの例である。
【図４】動的転送制御テーブルの例である。
【図５】閾値管理テーブルの例である。
【図６】転送テーブルの例である。
【図７】転送処理制御テーブルの例である。
【図８】転送処理テーブルの例である。
【図９】閾値設定の流れを示すシーケンス図の例である。
【図１０Ａ】管理サーバが表示する閾値管理画面の画面イメージの例である。
【図１０Ｂ】管理サーバが表示する閾値管理画面の画面イメージの例である。
【図１１Ａ】転送処理制御部の動作を表すフローチャートの例である。
【図１１Ｂ】転送処理制御部の動作を表すフローチャートの例である。
【図１２】エントリ設定要求の一連の動作を表したシーケンス図の例である。
【図１３】エントリ削除要求の一連の動作を表したシーケンス図の例である。
【図１４】転送処理制御テーブルの例である。
【図１５】基本制御部の動的転送制御部の動作を表すフローチャートの例である。
【図１６】通信装置がパケットを受信する際の動作を表すフローチャートの例である。
【発明を実施するための形態】
【００１２】
図１Ａ、図１Ｂは、本実施例のパケットの転送処理の動作主体を変更する動作の概要を説明する図の例である。通信装置１は、パケットの転送処理を実行する転送部３０と、転送処理に加えて複雑な処理である所定の付加機能の処理（例えば、ＩＰ電話などのセッションを制御する処理や、パケットを検査する処理、各種プロトコルに従った処理など）を実行する機能拡張部４０を有する（図１Ａ）。つまり、通信装置１は、転送部３０と機能拡張部４０が、ネットワーク上のパケットを転送し、機能拡張部４０がパケットに対して所定の付加機能の処理を実行する装置である。
【００１３】
転送部３０は、転送処理を行う対象の複数のパケットのまとまりであり、ＩＰ電話のパケット、動画データを含むパケットなど特定のパケットの種別に属することを識別するパケット群をネットワークを介して送受信する転送Ｉｎｔｅｒｆａｃｅ（Ｉ／Ｆ）３６、３７と、転送部３０が受信したパケット群の転送処理を実行する転送実行部である転送エンジン３１と、転送エンジン３１が転送処理を実行する際に参照する転送テーブル３２および転送制御テーブル群７０と、機能拡張部４０と接続し、転送部３０または機能拡張部４０を制御する制御通信を行う装置内通信Ｉ／Ｆ３９と、機能拡張部４０とパケット群を送受信する転送Ｉ／Ｆ３８と、を有する。
【００１４】
パケット群を示す情報は、例えば、受信する複数のパケットが音声データを含むなどＩＰ電話に関するパケットである場合、特定の通信であるＩＰ電話に属することを示すプロトコル番号「６」が、受信した複数のパケットそれぞれに含まれ、このプロトコル番号がＩＰ電話のパケット群を示す情報となる。パケット群を示す情報は、受信した複数のパケットそれぞれが特定の通信に属していることを示す情報であれば、プロトコル番号に限られない。
【００１５】
転送テーブル３２は、通信装置１の運用開始前に管理者（保守者、ユーザ）などから設定される静的な領域３２９と、運用開始後に機能拡張部４０などから動的に設定される動的な領域３２８を有し、転送部３０が転送処理を実行する対象のパケット群を識別する転送部転送対象情報として、受信したパケット群を識別するパケット群識別情報（例えば、パケット群の送信元を識別する送信元アドレス、パケット群の送信先を識別する送信先アドレス、パケット群が従うプロトコルを識別するプロトコル番号など）とパケット群を転送する際に経由する転送先（他の通信装置や通信装置１内の機能拡張部４０など）を識別する転送先情報（例えば、ネクストホップなど）とを対応付けて格納する（記憶する、記録する、登録する）。
【００１６】
転送エンジン３１は、パケット群を受信すると転送テーブル３２の動的な領域３２８から静的な領域３２９の順にパケット群識別情報を検索して、パケット群に含まれる情報と合致したパケット群識別情報に対応する転送先情報に受信したパケット群を転送する。
【００１７】
図１Ａでは、転送テーブル３２の静的な領域３２９にパケット群識別情報：「プロトコル番号「６」」と転送先情報「機能拡張部」が予め格納され、一方、動的な領域３２８にはパケット群識別情報などは格納されておらず、転送エンジン３１は、「受信したパケット群のプロトコル番号が「６」であれば機能拡張部４０に転送する」ことを示している。
転送制御テーブル群７０は、ルーティングテーブル（経路情報テーブル）やＭｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ（ＭＡＣ）テーブルなどパケット群に属するパケット毎に転送先を特定する情報をそれぞれ有する。
【００１８】
機能拡張部４０は、転送部３０とパケット群を送受信するユーザー通信Ｉ／Ｆ４３と、機能拡張部４０が受信したパケット群に対して付加機能の処理を実行する付加機能実行部５３と、付加機能実行部５３が付加機能の処理を実行する対象のパケット群（以下、「付加機能実行対象パケット群」と呼ぶ。）を識別する情報（以下、「付加機能対象識別情報」と呼ぶ。）を格納する転送処理制御テーブル５６と、付加機能実行部５３が付加機能の処理を実行したパケット群（以下、「付加機能実行済みパケット群」と呼ぶ。）に属するパケットの転送処理を実行する転送処理部５０と、転送処理部５０が転送処理を実行する際に参照する転送処理テーブル５１と、転送処理制御テーブル５６と転送処理テーブル５１の各情報を格納し、転送処理を実行する転送機能部を変更する転送処理制御部５４と、転送部３０と接続し、転送部３０または機能拡張部４０を制御する制御通信を行う装置内通信Ｉ／Ｆ４４とを有する。
【００１９】
転送処理制御テーブル５６は、付加機能対象識別情報（例えば、送信元アドレス、送信先アドレス、プロトコル番号など）と付加機能実行部５３が付加機能実行済みパケット群に属するパケットの転送処理を実行する転送機能部（転送部３０または機能拡張部４０）を特定する情報（以下、「転送機能部特定情報」と呼ぶ。）と対応付けて格納する。転送処理制御テーブル５６には、機能拡張部４０が付加機能実行対象パケット群を受信すると、各情報が転送処理制御部５４によって格納される。
【００２０】
転送処理テーブル５１は、転送処理制御テーブル５６に格納された付加機能対象識別情報のうち、機能拡張部４０が転送処理を実行する対象のパケット群を識別する情報（転送パケット群識別情報）（機能拡張部転送対象情報）を、この情報に対応するパケット群識別情報として格納し、パケット群識別情報と転送先情報とを対応付けて格納する。転送処理テーブル５１には、転送処理制御テーブル５６が作成された後に転送処理制御部５４によって各情報が格納される。
【００２１】
図１Ａでは、機能拡張部４０が「ＡＡからＢＢへのプロトコル番号「６」」のパケットの受信後に、転送処理制御テーブル５６の付加機能対象情報：「ＡＡからＢＢへのプロトコル番号「６」」を示す情報と転送機能部特定情報：「機能拡張部」が作成され、「ＣＣからＤＤへのプロトコル番号「６」」のパケットの受信後に、付加機能対象情報：「ＣＣからＤＤへのプロトコル番号「６」」を示す情報と転送機能部特定情報：「機能拡張部」が作成された例である。また、転送処理制御テーブル５６の作成後に、転送処理テーブル５１のパケット群識別情報：「ＡＡからＢＢへのプロトコル番号「６」」を示す情報と転送先情報：「ＥＥ」およびパケット群識別情報：「ＣＣからＤＤへのプロトコル番号「６」」を示す情報と転送先情報：「ＦＦ」が、転送処理制御テーブル５６のそれぞれの転送機能部特定情報に対応して作成された例である。
【００２２】
機能拡張部４０は、転送処理制御テーブル５６の作成後に、付加機能対象情報に合致するパケット群、つまり、付加機能実行対象パケット群を受信すると、転送処理テーブル５１を検索して、パケット群に含まれる情報と合致したパケット群識別情報に対応する転送先情報に受信したパケット群を転送して、転送処理部５０が転送処理を実行する。
【００２３】
付加機能実行部５３が、ＩＰ電話などのセッションを制御するセッション制御部として動作する場合、転送処理制御テーブル５６への格納の契機となるパケットの受信は、セッションの確立を要求するセッション確立要求パケットの受信である。ここで、セッションとは、ＩＰ電話などの呼制御などにおいて、一連の通信を行う際に必要となる接続関係のことである。また、付加機能実行部５３が、パケットを検査する処理を実行するＤｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ（ＤＰＩ）処理部として動作する場合、転送処理制御テーブル５６への格納の契機となるパケットの受信は、予め管理者などから機能拡張部４０に設定された検査対象のパケットの種別に属するパケットの受信である。
【００２４】
なお、セッション確立要求パケットの受信の場合、機能拡張部４０は、受信したセッション確立要求パケットを他の装置へ転送することはないが、検査対象のパケットの種別に属するパケットの受信の場合、機能拡張部４０は、受信した検査対象のパケットの種別に属するパケットを他の装置へ転送する。
【００２５】
図１Ｂは、転送処理制御部５４が、転送処理制御テーブル５６に格納された付加機能対象情報のうち、所定の選択条件を満たす付加機能対象情報について、転送処理制御テーブル５６の転送機能部情報を更新して転送処理制御テーブル５６の付加機能対象情報を転送部３０の転送テーブル３２の動的な領域３２８に転送部転送対象情報のパケット群識別情報として格納させる動作の流れを説明する図である。
【００２６】
所定の選択条件とは、受信したパケットが転送処理制御テーブル５６に情報を格納（登録）済みの付加機能実行対象パケット群に属するパケットである否かである。具体的には、付加機能実行対象パケット群として登録することを要求するパケットを受信するか、パケット群に属するパケットのうち所定の数のパケットを機能拡張部４０が受信した後に受信するパケットであるか、パケット群に属するパケットのうち任意の番目に機能拡張部４０が受信したパケットであるか、付加機能対象情報を転送処理制御テーブル５６に格納済みで機能拡張部４０の処理負荷状況を含む処理状況、もしくは、パケット群毎に設定された優先度、もしくは、特定のパケット群（例えば、特定のユーザー）の識別情報、もしくは、スケジューラなどで決められた時間などである。選択条件は、例えば、機能拡張部４０に格納される。
【００２７】
転送処理制御部５４は、転送処理制御テーブル５６に格納された付加機能対象情報のうち、所定の選択条件を満たす（例えば、機能拡張部４０の処理負荷が所定の閾値を超える）付加機能対象情報を選択し、選択した付加機能対象情報の転送機能部情報を「機能拡張部」から「転送部」に変更し、転送機能部情報を変更した付加機能対象情報に対応する転送処理テーブル５１のパケット群識別情報と転送先情報を装置内通信Ｉ／Ｆ４４を介して転送部３０へ向けて送信する。
【００２８】
パケット群識別情報と転送先情報を装置内通信Ｉ／Ｆ３９を介して受信した転送部３０は、転送テーブル３２の動的な領域３２８に受信したパケット群識別情報と転送先情報を転送部転送対象情報のパケット群識別情報と転送先情報として格納する。その後、転送エンジン３１は、パケット群を受信すると、転送テーブル３２の動的な領域３２８から静的な領域３２９の順にパケット群識別情報を検索し、受信したパケット群に含まれる情報と合致する動的な領域３２８に格納したパケット群識別情報に対応する転送先情報に受信したパケット群を転送する。
【００２９】
図１Ｂでは、転送処理制御部５４が、転送処理制御テーブル５６の付加機能対象情報：「ＣＣからＤＤへのプロトコル番号「６」」を示す情報の転送機能部情報を「機能拡張部」から「転送部」に変更し、変更した付加機能対象情報：「ＣＣからＤＤへのプロトコル番号「６」」を示す情報に対応する転送処理テーブル５１のパケット群識別情報：「ＣＣからＤＤへのプロトコル番号「６」」と転送先情報：「ＦＦ」を転送部３０へ向けて送信し、転送部３０が、転送テーブル３２の動的な領域３２８に転送部転送対象情報のパケット群識別情報：「ＣＣからＤＤへのプロトコル番号「６」」と転送先情報「ＦＦ」を格納し、格納後に転送エンジン３１が、「ＣＣからＤＤへのプロトコル番号「６」」のパケット群を受信すると、パケット群識別情報：「ＣＣからＤＤへのプロトコル番号「６」」に対応する転送先情報「ＦＦ」に受信したパケット群を転送する。
【００３０】
この結果、機能拡張部４０は、転送処理制御テーブル５６にて、「ＣＣからＤＤへのプロトコル番号「６」」のパケット群が、付加機能実行対象パケット群であることを認識しつつ、転送エンジン３１にて機能拡張部４０に転送していた「ＣＣからＤＤへのプロトコル番号「６」」のパケット群は、機能拡張部４０に転送されることなく、転送先情報「ＦＦ」に転送される。つまり、機能拡張部４０は、転送処理テーブル５１のパケット群識別情報を転送部３０の転送テーブル３２に移動して、転送処理部５０で実行していた「ＣＣからＤＤへのプロトコル番号「６」」のパケット群の転送処理を転送部３０が実行するように変更する。
【００３１】
したがって、機能拡張部４０が実行する転送処理の一部の処理を転送部３０が実行するように変更する結果、機能拡張部４０の処理負荷が下がり、機能拡張部４０でのパケットの喪失を防ぎ、通信装置１が提供する転送処理が安定する。
【００３２】
また、機能拡張部４０は、転送部３０の転送テーブル３２に移動したパケット群識別情報と転送先情報を転送テーブル３２から削除し、転送処理テーブル５１に追加することで、再度機能拡張部４０の転送処理部５０が転送処理を実行するように変更する。つまり、転送部３０は、転送テーブル３２の動的な領域３２８に格納した転送部転送対象情報を削除し、静的な領域３２９の転送部転送対象情報に従って、再度機能拡張部４０へパケット群を転送し、機能拡張部４０の転送処理部５０が転送処理を実行して転送先に転送する。
【００３３】
具体的には、機能拡張部４０は、転送部３０の転送テーブル３２に移動して、転送エンジン３１で実行していた「ＣＣからＤＤへのプロトコル番号「６」」のパケット群の転送処理を転送処理部５０が実行するように変更する。
【００３４】
以下、本実施例を具体的に説明する。
図２は、本実施例の通信装置の装置構成図の例である。
通信装置１は、通信端末３と管理サーバ２と接続し、通信網４を介してインターネットや各種サーバ（動画共有サービスや電子商取引サービスやクラウドサービスなどを提供するサーバやＩＰ電話などのセッションを制御するサーバなど）と接続する。
【００３５】
通信装置１は、管理サーバ２、通信端末３、通信網４との間に１または複数台の他の装置（スイッチやルータなど）が接続されていてもよい。また、通信装置１は、複数の通信端末３と接続してもよい。通信端末３は、例えば、ＩＰ電話などの加入者であるユーザーの宅内に配置され、ユーザーが使用するコンピュータや電話機などと接続される。
管理サーバ２は、通信装置１の転送処理制御部５４の動作を決定する管理画面を通信装置１の管理者に提供する。また、通信装置１が管理画面を提供する機能を有し、管理サーバ２の代わりに管理画面を操作する端末が接続される構成であってもよい。
【００３６】
通信装置１は、基本制御部１０、転送部３０、機能拡張部４０、コアＩ／Ｆ６１、加入者Ｉ／Ｆ６０を備える。
コアＩ／Ｆ６１は、転送部３０と接続するポート（図示せず）および通信網４と接続するポート（図示せず）を有し、通信網４とパケット群の送受信を行うネットワークインタフェースである。加入者Ｉ／Ｆ６０は、転送部３０と接続するポート（図示せず）および通信端末３と接続するポート（図示せず）を有し、通信端末３とパケット群の送受信を行うネットワークインタフェースである。
【００３７】
なお、基本制御部１０と転送部３０、機能拡張部４０は、１つのモジュールカード内に配置されてもよいし、それぞれ別々のモジュールカード（例えば、基本制御部１０は基本制御モジュールカード、転送部３０は転送モジュールカード、機能拡張部４０はサービスモジュール部として機能拡張モジュールカード（サービスモジュールカード））内に配置されてもよい。
【００３８】
また、通信装置１は、基本制御部１０が配置される基本制御モジュールカードと、転送部３０および機能拡張部４０が配置される転送モジュールカードとを有する構成であってもよい。また、通信装置１は、複数の基本制御部１０と複数の転送部３０、複数の機能拡張部４０を有してもよい。また、１つの機能拡張部４０が、パケット転送機能および複数の付加機能の処理を実行してもよい。また、転送部３０と各Ｉ／Ｆ（コアＩ／Ｆ６１および／または加入者Ｉ／Ｆ６０）が１つのモジュールカード内に配置されてもよい。つまり、転送部３０が各Ｉ／Ｆの機能を有していてもよい。
【００３９】
また、１つの機能拡張部４０が、パケット転送機能の処理および１つの付加機能の処理を実行し、複数の機能拡張部４０を通信装置１に実装して複数の付加機能の処理を実行してもよい。また、基本制御部１０と転送部３０と機能拡張部４０を有するモジュールカードは、通信装置１に対して挿抜可能なように構成されてもよい。
【００４０】
通信装置１は、コアＩ／Ｆ６１または加入者Ｉ／Ｆ６０を介してパケットを受信すると、転送部３０にて転送先（各種サーバ、通信端末３、または、機能拡張部４０など）に到達するように、受信したパケットのヘッダ部または内部ヘッダ部の宛先アドレスなどを変更して、転送先に対応するＩ／Ｆ（コアＩ／Ｆ６１または加入者Ｉ／Ｆ６０）を介して変更したパケットを送信する転送処理を実行する。また、通信装置１は、機能拡張部４０にて転送部３０からパケットを受信すると、受信したパケットに付加機能の処理を実行し、転送先（各種サーバまたは通信端末３など）に到達するように受信したパケットのヘッダ部または内部ヘッダ部の宛先アドレスなどを変更して、転送部３０を経由し、転送先に対応するＩ／Ｆ（コアＩ／Ｆ６１または加入者Ｉ／Ｆ６０）を介して変更したパケットを送信する転送処理を実行する。
【００４１】
基本制御部１０は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）１２、メモリ１１、管理Ｉ／Ｆ１３、装置内通信Ｉ／Ｆ１４を含み、それらが相互に接続されている。基本制御部１０は、管理Ｉ／Ｆ１３を介して管理サーバ２と接続し、装置内通信Ｉ／Ｆ１４を介して、転送部３０および機能拡張部４０と接続する。管理Ｉ／Ｆ１３は、管理サーバ２と接続するポート（図示せず）を有し、装置内通信Ｉ／Ｆ１４は、転送部３０および機能拡張部４０と接続するポート（図示せず）を有する。
【００４２】
メモリ１１は、動的転送制御部２０、閾値管理部２１、統計管理部２２、動的転送制御テーブル２３、閾値管理テーブル２４、統計テーブル２５を格納（記憶）する。また、ＣＰＵ１２が、メモリ１１に格納されたプログラムをロードして実行する（処理する）ことによって、動的転送制御部２０等の基本制御部１０の各機能部を実現する。
【００４３】
動的転送制御部２０は、転送部３０が実行する転送処理を制御し、機能拡張部４０が実行する転送処理の一部の処理を転送部３０が実行するように変更する。動的転送制御部２０を転送部転送制御部とも呼ぶ。動的転送制御部２０は、装置内通信Ｉ／Ｆ１４を介して機能拡張部４０から、機能拡張部４０のパケット群識別情報を転送部３０に追加することを要求する追加要求を受信し、受信した追加要求を転送部３０に送信して機能拡張部４０のパケット群識別情報を追加するように要求する。
【００４４】
また、動的転送制御部２０は、装置内通信Ｉ／Ｆ１４を介して機能拡張部４０から、転送部３０が実行する追加された機能拡張部４０のパケット群識別情報を転送部３０から削除することを要求する削除要求を受信し、受信した削除要求を転送部３０に送信して転送部３０が実行する追加された機能拡張部４０のパケット群識別情報を削除するように要求する。動的転送制御部２０の詳細な動作は、図１５を用いて後述する。
【００４５】
閾値管理部２１は、機能拡張部４０の処理負荷の状況を監視する際に用いられ、機能拡張部４０に設定する閾値を管理する。閾値管理部２１は、管理サーバ２から受信した閾値を閾値管理テーブル２４に格納する（書き込む）。閾値管理部２１は、閾値管理テーブル２４を更新し、管理する。閾値管理部２１が閾値管理テーブル２４に格納することで、機能拡張部４０が行う付加機能の処理に対する閾値を基本制御部１０が管理する。閾値管理部２１の詳細な動作は図９を用いて後述する。
【００４６】
統計管理部２２は、転送部３０が転送したパケット群の統計情報を管理する。統計管理部２２は、装置内通信Ｉ／Ｆ１４を介して転送部３０から転送部３０が転送したパケット群の統計情報を取得する。統計情報は、転送部３０が転送したパケット群を識別するエントリ識別子（エントリｉｄｅｎｔｉｆｉｃａｔｉｏｎ（ＩＤ））と転送されたパケット群が使用した帯域量（使用帯域量）などの情報を含む。
【００４７】
統計管理部２２は、転送部３０から取得した統計情報を統計テーブル２５に格納する（書き込む）。統計管理部２２は、統計テーブル２５を更新し、管理する。また、統計管理部２２は、装置内通信Ｉ／Ｆ１４を介して機能拡張部４０から統計情報を要求する統計取得要求を受信すると、統計テーブル２５を参照して統計情報を読み出し、読み出した統計情報を装置内通信Ｉ／Ｆ１４を介して機能拡張部４０に送信する。
【００４８】
統計管理部２２が、統計テーブル２５に転送部３０の統計情報を書き込むことで、転送部３０が転送したパケット群の統計情報を基本制御部１０が管理する。
統計テーブル２５は、転送部３０が転送したパケット群の統計情報に関する情報を格納するテーブルである。統計管理部２２が統計テーブル２５を管理する。統計テーブル２５の構成例は、図３を用いて後述する。
【００４９】
動的転送制御テーブル２３は、転送部３０に設定し、転送部３０が実行する転送処理の転送先に関する情報を格納するテーブルであり、転送部３０が転送するパケット群を識別するパケット群識別情報と転送先情報とを対応付けて格納するテーブルである。動的転送制御テーブル２３は、後述する転送テーブル３２に格納される転送先に関する情報であるパケット群識別情報と転送先情報の格納状況を示す。動的転送制御部２０が動的転送制御テーブル２３の各情報を格納し、動的転送制御テーブル２３を更新し、管理する。動的転送制御テーブル２３の構成例は、図４を用いて後述する。
閾値管理テーブル２４は、機能拡張部４０に設定する閾値に関する情報を格納するテーブルである。閾値管理部２１が閾値管理テーブル２４を管理する。閾値管理テーブル２４の構成例は、図５を用いて後述する。
【００５０】
転送部３０は、相互に接続された転送エンジン３１、転送テーブル３２、メモリ３３、ＣＰＵ３５、装置内通信Ｉ／Ｆ３９、及び転送エンジン３１に接続される転送Ｉ／Ｆ３６、３７、３８を含む。
転送部３０は、転送Ｉ／Ｆ３６を介してコアＩ／Ｆ６１と、転送Ｉ／Ｆ３７を介して加入者Ｉ／Ｆ６０と、転送Ｉ／Ｆ３８を介して機能拡張部４０と、装置内通信Ｉ／Ｆ３９を介して基本制御部１０および機能拡張部４０と接続する。転送Ｉ／Ｆ３６は、コアＩ／Ｆ６１と接続するポート（図示せず）を有し、転送Ｉ／Ｆ３７は、加入者Ｉ／Ｆ６０と接続するポート（図示せず）を有し、転送Ｉ／Ｆ３８は、機能拡張部４０と接続するポート（図示せず）を有し、装置内通信Ｉ／Ｆ３９は、基本制御部１０および機能拡張部４０と接続するポート（図示せず）を有する。
【００５１】
メモリ３３は、転送エンジン制御部３４を格納（記憶）する。また、ＣＰＵ３５が、メモリ３３に格納されたプログラムをロードして実行する（処理する）ことによって、転送エンジン制御部３４等の転送部３０の各機能部を実現する。転送エンジン３１は、例えば、ＡＳＩＣやＦｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（ＦＰＧＡ）のような集積回路で設計する等により実現される。転送テーブル３２は、Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ（ＣＡＭ）などに格納（記録）される。または、転送エンジン３１と転送テーブル３２は、ＦＰＧＡで実現される。
【００５２】
転送エンジン制御部３４は、転送エンジン３１の動作を制御する。転送エンジン制御部３４は、転送テーブル３２に各情報を格納し、転送テーブル３２を更新し、管理する。転送エンジン制御部３４は、基本制御部１０から追加要求を受信し、受信した追加要求に含まれるパケット群識別情報と転送先情報を転送テーブル３２に追加（登録）する。転送エンジン制御部３４が転送テーブル３２にパケット群識別情報と転送先情報を追加することで、転送部３０が、転送テーブル３２を参照して、転送処理を行う対象のパケット群を識別し、転送処理を実行する。
【００５３】
また、転送エンジン制御部３４は、基本制御部１０から削除要求を受信し、受信した削除要求に含まれるパケット群識別情報と転送先情報と一致する情報を転送テーブル３２から削除する。転送エンジン制御部３４が転送テーブル３２からパケット群識別情報と転送先情報を削除することで、転送部３０が実行していた、削除した転送テーブル３２のパケット群識別情報に合致するパケット群の転送処理を中止する。
【００５４】
転送エンジン３１は、転送Ｉ／Ｆ３６〜３８を介して、機能拡張部４０、またはコアＩ／Ｆ６１、または加入者Ｉ／Ｆ６０からパケット群を受信し、受信したパケット群を転送テーブル３２を参照して転送する。受信したパケット群に属するパケットは、それぞれ、送信元アドレス、送信先アドレス、プロトコル番号などの情報を含む。また、受信したパケット群に属するパケットは、パケットの送信元のポートを識別する送信元ポートやパケットの送信先のポートを識別する送信先ポートを含んでいてもよい。また、通信装置１が格納する各情報は、受信するパケットに含まれる各情報に対応させてもよい。
【００５５】
転送エンジン３１は、パケット群を受信すると、転送テーブル３２を参照して、受信したパケット群に属するパケットそれぞれに含まれる情報と転送テーブル３２のパケット群識別情報とを比較する。比較の結果、転送エンジン３１は、一致するパケット群識別情報に対応する転送先情報から転送先を特定する。転送エンジン３１は、特定した転送先に受信したパケット群が到達するように、例えば、受信したパケット群に属するパケットに対して、パケットのヘッダ部、または内部ヘッダ部の宛先アドレスなどの変更など転送処理に必要な処理を施し、必要な処理を施したパケット群を転送Ｉ／Ｆ３６〜３８を介して機能拡張部４０、またはコアＩ／Ｆ６１、または加入者Ｉ／Ｆ６０に送信して、受信したパケット群を転送する。
【００５６】
また、転送エンジン３１は転送したパケット群の統計情報を転送部３０内の統計情報記憶部（図示せず）に記録する。このように、転送エンジン３１は、受信したパケット群に属するパケットそれぞれに含まれる情報を適宜書き換え、情報を書き換えたパケット群を書き換えた情報が示す宛先に送信して、パケット群を転送する。
【００５７】
転送テーブル３２は、転送部３０が受信したパケット群の転送に関する情報である転送部転送対象情報（パケット群識別情報と転送先情報）を格納し、転送エンジン３１がパケット群を転送する際に参照するテーブルである。転送テーブル３２には、転送に関する情報だけではなく、廃棄処理など転送処理以外の処理の情報が格納されていてもよい。転送テーブル３２の構成例は、図６を用いて後述する。
【００５８】
また、転送部３０は、パケット毎に受信したパケットの転送処理を制御する情報を格納する（有する）転送制御テーブル群７０を有する。転送エンジン３１は、転送テーブル３２を検索した結果、転送テーブル３２に合致しなかったパケットの転送先を転送制御テーブル群を参照して特定し、特定した転送先にパケットを転送する。
【００５９】
機能拡張部４０は、メモリ４１、ネットワークプロセッサ４２、ユーザー通信Ｉ／Ｆ４３、装置内通信Ｉ／Ｆ４４を含み、それらが相互に接続されている。ネットワークプロセッサ４２はネットワーク処理に特化したＳｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ（ＳｏＣ）の集積回路であるが、汎用的なＣＰＵでもよい。
機能拡張部４０は、ユーザー通信Ｉ／Ｆ４３を介して転送部３０と接続し、装置内通信Ｉ／Ｆ４４を介して、基本制御部１０および転送部３０と接続する。ユーザー通信Ｉ／Ｆ４３は、転送部３０と接続するポート（図示せず）を有し、装置内通信Ｉ／Ｆ４４は、基本制御部１０および転送部３０と接続するポート（図示せず）を有する。
【００６０】
メモリ４１は、転送処理部５０、付加機能実行部５３、転送処理制御部５４、動的転送制御設定部５５、転送処理テーブル５１、総計テーブル５２、転送処理制御テーブル５６を格納（記憶）する。また、ネットワークプロセッサ４２が、メモリ４１に格納されたプログラムをロードして実行する（処理する）ことによって、機能拡張部４０の各機能（転送処理部５０、付加機能実行部５３、転送処理制御部５４、動的転送制御設定部５５など）を実現する。
【００６１】
付加機能実行部５３は、通信装置１が転送するパケット群に対して付加機能の処理を実行する。付加機能実行部５３は、転送処理制御テーブル５６を参照して、付加機能の処理を実行する対象のパケット群を識別する。また、付加機能実行部５３は、付加する機能毎に機能拡張部４０に設けられてもよい。例えば、機能拡張部４０が提供する付加機能が、ＩＰ電話の機能である場合、付加機能実行部５３は、ＩＰ電話などのセッションを制御する処理（以下、「セッション制御処理」と呼ぶ。）を実行するセッション制御部である。
【００６２】
また、機能拡張部４０が提供する付加機能が、パケットを検査するＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）処理の機能の場合、付加機能実行部５３は、パケットを検査する処理（以下、「検査処理」と呼ぶ。）を実行するＤＰＩ処理部である。本実施例では、付加機能実行部５３が、２つの付加機能の処理、つまり、セッション制御部としてセッション制御処理とＤＰＩ処理部としてＤＰＩ処理を実行する。また、付加機能実行部５３は、転送処理制御部５４に対して、付加機能実行対象パケット群の登録を要求する登録要求を送信し、登録したパケット群の削除を要求する削除要求を送信する。
【００６３】
転送処理部５０は、機能拡張部４０が受信したパケット群であり、付加機能実行済みパケット群に属するパケットの転送処理を転送処理テーブル５１を参照して実行する。転送処理部５０は、転送処理テーブル５１を参照して、付加機能実行済みパケット群に属するパケットそれぞれに含まれる情報と転送処理テーブル５１のパケット群識別情報とを比較する。比較の結果、転送処理部５０は、一致するパケット群識別情報に対応する転送先を特定する。転送処理部５０は、特定した転送先にパケット群が到達するように、転送処理に必要な処理を付加機能実行済みパケット群に施し、ユーザー通信Ｉ／Ｆ４３を介して転送部３０に送信して、付加機能実行済みパケット群を転送する。
【００６４】
また、転送処理部５０は転送したパケット群の統計情報を統計テーブル５２に格納（記録）する。転送処理部５０は、統計テーブル５２を更新し、管理する。このように、転送処理部５０は、付加機能実行済みパケット群に属するパケットに含まれる情報を適宜書き換え、情報を書き換えたパケット群を書き換えた情報が示す宛先に送信して、付加機能実行済みパケット群を転送する。
【００６５】
転送処理制御部５４は、転送処理テーブル５１と転送処理制御テーブル５６を更新し、管理する。転送処理制御部５４は、転送処理制御テーブル５６に付加機能対象情報と転送機能部特定情報を格納した後、転送機能部特定情報に対応して転送処理テーブル５１にパケット群識別情報と転送先情報を格納する。具体的には、転送処理制御部５４は、付加機能実行部５３から受信する登録要求に含まれる付加機能対象情報を転送処理制御テーブル５６に格納し、転送機能部特定情報に転送処理を行う転送機能部を識別する情報を格納する。
【００６６】
また、転送処理制御部５４は、転送処理制御テーブル５６の転送機能部特定情報に格納した転送機能部を識別する情報を参照して、付加機能実行部５３によって付加機能の処理を実行された後のパケット群を転送する転送機能部（転送部３０または機能拡張部４０）を特定する。
【００６７】
転送処理制御部５４は、転送機能部特定情報に「機能拡張部」を示す情報が格納されている場合に、転送処理テーブル５１に付加機能対象情報をパケット群識別情報として格納し、パケット群識別情報に対応する転送先情報を格納する。また、転送処理制御部５４は、付加機能実行部５３から受信する削除要求に従って、転送処理テーブル５１からパケット群識別情報と転送先情報を削除し、転送処理制御テーブル５６から付加機能対象情報と転送機能部特定情報を削除する。
【００６８】
また、転送機能部特定情報に格納する情報を変更して、格納した付加機能対象情報と一致するパケット群を転送する転送機能部を変更する制御を行う。つまり、転送処理制御部５４は、機能拡張部４０が受信したパケット群であり、付加機能実行済みパケット群に属するパケットの転送を行う転送機能部を決定し、転送機能部を変更する（切り替える）制御を行う。
【００６９】
転送処理制御部５４は、動的転送制御設定部５５に対して追加要求を送信して、転送処理部５０が実行する転送処理を転送部３０の転送エンジン３１が実行するよう要求する。なお、転送処理部５０が実行する転送処理を転送部３０の転送エンジン３１が実行するように変更することを、「機能拡張部４０（転送処理部５０）が実行する転送処理を機能拡張部４０から転送部３０に移管する（委託する、移動する）」とも表現する。また、転送処理制御部５４は、動的転送制御設定部５５に対して削除要求を送信して、転送部３０が実行する機能拡張部４０から追加された（変更された）転送処理を中止するよう要求する。
【００７０】
付加機能実行済みパケット群とは、転送処理制御テーブル５６の付加機能対象情報に格納された各情報と合致するパケット群のことである。付加機能実行済みパケット群に属するパケットには、機能拡張部４０が実行する転送処理を転送部３０が実行するように変更した後に、機能拡張部４０を経由せずに転送部３０にて転送先に転送されるパケットを含む。
【００７１】
また、転送処理制御部５４は、装置内通信Ｉ／Ｆ４４を介して基本制御部１０から機能拡張部４０に設定する閾値を受信し、受信した閾値を転送処理制御部５４の閾値記憶部（図示せず）に記憶（保持）する。管理者からの閾値の設定によって、転送処理制御部５４が閾値を保持するまでの流れは、図９を用いて説明する。
【００７２】
動的転送制御設定部５５は、基本制御部１０に対して転送部３０の動作（機能拡張部４０が実行する転送処理を転送部３０が実行することおよび中止すること）を変更するよう要求する。動的転送制御設定部５５は、転送処理制御部５４から追加要求を受信すると、受信した追加要求を基本制御部１０に送信する。また、動的転送制御設定部５５は、転送処理制御部５４から削除要求を受信すると、受信した削除要求を基本制御部１０に送信する。なお、動的転送制御設定部５５の機能は、転送処理制御部５４に含まれていてもよい。
【００７３】
転送処理制御テーブル５６は、付加機能対象情報と転送機能部特定情報と閾値に関する情報と付加機能対象情報を格納した時刻と対応付けて格納する。転送処理制御テーブル５６の構成例は、図７を用いて後述する。
【００７４】
転送処理テーブル５１は、機能拡張部４０が受信したパケット群の転送に関する情報（パケット群識別情報と転送先情報）を格納し、転送処理部５０がパケット群を転送する際に参照するテーブルである。転送処理テーブル５１の構成例は、図８を用いて後述する。
【００７５】
統計テーブル５２は、基本制御部１０が有する統計テーブル２５と同様の構成を持つテーブルであり、機能拡張部４０が転送するパケット群を識別するエントリＩＤとこのエントリＩＤで識別されるパケット群が使用した帯域量（機能拡張部４０を通過したパケット群の量）の情報である使用帯域量の各要素を持つテーブルである。統計テーブル５２のエントリＩＤは、機能拡張部４０が転送するパケット群を識別する情報であり、図８の転送処理テーブル５１のエントリＩＤ５１１と同じ値が格納される。
【００７６】
図３は、基本制御部１０の統計テーブル２５の例である。統計テーブル２５は、転送部３０が転送したパケット群を識別する情報であるエントリＩＤ２５１とエントリＩＤ２５１で識別されるパケット群が使用した帯域量（転送部３０を通過したパケット群の量）の情報である使用帯域量２５２の各要素を含み、エントリＩＤ２５１で識別されるレコードを含むテーブルである。統計テーブル２５の各情報は、統計管理部２２によって格納される。
【００７７】
図４は、基本制御部１０の動的転送制御テーブル２３の例である。動的転送制御テーブル２３は、転送部３０が転送するパケット群を識別する情報であるエントリＩＤ２３１と、パケット群識別情報である送信元アドレス２３２、送信先アドレス２３３、プロトコル番号２３４と転送先情報であるネクストホップ２３７の各要素を含み、エントリＩＤ２３１で識別されるレコードを含むテーブルである。エントリＩＤ２３１は、図３の統計テーブル２５のエントリＩＤ２５１と同じ値が格納される。
複数の転送部３０が装置内通信Ｉ／Ｆ１４を介して基本制御部１０と接続する場合、動的転送制御テーブル２３は、複数の転送部３０毎に作成される。
【００７８】
図５は、基本制御部１０の閾値管理テーブル２４の例である。閾値管理テーブル２４は、処理種別２４１、閾値種別２４２、閾値単位２４３、閾値２４４の各要素を持つテーブルである。処理種別２４１は、機能拡張部４０がパケット群に対して実行する付加機能の処理の種別を識別する情報である。閾値種別２４２は、処理種別２４１に対応する閾値の種別を識別する情報である。閾値単位２４３は、閾値種別２４２に対応する閾値の単位である。閾値２４４は、機能拡張部４０に設定する閾値である。閾値管理テーブル２４の各情報は、閾値管理部２１によって格納される。
【００７９】
また、図５の例では、処理種別２４１毎に閾値２４４を割り当てるが、閾値２４４の割り当てをより柔軟に行うこともできる。例えば、受信するパケット群の送信元アドレスに応じて、処理種別２４１をさらに細かく識別する情報を有し、同じ処理種別２４１の中でも、異なる閾値２４４を割り当ててもよい。なお、図５に示した、処理種別２４１、閾値種別２４２、閾値単位２４３、閾値２４４は例であり、機能拡張部４０の処理状況を監視するものであれば、他の処理種別、閾値種別、閾値単位、閾値であっても構わない。
【００８０】
図６は、転送部３０の転送テーブル３２の例である。転送テーブル３２は、転送部転送対象情報を格納する動的な領域３２８および静的な領域３２９を有し、転送部３０が転送するパケット群を識別する情報であるエントリＩＤ３２１と、パケット群識別情報である送信元アドレス３２２、送信先アドレス３２３、プロトコル番号２３４、転送先情報であるネクストホップ３２７の各要素を含み、エントリＩＤ３２１で識別されるレコードを含むテーブルである。動的な領域３２８のエントリＩＤ３２１は、図３の統計テーブル２５のエントリＩＤ２５１と同じ値が格納される。
【００８１】
静的な領域３２９には、転送部転送対象情報（パケット群識別情報と転送先情報）として、付加機能対象識別情報がパケット群識別情報（送信元アドレス３２２、送信先アドレス３２３、プロトコル番号２３４）に格納され、付加機能対象識別情報で識別されるパケット群の転送先「機能拡張部」が転送先情報（ネクストホップ３２７）に格納される。静的な領域３２９の各情報は、通信装置１の運用開始前に通信装置１の管理者などによって設定される。また、機能拡張部４０が付加機能対象識別情報を送信し、転送部３０が受信した付加機能対象識別情報を静的な領域３２９に設定してもよい。
【００８２】
図６の例では、静的な領域３２９の転送部転送対象情報として、付加機能実行部５３がセッション制御部として処理する対象のＩＰ電話のパケット群を識別する情報である付加機能対象識別情報のプロトコル番号「６」が、パケット群識別情報のプロトコル番号３２４に格納され、その転送先としてネクストホップ３２７に「機能拡張部」が格納されているエントリＩＤ３２１「９９」が、予め設定されている。
【００８３】
また、付加機能実行部５３がＤＰＩ処理部として実行するＤＰＩ処理で処理する対象のパケット群を識別する情報である付加機能対象識別情報の送信元アドレス「２０３．１３３．１００．１１２」が、パケット群識別情報の送信元アドレス３２２に格納され、その転送先としてネクストホップ３２７に「機能拡張部」が設定されているエントリＩＤ３２１「１００」が、予め設定されている。
【００８４】
動的な領域３２８の転送部転送対象情報（パケット群識別情報と転送先情報）には、基本制御部１０による動的な制御によって、機能拡張部４０から動的に送信される転送処理テーブル５１のパケット群識別情報と転送先情報がそれぞれ格納される。つまり、動的な領域３２８には、図４の動的転送制御テーブル２３の各情報が設定される。
【００８５】
通信装置１の運用開始直後は、静的な領域３２９には各情報が格納されているが、動的な領域３２８には各情報が格納されていない。動的な領域３２８は、運用開始後に通信装置１の処理状況に応じて各情報が格納されるため、静的な領域３２９よりも、運用中に制御したい情報が必要に応じて格納される。そのため、動的な領域３２８に格納された転送部転送対象情報は、静的な領域３２９のそれよりも、転送エンジン３１が転送テーブル３２を検索する際の検索順位の優先度が高く設定される。
【００８６】
具体的には、転送エンジン３１は、パケットを受信すると、受信したパケットに含まれる情報（以下、「受信パケット情報」と呼ぶ。）と転送テーブル３２の優先度が高い動的な領域３２８のパケット群識別情報とを比較し、合致（ヒット）したパケットを、合致したパケット群識別情報に対応するネクストホップ３２７に格納された転送先に転送する。
【００８７】
転送エンジン３１は、受信パケット情報と一致するパケット群識別情報が動的な領域３２８に存在しない場合、受信パケット情報と静的な領域３２９のパケット群識別情報とを比較し、合致（ヒット）したパケットを、合致したパケット群識別情報に対応するネクストホップ３２７に格納された転送先に転送する。
【００８８】
また、転送エンジン３１は、受信パケット情報と静的な領域３２９のパケット群識別情報とが合致しなかった場合、転送制御テーブル群７０を検索してこのパケットを転送先に転送する。なお、動的な領域３２８に格納された転送部転送対象情報の検索順位が、静的な領域３２９のそれよりも優先度が高く設定されれば、その方法は問わない。
【００８９】
図６の例では、基本制御部１０による制御によって転送テーブル３２の動的な領域３２８にエントリが追加され、転送エンジン３１が受信したパケット群のうち、静的な領域３２９にヒットし機能拡張部４０に転送していたプロトコル番号「６」のＩＰ電話のパケット群は、動的な領域３２８にヒットして、ヒットしたエントリのネクストホップ３２７に転送される。つまり、機能拡張部４０を経由して転送先に転送されていたＩＰ電話のパケット群が、機能拡張部４０を経由せずに転送先に転送される。
このように転送テーブル３２は、受信したパケット群の転送処理に関して、フィルター機能やＱｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ（ＱｏＳ）機能の役割を果たす。
【００９０】
図７は、機能拡張部４０の転送処理制御テーブル５６―Ａの例である。転送処理制御テーブル５６―Ａは、セッション制御部５３に対応して作成される。
転送処理制御テーブル５６―Ａは、セッション制御部５３が処理するパケット群を識別する情報であるエントリＩＤ５６１と、付加機能対象識別情報である送信元アドレス５６２、送信先アドレス５６３、プロトコル番号５６４と、セッション継続時間５６７と、転送機能部特定情報である転送機能部５６８と、エントリ登録時刻５６９の各要素を含み、エントリＩＤ５６１で識別されるレコードを含むテーブルである。
【００９１】
セッション継続時間５６７は、機能拡張部４０に設定される閾値に関する情報である。セッション継続時間５６７は、転送処理制御部５４が記憶する閾値が転送処理制御部５４によって格納される。
【００９２】
転送機能部５６８は、セッション制御部５３によって処理が実行された付加機能実行済みパケット群の転送を行う転送機能部（転送部３０または機能拡張部４０）を指定する情報である。転送機能部５６８は、転送処理制御部５４によって格納される。転送処理制御部５４が、登録要求のパケットを受信した際には、管理者による所定の選択条件の設定に応じて、転送機能部５６８に「機能拡張部」または「転送部」が格納される。例えば、選択条件が、「付加機能実行対象パケット群として登録することを要求するパケットを受信するか」である場合、転送機能部５６８には「転送部」が格納される。
【００９３】
また、選択条件が、「機能拡張部４０の処理負荷が所定の閾値を超えるか」である場合、転送機能部５６８には「機能拡張部」が格納される。また、転送処理制御部５４は、転送機能部５６８の値「転送部」（「機能拡張部」）を「機能拡張部」（転送部）に変更して、転送部３０（機能拡張部４０）が実行する転送処理を転送部３０（機能拡張部）が実行するように制御する。
【００９４】
エントリ登録時刻５６９は、付加機能対象識別情報を格納した時刻に関する情報である。エントリ登録時刻５６９は、転送処理制御部５４が、付加機能対象識別情報を格納する際に通信装置１の時刻管理部（図示せず）が管理する通信装置１内の時刻を取得して格納する。
【００９５】
図８は、機能拡張部４０の転送処理テーブル５１の例である。
転送処理テーブル５１は、転送処理部５０が転送するパケット群を識別する情報であるエントリＩＤ５１１と、パケット群識別情報である送信元アドレス５１２、送信先アドレス５１３、プロトコル番号５１４と、転送先情報であるネクストホップ５１７の各要素を含み、エントリＩＤ５１１で識別されるレコードを含むテーブルである。
転送処理テーブル５１の各情報は、転送処理制御部５４によって格納される。
【００９６】
ここで、図６の転送テーブル３２および図８の転送処理テーブル５１と図７の転送処理制御テーブル５６ーＡの関係について説明する。
転送処理制御テーブル５６ーＡの各エントリは、転送機能部５６８にて指定される転送機能部（転送部３０または機能拡張部４０）の転送テーブル３２または転送処理テーブル５１にそれぞれ登録（格納）される。
【００９７】
つまり、図６と図８、図７の例では、図７のエントリＩＤ５６１が「１」と「４」の転送処理部１３１７８はともに「機能拡張部」であるので、エントリＩＤ５６１が「１」の各情報（送信元アドレス５６２〜プロトコル番号５６４）は、図８のエントリＩＤ５１１の「１」に、エントリＩＤ５６１が「４」の各情報は、図８のエントリＩＤ５１１の「４」にそれぞれ登録される。
【００９８】
また、図７のエントリＩＤ５６１が「２」と「３」の転送処理部１３１７８はともに「転送部」であるので、エントリＩＤ５６１が「２」の各情報は、図６のエントリＩＤ３２１の「２」に、エントリＩＤ５６１が「３」の各情報は、図６のエントリＩＤ３２１の「３」にそれぞれ登録される。なお、図６のネクストホップ３２７および図８のネクストホップ５１７の情報は、既知の手段にて取得した情報を格納すればよい。この登録の一連の流れは、図１２を用いて説明する。
【００９９】
図１６は、通信装置１が、パケットを受信する際の動作を表すフローチャートの例である。ＩＰ電話のセッションを通信装置１に登録し、機能拡張部４０がセッションに属するパケットの転送処理を実行し、セッションを通信装置１から削除する例を用いて説明する。
【０１００】
通信装置１が受信したネットワーク上のパケット群に対して、機能拡張部４０がセッション制御処理を実行し、機能拡張部４０が実行する転送処理を転送部３０が実行するように変更する動作の概要を説明する。
【０１０１】
通信装置１は、通信網４または通信端末３からパケットを受信する（Ｓ４００）と、転送エンジン３１は、転送テーブル３２の優先度の高い動的な領域３２８を参照し、受信したパケットに含まれる情報（送信元アドレス、送信先アドレス、プロトコル番号など）と転送テーブル３２の優先度の高い動的な領域３２８の各エントリとを比較し、受信したパケットに含まれる情報と合致するエントリがあるか判定する（Ｓ４０１）。
【０１０２】
合致するエントリがあれば（Ｓ４０１でＹＥＳ）、転送エンジン３１は、そのエントリのネクストホップ３２７を特定して、受信したパケットを機能拡張部４０を経由せずに転送先に転送する（Ｓ４０２）。合致するエントリがなければ（Ｓ４０１でＮＯ）、転送エンジン３１は、静的な領域３２９を参照し、受信したパケットに含まれる情報と合致するエントリがあるか判定する（Ｓ４０３）。
【０１０３】
合致するエントリがあれば（Ｓ４０３でＹＥＳ）、転送エンジン３１は、そのエントリのネクストホップ３２７を特定して、受信したパケットを転送先である機能拡張部４０に転送する（Ｓ４０４）。
【０１０４】
受信したパケットがＩＰ電話に関するパケットである場合、機能拡張部４０が実行するセッション制御処理で処理するセッションの制御に関するパケットであるため、転送エンジン３１は、受信したＩＰ電話に関するパケットを機能拡張部４０に転送する。
ＩＰ電話に関するパケットには、セッションの制御に関するパケットや音声データを含むパケットが含まれる。
【０１０５】
合致するエントリがなければ（Ｓ４０３でＮＯ）、転送エンジン３１は、転送制御テーブル群を参照し、受信したパケット群に属するパケットそれぞれに含まれる情報と合致するエントリを検索し、受信したパケットを合致するエントリの転送先に転送する（Ｓ４０５）。その後Ｓ４００に戻る。
【０１０６】
受信したパケットが通信端末３に接続された電話機などから通話先の電話機などに向けた呼の発信を要求する発信要求のパケット、または、通話中の電話機などから通話先の電話機などに向けた呼の切断を要求する切断要求のパケットである場合、発信要求のパケット、または、切断要求のパケットは、ＩＰ電話などのセッションの確立および切断を制御するサーバであるセッション制御サーバ（図示せず）宛てのパケットであり、付加機能実行対象パケット群に属するパケットではないので、転送テーブル３２には転送先が格納されていない。そのため、転送エンジン３１は、転送制御テーブル群を検索し、受信した発信要求のパケット、または、切断要求のパケットを転送先であるセッション制御サーバ宛てに転送する（Ｓ４０５）。
【０１０７】
パケットを受信した機能拡張部４０は、セッション制御部５３が、付加機能実行対象パケット群として登録することを要求するパケット（対象登録要求パケット）、つまり、セッション制御サーバからのセッション制御処理に関するセッションの確立制御を要求するセッション確立要求のパケットであるか判定する（Ｓ４０６）。なお、セッション確立要求は、確立を要求するセッションを特定する送信元アドレス、送信先アドレスおよびプロトコル番号などの情報を含む。
【０１０８】
受信したパケットが対象登録要求パケット（セッション確立要求のパケット）である場合（Ｓ４０６でＹＥＳ）、セッション制御部５３は、対象登録要求パケット（セッション確立要求のパケット）が要求するパケットの情報（制御するセッションを識別する情報（付加機能対象識別情報）であるセッション情報）を登録するよう要求する登録要求（セッション登録要求）を転送処理制御部５４に送信する（Ｓ４０７）。
【０１０９】
登録要求を受信した転送処理制御部５４は、登録要求に従って転送処理制御テーブル５６ーＡに、登録を要求された情報（セッション情報）を格納し、転送機能部５６８に「機能拡張部」を格納する（Ｓ４０８）。また、転送処理制御部５４は、転送処理制御テーブル５６ーＡに格納したセッション情報に対応し、転送処理部５０が転送するパケット群を識別する情報（転送パケット群識別情報）を転送処理テーブル５１に格納する（Ｓ４１２）。その後ステップＳ４００に戻る。
【０１１０】
ステップＳ４０８によって、セッション制御部５３が付加機能実行対象パケット群を識別し、付加機能の処理を実行することができる。そのため、転送処理制御部５４が登録を要求された情報である付加機能対象情報を転送処理制御テーブル５６に格納したことを、「付加機能実行部５３によって付加機能の処理が実行された」とも表現する。
また、ステップＳ４１２によって、転送処理部５０が実行する転送処理の対象のパケット群を識別し、転送処理を実行する。
【０１１１】
受信したパケットが対象登録要求パケットではない場合（Ｓ４０６でＮＯ）、セッション制御部５３は、受信したパケットが付加機能実行対象パケット群として登録した情報を削除することを要求するパケット（対象削除要求パケット）、つまり、セッション制御サーバからのセッション制御処理に関するセッションの切断制御を要求するセッション切断要求のパケットであるか判定する（Ｓ４０９）。なお、セッション切断要求は、切断を要求するセッションを特定する送信元アドレス、送信先アドレスおよびプロトコル番号などの情報を含む。
【０１１２】
受信したパケットが対象削除要求パケット（セッション切断要求のパケット）である場合（Ｓ４０９でＹＥＳ）、セッション制御部５３は、対象削除要求パケット（セッション切断要求のパケット）が要求するパケットの情報（制御するセッションのセッション情報）を削除するよう要求する削除要求（セッション削除要求）を転送処理制御部５４に送信する（Ｓ４１０）。
【０１１３】
削除要求を受信した転送処理制御部５４は、削除要求に従って、削除を要求された情報（セッション情報）に対応する転送パケット群識別情報を転送処理テーブル５１から削除（Ｓ４１３）し、転送処理制御テーブル５６ーＡから、セッション情報を削除する（Ｓ４１１）。その後ステップＳ４００に戻る。
【０１１４】
ステップＳ４１３によって、転送処理テーブル５１から削除した情報に合致するパケット群に対する、転送処理部５０での転送処理を中止する。また、ステップＳ４１１によって、転送処理制御テーブル５６ーＡから削除した情報に合致するパケット群に対する、セッション制御部５３での付加機能の処理を中止する。
【０１１５】
受信したパケットが対象削除要求パケットではない場合（Ｓ４０９でＮＯ）、セッション制御部５３は、受信したパケットを転送処理部５０へ送信し、パケットを受信した転送処理部５０は、転送処理テーブル５１を参照して転送部３０を介して転送先へパケットを転送する（Ｓ４１４）。その後ステップＳ４００に戻る。
【０１１６】
受信したパケットが、ＩＰ電話の音声データを含むパケットである場合、転送処理部５０が、転送処理テーブル５１を参照して転送部３０を介して転送先へパケットを転送する（Ｓ４１４）。通信装置１は、ステップＳ４００〜Ｓ４１４を繰り返し実行することで、パケット群の転送処理を実行する。
【０１１７】
このようにして、通信装置１が実行するセッション制御処理で処理するＩＰ電話などのセッションの登録を行い、パケットの転送経路を設定し、パケット転送処理を行う。なお、設定されるパケットの転送経路は、論理的な経路であってもよい。
【０１１８】
なお、セッション確立要求のパケットとセッション切断要求のパケットをまとめてセッションに関する制御を要求するパケットであるセッション制御要求のパケットと呼び、セッションの確立制御とセッションの切断制御をまとめてセッションに関する制御であるセッションの制御と呼ぶ。
【０１１９】
次に、機能拡張部４０が実行する転送処理を転送部３０が実行するように変更する動作を図１６で説明した例を用いて説明する。
【０１２０】
機能拡張部４０は、選択条件に応じて、機能拡張部４０が実行するＩＰ電話のパケット群の転送処理を転送部３０が実行するように変更する。具体的には、機能拡張部４０のセッション制御部５３が実行する付加機能実行対象パケット群であるＩＰ電話のパケット群について、転送部３０の転送テーブル３２の静的な領域３２９には、ＩＰ電話のパケット群を識別する情報とその転送先「機能拡張部」が格納されている。しかし、セッション制御サーバからセッション確立要求のパケットを受信して、セッション情報を転送処理制御部５４が転送処理制御テーブル５６ーＡに格納するまでは、通信装置１は、セッションの制御を実行せず、機能拡張部４０の転送処理テーブル５１にも転送パケット群識別情報は格納されない。
【０１２１】
転送処理制御部５４が転送処理制御テーブル５６ーＡにセッション情報を格納すると、格納したセッション情報に合致するＩＰ電話のパケット群をセッション制御部５３が制御するパケット群として認識する。そして、転送処理制御部５４が転送処理テーブル５１にセッション情報に対応する転送パケット群識別情報を格納して、機能拡張部４０の転送処理部５０がＩＰ電話のパケット群の転送処理を実行する。このセッション制御部５３が認識したＩＰ電話のパケット群に属するパケットの転送処理を、選択条件に応じて、機能拡張部４０から転送部３０に変更する。
【０１２２】
転送処理制御部５４は、セッション情報を転送処理制御テーブル５６ーＡに格納し、転送機能部５６８に「機能拡張部」を格納後、エントリＩＤ５６１で識別される転送処理制御テーブル５６ーＡのエントリのうち、転送部３０の転送テーブル３２に追加するエントリを管理者が設定した選択条件に従って選択する。通信装置１は、機能拡張部４０の転送処理制御テーブル５６ーＡのエントリの一部を転送部３０の転送テーブル３２に追加することで、機能拡張部４０が実行する転送処理の一部の処理を転送部３０が実行するように変更する。
【０１２３】
機能拡張部４０は、選択条件である、機能拡張部４０が実行するパケット群の転送処理のうち高い優先度のパケット群、または、識別情報に合致するパケット群、または、特定の時間に受信するパケット群の転送処理を転送部３０に変更する。本実施例では、選択条件として、機能拡張部４０の処理負荷状況を含む処理状況の場合を説明する。
【０１２４】
転送処理制御部５４は、選択条件に従って選択したエントリ（例えば、機能拡張部４０の処理負荷が大きいエントリ）の転送機能部５６８を「機能拡張部」から「転送部」に変更し、動的転送制御設定部５５に選択したエントリを転送部３０に追加することを要求する追加要求であるエントリ設定要求を基本制御部１０に送信する。
【０１２５】
エントリ設定要求を受信した基本制御部１０は、動的転送制御部２０が、動的転送制御テーブル２３を参照して、転送部３０の転送テーブル３２の動的な領域３２８にエントリ設定要求が要求する情報を追加できるか判定する。追加できる場合、動的転送制御部２０は、エントリ設定要求を転送部３０に送信して、転送部３０の動作を制御する。
【０１２６】
エントリ設定要求を受信した転送部３０は、転送エンジン制御部３４が、転送テーブル３２の動的な領域３２８のエントリにエントリ設定要求の情報を追加する。追加後、転送エンジン制御部３４は、次にパケット群を受信すると、転送テーブル３２を検索し、動的な領域３２８に追加したエントリと合致するパケット群を転送テーブル３２の転送先であるネクストホップ３２７に従って転送する。
【０１２７】
この結果、機能拡張部４０では、ＩＰ電話のセッション情報を制御するが、制御するＩＰ電話のパケット群に属するパケットの転送処理は、転送部３０が実行するように変更する。例えば、機能拡張部４０は、あるユーザーＡのセッション情報を制御しているため、このユーザーＡがＩＰ電話を使用していることを認識しているが、このユーザーＡのＩＰ電話のパケット群の転送処理は転送部３０が実行し、機能拡張部４０では実行しない。そのため、機能拡張部４０を経由して転送していたユーザーＡのＩＰ電話のパケット群は、転送部３０から機能拡張部４０に転送されることなく、転送部３０にてＩＰ電話のパケット群の通話先であるユーザーＢに転送される。
【０１２８】
したがって、転送処理制御テーブル５６ーＡに格納され、機能拡張部４０が制御するセッション情報のうち、一部のセッション情報を変更対象のパケット群として選択して、転送部３０の転送テーブル３２の動的な領域３２８に追加することで、機能拡張部４０が実行する転送処理の一部の処理を転送部３０が実行するように変更する。
【０１２９】
そして、機能拡張部４０の処理負荷が下がり、機能拡張部４０でのパケットの喪失を防ぎ、通信装置１が提供する転送処理が安定する。例えば、ＩＰ電話の場合、通信装置１は、転送処理が安定することによって、電話が切れにくくなり、高品質な音声を通話先に提供する。
【０１３０】
また、機能拡張部４０は、機能拡張部４０の処理状況に応じて、基本制御部１０に転送部３０の転送テーブル３２の動的な領域３２８に追加したエントリの削除を要求する削除要求であるエントリ削除要求を送信して、変更した転送処理の実行を中止させる。つまり、通信装置１は、転送部３０の転送テーブル３２の動的な領域３２８に追加した、機能拡張部４０が実行していた転送処理の対象のパケット群を識別するエントリを、転送テーブル３２の動的な領域３２８から削除することで、転送部３０での削除したエントリの転送処理を中止する。
【０１３１】
このように通信装置１は、所定の選択条件に応じて、機能拡張部４０が実行する転送処理を転送部３０に分散し、機能拡張部４０の転送性能不足を解消して安定した転送処理を実現する。
【０１３２】
図９は、閾値設定の流れを示すシーケンス図の例である。
【０１３３】
管理サーバ２は通信装置１に閾値を設定する設定開始操作を管理者から受け付ける（Ｓ１３０１）。
設定開始操作を受けた管理サーバ２は、通信装置１の基本制御部１０の閾値管理部２１に対して、管理Ｉ／Ｆ１３を介して閾値を設定する画面の表示を要求する画面表示要求を送信する（Ｓ１３０２）。
【０１３４】
画面表示要求を受信した閾値管理部２１は、閾値管理テーブル２４の処理種別２４１、閾値種別２４２、閾値単位２４３を参照し、処理種別、閾値種別、閾値単位を取得し、取得した処理種別、閾値種別、閾値単位を管理Ｉ／Ｆ１３を介して管理サーバ２に送信する（Ｓ１３０３）。
【０１３５】
図５の例では、基本制御部１０の閾値管理部２１は、処理種別として「セッション制御」と「ＤＰＩ処理」を、閾値種別として「セッション接続時間」と「帯域量」を、閾値単位として「秒」と「ｂｐｓ」を送信する。しかし、本実施例はこれらに限られない。
【０１３６】
処理種別、閾値種別、閾値単位を受信した管理サーバ２は、受信した処理種別、閾値種別、閾値単位を基に閾値管理画面を表示する（Ｓ１３０４）。
管理サーバ２は、処理種別選択部８２を介した閾値を設定する処理種別の選択と閾値入力部８４を介した閾値の入力とを受け付ける閾値入力操作を管理者から受け付ける（Ｓ１３０５）。閾値入力操作を受けた管理サーバ２は、通信装置１の閾値管理部２１に対して、選択された処理種別と入力された閾値を送信する（Ｓ１３０６）。
【０１３７】
処理種別と閾値を受信した閾値管理部２１は、閾値管理テーブル２４を参照し、受信した処理種別と閾値管理テーブル２４の処理種別２４１と一致するエントリを検索し、一致するエントリの閾値２４４に受信した閾値を書き込む（Ｓ１３０７）。その後、閾値管理部２１は、装置内通信Ｉ／Ｆ１４、装置内通信Ｉ／Ｆ４４を介して、機能拡張部４０の転送処理制御部５４に受信した閾値を送信する（Ｓ１３０８）。閾値を受信した転送処理制御部５４は、受信した閾値を保持する（Ｓ１３０９）。
【０１３８】
図１０Ａ、図１０Ｂは、管理サーバ２が表示する閾値管理画面８０の画面イメージの例である。
閾値管理画面８０は、管理者からの新たな閾値の設定（入力）を受け付け、通信装置１に設定する閾値を管理する画面であり、例えば、図９のステップＳ１３０４などで表示される画面である。
【０１３９】
管理者は、閾値管理画面８０を介して通信装置１の閾値を設定する。管理サーバ２は、通信装置１から受信した処理種別の中から管理者が閾値を設定したい処理種別の選択を受け付ける処理種別選択ボックスである処理種別選択表示部（処理種別選択表示オブジェクト）８２を、「処理種別」を表示する処理種別表示部（処理種別表示オブジェクト）８１とともに閾値管理画面８０に表示する。
【０１４０】
処理種別選択部８２は、プルダウンメニュー（プルダウンリスト）として構成され、管理者は複数の処理種別から１の処理種別を選択する。管理者は、処理種別選択表示部８２のプルダウンボタン（選択表示オブジェクト）から管理サーバ２が受信した処理種別を選択して閾値を設定したい処理種別を選択する。
【０１４１】
管理サーバ２は、通信装置１から受信した閾値種別と閾値単位の中から、管理者が処理種別選択表示部８２にて選択した処理種別に対応する閾値種別および閾値単位をそれぞれ表示する閾値種別表示部（閾値種別表示オブジェクト）８３および閾値単位表示部（閾値単位表示オブジェクト）８５を閾値管理画面８０に表示し、閾値種別表示部８３と閾値単位表示部８５の間に管理者が設定する閾値の入力を受け付ける閾値入力表示部（閾値入力表示オブジェクト）８４を表示する。
【０１４２】
図１０Ａは、管理者が閾値を設定したい処理種別として処理種別選択表示部８２から「セッション制御」が選択され、閾値種別表示部８３および閾値単位表示部８５にそれぞれ表示される「セッション制御」の処理種別に対応する閾値種別である「セッション持続時間」および閾値単位である「秒」の値として、閾値入力表示部８４に「１８０」が入力された場合の例である。
つまり、通信装置１にセッションを持続する時間の閾値として「１８０秒」を設定する閾値管理画面８０の画面イメージである。なお、「セッション制御」とは、一連の通信であるセッションを制御することである。
【０１４３】
図１０Ｂは、管理者が閾値を設定したい処理種別として処理種別選択表示部８２から「ＤＰＩ処理」が選択され、閾値種別表示部８３および閾値単位表示部８５にそれぞれ表示される「ＤＰＩ処理」の処理種別に対応する閾値種別である「制限帯域量」および閾値単位である「ｂｐｓ」の値として、閾値入力表示部８４に「３００ｋ」が入力された場合の例である。
【０１４４】
つまり、通信装置１にＤＰＩ処理する帯域量を制限する閾値として「３００ｋｂｐｓ」を設定する閾値管理画面８０の画面イメージである。なお、「帯域量」とは、ＤＰＩ処理されるパケットの量のことであり、「ｂｐｓ」とは「ｂｉｔｓ  ｐｅｒ  ｓｅｃｏｎｄ」のことである。
なお、管理サーバ２は、処理種別、閾値種別、閾値単位に加えて、通信装置１から閾値を受信することで、閾値管理画面８０に現在通信装置１に設定されている閾値を表示してもよい。
【０１４５】
図１５は基本制御部１０の動的転送制御部２０の動作を表すフローチャートの例である。
動的転送制御部２０は、基本制御部１０が起動すると、メモリ１１からＣＰＵ１２にロードされて動作を開始（Ｓ３００）する。なお、ステップＳ３０１からステップＳ３１９は繰り返し（例えば、定期的に）実行される。
【０１４６】
動的転送制御部２０は、機能拡張部４０から、機能拡張部４０で行っているパケット転送処理のエントリを転送部３０に追加する（設定する）ことを要求する追加要求であるエントリ設定要求を受信するかどうかを確認する（Ｓ３０１）。
エントリ設定要求は、設定を要求するエントリを特定する情報を含み、例えば、送信元アドレス、送信先アドレス、プロトコル番号およびネクストホップである。
【０１４７】
動的転送制御部２０がエントリ設定要求を受信した場合（Ｓ３０１でＹＥＳ）は、エントリ設定要求の各情報を動的転送制御テーブル２３に登録する（記録する）と、動的転送制御テーブル２３のエントリの最大数を超過するか否かを判定する（Ｓ３０２）。つまり、エントリ設定要求の各情報をエントリとして動的転送制御テーブル２３に登録（格納）可能か否かを判定する。ステップＳ３０２は、例えば、動的転送制御テーブル２３に登録された現時点のエントリの数と動的転送制御テーブル２３に登録可能なエントリの最大数とを比較することで実行する。
【０１４８】
動的転送制御テーブル２３のエントリの最大数は、後述する転送部３０の転送テーブル３２のエントリの最大数と同じまたはそれ以下の所定の数であり、転送テーブル３２のエントリの最大数を考慮して、動的転送制御部２０に予め設定（保持）される。また、動的転送制御テーブル２３のエントリの最大数は、動的転送制御部２０以外の機能部に設定されてもよいし、管理者が管理サーバ２を介して通信装置１に設定されてもよい。
【０１４９】
ステップＳ３０２での判定の結果、動的転送制御テーブル２３のエントリの最大数を超過しない場合（Ｓ３０２でＮＯ）、動的転送制御部２０は、装置内通信Ｉ／Ｆ１４を介して転送部３０に機能拡張部４０で行っているパケット転送処理のエントリを登録することを要求する格納要求であるエントリ設定要求を発行（送信）する（Ｓ３０３）。
【０１５０】
動的転送制御部２０は、エントリ設定要求に対する応答として成功を示す応答を受信するかどうかを確認し（Ｓ３０４）、成功応答を受信した場合（Ｓ３０４でＹＥＳ）、動的転送制御部２０は、動的転送制御テーブル２３に機能拡張部４０から受信したエントリ設定要求の各情報をエントリとして登録する（Ｓ３０５）。その後、再度ステップＳ３０１に戻る。
【０１５１】
動的転送制御部２０が、動的転送制御テーブル２３にエントリを登録することで、機能拡張部４０で行うパケット転送処理を転送部３０が実行するように変更することを基本制御部１０が制御する。
【０１５２】
ステップＳ３０２での判定の結果、エントリの最大数が超過する場合（Ｓ３０２でＹＥＳ）、動的転送制御部２０は、機能拡張部４０にエントリの最大数が超過する旨の応答を送信し（Ｓ３１２）、エントリ設定要求が失敗した旨の応答（失敗応答）を返す（送信する）（Ｓ３０６）。その後、再度ステップＳ３０１に戻る。
【０１５３】
動的転送制御部２０が、エントリ設定要求に対する応答として失敗を示す応答（失敗応答）を受信した場合（Ｓ３０４でＮＯ）、ステップＳ３０６を実行し、再度ステップＳ３０１に戻る。
【０１５４】
動的転送制御部２０がエントリ設定要求を受信しない場合（Ｓ３０１でＮＯ）は、動的転送制御部２０は、機能拡張部４０から、転送部３０で行っている機能拡張部４０から移動されたパケット転送処理のエントリを転送部３０から削除し、機能拡張部４０に戻すことを要求する削除要求であるエントリ削除要求を受信するかどうかを確認する（Ｓ３０７）。
エントリ削除要求は、削除を要求するエントリを特定する情報を含み、送信元アドレス、送信先アドレス、プロトコル番号、ネクストホップなどである。
【０１５５】
動的転送制御部２０がエントリ削除要求を受信した場合（Ｓ３０７でＹＥＳ）は、動的転送制御テーブル２３を参照して、エントリ削除要求の各情報に合致するエントリが動的転送制御テーブル２３に存在するか確認する（Ｓ３０８）。エントリ削除要求の各情報に合致するエントリが動的転送制御テーブル２３に存在する場合（Ｓ３０８でＹＥＳ）、動的転送制御部２０は、転送部３０に転送部３０で行っている機能拡張部４０から移動したパケット転送処理のエントリを削除することを要求する情報削除要求であるエントリ削除要求を発行（送信する）（Ｓ３０９）。
【０１５６】
動的転送制御部２０は、エントリ削除要求に対する応答として成功を示す応答を受信するかどうかを確認し（Ｓ３１０）、成功応答を受信した場合（Ｓ３１０でＹＥＳ）、動的転送制御部２０は、機能拡張部４０から受信したエントリ削除要求の各情報に合致するエントリを動的転送制御テーブル２３から削除する（Ｓ３１１）。その後、再度ステップＳ３０１に戻る。
【０１５７】
動的転送制御部２０がエントリ削除要求を受信しない場合（Ｓ３０７でＮＯ）は、再度ステップＳ３０１に戻る。エントリ削除要求の各情報に合致するエントリが動的転送制御テーブル２３に存在しない場合（Ｓ３０８でＮＯ）や、動的転送制御部２０が、エントリ削除要求に対する応答として失敗を示す応答（失敗応答）を受信した場合（Ｓ３１０でＮＯ）、動的転送制御部２０は、機能拡張部４０にエントリ削除要求が失敗した旨の応答（失敗応答）を送信する（Ｓ３１３）。その後、再度ステップＳ３０１に戻る。
【０１５８】
動的転送制御部２０が、動的転送制御テーブル２３からエントリを削除することで、転送部３０が実行していた機能拡張部４０から変更されたパケット転送処理の中止を基本制御部１０が制御する。
【０１５９】
転送部３０は、機能拡張部４０と比べて、パケット転送処理の性能が高いが、パケット転送処理を行う際に参照する転送テーブル３２に登録するエントリの数が少ない。そのため、多量のパケットの転送を転送部３０で行おうとすると、転送テーブル３２に登録すべきエントリの数が登録可能な容量を上回ることがある。この問題を解決するために、動的転送制御部２０は、動的転送制御テーブル２３のエントリの数を確認して、転送部３０に設定するエントリの数が転送部３０でパケット転送処理可能な数を上回らないように制御する。
【０１６０】
なお、追加要求および削除要求により、パケット群が機能拡張部４０を経由するかどうかを制御する動作について、複数の要求によりパケット群が機能拡張部４０を経由するかどうかを切り替える構成であれば、上記手段によらず他の手段で実現してもよい。
【０１６１】
機能拡張部４０の転送処理制御部５４の動作を、図１１を用いて説明する。
図１１Ａ、図１１Ｂは、転送処理制御部５４の動作を表すフローチャートの例である。なお、転送処理制御部５４は、図１０Ａで示した閾値を保持しているものとして説明する。また、付加機能実行部５３が、ＩＰ電話などのセッションを制御するセッション制御部として動作する場合で説明する。
転送処理制御部５４は、機能拡張部４０が起動すると、メモリ４１からネットワークプロセッサ４２にロードされて動作を開始（Ｓ１００）し、ステップＳ１０１へ進む。なお、ステップＳ１０１からステップＳ１１９は繰り返し（例えば、定期的に）実行される。
【０１６２】
転送処理制御部５４は、付加機能実行部５３から付加機能対象識別情報の登録を要求する登録要求を受信するかどうか確認する（Ｓ１０１）。つまり、転送処理制御部５４は、セッション制御部５３からセッション登録要求を受信するかどうかを確認し（Ｓ１０１）、転送処理制御部５４がセッション登録要求を受信した場合（Ｓ１０１でＹＥＳ）はステップＳ１０２に進み、転送処理制御部５４がセッション登録要求を受信しない場合（Ｓ１０１でＮＯ）はステップＳ１０４に進む。なお、セッション登録要求には、登録を要求するセッションを特定する送信元アドレス、送信先アドレス、プロトコル番号などの情報が含まれる。
【０１６３】
転送処理制御部５４がセッション登録要求を受信した場合（Ｓ１０１でＹＥＳ）、転送処理制御部５４は、受信したセッション登録要求から、登録するセッション情報を抽出し、転送処理制御テーブル５６ーＡに抽出したセッション情報をエントリＩＤ５６１で識別されるセッション情報として登録する（記録する）（Ｓ１０２）。つまり、セッション登録要求に含まれる各情報が、機能拡張部４０が処理するセッション情報として転送処理制御テーブル５６ーＡの送信元アドレス５６２、送信先アドレス５６３、プロトコル番号５６４に登録される。また、転送処理制御部５４は、通信装置１内の現在時刻を取得してエントリ登録時刻５６９に登録し、記憶している閾値をセッション継続時間５６７に登録し、転送機能部５６８に「機能拡張部」を登録する。その後、ステップＳ１０３に進む。
【０１６４】
このように、転送処理制御部５４が転送処理制御テーブル５６ーＡにセッション情報を登録することで、機能拡張部４０のセッション制御部５３がセッションを制御する機能を実行する対象のパケット群を識別する図７の転送処理制御テーブル５６ーＡが作成される。つまり、機能拡張部４０のセッション制御部５３は、転送処理制御テーブル５６ーＡを参照して、セッション情報に合致するパケット群に対してセッション制御処理を実行する。
【０１６５】
なお、ＩＰ電話のセッション制御の場合、通信装置１がＩＰ電話のパケットとして外部に転送するパケットは、セッション制御サーバからセッションの制御に関するパケットを受信した後に受信する音声データを含むパケットであるので、管理者による所定の選択条件の設定により、転送処理制御テーブル５６ーＡへのエントリ登録時に、転送機能部５６８の初期値を「転送部」としてもよい。
【０１６６】
転送処理制御部５４は、転送処理制御テーブル５６ーＡに登録した各情報をエントリＩＤ５１１で識別される転送処理エントリとして転送処理テーブル５１に登録する（記録する）（Ｓ１０３）。つまり、機能拡張部４０が転送するパケット群を識別する転送パケット群識別情報のエントリである転送処理エントリが転送処理テーブル５１に登録される。この結果、機能拡張部４０の転送処理部５０がセッションを制御する機能を実行した後のパケット群を転送する際に参照する図８の転送処理テーブル５１が作成される。
【０１６７】
つまり、転送処理テーブル５１のエントリＩＤ５１１、送信元アドレス５１２、送信先アドレス５１３、プロトコル番号５１４が記録（格納）される。また、ネクストホップ５１７が既知の手段にて取得されて記録（格納）される。その後、再度ステップＳ１０１に戻る。
【０１６８】
転送処理制御部５４がセッション登録要求を受信しない場合（Ｓ１０１でＮＯ）、転送処理制御部５４は、付加機能実行部５３から付加機能対象識別情報の削除を要求する削除要求を受信するかどうか確認する（Ｓ１０４）。つまり、転送処理制御部５４は、セッション制御部５３から転送処理制御テーブル５６ーＡに記録するセッション情報の削除を要求するセッション削除要求を受信するかどうかを確認し（Ｓ１０４）、転送処理制御部５４がセッション削除要求を受信した場合（Ｓ１０４でＹＥＳ）は、ステップＳ１０５に進み、転送処理制御部５４がセッション削除要求を受信しない場合（Ｓ１０４でＮＯ）は、ステップＳ１１１に進む。なお、セッション削除要求は、削除を要求するセッションを特定する送信元アドレス、送信先アドレス、および、プロトコル番号などの情報を含む。
【０１６９】
転送処理制御部５４がセッション削除要求を受信した場合（Ｓ１０４でＹＥＳ）、ステップＳ１０５において、転送処理制御部５４は、転送処理制御テーブル５６ーＡに格納したセッション情報を削除する。具体的には、転送処理制御部５４は、転送処理制御テーブル５６ーＡを参照し、セッション削除要求が指定するセッションに合致するエントリを検索する。その後、ステップＳ１０６に進む。
【０１７０】
ステップＳ１０６において、ステップＳ１０５で検索したエントリの転送機能部５６８が「転送部」かどうかを確認し、「転送部」であれば（Ｓ１０６でＹＥＳ）ステップＳ１０７に進み、「転送部」でなければ（Ｓ１０６でＮＯ）ステップＳ１０９に進む。
転送機能部５６８が「転送部」である場合（Ｓ１０６でＹＥＳ）、転送処理制御部５４は、動的転送制御設定部５５に対して、ステップＳ１０５で検索したエントリの削除を要求するエントリ削除要求を送信する（Ｓ１０７）。その後、ステップＳ１０８に進む。
【０１７１】
転送処理制御部５４は、転送処理制御テーブル５６ーＡから、ステップＳ１０５で検索したエントリを削除する（Ｓ１０８）。その後、再度ステップＳ１０１に戻る。この結果、転送部３０がパケット転送処理を行い、転送処理制御テーブル５６ーＡに登録された機能拡張部４０が処理するセッションが削除される。
【０１７２】
転送機能部５６８が「転送部」ではない場合（Ｓ１０６でＮＯ）、転送処理制御部５４は、転送処理テーブル５１から、ステップＳ１０５で検索したエントリに合致するエントリを削除する（Ｓ１０９）。その後、ステップＳ１１０に進む。
転送処理制御部５４は、転送処理制御テーブル５６ーＡから、ステップＳ１０５で検索したエントリを削除する（Ｓ１１０）。その後、再度ステップＳ１０１に戻る。この結果、機能拡張部４０がパケット転送処理を行い、転送処理制御テーブル５６ーＡに登録された機能拡張部４０が処理するセッションが削除される。
【０１７３】
このように、転送処理制御部５４が転送処理制御テーブル５６ーＡからセッション情報を削除することで、削除した情報に合致するパケット群に対する、機能拡張部４０のセッション制御部５３でのセッション制御処理（付加機能の処理）の実行を中止する。
【０１７４】
ステップＳ１０４で転送処理制御部５４が、セッション削除要求を受信しない場合（Ｓ１０４でＮＯ）、転送処理制御部５４は、機能拡張部４０の処理負荷状況を確認する。具体的には、転送処理制御部５４は、転送処理制御テーブル５６ーＡを参照し、転送機能部５６８が「機能拡張部」であるエントリの情報と閾値とを比較し、閾値を超えているエントリを検索する（Ｓ１１１）。
【０１７５】
つまり、転送処理制御部５４は、転送機能部５６８が「機能拡張部」であるエントリのうち、エントリ登録時刻５６９に格納された時刻から現在時刻までの経過時間が、閾値であるセッション継続時間５６７を超えているエントリを検索する（Ｓ１１１）。検索した結果、経過時間が、閾値を超えているエントリが存在しない（見つからなかった、ヒットしなかった）場合（Ｓ１１１でＮＯ）は、再度ステップＳ１０１に戻る。検索した結果、経過時間が、閾値を超えているエントリが存在する（見つかった、ヒットした）場合（Ｓ１１１でＹＥＳ）は、ステップＳ１１２に進む。
【０１７６】
ここで、経過時間が、閾値を超えているエントリは、機能拡張部４０でのパケット転送処理の負荷が高く、機能拡張部４０での負荷が所定の閾値を超えているエントリであり、経過時間が、閾値を超えていないエントリは、機能拡張部４０でのパケット転送処理の負荷が低く、機能拡張部４０での負荷が所定の閾値を超えていないエントリである。
【０１７７】
経過時間が、閾値を超えているエントリが存在する場合（Ｓ１１１でＹＥＳ）、転送処理制御部５４は、動的転送制御設定部５５に対して、ステップＳ１１１で検索して見つかったエントリの設定を要求するエントリ設定要求を送信する（Ｓ１１２）。転送処理制御部５４は、動的転送制御設定部５５を介して基本制御部１０にエントリ設定要求を送信することで、機能拡張部４０で行っているパケット転送処理を転送部３０の転送エンジン３１で行うよう要求する。エントリ設定要求に対する応答を受信した後、ステップＳ１１３に進む。
【０１７８】
転送処理制御部５４は、ステップＳ１１２でのエントリ設定要求に対する応答から、基本制御部１０の動的転送制御テーブル２３に格納可能なエントリの最大数超過の応答を受信したかを確認する（Ｓ１１３）。転送処理制御部５４がエントリの最大数超過の応答を受信していなければ（Ｓ１１３でＮＯ）ステップＳ１１４に進み、転送処理制御部５４がエントリの最大数超過の応答を受信していれば（Ｓ１１３でＹＥＳ）ステップＳ１１６に進む。
【０１７９】
転送処理制御部５４がエントリの最大数超過の応答を受信していない場合（Ｓ１１３のＮＯ）、転送処理制御部５４は、ステップＳ１１１で検索して見つかったエントリの転送機能部５６８を「機能拡張部」から「転送部」に変更するように、転送処理制御テーブル５６ーＡに書き込む（更新する）（Ｓ１１４）。その後、ステップＳ１１５に進む。
【０１８０】
転送処理制御部５４は、転送処理テーブル５１から、ステップＳ１１１で検索して見つかったエントリに合致するエントリを削除する（Ｓ１１５）。その後、再度ステップＳ１０１に戻る。この結果、機能拡張部４０は、ステップＳ１１１で検索して見つかったエントリに合致するパケット転送処理、すなわち、経過時間が閾値を超え、パケット転送処理の負荷が高いエントリに合致する機能拡張部４０で実行しているパケット転送処理を、機能拡張部４０の転送処理部５０から転送部３０の転送エンジン３１に移管（移動）する。
【０１８１】
以上の結果、機能拡張部４０の処理負荷が下がり、機能拡張部４０でのパケットの喪失を防ぎ、通信装置１が実行するパケット転送処理が安定する。通信装置１は、パケットの転送処理の安定によって、電話が切れにくくなり（通話が安定し）、高品質な音声を通話先に提供する。
【０１８２】
転送処理制御部５４がエントリの最大数超過の応答を受信した場合（Ｓ１１３のＹＥＳ）、転送処理制御部５４は、転送処理制御テーブル５６ーＡを参照し、転送機能部５６８が「転送部」であるエントリのうち、処理負荷が小さいエントリを検索する（Ｓ１１６）。つまり、転送処理制御部５４は、エントリ登録時刻１３１７０９に格納された時刻から現在時刻までの経過時間が最短のエントリを検索する（Ｓ１１６）。その後、ステップＳ１１７に進む。
【０１８３】
最短のエントリを検索するのは、転送処理の負荷が小さいエントリを検索するためである。転送部３０の転送エンジン３１に移管しているパケット転送処理のエントリのうち、セッションを機能拡張部４０に登録している時間の経過時間が短い、すなわち、呼の中継時間が短いエントリは、転送処理の負荷が小さい。
【０１８４】
したがって、転送部３０に移管しているパケット転送処理のうち、パケット転送処理の負荷の小さいエントリを、転送部３０から削除し、機能拡張部４０の転送処理部５０に戻す。これは、機能拡張部４０の転送処理能力が、転送部３０の転送処理能力よりも低いので、パケット転送処理の負荷が小さいものを優先的に機能拡張部４０の転送処理部５０に戻すためである。
【０１８５】
パケット転送処理の負荷が小さいエントリを転送部３０から機能拡張部４０に移管する（戻す）ものであれば、「最短のエントリ」に限られず、所定の基準内のエントリであればよい。どのエントリを検索するかは、予め管理者がポリシーとして定めていてもよい。
転送処理制御部５４は、ステップＳ１１６で検索したエントリの転送機能部を「転送部」から「機能拡張部」に変更するように、転送処理制御テーブル５６ーＡに書き込む（更新する）（Ｓ１１７）。その後、ステップＳ１１８に進む。
【０１８６】
転送処理制御部５４は、転送処理テーブル５１にステップＳ１１６で検索したエントリを登録する（記録する）（Ｓ１１８）。その後、ステップＳ１１９に進む。転送処理制御部５４は、動的転送制御設定部５５に対して、ステップＳ１１６で検索したエントリのエントリ削除要求を送信する（Ｓ１１９）。その後、再度ステップＳ１０１に戻る。
この結果、機能拡張部４０は、ステップＳ１１６で検索して見つかったエントリに合致するパケット転送処理、すなわち、パケット転送処理の負荷が小さいエントリに合致する転送部３０で実行しているパケット転送処理を中止させ、パケット転送処理の負荷が小さいエントリを転送部３０の転送エンジン３１から機能拡張部４０の転送処理部５０に戻し、機能拡張部４０が、負荷が小さいパケット転送処理を実行する。
【０１８７】
以上の結果、転送部３０に移動しているエントリの数が下がり、転送部３０に設定するエントリの数が転送部３０でパケット転送処理可能な数を上回らないようにし、転送部３０のパケット転送の品質が維持される。転送部３０と機能拡張部４０とで機能の違い、性能の違いを考慮してパケット転送処理を実行することで、パケット転送処理の安定を実現する。
なお、図１１ＡのステップＳ１０１、Ｓ１０２、Ｓ１０３は、図１６のステップＳ４０７、Ｓ４０８、Ｓ４１２と同じ処理である。
【０１８８】
図１２は、エントリ設定要求の一連の動作を表したシーケンス図の例である。
機能拡張部４０の転送処理制御部５４は、動的転送制御設定部５５に対して、機能拡張部４０が実行している転送処理を転送部３０が実行するように変更すること、すなわち、機能拡張部４０が実行している転送処理のエントリを転送部３０に追加することを要求するエントリ設定要求を送信する（Ｓ１４０１）。エントリ設定要求は、所定の選択条件に応じて、例えば、機能拡張部４０でのパケット転送処理の負荷が所定の閾値より高くなる場合などに送信される。
【０１８９】
エントリ設定要求を受信した動的転送制御設定部５５は、基本制御部１０の動的転送制御部２０にエントリ設定要求を送信する（Ｓ１４０２）。エントリ設定要求を受信した動的転送制御部２０は、動的転送制御テーブル２３を参照し、エントリの最大数を超過していないかチェックする（Ｓ１４０３）。チェックの結果、エントリの最大数を超過していなければ、動的転送制御部２０は転送部３０の転送エンジン制御部３４にエントリ設定要求を送信する（Ｓ１４０４）。なお、チェックの結果、エントリの最大数を超過する場合、動的転送制御部２０は機能拡張部４０にエントリの最大数超過の応答を送信する。
【０１９０】
エントリ設定要求を受信した転送エンジン制御部３４は、転送テーブル３２を参照してエントリ設定要求の各情報と重複したエントリがないかを確認し、重複したエントリがなければ新しいエントリとしてエントリ設定要求の各情報を転送テーブル３２に書き込み（記録し）（Ｓ１４０５）、動的転送制御部２０に設定成功の応答を返す（送信する）（Ｓ１４０６）。
【０１９１】
設定成功の応答を受信した動的転送制御部２０は、動的転送制御テーブル２３にステップＳ１４０３にて受信したエントリ設定要求の各情報をエントリとして書き込み（記録し）（Ｓ１４０７）、機能拡張部４０の動的転送制御設定部５５に設定成功の応答を返す（送信する）（Ｓ１４０８）。設定成功の応答を受信した動的転送制御設定部５５は、転送処理制御部５４に設定成功の応答を返す（送信する）（Ｓ１４０９）。
【０１９２】
図１３は、エントリ削除要求の一連の動作を表したシーケンス図の例である。
転送処理制御部５４は、動的転送制御設定部５５に対して、転送部３０が実行している転送処理を機能拡張部４０が実行するように変更すること、すなわち、転送部３０が実行している転送処理のエントリを転送部３０から削除することを要求するエントリ削除要求を送信する（Ｓ１５０１）。エントリ削除要求は、例えば、転送部３０に登録したパケット転送処理のエントリの数が最大数を超過する場合、または、機能拡張部４０でのパケット転送処理の負荷が所定の閾値より低くなる場合などに送信される。
【０１９３】
エントリ削除要求を受信した動的転送制御設定部５５は、動的転送制御部２０にエントリ削除要求を送信する（Ｓ１５０２）。エントリ削除要求を受信した動的転送制御部２０は、動的転送制御テーブル２３を参照し、エントリ削除要求の各情報に合致するエントリが存在するかチェックする（Ｓ１５０３）。チェックの結果、エントリ削除要求に合致するエントリが存在すれば、動的転送制御部２０は転送エンジン制御部３４にエントリ削除要求を送信する（Ｓ１５０４）。
【０１９４】
エントリ削除要求を受信した転送エンジン制御部３４は、転送テーブル３２を参照してエントリ削除要求の各情報に合致するエントリを検索し、見つかったエントリを転送テーブル３２から削除し（Ｓ１５０５）、動的転送制御部２０に削除成功の応答を返す（送信する）（Ｓ１５０６）。
【０１９５】
削除成功の応答を受信した動的転送制御部２０は、動的転送制御テーブル２３からエントリ削除要求の各情報に合致するエントリを削除し（Ｓ１５０７）、動的転送制御設定部５５に削除成功の応答を返す（送信する）（Ｓ１５０８）。削除成功の応答を受信した動的転送制御設定部５５は、転送処理制御部５４に削除成功の応答を返す（送信する）（Ｓ１５０９）。
通信装置１は、ステップＳ１５０５によって、転送テーブル３２から削除した情報に合致するパケット群に対する、転送部３０の転送処理を中止する。
【０１９６】
以上の動作により、本実施例は、複数の転送機能部を持つ通信装置において、それぞれの転送機能部の特性と転送処理の処理状況に応じて、転送処理を行う転送機能部をセッション毎に変更することができる。また、本実施例は、転送機能を実装する異種の機能部（転送部と機能拡張部）の特性と処理状況に応じて、異種の機能部間で効率的な転送処理の分散を行い、安定した転送処理を実現する。また、本実施例は、転送されるパケットの品質の向上を実現する。
【０１９７】
具体的には、転送処理の性能は高いが登録可能なエントリ数が少ない転送エンジン３１と、転送処理の性能は低いが登録可能なエントリ数が多い転送処理部５０において、所定の選択条件であるセッションの継続時間を基に、ある呼のセッションの継続中、つまり、機能拡張部４０での付加機能の処理は実行したままで、転送処理を行う転送機能部を機能拡張部４０の転送処理部５０から転送部３０の転送エンジン３１に変更して、転送部３０と機能拡張部４０間で転送処理の効率的な処理分散を行い、安定した転送処理を実現する。
【０１９８】
また、本実施例において、機能拡張部４０で行っているパケット転送処理を機能拡張部４０から転送部３０へ移管し、移管したパケット転送処理を転送部３０から機能拡張部４０へ戻しても、元々機能拡張部４０で付加機能の処理を実行されることなく、つまり、元々機能拡張部４０を経由することなく転送されるパケット（例えば、コアＩ／Ｆ６１を介して受信し、転送エンジン３１で転送され、加入者Ｉ／Ｆ６０を介して送信する動画データなどのパケット）の転送処理は、継続される。
【０１９９】
また、通信装置１に転送部３０や機能拡張部４０がそれぞれ複数搭載される場合は、基本制御部１０の動的転送制御部２０にて、例えば、転送部３０毎の転送テーブル３２を制御し、機能拡張部４０毎にエントリ設定要求やエントリ削除要求を識別し、識別した要求に従って動作する。
【０２００】
本実施例では、転送エンジン３１は転送部３０内に、転送処理部５０と転送処理制御部５４は機能拡張部４０内に配置されているが、通信装置１の中に、パケット転送を担う複数の機能部として転送エンジンと転送処理部が存在し、パケット転送を行う機能部である転送エンジンまたは転送処理部を選択する制御を行う機能部として転送処理制御部が存在すれば、それらが配置される機能部（モジュールカード）は特に限定されるものではない。
【０２０１】
次に、通信装置１が、付加機能の処理としてＤＰＩ処理を実行する場合を説明する。つまり、付加機能実行部５３がＤＰＩ処理部として動作する。
ＤＰＩ処理部５３は、通信装置１が転送するパケットに対して付加機能であるＤＰＩ処理機能を実行する。ＤＰＩ処理部５３は、転送部３０から受信したパケット群に属するパケットに含まれる各情報を基に、受信したパケット群を特定する。特定したパケット群に基づいて、転送処理制御部５４に対してＤＰＩ処理部５３が処理するパケット群を識別する登録要求であるフローの登録を要求するフロー登録要求を送信する。フロー登録要求は、登録を要求するパケット群のフローを特定する情報を含み、例えば、送信元アドレス、送信先アドレスおよびプロトコル番号などの情報である。なお、受信したパケット群を特定する際のトリガは、予め管理者によって設定されている。
【０２０２】
また、ＤＰＩ処理部５３は、実行する検査処理を中止する際に、登録を要求したフローの削除を要求するフロー削除要求を転送処理制御部５４に対して送信する。フロー削除要求は、削除を要求するパケット群のフローを特定する情報を含み、例えば、送信元アドレス、送信先アドレスおよびプロトコル番号などの情報である。
【０２０３】
ＤＰＩ処理部５３は、転送部３０からパケットを受信すると、受信したパケットに含まれる各情報を基に受信したパケットが属するパケット群を特定する。特定したパケット群に基づいて、転送処理制御部５４に対してフロー登録要求を送信する。
【０２０４】
転送処理制御部５４は、ＤＰＩ処理部５３からフロー登録要求を受信すると、登録を要求されたフロー登録要求の各情報をＤＰＩ処理部５３が処理するパケット群のフローを識別する情報であるフロー情報として転送処理制御テーブル５６―Ｂに格納してフロー情報を登録する。また、転送処理制御部５４は、転送処理制御テーブル５６ーＢに格納されたフローの情報と一致するパケット群を転送する転送機能部を変更する（切り替える）。つまり、転送処理制御部５４は、機能拡張部４０が受信し、ＤＰＩ処理部５３によって付加機能の処理であるＤＰＩ処理を実行された後のパケット群の転送を行う転送機能部を決定し、転送機能部を変更する。
【０２０５】
また、転送処理制御部５４は、転送処理制御テーブル５６ーＢに登録した各フロー情報を転送処理部５０が転送するパケット群を識別する転送パケット群識別情報のエントリである転送処理エントリとして転送処理テーブル５１に格納して、転送処理エントリを登録する。
【０２０６】
転送処理制御部５４が転送処理制御テーブル５６にフロー情報を登録することで、ＤＰＩ処理部５３が、転送処理制御テーブル５６ーＢを参照して、フロー情報からＤＰＩ処理を行うパケット群を識別し、識別したパケット群に対してＤＰＩ処理を実行する。つまり、転送処理制御テーブル５６ーＢのエントリは、ＤＰＩ処理部５３が付加機能の処理であるＤＰＩ処理を行うパケット群を識別するフロー情報を含むエントリである。
【０２０７】
また、転送処理制御部５４が転送処理テーブル５１に転送処理エントリを登録することで、転送処理部５０が、転送処理テーブル５１を参照して、転送処理を行うＤＰＩ処理を実行した後のパケット群を識別し、識別したパケット群に対して転送処理を実行する。つまり、転送処理テーブル５１のエントリは、ＤＰＩ処理を実行した後のパケット群であり転送処理部５０が転送処理を行うパケット群を識別するエントリである。
【０２０８】
転送処理制御テーブル５６―Ｂは、フロー情報と、閾値に関する情報と、フロー情報で識別されるパケット群が使用した帯域量（使用帯域量）と、ＤＰＩ処理部５３がＤＰＩ処理を実行した後のパケット群の転送処理を行う転送機能部（転送部３０の転送エンジン３１または機能拡張部４０の転送処理部５０）を指定する情報を格納する。つまり、転送処理制御テーブル５６―Ｂには、機能拡張部４０が処理するフローが登録される。
【０２０９】
図１４は、機能拡張部４０の転送処理制御テーブル５６―Ｂの例である。転送処理制御テーブル５６―Ｂは、ＤＰＩ処理部５３に対応して作成される。
転送処理制御テーブル５６―Ｂは、転送処理制御テーブル５６―Ａと、制限帯域量５８０、使用帯域量５８１が異なる。
【０２１０】
転送処理制御テーブル５６―ＢのエントリＩＤ５６１、送信元アドレス５６２、送信先アドレス５６３、プロトコル番号５６４は、転送処理制御部５４がＤＰＩ処理部５３から受信したフロー登録要求の各情報であるフロー情報が、転送処理制御部５４によって格納される。また、転送機能部５６８は、転送処理制御部５４によって決定された、ＤＰＩ処理を実行された後のパケット群の転送を行う転送機能部が格納される。
【０２１１】
制限帯域量５８０は、機能拡張部４０に設定される閾値に関する情報であり、転送機能部が転送するパケット群を制限する帯域量（パケット量）の情報である。制限帯域量５８０は、転送処理制御部５４が記憶する閾値が転送処理制御部５４によって格納される。使用帯域量５８１は、フロー情報で識別されるパケット群が使用した帯域量、つまり、フロー情報で識別されるパケット群を転送部３０または機能拡張部４０が転送した量を示す情報である。使用帯域量５８１は、転送処理制御部５４が統計管理部２２と統計テーブル５２から取得した統計情報が、転送処理制御部５４によって格納される。
【０２１２】
ＤＰＩ処理部５３は、転送処理制御テーブル５６―Ｂに格納されたフロー情報を参照して、ＤＰＩ処理を実行する対象のパケット群を識別する。また、転送処理制御部５４は、転送処理制御テーブル５６―Ｂに格納された転送機能部５６８を参照して、ＤＰＩ処理を実行した後のパケットを転送する転送機能部（転送部３０または機能拡張部４０）を特定する。
【０２１３】
転送処理制御部５４は、繰り返し、例えば、定期的に基本制御部１０の統計管理部２２に統計管理部２２が管理する転送部３０が転送したパケットの統計情報の取得を要求する統計取得要求を送信し、統計管理部２２から統計情報を受信する。転送処理制御部５４は、受信した統計情報のエントリＩＤに該当する転送処理制御テーブル５６―ＢのエントリＩＤ５６１の使用帯域量５８１に、受信した統計情報の使用帯域量を書き込む（格納する）。
【０２１４】
また、転送処理制御部５４は、繰り返し、例えば、定期的に統計テーブル２５から統計情報を読み出し、読み出した統計情報のエントリＩＤに該当する転送処理制御テーブル５６―ＢのエントリＩＤ２３１７１の使用帯域量５８１に、読み出した統計情報の使用帯域量を書き込む（格納する）。
【０２１５】
転送処理制御部５４の動作を、図１１を用いて説明する。なお、付加機能実行部５３がセッション制御部の場合の図１１の動作と異なる箇所を説明する。すなわち、セッション制御部５３の場合のステップＳ１０１、ステップＳ１０４、ステップＳ１１１、ステップＳ１１６それぞれを、ＤＰＩ処理部５３の場合のステップＳ２０１、ステップＳ２０４、ステップＳ２１１、ステップＳ２１６として説明する。他のステップでは、「セッション」などを「フロー」などと適宜読み替える。また、転送処理制御部５４は、図１０Ｂで示した閾値を保持しているものとして説明する。
【０２１６】
ステップＳ２０１において、転送処理制御部５４は、付加機能実行部５３から登録要求を受信するかどうか確認する（Ｓ２０１）。つまり、転送処理制御部５４は、ＤＰＩ処理部５３からフロー情報の登録を要求するフロー登録要求を受信するかどうかを確認する（Ｓ２０１）。
【０２１７】
ステップＳ２０４において、転送処理制御部５４は、付加機能実行部５３から削除要求を受信するかどうか確認する（Ｓ２０４）。つまり、転送処理制御部５４は、ＤＰＩ処理部５３から転送処理制御テーブル５６ーＢに記録するフロー情報の削除を要求するフロー削除要求を受信するかどうかを確認する（Ｓ２０４）。
【０２１８】
ステップＳ２１１において、転送処理制御部５４は、転送処理制御テーブル５６―Ｂを参照し、転送機能部５６８が「機能拡張部」であるエントリの情報と閾値とを比較し、閾値を超えているエントリを検索する（Ｓ２１１）。つまり、転送処理制御部５４は、転送機能部５６８が「機能拡張部」であるエントリのうち、使用帯域量５８１に格納された使用帯域量が、転送処理制御部５４が保持する閾値である制限帯域量５８０を超えているエントリを検索する（Ｓ２１１）。
【０２１９】
ここで、使用帯域量が、転送処理制御部５４が保持する閾値を超えているエントリは、機能拡張部４０での転送処理の負荷が高く、機能拡張部４０での負荷が所定の閾値を超えているエントリであり、使用帯域量が、転送処理制御部５４が保持する閾値を超えていないエントリは、機能拡張部４０での転送処理の負荷が低く、機能拡張部４０での負荷が所定の閾値を超えていないエントリである。
【０２２０】
ステップＳ２１６において、転送処理制御部５４は、転送処理制御テーブル５６ーＢを参照し、転送機能部５６８が「転送部」であるエントリのうち、処理負荷が小さいエントリを検索する（Ｓ２１６）。つまり、転送処理制御部５４は、使用帯域量５８１に格納された使用帯域量が最小のエントリを検索する（Ｓ２１６）。
【０２２１】
最小のエントリを検索するのは、パケット転送処理の負荷が小さいエントリを検索するためである。転送部３０の転送エンジン３１に移管している転送処理のエントリのうち、ＤＰＩ処理などが実行されるパケットのフローが使用する帯域量が小さい、すなわち、ＤＰＩ処理などが実行されるパケットの量が少ないエントリは、転送処理の負荷が小さい。
【０２２２】
したがって、転送部３０に移管している転送処理のうち、転送処理の負荷の小さいエントリを機能拡張部４０の転送処理部５０に戻す。これは、機能拡張部４０の転送処理能力が、転送部３０の転送処理能力よりも低いので、転送処理の負荷が小さいものを優先的に機能拡張部４０の転送処理部５０に戻すためである。
【０２２３】
転送処理の負荷が小さいエントリを転送部３０から機能拡張部４０に移管するものであれば、「最小のエントリ」に限られず、所定の基準内のエントリであればよい。どのエントリを検索するかは、予め管理者がポリシーとして定めていてもよい。
【０２２４】
以上の動作により、複数の転送機能部を持つ通信装置において、それぞれの転送機能部の特性と転送処理の処理状況に応じて、転送処理を行う転送機能部をフロー毎に移動することができる。また、本実施例は、転送機能を実装する異種の機能部（転送部と機能拡張部）の特性と処理状況に応じて、異種の機能部間で効率的な転送処理の分散を行い、安定した転送処理を実現する。また、本実施例は、転送されるパケットの品質の向上を実現する。
【０２２５】
具体的には、性能は高いが登録可能なエントリ数が少ない転送部３０の転送エンジン３１と、性能は低いが登録可能なエントリ数が多い機能拡張部４０の転送処理部５０において、フローの使用帯域量を基に、あるフローのＤＰＩ処理の継続中、つまり、機能拡張部４０での付加機能の処理は実行したままで、転送処理を行う転送機能部を機能拡張部４０の転送処理部５０から転送部３０の転送エンジン３１に変更して、転送部３０と機能拡張部４０間で転送処理の効率的な処理分散を行い、安定した転送処理を実現する。
【０２２６】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。
【０２２７】
また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えばＦＰＧＡのような集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（ＳｏｌｉｄＳｔａｔｅＤｒｉｖｅ）等の記録装置、または、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０２２８】
また、「ａａａテーブル」の表現にて各種情報を説明したが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「ａａａテーブル」を「ａａａ情報」と呼ぶことができる。また、「格納する」の表現にて各種テーブルに各情報を記録することを説明したが、「登録する」または「設定する」と表現されてもよい。
【０２２９】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０２３０】
１  通信装置
１０  基本制御部
２０  動的転送制御部
２１  閾値管理部
２３  動的転送制御テーブル
３０  転送部
３１  転送エンジン
３２  転送テーブル
４０  機能拡張部
５０  転送処理部
５１  転送処理テーブル
５３  付加機能実行部
５４  転送処理制御部
５５  動的転送制御設定部
５６  転送処理制御テーブル
【図１Ａ】
2016163085.tif 000003
【図１Ｂ】
2016163085.tif 000004
【図２】
2016163085.tif 000005
【図３】
2016163085.tif 000006
【図４】
2016163085.tif 000007
【図５】
2016163085.tif 000008
【図６】
2016163085.tif 000009
【図７】
2016163085.tif 000010
【図８】
2016163085.tif 000011
【図９】
2016163085.tif 000012
【図１０Ａ】
2016163085.tif 000013
【図１０Ｂ】
2016163085.tif 000014
【図１１Ａ】
2016163085.tif 000015
【図１１Ｂ】
2016163085.tif 000016
【図１２】
2016163085.tif 000017
【図１３】
2016163085.tif 000018
【図１４】
2016163085.tif 000019
【図１５】
2016163085.tif 000020
【図１６】
2016163085.tif 000021