以下に添付図面を参照しながら,本発明の好適な実施の形態について詳細に説明する。なお,本明細書及び図面において,実質的に同一の機能構成を有する構成要素については,同一の符号を付することにより重複説明を省略する。
(第1の実施形態:無線通信ネットワーク)
近年,インターネット等の通信網に接続された通信装置と,モバイルパーソナルコンピュータ等の通信装置との間を,無線通信によって接続する無線通信ネットワークが一般化されつつある。無線ネットワークに関する標準的な規格の一例として米国電子技術者協会IEEE802.11,HiperLAN/2,IEEE802.15.3,Bluetoothなどが挙げられる。上記IEEE802.11規格には,無線通信方式や使用する周波数帯域の違いなどにより,IEEE802.11a規格,IEEE802.11b規格などの各種無線通信プロトコルが存在する。
このような無線通信ネットワークの構成を,上記IEEE802.11を例に挙げて詳しく説明する。IEEE802.11によるネットワーキングでは,BSS(Basic Service Set)の概念が用いられる。ここでは,アクセスポイントと呼ばれるマスタ制御局が存在するインフラモードで定義されるBSSと,複数のMT(Mobile Terminal)のみにより構成されるアドホック(Ad−hoc)モードで定義されるIBSS(Independent BSS)とが定義される。上記アクセスポイントは,例えばコーディネータであり,MTは,例えばノード(通信端末)である。
上記インフラモードのBSSにおいては,無線通信ネットワーク内にコーディネーション(Coordination)を行うアクセスポイントが必須となる。このアクセスポイントは,アクセスポイント周辺の通信可能な範囲に存在するMTをBSSとしてまとめ,所謂セルラーシステムにおけるセルを構成する。
上記アクセスポイントの近隣に存在するMTは,該アクセスポイントに収容され,このアクセスポイントによるBSSの1メンバとして無線通信ネットワークに参入する。上記アクセスポイントは,適当な時間間隔でビーコン(Beacon)信号と呼ばれるネットワーク管理情報を含んだ制御信号を送信する。このビーコン信号を受信することが可能なMTは,アクセスポイントが近隣に存在することを認識し,さらに該アクセスポイントとの間でコネクションの確立を行う。
図1は,インフラモードで定義されるBSSを説明するための説明図であり,図2は,上記BSSにおけるビーコン信号のタイミングを示したタイミングチャートである。図1においては,通信局STA0がアクセスポイントとして定義され,該STA0から通信可能な範囲100内にあるSTA1およびSTA2がMTとして定義される。上記STA0は,図2に示すように一定の時間間隔でビーコン信号を送信する。次回のビーコン信号の送信時刻は,ビーコン信号内のターゲットビーコン送信時刻(TBTT:Target Beacon Transmit Time)というパラメータによって通知されており,時刻がTBTTになるとアクセスポイントはビーコン信号の送信手順を遂行する。
また,周辺に存在するMT(図1におけるSTA1,STA2)は,上記アクセスポイントから送信されるビーコン信号を受信し,ビーコン信号内部に記されたTBTTフィールドをデコードすることによって次回のビーコン送信時刻を認識する。従って,受信の必要が無い場合などの通信状況によっては,次回あるいは複数回先のTBTTまで受信機の電源をOFFし,スリープ状態に入ることも可能である。このようにコーディネータの存在するネットワークにおいては,コーディネータのみがビーコンを送信しているため,当該無線通信ネットワーク内のMTは,アクセスポイントからのTBTTが一時的に遅れることも許容する。
続いて,もう一方のアドホックモード時におけるIEEE802.11の動作を説明する。かかるアドホック通信では,各通信装置(ノード)同士が直接,CSMAのプロトコルの管理下で非同期に無線通信を行うことができる。他にも,IEEE802.15.3におけるUWB(Ultra Wide Band)通信では,アクセスポイントを介してネットワークの管理が行われ,プリアンブルを用いたパケット構造のデータ通信方式により上記のアドホック通信(またはメッシュ通信)を実現している。
図3は,アドホックモードで定義されるIBSSを説明するための説明図であり,図4は,上記IBSSにおけるビーコン信号のタイミングを示したタイミングチャートである。上記アドホックモードのIBSSにおいて,STA1やSTA2で表されるMTは,自己の通信範囲102内にある複数のMTに対してネゴシエーションを行い,各MTで自律的にIBSSを定義する。このMT群は,IBSSが定義されネゴシエーションが成された後に,図3に記した一定間隔毎のTBTTを定める。各MTは,自局内のクロックを参照して時刻がTBTTになったことを認識すると,ランダム時間遅延(Random Backoff)させた後,IBSS内の他のMTがビーコン信号を送信していないことを確認し,他のMTに対してビーコン信号を送信する。
上記の例では,IBSSに属するいずれかのMTが,TBTTが訪れる毎にビーコン信号を送信する。従って,ビーコン信号同士が衝突する可能性もある。
また,図1のSTA0,STA1,STA2を全てMTとして定義した場合,例えば,STA1がSTA0にデータを送信しようと試みた場合,STA0の近隣にはSTA2が存在し,そのSTA2が,一方の通信装置(STA0)とは通信可能であるが他方の通信装置(STA1)とは通信ができない所謂隠れ端末となる。このような隠れ端末によってデータ通信が妨げられるのを回避するため,通信装置(STA1)および通信装置(STA0)は,RTS/CTS制御信号を利用して送信端末と受信端末とを特定する。
図5は,上記RTS/CTS制御信号による制御を説明するためのタイミングチャートである。ここで,STA0,STA1,STA2は,図1に示した位置関係に配されているとする。このとき,STA1とSTA2がSTA0にデータ・フレームを送信する場合,お互いの電波をキャリアセンスすることができない。従って,一方が送信するデータ・フレームが衝突する可能性が生じる。このようなデータ・フレームの衝突を回避するため,従来における無線ネットワーキングのMAC層では,上述したように,RTS制御信号,CTS制御信号を介したアクセス方式が提供されている。
例えば,図5を参照すると,STA1からSTA0にデータを送信しようとした場合,先ず,STA1はRTS制御信号110を送信する。かかるRTS制御信号110は,STA0で受信されるが,STA2には届かない。しかし,STA0がRTS制御信号110に対応したCTS制御信号112をSTA1に対して返信した場合,STA2は,CTS制御信号112を受信することができ,STA0が他局(ここでは,STA1)と通信を開始していることを認識する。STA2は,STA0の通信を認識すると,STA0との通信の衝突を回避するため,自己からのデータの送信を一定時間禁止(NAV:Network Allocation Vector:非送信区間)114する。このように通信経路が確保されたSTA1は,STA0に対してData116を送信し,STA0は,それに応じてACK制御信号118を返信する。また,STA2がSTA0への送信を試みた場合,上記と同様にSTA1の送信も一定時間禁止120される。このようにして上記の隠れ端末問題を解消している。
また,上記隠れ端末問題以外にも,各ノード間の環境の変化等によって,データの伝送エラーが生じる問題もある。以下に,伝送エラー時の対応に関して詳述する。
図6は,TDMA方式における各ノードの送受信タイミングを示したタイミングチャートである。従来,無線のMAC(Medium Access Control)の制御方式としては,TDMA方式が主流であった。かかるTDMA方式では,フレーム150毎に,基地局との通信を行うノード(STA1,STA2)が割り当てられ,割り当てられた時間内においてのみ,各ノード(STA1,STA2)と基地局とのデータの送受信が行われる。
また,TDMA方式では,基地局に対するデータの送信(Uplink)や受信(Downlink)が,TDMAスロッドと呼ばれる相違する時間分割で管理されていることが多く,そのため,データの送信と受信とが別々にスケジューリングされる。従って,データの受信中に,容易に送信パケットを削除することが可能であった。
ここで,送信パケットを削除するのは,特定のノードに対するデータや,データ中の特定のパケットに伝送エラーが生じた場合,そのデータの再送処理が繰り返し行われ,メモリバッファ内にパケットが滞ってしまうことを回避するためである。
例えば,図6のノード(STA1)が,基地局に送信するデータを保持しており,何らかの理由で伝送エラーが起きている場合,上記ノード(STA1)は,データの再送処理の時間を計数し,再送処理時間を超えた送信パケットを放棄して,当該パケットの再送を中止する。このようなタイムアウトによって,繰り返し伝送エラーが生じるパケットの再送処理を打ち切り,早期に次のパケットの送信処理に移行できるので,いつまでも再送処理を繰り返すことによる遅延を回避でき,リアルタイム性を確保することが可能となる。
一方,CSMA方式では,送受信のスケジューリングが困難である。従って,上述したように,ビーコン信号やポーリング(polling)パケットによって,各ノードの通信タイミングを同期化し,通信を安定化する。
図7は,CSMA方式における各ノードの送受信タイミングを示したタイミングチャートである。図7に示したように,CSMA方式では,ビーコン信号により各ノード間を同期させ,その同期の枠152内で,データの転送シーケンスが実施される。
上述したTDMA方式と違い,CSMA方式においては,データの送受信タイミングがビーコン信号のタイミングや,RTS/CTS制御信号に依存し,パケットの送受信における自己のメモリバッファへのアクセスタイミングを把握するのは困難である。従って,伝送エラーが検知され,メモリバッファに蓄積された送信パケットの削除を要する状況においても,自己のメモリバッファへのアクセス状態が不明なため容易に送信パケットを削除することができなかった。
Ethernet(登録商標)のような有線による高速通信では,伝送エラーが比較的少ないため,送信パケットの再送信制御を上位層,例えばTCP層で行うことができた。しかし,上記CSMA方式のような無線環境下においては,通信環境が有線と比較して不安定なので,伝送エラーが生じる可能性が高い。上記CSMA方式においても,高速通信を実現しようとすると,伝送効率の面から,パケットの再送制御や削除制御を上位層ではなく,例えばMAC層で行う必要性が生じる。かかる問題を克服することにより,現行の100Mbps程度の通信のみではなく,今後主流になることが予想される300Mbps〜1Gbpsの転送速度を有するUWBやIEEE802.11nのような高速通信にも対応可能となる。
本発明による実施形態においては,上記ビーコン信号を含む制御パケットの送信または受信時に送信パケットの削除を行うことにより,このようなメモリバッファへのアクセスの衝突を避け,適切なタイミングで不要なパケットを削除することが可能である。
(第2の実施形態:通信装置)
図8は,通信装置200の概略的な構成を示したブロック図である。上記通信装置200は,ネットワーク管理部210と,メモリバッファ部212と,送信データ生成部214と,送受信制御部216と,物理層Tx部218と,アンテナ220と,物理層Rx部222と,物理層制御部224と,受信データ制御部226と,パケット削除部228とを含んで構成される。
上記ネットワーク管理部210は,上位層(上位レイヤ)であり,例えば,アプリケーション層で生成された送信データを送信パケットに分割し,生成された送信パケットをメモリバッファ部212に転送する。また,ネットワーク管理部210は,メモリバッファ部212から受信パケットを受信する。さらに,ネットワーク管理部210は,アプリケーション層からのスループット要求を受けて,通信経路の確保やQoS(Quality Of Service)による無線回線制御も実施している。また,ネットワーク管理部210は,宛先ノードのアプリケーションとの間でP2P制御を行うとしても良い。
上記QoSによるスループットの管理においては,単位時間当たりどの程度の送信パケットが送信されているかも判断され,もはや通信が行われていないと判断されるノードに対して,データの送信を強制的に打ち切ることもできる。
上記メモリバッファ部212は,データを一時的に保持することが可能な記憶媒体,例えば,SRAM,DRAM,SDRAM,DDR,SDRAM,ランバスDRAM,EEPROM,FLASH等で形成される。そして,ネットワーク管理部210からの送信パケットをルーティング情報に応じて一時的に保持する。また,メモリバッファ部212は,受信データ制御部226からの受信パケットもネットワーク管理部210が取り込む準備ができるまで一時的に保持する。
かかる記憶媒体としてDPRAM(Dual port RAM)を使用し,送受信の経路を分ける(送受信のメモリを独立して備える)ことも可能であるが,ここでは,コスト等を踏まえた実現性から送受信のパケットを共有のアドレス空間に配置するシングルバッファを利用する。従って,シングルバッファの記憶媒体に受信パケットを書き込むときには送信パケットを書き込むことができず,また,送信パケットを書き込むときには受信パケットの入力ができない。バッファの記憶容量は特に限定しない。上記メモリバッファ部212をシングルバッファで形成することにより,送信パケットや受信パケットの容量に偏りが生じた場合でも,記憶容量の有効活用が可能となる。例えば,送信パケットが記憶容量の30%しか利用していないときは受信パケットは最大70%の記憶容量を利用できる。
上記送信データ生成部214は,送受信制御部216から送信レート等の情報を得て,送信パケットを生成する。かかる送信データ生成部214や後述する受信データ制御部226の無線方式は上述した方式に限られず,例えば,赤外線,OFDM,DS−SS,FH−SS,モノパルス等であっても良い。また,送信データ生成部214,物理層Tx部218,物理層制御部224により上述したパケット送信部(図示せず)が形成される。送信データ生成部214は,送信パケットを同期させるためのシーケンス番号を順次付与するとしても良い。かかるシーケンス番号は,通信装置200と他のノードとの間でパケットの重複受信を管理するために共通に設けられた数値であり,このシーケンス番号を送信パケットの送信順に利用しても良い。
上記送受信制御部216は,TDMA,CSMAのMACプロトコルを制御し,送信データ生成部214に送信レート等の情報を提供する。また,送信データ生成部214からの送信パケットの送信タイミング,およびアドホック通信内の通信時間(タイミング)を制御する制御パケットの送受信タイミングを制御し,その制御タイミングをメモリバッファ部212に伝達する。また,かかる制御方式は,CSMAに類似し,CarrierではなくPreambleの相関によってパケットを識別するPSMAと呼ばれるメディアアクセス制御を含むとしても良い。
上記制御パケットは,ビーコンであっても良いし,RTS制御信号,CTS制御信号,ACK(送信完了)制御信号,NACK(送信失敗)制御信号,データの通信帯域を予約するパケットであっても良い。
上記物理層Tx部218は,物理層制御部224からの指令を受けて,動作を開始し,送信データ生成部214からのデータを,アンテナ220を介してエアー(air)に出力する。
上記物理層Rx部222は,物理層制御部224からの指令を受けて,動作を開始し,物理層Tx部218が出力した送信データに対する宛先ノードからの返信データ(パケット)を受信する。その後,受信データ制御部226に転送する。かかる物理層Rx部222,物理層制御部224,受信データ制御部226により上述したパケット受信部(図示せず)が形成される。
上記物理層制御部224は,送受信制御部216または送信データ生成部214からのデータ送信コマンドを受けて,物理層におけるデータの送信を制御し,また,他のノードから受信したデータを受信データ制御部226へ転送する。さらに,送信に関しては物理層Tx部218を,受信に関しては物理層Rx部222をタイミング制御する。
上記受信データ制御部226は,受信データ(パケット)を分析し,受信したデータの種類や被測距装置を特定する情報を認識する。また,送信データ生成部214がシーケンス番号を各送信パケットに付与している場合,受信データ制御部226は,かかるシーケンス番号が同期しているかどうかを判断するとしても良い。ここで,シーケンス番号が同期していないとき,後述するパケット削除部228に送信パケットの強制削除を要請することができる。
上記パケット削除部228は,削除すべき送信パケットがある場合,上述した制御パケットの送信または受信中に,その制御パケットの送信または受信を検知して,削除すべき送信パケットをメモリバッファ部212から削除する。ここで,通信装置200は,制御パケットに関して,送信のみを行うことが可能としても良いし,受信のみを行うことが可能としても良い。また,そのような送信または受信のみを行うモードが設けられるとしても良い。かかる構成により消費電力を低減することが可能となる。また,かかる削除処理は,パケット削除部228が直接行うとしても良く,パケット削除部228の命令によりメモリバッファ部212で行われるとしても良い。
上記制御パケットの送信または受信は,送信データ生成部214や,受信データ制御部226と,送受信制御部216とによって行われ,メモリバッファ部212とは一定期間(例えば,ビーコンの場合20μsec)処理が切り離される。従って,制御パケットの送信または受信中は,メモリバッファ部212へのアクセスは行われない。本実施形態では,上記のタイミングで削除すべき送信パケットを削除するのでメモリバッファ部212へのアクセス衝突を回避できる。ここで,制御パケット,特にビーコンによる時間間隔を20μsecとしているが,かかる場合に限られず,システムに応じて,また,同一のシステムにおいても動作状況に応じてその間隔は変化し,様々な時間をとることができる。
また,上述したように制御パケットは,ビーコン信号以外にも,RTS制御信号,CTS制御信号,ACK(送信完了)制御信号,NACK(送信失敗)制御信号,データの通信帯域を予約するパケットを適用することができる。ここで,メモリバッファ部212が送信と受信とを独立して管理している場合,パケット削除部228は,パケットを受信していることを検知して,そのパケット受信中に削除すべき送信パケットを削除するとしても良い。
また,送信パケットにはクラスが定義され,パケット削除部228は,上記クラスに応じて,上記削除すべき送信パケットと宛先ノードが同じ送信パケット全てを削除するかどうか決定するとしても良い。送信パケットがリアルタイム性を要するデータ(例えば,QoS用のパケット)の一部であった場合,リアルタイム性を犠牲にしてまで送信パケットを送信する必要はない。また,逆にリアルタイム性を犠牲にしても確実に宛先ノードに到達する必要がある送信パケットも存在する。かかる送信パケットの属性をクラスとして定義し,その定義に応じて,送信パケットの削除の範囲を判断する。かかる構成により,送信パケットの内容に応じた最適の削除範囲を定義することが可能となる。
また,上記パケット削除部228は,送信パケットを削除したことをネットワーク管理部210に伝達し,ネットワーク管理部210は,メモリバッファ部212とは別,例えば,アプリケーション層で管理している,削除すべき送信パケットと同じ宛先ノードの送信パケットを全て削除し,パケット削除部228に,再度,送信パケットの削除を依頼するとしても良い。
タイムアウトにより送信の必要が無くなった送信パケットと同一の宛先ノードに送信される送信パケットは,上位層,例えば,アプリケーション層においても削除されるべきである。従って,パケット削除部228は,ネットワーク管理部210にも送信パケットの削除を促す。しかし,かかる削除コマンドの伝送遅延により,ネットワーク管理部210が送信パケットを削除する直前に,メモリバッファ部212に送信パケットを送信してしまうこともあり得る。かかる再度の削除命令により,伝送エラーを生じる送信パケットを完全に削除することができる。
上述した通信装置200を利用してメモリバッファ部212に保持された送信パケットを削除する具体的な動作を以下に示す。
上記パケット削除部228は,宛先ノードが所定時間内に受信完了しない送信パケットをタイムアウトした送信パケットとして,メモリバッファ部212から削除する。
パケット送信部(送信データ生成部214,物理層Tx部218,物理層制御部224)は,宛先ノードから送信パケットの受信完了(ACK)の返答があるまで,送信パケットの送信を繰り返す。しかし,宛先ノードとの距離の変化等,通信状況の変化によって通信が不可能になった場合においても,再送信を試みるのは非効率である。従って,所定時間内に受信完了(ACK)の返答がない宛先ノードの送信パケットの再送は中止される。
本実施形態において,所定時間は,上記制御パケットの送信または受信回数で定義されるとしても良い。上記制御パケットは定期的,例えば100msecに一回,近隣のノードに対して発せられ,また,他のノードから受信される。従って,上記制御パケットは,送信パケットの削除タイミングとしてのみではなく,タイムアウトのトリガとしても利用される。
また,上記パケット削除部228は,上記タイムアウトを総合的に管理するため,メモリバッファ部212内に保持された送信パケットと,該送信パケットのバケット長と,該送信パケットの宛先ノードと,制御パケットの送信または受信回数とを関連付けた送受信テーブルを有している。上記各パラメータは,バッファメモリ部212内で送信パケットと同様に記憶されるとしても良いし,他の記憶領域に記憶されるとしても良い。また,送信パケットや受信パケットのシーケンス番号も合わせて管理することも可能である。
パケット削除部228は,送受信テーブルの各送信パケットに関連付けられた,制御パケットの送信または受信回数を,カウントアップもしくはカウントダウンにより計数し,所定回数に達した送信パケットおよびその送信パケットと宛先ノードが同一の送信パケットを全て削除することができる。かかる構成により,メモリバッファ部内の送信パケット全てを統括的に管理することができる。以下に,送信パケットの削除動作を詳述する。
図9は,送受信テーブル300のデータ構造を概略的に示した説明図である。ここでは,メモリバッファ部212のアドレス1〜5までに送信パケットと受信パケットが混在して記憶され,送受信テーブル300には,特に送信パケットに関する様々な情報が関連付けられている。先ず,アドレス302には,メモリバッファ部212の物理的または論理的なアドレスが示される。かかるアドレス302は,メモリバッファ部212のアドレスのみに限られず,送信パケットを管理するための管理番号であっても良い。そのアドレス302に格納されたパケットの種別がパケット304に示される。例えば,アドレス1には「送信パケット1」が記憶されている。かかるパケット304に示される「送信パケット」と「受信パケット」はパケットの方向を示し,語尾の数値は,再送管理にも必要なシーケンス番号を示す。
上述した送受信テーブル300の内容や保存方法は,制限されず,単一のファイルで管理しても,所定のファイル単位に分割して管理しても良い。
送信パケットの優先順位は,アクセス方式に準じて設定される。例えば,ラウンド・ロビン方式を適応したり,総レングス(Length)の多い順にしたりすることができる。上記図9の例では,上記ノード2に送信権が与えられた場合,「送信パケット1」が最初に送信許可され,ノード3宛に送信件が割り当てられた場合,「送信パケット3」が最初に送信許可される。
また,パケット長306は,各送信パケットの長さをバイト単位で示し,宛先ノード308は,送信先のノード名を示している。また,回数310には,本実施形態において,制御パケットの送信回数が記され,初期値を10として制御パケットの送信毎に一つずつカウントダウンされる。勿論初期値は10に限られるものではない。図9の場合,アドレス1の「送信パケット1」の回数310は3なので,上位層からEnQueue(送出)されて,既に100msec×7回の時間,宛先ノードに送信完了されていないことが理解できる。また,残り300msecは待機可能であることも同時に理解される。
図10は,制御パケットの送信の流れと,それぞれの時点における送受信テーブルの変化を説明するためのタイミングチャートであり,図11A,B,C,Dは,図10の時点(2),(3),(4),(5)における送受信テーブルを示した説明図である。本実施形態では,宛先ノードのうち,ノード2との通信環境が悪く,ノード3との通信環境は比較的良い場合を想定している。
図10の時点(1)において,送受信テーブルは,図9に示したようになっており,メモリバッファ部212には,ノード2に対する送信パケット2つ,ノード3に対する送信パケット1つ,および受信パケット2つが保持されている。
図10の時点(2)では,アドレス2,3に保持されていた受信パケット1,2がネットワーク管理部210に読み出され,また,アドレス4に保持されているノード3への送信パケット3のみが送信に成功し,それぞれメモリバッファ部212から削除されている。従って,図11Aのアドレス2〜4は空の状態となる。また,ノード2への送信パケットは伝送エラーにより送信が完了していないので,送受信テーブルに残っている。ここで,制御パケットが1回送信されていることから,回数310は,1ずつ減算され,送信パケット1の回数310は,「2」に,送信パケット2の回数310は,「7」となっている。
続いて,図10の時点(3)では,上位層からのパケット送信命令に応じて,新たに,アドレス2にノード3への送信パケットが追加されている。図10の時点(2)から(3)の間に,アドレス1,2,5に示された送信パケット全てが送信を失敗しているので,かかる制御パケットのカウントは,図11Bに示すように,「1」,「9」,「6」に減じられる。
続いて,図10の時点(4)では,受信パケット3がアドレス4に追加されている。しかし,図10の時点(3)から(4)にかけて,やはりアドレス1,2,5に示された送信パケットは送信完了しておらず,かかる制御パケットのカウントは,図11Cに示すように「0」,「8」,「5」に減じられる。ここで,パケット削除部228は,送信パケット1の回数310が「0」になったのを(所定回数10回に達したのを)受けて,ノード2宛の送信パケットが停滞していると判断し,当該送信パケット1を削除する。また,削除すべき送信パケット1の宛先ノードは「ノード2」なので,同宛先ノードである送信パケット2も,その回数310(待機時間)に拘わらず同時に削除する。こうして,時点(4)の直後である時点(5)では,図11Dのように,送受信テーブルのアドレス1,5は空になり,次なるパケットを保持する領域が確保される。
伝送エラー等によって削除することが必要となった送信パケットと同一の宛先ノードに送信予定の送信パケットは,再度,伝送エラー等が生じる可能性が高い。これは,宛先ノードとの距離の変化等,通信状況の変化によって伝送エラーが生じた場合,当面,同様の伝送エラーを繰り返すことが予測されるからである。従って,パケット削除部228は,タイムアウトした送信パケットのみならず,その送信パケットと宛先ノードが同じ送信パケット群も削除して,より迅速にメモリバッファ部の空き容量を確保する。
上記では,回数310をカウントダウンして所定時間を計数しているが,カウントアップによって所定時間を計数することもできる。この場合,初期値を0回として,所定回数10回(閾値)に達した送信パケットを削除することとなる。ここでは,所定時間を所定回数の計数によって測定しているが,システムとして予め統一されていれば,時間として取り扱うことも,送信や受信回数として取り扱うこともどちらも可能である。上記回数310は実質的には時間を意味するが,説明の簡略化により,回数と定義している。また,カウントダウンまたはカウントダウンと削除処理の順序は問わない。
また,ここでは,理解を容易にするためアドレスを5つに絞って説明したが,かかる範囲に限定されず,メモリバッファ部212の記憶容量に応じて,より多くのアドレスを対応付けることができる。また,本実施形態は,上述した数値に限られず,様々な数値をとりうる。
さらに,本実施形態では,上位層であるネットワーク管理部210からパケット削除部228に強制的に送信パケットの削除を指令することも可能である。ネットワーク管理部210がパケット削除部228に対して強制的に削除指令を発すると,パケット削除部228はネットワーク管理部210が送受信テーブル300中の当該送信パケットの回数310を強制的に1にして,送信パケットの削除が行われる。この処理により次回の制御パケット送信時にこの送信パケットは確実に削除される。
(第3の実施形態:データ削除方法)
続いて,アクセスポイントを介さずに各通信装置同士が直接通信を行うアドホック通信において,上述した通信装置200を利用し,特定の宛先ノードに送信するデータを削除するデータ削除方法の詳細な動作を説明する。
図12は,第3の実施形態におけるデータ削除方法の流れを示したフローチャート図である。本実施形態では,制御パケットの送信または受信中に,メモリバッファで滞っている送信パケットを削除し,メモリバッファ部へのアクセス衝突を回避する。
通信装置200は,当該通信装置200の周囲のノードと通信タイミングを図るため,送受信制御部216に制御パケットとしてビーコン信号を送信する。他のノードは,かかるビーコン信号を受信し,そのビーコン信号により割り当てられた信号帯域に従って,各ノード間のデータ交換を実施する。
通信装置200の送受信制御部216は,ビーコン信号がアサート(assert)されたことをパケット削除部228に伝達し,パケット削除部228は,ビーコン信号が送信中であることを知ることができる(S400)。ビーコン信号のアサートが検出されない場合,当該工程は待機状態が続く。上記ビーコン信号がアサートされた場合,送受信制御部216は,メモリバッファ部212と切り離してビーコン信号の送信が行われるため,パケット削除部228は,独立してメモリバッファ部212にアクセスすることができる。また,ここでは,ビーコン信号の送信を挙げているが,ビーコン信号を受信する通信装置に関しても適用可能である。
ビーコン信号がアサートされると,パケット削除部228は,未だもって送信が完了していない送信パケット全ての制御パケット回数を計数する(S402)。特に,ここでは,予め上位層によって設定されたパケット待機許可時間分(制御パケット10回)を初期値にして,送受信テーブル300の回数310を1ほど減算する。
かかる送受信テーブル300は,ネットワーク管理部210がメモリバッファ部212に送信パケットを送信した時点および受信データ制御部226がメモリバッファ部212に受信パケットを伝送した時点で,そのパケットの内容に基づいて追加される。通常,ビーコン信号は,定期的(100msec)に発信されるので,初期値を10とした場合のタイムアウトは,100msec×10回で1secとなる。
そして,送受信テーブル300の回数310を減算した結果,その値が0になった送信パケットの有無を判断する(S404)。ここで,回数310が0になった送信パケットが存在していたら,その送信パケットの宛先ノード308を抽出する(S406)。そして,当該送信パケットおよび送信パケットと同一の宛先ノードを有する送信パケット全てを削除する(S408)。
かかる工程(S408)では,送信パケットの削除を行っているが,かかる場合に限られず,送信パケットの削除情報をネットワーク管理部210に伝達し,ネットワーク管理部210が,続いてEnQueueする送信パケットの量を制限することも可能である。
次に,パケット削除部228は,送信パケットを削除したことをネットワーク管理部210に伝達し,ネットワーク管理部210は,例えばアプリケーション層で管理している削除すべき送信パケットと同じ宛先ノードの送信パケットを全て削除する(S410)。そして,ネットワーク管理部210は,パケット削除部228に再度,送信パケットの削除を依頼し,それに応じてパケット削除部228は,宛先ノードが同一の送信パケットを再度削除する(S412)。このような再度の削除処理により,伝送エラーを生じる送信パケットを完全に削除することができる。
かかる構成では,送信パケットの削除タイミングにおいて,メモリバッファ部へのアクセスが衝突することがなく,適切なタイミングで不要なパケットを削除することが可能となる。
図13は,上記ビーコン信号のアサート判断(S400)時のキャリアセンスに関して詳細に述べたフローチャートである。まず,送受信制御部216が一定期間,ここでは100msecを計数し,ビーコン信号の送信予定時刻が到来すると(S450),エアー上にパケットが存在されているかどうか,即ち,同アドホック通信を形成するノード間でデータ交換が行われているかどうか確認する(S452)。このときのパケットの検出方法は,キャリアセンスや,既知パターンとの相関によってパケットの存在を把握するプリアンブル(Preamble)センスが考えられる。
図14は,上記のFrameフォーマットを示した説明図である。このようにFrameは,プリアンブル(Preamble)部と,ヘディング(Heading)部と,ペイロード(Payload)部とからなり,プリアンブル部は,規格により既知のシンボル・パターンが定義されている。ヘディング部は,かかるFrameのタイプ(例えば,RTS制御信号),通信をするネットワークグループを特定するためのグループ識別子,届け先を示すアドレス,送り元を示すアドレス(自己のアドレス),制御情報等を含んで構成され,ペイロード部は,ネットワークの同期情報,装置の属性や能力など固有の情報エレメントや自己が通信に利用する時間情報などネットワーク管理部210で制御される情報やアプリケーション層で使用するデータ等を含んで構成される。
例えば,無線通信におけるパケットは,上述したように,プリアンブル部,ヘディング部およびペイロード部から形成され,かかるプリアンブル部を検出してパケットの有無を把握する。かかるプリアンブルとヘッダは,送信データ生成部214または物理層Tx部218で生成されるとしても良い。
上記パケットの存在確認(S452)で,パケットがエアー上に存在すると判断された場合,一定時間(上述したNAVの間),データの送信を中止して待機する(S454)。パケットがエアー上に存在しない場合,ビーコン信号をアサートして,その旨パケット削除部228に伝達する(S456)。
(第4の実施形態:送信パケットの強制削除)
また,通信装置200は,他のノードとの通信において,送信パケットのシーケンス番号の不整合に従って,現在の送信パケットをクリアするため,強制的に送信パケットを削除することも可能である。
例えば,コーディネータが存在しない自律分散なネットワークにおいて,自己の通信装置200と他のノード(宛先ノード)との間でデータ通信する場合を想定する。このとき,パケットの重複受信を管理するため,送信データ生成部214において,各送信パケットにシーケンス番号を順次付与している。
このようにシーケンス番号が付与された送信パケットは,通常,シーケンス番号順に送信される。従って,宛先としての宛先ノードは,かかるシーケンス番号の連続性を判断するだけで,その伝送エラーを検知できる。例えば,両通信装置間の無線通信に何らかの不具合が生じた場合,上記シーケンス番号が同期されなくなる可能性がある。宛先ノードは,重複パケットの存在を常に検出しているため,不連続なシーケンス番号を検知すると,送信先の通信装置にかかる伝送エラーを伝える。
図15は,通信装置と宛先ノードとのデータ通信の流れを示したフローチャートである。まず,通信装置200は,シーケンス番号「10」の送信パケットを生成し,その送信パケットをシーケンス番号と共に宛先ノードに送信する(S500)。宛先ノードは,その送信パケットを受信すると,通信装置200に対して,受信の完了信号(ACK)をそのシーケンス番号「10」と共に伝送する(S502)。通信装置200は,かかるACK制御信号を受けて,シーケンス番号「10」までの送信パケットが送信完了したことを把握し,メモリバッファ部212内にあるシーケンス番号「10」の送信パケットを削除する(S504)。
次に,通信装置200は,シーケンス番号「11」の送信パケットの送信準備を始める。通信装置200は,シーケンス番号「11」の送信パケットを宛先ノードに送信する(S506)。しかし,何らかの不具合により,シーケンス番号「15」の送信パケットが宛先ノードに届いたと仮定する。宛先ノードは,受信すべきパケットのシーケンス番号が「11」ではなく,「15」であったことを受けて,受信が失敗したこと(NACK)を通信装置200に伝達し,併せて,シーケンス番号をリセットする旨のコマンドを送信する(S508)。
通信装置200は,宛先ノードからの受信失敗を受けて,シーケンス番号の同期ずれが生じたことを把握し,シーケンス番号のリセットを行う(S510)。このとき,パケット削除部228は,上記宛先ノードに関して送信予定になっている送信パケットをメモリバッファ部212から一掃する。これは,ネットワーク管理部210がパケット削除部228の送受信テーブルの該当送信パケットの回数310を強制的に「1」にすることによって実施できる。かかる回数310は次回の制御パケットの送信時に「0」に減算されるからである。また,回数310に拘わらず,強制的に該当送信パケットを削除するとしても良い。
かかる削除処理によって,シーケンス番号の同期ずれが生じた場合においても,ネットワーク管理部210と送受信制御部216との連携を保ち,効率の良いパケット削除を実現することができる。
本実施形態では,宛先ノードが送信パケット毎に送信完了(ACK)を返信するイミディエイトACK(Immediate ACK)によって実現されているが,かかる場合に限られず,例えば,宛先ノードの返信タイミングでACKを返信してパケット送信の効率化を図るシステムにおいても適用可能である。
(第5の実施形態:NACKによる送信パケットの削除)
パケット削除部228は,メモリバッファ部212に所定時間滞っている送信パケットを削除するが,この所定時間は,宛先ノードからの受信エラー(NACK)信号の回数で定義されるとしても良い。従って,パケット削除部228は,宛先ノードの受信エラー信号(NACK)に基づいてタイムアウトを換算する。パケット削除部228は,送受信テーブル中の制御パケットの回数の代わりに受信エラー信号の回数を記憶し,その計数でタイムアウトを換算する。かかる構成により,各ノードに対して,送信パケットの再送の回数を均一に与えることが可能となる。
ここでは,通信装置200にARQ(Automatic Repeat reQuest)の機能を追加し,ARQ回数によるタイムアウトと,パケット待機時間によるタイムアウトの2つの方向から送信パケットの削除管理を行う。
図16は,通信装置と宛先ノードとのデータ通信の流れを示したフローチャートである。まず,通信装置200は,シーケンス番号「10」の送信パケットを生成し,その送信パケットをシーケンス番号と共に送信する(S600)。宛先ノードは,その送信パケットを受信すると,通信装置200に対して,受信の完了信号(ACK)をそのシーケンス番号「10」と共に伝送する(S602)。通信装置200は,かかるACK制御信号を受けて,シーケンス番号「10」までの送信パケットが送信完了したことを把握し,メモリバッファ部212内にあるシーケンス番号「10」の送信パケットを削除する(S604)。
次に,通信装置200は,シーケンス番号「11」の送信パケットの送信準備を始める。そして,通信装置200は,シーケンス番号「11」の送信パケットを宛先ノードに送信する(S606)。しかし,何らかの不具合により,その送信パケットの送信が完了しなかった場合,宛先ノードは,通信装置200にNACKを返信する(S608)。
通信装置200は,同送信パケットの再送を行う(S610)。しかし,その送信パケットも宛先ノードに伝わらなかった場合,宛先ノードは同様のNACKを送信する(S612)。
宛先ノードからのNACKの回数が規定回数,ここでは2回になった場合,通信装置200は,シーケンス番号のリセットを行い,当該上記宛先ノードに関して送信予定になっている送信パケットをメモリバッファ部212から一掃する(S614)。これは,ネットワーク管理部210がパケット削除部228の送受信テーブルの該当送信パケットの回数310を強制的に全て「1」にすることによって実施できる。また,回数310に拘わらず,強制的に該当送信パケットを削除するとしても良い。かかる削除処理によって,シーケンス番号の同期ずれが生じた場合においても,ネットワーク管理部210と送受信制御部216との連携を保ち,効率の良いパケット削除を実現することができる。
そして,通信装置200は,新たなシーケンス番号「0」が付された送信パケットを改めて宛先ノードに送信する(S620)。ここでも宛先ノードからNACKが返信された場合(S622),通信装置200は,もはや宛先ノードとの通信は不可能であることを把握する。通信装置200は,当該送信パケットがメモリバッファ部212に待機している時間を計測し,待機時間が所定時間を超えた送信パケットおよびその送信パケットと同一の宛先ノードを有する送信パケット全てを削除する(S624)。ここで期間630は,ARQ回数によるタイムアウトを示し,期間632は,パケット待機時間によるタイムアウトである。
また,本実施形態では,パケット毎に1つのシーケンス番号を付与した例を挙げているが,かかる場合に限られず,MSDU(MAC Service Date Unit)毎にシーケンス番号を付与し,1つのパケットに複数のシーケンス番号が関連付けられるとしても良い。宛先ノードは,上記MSDU毎に付加されたCRCエラー情報を元にNACKを返信しても良いし,パケットのデコードに問題が出た時点でNACKを返信することもできる。
本実施形態では,宛先ノードが送信パケット毎に送信完了(ACK)を返信するイミディエイトACKによって実現されているがかかる場合に限られず,例えば,ディレイドACK(Delayed ACK)を利用することもできる。この場合,期間630が長くなることもある。また,上記ディレイドACKを利用すると,互いの送受信シーケンスが交差することも考えられるが,調停(Arbitration)により解決することもできる。
また,本実施形態では,NACKの回数が所定回数を超えた場合,送受信制御部216にその都度確認しているが,予め設定されたCSMAまたはPSMAプロトコルにより,次のパケット送信までのInterFrame Space内で処理が終わるように設計配慮することも可能である。
かかる送信パケットの削除は,その送信パケットと同一の宛先ノード全ての送信パケットを削除するとしても良いし,対象のクラスを踏まえて,削除するとしても良い。
上記NACKの回数をカウントする構成により,メモリバッファ部内の送信パケット全てを統括的に管理することができる。
上述した様々な実施形態によって,CSMAやPSMAのような前もって送受信時間が決定されてないシステムにおいても,高速データ通信に対応するためのパケット管理を実現することができる。また,シーケンス番号の同期ずれの処理,ネットワークの端末管理で管理している端末が見えなくなった場合の処理,ARQによる再送管理との復号機能に関するパケット管理等を実現することも可能となる。
以上,添付図面を参照しながら本発明の好適な実施形態について説明したが,本発明は係る例に限定されないことは言うまでもない。当業者であれば,特許請求の範囲に記載された範疇内において,各種の変更例または修正例に想到し得ることは明らかであり,それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば,上記実施形態においては,制御パケットとしてビーコン信号を挙げ,そのビーコン信号において送信パケットを削除したが,かかる場合に限られず,例えば,802.11のようにアクセスポイントのみがビーコン信号を送信するネットワークにおいて,ビーコン信号の受信タイミングを推測して,送信パケットの削除を行うとしても良い。
また,上記ビーコン信号に限らず,RTS,CTS,ACKといった制御パケットの送信もしくは受信時に送信パケットを削除するとしても良い。このようなネットワークの制御パケットの送受信においても,メモリバッファ部のアクセスは切り離されているので,メモリバッファ部へのアクセス衝突は生じない。
ただし,CSMAの場合,予めパケットの送信または受信時間がスケジューリングされていないため,パケットの送受信時に送信パケットの削除を行うと,削除処理が不安定になる可能性があり,また,回路構成を複雑にする必要が生じる。従って,図5における,DIFSやSIFSで示した期間に送信パケットの削除を行うとしても良い。しかし,近日の通信装置等に設けられる通信回路の進歩により上記DIFSやSIFSが短期間化され,高速データ転送等に利用される大容量のメモリバッファ部においては,一度に削除する送信パケットの量も多く,DIFSやSIFSの期間では送信パケットを削除しきれない可能性もある。その場合,メモリバッファ部の利用効率が低下し,無駄な時間を費やすこととなる。従って,十分な送信パケット削除時間を確保するため,上述したようなビーコンの送信または受信時間を利用することが有効である。
本実施形態においては,一つの通信装置に対して一つのノードへの送信パケットの送信を想定しているが,1対複数の送信も可能である。また,上記通信装置は,送信専用や受信専用として形成することもできる。
なお,本明細書のデータ削除方法における各工程は,必ずしもタイミングチャート(フローチャート)として記載された順序に沿って時系列に処理する必要はなく,並列的あるいは個別に実行される処理(例えば,並列処理あるいはオブジェクトによる処理)も含むとしても良い。