(57)【要約】【課題】受信端末から送信端末の通信レートを制御するデータ伝送システムにおいて、パケットロスの上昇を引き起こすことなく特定の送信端末に優先的に通信レートを割り当てることができるようにする。【解決手段】受信端末１２０において、登録スレッド１２１は送信端末１００の経路情報を計測してボトルネック帯域となるルータを共有する送信端末をグループ化しグループ内での総パケットロス率を管理する。通信レート通知スレッド１２２はグループ内での総パケットロス率を変更しないように端末送信優先度に従ってパケットロスを分配して擬似パケットロス率を算出すると共に送信端末１１０から送信されたＲＴＴより移動平均を算出して擬似パケットロス率とＲＴＴの移動平均から通信レートを計算して送信端末１１０に通知する。送信端末１００は通知された通信レートに従ってパケットの送信を行う。【選択図】　　　図１
2004135065.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された受信端末に対してデータの送信を行う送信端末であって、送信するパケットのヘッダ情報に前回送信したパケットの往復伝搬遅延時間を付与して送信する送信手段と、一定時間毎に送信したパケットの往復伝搬遅延時間を計測する往復伝搬遅延時間計測手段と、パケットを送信することで前記受信端末から通知される通信レートを受信し、受信した通信レートに従って送信するパケットの送信タイミングを制御する通信レート受信手段と、を具備することを特徴とする送信端末。
【請求項２】
ネットワークを介して接続された送信端末からデータの受信を行う受信端末であって、パケットを受信する受信手段と、送信端末から自端末へ送信されるパケットの経路上の各ルータに対する往復伝搬遅延時間を計測し、経路上で隣接するルータ間の往復伝搬遅延時間の差より伝送遅延時間を算出し、算出した伝送遅延時間の最も大きなルータのアドレスが一致する送信端末を１つのグループとして登録する登録手段と、登録された同一グループの送信端末のパケットロスを加算し、予め送信端末毎に設定された優先度に応じた比率で同一グループの送信端末間でパケットロスを分配して擬似的なパケットロス率を生成するとともに、送信端末から送信された往復伝搬遅延時間から移動平均を算出し、算出した移動平均と前記パケットロス率とから通信レートを算出して送信端末に通知する通信レート通知手段と、を具備することを特徴とする受信端末。
【請求項３】
前記通信レート通知手段は、往復伝搬遅延時間又はパケットロス率のいずれか一方でも上昇する場合には通信レートを減少し、前記往復伝搬遅延時間又は前記パケットロス率のいずれか一方でも低下する場合には通信レートを増加し、前記往復伝搬遅延時間と前記パケットロス率の一方が上昇し他方が低下する場合には上昇率と低下率の大小により通信レートを減少又は増加させることを特徴とする請求項２に記載の受信端末。
【請求項４】
請求項１に記載の送信端末と、請求項２又は請求項３のいずれかに記載の受信端末と、を具備することを特徴とするデータ伝送システム。
【請求項５】
少なくとも１つの送信端末と受信端末とがネットワークを介してデータの送受信を行うデータ伝送システムにおけるデータ伝送方法であって、送信端末は、一定時間毎に送信パケットの往復伝搬遅延時間を計測し、パケットを送信する際には当該パケットのヘッダ情報に前回送信したパケットの往復伝搬遅延時間を付与した後に受信端末から通知された通信レートに従って送信タイミングを制御して送信し、受信端末は、送信端末から自端末へ送信されるパケットの経路上の各ルータに対する往復伝搬遅延時間を計測して経路上で隣接するルータ間の往復伝搬遅延時間の差より伝送遅延時間を算出し、算出した伝送遅延時間の最も大きなルータのアドレスが一致する送信端末を１つのグループとして登録し、登録した同一グループの送信端末のパケットロスを加算して予め送信端末毎に設定された優先度に応じた比率で同一グループの送信端末間でパケットロスを分配して擬似的なパケットロス率を生成し、更に送信端末から送信された往復伝搬遅延時間から移動平均を算出して、求めた移動平均とパケットロス率とから通信レートを算出して送信端末に通知することを特徴とするデータ伝送方法。
【請求項６】
ネットワークを介して接続された受信端末に対してデータの送信を行う送信プログラムであって、送信するパケットのヘッダ情報に前回送信したパケットの往復伝搬遅延時間を付与して送信する送信手順と、一定時間毎に送信したパケットの往復伝搬遅延時間を計測する往復伝搬遅延時間計測手順と、通信レートを受信する通信レート受信手順と、受信した通信レートに従って送信するパケットの送信タイミングを制御する通信レート制御手順と、を具備することを特徴とする送信プログラム。
【請求項７】
記録媒体に記録されたプログラムを読み出して装置各部の制御を行うコンピュータと、請求項６に記載の送信プログラムが記録された記録媒体と、を具備することを特徴とする送信端末。
【請求項８】
ネットワークを介して接続された送信端末から送信されるデータを受信する受信プログラムであって、送信端末から送信されるパケットの経路上の各ルータに対する往復伝搬遅延時間を計測する往復伝搬遅延時間計測手順と、経路上で隣接するルータ間の往復伝搬遅延時間の差より伝送遅延時間を算出する伝搬遅延時間算出手順と、算出された伝送遅延時間の最も大きなルータのアドレスが一致する送信端末を１つのグループとして登録する登録手順と、登録された同一グループの送信端末のパケットロスを加算して予め送信端末毎に設定された優先度に応じた比率で同一グループの送信端末間でパケットロスを分配して擬似的なパケットロス率を生成するパケットロス率生成手順と、送信端末から送信された往復伝搬遅延時間から移動平均を算出する移動平均算出手順と、求められた移動平均とパケットロス率とから通信レートを算出する通信レート算出手順と、算出された通信レートを送信端末に通知する通信レート通知手順と、を具備することを特徴とする受信プログラム。
【請求項９】
記録媒体に記録されたプログラムを読み出して装置各部の制御を行うコンピュータと、請求項８に記載の受信プログラムが記録された記録媒体と、を具備することを特徴とする受信端末。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介して映像や音声などのメディアデータの送受信を行う送信端末、受信端末及びデータ伝送システムに関する。
【０００２】
【従来の技術】
従来、ネットワークを利用した映像や音声等のメディアデータの伝送においては、リアルタイムに通信ができるように予め必要な通信帯域を確保するようにしている。しかしながら、インターネットのような通信システムでは、常にネットワーク上の通信状態が変化することから、確保した通信帯域を維持することが困難であり、このため送信端末と受信端末夫々が通信状態の変化を検出して通信帯域の変化に対応する必要がある。
【０００３】
その対策の一例として、ＲＦＣ１８８９に記載のＲＴＰ（Ｒｅａｌ　Ｔｉｍｅ　ｔｒａｎｓｐｏｒｔＰｒｏｔｏｃｏｌ）／ＲＴＣＰ（ＲＴＰ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ）の送受信プロトコルを用いたメディアデータ伝送システムがある。この送受信プロトコルを利用することで通信状態の変化が送信端末側に通知されるため、送信端末側で通信レートの制御を行うことができる。例えば受信端末で所望の通信レートになるように擬似パケットロス率を実パケットロス率として設定し、それを送信端末に通知することで送信端末から送信されるパケットの通信レートを制御する（例えば、特許文献１参照）。
【０００４】
ここで、特許文献１で開示された技術について、図１４に示すフローチャートを参照して説明する。なお、この図の左側部分が送信端末の動作を示すフローチャートであり、右側部分が受信端末の動作を示すフローチャートである。
【０００５】
（１）送信端末の動作
まずステップ１４０１で、受信端末からの受信状態の情報をＲＴＣＰによって受信する。ＲＴＣＰによる受信を行うと、ＲＴＣＰの情報からパケットロスが発生しているかどうか判定する（ステップ１４０２）。この判定において、前回のＲＴＣＰの受信以降に送信したデータについてパケットロスが発生していると判定した場合は、次の送信フェーズの通信レートを低下させる（ステップ１４０３）。これに対して、前回のＲＴＣＰの受信以降に送信したデータについてパケットロスが発生していないと判定した場合は、次の送信フェーズの通信レートを上昇させる（ステップ１４０４）。ステップ１４０３又はステップ１４０４にて通信レートを決定した後、ステップ１４０１に戻り、以後再びＲＴＣＰの受信待ちを行う。
【０００６】
（２）受信端末の動作
まずステップＳ１４０５でタイマをセットし、同タイマを一定時間間隔で起動させる。タイマがタイムアウトすると、前回のＲＴＣＰパケット送信以降に受信したＲＴＰパケットのパケットロス率を算出してＲＴＣＰパケットを作成する（ステップ１４０６）。次いで、予め入力された目標受信レートとＲＴＰの実受信レートとから次の手順で擬似パケットロス率を計算する（ステップ１４０７）。ここで、擬似パケットロス率を以下の式を用いて求める。
擬似パケットロス率＝（１−（目標受信レート／実受信レート））×１００
【０００７】
次いで、算出した擬似パケットロス率と実際のパケットロス率の比較を行う（ステップ１４０８）。この比較において、擬似パケットロス率が大きいと判定した場合、ステップ１４０６において作成したＲＴＣＰパケット内のパケットロス率を擬似パケットロス率に変更する（ステップ１４０９）。これに対して、ステップ１４０８にて擬似パケットロス率が実際のパケットロス率と等しいか、又は小さいと判定した場合、ステップ１４０９をスキップする。ステップ１４０９の処理後又はステップ１４０９の処理をスキップした後、ＲＴＣＰパケットを送信端末に向けて送信し（ステップ１４１０）、その後、再びタイマをセットして次の起動待ちとなる。
【０００８】
このように、受信端末から送信端末に送信されるパケットのパケットロス率を、目標の受信レートをもとにして擬似的に算出することで、受信端末から通信レートを明示的に操作することができる。これにより、受信端末側で送信端末からの映像や音声等のリアルタイム性を要求されるデータ通信を集中的に制御することが可能となる。
【０００９】
【特許文献１】
特開２０００−１８３９５８号公報
【００１０】
【発明が解決しようとする課題】
しかしながら、従来のデータ伝送システムにおいては、所望の通信レートが実際の通信レートよりも低い場合は擬似パケットロス率を実パケットロス率よりも低下させることで所望の通信レートに近づけるため、所望の通信レートに到達した時には実パケットロス率が大きく上昇し、擬似パケットロス率と実パケットロス率が大きく乖離して実際に送信されるパケットの多くを損失してしまうという問題がある。
【００１１】
また、送信端末と受信端末が複数接続されたネットワーク環境においては、１つの送信端末の通信レートを変更すると、通信経路上のボトルネック帯域となるルータを共有する他の送信端末から送信されるパケットの通信帯域に影響を与えてパケットロスの増加をも引き起こすなど、相互に作用を及ぼしてしまう問題もある。
【００１２】
本発明は係る点に鑑みてなされたものであり、所望の通信レートを実現し、通信帯域の優先的な割り当てを実現できる送信端末、受信端末及びデータ伝送システムを提供することを目的とする。
【００１３】
【課題を解決するための手段】
請求項１に係る発明の送信端末は、ネットワークを介して接続された受信端末に対してデータの送信を行う送信端末であって、送信するパケットのヘッダ情報に前回送信したパケットの往復伝搬遅延時間を付与して送信する送信手段と、一定時間毎に送信したパケットの往復伝搬遅延時間を計測する往復伝搬遅延時間計測手段と、パケットを送信することで前記受信端末から通知される通信レートを受信し、受信した通信レートに従って送信するパケットの送信タイミングを制御する通信レート受信手段と、を具備する構成を採る。
【００１４】
この構成によれば、受信端末が決定した通信レートの通知を受け、その通信レートに従ってパケットを送信するタイミングを制御することから、受信端末が送信端末の通信レートを制御することができる。
【００１５】
請求項２に係る発明の受信端末は、ネットワークを介して接続された送信端末からデータの受信を行う受信端末であって、パケットを受信する受信手段と、送信端末から自端末へ送信されるパケットの経路上の各ルータに対する往復伝搬遅延時間を計測し、経路上で隣接するルータ間の往復伝搬遅延時間の差より伝送遅延時間を算出し、算出した伝送遅延時間の最も大きなルータのアドレスが一致する送信端末を１つのグループとして登録する登録手段と、登録された同一グループの送信端末のパケットロスを加算し、予め送信端末毎に設定された優先度に応じた比率で同一グループの送信端末間でパケットロスを分配して擬似的なパケットロス率を生成するとともに、送信端末から送信された往復伝搬遅延時間から移動平均を算出し、算出した移動平均と前記パケットロス率とから通信レートを算出して送信端末に通知する通信レート通知手段と、を具備する構成を採る。
【００１６】
この構成によれば、ボトルネック帯域のルータ上のパケットロスが維持されるため、パケットロスの上昇を引き起こすことなく特定の送信端末に優先的に通信レートを割り当てることができる。すなわち、パケットロスにもとづく通信レート制御を行う際に、パケットを受信している受信端末上で総パケットロス数を送信端末の送信優先度に基づいて、各々の送信端末にパケットロス数を再分配することにより、優先的な通信レートの割り当てが可能となる。また、総パケットロス数を変更しないため、送信端末全体のトータルの通信レートを維持することができ、ネットワーク上の通信状態に影響を与えることなく維持することができる。
【００１７】
請求項３に係る発明の受信端末は、請求項２に係る発明の受信端末において、前記通信レート通知手段は、往復伝搬遅延時間又はパケットロス率のいずれか一方でも上昇する場合には通信レートを減少し、前記往復伝搬遅延時間又は前記パケットロス率のいずれか一方でも低下する場合には通信レートを増加し、前記往復伝搬遅延時間と前記パケットロス率の一方が上昇し他方が低下する場合には上昇率と低下率の大小により通信レートを減少又は増加させる構成を採る。
【００１８】
この構成によれば、往復伝搬遅延時間とパケットロス率夫々の値の違いに応じて的確な通信レートの設定が可能となる。
【００１９】
請求項４に係る発明のデータ伝送システムは、請求項１に係る発明の送信端末と、請求項２又は請求項３のいずれかに係る発明の受信端末と、を具備する構成を採る。
【００２０】
この構成によれば、パケットロス率を擬似的に操作して送信端末の通信レートを制御するようにしても、パケットロスの上昇を引き起こすことなく特定の送信端末の通信レートを優先的に割り当てることができるデータ伝送システムを提供することができる。
【００２１】
請求項５に係る発明のデータ伝送方法は、少なくとも１つの送信端末と受信端末とがネットワークを介してデータの送受信を行うデータ伝送システムにおけるデータ伝送方法であって、送信端末は、一定時間毎に送信パケットの往復伝搬遅延時間を計測し、パケットを送信する際には当該パケットのヘッダ情報に前回送信したパケットの往復伝搬遅延時間を付与した後に受信端末から通知された通信レートに従って送信タイミングを制御して送信し、受信端末は、送信端末から自端末へ送信されるパケットの経路上の各ルータに対する往復伝搬遅延時間を計測して経路上で隣接するルータ間の往復伝搬遅延時間の差より伝送遅延時間を算出し、算出した伝送遅延時間の最も大きなルータのアドレスが一致する送信端末を１つのグループとして登録し、登録した同一グループの送信端末のパケットロスを加算して予め送信端末毎に設定された優先度に応じた比率で同一グループの送信端末間でパケットロスを分配して擬似的なパケットロス率を生成し、更に送信端末から送信された往復伝搬遅延時間から移動平均を算出して、求めた移動平均とパケットロス率とから通信レートを算出して送信端末に通知する。
【００２２】
この方法によれば、送受信端末の間でパケットロス率に従った通信レートを管理し、端末送信優先度に従ってパケットロスを移し替えるため、通信レートを優先的に割り当てを行うことができる。また、通信経路上のボトルネック帯域となるルータを共有する送信端末を１つのグループとして管理し、グループ内でのみパケットロスの移し替えを行うで、有効的かつ安全にパケットロスを管理でき、他の送信端末へ影響を与えることなく安全に通信レートを制御することが可能となる。
【００２３】
請求項６に係る発明の送信プログラムは、ネットワークを介して接続された受信端末に対してデータの送信を行う送信プログラムであって、送信するパケットのヘッダ情報に前回送信したパケットの往復伝搬遅延時間を付与して送信する送信手順と、一定時間毎に送信したパケットの往復伝搬遅延時間を計測する往復伝搬遅延時間計測手順と、通信レートを受信する通信レート受信手順と、受信した通信レートに従って送信するパケットの送信タイミングを制御する通信レート制御手順と、を具備する。
【００２４】
このプログラムによれば、受信端末が決定した通信レートの通知を受けて、その通信レートに従ってパケットの送信タイミングを制御するので、受信端末が送信端末の通信レートを制御することができる。
【００２５】
請求項７に係る発明の送信端末は、記録媒体に記録されたプログラムを読み出して装置各部の制御を行うコンピュータと、請求項６に係る発明の送信プログラムが記録された記録媒体と、を具備する構成を採る。
【００２６】
この構成によれば、プログラム制御とすることで、送信端末を特別なハードウェアで構成することなく、新たな機能の追加や変更を柔軟に行うことができる。
【００２７】
請求項８に係る発明の受信プログラムは、ネットワークを介して接続された送信端末から送信されるデータを受信する受信プログラムであって、送信端末から送信されるパケットの経路上の各ルータに対する往復伝搬遅延時間を計測する往復伝搬遅延時間計測手順と、経路上で隣接するルータ間の往復伝搬遅延時間の差より伝送遅延時間を算出する伝搬遅延時間算出手順と、算出された伝送遅延時間の最も大きなルータのアドレスが一致する送信端末を１つのグループとして登録する登録手順と、登録された同一グループの送信端末のパケットロスを加算して予め送信端末毎に設定された優先度に応じた比率で同一グループの送信端末間でパケットロスを分配して擬似的なパケットロス率を生成するパケットロス率生成手順と、送信端末から送信された往復伝搬遅延時間から移動平均を算出する移動平均算出手順と、求められた移動平均とパケットロス率とから通信レートを算出する通信レート算出手順と、算出された通信レートを送信端末に通知する通信レート通知手順と、を具備する。
【００２８】
このプログラムによれば、パケットを受信している受信端末上で総パケットロス数を送信端末の送信優先度に基づいて、各々の送信端末にパケットロス数を再分配するので、優先的な通信レートの割り当てが可能となる。また、総パケットロス数を変更することがないため、送信端末全体のトータルの通信レートを維持することができ、ネットワーク上の通信状態に影響を与えることなく維持することができる。
【００２９】
請求項９に係る発明の受信端末は、記録媒体に記録されたプログラムを読み出して装置各部の制御を行うコンピュータと、請求項８に係る発明の受信プログラムが記録された記録媒体と、を具備する構成を採る。
【００３０】
この構成によれば、プログラム制御とすることで、受信端末を特別なハードウェアで構成することなく、新たな機能の追加や変更を柔軟に行うことができる。
【００３１】
【発明の実施の形態】
本発明の骨子は、予め通信経路上のボトルネック帯域となるルータを共有する送信端末をグループ化し、グループ化した全ての送信端末の総パケットロス数を変更することなく、送信端末のパケットロス率を擬似的に操作することで、所望の通信レートを実演し、通信帯域の優先的な割り当てを実現することである。
【００３２】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００３３】
図１は、本発明の一実施の形態に係るデータ伝送システムを示す機能ブロック図である。
この図において、本実施の形態に係るデータ伝送システム１は、複数の送信端末１００と複数の受信端末１２０が夫々ネットワーク１５０を介して接続された構成を採る。送信端末１００は、図示のようにタイマ１０１と、起動スレッド１０２と、ＲＴＴ（往復伝搬遅延時間）計測スレッド１０３と、送信スレッド１０４と、通信レート受信スレッド１０５と、共有メモリ１０６とを備えている。なお、ＲＴＴ計測スレッド１０３は往復伝搬遅延時間計測手段に対応し、送信スレッド１０４は送信手段に対応し、通信レート受信スレッド１０５は通信レート受信手段に対応する。
【００３４】
ＲＴＴ計測スレッド１０３には送信統計計測部１１０があり、送信スレッド１０４にはパケット送信部１１１があり、通信レート受信スレッド１０５には通信レート受信部１１２と通信レート制御部１１３がある。送信統計計測部１１０は、一定時間毎に送信パケットの往復伝搬遅延時間を計測する。パケット送信部１１１は、次に送信するパケットのヘッダ情報に前回送信したパケットの往復伝搬遅延時間を付与して送信する。通信レート受信部１１２は、受信端末１２０から通知される通信レートを受信する。通信レート制御部１１３は、通信レート受信部１１２が受信した通信レートに基づいて送信データの送信タイミングを制御する。共有メモリ１０６には、通信レートを記憶するための領域とＲＴＴ（往復伝搬遅延時間）を記憶するための領域と送信パケットサイズを記憶する領域（この領域については図示略）が設けられている。
【００３５】
一方、受信端末１２０は、登録スレッド１２１、通信レート通知スレッド１２２、受信スレッド１２３を有している。登録スレッド１２１には経路情報計測部１２４と送信端末情報登録部１２５があり、通信レート通知スレッド１２２には通信レート通知部１２６と通信レート算出部１２７と総パケットロス管理部１２８とがあり、受信スレッド１２３にはパケット受信部１２９と受信統計計測部１３０とがある。なお、受信スレッド１２３は受信手段に対応し、登録スレッド１２１は登録手段に対応し、通信レート通知スレッド１２２は通信レート通知手段に対応する。
【００３６】
経路情報計測部１２４は、送信端末１００までの経路を計測する。送信端末情報登録部１２５は、自端末１２０にパケットを送信する全ての送信端末の情報を登録する。パケット受信部１２９は、ネットワークに送出されたパケットを受信する。受信統計計測部１３０は、パケット受信部１２９が受信したパケットのヘッダ情報に含まれている往復伝搬遅延時間から移動平均を計測し、さらにパケットロス率を計測する。総パケットロス管理部１２８は、自端末１２０にパケットを送信する全ての送信端末からのパケットの総パケットロス率を管理する。通信レート算出部１２７は、受信統計計測部１３０で計測された移動平均とパケットロス率に基づいて次に送信するパケットの通信レートを算出する。通信レート通知部１２６は、通信レート算出部１２７が算出した通信レートを通信中の送信端末１００に通知する。
【００３７】
経路情報計測部１２４は、図２に示すアドレス情報収集部２０１と伝送時間計測部２０２を有する。また、経路情報計測部１２４は、図３に示す経路情報テーブル３００も有する。経路情報テーブル３００には、ルータアドレスと、ルータＲＴＴ（ＲＴＴ：往復伝搬遅延時間）と、隣接ルータ伝送遅延時間とを一対のルータ情報として複数のルータ情報を登録する。登録スレッド１２１の送信端末情報登録部１２５（図１参照）は、図４に示す端末情報管理テーブル４００を有している。この端末情報管理テーブル４００には、グループＩＤ、送信端末アドレス、経路情報テーブルポインタ、パケットロステーブルポインタ、ＲＴＴ（往復伝搬遅延時間）、端末送信優先度及びボトルネックルータアドレスを一対の情報として、複数の端末情報が登録される。
【００３８】
通信レート通知スレッド１２２の総パケットロス管理部１２８（図１参照）は、図５に示すパケットロステーブル５００を有している。このパケットロステーブル５００には、総パケットロス数、現在のパケットロス数及び前回のパケットロス数が登録される。
【００３９】
次に、本実施の形態に係るデータ伝送システム１の動作について、図６〜図１３に示すフローチャートを参照して説明する。
【００４０】
（送信端末におけるデータ送信処理）
図６は、送信端末１００から受信端末１２０へデータ送信を行う処理を示すフローチャートである。
この図において、送信スレッド１０２が起動すると、共有メモリ１０６から現在の通信レート値と、送信パケットサイズと、往復伝搬遅延時間（ＲＴＴ）を取得する（ステップＳ６０１）。次いでヘッダ情報を設定する（ステップ６０２）。すなわち、往復伝搬遅延時間とシーケンス番号（送信の度に１ずつ加算する）をパケットのヘッダ情報として記録する。ヘッダ情報の設定後、当該パケットを受信端末１２０に向けて送信する（ステップ６０３）。
【００４１】
パケットの送信後、受信端末１２０から通知された通信レートに従って次のパケットを送信するため、送信待ち状態を維持する。この場合、送信パケットサイズ／通信レートで算出される送信待ちタイマを設定して、このタイマで設定された時間だけ送信待ち状態となる（ステップ６０４）。設定した送信待ち状態がタイムアウトになると（ステップ６０５）、再び送信可能状態となり、ステップＳ６０１から同様の処理を行う。
【００４２】
一方、ステップ６０３で送信されたパケットが受信端末１２０にて受信される。このパケットの受信は受信スレッド１２３にて行われる。受信スレッド１２３は、送信端末１００からパケットが送信されるまでは受信待ち状態となっており（ステップ６０６）、この待ち状態中にパケットを受信すると、復号等の受信処理を行い、その結果をアプリケーションに転送する。受信処理結果をアプリケーションに転送した後、受信統計計測部１３０にてパケットロス率の更新を行う（ステップ６０７）。以後、送信端末１００からパケットが送信されるまで待ち状態となる。
【００４３】
（受信端末におけるロスパケット検出処理）
図７は、受信端末１２０におけるロスパケット検出処理を示すフローチャートである。ロスパケット検出処理は図６のステップ６０７で行われる。受信スレッド１２３は、受信したパケットのシーケンス番号をパラメータとして受信統計計測部１３０のロスパケット検出処理に引き渡す。
【００４４】
この図において、まず最初に管理データとして記録された最大シーケンス番号と、パラメータとして渡されたシーケンス番号とを比較する（ステップ７０１）。シーケンス番号が最大シーケンス番号以上である場合、（シーケンス番号−最大シーケンス番号−１）の数だけパケットロスが発生しているため、共有メモリ１０６に記憶されているパケットロス数を、（シーケンス番号−最大シーケンス番号−１）だけ加算する（ステップ７０２）。そして、最大シーケンス番号よりも大きなシーケンス番号が受信されたため、最大シーケンス番号の更新を行う（ステップ７０３）。最大シーケンス番号の更新処理を行った後、本処理の呼び出し元に復帰する。
【００４５】
一方、ステップ７０１の判定において、受信したパケットのシーケンス番号が最大シーケンス番号よりも小さいと判定した場合は、既にパケットロスとしてカウントされたパケットを受信したことになるため、パケットロステーブル５００（図５参照）に登録された端末パケットロス数を「１」だけ減算し（ステップ７０４）、既にパケットロスとしてカウントされたパケットロス数の修正を行う。このパケットロス数の修正を行った後、本処理の呼び出し元に復帰する。
【００４６】
（送信端末における通信レート通知処理）
図８は、受信端末１２０から送信端末１００へ通信レートの通知を行う処理を示すフローチャートである。
受信端末１２０は新たな送信端末１００と接続が行われると、通信レート通知スレッド１２２を呼び出し、端末情報管理テーブル４００（図４参照）から該当する送信端末１００の送信端末情報を取得し（ステップ８０１）、以下の処理を一定周期毎に繰り返す。
【００４７】
通信レート通知スレッド１２２は、一定周期毎に起動すると、擬似パケットロス率を計算する（ステップ８０２）。なお、擬似パケットロス率の計算は以下で説明する。擬似パケットロス率を求めた後、受信統計計測部１３０がパケットのヘッダ情報に含まれる往復伝搬遅延時間から移動平均を算出する。そして、移動平均の算出後、通信レート算出部１２７が、算出された移動平均と擬似パケットロス率とを元に次のフェーズの通信レートを計算する（ステップ８０３）。この場合、通信レートの計算は幾つか考えられるが、ここでは以下の計算式を用いる。すなわち、１個のパケットの平均サイズＳ、擬似パケットロス率Ｐ、現在の往復伝搬遅延時間より得られる移動平均をＲとすると、通信レート＝Ｓ／（Ｐ×Ｒ）として求める。
【００４８】
また、通信レート算出部１２７は、往復伝搬遅延時間又は擬似パケットロス率のいずれか一方でも上昇する場合には通信レートを減少し、往復伝搬遅延時間又は擬似パケットロス率のいずれか一方でも低下する場合には通信レートを増加し、往復伝搬遅延時間とパケットロス率の一方が上昇し他方が低下する場合には上昇率と低下率の大小により通信レートを減少又は増加させる。このようにして通信レートを求めた後、それを通知データとして設定し、送信端末１００に向けて送信する（ステップ８０４）。
【００４９】
次に、通信レート通知スレッド１２２は、予め設定した通信レート通知間隔をタイマに設定し（ステップ８０５）、タイムアウト待ち状態となる（ステップ８０６）。以後、再びステップ８０２から８０６の処理を繰り返し行う。
ステップ８０４で送信された通信レート通知データは、送信端末１００の通信レート受信スレッド１０５にて受信される。通信レート受信スレッド１０５は、受信端末１００から通信レート通知データが送信されるまでは受信待ち状態を維持し（ステップ８０７）、通信レート通知データを受信すると、そのデータから通信レートを読み出して共有メモリ１０６に記録された通信レートを更新する（ステップ８０８）。以後、再び通信レート受信データの受信待ち状態となる。
【００５０】
（受信端末における擬似パケットロス率算出処理）
図９は、擬似パケットロス率算出処理を示すフローチャートである。
この擬似パケットロス率計算処理は、図８のステップ８０２で受信端末１２０の通信レート通知スレッド１２２から起動される。この時、通信レート通知スレッド１２２は送信端末アドレスをパラメータとして擬似パケットロス率計算処理に引き渡す。
【００５１】
擬似パケットロス率計算処理は、まず最初にパラメータとして渡された送信端末アドレスから端末情報管理テーブル４００（図４参照）を検索して、送信端末１００の端末管理情報を取得し、送信端末１００のグループＩＤを読み出す。送信端末１００のグループＩＤを読み出した後、総パケットロス数と総優先度をクリアする（ステップ９０１）。以後、読み出したグループＩＤから同一のグループＩＤを持つ全ての送信端末１００に対して、ステップ９０３及び９０４の処理を繰り返す（ステップ９０２）。すなわち、端末情報管理テーブル４００の該当テーブルから端末送信優先度と、パケットロステーブル５００を取得して送信端末１００の端末パケットロス数を読み出して、総パケットロス数に加算する（ステップ９０３）。次いで、総優先度に端末送信優先度（図４参照）を加算する（ステップ９０４）。
【００５２】
同一のグループＩＤを持つ全ての送信端末１００について処理を終了すると、擬似パケットロス率の算出を行う（ステップ９０５）。擬似パケットロス率は送信端末１００の端末送信優先度に比例したパケットロスの分配を行い、以下の計算式により算出する（ステップ９０６）。
【００５３】
擬似パケットロス率＝総パケットロス数×（端末送信優先度／総優先度）
擬似パケットロス率を算出すると、それを返却値として本処理の呼び出し元に復帰する。
【００５４】
（送信端末における接続要求処理）
図１０は、送信端末１００から受信端末１２０へ接続要求処理を示すフローチャートである。
送信端末１００は新たな受信端末１２０と接続を開始するため、起動スレッド１０２を呼び出す。起動スレッド１０２は、予め設定された受信端末１２０のアドレスに対して接続要求を送信する（ステップ１００１）。接続要求の送信後、受信端末１２０からの接続応答の受信待ち状態に遷移する（ステップ１００２）。そして、受信端末１２０からの接続応答を受信すると、データの送信を行う送信スレッド１０４を起動して終了する（ステップ１００３）。
【００５５】
一方、ステップ１００１にて送信端末１００から受信端末１２０に送信された接続要求を受信端末１２０の登録スレッド１２１が受信する。登録スレッド１２１は、送信端末１００から接続要求が送信されるまで受信待ち状態となっており（ステップ１００４）、この状態で接続要求を受信すると、新規の送信端末１００からの接続受付処理を開始し、接続元の送信端末１００までの経路情報の収集を行う（ステップ１００５）。さらに接続元の送信端末１００の端末登録処理を行う（ステップ１００６）。端末登録処理後、以後のデータ受信処理の準備が完了したため送信端末１００に接続応答を送信する（ステップ１００７）。接続応答の送信後、送信端末１００に対応した受信スレッド１２３を起動し（ステップ１００８）、再び新しい送信端末１００からの接続要求の受信待ち状態となる。
【００５６】
（受信端末における経路情報収集処理）
図１１は、受信端末１２０における経路情報収集処理を示すフローチャートである。
この経路情報収集処理は、図１０のステップ１００５で登録スレッド１２１から呼び出される。この時、登録スレッド１２１は送信端末アドレスをパラメータとして経路情報収集処理に引き渡す。経路情報収集処理では、ＴＴＬ（パケット生存時間）を「１」に初期化し（ステップ１１０１）、パラメータとして渡された送信端末アドレスをＲＦＣ７９２で公知のＩＣＭＰ（Ｉｎｔｅｒｎｅｔ　Ｃｏｎｔｒｏｌ　Ｍａｓｓａｇｅ　ｐｒｏｔｏｃｏｌ）エコーメッセージに設定する。
【００５７】
次に、応答時間計測タイマを起動し（ステップ１１０２）、パケット生存時間をＩＣＭＰエコーメッセージに設定して送信端末１００に向けて送信する（ステップ１１０３）。そして、ＩＣＭＰ時間超過メッセージを受信すると（ステップ１１０４）、応答時間計測タイマを停止し、それまでに測定した時間を往復伝搬遅延時間として記録する（ステップ１１０５）。ここで応答があったメッセージの送信元はホップ数がパケット生存時間に等しい距離にあるルータからの応答である。
【００５８】
次に、ＩＣＭＰ時間超過メッセージの応答元のアドレスとステップ１１０５で計測した往復伝搬遅延時間（ＲＴＴ）と隣接ルータ伝送遅延時間を経路情報テーブル３００（図３参照）に記録する（ステップ１１０６）。この場合、隣接ルータ伝送遅延時間はパケット生存時間が１つ小さいＩＣＭＰ時間超過メッセージから得られた往復伝搬遅延時間との差分の半分の時間として算出する。
【００５９】
次に、応答元のアドレスが送信端末アドレスに等しいかどうかチェックする（ステップ１１０７）。応答元のアドレスが送信端末アドレスと等しくない場合は、未だ送信端末１００と受信端末１２０との間にルータが存在するので、パケット生存時間を「１」だけ加算する（ステップ１１０８）。以後、再びステップ１１０２からの処理を繰り返す。そして、ステップ１１０７の判定において、応答元のアドレスと送信端末アドレスが等しい場合には、送信端末１００と受信端末１２０との間のルータからの情報が全て得られたため処理を終了し、本処理の呼び出し元に復帰する。
【００６０】
（受信端末における端末登録処理）
図１２は、受信端末１２０における送信端末情報の登録を行う処理を示すフローチャートである。
端末登録処理は、図１０のステップＳ１００６で登録スレッド１２１から呼び出される。この際、登録スレッド１２１は送信端末アドレスをパラメータとして端末登録処理に引き渡す。端末登録処理は、まず最大伝送遅延時間をクリアし、該当端末を自分のアドレスに初期化する（ステップ１２０１）。
【００６１】
次いで、経路情報テーブル３００（図３参照）から経路情報収集処理において収集された経路上のルータの情報を順次読み出し、当該情報が無くなるまでステップ１２０３とステップ１２０４の処理を繰り返す（ステップ１２０２）。ステップ１２０３では、経路情報テーブル３００から読み出した隣接ルータの伝送遅延時間と最大伝送遅延時間の比較を行う。隣接ルータの伝送遅延時間が最大伝送遅延時間よりも大きい場合には、該当アドレスを、読み出したルータアドレスに更新し、また最大伝送遅延時間を、読み出した隣接ルータ伝送遅延時間に更新する（ステップ１２０４）。これに対して、隣接ルータの伝送遅延時間が最大伝送遅延時間と等しいかあるいは小さい場合にはステップ１２０４の処理をスキップする。
【００６２】
全ての経路情報についてステップ１２０３とステップ１２０４の処理を終了すると、続いて端末情報管理テーブル４００から端末情報を順次読み出して、ステップ１２０６の処理を繰り返す（ステップ１２０５）。ステップ１２０６では、読み出した端末情報に記載されているボトルネックルータアドレスが該当アドレスと等しいか否かを判定する。この判定において、ボトルネックルータアドレスと該当アドレスが等しくない場合には、再びステップ１２０６の処理を行う。これに対して、ボトルネックルータアドレスと該当アドレスが等しい場合には、ボトルネックとなるルータと帯域を共有している送信端末であるため、端末情報に記載されているグループＩＤを付与して、端末情報テーブルに新しく端末情報を登録する（ステップ１２０８）。
【００６３】
端末情報テーブルに端末情報が無くなるまでステップＳ１２０６の処理を繰り返した場合には、ボトルネックとなるルータが他の送信端末と帯域を共有していないので、新規にグループＩＤを付与して端末情報テーブルに新しく端末情報を登録する（ステップ１２０７）。ステップ１２０８又はステップ１２０７の処理を終えると、本処理の呼び出し元に復帰する。
【００６４】
（送信端末における往復伝搬遅延時間計測処理）
図１３は、往復伝搬遅延時間（ＲＴＴ）計測処理を示すフローチャートである。
往復伝搬遅延時間計測処理は、図１０のステップ１００３で送信スレッド１０４から起動され、予め設定された一定周期で処理を行う。ＲＴＴ計測スレッド１０３は、一定周期毎に起動するとＲＴＴ計測タイマを設定する（ステップ１３０１）。そして、受信端末１２０に対してＩＣＭＰエコーメッセージを送信し（ステップ１３０２）、それに対するＩＣＭＰエコー応答メッセージを受信すると（ステップ１３０３）、ＲＴＴ計測タイマを停止させて往復伝搬遅延時間を計測する（ステップ１３０４）。そして、計測した往復伝搬遅延時間を共有メモリ１０６に記録する（ステップ１３０５）。そして、予め設定された周期にタイマを設定し（ステップ１３０６）、タイムアウト待ち状態となる（ステップ１３０７）。
【００６５】
このように、本実施の形態に係るデータ伝送システム１によれば、受信端末１２０の登録スレッド１２１が送信端末１００の経路情報を計測して、ボトルネック帯域となるルータを共有する送信端末１００をグループ化し、グループ内での総パケットロス率を管理する。また、受信端末１２０の通信レート通知スレッド１２２がグループ内での総パケットロス率を変更しないように、端末送信優先度に従ってパケットロスを分配して擬似パケットロス率を算出し、さらに送信端末１００から送信された往復伝搬遅延時間（ＲＴＴ）から移動平均を算出して、擬似パケットロス率とＲＴＴの移動平均から通信レートを計算して送信端末１００に通知を行う。送信端末１００では、通知された通信レートに従ってパケットの送信を行う。これにより、ボトルネック帯域のルータ上のパケットロスが維持されるため、パケットロスの上昇を引き起こすことなく特定の送信端末に優先的に通信レートを割り当てることが可能となる。また、総パケットロス数を変更しないため、複数の送信端末１００の通信レート変更によっても相互にパケットロスの影響を与えることなく、安全に帯域の割り当てを実現することができる。
【００６６】
【発明の効果】
以上説明したように、本発明によれば、通信レート管理サーバー等の特別な装置を設置することなく、送受信端末の間でパケットロス率に従った通信レートを管理し、優先度に基づいてパケットロスを移し替えるようにしたので、通信レートを優先的に割り当てを行うことができる。
【００６７】
また、通信経路上のボトルネック帯域となるルータを共有する送信端末を１つのグループとして管理し、グループ内でのみパケットロスの移し替えを行うようにしたので、有効的かつ安全にパケットロスを管理でき、他の送信端末へ影響を与えることなく安全に通信レートを制御することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係るデータ伝送システムの構成を示すブロック図
【図２】本発明の一実施の形態に係るデータ伝送システムの経路情報計測部の構成を示すブロック図
【図３】本発明の一実施の形態に係るデータ伝送システムの経路情報テーブルを示す図
【図４】本発明の一実施の形態に係るデータ伝送システムの端末情報管理テーブルを示す図
【図５】本発明の一実施の形態に係るデータ伝送システムのパケットロステーブルを示す図
【図６】本発明の一実施の形態に係るデータ伝送システムにおける送信端末から受信端末へのデータ送信処理を示すフローチャート
【図７】本発明の一実施の形態に係るデータ伝送システムにおける受信端末におけるロスパケット検出処理を示すフローチャート
【図８】本発明の一実施の形態に係るデータ伝送システムにおける受信端末から送信端末への通信レート通知処理を示すフローチャート
【図９】本発明の一実施の形態に係るデータ伝送システムにおける受信端末における擬似パケットロス率算出処理を示すフローチャート
【図１０】本発明の一実施の形態に係るデータ伝送システムにおける送信端末から受信端末への接続要求処理を示すフローチャート
【図１１】本発明の一実施の形態に係るデータ伝送システムにおける受信端末での経路情報収集処理を示すフローチャート
【図１２】本発明の一実施の形態に係るデータ伝送システムにおける受信端末での送信端末情報の登録処理を示すフローチャート
【図１３】本発明の一実施の形態に係るメディアデータ伝送システムにおける受信端末での往復伝搬遅延時間計測処理示すフローチャート
【図１４】従来のデータ伝送システムにおける通信レート算出処理を示すフローチャート
【符号の説明】
１　データ伝送システム
１００　送信端末
１０１　タイマ
１０２　起動スレッド
１０３　ＲＴＴ計測スレッド
１０４　送信スレッド
１０５　通信レート受信スレッド
１０６　共有メモリ
１１０　送信統計計測部
１１１　パケット送信部
１１２　通信レート受信部
１１３　通信レート制御部
１２０　受信端末
１２１　登録スレッド
１２２　通信レート通知スレッド
１２３　受信スレッド
１２４　経路情報計測部
１２５　送信端末情報登録部
１２６　通信レート通知部
１２７　通信レート算出部
１２８　総パケットロス管理部
１２９　パケット受信部
１３０　受信統計計測部
２０１　アドレス情報収集部
２０２　伝送時間計測部
３００　経路情報テーブル
４００　端末情報管理テーブル
５００　パケットロステーブル
【図１】
2004135065.tif 000003
【図２】
2004135065.tif 000004
【図３】
2004135065.tif 000005
【図４】
2004135065.tif 000006
【図５】
2004135065.tif 000007
【図６】
2004135065.tif 000008
【図７】
2004135065.tif 000009
【図８】
2004135065.tif 000010
【図９】
2004135065.tif 000011
【図１０】
2004135065.tif 000012
【図１１】
2004135065.tif 000013
【図１２】
2004135065.tif 000014
【図１３】
2004135065.tif 000015
【図１４】
2004135065.tif 000016