(57)【特許請求の範囲】
【請求項１】
情報受信装置に伝送路経由でデータを流そうとする情報送信装置に対して、当該情報送信装置が使用可能な帯域量を割り当てる情報処理装置を設けることにより、共有バス型ネットワークの伝送路を流れる総トラフィック量を抑制するデータ転送方法において、
前記情報送信装置が、通常のデータの送信用に一定の帯域の割り当てを前記情報処理装置に要求する送信帯域要求ステップと、
前記情報送信装置が、送信データ用に前記情報処理装置から割り当てられた送信データ帯域、所定の時点から現在までに再送されたデータ量である再送データ量、および所定の時点から現在までに送信された送信データの量である送信データ量に基づいて、データ再送用の帯域を算出し、算出した帯域の割り当てを前記情報処理装置に要求する再送帯域要求ステップと
を備えることを特徴とするデータ転送方法。
【請求項２】
請求項１のデータ転送方法において、
前記情報送信装置が、アプリケーションからの要求を契機に、データ送信用に割り当てられた帯域を用いて、データを送信するステップと、
前記情報送信装置が、データ再送が必要であるか否かを判別可能な情報をデータに付与するステップと、
前記情報受信装置が、データ配送時に発生したエラーを検出した際に、上記情報に基づきデータ再送要求を前記情報送信装置に発行するか否かを決定するステップと、
前記情報送信装置が、上記再送要求の受理を契機に、データ再送用に割り当てられた帯域を用いて、データの再送を実行するステップと
をさらに備えることを特徴とするデータ転送方法。
【請求項３】
請求項１または２に記載のデータ転送方法であって、
前記再送帯域要求ステップにおいて、前記情報送信装置は、以下の関係式に基づいて、データ再送用の帯域を算出することを特徴とするデータ転送方法。
データ再送用の帯域＝（送信データ帯域）×（再送データ量）／（送信データ量）
【請求項４】
請求項１から３のいずれかに記載のデータ転送方法であって、
前記情報送信装置が、前記送信データのそれぞれに、連続したシーケンス番号を付加して、前記情報受信装置へ送信するステップをさらに備えることを特徴とするデータ転送方法。
【請求項５】
請求項４に記載のデータ転送方法において、
前記情報受信装置が、前記送信データを受信した場合に、当該送信データに付加されたシーケンス番号と、前回受信した送信データに付加されたシーケンス番号との連続性を検証し、これらが不連続となっている場合に、前記情報送信装置へ再送要求を送信するステップをさらに備えることを特徴とするデータ転送方法。
【請求項６】
請求項１から５のいずれかに記載のデータ転送方法において、
前記情報送信装置が、予め定められたタイミングで、データ再送用の帯域を要求するためのデータである再送帯域更新要求を前記情報処理装置へ送信するステップをさらに備え、
前記再送帯域更新要求には、前記情報送信装置の識別情報、当該データが再送帯域更新要求である旨を示す情報、前記情報受信装置の識別情報、当該データがリアルタイムデータおよび非リアルタイムデータのいずれの帯域に関する情報なのかを示す情報、送信データ帯域を示す情報、および算出したデータ再送用の帯域を示す情報が含まれることを特徴とするデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ転送方法に関する。特に、共有バス型無線ネットワークを介して接続された情報送信装置と情報受信装置との間にて、高品質なマルチメディアデータを転送する方法に関する。
【０００２】
【従来の技術】
共有バス型ネットワークを介して接続された情報送信間及び情報受信装置（以下「送信ノード」「受信ノード」と呼ぶ）にて、高品質にマルチメディアデータを転送する方法としては、「リアルタイム通信方法」（特願平9−75018号）が知られている。
【０００３】
共有バス型ネットワークでは、伝送路上を流れる総トラフィック量が一定以上に上がると、伝送路上を流れるマルチメディアデータの品質が低下する特性がある。特願平9−75018号では、伝送路上を流れる総トラフィック量が一定以上にならないように制御することにより、共有バス型ネットワークにおける高品質なマルチメディアデータ転送を実現している。上記伝送路上を流れる総トラフィック量が一定以上にならないことを保証する制御方式の概要を以下に示す。
【０００４】
特願平9−75018号では、伝送路のトラフィック量を管理する「帯域管理サーバ」を共有バス型ネットワークの伝送路につき一つずつ設ける。
【０００５】
帯域管理サーバは伝送路のトラフィック量を、リアルタイム通信と非リアルタイム通信に分けて管理する。ここで言う「リアルタイム通信」とは、マルチメディアデータの転送などに代表される、アプリケーションが要求する帯域量に厳密に従った送信を行なう必要のある通信のことを指す。一方、「非リアルタイム通信」とは、FTPに代表される帯域量の制約が存在しない通信のことを指す。
【０００６】
リアルタイム通信、非リアルタイム通信を問わず、伝送路にパケットを送信しようとする各ノードは、その送信を開始する前に、帯域割り当て要求を行なうための制御パケットを帯域管理サーバに送信する。リアルタイム通信用の帯域を要求する場合には、要求する帯域量も併せて制御パケットに含める。
【０００７】
各ノードからの帯域割り当て要求を受け取った帯域管理サーバは、以下の手順にて帯域の割り当てを行なう。
【０００８】
１）リアルタイム通信用の帯域割り当てを優先する。
【０００９】
２）許容したい伝送路上の最大トラフィック量から、１）でリアルタイム通信用に確保された帯域を引いた残りを、非リアルタイム通信用の帯域として、非リアルタイム通信用帯域を要求しているノードに均等に割り当てる。
【００１０】
さらに、帯域管理サーバは、割り当てた帯域量を含む制御パケットを各ノードに返送する。また、上記制御パケットを受信した各ノードは、制御パケットに含まれる帯域量に厳密に一致するレートにてパケット送信を行なう。
【００１１】
上記方式では、帯域管理サーバは、伝送路上を流れる総トラフィック量が一定以上にならないように各ノードに帯域割り当てを行なう。また、各ノードは、割り当てられた帯域に厳密に一致するレートにてパケット送信を行なう。その結果、実際に伝送路上に流れる総トラフィック量も一定以上にならないことを保証できる。
【００１２】
【発明が解決しようとする課題】
特願平9−75018号の方式を用いると、共有バス型ネットワークを流れる総トラフィック量が一定以上になることによるマルチメディアデータの品質低下を防ぐことができる。
【００１３】
しかし、上記方式では共有バス型無線ネットワークにおける高品質なマルチメディアデータの配送を実現できない。この理由を以下に示す。
【００１４】
共有バス型無線ネットワークにおける通信には、以下の特徴がある。
【００１５】
１）伝送路の品質が悪い。そのため伝送エラーが多発する。伝送エラーによるパケット欠落を防止するため、ネットワークドライバは伝送エラーを検出したら、パケットの再送を行なう。
【００１６】
２）伝送路の品質（伝送エラーの発生確率）が時間とともに変化する。
【００１７】
上記特徴のため、共有バス型無線ネットワーク上におけるマルチメディアデータの転送は、
Ａ）通常のマルチメディアデータの転送
Ｂ）マルチメディアデータの再送
が混在し、かつ上記Ａ）Ｂ）の比率が時間とともに変化する。しかし、特願平9−75018号の方式では、各ノードが上記Ａ）Ｂ）の総計のレートが一定量以下となるようにパケット送信を行なう。そのため、上記レートの上限が小さすぎると、上記Ａ）のレートが十分とれない時間が発生し、高品質なマルチメディアデータの転送が実現できない。また、上記レートの上限が大きすぎると、帯域を浪費してしまう。
【００１８】
本発明では、上記１）２）の特徴を持つ共有バス型ネットワークにおいても高品質なマルチメディアデータ転送を、帯域を浪費を抑えつつ実現するデータ転送方法を提供する。
【００１９】
【課題を解決するための手段】
上記課題を解決するため、本発明は、以下の特徴を持つデータ通信方法を提供する。
【００２０】
１）共有型無線ネットワーク上を流れる総トラフィック量を一定以下にすべく、各送信ノードに帯域を割り当てるサーバ（帯域管理サーバ）を、伝送路につき一つ設ける。
【００２１】
２）伝送路にパケットを送信しようとする各送信ノードは、帯域管理サーバに帯域割り当てを要求する。割り当てを要求する帯域には、リアルタイム通信用、リアルタイム通信の再送用、非リアルタイム通信用の３種類が存在する。
【００２２】
３）送受信ノードは、リアルタイム通信パケットに関してのみ再送処理を行なう。具体的には、送信ノードは、送信パケットに、当該パケットがリアルタイム通信用であるか、非リアルタイム通信用であるかを示すデータ、及びシーケンス番号を付与する。受信ノードは、当該パケットがリアルタイム通信用パケットであり、かつシーケンス番号の欠落を検知した場合にのみ、送信ノードに対して再送要求を送信する。
【００２３】
４）送信ノードは受信ノードからの再送要求の発生頻度を測定する。その発生頻度に応じて、帯域管理サーバに要求するリアルタイム通信の再送用帯域の増減を要求する。一方、リアルタイム通信用の帯域は増減させない。
【００２４】
【発明の実施の形態】
本発明の実施の形態を以下に示す。
【００２５】
図１は、本発明の実施の形態で仮定するシステム構成を示している図である。
【００２６】
本システムでは、送信ノード(102)上で動作する送信アプリケーション(104)と、受信ノード(103)上で動作する受信アプリケーション(105)との間にて、無線ネットワーク(100)を介した通信を行なっている。また、本無線ネットワーク上では、帯域管理サーバ(101)も動作している。帯域管理サーバは、ネットワーク上を流れる総トラフィック量が一定以上にならないように、各送信ノードに帯域割り当てを行なう。
【００２７】
送信アプリケーションと受信アプリケーションは、RT（リアルタイム）通信プロトコルスタック(106)を用いたリアルタイム通信、及びNRT（非リアルタイム）通信プロトコルスタック(107)を用いた非リアルタイム通信、の２種類の通信を行なう。以下、RT通信プロトコルスタックにより送受されるパケットを「RTパケット」、NRT通信プロトコルスタックにより送受されるパケットを「NRTパケット」と呼ぶ。また、後述するように「RTパケット」は再送される可能性がある。以下、再送されているRTパケットを「再送パケット」、それ以外のRTパケットを「通常のRTパケット」と呼ぶ。
【００２８】
RT通信プロトコルスタック、及びNRT通信プロトコルスタックは、無線ネットワークに直接パケットを送信しない。代わりに、送信抑制モジュール(108)に対して、RTパケットの送信要求、及びNRTパケットの送信要求（以下、「RT送信要求」「NRT送信要求」と略す）を発行する。送信抑制モジュールは、帯域管理サーバ上の帯域管理モジュール(109)と通信し、帯域割り当て要求の発行や、帯域割り当て結果の受理をおこなう。そして、帯域割り当て結果に従い、ネットワーク上に送出するパケット量を調節する。
【００２９】
送信抑制モジュールも、無線ネットワークに対して直接データを送信しない。代わりにシーケンス番号付与モジュール(110)に対してRT送信要求、及びNRT送信要求を発行する。シーケンス番号付与モジュールは、パケットにシーケンス番号を付与した後に、無線ネットワークに当該パケットを送出する。
【００３０】
受信ノード(103)においては、無線ネットワークから受信したパケットを、シーケンス番号検査モジュール(111)が受理する。シーケンス番号検査モジュールは、受信したパケットに付与されているシーケンス番号を検査し、パケットの欠落が発生しているか否かを調べる。パケットが欠落していなかったら、RT通信プロトコルスタック、NRT通信プロトコルスタックに対して受信通知を発行する。パケットの欠落が発生していたら、RTパケットが欠落した場合に限り、シーケンス番号付与モジュールに対して再送要求を発行する。
【００３１】
再送要求を受理したシーケンス番号付与モジュール(110)は、送信抑制モジュール(108)に対して再送要求をフォワードする。送信抑制モジュールは、通常のRTパケット、及びNRTパケットの他に、再送パケット用の帯域を確保している。さらに、再送要求の受理頻度に応じて、当該帯域量を増減させる。この増減は、帯域管理モジュールに対して再送用帯域更新要求を発行することにより実現する。
【００３２】
上記システムでは、通常のRTパケット、NRTパケット、再送パケット用の帯域を別々に確保している。そのため、再送要求の発生頻度に関わらず、通常のRTパケットの送信レートは一定であることを保証できる。そのため、高品質なマルチメディアデータの転送が実現できる。また、再送パケット用の帯域は、再送要求の受理頻度に応じて増減させている。また、NRTパケットに関しては再送処理を行なわない。そのため、伝送路の品質が時間とともに変化しても、帯域を有効に利用できる。
【００３３】
以下、図１中の「帯域管理モジュール」「送信抑制モジュール」「シーケンス番号付与モジュール」「シーケンス番号検査モジュール」の詳細につき、順に説明する。
【００３４】
帯域管理モジュール(109)は、送信抑制モジュール(108)から帯域割り当て要求、または再送用帯域割り当て更新要求を受理することにより起動する。左記要求を受理した帯域管理モジュールは、帯域割り当てテーブル(300)を更新することにより、帯域割り当ての管理を実現する。以下、図２から図４を用いて、帯域管理モジュールの動作の詳細につき述べる。
【００３５】
図２に、帯域割り当て要求の発行、再送用帯域割り当て更新要求の発行、及び帯域割り当て結果の通知を実行するために、送信抑制モジュール(108)と帯域管理モジュール(109)との間にて送受するパケットのフォーマットを示す。
【００３６】
図示してある通り、本パケットは、MACヘッダ(201)、送信ノードMACアドレス(202)、受信ノードMACアドレス(203)、コマンド(204)、帯域種別(205)、帯域幅(206)、再送用帯域幅(207)の各フィールドからなる。
【００３７】
MACヘッダフィールドは、無線ネットワーク(100)にパケットを送出する際に必ず付与すべきデータを格納する。
【００３８】
コマンドフィールドには、当該パケットが「帯域割り当て要求」を行なうパケットであるか、「再送用帯域更新要求」を行なうパケットであるか、または「帯域割り当て結果」を通知するパケットであるか、を判別可能なデータが格納されている。
【００３９】
「帯域割り当て要求」「再送用帯域更新要求」を行なうパケットの場合は、送信ノードMACアドレスフィールドには、当該要求を発行している送信ノードのMACアドレスが格納される。また、帯域種別フィールドには「RTパケット用帯域」を要求しているのか「NRTパケット用帯域」を要求しているのかを判別可能なデータが格納されている。「RTパケット用帯域」を要求する場合には、帯域幅フィールド、及び再送用帯域幅フィールドに、それぞれ「通常のRTパケット」及び「再送パケット」用にどれだけの帯域幅を要求するかを示すデータを格納する。また、受信ノードMACアドレスフィールドに、上記帯域幅を使用して送信するRTパケットを受信するノードのMACアドレスを格納する。一方、「NRTパケット用帯域」を要求する場合には、受信ノードMACアドレスフィールド、帯域幅フィールド、及び再送用帯域幅フィールドは意味をなさない。
【００４０】
また、「帯域割り当て結果」を通知する場合には、送信ノードMACアドレスフィールドに、当該帯域を使用可能な送信ノードのMACアドレスを格納する。また、帯域種別フィールドに「RTパケット用帯域」または「NRTパケット用帯域」の使用を許可しているかを区別するデータを格納する。帯域幅フィールドには、「通常のRTパケット用帯域」及び「NRTパケット用帯域」として許可する帯域幅を格納する。また、「RTパケット用帯域」の使用を許可する場合には、受信ノードMACアドレスフィールドに受信ノードのMACアドレスを、再送用帯域幅フィールドに、再送パケット用として許可する帯域幅を格納する。NRTパケット用帯域の使用を許可する場合には、左記両フィールドは意味を持たない。
【００４１】
図３に、帯域割り当てテーブルの構成を示す。
【００４２】
図示してある通り、本テーブルは、帯域種別(301)、送信ノードMACアドレス(302)、受信ノードMACアドレス(303)、帯域幅(304)、再送用帯域幅(305)の各フィールドからなる。
【００４３】
帯域種別フィールドには、当該エントリが「RTパケット用」帯域なのか、「NRTパケット用」帯域なのかを判別可能なデータが格納される。
【００４４】
送信ノードフィールドには、当該エントリの帯域を割り当てられれている送信ノードのMACアドレスが格納される。
【００４５】
受信ノードフィールドには、当該エントリの帯域を使用するパケットの受信ノードMACアドレスが格納される。
【００４６】
帯域幅フィールドには、割り当てられている帯域幅に関する情報が格納される。
【００４７】
再送用帯域幅フィールドは、当該エントリ「RTパケット用」帯域を示す場合のみ意味を持ち、再送パケット用帯域が格納される。
【００４８】
図４に、帯域管理モジュール(109)の動作フローを示す。
【００４９】
帯域管理モジュールは、図２に示すフォーマットのパケットを受信したら、まずステップ401を実行する。ステップ401にて、コマンドフィールド(204)に「帯域割り当て要求」を示すデータが格納されているか否かを検査する。格納されていたらステップ402を、格納されえていなければステップ403を実行する。
【００５０】
ステップ402にて、受信したパケットに格納されている情報に基づき新規エントリを追加する。すなわち、新規エントリを作成し、その「帯域種別」「送信ノードMACアドレス」「受信ノードMACアドレス」「帯域幅」「再送用帯域幅」の各フィールド(301〜305)に、受信したパケットの対応するフィールドに格納されていたデータを格納する。終了したらステップ405にジャンプする。
【００５１】
ステップ403にて、受信したパケットのコマンドフィールド(204)に「再送用帯域更新要求」を示すデータが格納されているか否かを検査する。格納されていればステップ404を、格納されていなければ異常終了する。
【００５２】
ステップ404にて、ステップ403で受信したパケットに格納されている情報に基づき、対応するエントリの内容を更新する。すなわち、当該エントリの再送用帯域幅フィールド(305)を、受信したパケットの対応するフィールドに格納されていたデータを格納する。
【００５３】
ステップ405にて、帯域割り当てテーブルに格納されているエントリのうち、帯域種別がNRTであるエントリの帯域幅を再計算する。本再計算により、帯域割り当てテーブルに登録されている帯域幅の総計を、常に一定にできる。
【００５４】
ステップ406にて、ステップ402及びステップ404で追加、更新したエントリ、及び、帯域種別フィールドにNRTが格納されているエントリに対応する帯域割り当て結果を通知するパケットを生成する。具体的には、
１）コマンドフィールド(204)に、「帯域割り当て結果通知」を行なうパケットであることを示すデータを、
２）送信ノードMACアドレス(202)、受信ノードMACアドレス(203)、帯域種別(204)、帯域幅(205)、再送用帯域幅(206)に、当該エントリの対応するフィールドに格納してあるデータを、
保持するパケットを生成する。左記パケットは、該当するエントリの数だけ作成する。
【００５５】
ステップ407にて、ステップ406にて作成したパケットを、送信ノードMACアドレスフィールドにて指定されるノードに送信して、帯域管理モジュールは処理を完了する。
【００５６】
次に、送信抑制モジュール(108)の動作を、図１から図２、及び図５から図７を用いて説明する。
【００５７】
図１に示してある様に、送信抑制モジュールは、
１）RT通信プロトコルスタック(106)からの帯域割り当て要求の受理
２）帯域管理モジュール(109)からの帯域割り当て結果の受理
３）RT通信プロトコルスタック(106)からのRT送信要求の受理、NRT通信プロトコルスタック(107)からのNRT送信要求の受理、シーケンス番号付与モジュールからの再送要求の受理
を契機に駆動する。以下、上記それぞれの場合の送信抑制モジュールの動作の詳細につき説明する。
【００５８】
まず、RT通信プロトコルスタック(106)から帯域割り当て要求を受理した場合の動作につき説明する。
【００５９】
「RTパケット用」の帯域割り当て要求は、送信アプリケーション(104)、及びRT通信プロトコルスタック(106)からの帯域割り当て要求の発行を契機に駆動する（「NRTパケット用」の帯域割り当て要求の発行契機については後述する）。また、「RTパケット用」の帯域割り当て要求は、送受信ノードの組ごとに別々に行なう。送信アプリケーションは、受信ノード、必要な通常のRTパケット用の帯域量、及び再送パケット用の帯域量を指定する。送信抑制モジュールは、図２に示すフォーマットを持つパケットを生成し、帯域管理モジュール(109)に対して送信する。この際、
１）送信ノードMACアドレスフィールド(202)には、自ノードのMACアドレスを、
２）受信ノードMACアドレスフィールド(203) には、送信アプリケーションが指定した受信ノードのMACアドレスを、
３）コマンドフィールド(204)には、「帯域割り当て要求」を実行するパケットであることを示すデータを、
４）帯域種別フィールド(205)には、「RTパケット用帯域」であることを示すデータを、
５）帯域幅フィールド(206)、再送用帯域幅フィールド(207)には、送信アプリケーションが指定した帯域量を、
格納する。
【００６０】
次に、帯域管理モジュール(109)から帯域割り当て結果を受理した場合につき説明する。
【００６１】
上記を受理したら、送信抑制モジュールは帯域管理テーブル(501)を更新する。本テーブルは、自ノードの使用が許可されている通常のRTパケット、NRTパケット、及び再送パケット用の帯域幅を管理する。
【００６２】
帯域管理テーブルのフォーマットを図６に示す。図示してある通り、本テーブルは帯域種別フィールド(601)、受信ノードMACアドレスフィールド(602)、帯域幅フィールド(603) 、再送用帯域幅フィールド(604)、送信バイト数フィールド(605)、再送バイト数フィールド(606) 、再送率再計算カウンタフィールド(607)からなる。
【００６３】
帯域種別フィールドには、当該エントリが「RTパケット用」「NRTパケット用」のいずれの帯域に関する情報を示しているかを判別可能なデータが格納されている。
【００６４】
受信ノードMACアドレスフィールドには、帯域種別フィールドに「RTパケット用」帯域を示すデータが格納されている場合にのみ意味を持つ。本フィールドには、当該帯域を使用して送信されるパケットの受信ノードMACアドレスが格納されている。
【００６５】
帯域幅フィールドには、当該帯域の帯域幅が格納される。
【００６６】
再送用帯域幅フィールドは、帯域種別フィールドに「RTパケット用」帯域を示すデータが格納されている場合にのみ意味を持つ。本フィールドには、再送パケット用の帯域幅が格納される。
【００６７】
送信バイト数フィールドは、帯域種別フィールドに「RTパケット用」帯域を示すデータが格納されている場合にのみ意味を持つ。本フィールドには、当該帯域を使用して送信されたパケットのバイト数の累計が格納される。
【００６８】
再送バイト数フィールドは、帯域種別フィールドに「RTパケット用」帯域を示すデータが格納されている場合にのみ意味を持つ。本フィールドには、当該帯域を使用して送信されたパケットのうち、再送を行なったパケットのバイト数の累計が格納される。
【００６９】
再送率再計算カウンタフィールドは、帯域種別フィールドに「RTパケット用」帯域を示すデータが格納されている場合にのみ意味を持つ。本フィールドには、当該帯域の再送率を再計算べきタイミングまでの時間が格納される。
【００７０】
送信抑制モジュール(108)は、図２に示すフォーマットのパケットにより帯域割り当て結果を受理する。送信抑制モジュールは、受信パケットの帯域種別フィールド(205)、受信ノードMACアドレス(203)が一致するエントリが存在するか否かを検索する。存在する場合、当該エントリの帯域幅フィールド(603)及び再送用帯域幅フィールド(604)の値を、受信したパケットの対応するフィールドに格納されている値に更新する。存在しない場合には、新規エントリを作成する。この場合、帯域種別フィールド(601)、受信ノードMACアドレスフィールド(602)、帯域幅フィールド(603)及び再送用帯域幅フィールド(604)の値は、受信したパケットの対応するフィールドからコピーされる。送信バイト数フィールド(605)、再送バイト数フィールド(606)は0に初期化する。再送率再計算カウンタフィールド(607)は初期値（再送率を再計算する時間間隔）に設定する。
【００７１】
最後に、RT通信プロトコルスタック(106)からRT送信要求を受理、NRT通信プロトコルスタック(107)からNRT送信要求を受理、シーケンス番号付与モジュール(110)から再送要求を受理した場合の動作につき説明する。
【００７２】
図５に示すように、上記要求は、一旦RT送信要求キュー(504)、再送要求キュー(503)、NRT送信要求キュー(502)にキューイングされる。
【００７３】
送信抑制モジュール(108)は周期的に駆動し、上記キューにキューイングされている要求（パケット）を取り出す。そして、必要に応じて、
１）帯域管理テーブル(501)の参照
２）シーケンス番号付与モジュール(110)に対するRT送信要求再送要求NRT送信要求の発行
３）帯域管理モジュール(109)に対する帯域割り当て要求再送用帯域更新要求の発行
を行なう。
【００７４】
上記に示した様に周期的に駆動した場合の送信抑制モジュールの動作フローを図７に示す。
【００７５】
ステップ701にて、RT送信要求キュー(504)から帯域管理テーブル(501)の帯域幅フィールド(603)に登録されている帯域幅相当のパケット群をデキューする。RT送信要求キューは受信ノードごとに存在する。上記処理はすべての送信要求キューに対して実行する。
【００７６】
次にステップ702にて、シーケンス番号付与モジュール(110)に対して、ステップ701でデキューしたパケット群のRT送信要求を発行する。
【００７７】
ステップ703では、再送要求キュー(503)から、帯域管理テーブル(501)の再送用帯域幅フィールド(604)に登録されている帯域幅相当のパケット群をデキューする。再送要求キューも受信ノードごとに存在するため、上記処理もすべての再送要求キューに対して実行する。
【００７８】
さらにステップ704にて、ステップ703にてデキューにパケット群の再送要求をシーケンス番号付与モジュール(110)に対して発行する。
【００７９】
ステップ705では、まず帯域管理テーブル(501)の送信バイト数フィールド(605)、及び再送バイト数フィールド(606)の値の更新を行なう。上記更新は、RTパケット用の帯域を示すエントリに関してのみ行なう。RTパケット用の帯域を示す各エントリに対して、それぞれステップ701及び703にてデキューしたパケット群のサイズの総計を足す。さらに帯域管理テーブル(501)の再送再計算カウンタフィールド(607)の値をデクリメントする。
【００８０】
ステップ706で、再送再計算カウンタフィールドの値が0であるか否かを検査する。0であればステップ707に、0でなければステップ708にジャンプする。
【００８１】
ステップ707で、帯域管理モジュール(109)に対して再送用帯域更新要求を発行する。左記要求の発行は図２に示すフォーマットのパケットを帯域管理モジュールに対して送信することにより行なう。この際、
１）送信ノードMACアドレスフィールド(202)には自ノードのMACアドレスを格納する。
【００８２】
２）コマンドフィールド(204)には「再送用帯域更新要求」を示すデータを格納する。
【００８３】
３）受信ノードMACアドレスフィールド(203)、帯域種別フィールド(205)、帯域幅フィールド(206)には、帯域管理テーブルの対応するエントリの値を格納する。
【００８４】
４）再送用帯域幅フィールド(207)には、帯域管理テーブルを元に以下の式で求まる値を求めて格納する。
【００８５】
【数１】
（帯域幅フィールドの値）×（再送バイト数フィールドの値）／（送信バイト数フィールドの値）
さらに、帯域管理テーブル(501)の送信バイト数フィールド(605)、再送バイト数フィールド(606)を0にリセットする。また、再送率再計算カウンタフィールド(607)を初期値にリセットする。
【００８６】
ステップ708で、帯域種別フィールド(601)にNRTパケット用帯域であることを示すデータが格納されているエントリが存在するか否かを検査する。存在すればステップ710に、しなければステップ709にジャンプする。
【００８７】
ステップ709では、帯域管理モジュール(109)に対してNRTパケット用の帯域割り当て要求を発行する。この際にも図２に示したフォーマットのパケットを帯域管理モジュールに対して送信する。この際、
１）送信ノードMACアドレスフィールド(202)には、自ノードのMACアドレスを格納する。
【００８８】
２）コマンドフィールド(204)には、「帯域割り当て要求」を示すデータを格納する。
【００８９】
３）帯域種別フィールド(205)には、NRTパケット用帯域であることを示すデータを格納する。
【００９０】
ステップ710では、NRT送信要求キュー(502)から、帯域管理テーブル(501)の帯域幅フィールド(603)に登録されている帯域幅相当のパケット群をデキューする。
【００９１】
そして、ステップ711にて、シーケンス番号付与モジュールに対して、ステップ710でデキューしたパケット群のNRT送信要求を発行する。
【００９２】
次に、シーケンス番号付与モジュール(110)の動作の詳細を図８から図１３を用いて説明する。
【００９３】
図１で示した通り、シーケンス番号付与モジュール(110)は、
１）送信抑制モジュール(108)からRT送信要求／再送要求／NRT送信要求を受理した場合
２）シーケンス番号検査モジュール(111)から再送要求を受理した場合
に起動される。以下、上記各々の場合における動作詳細につき説明する。
【００９４】
まず、送信抑制モジュール(108)からRT送信要求／再送要求／NRT送信要求を受理した場合における動作につき説明する。
【００９５】
シーケンス番号付与モジュール(110)は、パケットに付与すべきシーケンス番号を図８に示すシーケンス番号管理テーブル(800)を用いて管理する。シーケンス番号付与モジュールは、RTパケット送信要求、及び再送要求受理時に本テーブルを参照し、RTパケットに付与すべきシーケンス番号を決定する。NRTパケットにはシーケンス番号を付与しないのでNRTパケット送信要求受理時には本テーブルを使用しない。
【００９６】
シーケンス番号管理テーブルは、受信ノードMACアドレスフィールド(801)、シーケンス番号(802)、バッファキューポインタフィールド(803)からなる。本テーブルの各エントリは、受信ノードMACアドレスフィールド(801)に格納されている受信ノードにRTパケットを送信する際には、シーケンス番号フィールド(802) に格納されているシーケンス番号を付与すべきであることを示す。また送信したRTパケットは、後のシーケンス番号検査モジュールからの再送要求に備えて、バッファキューポインタフィールド(803)により指定されるバッファキュー(804)に、一定数バッファリングされる。
【００９７】
図９に送信抑制モジュール(108)からRT送信要求、及びNRT送信要求を受理した際に併せて受け渡されるパケットのフォーマットを示す。図示してある通りMACヘッダフィールドと(901)、データ部フィールド(902)からなる。
【００９８】
図１０にシーケンス番号付与モジュール(110)から無線ネットワークにパケットを送信する際のパケットフォーマットを示す。後述するように、本パケットフォーマットはシーケンス番号検査モジュール(111)から再送要求を発行する場合にも使用される。図示してある通り、MACヘッダフィールド(901)とデータ部フィールド(902)との間に、パケット種別フィールド(1001)とシーケンス番号フィールド(1002)が挿入されている。パケット種別フィールドには、当該パケットがRTパケットか、NRTパケットか、再送要求を発行するためのパケットであるかを判別可能なデータが格納されている。シーケンス番号フィールド(1002)は、当該パケットがRTパケットである場合にのみ使用する。
【００９９】
図１１にシーケンス番号付与モジュール(110)の動作フローを示す。
【０１００】
ステップ1101にて、送信抑制モジュール(108)からRT送信要求を受理したか否かを判別する。RT送信要求を受理した場合にはステップ1102に、そうでない場合にはステップ1106にジャンプする。
【０１０１】
ステップ1102にて、送信抑制モジュール(108)から受け渡されたRTパケットのMACヘッダ(901)に格納されている受信ノードMACアドレス（パケットの送信先として指定されているMACアドレス）に対応するシーケンス番号管理テーブル(800)のエントリを検索する。
【０１０２】
ステップ1103にて、RTパケットに図１０で示したパケット種別フィールド(1001)、シーケンス番号フィールド(1002)を付与する。パケット種別フィールドには、「RTパケット」であることを示すデータを、シーケンス番号フィールドには、ステップ1102で検索したエントリのシーケンス番号フィールド(802)の値を格納する。
【０１０３】
ステップ1104にて、ステップ1103にて使用したシーケンス番号フィールドの値をインクリメントする。
【０１０４】
ステップ1105にて、パケットの内容をバッファにコピーし、コピーの結果出来たバッファを、ステップ1102で検索できたエントリのバッファキューポインタフィールド(803)で指定されるバッファキュー(804)に接続する。さらにこの際、バッファキュー長が一定以上になった場合、一番古くから接続されているバッファをデキューする。この処理の後ステップ1109にジャンプする。
【０１０５】
ステップ1106にて、送信抑制モジュール(108)からNRT送信要求が発行されたか否かの判別を行なう。NRT送信要求を受理した場合にはステップ1107に、そうでない場合にはステップ1108にジャンプする。
【０１０６】
ステップ1107にて、送信抑制モジュール(108)から受け渡されたNRTパケットに、パケット種別フィールド(1001)、およびシーケンス番号フィールド(1002)を付与する。この際、パケット種別フィールドには、「NRTパケット」であることを示すデータを格納する。シーケンス番号フィールドは意味を持たないので、特別な値の設定を行なわない。この処理の後ステップ1109にジャンプする。
【０１０７】
ステップ1108にて、送信抑制モジュール(108)から再送要求が発行されたか否かを判別する。再送要求が発行されたらステップ1109に、そうでなければ異常終了する。
【０１０８】
ステップ1109にて、ステップ1105の実行の結果生成できた、またはステップ110の実行の結果生成できた、または送信抑制モジュール(108)から受け渡されたパケットを受信ノードに対して送信する。
【０１０９】
次に、シーケンス番号検査モジュール(111)から再送要求を受理した場合におけるシーケンス番号付与モジュール(110)の動作の詳細につき説明する。
【０１１０】
図１２にシーケンス番号検査モジュール(111)からの再送要求を受理するために使用するパケットフォーマットを示す。図１０の説明でも述べた通り、本パケットフォーマットは図１０と同一である。パケット種別フィールド(1001)には、当該パケットが再送要求を発行する際に使用されているパケットであることを示すデータが格納されている。また、シーケンス番号フィールド(1002)、及び最終シーケンス番号フィールド(1201)に、再送要求を行なうパケットのシーケンス番号の範囲を指定する値が格納されている。
【０１１１】
シーケンス番号検査モジュールから再送要求を受理した場合の動作フローを図１３に示す。
【０１１２】
まずステップ1301にて、シーケンス番号管理テーブル(800)に接続されているバッファキューを検索し、シーケンス番号フィールド(1002)、最終シーケンス番号フィールド(1201)で指定されるシーケンス番号を保持するバッファが、バッファキュー(804)に接続されているか否かを検査する。
【０１１３】
接続されていた場合、ステップ1302にて、当該バッファの再送要求を送信抑制モジュール(108)に対して発行する。
【０１１４】
最後に、シーケンス番号検査モジュール(111)の動作の詳細につき、図１４及び図１５を用いて説明する。図１に示した通り、本モジュールは、シーケンス番号付与モジュール(109)からパケットを受信した際に起動する。
【０１１５】
シーケンス番号検査モジュール(111)は、図１４に示すシーケンス番号検査テーブル(1400)を用いて、シーケンス番号の検査を行なう。本テーブルは、受信したRTパケットの最新のシーケンス番号を送信ノードごとに管理する。本テーブルに登録されているシーケンス番号と受信パケットのシーケンス番号を検査することにより、欠落パケットが存在するか否かを判別する。
【０１１６】
本テーブルは、送信ノードMACアドレスフィールド(1401)、シーケンス番号フィールド(1402)、再送要求発行時刻フィールド(1403)、バッファキューポインタフィールド(1404)からなる。各フィールドの使用方法は図１５で明らかにする。
【０１１７】
図１５にシーケンス番号検査モジュール(111)の動作の詳細につき説明する。
【０１１８】
ステップ1501にて、受信したパケットのパケット種別フィールド(1001)を参照し、当該パケットがRTパケットであるか否かを判別する。RTパケットである場合にはステップ1502に、そうでない場合にはステップ1508にジャンプする。
【０１１９】
ステップ1502にて、受信したRTパケットの送信ノードのMACアドレス（MACヘッダ部(901)に存在）と一致する送信ノードMACアドレスフィールド(1401)の値を持つシーケンス番号検査テーブル(1400)のエントリを検索する。
【０１２０】
ステップ1503にて、ステップ1502で検索できたエントリのシーケンス番号フィールド(1402)と、受信パケットのシーケンス番号フィールド(1002)の値を比較し、欠落したパケットが存在するか否かを判別する。欠落したパケットが存在する場合にはステップ1504ん、そうでない場合にはステップ1506にジャンプする。
【０１２１】
さらに、ステップ1504にて、ステップ1502で検索できたエントリの再送要求発行時刻フィールド(1403)の値と、現在時刻を比較して、その差が一定値以上か否かを判定する。すぐ後で述べる様に、再送要求時刻フィールドには、直前に再送要求を発行した時刻が格納されている。一定値以上であればステップ1506に、そうでなければステップ1505にジャンプする。
【０１２２】
ステップ1505にて、受信したパケットをバッファキュー(1405)にエンキューする。エンキューすべきバッファキューは、ステップ1502で検索できたエントリのバッファキューポインタフィールド(1404)の値により決定可能である。さらに、欠落しているパケットの再送要求をシーケンス番号付与モジュールに対して送信する。さらに、現在の時刻を再送要求発行時刻フィールド(1403)に格納する。本ステップにて処理を完了する。
【０１２３】
ステップ1506にて、ステップ1502で検索できたエントリのバッファキューポインタフィールド(1404)で指定されるバッファキュー(1405)からバッファ群をデキューする。さらに、当該エントリのシーケンス番号フィールド(1402)の値を、受信したパケットのシーケンス番号フィールドの値に更新する。
【０１２４】
ステップ1507にて、RT通信プロトコルスタック(106)に受信通知を発行する。
この際ステップ1506にてデキューしたパケット群、及び受信パケットも併せて受け渡す。本ステップにて処理を完了する。
【０１２５】
ステップ1508にて、NRT通信プロトコルスタック(107)に受信通知を発行する。この際受信したパケットも併せて受け渡す。本ステップにて処理を完了する。
【０１２６】
本発明の実施形態により以下の効果を得られる。
【０１２７】
１）共有型無線ネットワーク上を流れる総トラフィック量を帯域管理サーバが管理している。かつ、伝送路上にパケットを送信しようとする各送信ノードは、通常のRTパケット用と再送パケット用で異なる帯域割り当て要求を帯域管理サーバに要求している。すなわち、再送パケットの発生頻度が増減しても、通常のRTパケットの送信レートは増減しない。そのため、高品質なマルチメディアデータ転送が実現できる。
【０１２８】
２）送受信ノード間では、RTパケットに関しては再送処理を行なうが、NRTパケットに関しては再送処理を行なわない。また、再送要求の発生頻度に応じて再送パケット用の帯域の増減を帯域管理サーバに要求する。そのため、伝送路の品質が時間とともに変化しても帯域の有効利用が実現できる。
【０１２９】
３）本発明の実施形態は送信抑制モジュール、シーケンス番号付与モジュール、シーケンス番号検査モジュールをOS内に組み込むことにより実現できる。すなわち、OS以外の部分、具体的には、
Ａ）RT通信プロトコルスタック、NRT通信プロトコルスタック（通常ライブラリの形で提供される）
Ｂ）送信アプリケーション、受信アプリケーション
の変更を加えることなく、本発明の実施形態で示した通信方式を実現できる。
【０１３０】
【発明の効果】
本発明により、伝送路の品質が悪く、かつ伝送路の品質が時間とともに変化する共有バス型ネットワークにおいて、高品質なメディアデータ転送を実現可能になる。
【図面の簡単な説明】
【図１】発明の実施の形態で仮定するシステム構成を示す図である。
【図２】帯域割り当て要求、帯域割り当て結果を授受する際に使用されるパケットのフォーマットを示す図である。
【図３】帯域割り当てテーブルの構成図である。
【図４】帯域管理モジュールのフローチャートである。
【図５】送信抑制モジュールに対する要求の受け渡し方法を示す図である。
【図６】帯域管理テーブルの構成図である。
【図７】送信抑制モジュールのフローチャートである。
【図８】シーケンス番号管理テーブルの構成図である。
【図９】データパケットのフォーマットを示す図である。
【図１０】シーケンス番号付きのデータパケットのフォーマットを示す図である。
【図１１】シーケンス番号付与モジュールのフローチャート（送信要求受理時）である。
【図１２】再送要求を行なうためのパケットのフォーマットを示す図である。
【図１３】シーケンス番号付与モジュールのフローチャート（再送要求受理時）である。
【図１４】シーケンス番号検査テーブルの構成図である。
【図１５】シーケンス番号検査モジュールのフローチャートである。
【符号の説明】
108…送信抑制モジュール、109…帯域管理モジュール、110…シーケンス番号付与モジュール、111…シーケンス番号検査モジュール、300…帯域割り当てテーブル、500…帯域管理テーブル、800…シーケンス番号管理テーブル、1400…シーケンス番号検査テーブル。
【図１】
0003792494.tif 000002
【図２】
0003792494.tif 000003
【図３】
0003792494.tif 000004
【図４】
0003792494.tif 000005
【図５】
0003792494.tif 000006
【図６】
0003792494.tif 000007
【図７】
0003792494.tif 000008
【図８】
0003792494.tif 000009
【図９】
0003792494.tif 000010
【図１０】
0003792494.tif 000011
【図１１】
0003792494.tif 000012
【図１２】
0003792494.tif 000013
【図１３】
0003792494.tif 000014
【図１４】
0003792494.tif 000015
【図１５】
0003792494.tif 000016