(57)【要約】符号化チャネルを介して２つのエンドポイント間でデータを転送するシステム及び方法を開示する。送信元ネットワークからのデータ伝送単位（データ単位）を、エンドポイント間に論理的に配置された符号化コンポーネントで受ける。これら第１データ単位が第２データ単位に細分化されて、転送ネットワークを介して宛先ネットワークへ伝送される。符号化された又は余剰第２データ単位も伝送され、それによりたとえ第２データ単位がいくつか損失しても元の第１データ単位を再作成できるようにする。これらの符号化された第２データ単位は、伝送された第２データ単位の単なるコピー、パリティの第２データ単位、又は消失訂正符号を用いて符号化された第２データ単位であり得る。受側エンドポイントで第２データ単位を受けて、それらを用いて元の第１データ単位を再作成する。
2013526098.tif 000002
【特許請求の範囲】
【請求項１】
信頼できないネットワークを介したデータ通信の速度を上げる方法であって、
通信の２つのエンドポイントのそれぞれに関連付けされた符号化コンポーネントを提供するステップと、
前記エンドポイント間の通信セッションのために前記符号化コンポーネント間に符号化チャネルを確立するステップと、
前記通信に関係する複数のデータパケットを、前記符号化コンポーネントの一方でインターセプトするステップと、
前記複数のデータパケットのそれぞれをセグメント化及びパッケージ化して、セグメント化及びパッケージ化されたデータパケットを提供するステップであって、セグメント化及びパッケージ化された前記データパケットは、前記符号化コンポーネントの他方へ伝送するために、少なくとも１つの符号化データセグメントと少なくとも１つの余剰符号化セグメントとを有する、ステップと、
セグメント化及びパッケージ化された前記データパケットを、前記符号化コンポーネントの前記一方で記憶するステップと、
セグメント化及びパッケージ化された前記データパケットを、所定条件を満たすときに前記符号化チャネルを介して前記符号化コンポーネントの前記他方へ伝送するステップと、
受けた符号化データセグメント及び受けた余剰符号化セグメントに基づいて、前記符号化コンポーネントの前記他方で、前記複数のデータパケットを復号及び再構築するステップと、
再構築した前記データパケットを、前記符号化コンポーネントの前記他方からその個々のエンドポイントへ伝送するステップと
を含む方法。
【請求項２】
請求項１記載の方法であって、前記所定条件はタイマーの終了である、方法。
【請求項３】
請求項２記載の方法であって、前記タイマーは、前記複数のデータパケットの個々の１つがインターセプトされるときに起動する、方法。
【請求項４】
請求項１記載の方法であって、前記所定条件は、リアルタイム性のデータを含むパケットのインターセプトである、方法。
【請求項５】
請求項１記載の方法であって、前記所定条件は、所定数のセグメント化及びパッケージ化された前記データパケットの記憶である、方法。
【請求項６】
請求項１記載の方法であって、前記複数のデータパケットの前記符号化データセグメントと前記少なくとも１つの余剰符号化セグメントとは、前記符号化データセグメントと前記少なくとも１つの余剰符号化セグメントの順序を維持するようにインターリーブ及び伝送される、方法。
【請求項７】
請求項６記載の方法であって、パッケージ化及びセグメント化された前記データパケットは、順序正しくそれぞれのサイズにしたがって記憶され、パッケージ化及びセグメント化された各データパケットからのセグメントが順に伝送される、方法。
【請求項８】
請求項１記載の方法であって、前記複数のデータパケットのそれぞれの前記符号化データセグメントと前記少なくとも１つの余剰符号化セグメントとは、ランダムな順序で伝送される、方法。
【請求項９】
請求項１記載の方法であって、前記符号化データセグメントの１つが前記符号化コンポーネントの前記他方で所定期間内に受けられなかった場合に、前記符号化データセグメントの１つが失われたと判定するステップをさらに含む、方法。
【請求項１０】
請求項９記載の方法であって、前記所定期間は、所与のデータパケットの第１符号化データセグメントを受けたときに設定されるタイマーの終了により判定される、方法。
【請求項１１】
請求項９記載の方法であって、前記所定期間は、リングバッファを参照することにより判定される、方法。
【請求項１２】
請求項１０記載の方法であって、前記リングバッファは紛失した符号化データセグメントのシーケンス番号を追跡して、前記リングバッファが循環して所与の符号化データセグメントのシーケンス番号へ戻ったとき、前記所与の符号化データセグメントが失われたと判定する、方法。
【請求項１３】
請求項９記載の方法であって、所与のセグメント化及びパッケージ化されたデータパケットからの所定数の符号化データセグメントが失われたと判定されたときに、複数のデータパケットからの符号化データセグメントをインターリーブするステップをさらに含む、方法。
【請求項１４】
請求項１記載の方法であって、データパケットをセグメント化及びパッケージ化するステップは、前記データパケットをｎ個の符号化データセグメントにセグメント化及びパッケージ化するステップを含み、ｎ＞１である、方法。
【請求項１５】
請求項１４記載の方法であって、ｎは前記データパケットのサイズに基づいて動的に調整される、方法。
【請求項１６】
請求項１５記載の方法であって、ｎは、符号化データセグメントのサイズが所定の最大転送単位のサイズを超過しないようにして選択される、方法。
【請求項１７】
信頼できないネットワークを介したデータ通信の速度を上げる方法であって、該信頼できないネットワークは、第１エンドポイントから第２エンドポイントへデータパケットを運び、前記方法は、
前記２つのエンドポイント間の通信セッションのために、第１符号化コンポーネントと第２符号化コンポーネントとの間に符号化チャネルを確立するステップであって、
前記第１符号化コンポーネントで、前記２つのエンドポイントの前記第１のものから発され運ばれ前記２つのエンドポイントの他方へ向かう前記メッセージデータパケットの第１のものを検出するステップと、
前記他方のエンドポイントに向かう検出した前記第１のデータパケットメッセージにマークを加えてあるマークをもつマークされたものを作成するステップであって、該あるマークは前記第１エンドポイントが前記データパケットを両方の符号化コンポーネントに既知のプロトコルに従ってセグメント化及び符号化することが可能であることを示し、前記あるマークは複数の使用可能なマークから選択されたものである、ステップと、
前記マークされたメッセージデータパケットを前記他方のエンドポイントへ転送するステップと、
事前に選択された時間期間内に前記第２符号化コンポーネントから前記マークされたメッセージデータパケットへの返信を受けたかを判定することを受けるステップであって、前記時間期間内に返信を受けない場合は、前記第１符号化コンポーネントで、前記第１エンドポイントから運ばれた前記第２エンドポイントへ向かう前記データパケットの第２のものを検出し、前記複数の使用可能なマークから選択された違うマークを、検出した前記第２のデータパケットに追加し、違うマークを付された前記データパケットを前記他方のエンドポイントへ転送する、ステップと、
前記時間期間内に前記第２符号化コンポーネントから返信を受けたことに応答して、前記符号化コンポーネント間に通信チャネルを確立するために制御メッセージを交換するステップと
により前記符号化チャネルを確立するステップと、
前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうち一方で前記通信に関係するデータパケットをインターセプトするステップと、
前記データパケットをセグメント化及びパッケージ化して、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方へ伝送するために符号化データセグメントを提供するステップと、
前記符号化データセグメントと少なくとも１つの余剰符号化セグメントとを、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方へ、前記符号化チャネルを介して伝送するステップと、
前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方で、受けた前記符号化データセグメントに基づいて前記データパケットを復号及び再構築して、前記セグメントの前記損失を補償するステップであって、前記損失は前記信頼できないネットワークで発生する可能性があるものである、ステップと、
再構築した前記データパケットを、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方からその個々のエンドポイントへ伝送するステップと
を含む方法。
【請求項１８】
請求項１６記載の方法であって、前記符号化チャネルを確立するステップはさらに、前記通信セッションを一意に識別する情報を記憶するステップを含む、方法。
【請求項１９】
信頼できないネットワークを介したデータ通信の速度を上げる方法であって、
２つのエンドポイント間の通信セッションのために、第１符号化コンポーネントと第２符号化コンポーネントとの間に符号化チャネルを確立するステップであって、
前記第１符号化コンポーネントで、前記２つのエンドポイントの第１のものから発されて前記２つのエンドポイントの他方へ向かうメッセージを検出するステップと、
前記他方のエンドポイントに向かうマークされたメッセージを作成するステップであって、前記マークされたメッセージはあるマークをもち、該あるマークは前記第１エンドポイントがデータパケットを両方の符号化コンポーネントに既知のプロトコルに従ってセグメント化及び符号化することが可能であることを示し、前記あるマークは複数の使用可能なマークから選択されたものである、ステップと、
前記マークされたメッセージを前記他方のエンドポイントへ転送するステップと、
事前に選択された時間期間内に前記第２符号化コンポーネントから前記マークされたメッセージへの返信を受けたかを決定することを受けるステップであって、前記時間期間内に返信を受けない場合は、前記複数の使用可能なマークから選択された違うマークをもつ新しいマークされたメッセージを作成し、該新しいマークされたメッセージを前記他方のエンドポイントへ転送する、ステップと、
前記時間期間内に前記第２符号化コンポーネントから返信を受けたことに応答して、前記符号化コンポーネント間に通信チャネルを確立するために制御メッセージを交換するステップと
により前記符号化チャネルを確立するステップと、
前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうち一方で、前記通信に関係するデータパケットをインターセプトするステップと、
前記データパケットをセグメント化及びパッケージ化して、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの他方へ伝送するために符号化データセグメントを提供するステップと、
前記符号化データセグメントと少なくとも１つの余剰符号化セグメントとを、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方へ、前記符号化チャネルを介して伝送するステップと、
前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方で、受けた前記符号化データセグメントに基づいて、前記データパケットを復号及び再構築するステップと、
再構築した前記データパケットを、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方からその個々のエンドポイントへ伝送するステップと
を含み、
所定時間内に返信を受けない場合は、前記複数の使用可能なマークからさらなるマークを選択することにより、さらなるマークされたメッセージが作成され、
前記複数の使用可能なマークのいずれについても返信を受けない場合は、ネットワークマネージャは、前記第２エンドポイントは前記第１エンドポイントとの通信の速度を上げることができないことを告げられる、方法。
【請求項２０】
請求項１６記載の方法であって、後続の通信セッションで使用するために前記あるマークのアイデンティフィケーションを記憶するステップをさらに含む、方法。
【請求項２１】
請求項１６記載の方法であって、符号化データパケットが所定タイムアウト期間内に伝送されない場合はテアダウン状態に入るステップをさらに含む、方法。
【請求項２２】
信頼できないネットワークを介したデータ通信の速度を上げる方法であって、
２つのエンドポイント間の通信セッションのために、第１符号化コンポーネントと第２符号化コンポーネントとの間に符号化チャネルを確立するステップであって、
前記第１符号化コンポーネントで、前記２つのエンドポイントの第１のものから発されて前記２つのエンドポイントの他方へ向かうメッセージを検出するステップと、
前記他方のエンドポイントに向かうマークされたメッセージを作成するステップであって、前記マークされたメッセージはあるマークをもち、該あるマークは前記第１エンドポイントがデータパケットを両方の符号化コンポーネントに既知のプロトコルに従ってセグメント化及び符号化することが可能であることを示し、前記あるマークは複数の使用可能なマークから選択されたものである、ステップと、
前記マークされたメッセージを前記他方のエンドポイントへ転送するステップと、
事前に選択された時間期間内に前記第２符号化コンポーネントから前記マークされたメッセージへの返信を受けたかを判定することを受けるステップであって、前記時間期間内に返信を受けない場合は、前記複数の使用可能なマークから選択された違うマークをもつ新しいマークされたメッセージを作成し、該新しいマークされたメッセージを前記他方のエンドポイントへ転送する、ステップと、
前記時間期間内に前記第２符号化コンポーネントから返信を受けたことに応答して、前記符号化コンポーネント間に通信チャネルを確立するために制御メッセージを交換するステップと
により前記符号化チャネルを確立するステップと、
前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうち一方で前記通信に関係するデータパケットをインターセプトするステップと、
前記データパケットをセグメント化及びパッケージ化して、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方へ伝送するために符号化データセグメントを提供するステップと、
前記符号化データセグメントと少なくとも１つの余剰符号化セグメントとを、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方へ、前記符号化チャネルを介して伝送するステップと、
前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方で、受けた前記符号化データセグメントに基づいて、前記データパケットを復号及び再構築するステップと、
再構築した前記データパケットを、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方からその個々のエンドポイントへ伝送するステップと、
符号化データパケットが所定タイムアウト期間内に伝送されない場合はテアダウン状態に入るステップと
を含み、
前記テアダウン状態中は、新しく受けたデータパケットがセグメント化及びパッケージ化されない、方法。
【請求項２３】
請求項１６記載の方法であって、前記第１符号化コンポーネント及び前記第２符号化コンポーネントは他の符号化コンポーネントに優先する、方法。
【請求項２４】
信頼できないネットワークを介したデータ通信の速度を上げる方法であって、
２つのエンドポイント間の通信セッションのために、第１符号化コンポーネントと第２符号化コンポーネントとの間に符号化チャネルを確立するステップであって、
前記第１符号化コンポーネントで、前記２つのエンドポイントの第１のものから発されて前記２つのエンドポイントの他方へ向かうメッセージを検出するステップと、
前記他方のエンドポイントに向かうマークされたメッセージを作成するステップであって、前記マークされたメッセージはあるマークをもち、該あるマークは前記第１エンドポイントがデータパケットを両方の符号化コンポーネントに既知のプロトコルに従ってセグメント化及び符号化することが可能であることを示し、前記あるマークは複数の使用可能なマークから選択されたものである、ステップと、
前記マークされたメッセージを前記他方のエンドポイントへ転送するステップと、
事前に選択された時間期間内に前記第２符号化コンポーネントから前記マークされたメッセージへの返信を受けたかを判定することを受けるステップであって、前記時間期間内に返信を受けない場合は、前記複数の使用可能なマークから選択された違うマークをもつ新しいマークされたメッセージを作成し、該新しいマークされたメッセージを前記他方のエンドポイントへ転送する、ステップと、
前記時間期間内に前記第２符号化コンポーネントから返信を受けたことに応答して、前記符号化コンポーネント間に通信チャネルを確立するために制御メッセージを交換するステップと
により前記符号化チャネルを確立するステップと、
前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうち一方で前記通信に関係するデータパケットをインターセプトするステップと、
前記データパケットをセグメント化及びパッケージ化して、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの他方へ伝送するために符号化データセグメントを提供するステップと、
前記符号化データセグメントと少なくとも１つの余剰符号化セグメントとを、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方へ、前記符号化チャネルを介して伝送するステップと、
前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方で、受けた前記符号化データセグメントに基づいて、前記データパケットを復号及び再構築するステップと、
再構築した前記データパケットを、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方からその個々のエンドポイントへ伝送するステップと
を含み、前記第１符号化コンポーネント及び前記第２符号化コンポーネントは他の符号化コンポーネントに優先するものであり、前記方法は、
前記第１符号化コンポーネントで、前記第１符号化コンポーネント及び前記第２符号化コンポーネント以外の符号化コンポーネントから、マークされたパケットを受けるステップと、
優先を主張するステップであって、
前記マークされたパケットからマーキングを除去するステップと、
前記第１符号化コンポーネント及び第２符号化コンポーネント間に前記符号化チャネルを確立するステップと
により、前記優先を主張するステップと
を含む、方法。
【請求項２５】
信頼できないネットワークを介したデータ通信の速度を上げる方法であって、
２つのエンドポイント間の通信セッションのために、第１符号化コンポーネントと第２符号化コンポーネントとの間に符号化チャネルを確立するステップであって、
前記第１符号化コンポーネントで、前記２つのエンドポイントの第１のものから発されて前記２つのエンドポイントの他方へ向かうメッセージを検出するステップと、
前記他方のエンドポイントに向かうマークされたメッセージを作成するステップであって、前記マークされたメッセージはあるマークをもち、該あるマークは前記第１エンドポイントがデータパケットを両方の符号化コンポーネントに既知のプロトコルに従ってセグメント化及び符号化することが可能であることを示し、前記あるマークは複数の使用可能なマークから選択されたものである、ステップと、
前記マークされたメッセージを前記他方のエンドポイントへ転送するステップと、
事前に選択された時間期間内に前記第２符号化コンポーネントから前記マークされたメッセージへの返信を受けたかを判定することを受けるステップであって、前記時間期間内に返信を受けない場合は、前記複数の使用可能なマークから選択された違うマークをもつ新しいマークされたメッセージを作成し、該新しいマークされたメッセージを前記他方のエンドポイントへ転送する、ステップと、
前記時間期間内に前記第２符号化コンポーネントから返信を受けたことに応答して、前記符号化コンポーネント間に通信チャネルを確立するために制御メッセージを交換するステップと
により前記符号化チャネルを確立するステップと、
前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうち一方で前記通信に関係するデータパケットをインターセプトするステップと、
前記データパケットをセグメント化及びパッケージ化して、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの他方へ伝送するために符号化データセグメントを提供するステップと、
前記符号化データセグメントと少なくとも１つの余剰符号化セグメントとを、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方へ、前記符号化チャネルを介して伝送するステップと、
前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方で、受けた前記符号化データセグメントに基づいて、前記データパケットを復号及び再構築するステップと、
再構築した前記データパケットを、前記第１符号化コンポーネント及び前記第２符号化コンポーネントのうちの前記他方からその個々のエンドポイントへ伝送するステップと
を含み、
前記第１符号化コンポーネント及び前記第２符号化コンポーネントは、特定の符号化コンポーネントから受けたマークされたパケットを無視し、前記マークされたパケットを透過的に伝送するように構成された、方法。
【請求項２６】
請求項２１記載の方法であって、前記符号化コンポーネントは、アクティブでない期間中にキープアライブメッセージをさらに伝送する、方法。
【請求項２７】
請求項１６記載の方法であって、前記エンドポイントの１つはマスターエンドポイントとして指定され、前記方法は、前記マスターエンドポイントが、前記符号化チャネルのテアダウンが示されたかを判定するステップをさらに含む、方法。
【請求項２８】
請求項２７記載の方法であって、前記マスターエンドポイントは、所定期間内に新しいデータパケットを受けなかった場合に、テアダウンが示されたと判定する、方法。
【請求項２９】
信頼できないネットワークにおいて２つのエンドポイント間のデータ通信の速度を上げるように、データを符号化するための符号化レートを設定する方法であって、該２つのエンドポイントはそれぞれ、個々に符号化コンポーネントと関連付けされており、前記方法は、
前記エンドポイント間の通信セッションのために、前記符号化コンポーネント間に符号化チャネルを確立するステップと、
前記符号化コンポーネントの一方で前記通信に関係するデータパケットをインターセプトするステップと、
前記データパケットをセグメント化及びパッケージ化して、前記符号化コンポーネントの他方へ伝送するために符号化データセグメントを提供するステップと、
前記符号化データセグメントと少なくとも１つの余剰符号化セグメントとを、前記符号化コンポーネントの前記他方へ、前記符号化チャネルを介して伝送するステップと、
前記符号化コンポーネントの前記他方で、受けた前記符号化データセグメントに基づいて、前記データパケットを復号及び再構築するステップと、
再構築した前記データパケットを、前記符号化コンポーネントの前記他方からその個々のエンドポイントへ伝送するステップと、
前記通信セッションのために重み付け損失比率を計算するステップと、
前記重み付け損失比率に基づいて前記符号化レートを調節するステップと、
を含む、方法。
【請求項３０】
請求項２９記載の方法であって、前記重み付けされた比率を計算するステップは、前記重み付けされた比率を先行する通信セッションの平均損失比率に従って計算するステップを含む、方法。
【請求項３１】
請求項２９記載の方法であって、前記重み付けされた比率を計算するステップは、前記重み付けされた比率を再送要求に従って計算するステップを含む、方法。
【請求項３２】
請求項２９記載の方法であって、前記重み付け損失比率に従って現在の損失レベルを計算するステップをさらに含む、方法。
【請求項３３】
請求項３２記載の方法であって、前記重み付け損失比率は正規化される、方法。
【請求項３４】
請求項３２記載の方法であって、前記現在の損失レベルは前記符号化コンポーネントの前記他方へ通信される、方法。
【請求項３５】
請求項３４記載の方法であって、前記現在の損失レベルは前記符号化データセグメントの１つのヘッダ部で通信される、方法。
【請求項３６】
請求項３５記載の方法であって、前記ヘッダ部はさらに、所望のレベルの保護を識別する、方法。
【請求項３７】
請求項３６記載の方法であって、前記所望のレベルの保護は、ネットワークポリシーに従って構成された損失目標に従って判定される、方法。
【請求項３８】
請求項３４記載の方法であって、前記現在の損失レベルは、制御チャネルを介して通信される、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連する出願に対する相互参照
［０００１］この出願は、２００８年８月１８日付出願の米国特許出願第１２／１９３，３４５号の一部継続出願であり、これは２００４年８月６日付出願の米国特許出願第１０／９１２，２００号の一部継続出願であって現在は２０１０年６月２２日付発行の米国特許第７，７４２，５０１号になっているもので、その出願の内容全体を参照によってここに援用する。
【０００２】
［０００２］本発明は、通信データネットワークに関する。より詳細には、本発明は、転送ネットワークの末端部からみて、転送ネットワークを介したデータ伝送のスループットを増大させるためのシステム及び方法に関する。
【背景技術】
【０００３】
［０００３］全てではないがほとんどの転送ネットワークはパケットベースのネットワークであり、このようなネットワークではデータストリームはより小さいパケットのデータにセグメント化されてから、第１送信元ネットワークすなわちエンドポイントから第３宛先ネットワークすなわちエンドポイントへ、第２転送ネットワークを介して伝送される。しかし、輻湊及び他のネットワークの制限により、全てのパケットが宛先ネットワークに首尾よく到着するとは限らない。送信元及び宛先ネットワークにとって重要なことは、転送ネットワークの性能である。転送ネットワークは、理想的にはエンドネットワークのアプリケーションから見て損失パケットのない完璧なものでなければならない。しかし、このような性能も、高性能の転送ネットワークを借りるのに通常かかる費用よりも安価で利用できなければ好まれないであろう。
【０００４】
［０００４］したがって、低コストの通信転送ネットワークとともに用いることができて、エンドネットワークアプリケーションからみて高性能な転送ネットワークを提供できるシステム及び方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
［０００５］上述の状況に対処するためのアプローチが試みられている。あるアプローチでは、損失及び待ち時間に対する応答を向上するために、カスタムプロトコルスタックがエンドポイントでインストールされる。しかし、このアプローチは、双方のエンドネットワークが同じカスタムプロトコルに従って通信することを要求し、これには大規模な再プログラミングが要求されることが通常である。
【０００６】
［０００６］別のアプローチはネットワーク要素を用いるもので、ネットワーク要素が標準プロトコルをインターセプトし、プロトコル応答をファーエンド要素に代わって送出する。そして、インターセプトしているネットワーク要素間でカスタムプロトコルが用いられる。このアプローチはＴＣＰ／ＩＰアプリケーションに限定され、特にネットワーク問題のトラブルシューティングに関して複雑度を増すことにもなる。
【課題を解決するための手段】
【０００７】
［０００７］第１態様では、信頼できないネットワークを介したデータ通信の速度を上げる方法が提供される。この方法は、通信の２つのエンドポイントのそれぞれに関連付けされた符号化コンポーネントを提供するステップと、エンドポイント間の通信セッションのために符号化コンポーネント間に符号化チャネルを確立するステップと、通信に関係する複数のデータパケットを符号化コンポーネントの１つでインターセプトするステップと、複数のデータパケットのそれぞれをセグメント化及びパッケージ化して、セグメント化及びパッケージ化されたデータパケットを提供するステップであって、セグメント化及びパッケージ化されたデータパケットは、符号化コンポーネントの他方へ伝送するために、少なくとも１つの符号化データセグメントと少なくとも１つの余剰符号化セグメントとを有する、ステップと、セグメント化及びパッケージ化されたデータパケットを、符号化コンポーネントの一方で記憶するステップと、セグメント化及びパッケージ化されたデータパケットを、所定条件を満たすときに符号化チャネルを介して符号化コンポーネントの他方へ伝送するステップと、符号化コンポーネントの他方で、受けた符号化データセグメント及び受けた余剰符号化セグメントに基づいて、複数のデータパケットを復号及び再構築するステップと、再構築されたデータパケットを符号化コンポーネントの他方からその個々のエンドポイントへ伝送するステップ、とを含む。
【０００８】
［０００８］所定条件はタイマーの終了であることがあり、タイマーは例えば複数のデータパケットの個々の１つがインターセプトされるときに起動することができる。所定条件は、リアルタイム性のデータを含むパケットのインターセプトや、所定数のセグメント化及びパッケージ化されたデータパケットの記憶であってもよい。
【０００９】
［０００９］複数のデータパケットの符号化データセグメント及び少なくとも１つの余剰符号化セグメントは、それらの順序を維持するようにしてインターリーブ及び伝送することが可能である。例えば、パッケージ化及びセグメント化されたデータパケットを、順序正しくそれぞれのサイズにしたがって記憶することができ、パッケージ化及びセグメント化された各データパケットからのセグメントを順に伝送することができる。あるいは、複数のデータパケットの各々の符号化データセグメント及び少なくとも１つの余剰符号化セグメントは、ランダムな順序で伝送される。
【００１０】
［００１０］この方法はさらに、符号化データセグメントの１つを符号化コンポーネントの他方で所定期間内に受けなかった場合、例えば、所与のデータパケットの第１符号化データセグメントを受けたときに設定されるタイマーが終了したときに、又は、リングバッファを参照することにより、符号化データセグメントの１つが失われたと判定するステップを含むことができる。後者の場合、リングバッファは紛失した符号化データセグメントのシーケンス番号を追跡して、リングバッファが循環して所与の符号化データセグメントのシーケンス番号へ戻ったとき、所与の符号化データセグメントが失われたと判定することができる。この方法はさらに、所与のセグメント化及びパッケージ化されたデータパケットからの所定数の符号化データセグメントが失われたと判定されたときに、複数のデータパケットからの符号化データセグメントをインターリーブするステップを含むことができる。
【００１１】
［００１１］データパケットをセグメント化及びパッケージ化するステップは、データパケットをｎ個の符号化データセグメントにセグメント化及びパッケージ化するステップを含むことができ、ここでｎ＞１である。この場合、ｎはデータパケットのサイズに基づいて動的に調節することができる。例えば、ｎは、符号化データセグメントのサイズが所定の最大転送単位のサイズを超過しないようにして選択することができる。
【００１２】
［００１２］さらなる態様では、信頼できないネットワークを介したデータ通信の速度を上げる方法が提供される。この方法は、２つのエンドポイント間の通信セッションのために、第１符号化コンポーネントと第２符号化コンポーネントとの間に符号化チャネルを確立するステップを含み、この確立するステップは、第１符号化コンポーネントで、２つのエンドポイントの第１のものから発されて２つのエンドポイントの他方へ向かうメッセージを検出するステップと、他方のエンドポイントへ向かうマークされたメッセージを作成するステップであって、このマークされたメッセージはあるマークをもち、このあるマークは、第１エンドポイントがデータパケットを両方の符号化コンポーネントに既知のプロトコルに従ってセグメント化及び符号化することが可能であることを示し、上記あるマークは複数の使用可能なマークから選択されたものである、ステップと、マークされたメッセージを他方のエンドポイントへ転送するステップと、マークされたメッセージへの応答を第２符号化コンポーネントから受けるステップと、符号化コンポーネント間に通信チャネルを確立するために制御メッセージを交換するステップと、により行われるステップであり、この方法はさらに、第１及び第２符号化コンポーネントの一方で、通信に関係するデータパケットをインターセプトするステップと、データパケットをセグメント化及びパッケージ化して、第１及び第２符号化コンポーネントの他方へ伝送するために符号化データセグメントを提供するステップと、符号化データセグメント及び少なくとも１つの余剰符号化セグメントを、符号化チャネルを介して第１及び第２符号化コンポーネントの他方へ伝送するステップと、受けた符号化データセグメントに基づいて、第１及び第２符号化コンポーネントの他方でデータパケットを復号及び再構築するステップと、再構築したデータパケットを第１及び第２符号化コンポーネントの他方からその個々のエンドポイントへ伝送するステップとを含む。
【００１３】
［００１３］この態様によれば、符号化チャネルを確立するステップはさらに、通信セッションを一意に識別する情報を記憶するステップを含むことができる。マークのアイデンティフィケーションは、符号化コンポーネント間の後続する通信セッションで使用するために記憶することができる。所定時間内に返信を受けない場合は、さらなるマークを複数の使用可能なマークから選択することにより、さらなるマークされたメッセージを作成することができる。複数の使用可能なマークのいずれについても返信を受けない場合は、ネットワークマネージャは、第２エンドポイントは、第１エンドポイントとの通信の速度を上げることができないことを告げられる。
【００１４】
［００１４］この方法はさらに、符号化データパケットが所定のタイムアウト期間内に伝送されなければテアダウン状態に入るステップを含むことができる。テアダウン状態中、新しく受けたデータパケットはセグメント化及びパッケージ化されない。符号化コンポーネントはさらに、アクティブでない期間中にキープアライブメッセージを伝送することができる。エンドポイントの１つをマスターエンドポイントとして指定することもでき、そしてこの方法はマスターエンドポイントをさらに含むことができ、マスターエンドポイントは、符号化チャネルのテアダウンが示されたかを判定する。例えば、マスターエンドポイントは、所定期間内に新しいデータパケットを受けなかった場合に、テアダウンが示されたと判定することができる。
【００１５】
［００１５］第１及び第２符号化コンポーネントは、他の符号化コンポーネントに優先することができる。これらが優先される場合、この方法はさらに、第１符号化コンポーネントで、マークされたパケットを第１及び第２符号化コンポーネント以外の符号化コンポーネントから受けるステップと、マークされたパケットからマーキングを除去して、第１符号化コンポーネントと第２符号化コンポーネントとの間に符号化チャネルを確立することにより優先を主張するステップとを含むことができる。第１及び第２符号化コンポーネントはさらに、特定の符号化コンポーネントから受けるマークされたパケットを無視し、マークされたパケットを透過的に伝送するように構成することができる。
【００１６】
［００１６］さらなる態様では、信頼できないネットワークにおいて２つのエンドポイント間のデータ通信の速度を上げるように、データを符号化するための符号化レートを設定する方法が提供され、２つのエンドポイントはそれぞれ、個々に符号化コンポーネントと関連付けされており、この方法は、エンドポイント間の通信セッションのために、符号化コンポーネント間に符号化チャネルを確立するステップと、通信に関係するデータパケットを、符号化コンポーネントの一方でインターセプトするステップと、データパケットをセグメント化及びパッケージ化して、符号化コンポーネントの他方へ伝送するための符号化データセグメントを提供するステップと、符号化データセグメントと少なくとも１つの余剰符号化セグメントとを、符号化チャネルを介して符号化コンポーネントの他方へ伝送するステップと、符号化コンポーネントの他方で、受けた符号化データセグメントに基づいてデータパケットを復号及び再構築するステップと、再構築したデータパケットを符号化コンポーネントの他方からその個々のエンドポイントへ伝送するステップと、その通信セッションのために重み付け損失比率を計算するステップと、符号化レートを、重み付け損失比率に基づいて調節するステップとを含む。この重み付けされた比率を計算するステップは、例えば、先行する通信セッションの平均損失比率に従って又は再送要求に従って、重み付けされた比率を計算するステップを含む。
【００１７】
［００１７］この方法はさらに、重み付け損失比率に従って現在の損失レベルを計算するステップを含むことができる。重み付け損失比率を正規化することもできる。現在の損失レベルは、例えば制御チャネルを介して、又は符号化データセグメントの１つのヘッダ部で、符号化コンポーネントの他方へ通信することができる。ヘッダ部はさらに、所望のレベルの保護を識別することができ、所望レベルの保護は、ネットワークポリシーに従って構成された損失目標に従って判定することが可能である。
【００１８】
［００１８］本発明の他の態様及び特徴は、以下の本発明の特定の実施形態の記載及び添付図面を見れば、当業者には明らかであろう。
【図面の簡単な説明】
【００１９】
【図１】本発明が実施され得る環境のブロック図である。
【図２】図１で用いられるサーバのコンポーネントを示すブロック図である。
【図３】図１で用いられる別のサーバのコンポーネントを示すブロック図である。
【図４】本発明の実施形態によるバーストモードの例を示す。
【図５】本発明の実施形態によるマルチレベルのバーストモードの例を示す。
【図６】第１データ単位を受けてそれらを転送ネットワークへ伝送するために第２データ単位へ変換するときに実行されるステップを示すフロー図である。
【図７】転送ネットワークから第２データ単位を受けてそれらをエンドネットワークへ伝送するために第１データ単位に変換するときに実行されるステップを示すフロー図である。
【図８】本発明の実施形態による、例示的なシステム及び接続交渉プロトコルを示す。
【図９】本発明の実施形態による、複数の符号化コンポーネントをもつネットワークの例を示す。
【図１０】本発明による、パケットの一般的なセグメント化及び符号化を示す。
【図１１】本発明の実施形態による、パケットの例示的なセグメント化及び符号化を示す。
【図１２】本発明の実施形態による、損失を評価するための第１のアルゴリズム例を示す。
【図１３】本発明の実施形態による、平均損失を考慮した実施形態の例を示す。
【発明を実施するための形態】
【００２０】
［００３３］図１を参照すると、本発明が実施され得る環境のブロック図が示されている。第１エンドポイント１０は、ネットワーク２０を介して第２エンドポイント３０と通信する。第１エンドポイント１０とネットワーク２０とは、符号／復号化コンポーネント４０を介して通信し、ネットワーク２０は、符号／復号化コンポーネント５０を介して第２エンドポイント３０と通信する。符号／復号化コンポーネント４０及び５０を以降では符号化コンポーネントと称し、これらはエンドポイント又は中間装置（サーバ等）に存在し得る。第１エンドポイント１０及び第２エンドポイント３０は端末であることがあり、端末は、モデム、ローカル若しくは広域ネットワークを介して接続されたパーソナルコンピュータ、又はネットワーク２０へアクセスできる他の装置又はシステム等である。ネットワーク２０は、例えば、インターネット又は他の通信ネットワークであり得る。
【００２１】
［００３４］本明細書において、データ単位は、ネットワークを介してデータをデジタルに伝送するために使用できる任意のデータの単位である。このようなデータ単位は、パケット、セル、フレーム、又は任意の別の単位の形をとることができ、データがその単位内にカプセル化されるか、又はペイロードとして搬送されていればよい。データ単位という用語は、特定のプロトコル、規格、又は伝送方式を実装する任意の全てのパケット及びフレームへ適用可能である。典型的には、ルーティング、制御、及び識別の情報を搬送するヘッダが、データペイロードへ追加される。
【００２２】
［００３５］本システムは、ネットワーク２０の不測の変動からエンドポイントを分離する手段を提供する。符号化コンポーネント４０及び５０にはエンドポイント１０及び３０をネットワーク２０から分離する手段が提供され、この手段は符号化コンポーネント４０及び５０がデータ単位の符号化及び復号を処理してネットワーク２０を介してそれらを伝送することによるものである。エンドポイント１０及び３０は、任意のプロトコルを用いて通信することができ、符号化コンポーネント４０及び５０も任意のプロトコルを用いて通信することができる。符号化コンポーネント４０及び５０は、あるプロトコルでエンドポイント１０及び３０から元のデータ単位を受けて元のデータ単位を符号化し、符号化は、元のデータ単位を好ましくはより小さいデータ単位に細分し、データ単位のいくつかが転送ネットワークを介した伝送で失われた場合に元のデータ単位を再作成又は再構成するために使用できる余剰データ単位を作成し、細分化されたデータ単位と余剰データ単位を転送ネットワークを介して伝送する前に、それらを考慮中のプロトコルに従って再パッケージ化することにより行われる。
【００２３】
［００３６］転送ネットワーク２０を介して伝送されたデータ単位を、ファーエンドポイントと関連付けされた符号化コンポーネントが受けると、発側エンドポイントからの元のデータ単位が再作成又は再構成される。この再作成又は再構成は、受けたデータ単位を必要に応じて並び替えることと、いくつかのデータ単位が伝送中に失われた場合は、余剰データ単位を用いて紛失したデータ単位を再作成することとにより行われる。受けた余剰データ単位が、元のデータ単位を再作成するには不十分である場合は、受側の符号化コンポーネントが、すでに送出されたデータ単位の再送をオプションで要求することができる。
【００２４】
［００３７］説明し易いように、エンドポイントから発されたデータ単位又はエンドポイントで受けたデータ単位は、第１データ単位又はパケットと称するものとし、これを第１タイプのデータ単位とする。転送ネットワークを介して伝送されたデータ単位及び転送ネットワークから受けたデータ単位の一方又は双方は、第２データ単位又はセグメントと称するものとし、これを第２タイプのデータ単位とする。第２データ単位は、符号化データ単位とも称する。
【００２５】
［００３８］図２は、本発明を符号化コンポーネント４０内に実装するために必要なモジュール及びモジュールの個々のデータフローの例示的な実施形態を示す。モジュールは、１つの装置内にあるか、又はいくつかの装置に分散してもよい。見ればわかるように、符号化コンポーネント４０は、第１インターフェース６０、第２インターフェース７０、再構築モジュール８０、及びセグメント化モジュール９０を含む。第１インターフェース６０は、第１データ単位をエンドポイント１０へ送出し、第１データ単位をエンドポイント１０から受ける。サーバ４０の第２インターフェース７０は、第２データ単位を転送ネットワーク２０へ送出し、第２データ単位を転送ネットワーク２０から受ける。
【００２６】
［００３９］再構築モジュール８０は、第２データ単位を第２インターフェース７０から受けて第１データ単位を生成し、第１インターフェース６０を経由して第１ネットワーク１０へ伝送できるようにする。一方、セグメント化モジュール９０は、第１データ単位を第１インターフェース６０から受けて第２データ単位を生成し、第２インターフェース７０を経由して転送ネットワーク２０へ伝送できるようにする。
【００２７】
［００４０］第２データ単位は、転送ネットワークを介して伝送されると、他方のエンドポイントの符号化コンポーネントで受け取られる。これを説明するために、図３は符号化コンポーネント５０のモジュール及びデータフローの例示的な実施形態を示しており、符号化コンポーネント５０は転送ネットワーク及びエンドポイント３０と通信している。
【００２８】
［００４１］符号化コンポーネント５０のモジュールは、符号化コンポーネント４０のモジュールと同じであり、すなわち同じ機能を有している。符号化コンポーネント５０の第２インターフェース７０Ａも、転送ネットワークと通信して第２データ単位の送出及び受取を行う。第１インターフェース６０Ａもエンドポイント（この場合はエンドポイント３０）と通信して第１データ単位の送出及び受取を行う。再構築モジュール８０Ａは第２データ単位を受けて第１データ単位を生成し、セグメント化モジュール９０Ａは第１データ単位を受けて第２データ単位を生成する。
【００２９】
［００４２］上述したように、第１データ単位はエンドネットワークで使用されるデータ単位であり、第２データ単位は、転送ネットワーク及び符号化コンポーネント４０、５０で互いにデータの伝送をやり取りするときに使用されるものである。第２データ単位は、第１データ単位から得られる。第１データ単位のペイロードは、より小さな単位に分割されて、より小さな単位のそれぞれが、第２データ単位のペイロードになり得る。そのため、各第２データ単位は、該第２データ単位が得られた元の第１データ単位よりも小さくなり得る。例えば、１０ｋＢの第１データ単位を５つの２ｋＢの単位へ細分化してもよい。これらが５つの第２データ単位のペイロードになることができ、それぞれ１０ｋＢよりも小さいものになることができる。第２データ単位を第１データ単位から作成するこの機能は、セグメント化モジュール９０、９０Ａにより達成される。
【００３０】
［００４３］第２データ単位が得られた元の第１データ単位の再作成を補助するために、セグメント化モジュールはさらに、余剰第２データ単位を作成する。これらの余剰第２データ単位は、第１及び第２データ単位から得られる。余剰第２データ単位は、１又は複数の第２データ単位が転送ネットワークを介した伝送中に失われた場合に、再構築モジュール８０、８０Ａが元の第１データ単位を再作成又は再構築するのを補助する。
【００３１】
［００４４］余剰第２データ単位は、多くの形をとることができる。おそらく最も単純な実施形態では、余剰第２データ単位は、すでに送出された第２データ単位のうちで選択されたものの単なるコピーである。例えば、第１データ単位が４つの第２データ単位（例えば、ＤＵ１、ＤＵ２、ＤＵ３、ＤＵ４）に分割又はセグメント化されれば、余剰第２データ単位はＤＵ２及びＤＵ３のコピーであってもよい。したがって、ＤＵ２又はＤＵ３が伝送中に失われた場合も、元の第１データ単位は依然として再作成が可能である。重複している第２データ単位の数及びアイデンティフィケーションは、あらかじめ決めておくか、又はシステムアドミニストレータの裁量に任せることができる。重複している第２データ単位をより多く含むことによりシステムにより冗長性をもたせること、又はその逆を行い冗長性を低減することが可能であり、これはネットワーク２０の損失の実際の損失又は予想される損失に依存して行うことができる。最も単純な場合では、第２データ単位を全て重複させて、基本的に、第２データ単位のコピーがそれぞれ２つずつ宛先符号化コンポーネントへ送出されるようにすることができる。
【００３２】
［００４５］パリティデータ単位を第２余剰データ単位として用いることもできる。当該分野で既知であるように、パリティデータ単位は、ＸＯＲ関数を用いて作成することができる。元の第１データ単位から作成されたさまざまな第２データ単位のビットをＸＯＲ処理してビット値を生じさせることができ、ビット値は余剰第２データ単位に記憶することができる。任意の１つの第２データ単位（余剰第２データ単位は除く）が伝送中に失われた場合、受けた他の第２データ単位及び余剰第２データ単位を用いて失われた第２データ単位を再作成することができる。受けた第２データ単位及び余剰第２データ単位にＸＯＲ関数を実行することで、紛失した第２データ単位が再作成される。
【００３３】
［００４６］余剰第２データ単位は、別の消失訂正符号を用いて符号化することもできる。例えば、ｎ個の第２データ単位がひとつの第１データ単位に対して生成される場合、ｍ個の余剰第２データ単位を生成して、失われた第２データ単位を再作成できるようにしてもよい。上述したように、ｍ個の余剰第２データ単位は「冗長」の第２データ単位とみなされ、単なる重複が用いられるのであればｍ≦ｎであり、完全な重複はｍ＝ｎのときに達成される。しかし、消失訂正コードが用いられて、ｍ＝２であれば、任意の２つの第２データ単位が失われることがあっても、その失われた第２データ単位を再構築モジュールが依然として再構成できるよう、冗長情報を符号化することが可能である。周知の方法及び符号化技術、たとえばリードソロモン、前方消失訂正（Ｆｏｒｗａｒｄ  Ｅｒａｓｕｒｅ  Ｃｏｒｒｅｃｔｉｏｎ）技術、ボース・チョードリ・オッカンガム（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｈｑｕｅｎｇｈｅｍ：ＢＣＨ）符号、及びその他数多くのものを使用することができる。
【００３４】
［００４７］余剰第２データ単位は、いくつかの第２データ単位の損失であればその影響の中和を補助できるであろうが、あまりにも多くの第２データ単位を損失すると完全に補償することができない。したがって、閾値レベルを超えるある数の第２データ単位を損失すると、再構築モジュールに、第２データ単位のパッケージ又はグループの再送をオプションで要求させることができる。例えば、余剰第２データ単位がデータ単位の損失の２５％を回復することができ、４つの第２データ単位が１つの第１データ単位から生成される場合、１つの第２データ単位の損失により再送要求がトリガされることはない。しかし、２つの第２データ単位が損失すれば（すなわち、５０％損失）、再構築モジュールは再送を要求することになる。再送が可能である場合、再送閾値は、余剰又は冗長の第２データ単位に用いられたコーディングの誤り訂正能力又は損失訂正能力に理想的には関係する。再構築モジュールは、セグメント化された第１データ単位それぞれについて受けた第２データ単位の数を追跡することができ、これは再構築モジュールが、第２データ単位のペイロードを正しく配列することが必要になるためである。
【００３５】
［００４８］上記からわかるように、再構築モジュール８０及び８０Ａは、受けた第２データ単位を復号及び再構築して、元の第１データ単位を形成する。受けた第２データ単位及び余剰第２データ単位は、元の第１データ単位を再作成するのに十分な数を受けたかを判定するために追跡される。充分な数を受けていない場合は、オプションで再送が要求される。いくつかの第２データ単位が失われた場合は、再構築モジュールが紛失した第２データ単位を再作成又は再構成することができる。上述したように、この処理は、使用されるコーディング及び採用される全体的戦略に依存する。このような復号及び誤り訂正処理は当該分野に通じている者には周知である。
【００３６】
［００４９］要求数の第２データ単位を受けると、それらのペイロードが抽出されて、第２データ単位が得られた元の第１データ単位を再生成するために用いられる。これは第２データ単位のペイロードを連結することで第１データ単位を再構成するのと同程度に簡単であり得る。しかし、上で述べたように、復号及び再構成の処理は元の第１データ単位をセグメント化又は分割するのに用いられた処理に依存する。元の第１データ単位が再構成されると、それを受側エンドポイントと通信する適切なインターフェースへ転送することができる。
【００３７】
［００５０］セグメント化モジュールは、第１データ単位をセグメント化又は分割し、セグメントを第２データ単位へ「再パッケージ化」するタスクを実行する。セグメント化モジュールはさらに、上で述べたように余剰第２データ単位を符号化する。第２データ単位、これは第１データ単位から得られたもの及び余剰第２データ単位の双方である、がインターフェースモジュールへ伝えられ、インターフェースモジュールは転送ネットワークと通信する。オプションの第２データ単位の再送を促進するために、セグメント化モジュールはさらに、第２データ単位をバッファすることもできる。例えば、５つの第１データ単位が２０の第２データ単位と５つの余剰第２データ単位とへセグメント化された場合、セグメント化モジュールは最後の３セットの第２データ単位をバッファすることができ、この最後の３セットの第２データ単位は、符号化された第１データ単位の最後の３つと対応する。したがって、１２の第２データ単位と３つの余剰第２データ単位とが、セグメント化モジュールのよりバッファされることになる。
【００３８】
［００５１］セグメント化モジュールはさらに、第２データ単位をインターリーブ方式で伝送するように構成し、セグメント化されたさまざまな第１データ単位にわたり複数の第２データ単位を失うリスクを分散する。したがって、第２データ単位のグループを、各グループがひとつの第１データ単位に対応するようにして順次送出するのではなく、さまざまな第１データ単位からの第２データ単位を、互いにインターリーブすることができる。図４は、インターリーブモードの例を示す。この例では、第１データ単位Ａ、Ｂ及びＣは、それぞれ第２データ単位Ａ１、Ａ２；  Ｂ１、Ｂ２、Ｂ３；  Ｃ１、Ｃ２、Ｃ３及びＣ４へセグメント化されるものとする。第２データ単位Ａ２、Ｂ３、及びＣ４は余剰第２データ単位である。それぞれの第１データ単位に従いグループ化されたこれらの第２データ単位を送出するかわりに、これらをｋ個の第１データ単位のグループでインターリーブすることができる。図４の例ではｋ＝３である。符号器はｋ個の第１データ単位に対応する第２データ単位をバッファ１３０３へ記憶する。あるいは、符号器は、所定の時間期間の間に到着するか、又は、時間的制約のある情報をもつパケットが（例えば、ディープパケットインスペクションにより）検出されるまでに到着するある数のパケットを記憶する。並び替えを回避するために、第２データ単位のセットは左へ並べられて、各第１データ単位の最後の第２データが最後尾にきて最後に送出され、各第１データ単位の最初の第２データ単位が先頭にきて初めに伝送されるようにする。符号化コンポーネントは、物理インターフェース１３０４上で、先頭のデータ単位を上から下の順番で伝送するか、又は同じ第１データ単位から生じた２つの連続する第２データ単位を送信することを最小限にする任意の順番で伝送する。図４の例では、第２データ単位は、Ｃ１、Ｂ１、Ｃ２、Ａ１、Ｂ２、Ｃ３、Ａ２、Ｂ３、Ｃ４の順番で送出されることになる。余剰第２データ単位は全て最後に送出することで遅延を最小化することができる。インターリーブはランダムに行うこともできる。インターリーブするデータ単位のグループは、インターフェースから伝送される第２データ単位を全て含むことができ、あるいはインターリーブグループは、同じアプリケーション（例えば、ビデオ会議の同じチャネル）、同じ宛先、又は事前に設定されたグルーピングの、第２データ単位を含むことができる。図５では、インターリーブされた第２データ単位のさまざまなインターリーブされたグループ１４０１、１４０２、１４０３をインターリーブすることにより、別のレベルのインターリーブを実現することができる。このようなインターリーブにより、データ単位を大幅に損失してもその影響を最小限に抑えることができ、採用されているコーディング及び戦略によっては、この種の損失は回復可能である。
【００３９】
［００５２］符号化コンポーネント４０及び５０の一方に実装されるような、本発明に従う例示的な方法を図６に示す。処理は、ステップ１００で第１データ単位を送信元エンドポイントから受けることで開始する。受けた後、次に第１データ単位が分割又はセグメント化され（ステップ１１０）、セグメントは第２データ単位にパッケージ化される（ステップ１２０）。第２データ単位が作成されると、余剰又は冗長の第２データ単位が符号化及び作成される（ステップ１３０）。第２データ単位は次にオプションでバッファされ（ステップ１４０）転送ネットワークへ伝送される（ステップ１５０）。この方法は次に結合子Ａを経由してステップ１００に戻る。再送が可能であれば、再送要求に対するチェックがオプションで非同期的に行われる（ステップ１６０）。再送要求を受けた場合、決定フローはステップ１５０へ戻り、要求された第２データ単位を伝送することができ、この要求された第２データ単位はオプションのステップ１４０ですでにバッファされているものである。
【００４０】
［００５３］図７は、第２データ単位を転送ネットワークから受ける符号化コンポーネントによって実行されるステップの、例示的な実施形態を示す。処理はステップ１８０でサーバが第２データ単位を転送ネットワークから受けるときに開始する。次に決定１９０が、第２データ単位が得られた第１データ単位を再構成するために、第２データ単位を全て受けたかを判定する。第２データ単位を受ける符号化コンポーネントは、第２データ単位を所定時間の経過後も受けていない場合、及び所定数のより大きいシーケンス番号をもつ第２データ単位を受けた場合の一方又は双方の場合に、その第２データ単位が失われたと判定する。第２データ単位が失われたかを判定する別の技術は、リングバッファを用いて紛失した第２データ単位のシーケンス番号を追跡し、それが到着するのを待つものである。バッファが循環してまだ受けていない第２データ単位の上に戻ったとき、第２データ単位は失われたと判断される。第２データ単位を全て受けていれば、ステップ２００で元の第１データ単位が再作成される。第１データ単位が再作成されると、再作成されたデータ単位は宛先エンドポイント（ステップ２０５）へ伝送され、制御フローは結合子Ｄを経由してステップ１８０へ戻る。
【００４１】
［００５４］決定１９０に戻り、第２データ単位を全ては受けていなければ、余剰第２データ単位を受けたかを判定する決定が行われる（ステップ２２０）。余剰第２データ単位を受けていなければ、オプションで再送が要求される（ステップ２３０）。オプションの再送要求の後、制御フローは結合子Ｄを経由してステップ１８０へ戻る。余剰第２データ単位を受けていれば、決定２４０は、元の第１データ単位を再構成するのに十分な、余剰第２データ単位及び第２データ単位を受けたかを判定する。受けた数が不十分であれば、元のパケットはドロップされる可能性があり、又はオプションで、制御フローは結合子Ｃで示されるようにステップ２３０へ戻り再送を要求する可能性がある。充分な数の第２データ単位及び余剰第２データ単位を受けていれば、余剰第２データ単位を用いて紛失した第２データ単位を再作成又は再構成することができる（ステップ２６０）。結合子Ｂで次に制御フローはステップ２００へ戻る。
【００４２】
［００５５］本システム及び方法の動作を理解する助けとなるよう特定の実装例をいくつか挙げる。図８は、エンドポイントＡ及びＢを有する例示的なシステムである。エンドポイントＡは、符号化コンポーネント３０２を介して、ネットワーク３００例えばインターネット、と通信する。エンドポイントＢも符号化コンポーネント３０４を介してネットワーク３００と通信する。符号化コンポーネント３０２及び３０４は、図２及図３に関係して説明したインターフェース、セグメント化モジュール及び再構築モジュールを含み、符号化コンポーネント全体をソフトウェアに実装してもよいし、あらかじめプログラムされたハードウェア装置、他の関連ソフトウェア、又はハードウェアとソフトウェアとを組み合わせたコンポーネントに実装してもよい。イーサネット、又は他の適宜の接続を用いて各エンドポイントをそれぞれの符号化コンポーネントへ接続することができる。
【００４３】
［００５６］この例では、双方向通信がエンドポイントＡとＢとの間に生じ、エンドポイントＡが通信を開始するものとする。考慮中の通信プロトコルを、エンドポイントＡ及びＢはともに見ることができない。全ての機能性が符号化コンポーネント３０２及び３０４に存在するからである。エンドポイントＡとＢとの間のセッションを設定するために、かつエンドポイント双方が考慮中のプロトコルに従う通信を許可する符号化コンポーネントに関連付けされているかを判定するために、図８に示す接続交渉プロトコルを用いることができる。エンドポイントＡが、エンドポイントＢに向けてパケットＰを送出する。パケットＰとその宛先が符号化コンポーネント３０２により検出又は通知され（３０６）、符号化コンポーネント３０２は、その通信セッションを一意に識別する情報を記憶する。パケットＰは符号化コンポーネント３０４によっても検出又は通知される（３０８）。符号化コンポーネント３０４は、そのパケットに関係する通信セッションを一意に識別する情報を記憶し（３１０）、そのパケットをエンドポイントＢへ送出する。エンドポイントＢが返信パケットＲをエンドポイントＡへ送出するとき、返信パケットＲは符号化コンポーネント３０４によりインターセプトされ、すでに記憶されたその通信セッションを識別する情報と照合されて、マークされる（３１２）。その通信セッションを一意に識別する情報は、例えば、送信元ＩＰアドレス、宛先ＩＰアドレス、ＩＰパケット内に含まれるプロトコル（例えば、ＵＤＰ又はＴＣＰ）、並びに送信元ポート及び宛先ポートであり得る。イーサネットフレームについては、ＶＬＡＮ  ＩＤを用いることもできる。
【００４４】
［００５７］マークされたパケットＲｍを用いて、符号化コンポーネント３０２に、符号化コンポーネント３０４が本発明に従ってセグメント化及び符号化されたパケットの送出及び受取できることを信号で知らせる。パケットのマーキングは、例えば、パケットのＩＰヘッダにオプションを設定すること、及びＩＰ識別フィールドを既知の値に設定すること、の一方又は双方からなり得る。伝送中、公衆ネットワーク３００のルータ及び他の装置はＩＰ識別フィールドを変更しないでおいてもよい。他の適宜のマーキング方式又は信号伝達方式、例えばＩＰアドレスフラグをタイムスタンプに設定する等、を用いることができるが、ただし、考慮中のプロトコルに従って通信することができない装置をなるべく破壊及び停止させないものを用いる。
【００４５】
［００５８］次に符号化コンポーネント３０４がマークされたパケットＲｍを、公衆ネットワーク３００を介してエンドポイントＡへ転送する。マークされたパケットＲｍは符号化コンポーネント３０２により検出され、符号化コンポーネント３０２が、すでに記憶されているその通信セッションを一意に識別する情報を更新し（３１６）、パケットをエンドポイントＡへ送出する。符号化コンポーネント３０２はパケットをエンドポイントＡへ転送する前に、オプションでマークを除去することができる。エンドポイントＡがエンドポイントＢ宛の別のパケットＰ２を送出するとき、符号化コンポーネント３０２は、パケットＰ２を、すでに記憶されているその通信セッションを一意に識別する情報と照合する（３１８）。考慮中のプロトコルに従って通信可能な符号化コンポーネントがエンドポイントＢに与えられていると認識すると、符号化コンポーネント３０２はパケットＰ２の送出に加えて「ハロー」メッセージも送出する。
【００４６】
［００５９］符号化コンポーネント３０２から「ハロー」メッセージを受けると、符号化コンポーネント３０４は、「ハロー」返信で応答する。すると符号化コンポーネント３０２は、返信肯定応答（「肯定応答」）を符号化コンポーネント３０４へ送出し、考慮中のプロトコルを用いてエンドポイントＢ宛のデータパケットのセグメント化及び符号化を開始する。コンポーネント３０４がコンポーネント３０２からの返信肯定応答を受けると、コンポーネント３０４もエンドポイントＡ宛のデータパケットのセグメント化及び符号化を開始して、すでに述べた第２データ単位を提供する。符号化コンポーネント３０２及び３０４間の符号化チャネルが、こうして首尾よく自動的に検出及び交渉される。符号化チャネルを用いて、データ及び制御情報をともに搬送することができる。考慮中のプロトコルを使用できる２つの符号化コンポーネント間で符号化チャネルの交渉が済めば、セグメント化メッセージ及び符号化メッセージの一方又は双方の送出及び受取が可能になる。
【００４７】
［００６０］符号化コンポーネント３０４は、オプションで、さまざまなタイプの可能なマーキングテーブルを維持する。マークされたパケットＲｍが、符号化コンポーネント３０２がマークを認識しないため、又はルータ又は経路上の他の装置がマークを除去したためのいずれかの理由で、符号化コンポーネント３０２により検出されない場合は、「ハロー」返信は符号化コンポーネント３０４へ返送されない。なんらかの所定遅延後、符号化コンポーネント３０４は、さまざまなタイプのマーキングテーブルのうちの違うタイプのマークで別のパケットＲｍ２をマークし、この符号化コンポーネントは、符号化コンポーネント３０２が「ハロー」メッセージを送出してマークの受取を確認するまで、マークを変更し続けることができる。符号化コンポーネント３０４は、どのマークが別の符号化コンポーネントへ首尾よく到達したかを追跡して、今後またその符号化コンポーネントへの到達を試みるときには、そのマークを最初に使用することができる。全てのタイプのマークを用いてもチャネル確立の試みが失敗に終わった場合は、符号化コンポーネント３０４は、ネットワーク管理システム又はインターフェースに対し、所与の符号化コンポーネント３０２がマークを理解できないこと、又はネットワークに存在していないことを示すことができる。さらなる符号化ソフトウェアのインストールに優先度をつけるために、どのくらいの頻度で他方の符号化コンポーネント３０２が符号化チャネルの一部であったかに関して、符号化コンポーネント３０４又は外部システムにより統計を収集することができる。
【００４８】
［００６１］符号化チャネルは、所定タイムアウト期間が経過するまでアクティブなままであり、所定タイムアウト期間中は、符号化コンポーネントは任意のさらなるパケットを受けることができない。そして、双方が符号化チャネルをテアダウン（ｔｅａｒ  ｄｏｗｎ）する。通信チャネルの両端のタイマーは同期を取られていないので、エンドポイントは、所定タイムアウト期間後は「テアダウン」状態に入り得る。「テアダウン」状態中は、入って来るパケットは引き続き復号されるが、出て行くパケットは符号化されなくなる。「テアダウン」状態は所定期間又は符号化パケットを受けなくなるまでアクティブである。エンドポイントは、トラフィックがなくてもチャネルを存続させるために「キープアライブ」メッセージを送出することができる。所定期間トラフィックが送出されないと、その後キープアライブを停止することができ、チャネルは所定タイムアウト期間後にテアダウンされる。あるいは、エンドポイントの１つ（エンドポイントＡ又はエンドポイントＢのいずれか）をマスターエンドポイントと指定して、マスターエンドポイントがテアダウンメッセージを送出することで、明示的にチャネルをテアダウンすることもできる。テアダウン通知を受けると、非マスターエンドポイントは、マスターエンドポイントからの入って来るパケットの復号を停止し、かつマスターエンドポイントへ向かうパケットの符号化を停止することができる。２つのエンドポイント間の符号化チャネルを交渉する他の方法も考えられる。例えば、符号化チャネルは、通信のエンドポイント間の既存の制御チャネルを介して交渉することができる。
【００４９】
［００６２］エンドポイントとコンポーネント３０２及び３０４との通信は全て、確立された又は既存の通信チャネルを介して生じる。チャネルは、既知の通信プロトコルを実装することができ、既知の通信プロトコルは例えばユニバーサル・データグラム・プロトコル（ＵＤＰ）や通信制御プロトコル（ＴＣＰ）であり、ともにＩＰを介する。接続がＵＤＰ接続であれば、本発明に従うメッセージはＵＤＰデータペイロードへ直接挿入される。
【００５０】
［００６３］既存のＴＣＰ接続を介してデータを送出する場合は、元のＴＣＰヘッダが各セグメントへ追加され、シーケンス番号が修正される。したがって、送信元ポート及び宛先ポートは同じままである。第１セグメントには、元のパケットのシーケンス番号が与えられるが、後続のセグメントには新しいシーケンス番号が提供される。考慮中の好適な実施形態では、符号化又は余剰セグメントは、その関連セグメントのひとつのシーケンス番号を再利用する。これにより、余剰セグメントは、再送パケットと同じ方法でファイアウォールを通過できるようになる。データオフセット及びチェックサムに変更はないが、フラグ、又は制御ビットは最初のセグメントを除く全てのセグメントで修正される。非セグメント化メッセージ（すなわち、制御メッセージ）については、修正されたＴＣＰヘッダの直後に残りのメッセージバイトが続く。セグメント化されたメッセージについては、修正されたＴＣＰヘッダにセグメントペイロードが続き、セグメントペイロードは、例えば、あるセグメントの識別やそのセグメントと他のセグメントとの関係を識別する、シリアル番号等の識別情報を提供して、元のパケットを再構築できるようにする。セグメントのデータペイロードが次に続く。
【００５１】
［００６４］上述したようにマーク又は作成されたパケットは、ファイアウォール及びネットワークアドレス変換（ＮＡＴ）変換器を問題なく通過することができる。事実上、符号化チャネルは、符号化コンポーネント３０２及び３０４間に制御チャネルを確立してパケットはどちらの端からも通ることができ、ファイアウォール又はＮＡＴ等任意の中間コンポーネントにより認識又は阻害されない。
【００５２】
［００６５］ここで図９を参照すると、複数の符号化コンポーネント１００１、１００２、１００３、１００４が経路にある。本発明の一実施形態では、符号化は、符号化コンポーネント１００２及び符号化コンポーネント１００３間の最も内側の経路でのみ実行される。符号化コンポーネント１００１は、優先される他の符号化コンポーネントの存在に気付かないので、上で述べたようにチャネルを確立するためにパケットをマークする。符号化コンポーネント１００２は、優先されるように構成されているので、この情報を除去して符号化コンポーネント１００３へのセッションを確立する。符号化コンポーネント１００３は、符号化セッションを終了して、上述した復号を実行するように構成される。符号化チャネルは、内側の符号化コンポーネント１００２、１００３の間でアクティブになる。符号化コンポーネントは、優先的にネットワークの特定の部分又は経路が常に符号化されるように構成することができる。
【００５３】
［００６６］符号化コンポーネントＢ１００２及び符号化コンポーネントＣ１００３は、特定の物理ポートから入ってくるマークを無視して透過的に搬送するように構成することができ、この場合、符号化コンポーネントＡ１００１からＤ１００４までの間の経路全体に符号化が存在する。符号化コンポーネントは、ネットワーク内の他の符号化コンポーネントのトポロジを学習することもでき、そしてネットワークポリシーに基づいて、特定の物理ポートに到着するマークに対し無視又は反応することができる。
【００５４】
［００６７］本発明の実施形態によるパケットのセグメント化及び符号化を図１０を参照して説明する。簡潔に述べるために、元のパケット及びセグメント化されたパケットからヘッダを省略する。元のデータペイロード４００は、本発明による符号化コンポーネントで受ける。元のデータペイロードはｘバイトを有し、ｎ個のセグメント４０２へセグメント化される。ｘの整数因数としてｎが選ばれた場合、示されているようにｎ個のセグメントのそれぞれがｘ／ｎバイトを有することになる。さらに、ｍ個の追加的なセグメントが作成される。図１０に示す例では、ｍ＝１であり追加的な又は余剰パケット４０４は、ＸＯＲ関数をｎ個のセグメントの１つに適用することにより作成されたパリティセグメントである。符号化コンポーネントはパケットのサイズを考慮することができ、ｎを自動的に増大して、符号化ヘッダが第２データ単位に追加されたときにネットワークの最大転送単位（ＭＴＵ）を超過するであろうサイズの第２データ単位の伝送を回避するようにできる。この能力は、ジャンボフレームを分割することにも役立ち、ジャンボフレームがそれを処理できないネットワークに入る前に分割することができる。
【００５５】
［００６８］元のデータペイロード４００を均一のセグメントに分割することが常に可能又は望ましいとは限らないことがある。例えば、ｎがｘの因数ではない場合、確実に全てのセグメントの長さを等しくするためには最後のセグメントをパディングする必要があることがある。例えば、ｘ＝１７でｎ＝２の場合、ｘ／ｎに最も近い整数値は９である。因数が４又は８であるセグメントサイズが一般に好まれ、したがってこの場合のセグメントサイズは、ｘ／ｎ以上で４の次の倍数（例えば、１２バイト）が選択される。図１１に示すように、元の１７バイトデータペイロード４１０がセグメント化されたて２つの１２バイトセグメントペイロード４１２及び４１４になる。セグメントペイロード４１２は、元のデータペイロード４１０の初めの１２バイトを含み、セグメントペイロード４１４は、元のデータペイロード４１０の残りの５バイトを含み、オプションで１２バイトにパッドアウトされる。さらなる余剰セグメント４１６がシーケンス内の最終セグメントを形成し、さらなる余剰セグメント４１６はセグメント４１２のパリティセグメントである。１つの元のパケット又はフレームに関係するセグメントは全て同じシリアル番号を有しており、受側の端でそれらを識別及び再構築できるようにされる。
【００５６】
［００６９］符号化レートは、ｎ及びｍ双方により求められる。符号化レートは、所定値（例えば、図１１に示すようにｎ＝２、ｍ＝１）に設定されてもよいし、又は観測及び報告の一方又は双方がなされたネットワーク性能に基づいて調節されてもよく、観測及び報告は所与のエンドポイントに関連付けされた符号化コンポーネントで終了する符号化チャネルの全てに関するものである。
【００５７】
［００７０］図１２を参照する。損失レベルの判定を、符号化コンポーネントＡ１１０６及び符号化コンポーネントＢ１１０７間の符号化チャネルに関係して述べる。より詳細には、符号化コンポーネントＡから符号化コンポーネントＢ１１１０への方向のチャネルについて考察する。「損失なし」の状況では、符号化はｎ＝１でｍ＝０に設定されて、必要がなければネットワーク内の余剰帯域幅の使用を回避できるようにする。符号化コンポーネントＢ１１０７の受取処理１１０９は、時間単位Ｗのサイズの間隔期間（例えばＷ＝８秒）で受けたパケット数Ｐｘと損失したパケット数ＬＰｘをカウントする（１１００）。あるいは、ＬＰｘは、再送要求数を表すことができ、首尾よく回復した損失が損失比率の一部としてカウントされないようにできる。損失比率Ｌｘは、例えば次の比率を用いて計算することができる（１１０１）。
【００５８】
Ｌｘ＝ＬＰｘ／（Ｐｘ＋ＬＰｘ）      （１）
［００７１］ランダムなイベントに反応することを避けるために、最後のｚ個の損失測定値に対して平均損失を計算することができる（１１０２）。最新のネットワーク状態を考慮するために、次式により加重平均を行い最新の測定値を重み付けすることができる。
【００５９】
【数１】
2013526098.tif 000003
【００６０】
ここでＷＬＸは、間隔ｘにおける最新の損失測定値の加重平均を示す。重みｗｉは、ｉ＜ｊ＜＝ｘに対してｗｉ＜ｗｊである。
［００７２］多数の損失測定値を追跡することを避けるために、すでに重み付けされた損失を用いて新しい重み付け損失を評価することもできる。
【００６１】
【数２】
2013526098.tif 000004
【００６２】
ここでｗｏｌｄ及びｗｎｅｗは重みであり、一般にｗｏｌｄ＜ｗｎｅｗになるように設定される。
［００７３］オプションで、重み付け損失比率を正規化することができ（１１０３）整数のみを用いることでルックアップを簡素化することができる。正規化損失ＮＬＸは、次式を用いて計算することができる。
【００６３】
【数３】
2013526098.tif 000005
【００６４】
ここでＮは正規化因数（例えば、Ｎ＝１００００）である。
［００７４］次にＮＬｘを用いて損失レベルテーブル１１０４をインデクスし、現在の損失レベルを抽出できるようにする。以下に示すのは損失レベルテーブルの例であり、８つの損失レベルが提供されており、ＩＮＴ＿ｍａｘは最大整数又は大きな値（例えば、１００００）を表す。
【００６５】
【表１】
2013526098.tif 000006
【００６６】
［００７５］次に符号化コンポーネントＢ１１０７の送出処理１１１１が、そのセッションのために符号化コンポーネントＡ１１０６へ送出される各第２データ単位のヘッダに、現在の損失レベルを挿入する（１１０５）。符号化コンポーネントＡ１１０６の受取処理１１１２が、受けたパケットから現在の損失レベルを読み取る。そして受取処理１１１２は、新しいパラメータテーブルを現在の損失レベルでインデクスしてｎ及びＭａｘ＿ｎの値が得られるようにする。Ｍａｘ＿ｎは、現在の損失レベルを所与として設定されるべきｎの値として最大のものを示す。アプリケーション要求及び許容範囲のオーバーヘッドに基づいてさまざまな損失目標を達成するために、複数の新しいパラメータテーブルを用いることができる。新しいパラメータテーブルの例として、８つの損失レベルを用いたものを以下に示す。
【００６７】
【表２】
2013526098.tif 000007
【００６８】
［００７６］ここでＩＮＴ＿ｍａｘは最大整数（無限大）を示す。符号化コンポーネントＡ１１０６の送出処理１１０８は、サイズｓのパケットを符号化する前に、事前に構成されたパケットサイズテーブルをｓでインデクスしてｒｅｃ＿ｎを得られるようにし、ｒｅｃ＿ｎは、このパケットサイズを所与としたｍの推奨値を表す。パケットサイズテーブルの例を以下に示す。
【００６９】
【表３】
2013526098.tif 000008
【００７０】
［００７７］このテーブルを用いると、ｓ＜８８バイトのパケットはＲｅｃ＿ｎ＝１を返す。ｓ＞５２８バイトであれば、Ｒｅｃ＿ｎ＝４である。パケットを符号化するために用いられるｎの値は、ｎ＝ｍｉｎ（Ｒｅｃ＿ｎ，Ｍａｘ＿ｎ）と求められる。
【００７１】
［００７８］本発明の別の実施形態では、受取処理１１０９が、重み付け損失比率ＷＬｘを、上述した式（２）又は（３）により計算する。オプションでこれを正規化して式（４）によりＮＬｘを計算することができる。正確な損失値（ＷＬｘ又はＮＬｘ）は制御メッセージに入れて一定間隔（例えば、毎秒）で受取処理１１１２へ送出され、制御メッセージはそのセッションの符号化チャネルへ挿入されている。受取処理１１１２は、制御メッセージから正確な損失値を抽出する。送出側の符号化コンポーネント１１０８は、正確な損失値を用いて新しいパラメータテーブルをインデクスして、Ｍａｘ＿ｎ及びｍを得られるようにする。
【００７２】
【表４】
2013526098.tif 000009
【００７３】
［００７９］ｎの値はｎ＝ｍｉｎ（Ｒｅｃ＿ｎ，Ｍａｘ＿ｎ）として得られる。複数の新しいパラメータテーブルは、さまざまな損失目標を反映するように構成することができ、送出処理１１０８は、アプリケーションの損失目標に基づいて適切なテーブルを使用する。現在の損失レベルではなく実際の損失率を送出することで、符号化側でパラメータテーブルを構成するだけでよくなり、したがってコンフィギュレーションを簡素化することができる。
【００７４】
［００８０］本発明の別の実施形態の例を図１３に示す。この実施形態では、符号化コンポーネントは、符号化パラメータを変更すべきかを判定するために、ネットワーク１２０１のどこで損失が発生しているかを推定し、ネットワーク１２０１は、例えばインターネット、プライベートネットワーク、又は仮想プライベートネットワークの組み合わせを含む。符号化コンポーネントＡ１２０２及び符号化コンポーネントＤ１２０３間の符号化セッション１２０４を用いてこの実施形態を説明し、より詳細にはＡ１２０２からＤ１２０３への方向のフローを考察する。
【００７５】
［００８１］上に述べたように、符号化コンポーネントＤ１２０３の受取処理は、受けた各符号化フローの損失レベルを計算する。この例では、符号化コンポーネントＤ１２０３は、３つのフロー１２０４、１２０５、及び１２０６の損失レベルを計算し、３つのフロー１２０４、１２０５、及び１２０６はそれぞれ、符号化コンポーネントＡ１２０２、Ｂ１２０７、及びＣ１２０８から発されたものである。受側符号化コンポーネントは、フローの測定損失レベルを返すだけでなく、間隔期間ｘに送出されてきたｆ個のフローから、重み付け損失比率平均ＡＬｘも計算する。
【００７６】
［００８２］この間隔期間は、１つのフローの損失比率を計算するために用いた間隔期間と同じであってよい。平均損失比率は例えば、次式で計算することができる。
【００７７】
【数４】
2013526098.tif 000010
【００７８】
［００８３］ここでＷＬｉは上記の式（２）又は（３）により計算することができる。そしてＡＬｘを式（４）により正規化して正規化平均損失比率ＮＡＬｘを作成することができる。次にＮＡＬＸを損失レベルテーブルにインデクスして、ファーエンドの平均損失レベル（ＡＬＦＥＸ）が得られるようにする。損失レベルテーブルは上記のものと同じであってもよいし、さまざまな数を用いて事前に構成することもできる。ＡＬＦＮＸは上述したように計算されたフロー毎の現在の損失レベルとともに、第２データ単位のパケットヘッダに追加され、第２データ単位のパケットヘッダは、符号化コンポーネントＤ１２０３の送出処理によりそれぞれの符号化コンポーネント１２０２、１２０７、１２０８へ伝送される。
【００７９】
［００８４］全ての情報がパケットヘッダに含まれる場合は、送出側符号化コンポーネント１２０２、１２０７、１２０８はその情報を用いて自身の符号化レベルを変更すべきかを決定することができる。符号化コンポーネントＡ１２０２の受取処理はニアエンドの平均損失（ＡＬＮＥＸ）を計算することもでき、ニアエンドの平均損失（ＡＬＮＥＸ）は、測定期間ｘの間アクティブなｇ個の符号化セッション１２１１、１２１２、１２０４からの戻りチャネルで受けた現在の損失レベルの平均である。
【００８０】
【数５】
2013526098.tif 000011
【００８１】
［００８５］図１２の例では、符号化コンポーネントＡで計算されるＡＬＮＥｘは、符号化コンポーネントＤ１２０３、符号化コンポーネントＥ１２０９、及び符号化コンポーネントＦ１２１０から受けた現在の損失レベルの平均を示す。
【００８２】
［００８６］セッションの現在の損失レベルとＡＬＦＥｘとの差が所定閾値より下であれば、上述したように現在の損失レベルを用いてｍ及びｎを設定する。この場合、セッションは上流ネットワークを混雑させていないであろうと仮定され、これは現在の損失レベルが計算されたＡＬＦＥｘよりも良い又は劣っていてもわずかであるためである。
【００８３】
［００８７］現在の損失レベルとＡＬＦＥｘとの差が所定閾値以上であり、なおかつ現在の損失レベルからＡＬＮＥｘを差し引いたものが所定閾値以上である場合は、現在の損失レベルは無視されて、ｍ及びｎはパケットサイズテーブルのみに従い設定され、所与のパケットについて最も帯域幅効率の良い符号化方法を選ぶことにより帯域幅使用を最小に抑えられるようにする。さまざまな所定閾値を用いることができ、ネットワークポリシー及びトポロジに従い所定閾値を設定することができる。
【００８４】
［００８８］損失レベルが所定インターリーブ閾値を超えると、送出側符号化コンポーネントはインターリーブモードへ切り替えてさらに損失を低減しようとする。損失レベルが別の閾値より下にあるときは、遅延を低減するためにインターリーブモードをオフにすることができる。あるいは、同じパケット内で所定数の第２データ単位が失われた頻度をカウントし続け、カウントが所定閾値を超えたときは、符号化コンポーネントはインターリーブモードへ切り替わる。所定時間の間カウントが所定閾値より下にあるときは、符号化コンポーネントは非インターリーブモードへ戻り遅延を低減できるようにする。
【００８５】
［００８９］上述した例は、一般にエンドポイント間の双方向通信に関し、双方向通信では符号化チャネルの交渉が実行可能であり望ましくもある。しかし、本発明は、事実上一方向の又はストリーミングのアプリケーションにも用いてそれらの性能を高速化することができ、さらに、他のアプリケーションでも使用が可能であり、他のアプリケーションは、符号化コンポーネント間で接続を交渉することが実行不可能か又は反対に望ましくないようなものである。このようなアプリケーションでは、各エンドポイントに関連付けされた符号化コンポーネント間で交渉を行う必要がない。符号化チャネルは、呼信号メッセージを認識することにより確立され、それに続いてディープパケット分析により通信セッションに関係するメッセージを認識することができる。
【００８６】
［００９０］例えば、本発明の符号／復号化コンポーネントを用いて、リアルタイム・ストリーミング・プロトコル（ＲＴＳＰ）のステートフルな特性を利用し、ストリーミングのために接続を設定又はモニタすることができる。ＲＴＳＰコマンドのデフォルトポートはポート５５４である。したがって、本発明の符号化コンポーネントはパケットヘッダを分析して、パケットヘッダがＲＴＳＰデフォルトポートへ宛てられたものか又はＲＴＳＰデフォルトポートから発したものかを判定することができ、それによりＲＴＳＰパケットを識別することができる。ＲＴＳＰメッセージが検出されると、メッセージが解析されて、ＳＥＴＵＰ要求、ＳＥＴＵＰ応答、ＴＥＡＲＤＯＷＮ要求、又は一般的なＲＴＳＰ応答を含むかを判定することができる。ユーザからのＳＥＴＵＰ要求はメディアストリームＵＲＬと、ＲＴＰデータ（音声又は映像）を受けるためのローカルポートを含む。ＲＴＳＰサーバ応答は、選択されたパラメータを確認して、サーバ側の選択ポートを提供する。ＲＴＳＰサーバからの返信を解析することにより、符号化コンポーネントは、データストリームに割り当てられたＲＴＳＰセッションアイデンティフィケーション、メッセージのＲＴＳＰシーケンス番号、及びこのセッションのためにユーザ端末及びＲＴＳＰサーバにより割り当てられたＲＴＰポートを判定することができる。このようにして、ストリーミングのための符号化チャネルが符号化コンポーネント間に設定される。次にクライアント及びサーバ間の後続のデータ単位を、例えばディープパケット分析により、分析することができる。ポートがＳＥＴＵＰ返信に設定されたものと一致すれば、セグメント化及び符号化、又は復号及び再構築のためにメッセージをインターセプトすることができ、上述したように、符号化チャネルを設定するための交渉を行う必要はない。
【００８７】
［００９１］同様に、Ｈ．３２３については、符号化コンポーネントはパケットのＨ．３２３呼が設定されていることを示すメッセージを分析することができる。例えば、符号化コンポーネントはＨ．２２５／Ｑ．９３１呼設定メッセージ及びＨ．２４５交渉及び経路設定メッセージのうち一方又は双方を検出し、それに対してディープパケット分析を行うことで、関連Ｈ．３２３セッションに用いられることになる着呼側データポート及び発呼側データポートを識別できるようにする。次に考慮中のプロトコルに従う符号化チャネルを、上に述べたようにデータフローをインターセプト及び符号化できるように設定することができる。
【００８８】
［００９２］所与のセッションのコンテキスト内で、さまざまなストリームをさまざまな損失目標に従い扱うことができる。ＤＰＩを用いてアプリケーションのタイプを検出し、そのタイプのアプリケーションのために構成されたネットワークポリシーに従い損失目標を設定することができる。最終的には、各パケットは、ヘッダに提供された情報に基づいて自身の損失目標を有することができ、この情報は必要な保護レベル（例えば、ＳＶＣ−スケーラブルビデオコーデック）を識別するものである。
【００８９】
［００９３］本発明の別の実施形態では、ｎの値の増大を徐々に実行して、オーバーヘッドの増大が大幅に進行しないようにする。テーブルを用いてより高いｎの値が推奨されたとき、その値は次に来る第１データ単位のサブセットにのみ適用される。この実施形態を用いると、次に入って来るｗ個の第１データ単位のうちｖ個の第１データ単位のみが、増大された値であるｎを使用して、他のｗ−ｖ個は以前のより低い値をｎに用いる。測定損失比率が増大し続ける場合又は測定損失比率が次のレベルに近づく場合は、ｖ及びｗの値を変更することもできる。
【００９０】
［００９４］例えば、測定損失（重み付けされた又は正規化されたもの）が０％であれば、ｎ＝１、ｍ＝０、そしてｖ＝ｗ＝１になる。したがって、全てのパケットはｎ＝１、ｍ＝０で符号化される。測定損失が増大して０％より大きいが０．０５％より低くなった場合は、ｎ＝４、ｍ＝１であるが、ｖ＝１でｗ＝３になり、３つのパケットのうち１つのみがｎ＝４で符号化されて、他のパケットは以前の符号化レベルｎ＝１、ｍ＝０を用いるようにする。測定損失が０．０５％を超えるが０．１％より下であれば、ｖ＝１及びｗ＝２へ変更されて、全ての２つ目のパケットがｎ＝４で符号化されて、他のパケットは以前の符号化レベルｎ＝１、ｍ＝０を用いるようにする。測定損失が０．１％を超えるが０．２％以下であれば、ｖ＝１及びｗ＝１を用いて、全てのパケットがｎ＝４で符号化されるようにする。ｖ及びｗのさまざまな値は、さまざまな所定損失レベルでのオーバーヘッドの増大を滑らかにするように構成することができる。この能力は、さまざまな損失比率間の変換機能をかなり滑らかにすることができる。
【００９１】
［００９５］以下の記載では、本発明を完全に理解できるように数多くの詳細を説明の目的で述べる。しかし、これらの特定の詳細は本発明を実施する上で必要なものではないことが当業者には明らかであろう。他の例では、周知の電気的構造及び回路がブロック図形式で示され、本発明が不明瞭にならないようにしている。例えば、本明細書に記載した本発明の実施形態がソフトウェアルーティン、ハードウェア回路、ファームウェア、又はこれらの組み合わせとして実装されるかどうかについて特定の詳細は提供していない。
【００９２】
［００９６］本発明の実施形態はエンドポイント及び関連する符号化コンポーネントを有するネットワークに実装され、エンドポイントはサーバ又は他のコンピューティング装置等である。符号化コンポーネント及び記載した方法は、ハードウェア、ソフトウェア、又はこれらの組み合わせに実装することができる。ソフトウェアに記憶されたこれらの部分は、マシン可読媒体（コンピュータ可読媒体、プロセッサ可読媒体、又は、コンピュータ可読プログラムコードが記憶されているコンピュータ使用可能媒体とも称される）に記憶されたソフトウェア製品として表すことができる。マシン可読媒体は任意の適宜の有形媒体であってよく、磁気、光、又は電気的な記憶媒体を含み、これらの記憶媒体は、ディスケット、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、メモリ装置（揮発性又は不揮発性）、又は類似の記憶機構を含む。マシン可読媒体は種々の命令のセット、コードシーケンス、構成情報、又は他のデータを含み、これらが実行されるとき、プロセッサが本発明の実施形態による方法のステップを行う。当業者であれば、記載した発明を実施するために必要な他の命令及び動作もマシン可読媒体に記憶できることが理解できるであろう。マシン可読媒体から実行されるソフトウェアは、回路と連動して記載したタスクを実行することができる。
【００９３】
［００９７］上述した本発明の実施形態は例示にすぎない。当業者であれば本発明の範囲を逸脱することなく特定の実施形態に対し代替、修正及び変更を行うことができ、本発明の範囲は添付の請求項によってのみ定められる。
【図１】
2013526098.tif 000012
【図２】
2013526098.tif 000013
【図３】
2013526098.tif 000014
【図４】
2013526098.tif 000015
【図５】
2013526098.tif 000016
【図６】
2013526098.tif 000017
【図７】
2013526098.tif 000018
【図８】
2013526098.tif 000019
【図９】
2013526098.tif 000020
【図１０】
2013526098.tif 000021
【図１１】
2013526098.tif 000022
【図１２】
2013526098.tif 000023
【図１３】
2013526098.tif 000024
【国際調査報告】
2013526098.tif 000025
2013526098.tif 000026