(57)【特許請求の範囲】
【請求項１】
ネットワークに接続された複数の送信装置のうちの１つの送信装置が、対応する受信装置に対して、当該ネットワークを介して１群のデータ・パケットの送信を行なう方法であって、
当該送信装置が、前記複数の送信装置のうちの１つから前記ネットワークにブロードキャスト送信される制御パケットであって、前記複数の送信装置の何れか１つを示す識別子を格納した第１フィールドと、前記複数の送信装置の全てまたは一部の送信装置に係る識別子グループを格納した第２フィールドとを含む制御パケットを待って、それを受信するステップと、
当該送信装置が、前記制御パケットを受信したことに応答して、前記制御パケットにおける前記第１フィールドに当該送信装置を示す識別子が格納されているか判断し、
（ａ） 格納されていないと判断する場合は、更なる制御パケットを対象として、前記受信するステップに戻り、
（ｂ） 格納されていると判断する場合は、当該送信装置からの１群のデータ・パケットの送信が可能になるのを待って、前記対応する受信装置に向けて当該１群のデータ・パケットを送信するステップを実行する、
ステップと、
当該送信装置が、前記１群のデータ・パケットの送信が完了したことに応答して、前記第２フィールドに格納された前記識別子グループの中から１つの識別子を所定の基準に従って選択するステップと、
当該送信装置が、前記選択したことに応答して、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記選択された識別子を格納し、当該第２フィールドには前記識別子グループを格納した、第１の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップと、
当該送信装置が、前記第１の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップと、
当該送信装置が、前記受信するステップの後、前記ブロードキャスト送信するステップの開始までの間に、更なる制御パケットを受信した場合に、前記第１の新たな制御パケットをブロードキャスト送信せず、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記選択された識別子を格納し、当該第２フィールドには前記更なる制御パケットにおける第２フィールドに格納された識別子グループを格納した、第２の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップと、
当該送信装置が、前記第２の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップと
を有する方法。
【請求項２】
当該送信装置が、前記制御パケットを受信したことに応答して、前記第１フィールドに当該送信装置を示す識別子が格納されているか判断する前に、前記第２フィールドに格納された識別子グループに当該送信装置を示す識別子が含まれるか判断し、
（ａ） 含まれると判断する場合は、前記第１フィールドに当該送信装置を示す識別子が格納されているか判断する前記ステップを実行し、
（ｂ） 含まれないと判断する場合は、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記制御パケットにおける前記第１フィールドに格納された前記識別子を格納し、当該第２フィールドには前記識別子グループに当該送信装置の識別子を加えた更新識別子グループを格納した、第３の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップを実行する、
ステップと、
当該送信装置が、前記第３の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップと
をさらに有する、請求項１に記載の方法。
【請求項３】
１群のデータ・パケットを送信する前記ステップは、送信が可能になるのを待ち始めてから所定の時間内に送信が可能にならない場合に、前記選択するステップを実行する、
請求項１または２に記載の方法。
【請求項４】
受信した前記制御パケットにおける前記第１フィールドに当該送信装置を示す識別子が格納されていると判断する場合に、前記１群のデータ・パケットの送信が可能になるのを待つ前に、当該送信装置からいかなる１群のデータ・パケットをも以後送信しないかどうかを当該送信装置が判断し、
（ａ） 以後送信すると判断する場合は、１群のデータ・パケットの送信が可能になるのを待って、当該送信装置に対応する受信装置に向けて当該１群のデータ・パケットを送信する前記ステップを実行し、
（ｂ） 以後送信しないと判断する場合は、前記第２フィールドに格納された前記識別子グループの中から１つの識別子を所定の基準に従って選択するステップを実行する、
ステップと、
当該送信装置が、前記選択したことに応答して、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記選択された識別子を格納し、当該第２フィールドには前記識別子グループから当該送信装置の識別子を除いた更新識別子グループを格納した、第４の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップと
をさらに有する、請求項２に記載の方法。
【請求項５】
前記受信するステップは、制御パケットを待ち始めてから所定の時間内に制御パケットを受信しない場合に、当該送信装置からの１群のデータ・パケットの送信が可能になるのを待って、前記対応する受信装置に向けて当該１群のデータ・パケットを送信するステップを含み、
当該送信装置が、前記送信が完了したことに応答して、第１フィールドおよび第２フィールドを含み、当該第１フィールドには当該送信装置の識別子を格納し、当該第２フィールドには当該送信装置の識別子のみからなる識別子グループを格納した、第５の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップと、
当該送信装置が、前記第５の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップと
をさらに有する、請求項１または２に記載の方法。
【請求項６】
１つの送信装置を所定の基準に従って選択する前記ステップは、
当該送信装置に係る識別子が前記識別子グループの最後部に位置しない場合は、前記識別子グループの中で次に位置する識別子を選択し、
当該送信装置に係る識別子が前記識別子グループの最後部に位置する場合は、前記識別子グループの最初に位置する識別子を選択する、
請求項１または２に記載の方法。
【請求項７】
前記識別子のそれぞれは、前記ネットワークにおいて前記複数の送信装置の間で一意に割り当てられる、請求項１または２に記載の方法。
【請求項８】
前記ネットワークはＩＰネットワークであり、
前記１群のデータ・パケットの送信は、当該１群のデータ・パケットのバースト転送を含み、
前記識別子は、前記ＩＰネットワークに接続された各送信装置に割り当てられたＩＰアドレスを含む、
請求項７に記載の方法。
【請求項９】
ネットワークに接続された複数の送信装置のうちの１つの送信装置が、対応する受信装置に対して、当該ネットワークを介して１群のデータ・パケットの送信を行なう方法であって、
前記複数の送信装置のうちの１つから前記ネットワークにブロードキャスト送信される制御パケットであって、前記複数の送信装置の何れか１つを示す識別子を格納した第１フィールドと、前記複数の送信装置の全てまたは一部の送信装置に係る識別子グループを格納した第２フィールドとを含む、制御パケットを待って、それを受信するステップと、
前記制御パケットを受信したことに応答して、前記制御パケットにおける前記第１フィールドに当該送信装置を示す識別子が格納されているか判断し、
（ａ） 格納されていないと判断する場合は、更なる制御パケットを対象として、前記受信するステップに戻り、
（ｂ） 格納されていると判断する場合は、当該送信装置からの１群のデータ・パケットの送信が可能になるのを待って、前記対応する受信装置に向けて当該１群のデータ・パケットを送信するステップを実行する、
ステップと、
前記１群のデータ・パケットの送信が完了したことに応答して、前記制御パケットにおける前記第２フィールドに格納された前記識別子グループの中から１つの識別子を所定の基準に従って選択するステップと、
前記選択したことに応答して、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記選択された識別子を格納し、当該第２フィールドには前記識別子グループを格納した、第１の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップと、
前記第１の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップと、
前記受信するステップの後、前記ブロードキャスト送信するステップの開始までの間に、更なる制御パケットを受信した場合に、前記第１の新たな制御パケットをブロードキャスト送信せず、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記選択された識別子を格納し、当該第２フィールドには前記更なる制御パケットにおける第２フィールドに格納された識別子グループを格納した、第２の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップと、
前記第２の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップと
を有する方法
【請求項１０】
ネットワークに接続された複数の送信装置のうちの１つであり、対応する受信装置に対して当該ネットワークを介して１群のデータ・パケットの送信を行なう送信装置であって、
前記ネットワークにブロードキャスト送信される制御パケットであって、前記複数の送信装置の何れか１つを示す識別子を格納した第１フィールドと、前記複数の送信装置の全てまたは一部の送信装置に係る識別子グループを格納した第２フィールドとを含む制御パケットを待って、それを受信する、受信部と、
前記受信部により受信された前記制御パケットにおける前記第１フィールドと、当該送信装置を示す識別子とを比較して、前記第１フィールドに当該送信装置を示す識別子が格納されているか判断する、第１判断部と、
前記第１フィールドに当該送信装置を示す識別子が格納されているとの判断に応答して、当該送信装置から、前記対応する受信装置に向けて１群のデータ・パケットを送信する、データ・パケット送信部と、
前記１群のデータ・パケットの送信が完了したことに応答して、前記制御パケットにおける前記第２フィールドに格納された前記識別子グループの中から１つの識別子を所定の基準に従って選択する、選択部と、
第１フィールドおよび第２フィールドを含み、当該第１フィールドには、前記選択部により選択された識別子を格納し、当該第２フィールドには、前記受信部により最も直近に受信された制御パケットにおける第２フィールドに格納された識別子グループを格納した、第１の新たな制御パケットを、前記ネットワークにブロードキャスト送信する、制御パケット送信部と
を備え、
前記制御パケット送信部が、さらに、前記受信部が制御パケットを受信した後、前記ブロードキャスト送信を開始までの間に、更なる制御パケットを受信した場合に、前記第１の新たな制御パケットをブロードキャスト送信せず、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記選択された識別子を格納し、当該第２フィールドには前記更なる制御パケットにおける第２フィールドに格納された識別子グループを格納した、第２の新たな制御パケットを、前記ネットワークにブロードキャスト送信する
送信装置。
【請求項１１】
前記受信部により受信された前記制御パケットにおける前記第２フィールドと、当該送信装置を示す識別子とを比較して、前記第２フィールドに格納された前記識別子グループに当該送信装置を示す識別子が含まれるか判断する、第２判断部をさらに備え、
前記第１判断部は、前記第２判断部が、前記第２フィールドに格納された前記識別子グループに当該送信装置を示す識別子が含まれると判断した場合にのみ、前記第１フィールドに当該送信装置を示す識別子が格納されているか判断し、
前記制御パケット送信部は、前記第２判断部が、前記第２フィールドに格納された前記識別子グループに当該送信装置を示す識別子が含まれないと判断した場合は、前記第１の新たな制御パケットをブロードキャスト送信せず、第１フィールドおよび第２フィールドを含み、当該第１フィールドには、前記受信部により受信された前記制御パケットにおける前記第１フィールドに格納された前記識別子を格納し、当該第２フィールドには、前記受信部により受信された前記制御パケットにおける前記第２フィールドに格納された前記識別子グループに当該送信装置の識別子を加えた更新識別子グループを格納した、第２の新たな制御パケットを、前記ネットワークにブロードキャスト送信する、
請求項１０に記載の送信装置。
【請求項１２】
ネットワークに接続された複数の送信装置のうちの１つの送信装置が、対応する受信装置に対して、当該ネットワークを介して１群のデータ・パケットの送信を行なうための、当該送信装置に記憶されたプログラムであって、
前記複数の送信装置のうちの１つから前記ネットワークにブロードキャスト送信される制御パケットであって、前記複数の送信装置の何れか１つを示す識別子を格納した第１フィールドと、前記複数の送信装置の全てまたは一部の送信装置に係る識別子グループを格納した第２フィールドとを含む、制御パケットを待って、それを受信するステップと、
前記制御パケットを受信したことに応答して、前記制御パケットにおける前記第１フィールドに当該送信装置を示す識別子が格納されているか判断し、
（ａ） 格納されていないと判断する場合は、更なる制御パケットを対象として、前記受信するステップに戻り、
（ｂ） 格納されていると判断する場合は、当該送信装置からの１群のデータ・パケットの送信が可能になるのを待って、前記対応する受信装置に向けて当該１群のデータ・パケットを送信するステップを実行する、
ステップと、
前記１群のデータ・パケットの送信が完了したことに応答して、前記制御パケットにおける前記第２フィールドに格納された前記識別子グループの中から１つの識別子を所定の基準に従って選択するステップと、
前記選択したことに応答して、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記選択された識別子を格納し、当該第２フィールドには前記識別子グループを格納した、第１の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップと、
前記第１の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップと、
前記受信するステップの後、前記ブロードキャスト送信するステップの開始までの間に、更なる制御パケットを受信した場合に、前記第１の新たな制御パケットをブロードキャスト送信せず、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記選択された識別子を格納し、当該第２フィールドには前記更なる制御パケットにおける第２フィールドに格納された識別子グループを格納した、第２の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップと、
前記第２の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップと
を当該送信装置に実行させるためのプログラム。
【請求項１３】
前記制御パケットを受信したことに応答して、前記第１フィールドに当該送信装置を示す識別子が格納されているか判断する前に、前記第２フィールドに格納された識別子グループに当該送信装置を示す識別子が含まれるか判断し、
（ａ） 含まれると判断する場合は、前記第１フィールドに当該送信装置を示す識別子が格納されているか判断する前記ステップを実行し、
（ｂ） 含まれないと判断する場合は、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記制御パケットにおける前記第１フィールドに格納された前記識別子を格納し、当該第２フィールドには前記識別子グループに当該送信装置の識別子を加えた更新識別子グループを格納した、第３の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップを実行する、
ステップと、
前記第３の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップと
を当該送信装置にさらに実行させるための、請求項１２に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークにおけるデータの転送方法に関するものである。  本発明は特に、複数の送信装置から同一のネットワーク回線を経由してデータを転送する際のデータの輻輳を抑えるための転送方法およびその装置に関するものである。
【背景技術】
【０００２】
ネットワーク・プロトコル（即ち、ＯＳＩ参照モデルのネットワーク層のプロトコル）としてＩＰ（Internet Protocol）を用いたネットワークのことを一般にＩＰネットワークと呼んでおり、インターネットやＬＡＮ（Local Area Network）等もその一種であることは周知である。
【０００３】
このＩＰネットワークを利用したデータ転送技術により、ＩＰパケット（ＩＰネットワークにおけるデータ転送の単位となるパケット）を使用した、ＩＰ電話やテレビ会議システム等の各種リアルタイム・アプリケーションが実現している。これらリアルタイム・アプリケーションは、音声や画像等のデータのストリーム形式でのリアルタイム配信技術により可能となるもので、これらリアルタイム配信技術としては、ＶｏＩＰ（Voice over IP）、Ｒｅａｌストリーミング（商標）、ＱｕｉｃｋＴｉｍｅストリーミング（商標）等が存在する。いずれのリアルタイム配信技術においても、同一ネットワーク当たりの転送ストリームの許容数をできる限り多くすることが求められている。
【０００４】
これらのリアルタイム配信技術では、その転送プロトコル（即ち、ＯＳＩ参照モデルのトランスポート層のプロトコル）として、ＴＣＰ（Transmission Control Protocol）ではなく、より高い転送速度を期待できるＵＤＰ（User Datagram Protocol）を用いることが多い。
【０００５】
ＵＤＰは、ＴＣＰと比べるとデータ転送速度は高いが、送達確認などを行わない無手順方式のプロトコルで、再送制御も定められていない。このため、転送中のパケット紛失やデータ誤り等の検出、およびそのための対応手段は、より上位層であるアプリケーション等で行うほかは無く、ＵＤＰ自身によってはカバーされない。
このため、ＵＤＰは、転送の途中で多少のデータ・ロスがあっても問題が少ない音声や画像のストリーム形式での配信に主に用いられるのであるが、データ・ロスがあまりに多くなると無視し得なくなり転送の信頼性の低下を招く。よって、ＵＤＰを用いたデータ転送では、でき得る限りデータ・ロスを少なくすることが求められることになる。
【０００６】
ところで、一般に通信ネットワークにおいては、１回で（即ち、１つのパケットで）転送できるデータの最大値が決められており、これをＭＴＵ（Maximum Transmission Unit）と呼んでいる。このＭＴＵは、送信装置が各データ転送の接続ごとにその値を設定することができる。例えば送信装置が受信装置より大きなデータ転送許容値を持っていたとしても受信装置のデータ転送許容値で制限を受けるため、この送信装置から受信装置へのデータ転送の接続において設定できる最大のＭＴＵ値は受信装置のデータ転送許容値ということになる。
【０００７】
リアルタイム・アプリケーションにおけるデータ転送の対象となるデータは、ＰＣＭサンプリング・データや動画画像のデータのような総計サイズの大きいものがほとんどで、このサイズは、その転送において設定され得るＭＴＵ値をはるかに超えるものである。よって、リアルタイム・アプリケーションにおいてＵＤＰを用いてデータ転送をする場合、転送対象のデータを複数のＵＤＰパケットに分割するだけでなく、各ＵＤＰパケットをその転送において設定されたＭＴＵサイズの複数の小パケット（以後、フラグメント・パケットと呼ぶ）にさらに分割して、それらのフラグメント・パケットを順次転送しなければならない。
【０００８】
通常この各ＵＤＰパケットからＭＴＵサイズの複数のフラグメント・パケットへの分割は、送信装置上で、ＯＳ（オペレーティング・システム）、ネットワーク・カード・ドライバを経てネットワーク・カード上のインターフェース・ロジックによりハードウェア的に行われる。また、１つのＵＤＰパケット分に相当する全てのフラグメント・パケットを集中して連続転送するいわゆるバースト転送が行われ、高効率にフラグメント・パケットの転送を行なうことを可能としている。
【０００９】
フラグメント・パケットのバースト転送では、送信装置から連続して転送されるデータによって瞬間的にネットワーク回線が占有される。この場合、単一の送信装置と受信装置間での通信だけであれば問題は発生しない。しかし、送信装置と受信装置の複数のペアが同一のネットワーク回線を使用する場合、ある送信装置からのフラグメント・パケットの送出タイミングが他の送信装置からのタイミングと同調してネットワーク回線の占有期間が重複した場合に、回線の奪い合い状態が発生し、いわゆる輻輳（Convergence）を引き起こす。
【００１０】
図１は、ＩＰネットワークに接続された複数の送信装置のそれぞれからデータ・パケットのバースト転送が定期的に行われる環境を示したものである。送信装置Ａ １０２から受信装置Ａ １１２に転送されるデータと、送信装置Ｂ １０４から受信装置Ｂ １１４に転送されるデータとは、共に同一のいくつかの中継用のＨＵＢ １２２、１２４等を経由して同一のＩＰネットワーク回線 １３２を使って転送される。
【００１１】
また、図２は、図１に示したデータ転送環境において、送信装置Ａ １０２と送信装置Ｂ １０４のそれぞれからバースト転送のために送信されるデータに係るデータ・レート（単位時間当たりのデータ量）が時間と共に変化する様子を示したものである。
【００１２】
図２では、送信装置Ａからのバースト転送と送信装置Ｂからのバースト転送との重複期間 ２０２、２０４がある。この重複期間では、ＩＰネットワーク回線 １３２に流入するフラグメント・パケットが一定期間に集中し、そのネットワーク回線の単位時間当たりの転送許容量（ネットワーク帯域とも言う）を超えることになるので、何れかの送信装置から流入して来た方のフラグメント・パケットは各ＨＵＢ等において待ち行列（キュー、バッファ）に入れられて処理待ち状態となる。
【００１３】
しかし、各中継ルーターにおける待ち行列には容量に限りがあるため、パケットが入りきらない場合は転送待ちパケットのいくつかは廃棄され、データ・ロスが発生する。一般にバースト転送においては、１つのフラグメント・パケットのロスが発生すると、そのバースト転送に係る全てのフラグメント・パケットをロスしたものとみなされるので、実際に廃棄されたフラグメント・パケット以上の大量のデータ・ロスを発生させる結果となる。
【００１４】
図２に示す例の場合は、送信装置Ａからと送信装置Ｂからの両データ転送の合算データ量の平均は、ＩＰネットワーク回線 １３２の単位時間当たりの転送許容量以下であるのは明らかなのにも関わらず、互いのバースト転送の重複期間では、単一の送信装置から転送される場合と比較して大量のデータ・ロスが発生するという理不尽な結果を招く。
【００１５】
このような輻輳によるデータ・ロスの問題を解決するためには、次に述べる２つの方法が考えられる。
先ず１つの方法は、１つのＵＤＰパケットがフラグメント化されないように、各ＵＤＰパケットをその転送において設定されたＭＴＵサイズ以下のサイズとするものである。
この方法を用いれば、各ＵＤＰパケットのサイズが細分化されることで、データ・ロス発生時に廃棄されるデータ量を最小限に抑制することができる。
【００１６】
しかし、ＵＤＰパケットを複数のフラグメント・パケットに分割するのが通常はハードウェア的に高速に行われるのと異なり、転送対象のデータを分割してＵＤＰパケットを生成するのはＣＰＵによりソフトウェア的に行なわれるので、ＭＴＵサイズ以下の多数のＵＤＰパケットを生成するにはＣＰＵがより多くの時間を必要とする。同時に受信装置側でもＵＤＰパケットの受信処理により多くの時間が必要となる。
また、この方法は、多数に分割したＵＤＰパケットをバースト転送等で高効率に転送するものではないので、フラグメント・パケットをバースト転送する場合のような十分なパフォーマンスが得られない。
【００１７】
今１つの方法は、その転送におけるＭＴＵサイズを大きな値に設定して、１つのＵＤＰパケットをフラグメント化しなくても良いようにするものである。例えば、通常１５００バイトに設定されるＭＴＵサイズを９０００バイトに変更することで、フラグメント化を防ぐことが可能となり、大きなサイズのＵＤＰパケットをそのまま転送することができる。
【００１８】
しかしながら、この方法は、ネットワーク回線がギガビット・イーサーネットでサポートされているような高転送効率の物理的規格を持ったものである場合にのみ有効であり、また、中継用のＨＵＢ等の途中の経路機器の全てがこの大きなサイズのパケット転送に対応している必要があり、適用できる構成がかなり限定的となる。
【００１９】
また、特開２００５−２６８９１４号公報には、データを任意のタイミングで送出することで送信レートを確保することができるデータ生成装置において、そのデータ生成装置の上流に当たる転送装置からのフロー制御（データ送信可／不可の制御）がある場合に、そのフロー制御の状況に応じて、そのデータ生成装置内において、次に転送装置に送信するデータの送出タイミングを調整することで、一定のデータ送出レートを確保することができる手段等についての発明が記載されている。
【００２０】
しかしこの発明は、各データ生成装置の上流に当たる転送装置からのフロー制御があることを前提としたもの、即ち、フロー制御がデータ生成装置の外部から行われた場合において、各データ生成装置の内部での今後のデータ送出タイミングの調整（即ち、スピードアップ）を行うことで問題解決を図る方法について言及したものである。
よってこの発明は、このようなフロー制御を行なってくれるスーパーバイザー的な転送装置が無く、複数の送信装置が直接ＩＰネットワークに接続されているような図１に示すような環境下において、各送信装置からの転送データの輻輳が起こったことにより発生するデータ・ロス等の問題点を解決できるというものではない。
【特許文献１】特開２００５−２６８９１４号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
そこで本発明は、データ転送のためのネットワークにおいて、複数の送信装置から同一のネットワーク回線を経由してデータを転送する際に、データの輻輳が起こって大量のデータ・ロスが発生することを回避し、そのネットワーク回線のネットワーク帯域の範囲内で効率的に各データを転送するための方法およびその送信装置を提供することをその目的とする。
【課題を解決するための手段】
【００２２】
上記課題を解決するために、本発明の第１の側面においては、ネットワークに接続された複数の送信装置のうちの１つの送信装置が、対応する受信装置に対して、当該ネットワークを介して１群のデータ・パケットの送信を行なう方法であって、（１）当該送信装置が、前記複数の送信装置のうちの１つから前記ネットワークにブロードキャスト送信される制御パケットであって、前記複数の送信装置の何れか１つを示す識別子を格納した第１フィールドと、前記複数の送信装置の全てまたは一部の送信装置に係る識別子グループを格納した第２フィールドとを含む制御パケットを待って、それを受信するステップと、  （２）当該送信装置が、前記制御パケットを受信したことに応答して、前記制御パケットにおける前記第１フィールドに当該送信装置を示す識別子が格納されているか判断し、（ａ） 格納されていないと判断する場合は、更なる制御パケットを対象として、前記受信するステップに戻り、（ｂ） 格納されていると判断する場合は、当該送信装置からの１群のデータ・パケットの送信が可能になるのを待って、前記対応する受信装置に向けて当該１群のデータ・パケットを送信するステップを実行する、ステップと、  （３）当該送信装置が、前記１群のデータ・パケットの送信が完了したことに応答して、前記第２フィールドに格納された前記識別子グループの中から１つの識別子を所定の基準に従って選択するステップと、  （４）当該送信装置が、前記選択したことに応答して、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記選択された識別子を格納し、当該第２フィールドには前記識別子グループを格納した、第１の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップと、  （５）当該送信装置が、前記第１の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップとを有する方法を提供する。
【００２３】
また、本発明の第２の側面においては、第１の側面における方法において、（６）当該送信装置が、前記受信するステップの後、前記ブロードキャスト送信するステップの開始までの間に、更なる制御パケットを受信した場合に、前記第１の新たな制御パケットをブロードキャスト送信せず、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記選択された識別子を格納し、当該第２フィールドには前記更なる制御パケットにおける第２フィールドに格納された識別子グループを格納した、第２の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップと、  （７）当該送信装置が、前記第２の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップとをさらに有する方法を提供する。
【００２４】
さらに、本発明の第３の側面においては、第２の側面における方法において、（８）当該送信装置が、前記制御パケットを受信したことに応答して、前記第１フィールドに当該送信装置を示す識別子が格納されているか判断する前に、前記第２フィールドに格納された識別子グループに当該送信装置を示す識別子が含まれるか判断し、（ａ） 含まれると判断する場合は、前記第１フィールドに当該送信装置を示す識別子が格納されているか判断する前記ステップを実行し、（ｂ） 含まれないと判断する場合は、第１フィールドおよび第２フィールドを含み、当該第１フィールドには前記制御パケットにおける前記第１フィールドに格納された前記識別子を格納し、当該第２フィールドには前記識別子グループに当該送信装置の識別子を加えた更新識別子グループを格納した、第３の新たな制御パケットを、前記ネットワークにブロードキャスト送信するステップを実行する、ステップと、  （９）当該送信装置が、前記第３の新たな制御パケットのブロードキャスト送信が完了した後、前記受信するステップに戻るステップとをさらに有する方法を提供する。
【００２５】
以上、本発明の概要を、ネットワークに接続された送信装置がデータ・パケットの転送を行なう方法として説明したが、本発明はまた、これらの方法を実施することのできる装置（即ち、送信装置）としても捉えることができる。
さらに本発明は、当該送信装置の記憶装置等に格納され、当該送信装置にこれらの方法を実行させることができるプログラム（コンピュータ・プログラム、ソフトウェアと呼ぶこともある）としても捉えることができる。
【００２６】
尚、上記発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた発明となり得ることに留意されたい。
【発明の効果】
【００２７】
本発明によれば、ネットワークに接続された複数の送信装置からデータ転送を行う場合において、各送信装置におけるデータ送出のタイミングを調整することで、各送信装置からの転送データの重複による輻輳を回避し、各送信装置からの転送データのロスを防ぐことができる。
また、本発明によれば、データ送出のタイミングを調整するためのスーパバイザー的な特別な装置を必要とすることなく、各送信装置間での制御情報のやり取りのみによって、各送信装置が主体的判断でデータ送出のタイミングを調整することができる。
【発明を実施するための最良の形態】
【００２８】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、実施形態）について詳細に説明する。  なお、実施形態の説明の全体を通じて同じ要素には同じ番号を付している。
【００２９】
図３は、図１に示したＩＰネットワーク １３２上で複数の送信装置のそれぞれから、対応する各受信装置に対してデータ・パケットのバースト転送が定期的に行われるシステム環境において本発明を実施するのに好適な送信装置 ３００の詳細なハードウェア構成の典型的な例を示した図である。
【００３０】
送信装置 ３００の全体の制御は、プロセッサ ３０２（中央処理装置、ＣＰＵ、メイン・プロセッサ等と呼ぶこともある。）によって司られる。その直近にメモリ・コントローラ・ブリッジ ３０４（メモリ・ブリッジ、第１のブリッジ、ノース・ブリッジ等と呼ぶこともある。）が接続され、当該メモリ・コントローラ・ブリッジ ３０４にはメイン・メモリ ３０６（メモリ、主記憶等と呼ぶこともある。）およびグラフィックス・コントローラ ３０８が直接接続され、グラフィックス・コントローラ ３０８の先にはディスプレイ ３１０（ディスプレイ装置、表示装置と呼ぶこともある。）が接続される。
メモリ・コントローラ・ブリッジ ３０４からはまた、ＰＣＩローカル・バス ３１２等のバスを介して、Ｉ／Ｏコントローラ・ブリッジ ３１４（Ｉ／Ｏブリッジ、第２のブリッジ、サウス・ブリッジ等と呼ぶこともある。）が接続される。
【００３１】
当該Ｉ／Ｏコントローラ・ブリッジ ３１４にはストレージ・コントローラ ３１６（ＩＤＥコントローラ、ＳＣＳＩコントローラ、等）を介してハードディスク・ドライブ ３１８（ＨＤＤ、ハードディスク、ハードディスク・ストレージ、固定記憶装置等と呼ぶこともある。）、ＤＶＤ ３２０等の大容量記憶装置が接続され、ここに本発明を実施させるのに必要なオペレーティング・システム ３２２、およびオペレーティング・システムと協働してプロセッサ等に命令を与えて本発明を実施させるための、アプリケーション・ソフトウェア ２３２等のコンピュータ・プログラムを記憶する事ができる。  これらコンピュータ・プログラムはメイン・メモリ ３０６にロードされることによって実行される。また、これらコンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
【００３２】
Ｉ／Ｏコントローラ・ブリッジ ３１４にはまた、キーボード／マウス・コントローラ ３２４が接続され、キーボード ３２６やマウス ３２８のような入力デバイスからの入力を受ける。
Ｉ／Ｏコントローラ・ブリッジ ３１４にはこの他に、各種の外部入出力インターフェース３３０、３３２が接続される。
【００３３】
外部入出力インターフェース ３３２は、ネットワーク・アダプタであり、本発明に係るデータ・パケットを転送するＩＰネットワーク ３４０に接続され、転送すべきデータ・パケット（即ち、ＵＤＰパケット）を更にフラグメント・パケットに分割したり、分割されたフラグメント・パケットをＩＰネットワーク ３４０にバースト転送で送出する機能を持つ。
【００３４】
外部入出力インターフェース ３３０は、外部ソース信号入力アダプタであり、本発明に係る方法に従ってＩＰネットワーク ３４０に転送されるべきデータのソースとなるビデオ信号等を、送信装置 ３００の外部の装置（例えば、ビデオカメラ、ビデオ録画再生機等）から受信して、送信装置 ３００の内部で処理できるディジタル信号に変換する等の機能を持つ。
【００３５】
尚、大容量記憶装置に記憶され、その全体的な動作を司るオペレーティング・システム ３２２としては、マイクロソフト・コーポレーションが提供するＷｉｎｄｏｗｓ（登録商標）オペレーティング・システム、アップル・コンピュータ・インコーポレイテッドが提供するＭａｃＯＳ（商標）、Ｘ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍを備えるＵＮＩＸ（登録商標）系システムといった、ＧＵＩ（Graphical User Interface）をサポートするオペレーティング・システムを採用することができる。  ＵＮＩＸ（登録商標）系システムには、例えば、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するＡＩＸ（商標）あるいはＬｉｎｕｘ（商標）等がある。
【００３６】
以上のように、本発明を実施するのに好適な送信装置 ３００は、サーバ・コンピュータやクライアント・コンピュータ等を構成するような一般的なＰＣアーキテクチャに基づいた装置によって実現することができる。ただし、図３に示した送信装置 ３００を構成する各コンポーネントは例示であり、その全てのコンポーネントが本発明の必須構成要素となるわけではない。
また、送信装置として本発明の実施をすることができる同等の機能を有するものであれば、必ずしも一般的なＰＣアーキテクチャに基づいたものでなくてもよく、専用のハードウェア装置で構成する等、種々の変更形態による実施が可能であることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。
【００３７】
以上のシステム環境の下で、本発明の実施形態について以下に説明する。
先ず、本発明の第１の実施形態について説明する。
図４は、本発明の第１の実施形態に基づいて、ＩＰネットワークに接続された複数の送信装置からデータ・パケットのバースト転送が行なわれる概念を表す図である。また、図５は、各送信装置における本発明の第１の実施形態に係る処理手順の流れを示す図である。
【００３８】
各送信装置において転送すべきデータはまずＵＤＰパケット単位に分けられ、各ＵＤＰパケットは更に、ＭＴＵサイズの複数のフラグメント・パケットに分割され、１つのＵＤＰパケットに係る１群のフラグメント・パケットは、送信装置からバースト転送で連続して一度に送られる。各送信装置は、このバースト転送を、各ＵＤＰパケット分に相当する数の１群のフラグメント・パケット毎に繰り返し行なう。
【００３９】
図４は、ＩＰネットワーク ４００に接続された送信装置Ａ ４０２と送信装置Ｂ ４０４の２台だけが、実際にデータ・パケットをバースト転送する装置として稼動していることを表している。本発明は、これら送信装置Ａ ４０２と送信装置Ｂ ４０４のそれぞれにおいて実施可能である。即ち、たとえ物理的にＩＰネットワーク ４００に接続されている他の送信装置がある場合でも、その送信装置が実際にデータ・パケットをバースト転送する装置として稼動していない場合は、その送信装置においては本発明を実施しない。
【００４０】
各送信装置を含む、ＩＰネットワーク ４００に接続された全ての装置には、そのネットワーク内で一意に定まるＩＤ（識別子とも呼ぶ）が割り振られる。  このＩＤとして典型的なものにＩＰアドレスがあるが、対象とするネットワーク内で一意に定まるＩＤであればどんな形態のＩＤでも適用可能である。以後の説明では、各ＩＤは１０進数の数字で表すものとする。図４の例では、送信装置Ａ ４０２のＩＤは「１」、送信装置Ｂ ４０４のＩＤは「２」である。
【００４１】
ＩＰネットワーク ４００には、送信装置Ａ ４０２または送信装置Ｂ ４０４の何れかから、データ・パケットの各バースト転送の開始タイミングを調整するための制御パケット ４２０がブロードキャスト送信される。即ち、制御パケット ４２０は、ＩＰネットワーク ４００に接続された何れの装置も受信できるブロードキャスト・アドレスを宛先アドレスとしてＩＰネットワーク ４００に送出される。
【００４２】
図６は、ＩＰネットワーク ４００にブロードキャスト送信される制御パケット ４２０のフォーマットの例を示したものである。制御パケット ４２０は少なくとも第１フィールドと第２フィールドの２つの情報フィールドを備える。
第１フィールドには、ＩＰネットワーク ４００に接続されたいずれかの送信装置に割り振られた１つのＩＤが格納され、第２フィールドには、ＩＰネットワーク ４００に接続された１つまたは複数の送信装置のそれぞれに割り振られたＩＤからなるＩＤグループが格納される。
【００４３】
以下、図５に示した処理手順に従って、本発明の第１の実施形態に基づいて送信装置Ａ ４０２および送信装置Ｂ ４０４のそれぞれがデータ・パケットのバースト転送を行なう動作について説明する。
送信装置Ａにおいて、先ず、ＩＰネットワーク ４００にブロードキャスト送信される制御パケットが受信可能になるまで待ち（ステップＳ５００）、受信可能になったら当該制御パケットを受信する（ステップＳ５０２）。
【００４４】
次に、受信した制御パケットについて、その第１フィールドをチェックして、第１フィールドが示す値が、送信装置Ａ自身のＩＤ（即ち、「１」）であるかどうか判断する（ステップＳ５０４）。
この第１フィールドは、データ・パケットのバースト転送をこの次に行なわせたい送信装置を指し示すものとして意味付けられる。そうすると、第１フィールドが示す値が、送信装置Ａ自身のＩＤでない場合は、送信装置Ａは、受信した制御パケットによって、今回はデータ・パケットのバースト転送をすることができないと指示を受けたことになるので、そのまま何もしないで、更なる制御パケットが受信可能になるのを待つステップに戻る（ステップＳ５００）。
【００４５】
逆に、第１フィールドが示す値が、送信装置Ａ自身のＩＤである場合は、送信装置Ａは、受信した制御パケットによって、今回はデータ・パケットのバースト転送をすることができるとの指示を受けたことになる。よって次に、送信装置Ａにおいて実際にデータ・パケットの１回分のバースト転送が可能になるのを待つ（ステップＳ５０６）。バースト転送をする準備が整って、転送が可能になったら、実際にその１回分のバースト転送を行なう（ステップＳ５０８）。
【００４６】
１回分のバースト転送が完了したら、データ・パケットのバースト転送を次に行なわせたい送信装置を決めるために、受信した制御パケットの第２フィールドに格納されたＩＤグループの中から、送信装置ＡのＩＤの次に位置するＩＤを選択する。送信装置ＡのＩＤが当該ＩＤグループの最後部に位置する場合は、ラウンドロビン的に最初に戻り、当該ＩＤグループの最初に位置するＩＤを選択する（ステップＳ５１０）。ＩＤの選択のしかたは、この他の方法を採ることもできる。このようにして選択されたＩＤに係る送信装置が、バースト転送を次に行なわせたい送信装置である。
【００４７】
なお、何らかの理由で場合によっては、送信装置Ａにおいて、１回分のバースト転送がなかなか可能にならないことがある。このような場合に、いつまでもバースト転送が可能になるのを待っていたのでは、処理がこのステップで滞ってしまい、ＩＰネットワーク ４００に接続された送信装置全体のデータ転送効率を下げることになって好ましくない。よって、このような事態を避けるため、バースト転送が可能になるのを待ち始めてから所定の時間が経過しても依然バースト転送が可能になら無い場合には、タイムアウト処理としてバースト転送をスキップして、バースト転送を次に行なわせたい送信装置を選択するステップに進めるようにすることができる（ステップＳ５３０）。
【００４８】
前記選択をした後、送信装置Ａは、自ら前記の制御パケットのフォーマットに則って作成した第１の新たな制御パケットをＩＰネットワーク ４００にブロードキャスト送信する。この第１の新たな制御パケットの第１フィールドには、前記選択されたＩＤを格納し、第２フィールドには、前記受信した制御パケットの第２フィールドに示されたＩＤグループと同一の内容を格納する（ステップＳ５１２）。
【００４９】
この第１の新たな制御パケットをブロードキャスト送信した後、送信装置Ａは、更なる制御パケットが受信可能になるのを待つステップに戻る（ステップＳ５００）。
送信装置Ｂについても、これと全く同様の処理手順が実行される。
【００５０】
図７は、図４に示したデータ転送環境において、本発明の第１の実施形態に基づいて、送信装置Ａおよび送信装置Ｂのそれぞれが図５に示した処理手順を実行した結果、各送信装置が連携して、それぞれのバースト転送がどのようなタイミングで行なわれるかを表したものである。
【００５１】
送信装置Ａによる１回分のバースト転送 ７０２が終了すると、第１フィールドに送信装置ＢのＩＤである「２」を示して新たな制御パケット ７２２がＩＰネットワークにブロードキャスト送信される。
この制御パケット ７２２は、ブロードキャスト・アドレスを宛先として送信されるので送信装置Ａと送信装置Ｂの何れも受信することができる。送信装置Ａは、受信した制御パケット ７２２の第１フィールドが、自己のＩＤである「１」でないため、何もせずにすぐに別の制御パケットの受信を待つステップに戻る。
しかし、送信装置Ｂのほうは、受信した制御パケット ７２２の第１フィールドが、自己のＩＤである「２」を示すため、データ・パケットのバースト転送をするための一連の処理を実行する。
【００５２】
送信装置Ｂによる１回分のバースト転送 ７１２が終了すると、第２フィールドのＩＤグループ「１，２」の中から、ラウンドロビン的順序で、第１フィールドが示す「２」の次である「１」が選択され、この「１」を第１フィールドに示して新たな制御パケット ７２４がＩＰネットワークにブロードキャスト送信される。
今度は、この制御パケット ７２４を受信した送信装置Ｂは、その第１フィールドが、自己のＩＤである「２」でないため、何もせずにすぐに別の制御パケットの受信を待つステップに戻り、逆に、同じく制御パケット ７２４を受信した送信装置Ａは、その第１フィールドが、自己のＩＤである「１」を示すため、データ・パケットのバースト転送をするための一連の処理を実行する。
【００５３】
送信装置Ａによる１回分のバースト転送 ７０４が終了すると、第２フィールドのＩＤグループ「１，２」の中から、ラウンドロビン的順序で、第１フィールドが示す「１」の次である「２」が選択され、この「２」を第１フィールドに示して新たな制御パケット ７２６がＩＰネットワークにブロードキャスト送信される。
以下、同様の動作が繰り返される。
これにより、送信装置Ａからのバースト転送と送信装置Ｂからのバースト転送は互いに重複することなく行うことができる。
【００５４】
次に、本発明の第２の実施形態について説明する。
前記の第１の実施形態において、制御パケットを受信（ステップＳ５０２）してから、新たな制御パケットのブロードキャスト送信を開始するまでの間に、もし更なる制御パケットを受信していた場合は（ステップＳ５２２）、前記第１の新たな制御パケットをブロードキャスト送信することはせず、代わりに、この受信した更なる制御パケットの第２フィールドの内容を反映させた、第２の新たな制御パケットをブロードキャスト送信する。
即ち、この第２の新たな制御パケットの第１フィールドには、前記の選択されたＩＤを格納し、第２フィールドには、前記の受信した更なる制御パケットの第２フィールドに示されたＩＤグループと同一の内容を格納する（ステップＳ５２４）。
これは、受信した制御パケットについての一連の処理が完了しない間に、何れかの送信装置から別の制御パケットがブロードキャスト送信され、それを受信してしまう場合に対処した実施形態であり、後述の第３の実施形態を行なう上での前提となるものである。
【００５５】
次に、本発明の第３の実施形態について説明する。
図８は、本発明の第３の実施形態に基づいて、ＩＰネットワークに接続された複数の送信装置からのデータ・パケットのバースト転送が行なわれる概念を表す図である。また、図９は、各送信装置における本発明の第３の実施形態に係る処理手順の流れを示す図である。
【００５６】
図８は、ＩＰネットワーク ４００に接続された送信装置Ａ ４０２と送信装置Ｂ ４１２の２台だけが、実際にデータ・パケットをバースト転送する装置として稼動していたところへ、新たに送信装置Ｃ ８０２が受信装置Ｃ ８１２へデータ・パケットをバースト転送 ８２０する装置として稼動を開始したことを表している。本発明の第３の実施形態は、このように新たに稼動を開始した送信装置Ｃ ８０２に対しても適用することができるものである。
図８において、送信装置Ｃ ８１２のＩＤは「３」であるものとする。
【００５７】
以下、図９に示した処理手順に従って、本発明の第３の実施形態に基づいて送信装置Ｃ ８１２における動作について説明する。
先ず、第１の実施形態の場合と同様に、ＩＰネットワーク ４００にブロードキャスト送信される制御パケットが受信可能になるまで待ち（ステップＳ５００）、受信可能になったら当該制御パケットを受信する（ステップＳ５０２）。
【００５８】
次に、受信した制御パケットについて、その第１フィールドをチェックするより前に、第２フィールドをチェックして、第２フィールドが示すＩＤグループの中に、送信装置Ｃ自身のＩＤ（即ち、「３」）が含まれるかどうか判断する（ステップＳ９０２）。
この第２フィールドは、データ・パケットのバースト転送を行う送信装置として現在稼動しているものからなるグループを表すものとして意味付けられる。そうすると、第２フィールドが示すＩＤグループの中に、送信装置Ｃ自身のＩＤが含まれる場合は、制御パケットをブロードキャスト送信する他の送信装置から、送信装置Ｃもバースト転送を行う送信装置として現在稼動していると認識されていることを意味するので、その後の動作は、第１の実施形態の場合と同様になる。即ち、この場合は、次に第１フィールドをチェックして、第１フィールドが示す値が、送信装置Ｃ自身のＩＤであるかどうか判断する（ステップＳ５０４）。
【００５９】
逆に、第２フィールドが示すＩＤグループの中に、送信装置Ｃ自身のＩＤが含まれない場合は、送信装置Ｃは、データ・パケットをバースト転送する装置として稼動を開始したばかりであるため、他の送信装置から、送信装置Ｃがバースト転送を行う送信装置として稼動していると未だ認識されていないことを意味する。よってこの場合、今後ブロードキャスト送信する制御パケットにおける第２フィールドで示される、バースト転送を行う送信装置として稼動する送信装置のグループの情報を更新しなければならない。即ち、第２フィールドが示すＩＤグループに、送信装置Ｃ自身のＩＤを加えて、当該ＩＤグループを更新する（ステップＳ９０４）。
【００６０】
次に送信装置Ｃは、この更新したＩＤグループに基づいて自ら作成した第３の新たな制御パケットをＩＰネットワーク ４００にブロードキャスト送信する。この第３の新たな制御パケットの第１フィールドには、受信した制御パケットの第１フィールドに示されたＩＤと同一の内容を格納し、第２フィールドには、前記更新したＩＤグループを格納する（ステップＳ９０６）。
この第３の新たな制御パケットのブロードキャスト送信により、他の送信装置が当該制御パケットを受信したとき、その第２フィールドをチェックすることで、バースト転送を行う送信装置として稼動する送信装置のグループに送信装置Ｃも加わっていることを認識することができる。
【００６１】
この第３の新たな制御パケットをブロードキャスト送信した後、送信装置Ｃは、更なる制御パケットが受信可能になるのを待つステップに戻る（ステップＳ５００）。
なお、バースト転送を行う送信装置として既に稼動している送信装置ＡおよびＢについては、図９に示した処理手順が実行される場合、第２フィールドが示すＩＤグループの中に、自身の送信装置のＩＤが必ず含まれるので、その後の動作は、第１の実施形態の場合と同様になる。
【００６２】
図１０は、図８に示した、バースト転送を行なう送信装置として送信装置Ｃが新たに稼動する状況下において、本発明の第３の実施形態に基づいて、送信装置Ａ〜Ｃのそれぞれが図９に示した処理手順を実行した結果、各送信装置が連携して、それぞれのバースト転送がどのようなタイミングで行なわれるかを表したものである。
【００６３】
送信装置Ａから、第１フィールドに送信装置ＢのＩＤである「２」を示して新たな制御パケット １００２がＩＰネットワークにブロードキャスト送信される。制御パケット １００２を受信した送信装置Ｂは、その第１フィールドが、自己のＩＤである「２」を示すため、データ・パケットのバースト転送をするための一連の処理を実行する。
一方、送信装置Ｂからのバースト転送 １０５２が行なわれている最中である時刻 １０７０に、送信装置Ｃが、バースト転送を行なう送信装置として稼動を開始する。
【００６４】
送信装置Ｂによる１回分のバースト転送 １０５２が終了すると、第１フィールドが示すＩＤを「１」に変更して新たな制御パケット １００４がＩＰネットワークにブロードキャスト送信される。
この制御パケット １００４は送信装置ＡおよびＢによって受信されるが、同時に、新たに図９に示した動作手順の実行を開始した送信装置Ｃによっても受信される。
制御パケット １００４を受信した送信装置Ｃは、その第２フィールドに自身のＩＤである「３」が含まれていないと判断するので、第２フィールドに「３」を加えて更新し、新たな制御パケット １００６をＩＰネットワークにブロードキャスト送信する。
【００６５】
制御パケット １００４を受信した送信装置Ａは、その第１フィールドが、自己のＩＤである「１」を示すため、データ・パケットのバースト転送をするための一連の処理を実行する。通常であれば、バースト転送を終了した後、第１フィールドが示すＩＤを「２」に変更して新たな制御パケットをブロードキャスト送信することになる。しかし今回は、新たな制御パケットのブロードキャスト送信を行なう前に、送信装置Ｃによってブロードキャスト送信された制御パケット １００６を、更なる制御パケットとして受信している。よって、当該第３の実施形態に包含される前記の第２の実施形態の処理手順（即ち、ステップＳ５２４）に従って、受信した制御パケット １００６の第２フィールドが示す内容に基づいて、第２フィールドに示すＩＤグループを「１、２、３」と更新して、新たな制御パケット １００８をＩＰネットワークにブロードキャスト送信する。
【００６６】
制御パケット １００８を受信した送信装置Ｂは、その第１フィールドが、自己のＩＤである「２」を示すため、データ・パケットのバースト転送をするための一連の処理を実行する。１回分のバースト転送 １０５６が終了すると、送信装置Ｃの稼動によって更新された第２フィールドのＩＤグループ「１、２、３」の中から、ラウンドロビン的順序で、第１フィールドが示す「２」の次である「３」が選択され、この「３」を第１フィールドに示して新たな制御パケット １０１０がＩＰネットワークにブロードキャスト送信される。
【００６７】
制御パケット １０１０は送信装置Ａ〜Ｃの何れもが受信するが、送信装置Ｃのみが、その第１フィールドが自己のＩＤである「３」を示すため、データ・パケットのバースト転送をするための一連の処理を実行する。
以後は、当該第３の実施形態が包含する前記の第１の実施形態と同様の処理手順に従って、送信装置Ａ==>>送信装置Ｂ==>>送信装置Ｃ==>>送信装置Ａ==>>・・・・の順でサイクリックにバースト転送が繰り返され、これにより、送信装置Ａ、Ｂ、Ｃからのそれぞれのバースト転送を互いに重複することなく行うことができる。
即ち、当初は、送信装置Ａ==>>送信装置Ｂ==>>送信装置Ａ==>>・・・・の順でバースト転送が繰り返されていたところ、本発明の第３の実施形態に従えば、途中から新たに稼動を開始した送信装置Ｃがこれに割り込む形でサイクリック・ループがスムーズに更新される。
【００６８】
以上、本発明の第３の実施形態は、１つの送信装置が、バースト転送を行なう送信装置として新たに稼動する場合について対処するものである。この第３の実施形態の拡張形態である第４の実施形態によって、これまでバースト転送を行なう送信装置として稼動していたある送信装置が、バースト転送の繰り返しを終了して稼動を停止する場合に対処することができる。
【００６９】
第１の実施形態または第３の実施形態においては、実施対象の送信装置は、受信した制御パケットの第１フィールドをチェックして、第１フィールドが示す値が、当該送信装置自身のＩＤであるか判断する（ステップＳ５０４）。
第４の実施形態では、この第１フィールドが示す値が、当該送信装置自身のＩＤであると判断した場合に、バースト転送が可能になるのを待つ処理を開始する前に、当該送信装置が既に、当該送信装置で予定されていた全てのバースト転送を終了しているかどうか判断する（ステップＳ９１２）。
【００７０】
この、全てのバースト転送を終了しているかどうかの判断は、例えば、当該送信装置が予め所定の回数分のバースト転送を行うようにプログラミングすることで容易に実施することができる。また、当該送信装置のユーザによるコマンドにより、あるいは外部装置からの入力により、データ・パケットのバースト転送を終了する旨の指示を与える（即ち、当該送信装置内のあるステータスまたはフラグの値が変わる）場合は、その指示を当該送信装置のプログラムが（正確には、そのプログラムによって実行させられるＣＰＵ等が）モニターすることで実施することができる。
【００７１】
当該送信装置が、全てのバースト転送を終了していると判断した場合は、データ・パケットのバースト転送を次に行なわせたい送信装置を決めるために、受信した制御パケットの第２フィールドが示すＩＤグループの中から、ラウンドロビン的順序で当該送信装置自身のＩＤの次に位置するＩＤを選択する。（ステップＳ９１４）。
【００７２】
当該送信装置が、全てのバースト転送を終了していると判断した場合は、その送信装置を、バースト転送をサイクリックに行わせるグループに加えておく必要性はなくなる。よって、受信した制御パケットの第２フィールドが示すＩＤグループから当該送信装置自身のＩＤを取り除いてＩＤグループを更新し、この更新したＩＤグループに基づいて自ら作成した第４の新たな制御パケットをＩＰネットワーク ４００にブロードキャスト送信する。即ち、この第４の新たな制御パケットの第１フィールドには、前記選択されたＩＤを格納し、第２フィールドには、前記更新したＩＤグループを格納する（ステップＳ９１６）。
【００７３】
この第４の新たな制御パケットのブロードキャスト送信により、他の送信装置が当該制御パケットを受信したとき、その第２フィールドをチェックすることで、バースト転送を行う送信装置として稼動する送信装置のグループから送信装置Ｃが外れたことを認識することができる。
この第４の新たな制御パケットをブロードキャスト送信した後、当該送信装置における、本発明の第４の実施形態に係る処理手順は終了する。
【００７４】
最後に、本発明の第５の実施形態について説明する。
図１１は、各送信装置における本発明の第５の実施形態に係る処理手順の流れを示す図である。
以上の第１ないし４の実施形態においては、制御パケットが定期的にブロードキャスト送信されている状況を仮定したものである。しかし、一番最初に１つの送信装置が、バースト転送を行なう送信装置として稼動を開始する場合は、それまでにこのＩＰネットワークに制御パケットをブロードキャスト送信するものがいない。よって、制御パケットを待ち始めてから所定の時間内に制御パケットを受信しない場合は、タイムアウト処理として、制御パケットを待つのをやめ、データ・パケットのバースト転送をするための一連の処理を実行する。即ち、当該送信装置からのバースト転送が可能になるのを待ち（ステップ１１０２）、バースト転送が可能になったら、実際にその１回分のバースト転送を行なう（ステップＳ１１０４）。
【００７５】
バースト転送が終了した後、当該送信装置は、自ら作成した第５の新たな制御パケットを、最初に送信する制御パケットとしてＩＰネットワーク ４００にブロードキャスト送信する。当該送信装置のみが、ＩＰネットワーク ４００にバースト転送を行う装置として稼動しているので、この第５の新たな制御パケットの第１フィールドには、当該送信装置自身のＩＤを格納し、第２フィールドには、自身のＩＤのみからなるＩＤグループ（要素が１つだけのグループ）を格納する（ステップＳ１１０８）。
この第５の新たな制御パケットをブロードキャスト送信した後、当該送信装置は、更なる制御パケットが受信可能になるのを待つステップに戻る（ステップＳ５００）。
【００７６】
ブロードキャスト送信されたこの第５の新たな制御パケットは、当該送信装置自身によって受信される。この場合、制御パケットの第１フィールドには自身のＩＤが示されているため、データ・パケットのバースト転送をするための一連の処理が実行される。
バースト転送が終了した後、第２フィールドが示すＩＤグループの中から１つのＩＤが選択される。しかし当該ＩＤグループは自身のＩＤのみからなるものなので、結局再び、自身のＩＤが選択される（ステップＳ５１０）。よって、第１フィールドを自身のＩＤとし、第２フィールドを自身のＩＤのみからなるＩＤグループとして、再び新たな制御パケットがブロードキャスト送信される（ステップＳ５１２）。
【００７７】
このようにして、当該送信装置は、自分自身が送信する制御パケットに従って、バースト転送を繰り返すことができる。ここに、新たな送信装置が、バースト転送を行う装置として稼動を始めた場合は、前記第４の実施形態に基づいて、バースト転送をサイクリックに行うグループにこの新たな送信装置を割り込ませることができ、以後はこれら２つの送信装置間でバースト転送を交互に繰り返すことができる。
【００７８】
以上、本発明の第１ないし第５の実施形態に基づく処理手順について説明したが、これらの処理は、送信装置が備えるいくつかの機能ブロックの組み合わせによって実施することができる。よって、本発明の技術分野に係る当業者であれば、前記各処理手順を実行することができるいくつかの機能ブロックを備える装置（送信装置全体またはその一部）として本発明を捉えることができる。
【００７９】
図１２は、本発明の実施をすることができる、複数の機能ブロックからなる装置の一例を示したものである。装置 １２００は、図３の送信装置 ３００の一部と捉えることもできるし、送信装置 ３００の全体と考えることもできる。典型的には、装置 １２００は、送信装置 ３００の中の外部入出力インターフェース ３３２を構成するネットワーク・アダプタ等の装置とすることができる。
【００８０】
装置 １２００は、受信部 １２０２、第１判断部 １２０４、データ・パケット送信部 １２０６、選択部 １２０８、および制御パケット送信部 １２１０を少なくとも備えた装置として構成することができる。
受信部 １２０２は、ＩＰネットワーク ４００にブロードキャスト送信される制御パケットを待って、これを受信する機能を有する。前記のように、この制御パケットは、少なくとも第１フィールドと第２フィールドの２つの情報フィールドを備える。第１フィールドには、ＩＰネットワーク ４００に接続されたいずれかの送信装置に割り振られた１つのＩＤが格納され、第２フィールドには、ＩＰネットワーク ４００に接続された１つまたは複数の送信装置のそれぞれに割り振られたＩＤからなるＩＤグループが格納される。
【００８１】
第１判断部 １２０４は、受信部 １２０２により受信された制御パケット １２３０における第１フィールドの内容 １２２０と、送信装置 ３００を示すＩＤ １２２４とを比較して、第１フィールドに送信装置 ３００を示すＩＤが格納されているか判断する。
データ・パケット送信部 １２０６は、第１フィールドに送信装置 ３００を示すＩＤが格納されているとの判断 １２４０に応答して、送信装置 ３００から、対応する受信装置に向けてデータ・パケット １２３４をバースト転送する。
【００８２】
選択部 １２０８は、データ・パケット送信部 １２０６において１回分のバースト転送が完了したこと １２４２に応答して、受信部 １２０２により受信された制御パケット １２３０における第２フィールドの内容 １２２２であるＩＤグループを参照して、そのグループの中から１つのＩＤを、ラウンドロビン等の所定の基準に従って選択する。
制御パケット送信部 １２１０は、第１フィールドおよび第２フィールドを少なくとも含む第１の新たな制御パケット １２３２を生成し、ＩＰネットワーク ４００にブロードキャスト送信する。その第１フィールドには、選択部 １２０８が選択したＩＤ １２４４を格納する。その第２フィールドには、受信部 １２０２が受信した制御パケットのうち最も直近に受信された制御パケットにおける第２フィールドの内容 １２２２であるＩＤグループを参照して、その同じＩＤグループを格納する。
【００８３】
装置 １２００はまた、第２判断部 １２１２をさらに備えた装置として構成することもできる。
この第２判断部 １２１２は、受信部 １２０２により受信された制御パケット １２３０における第２フィールドの内容 １２２０であるＩＤグループと、送信装置 ３００を示すＩＤとを比較して、第２フィールドに格納されたＩＤグループに送信装置 ３００を示すＩＤが含まれるか判断する。
この場合、第１判断部 １２０４は、第２判断部 １２１２が、第２フィールドに格納されたＩＤグループに送信装置 ３００を示すＩＤが含まれると判断した場合 １２４６にのみ、第１フィールドに送信装置 ３００を示すＩＤが格納されているか判断する。
【００８４】
また、制御パケット送信部 １２１０は、第２判断部 １２１２が、第２フィールドに格納されたＩＤグループに送信装置 ３００を示すＩＤが含まれないと判断した場合 １２４８は、前記の第１の新たな制御パケットはブロードキャスト送信せず、代わりに、第１フィールドおよび第２フィールドを少なくとも含む第２の新たな制御パケット １２３２を生成し、ＩＰネットワーク ４００にブロードキャスト送信する。その第１フィールドには、受信部 １２０２が受信した制御パケット １２３０の第１フィールドの内容 １２２０であるＩＤを参照して、その同じＩＤを格納し、その第２フィールドには、受信部 １２０２が受信した制御パケット １２３０の第２フィールドの内容 １２２２であるＩＤグループに、送信装置 ３００のＩＤ １２２４を加えて更新したＩＤグループを格納する。
【００８５】
さらにまた、本発明の第１ないし第５の実施形態に基づく処理手順は、図３の送信装置 ３００のハード・ディスク・ドライブ ３１８等に記憶されたアプリケーション・ソフトウェア３２４またはオペレーティング・システム３２２等のコンピュータ・プログラムが、送信装置 ３００に含まれるプロセッサ３０２等の各種コンポーネントに実行させることができる。即ち、本発明を、これらの処理手順を送信装置 ３００に実行させるようなコンピュータ・プログラムとして捉えることが可能である。
【００８６】
以上、本発明をいくつかの実施形態を用いて説明したが、本発明はさらに多くの異なる態様で実施することが可能であり、上記実施形態は特許請求の範囲にかかる発明を限定するものではない。  即ち、上記実施形態に多様な変更または改良を加えることが可能であることが当業者に明らかである。
またその様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
さらに、上記実施形態の中で説明されている特徴の組み合わせの全てが、発明の解決手段に必須とは限らないことにも留意されたい。
【図面の簡単な説明】
【００８７】
【図１】同一ネットワーク上で複数の送信装置から複数の転送ストリームが定期的にバースト転送される環境を示す。
【図２】図１のデータ転送環境において、各送信装置から転送されるデータのデータ・レートの変化を示す。
【図３】本発明を実施するのに好適な送信装置の詳細なハードウェア構成の典型的な例を示す。
【図４】本発明の第１および第２の実施形態に基づいて、ＩＰネットワークに接続された複数の送信装置からのデータ・パケットのバースト転送が行なわれる概念を表す。
【図５】各送信装置における本発明の第１および第２の実施形態に係る処理手順の流れを示す。
【図６】ＩＰネットワークにブロードキャスト送信される制御パケットのフォーマットの例を示す。
【図７】本発明の第１の実施形態に基づいて、各送信装置が連携して、それぞれのバースト転送がどのようなタイミングで行なわれるかを表す。
【図８】本発明の第３および第４の実施形態に基づいて、ＩＰネットワークに接続された複数の送信装置からのデータ・パケットのバースト転送が行なわれる概念を表す。
【図９】各送信装置における本発明の第３および第４の実施形態に係る処理手順の流れを示す。
【図１０】本発明の第３の実施形態に基づいて、各送信装置が連携して、それぞれのバースト転送がどのようなタイミングで行なわれるかを表す。
【図１１】各送信装置における本発明の第５の実施形態に係る処理手順の流れを示す。
【図１２】本発明の実施をすることができる、複数の機能ブロックからなる装置の一例を示す。
【図１】
0004988487.tif 000002
【図２】
0004988487.tif 000003
【図３】
0004988487.tif 000004
【図４】
0004988487.tif 000005
【図５】
0004988487.tif 000006
【図６】
0004988487.tif 000007
【図７】
0004988487.tif 000008
【図８】
0004988487.tif 000009
【図９】
0004988487.tif 000010
【図１０】
0004988487.tif 000011
【図１１】
0004988487.tif 000012
【図１２】
0004988487.tif 000013