(57)【要約】【課題】フローベースで通信処理を行うとともに、内部モジュールの変更を抑えることが可能な通信システム、通信方法、通信プログラムおよび通信装置を提供する。【解決手段】通信システムは、パケットを受信する通信ＩＦ部３０と、パケットが属するフローとフローに属するパケットに対する処理とを規定するフロー処理規則に基づいて、通信ＩＦ部３０が受信したパケットを処理する通信処理部２０と、通信処理部２０が処理したパケットを、通信ＩＦ部３０よりも上位レイヤの通信プロトコルに従って処理するプロトコルスタック部７０と、通信処理部２０にて通信ＩＦ部３０から受信されたパケットが、プロトコルスタック部７０にて通信ＩＦ部３０から直接受信されたものとして処理されるように、通信処理部２０に対し透過制御を行う通信制御部１０と、を備える。【選択図】図１４
2015033106.tif 000002
【特許請求の範囲】
【請求項１】
パケットを受信する通信インタフェース部と、
前記パケットが属するフローと前記フローに属するパケットに対する処理とを規定するフロー処理規則に基づいて、前記通信インタフェース部が受信したパケットを処理するフロー処理部と、
前記フロー処理部が処理したパケットを、前記通信インタフェース部よりも上位レイヤの通信プロトコルに従って処理する通信プロトコル処理部と、
前記フロー処理部にて前記通信インタフェース部から受信されたパケットが、前記通信プロトコル処理部にて前記通信インタフェース部から直接受信されたものとして処理されるように、前記フロー処理部に対し透過制御を行う通信制御部と、
を備える通信システム。
【請求項２】
前記通信制御部は、前記フロー処理部にて前記通信インタフェース部から受信されたパケットを、当該通信インタフェース部の識別子とともに前記通信プロトコル処理部に通知するように前記透過制御を行う、
請求項１に記載の通信システム。
【請求項３】
前記通信プロトコル処理部は、前記パケットを前記通信インタフェース部の識別子とともに通知する下位レイヤ受信通知インタフェースを前記フロー処理部に提供し、
前記通信制御部は、前記下位レイヤ受信通知インタフェースを介して、前記受信したパケット及び前記通信インタフェース部の識別子を通知するように前記透過制御を行う、
請求項２に記載の通信システム。
【請求項４】
前記フロー処理部は、前記通信インタフェース部から受信したパケットを当該通信インタフェース部の識別子とともに前記下位レイヤ受信通知インタフェースを通じて前記通信プロトコル処理部に通知する透過処理を実行可能であり、
前記通信制御部は、前記フロー処理規則として前記透過処理を設定することで前記透過制御を行う、
請求項３に記載の通信システム。
【請求項５】
前記通信インタフェース部が受信したパケットを、当該通信インタフェース部の識別子とともに前記通信プロトコル処理部に通知する透過通信インタフェース部を備え、
前記通信制御部は、前記フロー処理部に対し、前記通信インタフェース部から受信されたパケットを、前記透過通信インタフェース部を介して前記通信プロトコル処理部に通知するように前記透過制御を行う、
請求項１に記載の通信システム。
【請求項６】
前記通信インタフェース部と、前記フロー処理部と、前記通信プロトコル処理部と、前記通信制御部とを含む通信装置を備える、
請求項１乃至５のいずれか一項に記載の通信システム。
【請求項７】
前記通信インタフェース部と、前記フロー処理部と、前記通信プロトコル処理部とを含む通信装置と、
前記通信制御部を含む通信制御装置とを備える、
請求項１乃至５のいずれか一項に記載の通信システム。
【請求項８】
パケットが属するフローと前記フローに属するパケットに対する処理とを規定するフロー処理規則に基づいて、通信インタフェース部が受信したパケットを処理し、
前記フロー処理規則に基づいて処理されたパケットを、前記通信インタフェース部よりも上位レイヤの通信プロトコルに従って処理し、
前記受信されたパケットが、前記通信インタフェース部から直接受信されたものとして前記通信プロトコルにて処理されるように、前記フロー処理規則に対し透過制御を行う、
通信方法。
【請求項９】
パケットが属するフローと前記フローに属するパケットに対する処理とを規定するフロー処理規則に基づいて、通信インタフェース部が受信したパケットを処理し、
前記フロー処理規則に基づいて処理されたパケットを、前記通信インタフェース部よりも上位レイヤの通信プロトコルに従って処理し、
前記受信されたパケットが、前記通信インタフェース部から直接受信されたものとして前記通信プロトコルにて処理されるように、前記フロー処理規則に対し透過制御を行う、
通信処理をコンピュータに実行させるための通信プログラム。
【請求項１０】
パケットを受信する通信インタフェース部と、
前記通信インタフェース部よりも上位レイヤの通信プロトコルに従って前記パケットを処理する通信プロトコル処理部と、
前記通信インタフェース部と前記通信プロトコル処理部との間で、前記パケットが属するフローと前記フローに属するパケットに対する処理とを規定するフロー処理規則に基づいて、前記通信インタフェース部が受信したパケットを処理するフロー処理部であって、前記通信インタフェース部から受信されたパケットが、前記通信プロトコル処理部にて前記通信インタフェース部から直接受信されたものとして処理されるように透過処理を行うフロー処理部と、
を備える通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信方法、通信プログラムおよび通信装置に関し、特に、フローに属するパケットに対する処理を規定する処理規則に基づいてフロー制御を行う通信システム、通信方法、通信プログラムおよび通信装置に関する。
【背景技術】
【０００２】
近年、携帯電話等の通信端末の高機能化に伴い、複数の通信インタフェースを備えた通信端末が普及している。そのような通信インタフェースの一例として、３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）（登録商標）等が挙げられる。通信網が通信に利用できるリソースは有限であるため、通信が集中すると輻輳が発生し性能劣化やサービス停止が発生する虞がある。それは特に前述したような無線通信網においてより顕著である。
【０００３】
通信端末が複数の通信インタフェースを備えている場合、通信の内容によってそれらが使用する通信インタフェースを使い分けることにより、通信網の混雑や輻輳を回避したり、よりよい通信品質を実現したりすることが可能となる。
【０００４】
非特許文献１では、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が開示されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御等を行う技術である。フローの識別はパケット単位で行われ、パケットに含まれるアドレスフィールドやポート番号フィールド等が識別のためのキーとして用いられる。オープンフローに基づくネットワークでは、通信制御を行うオープンフローコントローラ（ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ。以下、ＯＦＣと記すこともある。）と、オープンフローコントローラが決定した制御内容に基づきパケットの転送を行うオープンフロースイッチ（ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ。以下、ＯＦＳと記すこともある）とが含まれる。
【０００５】
通信端末内の通信制御に、例えばオープンフローのような、フローベース制御技術を適用することで、通信インタフェースの使い分け(経路制御)を細粒度で行うことができる。さらに、通信制御として、フロー粒度の通信遮断や統計情報取得、高度な通信処理(例えばＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）やＮＡＰＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｉｏｎ）、以降まとめてＮＡＴと記述)等を行うことも可能である。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】“OpenFlow Switch Specification” Version 1.0.0. (Wire Protocol 0x01) ［平成２５年６月５日検索］、インターネット〈URL：http://www.openflowswitch.org/documents/openflow-spec-v1.0.0.pdf〉、２００９年１２月３１日
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１に開示された技術を通信端末に適用する場合、オープンフロースイッチを通信端末に具備させ、当該オープンフロースイッチに通信端末が備える通信インタフェースを収容（接続）することが必要となる。オープンフロースイッチに通信インタフェースを収容するとは、当該通信インタフェース上で通信されるパケットのうち少なくとも受信パケットについて、当該パケットすべてがオープンフロースイッチで受信されその処理の対象となるような、ソフトウェアもしくはハードウェア上の構成および接続関係を構築することを意味する。
【０００８】
一方、通信端末が備える通信インタフェースでのデータ通信を可能な状態とするためには、様々な制御処理が必要である。そのような制御処理の一例としては、認証（たとえばＷＰＡ（ＷｉＦｉ−Ｐｒｏｔｅｃｔｅｄ  Ａｃｃｅｓｓ））、アドレス構成（例えばＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ））、レイヤ間アドレス解決（例えばＡＲＰ（Ａｄｄｒｅｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ））、等が挙げられる。これらの制御処理は、一般的に、通信端末に組み込まれた制御処理プログラムによって実現されることが多い。
【０００９】
また、これらの処理は対象の通信インタフェースに特有の処理であったり特化した処理であったりするため、それらを行う制御処理プログラムは、当該処理のために送受信する制御用通信が通信されるインタフェースとして、制御処理対象の通信インタフェースを使用し（特に送信時）、かつ使用されることを期待する（特に受信時）構成となっていることが多い。
【００１０】
非特許文献１に開示された技術を通信端末に適用し、通信端末の通信インタフェースをオープンフロースイッチに収容する場合、前記制御処理プログラムが当該通信インタフェースを使用した制御用通信に失敗し、その結果当該通信インタフェースでのデータ通信を可能とすることができないことが課題となる。
【００１１】
これは、オープンフロースイッチに通信インタフェースが収容される場合、当該通信インタフェースで受信されたパケットはすべてオープンフロースイッチにより処理されることで、前記制御処理プログラムが制御用通信に係る受信パケットを制御対象の通信インタフェースから受信できないためである。非特許文献１は、パケットに対する処理の一例として、パケットを指定した通信インタフェースに出力すること、および内部通信インタフェース（ＬＯＣＡＬポート）に出力すること、を開示している。また、前記制御処理プログラムによる制御用通信は、フローとして識別できるため、区別して処理（例えば指定した通信インタフェースから出力）するよう取り扱うことができる。しかし、非特許文献１で開示された前述の処理のいずれによっても、前記制御処理プログラムが制御用通信に係る受信パケットを制御対象の通信インタフェースから受信することはできない。オープンフロースイッチがパケットを通信インタフェースに出力した場合、当該パケットは通信端末外に送信されることになり、前記制御処理プログラムは当該パケットを受信できない。オープンフロースイッチがパケットを内部通信インタフェース（ＬＯＣＡＬポート）に出力した場合、前記制御処理プログラムは、当該パケットを受信できるが制御用通信に係るパケットを意図しないインタフェースから受信することとなり、当該パケットを破棄する虞がある。これを回避するには、前記制御処理プログラムを、当該パケットを破棄せず処理するように変更することが考えられる。この場合、前記制御処理プログラムの変更が必要となることが課題である。
【００１２】
そこで、本発明は、フローベースで通信処理を行うとともに、制御モジュールや通信モジュールを含む内部モジュールの変更を抑えることが可能な通信システム、通信方法、通信プログラムおよび通信装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係る通信システムは、パケットを受信する通信インタフェース部と、前記パケットが属するフローと前記フローに属するパケットに対する処理とを規定するフロー処理規則に基づいて、前記通信インタフェース部が受信したパケットを処理するフロー処理部と、前記フロー処理部が処理したパケットを、前記通信インタフェース部よりも上位レイヤの通信プロトコルに従って処理する通信プロトコル処理部と、前記フロー処理部にて前記通信インタフェース部から受信されたパケットが、前記通信プロトコル処理部にて前記通信インタフェース部から直接受信されたものとして処理されるように、前記フロー処理部に対し透過制御を行う通信制御部と、を備えるものである。
【００１４】
本発明に係る通信方法は、パケットが属するフローと前記フローに属するパケットに対する処理とを規定するフロー処理規則に基づいて、通信インタフェース部が受信したパケットを処理し、前記フロー処理規則に基づいて処理されたパケットを、前記通信インタフェース部よりも上位レイヤの通信プロトコルに従って処理し、前記受信されたパケットが、前記通信インタフェース部から直接受信されたものとして前記通信プロトコルにて処理されるように、前記フロー処理規則に対し透過制御を行うものである。
【００１５】
本発明に係る通信プログラムは、パケットが属するフローと前記フローに属するパケットに対する処理とを規定するフロー処理規則に基づいて、通信インタフェース部が受信したパケットを処理し、前記フロー処理規則に基づいて処理されたパケットを、前記通信インタフェース部よりも上位レイヤの通信プロトコルに従って処理し、前記受信されたパケットが、前記通信インタフェース部から直接受信されたものとして前記通信プロトコルにて処理されるように、前記フロー処理規則に対し透過制御を行う通信処理をコンピュータに実行させるためのものである。
【００１６】
本発明に係る通信装置は、パケットを受信する通信インタフェース部と、前記通信インタフェース部よりも上位レイヤの通信プロトコルに従って前記パケットを処理する通信プロトコル処理部と、前記通信インタフェース部と前記通信プロトコル処理部との間で、前記パケットが属するフローと前記フローに属するパケットに対する処理とを規定するフロー処理規則に基づいて、前記通信インタフェース部が受信したパケットを処理するフロー処理部であって、前記通信インタフェース部から受信されたパケットが、前記通信プロトコル処理部にて前記通信インタフェース部から直接受信されたものとして処理されるように透過処理を行うフロー処理部と、を備えるものである。
【発明の効果】
【００１７】
本発明によれば、フローベースで通信処理を行うとともに、内部モジュールの変更を抑えることが可能な通信システム、通信方法、通信プログラムおよび通信装置を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態に係る通信システムの構成の一例を示す説明図である。
【図２】実施形態に係る通信端末１の構成例を示すブロック図である。
【図３】実施形態に係る通信制御部１０の構成例を示すブロック図である。
【図４】実施形態に係る通信処理部２０の構成例を示すブロック図である。
【図５】第１の実施形態に係る通信ネットワーク３−１の構成例を示すブロック図である。
【図６】各装置およびインタフェースで使用されるアドレスの例である。
【図７】第１の実施形態に係る制御ポリシ記憶部１０２が記憶する制御ポリシの例を示す説明図である。
【図８Ａ】第１の実施形態に係る通信システムの動作の例を示すシーケンス図である。
【図８Ｂ】第１の実施形態に係る通信システムの動作の例を示すシーケンス図である。
【図９】第１の実施形態に係る通信制御部１０の動作の例を示すフローチャートである。
【図１０Ａ】第１の実施形態に係る通信システムの動作の例を示すシーケンス図である。
【図１０Ｂ】第１の実施形態に係る通信システムの動作の例を示すシーケンス図である。
【図１１Ａ】実施形態に係るフローテーブル記憶部２０３が記憶するフローエントリの例を示す説明図である。
【図１１Ｂ】実施形態に係るフローテーブル記憶部２０３が記憶するフローエントリの例を示す説明図である。
【図１２】第２の実施形態に係る通信制御部１０の構成例を示すブロック図である。
【図１３Ａ】第２の実施形態に係る通信システムの動作の例を示すシーケンス図である。
【図１３Ｂ】第２の実施形態に係る通信システムの動作の例を示すシーケンス図である。
【図１４】実施形態に係る通信制御部１０の構成例を示すブロック図である。
【図１５】第３の実施形態に係る通信端末１の構成例を示すブロック図である。
【図１６Ａ】第３の実施形態に係る通信システムの動作の例を示すシーケンス図である。
【図１６Ｂ】第３の実施形態に係る通信システムの動作の例を示すシーケンス図である。
【図１７】第３の実施形態に係るフローテーブル記憶部２０３が記憶するフローエントリの例を示す説明図である。
【発明を実施するための形態】
【００１９】
（実施形態の共通部分の概要）
まず、図面を参照して、各実施形態に共通する構成および動作の概要について説明する。
【００２０】
図１は、実施形態に係る通信システムの構成の一例を示す説明図である。図１に例示する通信システムは、通信端末１と、サーバ２と、通信ネットワーク３−１〜３−３と、を備えている。なお、図１に示すこれらの構成要素の数や接続関係は一例であり、本発明はこれに限定されるものではない。
【００２１】
通信端末（第１の通信装置）１は、通信ネットワーク３−１および３−２と同時に接続し通信することができ、それらや通信ネットワーク３−３を介してサーバ２と通信を行う。通信端末１は、例えば、サーバ２のサービスを利用するクライアント端末であるが、その他、サーバ２と通信する任意の通信装置であってもよい。
【００２２】
サーバ（第２の通信装置）２は、通信端末１の通信相手であり、その一例としてＷｅｂサーバ、メールサーバ、ビデオサーバ、等が挙げられる。ただし、本発明のおけるサーバ２はこれらに限定されない。また、各実施形態の説明では通信端末１の通信相手がサーバである例を示したが、本発明はこれに限定されない。通信端末１の通信相手は通信端末１と通信する装置であればよく、その形態はサーバの他、端末、携帯電話、パーソナルコンピュータ、家電、等であってもよい。
【００２３】
通信ネットワーク３−１〜３−２は、通信端末１と接続し、通信端末１と、自ネットワーク内に接続された装置もしくは他のネットワークとの間の通信を中継する。また、通信ネットワーク３−３は、サーバ２と接続し、通信端末１とサーバ２との間の通信を中継する。通信ネットワーク３−１〜３−３は有線ネットワークであっても、無線ネットワークであってもよい。有線ネットワークの一例としてＥｔｈｅｒｎｅｔ（登録商標）、専用線、が挙げられる。無線ネットワークの一例として、３Ｇ、ＬＴＥ、無線ＬＡＮ、ＷｉＭＡＸ、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ−ｐｈｏｎｅ  Ｓｙｓｔｅｍ）、が挙げられる。通信ネットワーク３−１〜３−３は、それぞれ別の種類のネットワークでもよいし、同じ種類のネットワークでもよい。例えば、通信ネットワーク３−１及び３−２の一方を３Ｇとし、他方を無線ＬＡＮとしてもよい。
【００２４】
図２は、実施形態に係る通信端末１の構成の一例を示す構成図である。図２に示すように、実施形態に係る通信端末１は、通信制御部１０と、通信処理部２０と、通信ＩＦ（Ｉｎｔｅｒｆａｃｅ）部３０−１〜３０−２と、通信ＩＦ制御部４０−１〜４０−ｎと、内部通信ＩＦ部５０と、通信利用部６０−１〜６０−ｍと、プロトコルスタック部７０と、を備える。なお、図２は、通信端末１の機能ブロック（処理部もしくはモジュール）の一例であり、各実施形態の動作が実現できれば、その他の構成であってもよい（図３及び図４も同様）。
【００２５】
通信制御部１０は、通信処理部２０による通信処理を制御する。後述のように、通信制御部１０は、制御ポリシに基づいてフローエントリ（処理規則）を作成することで、通信処理部２０の処理を制御する。特に、通信制御部１０は、通信処理部２０に対し透過制御を行う。透過制御（透過処理）とは、通信処理部２０にて通信ＩＦ部３０から受信されたパケットが、プロトコルスタック部７０にて通信ＩＦ部３０から直接受信されたものとして処理されるように制御（処理）することである。実施形態では、通信処理部２０がパケットを受信した通信ＩＦ部３０の識別子をパケットとともにプロトコルスタック部７０へ通知することで、透過制御（透過処理）を実現する。なお、通信制御部１０は、通信端末１の内部で通信処理部２０を制御する制御部として説明するが、通信端末１の外部でネットワーク等を介して通信処理部２０を制御する制御装置としてもよい。
【００２６】
通信処理部２０は、通信制御部１０による制御の下、通信ＩＦ部３０−１〜３０−２や内部通信ＩＦ部５０から送受信される通信（パケット）の処理を行う。後述のように、通信処理部２０は、通信制御部１０から設定されたフローエントリ（処理規則）に基づいて、受信したパケットを処理する。
【００２７】
プロトコルスタック部７０は、通信プロトコル群を処理するモジュールである。プロトコルスタック部７０は、例えば、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルやＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）参照モデルのネットワーク層およびトランスポート層に相当するプロトコル群を処理する。
【００２８】
プロトコルスタック部７０は、階層化された通信プロトコルの一部もしくは全部を処理するプロトコルスタックである。プロトコルスタック部７０は、少なくとも、通信ＩＦ部３０−１〜３０−２よりも上位レイヤの通信プロトコルを処理する。プロトコルスタック部７０は、上位レイヤの通信を行うアプリケーション（上位レイヤアプリケーション）である通信ＩＦ制御部４０−１〜４０−ｎや通信利用部６０−１〜６０−ｍに対し、例えば、ソケット（Ｓｏｃｋｅｔ）インタフェースによる通信機能を提供する。プロトコルスタック部７０は、前記ネットワーク層およびトランスポート層の処理をスキップして通信を行う機能（例えばＲａｗソケット）を提供してよい。プロトコルスタック部７０は、例えば、ソケットインタフェースを通じ、上位レイヤアプリケーションに対し、送受信する通信を特定のアドレス、ポート、通信インタフェースに固定する（限定する、バインドする）機能（バインド機能）を提供してよい。当該バインド機能は、ソケットごとに動作してもよい。プロトコルスタック部７０は、例えば、ソケットインタフェースを通じ、上位レイヤアプリケーションが、通信に使用されたアドレス、ポート、通信インタフェースを取得する機能を提供してよい。
【００２９】
プロトコルスタック部７０は、下位レイヤ（通信ＩＦ部３０−１〜３０−２、内部通信ＩＦ部５０、通信処理部２０）に対し、受信パケットの入力を受け付けるインタフェース（下位レイヤ受信通知インタフェース７１）を提供する。当該下位レイヤ受信通知インタフェース７１は、受信パケットのデータとともに、通信インタフェース（通信ＩＦ部３０−１〜３０−２、および内部通信ＩＦ部５０のいずれか）の識別子（受信通信インタフェース識別子）を受け付ける。プロトコルスタック部７０は、下位レイヤ受信通知インタフェース７１で通知された受信パケットは当該受信パケットとともに通知された識別子を持つ通信インタフェースで受信されたものとみなして当該受信パケットを処理する。当該識別子情報は、前記バインド機能の実現に使用されてもよい。
【００３０】
通信ＩＦ部３０−１〜３０−２は、それぞれ通信ネットワーク３−１および３−２に接続し、パケットの送受信を行う。通信ＩＦ部３０−１〜３０−２は、それぞれ接続する通信ネットワーク３−１および３−２の通信プロトコル（例えば、レイヤ１）に準拠した物理インタフェースである。通信ＩＦ部３０−１〜３０−２は、通信ネットワーク３−１および３−２からパケットを受信した際、パケットデータとともに自身の通信インタフェース識別子を通信処理部２０に通知する。
【００３１】
通信ＩＦ制御部４０−１〜４０−ｎは、通信ＩＦ部３０−１〜３０−２上でのデータ通信を可能とするための、制御用通信およびその処理を行う。通信ＩＦ制御部４０−１〜４０−ｎは、プロトコルスタック部７０を介し、制御用通信を制御対象の通信インタフェース上で行う。例えば、通信ＩＦ制御部４０−１〜４０−ｎは、通信ＩＦ部３０−１に関する制御用通信のパケット送信には通信ＩＦ部３０−１を用いる。また、例えば、通信ＩＦ制御部４０−１〜４０−ｎは、通信ＩＦ部３０−１に関する制御用通信のパケットの受信を、通信ＩＦ部３０−１からの受信の場合のみ受け付ける。
【００３２】
通信ＩＦ制御部４０−１〜４０−ｎによる制御用通信およびその処理の例として、ＷＰＡやＷＰＡ２（ＷｉＦｉ−Ｐｒｏｔｅｃｔｅｄ  Ａｃｃｅｓｓ２）等の無線ＬＡＮ認証処理（通信インタフェースが無線ＬＡＮインタフェースの場合）、通信インタフェースで使用するＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス等の構成を行うＤＨＣＰ処理、が挙げられる。
【００３３】
内部通信ＩＦ部５０は、通信端末１の内部の機能（処理部）間を接続するための内部インタフェースであり、通信端末１外の装置との物理的な接続を伴わない、仮想的な通信インタフェースである。内部通信ＩＦ部５０は、それを利用し通信を行う、通信利用部６０−１〜６０−ｍやプロトコルスタック部７０に対し、一般的な物理通信ＩＦと同様に振る舞う。ただし、内部通信ＩＦ部５０に送受信されたパケットは物理ネットワークに送受信されることなく、通信処理部２０への入出力として扱われる。内部通信ＩＦ部５０は、通信処理部２０から出力されたパケットを、下位レイヤ受信通知インタフェース７１を通じプロトコルスタック部７０に受信パケットとして通知する。その通知の際、内部通信ＩＦ部５０は、受信通信インタフェース識別子として自身の通信インタフェース識別子を、パケットのデータとともにプロトコルスタック部７０に通知する。
【００３４】
通信利用部６０−１〜６０−ｍは、通信端末１内において通信を行うモジュールである。例えば、通信利用部６０−１〜６０−ｍは、通信処理部２０を介して、外部のサーバ２にアクセスし、サーバ２のサービスを利用するクライアント処理部である。通信利用部６０−１〜６０−ｍの一例として、Ｗｅｂブラウザ、メールクライアント、ビデオストリーミングアプリケーション、ＳＮＳ（Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋ  Ｓｅｒｖｉｃｅ）アプリケーション等が挙げられる。ただし、本発明のおける通信利用部６０−１〜６０−ｍはこれらに限定されない。本実施形態では、通信利用部６０−１〜６０−ｍが行う通信には内部通信ＩＦ部５０が使われるものとする。これは、通信利用部６０−１〜６０−ｍによるソケットインタフェースを通じたプロトコルスタック部７０への指示、もしくはプロトコルスタック部７０への事前設定（例えば経路）によって実現できる。
【００３５】
例えば、実施形態に係る通信システムは、少なくとも図１４に示すように構成されていてもよい。すなわち、通信システムは、通信処理部２０と、通信ＩＦ部３０と、プロトコルスタック部７０と、通信制御部１０とを備えている。例えば、通信装置が通信処理部２０と、通信ＩＦ部３０と、プロトコルスタック部７０と、通信制御部１０とを含んでいてもよいし、通信装置が通信処理部２０と、通信ＩＦ部３０と、プロトコルスタック部７０とを含み、通信装置の外部の通信制御装置が通信制御部１０を含んでいてもよい。通信ＩＦ部３０は、パケットを受信するインタフェースである。通信処理部（フロー処理部）２０は、パケットが属するフローとフローに属するパケットに対する処理とを規定するフロー処理規則に基づいて、通信ＩＦ部３０が受信したパケットを処理する。プロトコルスタック部（通信プロトコル処理部）７０は、通信処理部２０が処理したパケットを、通信ＩＦ部３０よりも上位レイヤの通信プロトコルに従って処理する。通信制御部１０は、通信処理部２０にて通信ＩＦ部３０から受信されたパケットが、プロトコルスタック部７０にて通信ＩＦ部３０から直接受信されたものとして処理されるように、通信処理部２０に対し透過制御を行う。これにより、プロトコルスタック部７０が、通信処理部２０によるフロー制御の影響を受けることなく、プロトコル処理を行うことができるため、フローベースで通信処理を行うとともに、プロトコルスタック部７０などの内部モジュールの変更を抑えることが可能となる。
【００３６】
図３は、実施形態に係る通信端末１の通信制御部１０の構成の一例を示す構成図である。図３に示すように、通信制御部１０は、制御処理部１０１と、制御ポリシ記憶部１０２と、を備えている。
【００３７】
制御処理部１０１は、制御ポリシ記憶部１０２に記憶された情報を利用し、通信処理部２０による通信処理を制御する。
【００３８】
制御処理部１０１は、通信処理部２０の制御チャネル処理部２０１との間で制御用通信（制御チャネル）を行う。制御処理部１０１は、制御チャネルを通じて通信処理部２０から処理が必要なパケットの通知（パケット通知）を受け取ると、制御ポリシ記憶部１０２に記憶された制御ポリシと当該パケットの照合を行う。制御処理部１０１は、当該パケットの照合に成功し、適用する制御ポリシの決定に成功した場合、当該パケットが属する通信（フロー）に適用する処理を当該制御ポリシから決定する。制御処理部１０１は、当該通信に適用する処理を決定した後、当該処理を表す０もしくは１以上のフローエントリ（処理規則）を生成し、制御チャネルを通じて通信処理部２０に当該フローエントリを設定する。
【００３９】
また、制御処理部１０１は、対象となる通信（フロー、例えば通信ＩＦ制御部４０−１〜４０−ｎによる制御用通信）に関し、通信処理部２０が受信したパケットが、通信処理部２０が当該パケットを受信した通信インタフェースの識別子とともに下位レイヤ受信通知インタフェース７１を通じてプロトコルスタック部７０に通知されるよう制御（透過制御）する。
【００４０】
制御ポリシ記憶部１０２は、発生した通信に適用する処理を制御処理部１０１が決定するための情報である制御ポリシのリストを記憶する。制御ポリシは、少なくとも、当該制御ポリシの適用対象である通信（トラフィック、フロー）を指定するトラフィック条件と、当該制御ポリシが適用される際に実行すべき処理と、から構成される。制御ポリシは、優先度を含んでもよい。なお、制御ポリシ記憶部１０２は、通信制御部１０内部の記憶部として説明するが、通信端末１内部のその他の部分の記憶部であってもよいし、通信端末１の外部の記憶装置であってもよい。
【００４１】
制御ポリシのトラフィック条件は、例えば、以下の項目を含む。一つの制御ポリシに含まれるトラフィック条件は一つでも複数でもよく、それらはＡＮＤで結合（ＡＮＤ条件）されたりＯＲ（ＯＲ条件）で結合されたりしてよい。また、トラフィック条件は完全一致でも部分一致でもよい。
・送信元ＩＰアドレス
・送信先ＩＰアドレス
・プロトコルタイプ
・送信元ポート番号
・送信先ポート番号
・入力インタフェース
・入力インタフェース種別
・ＱｏＳ（Ｑｕｏｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）
・ＶＬＡＮ  ＩＤ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）
・ドメイン名
・アプリケーション
【００４２】
制御ポリシの処理は、例えば、以下の項目を含む。一つの制御ポリシに含まれる処理は一つでも複数でもよい。
・指定されたＩＦを使用して通信する。
・指定されたＩＦ群の中のいずれかを使用して通信する（ＩＦ間に優先度を設けてもよい）。
・指定されたＩＦ群のすべてを使用して通信する。
・パケット中の指定されたフィールドを指定された値に変更する。
・指定されたサーバもしくはモジュールに転送する。
・指定されたフローエントリを通信処理部２０に設定する。
・破棄する。
【００４３】
なお、前述した制御ポリシのトラフィック条件および処理は一例であり、本発明はこれらに限定されない。また、制御ポリシ記憶部１０２が記憶する制御ポリシは予め与えられておいてもよいし、制御ポリシサーバ（図示されない）等の通信端末１以外の装置から受信されてもよい。
【００４４】
図４は、実施形態に係る通信端末１の通信処理部２０の構成の一例を示す構成図である。図４に示すように、通信処理部２０は、制御チャネル処理部２０１と、パケット処理部２０２と、フローテーブル記憶部２０３と、を備えている。
【００４５】
制御チャネル処理部２０１は、通信制御部１０との間で制御用通信（制御チャネル）を行う。また、制御チャネル処理部２０１は、対応するフローエントリが存在しないパケットの通知をパケット処理部２０２から受けると、制御チャネルを用いてそのパケットを通信制御部１０に通知する（パケット通知）。パケット通知には、当該パケットの全部もしくは一部、および当該パケットが受信されたＩＦの情報が含まれる。
【００４６】
さらに、制御チャネル処理部２０１は、制御チャネルを介して通信制御１０からフローエントリを追加、変更、または、削除するよう指示されると、指示された内容に基づきフローテーブル記憶部２０３に記憶されているフローテーブルを更新する。また、制御チャネル処理部２０１は、制御チャネルを介して通信制御１０からパケットを出力するよう指示されると、指示された内容に基づきパケットを出力するようパケット処理部２０２に指示する。
【００４７】
フローテーブル記憶部２０３は、処理規則（フローエントリ）を含むフローテーブルを記憶する。処理規則（フローエントリ）は、制御チャネル処理部２０１によってフローテーブル記憶部２０３に記録される。フローテーブル記憶部２０３は、通信処理部２０内部の記憶部として説明するが、通信端末１内部のその他の部分の記憶部であってもよいし、通信端末１の外部の記憶装置であってもよい。
【００４８】
パケット処理部２０２は、通信ＩＦ部３０−１〜３０−２や内部通信ＩＦ部５０を介して他の装置やモジュール（以降まとめてエンティティと記載）と接続され、接続されたエンティティとの間でパケットの送受信を行う。パケット処理部２０２は、他の装置からパケットを受信すると、受信したパケットに対応するフローエントリをフローテーブル記憶部２０３に記憶されているフローテーブル内から検索する。受信したパケットに対応するフローエントリがフローテーブル内に見つかった場合、パケット処理部２０２は、そのフローエントリのアクションに従って処理を行う。一方、受信したパケットに対応するフローエントリがフローテーブルに見つからなかった場合、パケット処理部２０２は、受信したパケットのフローエントリが存在しない旨を制御チャネル処理部２０１に通知する。
【００４９】
さらに、パケット処理部２０２は、他のエンティティと通信を行うためのポートを複数備え、各ポートは、それぞれ異なる通信ＩＦ部３０−１〜３０−２および内部通信ＩＦ部５０と接続される。なお、各ポートは、ポート識別子により識別される。
【００５０】
フローエントリのアクションに基づき、パケット処理部２０２が行う処理には、以下に例示する処理が挙げられる。また、パケット処理部２０２が行う処理は、１つに限定されず、０であっても、２つ以上であってもよい。ただし、フローエントリのアクションに指定される処理は、以下の処理に限定されない。
・指定されたポートからパケットを出力する。
・パケットの送信先ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスを指定された値に変更する。
・パケットの送信元ＭＡＣアドレスを指定された値に変更する。
・パケットの送信先ＩＰアドレスを指定された値に変更する。
・パケットの送信元ＩＰアドレスを指定された値に変更する。
・パケットの送信先ポート番号を指定された値に変更する。
・パケットの送信元ポート番号を指定された値に変更する。
・パケットにＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）タグを追加する。
・パケットのＶＬＡＮタグを削除する。
・パケットのＶＬＡＮタグを変更する。
・パケットを破棄する。
【００５１】
制御チャネル処理部２０１およびパケット処理部２０２は、一例として、プログラムに従って動作するコンピュータのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって実現することができる。また、制御チャネル処理部２０１およびパケット処理部２０２は、それぞれ、専用のハードウェアで実現されていてもよい。
【００５２】
（実施形態１）
次に、図面を参照して第１の実施形態に係る通信システムについて説明する。ここでは以下を仮定して第１の実施形態の説明を行う。ただし、本発明はこれらに限定されるものではない。
−  通信ネットワーク３−１は無線ＬＡＮネットワークであり、通信ＩＦ部３０−１は無線ＬＡＮインタフェースであり、通信ＩＦ部３０−１は通信ネットワーク３−１に接続する。
−  通信ネットワーク３−２は３Ｇネットワークであり、通信ＩＦ部３０−２は３Ｇインタフェースであり、通信ＩＦ部３０−２は通信ネットワーク３−２に接続する。
【００５３】
第１の実施形態における通信処理部２０のパケット処理部２０２は、前述した処理に加え、フローエントリのアクションとして透過アクション（透過処理）を処理する。透過アクションの処理では、パケット処理部２０２は、下位レイヤ受信通知インタフェース７１を通じ処理対象のパケットをプロトコルスタック部７０に受信パケットとして通知する。その通知の際、パケット処理部２０２は、受信通信インタフェース識別子として、パケット処理部２０２が当該パケットを受信する際に使用された通信インタフェースの識別子を、パケットのデータとともにプロトコルスタック部７０に通知する。
【００５４】
図５は、第１の実施形態における通信ネットワーク３−１の構成の一例を示す構成図である。図５に示すように、本実施形態における通信ネットワーク３−１は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）３−１−１と、無線ＬＡＮ基地局３−１−２と、ルータ３−１−３と、ＤＨＣＰサーバ３−１−４と、を備えている。
【００５５】
無線ＬＡＮ基地局３−１−２は、無線ＬＡＮの基地局（アクセスポイント）であり、通信端末１の通信ＩＦ部３０−１と無線ＬＡＮ方式により接続し、通信ＩＦ部３０−１とＬＡＮ３−１−１との間の通信を中継する。
【００５６】
ルータ３−１−３は、ＬＡＮ３−１−１と通信ネットワーク３−３との間で、ＴＣＰ／ＩＰプロトコルの通信を中継するルータである。
【００５７】
ＤＨＣＰサーバ３−１−４は、ＤＨＣＰプロトコルにおけるサーバ機能を有し、ＤＨＣＰクライアントからの要求に対し当該クライアントが使用してよいＩＰアドレス、経路、ゲートウェイのアドレス、ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）サーバのアドレス、等を応答として返す。例えば、これらの一部または全部のアドレスをクライアント（通信端末）に設定することを、アドレスを構成するという。
【００５８】
第１の実施形態におけるプロトコルスタック部７０は、ＴＣＰ／ＩＰスタックである。第１の実施形態におけるプロトコルスタック部７０は、特に、ＩＰおよびＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）およびＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）およびＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）およびＡＲＰを処理する。ただし、本発明はこれらに限定されない。
【００５９】
プロトコルスタック部７０は、通信インタフェース（通信ＩＦ部３０−１〜３０−２および内部通信ＩＦ部５０）毎に、当該通信インタフェースで使用するＩＰアドレスを保持する。当該ＩＰアドレスは、プロトコルスタック部７０に予め与えられてもよいし、動的に取得されたり更新されたりしてもよい。
【００６０】
プロトコルスタック部７０は、送信するＩＰパケットの転送先を決定するための情報である経路表を保持する。プロトコルスタック部７０が保持する経路表は、例えば、送信先ＩＰアドレスと、当該送信先ＩＰアドレスを持つＩＰパケットの転送先装置のＩＰアドレスおよび転送に使用する通信インタフェースの識別子またはそれらのいずれか、とを含む。送信先ＩＰアドレスは、ネットワークアドレスおよびサブネットアドレスであってもよい。当該経路表は、プロトコルスタック部７０に予め与えられてもよいし、動的に取得されたり更新されたりしてもよい。
【００６１】
第１の実施形態におけるプロトコルスタック部７０には、予め経路表に以下の経路（デフォルト経路）が設定されているものとする。
−  送信先  ０．０．０．０／０、転送先  内部通信ＩＦ部５０
【００６２】
第１の実施形態における各装置のＭＡＣアドレスおよびＩＰアドレスの一例を図６に示す。この例では、図６に示すように、通信ＩＦ部３０−１はＤＨＣＰによりアドレスが割り当てられ、通信ＩＦ部３０−２はＰＰＰ（Point to Point Protocol）によりアドレスが割り当てられる。また、その他の通信インタフェース及び装置には、図６のアドレスが予め設定されている。なお、本実施形態では、ＤＨＣＰにより通信ＩＦ部３０−１にアドレスを割り当てる例について説明するが、本発明を、ＰＰＰにより通信ＩＦ部３０−２にアドレスを割り当てる例に適用してもよい。すなわち、ＰＰＰパケットのフローに対し透過制御を行ってもよい。
【００６３】
第１の実施形態における通信ＩＦ制御部４０−１は、通信ＩＦ部３０−１を対象としてＤＨＣＰクライアントの処理を行う。通信ＩＦ制御部４０−１は、プロトコルスタック部７０に対しソケット（例えばＲａｗソケットもしくはＵＤＰソケット）を作成する要求を行い、かつ当該ソケットを通信ＩＦ部３０−１にバインドする要求を出す。通信ＩＦ制御部４０−１は、ＤＨＣＰに係る通信を当該ソケットを使用して行う。
【００６４】
第１の実施形態における制御ポリシ記憶部１０２が記憶する制御ポリシのリストの一例を図７に示す。図７に示すように、第１の実施形態における制御ポリシは、優先度と、トラフィック条件と、実行すべき処理とを関連付けた規則である。トラフィック条件は、ポリシを適用するトラフィックを識別するための条件である。また、第１の実施形態における制御ポリシは優先度を含み、数値が小さいものが高優先であるとする。ここでは、説明の都合上、制御ポリシの優先度をその識別子として使用する。例えば、図７の上から一つ目の制御ポリシを参照する際、制御ポリシ１と記述する。本実施形態の説明において、トラフィック条件は特記がない場合ＡＮＤ結合（ＡＮＤ条件）とする。特に、本実施形態では、図７に示すように、制御ポリシの処理として、使用する通信インタフェースを指定でき、さらに、トラフィックに対し透過制御するために「透過させる」を指定できる。トラフィック条件には、通信インタフェースやポート番号を指定することができ、これにより、特定の通信インタフェースを介す必要のある通信、すなわち、通信インタフェースに特有の（特化した）通信に対して、透過制御を行うことができる。
【００６５】
［動作の説明］
次に、本実施形態に係る通信システムの動作について、図面を参照しつつ説明する。
【００６６】
なお、本実施形態において、ドメイン名からのＩＰアドレスの解決はＤＮＳ等の一般的な技術によって行われるものとし、その説明を省略する。また、ＴＣＰによる通信では、Ａｃｋ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）送信や、データ欠落に伴うデータパケットの再送が通常発生するが、特記する場合を除きそれらの図示および説明は省略する。
【００６７】
＜通信ＩＦ制御部４０−１がＩＰアドレス情報を取得する場合の動作＞
通信ＩＦ制御部４０−１が、ＤＨＣＰに基づき、通信端末１が通信ＩＦ部３０−１で使用すべきＩＰアドレス等の情報を取得する際の動作について説明する。通信ＩＦ制御部４０−１が行う通信の受信パケットは、図７に示す制御ポリシ２によって処理されることが期待される。
【００６８】
なお、以下の説明は、次の条件が成り立っていることを前提とする。
−  フローテーブル記憶部２０３にはフローエントリが記憶されていない。
【００６９】
図８Ａ及び図８Ｂは、本実施形態における通信システムの動作の例を示すシーケンス図である。
【００７０】
図８Ａ及び図８Ｂに示すように、まず、通信ＩＦ制御部４０−１は、ＤＨＣＰに係る通信のためのソケット（ＤＨＣＰ用ソケット）の作成要求および当該ソケットの通信ＩＦ部３０−１へのバインド要求をプロトコルスタック部７０に対し行い、プロトコルスタック部７０はその要求に応じる（ステップＳ１００）。以後、通信ＩＦ制御部４０−１は作成されたＤＨＣＰ用ソケットを通じてパケットの送受信を行う。
【００７１】
続いて、通信ＩＦ制御部４０−１は、ＤＨＣＰサーバを探索するため、ＤＨＣＰ  Ｄｉｓｃｏｖｅｒパケットを送信する（ステップＳ１０１）。当該パケットは、ＵＤＰ／ＩＰパケットであり、その送信元ＩＰアドレスは０．０．０．０に、送信先ＩＰアドレスは２５５．２５５．２５５．２５５（ブロードキャストＩＰアドレス）に、送信元ポート番号は６８に、送信先ポート番号は６７に設定される。
【００７２】
続いて、プロトコルスタック部７０は、ステップＳ１０１でＤＨＣＰ用ソケットから送信されたパケット（ＤＨＣＰ  Ｄｉｓｃｏｖｅｒパケット）の送信処理を行う（ステップＳ１０２）。ここでは、ＤＨＣＰ用ソケットは通信ＩＦ部３０−１にバインドされていること、パケットの送信先ＩＰアドレスがブロードキャストＩＰアドレスであることから、プロトコルスタック部７０はパケットの送信先ＭＡＣアドレスをブロードキャストＭＡＣアドレスとして、当該パケットの送信要求を通信ＩＦ部３０−１に出力する。なお、ＤＨＣＰ用ソケットは通信ＩＦ部３０−１にバインドされているため、ＤＨＣＰ用ソケットに送信されたパケットは、通信処理部２０を介さずに、直接、通信ＩＦ部３０−１に出力される。
【００７３】
続いて、通信ＩＦ部３０−１は、送信元ＭＡＣアドレスを通信ＩＦ部３０−１のＭＡＣアドレスとして、送信要求されたパケット（ＤＨＣＰ  Ｄｉｓｃｏｖｅｒパケット）を無線ＬＡＮ基地局３−１−２に送信する（ステップＳ１０３）。以降、当該パケットは、無線ＬＡＮ基地局３−１−２、ＬＡＮ３−１−１の順に転送され、ＤＨＣＰサーバ３−１−４で受信される。
【００７４】
続いて、ＤＨＣＰサーバ３−１−４は、受信したＤＨＣＰ  Ｄｉｓｃｏｖｅｒパケットに対する応答としてＤＨＣＰ  Ｏｆｆｅｒパケットを送信する（ステップＳ１０４）。本例では、ＤＨＣＰサーバ３−１−４は、通信ＩＦ制御部４０−１の要求に対し、ＩＰアドレスとして１９２．１６８．１．１を割り当てるものとする。当該ＤＨＣＰ  Ｏｆｆｅｒパケットは、ＵＤＰ／ＩＰパケットであり、以下のように構成される。
‐送信元ＭＡＣアドレス：０２：００：０３：０１：０４：０１
‐送信先ＭＡＣアドレス：０２：００：００：００：００：０１
‐送信元ＩＰアドレス：１９２．１６８．１．２５３
‐送信先ＩＰアドレス：１９２．１５８．１．１（割り当て予定のＩＰアドレス）
‐送信元ポート番号：６７
‐送信先ポート番号：６８
‐ＤＨＣＰ  Ｙｏｕｒ  ＩＰ  Ａｄｄｒｅｓｓフィールド：１９２．１６８．１．１
‐ＤＨＣＰ  Ｓｕｂｎｅｔ  Ｍａｓｋフィールド：２５５．２５５．２５５．０
‐ＤＨＣＰ  Ｓｅｒｖｅｒ  Ｉｄｅｎｔｉｆｉｅｒフィールド：１９２．１６８．１．２５３
【００７５】
当該ＤＨＣＰ  Ｏｆｆｅｒパケットは、ＬＡＮ３−１−１、無線ＬＡＮ基地局３−１−２の順で転送され、通信ＩＦ部３０−１で受信される。
【００７６】
続いて、通信ＩＦ部３０−１は、受信したパケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）を通信処理部２０に送信する（ステップＳ１０５）。なお、通信ＩＦ部３０−１で受信したパケットに対し、通信処理部２０でフローに応じた処理を適用するため、全てのパケットが通信処理部２０に出力される。
【００７７】
続いて、通信処理部２０のパケット処理部２０２は当該パケットを受信し、フローテーブル記憶部２０３を参照し、当該パケットに対応するフローエントリの有無を確認する（ステップＳ１０６）。ステップＳ１０６の時点において、フローテーブル記憶部２０３は空であるため、受信したパケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）に対応するフローエントリは見つからない。
【００７８】
続いて、通信処理部２０のパケット処理部２０２は、受信したパケットと一致するフローエントリが無いため、当該パケットを制御チャネル処理部２０１に通知し、制御チャネル処理部２０１は対応するパケット通知を通信制御部１０に送信する（ステップＳ１０７）。
【００７９】
続いて、通信制御部１０の制御処理部１０１はパケット通知を受信し、通知されたパケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）に対する処理を決定する（ステップＳ１０８）。その動作の詳細は後述する。本処理において、受信したＤＨＣＰ  Ｏｆｆｅｒパケットに対応する図７の制御ポリシ２に関し、後述するステップＳ１３５が実行され、図１１Ａの項番１に示すフローエントリが生成される。
【００８０】
続いて、通信制御部１０の制御処理部１０１は、ステップＳ１０８において生成されたフローエントリを通信処理部２０に設定すると同時に、対応するパケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）に対し当該フローエントリに基づく処理を適用するよう指示する（ステップＳ１０９）。
【００８１】
続いて、通信処理部２０の制御チャネル処理部２０１は、通知（設定）されたフローエントリ（図１１Ａの項番１）をフローテーブル記憶部２０３に記憶させる（ステップＳ１１０）。
【００８２】
続いて、通信処理部２０のパケット処理部２０２は、ステップＳ１０９で設定されたフローエントリに基づきパケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）を処理する（ステップＳ１１１）。当該パケットが図１１Ａの項番１のフローエントリにマッチするため、当該フローエントリのアクションを実行する。具体的には、パケット処理部２０２は、当該パケットに対し透過アクションの処理を実行する。すなわち、パケット処理部２０２は、当該パケットと、受信通信インタフェース識別子として通信ＩＦ部３０−１の通信インタフェース識別子とを、下位レイヤ受信通知インタフェース７１を通じプロトコルスタック部７０に通知する。
【００８３】
続いて、プロトコルスタック部７０は、受信したパケットの受信処理を行い、その結果ＤＨＣＰ用ソケットを通じ通信ＩＦ制御部４０−１に当該パケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）の受信を通知する（ステップＳ１１２）。プロトコルスタック部７０は、当該パケットの受信処理の一部として、通知された受信通信インタフェース識別子の確認を行う。当該ＤＨＣＰ用ソケットは通信ＩＦ部３０−１にバインドされているため、プロトコルスタック部７０は、通知された受信通信インタフェース識別子がバインド先である通信ＩＦ部３０−１の識別子である場合にのみ、当該パケットを当該ＤＨＣＰ用ソケットでの受信パケットとしてみなす。本例の場合、通信処理部２０から通知された受信通信インタフェース識別子は通信ＩＦ部３０−１の識別子であるため、プロトコルスタック部７０は、当該パケットを当該ＤＨＣＰ用ソケットの受信パケットとしてみなす。
【００８４】
続いて、ＤＨＣＰ  Ｏｆｆｅｒパケットを受信した通信ＩＦ制御部４０−１は、アドレスの割り当てを要求するため、ＤＨＣＰ  Ｒｅｑｕｅｓｔパケットを送信する（ステップＳ１１３）。当該パケットは、ＵＤＰ／ＩＰパケットであり、以下のように構成される。
‐送信元ＩＰアドレス：０．０．０．０
‐送信先ＩＰアドレス：２５５．２５５．２５５．２５５
‐送信元ポート番号：６８
‐送信先ポート番号：６７
‐ＤＨＣＰ  Ｒｅｑｕｅｓｔｅｄ  ＩＰ  Ａｄｄｒｅｓｓフィールド：１９２．１６８．１．１
‐ＤＨＣＰ  Ｓｅｒｖｅｒ  Ｉｄｅｎｔｉｆｉｅｒフィールド：１９２．１６８．１．２５３
【００８５】
続いて、プロトコルスタック部７０は、ステップＳ１１４でＤＨＣＰ用ソケットから送信されたパケット（ＤＨＣＰ  Ｒｅｑｕｅｓｔパケット）の送信処理を行う（ステップＳ１１４）。ステップＳ１０２と同様、プロトコルスタック部７０はパケットの送信先ＭＡＣアドレスをブロードキャストＭＡＣアドレスとして、当該パケットの送信要求を通信ＩＦ部３０−１に出す。
【００８６】
続いて、通信ＩＦ部３０−１は、送信要求されたパケット（ＤＨＣＰ  Ｒｅｑｕｅｓｔパケット）を無線ＬＡＮ基地局３−１−２に送信する（ステップＳ１１５）。以降、当該パケットは、無線ＬＡＮ基地局３−１−２、ＬＡＮ３−１−１の順に転送され、ＤＨＣＰサーバ３−１−４で受信される。
【００８７】
続いて、ＤＨＣＰサーバ３−１−４は、受信したＤＨＣＰ  Ｒｅｑｕｅｓｔパケットに対する応答としてＤＨＣＰ  Ａｃｋパケットを送信する（ステップＳ１１６）。当該パケットは、ＵＤＰ／ＩＰパケットであり、以下のように構成される。
‐送信元ＭＡＣアドレス：０２：００：０３：０１：０４：０１
‐送信先ＭＡＣアドレス：０２：００：００：００：００：０１
‐送信元ＩＰアドレス：１９２．１６８．１．２５３
‐送信先ＩＰアドレス：１９２．１５８．１．１
‐送信元ポート番号：６７
‐送信先ポート番号：６８
‐ＤＨＣＰ  Ｙｏｕｒ  ＩＰ  Ａｄｄｒｅｓｓフィールド：１９２．１６８．１．１
‐ＤＨＣＰ  Ｓｕｂｎｅｔ  Ｍａｓｋフィールド：２５５．２５５．２５５．０
‐ＤＨＣＰ  Ｓｅｒｖｅｒ  Ｉｄｅｎｔｉｆｉｅｒフィールド：１９２．１６８．１．２５３
‐ＤＨＣＰ  Ｒｏｕｔｅｒフィールド：１９２．１６８．１．２５４
【００８８】
当該ＤＨＣＰ  Ａｃｋパケットは、ＬＡＮ３−１−１、無線ＬＡＮ基地局３−１−２の順で転送され、通信ＩＦ部３０−１で受信される。
【００８９】
続いて、通信ＩＦ部３０−１は、受信したパケット（ＤＨＣＰ  Ａｃｋパケット）を通信処理部２０に送信する（ステップＳ１１７）。
【００９０】
続いて、通信処理部２０のパケット処理部２０２は、当該パケットを受信し、フローテーブル記憶部２０３を参照し、当該パケットに対応するフローエントリの有無を確認する（ステップＳ１１８）。受信したパケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）とフローエントリの条件を比較し、ここでは、ステップＳ１１０において記憶されたフローエントリが発見される（図１１Ａの項番１）。
【００９１】
続いて、通信処理部２０のパケット処理部２０２は、ステップＳ１１８で発見したフローエントリに基づきパケット（ＤＨＣＰ  Ａｃｋパケット）を処理する（ステップＳ１１９）。当該パケットが図１１Ａの項番１のフローエントリにマッチするため、当該フローエントリのアクションを実行する。具体的には、パケット処理部２０２は、当該パケットに対し透過アクションの処理を実行する。すなわち、パケット処理部２０２は、当該パケットと、受信通信インタフェース識別子として通信ＩＦ部３０−１の通信インタフェース識別子とを、下位レイヤ受信通知インタフェース７１を通じプロトコルスタック部７０に通知する。
【００９２】
続いて、プロトコルスタック部７０は、受信したパケットの受信処理を行い、その結果ＤＨＣＰ用ソケットを通じ通信ＩＦ制御部４０−１に当該パケット（ＤＨＣＰ  Ａｃｋパケット）の受信を通知する（ステップＳ１２０）。ステップＳ１１２と同様に、通知された通信インタフェース識別子に対応するＤＨＣＰ用ソケットの受信パケットとして処理する。
【００９３】
続いて、通信ＩＦ制御部４０−１は、ＤＨＣＰ  Ａｃｋパケットで通知された情報を記憶するとともに、通信ＩＦ部３０−１で使用するＩＰアドレスとしてＤＨＣＰサーバ３−１−４から割り当てられたＩＰアドレス（本例では１９２．１６８．１．１）をプロトコルスタック部７０に設定する（ステップＳ１２１）。
【００９４】
ステップＳ１２１の後、通信ＩＦ制御部４０−１はプロトコルスタック部７０に以下の経路を設定してよい。
‐送信先  １９２．１６８．１．０／２４、転送先  通信ＩＦ部３０−１
‐送信先  ０．０．０．０／０、転送先  通信ＩＦ部３０−１、１９２．１６８．１．２５４
【００９５】
なお、ここで設定されるデフォルト経路は、プロトコルスタック部７０に予め設定してあるデフォルト経路（転送先 内部通信ＩＦ部５０）より優先度を低く設定されてもよい。
【００９６】
また、プロトコルスタック部７０は、通信ＩＦ制御部４０−１から通信ＩＦ部３０−１を用いたデフォルト経路設定を受けた後、デフォルトゲートウェイ（ルータ３−１−３）のＩＰアドレス（１９２．１６８．１．２５４）に対するレイヤ間アドレス解決（ＡＲＰ）を行ってよい。このとき、プロトコルスタック部７０は、１９２．１６８．１．２５４（ルータ３−１−３）をターゲットとしてＡＲＰ要求パケットを通信ＩＦ部３０−１から送信する。ルータ３−１−３はＡＲＰ応答パケットを送信し、当該ＡＲＰ応答パケットは通信ＩＦ部３０−１で受信される。以降、当該ＡＲＰ応答パケットはステップＳ１０５〜ステップＳ１１１と同様の手順によって処理される。なお、この時パケットに適合し使用される制御ポリシは図７の制御ポリシ３となり、図１１Ａの項番２のフローエントリが生成される。ＤＨＣＰ  Ｏｆｆｅｒパケット、ＤＨＣＰ  Ａｃｋパケットと同様に、当該ＡＲＰ応答パケットは透過アクションによりプロトコルスタック部７０で受信され、レイヤ間アドレス解決処理が完了する。
【００９７】
次に、図９を用いて、図８ＡのステップＳ１０８における通信制御部１０の制御処理部１０１の動作を説明する。
【００９８】
図９に示すように、まず、制御処理部１０１は、制御ポリシ記憶部１０２に記憶されている制御ポリシのうち最高優先度のものを選択する（ステップＳ１３１）。図７の例では、制御ポリシ１が選択される。
【００９９】
続いて、制御処理部１０１は、選択した制御ポリシとパケット通知で通知されたパケットが属する通信（処理対象通信）との照合を行う（ステップＳ１３２）。当該照合は、選択した制御ポリシのトラフィック条件を、処理対象通信が満たすか否かを判定することで行われる。図７に示すように、各トラフィック条件に応じて、入力インタフェースや、ポート番号、ＩＰアドレス、フレームタイプ、プロトコルタイプ等を判定する。
【０１００】
ステップＳ１３２において、選択した制御ポリシに処理対象通信が適合しない（条件を満たさない）と判定された場合、制御処理部１０１は、制御ポリシ記憶部１０２に記憶されている制御ポリシに、本処理において処理対象通信との照合を確認していないものがあるかどうか確認する（ステップＳ１３３）。この時、未確認の制御ポリシが存在しない場合、制御処理部１０１は、処理対象通信に適用すべき制御ポリシは存在しない、と判定し、その処理を終了する。
【０１０１】
また、ステップＳ１３３において、未確認の制御ポリシが存在する場合、制御処理部１０１は、未確認の制御ポリシの内、優先度が最も高いものを選択する（ステップＳ１３４）。その後、ステップＳ１３２以降の処理を繰り返す。
【０１０２】
また、ステップＳ１３２において、選択した制御ポリシに処理対象通信が適合する（条件を満たす）と判定された場合、制御処理部１０１は、選択した制御ポリシで指定された処理を実行するためのフローエントリを作成する（ステップＳ１３５）。
【０１０３】
制御処理部１０１は、指定された処理が“透過させる”であった場合、通信端末１が受信するパケットについて、“透過アクションを実行”というアクションを持つフローエントリを作成する。例えば、図８ＡのステップＳ１０８では、図７の制御ポリシ２が選択されたとき、制御ポリシ２のトラフィック条件である入力インタフェース、送信元ポート番号及び送信先ポート番号が、受信パケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）と一致し、制御ポリシ２の処理は“透過させる”である。したがって、該当するＤＨＣＰサーバから受信するＤＨＣＰパケットのフローに対し、透過アクションを実行するフローエントリを作成する。具体的には、図１１Ａの項番１のような、マッチ条件に、当該フローを特定するように、入力ポート（通信インタフェース）、プロトコルタイプ（ＵＤＰ）、送信先及び送信元ＩＰアドレス、送信先及び送信元ポート番号を指定し、アクションに、“透過アクションを実行”を指定したフローエントリを作成する。また、受信パケットがＡＲＰパケットの場合、制御ポリシ３のトラフィック条件である入力インタフェース及びフレームタイプが一致し、該当する処理は“透過させる”であるため、受信するＡＲＰパケットフローに対し、透過アクションを実行するフローエントリを作成する。具体的には、図１１Ａの項番２のような、マッチ条件に、当該フローを特定するように、入力ポート、フレームタイプ（ＡＲＰ）を指定し、アクションに、“透過アクションを実行”を指定したフローエントリを作成する。
【０１０４】
制御処理部１０１は、指定された処理が“指定されたＩＦを使用して通信”であった場合、例えば、通信端末１が送信するパケットについて、“送信元ＩＰアドレスを指定されたＩＦのＩＰアドレスに変更した後、指定されたＩＦから出力する”というアクションを持つフローエントリを作成し、通信端末１が受信するパケットについて、“送信先ＩＰアドレスを通信端末１が送信するパケットの当初の送信元ＩＰアドレスに変更した後、内部通信ＩＦ部５０から出力する”というアクションを持つフローエントリを作成する。また、制御処理部１０１は、前記通信端末１が送信するパケットに対するフローエントリのアクションに、“送信元ＭＡＣアドレスを指定されたＩＦのＭＡＣアドレスに変更”および“送信先ＭＡＣアドレスを指定されたＩＦが接続するＬＡＮ上のデフォルトゲートウェイのＭＡＣアドレスに変更”を、“指定されたＩＦから出力する”の前に含めてもよい。また、制御処理部１０１は、前記通信端末１が受信するパケットに対するフローエントリのアクションに、“送信先ＭＡＣアドレスを内部通信ＩＦ部５０のＭＡＣアドレスに変更”を、“内部通信ＩＦ部５０から出力する”の前に含めてもよい。制御処理部１０１は、これらのアクションの生成に係る情報を、プロトコルスタック部７０、通信ＩＦ部３０−１〜３０−２、内部通信ＩＦ部５０、通信ＩＦ制御部４０−１〜４０−ｎ、および通信端末１のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、図示されない）から取得してもよい。
【０１０５】
制御処理部１０１は、通信に使用するＩＦが複数指定されていた場合、優先度の高いものから順に指定されたＩＦが利用可能かを調べ、最初に利用可能であったＩＦに関し、前述のようなフローエントリを作成してよい。制御処理部１０１は、ＩＦか利用可能か否かを、例えば、当該ＩＦが存在するか否か、リンクアップしているか否か、ＩＰアドレスが構成されているか否か、等によって判断してよい。
【０１０６】
制御処理部１０１は、指定された処理が“破棄する”であった場合、例えば、アクションが空のフローエントリを作成する。
【０１０７】
＜通信利用部６０−１がＨＴＴＰ通信を行った場合の動作＞
通信利用部６０−１が、サーバ２とＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）通信を行った場合の動作について説明する。本通信は、図７に示す制御ポリシ１１によって処理されることが期待される。
【０１０８】
なお、以下の説明は、次の条件が成り立っていることを前提とする。
−  フローテーブル記憶部２０３にはフローエントリが記憶されていない。
【０１０９】
図１０Ａ及び図１０Ｂは、本実施形態における通信システムの動作の例を示すシーケンス図である。なお、図１０Ａ及び図１０Ｂにおいて、通信ネットワーク３−３の図示は省略する。
【０１１０】
図１０Ａ及び図１０Ｂに示すように、まず、通信利用部６０−１は、ＨＴＴＰに係る通信のためのソケット（ＨＴＴＰ用ソケット）の作成要求をプロトコルスタック部７０に対し行い、プロトコルスタック部７０はその要求に応じる（ステップＳ１４０）。以後、通信利用部６０−１は作成されたＨＴＴＰ用ソケットを通じてパケットの送受信を行う。
【０１１１】
続いて、通信利用部６０−１は、ＨＴＴＰデータ取得前にＨＴＴＰ用のＴＣＰ接続を行うため、サーバ２のＩＰアドレスである１０．０．０．２のＴＣＰ８０番ポートに対しＴＣＰ接続要求（ＣＯＮＮＥＣＴ要求）を発行する（ステップＳ１４１）。
【０１１２】
続いて、プロトコルスタック部７０は、ＴＣＰ接続要求を受けＴＣＰ接続確立用のパケット（ＴＣＰ  ＳＹＮパケット（ＴＣＰ接続要求パケット））を作成し、送信する（ステップＳ１４２）。この時、プロトコルスタック部７０は、経路表を参照し、デフォルト経路を使用することを決定し、当該パケットの転送先として内部通信ＩＦ部５０を選択する。当該パケットの送信元ＩＰアドレスは１９２．１６８．２５４．１（内部通信ＩＦ部５０に設定されたＩＰアドレス）に、送信先ＩＰアドレスは１０．０．０．２に、送信先ポート番号は８０に設定される。また、当該パケットの送信元ポート番号は１００００であるとする。
【０１１３】
続いて、内部通信ＩＦ部５０は、当該パケット（ＴＣＰ接続要求パケット）を受信し、通信処理部２０に通知する（ステップＳ１４３）。
【０１１４】
続いて、通信処理部２０のパケット処理部２０２は、当該パケットを受信し、フローテーブル記憶部２０３を参照し、当該パケットに対応するフローエントリの有無を確認する（ステップＳ１４４）。ステップＳ１４４の時点において、フローテーブル記憶部２０３は空であるため、受信したパケット（ＴＣＰ接続要求パケット）に対応するフローエントリは見つからない。
【０１１５】
続いて、通信処理部２０のパケット処理部２０２は、受信したパケットと一致するフローエントリが無いため、当該パケットを制御チャネル処理部２０１に通知し、制御チャネル処理部２０１は対応するパケット通知を通信制御部１０に送信する（ステップＳ１４５）。
【０１１６】
続いて、通信制御部１０の制御処理部１０１はパケット通知を受信し、通知されたパケット（ＴＣＰ接続要求パケット）に対する処理を決定する（ステップＳ１４６）。その動作は図９に示したフローチャートに基づき行われる。本例の場合、ＴＣＰ接続要求パケットは図７の制御ポリシ１１に適合し、図９のステップＳ１３５により図１１Ａの項番３および４に示すフローエントリが生成される。すなわち、制御処理部１０１は、制御ポリシ１１の処理である無線ＬＡＮを使用して通信を行うため、内部通信ＩＦ部５０から受信したパケットを通信ＩＦ部３０−１（無線ＬＡＮ）を介してサーバ２へ転送するフローエントリ（図１１Ａの項番３）と、通信ＩＦ部３０−１（無線ＬＡＮ）を介してサーバ２から受信したパケットを内部通信ＩＦ部５０へ転送するフローエントリ（図１１Ａの項番４）とを作成する。
【０１１７】
続いて、通信制御部１０の制御処理部１０１は、ステップＳ１４６において生成されたフローエントリを通信処理部２０に設定すると同時に、対応するＴＣＰ接続要求パケットに対し当該フローエントリに基づく処理を適用するよう指示する（ステップＳ１４７）。
【０１１８】
続いて、通信処理部２０の制御チャネル処理部２０１は、通知（設定）されたフローエントリ（図１１Ａの項番３および４）をフローテーブル記憶部２０３に記憶させる（ステップＳ１４８）。
【０１１９】
続いて、通信処理部２０のパケット処理部２０２は、ステップＳ１４８で設定されたフローエントリに基づきパケット（ＴＣＰ接続要求パケット）を処理する（ステップＳ１４９）。当該パケットが図１１Ａの項番３のフローエントリにマッチするため、当該フローエントリのアクションを実行する。具体的には、パケット処理部２０２は、パケットの送信先ＭＡＣアドレスを０２：００：０３：０１：０３：０１に変更し、送信元ＭＡＣアドレスを０２：００：００：００：００：０１に変更し、送信元ＩＰアドレスを１９２．１６８．１．１に変更した後、通信ＩＦ部３０−１に出力する。
【０１２０】
続いて、通信ＩＦ部３０−１は、送信要求されたパケット（ＴＣＰ接続要求パケット）を送信する（ステップＳ１５０）。以降、当該パケットは、通信ネットワーク３−１、通信ネットワーク３−３の順に転送され、サーバ２で受信される。
【０１２１】
続いて、サーバ２は、受信したＴＣＰ接続要求パケットに対するＴＣＰ接続応答パケットを送信する（ステップＳ１５１）。この時、当該ＴＣＰ接続応答パケットの送信元ＩＰアドレスは１０．０．０．２、送信元ポート番号は８０、送信先ＩＰアドレスは１９２．１６８．１．１、送信先ポート番号は１００００となる。当該パケットは、通信ネットワーク３−３、通信ネットワーク３−１の順で転送され、通信ＩＦ部３０−１で受信される。
【０１２２】
続いて、通信ＩＦ部３０−１は、受信したパケット（ＴＣＰ接続応答パケット）を通信処理部２０に送信する（ステップＳ１５２）。
【０１２３】
続いて、通信処理部２０のパケット処理部２０２は、当該ＴＣＰ接続応答パケットを受信し、フローテーブル記憶部２０３を参照し、当該パケットに対応するフローエントリの有無を確認する（ステップＳ１５３）。受信したＴＣＰ接続応答パケットとフローエントリの条件を比較し、ここでは、ステップＳ１４８において記憶されたフローエントリが発見される（図１１Ａの項番４）。
【０１２４】
続いて、通信処理部２０のパケット処理部２０２は、ステップＳ１５３で発見したフローエントリに基づきパケット（ＴＣＰ接続応答パケット）を処理する（ステップＳ１５４）。当該パケットが図１１Ａの項番４のフローエントリにマッチするため、当該フローエントリのアクションを実行する。具体的には、パケット処理部２０２は、パケットの送信先ＭＡＣアドレスを０２：００：００：００：００：５０に変更し、送信先ＩＰアドレスを１９２．１６８．２５４．１に変更した後、内部通信ＩＦ部５０に出力する。
【０１２５】
続いて、内部通信ＩＦ部５０は、当該パケット（ＴＣＰ接続応答パケット）を受信し、プロトコルスタック部７０に通知する（ステップＳ１５５）。続いて、プロトコルスタック部７０は、受信したパケットの受信処理を行い、その結果ＨＴＴＰ用ソケットを通じ通信利用部６０−１にＴＣＰ接続の接続完了を通知する（ステップＳ１５６）。
【０１２６】
続いて、通信利用部６０−１は、接続完了したＴＣＰ接続（コネクション）を介してＨＴＴＰデータを取得するため、ＨＴＴＰ用ソケットを用いてＨＴＴＰリクエストデータを送信する（ステップＳ１５７）。
【０１２７】
続いて、プロトコルスタック部７０は、データ送信要求（ＨＴＴＰリクエスト）を受け、ＨＴＴＰリクエストを含むＴＣＰパケットを作成し送信する（ステップＳ１５８）。プロトコルスタック部７０は、ステップＳ１４２と同様に、経路表を参照し、ＴＣＰパケットを内部通信ＩＦ部５０へ送信する。
【０１２８】
続いて、内部通信ＩＦ部５０は、当該ＴＣＰパケット（ＨＴＴＰリクエスト）を受信し、通信処理部２０に通知する（ステップＳ１５９）。
【０１２９】
続いて、通信処理部２０のパケット処理部２０２は、当該ＴＣＰパケットを受信し、フローテーブル記憶部２０３を参照し、当該パケットに対応するフローエントリの有無を確認する（ステップＳ１６０）。受信したＴＣＰパケット（ＨＴＴＰリクエスト）とフローエントリの条件を比較し、ここでは、ステップＳ１４８で記憶された、図１１Ａの項番３のフローエントリが発見される。
【０１３０】
続いて、通信処理部２０のパケット処理部２０２は、ステップＳ１６０で発見したフローエントリに基づきＴＣＰパケット（ＨＴＴＰリクエスト）を処理する（ステップＳ１６１）。当該パケットが図１１Ａの項番３のフローエントリにマッチするため、当該フローエントリのアクションを実行する。具体的には、パケット処理部２０２は、パケットの送信先ＭＡＣアドレスを０２：００：０３：０１：０３：０１に変更し、送信元ＭＡＣアドレスを０２：００：００：００：００：０１に変更し、送信元ＩＰアドレスを１９２．１６８．１．１に変更した後、通信ＩＦ部３０−１に出力する。
【０１３１】
続いて、通信ＩＦ部３０−１は、送信要求されたＴＣＰパケット（ＨＴＴＰリクエスト）を送信する（ステップＳ１６２）。以降、当該パケットは、通信ネットワーク３−１、通信ネットワーク３−３の順に転送され、サーバ２で受信される。
【０１３２】
以降、サーバ２は受信したパケットに対する応答パケット（ＨＴＴＰレスポンス）を送信するが、その処理は、ステップＳ１５１〜ステップＳ１５６で説明した、ＴＣＰ接続応答パケットの処理と同様であるため、その説明を省略する。
【０１３３】
なお、ルータ３−１−３が通信ＩＦ部３０−１のＩＰアドレス１９２．１６８．１．１に対しレイヤ間アドレス解決（ＡＲＰ）を行った場合、ルータ３−１−３が送信するＡＲＰ要求パケットは図７の制御ポリシ３に適合する。そのため、当該パケットに対し透過アクション（図１１Ａの項番２）が実行され、当該パケットはプロトコルスタック部７０に通知される。プロトコルスタック部７０は当該ＡＲＰ要求パケットに対し、通信ＩＦ部３０−１のＭＡＣアドレスを含むＡＲＰ応答パケットを作成し、通信ＩＦ部３０−１から送信する。
【０１３４】
また、ここでは通信利用部６０−１がサーバ２に対しＨＴＴＰ通信を行った場合に、その通信が図７の制御ポリシ１１に従い通信ＩＦ部３０−１を使用して行われる例を示した。通信利用部６０−１が１０．０．１．２のＩＰアドレスを持つサーバ２’（図示されない）に対しＨＴＴＰ通信を行った場合も、ステップＳ１４０〜ステップＳ１６２と同様に処理される。ただし、この場合、適合する制御ポリシは図７の制御ポリシ１２となり、その結果当該通信は通信ＩＦ部３０−２を使用して行われる。その時生成されるフローエントリの例を、図１１Ｂの項番５および６に示す（通信利用部６０−１は自側ポート番号として１０００１を使用したとする）。すなわち、この場合、制御ポリシ１２の処理である３Ｇを使用して通信を行うため、内部通信ＩＦ部５０から受信したパケットを通信ＩＦ部３０−２（３Ｇ）を介してサーバ２’へ転送するフローエントリ（図１１Ｂの項番５）と、通信ＩＦ部３０−２（３Ｇ）を介してサーバ２’から受信したパケットを内部通信ＩＦ部５０へ転送するフローエントリ（図１１Ｂの項番６）とが作成される。
【０１３５】
以上説明したように、第１の実施形態によれば、通信制御部１０は、制御ポリシに従って通信処理部２０が受信したパケットおよび当該パケットが属するフローの処理内容を決定し、通信処理部２０に対応するフローエントリ（処理規則）を設定する。通信処理部２０は、パケットと、受信通信インタフェース識別子として自身が当該パケットを受信した通信インタフェースの識別子とを下位レイヤ受信通知インタフェース７１を通じプロトコルスタック部７０に通知する、透過アクション機能を備える。さらに、通信制御部１０は、通信処理部２０が備える透過アクション機能を利用し、対象となる通信（フロー、例えば通信ＩＦ制御部４０−１〜４０−ｎによる制御用通信）に関し、通信処理部２０が受信したパケットが、通信処理部２０が当該パケットを受信した通信インタフェースの識別子とともに下位レイヤ受信通知インタフェース７１を通じてプロトコルスタック部７０に通知されるよう制御（透過制御）する。
【０１３６】
よって、本実施形態によれば、通信インタフェースに特化した処理を行う制御モジュールもしくは通信モジュール（例えば通信ＩＦ制御部４０−１〜４０−ｎ、プロトコルスタック部７０）を含む内部モジュールに変更を加えることなく、通信制御部１０および通信処理部２０によるフローベース通信処理機能を通信端末に具備させることができる。
【０１３７】
すなわち、本実施形態によれば、通信端末においてフローベースの通信処理を行うことができ、通信網利用を効率化できる。さらに、フローベース通信処理機能の追加に際し、通信端末に含まれる通信インタフェースに特化した処理を行う制御モジュールもしくは通信モジュールへの変更を不要とし、もしくは、変更の程度を軽減することができる。これにより、フローベースの通信処理を備える通信端末の普及を容易にしたり、その導入コストを軽減したりすることができる。さらに、その結果、通信網内でのフローベースの通信処理を備える通信端末の普及率を向上でき、通信網利用をさらに効率化できる。
【０１３８】
なお、本実施形態に係る通信システムの説明では、通信制御部１０の制御処理部１０１が制御ポリシ記憶部１０２に記憶された制御ポリシに基づいて透過アクションを含むフローエントリを通信処理部２０に設定する例を示したが、本発明はこれに限定されるものではない。他の例として、通信制御部１０の制御処理部１０１は一定のタイミング（例えば通信端末１起動時）において、予め透過アクションを含むフローエントリを通信処理部２０に設定することとしてもよい。さらに他の例として、通信処理部２０は一定のタイミング（例えば通信端末１起動時）において、予め透過アクションを含むフローエントリをフローテーブル記憶部２０３に記憶させることとしてもよい。そのような事前処理の対象となるフローの情報は、制御処理部１０１もしくは通信処理部２０に予め与えられてよい。
【０１３９】
また、本実施形態に係る通信システムの説明では、通信ＩＦ制御部４０−１〜４０−ｎによる通信ＩＦ部３０−１〜３０−２の制御（アドレス構成）に係る通信に対し透過制御を適用する例を示したが、本発明はこれに限定されるものではない。他の例として、通信利用部６０−１〜６０−ｍによる通信であっても、当該通信が通信制御部１０および通信処理部２０による通信制御の対象とすべきでない場合、もしく通信制御の対象とするために通信利用部６０−１〜６０−ｍに変更が必要となる場合、当該通信に透過制御を適用してもよい。そのような通信の例として、ＶＰＮ通信やトンネリング通信、ブロードキャスト通信、マルチキャスト通信、が挙げられる。
【０１４０】
また、本実施形態に係る通信システムの説明では、通信制御部１０は制御ポリシのトラフィック条件としてポート番号や入力インタフェース、プロトコルタイプ等を用いる例を示したが、本発明はこれらに限定されるものではない。他の例として、通信制御部１０は通信を行っているアプリケーションやモジュール（これらには通信ＩＦ制御部４０−１〜４０−ｎおよび通信利用部６０−１〜６０−ｍが含まれる）の識別子や名前を制御ポリシのトラフィック条件に含んでもよい。これは、例えば、制御処理部１０１が通信処理部２０からパケット通知を受けた際、当該パケット通知に含まれる対象パケットに係る情報（アドレス、ポート番号等）と、プロトコルスタック部７０もしくは通信端末１のＯＳ（図示されない）が保持している情報とから、当該パケットの通信を行っているアプリケーションやモジュールを特定・識別し、トラフィック条件と比較することで実現できる。
【０１４１】
（実施形態２）
次に、図面を参照して第２の実施形態について説明する。第１の実施形態に係る通信システムでは、予め制御ポリシ記憶部１０２に記憶された制御ポリシを用いて通信制御部１０が透過制御を行う例を示したが、本発明はこれに限定されるものではない。
【０１４２】
本実施形態に係る通信システムでは、通信制御部１０は透過制御対象監視部１０３を備え、動的に透過制御の対象の通信を検知し、透過制御する。これにより、制御ポリシを事前に用意する必要性が軽減され、より柔軟な通信制御を実現することができる。
【０１４３】
以下、本実施形態に係る通信システムの構成および動作について、第１の実施形態に係る通信システムの構成および動作と異なる部分を説明する。
【０１４４】
図１２は、本実施形態による通信制御部１０の構成の一例を示す構成図である。本実施形態による通信制御部１０は、図３を用いて説明した通信制御部１０の構成要素に加え、透過制御対象監視部１０３を備える。なお、透過制御対象監視部１０３は、通信制御部１０内部に設けてもよいし、通信端末１内部のその他の部分に設けてもよい。
【０１４５】
透過制御対象監視部１０３は、通信端末１内の透過制御対象となる通信の発生もしくは当該通信の予兆となる事象を監視し、当該通信を透過制御するための制御ポリシを動的に生成する。透過制御対象監視部１０３が生成する当該制御ポリシの処理には“透過させる”が設定される。なお、透過制御対象監視部１０３は、生成した制御ポリシを制御ポリシ記憶部１０２に記憶させてもよいし、制御処理部１０１に制御ポリシの設定を指示してもよい。
【０１４６】
以下に、透過制御対象監視部１０３による監視方法の例を示す。ただし、本発明はこれらに限定されるものではない。
【０１４７】
＜制御モジュールおよび通信モジュールの死活監視＞
透過制御対象監視部１０３は、通信端末１内での制御モジュールおよび通信モジュール（例えば通信ＩＦ制御部４０−１〜４０−ｎ、通信利用部６０−１〜６０−ｍ、プロトコルスタック部７０）の動作状態を監視し、動作が開始された場合に対応する透過制御のための制御ポリシを設定してよい。透過制御対象監視部１０３は、例えば、動作状態の監視に通信端末１のＯＳ（図示されない）が管理しているプロセス情報を利用してよい。動作が開始された場合に透過制御を開始する対象の制御モジュールおよび通信モジュールの情報（例えば、識別子、名称、種別、保持する権限）は、透過制御対象監視部１０３に予め与えられてよい。また、各制御モジュールおよび通信モジュールのための制御ポリシのトラフィック条件は、透過制御対象監視部１０３に予め与えられてよい。透過制御対象監視部１０３は、動的に設定した透過制御のための制御ポリシの対象となる制御モジュールおよび通信モジュールが動作を終了した場合、当該制御ポリシを削除してもよい。透過制御対象監視部１０３は、制御モジュールおよび通信モジュールの動作開始、終了のみでなく、その他の状態変化（例えばインストール、アンインストール、サスペンド、サスペンドからの復帰）を契機として制御ポリシの設定・削除を行ってよい。
【０１４８】
＜ソケットの監視＞
透過制御対象監視部１０３は、通信ＩＦ制御部４０−１〜４０−ｎおよび通信利用部６０−１〜６０−ｍからの要求に基づきプロトコルスタック部７０により生成されるソケットを監視し、その生成・消滅を契機として対応する透過制御のための制御ポリシを設定・削除してよい。透過制御対象監視部１０３は、当該監視のため、定期的にプロトコルスタック部７０からソケットの情報を取得してもよい。また、プロトコルスタック部７０にソケットの情報が更新された際に通知する機構を設け、透過制御対象監視部１０３は当該機構を利用してソケットの情報を取得してもよい。生成された場合に透過制御を開始する対象のソケットの条件（例えば、アドレス、ポート番号、利用する通信インタフェース、通信種別、ソケット種別）は、透過制御対象監視部１０３に予め与えられてよい。透過制御対象監視部１０３は、前記ソケットについてバインド機能が利用されている場合にのみ、制御ポリシの生成・削除を行ってもよい。透過制御対象監視部１０３は、生成する制御ポリシのトラフィック条件を、当該制御ポリシ作成の契機となったソケットの情報（例えば、アドレス、ポート番号、利用する通信インタフェース）から構成してもよい。
【０１４９】
＜経路表の監視＞
透過制御対象監視部１０３は、プロトコルスタック部７０が保持する経路表を監視し、経路の生成・消滅を契機として対応する透過制御のための制御ポリシを設定・削除してよい。透過制御対象監視部１０３は、生成する制御ポリシのトラフィック条件を、当該制御ポリシ作成の契機となった経路の情報（例えば、送信先、転送先）から構成してもよい。例えば、プロトコルスタック部７０に、送信先が１９２．１６８．１．０／２４、転送先が通信ＩＦ部３０−１、である経路表が設定された場合、透過制御対象監視部１０３は、トラフィック条件が、“入力インタフェースが通信ＩＦ部３０−１かつ送信元ＩＰアドレスが１９２．１６８．１．０／２４”であり、処理が“透過させる”である制御ポリシを生成してよい。
【０１５０】
本実施形態におけるプロトコルスタック部７０は、自身が保持および管理する経路表およびソケットのリストに変化は発生した場合、当該変化を他の構成要素に通知する機構を備える。
【０１５１】
次に、本実施形態による通信システムの動作について、図面を参照しつつ説明する。ここでは、本実施形態の動作の一例として、透過制御対象監視部１０３が、プロトコルスタック部７０の経路表の変化に基づき、透過制御のための制御ポリシを設定する例を説明する。
【０１５２】
図１３Ａ及び図１３Ｂは、本実施形態における通信システムの動作の例を示すシーケンス図である。
【０１５３】
図１３Ａ及び図１３Ｂに示すように、透過制御対象監視部１０３は、プロトコルスタック部７０に対し経路表が変化した場合その通知を行うよう要求（経路変更通知要求）する（ステップＳ２０１）。なお、経路変更通知要求の出力は省略してもよい。例えば、プロトコルスタック部７０が常に経路変更通知を出力するようにしてもよいし、透過制御対象監視部１０３が定期的に経路表を参照し経路の変更を検出してもよい。
【０１５４】
続いて、通信ＩＦ制御部４０−１は、ＩＰアドレス情報を取得する（ステップＳ１００〜Ｓ１２１）。この時の動作は、図８Ａ及び図８Ｂを用いて説明した、第１の実施形態における動作と同一である。なお、ステップＳ１２１において、通信ＩＦ制御部４０−１はプロトコルスタック部７０に以下の経路を設定するものとする。
‐送信先  １９２．１６８．１．０／２４、転送先  通信ＩＦ部３０−１
【０１５５】
続いて、プロトコルスタック部７０は、ステップＳ１２１による経路表変更を透過制御対象監視部１０３に通知（経路変更通知）する（ステップＳ２０２）。
【０１５６】
続いて、透過制御対象監視部１０３は、ステップＳ１２１において追加された経路について、以下の透過制御のための制御ポリシを生成し、制御ポリシ記憶部１０２に記憶させる（ステップＳ２０３）。透過制御対象監視部１０３は、上記の追加された経路をトラフィック条件とし、処理を“透過させる”とする制御ポリシを生成する。また、ここでは、一例として制御ポリシの優先度を２０とする。生成する制御ポリシの優先度は、予め固定の値でもよいし、検出した経路表（モジュールの死活状態、ソケットの状態）の変化に応じた値でもよい。以降、下記制御ポリシを制御ポリシ２０として参照する。
−優先度：２０
−トラフィック条件
・入力インタフェース：通信ＩＦ部３０−１（無線ＬＡＮ  ＩＦ）
・送信元ＩＰアドレス：１０２．１６８．１．０／２４
−処理：透過させる
【０１５７】
続いて、通信ＩＦ制御部４０−１は、例えばＤＨＣＰサーバ３−１−４の死活監視を目的として、ＤＨＣＰサーバ３−１−４に対しＩＣＭＰ  Ｅｃｈｏ  Ｒｅｑｕｅｓｔを送信し、ＤＨＣＰサーバ３−１−４はそれに応答する（ステップＳ２０４）。
【０１５８】
この時の本実施形態における通信システムの動作（ステップＳ１０１ａ〜ステップＳ１１２ａ）は、図８Ａ及び図８Ｂを用いて説明した、第１の実施形態のおける記号ａを除いたステップの動作と、以下の違いを除いて、同様である。
・通信ＩＦ制御部４０−１は、ＤＨＣＰ用ソケットではなく、ＩＣＭＰに係る通信のためのソケット（ＩＣＭＰ用ソケット）を作成する。
・通信ＩＦ制御部４０−１は、ＤＨＣＰ  Ｄｉｓｃｏｖｅｒパケットではなく、ＩＣＭＰ  Ｅｃｈｏ  Ｒｅｑｕｅｓｔパケットを送信する。
・ＤＨＣＰサーバ３−１−４は、ＩＣＭＰ  Ｅｃｈｏ  Ｒｅｑｕｅｓｔパケットを受信した後、ＤＨＣＰ  Ｏｆｆｅｒパケットではなく、ＩＣＭＰ  Ｅｃｈｏ  Ｒｅｐｌｙパケットを送信する。
・ステップＳ１０８ａにおいてパケットに適合する制御ポリシは上記の制御ポリシ２０である。
・ステップＳ１０８ａにおいて生成されるフローエントリは図１１Ｂの項番７に示すものとなる（制御ポリシ２０にしたがい、ＤＨＣＰサーバから受信するＩＣＭＰパケットのフローに対し、透過アクションを実行するフローエントリを作成する）。
【０１５９】
以上説明したように、第２の実施形態によれば、通信制御部１０は透過制御対象監視部１０３を備え、透過制御対象監視部１０３は動的に透過制御の対象の通信を検知し、透過制御のための制御ポリシを生成する。よって、本実施形態によれば、第１の実施形態による効果に加え、制御ポリシの管理を簡易化できる。
【０１６０】
なお、本実施形態に係る通信システムの説明では、透過制御対象監視部１０３は動的に透過制御の対象の通信を検知し、透過制御のための制御ポリシを生成する例を示したが、本発明はこれに限定されるものではない。他の例として、透過制御対象監視部１０３は、動的に透過制御の対象の通信を検知した後、透過制御のためのフローエントリを生成し、制御処理部１０１を介して生成したフローエントリを通信処理部２０に設定してもよい。例えば、透過制御対象監視部１０３は、ステップＳ２０３において、制御ポリシを生成する代わりに、追加された経路のフローに対し透過アクションを実行するように、以下のフローエントリを生成し、通信処理部２０に設定してもよい。
−マッチ条件
・入力ポート：通信ＩＦ部３０−１
・プロトコルタイプ：ＩＣＭＰ
・送信先ＩＰアドレス：１９２．１６８．１．１
・送信元ＩＰアドレス：１９２．１６８．１．２５４／２４
−アクション
・透過アクションを実行
【０１６１】
その他、経路表の経路の一部が変更された場合、経路の変更に応じて、該当する制御ポリシやフローエントリを変更してもよいし、経路表の経路の一部が削除された場合、経路の削除に応じて、該当する制御ポリシやフローエントリを削除してもよい。
【０１６２】
（実施形態３） 
次に、図面を参照して第３の実施形態について説明する。第１の実施形態に係る通信システムでは、通信処理部２０が透過アクション機能を備え、通信制御部１０は、通信処理部２０が備える透過アクション機能を利用し透過制御する例を示したが、本発明はこれに限定されるものではない。
【０１６３】
本実施形態に係る通信システムでは、通信端末１は透過通信ＩＦ部８０を備え、通信制御部１０は透過制御の対象となるパケットを透過通信ＩＦ部８０に出力するフローエントリを通信処理部２０に設定することで、透過制御を行う。これにより、通信処理部２０に透過アクション機能を備えることなく、第１の実施形態と同様の効果を得ることができる。
【０１６４】
以下、本実施形態に係る通信システムの構成および動作について、第１の実施形態に係る通信システムの構成および動作と異なる部分を説明する。
【０１６５】
図１５は、本実施形態による通信端末１の構成の一例を示す構成図である。本実施形態による通信端末１は、図２を用いて説明した通信端末１の構成要素に加え、透過通信ＩＦ部８０を備える。
【０１６６】
透過通信ＩＦ部８０は、通信端末１外の装置との物理的な接続を伴わない、仮想的な通信インタフェースであり、透過通信ＩＦ部８０に送信されたパケットを下位レイヤ受信通知インタフェース７１を通じプロトコルスタック部７０に受信パケットとして通知する。その通知の際、透過通信ＩＦ部８０は、受信通信インタフェース識別子として、事前に設定された、通信ＩＦ部３０−１および３０−２のいずれかの識別子(透過元通信インタフェース識別子)を、パケットのデータとともにプロトコルスタック部７０に通知する。なお、以降の本実施形態の説明では、透過通信ＩＦ部８０には通信ＩＦ部３０−１の識別子が透過元通信インタフェース識別子として設定されているものとする。
【０１６７】
本実施形態における通信処理部２０のパケット処理部２０２は、透過アクションの機能を備えなくてもよい。
【０１６８】
本実施形態における通信制御部１０の制御処理部１０１は、透過制御の手段として、通信処理部２０の透過アクション機能の代わりに透過通信ＩＦ部８０を使用する。制御処理部１０１は、透過制御の対象となるフローに関し、透過元通信インタフェース識別子が当該フローを受信した通信インタフェースの識別子である透過通信ＩＦ部８０に出力することをアクションに含むフローエントリを作成する。制御処理部１０１は、透過通信ＩＦ部８０のポート識別子および透過通信ＩＦ部８０に設定された透過元通信インタフェース識別子の組を記憶する。制御処理部１０１は、例えば、これらの情報を通信処理部２０および透過通信ＩＦ部８０から取得してよい。
【０１６９】
次に、本実施形態による通信システムの動作について、図面を参照しつつ説明する。ここでは、本実施形態の動作の一例として、通信ＩＦ制御部４０−１がＩＰアドレス情報を取得する場合の動作を説明する。
【０１７０】
図１６Ａ及び図１６Ｂは、本実施形態における通信システムの動作の例を示すシーケンス図である。第１の実施形態と同じ番号を付与したステップの動作は、第１の実施形態の場合と同様であるためその説明を省略する。
【０１７１】
ステップＳ１００〜Ｓ１０７に続いて、通信制御部１０の制御処理部１０１はパケット通知を受信し、通知されたパケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）に対する処理を決定する（ステップＳ１０８ｂ）。その動作は、図９を用いて説明した第１の実施形態における動作と、以下の違いを除いて、同様である。
・制御処理部１０１は、指定された処理が“透過させる”であった場合、通信端末１が受信するパケットについて、処理対象通信を受信した通信ＩＦの識別子が透過元通信インタフェース識別子である透過通信ＩＦ部８０を特定し、“当該透過通信ＩＦ部から出力する”というアクションを持つフローエントリを作成する。
【０１７２】
例えば、図１６ＡのステップＳ１０８ｂでは、図７の制御ポリシ２が選択されたとき、制御ポリシ２のトラフィック条件である入力インタフェース、送信元ポート番号及び送信先ポート番号が、受信パケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）と一致し、制御ポリシ２の処理は“透過させる”である。したがって、該当するＤＨＣＰサーバから受信するＤＨＣＰパケットのフローに対し、透過通信ＩＦ部８０に出力するフローエントリを作成する。具体的には、図１７の項番１のような、マッチ条件に、当該フローを特定するように、入力ポート（通信インタフェース）、プロトコルタイプ（ＵＤＰ）、送信先及び送信元ＩＰアドレス、送信先及び送信元ポート番号を指定し、アクションに、“透過通信ＩＦ部８０に出力”を指定したフローエントリを作成する。
【０１７３】
続いて、通信制御部１０の制御処理部１０１は、ステップＳ１０８ｂにおいて生成されたフローエントリを通信処理部２０に設定すると同時に、対応するパケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）に対し当該フローエントリに基づく処理を適用するよう指示する（ステップＳ１０９ｂ）。
【０１７４】
続いて、通信処理部２０の制御チャネル処理部２０１は、通知（設定）されたフローエントリ（図１７の項番１）をフローテーブル記憶部２０３に記憶させる（ステップＳ１１０ｂ）。
【０１７５】
続いて、通信処理部２０のパケット処理部２０２は、ステップＳ１０９ｂで設定されたフローエントリに基づきパケット（ＤＨＣＰ  Ｏｆｆｅｒパケット）を処理する（ステップＳ１１１ｂ）。当該パケットが図１７の項番１のフローエントリにマッチするため、当該フローエントリのアクションを実行する。具体的には、パケット処理部２０２は、当該パケットを透過通信ＩＦ部８０に出力する。
【０１７６】
続いて、透過通信ＩＦ部８０は、ステップＳ１１１ｂで受信したパケットと、受信通信インタフェース識別子として、設定されている透過元通信インタフェース識別子（本例では通信ＩＦ部３０−１の識別子）とを、下位レイヤ受信通知インタフェース７１を通じプロトコルスタック部７０に通知する（ステップＳ３０１）。
【０１７７】
その後、ステップＳ１１２〜Ｓ１１７に続いて、通信処理部２０のパケット処理部２０２は、当該パケットを受信し、フローテーブル記憶部２０３を参照し、当該パケットに対応するフローエントリの有無を確認する（ステップＳ１１８ｂ）。受信したパケット（ＤＨＣＰ  Ａｃｋパケット）とフローエントリの条件を比較し、ここでは、ステップＳ１１０ｂにおいて記憶されたフローエントリが発見される（図１７の項番１）。
【０１７８】
続いて、通信処理部２０のパケット処理部２０２は、ステップＳ１１８ｂで発見したフローエントリに基づきパケット（ＤＨＣＰ  Ａｃｋパケット）を処理する（ステップＳ１１９ｂ）。当該パケットが図１７の項番１のフローエントリにマッチするため、当該フローエントリのアクションを実行する。具体的には、パケット処理部２０２は、当該パケットを透過通信ＩＦ部８０に出力する。
【０１７９】
続いて、透過通信ＩＦ部８０は、ステップＳ１１９ｂで受信したパケットと、受信通信インタフェース識別子として、設定されている透過元通信インタフェース識別子（本例では通信ＩＦ部３０−１の識別子）とを、下位レイヤ受信通知インタフェース７１を通じプロトコルスタック部７０に通知する（ステップＳ３０２）。その後、ステップＳ１２０〜Ｓ１２１により、通信ＩＦ制御部４０−１がＩＰアドレス情報を取得し設定する。
【０１８０】
以上説明したように、第３の実施形態によれば、通信端末１は透過アクション機能に相当する機能を具備する透過通信ＩＦ部８０を備え、通信制御部１０は透過制御の対象となるパケットを透過通信ＩＦ部８０に出力するフローエントリを通信処理部２０に設定することで、透過制御を行う。よって、本実施形態によれば、通信処理部２０に透過アクション機能を備えることなく、第１の実施形態と同様の効果を得ることができる。
【０１８１】
なお、本実施形態に係る通信システムの説明では、透過通信ＩＦ部８０が１つである例を示したが、本発明はこれに限定されるものではない。他の例として、透過通信ＩＦ部８０は物理的に存在する通信ＩＦの数だけ存在してもよい。その場合、各透過通信ＩＦ部にはそれぞれ異なる通信ＩＦの識別子が透過元通信インタフェース識別子として設定されてよい。制御処理部１０１は、各透過通信ＩＦ部８０について、ポート識別子および当該透過通信ＩＦ部８０に設定された透過元通信インタフェース識別子の組を記憶し、透過制御に使用してよい。
【０１８２】
また、本実施形態に係る通信システムの説明では、透過通信ＩＦ部８０が予め存在し、透過通信ＩＦ部８０に対し透過元通信インタフェース識別子が設定されている例を示したが、本発明はこれに限定されるものではない。他の例として、透過通信ＩＦ部８０は動的に作成されてよく、透過通信ＩＦ部８０に対し透過元通信インタフェース識別子が動的に設定されてもよい。例えば、制御処理部１０１は、ステップＳ１３５において、指定された処理が“透過させる”であり、かつその透過制御に必要な透過通信ＩＦ部８０が存在しない場合、必要な透過通信ＩＦ部８０を作成してもよい。このとき、制御処理部１０１は、作成した透過通信ＩＦ部８０の透過元通信インタフェース識別子として、処理対象通信を受信した通信インタフェース（通信ＩＦ部３０−１〜３０−２のいずれか）の識別子を設定してよい。
【０１８３】
なお、本発明は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【０１８４】
上述の実施形態における各構成は、ハードウェア又はソフトウェア、もしくはその両方によって構成され、１つのハードウェア又はソフトウェアから構成してもよいし、複数のハードウェア又はソフトウェアから構成してもよい。通信端末やサーバの各機能（各処理）を、ＣＰＵやメモリ等を有するコンピュータにより実現してもよい。例えば、記憶装置に実施形態における通信方法（通信処理）を行うための通信プログラムを格納し、各機能を、記憶装置に格納された通信プログラムをＣＰＵで実行することにより実現してもよい。
【０１８５】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１８６】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１８７】
（付記１）
パケットが属するフローと前記フローに属するパケットに対する処理であるアクションとを規定する処理規則を保持し、前記処理規則に基づいて受信したパケットを処理する通信処理部と、
他の装置との通信を行う通信ＩＦ部と、
階層化された通信プロトコルの一部もしくは全部を処理するプロトコルスタック部と、を備える通信端末と、
前記通信処理部が保持する前記処理規則を制御する通信制御部と、
を含み、
前記プロトコルスタック部は、受信パケットを通信ＩＦ部の識別子とともに通知するインタフェース（下位レイヤ受信通知インタフェース）を下位レイヤに対し提供し、
前記プロトコルスタック部は、前記下位レイヤ受信通知インタフェースで通知された受信パケットは当該受信パケットとともに通知された通信ＩＦ部の識別子を持つ通信ＩＦ部で受信されたものとみなして受信パケット処理を行い、
前記通信制御部は、前記通信処理部が前記通信ＩＦ部から受信したパケットが、当該通信ＩＦ部の識別子とともに前記下位レイヤ受信通知インタフェースを通じて前記プロトコルスタック部に通知されるよう制御（透過制御）する、
ことを特徴とする通信システム。
【０１８８】
（付記２）
前記通信処理部は、前記アクションの一つとして、前記通信ＩＦ部から受信したパケットを当該通信ＩＦ部の識別子とともに前記下位レイヤ受信通知インタフェースを通じて前記プロトコルスタック部に通知する透過アクションを備え、
前記通信制御部は、前記透過アクションを利用して前記透過制御を行う、
ことを特徴とする付記１に記載の通信システム。
【０１８９】
（付記３）
前記通信制御部は、前記通信ＩＦ部に特化した通信を検出し、当該通信に対し前記透過制御を行う、
ことを特徴とする付記１から付記２のいずれかに記載の通信システム。
【０１９０】
（付記４）
前記通信端末は前記通信ＩＦ部における通信に使用するアドレスの構成を行うアドレス構成制御部をさらに備え、
前記通信制御部は、前記アドレス構成制御部の通信に前記透過制御を行い、
前記通信制御部は、前記通信ＩＦ部で通信されるパケットに対する処理規則のアクションにアドレス構成制御部が構成したアドレスを用いたアドレス変換処理を含める、
ことを特徴とする付記１から付記３のいずれかに記載の通信システム。
【符号の説明】
【０１９１】
１      通信端末
２      サーバ
３−１〜３−３  通信ネットワーク
１０    通信制御部
２０    通信処理部
３０−１〜３０−２  通信ＩＦ部
４０−１〜４０−ｎ  通信ＩＦ制御部
５０    内部通信ＩＦ部
６０−１〜６０−ｍ  通信利用部
７０    プロトコルスタック部
７１    下位レイヤ受信通知インタフェース
８０    透過通信ＩＦ部
１０１  制御処理部
１０２  制御ポリシ記憶部
１０３  透過制御対象監視部
２０１  制御チャネル処理部
２０２  パケット処理部
２０３  フローテーブル記憶部
３−１−１  ＬＡＮ
３−１−２  無線ＬＡＮ基地局
３−１−３  ルータ
３−１−４  ＤＨＣＰサーバ
【図１】
2015033106.tif 000003
【図２】
2015033106.tif 000004
【図３】
2015033106.tif 000005
【図４】
2015033106.tif 000006
【図５】
2015033106.tif 000007
【図６】
2015033106.tif 000008
【図７】
2015033106.tif 000009
【図８Ａ】
2015033106.tif 000010
【図８Ｂ】
2015033106.tif 000011
【図９】
2015033106.tif 000012
【図１０Ａ】
2015033106.tif 000013
【図１０Ｂ】
2015033106.tif 000014
【図１１Ａ】
2015033106.tif 000015
【図１１Ｂ】
2015033106.tif 000016
【図１２】
2015033106.tif 000017
【図１３Ａ】
2015033106.tif 000018
【図１３Ｂ】
2015033106.tif 000019
【図１４】
2015033106.tif 000020
【図１５】
2015033106.tif 000021
【図１６Ａ】
2015033106.tif 000022
【図１６Ｂ】
2015033106.tif 000023
【図１７】
2015033106.tif 000024