Traitement en cours

Veuillez attendre...

Paramétrages

Paramétrages

1. WO2005067261 - PROCEDE DE COMMUNICATION

Note: Texte fondé sur des processus automatiques de reconnaissance optique de caractères. Seule la version PDF a une valeur juridique
明 細書

通信方法

技術分野

[0001] 本発明はフローの存在する 2ノード間のパケット通信に関し、特に再送制御に関す る。

背景技術

[0002] インターネット上を経由して 2ノードがパケット通信する場合には、パケット損失、パ ケット順序ミスが発生する。パケット損失に対処する方法として、パケットの再送方法 の技術が提案されている (例えば、特許文献 1)。特許文献 1の技術は、送信ノードと 受信ノードとの間で送信パケットのフロー制御及び順序制御を行うが、受信ノードで パケット損失による順序待ちが発生した場合、一定時間内に順序待ち対象のパケット を受信しなかった場合、送信ノードに対して順序待ち対象のパケットの再送要求を通 知するものである。

[0003] また、 2ノード間に複数のフローが存在する場合には、フローそれぞれを単位として 、例えば TCP ("Transmission Control Protocol", rfc793)などを利用して、ノケットの 再送や順序制御を行ってレ、た。

[0004] 以下に、従来技術による順序制御やパケット損失の検出による再送制御を、図 19 を用いて説明する。

[0005] 図 19は、 3本のフロー 1、フロー 2、フロー 3からのパケットを一つの経路を介して送 信する場合におけるパケット損失の検出を示している。

[0006] 図 19によれば、フロー 1からはパケット 1-1、パケット 1-2及びパケット 1-3を受信し、 フロー 2からはパケット 2-1、パケット 2- 2及びパケット 2- 3を受信し、フロー 3からはパケ ット 3-1、パケット 3-2及びパケット 3-3を受信している。尚、各パケットには、フローと各 フローのパケットの順番(シーケンス番号)とを示す識別情報が付されている。例えば 、パケット 2-1は、フロー 2において 2番目の順番であることを示している。

[0007] 受信したパケットは一つの経路 4に送信するにあたって、各フローより順番にひとつ ずつのパケットを選択し、経路 4に送信している。すなわち、パケット 1-1、パケット 2-1 、パケット 3-1、 · · ·、パケット 1-3、パケット 2-3、パケット 3-3の順番で経路 4に送信され る。受信側では、経路 4から受信されたパケットを、パケットの識別情報に基づいて、 フロー毎に並べなおす順序制御が行われると共に、損失したパケットを検出して再送 の要求(再生制御)が行われてレ、た。

特許文献 1:特開平 9 - 46375号公報

発明の開示

発明が解決しょうとする課題

[0008] し力しながら、従来技術では、多数のパケットを送受信するにも関わらず、順序制御 をしながらパケット損失の検出を行う為、パケット損失の検出が遅れるとレ、う課題があ つた。

[0009] 例えば、図 19で示される従来技術において、経路 4上でパケット 2-2の損失が発生 した場合を考えると、受信側では、パケットが送信された順序で受信するので、バケツ ト 1-1、パケット 2-1、パケット 3-1、■·■、パケット 1-3、パケット 2- 3、パケット 3- 3の順番で パケットを受信することになる。損失したパケットはパケット 2-2であるので、パケット 1-2 の次に受信されるパケットはパケット 3-2である。

[0010] この時点では、パケット 2-2が損失したことを検出することは出来ず、損失したバケツ ト 2-2と同じフローの次のパケット 2-3が受信されて順序制御が行われ、パケット 2-1と 、パケット 2-3とが検出され、初めてパケット 2-2の損失が検出される。すなわち、図 19 の例においては、損失したパケット 2-2の 3パケット先であるパケット 2-3の受信及び順 序制御を待たなければ、パケット 2-2の損失を検出することが出来なかった。

[0011] そこで、本発明は上記課題に鑑みて発明されたものであって、その目的は上記課 題を解決し、従来のフロー毎の再送制御に比較して早期のパケット損失の検出が可 能となる技術を提供することにある。

[0012] また、本発明の目的は上記課題を解決し、従来のパケット損失の検出に比較して 早期のパケット損失の検出が可能となる技術を提供することにある。

[0013] また、本発明の目的は、順序制御の為の識別情報とは別に、パケットの損失検出及 び再生制御の為の識別情報をパケットに付与し、順序制御とパケット損失の検出及 び再生制御とを独立に行うことにより、早期にパケットを検出して再送の制御が行える

技術を提供することにある。

課題を解決するための手段

[0014] 上記課題を解決する第 1の発明は、送信ノードと、受信ノードとの間の通信方法で あって、

送信ノードにおいて、

順序制御に関する第 1の基準に基づいた 1以上のフローを有する第 1のフロー群 と、再送制御に関する第 2の基準に基づいた 1以上のフローを有する第 2のフロー群 とを設け、前記第 1のフロー群に属する各々のフローに一意の第 1の識別子を割り当 て、前記第 2のフロー群に属する各々のフローに一意の第 2の識別子を割り当て、 入力されたパケットを、前記第 1の基準に基づいて前記第 1のフロー群に属する 1 以上のフローに分類し、かつ、前記第 2の基準に基づいて前記第 2のフロー群に属 する 1以上のフローに分類し、前記パケットに、前記第 1の識別子と、前記第 1の識別 子で特定される第 1のフロー内で一意の第 1のシーケンス番号と、前記第 2の識別子 と、前記第 2の識別子で特定されるフロー内で一意の第 2のシーケンス番号とを付与 して送信し、

受信ノードにおいて、

受信した全てのパケットを第 2の識別子に基づいて分類し、各第 2のフローに関し て、受信していない第 2のシーケンス番号のパケットをチェックし、送信ノード対してこ れらの再送を要求し、

送信ノードにおいて、

受信ノードからの要求された第 2のフローの第 2のシーケンス番号のパケットを再 送し、

受信ノードにおいて、

受信した全てのパケットを第 1の識別子に基づいて分類し、各第 1のフローに関し て、第 1のシーケンス番号に基づいてパケットを順番に並べ、順番になっているパケ ットから受信処理を行うことを特徴とする。

[0015] 上記課題を解決する第 2の発明は、上記第 1の発明において、送信ノードと受信ノ ードは一つの通信経路で結ばれ、送信ノードの第 2のフロー群は単一のフローで構 成され、単一の通信経路を利用してパケットを送信することを特徴とする。

[0016] 上記課題を解決する第 3の発明は、上記第 1の発明において、送信ノードは、パ ケットを送信する通信経路が複数ある場合、パケット送信のスケジュールに関する第 3の基準に基づいて、パケットを送信する通信経路を選択することを特徴とする。

[0017] 上記課題を解決する第 4の発明は、上記第 3の発明において、送信ノードと受信ノ 一ドとは複数の通信経路で結ばれ、送信ノードは、第 2の基準として、送信するバケツ トの通過する通信経路に対応して一意のフローに分類し、第 3の基準として、再送時 に初回送信時とは独立に通信経路を選択することを特徴とする。

[0018] 上記課題を解決する第 5の発明は、上記第 3の発明において、送信ノードと受信ノ 一ドとは複数の通信経路で結ばれ、送信ノードは、第 2の基準として、送信するバケツ トの通過する通信経路よりも少ない数のフローに分類し、第 3の基準として、再送時に 初回送信時とは独立に通信経路を選択することを特徴とする。

[0019] 上記課題を解決する第 6の発明は、上記第 1から第 3のいずれかの発明において、 送信ノードは他の通信ノードの送信するパケットを転送する送信側転送ノードであり、 受信ノードは他の通信ノードの受信するパケットを転送する受信側転送ノードである ことを特徴とする。

[0020] 上記課題を解決する第 7の発明は、上記第 6の発明において、送信ノードと受信ノ ードは一つの通信経路で結ばれ、送信ノードの第 2のフロー群は、単一のフローで構 成され、単一の通信経路を利用してパケットを送信することを特徴とする。

[0021] 上記課題を解決する第 8の発明は、上記第 6の発明において、送信ノードと受信ノ 一ドとは複数の通信経路で結ばれ、送信ノードは、第 2の基準として、送信するバケツ トの通過する通信経路に対応して一意のフローに分類し、第 3の基準として、再送時 に初回送信時とは独立に通信経路を選択することを特徴とする。

[0022] 上記課題を解決する第 9の発明は、上記第 6の発明において、送信ノードと受信ノ 一ドとは複数の通信経路で結ばれ、送信ノードは、第 2の基準として、送信するバケツ トの通過する通信経路よりも少ない数のフローに分類し、第 3の基準として、再送時に 初回送信時とは独立に通信経路を選択することを特徴とする。

[0023] 上記課題を解決する第 10の発明は、上記第 3の発明において、送信ノードの第 3 の基準として、送信側ノードにおいて入力されるパケットごとに、選択可能な各経路の 経路状態情報と、前記経路状態情報が有効となる時刻又は送信済みパケットの識別 情報と、前記経路状態情報が有効となる時刻以降の送信履歴又は送信済みパケット の識別情報で特定されるパケットの送信以降の送信履歴とに基づいて、経路の選択 または選択優先度を行うことを特徴とする。

[0024] 上記課題を解決する第 11の発明は、上記第 10の発明において、前記経路状態情 報は、経路の遅延を含むことを特徴とする。

[0025] 上記課題を解決する第 12の発明は、上記第 10又は第 11の発明において、前記 経路状態情報は、経路の通信速度を含むことを特徴とする。

[0026] 上記課題を解決する第 13の発明は、上記第 10から第 12のいずれかの発明にお いて、前記経路状態情報は、経路の負荷を含むことを特徴とする。

[0027] 上記課題を解決する第 14の発明は、上記第 10から第 13のいずれかの発明にお いて、経路の選択又は選択優先度の更新に際し、各経路の経路状態情報が更新さ れると、更新以前に送信されたパケットに関する送信コスト計算結果に修正を加える ことを特徴とする。

[0028] 上記課題を解決する第 15の発明は、上記第 10から第 14のいずれかの発明にお いて、各経路の送信コスト計算結果の修正に際し、最新の経路状態情報が有効とな る最初の送信済パケット以前の履歴を破棄することを特徴とする。

[0029] 上記課題を解決する第 16の発明は、上記第 10から第 15のいずれかの発明にお いて、パケットを送信する経路として、受信側ノードでの受信完了時刻の推定値が最 も早レヽ経路を選択することを特徴とする。

[0030] 上記課題を解決する第 17の発明は、上記第 10から第 16のいずれかの発明にお いて、パケットを送信する経路として、受信側ノードで特定時刻までに受信完了でき るデータ量の推定値が最大の経路を選択することを特徴とする。

[0031] 上記課題を解決する第 18の発明は、上記第 10から第 17のいずれかの発明にお いて、各経路につき、推測される現在の経路状態に応じてデータの送信を中断する ことを特徴とする。

[0032] 上記課題を解決する第 19の発明は、上記第 18の発明において、前記データ送信 中断の基準が、推定受信完了時刻が特定の値以上であることを特徴とする。

[0033] 上記課題を解決する第 20の発明は、上記第 10から第 19のいずれかの発明にお いて、経路選択又は送信中断の判断を、送信データの属性ごとに異なるポリシーに より行うことを特徴とする。

[0034] 上記課題を解決する第 21の発明は、パケットを送信する送信部とパケットを受信す る受信部とから構成され、パケットの再送制御と順序制御とを独立に行うノードであつ て、

前記送信部は、

順序制御に関する第 1の基準に基づいた第 1のフロー群の各フローに一意に割り 当てられた第 1の識別子と、前記第 1のフロー群に属する各々のフロー内で一意の第 1のシーケンス番号と、再送制御に関する第 2の基準に基づいた第 2のフロー群の各 フローに一意に割り当てられた第 2の識別子と、前記第 2のフロー群に属する各々の フロー内で一意の第 2のシーケンス番号とを、送信するパケットに付加して送信する 手段と、

パケットを受信したノードから再送を要求されたパケットを、前記第 2の識別子及び 第 2のシーケンス番号から特定し、そのパケットを再送する手段と

を有し、

前記受信部は、

受信した全てのパケットを前記第 2の識別子に基づいて分類し、各第 2のフローに 関して、受信していない第 2のシーケンス番号のパケットをチェックし、その第 2の識 別子と第 2のシーケンス番号とを、パケットに送信したノードに対して送信して再送を 要求する手段と、

受信した全てのパケットを前記第 1の識別子に基づいて分類し、各第 1のフローに 関して、前記第 1のシーケンス番号に基づいてパケットを順番に並べ、順番になって レ、るパケットから受信処理を行う手段と

を有することを特徴とする。

[0035] 上記課題を解決する第 22の発明は、上記第 21の発明において、ノード間は一つ の通信経路で結ばれ、第 2のフロー群は単一のフローで構成され、単一の通信経路 を利用してパケットを送信することを特徴とする。

[0036] 上記課題を解決する第 23の発明は、上記第 21の発明において、パケットを送信す る通信経路が複数ある場合、パケット送信のスケジュールに関する第 3の基準に基づ レ、て、パケットを送信する通信経路を選択する手段を有することを特徴とする。

[0037] 上記課題を解決する第 24の発明は、上記第 23の発明において、ノード間は複数 の通信経路で結ばれ、第 2の基準として、送信するパケットの通過する通信経路に対 応して一意のフローに分類し、第 3の基準として、再送時に初回送信時とは独立に通 信経路を選択することを特徴とする。

[0038] 上記課題を解決する第 25の発明は、上記第 23の発明において、ノード間は複数 の通信経路で結ばれ、第 2の基準として、送信するパケットの通過する通信経路より も少ない数のフローに分類し、第 3の基準として、再送時に初回送信時とは独立に通 信経路を選択することを特徴とする。

[0039] 上記課題を解決する第 26の発明は、上記第 21から第 23のいずれかの発明にお いて、ノードの送信部は他の通信ノードの送信するパケットを転送する送信側転送ノ ードであり、ノードの受信部は他の通信ノードの受信するパケットを転送する受信側 転送ノードであることを特徴とする。

[0040] 上記課題を解決する第 27の発明は、上記第 26の発明において、ノード間は一つ の通信経路で結ばれ、第 2のフロー群は、単一のフローで構成され、単一の通信経 路を利用してパケットを送信することを特徴とする。

[0041] 上記課題を解決する第 28の発明は、上記第 26の発明において、ノード間は複数 の通信経路で結ばれ、第 2の基準として、送信するパケットの通過する通信経路に対 応して一意のフローに分類し、第 3の基準として、再送時に初回送信時とは独立に通 信経路を選択することを特徴とする。

[0042] 上記課題を解決する第 29の発明は、上記第 26の発明において、ノード間は複数 の通信経路で結ばれ、第 2の基準として、送信するパケットの通過する通信経路より も少ない数のフローに分類し、第 3の基準として、再送時に初回送信時とは独立に通 信経路を選択することを特徴とする。

[0043] 上記課題を解決する第 30の発明は、上記第 23の発明において、前記通信経路を 選択する手段は、第 3の基準として、ノードにおいて入力されるパケットごとに、選択 可能な各経路の経路状態情報と、前記経路状態情報が有効となる時刻又は送信済 みパケットの識別情報と、前記経路状態情報が有効となる時刻以降の送信履歴又は 送信済みパケットの識別情報で特定されるパケットの送信以降の送信履歴とに基づ レ、て、経路の選択または選択優先度を行うことを特徴とする。

[0044] 上記課題を解決する第 31の発明は、上記第 30の発明において、前記経路状態情 報は、経路の遅延を含むことを特徴とする。

[0045] 上記課題を解決する第 32の発明は、上記第 31の発明において、前記経路状態情 報は、経路の通信速度を含むことを特徴とする。

[0046] 上記課題を解決する第 33の発明は、上記第 30から第 32のいずれかの発明にお いて、前記経路状態情報は、経路の負荷を含むことを特徴とする。

[0047] 上記課題を解決する第 34の発明は、上記第 30から第 33のいずれかの発明にお いて、前記通信経路を選択する手段は、経路の選択又は選択優先度の更新に際し 、各経路の経路状態情報が更新されると、更新以前に送信されたパケットに関する 送信コスト計算結果に修正を加えることを特徴とする。

[0048] 上記課題を解決する第 35の発明は、上記第 30から第 34のいずれかの発明にお いて、前記通信経路を選択する手段は、各経路の送信コスト計算結果の修正に際し 、最新の経路状態情報が有効となる最初の送信済パケット以前の履歴を破棄するこ とを特徴とする。

[0049] 上記課題を解決する第 36の発明は、上記第 30から第 35のいずれかの発明にお いて、前記通信経路を選択する手段は、パケットを送信する経路として、受信側ノー ドでの受信完了時刻の推定値が最も早い経路を選択することを特徴とする。

[0050] 上記課題を解決する第 37の発明は、上記第 30から第 36のいずれかの発明にお いて、前記通信経路を選択する手段は、パケットを送信する経路として、受信側ノー ドで特定時刻までに受信完了できるデータ量の推定値が最大の経路を選択すること を特徴とする。

[0051] 上記課題を解決する第 38の発明は、上記第 30から第 37のいずれかの発明にお いて、前記通信経路を選択する手段は、各経路につき、推測される現在の経路状態 に応じてデータの送信を中断することを特徴とする。

[0052] 上記課題を解決する第 39の発明は、上記第 38の発明において、前記データ送信 中断の基準が、推定受信完了時刻が特定の値以上であることを特徴とする。

[0053] 上記課題を解決する第 40の発明は、上記第 30から第 39のいずれかの発明にお いて、前記通信経路を選択する手段は、経路選択又は送信中断の判断を、送信デ ータの属性ごとに異なるポリシーにより行うことを特徴とする。

[0054] 上記課題を解決する第 41の発明は、パケットの再送制御と順序制御とを独立に行 うノードの制御プログラムであって、

前記制御プログラムは前記ノードを、

順序制御に関する第 1の基準に基づいた第 1のフロー群の各フローに一意に割り 当てられた第 1の識別子と、前記第 1のフロー群に属する各々のフロー内で一意の第 1のシーケンス番号と、再送制御に関する第 2の基準に基づいた第 2のフロー群の各 フローに一意に割り当てられた第 2の識別子と、前記第 2のフロー群に属する各々の フロー内で一意の第 2のシーケンス番号とを、送信するパケットに付加して送信する 手段と、

パケットを受信したノードから再送を要求されたパケットを、前記第 2の識別子及び 第 2のシーケンス番号から特定し、そのパケットを再送する手段と、

受信した全てのパケットを前記第 2の識別子に基づいて分類し、各第 2のフローに 関して、受信していない第 2のシーケンス番号のパケットをチェックし、その第 2の識 別子と第 2のシーケンス番号とを、パケットに送信したノードに対して送信して再送を 要求する手段と、

受信した全てのパケットを前記第 1の識別子に基づいて分類し、各第 1のフローに 関して、前記第 1のシーケンス番号に基づいてパケットを順番に並べ、順番になって レ、るパケットから受信処理を行う手段と

して機能させることを特徴とする。

[0055] 上記課題を解決する第 42の発明は、上記第 41の発明において、ノード間は一つ の通信経路で結ばれ、第 2のフロー群は単一のフローで構成され、単一の通信経路 を利用してパケットを送信することを特徴とする。

[0056] 上記課題を解決する第 43の発明は、上記第 41の発明において、前記制御プログ ラムは前記ノードを、パケットを送信する通信経路が複数ある場合、パケット送信のス ケジュールに関する第 3の基準に基づレ、て、パケットを送信する通信経路を選択する 手段として更に機能させることを特徴とする。

[0057] 上記課題を解決する第 44の発明は、上記第 43の発明において、ノード間は複数 の通信経路で結ばれ、第 2の基準として、送信するパケットの通過する通信経路に対 応して一意のフローに分類し、第 3の基準として、再送時に初回送信時とは独立に通 信経路を選択することを特徴とする。

[0058] 上記課題を解決する第 45の発明は、上記第 43の発明において、ノード間は複数 の通信経路で結ばれ、第 2の基準として、送信するパケットの通過する通信経路より も少ない数のフローに分類し、第 3の基準として、再送時に初回送信時とは独立に通 信経路を選択することを特徴とする。

[0059] 上記課題を解決する第 46の発明は、上記第 41から第 43のいずれかの発明にお いて、ノードの送信側は他の通信ノードの送信するパケットを転送する送信側転送ノ ードであり、ノードの受信側は他の通信ノードの受信するパケットを転送する受信側 転送ノードであることを特徴とする。

[0060] 上記課題を解決する第 47の発明は、上記第 46の発明において、ノード間は一つ の通信経路で結ばれ、第 2のフロー群は、単一のフローで構成され、単一の通信経 路を利用してパケットを送信することを特徴とする。

[0061] 上記課題を解決する第 48の発明は、上記第 46の発明において、ノード間は複数 の通信経路で結ばれ、第 2の基準として、送信するパケットの通過する通信経路に対 応して一意のフローに分類し、第 3の基準として、再送時に初回送信時とは独立に通 信経路を選択することを特徴とする。

[0062] 上記課題を解決する第 49の発明は、上記第 46の発明において、ノード間は複数 の通信経路で結ばれ、第 2の基準として、送信するパケットの通過する通信経路より も少ない数のフローに分類し、第 3の基準として、再送時に初回送信時とは独立に通 信経路を選択することを特徴とする。

[0063] 上記課題を解決する第 50の発明は、上記第 43の発明において、制御プログラム は、前記通信経路を選択する手段を、ノードにおいて入力されるパケットごとに、選択 可能な各経路の経路状態情報と、前記経路状態情報が有効となる時刻又は送信済 みパケットの識別情報と、前記経路状態情報が有効となる時刻以降の送信履歴又は 送信済みパケットの識別情報で特定されるパケットの送信以降の送信履歴とに基づ いて、経路の選択または選択優先度を行うように機能させることを特徴とする。

[0064] 上記課題を解決する第 51の発明は、上記第 50の発明において、前記経路状態情 報は、経路の遅延を含むことを特徴とする。

[0065] 上記課題を解決する第 52の発明は、上記第 50又は第 51の発明において、前記 経路状態情報は、経路の通信速度を含むことを特徴とする。

[0066] 上記課題を解決する第 53の発明は、上記第 50から第 52のいずれかの発明にお いて、前記経路状態情報は、経路の負荷を含むことを特徴とする。

[0067] 上記課題を解決する第 54の発明は、上記第 50から第 53のいずれかの発明にお いて、制御プログラムは、前記通信経路を選択する手段を、経路の選択又は選択優 先度の更新に際し、各経路の経路状態情報が更新されると、更新以前に送信された パケットに関する送信コスト計算結果に修正を加えるように機能させることを特徴とす る。

[0068] 上記課題を解決する第 55の発明は、上記第 54の発明において、制御プログラム は、前記通信経路を選択する手段を、各経路の送信コスト計算結果の修正に際し、 最新の経路状態情報が有効となる最初の送信済パケット以前の履歴を破棄するよう に機能させることを特徴とする。

[0069] 上記課題を解決する第 56の発明は、上記第 50から第 55のいずれかの発明にお いて、制御プログラムは、前記通信経路を選択する手段を、パケットを送信する経路 として、受信側ノードでの受信完了時刻の推定値が最も早い経路を選択するように機 能させることを特徴とする。

[0070] 上記課題を解決する第 57の発明は、上記第 50から第 56のいずれかの発明にお いて、の制御プログラムは、前記通信経路を選択する手段を、パケットを送信する経 路として、受信側ノードで特定時刻までに受信完了できるデータ量の推定値が最大 の経路を選択するように機能させることを特徴とする。

[0071] 上記課題を解決する第 58の発明は、上記第 50から第 57のいずれかの発明にお いて、の制御プログラムは、前記通信経路を選択する手段を、各経路につき、推測さ れる現在の経路状態に応じてデータの送信を中断するように機能させることを特徴と する。

[0072] 上記課題を解決する第 59の発明は、上記第 58のいずれかの発明において、前記 データ送信中断の基準が、推定受信完了時刻が特定の値以上であることを特徴とす る。

[0073] 上記課題を解決する第 60の発明は、上記第 50から第 59のいずれかの発明にお いて、制御プログラムは、前記通信経路を選択する手段を、経路選択又は送信中断 の判断を、送信データの属性ごとに異なるポリシーにより行うように機能させることを 特徴とする。

[0074] 上記課題を解決する第 61の発明は、通信方法であって、送信パケットに、順序制 御のための情報とは別に、送信フローを識別する識別子と、前記送信フロー内にお けるシーケンス番号とを付与し、受信側で前記識別子と前記シーケンス番号とに基づ いて、送信フローごとに再送制御を行うことを特徴とする。

[0075] 上記課題を解決する第 62の発明は、通信方法であって、送信パケットに、順序制 御のための情報とは別に、送信フローを識別する識別子と、前記送信フロー内にお けるシーケンス番号とを付与し、受信側で前記識別子と前記シーケンス番号とに基づ いて、送信フローごとにパケットの損失を検出することを特徴とする。

[0076] 上記課題を解決する第 63の発明は、ノードであって、

順序制御に関する第 1の基準に基づいた第 1のフロー群の各フローに一意に割り 当てられた第 1の識別子と、前記第 1のフロー群に属する各々のフロー内で一意の第 1のシーケンス番号と、再送制御に関する第 2の基準に基づいた第 2のフロー群の各 フローに一意に割り当てられた第 2の識別子と、前記第 2のフロー群に属する各々の フロー内で一意の第 2のシーケンス番号とを、パケットに付加して送信する手段と、 前記第 2の識別子と前記第 2のシーケンス番号とに基づいて、送信フローごとに検 出された損失パケットを再送する手段とを有することを特徴とする。

[0077] 上記課題を解決する第 64の発明は、ノードの制御プログラムであって、

前記制御プログラムは前記ノードを、

順序制御に関する第 1の基準に基づいた第 1のフロー群の各フローに一意に割り 当てられた第 1の識別子と、前記第 1のフロー群に属する各々のフロー内で一意の第 1のシーケンス番号と、再送制御に関する第 2の基準に基づいた第 2のフロー群の各 フローに一意に割り当てられた第 2の識別子と、前記第 2のフロー群に属する各々の フロー内で一意の第 2のシーケンス番号とを、パケットに付加して送信する手段と、 前記第 2の識別子と前記第 2のシーケンス番号とに基づいて、送信フローごとに検 出された損失パケットを再送する手段として機能させることを特徴とする。

[0078] 本発明は、送信するパケットに、順序制御の識別子とは別に再送制御の識別子を 付与し、順序制御は順序制御の識別子に基づいて行い、パケット損失の検出及び再 生制御は再送制御の識別子に基づいて行う。再送制御の為の識別子は再送のフロ 一毎に識別子を設け、更に、そのフロー内で一意にパケットを特定できるシーケンス 番号のような識別情報を付与する。通常、再送のフローと、送受信される経路とは一 対一の関係にある力これに限る必要もない。

[0079] 上述した本発明の概要を図 15を用いて説明する。

[0080] 図 15では、送信側と受信側との間に一つの経路 aを介してパケットの送受信を行う 例を示している。

[0081] 送信側の各フローのパケットには順序制御のフローを識別する第 1の識別子と、各 々のフロー内で一意の第 1のシーケンス番号とが付与されている。例えば、フロー 1 の 2番目のパケットならば、 " 1-2"である。

[0082] 更に、本発明では、この順序制御の為の識別子とは別に、再送制御のフローを識 別する第 2の識別子と、各々のフロー内で一意の第 2のシーケンス番号とが付与され ている。ここでは、再送フローと経路 aとが一対一の関係にあるので、再送フローを識 別する識別子を" a"とし、この" a"で識別されるフロー(経路 a)内で一意にパケットを特 定できるようにシーケンス番号を付与する。従って、 "a"で識別されるフロー(経路 a) 内における最初のパケットの再送制御の識別子は' I"となる。

[0083] 送信側では上述のような識別子をパケットに付して、各フローより順番にひとつずつ のパケットを選択し、経路 aに送信する。すなわち、パケット(1-1, a-l)、パケット(2-1, a-2)、 · · ·、パケット(3-3, a-9) (順序制御用識別子,再送制御用識別子)の順番で送 信されている。一方、送信したパケットは再送キューとして保持する。

[0084] ここで、経路 a上でパケット(2-2, a_5)の損失が発生したとする。

[0085] 受信側では、パケットが送信された順序で受信するので、パケット(1-1 , a-1)、パケ ット(2-1, a_2)、 ·■·、パケット(1—2, a— 4)、パケット(3-2, a_6)、■·■、パケット(3_3, a— 9) の順番でパケットを受信することになる。

[0086] ここで、本発明は、パケット損失の検出及び再送制御について、再送制御用識別 子に基づいて行う。本例では、経路 aから受信したパケットの再送制御用識別子を確 認していくと、■·■、 "a_4"、 "a_6"、■·■、 "a_9"であるので、パケット(3-2, a_6)を受信し た時点で" a-5"が欠落していることが解る。従って、 "a-5"の再送制御用識別子を持 つパケット(2-2, a-5)が損失していることが解り、このパケット(2-2, a_5)の再送要求 を送信側に行う。送信側では、再送制御用識別子" a-5"を持つパケットの再送要求 を受けて、再送キューに保持している再送制御用識別子" a-5"を持つパケットを再 送する。

[0087] 一方、順序制御は、上述したパケット損失の検出及び再送制御とは独立に順序制 御用識別子に基づいて行い、パケット損失に対する再送要求はしない。

[0088] このように、本発明ではパケット(3-2, a-6)を受信した時点で、パケット(2-2, a_5)の 損失を検出することができ、従来技術と比較して早期にパケット損失の検出を行うこと ができ、更に、再送制御も独立に行うので、パケット損失に伴う順序制御の遅滞を防 止すること力 Sできる。

[0089] 尚、再送制御のパケット損失の検出であるが、上述のようにパケット損失の検出を受 信側で行う場合だけでなぐ例えば、受信側では到着済みのパケットの情報を送信 側に送信し、この情報に基づいて送信側でパケット損失を検出するようにしても良い

発明の効果

[0090] 本発明は、パケット通信において、順序制御と再送制御とを独立に行い、パケット損 失を最も早期に検出可能な単位に対して再送 IDを割り当てることにより、従来の順序 制御に付随してフロー毎に行う再送制御に比較して早期のパケット損失の検出が可

能となる。

[0091] また、本発明によれば、フロー毎の順序制御においても、あるフローのパケットの損 失による他のフローのパケットの無駄な待ち時間が発生せず、転送されるという効果 を奏する。

[0092] また、本発明は、送信に利用する経路と再送制御は独立であるため、ある経路が通 信不能となった場合にもシステム全体として問題は発生しない。

図面の簡単な説明

[0093] [図 1]図 1は送受信ノード間経路力 S1本の場合の通信ネットワーク構成を示す図である

[図 2]図 2は送信ノード、又は受信ノードの構成を示す図である。

[図 3]図 3はパケットの構成を示す図である。

[図 4]図 4第 1の実施例における記憶部の保持する情報を示す図である。

[図 5]図 5は送受信ノード間経路が M本の場合の通信ネットワーク構成を示す図であ る。

[図 6]図 6は送信ノード、又は受信ノードの構成を示す図である。

[図 7]図 7は第 2の実施例における記憶部の保持する情報を示す図である。

[図 8]図 8再送 ID同一通信インタフェース.グループ決定アルゴリズムのフローチヤ一 トである。

[図 9]図 9は第 3の実施例における記憶部の保持する情報を示す図である。

[図 10]図 10は送受信側転送ノード間経路が M本の場合の通信ネットワーク構成を示 す図である。

[図 11]図 11はスケジューラの動作例 1における送信側ノードおよび受信側ノードでの パケット処理タイミングを示す図である。

[図 12]図 12はスケジューラの動作例 1におけるスケジューリング部の動作フローチヤ ートである。

[図 13]図 13はスケジューラの動作例 2における送信側ノードおよび受信側ノードでの パケット処理タイミングを示す図である。

[図 14]図 14はスケジューラの動作例 2におけるスケジューリング部の動作フローチヤ ートである。

園 15]図 15は本発明を説明する為の図である。

[図 16]図 16は本発明の実施例 1の具体的な動作を説明する為の図である。

[図 17]図 17は本発明の実施例 1の具体的な動作を説明する為の図である。 園 18]図 18はスケジューラの動作例 1における送信側ノードおよび受信側ノ パケット処理タイミングの具体例を示した図である。

園 19]図 19は従来技術を説明する為の図である。

符号の説明

101 送信ノード

102 受信ノード

110 経路

201 ソケット

202 入出力部

211 , 222 フロー識別部

212, 224 フロー毎キュー

213 スケジューラ

214 再送制御部

215 再送キュー

216 曰し fe ρ|5

221 再送 ID順序チェック部

223 フロー順序チェック部

301 送信ノード

302 受信ノード

312-1— M 経路

401 ソケット

402-1— M 入出力部

411 , 422 フロー識別部

412, 424 フロー毎キュー

413 スケジューラ

414 再送制御部

415 再达キユー

416 曰己 Ί思 p¾

421 再送 ID順序チェック部

423 フロー順序チェック部

501- - 一 L 送信ノード

502 送信側転送ノード

503 受信側転送ノード

504- - 一 N 受信ノード

511- - 一 L 経路

512- - 一 M 経路

513- - 一 N 経路

600- -1, 2, 3 データパケット

発明を実施するための最良の形態

[0095] 本発明は、パケット通信において、順序制御と再送制御とを独立に行いことを特徴 とする。

[0096] その為、送信ノードは、順序制御に関する第 1の基準に基づいた 1以上のフローを 有する第 1のフロー群と、再送制御に関する第 2の基準に基づいた 1以上のフローを 有する第 2のフロー群とを設け、第 1のフロー群に属する各々のフローに一意の第 1 の識別子を割り当て、前記第 2のフロー群に属する各々のフローに一意の第 2の識 別子を割り当ている。そして、送信するパケットを、第 1の基準に基づいて第 1のフロ 一群に属する 1以上のフローに分類し、かつ、第 2の基準に基づいて第 2のフロー群 に属する 1以上のフローに分類し、第 1の識別子と、第 1のフロー群に属する各々の フロー内で一意の第 1のシーケンス番号と、前記第 2の識別子と、前記第 2のフロー 群に属する各々のフロー内で一意の第 2のシーケンス番号とを、送信するパケットに 付与して送信する。

[0097] 受信ノードでは、受信した全てのパケットを第 2の識別子に基づレ、て分類し、各第 2 のフローに関して、受信していない第 2のシーケンス番号のパケットをチェックし、受 信していない第 2のシーケンス番号に対応したパケットの再送を要求する。そして、送 信ノードは、受信ノードからの要求された第 2のフローの第 2のシーケンス番号に対応 するパケットを再送することにより、再送の制御を行う。

[0098] また、パケットの順序制御においては、受信ノードが、受信した全てのパケットを第 1 の識別子に基づいて分類し、各第 1のフローに関して、第 1のシーケンス番号に基づ いてパケットを順番に並べ、順番になっているパケットから受信処理を行うことにより 行われる。

[0099] 以下、具体的な実施例について説明する。

実施例 1

[0100] 本発明の実施例 1を説明する。

[0101] 実施例 1では、送信ノードと受信ノードとがひとつの経路で結ばれている場合につ いて説明する。

[0102] 図 1を参照すると、本発明の実施例 1は、送信ノード 101と、受信ノード 102と、ノー ド間を結ぶ経路 110とからなる。経路 110は、インターネットなどのパケット通信網で ある。尚、通信は送信ノード 101から受信ノード 102に対するものと、受信ノード 102 力 送信ノード 101に対するものとどちらも考えられる。説明の便宜上、ノードには送 信-受信と名前をつけているが、機能的には同一である。

[0103] 次に、送信ノード 101の構成を説明する。

[0104] 図 2は送信ノード 101の構成を示す図である。

[0105] 図 2を参照すると、アプリケーションに対する API(Application Process Interface)であ るソケット 201と、入出力部 202と、使用するポート番号と宛先のアドレス 'ポート番号 とからフローを識別してそれぞれのキューに振り分けるフロー識別部 211と、フロー ID 力 フローを識別子それぞれのキューに振り分けるフロー識別部 222と、識別された フロー毎にパケットを保持するフロー毎キュー 212, 224と、フロー毎キュー 212の中 力 送信するパケットを選択して送信するスケジューラ 213と、パケット送信時にパケ ットに再送 IDをつけ、再送 ID毎に再送キュー 215に保持させて再送に備える再送制 御部 214と、再送 ID毎にパケットを保持する再送キュー 215と、経路ごとの遅延や、

遅延分散などの情報、フロー毎や再送 ID毎のシーケンス番号情報を記録しておく記 憶部 216と、パケット受信時にパケットの再送 IDをチェックして順序どおりにパケットが 到着したかをチェックする再送 ID順序チェック部 221と、フロー毎キュー 224のうち順 序がそろっているパケットについては転送を行うためにフロー毎キュー 224をチェック するフロー順序チェック部 223とからなる。

[0106] 尚、受信ノード 102の構成は、送信ノード 101と同一である。

[0107] 以下に、送信ノード 101から受信ノード 102にパケットを送信する場合の動作例を 説明する。

[0108] 送信ノードは、任意の数のアプリケーションによって、任意の数の TCPや UDPを利 用した通信を発生させる。ここで、第 1の基準とはパケットの順序制御に関する基準で あり、 TCPや UDPの各通信が第 1のフローに相当する。

[0109] アプリケーションからソケット 201がパケットを受信すると、フロー識別部 211にパケ ットが渡され、フロー識別部 211は自ノードのポート番号とパケットの宛先のアドレス' ポート番号からフローを識別する。識別されたパケットは、フロー毎キュー 212にフロ 一毎に格納される。

[0110] 図 2では、 70本のフロー毎のキューを持つ例を示している力この数に限定される ことなく、多くても少なくてもかまわない。フロー毎キュー 212に格納されたパケットは 、スケジューラ 213と再送制御部 214によってパケットロスの際の再送に必要な処理 を施した後、入出力端子 202を介して受信ノード 102に向けて送信されるとともに、パ ケットロスに対処するための再送キュー 215にも保持される。

[0111] 次に、スケジューラ 213と再送制御部 214との動作を説明する。

[0112] スケジューラ 213は、送信するパケットの送信タイミングを定め、送信タイミングでフ ロー毎キュー 212の中から受信ノード 102にパケットを送信するキューを決定し、該 当するキューからパケットを取り出す。取り出されたパケットは、再送に必要な処理を 施すため、再送制御部 214に渡される。

[0113] 再送制御部 214は、上述したパケット送信に関する基準である第 1の基準とは異な る第 2の基準で再送制御を行う。ここで、第 2の基準とはパケットの再送に関する基準 である。具体的には、再送制御部 214は、記憶部 216を参照して送信パケットに付加 する再送 IDと再送シーケンス番号とを決定し、再送キュー 215の所定のキューにパケ ットを格納する。第二のフローは、この再送 IDを単位としたパケット群に相当する。尚 、ここでは、第二のフローと経路とが一対一に対応している。

[0114] 再送制御部 214は、決定した再送 IDと再送シーケンス番号とをスケジューラ 213に 通知し、スケジューラ 213は通知された再送 ID及び再送シーケンス番号 (再送制御 の為の第 2の識別子、第 2のシーケンス番号)と、記憶部 216から取得したフロー毎に 一意に害 ijり当てられるフロー ID及びフローでユニークなフローシーケンス番号(順序 制御の為の第 1の識別子、第 1のシーケンス番号)とを独自ヘッダとして付カ卩し、入出 力部 202を利用して受信ノード 101に対してパケットを送信する。

[0115] 以上の動作を行うために、記憶部 216は、例えば図 4に示されるような情報を保持 してレ、る。図 4では、送信用の情報として、順序制御のためのフロー ID (第 1の識別子 )及び転送済みパケットの最大フローシーケンス番号 (第 1のシーケンス番号)と、再 送制御のための再送 ID (第 2の識別子)及び到着済みパケット再送シーケンス番号( 第 2のシーケンス番号)とが記憶されている様子を示している。例えば、フロー ID"1" では転送済みパケットの最大フローシーケンス番号が" 25"である。また、再送 ID"1" では到着済みパケット再送シーケンス番号が" 1から 200と、 203"であることを示して レ、る。尚、到着済みパケット再送シーケンス番号において、記載されていない番号" 2 01、 202"は到着が確認されてレヽなレ、パケットのシーケンス番号である。

[0116] 以上がスケジューラ 213と再送制御部 214の動作である。このときの送信パケットの フォーマットは、例えば図 3のようになる。

[0117] 続いて、受信ノード 102について説明する。以下の説明では、受信ノード 102が、 送信ノード 101の入出力部 202から送信されたパケットを入出力部 202を介して受信 した場合について説明する。尚、本発明では、パケット損失が発生したと判断するノ ードはデータ受信側 ·送信側のどちらの場合でも適用可能であるが、ここではデータ 受信側は到達確認を伝える ACKのみを送信側に送信し、送信側が任意の基準でパ ケット損失が発生したと判断する場合を示す。また、本発明では、送信ノード 101、受 信ノード 102は同一の構成となるため、図 2を用いて、受信ノード 102の動作例を説 明する。

[0118] 入出力部 202から受信されたパケットは、再送 ID順序チェック部 221に入力される。

[0119] 再送 ID順序チェック部 221は、データパケットであることを確認すると、パケットから 再送 IDと再送シーケンス番号を取得し、受信したパケットの再送 IDと、受信したバケツ トの再送シーケンス番号とからなる ACK情報をスケジューラ 213に渡す。

[0120] ACK情報を渡されたスケジューラ 213は、送信ノード 101にパケットを受信した事を 通知するため、渡された ACK情報を含む ACKパケットを入出力部 202を経由して送 信する。 ACKパケットを送信するタイミングに、他の送信データパケットが存在する場 合には、独立の ACKパケットを生成せずにデータパケットのヘッダ部分に情報を付加 することちでさる。

[0121] また、再送 ID順序チェック部 221は、受信したパケットの再送 IDの再送シーケンス 番号情報を記憶部 216に通知し、記憶部 216に記憶されている再送シーケンス番号 情報を更新して再送制御処理は完了する。再送制御処理の完了後、再送 ID順序チ エック部 221は、受信したパケットをフロー識別部 222に供給し、順序制御処理が行 われる。

[0122] 順序制御処理では、フロー識別部 222は再送 ID順序チェック部 221から供給され たパケットからフロー IDを取得し、フロー IDに従いフロー毎キュー 224の該当キューに パケットを送る。図 2では、 100本の異なるフローに対するキューを持つ構成例を示し ている。

[0123] また、同時に、新規にパケットを受信したことをフロー IDと共にフロー順序チェック部

223に通知する。フロー順序チェック部 223は、記憶部 216から該当するフロー IDに っレ、て送信済みの最大フローシーケンス番号を取得する。

[0124] 次に、フロー順序チェック部 223は、入力されたフロー IDに該当するキューをチヱッ クする。チヱックの結果、転送済み最大フローシーケンス番号に連続するパケットが 存在するならば、この連続するパケットを取り出し、図 3に示されるフレームフォーマツ ト中のフロー ID、フローシーケンス番号、再送 ID、再送シーケンス番号を取り除き、ソ ケット部 201を経由しアプリケーションに渡す。一方、転送済み最大フローシーケンス 番号に連続するフローシーケンス番号のパケットがなければ、フロー順序チェック部 2 23は動作を終了する。

[0125] 以降の動作は、上述した送信ノードの動作と同様である。

[0126] 続いて、受信ノードから ACK情報を受信した送信ノードについて説明する。

[0127] 送信ノード 101は、受信ノード 102からの ACK情報を含むパケットを入出力部 202 から受信すると、再送 ID順序チヱック部 221において ACK情報を取り出す。次に、 ACK情報から受信ノード 102が受信した再送 IDと再送シーケンス番号を取得し、この 再送 IDと再送シーケンス番号とを、到着確認済みのパケットとして記憶部 216に記憶 するとともに、その再送 IDと再送シーケンス番号とに該当するパケットを再送 ID毎キュ 一 215から削除する。

[0128] また、送信ノード 101は、定期的に、記憶されている到着済みの再送 IDと再送シー ケンス番号をチェックし、欠けている再送シーケンス番号を検出する。そして、欠けて レ、る再送 ID及び再送シーケンス番号に該当するパケットは損失したとみなして、欠け ている再送 ID及び再送シーケンス番号に対応するパケットを再送 IDキュー 215から 取り出し、スケジューラ 213にパケットを渡すと共に再送が必要である事を通知する。 スケジューラ 213は渡されたパケット再送を行う。尚、このとき、再送するパケットには 、先に送ったパケットに付された再送 ID及び再送シーケンス番号と同一の再送 ID及 び再送シーケンス番号を付して再送する。

[0129] 次に、上述した動作の具体例を図面を参照して説明する。

[0130] 図 16は送信ノード 101と受信ノード 102との間の具体的な動作を説明する為の図 である。尚、以下の説明において、具体的な動作例を示す為、図 2に示される構成と 、図 4に示した送信用情報とを例にして説明する。

[0131] まず、送信側ノード 101のスケジューラ 213により、フロー毎キュー 212の 70本のフ ローから一つずつパケットが取り出され、再送制御部 214により、記憶部 216が参照 されて送信パケットに付加する再送 IDと再送シーケンス番号とが付される。例えば、 再送 IDが " 1"、シーケンス番号" 200"であるならば、 " 1-200"というように付される。そ して、この再送 IDと再送シーケンス番号が付されたパケットは、入出力端子 202を介 して受信ノード 102に向けて送信されるとともに、パケットロスに対処するための再送 キュー 215にも保持される。

[0132] 図 16の例では、一つのパケットにおいて前半につけられたものがフロー ID、フロー

シーケンス番号であり、後半につけられたものが再送 ID及び再送シーケンス番号で ある。図 16では、パケット(11-54, 1-200)、パケット(12-87,ト 201)、パケット(13- 7, 1-202)、パケット(14-24, 1-203)…というように経路上を送信されている。尚、パケット (m-n, x-y)のうち、 mはフロー ID、 nはフローシーケンス番号、 xは再送 ID、 yは再送シ 一ケンス番号を示している。

[0133] このような状態で、パケット(12-87, 1-201)、パケット(13-7, 1-202)が損失した場合 を考える。

[0134] 受信ノード側では、パケット(11-54, 1-200)、パケット(14- 24, 1-203)…が入出力部

202から受信され、再送 ID順序チェック部 221に入力される。再送 ID順序チェック部 221は、データパケットであることを確認すると、パケットから" 1-200"、 " 1-203"という ように再送 IDと再送シーケンス番号を取得し、この受信したパケットの再送 IDと再送シ 一ケンス番号とからなる ACK情報をスケジューラ 213に渡す。

[0135] ACK情報を渡されたスケジューラ 213は、送信ノード 101にパケットを受信した事を 通知するため、渡された ACK情報を含む ACKパケットを入出力部 202を経由して送 信する。

[0136] また、再送 ID順序チェック部 221は、受信したパケットの再送 IDの再送シーケンス 番号を記憶部 216に通知し、記憶部 216に記憶されている受信済みパケット再送シ 一ケンス番号を更新して再送制御処理は完了する。再送制御処理の完了後、再送

ID順序チェック部 221は、受信したパケットをフロー識別部 222に供給し、順序制御 処理が行われる。

[0137] 順序制御処理では、フロー識別部 222は再送 ID順序チェック部 221から供給され たパケットから、フロー ID"11"、 ·■·、フロー ID" 14"、 ·■·、フロー ID" 1"を取得し、フロー IDに従いフロー毎キュー 224の該当キューにパケットを送る。図 16では、受信したパ ケット(14-24)をフロー 14に、パケット(11-54)をフロー 11に、パケット(1-23)をフロー 1に送信した様子を示してレ、る。

[0138] 一方、送信ノード 101では、受信ノード 102からの ACK情報を含むパケットを入出 力部 202から受信すると、再送 ID順序チェック部 221において、 ACK情報を取り出す

[0139] 次に、 ACK情報から受信ノード 102が受信した再送 IDと再送シーケンス番号を取得 し、この再送 IDと再送シーケンス番号とを、到着確認済みのパケットとして記憶部 216 に記憶するとともに、その再送 IDと再送シーケンス番号とに該当するパケットを再送 ID毎キュー 215から削除する。

[0140] 例えば、 " 1-200"、 "1-203"という ACK情報を取得した場合、送信用情報の再送 ID " 1"における到着済みパケット再送シーケンス番号に" 200"ど' 203"とをカ卩えるとともに 、再送 ID毎キュー 215から再送シーケンス番号が" 200"、 "203"のパケットを削除する

[0141] また、再送制御部 214は、一定の周期毎に到着済みの再送 IDと再送シーケンス番 号をチヱックし、欠けている再送シーケンス番号を検出する。図 16の例では、再送シ 一ケンス番号 "201"、 "202"が欠落している。そこで、欠けている再送シーケンス番号 "201"、 "202"に該当するパケットは損失したとみなして、再送シーケンス番号" 201"、 "202"に対応するパケットを再送 IDキュー 215から取り出し、スケジューラ 213にパケ ットを渡すと共に再送が必要である事を通知する。スケジューラ 213は渡されたバケツ ト再送を行う。尚、このとき、再送するパケットには、先に送ったパケットに付された再 送 ID及び再送シーケンス番号、すなわち、 "1-201"、 "1-202"を付して再送する。

[0142] 以上の動作により、パケット損失を早期に発見できるため、受信ノード 102と送信ノ ード 101との間でデータ送受信をより短い時間で行う事が可能となる。

[0143] 次に、受信側ノード 102でパケット損失を検出する場合の例について述べる。

[0144] 図 17は受信側ノード 102でパケット損失を検出する場合を説明する為の図である。

尚、受信側ノード 102でパケット損失を検出する為に用いられる情報として、図 4で示 した受信用情報を用いる。また、送信側ノードから受信ノードまで到達するまでの動 作を上述の動作と同様であるので、具体的な説明は省略する。

[0145] 図 17において、経路上で、パケット(11-54,ト 100)、パケット(12- 87, 1-101)、パケ ット(13-7, 1-102)、パケット(14- 24, 1-103)…というように経路上を送信されている。 ここで、パケット(12-87, 1-101)が損失した場合を考える。

[0146] 受信ノード側では、パケット(11-54, 1-100)、パケット(13- 7,ト 102)、パケット (

14-24,ト 103)…が入出力部 202から受信され、再送 ID順序チェック部 221に入力さ

れる。再送 ID順序チェック部 221は、データパケットであることを確認すると、パケット から" 1-100"、 "1-102"というように再送 IDと再送シーケンス番号を取得し、この再送 IDと再送シーケンス番号と、記憶部 216の受信用情報に記憶されている再送 ID及び 受信済みパケット再送シーケンス番号とを比較する事により,受信が期待されるパケ ットを受信したかどうかを判断する。

[0147] 判断の結果、期待されるパケットであった場合には、受信したパケットの再送 IDと、 受信したパケットの再送シーケンス番号とからなる ACK情報をスケジューラ 213に渡 す。一方、期待されるパケットでなかった場合には、受信したパケットの再送 IDと、受 信したパケットの再送 IDで最初から連続して受信したパケットのうち最大の再送シー ケンス番号とからなる ACK情報をスケジューラ 213に渡す。

[0148] ここでは、受信したパケット(11-54, 1-100)は期待されるパケットであるので、受信し たパケットの再送 IDと、受信したパケットの再送シーケンス番号とからなる ACK情報、 すなわち" 1-100"をスケジューラ 213に渡す。そして、受信したパケットの再送 ID、再 送シーケンス番号情報である" 1-100"を記憶部 216に通知し、記憶部 216に記憶さ れている再送シーケンス番号情報を更新して再送制御処理は完了する。

[0149] 続いて、受信したパケット(13-7, 1-102)は、本来ならば再送シーケンス番号が 101 のパケット(12-87, 1-101)である。そこで、受信したパケットの再送 IDで最初から連続 して受信したパケットのうち最大の再送シーケンス番号、すなわち、 "1-100"をスケジ ユーラ 213に渡す。そして、受信したパケットの再送 ID、再送シーケンス番号情報で ある" 1-102"を記憶部 216に通知し、記憶部 216に記憶されている再送シーケンス番 号情報を更新して再送制御処理は完了する。

[0150] 次に、受信したパケット (1-23, 1-103)は期待されるパケットであるので、受信したパ ケットの再送 IDと、受信したパケットの再送シーケンス番号とからなる ACK情報、すな わち" 1-103"をスケジューラ 213に渡す。そして、受信したパケットの再送 ID、再送シ 一ケンス番号情報である" 1-103"を記憶部 216に通知し、記憶部 216に記憶されて レ、る再送シーケンス番号情報を更新して再送制御処理は完了する。

[0151] ACK情報を渡されたスケジューラ 213は、送信ノード 101にパケットを受信した事を 通知するため、渡された ACK情報を含む ACKパケットを入出力部 202を経由して送

信する。

[0152] 再送制御処理の完了後の順序制御処理については、上述と同じ動作であるので、 説明を省略する。

[0153] 続いて、受信ノードから ACK情報を受信した送信ノードについて説明する。

[0154] 送信ノード 101は、受信ノード 102からの ACK情報を含むパケットを入出力部 202 から受信すると、再送 ID順序チヱック部 221において ACK情報を取り出す。次に、 ACK情報から受信ノード 102が受信した再送 IDと再送シーケンス番号を取得し、この 再送 IDと再送シーケンス番号とを、到着確認済みのパケットとして記憶部 216に記憶 するとともに、その再送 IDと再送シーケンス番号とに該当するパケットを再送 ID毎キュ 一 215から削除する。

[0155] ここでは、 ACK情報の情報として、まず、 "1-100"、 " 1-100"、 " 1-103"を受信する。

まず、 "ト 100"については、到着確認済みのパケットとして記憶部 216に記憶するとと もに、その再送 IDと再送シーケンス番号とに該当するパケットを再送 ID毎キュー 215 力 削除する。続いて、同じ内容の" 1-100"を受信した場合には、その再送シーケン ス番号の次の番号である" 1-101"に対応するパケットが損失したとみなして再送を行 う。すなわち、 2回連続して同じ番号の再送シーケンス番号がきた場合には、その再 送シーケンス番号の次の番号に対応するパケットが損失したとみなして再送を行うの である。尚、再送するパケットには、先に送ったパケットに付された再送 ID及び再送シ 一ケンス番号と同一の再送 ID及び再送シーケンス番号を付して再送する。

[0156] 以上で、送信側でのパケット損失の検出と受信側でのパケット損失の検出との例を 説明したが、本発明はこの例に限られなレ、。例えば、他の例としては、受信ノードが、 連続した再送シーケンス番号でパケットを受信しなかった場合、その抜けている再送 シーケンス番号だけを再送要求情報として送信ノードに送信し、この抜けている再送 シーケンス番号に対応するパケットを送信ノードが送信する方法も考えられる。

実施例 2

[0157] 本発明の実施例 2を説明する。

[0158] 実施例 2は、送信ノードと受信ノードとを結ぶ経路が複数ある場合について説明す る。

[0159] 図 5は送信ノードと受信ノードとを結ぶ経路が複数ある場合の構成図である。

[0160] 図 5を参照すると、送信ノード 301と、受信ノード 302と、ノード間を結ぶ M本の経路

312—1— 312—M力らなる。経路 312—1— 312—Mは、インターネットなどのパケット 通信網である。 M本の経路が複数存在する場合とは、送信ノード 301と受信ノード 30 2との両ノード、あるいはどちらか一方のノードが複数の通信インタフェースを保持す る場合である。例えば、送信ノード 301と受信ノード 302とのうちどちらかが M本の通 信インタフェースを持つ場合、あるいは送信ノード 301と受信ノード 302とがそれぞれ S個、 t個の通信インタフェースを持ち、 M = s X tとなる場合である。

[0161] 但し、通信は送信ノード 301から受信ノード 302に対するものとする力受信ノード 3 02から送信ノード 301に対しては、送達確認 (ACK)メッセージが送信される。このよう に、本実施例では、送信ノード 301から受信ノード 302への通信を説明するが、一般 に、双方向の通信を行うためには、送信ノード 301と受信ノード 302は同一機能をも つ必要がある。

[0162] 次に、送信ノード 301の構成を説明する。

[0163] 図 6を参照すると、アプリケーションに対する APIであるソケット 401と、入出力部 402 一 1一 402— Mと、使用するポート番号と宛先のアドレス 'ポート番号とからフローを識 別しそれぞれのキューに振り分けるフロー識別部 411と、フロー IDからフローを識別 子それぞれのキューに振り分けるフロー識別部 422と、識別されたフロー毎にバケツ トを保持するフロー毎キュー 412, 424と、フロー毎キューの中から送信するパケット を選択して送信するスケジューラ 413と、パケット送信時に再送 IDをつけ再送キュー に再送 ID毎に保持し再送に備える再送制御部 414と、再送 ID毎にパケットを保持す る再送キュー 415と、経路ごとの遅延や遅延分散などの情報、フロー毎や再送 ID毎 のシーケンス番号情報を記録しておく記憶部 416と、パケット受信時にパケットの再 送 IDをチェックして順序どおりにパケットが到着した力、をチェックする再送 ID順序チヱ ック部 421と、フロー毎キューのうち順序がそろっているパケットについては転送を行 うためにフロー毎キューをチェックするフロー順序チェック部 423とからなる。

[0164] 尚、入出力部 402—1— 402—Mは、経路 312—1 312—Mに対応した論理的なも のであり、送信ノード 301の持つ物理的な通信インタフェースの数は M本とは限らな

レ、。また、受信ノード 302は、送信ノード 301と同一である。

[0165] 次に、上述の構成における実施例 2の動作を説明する。

[0166] 実施例 2の動作は、実施例 1の動作とほぼ同じであるが、経路が複数あることからス ケジユーラと再送制御部の処理が異なる。以下にその異なる部分の動作を説明する

[0167] スケジューラ 413は、送信するパケットの送信タイミングを定め、送信タイミングでフ ロー毎キュー 412の中から受信ノード 302にパケットを送信するキューを決定し、該 当するキューからパケットを取り出す。また、スケジューラ 413は、経路選択に関する 第 3の基準に基づき経路 312— 1一 312— Mのいずれの経路を利用するかを決定す る。

[0168] スケジューラ 413は、再送に必要な処理を施すために、利用する経路の情報と共に 取り出したパケットを再送制御部 414に渡す。再送制御部 414は、記憶部 416を参 照して送信パケットに付加する再送 IDと再送シーケンス番号を決定し、再送キュー 4 15の所定のキューにパケットを格納する。送信パケットに対して再送 IDを決定する記 憶部 416の情報は、たとえば図 7の経路と再送 IDのテーブル部分に示すものである。 再送 IDの数は入出力部の数である M個に等しぐ入出力部と 1対 1で対応している。 第二のフローはこの再送 IDを単位としたパケット群を指す。再送制御部 414は決定し た再送 IDと再送シーケンス番号をスケジューラ 413に通知し、スケジューラ 413は通 知された再送 IDと再送シーケンス番号、記憶部 416から取得したフロー毎に一意に 害 ijり当てられるフロー IDとフローでユニークなフローシーケンス番号とを独自ヘッダと して付加し、先ほどの選択に従い入出力部 402— 1一 402— Mのいずれかを利用し受 信ノード 302に対してパケットを送信する。このときの送信パケットのフォーマットは、 例えば図 3のようになる。

[0169] パケット受信時の受信ノード 302の動作は、 ACK送信の際の動作のみが異なる。以 下にその動作を説明する。

[0170] スケジューラ 413は、再送 IDと再送シーケンス番号を含む ACK情報を送信ノード 30 1に送信する。 ACKパケットを送信するタイミングに、送信データパケットが存在する 場合には、独立の ACKパケットを生成せずにデータパケットのヘッダ部分に情報を付

カロすることもできる。通信経路を選択する第三の基準に従い、適当なタイミングで入 出力部 402—1— 402—Mのいずれかを利用して、送信ノード 301に対してパケットを 送信する。第 3の基準としては、例えば、各経路の負荷状況に基づき、負荷の最も少 ない経路を選択するものがある。

[0171] ACKを受信した際の送信ノード 301の動作もスケジューラ 413の動作が異なる。以 下に説明する。

[0172] スケジューラ 413は渡されたパケットを任意のタイミングで入出力部 402—1 402— Mのいずれ力、から再送を行う。このとき、スケジューラ 413は、第 3の基準に基づき以 前に同一パケットを送信した経路とは独立に送信経路を選択可能である。

[0173] 以上の動作により、パケット損失を早期に発見できるため、受信ノード 301と送信ノ ード 302との間でデータ送受信をより短い時間で行う事が可能となる。

[0174] 尚、図 5、図 6の構成では一つのフローに属する複数のパケットは、送信ノードのス ケジユーラ 413により一般に異なる経路に振り分けられる。各経路の遅延やレートが 独立に揺らぐ場合、スケジューラによる経路間遅延差の相殺には限界があり、特に安 定性が低い無線リンクを含む場合に完全に経路間のジッターを相殺することは難し レ、。

[0175] 従って、フローに注目したとき、受信ノードにおけるパケットの到着順序は送信ノー ドにおける送信順序を反映することが保証されない。例えばあるフローに属するパケ ット Aを経路 312-1より送信し、その後に同じフローに属し、パケット Aより大きいシー ケンス番号を有するパケット Bを経路 312-2より送信したとする。またこのとき経路 Aの 遅延がスケジューラの予想より大きぐ受信ノードにおいては Aより先に Bが受信され たとする。

[0176] このとき、受信ノードがもし、順序制御のフローごとのシーケンス番号に基づく損失 の検出を行っていると、パケット Bの受信時に、よりシーケンス番号の若いパケット Aが 受信されていないため受信ノードはパケット Aの損失を検出する。ところが実際にはパ ケット Aは、遅延の大きい経路 312— 1を通って Bの受信後に受信されるので損失では なぐパケット Aの損出検出は誤検出となる。

[0177] 再送制御を順序制御のフローごとに行わず、経路ごとに行う本実施例においては、 各経路の順序逆転が生じない限りは、再送に用いるシーケンス番号の受信ノードに おける不連続は必ずパケット損失を反映するため、上記に説明したような誤検出は回 避される。また経路間のジッターによるフロー内の順序逆転に比べ各経路の順序逆 転が生じる確率が低ければ、本発明による誤検出の低下が期待できる。

実施例 3

[0178] 本発明の実施例 3を説明する。

[0179] 実施例 3は、ノードの配置、ノードの機能構成は、すべ実施例 2と同じであるが、送 信ノードにおいて送信パケットに対して再送 IDを決定する処理のみが異なるので以 下に説明する。

[0180] 実施例 3では、経路と再送 IDとが 1対 1に対応せず、自由に変更できる。通常、複数 の経路を一つの再送 IDにまとめた場合、その再送 IDに属するそれぞれの経路の遅 延ゃ遅延分散によっては、受信ノードがパケットを受信する際のパケットの到着順序 が著しく乱れる可能性がある。そのため、一つの再送 IDに属するパケットの到着順序 が正しくない確率が一定以下となるように、一つの再送 IDに属する複数の経路を決 定するアルゴリズムを説明する。

[0181] 送信ノード 301と受信ノード 302との各経路 312—1— 312—Mにつレ、て、片方向、 または往復の遅延時間と遅延分散とを常に測定しており、任意のタイミングで経路と 再送 IDのマッピングを行う。タイミングは、例えば、一定時間間隔ごとや、経路情報が 更新されたタイミングなどである。マッピングの方法は、例えば、図 8のようなアルゴリ ズムによって経路 312-1— 312—Mに再送 IDをマッピングする。

[0182] 図 8を参照すると、現在時刻における経路 312—1— 312—Mを遅延時間の大きい 順に並べ替え、また一次的な変数 i=lにセットする(ステップ A001)。次に、 i==Mであ るかどうかをチェックする(ステップ A002)。最初は i==Mでないので(ステップ A003) に進み、一時的な変数 j=lにセットする。次に経路 (i+j)の遅延と遅延分散、経路 iの遅 延分散を取得する (ステップ A004)。

[0183] 送信側が到着時間を見計らって受信側で順序どおりにパケットを受信できるように 送信した場合に、最初に到着すべき経路 iのパケットが到着するまでに、経路 (i+j)の 任意の数のパケットが先に到着してしまう確率をある一定に抑えられるかどうかのチェ ックを行う(ステップ A005)。図 8の例は、経路 (i+j)の 3個のパケットが経路 iのパケット より先に到着してしまう確率が 1.5%以下であることを条件としたものである。条件を満 たしているならば、 jをインクリメントし、 i+j==Mである力どう力チェックし、全ての経路に ついて処理を完了したかチェックする(ステップ A006)。全ての経路についての処理 力 Sまだ完了していなければ (ステップ A004)に戻り、次に遅延の大きな経路について も同様のチェックを行う。

[0184] ステップ A006において、 i+j==Mの場合には(ステップ A007)に進む。(ステップ AO 04)と(ステップ A005)を繰り返すうちに、(ステップ A005)の条件を満たせない経路 が出現すると(ステップ A007)に進む。(ステップ A007)では、経路 iから経路 (i+j-1)を 同一の再送 IDに設定し、(ステップ A002)に戻る。

[0185] 以上の処理を繰り返し、全ての経路についての再送 IDを設定し終えると、つまりス テツプ A002において i==Mとなると終了し、次回のマッピング処理が起動されるまでス リーブする。

[0186] 以上の処理によって、例えば図 9のテーブルに示される経路と再送 IDとをマツピン グするテーブル部分が完成する。これに従い、スケジューラは再送 IDを決定すること になる。

[0187] また、他にフローと再送 IDを固定的にマッピングする方法や、遅延や遅延分散など の情報に無関係に経路ごとに一つ再送 IDをマッピングする方法なども考えられる。 実施例 4

[0188] 上述した実施例 1、実施例 2及び実施例 3では、 End-to_Endの送受信ノード間の通 信を仮定していた力多数の End_to-End通信が必ず経由する二ノード間についても 、本発明を適用することができる。

[0189] 図 10を参照すると、任意の数の送信ノード 501—1 501—Lと、送信側転送ノード 502と、受信佃 J転送ノード 503と、任意の数の受信ノード 504—1— 504—N力、らなり、 次のようにリンクされている。各送信ノードは送信側転送ノードと、それぞれ経路 511 -1一 511 - Lで結ばれている。送信側転送ノードと受信側転送ノードとは 1以上の任 意の数の経路 512-1— 512 - Mの複数経路で結ばれている。各受信ノードは受信 側転送ノードと、それぞれ経路 513-1-513— Nで結ばれてレ、る。

[0190] 例えば、送信側転送ノードと受信側転送ノード間の経路数 Mが 1の場合は、実施例 1の形態と同様である。

[0191] また、送信側転送ノードと受信側転送ノード間の経路数 Mが 2以上の場合は、実施 例 2実施例 3と同様である。

[0192] 但し、上述の場合、それぞれ実施例 1、実施例 2、実施例 3における送信ノードは送 信側転送ノード、同様に受信ノードは受信側転送ノードとなる。また、送信側転送ノー ド内構成におけるソケットは、送信ノードから受信するパケットの入力部、受信側転送 ノード内構成におけるソケットは受信ノードに送信するパケットの出力部となる。

[0193] また、この場合、第 1のフローは送信ノード 501—1— 501—Lと、受信ノード受信ノー ド 504—1— 504—Nとの間の通信を送信元.宛先のアドレス.ポート番号で一意に決 まるパケット群を指す。

[0194] 以上の動作により、パケット損失を早期に発見できるため、送信ノード 501— 1一 50 1一 Lと受信ノード 504-1— 504— Nとの間でデータ送受信を、より短い時間で行う事 が可能となる。

実施例 5

[0195] 本発明の実施例 5を説明する。

[0196] 実施例 5は、実施例 2、実施例 3、実施例 4に示すスケジューラ 213, 413が、以下 のような第 3の基準に従う経路選択動作を行う場合である。この動作により、送信ノー ドと受信ノードとの間に複数の経路がある場合、受信ノードでは送信ノードが期待し た順番通りにパケットを受信する確率が高くなるため、順序間違いに起因する再送頻 度を減らすことができる。また、特に実施例 3や、その応用である実施例 4のように複 数の経路でノード間が結ばれている構成に適用した場合には、より多くの通信経路 を一つの再送単位として上記の再送制御を適用可能となるため通信性能向上が期 待できる。

[0197] ここで、第 3の基準とは、予測されたデータの到着時刻又は受信完了時刻に基づい て、最も適切な経路、例えば到着時刻が最も早いと予測される経路を選択するもの である。

[0198] 例えば、データ(パケット)送信時において、送信データ(パケット)の送信履歴を記 憶する。この送信履歴には、送信データ (パケット)を識別する識別子や、送信開始 時刻等を記述する。一方、受信側では、データ (パケット)が通る経路の状態情報 (例 えば、速度やパケット遅延)を送信側に送信する。この経路状態情報には、上述した データ (パケット)の識別子のような、経路状態情報が適用される最新のデータ (パケ ット)を識別する情報を含める。送信側では、経路の状態情報を受信し、この経路状 態に含まれているデータ(パケット)を識別する情報 (例えば、識別子)により、この経 路状態が有効となる送信済みのデータ(パケット)を、送信履歴から求める。そして、 求めたデータ(パケット)以降のデータについて、受信した経路の状態を適用して受 信完了時刻等を予測し、更に、この予測と受信した経路の状態情報とに基づいて、 各経路におけるこれから送信しょうとするデータの到着時刻又は受信完了時刻を予 測する。

[0199] 経路選択においては、予測されたデータの到着時刻又は受信完了時刻に基づい て、最も適切な経路、例えば到着時刻が最も早いと予測される経路を選択する。

[0200] ここで経路状態情報とは、通信性能の指標となる情報一般を指す。本実施の形態 では、そのうち経路の速度とパケット遅延を用いる。また、経路状態情報の有効時と は、送信ノード側における経路状態情報の更新時を意味するものでなぐ経路状態 情報で示される経路状態となった時間、その経路状態において伝送されたパケットで 特定される時刻等である。従って、経路状態情報の有効時以降の送信履歴とは、経 路状態情報の有効時以降に送信されたパケットの送信履歴等をいう。尚、この時刻 は、その測定の元になつたパケット情報 (パケットを識別する識別子)や、受信ノード 側から送信される受信時等から得られる力多少のずれはかまわない。また、経路状 態情報を得る為、受信ノードが速度や遅延を測定する方法は各種提案されているが 、想定している方法を以下に述べる。

[0201] 送信ノードは、受信ノードへのパケットの各々に識別子と送信時刻を揷入して転送 するものとする。受信ノードはパケット遅延を、送信ノードが挿入した送信時刻と自身 が受信した時刻を比較することで測定する。また、送信ノードは定期的に測定用のパ ケット列を送信し、受信ノードはその到着時間のばらつきから速度を推定できる。推 定の方法の詳細は例えば文献「Dovrolis, Ramanathan, and Moore, "What DoPacket Dispersion Techniques Measuere?," IEEE INFOCOM 2001」で紹介されている。前 記 Dovrolisらの文献においては、送信側ノードが 2つのパケットを同時に送信し、送信 側でこの 2つのパケットの到着時刻差からリンク速度を推定する。パケットの到着間隔 を広げるのは伝送遅延であり、伝送遅延はリンク速度と関係があることから、到着間 隔より速度を推定可能である。

[0202] 受信ノードは、定期的にこれらの測定値または推定値を経路状態情報として送信ノ ードに送信する。また、そのときまでに受信した最新のパケットの識別子を、送信する 状態情報が有効となるパケットの識別情報として同時に送信する。これらの情報が、 レポートとして送信ノードで受信される。尚、以上の方式は一例であり、本発明の実施 可能性は経路状態情報及びこれが有効となるパケットの決定及び伝達の方法には 依存しない。

[0203] 以下に、具体的な動作を説明する。

[0204] スケジューラ 213もしくは 413は、次に転送すべきパケットにっき、送信経路毎に現 在までに受信している経路情報等のレポートおよびその情報が有効となるパケットの 送信以降の送信履歴を参照し、受信側ノードでの到着遅延を予測する、送信履歴は 記憶部 216もしくは 416に記憶されている。スケジューラ 213もしくは 413は、予測し た到着遅延が最小となる経路を次に転送すべきパケットの送信経路として選択し、選 択した経路へのパケット転送後、その転送時刻を記憶部 216もしくは 416上の送信 履歴に加える。

[0205] スケジューラ 213もしくは 413で動作する経路ごとの到着遅延推定方法の一例とし てスケジューラ動作例を図 11に示す。

[0206] 図 11中 600-1, 600-2, 600-3はデータパケットであり、その送信側ノードでの送信履 歴および予測と受信側ノードでの受信履歴および予測がそれぞれ時間軸上で示さ れている。例えばデータパケット 600-1は送信側ノードで時刻 T1に送信が開始され、 時刻 T2に送信が完了している。また同じパケット 600-1は受信側ノードで時刻 T3より 受信が開始され、時刻 T4に受信が完了している。ここで T1と T3との差 IIが伝送遅延 である。また、 T4と T2との差 12が、伝送遅延 IIに送信インタフェースと転送経路の速 度差とにより生じるパケットの分散を加えた総遅延となる。

[0207] ここで、時間軸上 TPの現在時刻において、パケット 600-3を送信しょうとしているもの とする。そして、この経路につき、 T5と TPの間でレポート結果通知の受信により、送信 側ノードが有している経路状態情報が更新され、この経路状態情報が有効となるパ ケットは 600-1からとする。そこで、経路状態情報が有効となるパケット 600-1、 600-2 の送信履歴に基づいて、パケット 600-1、パケット 600-2を考慮したパケット 600-3の受 信完了時刻の推定を行う。

[0208] すると、パケット 600-はり後に送信されたパケット 600-2の受信側ノードでの受信開 始時刻及び完了時刻は現在受信している経路状態情報に含まれる速度及び伝送遅 延から推定される。推定された受信開始時刻は図 11中 T5、受信完了時刻は Τ7であ る。ここで、この推定を行わず、経路状態情報が示す伝送遅延が IIと等しいとすると、 TPに送信開始したパケット 600-3は時刻 Τ6に受信開始されるはずである。しかし、 T6 では、レ、まだ受信側ノードでは、パケット 600-2の受信が完了していないと推定される ので、パケット 600-3の推定受信開始時刻はパケット 600-2の受信が完了すると推定 される T7以降となり、パケット 600-3の推定受信完了時刻は現在受信している経路状 態情報に含まれる経路速度から推定されるパケット分散を加えた T8となる。同様にパ ケット 600-3の受信完了時刻の推定を各経路につき行い、それが最も早い時刻となる 経路にパケット 600-3は送出される。

[0209] なお、図 11における TPの時点での受信側の到着時刻推定に用いている経路状態 情報は、 T5と TPの間でレポート結果通知の受信により更新されたものである。すると 、パケット 600-2を送信した際の到着時刻推定は TPにおけるより古い経路状態情報 に基づいて行われたことになる。この古い状態情報を情報 A、 T5と TPとの間で更新さ れた新しい情報を情報 Bとすると、リンク状態の変動により情報 Aと情報 Bに含まれる 遅延や経路速度が異なれば、 Aに基づく到着時刻予測は、図 1 1に示される情報 Bに 基づく到着時刻予測と異なっていたはずである。したがって、より正確な予測を行うた めに、図 11に示したパケット 600-1および 600-2の到着時刻予測は情報 Bを得た結果 の修正を反映している。ひとたび経路状態情報の更新が行われると、その更新が有 効となるパケット以前の送信履歴は参照不要となるのでこれを破棄する。

[0210] 更に、本発明を適用した場合のパケット到着時刻推定及び受信完了時刻と、従来

のパケット到着時刻推定及び受信完了時刻との差を、図 18を用いて具体的に説明 する。

[0211] 図 18中 500-1, 500-2, 500-3は送出されるデータパケットであり、その送信側ノード でのパケットの送信履歴(実線)と受信側ノードでの実際のパケットの受信履歴(実線 )がそれぞれ時間軸上で示されている。また、パケットの到着及び受信完了時刻の予 測(点線)もそれぞれ時間軸上で示されている。また、図 18の上部に記した曲線は、 伝送経路の速度変化を示すものである。図 18では、時間が経過するとともに伝送速 度が遅くなつてレ、る旨を示してレ、る。

[0212] まず、実際のパケットの送受信であるが、送信側ノード側から時刻 T1にデータパケ ット 500-1の送信が開始され、時刻 T2に送信が完了している。そして、受信側ノードで 、パケット 500-1は、時刻 T3より受信が開始され、時刻 T5に受信が完了している。

[0213] その後、送信側ノード側から時刻 T4にデータパケット 500-2の送信が開始され、時 刻 T8に送信が完了している。そして、受信側ノード側では、通信速度の低下により、 データパケット 500-2は、時刻 T7より受信が開始され、時刻 T13に受信が完了している

[0214] 更に、送信側ノード側から時刻 T9にデータパケット 500-3の送信が開始され、時刻 T10に送信が完了している。そして、受信側ノード側では、データパケット 500-3が、時 亥 IJT14より受信が開始され、時刻 T16に受信が完了している。

[0215] 次に、上述のような実際のパケットの送受信において、本発明を適用した場合のパ ケットの到着時刻及び受信完了時刻の予測について説明する。

[0216] 上述の如ぐデータパケット 500-1は、時刻 T1に、データパケット 500-1の送信時刻 及びパケット識別子の情報と共に送信側ノードで送信が開始され、時刻 T2に送信が 完了している。このとき、送信側ノードでは、送信履歴としてデータパケット 500-1の送 信時刻及びパケット識別子を記憶している。

[0217] 続いて、送信側ノードより、データパケット 500-2が、データパケット 500-2の送信時 刻及びパケット識別子の情報と共に時刻 T4に送信が開始され、時刻 T8に送信が完 了している。このとき、送信側ノードでは、上述と同様に、送信履歴としてデータパケ ット 500-2の送信時刻及びパケット識別子を記憶している。

[0218] 受信ノード側では、データパケット 500-1が、時刻 T3より受信が開始され、時刻 T5に 受信が完了している。このとき、受信ノード側は、データパケット 500-1の識別子、受 信完了時刻及び通信速度等の情報をレポートとして、送信ノードに送信する。

[0219] 送信ノード側では、時亥 1JTXに受信ノードからレポートを受信したとする。そして、レ ポートに含まれるデータパケット 500-1の識別子により、レポートの経路状態情報の有 効時は、データパケット 500-1の送信時刻 T1と判断する。

[0220] そこで、送信ノードは、時刻 T1以降の送信履歴に基づいて、データパケット 500-3の 到着時刻及び受信完了時刻の予測を行う。時刻 T1以降の送信履歴によると、対象と なるデータパケットはデータパケット 500-1、データパケット 500-2である。データバケツ ト 500-1の受信完了時刻は、レポートにより、時刻 T5とわかる。データパケット 500-2の 到着時刻及び受信完了時刻の予測には、レポートのデータパケット 500-1の通信速 度や、受信完了時刻が用レ、られ、これらの情報により、伝送遅延やパケットの総遅延 の時間がわかる。尚、伝送遅延は T1と T3との差 IIである。また、パケットの総遅延は、 伝送遅延 IIに送信インターフェースと転送経路の速度差とにより生じるパケットの分 散を加えた時間であり、 T5と T2との差 12である。データパケット 500-2の到着時刻は、 伝送遅延 IIにより求められ、データパケット 500-2の送信時刻 T4に伝送遅延 IIを加え た時刻 T6と予測される。また、データパケット 500-2の受信完了時刻は、レポートの通 信速度によりパケット遅延を求めることができるので、データパケット 500-2の受信完 了時刻は時刻 T12と予測することができる。従って、この経路において、データバケツ ト 500-3の受信ノードの到着時刻は、時刻 T12以降と予測することができる。また、この 時刻 T12から受信が開始された場合の受信完了時刻は、上述したパケット分散の予 測により、時刻 T15と予測することができる。このような予測の結果によれば、予測した データパケット 500-3の到着時刻 T12と、実際のデータパケット 500-3の到着時刻 T14 との差は、時間 ID1である。

[0221] 一方、従来技術によるパケットの到着時刻及び受信完了時刻の予測では、受信ノ ードより得られたレポートの到着時刻において、レポートで示される経路状態を有効と しており、データパケット 500-3の予測にあたっても、レポートで示される経路状態をそ のまま適用している。すなわち、データパケット 500-3の到着時刻の予測にあたって、 データパケット 500-3の送信時刻 T9に伝送遅延 IIをカ卩えた時刻 Ti lと予測している。 このような予測の結果によれば、予測したデータパケット 500-3の到着時刻 T11と、実 際のデータパケット 500-3の到着時刻 T14との差は、時間 ID2である。

[0222] 従って、実際の到着時間との誤差時間 ID1と誤差時間 ID2とでは、本発明による予 測による誤差時間 ID1の方が、誤差時間 ID2よりも誤差が少ないことは、図面からも明 らかである。

[0223] 次に、以上説明したような到着時刻推定を含む、スケジューラの経路選択の手順を 図 12に示す。

[0224] まず、キューイング部 312により、パケットが受信される(Step 100)。

[0225] 次に、いずれかの経路で、その経路から最後のパケットを送信した後に経路状態情 報が更新された力 ^判断する(Step 101)。経路状態情報が更新された場合には、 更新された全ての経路で、経路状態情報が有効となる以前の送信履歴を削除する( Step 102)。

[0226] 続いて、各経路において、経路状態情報と送信履歴とに基づいて、パケットの到着 時刻を予測 (推定)する(Step 103)。そして、予測 (推定)到着時刻が最も早い経 路にパケットを送信する(Step 104)。

[0227] 最後に、パケット送信に用いた経路の送信履歴を更新する(Step 105)。

[0228] 以上の如ぐ経路状態情報更新の際にはそれ以前に送信済みのパケットの到着時 刻予測が修正され、それ以降のパケット送信の際の判断に反映されるので、結果的 に過去の送信実績の補償が可能になる。この補償の効果は各経路の往復遅延が大 きぐ経路の状態変動の周期に対して無視できない場合に顕著になる。以下にその 理由を述べる。

[0229] 経路の状態変動が往復遅延程度の時間で起こる場合、ある状態情報を送信側ノー ドが取得したころには既に当該経路の状態は変わっている力もしれないのでその情 報は信頼するに足らなレ、。したがってパケットを送信する時点で経路選択およびタイ ミング設定を最適に行うことは不可能であり、一般には非最適な経路およびタイミング でパケットが送信されることになる。状態情報更新の際に到着時刻予測を修正するこ とは、既に行われた非最適な送信のインパクトを、状態情報更新間隔分の時間が経

つてから推定することに等しい。例えば、以前に高すぎるレートで送信していた場合、 状態情報の更新により送信済みパケットの到着予測時刻は延長されてその経路の送 信コストは引き上げられる。

[0230] 以上のような、状態情報更新による過去の送信パケットの到着時刻予測の修正は 経路選択の最適化の効果があるが、経路選択のみならず送信タイミング制御に到着 時刻予測の修正をフィードバックすると各経路の輻輳制御も長期的に最適化される。

[0231] 次に、実施するための他の形態について説明する。

[0232] 以下の形態では簡単なタイミング制御を実装した場合の動作を説明する。

[0233] 次に示す他の形態では、上述した形態と同様に送出パケットの受信完了時刻を経 路ごとに推定し、最も評価値の高い経路を選択するが、新たに経路ごとに許容推定 遅延を定義し、推定遅延がその値を超えないよう送信側ノードが送信タイミングを制 御する簡単なタイミング制御を導入することもできる。図 13を用いて本形態の動作を 説明する。

[0234] 図 13中、許容推定遅延を TMとしている。この意味は、 TPの時点でパケットを送出 するにはそのパケットは TM+TPまでに受信完了すると推定されなければならないとい うことである。ところが上述した形態と同様な手段でパケット 400-3の受信完了時刻を 推定すると T8となり、これは TM+TPよりも未来である。したがって推定受信完了時刻 力 STM+TPとなるまでの間、送信側ノード 100はこの経路からパケット 400-3を送出でき なレ、。この場合送信側ノード 100はいずれかの経路の推定受信完了時刻が TM+TP以 下となるまでパケット 400-3を保留し、最も早く保留が解ける経路よりこのパケットを送 信する。以上の形態でのスケジューリングの動作を図 14に示す。

[0235] まず、キューイング部 312により、パケットが受信される(Step 200)。

[0236] 次に、いずれかの経路で、その経路から最後のパケットを送信した後に経路状態情 報が更新された力 ^判断する(Step 201)。経路状態情報が更新された場合には、 更新された全ての経路で、経路状態情報が有効となる以前の送信履歴を削除する( Step 202)。

[0237] 続いて、各経路において、経路状態情報と送信履歴とに基づいて、パケットの到着 時刻を予測 (推定)する(Step 203)。そして、予測 (推定)された到着時刻を用いて 、全ての経路について、(予測 (推定)到着時刻) > (現在時刻 +許容推定遅延)であ るかを判断し (Step 204)、いずれかの経路で(予測(推定)到着時刻)≤ (現在時 亥 IJ +許容推定遅延)である場合には、それらの経路のうち予測 (推定)到着時刻が最 も早レ、経路にパケットを送信する(Step 205)。

[0238] 一方、全ての経路で、(予測 (推定)到着時刻) > (現在時刻 +許容推定遅延)であ る場合には、いずれかの経路で現在時刻が(予測到着時刻一許容推定遅延)となる まで待機し、いずれかの経路で条件を満たした場合には Step 205に進む(Step 206)。

[0239] 最後に、パケット送信に用いた経路の送信履歴を更新する(Step 207)。

[0240] 尚、許容遅延 TMの値は経路ごとに独立に設定してよい。例えば各経路の遅延や 経由するサーバのバッファ量等が大きく異なる場合、特に高負荷下では TMの設定値 を各経路で異なる設定とすることで各経路の帯域の有効活用が図れると考えられる。

[0241] また、経路選択の判断は推定受信完了時刻の他に、例えばパケット欠落率や回線 使用料金などが監視可能であればそれらを優先して評価してもよい。また判断の方 法は送られるデータの属性により異なってもよい。例えば音声データであれば遅延を 、緊急ではなレ、ファイル転送データであれば回線使用料金を重視した選択を行うな どである。本実施例の特徴は、いずれの場合においても、送信ノードが経路状態情 報を更新する際に同時にその更新が有効となる送信パケットまたは時刻を取得し、有 効パケットまたは有効時刻以降の送信履歴より送信コストへのインパクトを推定し、コ スト最小の経路に次のパケットを送信することである。その結果、遅延が大きく経路の 状態変動の時定数に比べ無視できないほど大きい場合にも、過去の非最適な送信 により既に与えてしまったコスト基準へのインパクトをその後の送信タイミングの調整 に反映させることで補償することができ、経路の利用効率を向上させる効果がある。

[0242] 尚、上述した実施例 1、実施例 2、実施例 3、実施例 4及び実施例 5において、ノー ドのフロー識別部 211 , 222と、スケジューラ 213と、再送制御部 214と再送 ID順序チ エック部 221と、フロー順序チェック部 223等をそれぞれ別の部として構成した力こ れらの全部又は一部を、制御プログラムで動作する CPU等で構成しても良い。