(57)【要約】【課題】複数の通信層に対するクロスレイヤアクセスを容易に可能にした通信装置を提供する。【解決手段】階層化された複数の通信層を介して外部の通信装置とデータを送受信する際、各通信層間でやりとりする情報をイベントと規定し、各通信層のプロトコルの処理動作を、イベント受信、イベント処理およびイベント送信という要素からなるイベントモデルで管理し、イベントモデルの単位で処理を実行する制御部を有する。【選択図】図１
2014072647.tif 000002
【特許請求の範囲】
【請求項１】
階層化された複数の通信層を介して外部の通信装置とデータを送受信する際、各通信層間でやりとりする情報をイベントと規定し、各通信層のプロトコルの処理動作を、イベント受信、イベント処理およびイベント送信という要素からなるイベントモデルで管理し、該イベントモデルの単位で処理を実行する制御部を有する通信装置。
【請求項２】
請求項１記載の通信装置において、
前記複数の通信層におけるプロトコルの処理動作を前記イベントモデルで管理するためのテーブルが格納された記憶部をさらに有し、
前記制御部は、
前記テーブルを用いて、各通信層間の接続情報および各通信層の処理動作の写像を通信単位でチェーンとして管理する、通信装置。
【請求項３】
請求項２記載の通信装置において、
前記制御部は、
前記イベント受信時に前記テーブルを参照して前記チェーンにしたがって、各通信層内に含まれるプロトコルのうち、どのプロトコルを使用するかを決定する、通信装置。
【請求項４】
請求項２または３記載の通信装置において、
前記制御部は、
前記イベント受信時に前記テーブルを参照して前記チェーンにしたがって、各通信層内のプロトコルの機能のうち、どの機能を使用するか決定する、通信装置。
【請求項５】
請求項４記載の通信装置において、
前記制御部は、
前記チェーンにしたがって、各通信層内のプロトコルの機能のうち、共通する機能をまとめて実行する、通信装置。
【請求項６】
請求項２記載の通信装置において、
前記制御部は、
前記イベント受信時に前記テーブルを参照して前記チェーンにしたがって、前記複数の通信層のうち、１以上の通信層の処理動作をスキップさせる、通信装置。
【請求項７】
通信装置による通信制御方法であって、
階層化された複数の通信層を介して外部の通信装置とデータを送受信する際に、前記複数の通信装置における各通信層間でやりとりする情報をイベントと規定し、
前記複数の各通信層のプロトコルの処理動作を、イベント受信、イベント処理およびイベント送信という要素からなるイベントモデルで管理し、
前記イベントモデルの単位で処理を実行する、通信制御方法。
【請求項８】
コンピュータに、
階層化された複数の通信層を介して外部の通信装置とデータを送受信する際に、前記複数の通信装置における各通信層間でやりとりする情報をイベントと規定する手順と、
前記複数の各通信層のプロトコルの処理動作を、イベント受信、イベント処理およびイベント送信という要素からなるイベントモデルで管理する手順と、
前記イベントモデルの単位で処理を実行する手順を前記コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信層における動作を制御する通信装置、通信制御方法、およびコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
通信装置は、階層状に配置された複数の通信層を備えているプロトコル・スイートを使用して通信を行う。プロトコル・スイートの１つとして、インターネット・プロトコル・スイートが知られている（非特許文献１参照）。インターネット・プロトコル・スイートは、リンク層、インターネット層、トランスポート層、およびアプリケーション層の４階層に分類されている。
【０００３】
アプリケーション層は、インターネット・プロトコル・スイートの最上位層であり、データ通信を利用した様々なサービスの提供、データとユーザがわかりやすい形との相互変換、データを送受信するための仮想的なコネクションの管理などを行う。
【０００４】
トランスポート層は、アプリケーションのためにエンド・ツー・エンドの通信サービスを提供する。トランスポート層に分類されるプロトコルとして、例えば、ＴＣＰ（Transmission Control Protocol）がある。
【０００５】
インターネット層については、データを送信元から宛先ホストに運ぶためにインターネットプロトコル（ＩＰ）を使用する。ＩＰはコネクションレス、または、データグラム相互ネットワークサービスであり、エンド・ツー・エンドでの配送保証は提供しない。ＩＰは、アドレス付けやサービスタイプの指定や、フレームの分割や組立などを行う。
【０００６】
リンク層については、通信機が直接接続されたネットワーク上で通信するために、ネットワークにインタフェース接続するために使用される通信プロトコルを実装しなければならない。このプロトコルのことを、リンク層プロトコルと呼ぶ。
【０００７】
各通信層は隣り合う層とだけ通信を行うことができる。プロトコル・スイートは、インターネット・プロトコル・スイート以外にも、ＯＳＩ（Open Systems Interconnection）参照モデル（非特許文献２参照）も知られているが、階層に分かれている点で実質的に同じである。
【０００８】
このようなプロトコル・スイートは、非特許文献３に開示されているように、安定した有線による通信を前提に考えられてきた。
【０００９】
しかし、今日、無線通信、光通信、省エネ通信など、通信環境が多様化され、上述の階層型アクセスだけでは、うまく動作しない場合が出てきた。例えば、非特許文献４には、無線アドホックネットワークでのクロスレイヤアクセスの必要性が述べられている。また、非特許文献５で規定されているように、不安定な無線ネットワークでモビリティを確保する場合は、ＴＣＰのパラメータをデータリンク層のパラメータに応じて制御する必要がある。すなわち各通信層間において自由なクロスレイヤアクセスが必要である。クロスレイヤアクセスとは、ある通信層が隣り合う通信層を跨いで他の通信層とアクセスすることである。
【００１０】
各通信層に自由にアクセスする方法として複数のタイプが知られている。非特許文献６では、その方法が「新アブストラクション型」、「共通データベース型」および「直接コミュニケーション型」の３つに分類されている。
【００１１】
「新アブストラクション型」は、各通信層が階層化されておらず、完全に独立して動作する通信形式である。しかし、既存の通信層を用いた通信機器との互換性が失われてしまう問題がある。インターネットを利用する通信システムは、インターネット層、トランスポート層といった通信階層を利用するように設計されているが、この既に幅広く普及している通信階層構造を全て無視して一から全て作り直し、使用するのは非現実的である。
【００１２】
「共通データベース型」は、例えば、特許文献１に開示されているような「クロスレイヤオプティマイザ」とよばれる一つの新たな階層を設ける方法である。これは、新たな階層を設けて、階層化された通信システムの全ての階層をコントロールする方法である。
【００１３】
しかし、一つの階層が全ての情報を把握し、最終的に判断する方法であるため、一つの目的に対する場合はうまく動作するが、今後、スマートフォンのように様々な目的のために複数のアプリケーションを入れ替えて複数動作させる場合には、一つの階層が総合的に判断、最適化するのは困難である。また、各通信層から様々な情報を得るためには、各通信層に対して、通信するためのインタフェースを必要な数だけ設けなければならず、インタフェース数が増大するおそれがある。そのため、管理が複雑になり、拡張性に乏しいという問題がある。
【００１４】
「直接コミュニケーション型」は、階層化された通信システムの個々の層間でクロスレイヤアクセスを実現する方法である。このように複数のアプリケーションを入れ替えるような場合は、個々のアプリケーションや通信層が独立して動作するのがよりよいと考えられる。
【００１５】
「直接コミュニケーション型」の方法が非特許文献７においてさらに詳細に分類されており、非特許文献７では、最適なアクセス手法として「CLASS」が提案されている。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特表２００７−５１５８３３号公報
【非特許文献】
【００１７】
【非特許文献１】RFC1122, "Requirements for Internet Hosts - Communication Layers"
【非特許文献２】ISO 7498, "Information processing systems -- Open Systems Interconnection -- Basic Reference Model"
【非特許文献３】"無線通信におけるクロスレイヤネットワーキング技術", 信学技報, vol. 108, no. 447, AN2008-76, pp. 71-76, 2009年3月
【非特許文献４】“無線アドホックネットワークにおけるクロスレイヤシグナリングベース負荷制御方式“, 信学技報, vol. 106, no. 356, CQ2006-76, pp. 95-100, 2006年11月
【非特許文献５】RFC 3481, "TCP over 2.5G and 3G Wireless Networks"
【非特許文献６】Srivastava, V.; Motani, M. "Cross-layer design: a survey and the road ahead", IEEE Communications Magazine. Volume 43, Issue 12, Dec. 2005, Page(s): 112- 119
【非特許文献７】Qi Wang; Abu-Rgheff, M.A. "Cross-layer signalling for next- generation wireless systems", IEEE Wireless Communications and Networking conference, WCNC 2003.Volume 2, 16-20 March 2003, Page(s): 1084- 1089
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかし、非特許文献７に開示された手法では、通信層間のメッセージを規定しているだけにすぎず、通信層を超えてアクセスする仕組みについては具体的に示されていない。また、非特許文献６には、「直接コミュニケーション型」の方法でメッセージフォーマットを規定することが提案されているが、実際にどのように実施するか具体的が示されていない。
【００１９】
本発明は上述したような技術が有する問題点を解決するためになされたものであり、複数の通信層に対するクロスレイヤアクセスを容易に可能にした通信装置、通信制御方法、およびコンピュータに実行させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を達成するための本発明の通信装置は、
階層化された複数の通信層を介して外部の通信装置とデータを送受信する際、各通信層間でやりとりする情報をイベントと規定し、各通信層のプロトコルの処理動作を、イベント受信、イベント処理およびイベント送信という要素からなるイベントモデルで管理し、該イベントモデルの単位で処理を実行する制御部を有する構成である。
【００２１】
また、本発明の通信制御方法は、通信装置による通信制御方法であって、
階層化された複数の通信層を介して外部の通信装置とデータを送受信する際に、前記複数の通信装置における各通信層間でやりとりする情報をイベントと規定し、
前記複数の各通信層のプロトコルの処理動作を、イベント受信、イベント処理およびイベント送信という要素からなるイベントモデルで管理し、
前記イベントモデルの単位で処理を実行するものである。
【００２２】
さらに、本発明のプログラムは、コンピュータに、
階層化された複数の通信層を介して外部の通信装置とデータを送受信する際に、前記複数の通信装置における各通信層間でやりとりする情報をイベントと規定する手順と、
前記複数の各通信層のプロトコルの処理動作を、イベント受信、イベント処理およびイベント送信という要素からなるイベントモデルで管理する手順と、
前記イベントモデルの単位で処理を実行する手順を前記コンピュータに実行させるものである。
【発明の効果】
【００２３】
本発明によれば、複数の通信層における動作に関して予め規定したイベントモデルにしたがって処理を行うことで、クロスレイヤアクセスを容易に実行できる。
【図面の簡単な説明】
【００２４】
【図１】第１の実施形態の通信装置の一構成例を示すブロック図である。
【図２】図１に示した制御部で実行されるプロトコル・スイートの一例を示す図である。
【図３】ＣＰＵが図２に示したプロトコルを実行することで実現される仮想的な構成を示す機能ブロック図である。
【図４】２つの通信装置が通信する場合の情報処理方法を示す模式図である。
【図５】クロスレイヤアクセスを説明するための図である。
【図６Ａ】第１の実施形態において、通信層の上り方向の処理手順を決定するための上り処理テーブルの一例を示す図である。
【図６Ｂ】第１の実施形態において、通信層の下り方向の処理手順を決定するための下り処理テーブルの一例を示す図である。
【図７】第１の実施形態において、各通信層において制御部がプロトコルを決定するため手順を示すフローチャートである。
【図８】第１の実施形態の通信装置の動作を説明するための図である。
【図９】第２の実施形態におけるプロトコル・スイートを説明するための図である。
【図１０】第２の実施形態において、制御部によるプロトコル内の機能の実行の手順を示すフローチャートである。
【図１１】第２の実施形態において、通信層の上り方向の処理手順を決定するための上り処理テーブルの一例を示す図である。
【図１２】第２の実施形態において、エラーチェックのクロスレイヤ処理を説明するための図である。
【図１３】本発明の一実施形態の通信装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００２５】
（第１の実施形態）
本実施形態の通信装置の構成を説明する。図１は本実施形態の通信装置の一構成例を示すブロック図である。
【００２６】
図１に示すように、通信装置１００は、記憶部１９０と、制御部１８０とを有する。制御部１８０は、プログラムにしたがって処理を実行するＣＰＵ（Central Processing Unit）１８２と、プログラムを記憶するメモリ１８４とを有する。メモリ１８４には、後述のクロスレイヤアクセスを実行するためのプログラムが格納されている。
【００２７】
図２は図１に示した制御部で実行されるプロトコル・スイートの一例を示す図である。本実施形態では、プロトコル・スイートがインターネット・プロトコル・スイートの場合とする。
【００２８】
図２に示すプロトコル・スイートがメモリ１８４に予め格納されている。プロトコル・スイートはメモリ１８４の代わりに記憶部１９０に予め格納されていてもよく、この場合、ＣＰＵ１８２の実行対象となるプロトコルが記憶部１９０からメモリ１８４に読み出される。図２では、プロトコル・スイートに含まれる複数のプロトコルを、階層化された複数の通信層に分類して表示している。
【００２９】
プロトコル・スイートは、リンク層Ｌ００１、インターネット層Ｌ００２、トランスポート層Ｌ００３、およびアプリケーション層Ｌ００４を有する。
【００３０】
リンク層Ｌ００１には、無線ＬＡＮ（Local Area Network）プロトコルＰ１１０、ＷｉＭＡＸ（Worldwide Interoperability for Microwave Access）プロトコルＰ１２０、およびＬＴＥ（Long Term Evolution）プロトコルＰ１３０が属する。インターネット層Ｌ００２には、ＩＰ Ｐ２１０が属する。トランスポート層Ｌ００３には、ＴＣＰ Ｐ３１０およびＵＤＰ Ｐ３２０が属する。アプリケーション層Ｌ００４には、動画アプリケーションソフトウェアプログラム（以下では、「動画アプリケーション」と称する）Ｐ４１０と、Ｗｅｂアプリケーション・ソフトウェアプログラム（以下では、「Ｗｅｂアプリケーション」と称する）Ｐ４２０とが属している。Ｗｅｂアプリケーションの一例としてＷｅｂブラウザがある。
【００３１】
図２に示すように、通信層は階層的に構成されており、隣り合う通信層とのみアクセスできるようになっている。例えば、アプリケーション層Ｌ００４は、トランスポート層Ｌ００３にアクセスすることができるが、インターネット層Ｌ００２に直接アクセスすることはできない。インターネット層Ｌ００２は、トランスポート層Ｌ００３とリンク層Ｌ００１にアクセスすることができるが、アプリケーション層Ｌ００４と直接アクセスすることができない。
【００３２】
図２に示す４つの通信層において、最下層から最上層への処理の流れの方向を上り方向とし、最上層から最下層への処理の流れの方向を下り方向とする。
【００３３】
なお、ＴＣＰの概要はＲＦＣ７９３に開示され、ＵＤＰの概要はＲＦＣ７６８に開示されているため、本実施形態では、これらのプロトコルについての詳細な説明を省略する。ＩＰの概要については、ＲＦＣ７９１に開示されているため、その詳細な説明を省略する。また、無線ＬＡＮプロトコルの概要はＩＥＥＥ８０２．１１に開示され、ＷｉＭＡＸプロトコルの概要はＩＥＥＥ８０２．１６ｅに開示され、ＬＴＥプロトコルの概要は３ＧＰＰ Ｒｅｌｅａｓｅ．８に開示されているため、これらのプロトコルの詳細な説明を省略する。
【００３４】
図２に示すプロトコル・スイートは一例であり、階層化された複数の通信層からなるプロトコル・スイートを備えていれば、図２に示したものと異なるアプリケーションソフトウェアプログラムおよびプロトコルを備えていてもよい。
【００３５】
図３はＣＰＵが図２に示したプロトコルを実行することで具現化される論理的な構成を示す機能ブロック図である。
【００３６】
制御部１８０は、アプリケーション層Ｌ００４に分類される動画処理部４１０およびＷｅｂアプリケーション処理部４２０と、トランスポート層Ｌ００３に分類されるＴＣＰ処理部３１０およびＵＤＰ処理部３２０と、インターネット層Ｌ００２に分類されるＩＰ処理部２１０と、リンク層Ｌ００１に分類される無線ＬＡＮ通信部１１０、ＷｉＭＡＸ通信部１２０およびＬＴＥ通信部１３０とを有する。
【００３７】
動画処理部４１０はＣＰＵ１８２が動画アプリケーションＰ４１０を実行することで仮想的に構成され、Ｗｅｂアプリケーション処理部４２０はＣＰＵ１８２がＷｅｂアプリケーションＰ４２０を実行することで仮想的に構成される。
【００３８】
ＴＣＰ処理部３１０はＣＰＵ１８２がＴＣＰ Ｐ３１０を実行することで仮想的に構成され、ＵＤＰ処理部３２０はＣＰＵ１８２がＵＤＰ Ｐ３２０を実行することで仮想的に構成される。ＩＰ処理部２１０はＣＰＵ１８２がＩＰ Ｐ２１０を実行することで仮想的に構成される。
【００３９】
無線ＬＡＮ通信部１１０は、ＣＰＵ１８２による無線ＬＡＮプロトコルＰ１１０の実行と無線ＬＡＮ専用の通信デバイスで構成される。ＷｉＭＡＸ通信部１２０は、ＣＰＵ１８２によるＷｉＭＡＸプロトコルＰ１２０の実行とＷｉＭＡＸ専用の通信デバイスで構成される。ＬＴＥ通信部１３０は、ＣＰＵ１８２によるＬＴＥプロトコルＰ１３０の実行とＬＴＥ専用の通信デバイスで構成される。
【００４０】
制御部１８０は、図２に示したプロトコル・スイートを用いて図３に示した各部を制御することで、別の通信装置と通信することが可能である。以下では、説明を簡単にするために、図３の機能ブロック図に示した各構成の代わりに、図２に示したプロトコルまたはプログラムを動作の主体にして説明する。
【００４１】
ここで、通信装置１００が他の通信装置と通信する場合を簡単に説明する。図４は２つの通信装置が通信する場合の情報処理方法を示す模式図である。
【００４２】
通信装置１０２は通信装置１００と同様な構成である。
【００４３】
なお、図４では、リンク層Ｌ００１内の無線ＬＡＮプロトコルＰ１１０が通信装置１００と通信装置１０２との間で直接通信する様子を示しているが、アクセスポイント（不図示）およびＬＡＮ（不図示）を経由する通信に経路を使用してもよく、特に通信形態は問わない。また、図４では、アプリケーション層Ｌ００４内のアプリケーションについても、通信装置１００と通信装置１０２との間で直接通信する様子を示しているが、サーバアプリケーション（不図示）を経由してもよい。他のプロトコルについても、上記の説明と同様に、直接に通信する場合に限定されない。
【００４４】
図４に示すように、同一の通信層における同一のプロトコル同士で情報交換が行われる。実線および破線の双方向矢印は、各通信層におけるプロトコル間のやりとりを表現したものである。アプリケーション層Ｌ００４を例に説明すると、ＷｅｂアプリケーションＰ４２０で扱われるデータは通信装置１００のＷｅｂアプリケーション処理部４２０で処理され、ＷｅｂアプリケーションＰ４２１で扱われるデータは通信装置１０２のＷｅｂアプリケーション処理部４２０で処理される。実線の双方向矢印に示すように、ＷｅｂアプリケーションＰ４２０、Ｐ４２１で扱われるデータは通信装置１００と通信装置１０２のそれぞれのＷｅｂアプリケーション処理部４２０で処理される。また、破線の双方向矢印に示すように、動画アプリケーションＰ４１０で扱われるデータは通信装置１００と通信装置１０２のそれぞれの動画処理部４１０で処理される。
【００４５】
実際には、例えば、ＷｅｂアプリケーションＰ４２１で扱われるデータを通信装置１００が通信装置１０２に送信する場合、そのデータは、通信装置１００のアプリケーション層Ｌ００４からトランスポート層Ｌ００３およびインターネット層Ｌ００２を順に経由してリンク層Ｌ００１から通信装置１０２に送信される。通信装置１０２では、通信装置１００から受信したデータは、リンク層Ｌ００１からインターネット層Ｌ００２およびトランスポート層Ｌ００３を順に経由してアプリケーション層Ｌ００４に至り、Ｗｅｂアプリケーション処理部４２０で処理される。その結果、通信層毎のデータ処理は図４の模式図に示すように表される。
【００４６】
ここまで、通常の動作に関する制御部１８０の構成を説明したが、本実施形態の通信装置１００に追加された、クロスレイヤアクセスの機能に関する構成を説明する。
【００４７】
はじめに、クロスレイヤアクセスを、図５を参照して説明する。図５は図２に示したプロトコル・スイートをベースにしてクロスレイヤアクセスを説明するための図である。
【００４８】
図５には、動画アプリケーションＰ４１０が、リンク層Ｌ００１内の無線ＬＡＮプロトコルＰ１１０、ＷｉＭＡＸプロトコルＰ１２０およびＬＴＥプロトコルＰ１３０と、インターネット層Ｌ００２内のＩＰ Ｐ２１０と、トランスポート層Ｌ００３内のＴＣＰ Ｐ３１０のそれぞれから情報を取得可能であることを上向きの破線矢印で示している。
【００４９】
厳密に言うと、動画アプリケーションＰ４１０がＴＣＰ Ｐ３１０にアクセスするのは、隣り合う通信層との情報のやりとりなのでクロスレイヤアクセスに相当しないが、各プロトコルの情報について、隣り合う通信層との情報のやりとりであっても予めプロトコルで規定された通常のやりとり以外の場合も含めて、以下では、クロスレイヤアクセスと称する。
【００５０】
各プロトコルの情報とは、例えば、リンク層Ｌ００１での無線環境における品質情報（再送数、信号電力強度など）、インターネット層Ｌ００２でのルーティング情報および最大パケットサイズの情報、トランスポート層Ｌ００３でのＴＣＰウィンドウサイズおよび再送数などの情報である。
【００５１】
また、図５には、動画アプリケーションＰ４１０が、これらの情報を使ってトランスポート層Ｌ００３内のＴＣＰ Ｐ３１０に最適なＴＣＰウィンドウサイズを設定したり、リンク層Ｌ００１で使用する回線を選ぶためにインターネット層Ｌ００２内のＩＰ Ｐ２１０にパラメータを設定したりすることが可能なことを下向きの破線矢印で示している。
【００５２】
動画アプリケーションＰ４１０と同様に、図５では、ＷｅｂアプリケーションＰ４２０が、リンク層Ｌ００１内の無線ＬＡＮプロトコルＰ１１０、ＷｉＭＡＸプロトコルＰ１２０およびＬＴＥプロトコルＰ１３０と、インターネット層Ｌ００２内のＩＰ Ｐ２１０と、トランスポート層Ｌ００３内のＴＣＰ Ｐ３１０のそれぞれから情報を取得可能であることを上向きの矢印で示している。また、ＷｅｂアプリケーションＰ４２０が、使用するリンク層での回線を選ぶためにインターネット層Ｌ００２内のＩＰ Ｐ２１０にパラメータを設定可能なことを下向きの矢印で示している。
【００５３】
続いて、図５を参照して説明したクロスレイヤアクセスを実行可能にするための記憶部１９０および制御部１８０の構成を説明する。
【００５４】
記憶部１９０には、制御部１８０が実行するプロトコルの処理手順を決めるための処理テーブルが格納されている。図６Ａは通信層の上り方向の処理手順を決定するための上り処理テーブルの一例を示し、図６Ｂは通信層の下り方向の処理手順を決定するための下り処理テーブルの一例を示す。
【００５５】
各処理テーブルには複数種の処理手順が予め登録されており、各処理手順は管理番号で管理される。図６Ａおよび図６Ｂに示すように、各処理テーブルは、管理番号に対応して、各通信層で使用されるプロトコルが記述されている。図６Ａおよび図６Ｂに示す例では、管理番号が０からｎ（ｎは１以上の整数）までの（ｎ＋１）種の処理手順が登録されている。
【００５６】
各処理テーブルに示す通信層＃００１〜００４のそれぞれはリンク層Ｌ００１、インターネット層Ｌ００２、トランスポート層Ｌ００３およびアプリケーション層Ｌ００４のそれぞれに相当する。
【００５７】
図６Ａの上り処理テーブルを参照すると、例えば、管理番号が０の場合の処理手順では、通信層＃Ｌ００１で無線ＬＡＮプロトコルＰ１１０を使用し、通信層＃Ｌ００２でＩＰ Ｐ２１０を使用することがわかる。そして、通信層＃Ｌ００３で使用されるプロトコルは「selectable」となっている。この「selectable」は、予め規定された選択処理、すなわちＩＰ Ｐ２１０で管理されるプロトコル番号で特定されるプロトコルを選択することを示す。通信層＃Ｌ００４で使用されるプロトコルも「selectable」となっている。これは、予め規定された選択処理、すなわちトランスポート層Ｌ００３のプロトコルで管理されるポート番号でどのアプリケーションを選択するかを示している。
【００５８】
また、図６Ａの上り処理テーブルにおいて、管理番号が２の場合の処理手順では、通信層＃Ｌ００１でＷｉＭＡＸプロトコルＰ１２０を使用し、通信層＃Ｌ００４で動画アプリケーションＰ４１０を使用することがわかる。そして、通信層＃Ｌ００２で使用されるプロトコルは「ＮＵＬＬ」となっている。この「ＮＵＬＬ」は、その通信層では何も処理をせずに、メッセージを含むデータをそのまま次の通信層に渡すことを意味する。通信層＃Ｌ００３で使用されるプロトコルも「ＮＵＬＬ」となっており、通信層＃００２の場合と同様である。
【００５９】
このようにして、各通信層間の接続情報と各通信層の処理動作の写像を通信単位でチェーンとして管理している。そして、管理番号に基づいて複数の通信層における一連の処理が鎖状に決定されるので、この一連の処理をチェーンと称する。また、管理番号がチェーンを特定するための番号であることから、以下では、管理番号をチェーン番号と称する場合もある。
【００６０】
なお、本実施形態では、図６Ａおよび図６Ｂに示したように、処理テーブルを上りと下りで別々に準備し、０からｎまでの番号で（ｎ＋１）種の処理手順を管理する場合で説明したが、上りと下りのそれぞれの場合に応じて使用するプロトコルを特定できれば１つのテーブルであってもよい。また、処理手順を特定するための識別子は管理番号に限らず、通信相手のアドレスなど、制御部１８０が処理手順を特定できれば他の識別子でもよい。
【００６１】
また、本実施形態では、処理手順を特定するための管理番号は、情報発信またはプロトコル制御したい発信元のプロトコルが付与し、必要な情報や制御情報を含むメッセージに含めるものとするが、通信装置１００の通信相手から受信するデータに添付されていてもよく、管理番号の入手方法はこれらの場合に限らない。
【００６２】
制御部１８０は、外部の装置からデータを受信すると、リンク層Ｌ００１内のプロトコルを実行することで管理番号を設定する。そして、制御部１８０は、リンク層Ｌ００１よりも上位の各通信層において、図６Ａに示した処理テーブルを参照して管理番号に対応するチェーンを特定し、特定したチェーンにしたがって処理を実行する。ここでは、データを受信した際に常に管理番号を設定する例を示したが、既存の処理には手を付けず、クロスレイヤ処理をしたい場合にのみ管理番号を付与してもよい。またデータの受信にかかわらず、必要や要求に応じて情報を送信したり制御したりしたい場合に管理番号を付与してもよい。
【００６３】
また、制御部１８０は、外部の装置にデータを送信する際、データの種類や形式に応じてアプリケーション層Ｌ００４内のアプリケーションを実行することで管理番号を決定する。そして、制御部１８０は、アプリケーション層Ｌ００４よりも下位の各通信層において、図６Ｂに示した処理テーブルを参照して管理番号に対応するチェーンを特定し、特定したチェーンにしたがって処理を実行した後、データに管理番号を添付して外部の装置に送信する。ここでは、外部の装置にデータを送信する際に常に管理番号を設定する例を示したが、必要や要求に応じて情報を送信したり制御したりしたい場合に管理番号を付与してもよい。
【００６４】
図７は各通信層において制御部がプロトコルを決定するための手順を示すフローチャートである。制御部１８０は、図２に示した４つの通信層のうち、外部の装置からデータを受信し、アプリケーションがデータを受信した場合には、リンク層Ｌ００１からアプリケーション層Ｌ００４まで、アプリケーションが外部の装置にデータを送信する場合には、アプリケーション層Ｌ００４からリンク層Ｌ００１まで、通信層毎に図７に示すフローの処理を行う。
【００６５】
ここでは、各通信層のプロトコルの種類がｍ（ｍは１以上の整数）個あるものとし、図７では、種類ｋ（ｋは１以上ｍ以下の任意の整数）のプロトコルを「＃ｋ」と表記している。例えば、図５を参照すると、インターネット層Ｌ００２ではｍ＝１であり、トランスポート層Ｌ００３ではｍ＝２である。
【００６６】
各通信層において、制御部１８０は、処理テーブルを参照し、情報処理対象の通信層の情報と管理番号とに基づいて、どのプロトコルの処理をデータに対して行うか判定する（ステップＣＦ０１）。続いて、制御部１８０は、ステップＣＦ０１で決定したプロトコルの処理をデータに実行する（ステップＣＦ０２−１〜ＣＦ０２−ｍ）。ただし、ステップＣＦ０１で特定した内容が「ＮＵＬＬ」である場合、制御部１８０は、データに対して何も処理しない（ステップＣＦ０２−（ｍ＋１））。
【００６７】
次に、本実施形態の通信装置１００の動作を説明する。
【００６８】
通信装置１００が外部の装置からデータを受信したものとし、制御部１８０は、図６Ａに示した処理テーブルを参照する。
【００６９】
図８は本実施形態の通信装置の動作を説明するための図である。図８では、図２に示したプロトコル・スイートの各通信層におけるプロトコル処理に加えて、隣り合う通信層の間で情報を振り分ける処理を模式的に示している。具体的には、通信層間の振り分け処理を行う通信層間インタフェースを図に示している。
【００７０】
図８に示すインタフェースＬ０１２、Ｌ０２３、Ｌ０３４は、通信層間の処理を、わかり易く説明するために追加したものである。インタフェースＬ０１２、Ｌ０２３、Ｌ０３４は、制御部１８０が図７に示したステップＣＦ０１の処理を実行することで仮想的に構成される。
【００７１】
また、図８に示すように、ＲＳＳ（Receive Signal Strength：受信信号強度）伝達機能Ｐ１１１が無線ＬＡＮプロトコルＰ１１０内に設けられ、管理番号が２の場合に有効になることが予め設定されているものとする。ＲＳＳ伝達機能Ｐ１１１は、無線ＬＡＮプロトコルＰ１１０内で管理されている受信信号電力強度の値を、動画アプリケーションＰ４１０に伝える機能とする。この機能により、例えば、動画アプリケーションＰ４１０は、受信信号電力強度の値を動画品質の判定に使用することが可能となる。
【００７２】
はじめに、図６Ａおよび図８を参照して、通信装置１００が実行するクロスレイヤ処理（レイヤスキップ）の場合を説明する。ここでは、管理番号が２の場合で説明する。
【００７３】
ＲＳＳ伝送機能Ｐ１１１は、無線ＬＡＮのフレームを外部から受信すると、フレームから受信信号電力強度の情報を読み出す。そして、ＲＳＳ伝達機能Ｐ１１１は、管理番号「２」を設定し、上位層であるインターネット層Ｌ００２宛にインタフェースＬ０１２を介して、管理番号を含むメッセージとともに受信信号電力強度のデータを送信する。
【００７４】
インタフェースＬ０１２は、ＲＳＳ伝達機能Ｐ１１1を含む無線ＬＡＮプロトコルＰ１１０からメッセージとともに受信信号電力強度のデータを受信すると、上り処理テーブルを参照し、メッセージに含まれる管理番号に基づいてチェーンを特定し、特定したチェーンにしたがって処理を分岐させる。
【００７５】
図６Ａに示した上り処理テーブルでは、管理番号が２の場合の通信層＃００２の欄が「ＮＵＬＬ」なので、インターネット層Ｌ００２では何も処理しない。インタフェースＬ０１２は、図７に示したステップＣＦ０２−（ｍ＋１）にしたがって、メッセージを含む受信信号電力強度のデータをＩＰ Ｐ２１０に渡さずに、トランスポート層Ｌ００３宛にインタフェースＬ０２３を介して送信する。
【００７６】
インタフェースＬ０２３は、インタフェースＬ０１２からメッセージを含む受信信号電力強度のデータを受信すると、上り処理テーブルを参照し、メッセージに含まれる管理番号に基づいてチェーンを特定し、特定したチェーンにしたがって処理を分岐させる。
【００７７】
図６Ａに示した上り処理テーブルでは、管理番号が２の場合の通信層＃００３の欄が、通信層＃００２の欄と同様に、「ＮＵＬＬ」なので、トランスポート層Ｌ００３でも、何も処理しない。インタフェースＬ０２３は、図７に示したステップＣＦ０２−（ｍ＋１）にしたがって、メッセージを含む受信信号電力強度のデータをアプリケーション層Ｌ００４宛にインタフェースＬ０３４を介して送信する。
【００７８】
インタフェースＬ０３４は、インタフェースＬ０２３からメッセージを含む受信信号電力強度のデータを受信すると、上り処理テーブルを参照し、メッセージに含まれる管理番号に基づいてチェーンを特定し、特定したチェーンにしたがって処理を分岐させる。
【００７９】
図６Ａに示した上り処理テーブルでは、管理番号が２の場合の通信層＃００４の欄が「Ｐ４１０」なので、インタフェースＬ０３４は、受信信号電力強度のデータを動画アプリケーションＰ４１０に送信する。動画アプリケーションＰ４１０は、インタフェースＬ０３４から受信信号電力強度のデータを受け取ると、その値を動画品質の判定に使用する。
【００８０】
管理番号が２の場合、上述したように、リンク層Ｌ００１の無線ＬＡＮプロトコルＰ１１０がアプリケーション層Ｌ００４の動画アプリケーションＰ４１０に情報を送信することができる。このような処理手順で、インタフェースを共通にしたまま通信層を跨いで情報のやりとりを行うことが可能となる。
【００８１】
次に、図６Ａおよび図８を参照して、通信装置１００が実行する、通常のデータパケット処理の場合を説明する。ここでは、管理番号が０の場合で説明する。
【００８２】
リンク層Ｌ００１内の無線ＬＡＮプロトコルＰ１１０が、外部からデータパケットを受信すると、通常のデータパケット処理を行い、管理番号「０」を設定し、その管理番号を含むメッセージとともにデータパケットを上位層であるインターネット層Ｌ００２宛にインタフェースＬ０１２に送信する。
【００８３】
インタフェースＬ０１２は、無線ＬＡＮプロトコルＰ１１０からメッセージとともにデータパケットを受信すると、上り処理テーブルを参照し、メッセージに含まれる管理番号に基づいてチェーンを特定し、特定したチェーンにしたがって処理を分岐させる。
【００８４】
図６Ａに示した上り処理テーブルでは、管理番号が０の場合の通信層＃００２の欄が「Ｐ２１０」なので、インタフェースＬ０１２は、メッセージを含むデータパケットをＩＰ Ｐ２１０に送信する。ＩＰ Ｐ２１０は、インタフェースＬ０１２から受け取ったデータパケットに予め規定された処理を行った後、メッセージを含むデータパケットをトランスポート層Ｌ００３宛にインタフェースＬ０２３を介して送信する。
【００８５】
インタフェースＬ０２３は、ＩＰ Ｐ２１０からメッセージを含むデータパケットを受信すると、上り処理テーブルを参照し、メッセージに含まれる管理番号に基づいてチェーンを特定し、特定したチェーンにしたがって処理を分岐させる。
【００８６】
図６Ａに示した上り処理テーブルでは、管理番号が０の場合の通信層＃００３の欄が「selectable」なので、インタフェースＬ０２３は管理番号だけでは送信先のプロトコルを特定できない。そこで、インタフェースＬ０２３は、ＩＰヘッダに記述されたプロトコル番号を参照して、送信先のプロトコルを決定する（トランスポート層プロトコルの特定処理）。ここでは、プロトコル番号が「６」であるとすると、インタフェースＬ０２３は、送信先をＴＣＰ Ｐ３１０に決定し、ＴＣＰ Ｐ３１０にメッセージを含むデータパケットを送信する。ＴＣＰ Ｐ３１０は、インタフェースＬ０２３から受け取ったデータパケットに予め規定された処理を行った後、メッセージを含むデータパケットをアプリケーション層Ｌ００４宛にインタフェースＬ０３４を介して送信する。ここでは、インタフェースＬ０２３が、ＩＰヘッダを解析する場合で説明したが、ＩＰ Ｐ２１０内で通常実施される上述のトランスポート層プロトコルの特定処理の結果を受け取り、その結果に対応して処理を分岐させる、すなわちＴＣＰ Ｐ３１０にメッセージを含むデータパケットを送信することが可能である。
【００８７】
インタフェースＬ０３４は、ＴＣＰ Ｐ３１０からメッセージを含むデータパケットを受信すると、上り処理テーブルを参照し、メッセージに含まれる管理番号に基づいてチェーンを特定し、特定したチェーンにしたがって処理を分岐させる。
【００８８】
図６Ａに示した上り処理テーブルでは、管理番号が０の場合の通信層＃００４の欄が通信層＃００３の場合と同様に「selectable」なので、インタフェースＬ０３４は管理番号だけでは送信先のプロトコルを特定できない。そこで、インタフェースＬ０３４は、ＴＣＰヘッダに記述されたポート番号を参照して、送信先のプロトコルを決定する（アプリケーション層プロトコルの特定処理）。ここでは、動画アプリケーション用に規定されたポート番号が「１００００」であるとすると、インタフェースＬ０３４は、送信先を動画アプリケーションＰ４１０に決定し、動画アプリケーションＰ４１０にメッセージを含むデータパケットを送信する。動画アプリケーションＰ４１０は、インタフェースＬ０３４からデータパケットを受け取ると、データパケットを処理して動画を表示部（不図示）に表示させる。
【００８９】
ここでは、インタフェースＬ０３４が、ＴＣＰヘッダを解析する場合で説明したが、ＴＣＰ Ｐ３１０内で通常実施される上述のアプリケーション層プロトコルの特定処理の結果を受け取り、その結果に対応して処理を分岐させる、すなわち動画アプリケーションＰ４１０にメッセージを含むデータパケットを送信することが可能である。
【００９０】
管理番号が０である場合、クロスレイヤではなく、階層順に通常のプロトコル処理を行うことができる。このような処理手順で既存のデータパケットをアプリケーションに届けること可能となる。
【００９１】
なお、上述の動作の説明において、インタフェースおよびプロトコルの間で「データを送信する」と表現したが、実際にはインタフェースおよびプロトコルが記憶部１９０にデータを記憶させ、データの格納場所を示す情報（例えば、アドレスなど）を互いにやりとりしてもよい。また、ここでは上り方向の処理例を示したが下り方向も同様にして実現することが可能であり、その詳細な説明を省略する。
【００９２】
次に、本実施形態の通信装置１００による情報処理方法の効果を説明する。
【００９３】
本実施形態では、各通信層間でやりとりする情報をイベントと規定し、各通信層の動作を、イベント受信、イベント処理およびイベント送信という要素からなるイベントモデルで表現し、各通信層間の接続情報と各通信層の処理動作の写像を通信単位でチェーンとして管理している。そして、通信層をまたがる際にチェーンを参照し、各通信層内での処理を分岐させることで、各通信層間で自由にアクセスすることを可能にしている。
【００９４】
そのため、各通信層が独立してイベントモデルとして動作し、複数の通信層の処理が総合的に最適化されるため、複数のアプリケーションが動作し、自由に入れ替えられるような環境下でも、無駄な処理を省いて、全体として最適化される。イベントとは、例えば、管理番号を含むメッセージと処理対象のデータの情報である。
【００９５】
また、クロスレイヤ処理の追加に際して、各通信層のインタフェースを増やすことなく、広い拡張性、移植の容易性を有している。その理由は、各通信層内にクロスレイヤ処理を追加し、その処理は整理、規定された共通に使用できるクロスレイヤインタフェースを利用できるからである。
【００９６】
さらに、複数のアプリケーションが動作し、自由に入れ替えられるような環境でも、アプリケーションの通信処理単位で各通信層へ情報を伝えることができる。例えば、リンク層で切断イベントが発生した場合に、アプリケーションの通信処理に対して迅速に通知することが可能である。その理由は、チェーンで管理されたクロスレイヤアクセスが提供されるため、各プロトコルにおいて、チェーンの使用を管理でき、チェーンにしたがって、使用中のチェーンの宛先を参照して複数のアプリケーションへ同報、または１つのアプリケーションへ通知できるからである。
【００９７】
なお、各通信層のプロトコルの処理と、図７に示したステップＣＦ０１の処理（図８のインタフェースに相当）の処理とを別々のハードウェアで実行させるようにしてもよい。例えば、各プロトコルに対応した専用の集積回路を設け、ＣＰＵ１８２にインタフェースの処理だけを実行させてもよい。このことは第２の実施形態においても同様である。
【００９８】
（第２の実施形態）
本実施形態では、各通信層で実行される処理として、プロトコル内に含まれる機能単位で選択を可能にしたものである。
【００９９】
本実施形態の通信装置１００の構成を説明する。本実施形態では、第１の実施形態と異なる点を詳しく説明し、第１の実施形態と同様な構成についての詳細な説明を省略する。
【０１００】
図９は本実施形態におけるプロトコル・スイートを説明するための図である。図９は図２に示したプロトコル・スイートをベースに、各プロトコルに含まれる機能を詳細に模式的に表したものである。
【０１０１】
図９に示すように、動画アプリケーションＰ４１０は機能Ｆ４１１〜Ｆ４１５を有する。ＷｅｂアプリケーションＰ４２０は機能Ｆ４３１〜Ｆ４２３を有する。ＴＣＰ Ｐ３１０は機能Ｆ３１１〜Ｆ３１４を有する。ＵＤＰ Ｐ３２０は機能Ｆ３２１〜Ｆ３２３を有する。ＩＰ Ｐ２１０は機能Ｆ２１１〜Ｆ２１５を有する。無線ＬＡＮプロトコルＰ１１０は機能Ｆ１１１〜Ｆ１１４を有する。ＷｉＭＡＸプロトコルＰ１２０は機能Ｆ１２１〜Ｆ１２３を有する。
【０１０２】
次に、本実施形態における制御部１８０がプロトコルに含まれる機能を、どのように管理し、実行するかを説明する。図１０は制御部によるプロトコル内の機能の実行の手順を示すフローチャートである。
【０１０３】
プロトコル内の機能Ｆ１２１〜Ｆ４２３を、例えば、図１０に示すような処理フローの集まりで表すことができる。つまり、プロトコルは、図１０に示す処理フローにおけるステップを１以上実行することによって構成されていると考えることができる。本実施形態では、プロトコル内の各機能を、図１０に示すように、イベント受信処理Ａ００１、イベント処理Ａ００２およびイベント送信処理Ａ００３の要素からなるイベントモデルに分類することで、機能毎に管理しやすくしている。
【０１０４】
図１０では、イベント受信処理Ａ００１、イベント処理Ａ００２およびイベント送信処理Ａ００３を順に行う場合を示している。制御部１８０があるプロトコル内でイベント受信処理に続いてイベント処理を実行するが、機能によっては、その後、イベント送信処理を行わない場合があってもよい。また、制御部１８０がイベント受信処理を行うが、イベント処理を実行せずに、イベント送信処理を行ってもよい。
【０１０５】
次に、記憶部１９０に格納されている処理テーブルの構成を説明する。
【０１０６】
記憶部１９０には、制御部１８０が実行するプロトコルの処理手順を決めるための処理テーブルが格納されている。図１１は通信層の上り方向の処理手順を決定するための上り処理テーブルの一例を示す。
【０１０７】
処理テーブルには複数種の処理手順が予め登録されており、各処理手順は管理番号で管理される。図１１に示すように、処理テーブルは、管理番号に対応して、各通信層で使用される機能が記述されている。図１１に示す例では、管理番号が０からｎ（ｎは１以上の整数）までの（ｎ＋１）種の処理手順が登録されている。
【０１０８】
図１１の上り処理テーブルを参照すると、例えば、管理番号が０の場合の処理手順では、通信層＃Ｌ００１で無線ＬＡＮプロトコルＰ１１０内の機能Ｆ１１１〜Ｆ１１３を使用するチェーンが規定されている。そして、通信層＃Ｌ００２ではＩＰ Ｐ２１０内の機能Ｆ２１１〜Ｆ２１５を使用するチェーン、通信層＃Ｌ００３ではＴＣＰ Ｐ３１０内の機能Ｆ３１１〜Ｆ３１４を使用するチェーン、通信層＃Ｌ００４では動画アプリケーションＰ４１０内の機能Ｆ４１１〜Ｆ４１４を使用するチェーンが規定されている。
【０１０９】
このようにして、本実施形態では、通信層間の接続情報および各通信層の処理動作だけでなく、各通信層のプロトコル内でどの機能を順に使用するかをチェーンとして管理している。
【０１１０】
なお、本実施形態では、上り処理テーブルの構成を説明したが、下り処理テーブルも図１１に示したテーブルと同様であり、その詳細な説明を省略する。
【０１１１】
また、第１の実施形態と同様に、処理テーブルを上りと下りで別々に準備する場合で説明したが、上りと下りのそれぞれの場合に応じて使用する機能を特定できれば１つのテーブルであってもよい。また、処理手順を特定するための識別子は管理番号に限らず、通信相手のアドレスなど、制御部１８０が処理手順を特定できれば他の識別子でもよい。
【０１１２】
次に、本実施形態の通信装置１００の動作を説明する。
【０１１３】
通信装置１００が外部の装置からデータを受信したものとし、制御部１８０は、図１１に示した処理テーブルを参照する。ここでは、管理番号が１の場合で説明する。
【０１１４】
管理番号が１の場合、図１１に示すように、機能Ｆ１１３、Ｆ１１４、Ｆ４１５を使用する上りチェーンであることがわかる。ここで、通信層間のインタフェースは図８に示したものと同様とする。
【０１１５】
機能Ｆ１１４には、管理番号が１のチェーンを使用することが予め設定されている。または、機能Ｆ１１４は処理テーブルを検索することでチェーンを特定してもよい。検索してチェーンを特定する場合では、機能Ｆ１１４は、動作を実行するときに処理テーブルを参照して、通信層＃Ｌ００１に自身の番号であるＦ１１４が存在するチェーンを検索する。検索の結果、機能Ｆ１１４は、図１１に示す処理テーブルから管理番号が１のチェーンを使用することを認識できる。
【０１１６】
通信装置１００が外部から無線ＬＡＮプロトコルＰ１１０を介してデータを受信すると、無線ＬＡＮプロトコルＰ１１０は機能Ｆ１１４に処理を実行させる。機能Ｆ１１４は、処理テーブルで管理番号「１」のチェーンを参照し、機能Ｆ１１３に処理を実行させる。機能Ｆ１１３は機能Ｆ１１４からデータを受信すると、処理を実行した後、上位層であるインターネット層Ｌ００２宛にインタフェースＬ０１２を介して、管理番号を含むメッセージとともにデータを送信する。
【０１１７】
インタフェースＬ０１２は、機能Ｆ１１３からメッセージとともにデータを受信すると、上り処理テーブルを参照し、メッセージに含まれる管理番号に基づいてチェーンを特定し、特定したチェーンにしたがって処理を行う。
【０１１８】
図１１に示した上り処理テーブルでは、管理番号が１の場合の通信層＃００２の欄が「ＮＵＬＬ」なので、インターネット層Ｌ００２では何も処理しない。インタフェースＬ０１２は、メッセージを含むデータをトランスポート層Ｌ００３宛にインタフェースＬ０２３を介して送信する。
【０１１９】
インタフェースＬ０２３は、インタフェースＬ０１２からメッセージを含むデータを受信すると、上り処理テーブルを参照し、メッセージに含まれる管理番号に基づいてチェーンを特定し、特定したチェーンにしたがって処理を行う。
【０１２０】
図１１に示した上り処理テーブルでは、管理番号が１の場合の通信層＃００３の欄が、通信層＃００２の欄と同様に、「ＮＵＬＬ」なので、トランスポート層Ｌ００３でも、何も処理しない。インタフェースＬ０２３は、メッセージを含むデータをアプリケーション層Ｌ００４宛にインタフェースＬ０３４を介して送信する。
【０１２１】
インタフェースＬ０３４は、インタフェースＬ０２３からメッセージを含むデータを受信すると、上り処理テーブルを参照し、メッセージに含まれる管理番号に基づいてチェーンを特定し、特定したチェーンにしたがって処理を行う。
【０１２２】
図１１に示した上り処理テーブルでは、管理番号が１の場合の通信層＃００４の欄が「機能Ｆ４１５」なので、インタフェースＬ０３４は、データを動画アプリケーションＰ４１０に送信する。動画アプリケーションＰ４１０は、インタフェースＬ０３４からデータを受け取ると、機能Ｆ４１５に処理を実行させる。このような処理手順で、インタフェースを共通にしたまま通信層を跨いで情報をやりとりし、通信層を跨いで処理を行うことが可能となる。
【０１２３】
図１１に示す処理テーブルにおいて、管理番号がｎのチェーンと管理番号が０のチェーンを比較してみる。管理番号がｎの場合では、管理番号が０の場合の通信層＃Ｌ００１〜通信層＃Ｌ００３のチェーンから機能Ｆ１１２、機能Ｆ２１２、機能Ｆ２１３、機能Ｆ２１４、機能Ｆ３１２および機能Ｆ３１３を「ＮＵＬＬ」によってスキップさせていることがわかる。
【０１２４】
このようにして、本実施形態では、プロトコル内の一部の機能をスキップさせる処理を簡単に実現することができる。
【０１２５】
また、ここでは省略したが、図１１に示した処理テーブルにおける機能設定の欄に「selectable」設定することで、各機能において特定した次の通信層のプロトコルに向けて処理を継続することも可能である。
【０１２６】
以下に、プロトコルに含まれる機能の例と、プロトコルの機能の一部の処理をスキップする場合の具体例を説明する。
【実施例１】
【０１２７】
本実施例は、ＴＣＰにおけるセッション設定処理の場合である。
【０１２８】
アプリケーションの機能がＯＳ（Operating System）へ通信開始のためのシステムコールを行うと、ＴＣＰのセッション設定機能が選択される。セッション設定機能は、通信相手にＳＹＮパケットを送信し、Ａｃｋパケットを受け取る処理、または、ＳＹＮパケットを相手から受け取り、Ａｃｋパケットを送信する処理を行う。これが、アプリケーションがＴＣＰセッションを開始するときの流れとなり、処理テーブル内のチェーンで実現される。
【０１２９】
ここで、もし通信装置が１対１のセッションしか必要としない場合、すなわち通信装置にアプリケーションが１つしかなくセッションが１本あればよい場合、電源投入直後から決まったポート番号を使用して通信すればよいため、ＴＣＰのＳＹＮ処理は不要となる。これを実現するには、セッション設定機能は不要とするために、処理テーブル内のチェーンを利用してスキップするだけでよい。
【実施例２】
【０１３０】
本実施例は、ＴＣＰにおけるウィンドウ制御の場合である。
【０１３１】
ＴＣＰにおいて、受信側から伝送されるＡｃｋヘッダのＷＩＮＤＯＷフィールドに、受信側が受信可能なオクテット数が入る。送信側は、そのオクテット数を超えないデータサイズを次回送信する。一般的にはＴＣＰ通信開始時点では通信装置間の伝送品質が不明であるため、当初のオクテット数は小さい値として受信側はＡｃｋを送信側に返送する。その後に送信側から送られてきたパケットのチェックサム検査により、伝送品質がよいと判断された場合にのみ、受信側は、ＷＩＮＤＯＷフィールドの値を増加させたＡｃｋを返送し、結果的に送信側がより大きなオクテット数を含むデータを送ることとなる。
【０１３２】
ここで、もし受信側が当初から伝送品質が良いとわかっており、かつ、受信側のバッファサイズも十分に準備されていれば、受信側はＴＣＰのパケットを受信するたびにＷＩＮＤＯＷフィールドの値を増減する必要はなく、受信パケットのチェックサム処理を処理テーブル内のチェーンを利用してスキップし、予め決められた大きな固定値をＷＩＮＤＯＷフィールドに設定すればよい。
【０１３３】
万が一、通信装置間の伝送路に障害が発生した場合は、例えば、受信側が、リンク層のエラー検出機能から得られる値を参照、蓄積および統計処理などを行い、その値が予め決められた閾値を超えたときのみ、ＷＩＮＤＯＷフィールドの値を適切なオクテット数減らす処理を行えばよい。こうすることにより、通信開始時点から、低処理量で高速なＴＣＰ通信が可能となる。
【０１３４】
その反対に、受信側が当初から伝送品質が悪いとわかっている場合、ＷＩＮＤＯＷ制御を行っても得る効果は少ない。そのため、受信側は、初めから少ない固定値のオクテット数をＷＩＮＤＯＷフィールドに設定し、処理テーブル内のチェーンを利用して、ＷＩＮＤＯＷ制御をスキップすれば、ＴＣＰ通信を低処理で行うことが可能となる。つまり、ＷＩＮＤＯＷフィールドを微小に増減しかできないＷＩＮＤＯＷ制御を省略することで、通信装置間で数多く行われるＴＣＰ処理を共通化することが可能となる。
【実施例３】
【０１３５】
次に、図１２を参照して、エラーチェックのクロスレイヤ処理について説明する。
【０１３６】
図１２は図９に示したプロトコル・スイートのうち、エラーチェック処理に着目して機能を記述したものである。
【０１３７】
リンク層Ｌ００１における無線ＬＡＮプロトコルＰ１１０は、パケットのエラーチェックを行うＷＬＡＮエラーチェック機能Ｆ１１２を有する。具体的には、ＷＬＡＮエラーチェック機能Ｆ１１２は、通信装置１００が無線ＬＡＮパケットを受信した際、そのパケット内のＣＲＣフィールドの値がパケット全体から計算したＣＲＣ（巡回冗長検査）と等しいか否かを確認し、それらの値が一致しなければ、基本的にそのパケットは破棄するという機能である。
【０１３８】
また、インターネット層Ｌ００２のＩＰ Ｐ２１０は、パケットのエラーチェックを行うＩＰエラーチェック機能Ｆ２１４を有する。具体的には、ＩＰエラーチェック機能Ｆ２１４は、パケット内のＩＰヘッダ部分に対して１の補数和の１の補数を計算し、チェックサムの値と比較することでエラーをチェックする。
【０１３９】
ＩＰと同様にＴＣＰにも、パケットのエラーチェックを行うＴＣＰエラーチェック機能Ｆ３１２がある。具体的には、ＴＣＰエラーチェック機能Ｆ３１２は、パケット内のＴＣＰヘッダとペイロード部分に対して１の補数和の１の補数を計算する処理である。
【０１４０】
ここで、ＩＰエラーチェック機能Ｆ２１４とＴＣＰエラーチェック機能Ｆ３１２は、その対象こそ異なるものの、処理内容は同じである。そこで、例えば、処理テーブル内で規定されたＴＣＰエラーチェック処理Ｆ３１２の代わりに、ＩＰエラーチェック機能Ｆ２１４を利用してもよい。すなわち処理テーブル内でＴＣＰエラーチェック機能Ｆ３１２の代わりにＩＰエラーチェック機能Ｆ２１４を実行するように規定しておけば、ＴＣＰエラーチェック機能Ｆ３１２をＩＰエラーチェック機能Ｆ２１４に置き換えることができる。このようにすることで、各プロトコル内で共通的な処理をまとめることができる。
【０１４１】
本実施形態によれば、第１の実施形態で説明した効果の他に、以下のような効果を得ることができる。
【０１４２】
本実施形態では、イベントとチェーンによって、プロトコルの機能の使用有無を自在に決定することができる。例えば、通信層をスキップするようなクロスレイヤアクセスまたは通信層の一部機能をスキップする処理がチェーン上「ＮＵＬＬ」と表現するだけで可能となる。
【０１４３】
また、イベントとチェーンによって、プロトコル内の機能の使用有無、処理順序などを自在に変更することができる。例えば、プロトコルのフルセットを実行することや、プロトコルの一部のみを実行、さらには異なる機能を組み合わせて新たなプロトコルの機能を実行することが容易である。
【０１４４】
さらに、チェーンによって、プロトコル内の機能のうち、共通的な処理をまとめて各プロトコルで指定して使うことができる。例えば、暗号化処理やデータのエラーチェック処理などの計算処理を個々のプロトコルで準備しておくことが不要となる。
【０１４５】
上述の実施形態および実施例では、本発明の通信装置をわかり易く説明するために、構成および動作を具体的に説明したが、本発明の通信装置は少なくとも次のような特徴を有している。
【０１４６】
図１３は本発明の一実施形態の通信装置の構成例を示すブロック図である。
【０１４７】
図１３に示すように、本発明の一実施形態の通信装置１０１は制御部１８０を有する。制御部１８０は、階層化された複数の通信層を介して外部の通信装置とデータを送受信する際、各通信層間でやりとりする情報をイベントと規定し、各通信層のプロトコルの処理動作を、イベント受信、イベント処理およびイベント送信という要素からなるイベントモデルで管理し、イベントモデルの単位で処理を実行する。制御部１８０は、通信層間でのデータのやりとりおよび各通信層でのプロトコル処理をイベントモデルの単位で実行することで、ある通信層においてイベント受信の後にイベント送信が規定されていれば、その通信層でプロトコル処理を行わずに次の通信層にデータを引き渡すクロスレイヤ処理が可能となる。
【０１４８】
本発明の通信制御方法を、電気通信の分野に属し、送信される情報および／または受信される情報を処理するために通信層（プロトコル・スタック／スイート）を用いるような通信システムの分野に適用することが可能である。
【符号の説明】
【０１４９】
１００、１０１    通信装置
１８０    制御部
１９０    記憶部
【図１】
2014072647.tif 000003
【図２】
2014072647.tif 000004
【図３】
2014072647.tif 000005
【図４】
2014072647.tif 000006
【図５】
2014072647.tif 000007
【図６Ａ】
2014072647.tif 000008
【図６Ｂ】
2014072647.tif 000009
【図７】
2014072647.tif 000010
【図８】
2014072647.tif 000011
【図９】
2014072647.tif 000012
【図１０】
2014072647.tif 000013
【図１１】
2014072647.tif 000014
【図１２】
2014072647.tif 000015
【図１３】
2014072647.tif 000016