(58)【調査した分野】(Int.Cl.,DB名)
前記第1プロトコルの初期シーケンス番号、前記第1パケットの最後のバイトに対応する前記シーケンス番号、および、前記第2パケットの最初のバイトに対応する前記シーケンス番号に基づいて、前記第2プロトコルを使用することによって、前記目標パケットの位置を決定する前記段階は、
式M=A+1に基づいて、前記目標パケットの最初のバイトに対応するシーケンス番号を計算する段階であって、Mは前記目標パケットの最初のバイトに対応する前記シーケンス番号であり、Aは前記第1パケットの最後のバイトに対応する前記シーケンス番号である、段階と、
式N=B−A−1に基づいて前記目標パケットの長さを計算する段階であって、Nは前記目標パケットの前記長さであり、Bは前記第2パケットの最初のバイトに対応する前記シーケンス番号であり、Aは前記第1パケットの最後のバイトに対応する前記シーケンス番号である、段階と、
式Q=A−Yに基づいて、前記目標パケットのオフセット位置を計算する段階であって、Qは前記目標パケットの前記オフセット位置であり、Aは前記第1パケットの最後のバイトに対応する前記シーケンス番号であり、Yは前記初期シーケンス番号である、段階と
を含む、請求項4に記載の方法。
前記第1プロトコルは、トランスポート層に適用されるプロトコルであり、前記第2プロトコルは、コネクションレストランスポート層に適用されるプロトコルである、請求項1から6のいずれか一項に記載の方法。
前記送信モジュールはさらに、前記送信モジュールが前記第2プロトコルを使用することによって前記目標パケットのための前記再伝送要求を前記送信端へ送信する前に、前記第1プロトコルを使用することによって、前記目標パケットについての情報を前記第2プロトコルへ送信する、請求項9または10に記載の受信端。
前記決定モジュールはさらに、前記決定モジュールが、前記少なくとも1つのパケットが失われたと決定した後に、前記第1プロトコルの初期シーケンス番号、前記第1パケットの最後のバイトに対応する前記シーケンス番号、および、前記第2パケットの最初のバイトに対応する前記シーケンス番号に基づいて、前記第2プロトコルを使用することによって、前記目標パケットの位置を決定する、請求項10に記載の受信端。
前記第1プロトコルは、トランスポート層に適用されるプロトコルであり、前記第2プロトコルは、コネクションレストランスポート層に適用されるプロトコルである、請求項9から14のいずれか一項に記載の受信端。
【発明の概要】
【0005】
本発明は、データ伝送方法および関連するデバイスを提供し、これにより、送信端がTCP輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のTCPストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のTCPストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【0006】
これに鑑みて、本発明の第1態様は、受信端が第1プロトコルを使用することによって、送信端によって送信されたK個のパケットを受信する段階であって、各パケットはシーケンス番号を含み、K個のパケットは、送信端によって送信されたL個のパケットの一部である、段階と、受信端が、K個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことを検出したとき、受信端が、目標パケットに基づいて第2送信遅延を決定する段階であって、本発明において、第2送信遅延は第1送信遅延より大きく、第1送信遅延は手動で事前設定される、段階と、受信端が、第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信する段階であって、肯定応答ACKメッセージは、「現在、受信端がL個のパケットを受信した」というようなメッセージを送信端に通知するために使用される、段階と、受信端が、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する段階であって、これにより、送信端は、再伝送要求に基づいて、失われた目標パケットを送信できる、段階と、受信端が、第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する段階であって、ただし代替的に、受信端は、第2プロトコルを使用して、送信端によって再伝送された目標パケットを受信した後に、第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信し得て、これにより、データ伝送を完了する段階とを備えるデータ伝送方法を提供する。
【0007】
本発明は、ビッグデータシナリオに適用され得るデータ伝送方法を提供する。受信端は、第1プロトコルを使用することによって、送信端によって送信されたK個のパケットを受信し、各パケットは、シーケンス番号を含み、K個のパケットは、送信端によって送信されたL個のパケットの一部である。受信端は、K個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことを検出したとき、目標パケットに基づいて、第2送信遅延を決定し、第2送信遅延は第1送信遅延より大きく、第1送信遅延は事前設定される。受信端は、第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信し、肯定応答ACKメッセージは、受信端がL個のパケットを受信したことを送信端に通知するために使用される。受信端は、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信し、第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。上述の方法はデータ伝送のために使用され、その結果、送信端がTCP輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のTCPストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のTCPストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【0008】
本発明の実施形態の第1態様を参照すると、第1の可能な実装において、受信端が目標パケットに基づいて第2送信遅延を決定する前に、方法はさらに、受信端が、K個のパケットにおける第1パケットの最後のバイトに対応するシーケンス番号が、K個のパケットにおける第2パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定する段階であって、第1パケットは第2パケットの前に受信される、すなわち、第1パケットは第2パケットの前のパケットである、または、第2パケットよりNパケット前にあり、Nは1より大きいか、もしくは、それに等しい正の整数である、段階と、受信端が、第1パケットの最後のバイトに対応するシーケンス番号が第2パケットの最初のバイトに対応するシーケンス番号と連続している場合、パケットが失われていないと決定する、または、受信端が、第1パケットの最後のバイトに対応するシーケンス番号が第2パケットの最初のバイトに対応するシーケンス番号と連続していない場合、少なくとも1つのパケットが失われたと決定し、失われた少なくとも1つのパケットは目標パケットである、段階とを備え得る。
【0009】
さらに、パケットが失われたかどうかを決定するための方法が、本発明の実施形態において提供される。パケットにおける第1パケットの最後のバイトに対応するシーケンス番号が、パケットにおける第2パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定することによって、パケットが失われているかどうかが決定され得る。失われたパケットは、上述の方法を使用することによって決定される。パケットが失われていない場合、第2送信遅延を増加させる必要は無い。上述の方法を使用することによって、目標パケットが失われていると決定された場合、第2送信遅延はさらに増加され得る。従って、目標パケットが失われているかどうかを決定することによって、第2送信遅延を増加させる必要があるかどうかがより正確に分かり得て、これにより、解決法の実現可能性および実用性が向上する。
【0010】
本発明の実施形態の第1態様を参照すると、第2の可能な実装において、受信端が、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する前に、方法はさらに、受信端が、第1プロトコルを使用することによって、目標パケットについての情報を受信端の第2プロトコルへ送信する段階であって、目標パケットについての情報は少なくとも、目標パケットの長さおよび/またはオフセットを含み得て、オフセットは、データストリーム全体における、失われたパケットのオフセット位置を指し、長さは、パケットにおけるバイトの数を指す、段階を備え得る。
【0011】
さらに、第1プロトコルと第2プロトコルとの間の関係は、具体的には、本発明のこの実施形態において説明される。データ交換は、受信端または送信端の第1プロトコルと第2プロトコルとの間で実行される。第1プロトコルは主に、パケット損失が起きた場合に、肯定応答ACKメッセージの送信を遅延できることを実装し、第2プロトコルは、協同方式の効果的なデータ伝送を実現するために送信端と受信端との間で使用され、失われたパケットの再伝送を担う。新しく追加された第2プロトコルは、実際の適用プロセスにおいて、パケット再伝送効率を向上させる役割を果たし、第1プロトコルと第2プロトコルとの間のデータ交換は、本発明の解決法の具体的な実装のためのサポートを提供し、これにより、解決法の実現可能性および実用性を向上させる。
【0012】
本発明の実施形態の第1態様の第1の任意の実施形態を参照すると、第3の可能な実装において、少なくとも1つのパケットが失われたと受信端が決定した後に、方法はさらに、第1プロトコルを使用することによって取得された初期シーケンス番号、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて第2プロトコルを使用することによってデータストリーム全体における目標パケットの位置を決定する段階を備え得る。
【0013】
さらに、本発明の実施形態において、受信端は、初期シーケンス番号、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて、第1プロトコルを使用することによって、情報を第2プロトコルへ送信し得て、これにより、受信端は、第2プロトコルを使用することによって、送信される予定のデータストリーム全体における、目標パケットの位置を決定する。従って、解決法の実現可能性、実用性および柔軟性がより高くなる。
【0014】
本発明の実施形態の第1態様の第3の任意の実施形態を参照すると、第4の可能な実装において、第1プロトコルを使用することによって取得された初期シーケンス番号、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて、第2プロトコルを使用することによって、受信端が目標パケットの位置を決定する段階は、受信端が、式M=A+1に基づいて目標パケットの最初のバイトに対応するシーケンス番号を計算する段階であって、Mは目標パケットに対応する最初のバイトであり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、段階と、受信端が、式N=B−A−1に基づいて、目標パケットの長さを計算する段階であって、Nは目標パケットの長さであり、Bは第2パケットの最初のバイトに対応するシーケンス番号であり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、段階と、受信端が、式Q=A−Yに基づいて、目標パケットのオフセット位置を計算する段階であって、Qは目標パケットのオフセット位置であり、Aは第1パケットの最後のバイトに対応するシーケンス番号であり、Yは初期シーケンス番号である、段階とを含み得る。
【0015】
さらに、本発明のこの実施形態において、いかにして第2プロトコルを使用することによって目標パケットの位置を決定するかが説明されている。受信端は、目標パケットの位置を決定するべく、関連する式に基づいて、目標パケットに対応する最初のバイト、目標パケットの長さ、および、目標パケットのオフセット位置を計算し得て、これにより、解決法の実装についての具体的な基礎を提供し、解決法の実現可能性を向上させる。
【0016】
本発明の実施形態の第1態様、または、第1態様の第1から第4の任意の実施形態のいずれか1つを参照すると、第5の可能な実装において、受信端が、目標パケットに基づいて、第2送信遅延を決定した後に、方法はさらに、受信端がカウンタを開始する段階と、受信端が1つのパケットを受信するたびに、パケット損失が発生したかどうかを決定する必要がある段階であって、パケットが失われた場合、カウンタをリセットし、第2送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、さらに、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第2送信遅延を減少させ、カウンタをリセットする、段階とを備え得る。
【0017】
なおさらに、本発明の実施形態において、受信端は実際の状況に基づいて、第2送信遅延を制御し得る。受信端は、パケットが失われたと決定したとき、第2送信遅延を増加させ、これにより、受信端がパケット損失を検出したときに肯定応答ACKメッセージを送信端へ送信したことが原因で、送信端の輻輳ウィンドウが半分になるという問題を回避する。受信端は、パケットが失われていないと決定したとき、第2送信遅延を減少させ、これにより、送信端は、より適切なタイミングで、受信端の受信状態を認識することができる。このようにして、送信端の輻輳ウィンドウは突然減少しないので、データを伝送するためにTCPが使用されるとき、スループットを保証できる。さらに、受信端は、カウンタを使用することによってパケットの数を計算するための方法を使用することによって、第2送信遅延を制御し、これにより、解決法の実現可能性および柔軟性を向上させることができる。
【0018】
本発明の第2態様は受信端を提供し、受信端は、第1プロトコルを使用することによって、送信端によって送信されたK個のパケットを受信するように構成されている受信モジュールであって、各パケットはシーケンス番号を含み、K個のパケットは、送信端によって送信されたL個のパケットの一部である、受信モジュールと、受信モジュールによって受信されたK個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたと検出したとき、目標パケットに基づいて第2送信遅延を決定するように構成されている決定モジュールであって、第2送信遅延は、第1送信遅延より大きく、第1送信遅延は事前設定される、決定モジュールと、決定モジュールによって決定された第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信するように構成されている送信モジュールであって、肯定応答ACKメッセージは、受信端がL個のパケットを受信したことを送信端に通知するために使用される、送信モジュールとを備え、送信モジュールはさらに、決定モジュールがK個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたと検出したとき、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信するように構成され、受信モジュールはさらに、送信モジュールが第2プロトコルを使用することによって目標パケットのための再伝送要求を送信端へ送信した後に、第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信するように構成されている。
【0019】
本発明の実施形態の第2態様を参照すると、第1の可能な実装において、受信端はさらに、判定モジュールを備え得て、判定モジュールは、決定モジュールが目標パケットに基づいて送信遅延を決定する前に、K個のパケットにおける第1パケットの最後のバイトに対応するシーケンス番号が、K個のパケットにおける第2パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定するように構成され、第1パケットは、第2パケットの前に受信され、決定モジュールはさらに、判定モジュールが、第1パケットの最後のバイトに対応するシーケンス番号が第2パケットの最初のバイトに対応するシーケンス番号と連続していると決定した場合、パケットが失われていないと決定する、または、判定モジュールが、第1パケットの最後のバイトに対応するシーケンス番号が、第2パケットの最初のバイトに対応するシーケンス番号と連続していないと決定した場合、少なくとも1つのパケットが失われたと決定するように構成され、少なくとも1つのパケットは目標パケットである。
【0020】
本発明の実施形態の第2態様を参照すると、第2の可能な実装において、送信モジュールはさらに、送信モジュールが第2プロトコルを使用することによって目標パケットのための再伝送要求を送信端へ送信する前に、第1プロトコルを使用することによって、目標パケットについての情報を第2プロトコルへ送信するように構成されている。
【0021】
本発明の実施形態の第2態様の第1の任意の実施形態を参照すると、第3の可能な実装において、決定モジュールはさらに、決定モジュールが、少なくとも1つのパケットが失われたと決定した後に、第1プロトコルの初期シーケンス番号、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて、第2プロトコルを使用することによって、目標パケットの位置を決定するように構成されている。
【0022】
本発明の実施形態の第2態様の第3の任意の実施形態を参照すると、第4の可能な実装において、決定モジュールは、式M=A+1に基づいて、目標パケットに対応する最初のバイトを計算することであって、Mは目標パケットの最初のバイトに対応するシーケンス番号であり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、こと、式N=B−A−1に基づいて、目標パケットの長さを計算することであって、Nは目標パケットの長さであり、Bは第2パケットの最初のバイトに対応するシーケンス番号であり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、こと、式Q=A−Yに基づいて、目標パケットの位置を計算することであって、Qは目標パケットの位置であり、Aは第1パケットの最後のバイトに対応するシーケンス番号であり、Yは初期シーケンス番号である、ことを行うように構成されている計算ユニットを含む。
【0023】
本発明の実施形態の第2態様、または、第1態様の第1から第4の任意の実施形態のいずれか1つを参照すると、第5の可能な実装において、受信端はさらに、開始モジュールおよびカウントモジュールを備え、開始モジュールは、決定モジュールが目標パケットに基づいて第2送信遅延を決定した後に、カウンタを開始するように構成され、カウントモジュールは、開始モジュールがカウンタを開始した後に、1つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定し、パケットが失われた場合、カウンタをリセットし、第2送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第2送信遅延を減少させ、カウンタをリセットするように構成されている。
【0024】
本発明の第3態様は、受信端を提供し、受信端は、メモリ、送受信器、プロセッサおよびバスシステムを備え、メモリは、プログラムを記憶するように構成され、プロセッサは、メモリにおけるプログラムを実行するように構成されている。具体的なステップは、第1プロトコルを使用することによって、送信端によって送信されたK個のパケットを受信するように送受信器を制御するステップであって、各パケットはシーケンス番号を含み、K個のパケットは、送信端によって送信されたL個のパケットの一部である、ステップと、K個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことが検出されたとき、目標パケットに基づいて第2送信遅延を決定するステップであって、第2送信遅延は第1送信遅延より大きく、第1送信遅延は事前設定される、ステップと、第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信するように送受信器を制御するステップであって、肯定応答ACKメッセージは、受信端がL個のパケットを受信したことを送信端に通知するために使用される、ステップと、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信するように送受信器を制御するステップと、第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信するように送受信器を制御するステップとを含む。
【0025】
任意で、プロセッサは、メモリにおけるプログラムを実行するように構成され、さらに具体的には、K個のパケットのうちの第1パケットの最後のバイトに対応するシーケンス番号が、K個のパケットのうちの第2パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定するステップであって、第1パケットは、第2パケットの前に受信される、ステップと、第1パケットの最後のバイトに対応するシーケンス番号が、第2パケットの最初のバイトに対応するシーケンス番号と連続している場合、パケットが失われていないと決定する、または、第1パケットの最後のバイトに対応するシーケンス番号が、第2パケットの最初のバイトに対応するシーケンス番号と連続していない場合、少なくとも1つのパケットが失われたと決定するステップであって、少なくとも1つのパケットは目標パケットである、ステップとを実行するように構成されている。
【0026】
任意で、プロセッサは、メモリにおけるプログラムを実行するように構成され、さらに具体的には、第1プロトコルを使用することによって、目標パケットについての情報を第2プロトコルへ送信するように送受信器を制御するステップを実行するように構成されている。
【0027】
任意で、プロセッサは、メモリにおけるプログラムを実行するように構成され、さらに具体的には、第1プロトコルの初期シーケンス番号、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて、第2プロトコルを使用することによって、目標パケットの位置を決定するステップを実行するように構成されている。
【0028】
任意で、プロセッサは、メモリにおけるプログラムを実行するように構成され、さらに具体的には、式M=A+1に基づいて、目標パケットの最初のバイトに対応するシーケンス番号を計算するステップであって、Mは目標パケットに対応する最初のバイトであり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、ステップと、式N=B−A−1に基づいて、目標パケットの長さを計算するステップであって、Nは目標パケットの長さであり、Bは第2パケットの最初のバイトに対応するシーケンス番号であり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、ステップと、式Q=A−Yに基づいて、目標パケットのオフセット位置を計算するステップであって、Qは目標パケットのオフセット位置であり、Aは第1パケットの最後のバイトに対応するシーケンス番号であり、Yは初期シーケンス番号である、ステップとを実行するように構成されている。
【0029】
任意で、プロセッサは、メモリにおけるプログラムを実行するように構成され、さらに具体的には、カウンタを開始するステップと、1つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定するステップであって、パケットが失われた場合、カウンタをリセットし、第2送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第2送信遅延を減少させ、カウンタをリセットする、ステップとを実行するように構成されている。
【0030】
上述の技術的解決法から、本発明の実施形態が以下の利点を有することが認識されよう。
【0031】
本発明は、ビッグデータシナリオに適用され得るデータ伝送方法を提供する。受信端は、第1プロトコルを使用することによって、送信端によって送信されたK個のパケットを受信し、各パケットは、シーケンス番号を含み、K個のパケットは、送信端によって送信されたL個のパケットの一部である。受信端は、K個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことを検出したとき、目標パケットに基づいて、第2送信遅延を決定し、第2送信遅延は第1送信遅延より大きく、第1送信遅延は事前設定される。受信端は、第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信し、肯定応答ACKメッセージは、受信端がL個のパケットを受信したことを送信端に通知するために使用される。受信端は、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信し、第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。上述の方法はデータ伝送のために使用され、その結果、送信端がTCP輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のTCPストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のTCPストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【発明を実施するための形態】
【0041】
本発明は、データ伝送方法および関連するデバイスを提供し、これにより、送信端がTCP輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のTCPストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のTCPストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【0042】
本発明の明細書、特許請求の範囲および付属図面において、「第1」、「第2」、「第3」、「第4」など(存在する場合)の用語は、同様の対象間を区別することを意図するものであり、必ずしも、特定の順序または順番を示すものではない。そのような方式で名前を付けられたデータは、適切な状況下において相互に交換可能であり、これにより、ここで説明される本発明の実施形態は、ここで例示または説明される順序以外の順序で実装できることを理解すべきである。さらに、「含む」、「備える」という用語、および他の何らかの変形は、非排他的な含有を含むことを意味する。例えば、一連の段階またはユニットを含むプロセス、方法、システム、製品、またはデバイスは、必ずしもそれらのユニットに限定されるわけではなく、明示的に列挙されていないか、またはそのような処理、方法、システム、製品、またはデバイスに固有の他のユニットを含んでよい。
【0043】
本発明の実施形態は、ビッグデータシナリオにおけるデータ伝送に適用され得るが、ビッグデータシナリオだけに限定されないことを理解すべきである。情報技術(英文全表記:Information Technology、略称:IT)において、ビッグデータはますます多くの注目を集めている。なぜなら、ビッグデータは以下の4つの特徴を有するからである。第1の特徴は、大量のデータである。これは基本的に、数十テラバイト(英文全表記:Terabyte、略称:TB)から数ペタバイト(英文全表記:Petabyte、略称:PB)の規模を指し、さらには、数エクサバイト(英文全表記:Exabyte、略称:EB)のことを指す。第2の特徴は、データの多様性である。従来の販売および在庫データに加えて、現在企業によって収集および解析されているデータには、ウェブログデータおよびソーシャルプラットフォームデータなどのメディアにおけるテキストデータ、スマートフォンに内蔵されるグローバルポジショニングシステム(英文全表記:Global Positioning System、略称:GPS)において生成される位置情報、監視カメラのビデオデータおよび同様のものが含まれる。第3の特徴は、高いデータ生成速度および更新頻度、ならびに、強いリアルタイム性である。第4の特徴は高価値である。ビッグデータの利点は、データが有用であり、高価値であることである。多くの産業にとって、いかにしてビッグデータを十分に使用するかは、競争に勝つための鍵となっている。
【0044】
概して、FTPがビッグデータの伝送に使用され得る。FTPは、インターネット上でのファイルの双方向転送を制御するために使用され、FTPはまた、アプリケーションプログラムである。異なるオペレーティングシステムに応じて、異なるFTPアプリケーションプログラムがあり、これらのアプリケーションプログラムはすべて、ファイルを転送するための同一のプロトコルに従う。FTPの使用中、2つの概念がしばしば登場する。すなわち、ダウンロードおよびアップロードである。ファイルをダウンロードすることは、リモートホストから自身のコンピュータへファイルをコピーすることを指し、ファイルをアップロードすることは、自身のコンピュータからリモートホストへファイルをコピーすることを指す。
【0045】
上述の説明から分かるように、FTPは、インターネット上でのファイルの双方向転送を制御するアプリケーションプログラムであり得る。しかしながら、FTPは実際には、TCPに基づいてデータ伝送機能を実装する。TCPは、コネクション指向、高信頼性、バイトストリームベースのトランスポート層通信プロトコルであり、インターネットエンジニアリングタスクフォース(英文全表記:Internet Engineering Task Force、略称:IETF)のリクエストフォーコメンツ(英文全表記:Request for Comments、略称:RFC)793によって定義される。簡潔なコンピュータネットワーク開放型システム間相互接続(英文全表記:Open System Interconnection、略称:OSI)モデルにおいて、TCPは、第4層すなわちトランスポート層によって規定される機能を実現するために使用される。アプリケーション層は、8ビットのバイトで表される、ネットワーク間伝送に使用されるデータストリームをTCP層へ送信し、次にTCP層は、データストリームをパケット内にカプセル化し、ネットワークを使用することによってパケットを受信端のTCP層へ伝送する。TCP層によってカプセル化された各パケットは、パケットの最初のバイトに対応するシーケンス番号を含み、後続のバイトの各々は、最初のバイトのシーケンス番号に基づいてインクリメントされる。バイトに対応するシーケンス番号が連続していないとき、パケット損失が検出され得る。パケット伝送プロセスにおいて、受信端は、成功裏に受信されたパケットのための対応する肯定応答ACKメッセージを返す。送信端が適切なRTT内にパケットに対応するACKを受信しない場合、パケットが失われたと想定し、パケットが再伝送される。
【0046】
本発明の実施形態において提供されるデータ伝送方法は、ネットワークデバイスに適用され得るか、または、端末デバイスに適用され得ることを理解すべきである。具体的なデプロイメントのシナリオは、本明細書において限定されない。
【0047】
図1を参照すると、本発明の実施形態におけるデータ伝送方法の実施形態は、以下の段階を備える。
【0048】
101:第1プロトコルを使用することによって、送信端によって送信されたK個のパケットを受信する。各パケットはシーケンス番号を含み、K個のパケットは、送信端によって送信されたL個のパケットの一部である。
【0049】
この実施形態において、受信端は、第1プロトコルを使用することによって、送信端によって送信されたK個のパケットを受信し、各パケットはシーケンス番号を含む。Kは、1より大きいか、または、それに等しい自然数であり、Lは、Kより大きいか、または、それに等しい自然数である。
【0050】
第1プロトコルは、従来のTCPプロトコルが修正された後に取得されるプロトコルであり、本明細書において、修正TCPと称されるか、または、拡張TCPと称され得る。従来のTCPとは異なり、修正TCPは、パケット損失状態に基づいて、肯定応答ACKメッセージの送信を遅延させるために使用され、第1プロトコル、すなわち修正TCPは、パケットを再伝送することに使用されない。本発明において、受信端および送信端は、従来のTCPを使用することによってTCP接続を確立し、その結果、受信端は、第1プロトコルを使用することによって、送信端によって送信されるパケットを受信できる。
【0051】
各パケットの各バイトは、1つのシーケンス番号に対応する。第1パケットの最初のバイトのシーケンス番号は、xとして表され得て、第1パケットの最初のバイトに続く、第1パケットの2番目のバイトのシーケンス番号は、x+1であり、以降も同様である。xは、0より大きいか、またはそれに等しい正の整数である。第1パケットの最後のバイトのシーケンス番号がyである場合、第2パケットの最初のバイトのシーケンス番号は、y+1であり、yは、0より大きいか、または、それに等しい正の整数である。
【0052】
102:K個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことが検出されたとき、目標パケットに基づいて第2送信遅延を決定し、第2送信遅延は第1送信遅延より大きく、第1送信遅延は事前設定される。
【0053】
この実施形態において、受信端は、K個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことを検出したとき、データシーケンス全体における目標パケット数、データシーケンス全体における目標パケットの長さ、および、データシーケンス全体における目標パケットのオフセット位置のうちの少なくとも1つの情報に基づいて、第2送信遅延を決定する。第2送信遅延は、受信端が肯定応答ACKメッセージを送信端へ送信するために遅延する時間である。目標パケットは、L個のパケットのうちの少なくとも1つである。
【0054】
第2送信遅延は、第1送信遅延より大きい。具体的には、事前設定された第1送信遅延が8ミリ秒(英文全表記:ミリ秒、略称:ms)である場合、受信端は8msごとに肯定応答ACKメッセージを送信端へ送信し、これにより、8ms内にどのパケットが受信されたかを送信端に通知する。8ms内に目標パケットが失われたことが分かった場合、8msの第1送信遅延が延長され、例えば、遅延値が増加され得る。遅延値は固定値か、または、特定の規則を有する値であり得る。遅延値が20msである場合、取得される第2送信遅延は28msであり、第2送信遅延は確実に第1送信遅延より大きい。第2送信遅延が28msである場合、8msが経過するとき、受信端は、受信端が目標パケットを受信していないことを送信端に通知せず、パケット損失状態を「隠し」、その後の20ms中に、これらの失われた目標パケットを受信することを再度試みる。受信端は、第1プロトコルを使用することによって、失われた目標パケットを受信した後に、肯定応答ACKメッセージを使用することによって、すべてのパケットが受信されたことを送信端に通知する。このようにして、パケットが失われたことを送信端が発見したことが原因で送信端がTCP輻輳ウィンドウを急速に減少させることが防止され、また、送信端が急速に送信速度を減少させることが防止される。
【0055】
103:第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信する。肯定応答ACKメッセージは、受信端がL個のパケットを受信したことを送信端に通知するために使用される。
【0056】
この実施形態において、受信端は、第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信し、肯定応答ACKメッセージは、受信端がK個のパケットを受信したことを送信端に通知するために、すなわち、パケットが失われていないことを送信端に通知するために使用される。
【0057】
段階103と、受信端が第2プロトコルを使用することによって、再伝送された目標パケットを受信する段階105とは、順番に実行されるわけではないことに留意すべきである。具体的には、受信端が送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信する段階103は、受信端が第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する段階105の前であり得るか、または、受信端が第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する段階105の後であり得る。
【0058】
104:第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する。
【0059】
この実施形態において、受信端は第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信し、これにより、目標パケットを再伝送するように送信端に要求する。
【0060】
第2プロトコルは、別の修正TCPであり得て、修正TCPは、準TCPプロトコルと称され、TCP準アプリケーション層に適用される。従来のTCPと異なり、第2プロトコルは、第1プロトコルを使用することによって送信される目標パケットについての関連情報を受信するために使用でき、第2プロトコルは、目標パケットを再伝送するために使用できる。
【0061】
さらに、第2プロトコルは、修正されたユーザデータグラムプロトコル(英文全表記:User Datagram Protocol、略称:UDP)であり得る。従来のUDPは、OSI参照モデルにおけるコネクションレストランスポート層プロトコルであり、トランザクション指向の単純で低信頼性の情報転送サービスを提供するために使用される。ネットワークにおいて、従来のUDPはコネクションレスプロトコルであり、TCPプロトコルと同様にパケットを処理するために使用される。UDPには、パケットのグループ化、組み合わせ、および、パケットの並べ替えを提供しないという短所がある。具体的には、パケットが送信された後、パケットが安全かつ完全に到着したかどうかを認識できない。UDPは、コンピュータ間でデータを伝送する必要があるネットワークの用途をサポートするために使用される。
【0062】
インターネットプロトコル(英文全表記:Internet Protocol、略称:IP)層の間のデータ伝送は低信頼性である。TCP層は、低信頼性のIP層の上に確立され、高信頼性の伝送を提供する。準TCP層が、TCP層の上の層に確立される。受信端は、第2プロトコルを使用するTCP準アプリケーション層を使用することによって、第2プロトコルを使用する、送信端にあるTCP準アプリケーション層へ再伝送要求を送信し、その結果、送信端は、受信された再伝送要求に基づいて、目標パケットを再伝送する。
【0063】
105:第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。
【0064】
この実施形態において、送信端は、第2プロトコルを使用することによって、受信端によって送信された再伝送要求を受信した後に、要求に基づいて、第2プロトコルを使用することによって、失われた目標パケットを受信端へ再伝送し、受信端は、第2プロトコルを使用することによって、対応する目標パケットを受信する。
【0065】
受信端は、第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信した後に、第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信し得ることに留意すべきである。ここでは、これに限定されない。
【0066】
本発明は、ビッグデータシナリオに適用され得るデータ伝送方法を提供する。受信端は、第1プロトコルを使用することによって、送信端によって送信されたK個のパケットを受信し、各パケットは、シーケンス番号を含み、K個のパケットは、送信端によって送信されたL個のパケットの一部である。受信端は、K個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことを検出したとき、目標パケットに基づいて、第2送信遅延を決定し、第2送信遅延は第1送信遅延より大きく、第1送信遅延は事前設定される。受信端は、第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信し、肯定応答ACKメッセージは、受信端がL個のパケットを受信したことを送信端に通知するために使用される。受信端は、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信し、第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。上述の方法はデータ伝送のために使用され、その結果、送信端がTCP輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のTCPストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のTCPストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【0067】
任意で、
図1に対応する実施形態に基づいて、本発明のこの実施形態において提供されるデータ伝送方法の第1の任意の実施形態において、目標パケットに基づいて第2送信遅延を決定する段階の前に、方法はさらに、K個のパケットのうちの第1パケットの最後のバイトに対応するシーケンス番号が、K個のパケットのうちの第2パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定する段階であって、第1パケットは、第2パケットの前に受信される、段階と、第1パケットの最後のバイトに対応するシーケンス番号が、第2パケットの最初のバイトに対応するシーケンス番号と連続している場合、パケットが失われていないと決定する、または、第1パケットの最後のバイトに対応するシーケンス番号が、第2パケットの最初のバイトに対応するシーケンス番号と連続していない場合、少なくとも1つのパケットが失われたと決定する段階であって、少なくとも1つのパケットは目標パケットである、段階とを備え得る。
【0068】
パケットが失われたかどうかを決定するための方法が、この実施形態において提供され、具体的には以下の通りである。第1パケットが、第2パケットの前に受信される。第1パケットの長さが10バイトであり、各バイトは1つのシーケンス番号に対応すると想定する。具体的には、第1パケットの10バイトのシーケンス番号は、それぞれ、1、2、3、4、5、6、7、8、9、10である。従って、第1パケットが受信された後に、第1パケットの最後のバイトに対応するシーケンス番号10が取得され得る。
【0069】
第1パケットが受信された後に、第2パケットが続いて受信される。この場合、第2パケットの最初のバイトに対応するシーケンス番号を取得するために、第2パケットは解析される必要がある。最初のバイトに対応するシーケンス番号が11である場合、このことは、第2パケットが第1パケットと連続していることを示し、すなわち、パケットが失われていないと決定される。第2パケットの最初のバイトに対応するシーケンス番号が11でない場合、このことは、第2パケットが第1パケットと連続していないことを示し、すなわち、少なくとも1つのパケットが失われたと決定され、失われた少なくとも1つのパケットは目標パケットである。
【0070】
さらに、パケットが失われているかどうかを決定するための方法が本発明のこの実施形態において提供される。K個のパケットにおける第1パケットの最後のバイトに対応するシーケンス番号が、K個のパケットにおける第2パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定することによって、パケットが失われているかどうかが決定され得る。失われたパケットは、上述の方法を使用することによって決定される。パケットが失われていない場合、第2送信遅延を増加させる必要は無い。上述の方法を使用することによって、目標パケットが失われていると決定された場合、第2送信遅延はさらに増加され得る。従って、目標パケットが失われているかどうかを決定することによって、第2送信遅延を増加させる必要があるかどうかがより正確に分かり得て、これにより、解決法の実現可能性および実用性が向上する。
【0071】
任意で、
図1に対応する実施形態に基づいて、本発明のこの実施形態において提供されるデータ伝送方法の第2の任意の実施形態において、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する前に、方法はさらに、第1プロトコルを使用することによって、目標パケットについての情報を第2プロトコルへ送信する段階を備え得る。
【0072】
この実施形態において、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する前に、受信端はまず、受信端の第1プロトコルを使用することによって、目標パケットについての関連情報を受信端の第2プロトコルへ送信する必要がある。目標パケットについての関連情報には、失われたパケットのオフセットおよび長さが含まれる。オフセットとは、データストリーム全体における、失われたパケットのオフセット位置を指し、長さは、パケットにおけるバイト数を指す。目標パケットについての情報はさらに、いくつかの他の情報を含み得ることを理解されたい。
【0073】
受信端が、第1プロトコルを使用することによって、目標パケットについての情報を受信端の第2プロトコルへ送信することについての詳細は、
図2を参照されたい。
図2は、本発明の実施形態に係る第1プロトコルと第2プロトコルとの間のインタラクションのプロセスの概略図である。
図2に示されるように、2つのTCP/IPプロトコルスタックがネットワーク要素(英文全表記:Network Element、略称:NE)上に展開される。データ伝送は、3つの部分、すなわち、サーバからNE_A、NE_AからNE_B、NE_Bからクライアントに分けられる。既存の標準的なTCP/IPプロトコルスタックは、TCP_AおよびTCP_Bにおいて使用される。例えばメモリおよびメッセージの共有など、NEデバイス間のデータ交換のための多くの方法がある。NEを使用することによって通信するために、TCPプロキシがサーバとクライアントとの間に配置され得る。NE_Aは、データをサーバから取得しながら、データをNE_Bへ送信し得る。NE_Bは、データをNE_Aから受信しながら、データをクライアントへ送信し得る。
【0074】
TCP_AおよびTCP_Bは既存のTCPプロトコルである。サーバおよびNE_Aは、既存のTCPプロトコルを使用することによって、TCPピアプロトコル層でデータを伝送する。NE_Bおよびクライアントは、既存のTCPプロトコルを使用することによって、TCPピアプロトコル層でデータを伝送する。NE_AおよびNE_Bは、個別に既存のTCPプロトコルを修正し、第1プロトコルおよび第2プロトコルを取得する。パケットは、送信端のTCPピアプロトコル層で、アプリケーション層を使用することによって、第1プロトコルを使用するTCP層へ送信される。同様に、パケットは、受信端のTCPピアプロトコル層で、アプリケーション層を使用することによって、第1プロトコルを使用するTCP層へ送信される。受信端は、第1プロトコルを使用することによって肯定応答ACKメッセージを送信端へ送信し、送信端は、第2プロトコルを使用することによって、受信端への再伝送を要求された目標パケットを送信する。
【0075】
本発明の解決法において、NE_Aは、サーバ側の送信端であり、NE_Bは、クライアント側の受信端である。受信端は、説明のための例として使用される。受信端が、受信端の第1プロトコルを使用することによって、目標パケットについての情報を受信端の第2プロトコルへ送信することは、具体的には以下の通りであり得る。受信端は、第1プロトコルを使用することによって、計算を通して、目標パケットの最初のバイトに対応するシーケンス番号、目標パケットの長さ、および、目標パケットのオフセット位置を取得し、第1プロトコルを使用することによって、目標パケットについての情報を第2プロトコルへ送信する。
【0076】
さらに、第1プロトコルと第2プロトコルとの間の関係は、具体的には、本発明のこの実施形態において説明される。データ交換は、受信端または送信端の第1プロトコルと第2プロトコルとの間で実行される。第1プロトコルは主に、パケット損失が起きた場合に、肯定応答ACKメッセージの送信を遅延できることを実装し、第2プロトコルは、協同方式の効果的なデータ伝送を実現するために送信端と受信端との間で使用され、失われたパケットの再伝送を担う。新しく追加された第2プロトコルは、実際の適用プロセスにおいて、パケット再伝送効率を向上させる役割を果たし、第1プロトコルと第2プロトコルとの間のデータ交換は、本発明の解決法の具体的な実装のためのサポートを提供し、これにより、解決法の実現可能性および実用性を向上させる。
【0077】
任意で、
図1に対応する第1の任意の実施形態に基づいて、本発明のこの実施形態において提供されるデータ伝送方法の第3の任意の実施形態において、少なくとも1つのパケットが失われたと決定した後に、方法はさらに、第1プロトコルの初期シーケンス番号、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて、第2プロトコルを使用することによって、目標パケットの位置を決定する段階を備え得る。
【0078】
送信される予定のデータストリーム全体における目標パケットの位置を決定するための方法が、この実施形態において提供される。受信端は、第1プロトコルを使用することによって、送信端によって送信されたパケットを受信し、これらのパケットのうちのパケットが失われているかどうかを決定し得る。少なくとも1つのパケットが失われたと決定された後に、受信端は、第1プロトコルの初期シーケンス番号、すなわち、送信端が第1プロトコルを使用することによって、受信端へ初めて送信されたパケットの最初のバイトのシーケンス番号を取得し、解析を通して、第1パケットの最後のバイトに対応するシーケンス番号と、第2パケットの最初のバイトに対応するシーケンス番号とを取得し得る。第1パケットは、第2パケットの前に受信される。受信端は、初期シーケンス番号と、第1パケットの最後のバイトに対応するシーケンス番号とに基づいて、計算を通して、データストリーム全体における失われたパケットのオフセット位置を取得し得る。受信端はさらに、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて、計算を通して、失われたパケットの長さ、すなわち、バイト数を取得し得る。
【0079】
実際の適用において、伝送される予定のパケットの数が比較的小さい場合、各パケットの順番は、シーケンス番号を用いて直接的に示され得る。しかしながら、ビッグデータ伝送の場合、パケット数は通常、比較的大きい。概して、TCPを使用することによって伝送されるパケットのシーケンス番号には制約がある。最大シーケンス番号は(2
32−1)であり、初期シーケンス番号は、0から(2
32−1)までの任意の正の整数である。シーケンス番号が(2
32−1)より大きいとき、シーケンス番号のループ回数が設定される必要がある。例えば、実際のシーケンス番号が(2
32+1)であるとき、このことは、実際のシーケンス番号が(2
32−1)の範囲を超えることを意味する。従って、シーケンス番号のループ回数は、「1」に設定され、1回のループが終了することを示す。実際のシーケンス番号の表現は、実際のシーケンス番号から最大シーケンス番号を減算し、次に、1を減算することによって取得され得る。(2
32+1)は、1_1として表され得る。1_1における1番目の「1」は、1回のループが終了することを示し、2番目の「1」は、新しいループにおいて占められる位置が2番目の位置であることを示す。なぜなら、それより前に、シーケンス番号が「0」である位置がさらに存在するからである。
【0080】
ビッグデータ伝送中、シーケンス番号が最大シーケンス番号より大きい場合は、シーケンス番号のループ回数を追加することによって処理され得て、その結果、実際の適用における解決法の実現可能性が向上し、目標パケットの位置は、計算を通してより正確に取得できる。
【0081】
シーケンス番号のループ回数を追加するための方法を使用してパケットのシーケンス番号を計算することに加えて、パケットにおいて保持される最大シーケンス番号は、プロトコルを改善することによって増加され得ることに留意すべきである。
【0082】
ここまで、受信端は、TCP層において第1プロトコルを使用して、計算を通して取得される、送信される予定のデータストリーム全体における、パケットのオフセット位置および長さなどの情報をTCP準アプリケーション層へ送信し、TCP準アプリケーション層において第2プロトコルを使用して、上述の情報に基づいて、失われた目標パケットの具体的な位置を取得し、これにより、目標パケットを再伝送する。
【0083】
さらに、本発明のこの実施形態において、受信端は、初期シーケンス番号、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて、第1プロトコルを使用することによって、情報を第2プロトコルへ送信し得て、これにより、受信端は、第2プロトコルを使用することによって、送信される予定のデータストリーム全体における、目標パケットの位置を決定する。従って、解決法の実現可能性、実用性および柔軟性がより高くなる。
【0084】
任意で、
図1に対応する第3の任意の実施形態に基づいて、本発明のこの実施形態において提供されるデータ伝送方法の第4の任意の実施形態において、第1プロトコルの初期シーケンス番号、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて、第2プロトコル使用することによって、目標パケットの位置を決定することは、式M=A+1に基づいて、目標パケットの最初のバイトに対応するシーケンス番号を計算することであって、Mは目標パケットに対応する最初のバイトであり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、こと、式N=B−A−1に基づいて、目標パケットの長さを計算することであって、Nは目標パケットの長さであり、Bは第2パケットの最初のバイトに対応するシーケンス番号であり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、こと、および、式Q=A−Yに基づいて、目標パケットのオフセット位置を計算することであって、Qは目標パケットのオフセット位置であり、Aは第1パケットの最後のバイトに対応するシーケンス番号であり、Yは初期シーケンス番号である、ことを含み得る。
【0085】
目標パケットの位置を決定するための式が、本実施形態において提供され、具体的には以下の通りである。
【0086】
(1)式M=A+1に基づいて、目標パケットに対応する最初のバイトを計算する。
【0087】
Mは、目標パケットに対応する最初のバイトである。Aは第1パケットの最後のバイトに対応するシーケンス番号であり、Aは20099であると想定する。この場合、目標パケットは第1パケットと第2パケットとの間の失われたパケットなので、Mは20099+1=20100であり、目標パケットの最初のバイトは、第1パケットの最後のバイトと連続している。
【0088】
(2)式N=B−A−1に基づいて、目標パケットの長さを計算する。
【0089】
Nは目標パケットの長さである。Bは第2パケットの最初のバイトに対応するシーケンス番号であり、Bは21100であると想定する。Aは第1パケットの最後のバイトに対応するシーケンス番号であり、Aは20099であると想定する。この場合、第1パケットは第2パケットから目標パケットによって隔てられているので、Nは21100−20099−1=1000である。従って、目標パケットにおけるバイトの長さは、第2パケットの最初のバイトに対応するシーケンス番号から、第1パケットの最後のバイトに対応するシーケンス番号を減算し、次に1を減算することによって取得される。
【0090】
(3)式Q=A−Yに基づいて、目標パケットのオフセット位置を計算する。
【0091】
Qは目標パケットのオフセット位置である。Aは第1パケットの最後のバイトに対応するシーケンス番号であり、Aは20099であると想定する。Yは初期シーケンス番号であり、Yは99であると想定する。この場合、オフセット位置は目標パケットの開始位置なので、Qは20099−99=20000である。目標パケットの位置は、第1パケットの最後のバイトに対応するシーケンス番号から初期シーケンス番号を減算することによって知られ得る。
【0092】
さらに、本発明のこの実施形態において、いかにして第2プロトコルを使用することによって目標パケットの位置を決定するかが説明されている。受信端は、目標パケットの位置を決定するべく、関連する式に基づいて、目標パケットに対応する最初のバイト、目標パケットの長さ、および、目標パケットのオフセット位置を計算し得て、これにより、解決法の実装についての具体的な基礎を提供し、解決法の実現可能性を向上させる。
【0093】
任意で、
図1、または、
図1に対応する第1から第4の任意の実施形態のいずれか1つに基づいて、本発明のこの実施形態において提供されるデータ伝送方法の第5の任意の実施形態において、目標パケットに基づいて第2送信遅延を決定する段階の後に、方法はさらに、カウンタを開始する段階と、1つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定する段階であって、パケットが失われた場合、カウンタをリセットし、第2送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第2送信遅延を減少させ、カウンタをリセットする、段階とを備え得る。
【0094】
この実施形態において、受信端は、目標パケットに基づいて第2送信遅延を決定した後に、実際の状況に基づいて、第2送信遅延を制御し得る。
【0095】
具体的には
図3を参照すると、
図3は、本発明の実施形態に係る受信端による第2送信遅延の制御の概略フローチャートである。
図3に示されるように、以下の段階が含まれる。
【0096】
段階201:ユーザは第1送信遅延を設定し、カウンタをゼロに戻し、カウンタオーバーフロー値を設定する。
【0097】
例えば、ユーザは実際の状況に基づいて第1送信遅延を設定し、すなわち、ACK遅延初期値を8ミリ秒にして、次に、カウンタをゼロに戻し、最後に、カウンタオーバーフロー値を100に設定し、すなわち、事前設定閾値を100にする。具体的には、失われていないパケットの数が100より大きいか、または、それに等しいとき、カウンタはオーバーフローする。
【0098】
段階202:カウンタを開始し、送信端によって送信されたパケットの受信を開始し、カウンタはパケットの数を計算するために使用される。
【0099】
段階203:パケットが失われたかどうかを決定する。
【0100】
1つのパケットを受信するたびに、受信端はパケット損失が発生したかどうかを決定する必要がある。決定方法は、
図1に対応する第1の任意の実施形態において説明されるプロセスと同様である。具体的には、受信端は、第1パケットの最後のバイトに対応するシーケンス番号が第2パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定することによって、パケットが失われたかどうかを決定する。
【0101】
段階204:パケットが失われたと決定されたとき、カウンタをリセットし、第2送信遅延を増加させる。
【0102】
第1パケットの最後のバイトに対応するシーケンス番号が、第2パケットの最初のバイトに対応するシーケンス番号と連続していない場合、パケットが失われたと決定される。この場合、カウンタはリセットされる必要があり、第2送信遅延は増加される必要がある。20msなどの1つの固定値が毎回増加される。1つのパケットが失われたとき、第2送信遅延は28msである(ACK遅延初期値+1×固定値)。当然、2つのパケットが連続して失われた場合、第2送信遅延は48msであり(ACK遅延初期値+2×固定値)、以降も同様である。第2送信遅延は上述の方式で計算される。
【0103】
段階205:パケットが失われていないと決定されたとき、非パケット損失タイマの値を累積的に増加させる。
【0104】
第1パケットの最後のバイトに対応するシーケンス番号が、第2パケットの最初のバイトに対応するシーケンス番号と連続している場合、パケットが失われていないと決定される。この場合、カウンタの値は累積的に増加される必要がある。例えば、ゼロに戻されたカウンタについては、受信された第1パケットが失われていないと決定されたとき、カウンタの値は1であり、第2パケットも失われていないとき、カウンタの値は累積的に増加されて2になり、以降も同様である。カウンタの値は上述の方式で累積的に増加される。
【0105】
段階206:カウンタがオーバーフローしたかどうかを決定し、すなわち、カウンタの値が事前設定閾値に到達したかどうかを決定する。
【0106】
カウンタの値が事前設定閾値に到達したかどうかは、カウンタの値が累積的に増加されるたびに決定される必要がある。段階201に基づいて、カウンタオーバーフロー値は100であること、すなわち事前設定閾値が100であることが分かり得る。カウンタの累積的に増加された値が事前設定閾値に到達した場合、段階207が実行される。または、カウンタの累積的に増加された値が事前設定閾値より低い場合、段階202が実行され、引き続き次のパケットを受信する。
【0107】
段階207:カウンタがオーバーフローしたとき、第2送信遅延を減少させ、カウンタをゼロに戻す。
【0108】
カウンタの累積的に増加された値が事前設定閾値に到達した場合、カウンタの累積的に増加された値は丁度100であると想定すると、第2送信遅延を減少させる必要がある。100に到達するたびに、1msのような第2固定値に基づいて第2送信遅延が減少され得て、カウンタはリセットされ、すなわち、カウンタはゼロに戻され、段階202が実行され、引き続き後続のパケットを受信する。
【0109】
本実施形態における、第1送信遅延、毎回増加される固定値の大きさ、カウンタの事前設定閾値、および、第2固定値の大きさは、実際の状況に基づいて設定され得ることに留意すべきである。
【0110】
なおさらに、本発明のこの実施形態において、受信端は実際の状況に基づいて、第2送信遅延を制御し得る。受信端は、パケットが失われたと決定したとき、第2送信遅延を増加させ、これにより、受信端がパケット損失を検出したときに肯定応答ACKメッセージを送信端へ送信したことが原因で、送信端の輻輳ウィンドウが半分になるという問題を回避する。受信端は、パケットが失われていないと決定したとき、第2送信遅延を減少させ、これにより、送信端は、より適切なタイミングで、受信端の受信状態を認識することができる。このようにして、送信端の輻輳ウィンドウは突然減少しないので、データを伝送するためにTCPが使用されるとき、スループットを保証できる。さらに、受信端は、カウンタを使用することによってパケットの数を計算するための方法を使用することによって、第2送信遅延を制御し、これにより、解決法の実現可能性および柔軟性を向上させることができる。
【0111】
理解を容易にするべく、以下では、特定の適用シナリオを使用することによって、本発明におけるデータ伝送方法を詳細に説明する。
図4を参照すると、
図4は、本発明の実施形態に係るデータ伝送の適用シナリオである。データ伝送の適用シナリオは、具体的には以下の通りである。
【0112】
1.送信端のTCP層と受信端のTCP層との間でTCP接続を確立する。送信端の初期シーケンス番号は99であり、受信端の初期シーケンス番号は21234であると想定する。
【0113】
2.送信端と受信端との間のデータ交換を実行する。送信端はパケットを送信し、受信端は受信されたパケットを確認する。パケットは、送信端から送信され、受信端によって受信される。このプロセスにおいてパケットが失われていない場合、送信端によって送信されたパケットの最後のバイトに対応するシーケンス番号は19099である。
【0114】
3.送信端は、第1プロトコルを使用するTCP層を使用することによって、シーケンス番号が19100、長さが1000であるパケットを、受信端のTCP層へ送信する。パケットの最初のバイトのオフセット位置は、19000(すなわち、19099−99=19000)であり、送信端によって送信されたパケットの最後のバイトに対応するシーケンス番号は20099である。
【0115】
4.送信端は、TCP層において、第1プロトコルを使用することによって、シーケンス番号が20100、長さが1000であるパケットを送信する。パケットの最初のバイトのオフセット位置は20000であり、パケットが伝送プロセス中に失われたと想定する。
【0116】
5.送信端は、TCP層において、第1プロトコルを使用することによって、シーケンス番号が21100、長さが1000であるパケットを送信する。パケットの最初のバイトのオフセット位置は21000であり、パケットは受信端によって受信される。
【0117】
A:受信されたパケットのシーケンス番号がもはや連続していないことを受信端が検出した場合、受信端のTCP層は、この場合にパケットが失われたと決定し得て、前のパケットの最後のバイトのシーケンス番号、および、現在受信されたパケットの最初のバイトに対応するシーケンス番号に基づいて、失われたパケットのシーケンス番号および長さを取得し得る。前のパケットの最後のバイトのシーケンス番号が20099である場合、失われたパケットの最初のバイトに対応するシーケンス番号は、20099+1=20100であり、失われたパケットの長さは、21100−20099−1=1000であり、失われたパケットの最初のバイトのオフセット位置は、20099−99=20000である。受信端のTCP層は、情報をTCP準アプリケーション層へ報告する。
【0118】
B:受信端のTCP層は、第2送信遅延を増加させ、受信端のTCP準アプリケーション層は、送信端のTCP準アプリケーション層に対する再伝送要求を開始する。要求に保持される情報は、失われたパケットの最初のバイトのオフセット位置が20000であり、失われたパケットの長さが1000であることを示す。
【0119】
6−8.受信端のTCP層と送信端のTCP層との間でパケットの送信、受信および肯定応答を継続する。
【0120】
以下では、本発明における受信端を詳細に説明する。
図5を参照すると、本発明の実施形態における受信端300は、第1プロトコルを使用することによって、送信端によって送信されたK個のパケットを受信するように構成されている受信モジュール301であって、各パケットはシーケンス番号を含み、K個のパケットは、送信端によって送信されたL個のパケットの一部である、受信モジュール301と、受信モジュール301によって受信されたK個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたと検出したとき、目標パケットに基づいて第2送信遅延を決定するように構成されている決定モジュール302であって、第2送信遅延は、第1送信遅延より大きく、第1送信遅延は事前設定される、決定モジュール302と、決定モジュール302によって決定された第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信するように構成されている送信モジュール303であって、肯定応答ACKメッセージは、受信端がL個のパケットを受信したことを送信端に通知するために使用される、送信モジュール303とを備える。
【0121】
送信モジュール303はさらに、決定モジュール302が、K個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことを検出したとき、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信するように構成されている。
【0122】
受信モジュール301はさらに、送信モジュール303が、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信した後に、第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信するように構成されている。
【0123】
この実施形態において、受信モジュール301は、第1プロトコルを使用することによって、送信端によって送信されたK個のパケットを受信し、受信された各パケットはシーケンス番号を含み、K個のパケットは、送信端によって送信されたL個のパケットの一部である。決定モジュール302は、受信モジュール301によって受信されたK個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことを検出したとき、目標パケットに基づいて、第2送信遅延を決定し、第2送信遅延は第1送信遅延より大きく、第1送信遅延は事前設定される。送信モジュール303は、決定モジュール302によって決定される第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信し、肯定応答ACKメッセージは、受信端がL個のパケットを受信したことを送信端に通知するために使用される。送信モジュール303は、決定モジュール302が、K個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことを検出したとき、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する。送信モジュール303が、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信した後に、受信モジュール301は、第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。
【0124】
本発明は、ビッグデータシナリオに適用され得るデータ伝送方法を提供する。受信端は、第1プロトコルを使用することによって、送信端によって送信されたK個のパケットを受信し、各パケットは、シーケンス番号を含み、K個のパケットは、送信端によって送信されたL個のパケットの一部である。受信端は、K個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことを検出したとき、目標パケットに基づいて、第2送信遅延を決定し、第2送信遅延は第1送信遅延より大きく、第1送信遅延は事前設定される。受信端は、第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信し、肯定応答ACKメッセージは、受信端がL個のパケットを受信したことを送信端に通知するために使用される。受信端は、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信し、第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。上述の方法はデータ伝送のために使用され、その結果、送信端がTCP輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のTCPストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のTCPストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【0125】
任意で、
図5に対応する実施形態に基づいて、
図6を参照すると、本発明のこの実施形態において提供される受信端の別の実施形態において、受信端300はさらに、判定ユニット304を備える。
【0126】
判定モジュール304は、決定モジュール302が目標パケットに基づいて、送信遅延を決定する前に、K個のパケットにおける第1パケットの最後のバイトに対応するシーケンス番号が、K個のパケットにおける第2パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定するように構成され、第1パケットは、第2パケットの前に受信される。
【0127】
決定モジュール302はさらに、判定モジュール304が、第1パケットの最後のバイトに対応するシーケンス番号が第2パケットの最初のバイトに対応するシーケンス番号と連続していると決定した場合、パケットが失われていないと決定する、または、判定モジュール304が、第1パケットの最後のバイトに対応するシーケンス番号が、第2パケットの最初のバイトに対応するシーケンス番号と連続していないと決定した場合、少なくとも1つのパケットが失われたと決定するように構成され、少なくとも1つのパケットは目標パケットである。
【0128】
さらに、本発明のこの実施形態において、パケットが失われたかどうかを決定するための方法が提供される。K個のパケットにおける第1パケットの最後のバイトに対応するシーケンス番号が、K個のパケットにおける第2パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定することによって、パケットが失われているかどうかが決定され得る。失われたパケットは、上述の方法を使用することによって決定される。パケットが失われていない場合、第2送信遅延を増加させる必要は無い。上述の方法を使用することによって、目標パケットが失われていると決定された場合、第2送信遅延はさらに増加され得る。従って、目標パケットが失われているかどうかを決定することによって、第2送信遅延を増加させる必要があるかどうかがより正確に分かり得て、これにより、解決法の実現可能性および実用性が向上する。
【0129】
任意で、
図5に対応する実施形態に基づいて、本発明のこの実施形態において提供される受信端の別の実施形態において、送信モジュール303はさらに、送信モジュール303が第2プロトコルを使用して目標パケットのための再伝送要求を送信端へ送信する前に、第1プロトコルを使用することによって、目標パケットについての情報を第2プロトコルへ送信するように構成されている。
【0130】
さらに、第1プロトコルと第2プロトコルとの間の関係は、具体的には、本発明のこの実施形態において説明される。データ交換は、受信端または送信端の第1プロトコルと第2プロトコルとの間で実行される。第1プロトコルは主に、パケット損失が起きた場合に、肯定応答ACKメッセージの送信を遅延できることを実装し、第2プロトコルは、協同方式の効果的なデータ伝送を実現するために送信端と受信端との間で使用され、失われたパケットの再伝送を担う。新しく追加された第2プロトコルは、実際の適用プロセスにおいて、パケット再伝送効率を向上させる役割を果たし、第1プロトコルと第2プロトコルとの間のデータ交換は、本発明の解決法の具体的な実装のためのサポートを提供し、これにより、解決法の実現可能性および実用性を向上させる。
【0131】
任意で、
図6に対応する実施形態に基づいて、本発明のこの実施形態において提供される受信端の別の実施形態において、決定モジュール302はさらに、決定モジュール302が、少なくとも1つのパケットが失われたと決定した後に、第1プロトコルの初期シーケンス番号、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて、第2プロトコルを使用することによって、目標パケットの位置を決定するように構成されている。
【0132】
さらに、本発明のこの実施形態において、受信端は、初期シーケンス番号、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて、第1プロトコルを使用することによって、情報を第2プロトコルへ送信し得て、これにより、受信端は、第2プロトコルを使用することによって、送信される予定のデータストリーム全体における、目標パケットの位置を決定する。従って、解決法の実現可能性、実用性およぶ柔軟性がより高くなる。
【0133】
任意で、
図6に対応する第2の実施形態に基づいて、
図7を参照すると、本発明のこの実施形態において提供される受信端の別の実施形態において、決定モジュール302は、式M=A+1に基づいて、目標パケットに対応する最初のバイトを計算することであって、Mは目標パケットに対応する最初のバイトであり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、こと、式N=B−A−1に基づいて、目標パケットの長さを計算することであって、Nは目標パケットの長さであり、Bは第2パケットの最初のバイトに対応するシーケンス番号であり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、こと、および、式Q=A−Yに基づいて、目標パケットの位置を計算することであって、Qは目標パケットの位置であり、Aは第1パケットの最後のバイトに対応するシーケンス番号であり、Yは初期シーケンス番号である、ことを行うように構成されている計算ユニット3021を含む。
【0134】
さらに、本発明のこの実施形態において、いかにして第2プロトコルを使用することによって目標パケットの位置を決定するかが説明されている。受信端は、目標パケットの位置を決定するべく、関連する式に基づいて、目標パケットに対応する最初のバイト、目標パケットの長さ、および、目標パケットのオフセット位置を計算し得て、これにより、解決法の実装についての具体的な基礎を提供し、解決法の実現可能性を向上させる。
【0135】
任意で、
図5、
図6または
図7に対応する実施形態に基づいて、
図8を参照すると、本発明のこの実施形態において提供される受信端の別の実施形態において、受信端300はさらに、開始モジュール305およびカウントモジュール306を備える。
【0136】
開始モジュール305は、決定モジュール302が目標パケットに基づいて第2送信遅延を決定した後に、カウンタを開始するように構成されている。
【0137】
カウントモジュール306は、開始モジュール305がカウンタを開始した後に、1つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定し、パケットが失われた場合、カウンタをリセットし、第2送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第2送信遅延を減少させ、カウンタをリセットするように構成されている。
【0138】
図9は、本発明の実施形態に係る受信端40の模式構造図である。受信端40は、メモリ410、送受信器420、プロセッサ430およびバスシステム440を備え得る。
【0139】
メモリ410は、リードオンリーメモリおよびランダムアクセスメモリを含み得て、プロセッサ430のために命令およびデータを提供し得る。メモリ410の一部はさらに、不揮発性ランダムアクセスメモリ(英文全表記:nonvolatile random access memory、略称:NVRAM)を含み得る。
【0140】
メモリ410は、プログラム命令を記憶するように構成されている。
【0141】
プロセッサ430は、メモリ410におけるプログラム命令を実行して、第1プロトコルを使用することによって、K個のパケットを受信するように送受信器を制御するステップであって、各パケットはシーケンス番号を含み、K個のパケットは、送信端によって送信されたL個のパケットの一部である、ステップと、K個のパケットにおけるシーケンス番号に基づいて、第1プロトコルを使用することによって、目標パケットが失われたことが検出されたとき、目標パケットに基づいて第2送信遅延を決定するステップであって、第2送信遅延は第1送信遅延より大きく、第1送信遅延は事前設定される、ステップと、第2送信遅延に基づいて、第1プロトコルを使用することによって、肯定応答ACKメッセージを送信端へ送信するように送受信器を制御するステップであって、肯定応答ACKメッセージは、受信端がL個のパケットを受信したことを送信端に通知するために使用される、ステップと、第2プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信するように送受信器を制御するステップと、第2プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信するように送受信器を制御するステップとを実装するように構成されている。
【0142】
本発明のこの実施形態において、プロセッサ430はさらに、第1プロトコルを使用することによって、メモリ410におけるプログラム命令を実行し、目標パケットについての情報を第2プロトコルへ送信するように構成されている。
【0143】
プロセッサ430は、受信端40の動作を制御し、プロセッサ430は、中央処理装置(英文全表記:Central Processing Unit、略称:CPU)と称され得る。特定の適用において、受信端440のすべてのコンポーネントは、バスシステム440を使用することによって共に連結される。データバスに加えて、バスシステム440は、電源バス、制御バス、状態信号バス、および同様のものを含み得る。しかしながら、明確な説明のために、図における様々なタイプのバスをバスシステム440として示す。
【0144】
本発明の上述の実施形態において開示される方法は、プロセッサ430に適用され得るか、または、プロセッサ430によって実装され得る。プロセッサ430は、集積回路チップであり得て、信号処理機能を有する。実装プロセスにおいて、上述の方法における段階は、プロセッサ430におけるハードウェアの集積論理回路、または、ソフトウェアの形態の命令を使用することによって実現され得る。任意で、プロセッサ430はさらに、K個のパケットのうちの第1パケットの最後のバイトに対応するシーケンス番号が、K個のパケットのうちの第2パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定することであって、第1パケットは、第2パケットの前に受信される、こと、および、第1パケットの最後のバイトに対応するシーケンス番号が、第2パケットの最初のバイトに対応するシーケンス番号と連続している場合、パケットが失われていないと決定する、または、第1パケットの最後のバイトに対応するシーケンス番号が、第2パケットの最初のバイトに対応するシーケンス番号と連続していない場合、少なくとも1つのパケットが失われたと決定することであって、少なくとも1つのパケットは目標パケットである、ことを行うように構成されている。
【0145】
任意で、プロセッサ430はさらに、第1プロトコルの初期シーケンス番号、第1パケットの最後のバイトに対応するシーケンス番号、および、第2パケットの最初のバイトに対応するシーケンス番号に基づいて、第2プロトコルを使用することによって、目標パケットの位置を決定するように構成されている。
【0146】
任意で、プロセッサ430は具体的には、式M=A+1に基づいて、目標パケットの最初のバイトに対応するシーケンス番号を計算することであって、Mは目標パケットに対応する最初のバイトであり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、こと、式N=B−A−1に基づいて、目標パケットの長さを計算することであって、Nは目標パケットの長さであり、Bは第2パケットの最初のバイトに対応するシーケンス番号であり、Aは第1パケットの最後のバイトに対応するシーケンス番号である、こと、および、式Q=A−Yに基づいて、目標パケットのオフセット位置を計算することであって、Qは目標パケットのオフセット位置であり、Aは第1パケットの最後のバイトに対応するシーケンス番号であり、Yは初期シーケンス番号である、ことを行うように構成されている。
【0147】
任意で、プロセッサ430はさらに、カウンタを開始すること、および、1つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定し、パケットが失われた場合、カウンタをリセットし、第2送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第2送信遅延を減少させ、カウンタをリセットすることを行うように構成されている。
【0148】
図9の関連する説明については、
図1の方法部分の関連する説明および効果を参照して理解されたい。詳細はここで説明しない。
【0149】
上述の実施形態は、本発明の技術的解決法を説明することが意図されているに過ぎず、本発明を限定することが意図されているわけではない。本発明は、上述の実施形態を参照して詳細に説明されているが、本発明の実施形態の技術的解決法の主旨および範囲から逸脱することなく、さらに、上述の実施形態において説明された技術的解決法に対して変更を施し、または、これらのいくつかの技術的特徴に対して均等な置き換えを行い得ることを当業者は理解すべきである。