(57)【要約】  本発明はデータ伝送方法およびデバイスを開示する。受信端は、第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信し、受信された各パケットは、シーケンス番号を含む。受信端は、Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたと検出したとき、目標パケットに基づいて、第２送信遅延を決定し、第２送信遅延は、第１送信遅延より大きい。受信端は、第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信し、肯定応答ＡＣＫメッセージは、受信端が、送信端によって送信されたすべてのパケットのうちのＫ個のパケットを受信したことを送信端に通知するために使用される。受信端は、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信し、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。本発明の実施形態において、送信端がＴＣＰ輻輳ウィンドウを減少させることを効果的に防止することができる。本発明は、安定した高いスループットを保証し、データを伝送するために複数のＴＣＰストリームを使用する従来技術と比較して、メモリ要件を下げ、これにより、システムリソースを節約する。
2019506072.tif 000002
【特許請求の範囲】
【請求項１】
データ伝送の方法であって、
第１プロトコルを使用することによってＫ個のパケットを受信する段階であって、各パケットはシーケンス番号を含み、前記Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である、段階と、
前記Ｋ個のパケットにおけるシーケンス番号に基づいて、前記第１プロトコルを使用することによって、目標パケットが失われたことが検出されたとき、前記目標パケットに基づいて第２送信遅延を決定する段階であって、前記第２送信遅延は、第１送信遅延より大きく、前記第１送信遅延は事前設定される、段階と、
前記第２送信遅延に基づいて、前記第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを前記送信端へ送信する段階であって、前記肯定応答ＡＣＫメッセージは、受信端が前記Ｌ個のパケットを受信したことを前記送信端に通知するために使用される、段階と、
第２プロトコルを使用することによって、前記目標パケットのための再伝送要求を前記送信端へ送信する段階と、
前記第２プロトコルを使用することによって、前記送信端によって再伝送された前記目標パケットを受信する段階と
を備える方法。
【請求項２】
目標パケットに基づいて第２送信遅延を決定する前記段階の前に、前記方法はさらに、
前記Ｋ個のパケットのうちの第１パケットの最後のバイトに対応するシーケンス番号が、前記Ｋ個のパケットのうちの第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定する段階であって、前記第１パケットは、前記第２パケットの前に受信される、段階と、
前記第１パケットの最後のバイトに対応する前記シーケンス番号が、前記第２パケットの最初のバイトに対応する前記シーケンス番号と連続している場合、パケットが失われていないと決定する、または、前記第１パケットの最後のバイトに対応する前記シーケンス番号が、前記第２パケットの最初のバイトに対応する前記シーケンス番号と連続していない場合、少なくとも１つのパケットが失われたと決定する段階であって、前記少なくとも１つのパケットは前記目標パケットである、段階と
を備える、請求項１に記載の方法。
【請求項３】
第２プロトコルを使用することによって、前記目標パケットのための再伝送要求を前記送信端へ送信する前記段階の前に、前記方法はさらに、
前記第１プロトコルを使用することによって、前記目標パケットについての情報を前記第２プロトコルへ送信する段階を備える、請求項１に記載の方法。
【請求項４】
少なくとも１つのパケットが失われたと決定する前記段階の後に、前記方法はさらに、
前記第１プロトコルの初期シーケンス番号、前記第１パケットの最後のバイトに対応する前記シーケンス番号、および、前記第２パケットの最初のバイトに対応する前記シーケンス番号に基づいて、前記第２プロトコルを使用することによって、前記目標パケットの位置を決定する段階を備える、請求項２に記載の方法。
【請求項５】
前記第１プロトコルの初期シーケンス番号、前記第１パケットの最後のバイトに対応する前記シーケンス番号、および、前記第２パケットの最初のバイトに対応する前記シーケンス番号に基づいて、前記第２プロトコルを使用することによって、前記目標パケットの位置を決定する前記段階は、
式Ｍ＝Ａ＋１に基づいて、前記目標パケットの最初のバイトに対応するシーケンス番号を計算する段階であって、Ｍは前記目標パケットに対応する最初のバイトであり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号である、段階と、
式Ｎ＝Ｂ−Ａ−１に基づいて前記目標パケットの長さを計算する段階であって、Ｎは前記目標パケットの前記長さであり、Ｂは前記第２パケットの最初のバイトに対応する前記シーケンス番号であり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号である、段階と、
式Ｑ＝Ａ−Ｙに基づいて、前記目標パケットのオフセット位置を計算する段階であって、Ｑは前記目標パケットの前記オフセット位置であり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号であり、Ｙは前記初期シーケンス番号である、段階と
を含む、請求項４に記載の方法。
【請求項６】
目標パケットに基づいて第２送信遅延を決定する前記段階の後に、前記方法はさらに、
カウンタを開始する段階と、
１つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定する段階であって、パケットが失われた場合、前記カウンタをリセットし、前記第２送信遅延を増加させる、または、パケットが失われていない場合、前記カウンタの値を増加させ、前記カウンタの前記値が事前設定閾値に到達したかどうかを決定し、前記カウンタの前記値が前記事前設定閾値に到達した場合、前記第２送信遅延を減少させ、前記カウンタをリセットする、段階と
を備える、請求項１から５のいずれか一項に記載の方法。
【請求項７】
受信端であって、
第１プロトコルを使用することによってＫ個のパケットを受信するように構成されている受信モジュールであって、各パケットはシーケンス番号を含み、前記Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である、受信モジュールと、
前記受信モジュールによって受信された前記Ｋ個のパケットにおけるシーケンス番号に基づいて、前記第１プロトコルを使用することによって、目標パケットが失われたと検出したとき、前記目標パケットに基づいて第２送信遅延を決定するように構成されている決定モジュールであって、前記第２送信遅延は、第１送信遅延より大きく、前記第１送信遅延は事前設定される、決定モジュールと、
前記決定モジュールによって決定された前記第２送信遅延に基づいて、前記第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを前記送信端へ送信するように構成されている送信モジュールであって、前記肯定応答ＡＣＫメッセージは、前記受信端が前記Ｌ個のパケットを受信したことを前記送信端に通知するために使用される、送信モジュールと
を備え、
前記送信モジュールはさらに、前記決定モジュールが前記Ｋ個のパケットにおける前記シーケンス番号に基づいて、前記第１プロトコルを使用することによって、前記目標パケットが失われたと検出したとき、第２プロトコルを使用することによって、前記目標パケットのための再伝送要求を前記送信端へ送信するように構成され、
前記受信モジュールはさらに、前記送信モジュールが前記第２プロトコルを使用することによって前記目標パケットのための前記再伝送要求を前記送信端へ送信した後に、前記第２プロトコルを使用することによって、前記送信端によって再伝送された前記目標パケットを受信するように構成されている、
受信端。
【請求項８】
前記受信端はさらに、判定モジュールを備え、
前記判定モジュールは、前記決定モジュールが前記目標パケットに基づいて送信遅延を決定する前に、前記Ｋ個のパケットにおける第１パケットの最後のバイトに対応するシーケンス番号が、前記Ｋ個のパケットにおける第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定するように構成され、前記第１パケットは、前記第２パケットの前に受信され、
前記決定モジュールはさらに、前記判定モジュールが、前記第１パケットの最後のバイトに対応する前記シーケンス番号が前記第２パケットの最初のバイトに対応する前記シーケンス番号と連続していると決定した場合、パケットが失われていないと決定する、または、前記判定モジュールが、前記第１パケットの最後のバイトに対応する前記シーケンス番号が、前記第２パケットの最初のバイトに対応する前記シーケンス番号と連続していないと決定した場合、少なくとも１つのパケットが失われたと決定するように構成され、前記少なくとも１つのパケットは前記目標パケットである、
請求項７に記載の受信端。
【請求項９】
前記送信モジュールはさらに、前記送信モジュールが前記第２プロトコルを使用することによって前記目標パケットのための前記再伝送要求を前記送信端へ送信する前に、前記第１プロトコルを使用することによって、前記目標パケットについての情報を前記第２プロトコルへ送信するように構成されている、請求項７に記載の受信端。
【請求項１０】
前記決定モジュールはさらに、前記決定モジュールが、前記少なくとも１つのパケットが失われたと決定した後に、前記第１プロトコルの初期シーケンス番号、前記第１パケットの最後のバイトに対応する前記シーケンス番号、および、前記第２パケットの最初のバイトに対応する前記シーケンス番号に基づいて、前記第２プロトコルを使用することによって、前記目標パケットの位置を決定するように構成されている、請求項８に記載の受信端。
【請求項１１】
前記決定モジュールは、
式Ｍ＝Ａ＋１に基づいて、前記目標パケットに対応する最初のバイトを計算することであって、Ｍは前記目標パケットの最初のバイトに対応するシーケンス番号であり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号である、こと、
式Ｎ＝Ｂ−Ａ−１に基づいて、前記目標パケットの長さを計算することであって、Ｎは前記目標パケットの前記長さであり、Ｂは前記第２パケットの最初のバイトに対応する前記シーケンス番号であり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号である、こと、および、
式Ｑ＝Ａ−Ｙに基づいて、前記目標パケットの位置を計算することであって、Ｑは前記目標パケットの前記位置であり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号であり、Ｙは前記初期シーケンス番号である、こと
を行うように構成されている計算ユニットを含む、請求項１０に記載の受信端。
【請求項１２】
前記受信端はさらに、開始モジュールおよびカウントモジュールを備え、
前記開始モジュールは、前記決定モジュールが前記目標パケットに基づいて前記第２送信遅延を決定した後に、カウンタを開始するように構成され、
前記カウントモジュールは、前記開始モジュールが前記カウンタを開始した後に、１つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定し、パケットが失われた場合、前記カウンタをリセットし、前記第２送信遅延を増加させる、または、パケットが失われていない場合、前記カウンタの値を増加させ、前記カウンタの前記値が事前設定閾値に到達したかどうかを決定し、前記カウンタの前記値が前記事前設定閾値に到達した場合、前記第２送信遅延を減少させ、前記カウンタをリセットするように構成されている、
請求項７から１１のいずれか一項に記載の受信端。
【請求項１３】
メモリ、送受信器、プロセッサおよびバスシステムを備える受信端であって、
前記メモリは、プログラム命令を記憶するように構成され、
前記プロセッサは、前記メモリにおける前記プログラム命令を実行して、
第１プロトコルを使用することによって、Ｋ個のパケットを受信するように前記送受信器を制御するステップであって、各パケットはシーケンス番号を含み、前記Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である、ステップと、
前記Ｋ個のパケットにおけるシーケンス番号に基づいて、前記第１プロトコルを使用することによって、目標パケットが失われたことが検出されたとき、前記目標パケットに基づいて第２送信遅延を決定するステップであって、前記第２送信遅延は第１送信遅延より大きく、前記第１送信遅延は事前設定される、ステップと、
前記第２送信遅延に基づいて、前記第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを前記送信端へ送信するように前記送受信器を制御するステップであって、前記肯定応答ＡＣＫメッセージは、前記受信端が前記Ｌ個のパケットを受信したことを前記送信端に通知するために使用される、ステップと、
第２プロトコルを使用することによって、前記目標パケットのための再伝送要求を前記送信端へ送信するように前記送受信器を制御するステップと、
前記第２プロトコルを使用することによって、前記送信端によって再伝送された前記目標パケットを受信するように前記送受信器を制御するステップと
を実装するように構成されている、
受信端。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信技術の分野に関し、特に、データ伝送方法および関連するデバイスに関する。
【背景技術】
【０００２】
ビッグデータ技術は、データの収集、伝送、処理、および管理を含むすべての側面に関することがよく知られている。データ伝送とは、ビッグデータを１つの組織から別の組織へ転送することを意味し、通常、ファイル転送プロトコル（英語名：Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ、略称：ＦＴＰ）を使用することによって伝送する。ＦＴＰは、伝送制御プロトコル（英語名：Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ、略称：ＴＣＰ）に基づいてデータ伝送を実装する。データを伝送するためにＴＣＰが使用されるとき、スループットはしばしば、パケット損失率およびラウンドトリップタイム（英語名：ｒｏｕｎｄ  ｔｒｉｐ  ｔｉｍｅ、略称：ＲＴＴ）など、多くの要因に影響される。１００ＧＢのデータであれば、伝送速度が１．３２Ｍｂｐｓ（英語名：ｍｅｇａｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ、略称：Ｍｂｐｓ）である場合、伝送を完了するために７日間が必要であり、または、伝送速度が０．３１Ｍｂｐｓである場合、伝送を完了するために３０日間が必要である。
【０００３】
現在、ビッグデータのＴＣＰ伝送性能が低いことに対して、ビッグデータの伝送効率を向上させるための多くの新しい技術がある。例えば、グリッドファイル転送プロトコル（英語名：グリッドファイル転送プロトコル、略称：Ｇｒｉｄ  ＦＴＰ）が使用される。この技術は、送信端と受信端との間に複数のＴＣＰストリームを確立してデータを伝送するために使用される。送信端は、データを複数のＴＣＰストリームへ分散し、次に、受信端が複数のＴＣＰストリームからのデータを組み合わせる。輻輳によって引き起こされたパケット損失が１または複数のＴＣＰストリーム上で発生したとき、送信端は、受信端から返された肯定応答（英語名：Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ、略称：ＡＣＫ）メッセージに基づいて、輻輳ウィンドウを半分にし、これにより、スループットの減少につながる。しかしながら、同時にデータを伝送する複数のＴＣＰストリームがあるので、データ伝送が少数のＴＣＰストリーム上で失敗したとき、平均スループットに対する影響は比較的小さく、これにより、ＴＣＰ伝送性能が保証される。
【０００４】
しかしながら、ビッグデータのデータ伝送スループットは、上述の解決法を使用することによって保証できるが、複数のＴＣＰ接続が確立される必要がある。計算のために２０のＴＣＰストリームが使用され、かつ、各ＴＣＰストリームが２０Ｍのメモリを占有する場合、１組のデータを伝送するために４００Ｍのメモリが必要となる。複数の組のデータが同時に伝送され、システムの別のアプリケーションのメモリオーバーヘッドがある場合、システムメモリはデータ伝送のボトルネックになる。
【発明の概要】
【０００５】
本発明は、データ伝送方法および関連するデバイスを提供し、これにより、送信端がＴＣＰ輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のＴＣＰストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のＴＣＰストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【０００６】
これに鑑みて、本発明の第１態様は、受信端が第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信する段階であって、各パケットはシーケンス番号を含み、Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である、段階と、受信端が、Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことを検出したとき、受信端が、目標パケットに基づいて第２送信遅延を決定する段階であって、本発明において、第２送信遅延は第１送信遅延より大きく、第１送信遅延は手動で事前設定される、段階と、受信端が、第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信する段階であって、肯定応答ＡＣＫメッセージは、「現在、受信端がＬ個のパケットを受信した」というようなメッセージを送信端に通知するために使用される、段階と、受信端が、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する段階であって、これにより、送信端は、再伝送要求に基づいて、失われた目標パケットを送信できる、段階と、受信端が、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する段階であって、ただし代替的に、受信端は、第２プロトコルを使用して、送信端によって再伝送された目標パケットを受信した後に、第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信し得て、これにより、データ伝送を完了する段階とを備えるデータ伝送方法を提供する。
【０００７】
本発明は、ビッグデータシナリオに適用され得るデータ伝送方法を提供する。受信端は、第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信し、各パケットは、シーケンス番号を含み、Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である。受信端は、Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことを検出したとき、目標パケットに基づいて、第２送信遅延を決定し、第２送信遅延は第１送信遅延より大きく、第１送信遅延は事前設定される。受信端は、第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信し、肯定応答ＡＣＫメッセージは、受信端がＬ個のパケットを受信したことを送信端に通知するために使用される。受信端は、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信し、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。上述の方法はデータ伝送のために使用され、その結果、送信端がＴＣＰ輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のＴＣＰストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のＴＣＰストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【０００８】
本発明の実施形態の第１態様を参照すると、第１の可能な実装において、受信端が目標パケットに基づいて第２送信遅延を決定する前に、方法はさらに、受信端が、Ｋ個のパケットにおける第１パケットの最後のバイトに対応するシーケンス番号が、Ｋ個のパケットにおける第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定する段階であって、第１パケットは第２パケットの前に受信される、すなわち、第１パケットは第２パケットの前のパケットである、または、第２パケットよりＮパケット前にあり、Ｎは１より大きいか、もしくは、それに等しい正の整数である、段階と、受信端が、第１パケットの最後のバイトに対応するシーケンス番号が第２パケットの最初のバイトに対応するシーケンス番号と連続している場合、パケットが失われていないと決定する、または、受信端が、第１パケットの最後のバイトに対応するシーケンス番号が第２パケットの最初のバイトに対応するシーケンス番号と連続していない場合、少なくとも１つのパケットが失われたと決定し、失われた少なくとも１つのパケットは目標パケットである、段階とを備え得る。
【０００９】
さらに、パケットが失われたかどうかを決定するための方法が、本発明の実施形態において提供される。パケットにおける第１パケットの最後のバイトに対応するシーケンス番号が、パケットにおける第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定することによって、パケットが失われているかどうかが決定され得る。失われたパケットは、上述の方法を使用することによって決定される。パケットが失われていない場合、第２送信遅延を増加させる必要は無い。上述の方法を使用することによって、目標パケットが失われていると決定された場合、第２送信遅延はさらに増加され得る。従って、目標パケットが失われているかどうかを決定することによって、第２送信遅延を増加させる必要があるかどうかがより正確に分かり得て、これにより、解決法の実現可能性および実用性が向上する。
【００１０】
本発明の実施形態の第１態様を参照すると、第２の可能な実装において、受信端が、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する前に、方法はさらに、受信端が、第１プロトコルを使用することによって、目標パケットについての情報を受信端の第２プロトコルへ送信する段階であって、目標パケットについての情報は少なくとも、目標パケットの長さおよび／またはオフセットを含み得て、オフセットは、データストリーム全体における、失われたパケットのオフセット位置を指し、長さは、パケットにおけるバイトの数を指す、段階を備え得る。
【００１１】
さらに、第１プロトコルと第２プロトコルとの間の関係は、具体的には、本発明のこの実施形態において説明される。データ交換は、受信端または送信端の第１プロトコルと第２プロトコルとの間で実行される。第１プロトコルは主に、パケット損失が起きた場合に、肯定応答ＡＣＫメッセージの送信を遅延できることを実装し、第２プロトコルは、協同方式の効果的なデータ伝送を実現するために送信端と受信端との間で使用され、失われたパケットの再伝送を担う。新しく追加された第２プロトコルは、実際の適用プロセスにおいて、パケット再伝送効率を向上させる役割を果たし、第１プロトコルと第２プロトコルとの間のデータ交換は、本発明の解決法の具体的な実装のためのサポートを提供し、これにより、解決法の実現可能性および実用性を向上させる。
【００１２】
本発明の実施形態の第１態様の第１の任意の実施形態を参照すると、第３の可能な実装において、少なくとも１つのパケットが失われたと受信端が決定した後に、方法はさらに、第１プロトコルを使用することによって取得された初期シーケンス番号、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて第２プロトコルを使用することによってデータストリーム全体における目標パケットの位置を決定する段階を備え得る。
【００１３】
さらに、本発明の実施形態において、受信端は、初期シーケンス番号、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて、第１プロトコルを使用することによって、情報を第２プロトコルへ送信し得て、これにより、受信端は、第２プロトコルを使用することによって、送信される予定のデータストリーム全体における、目標パケットの位置を決定する。従って、解決法の実現可能性、実用性および柔軟性がより高くなる。
【００１４】
本発明の実施形態の第１態様の第３の任意の実施形態を参照すると、第４の可能な実装において、第１プロトコルを使用することによって取得された初期シーケンス番号、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて、第２プロトコルを使用することによって、受信端が目標パケットの位置を決定する段階は、受信端が、式Ｍ＝Ａ＋１に基づいて目標パケットの最初のバイトに対応するシーケンス番号を計算する段階であって、Ｍは目標パケットに対応する最初のバイトであり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、段階と、受信端が、式Ｎ＝Ｂ−Ａ−１に基づいて、目標パケットの長さを計算する段階であって、Ｎは目標パケットの長さであり、Ｂは第２パケットの最初のバイトに対応するシーケンス番号であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、段階と、受信端が、式Ｑ＝Ａ−Ｙに基づいて、目標パケットのオフセット位置を計算する段階であって、Ｑは目標パケットのオフセット位置であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号であり、Ｙは初期シーケンス番号である、段階とを含み得る。
【００１５】
さらに、本発明のこの実施形態において、いかにして第２プロトコルを使用することによって目標パケットの位置を決定するかが説明されている。受信端は、目標パケットの位置を決定するべく、関連する式に基づいて、目標パケットに対応する最初のバイト、目標パケットの長さ、および、目標パケットのオフセット位置を計算し得て、これにより、解決法の実装についての具体的な基礎を提供し、解決法の実現可能性を向上させる。
【００１６】
本発明の実施形態の第１態様、または、第１態様の第１から第４の任意の実施形態のいずれか１つを参照すると、第５の可能な実装において、受信端が、目標パケットに基づいて、第２送信遅延を決定した後に、方法はさらに、受信端がカウンタを開始する段階と、受信端が１つのパケットを受信するたびに、パケット損失が発生したかどうかを決定する必要がある段階であって、パケットが失われた場合、カウンタをリセットし、第２送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、さらに、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第２送信遅延を減少させ、カウンタをリセットする、段階とを備え得る。
【００１７】
なおさらに、本発明の実施形態において、受信端は実際の状況に基づいて、第２送信遅延を制御し得る。受信端は、パケットが失われたと決定したとき、第２送信遅延を増加させ、これにより、受信端がパケット損失を検出したときに肯定応答ＡＣＫメッセージを送信端へ送信したことが原因で、送信端の輻輳ウィンドウが半分になるという問題を回避する。受信端は、パケットが失われていないと決定したとき、第２送信遅延を減少させ、これにより、送信端は、より適切なタイミングで、受信端の受信状態を認識することができる。このようにして、送信端の輻輳ウィンドウは突然減少しないので、データを伝送するためにＴＣＰが使用されるとき、スループットを保証できる。さらに、受信端は、カウンタを使用することによってパケットの数を計算するための方法を使用することによって、第２送信遅延を制御し、これにより、解決法の実現可能性および柔軟性を向上させることができる。
【００１８】
本発明の第２態様は受信端を提供し、受信端は、第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信するように構成されている受信モジュールであって、各パケットはシーケンス番号を含み、Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である、受信モジュールと、受信モジュールによって受信されたＫ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたと検出したとき、目標パケットに基づいて第２送信遅延を決定するように構成されている決定モジュールであって、第２送信遅延は、第１送信遅延より大きく、第１送信遅延は事前設定される、決定モジュールと、決定モジュールによって決定された第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信するように構成されている送信モジュールであって、肯定応答ＡＣＫメッセージは、受信端がＬ個のパケットを受信したことを送信端に通知するために使用される、送信モジュールとを備え、送信モジュールはさらに、決定モジュールがＫ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたと検出したとき、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信するように構成され、受信モジュールはさらに、送信モジュールが第２プロトコルを使用することによって目標パケットのための再伝送要求を送信端へ送信した後に、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信するように構成されている。
【００１９】
本発明の実施形態の第２態様を参照すると、第１の可能な実装において、受信端はさらに、判定モジュールを備え得て、判定モジュールは、決定モジュールが目標パケットに基づいて送信遅延を決定する前に、Ｋ個のパケットにおける第１パケットの最後のバイトに対応するシーケンス番号が、Ｋ個のパケットにおける第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定するように構成され、第１パケットは、第２パケットの前に受信され、決定モジュールはさらに、判定モジュールが、第１パケットの最後のバイトに対応するシーケンス番号が第２パケットの最初のバイトに対応するシーケンス番号と連続していると決定した場合、パケットが失われていないと決定する、または、判定モジュールが、第１パケットの最後のバイトに対応するシーケンス番号が、第２パケットの最初のバイトに対応するシーケンス番号と連続していないと決定した場合、少なくとも１つのパケットが失われたと決定するように構成され、少なくとも１つのパケットは目標パケットである。
【００２０】
本発明の実施形態の第２態様を参照すると、第２の可能な実装において、送信モジュールはさらに、送信モジュールが第２プロトコルを使用することによって目標パケットのための再伝送要求を送信端へ送信する前に、第１プロトコルを使用することによって、目標パケットについての情報を第２プロトコルへ送信するように構成されている。
【００２１】
本発明の実施形態の第２態様の第１の任意の実施形態を参照すると、第３の可能な実装において、決定モジュールはさらに、決定モジュールが、少なくとも１つのパケットが失われたと決定した後に、第１プロトコルの初期シーケンス番号、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて、第２プロトコルを使用することによって、目標パケットの位置を決定するように構成されている。
【００２２】
本発明の実施形態の第２態様の第３の任意の実施形態を参照すると、第４の可能な実装において、決定モジュールは、式Ｍ＝Ａ＋１に基づいて、目標パケットに対応する最初のバイトを計算することであって、Ｍは目標パケットの最初のバイトに対応するシーケンス番号であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、こと、式Ｎ＝Ｂ−Ａ−１に基づいて、目標パケットの長さを計算することであって、Ｎは目標パケットの長さであり、Ｂは第２パケットの最初のバイトに対応するシーケンス番号であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、こと、式Ｑ＝Ａ−Ｙに基づいて、目標パケットの位置を計算することであって、Ｑは目標パケットの位置であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号であり、Ｙは初期シーケンス番号である、ことを行うように構成されている計算ユニットを含む。
【００２３】
本発明の実施形態の第２態様、または、第１態様の第１から第４の任意の実施形態のいずれか１つを参照すると、第５の可能な実装において、受信端はさらに、開始モジュールおよびカウントモジュールを備え、開始モジュールは、決定モジュールが目標パケットに基づいて第２送信遅延を決定した後に、カウンタを開始するように構成され、カウントモジュールは、開始モジュールがカウンタを開始した後に、１つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定し、パケットが失われた場合、カウンタをリセットし、第２送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第２送信遅延を減少させ、カウンタをリセットするように構成されている。
【００２４】
本発明の第３態様は、受信端を提供し、受信端は、メモリ、送受信器、プロセッサおよびバスシステムを備え、メモリは、プログラムを記憶するように構成され、プロセッサは、メモリにおけるプログラムを実行するように構成されている。具体的なステップは、第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信するように送受信器を制御するステップであって、各パケットはシーケンス番号を含み、Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である、ステップと、Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことが検出されたとき、目標パケットに基づいて第２送信遅延を決定するステップであって、第２送信遅延は第１送信遅延より大きく、第１送信遅延は事前設定される、ステップと、第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信するように送受信器を制御するステップであって、肯定応答ＡＣＫメッセージは、受信端がＬ個のパケットを受信したことを送信端に通知するために使用される、ステップと、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信するように送受信器を制御するステップと、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信するように送受信器を制御するステップとを含む。
【００２５】
任意で、プロセッサは、メモリにおけるプログラムを実行するように構成され、さらに具体的には、Ｋ個のパケットのうちの第１パケットの最後のバイトに対応するシーケンス番号が、Ｋ個のパケットのうちの第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定するステップであって、第１パケットは、第２パケットの前に受信される、ステップと、第１パケットの最後のバイトに対応するシーケンス番号が、第２パケットの最初のバイトに対応するシーケンス番号と連続している場合、パケットが失われていないと決定する、または、第１パケットの最後のバイトに対応するシーケンス番号が、第２パケットの最初のバイトに対応するシーケンス番号と連続していない場合、少なくとも１つのパケットが失われたと決定するステップであって、少なくとも１つのパケットは目標パケットである、ステップとを実行するように構成されている。
【００２６】
任意で、プロセッサは、メモリにおけるプログラムを実行するように構成され、さらに具体的には、第１プロトコルを使用することによって、目標パケットについての情報を第２プロトコルへ送信するように送受信器を制御するステップを実行するように構成されている。
【００２７】
任意で、プロセッサは、メモリにおけるプログラムを実行するように構成され、さらに具体的には、第１プロトコルの初期シーケンス番号、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて、第２プロトコルを使用することによって、目標パケットの位置を決定するステップを実行するように構成されている。
【００２８】
任意で、プロセッサは、メモリにおけるプログラムを実行するように構成され、さらに具体的には、式Ｍ＝Ａ＋１に基づいて、目標パケットの最初のバイトに対応するシーケンス番号を計算するステップであって、Ｍは目標パケットに対応する最初のバイトであり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、ステップと、式Ｎ＝Ｂ−Ａ−１に基づいて、目標パケットの長さを計算するステップであって、Ｎは目標パケットの長さであり、Ｂは第２パケットの最初のバイトに対応するシーケンス番号であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、ステップと、式Ｑ＝Ａ−Ｙに基づいて、目標パケットのオフセット位置を計算するステップであって、Ｑは目標パケットのオフセット位置であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号であり、Ｙは初期シーケンス番号である、ステップとを実行するように構成されている。
【００２９】
任意で、プロセッサは、メモリにおけるプログラムを実行するように構成され、さらに具体的には、カウンタを開始するステップと、１つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定するステップであって、パケットが失われた場合、カウンタをリセットし、第２送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第２送信遅延を減少させ、カウンタをリセットする、ステップとを実行するように構成されている。
【００３０】
上述の技術的解決法から、本発明の実施形態が以下の利点を有することが認識されよう。
【００３１】
本発明は、ビッグデータシナリオに適用され得るデータ伝送方法を提供する。受信端は、第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信し、各パケットは、シーケンス番号を含み、Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である。受信端は、Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことを検出したとき、目標パケットに基づいて、第２送信遅延を決定し、第２送信遅延は第１送信遅延より大きく、第１送信遅延は事前設定される。受信端は、第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信し、肯定応答ＡＣＫメッセージは、受信端がＬ個のパケットを受信したことを送信端に通知するために使用される。受信端は、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信し、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。上述の方法はデータ伝送のために使用され、その結果、送信端がＴＣＰ輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のＴＣＰストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のＴＣＰストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施形態に係るデータ伝送方法の実施形態の概略図である。
【００３３】
【図２】本発明の実施形態に係る、第１プロトコルと第２プロトコルとの間のインタラクションのプロセスの概略図である。
【００３４】
【図３】本発明の実施形態に係る受信端による、第２送信遅延の制御の概略フローチャートである。
【００３５】
【図４】本発明の実施形態に係るデータ伝送の適用シナリオを示す。
【００３６】
【図５】本発明の実施形態に係る受信端の実施形態の概略図である。
【００３７】
【図６】本発明の実施形態に係る受信端の別の実施形態の概略図である。
【００３８】
【図７】本発明の実施形態に係る受信端の別の実施形態の概略図である。
【００３９】
【図８】本発明の実施形態に係る受信端の別の実施形態の概略図である。
【００４０】
【図９】本発明の実施形態に係る受信端のハードウェアの模式構造図である。
【発明を実施するための形態】
【００４１】
本発明は、データ伝送方法および関連するデバイスを提供し、これにより、送信端がＴＣＰ輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のＴＣＰストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のＴＣＰストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【００４２】
本発明の明細書、特許請求の範囲および付属図面において、「第１」、「第２」、「第３」、「第４」など（存在する場合）の用語は、同様の対象間を区別することを意図するものであり、必ずしも、特定の順序または順番を示すものではない。そのような方式で名前を付けられたデータは、適切な状況下において相互に交換可能であり、これにより、ここで説明される本発明の実施形態は、ここで例示または説明される順序以外の順序で実装できることを理解すべきである。さらに、「含む」、「備える」という用語、および他の何らかの変形は、非排他的な含有を含むことを意味する。例えば、一連の段階またはユニットを含むプロセス、方法、システム、製品、またはデバイスは、必ずしもそれらのユニットに限定されるわけではなく、明示的に列挙されていないか、またはそのような処理、方法、システム、製品、またはデバイスに固有の他のユニットを含んでよい。
【００４３】
本発明の実施形態は、ビッグデータシナリオにおけるデータ伝送に適用され得るが、ビッグデータシナリオだけに限定されないことを理解すべきである。情報技術（英文全表記：Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ、略称：ＩＴ）において、ビッグデータはますます多くの注目を集めている。なぜなら、ビッグデータは以下の４つの特徴を有するからである。第１の特徴は、大量のデータである。これは基本的に、数十テラバイト（英文全表記：Ｔｅｒａｂｙｔｅ、略称：ＴＢ）から数ペタバイト（英文全表記：Ｐｅｔａｂｙｔｅ、略称：ＰＢ）の規模を指し、さらには、数エクサバイト（英文全表記：Ｅｘａｂｙｔｅ、略称：ＥＢ）のことを指す。第２の特徴は、データの多様性である。従来の販売および在庫データに加えて、現在企業によって収集および解析されているデータには、ウェブログデータおよびソーシャルプラットフォームデータなどのメディアにおけるテキストデータ、スマートフォンに内蔵されるグローバルポジショニングシステム（英文全表記：Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ、略称：ＧＰＳ）において生成される位置情報、監視カメラのビデオデータおよび同様のものが含まれる。第３の特徴は、高いデータ生成速度および更新頻度、ならびに、強いリアルタイム性である。第４の特徴は高価値である。ビッグデータの利点は、データが有用であり、高価値であることである。多くの産業にとって、いかにしてビッグデータを十分に使用するかは、競争に勝つための鍵となっている。
【００４４】
概して、ＦＴＰがビッグデータの伝送に使用され得る。ＦＴＰは、インターネット上でのファイルの双方向転送を制御するために使用され、ＦＴＰはまた、アプリケーションプログラムである。異なるオペレーティングシステムに応じて、異なるＦＴＰアプリケーションプログラムがあり、これらのアプリケーションプログラムはすべて、ファイルを転送するための同一のプロトコルに従う。ＦＴＰの使用中、２つの概念がしばしば登場する。すなわち、ダウンロードおよびアップロードである。ファイルをダウンロードすることは、リモートホストから自身のコンピュータへファイルをコピーすることを指し、ファイルをアップロードすることは、自身のコンピュータからリモートホストへファイルをコピーすることを指す。
【００４５】
上述の説明から分かるように、ＦＴＰは、インターネット上でのファイルの双方向転送を制御するアプリケーションプログラムであり得る。しかしながら、ＦＴＰは実際には、ＴＣＰに基づいてデータ伝送機能を実装する。ＴＣＰは、コネクション指向、高信頼性、バイトストリームベースのトランスポート層通信プロトコルであり、インターネットエンジニアリングタスクフォース（英文全表記：Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ、略称：ＩＥＴＦ）のリクエストフォーコメンツ（英文全表記：Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ、略称：ＲＦＣ）７９３によって定義される。簡潔なコンピュータネットワーク開放型システム間相互接続（英文全表記：Ｏｐｅｎ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ、略称：ＯＳＩ）モデルにおいて、ＴＣＰは、第４層すなわちトランスポート層によって規定される機能を実現するために使用される。アプリケーション層は、８ビットのバイトで表される、ネットワーク間伝送に使用されるデータストリームをＴＣＰ層へ送信し、次にＴＣＰ層は、データストリームをパケット内にカプセル化し、ネットワークを使用することによってパケットを受信端のＴＣＰ層へ伝送する。ＴＣＰ層によってカプセル化された各パケットは、パケットの最初のバイトに対応するシーケンス番号を含み、後続のバイトの各々は、最初のバイトのシーケンス番号に基づいてインクリメントされる。バイトに対応するシーケンス番号が連続していないとき、パケット損失が検出され得る。パケット伝送プロセスにおいて、受信端は、成功裏に受信されたパケットのための対応する肯定応答ＡＣＫメッセージを返す。送信端が適切なＲＴＴ内にパケットに対応するＡＣＫを受信しない場合、パケットが失われたと想定し、パケットが再伝送される。
【００４６】
本発明の実施形態において提供されるデータ伝送方法は、ネットワークデバイスに適用され得るか、または、端末デバイスに適用され得ることを理解すべきである。具体的なデプロイメントのシナリオは、本明細書において限定されない。
【００４７】
図１を参照すると、本発明の実施形態におけるデータ伝送方法の実施形態は、以下の段階を備える。
【００４８】
１０１：第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信する。各パケットはシーケンス番号を含み、Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である。
【００４９】
この実施形態において、受信端は、第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信し、各パケットはシーケンス番号を含む。Ｋは、１より大きいか、または、それに等しい自然数であり、Ｌは、Ｋより大きいか、または、それに等しい自然数である。
【００５０】
第１プロトコルは、従来のＴＣＰプロトコルが修正された後に取得されるプロトコルであり、本明細書において、修正ＴＣＰと称されるか、または、拡張ＴＣＰと称され得る。従来のＴＣＰとは異なり、修正ＴＣＰは、パケット損失状態に基づいて、肯定応答ＡＣＫメッセージの送信を遅延させるために使用され、第１プロトコル、すなわち修正ＴＣＰは、パケットを再伝送することに使用されない。本発明において、受信端および送信端は、従来のＴＣＰを使用することによってＴＣＰ接続を確立し、その結果、受信端は、第１プロトコルを使用することによって、送信端によって送信されるパケットを受信できる。
【００５１】
各パケットの各バイトは、１つのシーケンス番号に対応する。第１パケットの最初のバイトのシーケンス番号は、ｘとして表され得て、第１パケットの最初のバイトに続く、第１パケットの２番目のバイトのシーケンス番号は、ｘ＋１であり、以降も同様である。ｘは、０より大きいか、またはそれに等しい正の整数である。第１パケットの最後のバイトのシーケンス番号がｙである場合、第２パケットの最初のバイトのシーケンス番号は、ｙ＋１であり、ｙは、０より大きいか、または、それに等しい正の整数である。
【００５２】
１０２：Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことが検出されたとき、目標パケットに基づいて第２送信遅延を決定し、第２送信遅延は第１送信遅延より大きく、第１送信遅延は事前設定される。
【００５３】
この実施形態において、受信端は、Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことを検出したとき、データシーケンス全体における目標パケット数、データシーケンス全体における目標パケットの長さ、および、データシーケンス全体における目標パケットのオフセット位置のうちの少なくとも１つの情報に基づいて、第２送信遅延を決定する。第２送信遅延は、受信端が肯定応答ＡＣＫメッセージを送信端へ送信するために遅延する時間である。目標パケットは、Ｌ個のパケットのうちの少なくとも１つである。
【００５４】
第２送信遅延は、第１送信遅延より大きい。具体的には、事前設定された第１送信遅延が８ミリ秒（英文全表記：ミリ秒、略称：ｍｓ）である場合、受信端は８ｍｓごとに肯定応答ＡＣＫメッセージを送信端へ送信し、これにより、８ｍｓ内にどのパケットが受信されたかを送信端に通知する。８ｍｓ内に目標パケットが失われたことが分かった場合、８ｍｓの第１送信遅延が延長され、例えば、遅延値が増加され得る。遅延値は固定値か、または、特定の規則を有する値であり得る。遅延値が２０ｍｓである場合、取得される第２送信遅延は２８ｍｓであり、第２送信遅延は確実に第１送信遅延より大きい。第２送信遅延が２８ｍｓである場合、８ｍｓが経過するとき、受信端は、受信端が目標パケットを受信していないことを送信端に通知せず、パケット損失状態を「隠し」、その後の２０ｍｓ中に、これらの失われた目標パケットを受信することを再度試みる。受信端は、第１プロトコルを使用することによって、失われた目標パケットを受信した後に、肯定応答ＡＣＫメッセージを使用することによって、すべてのパケットが受信されたことを送信端に通知する。このようにして、パケットが失われたことを送信端が発見したことが原因で送信端がＴＣＰ輻輳ウィンドウを急速に減少させることが防止され、また、送信端が急速に送信速度を減少させることが防止される。
【００５５】
１０３：第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信する。肯定応答ＡＣＫメッセージは、受信端がＬ個のパケットを受信したことを送信端に通知するために使用される。
【００５６】
この実施形態において、受信端は、第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信し、肯定応答ＡＣＫメッセージは、受信端がＫ個のパケットを受信したことを送信端に通知するために、すなわち、パケットが失われていないことを送信端に通知するために使用される。
【００５７】
段階１０３と、受信端が第２プロトコルを使用することによって、再伝送された目標パケットを受信する段階１０５とは、順番に実行されるわけではないことに留意すべきである。具体的には、受信端が送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信する段階１０３は、受信端が第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する段階１０５の前であり得るか、または、受信端が第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する段階１０５の後であり得る。
【００５８】
１０４：第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する。
【００５９】
この実施形態において、受信端は第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信し、これにより、目標パケットを再伝送するように送信端に要求する。
【００６０】
第２プロトコルは、別の修正ＴＣＰであり得て、修正ＴＣＰは、準ＴＣＰプロトコルと称され、ＴＣＰ準アプリケーション層に適用される。従来のＴＣＰと異なり、第２プロトコルは、第１プロトコルを使用することによって送信される目標パケットについての関連情報を受信するために使用でき、第２プロトコルは、目標パケットを再伝送するために使用できる。
【００６１】
さらに、第２プロトコルは、修正されたユーザデータグラムプロトコル（英文全表記：Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ、略称：ＵＤＰ）であり得る。従来のＵＤＰは、ＯＳＩ参照モデルにおけるコネクションレストランスポート層プロトコルであり、トランザクション指向の単純で低信頼性の情報転送サービスを提供するために使用される。ネットワークにおいて、従来のＵＤＰはコネクションレスプロトコルであり、ＴＣＰプロトコルと同様にパケットを処理するために使用される。ＵＤＰには、パケットのグループ化、組み合わせ、および、パケットの並べ替えを提供しないという短所がある。具体的には、パケットが送信された後、パケットが安全かつ完全に到着したかどうかを認識できない。ＵＤＰは、コンピュータ間でデータを伝送する必要があるネットワークの用途をサポートするために使用される。
【００６２】
インターネットプロトコル（英文全表記：Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ、略称：ＩＰ）層の間のデータ伝送は低信頼性である。ＴＣＰ層は、低信頼性のＩＰ層の上に確立され、高信頼性の伝送を提供する。準ＴＣＰ層が、ＴＣＰ層の上の層に確立される。受信端は、第２プロトコルを使用するＴＣＰ準アプリケーション層を使用することによって、第２プロトコルを使用する、送信端にあるＴＣＰ準アプリケーション層へ再伝送要求を送信し、その結果、送信端は、受信された再伝送要求に基づいて、目標パケットを再伝送する。
【００６３】
１０５：第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。
【００６４】
この実施形態において、送信端は、第２プロトコルを使用することによって、受信端によって送信された再伝送要求を受信した後に、要求に基づいて、第２プロトコルを使用することによって、失われた目標パケットを受信端へ再伝送し、受信端は、第２プロトコルを使用することによって、対応する目標パケットを受信する。
【００６５】
受信端は、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信した後に、第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信し得ることに留意すべきである。ここでは、これに限定されない。
【００６６】
本発明は、ビッグデータシナリオに適用され得るデータ伝送方法を提供する。受信端は、第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信し、各パケットは、シーケンス番号を含み、Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である。受信端は、Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことを検出したとき、目標パケットに基づいて、第２送信遅延を決定し、第２送信遅延は第１送信遅延より大きく、第１送信遅延は事前設定される。受信端は、第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信し、肯定応答ＡＣＫメッセージは、受信端がＬ個のパケットを受信したことを送信端に通知するために使用される。受信端は、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信し、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。上述の方法はデータ伝送のために使用され、その結果、送信端がＴＣＰ輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のＴＣＰストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のＴＣＰストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【００６７】
任意で、図１に対応する実施形態に基づいて、本発明のこの実施形態において提供されるデータ伝送方法の第１の任意の実施形態において、目標パケットに基づいて第２送信遅延を決定する段階の前に、方法はさらに、Ｋ個のパケットのうちの第１パケットの最後のバイトに対応するシーケンス番号が、Ｋ個のパケットのうちの第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定する段階であって、第１パケットは、第２パケットの前に受信される、段階と、第１パケットの最後のバイトに対応するシーケンス番号が、第２パケットの最初のバイトに対応するシーケンス番号と連続している場合、パケットが失われていないと決定する、または、第１パケットの最後のバイトに対応するシーケンス番号が、第２パケットの最初のバイトに対応するシーケンス番号と連続していない場合、少なくとも１つのパケットが失われたと決定する段階であって、少なくとも１つのパケットは目標パケットである、段階とを備え得る。
【００６８】
パケットが失われたかどうかを決定するための方法が、この実施形態において提供され、具体的には以下の通りである。第１パケットが、第２パケットの前に受信される。第１パケットの長さが１０バイトであり、各バイトは１つのシーケンス番号に対応すると想定する。具体的には、第１パケットの１０バイトのシーケンス番号は、それぞれ、１、２、３、４、５、６、７、８、９、１０である。従って、第１パケットが受信された後に、第１パケットの最後のバイトに対応するシーケンス番号１０が取得され得る。
【００６９】
第１パケットが受信された後に、第２パケットが続いて受信される。この場合、第２パケットの最初のバイトに対応するシーケンス番号を取得するために、第２パケットは解析される必要がある。最初のバイトに対応するシーケンス番号が１１である場合、このことは、第２パケットが第１パケットと連続していることを示し、すなわち、パケットが失われていないと決定される。第２パケットの最初のバイトに対応するシーケンス番号が１１でない場合、このことは、第２パケットが第１パケットと連続していないことを示し、すなわち、少なくとも１つのパケットが失われたと決定され、失われた少なくとも１つのパケットは目標パケットである。
【００７０】
さらに、パケットが失われているかどうかを決定するための方法が本発明のこの実施形態において提供される。Ｋ個のパケットにおける第１パケットの最後のバイトに対応するシーケンス番号が、Ｋ個のパケットにおける第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定することによって、パケットが失われているかどうかが決定され得る。失われたパケットは、上述の方法を使用することによって決定される。パケットが失われていない場合、第２送信遅延を増加させる必要は無い。上述の方法を使用することによって、目標パケットが失われていると決定された場合、第２送信遅延はさらに増加され得る。従って、目標パケットが失われているかどうかを決定することによって、第２送信遅延を増加させる必要があるかどうかがより正確に分かり得て、これにより、解決法の実現可能性および実用性が向上する。
【００７１】
任意で、図１に対応する実施形態に基づいて、本発明のこの実施形態において提供されるデータ伝送方法の第２の任意の実施形態において、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する前に、方法はさらに、第１プロトコルを使用することによって、目標パケットについての情報を第２プロトコルへ送信する段階を備え得る。
【００７２】
この実施形態において、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する前に、受信端はまず、受信端の第１プロトコルを使用することによって、目標パケットについての関連情報を受信端の第２プロトコルへ送信する必要がある。目標パケットについての関連情報には、失われたパケットのオフセットおよび長さが含まれる。オフセットとは、データストリーム全体における、失われたパケットのオフセット位置を指し、長さは、パケットにおけるバイト数を指す。目標パケットについての情報はさらに、いくつかの他の情報を含み得ることを理解されたい。
【００７３】
受信端が、第１プロトコルを使用することによって、目標パケットについての情報を受信端の第２プロトコルへ送信することについての詳細は、図２を参照されたい。図２は、本発明の実施形態に係る第１プロトコルと第２プロトコルとの間のインタラクションのプロセスの概略図である。図２に示されるように、２つのＴＣＰ／ＩＰプロトコルスタックがネットワーク要素（英文全表記：Ｎｅｔｗｏｒｋ  Ｅｌｅｍｅｎｔ、略称：ＮＥ）上に展開される。データ伝送は、３つの部分、すなわち、サーバからＮＥ＿Ａ、ＮＥ＿ＡからＮＥ＿Ｂ、ＮＥ＿Ｂからクライアントに分けられる。既存の標準的なＴＣＰ／ＩＰプロトコルスタックは、ＴＣＰ＿ＡおよびＴＣＰ＿Ｂにおいて使用される。例えばメモリおよびメッセージの共有など、ＮＥデバイス間のデータ交換のための多くの方法がある。ＮＥを使用することによって通信するために、ＴＣＰプロキシがサーバとクライアントとの間に配置され得る。ＮＥ＿Ａは、データをサーバから取得しながら、データをＮＥ＿Ｂへ送信し得る。ＮＥ＿Ｂは、データをＮＥ＿Ａから受信しながら、データをクライアントへ送信し得る。
【００７４】
ＴＣＰ＿ＡおよびＴＣＰ＿Ｂは既存のＴＣＰプロトコルである。サーバおよびＮＥ＿Ａは、既存のＴＣＰプロトコルを使用することによって、ＴＣＰピアプロトコル層でデータを伝送する。ＮＥ＿Ｂおよびクライアントは、既存のＴＣＰプロトコルを使用することによって、ＴＣＰピアプロトコル層でデータを伝送する。ＮＥ＿ＡおよびＮＥ＿Ｂは、個別に既存のＴＣＰプロトコルを修正し、第１プロトコルおよび第２プロトコルを取得する。パケットは、送信端のＴＣＰピアプロトコル層で、アプリケーション層を使用することによって、第１プロトコルを使用するＴＣＰ層へ送信される。同様に、パケットは、受信端のＴＣＰピアプロトコル層で、アプリケーション層を使用することによって、第１プロトコルを使用するＴＣＰ層へ送信される。受信端は、第１プロトコルを使用することによって肯定応答ＡＣＫメッセージを送信端へ送信し、送信端は、第２プロトコルを使用することによって、受信端への再伝送を要求された目標パケットを送信する。
【００７５】
本発明の解決法において、ＮＥ＿Ａは、サーバ側の送信端であり、ＮＥ＿Ｂは、クライアント側の受信端である。受信端は、説明のための例として使用される。受信端が、受信端の第１プロトコルを使用することによって、目標パケットについての情報を受信端の第２プロトコルへ送信することは、具体的には以下の通りであり得る。受信端は、第１プロトコルを使用することによって、計算を通して、目標パケットの最初のバイトに対応するシーケンス番号、目標パケットの長さ、および、目標パケットのオフセット位置を取得し、第１プロトコルを使用することによって、目標パケットについての情報を第２プロトコルへ送信する。
【００７６】
さらに、第１プロトコルと第２プロトコルとの間の関係は、具体的には、本発明のこの実施形態において説明される。データ交換は、受信端または送信端の第１プロトコルと第２プロトコルとの間で実行される。第１プロトコルは主に、パケット損失が起きた場合に、肯定応答ＡＣＫメッセージの送信を遅延できることを実装し、第２プロトコルは、協同方式の効果的なデータ伝送を実現するために送信端と受信端との間で使用され、失われたパケットの再伝送を担う。新しく追加された第２プロトコルは、実際の適用プロセスにおいて、パケット再伝送効率を向上させる役割を果たし、第１プロトコルと第２プロトコルとの間のデータ交換は、本発明の解決法の具体的な実装のためのサポートを提供し、これにより、解決法の実現可能性および実用性を向上させる。
【００７７】
任意で、図１に対応する第１の任意の実施形態に基づいて、本発明のこの実施形態において提供されるデータ伝送方法の第３の任意の実施形態において、少なくとも１つのパケットが失われたと決定した後に、方法はさらに、第１プロトコルの初期シーケンス番号、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて、第２プロトコルを使用することによって、目標パケットの位置を決定する段階を備え得る。
【００７８】
送信される予定のデータストリーム全体における目標パケットの位置を決定するための方法が、この実施形態において提供される。受信端は、第１プロトコルを使用することによって、送信端によって送信されたパケットを受信し、これらのパケットのうちのパケットが失われているかどうかを決定し得る。少なくとも１つのパケットが失われたと決定された後に、受信端は、第１プロトコルの初期シーケンス番号、すなわち、送信端が第１プロトコルを使用することによって、受信端へ初めて送信されたパケットの最初のバイトのシーケンス番号を取得し、解析を通して、第１パケットの最後のバイトに対応するシーケンス番号と、第２パケットの最初のバイトに対応するシーケンス番号とを取得し得る。第１パケットは、第２パケットの前に受信される。受信端は、初期シーケンス番号と、第１パケットの最後のバイトに対応するシーケンス番号とに基づいて、計算を通して、データストリーム全体における失われたパケットのオフセット位置を取得し得る。受信端はさらに、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて、計算を通して、失われたパケットの長さ、すなわち、バイト数を取得し得る。
【００７９】
実際の適用において、伝送される予定のパケットの数が比較的小さい場合、各パケットの順番は、シーケンス番号を用いて直接的に示され得る。しかしながら、ビッグデータ伝送の場合、パケット数は通常、比較的大きい。概して、ＴＣＰを使用することによって伝送されるパケットのシーケンス番号には制約がある。最大シーケンス番号は（２３２−１）であり、初期シーケンス番号は、０から（２３２−１）までの任意の正の整数である。シーケンス番号が（２３２−１）より大きいとき、シーケンス番号のループ回数が設定される必要がある。例えば、実際のシーケンス番号が（２３２＋１）であるとき、このことは、実際のシーケンス番号が（２３２−１）の範囲を超えることを意味する。従って、シーケンス番号のループ回数は、「１」に設定され、１回のループが終了することを示す。実際のシーケンス番号の表現は、実際のシーケンス番号から最大シーケンス番号を減算し、次に、１を減算することによって取得され得る。（２３２＋１）は、１＿１として表され得る。１＿１における１番目の「１」は、１回のループが終了することを示し、２番目の「１」は、新しいループにおいて占められる位置が２番目の位置であることを示す。なぜなら、それより前に、シーケンス番号が「０」である位置がさらに存在するからである。
【００８０】
ビッグデータ伝送中、シーケンス番号が最大シーケンス番号より大きい場合は、シーケンス番号のループ回数を追加することによって処理され得て、その結果、実際の適用における解決法の実現可能性が向上し、目標パケットの位置は、計算を通してより正確に取得できる。
【００８１】
シーケンス番号のループ回数を追加するための方法を使用してパケットのシーケンス番号を計算することに加えて、パケットにおいて保持される最大シーケンス番号は、プロトコルを改善することによって増加され得ることに留意すべきである。
【００８２】
ここまで、受信端は、ＴＣＰ層において第１プロトコルを使用して、計算を通して取得される、送信される予定のデータストリーム全体における、パケットのオフセット位置および長さなどの情報をＴＣＰ準アプリケーション層へ送信し、ＴＣＰ準アプリケーション層において第２プロトコルを使用して、上述の情報に基づいて、失われた目標パケットの具体的な位置を取得し、これにより、目標パケットを再伝送する。
【００８３】
さらに、本発明のこの実施形態において、受信端は、初期シーケンス番号、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて、第１プロトコルを使用することによって、情報を第２プロトコルへ送信し得て、これにより、受信端は、第２プロトコルを使用することによって、送信される予定のデータストリーム全体における、目標パケットの位置を決定する。従って、解決法の実現可能性、実用性および柔軟性がより高くなる。
【００８４】
任意で、図１に対応する第３の任意の実施形態に基づいて、本発明のこの実施形態において提供されるデータ伝送方法の第４の任意の実施形態において、第１プロトコルの初期シーケンス番号、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて、第２プロトコル使用することによって、目標パケットの位置を決定することは、式Ｍ＝Ａ＋１に基づいて、目標パケットの最初のバイトに対応するシーケンス番号を計算することであって、Ｍは目標パケットに対応する最初のバイトであり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、こと、式Ｎ＝Ｂ−Ａ−１に基づいて、目標パケットの長さを計算することであって、Ｎは目標パケットの長さであり、Ｂは第２パケットの最初のバイトに対応するシーケンス番号であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、こと、および、式Ｑ＝Ａ−Ｙに基づいて、目標パケットのオフセット位置を計算することであって、Ｑは目標パケットのオフセット位置であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号であり、Ｙは初期シーケンス番号である、ことを含み得る。
【００８５】
目標パケットの位置を決定するための式が、本実施形態において提供され、具体的には以下の通りである。
【００８６】
（１）式Ｍ＝Ａ＋１に基づいて、目標パケットに対応する最初のバイトを計算する。
【００８７】
Ｍは、目標パケットに対応する最初のバイトである。Ａは第１パケットの最後のバイトに対応するシーケンス番号であり、Ａは２００９９であると想定する。この場合、目標パケットは第１パケットと第２パケットとの間の失われたパケットなので、Ｍは２００９９＋１＝２０１００であり、目標パケットの最初のバイトは、第１パケットの最後のバイトと連続している。
【００８８】
（２）式Ｎ＝Ｂ−Ａ−１に基づいて、目標パケットの長さを計算する。
【００８９】
Ｎは目標パケットの長さである。Ｂは第２パケットの最初のバイトに対応するシーケンス番号であり、Ｂは２１１００であると想定する。Ａは第１パケットの最後のバイトに対応するシーケンス番号であり、Ａは２００９９であると想定する。この場合、第１パケットは第２パケットから目標パケットによって隔てられているので、Ｎは２１１００−２００９９−１＝１０００である。従って、目標パケットにおけるバイトの長さは、第２パケットの最初のバイトに対応するシーケンス番号から、第１パケットの最後のバイトに対応するシーケンス番号を減算し、次に１を減算することによって取得される。
【００９０】
（３）式Ｑ＝Ａ−Ｙに基づいて、目標パケットのオフセット位置を計算する。
【００９１】
Ｑは目標パケットのオフセット位置である。Ａは第１パケットの最後のバイトに対応するシーケンス番号であり、Ａは２００９９であると想定する。Ｙは初期シーケンス番号であり、Ｙは９９であると想定する。この場合、オフセット位置は目標パケットの開始位置なので、Ｑは２００９９−９９＝２００００である。目標パケットの位置は、第１パケットの最後のバイトに対応するシーケンス番号から初期シーケンス番号を減算することによって知られ得る。
【００９２】
さらに、本発明のこの実施形態において、いかにして第２プロトコルを使用することによって目標パケットの位置を決定するかが説明されている。受信端は、目標パケットの位置を決定するべく、関連する式に基づいて、目標パケットに対応する最初のバイト、目標パケットの長さ、および、目標パケットのオフセット位置を計算し得て、これにより、解決法の実装についての具体的な基礎を提供し、解決法の実現可能性を向上させる。
【００９３】
任意で、図１、または、図１に対応する第１から第４の任意の実施形態のいずれか１つに基づいて、本発明のこの実施形態において提供されるデータ伝送方法の第５の任意の実施形態において、目標パケットに基づいて第２送信遅延を決定する段階の後に、方法はさらに、カウンタを開始する段階と、１つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定する段階であって、パケットが失われた場合、カウンタをリセットし、第２送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第２送信遅延を減少させ、カウンタをリセットする、段階とを備え得る。
【００９４】
この実施形態において、受信端は、目標パケットに基づいて第２送信遅延を決定した後に、実際の状況に基づいて、第２送信遅延を制御し得る。
【００９５】
具体的には図３を参照すると、図３は、本発明の実施形態に係る受信端による第２送信遅延の制御の概略フローチャートである。図３に示されるように、以下の段階が含まれる。
【００９６】
段階２０１：ユーザは第１送信遅延を設定し、カウンタをゼロに戻し、カウンタオーバーフロー値を設定する。
【００９７】
例えば、ユーザは実際の状況に基づいて第１送信遅延を設定し、すなわち、ＡＣＫ遅延初期値を８ミリ秒にして、次に、カウンタをゼロに戻し、最後に、カウンタオーバーフロー値を１００に設定し、すなわち、事前設定閾値を１００にする。具体的には、失われていないパケットの数が１００より大きいか、または、それに等しいとき、カウンタはオーバーフローする。
【００９８】
段階２０２：カウンタを開始し、送信端によって送信されたパケットの受信を開始し、カウンタはパケットの数を計算するために使用される。
【００９９】
段階２０３：パケットが失われたかどうかを決定する。
【０１００】
１つのパケットを受信するたびに、受信端はパケット損失が発生したかどうかを決定する必要がある。決定方法は、図１に対応する第１の任意の実施形態において説明されるプロセスと同様である。具体的には、受信端は、第１パケットの最後のバイトに対応するシーケンス番号が第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定することによって、パケットが失われたかどうかを決定する。
【０１０１】
段階２０４：パケットが失われたと決定されたとき、カウンタをリセットし、第２送信遅延を増加させる。
【０１０２】
第１パケットの最後のバイトに対応するシーケンス番号が、第２パケットの最初のバイトに対応するシーケンス番号と連続していない場合、パケットが失われたと決定される。この場合、カウンタはリセットされる必要があり、第２送信遅延は増加される必要がある。２０ｍｓなどの１つの固定値が毎回増加される。１つのパケットが失われたとき、第２送信遅延は２８ｍｓである（ＡＣＫ遅延初期値＋１×固定値）。当然、２つのパケットが連続して失われた場合、第２送信遅延は４８ｍｓであり（ＡＣＫ遅延初期値＋２×固定値）、以降も同様である。第２送信遅延は上述の方式で計算される。
【０１０３】
段階２０５：パケットが失われていないと決定されたとき、非パケット損失タイマの値を累積的に増加させる。
【０１０４】
第１パケットの最後のバイトに対応するシーケンス番号が、第２パケットの最初のバイトに対応するシーケンス番号と連続している場合、パケットが失われていないと決定される。この場合、カウンタの値は累積的に増加される必要がある。例えば、ゼロに戻されたカウンタについては、受信された第１パケットが失われていないと決定されたとき、カウンタの値は１であり、第２パケットも失われていないとき、カウンタの値は累積的に増加されて２になり、以降も同様である。カウンタの値は上述の方式で累積的に増加される。
【０１０５】
段階２０６：カウンタがオーバーフローしたかどうかを決定し、すなわち、カウンタの値が事前設定閾値に到達したかどうかを決定する。
【０１０６】
カウンタの値が事前設定閾値に到達したかどうかは、カウンタの値が累積的に増加されるたびに決定される必要がある。段階２０１に基づいて、カウンタオーバーフロー値は１００であること、すなわち事前設定閾値が１００であることが分かり得る。カウンタの累積的に増加された値が事前設定閾値に到達した場合、段階２０７が実行される。または、カウンタの累積的に増加された値が事前設定閾値より低い場合、段階２０２が実行され、引き続き次のパケットを受信する。
【０１０７】
段階２０７：カウンタがオーバーフローしたとき、第２送信遅延を減少させ、カウンタをゼロに戻す。
【０１０８】
カウンタの累積的に増加された値が事前設定閾値に到達した場合、カウンタの累積的に増加された値は丁度１００であると想定すると、第２送信遅延を減少させる必要がある。１００に到達するたびに、１ｍｓのような第２固定値に基づいて第２送信遅延が減少され得て、カウンタはリセットされ、すなわち、カウンタはゼロに戻され、段階２０２が実行され、引き続き後続のパケットを受信する。
【０１０９】
本実施形態における、第１送信遅延、毎回増加される固定値の大きさ、カウンタの事前設定閾値、および、第２固定値の大きさは、実際の状況に基づいて設定され得ることに留意すべきである。
【０１１０】
なおさらに、本発明のこの実施形態において、受信端は実際の状況に基づいて、第２送信遅延を制御し得る。受信端は、パケットが失われたと決定したとき、第２送信遅延を増加させ、これにより、受信端がパケット損失を検出したときに肯定応答ＡＣＫメッセージを送信端へ送信したことが原因で、送信端の輻輳ウィンドウが半分になるという問題を回避する。受信端は、パケットが失われていないと決定したとき、第２送信遅延を減少させ、これにより、送信端は、より適切なタイミングで、受信端の受信状態を認識することができる。このようにして、送信端の輻輳ウィンドウは突然減少しないので、データを伝送するためにＴＣＰが使用されるとき、スループットを保証できる。さらに、受信端は、カウンタを使用することによってパケットの数を計算するための方法を使用することによって、第２送信遅延を制御し、これにより、解決法の実現可能性および柔軟性を向上させることができる。
【０１１１】
理解を容易にするべく、以下では、特定の適用シナリオを使用することによって、本発明におけるデータ伝送方法を詳細に説明する。図４を参照すると、図４は、本発明の実施形態に係るデータ伝送の適用シナリオである。データ伝送の適用シナリオは、具体的には以下の通りである。
【０１１２】
１．送信端のＴＣＰ層と受信端のＴＣＰ層との間でＴＣＰ接続を確立する。送信端の初期シーケンス番号は９９であり、受信端の初期シーケンス番号は２１２３４であると想定する。
【０１１３】
２．送信端と受信端との間のデータ交換を実行する。送信端はパケットを送信し、受信端は受信されたパケットを確認する。パケットは、送信端から送信され、受信端によって受信される。このプロセスにおいてパケットが失われていない場合、送信端によって送信されたパケットの最後のバイトに対応するシーケンス番号は１９０９９である。
【０１１４】
３．送信端は、第１プロトコルを使用するＴＣＰ層を使用することによって、シーケンス番号が１９１００、長さが１０００であるパケットを、受信端のＴＣＰ層へ送信する。パケットの最初のバイトのオフセット位置は、１９０００（すなわち、１９０９９−９９＝１９０００）であり、送信端によって送信されたパケットの最後のバイトに対応するシーケンス番号は２００９９である。
【０１１５】
４．送信端は、ＴＣＰ層において、第１プロトコルを使用することによって、シーケンス番号が２０１００、長さが１０００であるパケットを送信する。パケットの最初のバイトのオフセット位置は２００００であり、パケットが伝送プロセス中に失われたと想定する。
【０１１６】
５．送信端は、ＴＣＰ層において、第１プロトコルを使用することによって、シーケンス番号が２１１００、長さが１０００であるパケットを送信する。パケットの最初のバイトのオフセット位置は２１０００であり、パケットは受信端によって受信される。
【０１１７】
Ａ：受信されたパケットのシーケンス番号がもはや連続していないことを受信端が検出した場合、受信端のＴＣＰ層は、この場合にパケットが失われたと決定し得て、前のパケットの最後のバイトのシーケンス番号、および、現在受信されたパケットの最初のバイトに対応するシーケンス番号に基づいて、失われたパケットのシーケンス番号および長さを取得し得る。前のパケットの最後のバイトのシーケンス番号が２００９９である場合、失われたパケットの最初のバイトに対応するシーケンス番号は、２００９９＋１＝２０１００であり、失われたパケットの長さは、２１１００−２００９９−１＝１０００であり、失われたパケットの最初のバイトのオフセット位置は、２００９９−９９＝２００００である。受信端のＴＣＰ層は、情報をＴＣＰ準アプリケーション層へ報告する。
【０１１８】
Ｂ：受信端のＴＣＰ層は、第２送信遅延を増加させ、受信端のＴＣＰ準アプリケーション層は、送信端のＴＣＰ準アプリケーション層に対する再伝送要求を開始する。要求に保持される情報は、失われたパケットの最初のバイトのオフセット位置が２００００であり、失われたパケットの長さが１０００であることを示す。
【０１１９】
６−８．受信端のＴＣＰ層と送信端のＴＣＰ層との間でパケットの送信、受信および肯定応答を継続する。
【０１２０】
以下では、本発明における受信端を詳細に説明する。図５を参照すると、本発明の実施形態における受信端３００は、第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信するように構成されている受信モジュール３０１であって、各パケットはシーケンス番号を含み、Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である、受信モジュール３０１と、受信モジュール３０１によって受信されたＫ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたと検出したとき、目標パケットに基づいて第２送信遅延を決定するように構成されている決定モジュール３０２であって、第２送信遅延は、第１送信遅延より大きく、第１送信遅延は事前設定される、決定モジュール３０２と、決定モジュール３０２によって決定された第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信するように構成されている送信モジュール３０３であって、肯定応答ＡＣＫメッセージは、受信端がＬ個のパケットを受信したことを送信端に通知するために使用される、送信モジュール３０３とを備える。
【０１２１】
送信モジュール３０３はさらに、決定モジュール３０２が、Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことを検出したとき、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信するように構成されている。
【０１２２】
受信モジュール３０１はさらに、送信モジュール３０３が、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信した後に、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信するように構成されている。
【０１２３】
この実施形態において、受信モジュール３０１は、第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信し、受信された各パケットはシーケンス番号を含み、Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である。決定モジュール３０２は、受信モジュール３０１によって受信されたＫ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことを検出したとき、目標パケットに基づいて、第２送信遅延を決定し、第２送信遅延は第１送信遅延より大きく、第１送信遅延は事前設定される。送信モジュール３０３は、決定モジュール３０２によって決定される第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信し、肯定応答ＡＣＫメッセージは、受信端がＬ個のパケットを受信したことを送信端に通知するために使用される。送信モジュール３０３は、決定モジュール３０２が、Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことを検出したとき、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信する。送信モジュール３０３が、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信した後に、受信モジュール３０１は、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。
【０１２４】
本発明は、ビッグデータシナリオに適用され得るデータ伝送方法を提供する。受信端は、第１プロトコルを使用することによって、送信端によって送信されたＫ個のパケットを受信し、各パケットは、シーケンス番号を含み、Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である。受信端は、Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことを検出したとき、目標パケットに基づいて、第２送信遅延を決定し、第２送信遅延は第１送信遅延より大きく、第１送信遅延は事前設定される。受信端は、第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信し、肯定応答ＡＣＫメッセージは、受信端がＬ個のパケットを受信したことを送信端に通知するために使用される。受信端は、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信し、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信する。上述の方法はデータ伝送のために使用され、その結果、送信端がＴＣＰ輻輳ウィンドウを減少させることを効果的に防止できる。このようにして、スループットを保証するために、複数のＴＣＰストリームを使用してデータを伝送する必要が無くなる。この解決法は、スループットが十分に高く安定することを保証できるだけでなく、データを伝送するために複数のＴＣＰストリームを使用する従来技術と比較して、メモリ要件を大幅に下げることができ、これにより、システムリソースを節約する。
【０１２５】
任意で、図５に対応する実施形態に基づいて、図６を参照すると、本発明のこの実施形態において提供される受信端の別の実施形態において、受信端３００はさらに、判定ユニット３０４を備える。
【０１２６】
判定モジュール３０４は、決定モジュール３０２が目標パケットに基づいて、送信遅延を決定する前に、Ｋ個のパケットにおける第１パケットの最後のバイトに対応するシーケンス番号が、Ｋ個のパケットにおける第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定するように構成され、第１パケットは、第２パケットの前に受信される。
【０１２７】
決定モジュール３０２はさらに、判定モジュール３０４が、第１パケットの最後のバイトに対応するシーケンス番号が第２パケットの最初のバイトに対応するシーケンス番号と連続していると決定した場合、パケットが失われていないと決定する、または、判定モジュール３０４が、第１パケットの最後のバイトに対応するシーケンス番号が、第２パケットの最初のバイトに対応するシーケンス番号と連続していないと決定した場合、少なくとも１つのパケットが失われたと決定するように構成され、少なくとも１つのパケットは目標パケットである。
【０１２８】
さらに、本発明のこの実施形態において、パケットが失われたかどうかを決定するための方法が提供される。Ｋ個のパケットにおける第１パケットの最後のバイトに対応するシーケンス番号が、Ｋ個のパケットにおける第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定することによって、パケットが失われているかどうかが決定され得る。失われたパケットは、上述の方法を使用することによって決定される。パケットが失われていない場合、第２送信遅延を増加させる必要は無い。上述の方法を使用することによって、目標パケットが失われていると決定された場合、第２送信遅延はさらに増加され得る。従って、目標パケットが失われているかどうかを決定することによって、第２送信遅延を増加させる必要があるかどうかがより正確に分かり得て、これにより、解決法の実現可能性および実用性が向上する。
【０１２９】
任意で、図５に対応する実施形態に基づいて、本発明のこの実施形態において提供される受信端の別の実施形態において、送信モジュール３０３はさらに、送信モジュール３０３が第２プロトコルを使用して目標パケットのための再伝送要求を送信端へ送信する前に、第１プロトコルを使用することによって、目標パケットについての情報を第２プロトコルへ送信するように構成されている。
【０１３０】
さらに、第１プロトコルと第２プロトコルとの間の関係は、具体的には、本発明のこの実施形態において説明される。データ交換は、受信端または送信端の第１プロトコルと第２プロトコルとの間で実行される。第１プロトコルは主に、パケット損失が起きた場合に、肯定応答ＡＣＫメッセージの送信を遅延できることを実装し、第２プロトコルは、協同方式の効果的なデータ伝送を実現するために送信端と受信端との間で使用され、失われたパケットの再伝送を担う。新しく追加された第２プロトコルは、実際の適用プロセスにおいて、パケット再伝送効率を向上させる役割を果たし、第１プロトコルと第２プロトコルとの間のデータ交換は、本発明の解決法の具体的な実装のためのサポートを提供し、これにより、解決法の実現可能性および実用性を向上させる。
【０１３１】
任意で、図６に対応する実施形態に基づいて、本発明のこの実施形態において提供される受信端の別の実施形態において、決定モジュール３０２はさらに、決定モジュール３０２が、少なくとも１つのパケットが失われたと決定した後に、第１プロトコルの初期シーケンス番号、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて、第２プロトコルを使用することによって、目標パケットの位置を決定するように構成されている。
【０１３２】
さらに、本発明のこの実施形態において、受信端は、初期シーケンス番号、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて、第１プロトコルを使用することによって、情報を第２プロトコルへ送信し得て、これにより、受信端は、第２プロトコルを使用することによって、送信される予定のデータストリーム全体における、目標パケットの位置を決定する。従って、解決法の実現可能性、実用性およぶ柔軟性がより高くなる。
【０１３３】
任意で、図６に対応する第２の実施形態に基づいて、図７を参照すると、本発明のこの実施形態において提供される受信端の別の実施形態において、決定モジュール３０２は、式Ｍ＝Ａ＋１に基づいて、目標パケットに対応する最初のバイトを計算することであって、Ｍは目標パケットに対応する最初のバイトであり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、こと、式Ｎ＝Ｂ−Ａ−１に基づいて、目標パケットの長さを計算することであって、Ｎは目標パケットの長さであり、Ｂは第２パケットの最初のバイトに対応するシーケンス番号であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、こと、および、式Ｑ＝Ａ−Ｙに基づいて、目標パケットの位置を計算することであって、Ｑは目標パケットの位置であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号であり、Ｙは初期シーケンス番号である、ことを行うように構成されている計算ユニット３０２１を含む。
【０１３４】
さらに、本発明のこの実施形態において、いかにして第２プロトコルを使用することによって目標パケットの位置を決定するかが説明されている。受信端は、目標パケットの位置を決定するべく、関連する式に基づいて、目標パケットに対応する最初のバイト、目標パケットの長さ、および、目標パケットのオフセット位置を計算し得て、これにより、解決法の実装についての具体的な基礎を提供し、解決法の実現可能性を向上させる。
【０１３５】
任意で、図５、図６または図７に対応する実施形態に基づいて、図８を参照すると、本発明のこの実施形態において提供される受信端の別の実施形態において、受信端３００はさらに、開始モジュール３０５およびカウントモジュール３０６を備える。
【０１３６】
開始モジュール３０５は、決定モジュール３０２が目標パケットに基づいて第２送信遅延を決定した後に、カウンタを開始するように構成されている。
【０１３７】
カウントモジュール３０６は、開始モジュール３０５がカウンタを開始した後に、１つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定し、パケットが失われた場合、カウンタをリセットし、第２送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第２送信遅延を減少させ、カウンタをリセットするように構成されている。
【０１３８】
図９は、本発明の実施形態に係る受信端４０の模式構造図である。受信端４０は、メモリ４１０、送受信器４２０、プロセッサ４３０およびバスシステム４４０を備え得る。
【０１３９】
メモリ４１０は、リードオンリーメモリおよびランダムアクセスメモリを含み得て、プロセッサ４３０のために命令およびデータを提供し得る。メモリ４１０の一部はさらに、不揮発性ランダムアクセスメモリ（英文全表記：ｎｏｎｖｏｌａｔｉｌｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、略称：ＮＶＲＡＭ）を含み得る。
【０１４０】
メモリ４１０は、プログラム命令を記憶するように構成されている。
【０１４１】
プロセッサ４３０は、メモリ４１０におけるプログラム命令を実行して、第１プロトコルを使用することによって、Ｋ個のパケットを受信するように送受信器を制御するステップであって、各パケットはシーケンス番号を含み、Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である、ステップと、Ｋ個のパケットにおけるシーケンス番号に基づいて、第１プロトコルを使用することによって、目標パケットが失われたことが検出されたとき、目標パケットに基づいて第２送信遅延を決定するステップであって、第２送信遅延は第１送信遅延より大きく、第１送信遅延は事前設定される、ステップと、第２送信遅延に基づいて、第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを送信端へ送信するように送受信器を制御するステップであって、肯定応答ＡＣＫメッセージは、受信端がＬ個のパケットを受信したことを送信端に通知するために使用される、ステップと、第２プロトコルを使用することによって、目標パケットのための再伝送要求を送信端へ送信するように送受信器を制御するステップと、第２プロトコルを使用することによって、送信端によって再伝送された目標パケットを受信するように送受信器を制御するステップとを実装するように構成されている。
【０１４２】
本発明のこの実施形態において、プロセッサ４３０はさらに、第１プロトコルを使用することによって、メモリ４１０におけるプログラム命令を実行し、目標パケットについての情報を第２プロトコルへ送信するように構成されている。
【０１４３】
プロセッサ４３０は、受信端４０の動作を制御し、プロセッサ４３０は、中央処理装置（英文全表記：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、略称：ＣＰＵ）と称され得る。特定の適用において、受信端４４０のすべてのコンポーネントは、バスシステム４４０を使用することによって共に連結される。データバスに加えて、バスシステム４４０は、電源バス、制御バス、状態信号バス、および同様のものを含み得る。しかしながら、明確な説明のために、図における様々なタイプのバスをバスシステム４４０として示す。
【０１４４】
本発明の上述の実施形態において開示される方法は、プロセッサ４３０に適用され得るか、または、プロセッサ４３０によって実装され得る。プロセッサ４３０は、集積回路チップであり得て、信号処理機能を有する。実装プロセスにおいて、上述の方法における段階は、プロセッサ４３０におけるハードウェアの集積論理回路、または、ソフトウェアの形態の命令を使用することによって実現され得る。任意で、プロセッサ４３０はさらに、Ｋ個のパケットのうちの第１パケットの最後のバイトに対応するシーケンス番号が、Ｋ個のパケットのうちの第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定することであって、第１パケットは、第２パケットの前に受信される、こと、および、第１パケットの最後のバイトに対応するシーケンス番号が、第２パケットの最初のバイトに対応するシーケンス番号と連続している場合、パケットが失われていないと決定する、または、第１パケットの最後のバイトに対応するシーケンス番号が、第２パケットの最初のバイトに対応するシーケンス番号と連続していない場合、少なくとも１つのパケットが失われたと決定することであって、少なくとも１つのパケットは目標パケットである、ことを行うように構成されている。
【０１４５】
任意で、プロセッサ４３０はさらに、第１プロトコルの初期シーケンス番号、第１パケットの最後のバイトに対応するシーケンス番号、および、第２パケットの最初のバイトに対応するシーケンス番号に基づいて、第２プロトコルを使用することによって、目標パケットの位置を決定するように構成されている。
【０１４６】
任意で、プロセッサ４３０は具体的には、式Ｍ＝Ａ＋１に基づいて、目標パケットの最初のバイトに対応するシーケンス番号を計算することであって、Ｍは目標パケットに対応する最初のバイトであり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、こと、式Ｎ＝Ｂ−Ａ−１に基づいて、目標パケットの長さを計算することであって、Ｎは目標パケットの長さであり、Ｂは第２パケットの最初のバイトに対応するシーケンス番号であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号である、こと、および、式Ｑ＝Ａ−Ｙに基づいて、目標パケットのオフセット位置を計算することであって、Ｑは目標パケットのオフセット位置であり、Ａは第１パケットの最後のバイトに対応するシーケンス番号であり、Ｙは初期シーケンス番号である、ことを行うように構成されている。
【０１４７】
任意で、プロセッサ４３０はさらに、カウンタを開始すること、および、１つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定し、パケットが失われた場合、カウンタをリセットし、第２送信遅延を増加させる、または、パケットが失われていない場合、カウンタの値を増加させ、カウンタの値が事前設定閾値に到達したかどうかを決定し、カウンタの値が事前設定閾値に到達した場合、第２送信遅延を減少させ、カウンタをリセットすることを行うように構成されている。
【０１４８】
図９の関連する説明については、図１の方法部分の関連する説明および効果を参照して理解されたい。詳細はここで説明しない。
【０１４９】
上述の実施形態は、本発明の技術的解決法を説明することが意図されているに過ぎず、本発明を限定することが意図されているわけではない。本発明は、上述の実施形態を参照して詳細に説明されているが、本発明の実施形態の技術的解決法の主旨および範囲から逸脱することなく、さらに、上述の実施形態において説明された技術的解決法に対して変更を施し、または、これらのいくつかの技術的特徴に対して均等な置き換えを行い得ることを当業者は理解すべきである。
【図１】
2019506072.tif 000003
【図２】
2019506072.tif 000004
【図３】
2019506072.tif 000005
【図４】
2019506072.tif 000006
【図５】
2019506072.tif 000007
【図６】
2019506072.tif 000008
【図７】
2019506072.tif 000009
【図８】
2019506072.tif 000010
【図９】
2019506072.tif 000011
【手続補正書】
【提出日】平成30年8月8日(2018.8.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ伝送の方法であって、
第１プロトコルを使用することによってＫ個のパケットを受信する段階であって、各パケットはシーケンス番号を含み、前記Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である、段階と、
前記Ｋ個のパケットにおけるシーケンス番号に基づいて、前記第１プロトコルを使用することによって、目標パケットが失われたことが検出されたとき、前記目標パケットに基づいて第２送信遅延を決定する段階であって、前記第２送信遅延は、第１送信遅延より大きく、前記第１送信遅延は事前設定される、段階と、
前記第２送信遅延に基づいて、前記第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを前記送信端へ送信する段階であって、前記肯定応答ＡＣＫメッセージは、受信端が前記Ｌ個のパケットを受信したことを前記送信端に通知するために使用される、段階と、
第２プロトコルを使用することによって、前記目標パケットのための再伝送要求を前記送信端へ送信する段階と、
前記第２プロトコルを使用することによって、前記送信端によって再伝送された前記目標パケットを受信する段階と
を備える方法。
【請求項２】
目標パケットに基づいて第２送信遅延を決定する前記段階の前に、前記方法はさらに、
前記Ｋ個のパケットのうちの第１パケットの最後のバイトに対応するシーケンス番号が、前記Ｋ個のパケットのうちの第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定する段階であって、前記第１パケットは、前記第２パケットの前に受信される、段階と、
前記第１パケットの最後のバイトに対応する前記シーケンス番号が、前記第２パケットの最初のバイトに対応する前記シーケンス番号と連続している場合、パケットが失われていないと決定する、または、前記第１パケットの最後のバイトに対応する前記シーケンス番号が、前記第２パケットの最初のバイトに対応する前記シーケンス番号と連続していない場合、少なくとも１つのパケットが失われたと決定する段階であって、前記少なくとも１つのパケットは前記目標パケットである、段階と
を備える、請求項１に記載の方法。
【請求項３】
第２プロトコルを使用することによって、前記目標パケットのための再伝送要求を前記送信端へ送信する前記段階の前に、前記方法はさらに、
前記第１プロトコルを使用することによって、前記目標パケットについての情報を前記第２プロトコルへ送信する段階を備える、請求項１または２に記載の方法。
【請求項４】
少なくとも１つのパケットが失われたと決定する前記段階の後に、前記方法はさらに、
前記第１プロトコルの初期シーケンス番号、前記第１パケットの最後のバイトに対応する前記シーケンス番号、および、前記第２パケットの最初のバイトに対応する前記シーケンス番号に基づいて、前記第２プロトコルを使用することによって、前記目標パケットの位置を決定する段階を備える、請求項２に記載の方法。
【請求項５】
前記第１プロトコルの初期シーケンス番号、前記第１パケットの最後のバイトに対応する前記シーケンス番号、および、前記第２パケットの最初のバイトに対応する前記シーケンス番号に基づいて、前記第２プロトコルを使用することによって、前記目標パケットの位置を決定する前記段階は、
式Ｍ＝Ａ＋１に基づいて、前記目標パケットの最初のバイトに対応するシーケンス番号を計算する段階であって、Ｍは前記目標パケットに対応する最初のバイトであり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号である、段階と、
式Ｎ＝Ｂ−Ａ−１に基づいて前記目標パケットの長さを計算する段階であって、Ｎは前記目標パケットの前記長さであり、Ｂは前記第２パケットの最初のバイトに対応する前記シーケンス番号であり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号である、段階と、
式Ｑ＝Ａ−Ｙに基づいて、前記目標パケットのオフセット位置を計算する段階であって、Ｑは前記目標パケットの前記オフセット位置であり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号であり、Ｙは前記初期シーケンス番号である、段階と
を含む、請求項４に記載の方法。
【請求項６】
目標パケットに基づいて第２送信遅延を決定する前記段階の後に、前記方法はさらに、
カウンタを開始する段階と、
１つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定する段階であって、パケットが失われた場合、前記カウンタをリセットし、前記第２送信遅延を増加させる、または、パケットが失われていない場合、前記カウンタの値を増加させ、前記カウンタの前記値が事前設定閾値に到達したかどうかを決定し、前記カウンタの前記値が前記事前設定閾値に到達した場合、前記第２送信遅延を減少させ、前記カウンタをリセットする、段階と
を備える、請求項１から５のいずれか一項に記載の方法。
【請求項７】
受信端であって、
第１プロトコルを使用することによってＫ個のパケットを受信する受信モジュールであって、各パケットはシーケンス番号を含み、前記Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である、受信モジュールと、
前記受信モジュールによって受信された前記Ｋ個のパケットにおけるシーケンス番号に基づいて、前記第１プロトコルを使用することによって、目標パケットが失われたと検出したとき、前記目標パケットに基づいて第２送信遅延を決定する決定モジュールであって、前記第２送信遅延は、第１送信遅延より大きく、前記第１送信遅延は事前設定される、決定モジュールと、
前記決定モジュールによって決定された前記第２送信遅延に基づいて、前記第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを前記送信端へ送信するモジュールであって、前記肯定応答ＡＣＫメッセージは、前記受信端が前記Ｌ個のパケットを受信したことを前記送信端に通知するために使用される、送信モジュールと
を備え、
前記送信モジュールはさらに、前記決定モジュールが前記Ｋ個のパケットにおける前記シーケンス番号に基づいて、前記第１プロトコルを使用することによって、前記目標パケットが失われたと検出したとき、第２プロトコルを使用することによって、前記目標パケットのための再伝送要求を前記送信端へ送信し、
前記受信モジュールはさらに、前記送信モジュールが前記第２プロトコルを使用することによって前記目標パケットのための前記再伝送要求を前記送信端へ送信した後に、前記第２プロトコルを使用することによって、前記送信端によって再伝送された前記目標パケットを受信する、
受信端。
【請求項８】
前記受信端はさらに、判定モジュールを備え、
前記判定モジュールは、前記決定モジュールが前記目標パケットに基づいて送信遅延を決定する前に、前記Ｋ個のパケットにおける第１パケットの最後のバイトに対応するシーケンス番号が、前記Ｋ個のパケットにおける第２パケットの最初のバイトに対応するシーケンス番号と連続しているかどうかを決定し、前記第１パケットは、前記第２パケットの前に受信され、
前記決定モジュールはさらに、前記判定モジュールが、前記第１パケットの最後のバイトに対応する前記シーケンス番号が前記第２パケットの最初のバイトに対応する前記シーケンス番号と連続していると決定した場合、パケットが失われていないと決定する、または、前記判定モジュールが、前記第１パケットの最後のバイトに対応する前記シーケンス番号が、前記第２パケットの最初のバイトに対応する前記シーケンス番号と連続していないと決定した場合、少なくとも１つのパケットが失われたと決定し、前記少なくとも１つのパケットは前記目標パケットである、
請求項７に記載の受信端。
【請求項９】
前記送信モジュールはさらに、前記送信モジュールが前記第２プロトコルを使用することによって前記目標パケットのための前記再伝送要求を前記送信端へ送信する前に、前記第１プロトコルを使用することによって、前記目標パケットについての情報を前記第２プロトコルへ送信する、請求項７または８に記載の受信端。
【請求項１０】
前記決定モジュールはさらに、前記決定モジュールが、前記少なくとも１つのパケットが失われたと決定した後に、前記第１プロトコルの初期シーケンス番号、前記第１パケットの最後のバイトに対応する前記シーケンス番号、および、前記第２パケットの最初のバイトに対応する前記シーケンス番号に基づいて、前記第２プロトコルを使用することによって、前記目標パケットの位置を決定する、請求項８に記載の受信端。
【請求項１１】
前記決定モジュールは、
式Ｍ＝Ａ＋１に基づいて、前記目標パケットに対応する最初のバイトを計算することであって、Ｍは前記目標パケットの最初のバイトに対応するシーケンス番号であり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号である、こと、
式Ｎ＝Ｂ−Ａ−１に基づいて、前記目標パケットの長さを計算することであって、Ｎは前記目標パケットの前記長さであり、Ｂは前記第２パケットの最初のバイトに対応する前記シーケンス番号であり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号である、こと、および、
式Ｑ＝Ａ−Ｙに基づいて、前記目標パケットの位置を計算することであって、Ｑは前記目標パケットの前記位置であり、Ａは前記第１パケットの最後のバイトに対応する前記シーケンス番号であり、Ｙは前記初期シーケンス番号である、こと
を行う計算ユニットを含む、請求項１０に記載の受信端。
【請求項１２】
前記受信端はさらに、開始モジュールおよびカウントモジュールを備え、
前記開始モジュールは、前記決定モジュールが前記目標パケットに基づいて前記第２送信遅延を決定した後に、カウンタを開始し、
前記カウントモジュールは、前記開始モジュールが前記カウンタを開始した後に、１つのパケットが受信されるたびに、パケット損失が発生したかどうかを決定し、パケットが失われた場合、前記カウンタをリセットし、前記第２送信遅延を増加させる、または、パケットが失われていない場合、前記カウンタの値を増加させ、前記カウンタの前記値が事前設定閾値に到達したかどうかを決定し、前記カウンタの前記値が前記事前設定閾値に到達した場合、前記第２送信遅延を減少させ、前記カウンタをリセットする、
請求項７から１１のいずれか一項に記載の受信端。
【請求項１３】
メモリ、送受信器、プロセッサおよびバスシステムを備える受信端であって、
前記メモリは、プログラム命令を記憶し、
前記プロセッサは、前記メモリにおける前記プログラム命令を実行して、
第１プロトコルを使用することによって、Ｋ個のパケットを受信するように前記送受信器を制御するステップであって、各パケットはシーケンス番号を含み、前記Ｋ個のパケットは、送信端によって送信されたＬ個のパケットの一部である、ステップと、
前記Ｋ個のパケットにおけるシーケンス番号に基づいて、前記第１プロトコルを使用することによって、目標パケットが失われたことが検出されたとき、前記目標パケットに基づいて第２送信遅延を決定するステップであって、前記第２送信遅延は第１送信遅延より大きく、前記第１送信遅延は事前設定される、ステップと、
前記第２送信遅延に基づいて、前記第１プロトコルを使用することによって、肯定応答ＡＣＫメッセージを前記送信端へ送信するように前記送受信器を制御するステップであって、前記肯定応答ＡＣＫメッセージは、前記受信端が前記Ｌ個のパケットを受信したことを前記送信端に通知するために使用される、ステップと、
第２プロトコルを使用することによって、前記目標パケットのための再伝送要求を前記送信端へ送信するように前記送受信器を制御するステップと、
前記第２プロトコルを使用することによって、前記送信端によって再伝送された前記目標パケットを受信するように前記送受信器を制御するステップと
を実装する、
受信端。
【国際調査報告】
2019506072.tif 000012
2019506072.tif 000013
2019506072.tif 000014
2019506072.tif 000015