(57)【要約】【課題】受信したデータに対するプロトコル処理を効率的に行うことができる通信装置、通信方法およびプログラムを提供する。【解決手段】実施形態の通信装置は、受信部と、抽出部と、統合部と、処理部と、を備える。受信部は、複数のサブフレームが集約された集約フレームを受信する。抽出部は、受信部により受信された集約フレームから、複数のサブフレームそれぞれを抽出する。統合部は、抽出部により抽出されたサブフレームのうち、同一のＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）コネクションに対応するサブフレームに統合する。処理部は、統合部により統合されたサブフレームに対してプロトコル処理を実行する。【選択図】図９
2017046325.tif 000002
【特許請求の範囲】
【請求項１】
複数のサブフレームが集約された集約フレームを受信する受信部と、
前記受信部により受信された前記集約フレームから、前記複数のサブフレームそれぞれを抽出する抽出部と、
前記抽出部により抽出された前記サブフレームのうち、同一のＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）コネクションに対応する前記サブフレームを統合する統合部と、
前記統合部により統合された前記サブフレームに対してプロトコル処理を実行する処理部と、
を備えた通信装置。
【請求項２】
前記統合部は、２以上の前記サブフレームの各サブフレームヘッダの情報から、いずれの前記サブフレームもＴＣＰセグメントを含み、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポートおよび宛先ポートがいずれも同じであり、かつ、前記各サブフレームのシーケンス番号が連続していると判定した場合、前記各サブフレームを統合する請求項１に記載の通信装置。
【請求項３】
前記統合部は、
前記抽出部により抽出された前記サブフレームのうち、２以上の前記サブフレームについて、同一のＴＣＰコネクションに対応し、かつ、前記サブフレームのシーケンス番号が連続するか否かに基づいて、セグメントデータを連結することが可能な前記サブフレームであるか否かを判定する判定部と、
前記判定部により、セグメントデータを連結することが可能であると判定された前記サブフレームを連結する連結部と、
を有し、
前記処理部は、前記連結部により連結されたサブフレームに対して前記プロトコル処理を実行する請求項１に記載の通信装置。
【請求項４】
前記判定部により、セグメントデータを連結することが可能であると判定された前記サブフレームを記憶する記憶部を、さらに備え、
前記連結部は、連結する前記セグメントデータが記憶されている前記記憶部におけるアドレスおよび長さを示すリスト情報を作成し、
前記処理部は、前記リスト情報によって前記記憶部から読み出した、連結する前記セグメントデータに対して前記プロトコル処理を実行する請求項３に記載の通信装置。
【請求項５】
前記統合部は、
同一のＴＣＰコネクションに対応する前記サブフレームを識別する識別情報を、該サブフレームに付加することで統合する情報付加部を有し、
前記処理部は、前記情報付加部により付加された前記識別情報を参照して、前記統合部により統合された前記サブフレームに対して前記プロトコル処理を実行する請求項１に記載の通信装置。
【請求項６】
前記統合部は、前記抽出部により抽出された前記サブフレームを、同一のＴＣＰコネクションに対応する前記サブフレームが連続するように並べ替える並べ替え部を、さらに有する請求項５に記載の通信装置。
【請求項７】
前記抽出部により抽出された前記サブフレームを記憶する記憶部を、さらに備え、
前記並べ替え部は、前記サブフレームが記憶されている前記記憶部におけるアドレスおよび長さを示すリスト情報を作成して、同一のＴＣＰコネクションに対応する前記サブフレームに対応する前記リスト情報を並べ替え、
前記処理部は、前記リスト情報によって前記記憶部から読み出した前記サブフレームに対して前記プロトコル処理を実行する請求項６に記載の通信装置。
【請求項８】
複数のサブフレームが集約された集約フレームを受信する受信ステップと、
受信した前記集約フレームから、前記複数のサブフレームそれぞれを抽出する抽出ステップと、
抽出した前記サブフレームのうち、同一のＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）コネクションに対応する前記サブフレームを統合する統合ステップと、
統合した前記サブフレームに対してプロトコル処理を実行する処理ステップと、
を有する通信方法。
【請求項９】
コンピュータを、
複数のサブフレームが集約された集約フレームを受信する受信部により受信された前記集約フレームから、前記複数のサブフレームそれぞれを抽出する抽出部と、
前記抽出部により抽出された前記サブフレームのうち、同一のＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）コネクションに対応する前記サブフレームを統合する統合部と、
前記統合部により統合された前記サブフレームに対してプロトコル処理を実行する処理部と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置、通信方法およびプログラムに関する。
【背景技術】
【０００２】
ＩＥＥＥ  ８０２．１１準拠の無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）の規格においては、物理層の上位層として、データリンク層（媒体アクセス制御（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ：ＭＡＣ）副層、および論理リンク制御（Ｌｏｇｉｃａｌ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ：ＬＬＣ）副層を含む）、ネットワーク層（イン
ターネット・プロトコル（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ：ＩＰ）が適用される）、トランスポート層（伝送制御プロトコル（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ：ＴＣＰ）が適用される）、およびアプリケーション層等の階層がある。このような階層処理に基づく通信技術において、ユーザデータを含む複数のデータリンク層のフレームを１つの物理層フレームに集約し、送信される物理層フレームのユーザデータの量を増やす技術が開示されている。
【０００３】
これらの複数のフレームは、物理層では集約されるが、データリンク層より上位の層では集約されないため、それぞれ独立のものとして扱われる。例えば、データリンク層の複数のフレームのペイロードが上位層であるネットワーク層のＩＰのパケットである場合、それらフレームを集約して１つの物理層フレームとして送信する場合でも、ＩＰのプロトコル処理（以下、「ＩＰプロトコル処理」という）は、パケット毎に別々に行う必要がある。具体的には、送信時には、各パケットに対してＩＰプロトコル処理をしてデータリンク層のフレームへ格納した後に物理層フレームへの集約を行う。一方、受信時には、物理層フレームを複数のデータリンク層のフレームに分割した後で、各データリンク層のフレームに含まれるパケットに対してＩＰプロトコル処理を行う。
【０００４】
さらに、これらのパケットのペイロードがＴＣＰセグメントであった場合、送信時には、ＩＰプロトコル処理の前にＴＣＰのプロトコル処理（以下、「ＴＣＰプロトコル処理」という）を行い、受信時には、ＩＰプロトコル処理の後でＴＣＰプロトコル処理を行う。特に、受信時に複数のパケットが同じＴＣＰコネクションの異なるＴＣＰセグメントを扱うものであった場合は、ＴＣＰプロトコル処理の結果としてそれらＴＣＰセグメントのデータ（セグメントデータ）が連結されて、一連のデータストリームとしてアプリケーション層等に渡される。このように、複数のパケットが一連のデータストリームに最終的にまとめられる場合であっても、１パケット毎に、ＩＰプロトコル処理およびＴＣＰプロトコル処理を行わなければならない。さらに、受信時のＴＣＰプロトコル処理としてのＴＣＰコネクションの識別処理のため、ＩＰヘッダに含まれる送信元ＩＰアドレスおよび宛先ＩＰアドレス、ならびに、ＴＣＰヘッダに含まれる送信元ポートおよび宛先ポートの４つの値から構成される識別情報を使用して行われる。ＴＣＰコネクションの識別処理では、上述の識別情報を使用して、ＴＣＰコネクションに対応する内部変数を保持する転送制御ブロック（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ：ＴＣＢ）を探索する処理が行われ、このＴＣＰコネクションの識別処理も１パケット毎に行わなければならない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１８４８３９号公報
【特許文献２】米国特許第５７５４７６８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上記に鑑みてなされたものであって、受信したデータに対するプロトコル処理を効率的に行うことができる通信装置、通信方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施形態の通信装置は、受信部と、抽出部と、統合部と、処理部と、を備える。受信部は、複数のサブフレームが集約された集約フレームを受信する。抽出部は、受信部により受信された集約フレームから、複数のサブフレームそれぞれを抽出する。統合部は、抽出部により抽出されたサブフレームのうち、同一のＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）コネクションに対応するサブフレームに統合する。処理部は、統合部により統合されたサブフレームに対してプロトコル処理を実行する。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態の通信システムの全体構成の一例を示す図である。
【図２】図２は、第１の実施形態の通信端末のハードウェア構成を示す図である。
【図３】図３は、物理層フレームおよびサブフレームの構成を示す図である。
【図４】図４は、ＭＡＣヘッダの構成を示す図である。
【図５】図５は、ＬＬＣヘッダの構成を示す図である。
【図６】図６は、ＩＰヘッダの構成を示す図である。
【図７】図７は、ＴＣＰヘッダの構成を示す図である。
【図８】図８は、ＴＣＰヘッダのフラグの構成を示す図である。
【図９】図９は、第１の実施形態の通信端末の機能ブロック構成図である。
【図１０】図１０は、サブフレーム情報テーブルの構成の一例を示す図である。
【図１１】図１１は、サブフレームを連結する動作を説明する図である。
【図１２】図１２は、ＴＣＢ情報テーブルの構成の一例を示す図である。
【図１３】図１３は、第１の実施形態の受信データ処理のフローチャートである。
【図１４】図１４は、第２の実施形態の通信端末の機能ブロック構成図である。
【図１５】図１５は、サブフレームを並び替える動作を説明する図である。
【図１６】図１６は、サブフレームに識別情報を付加する動作を説明する図である。
【図１７】図１７は、第２の実施形態の受信データ処理のフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、図面を参照しながら、本発明の実施形態に係る通信装置、通信方法およびプログラムを詳細に説明する。ただし、図面は模式的なものであるため、具体的な構成は以下の説明を参酌して判断すべきものである。
【００１０】
（第１の実施形態）
図１は、第１の実施形態の通信システムの全体構成の一例を示す図である。図１を参照しながら、通信システム１の全体構成について説明する。
【００１１】
図１に示すように、第１の実施形態に係る通信システム１は、通信端末１０と、アクセスポイント２０と、ルータ３０と、を含む。
【００１２】
通信端末１０は、アクセスポイント２０との間で無線通信によるデータの送受信を行う端末装置である。通信端末１０は、例えば、無線通信Ｉ／Ｆを有するタブレット端末またはＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等である。通信端末１０は、例えば、Ｗｉ−Ｆｉ（登録商標）等の無線ＬＡＮ規格に従って無線通信を行う。
【００１３】
アクセスポイント２０は、通信ネットワークの末端で、例えば、通信端末１０等からの接続要求を受け付け、インターネット等のネットワークへの通信を仲介する施設または機器である。
【００１４】
ルータ３０は、通信ネットワークにおいて、通信データを２つ以上の異なるネットワーク間で中継する通信機器である。図１に示す通信システム１の例では、ルータ３０は、通信端末１０とアクセスポイント２０との無線ＬＡＮによるネットワークと、インターネット４０との、２つのネットワークを中継する。
【００１５】
なお、図１に示す通信システム１の構成は一例であり、この構成に限定されるものではない。例えば、図１では通信端末１０が一台のみ図示されているが、複数の通信端末１０が、アクセスポイント２０と無線通信を行う構成であってもよい。
【００１６】
図２は、第１の実施形態の通信端末のハードウェア構成の一例を示す図である。図２を参照しながら、本実施形態に係る通信端末１０のハードウェア構成について説明する。
【００１７】
図２に示すように、通信端末１０は、通信Ｉ／Ｆ９０１と、アンテナ９０１ａと、ＣＰＵ９０２と、ＲＯＭ９０３と、ＲＡＭ９０４と、補助記憶装置９０５と、入力装置９０６と、表示装置９０７と、を備えている。
【００１８】
通信Ｉ／Ｆ９０１は、アンテナ９０１ａを介して、アクセスポイント２０と無線通信を行うためのインターフェースである。
【００１９】
ＣＰＵ９０２は、通信端末１０全体の動作を制御する装置である。ＲＯＭ９０３は、通信端末１０用のファームウェア等のプログラムを記憶している不揮発性記憶装置である。ＲＡＭ９０４は、ＣＰＵ９０２のワークエリアとして使用される揮発性記憶装置である。
【００２０】
補助記憶装置９０５は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、アプリケーションプログラム、および各種データを記憶するＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）またはＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置である。
【００２１】
入力装置９０６は、文字および数字等の入力、各種指示の選択、ならびにカーソルの移動等の操作を行うためのマウス、キーボードまたはタッチパネル等の入力装置である。表示装置９０７は、カーソル、メニュー、ウィンドウ、文字または画像等の各種情報を表示するタッチパネル、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、プラズマディスプレイ、または有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等の表示装置である。
【００２２】
上述の通信Ｉ／Ｆ９０１、ＣＰＵ９０２、ＲＯＭ９０３、ＲＡＭ９０４、補助記憶装置９０５、入力装置９０６、および表示装置９０７は、アドレスバスおよびデータバス等のバス９０９によって互いに通信可能に接続されている。
【００２３】
なお、上述の通信端末１０用のプログラムは、インストール可能な形式または実行可能な形式のファイルによって、ＣＤ−ＲＯＭ、ＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅｃｏｒｄａｂｌｅ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）またはブルーレイディスク等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
【００２４】
図３は、物理層フレームおよびサブフレームの構成を示す図である。図４は、ＭＡＣヘッダの構成を示す図である。図５は、ＬＬＣヘッダの構成を示す図である。図６は、ＩＰヘッダの構成を示す図である。図７は、ＴＣＰヘッダの構成を示す図である。図８は、ＴＣＰヘッダのフラグの構成を示す図である。図３〜８を参照しながら、通信端末１０とアクセスポイント２０との間で無線通信される通信データの構成について説明する。
【００２５】
まず、図３を参照しながら、物理層フレーム２０１（集約フレーム）、およびサブフレーム２１２の構成について説明する。図３（ａ）は、通信端末１０とアクセスポイント２０との間で無線通信される通信データを構成する物理層フレーム２０１の構成を示す図である。物理層フレーム２０１は、物理層でプロトコル処理が行われるデータである。図３（ａ）に示すように、物理層フレーム２０１は、物理層ヘッダ２１１の後に、複数のサブフレーム２１２（サブフレーム２１２＿１、２１２＿２、・・・、２１２＿ｎ）が連結されている。すなわち、物理層フレーム２０１には、複数のサブフレーム２１２が集約されている構成となっている。各サブフレーム２１２は、様々な上位層のプロトコル（例えば、ＴＣＰ／ＩＰまたはＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）／ＩＰ等）のデータをペイロードとして含む場合がある。一般に、物理層フレーム２０１は、異なる上位層のプロトコルのデータである複数のサブフレーム２１２が連結されている。
【００２６】
図３（ｂ）は、物理層フレーム２０１に含まれ、かつ、ＴＣＰセグメント２２６をペイロードとして含むサブフレーム２１２の構成を示す図である。サブフレーム２１２は、物理層の上位層であるデータリンク層でプロトコル処理が行われるデータである。図３（ｂ）に示すように、サブフレーム２１２は、ＭＡＣヘッダ２２１と、ＬＬＣヘッダ２２２と、ＩＰヘッダ２２３と、ＴＣＰヘッダ２２４と、セグメントデータ２２５と、を含む。ここで、ＴＣＰセグメント２２６とは、ＴＣＰプロトコル処理の対象となるＴＣＰヘッダ２２４およびセグメントデータ２２５のデータをいうものとする。また、サブフレーム２１２のうち、データ本体部分であるセグメントデータ２２５以外のヘッダ部分（ＭＡＣヘッダ２２１、ＬＬＣヘッダ２２２、ＩＰヘッダ２２３およびＴＣＰヘッダ２２４）を、サブフレームヘッダ２２０というものとする。
【００２７】
ＭＡＣヘッダ２２１は、データリンク層の媒体アクセス制御（ＭＡＣ）副層のプロトコル処理を行うために、サブフレーム２１２に関して付加された情報である。ＬＬＣヘッダ２２２は、データリンク層の論理リンク制御（ＬＬＣ）副層のプロトコル処理を行うために、サブフレーム２１２に関して付加された情報である。
【００２８】
ＩＰヘッダ２２３は、ネットワーク層のＩＰプロトコル処理を行うために、サブフレーム２１２が含むパケットに関して付加された情報である。ここで、パケットとは、ＩＰプロトコル処理の対象となるＩＰヘッダ２２３、ＴＣＰヘッダ２２４およびセグメントデータ２２５のデータをいうものとする。
【００２９】
ＴＣＰヘッダ２２４は、トランスポート層のＴＣＰプロトコル処理を行うために、サブフレーム２１２が含むＴＣＰセグメントに関して付加された情報である。
【００３０】
セグメントデータ２２５は、通信端末１０とアクセスポイント２０との間で無線通信の実質的な対象となるデータである。セグメントデータ２２５は、サブフレーム２１２に対する各種プロトコル処理を経て、アプリケーション等に渡される。
【００３１】
次に、図４を参照しながら、ＭＡＣヘッダ２２１の構成について説明する。図４に示すように、ＭＡＣヘッダ２２１は、フレーム制御３０１と、デュレーション／ＩＤ３０２と、アドレス（１）３０３と、アドレス（２）３０４と、アドレス（３）３０５と、シーケンス制御３０６と、アドレス（４）３０７と、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）制御３０８と、を含む。
【００３２】
フレーム制御３０１は、サブフレーム２１２のフレームの種類、フレームの宛先、送信元が無線か有線かどうか、フラグメント情報、および電力管理等の情報を含む。デュレーション／ＩＤ３０２は、ＲＴＳ（Ｒｅｑｕｅｓｔ  ｔｏ  Ｓｅｎｄ）／ＣＴＳ（Ｃｌｅａｒ  ｔｏ  Ｓｅｎｄ）等で使用する情報である。
【００３３】
アドレス（１）３０３、アドレス（２）３０４、アドレス（３）３０５およびアドレス（４）３０７は、宛先のＭＡＣアドレス、送信元のＭＡＣアドレス、およびアクセスポイントのＭＡＣアドレス（Ｂａｓｉｃ  Ｓｅｒｖｉｃｅ  Ｓｅｔ  Ｉｄｅｎｔｉｆｉｅｒ：ＢＳＳＩＤ）等の情報を含む。
【００３４】
シーケンス制御３０６は、送信するデータのシーケンス番号、またはフラグメント化した場合のフラグメント番号の情報を含む。ＱｏＳ制御３０８は、ＱｏＳに関する情報である。
【００３５】
上述のフレーム制御３０１、デュレーション／ＩＤ３０２、およびアドレス（１）３０３は、ＭＡＣヘッダ２２１に必ず含まれる。一方、アドレス（２）３０４、アドレス（３）３０５、シーケンス制御３０６、アドレス（４）３０７、およびＱｏＳ制御３０８は、ＭＡＣヘッダ２２１に含まれる場合と含まれない場合とがある。ＭＡＣヘッダ２２１に含まれるか否かは、フレーム制御３０１の情報により判別される。
【００３６】
次に、図５を参照しながら、ＬＬＣヘッダ２２２の構成について説明する。図５に示すように、ＬＬＣヘッダ２２２は、宛先ＳＡＰ（Ｓｅｒｖｉｃｅ  Ａｃｃｅｓｓ  Ｐｏｉｎｔ）４０１と、送信元ＳＡＰ４０２と、コントロールバイト４０３と、ＯＵＩ（Ｏｒｇａｎｉｚａｔｉｏｎａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）４０４と、プロトコルＩＤ４０５と、を含む。
【００３７】
宛先ＳＡＰ４０１は、送信先のサービスを示す情報である。送信元ＳＡＰ４０２は、送信元のサービスを示す情報である。コントロールバイト４０３は、各種制御情報である。ＯＵＩ４０４は、ＭＡＣアドレスの前半部分を指す情報である。プロトコルＩＤ４０５は、上位層のプロトコルがなんであるかを識別するための番号を示す情報である。
【００３８】
上述のＯＵＩ４０４およびプロトコルＩＤ４０５は、ＳＮＡＰ（Ｓｕｂｎｅｔｗｏｒｋ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）拡張フィールドであり、宛先ＳＡＰ４０１および送信元ＳＡＰ４０２がＳＮＡＰ拡張フィールドを示す値である場合のみ、ＬＬＣヘッダ２２２に含まれる。
【００３９】
次に、図６を参照しながら、ＩＰヘッダ２２３の構成について説明する。図６に示すように、ＩＰヘッダ２２３は、バージョン５０１と、ヘッダ長５０２と、サービス種別５０３と、全長５０４と、識別子５０５と、フラグ５０６と、断片位置５０７と、生存時間５０８と、プロトコル５０９と、チェックサム５１０と、送信元アドレス５１１と、宛先アドレス５１２と、拡張情報５１３と、を含む。
【００４０】
バージョン５０１は、「４」であればＩＰｖ４、「６」であればＩＰｖ６であることを示す情報である。ヘッダ長５０２は、ＩＰヘッダ２２３の長さを示す情報である。サービス種別５０３は、パケットの優先順位を決めるための数値が格納される。
【００４１】
全長５０４は、ＩＰヘッダ２２３を含めたパケット全体の長さを示す情報である。識別子５０５は、元は同じで分割されたデータなのか、全く別のデータなのかを識別するための情報である。例えば、分割されたデータのＩＰヘッダ２２３内の識別子５０５には、全て同じ値が入る。
【００４２】
フラグ５０６は、パケットの分割を制御する場合に使用される情報である。断片位置５０７は、分割されたパケットが、元のデータではどこの位置にあるのかを示す情報である。生存時間５０８は、パケットがルータを経由する度に基本的には「１」ずつ減っていき、「０」になった時点でパケットが破棄されることを示す情報である。
【００４３】
プロトコル５０９は、ネットワーク層の上位層のプロトコル（例えば、ＴＣＰまたはＵＤＰ等）を示す情報である。チェックサム５１０は、パケットに誤りがないか否かをチェックするための情報である。
【００４４】
送信元アドレス５１１は、送信元のＩＰアドレスを示す情報である。宛先アドレス５１２は、宛先のＩＰアドレスを示す情報である。拡張情報５１３は、パケットに付加するオプションを指定する情報である。
【００４５】
次に、図７を参照しながら、ＴＣＰヘッダ２２４の構成について説明する。図７に示すように、ＴＣＰヘッダ２２４は、送信元ポート６０１と、宛先ポート６０２と、シーケンス番号６０３と、確認応答番号６０４と、ヘッダ長６０５と、フラグ６０６と、ウィンドウサイズ６０７と、ヘッダチェックサム６０８と、緊急ポインタ６０９と、オプション６１０と、を含む。
【００４６】
送信元ポート６０１は、送信元のアプリケーションを識別するためのポート番号を示す情報である。宛先ポート６０２は、宛先のアプリケーションを識別するためのポート番号を示す情報である。
【００４７】
シーケンス番号６０３は、送信するデータに順序をつけるための番号を示す情報である。確認応答番号６０４は、受信したデータに対して、どこまで受信できたのかをバイト位置で示す情報である。
【００４８】
ヘッダ長６０５は、ＴＣＰヘッダ２２４のサイズを示す情報である。フラグ６０６は、各種のフラグに利用する情報である。フラグ６０６の構成の詳細は、図８で後述する。
【００４９】
ウィンドウサイズ６０７は、受信側のウィンドウサイズを相手に伝えるために利用する情報である。ヘッダチェックサム６０８は、ＴＣＰセグメントの整合性を検査するための検査用データを示す情報である。緊急ポインタ６０９は、図８に示すＵＲＧビット７０４が「１」の場合のみ有効であり、緊急データの場所を示す情報である。オプション６１０は、ＴＣＰコネクションの特性を設定するために利用される可変長の情報である。ただし、ヘッダ長６０５の値が「５」である場合、オプション６１０は省略される。
【００５０】
次に、図８を参照しながら、ＴＣＰヘッダ２２４のフラグ６０６の構成について説明する。図８に示すように、フラグ６０６は、ＮＳビット７０１と、ＣＷＲビット７０２と、ＥＣＥビット７０３と、ＵＲＧビット７０４と、ＡＣＫビット７０５と、ＰＳＨビット７０６と、ＲＳＴビット７０７と、ＳＹＮビット７０８と、ＦＩＮビット７０９と、を含む。
【００５１】
ＣＷＲビット７０２は、輻輳ウィンドウの減少を通知するフラグである。ＥＣＥビット７０３は、輻輳の発生を相手に通知するフラグである。
【００５２】
ＵＲＧビット７０４は、緊急データが含まれていることを示すフラグである。ＡＣＫビット７０５は、有効な確認応答番号６０４がＴＣＰヘッダ２２４に含まれていることを示すフラグである。ＰＳＨビット７０６は、受信したデータをすぐにアプリケーションに渡すことを要求するためのフラグである。
【００５３】
ＲＳＴビット７０７は、ＴＣＰコネクションを中断または拒否したい場合にセットするフラグである。ＳＹＮビット７０８は、ＴＣＰにおける３ウェイハンドシェイク時のオープン処理の開始に双方のそれぞれが当該ビットをオンにして、確認応答番号６０４を同期させるフラグである。ＦＩＮビット７０９は、ＴＣＰコネクションを終了させるためにセットされるフラグである。
【００５４】
図９は、第１の実施形態の通信端末の機能ブロック構成の一例を示す図である。図１０は、サブフレーム情報テーブルの構成の一例を示す図である。図１１は、サブフレームを連結する動作を説明する図である。図１２は、ＴＣＢ情報テーブルの構成の一例を示す図である。図９〜１２を参照しながら、本実施形態に係る通信端末１０の機能ブロックの構成および動作について説明する。
【００５５】
図９に示すように、第１の実施形態に係る通信端末１０は、受信部１０１と、抽出部１０２と、記憶部１０３と、統合部１０４と、プロトコル処理部１０５（処理部）と、を有する。
【００５６】
受信部１０１は、アクセスポイント２０から無線通信によりデータ（物理層フレーム２０１）を受信する機能部である。受信部１０１は、図２に示す通信Ｉ／Ｆ９０１およびアンテナ９０１ａによって実現される。
【００５７】
抽出部１０２は、受信した物理層フレーム２０１に含まれる複数のサブフレーム２１２を抽出する機能部である。
【００５８】
記憶部１０３は、後述するように、統合部１０４の作成部１０４ａが作成した図１０に示すサブフレーム情報テーブル１００１を記憶する機能部である。記憶部１０３は、図２に示すＲＡＭ９０４または補助記憶装置９０５によって実現される。
【００５９】
統合部１０４は、抽出部１０２により抽出されたサブフレーム２１２を統合する機能部である。統合部１０４は、作成部１０４ａと、判定部１０４ｂと、連結部１０４ｃと、を有する。
【００６０】
作成部１０４ａは、抽出部１０２により抽出された複数のサブフレーム２１２のサブフレームヘッダ２２０の各フィールドの値を用いて、図１０に示すサブフレーム情報テーブル１００１を作成する機能部である。作成部１０４ａは、作成したサブフレーム情報テーブル１００１を記憶部１０３に記憶させる。図１０に示すサブフレーム情報テーブル１００１において、各行が、抽出部１０２により抽出された各サブフレーム２１２についての情報に対応する。サブフレーム情報テーブル１００１は、図１０に示すように、「サブフレーム番号」、「抽出対象ＴＣＰセグメント有無」、「送信元ＩＰアドレス」、「宛先ＩＰアドレス」、「送信元ポート」、「宛先ポート」、「シーケンス番号」、「確認応答番号」および「セグメント長」の各フィールド（列）を有する。
【００６１】
「サブフレーム番号」は、抽出部１０２により抽出された各サブフレーム２１２を識別する番号である。
【００６２】
「抽出対象ＴＣＰセグメント有無」は、そのサブフレーム２１２のサブフレームヘッダ２２０の内容に基づいて判定された、サブフレーム２１２にＴＣＰセグメント２２６が含まれており、かつ、そのＴＣＰセグメント２２６のセグメントデータ２２５が、他のＴＣＰセグメント２２６のセグメントデータ２２５と連結可能であるか否かを示す情報である。「抽出対象ＴＣＰセグメント有無」が「無」の場合、そのサブフレーム２１２には、ＴＣＰセグメント２２６が含まれていない、または、ＴＣＰセグメント２２６が含まれているものとしても、そのＴＣＰセグメント２２６のセグメントデータ２２５が、他のＴＣＰセグメント２２６のセグメントデータ２２５と連結可能でないことを示す。一方、「抽出対象ＴＣＰセグメント有無」が「有」の場合、そのサブフレーム２１２には、ＴＣＰセグメント２２６が含まれており、かつ、そのＴＣＰセグメント２２６のセグメントデータ２２５が、他のＴＣＰセグメント２２２６のセグメントデータ２２５と連結可能であることを示す。
【００６３】
作成部１０４ａは、サブフレーム２１２にＴＣＰセグメント２２６が含まれているか否かを、以下の条件（１）〜（８）のすべてを満たすか否かにより判定する。作成部１０４ａは、以下の条件（１）〜（８）のすべてを満たす場合、サブフレーム２１２にＴＣＰセグメント２２６が含まれていると判定する。
【００６４】
（１）ＭＡＣヘッダ２２１のフレーム制御３０１の値が、データフレームを示していること。
（２）ＬＬＣヘッダ２２２にＳＮＡＰ拡張フィールドが存在すること。
（３）ＬＬＣヘッダ２２２のＯＵＩ４０４の値が、「０」であること。
（４）ＬＬＣヘッダ２２２のプロトコルＩＤ４０５の値が、ＩＰｖ４またはＩＰｖ６を示すこと。
（５）ＩＰヘッダ２２３のバージョン５０１の値が、ＩＰｖ４またはＩＰｖ６を示すこと。
（６）ＩＰヘッダ２２３のプロトコル５０９の値が、ＴＣＰを示すこと。
（７）ＩＰヘッダ２２３の断片位置５０７の値が、「０」であること。
（８）パケットの全長、すなわち、ＩＰヘッダ２２３の全長５０４の値から、ＩＰヘッダ２２３のヘッダ長５０２、およびＴＣＰヘッダ２２４のヘッダ長６０５の値を引いた値が「０」よりも大きいこと。
【００６５】
作成部１０４ａは、サブフレーム２１２にＴＣＰセグメント２２６が含まれていないと判定した場合、サブフレーム情報テーブル１００１でそのサブフレーム２１２に対応する行の「抽出対象ＴＣＰセグメント有無」の列に「無」と書き込む。
【００６６】
また、作成部１０４ａは、ＴＣＰセグメント２２６のセグメントデータ２２５が、他のＴＣＰセグメント２２６のセグメントデータ２２５と連結可能であるか否かを、以下の条件（１１）〜（１３）のすべてを満たすか否かにより判定する。作成部１０４ａは、サブフレーム２１２にＴＣＰセグメント２２６が含まれており、かつ、そのＴＣＰセグメント２２６のセグメントデータ２２５が、他のＴＣＰセグメント２２２６のセグメントデータ２２５と連結可能であると判定した場合、サブフレーム情報テーブル１００１でそのサブフレーム２１２に対応する行の「抽出対象ＴＣＰセグメント有無」の列に「有」と書き込む。また、作成部１０４ａは、サブフレーム２１２にＴＣＰセグメント２２６が含まれているものとしても、そのＴＣＰセグメント２２６のセグメントデータ２２５が、他のＴＣＰセグメント２２６のセグメントデータ２２５と連結可能でないと判定した場合、サブフレーム情報テーブル１００１でそのサブフレーム２１２に対応する行の「抽出対象ＴＣＰセグメント有無」の列に「無」と書き込む。
【００６７】
（１１）ＩＰヘッダ２２３の拡張情報５１３が省略されていること。
（１２）ＩＰパケットがフラグメント化されていない、すなわち、ＩＰヘッダ２２３のフラグ５０６が後続するフラグメントの存在を示さず、かつ、ＩＰヘッダ２２３の断片位置５０７の値が「０」であること。
（１３）ＴＣＰヘッダ２２４のフラグ６０６のＡＣＫビット７０５が「１」であり、かつ、ＵＲＧビット７０４、ＲＳＴビット７０７、ＳＹＮビット７０８およびＦＩＮビット７０９がいずれも「０」であること。
【００６８】
サブフレーム情報テーブル１００１の「抽出対象ＴＣＰセグメント有無」の列が「無」である場合、対応するサブフレーム２１２は、ＴＣＰセグメントを有するとは限らないため、サブフレーム情報テーブル１００１のその他の列の値は、意味を有さない。一方、「抽出対象ＴＣＰセグメント有無」の列が「有」である場合、作成部１０４ａは、サブフレーム情報テーブル１００１の各サブフレーム２１２に対応する行における、その他の列に、以下のような値を書き込む。作成部１０４ａは、「送信元ＩＰアドレス」の列に、ＩＰヘッダ２２３の送信元アドレス５１１を書き込む。作成部１０４ａは、「宛先ＩＰアドレス」の列に、ＩＰヘッダ２２３の宛先アドレス５１２を書き込む。作成部１０４ａは、「送信元ポート」の列に、ＴＣＰヘッダ２２４の送信元ポート６０１を書き込む。作成部１０４ａは、「宛先ポート」の列に、ＴＣＰヘッダ２２４の宛先ポート６０２を書き込む。作成部１０４ａは、「シーケンス番号」の列に、ＴＣＰヘッダ２２４のシーケンス番号６０３を書き込む。作成部１０４ａは、「確認応答番号」の列に、ＴＣＰヘッダ２２４の確認応答番号６０４を書き込む。作成部１０４ａは、「セグメント長」の列に、ＩＰヘッダ２２３の全長５０４の値から、ＩＰヘッダ２２３のヘッダ長５０２の値、およびＴＣＰヘッダ２２４のヘッダ長６０５の値を引いた値を、オクテット単位に換算した値を書き込む。
【００６９】
なお、図１０に示すサブフレーム情報テーブル１００１の形式は一例を示すものであり、上述の各列の対応関係を規定する情報であれば、どのような形式であってもよい。
【００７０】
判定部１０４ｂは、サブフレーム情報テーブル１００１を参照し、抽出部１０２により抽出された各サブフレーム２１２に対応する行の値が、以下の条件（２１）〜（２３）のすべてを満たすか否かを判定することによって、具体的に、２つ以上のサブフレーム２１２について、セグメントデータ２２５が連結可能なサブフレーム２１２であるか否かを判定する機能部である。判定部１０４ｂは、以下の条件（２１）〜（２３）のすべてを満たす場合、２つ以上のサブフレーム２１２について、セグメントデータ２２５が連結可能なサブフレーム２１２であると判定する。
【００７１】
（２１）サブフレーム情報テーブル１００１の「抽出対象ＴＣＰセグメント有無」の列が共に「有」であること。
（２２）サブフレーム情報テーブル１００１の「送信元ＩＰアドレス」、「宛先ＩＰアドレス」、「送信元ポート」、「宛先ポート」および「確認応答番号」の各列の値が、それぞれ同じであること。
（２３）対象となるサブフレーム２１２を「シーケンス番号」で昇順に整列したときに、「シーケンス番号」が最大であるサブフレーム２１２以外のサブフレーム２１２に関して、サブフレーム２１２の「シーケンス番号」に、そのサブフレーム２１２の「セグメント長」を加算した値が、次のサブフレーム２１２の「シーケンス番号」と一致していること。
【００７２】
連結部１０４ｃは、判定部１０４ｂにより２つ以上のサブフレーム２１２について、セグメントデータ２２５が連結可能と判定されたサブフレーム２１２を連結する機能部である。連結部１０４ｃは、図１１に示すように、例えば、判定部１０４ｂにより、サブフレームヘッダ２２０＿１およびセグメントデータ２２５＿１で構成されるサブフレーム、サブフレームヘッダ２２０＿２およびセグメントデータ２２５＿２で構成されるサブフレーム、およびサブフレームヘッダ２２０＿３およびセグメントデータ２２５＿３で構成されるサブフレームが連結可能と判定された場合、例えば、サブフレームヘッダ２２０＿１をコピーしてその内容を一部変更して、新たなサブフレームヘッダ２２０ａを生成する。次に、連結部１０４ｃは、セグメントデータ２２５＿１、２２５＿２、２２５＿３をそれぞれコピーして連結し、新たなセグメントデータ２２５ａを生成する。そして、連結部１０４ｃは、新たに生成したサブフレームヘッダ２２０ａとセグメントデータ２２５ａとを組み合わせて、新たな連結されたサブフレームを生成する。
【００７３】
さらに具体的に説明すると、連結部１０４ｃは、判定部１０４ｂによりセグメントデータ２２５が連結可能と判定されたサブフレーム２１２（以下、第１の実施形態で「一連のサブフレーム２１２」という）の１つのサブフレーム２１２（例えば、それらの中で、シーケンス番号６０３が最も小さなサブフレーム２１２）のサブフレームヘッダ２２０をコピーして、コピーしたサブフレームヘッダ２２０のＴＣＰヘッダ２２４のシーケンス番号６０３の値を、一連のサブフレーム２１２の中も最も小さなシーケンス番号６０３の値に変更する。次に、連結部１０４ｃは、コピーしたサブフレームヘッダ２２０のＩＰヘッダ２２３の全長５０４の値を、一連のサブフレーム２１２の各セグメント長（サブフレーム情報テーブル１００１の「セグメント長」）の合計と、コピーしたサブフレームヘッダ２２０のＩＰヘッダ２２３のヘッダ長５０２と、ＴＣＰヘッダ２２４のヘッダ長６０５と、の合計値に変更する。次に、連結部１０４ｃは、一連のサブフレーム２１２の中の１以上のサブフレーム２１２について、ＴＣＰヘッダ２２４のフラグ６０６のＰＳＨビット７０６が「１」である場合、コピーしたサブフレームヘッダ２２０のＴＣＰヘッダ２２４のフラグ６０６のＰＳＨビット７０６を「１」に変更する。次に、連結部１０４ｃは、コピーしたサブフレームヘッダ２２０のＴＣＰヘッダ２２４のヘッダチェックサム６０８を再計算して、ヘッダチェックサム６０８の値を、再計算した値に変更する。そして、連結部１０４ｃは、コピーしたサブフレームヘッダ２２０の後に、一連のサブフレーム２１２のセグメントデータ２２５を、各サブフレーム２１２のシーケンス番号６０３が小さい順にコピーして連結する。さらに、連結部１０４ｃは、コピーしたサブフレームヘッダ２２０（図１１に示すサブフレームヘッダ２２０ａ）、および連結したセグメントデータ（図１１に示すセグメントデータ２２５ａ）のチェックサムを計算して、コピーしたサブフレームヘッダ２２０のＩＰヘッダ２２３のチェックサム５１０の値を、計算したチェックサムに変更する。
【００７４】
プロトコル処理部１０５は、連結部１０４ｃにより連結されたサブフレームに対して、汎用のＯＳ等に実装されているＴＣＰ／ＩＰスタック等によって、ＩＰプロトコル処理およびＴＣＰプロトコル処理等のプロトコル処理を実行する機能部である。一般に、ＴＣＰ／ＩＰスタックは、ＴＣＰコネクションの状態に関する情報を内部変数としてＴＣＢに保持している。複数のＴＣＰコネクションは、それぞれ、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート、および宛先ポートの４つの値を識別情報として識別される。そのため、プロトコル処理部１０５は、ＴＣＰプロトコル処理としてのＴＣＰコネクションの識別処理において、この識別情報からＴＣＢを探索する。ＴＣＢを探索するために、プロトコル処理部１０５におけるＴＣＰ／ＩＰスタックが使うデータ構造の例を示したのが図１２に示すＴＣＢ情報テーブル１００２である。図１２に示すＴＣＢ情報テーブル１００２は、各行が１つのＴＣＰコネクションに対応した情報となっており、プロトコル処理部１０５は、受信したサブフレーム２１２に含まれる送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート、および宛先ポートの４つの値から、対応するＴＣＢを参照する。なお、ＴＣＢを探索するためのデータ構造は、図１２のＴＣＢ情報テーブル１００２のような単純なテーブル形式ではなく、ハッシュテーブル等のデータ構造であってもよい。
【００７５】
なお、連結部１０４ｃは、実際に、一連のサブフレーム２１２のセグメントデータ２２５をコピーするのではなく、記憶部１０３に記憶されている一連のサブフレーム２１２のセグメントデータ２２５のアドレスおよび長さのリストを作成して、そのリストをプロトコル処理部１０５に送るものとしてもよい。この場合、プロトコル処理部１０５は、連結部１０４ｃから受け取ったリストに記載されたアドレスからセグメントデータ２２５を読み出して使用するものとすればよい。
【００７６】
また、作成部１０４ａにより、受信した物理層フレーム２０１について作成されたサブフレーム情報テーブル１００１は、プロトコル処理部１０５によるプロトコル処理の終了後に削除するものとしてもよい。
【００７７】
上述の抽出部１０２、統合部１０４およびプロトコル処理部１０５は、図２に示すＲＯＭ９０３または補助記憶装置９０５に記憶されたプログラムがＣＰＵ９０２により実行されることによって実現される。なお、上述の抽出部１０２、統合部１０４およびプロトコル処理部１０５の一部または全部は、ソフトウェアであるプログラムではなく、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のハードウェア回路によって実現されてもよい。
【００７８】
なお、上述の受信部１０１、抽出部１０２、記憶部１０３、作成部１０４ａ、判定部１０４ｂ、連結部１０４ｃおよびプロトコル処理部１０５は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図９で独立した機能部として図示した複数の機能部を、１つの機能部として構成してもよい。一方、図９の１つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
【００７９】
図１３は、第１の実施形態の受信データ処理の一例を示すフローチャートである。図１３を参照しながら、本実施形態に係る通信端末１０の物理層フレーム２０１を受信した場合の処理（受信データ処理）の動作について説明する。
【００８０】
＜ステップＳ１１＞
受信部１０１は、アクセスポイント２０から無線通信によりデータ（物理層フレーム２０１）を受信する。受信部１０１は、受信した物理層フレーム２０１を、抽出部１０２へ送る。そして、ステップＳ１２へ移行する。
【００８１】
＜ステップＳ１２＞
抽出部１０２は、受信部１０１から受け取った物理層フレーム２０１に含まれる複数のサブフレーム２１２を抽出する。そして、ステップＳ１３へ移行する。
【００８２】
＜ステップＳ１３＞
作成部１０４ａは、抽出部１０２により抽出された複数のサブフレーム２１２のサブフレームヘッダ２２０の各フィールドの値を用いて、図１０に示すサブフレーム情報テーブル１００１を作成する。作成部１０４ａは、作成したサブフレーム情報テーブル１００１を記憶部１０３に記憶させる。なお、作成部１０４ａがサブフレーム情報テーブル１００１の各列に書き込む情報は、上述した通りである。そして、ステップＳ１４へ移行する。
【００８３】
＜ステップＳ１４＞
判定部１０４ｂは、サブフレーム情報テーブル１００１を参照し、抽出部１０２により抽出された各サブフレーム２１２に対応する行の値が、上述の条件（２１）〜（２３）のすべてを満たすか否かを判定することによって、２つ以上のサブフレーム２１２について、セグメントデータ２２５が連結可能なサブフレーム２１２であるか否かを判定する。そして、ステップＳ１５へ移行する。
【００８４】
＜ステップＳ１５＞
連結部１０４ｃは、判定部１０４ｂにより２つ以上のサブフレーム２１２について、セグメントデータ２２５が連結可能と判定されたサブフレーム２１２を連結する。なお、連結部１０４ｃによるサブフレーム２１２の連結動作の内容は、上述した通りである。連結部１０４ｃは、連結して生成した新たなサブフレームをプロトコル処理部１０５へ送る。そして、ステップＳ１６へ移行する。
【００８５】
＜ステップＳ１６＞
プロトコル処理部１０５は、連結部１０４ｃにより連結されたサブフレームに対して、ＩＰプロトコル処理およびＴＣＰプロトコル処理等のプロトコル処理を実行する。
【００８６】
以上のように、本実施形態に係る通信端末１０は、物理層フレーム２０１に含まれる複数のサブフレーム２１２をそれぞれ抽出し、それぞれのサブフレーム２１２のサブフレームヘッダ２２０の値に基づいて、サブフレーム２１２のセグメントデータ２２５が連結可能であるか否かを判定し、連結可能と判定したサブフレーム２１２を連結して、新たなサブフレームを生成するものとしている。これによって、プロトコル処理部１０５によるプロトコル処理は、統合部１０４により連結して統合された新たなサブフレームに対して行えばよく、元の複数のサブフレーム２１２それぞれに対して行う必要がない。したがって、元の複数のサブフレーム２１２に対してそれぞれプロトコル処理を行う場合の負荷よりも軽減することができ、処理効率を向上させることができる。また、連結可能なサブフレーム２１２の数が多いほど、プロトコル処理の負荷を軽減させることができる。
【００８７】
また、作成部１０４ａによりサブフレーム情報テーブル１００１を作成することにより、判定部１０４ｂによる、２つ以上のサブフレーム２１２について、セグメントデータ２２５が連結可能なサブフレーム２１２であるか否かの判定処理を容易化することができる。
【００８８】
なお、上述のように、通信端末１０は、アクセスポイント２０との無線通信により受信した物理層フレーム２０１に対して処理するものとしたが、これに限定されるものではない。すなわち、通信端末１０は、有線通信により外部から図３に示す物理層フレーム２０１と同様の形式のデータを受信した場合にも、上述の受信データ処理を適用することが可能である。
【００８９】
（第２の実施形態）
第２の実施形態に係る通信端末について、第１の実施形態に係る通信端末１０と相違する点を中心に説明する。第１の実施形態では、物理層フレーム２０１に含まれる複数のサブフレーム２１２を連結して統合する動作について説明した。本実施形態では、物理層フレーム２０１に含まれる複数のサブフレーム２１２を並べ替え、識別情報を付加する動作について説明する。なお、本実施形態に係る通信システムの全体構成、通信装置のハードウェア構成、通信データである物理層フレーム２０１の構成は、第１の実施形態で説明した構成と同様である。
【００９０】
図１４は、第２の実施形態の通信端末の機能ブロック構成の一例を示す図である。図１５は、サブフレームを並び替える動作を説明する図である。図１６は、サブフレームに識別情報を付加する動作を説明する図である。図１４〜１６を参照しながら、本実施形態に係る通信端末１０ａの機能ブロックの構成および動作について説明する。
【００９１】
図１４に示すように、第２の実施形態に係る通信端末１０ａは、受信部１０１と、抽出部１０２と、記憶部１０３と、プロトコル処理部１０５（処理部）と、統合部１０６と、を有する。
【００９２】
受信部１０１は、アクセスポイント２０から無線通信によりデータ（物理層フレーム２０１）を受信する機能部である。受信部１０１は、図２に示す通信Ｉ／Ｆ９０１およびアンテナ９０１ａによって実現される。
【００９３】
抽出部１０２は、受信した物理層フレーム２０１に含まれる複数のサブフレーム２１２を抽出する機能部である。
【００９４】
記憶部１０３は、後述するように、統合部１０６の作成部１０６ａが作成した図１０に示すサブフレーム情報テーブル１００１を記憶する機能部である。記憶部１０３は、図２に示すＲＡＭ９０４または補助記憶装置９０５によって実現される。
【００９５】
統合部１０６は、抽出部１０２により抽出されたサブフレーム２１２を統合する機能部である。統合部１０６は、作成部１０６ａと、並び替え部１０６ｂと、情報付加部１０６ｃと、を有する。
【００９６】
作成部１０６ａは、抽出部１０２により抽出された複数のサブフレーム２１２のサブフレームヘッダ２２０の各フィールドの値を用いて、図１０に示すサブフレーム情報テーブル１００１を作成する機能部である。作成部１０６ａは、作成したサブフレーム情報テーブル１００１を記憶部１０３に記憶させる。なお、作成部１０６ａによるサブフレーム情報テーブル１００１の各列への書き込み動作の内容は、第１の実施形態で上述した、作成部１０４ａの動作の内容と同様である。
【００９７】
並び替え部１０６ｂは、サブフレーム情報テーブル１００１を参照し、抽出部１０２により抽出された各サブフレーム２１２を、同一種類（すなわち、同一のＴＣＰコネクションに対応）のセグメントデータ２２５を有するサブフレーム２１２が連続するように並べ替える機能部である。具体的には、並び替え部１０６ｂは、まず、サブフレーム情報テーブル１００１を参照し、抽出部１０２により抽出された各サブフレーム２１２に対応する行の値が、上述の条件（２１）および（２２）のすべてを満たすか否かを判定することによって、具体的に、２つ以上のサブフレーム２１２について、セグメントデータ２２５が同一種類のサブフレーム２１２であるか否かを判定する。以下、セグメントデータ２２５が同一種類と判定されたサブフレーム２１２を、第２の実施の形態で「一連のサブフレーム２１２」というものとする。次に、並び替え部１０６ｂは、図１５（ａ）に示すように、サブフレーム情報テーブル１００１の「抽出対象ＴＣＰセグメントの有無」が「無」であるサブフレーム２１２を、一連のサブフレーム２１２の末尾のサブフレーム２１２の後（または、先頭のサブフレーム２１２の前）に移動させる。この結果、図１５（ａ）に示すように、一連のサブフレーム２１２が連続することになる。
【００９８】
また、並び替え部１０６ｂは、図１５（ｂ）に示すように、一連のサブフレーム２１２が複数種類（図１５（ｂ）の例では、コネクション（１）に対応するサブフレーム２１２のグループ、およびコネクション（２）に対応するサブフレーム２１２のグループ）ある場合、一方の一連のサブフレーム２１２の間にある、他方の一連のサブフレーム２１２を、一方の一連のサブフレーム２１２の末尾のサブフレーム２１２の後に移動させる。図１５（ｂ）では、並び替え部１０６ｂは、ＴＣＰコネクションであるコネクション（１）に対応する一連のサブフレーム２１２の間にある、コネクション（２）に対応する一連のサブフレーム２１２を、コネクション（１）に対応する一連のサブフレーム２１２の末尾のサブフレーム２１２の後に移動させる例を示している。その結果、セグメントデータ２２５が同一種類と判定されたそれぞれの一連のサブフレーム２１２が連続することになる。
【００９９】
なお、並び替え部１０６ｂは、実際に、一連のサブフレーム２１２のセグメントデータ２２５をコピーするのではなく、記憶部１０３に記憶されている一連のサブフレーム２１２のセグメントデータ２２５のアドレスおよび長さのリストを作成して、そのリストを情報付加部１０６ｃおよびプロトコル処理部１０５に送るものとしてもよい。この場合、情報付加部１０６ｃおよびプロトコル処理部１０５は、並び替え部１０６ｂから受け取ったリストに記載されたアドレスからセグメントデータ２２５を読み出して使用するものとすればよい。
【０１００】
情報付加部１０６ｃは、並び替え部１０６ｂが並べ替えた各サブフレーム２１２に対して、一連のサブフレーム２１２を、他の一連のサブフレーム２１２と区別するための識別情報を付加する機能部である。情報付加部１０６ｃは、並び替え部１０６ｂにより並べ替えられた一連のサブフレーム２１２に同じ値の識別情報を付加し、その末尾のサブフレーム２１２の後に、別の一連のサブフレーム２１２がある場合は、異なる値の識別情報（例えば、前の一連のサブフレーム２１２に与えた識別情報の値に「１」を加算した識別情報）を付加する。
【０１０１】
図１６（ａ）は、情報付加部１０６ｃが、図１５（ａ）に示したように、並び替え部１０６ｂによる並べ替えにより、前側に位置する一連のサブフレーム２１２に識別情報「１」を付加し、後側に位置する「抽出対象ＴＣＰセグメントの有無」が「無」であるサブフレーム２１２に識別情報「２」を付加した例を示している。図１６（ｂ）は、情報付加部１０６ｃが、図１５（ｂ）に示したように、並び替え部１０６ｂによる並べ替えにより、前側に位置するコネクション（１）に対応する一連のサブフレーム２１２に識別情報「４」を付加し、後側に位置するコネクション（２）に対応する一連のサブフレーム２１２に識別情報「５」を付加した例を示している。
【０１０２】
なお、情報付加部１０６ｃは、一連のサブフレーム２１２を識別する識別情報を付加するものとしたが、これに限定するものではなく、他の方法として、あるサブフレーム２１２と１つ前のサブフレーム２１２とが、同じ一連のサブフレーム２１２に属するか否かを示すフラグを付加し、このフラグを識別情報としてもよい。
【０１０３】
プロトコル処理部１０５は、情報付加部１０６ｃにより識別情報が付加されたサブフレーム２１２に対して、汎用のＯＳ等に実装されているＴＣＰ／ＩＰスタック等によって、ＩＰプロトコル処理およびＴＣＰプロトコル処理等のプロトコル処理を実行する機能部である。この際、プロトコル処理部１０５は、ＴＣＰプロトコル処理としてのＴＣＰコネクションの識別処理において、情報付加部１０６ｃにより付加された識別情報により、処理対象のサブフレーム２１２が、同じ一連のサブフレーム２１２に属するか否かが判別可能である。したがって、プロトコル処理部１０５は、一連のサブフレーム２１２の中で２番目以降のサブフレーム２１２については、ＴＣＢ情報テーブル１００２のＴＣＢの探索を行う代わりに、１番目のサブフレーム２１２で探索したＴＣＢをそのまま使用すればよい。
【０１０４】
上述の抽出部１０２、統合部１０６およびプロトコル処理部１０５は、図２に示すＲＯＭ９０３または補助記憶装置９０５に記憶されたプログラムがＣＰＵ９０２により実行されることによって実現される。なお、上述の抽出部１０２、統合部１０６およびプロトコル処理部１０５の一部または全部は、ソフトウェアであるプログラムではなく、ＡＳＩＣ等のハードウェア回路によって実現されてもよい。
【０１０５】
なお、上述の受信部１０１、抽出部１０２、記憶部１０３、作成部１０６ａ、並び替え部１０６ｂ、情報付加部１０６ｃおよびプロトコル処理部１０５は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図１４で独立した機能部として図示した複数の機能部を、１つの機能部として構成してもよい。一方、図１４の１つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
【０１０６】
図１７は、第２の実施形態の受信データ処理の一例を示すフローチャートである。図１７を参照しながら、本実施形態に係る通信端末１０ａの物理層フレーム２０１を受信した場合の処理（受信データ処理）の動作について説明する。
【０１０７】
＜ステップＳ２１＞
受信部１０１は、アクセスポイント２０から無線通信によりデータ（物理層フレーム２０１）を受信する。受信部１０１は、受信した物理層フレーム２０１を、抽出部１０２へ送る。そして、ステップＳ２２へ移行する。
【０１０８】
＜ステップＳ２２＞
抽出部１０２は、受信した物理層フレーム２０１に含まれる複数のサブフレーム２１２を抽出する。
【０１０９】
＜ステップＳ２３＞
作成部１０６ａは、抽出部１０２により抽出された複数のサブフレーム２１２のサブフレームヘッダ２２０の各フィールドの値を用いて、図１０に示すサブフレーム情報テーブル１００１を作成する。作成部１０６ａは、作成したサブフレーム情報テーブル１００１を記憶部１０３に記憶させる。なお、作成部１０６ａがサブフレーム情報テーブル１００１の各列に書き込む情報は、上述した通りである。そして、ステップＳ２４へ移行する。
【０１１０】
＜ステップＳ２４＞
並び替え部１０６ｂは、サブフレーム情報テーブル１００１を参照し、抽出部１０２により抽出された各サブフレーム２１２を、同一種類のセグメントデータ２２５を有するサブフレーム２１２が連続するように並べ替える。その結果、セグメントデータ２２５が同一種類と判定されたそれぞれの一連のサブフレーム２１２が連続することになる。そして、ステップＳ２５へ移行する。
【０１１１】
＜ステップＳ２５＞
情報付加部１０６ｃは、並び替え部１０６ｂが並べ替えた各サブフレーム２１２に対して、一連のサブフレーム２１２を、他の一連のサブフレーム２１２と区別するための識別情報を付加する。情報付加部１０６ｃは、例えば、並び替え部１０６ｂにより並べ替えられた一連のサブフレーム２１２に同じ値の識別情報を付加し、その末尾のサブフレーム２１２の後に、別の一連のサブフレーム２１２がある場合は、異なる値の識別情報を付加する。そして、ステップＳ２６へ移行する。
【０１１２】
＜ステップＳ２６＞
プロトコル処理部１０５は、情報付加部１０６ｃにより識別情報が付加されたサブフレーム２１２に対して、ＩＰプロトコル処理およびＴＣＰプロトコル処理等のプロトコル処理を実行する。この際、プロトコル処理部１０５は、ＴＣＰプロトコル処理としてのＴＣＰコネクションの識別処理において、情報付加部１０６ｃにより付加された識別情報により、処理対象のサブフレーム２１２が、同じ一連のサブフレーム２１２に属するか否かが判別可能である。したがって、プロトコル処理部１０５は、一連のサブフレーム２１２の中で２番目以降のサブフレーム２１２については、ＴＣＢ情報テーブル１００２のＴＣＢの探索を行う代わりに、１番目のサブフレーム２１２で探索したＴＣＢをそのまま使用すればよい。
【０１１３】
以上のように、本実施形態に係る通信端末１０ａは、物理層フレーム２０１に含まれる複数のサブフレーム２１２を抽出し、それぞれのサブフレーム２１２のサブフレームヘッダ２２０の値に基づいて、サブフレーム２１２のセグメントデータ２２５が同一種類のサブフレーム２１２であるか否かを判定し、同一種類のセグメントデータ２２５を有するサブフレーム２１２が連続するように並べ替え、一連のサブフレーム２１２に同じ値の識別情報を付加し、別の一連のサブフレーム２１２がある場合は、異なる値の識別情報を付加するものとしている。これによって、プロトコル処理部１０５によるＴＣＰコネクションの識別処理において、情報付加部１０６ｃにより付加された識別情報により、処理対象のサブフレーム２１２が、同じ一連のサブフレーム２１２に属するか否かが判別可能であるので、一連のサブフレーム２１２の中で２番目以降のサブフレーム２１２については、ＴＣＢ情報テーブル１００２のＴＣＢの探索を行う代わりに、１番目のサブフレーム２１２で探索したＴＣＢをそのまま使用すればよい。したがって、受信したサブフレーム２１２の数に比べて、ＴＣＢを探索する回数を少なくすることができるので、プロトコル処理の負荷を軽減することができ、処理効率を向上させることができる。
【０１１４】
なお、並び替え部１０６ｂによって、各サブフレーム２１２を、同一種類のセグメントデータ２２５を有するサブフレーム２１２が連続するように並べ替えられるものとしているが、これに限定されるものではなく、必ずしも同一種類のセグメントデータ２２５を有するサブフレーム２１２が連続するように並べ替えられる必要はない。すなわち、並び替え部１０６ｂにより、少なくとも２つ以上のサブフレーム２１２について、セグメントデータ２２５が同一種類のサブフレーム２１２であるか否かを判定しておけば、情報付加部１０６ｃは、各サブフレーム２１２に対して、一連のサブフレーム２１２を、他の一連のサブフレーム２１２と区別するための識別情報を付加することができるので、上述のプロトコル処理部１０５のプロトコル処理におけるＴＣＰコネクションの識別処理は可能である。ただし、並び替え部１０６ｂによる一連のサブフレーム２１２が連続するように並べ替えることによって、並べ替えない場合に必要な情報（例えば、処理対象となるサブフレーム２１２に対応するＴＣＢが既に探索されているか否かのフラグ等）のバッファリングが必要ない、またはそのようなバッファリングを行わなくてもＴＣＢの再検索を行う必要がないという利点がある。また、一連のサブフレーム２１２が連続するように並べ替えない場合でも、プロトコル処理部１０５が各サブフレーム２１２を処理する際に、当該サブフレーム２１２と、その１つ前に処理したサブフレーム２１２とが同じ一連のサブフレームに含まれる場合にのみ、１つ前のサブフレーム２１２を処理する際に使用したＴＣＢをそのまま当該サブフレーム２１２の処理に使用することができる。ただし、この場合でも、並べ替えをする利点は、並べ替えをしない場合に比べて、ＴＣＢの探索回数を少なくすることができることである。
【０１１５】
なお、上述の各実施形態の通信端末で実行されるプログラムは、例えば、ＲＯＭ等に予め組み込まれて提供されるものとしてもよい。
【０１１６】
また、上述の各実施形態の通信端末で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅｃｏｒｄａｂｌｅ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【０１１７】
また、上述の各実施形態の通信端末で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の各実施形態の通信端末で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１１８】
また、上述の各実施形態の通信端末で実行されるプログラムは、コンピュータを上述したノードの各機能部として機能させ得る。このコンピュータは、ＣＰＵがコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【０１１９】
本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、および変更を行うことができる。これらの実施形態は、発明の範囲および要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２０】
１  通信システム
１０、１０ａ  通信端末
２０  アクセスポイント
３０  ルータ
４０  インターネット
１０１  受信部
１０２  抽出部
１０３  記憶部
１０４  統合部
１０４ａ  作成部
１０４ｂ  判定部
１０４ｃ  連結部
１０５  プロトコル処理部
１０６  統合部
１０６ａ  作成部
１０６ｂ  並び替え部
１０６ｃ  情報付加部
２０１  物理層フレーム
２１１  物理層ヘッダ
２１２、２１２＿１、２１２＿２  サブフレーム
２２０、２２０＿１、２２０＿２、２２０＿３、２２０ａ  サブフレームヘッダ
２２１  ＭＡＣヘッダ
２２２  ＬＬＣヘッダ
２２３  ＩＰヘッダ
２２４  ＴＣＰヘッダ
２２５、２２５＿１、２２５＿２、２２５＿３、２２５ａ  セグメントデータ
２２６  ＴＣＰセグメント
３０１  フレーム制御
３０２  デュレーション／ＩＤ
３０３  アドレス（１）
３０４  アドレス（２）
３０５  アドレス（３）
３０６  シーケンス制御
３０７  アドレス（４）
３０８  ＱｏＳ制御
４０１  宛先ＳＡＰ
４０２  送信元ＳＡＰ
４０３  コントロールバイト
４０４  ＯＵＩ
４０５  プロトコルＩＤ
５０１  バージョン
５０２  ヘッダ長
５０３  サービス種別
５０４  全長
５０５  識別子
５０６  フラグ
５０７  断片位置
５０８  生存時間
５０９  プロトコル
５１０  チェックサム
５１１  送信元アドレス
５１２  宛先アドレス
５１３  拡張情報
６０１  送信元ポート
６０２  宛先ポート
６０３  シーケンス番号
６０４  確認応答番号
６０５  ヘッダ長
６０６  フラグ
６０７  ウィンドウサイズ
６０８  ヘッダチェックサム
６０９  緊急ポインタ
６１０  オプション
７０１  ＮＳビット
７０２  ＣＷＲビット
７０３  ＥＣＥビット
７０４  ＵＲＧビット
７０５  ＡＣＫビット
７０６  ＰＳＨビット
７０７  ＲＳＴビット
７０８  ＳＹＮビット
７０９  ＦＩＮビット
９０１  通信Ｉ／Ｆ
９０１ａ  アンテナ
９０２  ＣＰＵ
９０３  ＲＯＭ
９０４  ＲＡＭ
９０５  補助記憶装置
９０６  入力装置
９０７  表示装置
９０９  バス
１００１  サブフレーム情報テーブル
１００２  ＴＣＢ情報テーブル
【図１】
2017046325.tif 000003
【図２】
2017046325.tif 000004
【図３】
2017046325.tif 000005
【図４】
2017046325.tif 000006
【図５】
2017046325.tif 000007
【図６】
2017046325.tif 000008
【図７】
2017046325.tif 000009
【図８】
2017046325.tif 000010
【図９】
2017046325.tif 000011
【図１０】
2017046325.tif 000012
【図１１】
2017046325.tif 000013
【図１２】
2017046325.tif 000014
【図１３】
2017046325.tif 000015
【図１４】
2017046325.tif 000016
【図１５】
2017046325.tif 000017
【図１６】
2017046325.tif 000018
【図１７】
2017046325.tif 000019