本願は、再伝送する必要があるデータパケットを特定するための確認パケット伝送方法および通信デバイスを提供することにより、リソースの浪費を減らす。
第1態様によれば、本願は確認パケット伝送方法を提供する。方法は、第1デバイスが、第2デバイスにより送信されるデータを受信する段階であって、データはN個のデータパケットを含む、段階と、第1デバイスが第2デバイスに確認パケットを送信する段階であって、確認パケットは確認フィールドを含み、確認フィールドは、第1フィールドおよび第2フィールドを含み、第2フィールドは、K個の位置およびK個の長さを含み、K個の位置のうちi番目の位置が、K個のデータパケットグループのうちi番目のデータパケットグループの開始バイトの位置または終了バイトの位置であり、K個の長さのうちi番目の長さが、K個のデータパケットグループのうちi番目のデータパケットグループの長さであり、K個のデータパケットグループの各データパケットグループは、1つのデータパケットまたは複数の連続するデータパケットを含み、各データパケットグループは、N個のデータパケットに属する1つのデータパケットまたは複数の連続するデータパケットを含み、i=1、...、Kであり、第1フィールドは、Kの値を示すために使用される、送信する段階とを含む。
上述の技術的解決策では、確認フィールドを確認パケットに追加して、第2デバイスが再伝送する必要があるデータパケットを特定することにより、リソースの浪費を減らす。
また、上述の技術的解決策では、確認フィールドにおいて、データパケットグループを示すために開始位置または終了位置および長さが使用され、データ長は、第1デバイスで受信された/失われたデータパケットの各グループに含まれるデータ量に伴って変化し、その結果、第1デバイスは、各データパケットグループのデータ長に基づいて、データパケットグループを示すために占有されるバイト数を動的に調整することができる。このように、確認パケットが比較的小さな空間を占有することにより、ブロードバンドの使用が改善される。
ある考えられる実装では、開始位置は、開始データパケットのシーケンス番号または開始バイトのシーケンス番号であり、終了位置は、終了データパケットのシーケンス番号または終了バイトのシーケンス番号である。
上述の技術的解決策では、データパケットのシーケンス番号またはバイトのシーケンス番号を使用することにより位置が示され、これは容易に実装される。
ある考えられる実装では、長さは、開始データパケットまたは終了データパケットに対するシーケンス番号のオフセット、または、開始バイトまたは終了バイトに対するシーケンス番号のオフセットである。
上述の技術的解決策では、開始位置または終了位置を基準に、オフセットを使用してデータパケットグループを示す。このように、シーケンス番号が継続的に蓄積されるために生じる、データ長の値が比較的大きいという問題が回避され得る。故に、確認パケットが比較的小さな空間を占有することにより、ブロードバンドの使用が改善される。
ある考えられる実装では、第1フィールドはKの値を含む。
上述の技術的解決策では、第1フィールドはKの値を保持し、第1フィールドは、確認フィールドの内容を読み取るように第2デバイスに直接命令するために使用されてよく、その結果、第2デバイスは確認パケットを正確に解析する。
ある考えられる実装では、第1フィールドは第1バイト数を含み、第1バイト数は、確認フィールドにより占有されるバイト数である。
上述の技術的解決策では、第1フィールドは第1バイト数を保持し、第1フィールドは、確認フィールドの内容を読み取るように第2デバイスに間接的に命令するために使用されてよく、その結果、第2デバイスは確認パケットを正確に解析する。
ある考えられる実装では、第1フィールドは第2バイト数を更に含み、第2バイト数は、長さを示すために占有されるバイト数である。
上述の技術的解決策では、第2バイト数は、長さを示すために占有されるバイト数に伴って変化し、データパケットグループを示すために占有されるバイト数が動的に調整されて、確認パケットを正確に解析するように第2デバイスに命令することができる。
ある考えられる実装では、第1フィールドは第2バイト数を更に含み、第2バイト数は、位置および長さの両方を示すために占有されるバイト数である。上述の技術的解決策では、第2デバイスは確認パケットを正確に解析することができる。
ある考えられる実装では、データパケットグループの長さを示すために占有されるバイト数は、K個の長さのうち最大の長さを示すために占有されるバイト数である。
上述の技術的解決策では、データパケットグループの長さを示すために占有されるバイト数は、K個の長さのうち最大の長さを示すために占有されるバイト数である。このように、任意のデータパケットグループを正確に示すことが保証される一方で、確認パケットにより占有される空間を減らすことができる。
ある考えられる実装では、確認フィールドは第3フィールドを更に含み、第3フィールドは、確認フィールドのタイプを示すために使用される。
上述の技術的解決策では、第3フィールドは、確認フィールドのタイプを示すために使用され、その結果、第2デバイスは、確認パケットを解析するための方法を決定してから、確認パケットを正確に解析することができる。
ある考えられる実装では、K個のデータパケットグループは、正常に受信されるデータパケットである。
上述の技術的解決策では、正常に受信されたデータパケットが第2デバイスに示され、これによって、再伝送する必要があるデータパケットが第2デバイスに間接的に示される。このように、再伝送する必要があるデータパケットを特定することにより、リソースの浪費を減らすことができる。
ある考えられる実装では、K個のデータパケットグループは、正常に受信されないデータパケットである。
上述の技術的解決策では、正常に受信されないデータパケットが第2デバイスに示され、これによって、再伝送する必要があるデータパケットが第2デバイスに直接示される。このように、再伝送する必要があるデータパケットを特定することにより、リソースの浪費を減らすことができる。
第2態様によれば、本願は確認パケット伝送方法を提供する。この方法は、第2デバイスが第1デバイスにデータを送信する段階であって、データは、N個のデータパケットを含む、段階と、第2デバイスが、第1デバイスにより送信される確認パケットを受信する段階であって、確認パケットは、確認フィールドを含み、確認フィールドは、第1フィールドおよび第2フィールドを含み、第2フィールドは、K個の位置およびK個の長さを含み、K個の位置のうちi番目の位置が、K個のデータパケットグループのうちi番目のデータパケットグループの開始位置または終了位置であり、K個の長さのうちi番目の長さが、K個のデータパケットグループのうちi番目のデータパケットグループの長さであり、K個のデータパケットグループの各データパケットグループは、1つのデータパケットまたは複数の連続するデータパケットを含み、各データパケットグループは、N個のデータパケットに属する1つのデータパケットまたは複数の連続するデータパケットを含み、i=1、...、Kであり、第1フィールドは、Kの値を示すために使用される、段階とを含む。
上述の技術的解決策では、確認フィールドを確認パケットに追加して、第2デバイスが再伝送する必要があるデータパケットを特定することにより、リソースの浪費を減らす。
また、上述の技術的解決策では、確認フィールドにおいて、データパケットグループを示すために開始位置または終了位置および長さが使用され、データ長は、第1デバイスで受信された/失われたデータパケットの各グループに含まれるデータ量に伴って変化し、その結果、第1デバイスは、各データパケットグループのデータ長に基づいて、データパケットグループを示すために占有されるバイト数を動的に調整することができる。このように、確認パケットが比較的小さな空間を占有することにより、ブロードバンドの使用が改善される。
ある考えられる実装では、開始位置は、開始データパケットのシーケンス番号または開始バイトのシーケンス番号であり、終了位置は、終了データパケットのシーケンス番号または終了バイトのシーケンス番号である。
上述の技術的解決策では、データパケットのシーケンス番号またはバイトのシーケンス番号を使用することにより位置が示され、これは容易に実装される。
ある考えられる実装では、長さは、開始データパケットまたは終了データパケットに対するシーケンス番号のオフセット、または、開始バイトまたは終了バイトに対するシーケンス番号のオフセットである。
上述の技術的解決策では、開始位置または終了位置を基準に、オフセットを使用してデータパケットグループを示す。このように、シーケンス番号が継続的に蓄積されるために生じる、データ長の値が比較的大きいという問題が回避され得る。故に、確認パケットが比較的小さな空間を占有することにより、ブロードバンドの使用が改善される。
ある考えられる実装では、第1フィールドはKの値を含む。
上述の技術的解決策では、第1フィールドはKの値を保持し、第1フィールドは、確認フィールドの内容を読み取るように第2デバイスに直接命令するために使用されてよく、その結果、第2デバイスは確認パケットを正確に解析する。
ある考えられる実装では、第1フィールドは第1バイト数を含み、第1バイト数は、確認フィールドにより占有されるバイト数である。
上述の技術的解決策では、第1フィールドは第1バイト数を保持し、第1フィールドは、確認フィールドの内容を読み取るように第2デバイスに間接的に命令するために使用されてよく、その結果、第2デバイスは確認パケットを正確に解析する。
ある考えられる実装では、第1フィールドは第2バイト数を更に含み、第2バイト数は、長さを示すために占有されるバイト数である。
上述の技術的解決策では、第2バイト数は、長さを示すために占有されるバイト数に伴って変化し、データパケットグループを示すために占有されるバイト数が動的に調整されて、確認パケットを正確に解析するように第2デバイスに命令することができる。
ある考えられる実装では、第1フィールドは第2バイト数を更に含み、第2バイト数は、位置および長さの両方を示すために占有されるバイト数である。上述の技術的解決策では、第2デバイスは確認パケットを正確に解析することができる。
ある考えられる実装では、データパケットグループの長さを示すために占有されるバイト数は、K個の長さのうち最大の長さを示すために占有されるバイト数である。
上述の技術的解決策では、データパケットグループの長さを示すために占有されるバイト数は、K個の長さのうち最大の長さを示すために占有されるバイト数である。このように、任意のデータパケットグループを正確に示すことが保証される一方で、確認パケットにより占有される空間を減らすことができる。
ある考えられる実装では、確認フィールドは第3フィールドを更に含み、第3フィールドは、確認フィールドのタイプを示すために使用される。
上述の技術的解決策では、第3フィールドは、確認フィールドのタイプを示すために使用され、その結果、第2デバイスは、確認パケットを解析するための方法を決定してから、確認パケットを正確に解析することができる。
ある考えられる実装では、K個のデータパケットグループは、正常に受信されるデータパケットである。
上述の技術的解決策では、正常に受信されたデータパケットが第2デバイスに示され、これによって、再伝送する必要があるデータパケットが第2デバイスに間接的に示される。このように、再伝送する必要があるデータパケットを特定することにより、リソースの浪費を減らすことができる。
ある考えられる実装では、K個のデータパケットグループは、正常に受信されないデータパケットである。
上述の技術的解決策では、正常に受信されないデータパケットが第2デバイスに示され、これによって、再伝送する必要があるデータパケットが第2デバイスに直接示される。このように、再伝送する必要があるデータパケットを特定することにより、リソースの浪費を減らすことができる。
第3態様によれば、本願は、第1態様または第1態様の任意の実装に係る方法を実行するように構成されるモジュールを含む通信デバイスを提供する。
第4態様によれば、本願は、第2態様または第2態様の任意の実装に係る方法を実行するように構成されるモジュールを含む通信デバイスを提供する。
第5態様によれば、本願は、プロセッサと送受信機とを含むチップを提供する。チップは、第1態様または第1態様の任意の実装に係る方法を実行するように構成される。
第6態様によれば、本願は、プロセッサと送受信機とを含むチップを提供する。チップは、第2態様または第2態様の任意の実装に係る方法を実行するように構成される。
第7態様によれば、本願は、プロセッサと送受信機とを含む通信デバイスを提供する。通信デバイスは、第1態様または第1態様の任意の実装に係る方法を実行するように構成される。
第8態様によれば、本願は、プロセッサと送受信機とを含む通信デバイスを提供する。通信デバイスは、第2態様または第2態様の任意の実装に係る方法を実行するように構成される。
第9態様によれば、本願は、命令を含むコンピュータ可読記憶媒体を提供する。命令が通信デバイス上で実行されると、通信デバイスに、第1態様または第1態様の任意の実装に係る方法を実行させることができる。
第10態様によれば、本願は、命令を含むコンピュータ可読記憶媒体を提供する。命令が通信デバイス上で実行されると、通信デバイスに、第2態様または第2態様の任意の実装に係る方法を実行させることができる。
第11態様によれば、本願はコンピュータプログラム製品を提供する。コンピュータプログラム製品が通信デバイス上で実行されると、通信デバイスに、第1態様または第1態様の任意の実装に係る方法を実行させることができる。
第12態様によれば、本願はコンピュータプログラム製品を提供する。コンピュータプログラム製品が通信デバイス上で実行されると、通信デバイスに、第2態様または第2態様の任意の実装に係る方法を実行させることができる。
以下では、添付の図面を参照しながら本願の技術的解決策について説明する。
本願は、信頼できるトランスポートプロトコルが適用される様々なシナリオ、例えば、TCPが適用される様々なシナリオに適用され得る。本願は、このシナリオにおいて、一方の端のデバイスが、もう一方の端のデバイスに、再伝送する必要があるパケットを示す必要があり、かつ、もう一方の端のデバイスが、ある方式で解析を実行し、その端のデバイスの指示に従ってパケットを再伝送する限り、別のシナリオ、例えば、確認メカニズムが追加されるUDPの様々なシナリオにも適用され得る。
本願では、通信デバイスのタイプが具体的に限定されない。例えば、通信デバイスは、信頼できるトランスポートプロトコルを使用する通信デバイスであってよい。信頼できるトランスポートプロトコルを使用する通信デバイスは、コンピュータ、携帯電話、またはタブレットコンピュータなどであってよい。
本願の実施形態における解決策を理解し易くするために、以下ではまず、本願に関連する概念および関連技術について説明する。
確認パケット(acknowledge、ACK):確認パケットについては、TCPの確認パケットメカニズムを例として使用することにより説明する。図1は、TCPの確認パケットメカニズムの概略図である。図1に示すように、データがホストAからホストBに送信されると、ホストBはホストAに確認応答を返す。例えば、図1では、ホストAは、シーケンス番号1~1000のデータパケットをホストBに送信する。ホストBは、シーケンス番号1~1000のデータパケットを正常に受信した後、確認シーケンス番号1001を含む確認応答、すなわち、予想される次のデータパケットのシーケンス番号が1001であることを示す確認パケットをホストAに送信する。ホストAは、確認応答を解析した後、シーケンス番号1001~2000のデータパケットをホストBに送信する。このケースは以下のプロセスに適用される。ホストBにより送信される確認パケットをホストAが妥当な時間内に受信しない場合は、ホストAは、データパケットが失われたものと見なし、データパケット再伝送メカニズムをトリガする。
パケット再伝送:パケット再伝送については、TCPのパケット再伝送メカニズムを例として使用することにより説明する。図2は、TCPのパケット再伝送メカニズムの概略図である。図2に示すように、ホストAが確認シーケンス番号100の確認パケットを継続的に3つ受信すると、ホストAは、シーケンス番号100のデータパケットが伝送プロセスで失われたものと判断し、失われたパケットの再伝送を実行する。
ただし、ホストAの場合は、シーケンス番号100のデータパケットのみを再伝送するか、シーケンス番号100のデータパケットの後に送信されるシーケンス番号120、135、および141のデータパケットを再伝送するかを決定するという問題がある。
シーケンス番号100のデータパケットのみを再伝送する場合は、シーケンス番号120、135、および141のデータパケットが正常に伝送されると、再伝送効率を高めることができる。ただし、シーケンス番号120、135、および141のデータパケットも失われた場合は、ホストAは、シーケンス番号120、135、および141のデータパケットの各々を妥当な時間だけ次々と待ち受けてから、パケット再伝送を実行する必要があり、これには大いなる時間および帯域幅が浪費される。
シーケンス番号100のデータパケットと、当該データパケットの後に送信されるシーケンス番号120、135、および141のデータパケットとを全て再伝送する場合は、シーケンス番号120、135、および141のデータパケットが全て失われると、再伝送効率を高めることができる。ただし、シーケンス番号100のデータパケットのみが失われると、トラフィックが大幅に浪費される。
故に、指定時間内に受信されないデータパケットのみを再伝送するか、指定時間内に受信されないデータパケットと、このデータパケットの後に送信される全てのデータパケットとを再伝送するかに関わらず、伝送リソースが大幅に浪費される場合がある。
本願は、再伝送する必要があるデータパケットを特定するための確認パケット伝送方法を提供することにより、リソースの浪費を減らす。
図3は、本願のある実施形態に係る確認パケット伝送方法の概略フローチャートである。図3に示す方法は、以下の内容の少なくとも一部を含む。
310:第2デバイスが第1デバイスにデータを送信する。データはN個のデータパケットを含む。
320:第1デバイスが第2デバイスに確認パケットを送信する。確認パケットは確認フィールドを含む。確認フィールドは、第1フィールドおよび第2フィールドを含む。第2フィールドは、K個の位置およびK個の長さを含む。K個の位置のうちi番目の位置が、K個のデータパケットグループのうちi番目のデータパケットグループの開始位置または終了位置である。K個の長さのうちi番目の長さが、K個のデータパケットグループのうちi番目のデータパケットグループの長さである。K個のデータパケットグループの各データパケットグループは、1つのデータパケットまたは複数の連続するデータパケットを含む。各データパケットグループは、N個のデータパケットに属する1つのデータパケットまたは複数の連続するデータパケットを含む。本明細書では、i=1、...、Kである。第1フィールドは、Kの値を示すために使用される。
本願のこの実施形態では、第1デバイスのタイプおよび第2デバイスのタイプが具体的に限定されない。第1デバイスは、確認メカニズムまたは信頼できるトランスポートプロトコルをサポートする任意のデバイス、例えば、コンピュータ、携帯電話、またはタブレットコンピュータであってよい。
第1デバイスが全てのデータパケットを正常に受信すると、確認パケットに確認フィールドが含まれない場合があることを理解されたい。
上述の技術的解決策では、確認フィールドを確認パケットに追加して、第2デバイスが再伝送する必要があるデータパケットを特定することにより、リソースの浪費を減らす。
また、上述の技術的解決策では、確認フィールドにおいて、データパケットグループを示すために開始位置または終了位置および長さが使用され、長さは、第1デバイスで受信された/失われたデータパケットの各グループに含まれるデータ量に伴って変化し、その結果、第1デバイスは、各データパケットグループの長さに基づいて、データパケットグループを示すために占有されるバイト数を動的に調整することができる。このように、確認パケットが比較的小さな空間を占有することにより、ブロードバンドの使用が改善される。
以下では、310および320について別個に説明する。
310では、第2デバイスが第1デバイスにデータを送信する。データはN個のデータパケットを含む。
第1デバイスはN個のデータパケットを受信する。第1デバイスは、N個のデータパケットを全て正常に受信してもよいし、N個のデータパケットのうちの幾つかのみを正常に受信してもよいことを理解されたい。
各データパケットは、複数バイトのデータで構成され得る。
320では、第1デバイスが第2デバイスに確認パケットを送信する。確認パケットは確認フィールドを含む。確認フィールドは、第1フィールドおよび第2フィールドを含む。第2フィールドは、K個のシーケンス番号およびK個の長さを含む。K個のシーケンス番号のうちi番目のシーケンス番号が、K個のデータパケットグループのうちi番目のデータパケットグループの開始位置または終了位置である。K個の長さのうちi番目の長さは、K個のデータパケットグループのうちi番目のデータパケットグループの長さである。K個のデータパケットグループの各データパケットグループは、1つのデータパケットまたは複数の連続するデータパケットを含む。各データパケットグループは、N個のデータパケットに属する1つのデータパケットまたは複数の連続するデータパケットを含む。本明細書では、i=1、...、Kである。第1フィールドは、Kの値を示すために使用される。
第2デバイスは、第1デバイスにより送信される確認パケットを受信および解析してから、確認パケット内の内容に基づいてデータパケットを再伝送する。
第1デバイスは、確認パケットを使用することにより、第2デバイスが再伝送する必要があるデータパケットを示す。
再伝送する必要があるデータパケットには、以下の2つのケースがあってよい。
ケース1:
単一のデータパケット、例えば、番号4のデータパケット
ケース2:
複数の連続するデータパケット、例えば、番号4から番号7のデータパケット
具体的には、第1デバイスは、確認パケット内の確認フィールドを使用することにより、第2デバイスが再伝送する必要があるデータパケットを示す。
オプションとして、確認フィールドは、信頼できるトランスポートプロトコルパケットの予約済みフィールドに配置され得る。
例えば、TCPの場合は、確認フィールドは、図4に示すように、TCP確認パケットのオプションフィールドに配置され得る。
オプションとして、確認フィールドは、信頼できるトランスポートプロトコルパケットに新たに追加されるフィールドであってよい。
より具体的には、第1デバイスは、確認フィールド内の第2フィールドを使用することにより、第2デバイスが再伝送する必要があるデータパケットを示す。
本願のこの実施形態では、K個のデータパケットグループのK個の開始位置またはK個の終了位置と、K個の長さとが、K個のデータパケットグループを示すために使用される。K個のデータパケットグループは、正常に受信されるデータパケットであってもよいし、正常に受信されないデータパケットであってもよい。
オプションとして、開始位置は、データパケットグループ内の開始データパケットのシーケンス番号を使用することにより示されてよく、終了位置は、データパケットグループ内の終了データパケットのシーケンス番号を使用することにより示されてよく、長さは、開始データパケットまたは終了データパケットに対するシーケンス番号のオフセットであってよい(この場合、データパケットには、番号4のデータパケット、番号5のデータパケット、および番号6のデータパケットなど、連続番号が付されてよい)。すなわち、データパケットグループは、データパケットグループ内の開始データパケットのシーケンス番号または終了データパケットのシーケンス番号と、開始データパケットまたは終了データパケットに対するシーケンス番号のオフセットとを使用することにより示される。例えば、データパケットグループが番号4から番号9のデータパケットを含む場合は、データパケットグループは、(4、5)または(9、5)として表されてよく、データパケットグループが番号4のデータパケットを含む場合は、データパケットグループは(4、0)として表されてよい。
オプションとして、開始位置は、データパケットグループ内の開始バイトのシーケンス番号を使用することにより示されてよく、終了位置は、データパケットグループ内の終了バイトのシーケンス番号を使用することにより示されてよく、長さは、開始バイトまたは終了バイトに対するシーケンス番号のオフセットであってよい。すなわち、データパケットグループは、データパケットグループ内の開始バイトのシーケンス番号または終了バイトのシーケンス番号と、開始バイトまたは終了バイトに対するシーケンス番号のオフセットとを使用することにより示される。例えば、データパケットグループが2つの連続するデータパケット、すなわち、番号101のデータパケットおよび番号151のデータパケットを含み、かつ、これら2つのデータパケットの各々のデータ長が50である場合は、データパケットグループは、(101、99)または(200、99)として表されてよく、データパケットグループが番号101のデータパケットを含み、かつ、番号101のデータパケットのデータ長が50である場合は、データパケットグループは、(101、49)または(150、49)として表されてよい。
上述の技術的解決策では、位置は、データパケットのシーケンス番号またはバイトのシーケンス番号を使用することにより示され、これは容易に実装される。開始位置または終了位置を基準に、オフセットを使用してデータパケットグループを示す。このように、シーケンス番号が継続的に蓄積されるために生じる、データ長の値が比較的大きいという問題が回避され得る。故に、確認パケットが比較的小さな空間を占有することにより、ブロードバンドの使用が改善される。
オプションとして、開始位置は、データパケットグループ内の開始データパケットのシーケンス番号を使用することにより示されてよく、終了位置は、データパケットグループ内の終了データパケットのシーケンス番号を使用することにより示されてよく、長さは、データパケットグループ内のデータパケット数であってよい。すなわち、データパケットグループは、データパケットグループ内の開始データパケットのシーケンス番号または終了データパケットのシーケンス番号と、データパケットグループ内のデータパケット数とを使用することにより示される。例えば、データパケットグループが番号4から番号9のデータパケットを含む場合は、データパケットグループは、(4、6)または(9、6)として表されてよく、データパケットグループが番号4のデータパケットを含む場合は、データパケットグループは(4、1)として表されてよい。
オプションとして、開始位置は、データパケットグループ内の開始バイトのシーケンス番号を使用することにより示されてよく、終了位置は、データパケットグループ内の終了バイトのシーケンス番号を使用することにより示されてよく、長さは、データパケットグループ内のバイト数であってよい。すなわち、データパケットグループは、データパケットグループ内の開始データパケットのシーケンス番号または終了データパケットのシーケンス番号と、データパケットグループ内のバイト数とを使用することにより示される。例えば、データパケットグループが2つの連続するデータパケット、すなわち、番号101のデータパケットおよび番号151のデータパケットを含み、かつ、これら2つのデータパケットの各々のデータ長が50である場合は、データパケットグループは、(101、100)または(200、100)として表されてよく、データパケットグループが番号101のデータパケットを含み、かつ、番号101のデータパケットのデータ長が50である場合は、データパケットグループは、(101、50)または(150、50)として表されてよい。
上述の技術的解決策では、位置は、データパケットのシーケンス番号またはバイトのシーケンス番号を使用することにより示され、これは容易に実装される。開始位置または終了位置を基準に、データパケット数またはバイト数を使用してデータパケットグループを示す。このように、シーケンス番号が継続的に蓄積されるために生じる、データ長の値が比較的大きいという問題が回避され得る。故に、確認パケットが比較的小さな空間を占有することにより、ブロードバンドの使用が改善される。
上述の技術的解決策では、データパケットに連続番号が付されると、第2デバイスは、各データパケットにおける対応するバイトのシーケンス番号と、シーケンス番号のオフセットとを記憶することで、データパケットのシーケンス番号に基づいて、対応するバイトのシーケンス番号を見つけることができる。
代替的に、本願のこの実施形態における開始位置は、開始データセグメントのシーケンス番号、開始データパケットのシーケンス番号、開始ビット(bit)のシーケンス番号、データパケットグループの伝送に使用されるデータフレーム内の開始フレームの番号、データパケットグループの伝送に使用されるデータフレーム内の開始サブフレームの番号、または、第2デバイスにより第1デバイスに送信されるデータのグループ化で取得される任意の考えられるサイズのグループ内の開始グループのグループ番号であってよい。
代替的に、本願のこの実施形態における終了位置は、終了データセグメントのシーケンス番号、終了データパケットのシーケンス番号、終了ビット(bit)のシーケンス番号、データパケットグループの伝送に使用されるデータフレーム内の終了フレームの番号、データパケットグループの伝送に使用されるデータフレーム内の終了サブフレームの番号、または、第2デバイスにより第1デバイスに送信されるデータのグループ化で取得される任意の考えられるサイズのグループ内の終了グループのグループ番号であってよい。
代替的に、本願のこの実施形態における長さは、開始データセグメントまたは終了データセグメントに対するシーケンス番号のオフセット、開始データパケットまたは終了データパケットに対するシーケンス番号のオフセット、開始ビット(bit)または終了ビット(bit)に対するシーケンス番号のオフセット、開始フレームまたは終了フレームの番号に対するオフセット、開始サブフレームまたは終了サブフレームに対する番号のオフセット、または、開始グループまたは終了グループに対するグループ番号のオフセットであってもよいし、データセグメント数、データパケット数、ビット(bit)数、フレーム数、サブフレーム数、またはグループ数などであってもよい。
別の考えられる実装では、開始バイトのシーケンス番号および終了バイトのシーケンス番号を使用して、単一のデータパケットまたは連続するデータパケットのグループを示すことができる。
例えば、番号101のデータパケットのデータ長が50である場合は、番号101のデータパケットは、開始バイトのシーケンス番号および終了バイトのシーケンス番号を使用することにより、(101、150)として表され、2つの連続するデータパケットがそれぞれ番号101のデータパケットおよび番号151のデータパケットである場合は、番号101のデータパケットのデータ長が50であり、番号102のデータパケットのデータ長も50であり、これら2つのデータパケットは、開始バイトのシーケンス番号および終了バイトのシーケンス番号を使用することにより、(101、200)として表される。
開始バイトのシーケンス番号および終了バイトのシーケンス番号は、単一のデータパケットまたは連続するデータパケットのグループを示すために使用され得る。本願では、開始位置または終了位置と、長さとは、単一のデータパケットまたは連続するデータパケットのグループを示すために使用される。上記の2つの方式を比較すると、後者の方式では占有され得る空間が比較的小さい(値が比較的小さいので、表示に使用され得るバイト数が比較的少ない)ことにより、リソースが節約される。
また、本願では、開始位置または終了位置と、長さとは、単一のデータパケットまたは連続するデータパケットのグループを示すために使用される。また、各データパケットグループのデータ長を、データパケットグループを示すために必要とされるバイト数を示すように更に動的に調整することにより、確認パケットにより占有される空間を更に減らすことができる。
オプションとして、第2フィールドは、K個の位置およびK個の長さを含む。1つの位置および1つの長さは、上述の単一のデータパケットまたは連続するデータパケットのグループを示すことができる。第2フィールドは、K個の単一のデータパケット、または、K個の、連続するデータパケットのグループ、または、総数K個の、単一のデータパケットおよび複数の連続するデータパケットを示し得ることが分かる。本明細書では、Kは1より大きいか等しい整数である。
本明細書では、K個の単一のデータパケット、K個の、連続するデータパケットのグループ、または、総数K個の、単一のデータパケットおよび複数の連続するデータパケットは、K個のデータパケットグループに対応する。
オプションとして、i番目のデータパケットグループのデータ長に基づいて、第2バイトのi番目の長さが決定される。
例えば、i番目のデータパケットグループのデータ長が256より短いか等しい場合は、i番目のデータパケットグループのデータ長が1バイトを占有し、i番目の長さが1である、i番目のデータパケットグループのデータ長が256より長く、65535より短いか等しい場合は、i番目のデータパケットグループのデータ長が2バイトを占有し、i番目の長さが2である、i番目のデータパケットグループのデータ長が65535より長い場合は、i番目のデータパケットグループのデータ長が3バイトを占有し、i番目の長さが3である、などである。
上述の技術的解決策では、本願のこの実施形態において、データ長を示すために占有される空間を、再伝送する必要があるデータパケットのデータ長に基づいて動的に調整することにより、空間浪費を回避することができる。
第1デバイスは、確認フィールド内の第1フィールドを使用することによりKの値を示す。本明細書では、Kの値は、第2フィールドを使用することにより示され得る、単一のデータパケットおよび複数の連続するデータパケットの数であり、Kは1より大きいか等しい整数である。
オプションとして、第1フィールドはKの値を含む。
すなわち、第1フィールドは、Kの値を保持して、第2デバイスにKの値を示す。
例えば、第1デバイスおよび第2デバイスが、1つの位置を示すために占有されるバイト数と、1つの長さを示すために占有されるバイト数とについて合意した場合は、確認パケットは、Kの値のみを保持して、確認フィールドの内容を正確に解析するように第2デバイスに命令する必要がある。具体的には、例えば、第1デバイスおよび第2デバイスが、1つの位置を示すために占有される4バイトと、1つの長さを示すために占有される2バイトとについて合意した場合は、確認フィールドに保持されるKの値が2である。
上述の技術的解決策では、第1フィールドはKの値を保持し、第1フィールドは、確認フィールドの内容を読み取るように第2デバイスに直接命令するために使用されてよく、その結果、第2デバイスは確認パケットを正確に解析する。
オプションとして、第1フィールドは、Kの値および第2バイト数を含む。第2バイト数は、1つの長さを示すために占有されるバイト数である。
例えば、第1デバイスおよび第2デバイスが、1つの位置を示すために占有されるバイト数について合意した場合は、確認パケットは、Kの値および第2バイト数を保持して、確認フィールドの内容を正確に解析するように第2デバイスに命令することができる。具体的には、例えば、第1デバイスおよび第2デバイスが、1つの位置を示すために占有される4バイトについて合意した場合は、確認フィールドに保持されるKの値が2であり、第2バイト数が2である。
上述の技術的解決策では、第1フィールドはKの値を保持し、第1フィールドは、確認フィールドの内容を読み取るように第2デバイスに直接命令するために使用され得る。第2バイト数は、長さを示すために占有されるバイト数に伴って変化し、第2バイト数は、1つのデータパケットグループを示すために占有されるバイト数を示すように動的に調整されて、確認パケットを正確に解析するように第2デバイスに命令することができる。
オプションとして、第1フィールドは、Kの値および第2バイト数を含む。第2バイト数は、位置および長さの両方を示すために占有されるバイト数である。
例えば、第1デバイスおよび第2デバイスが、1つの位置を示すために占有されるバイト数について合意した場合は、確認パケットは、Kの値および第2バイト数を保持して、確認フィールドの内容を正確に解析するように第2デバイスに命令することができる。具体的には、例えば、第1デバイスおよび第2デバイスが、1つの位置を示すために占有される4バイトと、1つの長さを示すために占有される2バイトとについて合意した場合は、確認フィールドに保持されるKの値が6である。
上述の技術的解決策では、第1フィールドはKの値を保持し、第1フィールドは、確認フィールドの内容を読み取るように第2デバイスに直接命令するために使用され得る。第2バイト数は、長さを示すために占有されるバイト数に伴って変化し、第2バイト数は、1つのデータパケットグループを示すために占有されるバイト数を示すように動的に調整されて、確認パケットを正確に解析するように第2デバイスに命令することができる。
オプションとして、第1フィールドは第1バイト数を含む。第1バイト数は、確認フィールドにより占有されるバイト数を示す。
例えば、第1デバイスおよび第2デバイスが、1つの位置を示すために占有されるバイト数と、長さを示すために占有されるバイト数とについて合意した場合は、確認パケットは、第1バイト数のみを保持する必要があり、第2デバイスは、単純な計算だけで確認フィールドの内容を正確に解析することができる。具体的には、例えば、第1デバイスおよび第2デバイスが、1つの位置を示すために占有される4バイトと、1つの長さを示すために占有される2バイトとについて合意した場合は、確認フィールドに保持される第1バイト数が8である。
上述の技術的解決策では、第1フィールドは第1バイト数を保持し、第1フィールドは、確認フィールドの内容を読み取るように第2デバイスに間接的に命令するために使用されてよく、その結果、第2デバイスは確認パケットを正確に解析する。
オプションとして、第1フィールドは、第1バイト数および第2バイト数を含む。第2バイト数は、1つの長さを示すために占有されるバイト数である。
例えば、第1デバイスおよび第2デバイスが、位置を示すために占有されるバイト数について合意した場合は、確認パケットは、第1バイト数および第2バイト数を保持し、第2デバイスは、単純な計算だけで確認フィールドの内容を正確に解析することができる。具体的には、例えば、第1デバイスおよび第2デバイスが、1つの位置を示すために占有される4バイトについて合意した場合は、確認フィールドに保持される第1バイト数が8であり、第2バイト数が2である。
上述の技術的解決策では、第2バイト数は、長さを示すために占有されるバイト数に伴って変化し、データパケットグループを示すために占有されるバイト数が動的に調整されて、確認パケットを正確に解析するように第2デバイスに命令することができる。
また、上述の技術的解決策では、Kの値が、再伝送する必要があるデータパケットのデータ長に基づいて更に動的に調整されることにより、表現能力を高めることができる。
オプションとして、第1フィールドは、第1バイト数および第2バイト数を含む。第2バイト数は、1つの位置および1つの長さの両方を示すために占有されるバイト数である。
例えば、第1デバイスおよび第2デバイスが、位置を示すために占有されるバイト数について合意した場合は、確認パケットは、第1バイト数および第2バイト数を保持し、第2デバイスは、単純な計算だけで確認フィールドの内容を正確に解析することができる。具体的には、例えば、第1デバイスおよび第2デバイスが、1つの位置を示すために占有される4バイトについて合意した場合は、確認フィールドに保持される第1バイト数が8であり、第2バイト数が6である。
上述の技術的解決策では、第2バイト数は、長さを示すために占有されるバイト数に伴って変化し、データパケットグループを示すために占有されるバイト数が動的に調整されて、確認パケットを正確に解析するように第2デバイスに命令することができる。
また、上述の技術的解決策では、Kの値が、再伝送する必要があるデータパケットのデータ長に基づいて更に動的に調整されることにより、表現能力を高めることができる。
上述の技術的解決策では、K個のデータパケットグループの位置および長さが全て、表現に同じバイト数を使用することを理解されたい。例えば、K個のデータパケットグループの位置は全て、4バイトを使用することにより表現され、K個のデータパケットグループの長さは全て、2バイトを使用することにより表現される。
オプションとして、確認フィールドは、確認フィールドの終了を示す終了識別子を含む。この場合は、第2デバイスが、1つの位置および1つの長さを示すために占有されるバイト数を知っている限り、第2デバイスは、確認フィールドを正確に解析することができる。1つの位置および1つの長さを示すために占有されるバイト数は、予め合意されてもよいし、確認パケットを使用することにより第2デバイスに通知されてもよい。1つの位置および1つの長さを示すために占有されるバイト数について予め合意がある場合は、確認パケットに第1フィールドが含まれていない場合があることを理解されたい。
本願のこの実施形態では、第2フィールドが構築されると、データパケットグループを表現するために使用される第2フィールド内の空間が同じであることを理解されたい。このように、占有される空間が異なるために第2デバイスが確認フィールドの内容を誤って解析するといったケースが回避され得る。
オプションとして、Kの値は、第2バイト数に基づいて決定され得る。
例えば、確認フィールドは、TCPオプションフィールドに配置される。TCPオプションフィールドは、最大で40バイトを含む。第2バイト数が6である場合は、Kの値は最大で6である。
上述の技術的解決策では、本願のこの実施形態によれば、Kの値が、再伝送する必要があるデータパケットのデータ長に基づいて更に動的に調整されることにより、表現能力を高めることができる。
オプションとして、データパケットグループの長さを示すために占有されるバイト数は、K個の長さのうち最大の長さを示すために占有されるバイト数である。
例えば、Kの値が3である場合は、実際には、第1データパケットグループの位置に4バイトが必要であり、第1データパケットグループの長さに1バイトが必要であり、合計5バイトが占有されることを示し、実際には、第2データパケットグループの位置に4バイトが必要であり、第2データパケットグループの長さに2バイトが必要であり、合計6バイトが占有されることを示し、実際には、第3データパケットグループの位置に4バイトが必要であり、第3データパケットグループの長さに3バイトが必要であり、合計7バイトが占有されることを示す。第1グループから第3グループの長さは全て、3バイトを使用することにより表現される。故に、第2バイト数は7である。また、確認パケットが構築されると、第1データパケットグループから第3データパケットグループの位置および長さは全て、7バイトを使用することにより示される。
上述の技術的解決策では、データパケットグループの長さを示すために占有されるバイト数は、K個の長さのうち最大の長さを示すために占有されるバイト数である。このように、任意のデータパケットグループを正確に示すことが保証される一方で、確認パケットにより占有される空間を更に減らすことができる。
オプションとして、確認フィールドは第3フィールドを更に含む。第3フィールドは、確認フィールドのタイプを示すために使用される。
例えば、第3フィールドは、確認フィールドのタイプ番号を保持する。
上述の技術的解決策では、第3フィールドは、確認フィールドのタイプを示すために使用され、その結果、第2デバイスは、確認フィールドを解析するための方法を決定してから、確認フィールドを正確に解析することができる。
オプションとして、確認パケットは確認シーケンス番号を更に含む。確認シーケンス番号は、第2デバイスの、次に予想されるデータパケットのシーケンス番号、または、第1デバイスにより正常に受信されたデータパケットの最大シーケンス番号を示すために使用される。
オプションとして、第1デバイスは確認パケットを生成する。第1デバイスは、以下の2つの方法を使用することにより確認パケットを生成する。
方法1:
第1デバイスは、正常に受信されるM個のデータパケットに基づいて確認パケットを生成する。本明細書では、MはNより小さい。
この場合は、K個のデータパケットグループは、正常に受信されるデータパケットであり、確認シーケンス番号が、第2デバイスの、次に予想されるデータパケットのシーケンス番号である。
オプションとして、第1デバイスは、正常に受信されないデータを決定することができず、第2デバイスは、正常に送信されないデータを決定する。
例えば、第1デバイスは、確認パケットを使用して、第1デバイスにより正常に受信されたデータを第2デバイスに示し、第2デバイスは、正常に受信されたデータに基づいて、再伝送する必要があるデータ、すなわち、第2デバイスにより正常に伝送されないデータ、または、第1デバイスにより正常に受信されないデータを決定する。
上述の技術的解決策では、正常に受信されたデータパケットが第2デバイスに示され、これによって、再伝送する必要があるデータパケットが第2デバイスに間接的に示される。このように、再伝送する必要があるデータパケットを特定することにより、リソースの浪費を減らすことができる。
方法2:
第1デバイスは、正常に受信されるM個のデータパケットに基づいて、正常に受信されないN-M個のデータパケットを決定してから、正常に受信されないN-M個のデータパケットのうち複数のデータパケットのK個の位置およびK個の長さに基づいて、確認パケットを生成する。
この場合は、K個のデータパケットグループは、正常に受信されないデータパケットであり、確認シーケンス番号が、第1デバイスにより正常に受信されたデータパケットの最大シーケンス番号である。
上述の技術的解決策では、正常に受信されないデータパケットが第2デバイスに示され、これによって、再伝送する必要があるデータパケットが第2デバイスに直接示される。このように、再伝送する必要があるデータパケットを特定することにより、リソースの浪費を減らすことができる。
以下では、図5を参照しながら、これら2つの方法について詳細に説明する。図5に示すように、第1デバイスは、番号1から番号3のデータパケットを正常に受信し、番号4および番号5のデータパケットが失われ、次に、第1デバイスは、番号6および番号7のデータパケットを正常に受信し、番号8および番号9のデータパケットが失われ、最後に、第1デバイスは、番号10から番号12のデータパケットを正常に受信する。
方法1では、第1デバイスにより第2デバイスに応答される確認パケットの主要内容は、ACK4+6-7+10-12である。本明細書では、「ACK4」は、確認シーケンス番号が4であり、かつ、第2デバイスの、次に予想されるデータパケットのシーケンス番号が4であることを示し、「6-7+10-12」は、第1デバイスが番号4のデータパケットは正常に受信しなかったものの、第1デバイスが次の番号6、番号7、番号10、番号11、および番号12のデータパケットを正常に受信したことを示す、確認フィールド内の第2フィールドであり、「6-7」および「10-12」は、それぞれデータパケットグループである。第1デバイスが、確認シーケンス番号と確認フィールドの内容とに基づいて、失われたパケットの再伝送を実行する必要があると判断する(例えば、繰り返し3つの確認パケットを受信する)と、送信端は、正常に受信されていると見なされた番号6および番号7のデータパケットと、番号10から番号12のデータパケットとの再伝送を中止し、失われる可能性がある番号4および番号5のデータパケットと、番号8および番号9のデータパケットとを比較的正確に順次再伝送する。
方法2では、第1デバイスにより第2デバイスに応答される確認パケットの主要内容は、ACK12+4-5+8-9である。本明細書では、「ACK12」は、第1デバイスにより正常に受信されたデータパケットの最大シーケンス番号が12であることを示し、「4-5+8-9」は、正常に受信されたデータパケットの最大シーケンス番号が12であるものの、番号1から番号12のデータパケット全てのうち、番号4および番号5のデータパケットと、番号8および番号9のデータパケットとが正常に受信されないことを示す。第2デバイスが確認パケットを受信すると、確認パケットに示されるデータパケットのシーケンス番号に基づいて、失われたパケットの再伝送が実行される。
以下では、特定の例を参照しながら、本願の実施形態における方法についてより詳細に説明する。
以下の例は、例に示す特定の値または特定のシナリオに本願の実施形態を限定するのではなく、当業者が本願の実施形態を理解する手助けになることを意図しているに過ぎないことを理解されたい。当業者であれば明らかに、上記の例に従って様々な同等の修正または変更を行うことができ、係る修正または変更も本願の実施形態の範囲内にある。
本願における確認パケットの確認フィールドを構築するための方法は、タイプ(1バイト)+連続するデータシーケンス範囲の総数(4ビット)+それぞれの連続するデータシーケンス範囲により占有されるバイト数(4ビット)+開始バイトのシーケンス番号(4バイト)+データ長(1バイト:256、または2バイト:65535、...)である。
本明細書では、タイプは、上述の第3フィールドに対応してよく、連続するデータシーケンス範囲の総数は、上述のKの値に対応してよく、それぞれの連続するデータシーケンス範囲により占有されるバイト数は、上述の第2バイト数に対応してよく、開始バイトのシーケンス番号は、上述の開始バイトのシーケンス番号に対応してよく、データ長は、上述の長さに対応してよい。
データ長部分により占有されるバイト数は、現在の最大の連続するデータシーケンス範囲に伴って変化し、バイト数は最大で4バイトであってよい。「1バイト:256」は、連続するデータシーケンス範囲の長さが256より短い場合に、データ長により占有されるバイト数が1バイトであることを意味する。同様に、「2バイト:65535」は、連続するデータシーケンス範囲の長さが256より長く、65535より短いか等しい場合に、データ長により占有されるバイト数が2バイトであることを示す。同じケースが、より大きな「連続するデータシーケンス範囲」に適用される。
上述の技術的解決策では、連続する受信された/失われたデータシーケンス範囲の長さ情報に基づいて、確認パケット内の関連部分の内容および占有される長さが動的に調整される。連続するデータシーケンス範囲が小さい場合は、確認パケットにより占有されるバイト数が減少する。連続するデータシーケンス範囲が大きい場合は、より多くのバイトを有する確認パケットが表示に使用される。動的に変化する連続する受信された/失われたデータシーケンス範囲を表現するために、それぞれの連続するデータシーケンス範囲により占有されるバイト数と、連続するデータシーケンス範囲の総数とが、本願の確認パケットにおいて更に追加される。
上述の構築方法では、確認フィールドにより占有される全長が(2+L*N)に最適化されてよく、5≦L≦8である。本明細書では、Nは、連続するデータシーケンス範囲の総数であり、Lの大きさは、最大の連続するデータシーケンス範囲のデータ長によって決まる。すなわち、連続するデータ範囲のデータ長が長いほど、必要とされるデータ長が長くなり、確認フィールドにより占有される空間が大きくなることを示す。
本願のこの実施形態における確認フィールドを構築するための方法では、連続するデータシーケンス範囲の総数と、それぞれの連続するデータシーケンス範囲により占有されるバイト数とは、4ビット空間を使用することにより別個に示される。連続するデータシーケンス範囲の総数については、確認フィールドが配置されるTCPオプションの最大長が40バイトであり、そこから2バイトの制御フィールド(タイプフィールドが1バイトであり、連続するデータシーケンス範囲の総数と、それぞれの連続するデータシーケンス範囲により占有されるバイトとが、合計1バイトを占有する)が差し引かれ、38バイトが残る。最小の連続するデータシーケンス範囲により占有されるバイト数の例(例えば、開始バイトのシーケンス番号4+データ長1=5)では、最大の連続するデータシーケンス範囲の総数が38/5=7である。故に、連続するデータシーケンス範囲の総数を表現するために使用するのは、4ビット空間で十分である。それぞれの連続するデータシーケンス範囲により占有されるバイト数については、連続するデータシーケンス範囲により占有されるバイト数の最大値が8バイトに制限される。故に、それぞれの連続するデータシーケンス範囲により占有されるバイト数を表現するには、4ビット空間で十分である。
本願のこの実施形態では、それぞれの連続するデータシーケンス範囲が構築されると、最大の連続するデータシーケンス範囲を表現するために必要とされる空間が使用される。このように、連続するデータシーケンス範囲の大きさの不一致に起因して起こる確認パケットの内容の誤った解析が回避される。この方法の副作用は空間浪費の可能性である。
確認フィールドを構築するための別の方法は、タイプ(1バイト)+長さ(1バイト)+開始バイトのシーケンス番号(4バイト)+終了バイトのシーケンス番号(4バイト)である。
本明細書では、タイプは確認パケットのタイプであり、開始バイトのシーケンス番号は、連続するデータシーケンス範囲の開始バイトのシーケンス番号であり、終了バイトのシーケンス番号は、連続するデータシーケンス範囲の終了バイトのシーケンス番号であり、開始バイトのシーケンス番号および終了バイトのシーケンス番号のグループが、連続するデータシーケンス範囲に対応する。
上述の構築方法では、確認フィールドにより占有される全長が2+8*Nであり、Nは、連続するデータシーケンス範囲の総数である。この構築方法では、8バイトを固定的に使用して、連続するデータシーケンス範囲を示す。
確認パケットを構築するための上述の2つの方法の後にそれぞれ取得される結果は、確認シーケンス番号が7778881であり、かつ、連続するデータシーケンス範囲が7783261~7840201である例で使用され、以下の通りである。
本願では、結果は、ACK:7778881+タイプ:*+連続するデータシーケンス範囲の総数:1+それぞれの連続するデータシーケンス範囲により占有されるバイト数:6+開始バイトのシーケンス番号:7783261+データ長:56940であり、*は、確認フィールドを構築するための新たな方法に対して割り当てられる新たなタイプ番号を表す。
他の方法では、結果は、ACK:7778881+タイプ:5+長さ:10+開始バイトのシーケンス番号:7783261+終了バイトのシーケンス番号:7840201である。
連続するデータシーケンス範囲が比較的小さい場合は、表現効率が非常に低いため、他の方法を使用する際に大きな空間浪費があることが分かる。確認パケット内の確認フィールドの内容が冗長的であるため、追加で受信され(失われ)、かつ、確認パケットにおいて表現され得る、連続するデータシーケンス範囲の総数は制限され、確認パケットにおける他の機能オプションの使用も制限される。TCPオプションフィールドの例では、TCPオプションフィールドの長さが40バイトに制限される。この方法では、最大で4つの連続するデータシーケンス範囲((40-2)/8=4.75)が表現され得る。また、確認フィールドに加えて、他の33個の機能フィールドもTCPオプションフィールドを使用するが、確認フィールドの内容が冗長的であるため、これらの機能の使用も制限される。
確認フィールドに10バイトが必要である他の方法と比較して、本願のこの実施形態における確認フィールドを構築するための方法では、確認フィールドに必要なのは8バイトのみである。
より具体的には、図6は、本願のある実施形態に係る方法および別の方法をそれぞれ使用する2つの例を示す。
第1例では、連続するデータシーケンス範囲のデータ長が65535を超える。故に、データ長フィールドを表現するために3バイトの空間が必要である。第2例では、2つの連続するデータシーケンス範囲があり、それぞれの連続するデータシーケンス範囲を表現するために6バイトが必要である。本願のこの実施形態では、確認パケット内の確認フィールドにより占有される空間を、確認フィールドを構築するための方法で効果的に減らすことができることが分かる。
表1は、本願の方法で構築される確認フィールド内のデータ長(data length、DL)部分が、連続するデータシーケンス範囲のデータ長が増加するにつれて増大する場合に、本願の方法で構築される確認フィールドを別の方法で構築される確認フィールドと比較したときの、空間節約および表現能力の側面の改善を要約したものである。1列目では、データ長により占有されるバイト数を標準として使用して、複数の異なるデータ長でサポートされ得る単一の連続するデータシーケンス範囲の長さの最大値を分析する。1列目は、サポートされる連続するデータシーケンス範囲の総数を示す。本願の方法で構築される確認フィールドは、最大で7つの連続するデータシーケンス範囲をサポートできるが、別の方法で構築される確認フィールドは、最大で4つの連続するデータシーケンス範囲をサポートできることが分かる。最後の列は、本願の方法で構築される確認フィールドを別の方法で構築される確認フィールドと比較したときの、データ長が異なる場合の平均的な空間節約率を示す。
本願の方法で構築される確認フィールドを使用することにより、確認パケット情報により占有される空間を効果的に削減でき、確認パケットの空間使用を改善できるので、アップリンク帯域幅のオーバヘッドが削減されることが分かる。
表1:本願の確認フィールドと別の方法の確認フィールドとの効果比較
図7は、本願のある実施形態に係る通信デバイスの構造ブロック図である。図7の通信デバイス700は、上記の第1デバイスに対応してよい。図7に示すように、通信装置700は、受信モジュール701および送信モジュール702を含む。
受信モジュール701は、第2デバイスにより送信されるデータを受信するように構成され、データはN個のデータパケットを含む。
送信モジュール702は、第2デバイスに確認パケットを送信するように構成され、確認パケットは確認フィールドを含み、確認フィールドは、第1フィールドおよび第2フィールドを含み、第2フィールドは、K個の位置およびK個の長さを含み、K個の位置のうちi番目の位置が、K個のデータパケットグループのうちi番目のデータパケットグループの開始バイトの位置または終了バイトの位置であり、K個の長さのうちi番目の長さが、K個のデータパケットグループのうちi番目のデータパケットグループの長さであり、K個のデータパケットグループの各データパケットグループは、1つのデータパケットまたは複数の連続するデータパケットを含み、各データパケットグループは、N個のデータパケットに属する1つのデータパケットまたは複数の連続するデータパケットを含み、i=1、...、Kであり、第1フィールドは、Kの値を示すために使用される。
受信モジュール701は受信機により実装され得る。送信モジュール702は伝送機により実装され得る。受信モジュール701および送信モジュール702の具体的な機能および有益な効果については、図3に示す方法を参照されたい。詳細についてはここで改めて説明しない。
図8は、本願の別の実施形態に係る通信デバイスの構造ブロック図である。図8の通信デバイス800は、上記の第2デバイスに対応してよい。図8に示すように、通信装置800は、受信モジュール801および送信モジュール802を含む。
送信モジュール802は、第1デバイスにデータを送信するように構成され、データはN個のデータパケットを含む。
受信モジュール801は、第1デバイスにより送信される確認パケットを受信するように構成され、確認パケットは確認フィールドを含み、確認フィールドは、第1フィールドおよび第2フィールドを含み、第2フィールドは、K個の位置およびK個の長さを含み、K個の位置のうちi番目の位置が、K個のデータパケットグループのうちi番目のデータパケットグループの開始バイトの位置または終了バイトの位置であり、K個の長さのうちi番目の長さが、K個のデータパケットグループのうちi番目のデータパケットグループの長さであり、K個のデータパケットグループの各データパケットグループは、1つのデータパケットまたは複数の連続するデータパケットを含み、各データパケットグループは、N個のデータパケットに属する1つのデータパケットまたは複数の連続するデータパケットを含み、i=1、...、Kであり、第1フィールドは、Kの値を示すために使用される。
受信モジュール801は受信機により実装され得る。送信モジュール802は伝送機により実装され得る。受信モジュール801および送信モジュール802の具体的な機能および有益な効果については、図3に示す方法を参照されたい。詳細についてはここで改めて説明しない。
図9は、本願の別の実施形態に係る通信デバイスの概略構造図である。図9の通信デバイス900は、上記の第1デバイスに対応してよい。図9に示すように、通信デバイス900は、送受信機901、プロセッサ902、およびメモリ903を含む。
図9は、1つのメモリおよび1つのプロセッサのみを示す。実際の通信デバイス製品には、1または複数のプロセッサおよび1または複数のメモリがあってよい。メモリは、記憶媒体または記憶デバイスなどとも呼ばれ得る。メモリは、プロセッサから独立して配置されてもよいし、プロセッサと統合されてもよい。これについては、本願のこの実施形態で限定されない。
送受信機901、プロセッサ902、およびメモリ903は、内部接続経路を介して互いに通信して、制御信号および/またはデータ信号を伝送する。
上述した本願の実施形態で開示する方法は、送受信機901に適用されてもよいし、送受信機901により実装されてもよい。
具体的には、送受信機901は、第2デバイスにより送信されるデータを受信することであって、データはN個のデータパケットを含む、受信することと、第2デバイスに確認パケットを送信することであって、確認パケットは確認フィールドを含み、確認フィールドは、第1フィールドおよび第2フィールドを含み、第2フィールドは、K個の位置およびK個の長さを含み、K個の位置のうちi番目の位置が、K個のデータパケットグループのうちi番目のデータパケットグループの開始バイトの位置または終了バイトの位置であり、K個の長さのうちi番目の長さが、K個のデータパケットグループのうちi番目のデータパケットグループの長さであり、K個のデータパケットグループの各データパケットグループは、1つのデータパケットまたは複数の連続するデータパケットを含み、各データパケットグループは、N個のデータパケットに属する1つのデータパケットまたは複数の連続するデータパケットを含み、i=1、...、Kであり、第1フィールドは、Kの値を示すために使用される、送信することとを行うように構成される。
確認パケットは、プロセッサ902、または送受信機901内の処理モジュールにより生成され得る。
通信デバイス900の具体的な動作プロセスおよび有益な効果については、図3に示す実施形態の説明を参照されたい。
図10は、本願の別の実施形態に係る通信デバイスの概略構造図である。図10の通信デバイス1000は、上記の第2デバイスに対応してよい。図10に示すように、通信デバイス1000は、送受信機1001、プロセッサ1002、およびメモリ1003を含んでよい。
図10は、1つのメモリおよび1つのプロセッサのみを示す。実際の通信デバイス製品には、1または複数のプロセッサおよび1または複数のメモリがあってよい。メモリは、記憶媒体または記憶デバイスなどとも呼ばれ得る。メモリは、プロセッサから独立して配置されてもよいし、プロセッサと統合されてもよい。これについては、本願のこの実施形態で限定されない。
送受信機1001、プロセッサ1002、およびメモリ1003は、内部接続経路を介して互いに通信して、制御信号および/またはデータ信号を伝送する。
上述した本願の実施形態で開示する方法は、送受信機1001に適用されてもよいし、送受信機1001により実装されてもよい。具体的には、送受信機1001は、第1デバイスにデータを送信することであって、データはN個のデータパケットを含む、送信することと、第1デバイスにより送信される確認パケットを受信することであって、確認パケットは確認フィールドを含み、確認フィールドは、第1フィールドおよび第2フィールドを含み、第2フィールドは、K個の位置およびK個の長さを含み、K個の位置のうちi番目の位置が、K個のデータパケットグループのうちi番目のデータパケットグループの開始バイトの位置または終了バイトの位置であり、K個の長さのうちi番目の長さが、K個のデータパケットグループのうちi番目のデータパケットグループの長さであり、K個のデータパケットグループの各データパケットグループは、1つのデータパケットまたは複数の連続するデータパケットを含み、各データパケットグループは、N個のデータパケットに属する1つのデータパケットまたは複数の連続するデータパケットを含み、i=1、...、Kであり、第1フィールドは、Kの値を示すために使用される、受信することとを行うように構成される。
確認パケットは、プロセッサ1002、または送受信機1001内の処理モジュールにより解析および処理され得る。
通信デバイス1000の具体的な動作プロセスおよび有益な効果については、図3に示す実施形態の説明を参照されたい。
本願の実施形態に記載の送受信機は、送受信ユニット、送受信機、または送受信装置などとも呼ばれ得る。プロセッサは、処理ユニット、処理ボード、処理モジュール、または処理装置などとも呼ばれ得る。オプションとして、受信機能を実装するように構成される、送受信機内のコンポーネントは、受信ユニットとして見なされてよく、送信機能を実装するように構成される、送受信機内のコンポーネントは、送信ユニットとして見なされてよい。すなわち、送受信ユニットは、受信ユニットおよび送信ユニットを含む。受信ユニットは時として、受信マシン、受信機、または受信回路などとも呼ばれ得る。送信ユニットは時として、伝送マシン、伝送機、または伝送回路などとも呼ばれ得る。
本願の実施形態におけるメモリは、プロセッサを動作させるために必要なコンピュータ命令およびパラメータを記憶するように構成される。
本願の実施形態におけるプロセッサは、集積回路チップであってよく、信号処理能力を有する。ある実装プロセスでは、プロセッサ内のハードウェア集積論理回路を使用することにより、または、ソフトウェアの形態の命令を使用することにより、上述の方法の段階が実装され得る。本願の実施形態におけるプロセッサは、汎用プロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)もしくは別のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタ論理デバイス、またはディスクリートハードウェアコンポーネントであってよい。プロセッサは、本願の実施形態で開示する方法、段階、および論理ブロック図を実装または実行してよい。汎用プロセッサはマイクロプロセッサであってよい、または、プロセッサは任意の従来のプロセッサなどであってよい。本願の実施形態との関連で開示する方法の段階は、ハードウェア復号プロセッサを使用することにより直接実行および実現されてもよいし、復号プロセッサ内のハードウェアモジュールとソフトウェアモジュールとの組み合わせを使用することにより実行および実現されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(random access memory、RAM)、フラッシュメモリ、リードオンリメモリ(read-only memory、ROM)、プログラマブルリードオンリメモリ、電気的消去可能プログラマブルメモリ、またはレジスタなどといった、当該分野における成熟した記憶媒体に配置され得る。記憶媒体はメモリに配置され、プロセッサはメモリ内の命令を読み取り、プロセッサのハードウェアとの組み合わせで上述の方法の段階を完了する。
本願の実施形態では、上述のプロセスのシーケンス番号は、本願の様々な実施形態における実行順序を意味しない。プロセスの実行順序は、プロセスの機能および内部論理に基づいて決定されるべきであり、本願の実施形態の実装プロセスに対するいかなる限定とも解釈されるべきではない。
ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせを使用することにより、上述の実施形態の全てまたは幾つかが実装され得る。これらの実施形態を実装するためにソフトウェアが使用される場合は、当該実施形態は、コンピュータプログラム製品の形態で完全または部分的に実装され得る。コンピュータプログラム製品は、1または複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータ上でロードおよび実行されると、本願の実施形態に係る手順または機能が全てまたは部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラマブル装置であってよい。コンピュータ命令はコンピュータ可読記憶媒体に記憶されてもよいし、コンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に伝送されてもよい。例えば、コンピュータ命令は、有線(例えば、同軸ケーブル、光ファイバ、またはデジタル加入者線(digital subscriber line、DSL))または無線(例えば、赤外線、電波、またはマイクロ波)の方式で、あるウェブサイト、コンピュータ、サーバ、またはデータセンタから別のウェブサイト、コンピュータ、サーバ、またはデータセンタに伝送されてよい。コンピュータ可読記憶媒体は、コンピュータからアクセス可能な任意の使用可能な媒体、または、1または複数の使用可能な媒体を統合する、サーバまたはデータセンタなどのデータ記憶デバイスであってよい。使用可能な媒体は、磁気媒体(例えば、フロッピーディスク(登録商標)、ハードディスク、または磁気テープ)、光媒体(例えば、デジタルビデオディスク(digital video disc、DVD))、または半導体媒体(例えば、ソリッドステートドライブ(solid state drive、SSD))などであってよい。
当業者であれば、本明細書で開示する実施形態に記載の例との組み合わせで、ユニットおよびアルゴリズム段階が、電子ハードウェア、または、コンピュータソフトウェアと電子ハードウェアとの組み合わせにより実装され得ることに気付くかもしれない。これらの機能がハードウェアおよびソフトウェアのどちらにより実行されるかは、技術的解決策の特定の適用および設計上の制約条件によって決まる。当業者であれば、複数の異なる方法を使用して、説明されている機能を特定の適用ごとに実装できるが、係る実装が本願の範囲を超えるものと見なされるべきではない。
当業者であれば、説明を簡便かつ簡潔にするために、上述のシステム、装置、およびユニットの詳細な動作プロセスについては、上述の方法の実施形態における対応するプロセスが参照されるべきであり、詳細についてはここで改めて説明しないことを明確に理解することができる。
本願において提供する幾つかの実施形態では、開示されているシステム、装置、および方法が他の方式で実装され得ることを理解されたい。例えば、説明されている装置の実施形態は例に過ぎない。例えば、ユニットの分割は論理機能の分割に過ぎず、実際の実装においては他の分割であってよい。例えば、複数のユニットまたはコンポーネントが組み合わされてもよいし、別のシステムに統合されてもよい、または、幾つかの特徴が無視されるか、もしくは実行されなくてよい。また、表示または説明されている相互結合もしくは直接結合または通信接続は、幾つかのインタフェースを使用することにより実装されてよい。装置間またはユニット間の間接結合または通信接続は、電子的形態、機械的形態、または他の形態で実装されてよい。
別個の部分として説明されているユニットは、物理的に別個のものであってもなくてもよい。ユニットとして表示されている部分は、物理的なユニットであってもなくてもよいし、1つの位置に配置されてもよいし、複数のネットワークユニットに分散されてもよい。これらの実施形態の解決策の目的を達成すべく、これらのユニットの幾つかまたは全てが実際の要件に基づいて選択されてよい。
また、本願の実施形態における機能ユニットが1つの処理ユニットに統合されてもよいし、これらのユニットの各々が物理的に単独で存在してもよいし、2つまたはそれより多くのユニットが1つのユニットに統合されてもよい。
これらの機能がソフトウェア機能ユニットの形態で実装され、独立した製品として販売または使用される場合は、これらの機能はコンピュータ可読記憶媒体に記憶されてよい。こうした理解に基づいて、本願の技術的解決策は本質的に、または従来技術に寄与する部分が、またはこれらの技術的解決策の幾つかが、ソフトウェア製品の形態で実装されてよい。ソフトウェア製品は記憶媒体に記憶され、本願の実施形態に記載の方法の段階の全てまたは幾つかを実行するようにコンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイスであってよい)に指示するための幾つかの命令を含む。上述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、リードオンリメモリ(read-only memory、ROM)、ランダムアクセスメモリ(random access memory、RAM)、磁気ディスク、または光ディスクなどの、プログラムコードを記憶できる任意の媒体を含む。
上述の説明は、本願の特定の実装例に過ぎず、本願の保護範囲を限定することを意図するものではない。本願で開示する技術的範囲内で当業者が容易に考え出す変形または置換はいずれも、本願の保護範囲に含まれるものとする。故に、本願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。