以下、図面を参照しながら本発明の実施の形態について説明する。なお、以下の各図において同様の部分については同一の符号を付して説明を省略する。
(第1の実施の形態)
本実施の形態に係る無線通信装置は、IEEE802.11諸規格に準拠した無線LAN通信、及びTCP/IP通信を行う。TCPプロトコルとしてはRFC793をベースに数多くのプロトコルが提案されている。本実施の形態において、TCPプロトコルとしては例えばRFC793を適用することができるが、他のTCPプロトコルでもよい。
図1は、本実施の形態に係る通信システムの一例を示すシステム構成図である。
この通信システム1は無線LAN通信システムである。通信システム1では、IEEE802.11諸規格に準拠した無線LAN通信、及びRFC793に準拠したTCP/IP通信が可能である。
親局の通信装置(データ送信側)APは、1台以上の子局の通信装置(データ受信側)STA1〜STA8と通信可能である。なお、子局の通信装置の数は、自由に変更可能である。
IEEE802.11諸規格に準拠した無線LAN通信を行う場合、通信システム1では、親局の通信装置APから子局の通信装置STA1〜STA8にWLANDATAフレームが送信され、WLANDATAフレームを受信した子局の通信装置STA1〜STA8から親局の通信装置APへ送達確認情報であるWLANACKフレームが送信される。
また、親局の通信装置APと、子局の通信装置STA1〜STA8のうちのいずれかの子局の通信装置(ここでは、子局の通信装置STA1とする)との2端末間でTCP/IP通信を行う場合においても、無線LAN通信の場合と同様に、親局の通信装置APから子局の通信装置STA1にTCPDATAセグメントが送信され、TCPDATAセグメントを受信した子局の通信装置STA1から親局の通信装置APへ送達確認情報であるTCPACKセグメントが送信される。
通常は、無線LAN通信上でTCP/IP通信を行う場合、無線LAN通信における送達確認情報であるWLANACKフレームとTCP/IP通信における送達確認情報であるTCPACKセグメントとが双方とも子局の通信装置STA1から親局の通信装置APへ伝送されることになる。
しかしながら、本実施の形態においては、無線LAN通信上でTCP/IP通信を行う場合に、無線LAN通信における送達確認情報であるWLANACKフレームとTCP/IP通信における送達確認情報であるTCPACKセグメントとを一つにまとめる。
本実施の形態においては、無線LAN通信上でTCP/IP通信を行う場合に、子局の通信装置STA1〜STA8から親局の通信装置APへ送信される送達確認のためのTCPACKセグメントの送信を省略し、子局の通信装置STA1〜STA8から親局の通信装置APへ送達確認のためのWLANACKフレームを送信することによって、親局の通信装置APが無線LAN通信に加えてTCP/IP通信の送達確認も行う。
図2は、本実施の形態に係る通信装置AP,STA1〜STA8のハードウェア構成の一例を示すブロック図である。
本実施の形態に係る親局の通信装置APは、コンピュータ2、例えばSDRAMなどの記憶装置3、無線LANベースバンドチップ4、無線部5、アンテナ部6を具備する。
親局の通信装置APにおいて、コンピュータ2は、送信するデータを、コンピュータ2側のPCIC(Peripheral Components Interconnect Controller)7から、無線LANベースバンドチップ4側のPCIC8、MEMC(メモリコントローラ)9という順で送り、例えばSRAMなどの記憶装置10又は記憶装置3に記憶する。このように、記憶装置3,10へのアクセスは、MEMC9を用いて行われる。
CPU11は、MEMC9経由で、記憶装置3又は記憶装置10に記憶されたデータをアクセスし、データ送信のための処理を実行し、処理後のデータをMAC(Medium Access Controller)12、PHY(Physical layer)13経由で、無線部5に出力する。
そして、処理後のデータは無線部5のRFチップ14からアンテナ部6に渡され、無線LAN通信のフレームとして送信される。
なお、子局の通信装置STA1〜STA8の場合には、親局の送信装置APの動作と逆の動作を行う。
本実施の形態に係る通信装置によって実行される各種機能は、ソフトウェア及びハードウェアのいずれでも実現させることができる。ハードウェアで実現させる場合には、例えばその機能はMAC12で実現可能である。ソフトウェアで実現させる場合には、例えばその機能はCPU11により実現可能である。
図3は、本実施の形態に係る親局の通信装置APのソフトウェアの一例を示すブロック図である。この図3において、矢印a1は、WLANDATAフレームを送信する場合のソフトウェア処理部27からハードウェア処理部15へのデータの流れを表す。矢印a2は、WLANDATAフレームに対する送達確認であるWLANACKフレームを受信する場合のハードウェア処理部15からソフトウェア処理部27へのデータの流れを表す。
通信装置APでは、ソフトウェア処理部27とハードウェア処理部15とが協働して通信処理を実現する。ソフトウェア処理部27は、TCP/IPソフトウェア処理部16とWLANソフトウェア処理部17とを具備する。
さらに、WLANソフトウェア処理部17は、WLAN受信処理部18、WLAN送信処理部19、WLANACK解析部20、WLANDATA解析部21を具備する。なお、WLAN受信処理部18とWLAN送信処理部19とは、組み合わせてWLAN送受信処理部としてもよい。
TCP/IPソフトウェア処理部16は、上位アプリケーション・プログラムで生成されたデータに基づいて、TCPDATAセグメントを生成する。
TCP/IPソフトウェア処理部16は、TCPDATAセグメントをWLANソフトウェア処理部17のWLAN送信処理部19に渡す。
WLAN送信処理部19は、TCP/IPソフトウェア処理部16から受けたTCPDATAセグメントに基づいてWLANDATAフレームを生成する。具体的には、WLAN送信処理部19は、TCPDATAセグメントをWLANDATAフレームにマッピングする処理を実行し、TCPDATAセグメントをカプセル化したWLANDATAフレームを生成する。
生成されたWLANDATAフレームは、ハードウェア処理部15の無線部5等を経由し、送信される。
TCPDATAセグメントがWLANDATAフレームとして送信され、子局の通信端末STA1〜STA8でこのWLANDATAフレームが正常に受信されると、子局の通信端末STA1〜STA8は親局の通信端末APにWLANACKフレームを送信する。
親局の通信装置APは、子局の通信端末STA1〜STA8からのWLANACKフレームを、ハードウェア処理部15において受信する。
ハードウェア処理部15は、受信したWLANACKフレームを、WLAN受信処理部18経由で、WLANACK解析部20に渡す。
WLANACK解析部20は、WLANACKフレームに基づいて、このWLANACKフレームに対応するTCPDATAセグメントを検索し、この検索されたTCPDATAセグメントの送達確認を示すTCPACKセグメントを生成し、このTCPACKセグメントをTCP/IPソフトウェア処理部16に渡す。すなわち、このWLANACK解析部20は、送信前のTCPDATAセグメントがどのWLANDATAフレームにマッピングされたかを示すデータを利用し、受信したWLANACKフレームがどのWLANDATAフレームの送達確認であるかを識別・判断し、この結果から、受信したWLANACKフレームがどのTCPDATAセグメントの送達確認であるかを識別・判断する。
TCP/IPソフトウェア処理部16は、受信したWLANACKフレームに基づいて生成されたTCPACKセグメントを受けた場合には、TCPACKセグメント受信時と同様の処理を行う。
図4は、本実施の形態に係る子局の通信装置STA1〜STA8のソフトウェアの一例を示すブロック図である。この図4において、矢印a3は、受信されたWLANDATAフレームとこのWLANDATAフレームにカプセル化されていたTCPDATAセグメントの流れを表す。矢印a4は、TCPACKセグメントの流れを現す。矢印a5は、WLANACKフレームの流れを表す。
ソフトウェア処理部27のWLAN受信処理部18は、ハードウェア処理部15経由でWLANDATAフレームを受信する。WLAN送信処理部19は、受信したWLANDATAフレームに対応するWLANACKフレームを、ハードウェア処理部15経由で親局の通信装置APに送信する。
また、ソフトウェア処理部27のWLANDATA解析部21は、WLAN受信処理部18からWLANDATAフレームを受け、このWLANDATAフレーム内部の解析を行い、このWLANDATAフレームに対応するWLANACKフレームが、親局の通信装置APへ送信済みであることを示す情報をTCP/IPソフトウェア処理部16に渡す。
WLANDATAフレームにTCPDATAセグメントが含まれている場合、このTCPDATAセグメントを含むWLANDATAフレームは、WLANソフトウェア処理部17からTCP/IPソフトウェア処理部16に渡される。
TCP/IPソフトウェア処理部16は、WLANソフトウェア処理部17からTCPDATAセグメントを受ける。
TCP/IPソフトウェア処理部16のTCPACK送信停止部22は、TCPDATAセグメントを受信した場合、このTCPDATAセグメントをカプセル化していたWLANDATAフレームに対応するWLANACKフレームが既に送信済みであることを示す情報を受けているか否か判断する。
TCPACK送信停止処理部22は、WLANACKフレームが既に送信済みであることを示す情報を受けている場合、TCPACKセグメントを親局の通信装置APに送信するための処理を停止する。一方、TCP/IPソフトウェア処理部16は、WLANACKフレームが既に送信済みであることを示す情報を受けていない場合、TCPACKセグメントを親局の通信装置APに送信するための処理を行う。
通常のTCP/IPソフトウェア処理部の場合には、受信したTCPセグメントに対応するTCPACKセグメントを生成・送信するが、本実施の形態に係るTCP/IPソフトウェア処理部16は、TCPACKセグメントを生成又は送信する処理を停止する機能を持つ。
上記のような構成を持つ本実施の形態に係る通信システム1の動作例について以下で説明する。
上述したように、本実施の形態に係る通信装置AP,STA1〜STA8は、TCPACKセグメントの送受信をWLANACKフレームの送受信で代替させるためのWLAN受信処理部18、WLAN送信処理部19、WLANACK解析部20、WLANDATA解析部21、TCPACK送信停止処理部22を具備する。
まず、通信システム1は、親局の通信装置APと子局の通信装置STA1〜STA8との間で、無線接続を完了する(Association処理を完了する)。この状態で、無線LAN通信が可能となる。
次に、通信システム1は、TCP/IP通信を実行するためのTCPコネクションを確立する。TCPコネクションが確立されると、TCP通信が可能となる。
親局の通信装置APは、TCPDATAセグメントの送信処理を通常の方法で実行する。子局の通信装置APは、無線LAN通信による送信を行うため、TCPDATAセグメントは無線LAN通信フレームにカプセル化されて送信されることになる。
子局の通信装置STA1〜STA8は、TCPDATAセグメントを含むWLANDATAフレームを受信した場合、このWLANDATAフレームに対する送達確認情報であるWLANACKフレームを送信する。加えて、この子局の通信装置STA1〜STAは、TCPDATAセグメントを含むWLANDATAフレームを受信した場合、TCPACKセグメントの送信を停止する処理を実行する。
すなわち、通常は、TCPDATAセグメントを含む無線LAN通信フレームを受信した場合、無線LAN通信フレームに対する送達確認フレームが送信され、その後、TCPレイヤにおいて必要に応じてTCPDATAセグメントに対する送達確認セグメントの送信処理が実行されるが、本実施の形態においては、あえてこのTCPDATAセグメントに対する送達確認セグメントの送信処理を停止する。
親局の通信装置APは、TCPDATAセグメントを含むWLANDATAフレームに対する送達確認情報であるWLANACKフレームを受信した場合、WLANACKフレームにより送達確認がなされたことを示す情報を、TCPレイヤに通知する。
例えば無線環境が悪化した場合などのように、子局の通信装置STA1〜STAの少なくとも一つがWLANDATAフレーム、すなわちTCPDATAセグメントを正常に受信できず、WLANACKフレームが親局の通信装置に送信されなかった場合に、その後の親局の通信装置APと子局の通信装置STA1〜STAとによる処理は、既存の技術と同様の処理とすることができる。
また、子局の通信装置STA1〜STAは、正常にWLANACKフレームを親局の通信装置APに対して送信したにも関わらず、親局の通信装置APがWLANACKフレームを受信できなかった場合の処理も、既存の技術と同様の処理とすることができる。
以下に、従来の通信のシーケンスと、本実施の形態に係る通信のシーケンスとを説明する。
図5は、従来の通信システムで行われる通信と、本実施の形態に係る通信システムで行われる通信とを例示するシーケンス図(NormalACK)である。
AP(TCP/IP)とAP(WLAN)とは、同一の通信装置AP内で実行される処理である。AP(TCP/IP)は、子局の通信装置STA1〜STA8におけるTCP/IP通信のための処理である。AP(WLAN)は、親局の通信装置APにおける無線LAN通信のための処理である。
同様に、STA(WLAN)とSTA(TCP/IP)とは、同一の通信装置STA1〜STA8内で実行される処理である。STA(WLAN)は、子局の通信装置STA1〜STA8における無線LAN通信のための処理である。STA(TCP/IP)は、子局の通信装置STA1〜STA8におけるTCP/IP通信のための処理である。
シーケンスSeqA1は、既存の技術のデータ通信を表している。
まず、AP(TCP/IP)は、AP(WLAN)に、TCPDATAセグメントを与える。AP(WLAN)は、TCPDATAセグメントをカプセル化したWLANDATAフレームをSTA(WLAN)に送信する。
STA(WLAN)は、WLANDATAフレームを受信し、WLANDATAフレームに含まれているTCPDATAセグメントをSTA(TCP/IP)に与えるとともに、受信したWLANDATAフレームに対応するWLANACKフレームをAP(WLAN)に送信する。
なお、このシーケンスSeqA1では、STA(TCP/IP)は、2つのTCPDATAセグメントを受信した場合に、受信したTCPDATAセグメントに対応する送達確認セグメントであるTCPACKセグメントを、STA(WLAN)に与えている。STA(WLAN)は、TCPACKセグメントをカプセル化したWLANDATAフレームをAP(WLAN)に送信する。
AP(WLAN)は、WLANDATAフレームを受信し、WLANDATAフレームに含まれているTCPACKセグメントをAP(TCP/IP)に与えるとともに、受信したWLANDATAフレームに対応するWLANACKフレームをSTA(WLAN)に送信する。
シーケンスSeqA2は、本実施の形態に係る通信システム1において無線区間でフレームロスが発生しない場合のデータ通信を表している。
このフレームロスが発生しないシーケンスSeqA2において、まず、AP(TCP/IP)は、AP(WLAN)に、TCPDATAセグメントを与える。AP(WLAN)は、TCPDATAセグメントをカプセル化したWLANDATAフレームをSTA(WLAN)に送信する。
STA(WLAN)は、WLANDATAフレームを受信し、WLANDATAフレームに含まれているTCPDATAセグメントをSTA(TCP/IP)に与える。
STA(TCP/IP)は、TCPDATAセグメントを受信するが、このTCPDATAセグメントに対応するTCPACKセグメントをSTA(WLAN)に与える処理を停止する。
STA(WLAN)は、受信したWLANDATAフレームに対応するWLANACKフレームをAP(WLAN)に送信する。
AP(WLAN)は、WLANACKフレームを受信下か否か判断し、WLANACKフレームを受信することを条件に、TCPACKセグメントを生成し、この生成されたTCPACKセグメントをAP(TCP/IP)に与える。
シーケンスSeqA3は、本実施の形態に係る通信システム1において無線区間でWLANDATAフレームにロスが発生した場合のデータ通信を表している。
このシーケンスSeqA3において、まず、AP(TCP/IP)は、AP(WLAN)に、TCPDATAセグメントを与える。AP(WLAN)は、TCPDATAセグメントをカプセル化したWLANDATAフレームをSTA(WLAN)に送信するが、途中でフレームロスが発生し、STA(WLAN)は正常にWLANDATAフレームを受信していない。
STA(WLAN)は、WLANDATAフレームを受信しないため、STA(WLAN)がSTA(TCP/IP)へTCPDATAセグメントを与えることもなく、STA(WLAN)が受信したWLANDATAフレームに対応するWLANACKフレームをAP(WLAN)に送信することもない。このため、AP(WLAN)側は、WLANACKフレームを受信しない。
すると、再度、AP(TCP/IP)はAP(WLAN)にTCPDATAセグメントを与え、AP(WLAN)はTCPDATAセグメントをカプセル化したWLANDATAフレームをSTA(WLAN)に再度送信する。
このWLANDATAフレームの再送によって、STA(WLAN)はWLANDATAフレームを受信している。
すると、STA(WLAN)はWLANDATAフレームに含まれているTCPDATAセグメントをSTA(TCP/IP)に与える。STA(TCP/IP)は、TCPDATAセグメントを受信するが、このTCPDATAセグメントに対応するTCPACKセグメントをSTA(WLAN)に与える処理を停止する。
STA(WLAN)は、受信したWLANDATAフレームに対応するWLANACKフレームをAP(WLAN)に送信する。AP(WLAN)は、WLANACKフレームを受信したか否か判断し、WLANACKフレームを受信することを条件に、TCPACKセグメントを生成し、この生成されたTCPACKセグメントをAP(TCP/IP)に与える。
シーケンスSeqA4は、本実施の形態に係る通信システム1において無線区間でWLANACKフレームにロスが発生した場合のデータ通信を表している。
このシーケンスSeqA4において、まず、AP(TCP/IP)は、AP(WLAN)に、TCPDATAセグメントを与える。AP(WLAN)は、TCPDATAセグメントをカプセル化したWLANDATAフレームをSTA(WLAN)に送信する。
STA(WLAN)は、WLANDATAフレームを受信し、WLANDATAフレームに含まれているTCPDATAセグメントをSTA(TCP/IP)に与える。
STA(TCP/IP)は、TCPDATAセグメントを受信するが、このTCPDATAセグメントに対応するTCPACKセグメントをSTA(WLAN)に与える処理を停止する。
STA(WLAN)は、受信したWLANDATAフレームに対応するWLANACKフレームをAP(WLAN)に送信するが、途中でフレームロスが発生し、AP(WLAN)は正常にWLANACKフレームを受信していない。
無線LAN通信では、WLANDATAフレームがSTA(WLAN)に受信された場合であっても、WLANDATAフレームの送達確認情報であるWLANACKフレームが不受信となると、AP(TCP/IP)が、再度、AP(WLAN)にTCPDATAセグメントを与え、AP(WLAN)がTCPDATAセグメントをカプセル化したWLANDATAフレームをSTA(WLAN)に再度送信する。
STA(WLAN)は、WLANDATAフレームを再送し、この再度のWLANDATAフレームに含まれているTCPDATAセグメントをSTA(TCP/IP)に与える。
STA(TCP/IP)は、先に送信されたTCPDATAセグメントに加え、再度の送信によって得られた同一のTCPDATAセグメントを受信することになるが、同一セグメントを受信した場合は、一方を破棄する。この場合においても、STA(TCP/IP)は、TCPDATAセグメントに対応するTCPACKセグメントをSTA(WLAN)に与える処理を停止する。
STA(WLAN)は、受信した再度のWLANDATAフレームに対応する再度のWLANACKフレームをAP(WLAN)に送信する。AP(WLAN)は、WLANACKフレームを受信したか否か判断し、WLANACKフレームを受信することを条件に、TCPACKセグメントを生成し、この生成されたTCPACKセグメントをAP(TCP/IP)に与える。
図6は、本実施の形態に係る親局の通信装置APのWLANフレームの送信処理の一例を示すフローチャートである。
ステップS1において、親局の通信装置APは、TCPDATAセグメントを生成し、シーケンス番号の管理及び送信処理を実行する。
ステップS2において、親局の通信装置APは、IPパケットを生成し、送信処理を実行する。
ステップS3において、親局の通信装置APは、IPパケットがTCPACKセグメントを含むか否かを判断する第1の判断処理を行う。
第1の判断処理の結果が、IPパケットがTCPACKセグメントを含まないことを示す場合には、処理は、ステップS6に移る。
第1の判断処理の結果が、IPパケットがTCPACKセグメントを含むことを示す場合、ステップS4において、親局の通信装置APは、IPパケットについて、送信すべきIPパケットか否か判断する第2の判断処理を行う。
第2の判断処理の結果が、送信すべきIPパケットであることを示す場合、処理は、ステップS6に移る。
第2の判断の結果が、送信すべきでないIPパケットであることを示す場合、ステップS5において、親局の通信装置APは、パケットの破棄及び送信停止処理を実行し、その後処理は終了する。
ステップS6において、親局の通信装置APは、送信すべきIPパケットについて、TCPシーケンス番号の管理を行い、WLANフレームを生成する。
ステップS7において、親局の通信装置APは、生成されたWLANフレームの送信処理を実行する。
図7は、本実施の形態に係る子局の通信装置STA1〜STA8の処理の一例を示すフローチャートである。
ステップT1において、子局の通信装置STA1〜STA8は、受信したWLANフレームがエラーフレームか否かをチェック(例えばCRCチェックなど)する第1のチェック処理を実行する。
第1のチェック処理の結果が、エラーフレームであることを示す場合、ステップT2において、子局の通信装置STA1〜STA8は、フレーム廃棄処理を実行し、その後処理は終了する。
第1のチェック処理の結果が、エラーフレームでないことを示す場合、ステップT3において、子局の通信装置STA1〜STA8は、NormalACKフレーム期待のフレームか否かチェックする第2のチェック処理を実行する。
第2のチェック処理の結果が、NormalACKフレーム期待のフレームであることを示す場合、ステップT4において、子局の通信装置STA1〜STA8は、NormalACKフレームの送信を行い、処理はステップT5に移る。
第2のチェック処理の結果が、NormalACKフレーム期待のフレームでない場合、処理はステップT5に移る。
ステップT5において、子局の通信装置STA1〜STA8は、受信したWLANフレームについて、WLANDATAフレームであるか否かをチェックする(データ系フレーム、制御系フレーム、管理系フレームの種別をチェックする)第3のチェック処理を実行する。
第3のチェック処理の結果が、WLANDATAフレームでない旨を示す場合、ステップT6において、子局の通信装置STA1〜STA8は、フレーム個別の処理を実行し、その後処理は終了する。
第3のチェック処理の結果が、WLANDATAフレームである旨を示す場合、ステップT7において、子局の通信装置STA1〜STA8は、WLANDATAフレームがTCPDATAセグメントを含むか否かチェックする第4のチェック処理を実行する。ここで、第4のチェック処理の結果が、TCPDATAを含まないことを示す場合、処理はステップT11に移る。
第4のチェック処理の結果が、TCPDATAを含むことを示す場合、ステップT8において、子局の通信装置STA1〜STA8は、TCPACK送信を停止するか否か(TCPACKセグメント生成処理を実行するか否か)チェックする第5のチェック処理を実行する。
第5のチェック処理の結果が、TCPACK送信を停止すること(TCPACKセグメントを作成しないこと)を示す場合、処理は、ステップT11に移る。
第5のチェック処理の結果が、TCPACK送信を停止しないこと(TCPACKセグメントを作成すること)を示す場合、子局の通信装置STA1〜STA8は、ステップT9において、TCPACKセグメントの生成処理を実行し、ステップT10において、WLANACKフレームを生成し、送信処理を実行する。その後処理はステップT11に移る。
ステップT11において、子局の通信装置STA1〜STA8は、受信したWLANDATAフレームがTCPDATAセグメントを含まない場合、又は、受信したWLANDATAフレームがTCPDATAセグメントを含むがTCPACKセグメントを生成する必要がない場合、通常のIPパケット受信処理を行う。
ステップT12において、子局の通信装置STA1〜STA8は、TCPACKセグメントの送信が必要か否か判断する。
TCPACKセグメントの送信が必要な場合に、子局の通信装置STA1〜STA8は、ステップT13において、TCPACKセグメントの生成及び送信処理を実行する。
TCPACKセグメントの送信が必要でない場合、処理はステップT14に移る。
そして、ステップT14において、子局の通信装置STA1〜STA8は、TCP受信処理を実行する。
以上説明した本実施の形態においては、通信装置AP,STA1〜STA8間でデータを通信する際に、WLAN受信処理部18、WLAN送信処理部19、WLANACK解析部20、WLANDATA解析部21、TCPACK送信停止部22を使用することにより、TCPACKセグメントの代用としてWLANACKフレームを使用することができる。
通常、無線LAN通信上でTCP/IP通信を行う場合には、WLANACKフレームとTCPACKセグメントの双方が、送達確認のために子局の通信装置STA1〜STA8から親局の通信装置APに送信される。
これに対して、本実施の形態においては、子局の通信装置STA1〜STA8から親局の通信装置APにデータが正常に転送された旨を示すTCPACKセグメントとWLANACKセグメントとをまとめることにより、効率的なデータ転送を実現することができる。
本実施の形態においては、TCPACKセグメントを送信しなくても送達確認を行うことが可能であり、TCPACKセグメントの送信処理の削除及び受信処理の簡略化が実現されるため、通信装置STA1〜STA8の内部処理量を低減させることができる。
また、本実施の形態においては、ソフトウェア処理におけるCPU使用量及びメモリ使用量を削減させることができ、ハードウェア処理におけるゲート規模の削減を図ることができる。
さらに、本実施の形態においては、TCPACKセグメントの送信処理がないため、既存技術においてTCPACK送信により占有されていた無線帯域を別の通信に使用することが可能になり、無線帯域を有効活用することができる。
さらに、本実施の形態においては、TCPレイヤでTCPACK送信停止処理が実行されるため、不要なTCPACKセグメントの生成及び送信処理を省略することができる。また、本実施の形態においては、既存の実装内容に対して少ない修正でTCPACK送信停止処理の実行機能を加えることができるため、容易に実装可能である。
(第2の実施の形態)
本実施の形態においては、上記第1の実施の形態に係る通信システム1の変形例について説明する。なお、本実施の形態に係る説明については、上記第1の実施の形態と同様の説明は省略し、主に異なる部分について説明する。
本実施の形態に係る通信システムは、BlockACK機能の使用できる環境で使用され、子局の通信装置から親局の通信装置へ転送される複数の送達確認をまとめる。具体的には、本実施の形態に係る通信システムは、複数のWLANACKフレームと複数のTCPACKセグメントとを一つのBlockACKフレームにまとめて送達確認を行う。
本実施の形態に係る通信システムは、まず、親局の通信装置と子局の通信装置との間で、無線接続を完了する(Association処理を完了する)。この状態で、無線LAN通信が可能となる。さらに、通信システムは、IEEE802.11eやIEEE802.11nなどの機能の一つであるBlockACK機能を使用可能な環境とする。
次に、通信システムは、TCP/IP通信を実行するためのTCPコネクションを確立する。TCPコネクションが確立されると、TCP通信が可能となる。
親局の通信装置は、TCPDATAセグメントを通常の方法で送信する。無線LAN通信による送信を行うため、TCPDATAセグメントは無線LAN通信フレームにカプセル化されて送信されることになる。
子局の通信装置は、TCPDATAセグメントを含む無線LAN通信フレームを受信した場合、この無線LAN通信フレームに対する送達確認フレームを送信する。ここで、本実施の形態においては、BlockACK機能を使用しているため、複数のWLANDATAフレームに対する送達確認を、一つのBlockACKフレームを用いて実現する。加えて、この子局の通信装置は、TCPDATAセグメントを含む無線LAN通信フレームを受信した場合、TCPACKセグメントの送信を停止する処理を実行する。
すなわち、通常は、TCPDATAセグメントを含む無線LAN通信フレームを受信した場合、無線LAN通信フレームに対する送達確認フレームが送信され、その後、TCPレイヤにおいて必要に応じてTCPDATAセグメントに対する送達確認セグメントの送信処理が実行されるが、本実施の形態においては、あえてこのTCPDATAセグメントに対する送達確認セグメントの送信処理を停止する。
親局の通信装置は、TCPDATAセグメントを含む複数のWLANDATAフレームに対する送達確認情報であるBlockACKフレームを受信した場合、BlockACKフレームにより送達確認がなされたことを示す情報を、TCPレイヤに通知する。
なお、無線環境が悪化した場合の説明については、上記第1の実施の形態の場合と同様である。
本実施の形態に係る送達確認の手法は、TCPとしてSACKオプションを使用している場合に対しても有効である。また、BlockACKフレームとしては、いずれの手法(Immediate/Delayed/Compressed)においても適用可能である。
以下に、従来の通信のシーケンスと、本実施の形態に係る通信のシーケンスとを説明する。
図8は、従来の通信システムで行われる通信と、本実施の形態に係る通信システムで行われる通信とを例示するシーケンス図である。
シーケンスSeqB1では、BlockACK機能を用いた通常の技術と同様のデータ通信が行われている。
まず、AP(TCP/IP)は、AP(WLAN)に、TCPDATAセグメントを与える。AP(WLAN)は、TCPDATAセグメントをカプセル化したWLANDATAフレームをSTA(WLAN)に送信する。
STA(WLAN)は、WLANDATAフレームを受信し、WLANDATAフレームに含まれているTCPDATAセグメントをSTA(TCP/IP)に与える。
同様の処理を複数回(この図8の例では2回)実行する。
このように2つのTCPDATAセグメントを送信した後、AP(WLAN)は、送達確認を求めるためのBlockACK Requestフレームを、STA(WLAN)に送信する。
STA(WLAN)は、BlockACK Requestフレームを受信すると、2つのWLANDATAフレームを正常に受信した旨を示すBlockACKフレームをAP(WLAN)に送信する。
このシーケンスSeqB1では、STA(TCP/IP)は、2つのTCPDATAセグメントを正常に受信した場合に、STA(WLAN)に、送達確認セグメントであるTCPACKセグメントを与える。STA(WLAN)は、TCPACKセグメントをカプセル化したWLANDATAフレームをAP(WLAN)に送信する。
AP(WLAN)は、WLANDATAフレームを受信し、WLANDATAフレームに含まれているTCPACKセグメントをAP(TCP/IP)に与えるとともに、受信したWLANDATAフレームに対応するWLANACKフレームをSTA(WLAN)に送信する。
シーケンスSeqB2では、本実施の形態に係る通信システムにおいて無線区間でフレームロスが発生しない場合のデータ通信が行われている。
このフレームロスが発生しないシーケンスSeqB2において、まず、AP(TCP/IP)は、AP(WLAN)に、TCPDATAセグメントを与える。AP(WLAN)は、TCPDATAセグメントをカプセル化したWLANDATAフレームをSTA(WLAN)に送信する。
STA(WLAN)は、WLANDATAフレームを受信し、WLANDATAフレームに含まれているTCPDATAセグメントをSTA(TCP/IP)に与える。
同様の処理を複数回(この図8の例では4回)実行する。
STA(TCP/IP)は、TCPDATAセグメントを受信するが、このTCPDATAセグメントに対応するTCPACKセグメントをSTA(WLAN)に与える処理を停止する(TCPACK送信停止)。
AP(WLAN)は、それぞれがTCPDATAセグメントを含む4つのWLANDATAフレームを送信した後、送達確認を求めるためのBlockACK Requestフレームを、STA(WLAN)に送信する。
STA(WLAN)は、BlockACK Requestフレームを受信すると、4つのWLANDATAフレームを正常に受信した旨を示すBlockACKフレームをAP(WLAN)に送信する。
AP(WLAN)は、BlockACKフレームを受信したか否か判断し、BlockACKフレームを受信することを条件に、送信対象であったTCPDATAセグメントに対応するTCPACKセグメントを生成し、この生成されたTCPACKセグメントをAP(TCP/IP)に与える。
AP(TCP/IP)は、送信したTCPDATAセグメントに対する送達確認セグメントTCPACKを正常に受信した場合、次のTCPDATAセグメント送信処理に移行する。
シーケンスSeqB3では、本実施の形態に係る通信システムにおいて無線区間でWLANDATAフレームにロスが発生した場合のデータ通信が行われている。
このシーケンスSeqB3において、まず、AP(TCP/IP)は、AP(WLAN)に、TCPDATAセグメントを与える。AP(WLAN)は、TCPDATAセグメントをカプセル化したWLANDATAフレームをSTA(WLAN)に送信する。
同様の処理を複数回(この図8の例では4回)実行する。
ここで、STA(WLAN)は、いくつかのWLANDATAフレームを受信したが、いくつかのWLANDATAフレームを受信できなかったとする。
STA(WLAN)は、受信できたWLANDATAフレームに含まれているTCPDATAセグメントをSTA(TCP/IP)に与える。
STA(TCP/IP)は、STA(TCP/IP)からTCPDATAセグメントを受けるが、このTCPDATAセグメントに対応するTCPACKセグメントをSTA(WLAN)に与える処理を停止するTCPACK送信停止処理を実行する。
AP(WLAN)は、4つのTCPDATAセグメントを送信した後、送達確認を求めるためのBlockACK Requestフレームを、STA(WLAN)に送信する。
STA(WLAN)は、BlockACK Requestフレームを受信すると、WLANDATAフレームレベルの送達確認情報(例えば、いずれのWLANDATAフレームを正常に受信し、いずれのWLANDATAフレームを正常に受信しなかったかを旨を示す情報)であるBlockACKフレームをAP(WLAN)に送信する。この図8では、2つのWLANDATAフレームが正常に受信され、2つのWLANDATAフレームが正常に受信されなかった場合を例示している。
AP(WLAN)は、受信したBlockACKフレームに基づいて、子局の通信装置に正常に受信されたTCPDATAセグメントに対応するTCPACKセグメントを生成し、この生成されたTCPACKセグメントをAP(TCP/IP)に与える。
すると、AP(TCP/IP)は、再度、子局の通信装置に正常に受信されなかったTCPDATAセグメントを、AP(WLAN)に与えるフレームロス再送処理を実行する。AP(WLAN)は、再度送信されるTCPDATAセグメントをカプセル化したWLANDATAフレームをSTA(WLAN)に送信する。STA(WLAN)は、再送において受信されたWLANDATAフレームに含まれているTCPDATAセグメントをSTA(TCP/IP)に与える。STA(TCP/IP)は、再送によりTCPDATAセグメントを受信するが、このTCPDATAセグメントに対応するTCPACKセグメントをSTA(WLAN)に与える処理を停止するTCPACK送信停止処理を実行する。
同様の処理を、正常に受信されなかったTCPDATAセグメントの数だけ実行される。
AP(WLAN)は、正常に受信されなかったTCPDATAセグメントを再送した後、送達確認を求めるためのBlockACK Requestフレームを、STA(WLAN)に送信する。
STA(WLAN)は、BlockACK Requestフレームを受信すると、再送されたWLANDATAフレームを正常に受信した旨を示すBlockACKフレームをAP(WLAN)に送信する。
AP(WLAN)は、受信したBlockACKフレームに基づいて、子局の通信装置に再送され正常に受信されたTCPDATAセグメントに対応するTCPACKセグメントを生成し、この生成されたTCPACKセグメントをAP(TCP/IP)に与える。
以上説明した本実施の形態においては、IEEE802.11eやIEEE802.11nなどに規定されているBlockACKフレームをサポートするために、上記第1の実施の形態で説明したWLAN受信処理部18、WLAN送信処理部19、WLANACK解析部20、WLANDATA解析部21、TCPACK送信停止部22の機能を、連続した複数のWLANフレームに対しても処理可能に拡張し、BlockACKフレームを、SACKオプション機能を含むTCPACKセグメントの代用とする。
これにより、本実施の形態においては、TCPACKセグメントを送信せずに送達確認を行うことができ、TCPACKセグメントを送信する通信端末の処理量を低減させることができる。
また、本実施の形態においては、TCPACKセグメントが送信されないため、通常の場合と比べて、TCPACKセグメントの送信のために占有されていた無線帯域を別の通信に使用することが可能となり、無線帯域を有効に活用することができる。
(第3の実施の形態)
本実施の形態においては、上記第1及び第2の実施の形態の変形例について説明する。
上記第1及び第2の実施の形態に係る通信システムにおいては、子局の通信装置がTCPACKセグメントの送信を停止する処理を行っている。
しかしながら、このような上記第1及び第2の実施の形態におけるTCPACKセグメントの送信停止処理に代えて、本実施の形態においては、子局の通信装置から親局の通信装置に送信されるWLANDATAフレーム又はBlockACKフレームを拡張し、子局の通信装置は、TCPACKセグメントをWLANDATAフレーム又はBlockACKフレームに載せて、親局の通信装置に送信する。
すなわち、本実施の形態においては、WLANACKフレーム又はBlockACKフレームの送受信処理を、TCPACKセグメントの送受信処理の代用とする際に、WLANACKフレーム又はBlockACKフレーム内にTCOACKセグメントの情報を付加した状態で送信が行われる。
このような本実施の形態においては、上記第1及び第2の実施の形態のようにTCPACKセグメントの送信を停止する場合と比べて、WLANDATAフレーム又はBlockACKフレームのフレーム長が、このWLANDATAフレーム又はBlockACKフレームに付加されるTCPACKセグメントの分だけ増加するが、TCPACKセグメント一つをフレームとして送信する通常の場合と比べると、通信されるデータの容量や無線帯域を低減でき、ネットワーク資源を有効活用することができる。
(第4の実施の形態)
本実施の形態においては、上記第1乃至第3の実施の形態に係る通信システムの変形例について説明する。なお、以下においては、上記第2の実施の形態の変形例に説明するが、上記第1又は第3の実施の形態に対しても同様の変形が可能である。
上記第2の実施の形態においては、TCPACKセグメントの送信停止処理を実行しているが、本実施の形態においては、このTCPACKセグメントの送信停止処理に代えて、TCPACKセグメントの送信を一時停止する処理を実行し、WLANDATAフレームが正常に受信されなかった場合に、子局の通信装置から親局の通信装置に、TCPACKを送信する。
図9は、本実施の形態に係る通信システムで行われる通信の一例を示すシーケンス図である。
この図9に示すシーケンスSeqC1においては、親局の通信装置から子局の通信装置に対して、TCPDATAセグメントをカプセル化したWLANDATAフレームが送信される。複数のWLANDATAフレーム(この図9では4つ)のうちいくつかのWLANDATAフレーム(この図9では2つ)が子局の通信装置に正常に受信されず、いくつかのWLANDATAフレーム(この図9では2つ)が子局の通信装置に正常に受信されたとする。
子局の通信装置においては、受信したWLANDATAフレームにカプセル化されているTCPDATAセグメントに対応するTCPACKセグメントの送信を一時停止する。
また、親局の通信装置から子局の通信装置に対して、BlockACK Requestフレームが送信される。すると、子局の通信装置は、親局の通信装置に、正常に受信したWLANDATAフレームの送達確認情報として、BlockACKフレームを送信する。
親局の通信装置は、BlockACKフレームに基づいて、子局の通信装置に正常に受信されたTCPDATAセグメントに対応するTCPACKセグメントの受信処理(TCPACKセグメントの生成など)を実行する。
さらに、親局の通信装置は、子局の通信装置に正常に受信されなかったTCPDATAセグメントの再送処理を実行する。
再送の結果、子局の通信装置が再送されたWLANDATAフレームにカプセル化されているTCPDATAセグメントを正常に受信した場合、子局の通信装置は、TCPACKセグメントの送信一時停止処理を実行する。なお、この図9の例では、再送においても正常に子局の通信装置がWLANDATAフレームを受信できなかったとする。
親局の通信装置から子局の通信装置に対して、BlockACK Requestフレームが送信される。すると、子局の通信装置は、親局の通信装置に、送達確認情報として、BlockACKフレームを送信する。親局の通信装置は、BlockACKフレームに基づいて、再送されたTCPDATAセグメントが正常に子局の通信装置に受信されていれば、この再送により正常に受信されたTCPDATAセグメントに対応するTCPACKセグメントの受信処理を実行する。
所定の回数再送処理を実行したが、子局の通信装置がWLANDATAフレームにカプセル化されているTCPDATAセグメントを正常に受信できない場合、通信システムは、WLANフレームレベルの再送処理を終了する。この場合、親局の通信装置のTCP処理では、TCPのWindowサイズ分の送信は可能であるが、このWindowサイズを超えるサイズについてはTCPACKセグメント待ちとなり、送信できない状態となる。
そこで、本実施の形態においては、通信システムでWLANフレームレベルの再送処理が終了された場合、子局の通信装置は、ある時間経過後に、TCPACKセグメントを発生し、TCPACKセグメントをカプセル化したWLANDATAフレームを親局の通信装置に送信する。
親局の通信装置は、TCPACKセグメントがカプセル化されているWLANDATAフレームを受信し、このTCPACKセグメントの受信により、Windowサイズを超えるサイズについても送信可能となる。
その後には、同様の処理が繰り返される。
以上説明した本実施の形態においては、再送を行ってもフレームロスが発生する場合に、子局の通信装置から親局の通信装置にTCPACKセグメントをカプセル化したWLANDATAフレームを送信する。これにより、TCPのWindowサイズを超えるサイズについてのTCPACKセグメント待ちを解消することができる。
本実施の形態においては、例えば、親局の通信装置から子局の通信装置へのコンテンツのストリーミング配信などにおいて、配信が中断されることを防止することができる。
(第5の実施の形態)
本実施の形態においては、上記第4の実施の形態に係る通信システムの変形例について説明する。
上記第4の実施の形態においては、親局の通信装置から子局の通信装置に送信されるWLANフレームにフレームロスが発生した場合について説明しているが、本実施の形態においては、子局の通信装置から親局の通信装置に送信されるBlockACKフレームにフレームロスが発生した場合について説明する。
図10は、本実施の形態に係る通信システムで行われる通信の一例を示すシーケンス図である。
シーケンスSeqD1においては、親局の通信装置から子局の通信装置に対して、TCPDATAセグメントをカプセル化したWLANDATAフレームが送信される。複数のWLANDATAフレーム(この図10では2つ)が子局の通信装置に正常に受信されている。子局の通信装置は、受信したWLANDATAフレームにカプセル化されているTCPDATAセグメントを受信した場合に、TCPACKセグメントの送信を一時停止する処理を実行する。
次に、親局の通信装置は、子局の通信装置に、BlockACK Requestフレームを送信する。すると、子局の通信装置は、親局の通信装置に対して、送達確認情報であるBlockACKフレームを送信する。
しかしながら、子局の通信装置から送信されたBlockACKフレームは、親局の通信装置に受信されていない。
このため、親局の通信装置は、TCPDATAセグメントをカプセル化したWLANDATAフレームを子局の通信装置に再送し、さらに、再送に対応するBlockACK Requestフレームを子局の通信装置に送信する。
子局の通信装置は、再送に対応するBlockACK Requestフレームを受信する。そして、子局の通信装置は、この受信したBlockACK Requestフレームに対応するBlockACKフレームを親局の通信装置に送信する処理、及びTCPACKセグメントの一時停止処理を実行する。
シーケンスSeqD2においては、親局の通信装置から子局の通信装置に対して、TCPDATAセグメントをカプセル化したWLANDATAフレームが送信される。複数のWLANDATAフレーム(この図10では2つ)が子局の通信装置に正常に受信されている。子局の通信装置は、受信したWLANDATAフレームにカプセル化されているTCPDATAセグメントを受信した場合に、TCPACKセグメントの送信を一時停止する処理を実行する。
次に、親局の通信装置は、子局の通信装置に、BlockACK Requestフレームを送信する。すると、子局の通信装置は、親局の通信装置に対して、送達確認情報であるBlockACKフレームを送信する。
しかしながら、子局の通信装置から送信されたBlockACKフレームは、親局の通信装置に受信されていない。
このため、親局の通信装置は、TCPDATAセグメントをカプセル化したWLANDATAフレームを子局の通信装置に再送するが、この再送においても、子局の通信装置から送信されたBlockACKフレームにフレームロスが発生している。
所定の回数再送処理を実行したが、親局の通信装置がBlockACKフレームを正常に受信できない場合、通信システムは、WLANフレームレベルの再送処理を終了する。
この場合、子局の通信装置は、ある時間経過後に、TCPACKセグメントを発生し、TCPACKをカプセル化したWLANDATAフレームを親局の通信装置に送信する。
親局の通信装置は、TCPACKセグメントがカプセル化されているWLANDATAフレームを受信し、このTCPACKセグメントの受信により、次のTCPACKセグメントの送信処理を実行可能となる。
本実施の形態においては、上記第4の実施の形態と同様の効果を得ることができ、例えば、親局の通信装置から子局の通信装置へのコンテンツのストリーミング配信などにおいて、配信が中断されることを防止することができる。
(第6の実施の形態)
本実施の形態においては、上記第1乃至第5の実施の形態の変形例について説明する。
上記第1乃至第5の実施の形態においては、TCP/IPソフトウェア処理部においてTCPACK送信停止処理(TCPACKセグメントの送信を一時停止する処理も含む)が実行されている。
これに対して、本実施の形態においては、WLANソフトウェア処理部においてTCPACK送信停止処理が実行される。
図11は、本実施の形態に係る子局の通信装置のソフトウェアの一例を示すブロック図である。
本実施の形態において、ソフトウェア処理部23は、TCP/IPソフトウェア処理部24とWLANソフトウェア処理部25とを具備する。
WLANソフトウェア処理部25の例えばWLANDATA解析部26は、上記図4のTCPACK送信処理部22を具備する。
TCP/IPソフトウェア処理部24は、通常の場合と同様に受信したTCPDATAセグメントに対応するTCPACKセグメントを生成し、WLANソフトウェア処理部25に与える。しかしながら、WLANレイヤの例えばWLANDATA解析部26によって、TCPACKセグメントの送信は停止される。
以上のような本実施の形態に係る子局の通信装置においては、WLANレイヤにてTCPACK送信停止処理が実行される。これにより、上記第1乃至第5の実施の形態と同様の効果を得ることができる。さらに、本実施の形態においては、通常のWLAN部分のみを変更すればよく、TCP/IPソフトウェア処理部24については通常と同じ状態で使用することができる。
1…通信システム、AP…親局の通信装置、STA1〜STA8…子局の通信装置、2…コンピュータ、3,10…記憶装置、4…無線LANベースバンドチップ、5…無線部、6…アンテナ部、7,8…PCIC、9…MEMC、11…CPU、12…MAC、13…PHY、14…RFチップ、27,23…ソフトウェア処理部、15…ハードウェア処理部、16,24…TCP/IPソフトウェア処理部、17,25…WLANソフトウェア処理部、18…WLAN受信処理部、19…WLAN送信処理部、20…WLANACK解析部、21,26…WLANDATA解析部、22…TCPACK送信処理部