JP2018535582A - パケット送信方法およびユーザ機器 - Google Patents

パケット送信方法およびユーザ機器 Download PDF

Info

Publication number
JP2018535582A
JP2018535582A JP2018515052A JP2018515052A JP2018535582A JP 2018535582 A JP2018535582 A JP 2018535582A JP 2018515052 A JP2018515052 A JP 2018515052A JP 2018515052 A JP2018515052 A JP 2018515052A JP 2018535582 A JP2018535582 A JP 2018535582A
Authority
JP
Japan
Prior art keywords
packet
node
retransmitted
packets
lost
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018515052A
Other languages
English (en)
Other versions
JP6522855B2 (ja
Inventor
▲鐘▼ ▲張▼
▲鐘▼ ▲張▼
能 ▲楊▼
能 ▲楊▼
茂青 黄
茂青 黄
▲偉▼ ▲張▼
▲偉▼ ▲張▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2018535582A publication Critical patent/JP2018535582A/ja
Application granted granted Critical
Publication of JP6522855B2 publication Critical patent/JP6522855B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1874Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/189Transmission or retransmission of more than one copy of a message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/54Loss aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本発明は、パケット送信方法およびユーザ機器を開示する。方法は、送信ノードによって、複数のパケットを受信ノードに送信するステップと、複数の確認応答パケットを、受信ノードから受信するステップと、受信された複数の確認応答パケットに基づいて、第1のパケットが失われたと判定した後、第1のパケットを再送信するステップと、再送信されたパケットが失われたことが検出された場合、送信ノードによって、第1のパケットを、事前に設定された時間間隔内で、少なくとも2回受信ノードに連続的に再送信するステップとを含む。本発明の解決手段によると、再送信されたパケットは、再送信されたパケットが失われた後、時間内に検出および回復されることができ、それによって、タイムアウト再送信の回数を低減し、送信レートを改善し、さらに、再送信されたパケットのパケット損失確率を低減し、タイムアウト再送信の確率をさらに低減する。

Description

本発明は通信技術の分野に関し、詳細には、パケット送信方法およびユーザ機器に関する。
コンピュータネットワーク通信において、パケット損失回復アルゴリズムは、非常に重要な役割を担う。パケット損失回復アルゴリズムは、TCP(Transmission Control Protocol)プロトコルスタックにおけるデータ送信の信頼性を保証する重要なアルゴリズムであり、データパケットが失われたときのエラー耐性メカニズムであり、データ送信効率およびネットワーク帯域幅の利用率に直接影響を及ぼす。RFC2581は、タイムアウト再送信および高速再送信を主に含む、典型的なパケット損失回復アルゴリズムを定義および記載する。タイムアウト再送信は、TCPプロトコルにおけるデータ信頼性を保証するための重要なメカニズムである。タイムアウト再送信の原理は、送信ノードが、パケット送信後にタイムアウトタイマを有効にし、タイムアウトタイマが満了した後、送信ノードが、パケットが正しく受信されたことを示す確認応答パケット(Acknowledgement, 略してACK)を未だ受信しない場合、送信ノードはパケットを再送することである。再送されたパケットはまた、一般に、再送信されたパケットと呼ばれる。高速再送信は、タイムアウト再送信の最適化されたメカニズムである。送信端がN(一般に、Nは3と等しい)よりも多くの反復ACKを受信した場合、パケットが失われたと判定され、損失パケットは直ちに再送信される。高速再送信のメカニズムでは、パケット再送信は、再送信タイマが満了する前に実行されることができ、それによって、データ送信効率を大幅に改善する。
TCP送信における不要なタイムアウト再送信を回避することは、常に、学会および産業界の研究ホットスポットである。しかしながら、現在のTCPプロトコルスタックの大部分においては、再送信されたパケットの損失を検出するためのメカニズムは存在しない。再送信されたパケットが失われた場合、必然的にタイムアウト再送信が発生し、結果として、TCP接続の送信効率は大幅に低下する。
現在、再送信されたパケットの損失検出および回復に関するアルゴリズムは、主に、DAC(Duplicate Acknowledgement Counting)アルゴリズムおよびSACK+(Selective Acknowledgment Plus)アルゴリズムを含む。DACアルゴリズムおよびSACK+アルゴリズムの両方が、非対称のTCP加速アルゴリズムであり、送信端のみで配置される必要があり、それらの基本的な考え方は非常に類似している。
DACアルゴリズムの主な原理は、パケットが再送信されるとき、送信端は、ネットワーク内で現在送信されているパケットの数nを推定し、パケット再送信後に受信された反復ACKの数をカウントし、ここで、既に送信され、受信端によって確認されておらず、送信端によって損失パケットと判定されていないパケットはネットワークにおいて送信されているパケットとして定義され、nより多くのACKが受信された後に累積確認応答が更新されない場合、現在再送信されたパケットが失われたと判定し、タイムアウト再送信を待たずに直ちにパケットを再び再送信することである。
図1に示されるように、送信ウィンドウにおいて、そのシーケンス番号が3であるパケットが失われたと仮定する。図1のステップ101で示されるように、3つの反復ACKを受信した後、送信端は、そのシーケンス番号が3であるパケットを再送信するために高速再送信を開始し、DACアルゴリズムを使用することによって、ネットワークにおいて送信されているパケットの数を推定する。実現可能な推定方法は(推定方法はこの推定方法に限定されないことは留意されるべきである)、送信端は、送信されたパケットの最大シーケンス番号が8であり、受信された累積確認応答のシーケンス番号は2であり、3つの反復確認応答が受信されたと知り、送信端は1つのパケットが失われたと判定し、ネットワークにおいて送信されているパケットの数が8-2-3-1=2と等しいと推定することである。次いで、図1のステップ102で示されるように、送信端は、再送信後に受信される反復ACKをカウントする。再送信後に送信端が第3の反復ACKを受信したとき、累積確認応答のシーケンス番号が未だ2であり更新されていない場合、送信端は、再送信されたパケットは失われたと判定する。最後に、図1のステップ103で示されるように、送信端は、そのシーケンス番号が3であるパケットを直ちに再送信し、再送信タイマのタイムアウトを待つ必要はなく、それによって、タイムアウト再送信に入るのを回避する。
SACK+アルゴリズムの原理は、DACアルゴリズムの原理と同様である。主な違いは、SACKアルゴリズムにおいては、確認応答パケットのSACKオプションで搬送される選択確認応答情報を使用することによって、再送信されたパケットが失われたかどうかが判定されることである。
しかしながら、DACアルゴリズムまたはSACK+アルゴリズムとは無関係に、再送信されたパケットの損失が時間内に検出されることができない確率が高いことが、テストを介して判明している。その結果、再送信されたパケットは、失われた後に時間内に送信端によって検出され、回復されることができない。結果として、タイムアウト再送信がトリガされる。高パケット損失レートのシナリオでは、頻繁なタイムアウト再送信は、送信遅延の増加と、送信レートの急激な低下を引き起こす。
本発明の実施形態は、パケットのタイムアウト再送信の確率を低減し、パケット送信遅延を低減し、パケット送信レートを改善するためのパケット送信方法、送信装置および通信システムを提供する。
本発明の前述の目的を達成するために、第1の態様によると、本発明の実施形態はパケット送信方法を提供し、ここで、方法は、送信ノードによって、送信ノードと受信ノードとの間の通信リンクを使用することによって、受信ノードに複数のパケットを送信するステップと、複数のパケットにおける第1のパケットが失われたと判定した後、送信ノードによって、第1のパケットを再送信するステップと、第1のパケットが再送信された後に受信された確認応答パケットに基づいて、再送信されたパケットが失われたと判定した後、第1のパケットを再び再送信し、第1のパケットを、第1の時間間隔内で少なくとも1回送信するステップとを含む。
第1の態様の第1の可能な実施方式では、方法は、受信ノードから1つまたは複数の確認応答パケットを受信し、1つまたは複数の確認応答パケットで搬送されるackフィールドまたは拡張フィールドに従って、第1のパケットが失われたと判定するステップをさらに含む。
第1の態様または第1の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、方法は、送信ノードによって、第2のパケットを、第1の時間間隔内で送信するステップであって、ここで、第2のパケットは、送信ノードによって送信されていないパケットである、ステップをさらに含む。
第2の態様によると、本発明の実施形態はパケット送信方法を提供し、方法は、送信ノードによって、送信ノードと受信ノードとの間の通信リンクを使用することによって、受信ノードに複数のパケットを送信するステップと、複数のパケットにおける第1のパケットが失われたと判定した後、送信ノードによって、第1のパケットを再送信するステップと、第1のパケットが再送信された後に受信された確認応答パケットに基づいて、再送信されたパケットが失われたと判定した後、第1のパケットを再び再送信し、送信バッファが空であるかどうかを判定するステップと、送信バッファが空でない場合、送信ノードによって、送信バッファ内の少なくとも1つのパケットを、第1の時間間隔内で送信するステップであって、ここで、送信バッファ内のパケットは、送信ノードによって送信されていないパケットである、ステップとを含む。
第2の態様の第1の可能な実施方式では、方法は、送信バッファが空である場合、送信ノードによって、第1のパケットを、第1の時間間隔内で少なくとも1回送信するステップをさらに含む。
第2の態様または第2の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、第1のパケットが再送信された後に受信された確認応答パケットに基づいて、送信ノードによって、再送信されたパケットが失われたと判定するステップは、第1のパケットが再送信された後に受信された確認応答パケットで搬送されるackフィールドまたは拡張フィールドに従って、送信ノードによって、再送信されたパケットが失われたと判定するステップであって、ここで、再送信されたパケットは、再送信された第1のパケットである、ステップを含む。
第3の態様によると、本発明の実施形態はパケット送信方法を提供し、方法は、送信ノードによって、送信ノードと受信ノードとの間の通信リンクを使用することによって、受信ノードに複数のパケットを送信するステップと、複数のパケットにおける第1のパケットが失われたと判定した後、送信ノードによって、第1のパケットを再送信するステップと、第1のパケットが再送信された後に受信された確認応答パケットに基づいて、再送信されたパケットが失われたと判定した後、送信ノードによって、第1のパケットを再び再送信し、送信バッファが空であるかどうか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可するかどうかを判定するステップと、送信バッファが空であるか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可しない場合、送信ノードによって、第1のパケットを、第1の時間間隔内で少なくとも1回送信するステップとを含む。
第3の態様の第1の可能な実施方式では、方法は、送信バッファが空でなく、且つ、現在の輻輳制御ポリシーが新しいパケットの送信を許可する場合、送信ノードによって、送信バッファ内の少なくとも1つのパケットを、第1の時間間隔内で送信するステップをさらに含む。
前述の態様のいずれか1つまたは前述の態様のいずれか1つの可能な実施方式のいずれか1つでは、第1の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、送信ノードは、第1の時間間隔内で、再び再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない。
前述の態様のいずれか1つまたは前述の態様のいずれか1つの可能な実施方式のいずれか1つでは、送信ノードと受信ノードとの間の通信リンクはTCP接続である。
前述の態様のいずれか1つまたは前述の態様のいずれか1つの可能な実施方式のいずれか1つでは、送信バッファ内のパケットは、送信ノードによって送信されていないパケットである。
前述の態様のいずれか1つまたは前述の態様のいずれか1つの可能な実施方式のいずれか1つを参照すると、送信ノードは、送信ノードが再送信されたパケットが失われたと検出した後に、事前に設定された時間間隔内で、失われた第1のパケットを再送信し、ここで、事前に設定された時間間隔は、再送信された第1のパケットが失われたと送信ノードが検出した瞬間を開始ポイントとして使用し、事前に設定された時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、または、事前に設定された時間間隔は0に近い。
第4の態様によると、本発明の実施形態はユーザ機器を提供し、ユーザ機器は、無線モデム、プロセッサ、アンテナおよびTCPプロトコルスタックを含み、ここで、無線モデムはアンテナに接続され、TCPプロトコルスタックは、プロセッサの制御の下で、ユーザ機器上で動作するアプリケーションプログラムのデータを複数のパケットにカプセル化し、複数のパケットを無線モデムに送信するように構成され、無線モデムは、受信されたパケットをアナログ信号に変調し、アンテナを使用することによって、アナログ信号をサーバに送信するように構成され、TCPプロトコルスタックは、複数のパケットにおける第1のパケットが失われたと確認した後、無線モデムおよびアンテナを使用することによって、第1のパケットをサーバに再送信して、第1のパケットが再送信された後に受信された確認応答パケットに基づいて、再送信されたパケットが失われたと判定した後、第1のパケットを再び再送信し、第1のパケットを、第1の時間間隔内で少なくとも1回サーバに送信するようにさらに構成される。
第4の態様の第1の可能な実施方式では、TCPプロトコルスタックは、無線モデムおよびアンテナを使用することによって、第2のパケットを、第1の時間間隔内で送信するようにさらに構成され、ここで、第2のパケットは、ユーザ機器によって送信されていないパケットである。
第5の態様によると、本発明の実施形態はユーザ機器を提供し、ユーザ機器は、無線モデム、プロセッサ、アンテナおよびTCPプロトコルスタックを含み、ここで、無線モデムはアンテナに接続され、TCPプロトコルスタックは、プロセッサの制御の下で、ユーザ機器上で動作するアプリケーションプログラムのデータを複数のパケットにカプセル化し、複数のパケットを無線モデムに送信するように構成され、無線モデムは、受信されたパケットをアナログ信号に変調し、アンテナを使用することによって、アナログ信号をサーバに送信するように構成され、TCPプロトコルスタックは、複数のパケットにおける第1のパケットが失われたと確認した後、無線モデムおよびアンテナを使用することによって、第1のパケットをサーバに再送信して、第1のパケットが再送信された後に受信された確認応答パケットに基づいて、再送信されたパケットが失われたと判定し、第1のパケットを、サーバに再び再送信し、送信バッファが空であるかどうかを判定し、送信バッファが空でない場合、送信バッファ内の少なくとも1つのパケットを、第1の時間間隔内で、サーバに送信するようにさらに構成される。
第5の態様の第1の可能な実施方式では、TCPプロトコルスタックは、送信バッファが空である場合、無線モデムおよびアンテナを使用することによって、第1のパケットを、第1の時間間隔内で少なくとも1回サーバに送信するようにさらに構成される。
第5の態様または第5の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、TCPプロトコルスタックは、具体的には、第1のパケットが再送信された後に受信された確認応答パケットで搬送されるackフィールドまたは拡張フィールドに従って、再送信されたパケットが失われたと判定するように構成される。
第6の態様によると、本発明の実施形態はユーザ機器を提供し、ユーザ機器は、無線モデム、プロセッサ、アンテナおよびTCPプロトコルスタックを含み、ここで、無線モデムはアンテナに接続され、TCPプロトコルスタックは、プロセッサの制御の下で、ユーザ機器上で動作するアプリケーションプログラムのデータを複数のパケットにカプセル化し、複数のパケットを無線モデムに送信するように構成され、無線モデムは、受信されたパケットをアナログ信号に変調し、アンテナを使用することによって、アナログ信号をサーバに送信するように構成され、TCPプロトコルスタックは、複数のパケットにおける第1のパケットが失われたと確認した後、無線モデムおよびアンテナを使用することによって、第1のパケットをサーバに再送信して、第1のパケットが再送信された後に受信された確認応答パケットに基づいて、再送信されたパケットが失われたと判定し、第1のパケットを、サーバに再び再送信し、送信バッファが空であるかどうか、または、現在の輻輳制御ポリシーが、新しいパケットの送信を許可するかどうかを判定し、送信バッファが空であるか、または、現在の輻輳制御ポリシーが、新しいパケットの送信を許可しない場合、第1のパケットを、第1の時間間隔内で少なくとも1回サーバに送信するようにさらに構成される。
第6の態様の第1の可能な実施方式では、TCPプロトコルスタックは、送信バッファが空でなく、且つ、現在の輻輳制御ポリシーが新しいデータパケットの送信を許可する場合、無線モデムおよびアンテナを使用することによって、送信バッファ内の少なくとも1つのパケットを、第1の時間間隔内でサーバに送信するようにさらに構成される。
第4乃至第6の態様または第4乃至第6の態様の可能な実施方式のいずれか1つでは、第1の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、ユーザ機器は、第1の時間間隔内で、再び再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない。
第4乃至第6の態様または第4乃至第6の態様の可能な実施方式のいずれか1つでは、送信バッファ内のパケットは、ユーザ機器によって送信されていないパケットであり、再送信されたパケットは、ユーザ機器が第1のパケットが失われたと検出したときに初めてユーザ機器によって再送信された第1のパケットである。
第4乃至第6の態様または第4乃至第6の態様の可能な実施方式のいずれか1つでは、TCPプロトコルスタックは、具体的には、複数のパケットにおける第1のパケットが失われたと確認した後、事前に設定された時間間隔内で、無線モデムおよびアンテナを使用することによって、第1のパケットをサーバに再送信するように構成され、ここで、事前に設定された時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、または、事前に設定された時間間隔は0に近い。
第7の態様によると、本発明の実施形態はユーザ機器を提供し、ユーザ機器は、ユーザ機器と通信接続している受信ノードに複数のパケットを送信するように構成される送信ユニットと、受信ノードから、複数の確認応答パケットを受信するように構成される受信ユニットと、受信ユニットによって受信された複数の確認応答パケットに従って、複数のパケットにおける第1のパケットが失われたと判定し、第1のパケットを受信ノードに再送信するように送信ユニットをトリガし、第1のパケットが再送信された後に受信ユニットによって受信された確認応答パケットに従って、再送信されたパケットが失われたと判定するように構成される処理ユニットとを含み、ここで、送信ユニットは、処理ユニットが再送信されたパケットが失われたと判定した後、第1のパケットを、第1の時間間隔内で少なくとも2回連続的に送信するようにさらに構成される。
第7の態様の第1の可能な実施方式では、送信ユニットは、第1の時間内で第2のパケットを送信するようにさらに構成され、ここで、第2のパケットは、送信ユニットによって送信されていないパケットである。
第8の態様によると、本発明の実施形態はユーザ機器を提供し、ユーザ機器は、ユーザ機器と通信接続している受信ノードに複数のパケットを送信するように構成される送信ユニットと、受信ノードから、複数の確認応答パケットを受信するように構成される受信ユニットと、受信ユニットによって受信された複数の確認応答パケットに従って、複数のパケットにおける第1のパケットが失われたと判定し、第1のパケットを受信ノードに再送信するように送信ユニットをトリガし、第1のパケットが再送信された後に受信ユニットによって受信された確認応答パケットに従って、再送信されたパケットが失われたと判定するように構成される処理ユニットとを含み、ここで、送信ユニットは、処理ユニットが再送信されたパケットが失われたと判定した後、第1のパケットを再び再送信し、送信バッファが空であるかどうかを判定し、送信バッファが空でない場合、送信バッファ内の少なくとも1つのパケットを、第1の時間間隔内で送信するようにさらに構成される。
第8の態様の第1の可能な実施方式では、送信ユニットは、送信バッファが空である場合、第1の時間間隔内で、第1のパケットを少なくとも1回送信するようにさらに構成される。
第9の態様によると、本発明の実施形態はユーザ機器を提供し、ユーザ機器は、ユーザ機器と通信接続している受信ノードに複数のパケットを送信するように構成される送信ユニットと、受信ノードから、複数の確認応答パケットを受信するように構成される受信ユニットと、受信ユニットによって受信された複数の確認応答パケットに従って、複数のパケットにおける第1のパケットが失われたと判定し、第1のパケットを受信ノードに再送信するように送信ユニットをトリガし、第1のパケットが再送信された後に受信ユニットによって受信された確認応答パケットに従って、再送信されたパケットが失われたと判定するように構成される処理ユニットとを含み、ここで、
送信ユニットは、処理ユニットが再送信されたパケットが失われたと判定した後、第1のパケットを再び再送信し、送信バッファが空であるかどうか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可するかどうかを判定し、送信バッファが空であるか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可しない場合、第1のパケットを、第1の時間間隔内で少なくとも1回送信するようにさらに構成される。
第9の態様の第1の可能な実施方式では、送信ユニットは、送信バッファが空でなく、且つ、現在の輻輳制御ポリシーが新しいパケットの送信を許可する場合、送信バッファ内の少なくとも1つのパケットを、第1の時間間隔内で送信するようにさらに構成され、ここで、送信バッファ内のパケットは、送信ユニットによって送信されていないパケットである。
第8および第9の態様または第8および第9の態様の可能な実施方式のいずれか1つでは、送信ユニットは、具体的には、処理ユニットが再送信されたパケットが失われたと判定した後、第1のパケットを、事前に設定された時間間隔内で再び再送信するように構成され、ここで、事前に設定された時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、または、事前に設定された時間間隔は0に近い。
第7乃至第9の態様または第7乃至第9の態様の可能な実施方式のいずれか1つでは、第1の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、受信ユニットは、第1の時間間隔内で、再び再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない。
第7乃至第9の態様または第7乃至第9の態様の可能な実施方式のいずれか1つでは、送信バッファ内のパケットは、送信ノードによって送信されていないパケットである。
第7乃至第9の態様または第7乃至第9の態様の可能な実施方式のいずれか1つでは、送信ユニットは、再送信されたパケットが失われたと検出された後、失われた第1のパケットを、事前に設定された時間間隔内で再送信するように構成され、ここで、事前に設定された時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、または、事前に設定された時間間隔は0に近い。
第10の態様によると、本発明の実施形態はパケット送信方法を提供し、方法は、送信ノードによって、送信ノードと受信ノードとの間の通信リンクを使用することによって、受信ノードに複数のパケットを送信するステップと、受信ノードから、複数の確認応答パケットを受信するステップと、受信された複数の確認応答パケットに基づいて、複数のパケットにおける第1のパケットが失われたと判定するステップと、第1のパケットを受信ノードに再送信し、第1のパケットを、第1の時間間隔内で少なくとも1回送信するステップであって、ここで、第1の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、送信ノードは、第1の時間間隔内で、再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ステップとを含む。
第11の態様によると、本発明の実施形態はパケット送信方法を提供し、方法は、送信ノードによって、送信ノードと受信ノードとの間の通信リンクを使用することによって、受信ノードに複数のパケットを送信するステップと、受信ノードから、複数の確認応答パケットを受信するステップと、受信された複数の確認応答パケットに基づいて、複数のパケットにおける第1のパケットが失われたと判定するステップと、第1のパケットを受信ノードに再送信し、送信バッファが空であるかどうかを判定し、送信バッファが空でない場合、送信ノードによって、送信バッファ内の少なくとも1つのパケットを、第1の時間間隔内で送信するステップであって、ここで、送信バッファ内のパケットは、送信ノードによって送信されていないパケットであり、第1の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、送信ノードは、第1の時間間隔内で、再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ステップとを含む。
第11の態様の第1の可能な実施方式では、送信バッファが空である場合、送信ノードは、第1のパケットを、第1の時間間隔内で少なくとも1回送信する。
第12の態様によると、本発明の実施形態はパケット送信方法を提供し、方法は、送信ノードによって、送信ノードと受信ノードとの間の通信リンクを使用することによって、受信ノードに複数のパケットを送信するステップと、受信ノードから、複数の確認応答パケットを受信するステップと、受信された複数の確認応答パケットに基づいて、複数のパケットにおける第1のパケットが失われたと判定するステップと、送信ノードによって、第1のパケットを受信ノードに再送信し、送信バッファが空であるかどうか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可するかどうかを判定するステップと、送信バッファが空であるか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可しない場合、送信ノードによって、第1のパケットを、第1の時間間隔内で少なくとも1回送信するステップとを含む。
第10乃至第12の態様または第10乃至第12の態様の可能な実施方式のいずれか1つでは、第1の時間間隔は、第1のパケットを再び再送信する瞬間を開始ポイントとして使用し、第1のパケットが再び再送信された後に第1の確認応答パケットを受信する瞬間を終了ポイントとして使用する。
第10乃至第12の態様または第10乃至第12の態様の可能な実施方式のいずれか1つでは、第1の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、送信ユニットは、第1の時間間隔内で、再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない。
第10乃至第12の態様または第10乃至第12の態様の可能な実施方式のいずれか1つでは、複数のパケットにおける第1のパケットが失われたと判定した後、送信ノードは、第1のパケットを、事前に設定された時間間隔内で再び再送信し、ここで、事前に設定された時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、または、事前に設定された時間間隔は0に近い。
本発明の実施形態はユーザ機器をさらに提供し、ここで、ユーザ機器は、第10乃至第12の態様または第10乃至第12の態様の可能な実施方式のいずれか1つにおける方法を実施するように構成される機能ユニットを含む。
本発明の実施形態はコンピュータ可読記憶媒体をさらに提供し、ここで、記憶媒体はプログラムコードを記憶し、プログラムコードは、前述の態様のいずれか1つまたは前述の態様のいずれか1つの可能な実施方式で記載される方法のステップを実行するために使用される。
本発明の実施形態で提供されるパケット送信方法およびユーザ機器によると、パケットが失われたと検出された後、失われたパケットは、迅速かつ冗長的に複数回送信されるか、または、失われたパケットが再送信された後に新しいパケットが直ちに送信され、その結果、送信ノードは、失われたパケットを再送信した後できるだけ連続して確認応答パケットを受信し、確認応答パケットに従って、送信されたパケットのパケット損失検出および回復アルゴリズムを時間内にトリガすることができ、その結果、再送信されたパケットは、失われた後、時間内に検出および回復されることができ、それによって、タイムアウト再送信の回数を低減し、送信レートを改善する。加えて、再送信されたパケットが再び失われた場合、タイムアウト再送信がトリガされてよい。しかしながら、再送信されたパケットが短い時間内に複数回高速に再送信される場合、再送信されたパケットが失われる確率は指数関数的に低減され、それによって、タイムアウト再送信の確率をさらに低減する。
本発明の実施形態における、または従来技術における技術的解決手段をより明確に説明するために、以下では、実施形態または従来技術を説明するために必要な添付図面を簡潔に説明する。明らかに、以下の説明における添付図面は、単に、本発明のいくつかの実施形態を示し、当業者は、創造的努力無しに、これらの添付図面から他の図面をさらに導出することができる。
図1は、従来技術におけるパケット損失回復アルゴリズムの概略図である。 図2は、本発明の実施形態に係る通信システムの概略図である。 図3は、TCPパケットフォーマットの概略図である。 図4は、従来技術における高速再送信方法の原理の図である。 図5は、本発明の実施形態に係るパケット送信方法の概略図である。 図6は、本発明の実施形態に係る別のパケット送信方法の概略図である。 図7は、本発明の実施形態に係る別のパケット送信方法の概略図である。 図8は、本発明の実施形態の適用シナリオの概略図である。 図9は、本発明の実施形態に係る別のパケット送信方法の概略図である。 図10は、本発明の実施形態に係るTCPプロトコルスタックの動作原理の図である。 図11は、本発明の実施形態に係るユーザ機器の概略図である。 図12は、本発明の実施形態に係るユーザ機器の概略図である。 図13は、本発明の実施形態に係るユーザ機器の概略図である。
本発明における技術的解決手段を当業者により良く理解させるために、以下では、本発明の実施形態の添付図面を参照して、本発明の実施形態における技術的解決手段を明確且つ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態の全てではなく単に一部である。創造的努力無しに、本発明の実施形態に基づいて当業者によって取得される全ての他の実施形態は、本発明の保護範囲に包含されるべきである。
本発明の実施形態で提供される技術的解決手段は、典型的には、例えば、移動体通信用グローバルシステム(GSM(登録商標), Global System of Mobile Communication)ネットワーク、符号分割多元接続(CDMA, Code Division Multiple Access)ネットワーク、ワイドバンド符号分割多元接続無線(WCDMA(登録商標), Wideband Code Division Multiple Access Wireless)ネットワーク、汎用パケット無線サービス(GPRS, General Packet Radio Service)ネットワーク、ロングタームエボリューション(LTE, Long Term Evolution)ネットワーク、ソフトウェア定義型ネットワーク(SDN, Software Defined Network)および無線センサネットワーク(Wireless Sensor Network)等の、比較的高いパケット損失レートを有する通信システムに適用されてよい。
図2は、本発明の実施形態に係る通信システム100の簡略ブロック図である。通信システム100は、単に、本発明の1つの適用シナリオとして使用され、本発明の適用シナリオへの限定として理解されるべきではない。本発明の本実施形態で提供される技術的解決手段は、TCP/IPプロトコルスタックに基づいている任意の通信システムに適用可能であることは理解され得る。TCP/IPプロトコルスタックは、TCP/IP参考モデルによって定義されるプロトコルレベルのための分割方式を参照して実施されるプロトコルスタックであることは留意されるべきである。TCP/IPプロトコルスタックは、TCP(送信制御プロトコル)およびIP(インターネットプロトコル)という2つのコアプロトコルを含む。本発明の本実施形態では、TCPプロトコルの実施は最適化される。本発明の本実施形態の方法はまた、パケット再送信メカニズムを有する別の信頼できる送信プロトコルにも適用可能であることは理解され得る。
本発明の明細書、特許請求の範囲および添付図面では、「第1の」、「第2の」、「第3の」、「第4の」等々(存在する場合)という用語は、同様のオブジェクト間で区別することを意図されるが、特定の順序またはシーケンスを必ずしも示すものではない。
通信システム100は、ユーザ機器110、アクセスポイント10、無線アクセスゲートウェイ12、ワイドエリアネットワーク14、第1のアプリケーションサーバ20、第2のアプリケーションサーバ30および第3のアプリケーションサーバ40を含む。当業者は、1つの通信システムは、一般に、図2に示される構成要素よりも少ない、または多い構成要素を含んでよく、または、図2に示される構成要素とは異なる構成要素を含んでよいことを理解し得る。図2は、単に、本発明の本実施形態で開示される複数の実施方式により関連した構成要素を示す。
例えば、図2には3つのアプリケーションサーバ20、30および40が既に記載されているが、当業者は、1つの通信システムが任意の数のアプリケーションサーバを含んでよく、または、いずれのアプリケーションサーバさえも含まないことを理解し得る。アプリケーションサーバ20、30および40は、対応するTCPプロトコルスタック21、31および41をそれぞれ含む。TCPプロトコルスタック21、31および41の機能は、アプリケーションサーバ20、30および40上で動作するソフトウェア、ハードウェアおよび/またはファームウェアの適切な組合せによってそれぞれ実行されてよい。ワイドエリアネットワーク14は、パブリックネットワーク、プライベートネットワークおよびインターネットのうちのいくつかおよび/またはその任意の組合せを含んでよい。無線アクセスゲートウェイ12およびアクセスポイント10は、1つの無線ネットワークに含まれてよい。簡潔にするために、無線ネットワークの別の部分は記載されていない。アクセスポイント10は、アンテナ11をさらに含む。
ユーザ機器110は、プロセッサ120、TCPプロトコルスタック130、無線モデム140およびメモリ150を含む。無線モデム140はアンテナ142に接続されてよい。当業者は、TCPプロトコルスタック130は、ソフトウェア、ハードウェアおよび/またはファームウェアの適切な組合せによって実行されてよいことを理解し得る。TCPプロトコルスタック130、無線モデム140およびアンテナ142は、プロセッサの制御の下で、パケットの送受信を完了するために互いに協調する。加えて、当業者は、ユーザ機器は、図2に示される構成要素よりも少ない、または多い構成要素を含んでよいことを理解し得る。図2に示されるユーザ機器110は、単に、本発明の本実施形態で開示される複数の実施方式により関連する構成要素を示す。
一般に、ユーザ機器110のメモリ150は、アプリケーションプログラム、例えば、第1のアプリケーションプログラム121、第2のアプリケーションプログラム123および第3のアプリケーションプログラム125を記憶する。第1のアプリケーションプログラム121、第2のアプリケーションプログラム123および第3のアプリケーションプログラム125はそれぞれ、第1のアプリケーションプログラムサーバ20、第2のアプリケーションプログラムサーバ30および第3のアプリケーションプログラムサーバ40のクライアント側のアプリケーションプログラムである。プロセッサ120は、メモリ150内のアプリケーションプログラムを読み出し、且つ実行して、特定の機能を実施してよい。
TCPプロトコルスタックは、クライアントサーバ通信モデルを使用する。クライアントは、サーバによって提供されるサービス、例えばウェブページコンテンツを要求および受け入れる。例えば、第1のアプリケーションプログラム121は、第1のアプリケーションプログラムサーバ20からの情報を要求するウェブページブラウザであってよい。
本発明の本実施形態におけるユーザ機器110は、モバイル端末(Mobile Terminal)、例えば、モバイル電話、アクションカメラまたはノートブックコンピュータ等のポータブル、ウェアラブル、または車両用モバイルデバイスであってよく、または、コンピュータまたはサーバ等のデバイスであってよく、または、ルータまたはゲートウェイ等のネットワークデバイスであってよい。ユーザ機器110は、別のユーザ機器へのTCP接続を確立してよく、さらに、TCP接続を使用することによって、パケットを受信および送信してよい。TCPパケットのフォーマットが、図3に示される。送信元ポートおよび宛先ポートは、送信端および受信端のアプリケーションプロセスを決定するように構成される。送信元ポート番号、宛先ポート番号、送信元IPアドレスおよび宛先IPアドレスは、TCP接続を一意に決定し得る。TCPパケットのヘッダのシーケンス番号(Sequence Number、一般に、略してseq)は、パケットのペイロードの第1のデータバイトのシーケンス番号を搬送する。TCPパケットを受信した後、受信ノードは、TCP接続を使用することによって、送信ノードに確認応答(ACK)パケットを送信する。ACKパケットのヘッダの確認応答番号(Acknowledge Number, 一般に、略してack)のフィールド値は、受信ノードによって受信されるパケットの「Sequence Number」フィールドの値を表し、また、受信端が送信端によって送信され、その「Sequence Number」の値がACKパケットの「Acknowledge Number」の値よりも小さい全てのパケットを受信したことを表す。ウィンドウのサイズは、受信端の現在の受信バッファ領域のサイズを示すために使用される。加えて、TCPパケットのヘッダは、6個のフラグビットをさらに有する:
URG: 緊急ポインタフィールドの有効性;
ACK: 確認応答番号フィールドの有効性;
PSH: 処理用のアプリケーションレイヤへの即時送信;
RST: 異常発生時のリセット;
SYN: 接続確立時に1に設定される同期フラグ; および
FIN: 接続を開放することを要求する終了フラグ。
ユーザ機器110は、有線ネットワークまたは無線ネットワーク(例えば、Wi-Fiネットワーク、WSNまたはセルラネットワーク)を使用することによって、アプリケーションプログラムサーバ20または別のユーザ機器へのTCP接続を確立してよい。アプリケーションプログラムサーバ20へのTCP接続の確立は、ソフトウェアアプリケーションプログラム(例えば、図1におけるブラウザまたは第1のアプリケーションプログラム121)によって開始されてよい。具体的には、ユーザ機器110およびアプリケーションプログラムサーバ20は、スリーウェイハンドシェイクを使用することによって、TCP接続を確立してよい。例えば、第1のアプリケーションプログラム121は、ソケットオープン(socket open)コマンドを生成する。コマンドは、ユーザ機器110のTCPプロトコルスタック120に提供されて、3つのメッセージ交換を使用することによって、アプリケーションプログラムサーバ20へのTCP接続を確立するようにTCPプロトコルスタック130をトリガする。次いで、TCPプロトコルスタック130は、上位レイヤの第1のアプリケーションプログラム121に、接続が確立されたことを通知する。アプリケーションプログラムサーバ20のTCPプロトコルスタックはまた、上位レイヤアプリケーションプロセスに、接続が確立されたことを通知する。続いて、ユーザ機器110上の第1のアプリケーションプログラム121およびアプリケーションプログラムサーバ20は、確立されたTCP接続に基づいて、データ送信を実行してよい。当業者は、ユーザ機器110およびアクセスポイント10は、対応するアンテナ142およびアンテナ11を使用することによって、無線サービスチャネルにアクセスすることを理解し得る。
従来技術におけるTCPパケット損失検出メカニズムおよび高速再送信メカニズムは、具体的な例を使用することによって、以下に説明される。説明を簡単にするために、本発明のいくつかの実施形態では、互いの間の接続を確立した2つのデバイスのうちの一方は、送信ノードと呼ばれ、もう一方は受信ノードと呼ばれる。送信ノードおよび受信ノードは、データの送受信能力を有する任意のデバイスであってよく、例えば、前述のユーザ機器または前述のアプリケーションプログラムサーバであってよいことは理解され得る。図4に示されるように、送信ノードが、そのシーケンス番号が1、2、3、4および5である5つのパケットを送信すると仮定する。そのシーケンス番号が1である(略してパケット1と呼ばれる)パケットは、受信ノードによって受信される最初のものであり、受信ノードは、その確認応答番号ack=1である確認応答パケットACK1を返す。パケット2がある理由により受信ノードに到達しないが、パケット3が受信ノードに到達する場合、受信ノードは依然としてACK1を返す。パケット4および5が受信ノードに到達した場合、パケット2は未だ受信ノードに到達していないため、受信ノードは依然としてACK1を返す。従って、送信ノードは、そのackが1と等しい3つの確認応答パケットを受信して、パケット2が失われたと判定する。従って、送信ノードは、再送信タイマが満了するまで待つ必要はなく、そのシーケンス番号が2であるパケットを再び直ちに再送信する。次いで、受信ノードはパケット2を受信する。この場合、パケット3、4および5は既に受信されているため、受信ノードは、その確認応答番号がack=5である確認応答パケットACK5を返す。
TCPパケットのタイムアウト再送信は、ネットワーク帯域幅の低い利用率と、増加する送信遅延に関する重要な理由である。既存の高速再送信メカニズムは、タイムアウト再送信の確率をある程度低減する。しかしながら、再送信されたパケットが再び失われ、時間内に検出および回復されない場合、タイムアウト再送信が必然的に発生する。従来技術では、パケット損失検出および回復は、例えば、DACおよびSACK+アルゴリズムを使用することによって、再送信されたパケットに対して実行されることができるが、発明者は、繰返しのテストおよび実験を通じて、再送信されたパケットのパケット損失検出および回復アルゴリズムが導入された後、スループットは明らかに改善されないことを発見した。発明者は、この結果の主な理由は、既存の再送信パケット損失検出および回復方法が、たいていの場合では時間内にトリガされないことであると発見した。結果として、失われた後、再送信されたパケットは、時間内に検出および回復されず、結局は、タイムアウト再送信が発生する。具体的には、既存の高速再送信ソリューションでは、パケットが再送信された後に受信されるACKパケットに主に従って、再送信されたパケットが失われたかどうかが判定されて、再送信を実行し、その結果、タイムアウト再送信に入ることを回避する。しかしながら、パケットが再送信された後にパケットが送信されない場合、既存の再送信パケット損失検出および回復方法はトリガされないことがある。結局、タイムアウト再送信は必然的に発生する。このようにして、タイムアウトによるパケット再送信の確率は、比較的大きく、スループットの低下を引き起こす。
前述の課題を解決するために、本発明の実施形態はパケット送信方法を提供する。パケットが再送信された後、再送信されたパケットが失われたと検出された場合、失われたパケットは、複数回(2回を含むがこれに限定されない)連続的に送信され、または、失われたパケットが再送信された後に新しいパケットが直ちに送信される。このようにして、一方では、不十分なACKパケットにより、再送信されたパケットのパケット損失検出および回復アルゴリズムがトリガされないことが回避される。従って、再送信されたパケットは、失われた後時間内に検出および回復されることができ、タイムアウト再送信の回数は低減される。他方、失われたパケットは、複数回連続的に再送信され、タイムアウト再送信は、全ての再送信されたパケットが失われたときのみトリガされる。実際の効果は、再送信されたパケットのパケット損失の確率が指数関数的に低減されることであり、それにより、タイムアウト再送信の回数をさらに低減し、データ送信レートを改善する。図5に示されるように、本発明の本実施形態で提供されるパケット送信方法は、以下のステップを含む。
ステップ501:図5における受信ノードから送信ノードへの矢印によって示されるように、送信ノードは、送信ノードと受信ノードとの間の通信リンクを使用することによって、受信ノードに複数のパケット(図5に示されるパケット1乃至8)を送信して、受信ノードから、確認応答パケットを受信する。送信ノードによって送信されるパケットはTCPパケットである。各パケットのヘッダのシーケンス番号フィールド(Sequence Number, 一般に、略してseq)は、パケットのペイロードにおける第1のデータバイトのシーケンス番号を搬送する。受信ノードがパケットを受信する度に、受信ノードは、受信ノードがパケットを正しく受信したことを示すために、確認応答(ACK)パケットを送信ノードに返す。任意で、ステップ501の後、送信ノードは、後続のパケット損失検出のために、送信されたパケットの最大シーケンス番号をさらに記録してよい。
ステップ503:第1のパケットが失われたと判定した後、送信ノードは、失われた第1のパケットを直ちに再送信し、ここで、再送信された第1のパケット(すなわち、FR 3)はまた、再送信されたパケットと呼ばれる。
一般に、送信ノードによって送信される複数のパケットにおける一部のパケットは、ネットワーク状態等の理由により受信ノードに到達することはできず、それによって失われる。送信ノードは、受信ノードによって返される確認応答パケットに従って、パケットが失われたかどうかを判定してよい。例えば、送信ノードは、受信された確認応答パケットに基づいて、複数のパケットにおける第1のパケット(例えば、図5に示されるパケット3)が失われたと判定する。
具体的には、送信ノードは、複数の方式で、第1のパケットが失われたと判定してよい。図4に示される高速再送信メカニズムを例として使用すると、送信ノードが、そのack値が同じである少なくともN(一般に、Nは3と等しい)個の確認応答パケットを受信する場合、送信ノードは、そのシーケンス番号が同じack値に1を加えた値である第1のパケットが失われたと判定する。図5に示されるように、送信ノードは、そのackフィールド値が2である3つの確認応答パケットを受信する場合、送信ノードは、そのシーケンス番号が3であるパケットが失われたと判定する。別の例については、別の実施形態では、確認応答パケット内でSACKフィールドが拡張され、受信バッファのパケット情報を示すために使用され、ここで、受信バッファは、受信されたパケットを一時的に記憶するために使用され、SACKフィールドの値は、sack値として定義される。例えば、sack値は、受信ノードによって受信されたパケットのシーケンス番号であってよい。このようにして、送信ノードは、受信ノードによって返される確認応答パケットのsack値に従って、受信ノードによって受信されるパケットと、受信ノードによって受信されないパケットを学習して、失われたパケットが存在するかどうかをさらに判定してよい。
任意で、ステップ503では、送信ノードは、第1のパケットのタイムアウトタイマが満了した後に失われた第1のパケットを再送信してよい。
ステップ505:再送信された第1のパケットが失われたと検出した後、送信ノードは、第1のパケットを、2回以上直ちに連続的に送信する。本発明の本実施形態で記載される「直ちに」は、事前に設定された時間間隔内を指す。すなわち、ステップ505では、送信ノードは、送信ノードが再送信されたパケットが失われたと検出した後、失われた第1のパケットを、事前に設定された時間間隔内で、2回以上連続的に送信する。本明細書における事前に設定された時間間隔は、0以上であるべきであり、第1のパケットのタイムアウトタイマの周期未満であるか、またはそれよりもはるかに小さくなければいけない。例えば、第1のパケットに対応するタイムアウトタイマの周期がTである場合、事前に設定された時間間隔はT未満であるべきであり、またはT/2未満であり、または、T/4よりもはるかに小さくなければいけない。好ましくは、事前に設定された時間間隔は、送信ノードが再送信された第1のパケットが失われたと検出する瞬間を開始ポイントとして使用し、事前に設定された時間間隔は0と等しいか、または0に近い。事前に設定された時間間隔が0と等しい場合、再送信されたパケットが失われたと検出する動作および第1のパケットを送信する動作は、同時に、またはほぼ同時に完了することを示す。加えて、第1のパケットを連続的に2回送信する間隔(以下、第1の時間間隔と呼ばれる)、すなわち、図5におけるtはまた、0以上であるべきであり、且つ、第1のパケットのタイムアウトタイマの周期未満であるか、または、それよりはるかに小さくなければいけない。さらに、送信ノードは、再び再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを、第1の時間間隔(t)内で受信していない。すなわち、送信ノードが再び再送信される第1のパケットが失われたことを示すために使用される確認応答パケットを受信していないとき(再び再送信された第1のパケットが失われたかどうか判定することはできない)、送信ノードは、第1のパケットを、第1の時間間隔(t)内で冗長的に送信する。
タイムアウトタイマが、TCPタイムアウト再送信のために使用されること、すなわち、パケットを送信したときまたはその後に、送信ノードがタイムアウトタイマを有効にすることは留意されるべきである。タイムアウトタイマのタイミング周期はTである。パケットに対応する確認応答パケットが、タイムアウトタイマの1つのタイミング周期が終了するときに未だ受信されない場合、送信ノードは、パケットが失われたと判定して、タイムアウト再送信を実行する。一般に、プロトコルスタックは、各パケットのために同じタイムアウトタイマ周期を設定し、すなわち、各パケットは、同じタイムアウトタイマ周期を有する。具体的には、実施形態では、ステップ505は以下を含む:
STEP1:送信ノードは、第1のパケットが再送信された後に受信される確認応答パケットに従って、再送信された第1のパケット(すなわち、ステップ503における再送信された第1のパケットFR3)が失われたと判定する。例えば、送信ノードによって記録される現在送信されているパケットの最大シーケンス番号は8である。送信ノードが、そのsack値が8よりも大きい確認応答パケットを受信するとき、例えば、そのsack値が9である確認応答パケットを受信するとき、送信ノードは、再送信されたパケットが失われたと判定してよい。sackは、確認応答パケットの拡張フィールド(SACK)内で搬送され、受信ノードによって受信されるパケットのシーケンス番号を示すために使用される。送信ノードが、別の方式では、再送信されたパケットが失われたかどうかをさらに検出し得ることは理解され得る。
STEP2:第1のパケットを再び直ちに再送信する。ここでの「直ちに」は、送信ノードが再送信されたパケットが失われたと判定した後の事前に設定された時間間隔内を指す。事前に設定された時間間隔は、送信ノードが再送信された第1のパケットが失われたと検出した瞬間を開始ポイントとして使用する。事前に設定された時間間隔は、0以上であるべきであり、且つ、第1のパケットのタイムアウトタイマの周期未満であるか、または、それよりもはるかに小さくなければいけない。好ましくは、事前に設定された時間間隔は0と等しいか、または0に近い。事前に設定された時間間隔が0と等しい場合、送信ノードによる、再送信されたパケットが失われたと検出する動作および第1のパケットを再び再送信する動作は、同時に、またはほぼ同時に完了することを示す。
STEP3:第1のパケットを再び再送信した後、送信ノードは、第1のパケットを、第1の時間間隔(t)内で少なくとも1回送信する。本明細書における第1の時間間隔(t)は、0以上であるべきであり、且つ、第1のパケットのタイムアウトタイマの周期未満であるか、または、それよりもはるかに小さくなければいけない。例えば、送信ノードのタイムアウトタイマのタイミング周期がTである場合、t≦T、またはt≦T/2、またはt≦T/4である。好ましくは、第1の時間間隔は、第1のパケットを再び再送信する瞬間を開始ポイントとして使用する。第1の時間間隔が0と等しい場合、STEP2およびSTEP3における第1のパケットを送信する動作は、同時に、またはほぼ同時に完了することを示す。加えて、送信ノードは、再び再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを、第1の時間間隔内で受信していない。すなわち、送信ノードが再び再送信される第1のパケットが失われたことを示すために使用される確認応答パケットを受信していないとき(再び再送信された第1のパケットが失われたかどうか判定することはできない)、送信ノードは、第1のパケットを冗長的に送信する。
さらに、実施形態では、STEP2における第1のパケットを再送信する動作およびSTEP3における第1のパケットを送信する動作は連続しており、送信ノードは、STEP2における第1のパケットを再送信する動作と、STEP3における第1のパケットを送信する動作との間の時間間隔t内で、別のパケットを送信していない。例えば、STEP2で再送信される第1のパケットのシーケンス番号がNである場合、STEP3において送信されるパケットのシーケンス番号はN+1である。
任意で、ステップ505の後、方法は以下をさらに含む:
ステップ507:送信ノードは、後続のパケットを送信し続ける。
具体的には、ステップ507は、
パケットが送信されることを現在許可されている場合、送信ノードによって、少なくとも1つの新しいパケットをさらに送信することを含む。新しいパケットは、送信ノードによって以前に送信されていないパケットを指す。実施形態では、送信ノードは、現在の送信バッファおよび/または輻輳制御ポリシーに従って、新しいパケットが送信されることを許可されるかどうかを判定してよい。例えば、送信バッファが、第1の時間間隔内で空でない場合、送信ノードは、送信バッファに少なくとも1つのパケットを、第1の時間間隔内で送信する。
上述の実施形態では、再送信されたパケットが失われたと検出した後、送信ノードは、第1のパケットを、非常に時間間隔で、2回以上繰返し送信する。このようにして、送信ノードは、確認応答パケットを連続して受信してよく、その結果、再送信されたパケットは、失われた後、時間内に検出および回復されることができ、それによって、タイムアウト再送信の回数を低減し、送信遅延を低減し、送信レートを改善する。加えて、再送信されたパケットが再び失われた場合、タイムアウト再送信がトリガされてよい。しかしながら、再送信されたパケットが短い時間内に複数回高速に再送信される場合、再送信されたパケットが失われる確率は指数関数的に低減され、それによって、タイムアウト再送信の確率をさらに低減する。
前述の実施形態に基づき、本発明は、別のパケット送信方法をさらに提供する。図6に示されるように、方法は以下のステップを含む:
ステップ601:送信ノードは、送信ノードと受信ノードとの間の通信リンクを使用することによって、複数のパケット(例えば、図6におけるパケット1乃至8)を、受信ノードに送信する。パケットはTCPパケットである。各パケットのヘッダのシーケンス番号フィールド(Sequence Number, 一般に、略してseq)は、パケットのペイロードにおける第1のデータバイトのシーケンス番号を搬送する。任意で、ステップ601の後、送信ノードは、後続のパケット損失検出のために送信されたパケットの最大シーケンス番号をさらに記録してよい。
ステップ603:第1のパケット(例えば、図6におけるパケット3)が失われたと判定した後、送信ノードは、失われた第1のパケットを直ちに再送信し、ここで、再送信された第1のパケット(すなわち、FR 3)はまた、再送信されたパケットと呼ばれる。
具体的には、ステップ603において、送信ノードは、受信ノードから確認応答パケットを受信し、受信された確認応答パケットに基づいて、複数のパケットにおける第1のパケット(例えば、図6におけるパケット3)が失われたと判定する。送信ノードによって、確認応答パケットに従って、第1のパケットが失われたと判定する具体的な方法については、ステップ503の関連する説明を参照されたい。本発明の別の実施形態では、第1のパケットは、タイムアウトタイマが事前に設定された時間間隔を超過した後に1回または複数回再送信されてよい。ステップ603における「直ちに」は、第1のパケットが失われたと判定された後の事前に設定された時間間隔内を指す。事前に設定された時間間隔は、0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であるか、またはそれよりもはるかに小さい。好ましくは、事前に設定された時間間隔は、再送信された第1のパケットが失われたと検出する瞬間を開始ポイントとして使用し、事前に設定された時間間隔は0と等しいか、または0に近い。
ステップ605:送信ノードは、第1のパケットが再送信された後に受信される確認応答パケットに従って、再送信されたパケット(すなわち、ステップ602における再送信された第1のパケットFR3)が失われたと判定し、第1のパケットを、再び直ちに再送信する。送信ノードによって、再送信されたパケットが失われたと判定する具体的な方法については、図5におけるSTEP1の関連する説明を参照されたい。さらに、ステップ605における「直ちに」の関連する意味および説明は、ステップ505において説明されるものと同様であり、詳細はここでは再び説明されない。
ステップ607:送信ノードは、送信バッファが空であるかどうかを判定し、送信バッファが空である場合、送信ノードは、第1のパケットを再び再送信した後の第1の時間間隔内で、第1のパケットを少なくとも1回送信する。第1の時間間隔の定義については、図5に示される実施形態を参照されたい。さらに、別の実施形態では、ステップ607における第1の時間間隔は、第1のパケットを再び再送信する瞬間を開始ポイントとして使用し、第1のパケットが再び再送信された後に第1の確認応答パケットを受信する瞬間を終了ポイントとして使用してよい。このようにして、第1のパケットを再び再送信した後、送信ノードは、再び再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信する前に第1のパケットを再び実際に送信する。
ステップ607における送信バッファが、アプリケーションの送信されるべきデータ、すなわち、送信ノードによって送信されていないデータをバッファするように構成されることは留意されるべきである。送信バッファ内のパケットは、特定の時間に送信キューに挿入され、送信キューから送信される。送信キューは、送信ノードによって送信されていないパケットを含んでよく、再送信されたパケットもまた、送信キューに挿入されてよい。
さらに、図6に示されるように、実施形態では、ステップ607は、送信バッファが空でない場合、第1のパケットを再び再送信した後、送信ノードによって、送信バッファ内の第2のパケット(例えば、図6におけるパケット11)を、第1の時間間隔(図6におけるt)内で送信することをさらに含む。第2のパケットは新しいパケットであり、すなわち、送信ノードが第1のパケットを再び再送信する前に送信されていないパケットであることは理解され得る。
別の実施形態では、前述のステップ605および607は、事前に設定された時間間隔内に完了し、すなわち、第1のパケットを再び再送信し、送信バッファが空であるかどうかを判定し、第1のパケットを冗長的に送信するか、または、第2のパケットを送信する動作は、事前に設定された時間間隔内に完了する。事前に設定された時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であるか、またはそれよりもはるかに小さい。加えて、送信ノードは、事前に設定された時間間隔内で、再び再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない。すなわち、送信ノードが、再び再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない(再び再送信された第1のパケットが失われたかどうかを判定することはできない)とき、送信ノードは、第1のパケットを冗長的に送信する。
さらに、実施形態では、送信ノードは、パケットを受信ノードに送信するプロセスにおいて状態情報を収集してよい。従って、第1のパケットを再送信した後、送信ノードは、収集された状態情報に従って、送信ノードが、第1のパケットを再送信した後に新しいパケットを直ちに送信することができるかどうかを計算することができる。状態情報は、送信ノードの送信バッファのサイズ、送信ノードの輻輳ウィンドウのサイズ、送信ノードの輻輳制御ポリシーまたは受信ノードの受信ウィンドウのサイズといった情報のうち少なくとも1つを含むが、それらに限定はされない。対応して、ステップ607では、送信ノードの送信バッファが空でなく、送信ノードの輻輳制御ポリシーが、新しいパケットの送信を許可する場合、送信ノードは、新しいパケットが送信されることを現在許可されていると判定し、第1のパケットを再び再送信した後に、新しいパケットを第1の時間間隔内でさらに送信する。あるいは、送信ノードの送信バッファが空でなく、且つ、送信ノードの輻輳制御ポリシーが新しいパケットの送信を許可しない場合、送信ノードは、新しいパケットが送信されることを現在許可されることができると依然として判定し、第1のパケットを再び再送信した後に、新しいパケットを第1の時間間隔(t)内で送信する。すなわち、ステップ607では、送信ノードは、送信バッファのみに従って、新しいパケットを第1の時間間隔内で送信するかどうかを判定するが、輻輳制御ポリシーの制限を無視する。輻輳制御ポリシーを無視する具体的な方法は、送信ノードが失われたパケットを再び再送信した後、送信バッファが空でない場合、送信ノードによって、輻輳ウィンドウを一時的に増加させて、第1の時間間隔において、輻輳制御ポリシーの制限を回避し、新しいパケットを迅速に送信することを含む。さらに、新しいパケットを送信した後、送信ノードは、輻輳ウィンドウを回復する。
本発明の本実施形態におけるパケット送信方法と、図5に示される方法との間の差は、本発明の本実施形態では、送信ノードは、再送信されたパケットが失われたと検出した後、失われた第1のパケットを、第1の時間間隔内で、2回以上毎回、繰返し送信しないが、新しいパケットが現在送信されることができるかどうかをさらに判定し、それができる場合、少なくとも1つの新しいパケットを第1の時間間隔内で送信する。図5に示される方法と比較すると、本発明の本実施形態における方法を使用することによって、再送信されたパケットの損失の確率が低減されるとき、パケットの冗長的な送信は低減され、ネットワーク送信効率が改善される。
図6に示される方法に基づいて、本発明の実施形態は、別のパケット送信方法をさらに提供する。図7に示されるように、方法は以下のステップを含む:
ステップ701:送信ノードは、送信ノードと受信ノードとの間の通信リンクを使用することによって、複数のパケット(例えば、図7におけるパケット1乃至8)を、受信ノードに送信する。
ステップ703:第1のパケット(例えば、図7におけるパケット3)が失われたと判定した後、送信ノードは、失われた第1のパケットを直ちに再送信し、ここで、再送信された第1のパケット(すなわち、FR 3)はまた、再送信されたパケットと呼ばれる。ここでの「直ちに」は、0に近い時間間隔内を指す。詳細については、図5および図6に示される実施形態における関連する説明を参照されたい。
ステップ705:送信ノードは、第1のパケットが再送信された後に受信される確認応答パケットに従って、再送信されたパケット(すなわち、ステップ602における再送信された第1のパケットFR3)が失われたと判定し、第1のパケットを再び直ちに再送信する。送信ノードによって、再送信されたパケットが失われたと判定する具体的な方法については、図5におけるSTEP1の関連する説明を参照されたい。加えて、ステップ705における「直ちに」の関連する意味および説明は、ステップ505およびステップ605において説明されるものと同様であり、詳細はここでは再び説明されない。
ステップ707:送信バッファが空であるかどうか、および、輻輳制御ポリシーが新しいパケットの送信を許可するかどうかを判定し、送信バッファが空であるか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可しない場合、送信ノードは、第1のパケットを、第1の時間間隔(例えば、図7におけるt)内に、少なくとも1回送信し、そうでなければ、送信バッファが空でなく、且つ、現在の輻輳制御ポリシーが新しいパケットの送信を許可する場合、送信ノードは、第1の時間間隔内で、少なくとも1つの新しいパケットを送信する。第1の時間間隔の定義については、図5に示される方法の実施形態を参照されたく、詳細は再び説明されない。
さらに、図7に示されるように、ステップ707の後、パケット送信方法は以下をさらに含む:
ステップ709:送信ノードは、送信バッファが空であるかどうかを判定し、送信バッファが空である場合、返すか待機し、または、送信バッファが空でない場合、現在の輻輳制御ポリシーが新しいパケットの送信を許可するかどうかを判定し、現在の輻輳制御ポリシーが新しいパケットの送信を許可しない場合、返すか待機し、または現在の輻輳制御ポリシーが新しいパケットの送信を許可する場合、新しいパケットを送信する。
図6に示される方法と比較すると、図7に示される方法では、新しいパケットを送信すべきかどうか判定されるときに、送信バッファと輻輳制御ポリシーの両方が考慮され、新しいパケットが送信されないため、輻輳制御ポリシーは適合する。
本発明の実施形態における別のパケット送信方法は、特定の適用シナリオ(ネットワークビデオ監視シナリオ)に基づいて、以下で説明される。図8に示されるように、ユーザ機器を使用することによって、ユーザが、遠隔ネットワークカメラによって撮られたビデオを視聴していると仮定する。ネットワークカメラのチップは、軽量化TCP/IPプロトコルスタックを組み込む。プロトコルスタックは、本特許発明の本実施形態におけるパケット送信方法を実施する。リンクのパケット損失レートは5%であると仮定する。TCPパケット送信プロセスでは、そのシーケンス番号が3であるパケット3が失われたと仮定する。本発明の本実施形態におけるパケット損失方法は、図9に示される。
ステップ1001:パケット3が失われたと検出した後、ネットワークカメラはパケット3を再送信し、現在送信されているパケットの最大シーケンス番号が8であることを記録する。
ステップ1002:送信バッファが空でなく、且つ、輻輳制御ポリシーが新しいパケットの送信を許可する場合、送信ノードは、新しいパケットを送信し続ける。
ステップ1003:パケット3が再送信された後の第3の反復ACKが受信され、累積確認応答のシーケンス番号は未だ2であるとともに更新されず、そのシーケンス番号が9であるパケットが確認応答されているとき、ネットワークカメラは、再送信されたパケットが失われたと判定する。
ステップ1004:パケット3を再び直ちに再送信して、現在送信されているパケットの最大シーケンス番号が10であることを記録する。
ステップ1005:送信バッファおよび輻輳制御ポリシーに従って、新しいパケットが現在送信され続けるかどうかを判定する。
ステップ1006:送信バッファは空でないが、現在の輻輳制御ポリシーが新しいパケットの送信を許可しない場合、少なくとも1つの新しいパケットを直ちに送信し、または、送信バッファが空である場合、パケット3を少なくとも1回直ちに送信する。本発明の本実施形態で説明される「直ちに」は、事前に設定された時間間隔内を指す。すなわち、送信ノードは、パケット3を再び再送信した後、失われたパケット3を少なくとも1回冗長的に送信するか、または、事前に設定された時間間隔内に、新しいパケットを冗長的に送信する。ここでの事前に設定された時間間隔は、0以上であるべきであり、且つ、パケット3のタイムアウトタイマの周期未満であるか、それよりはるかに小さくなければいけない。例えば、パケット3に対応するタイムアウトタイマの周期がTである場合、事前に設定された時間間隔は、T未満であるか、または、T/2未満であるか、または、さらにT/4未満でなければいけない。好ましくは、事前に設定された時間間隔は、パケット3を再び再送信する瞬間を開始ポイントとして使用し、ネットワークカメラは、再び再送信されたパケット3が失われたと示すために使用される確認応答パケットは事前に設定された時間間隔内に受信されていないことを検出する。
本発明の本実施形態における方法では、パケットが失われたと検出した後、ネットワークカメラはパケットを再送信し、新しいパケットが現在送信されることができるかどうかを判定する。新しいパケットが送信されることができない場合、送信ノードは、事前に設定された時間間隔内で、失われたパケットを冗長的に送信する。このようにして、パケット損失の確率は低減されることができ、データ送信効率は改善されることができる。
異なるパケット損失レートの異なるネットワーク環境において取得される本発明の本実施形態の実験結果が、表1および表2に示される。表1によると、本発明の本実施形態におけるパケット送信方法を使用することによって、200 MBデータを送信するシナリオでは、パケット損失の回数は、DAC方法を使用することによって得られるものより2〜5倍少ない。表2に示されるように、本発明の方法が使用されるとき、スループットは、DAC方法を使用することによって得られるスループットよりも少なくとも2倍高い。高いパケット損失レートのシナリオでは、スループットは、Linux(登録商標)のネイティブプロトコルスタックのスループットを超える。
図5乃至図7において説明される方法の実施形態は、再送信されたパケットが失われたことが検出された後のパケット送信メカニズムである。本発明の任意の実施形態においては、初めて、パケット(例えば、第1のパケット)が失われたことが検出された後に、第1のパケットは、第1の時間間隔内で、複数回連続的に再送信され得ることは理解され得る。別の実施形態では、送信ノードが、初めて、第1のパケットが失われたことを検出した後、現在の送信バッファが空でない場合、送信ノードは、第1のパケットおよび少なくとも1つの新しいパケットを、第1の時間間隔内で、連続的に送信し、そうでなければ、送信ノードは、第1のパケットを、第1の時間間隔内で、少なくとも2回連続的に送信する。別の実施形態では、送信ノードが、初めて、第1のパケットが失われたことを検出した後、現在の送信バッファが空であるか、または現在の輻輳制御ポリシーが新しいパケットの送信を許可しない場合、送信ノードは、第1のパケットを、第1の時間間隔内で、少なくとも1回連続的に送信し、そうでなければ、第1のパケットおよび少なくとも1つの新しいパケットを連続的に送信する。
見て分かるように、本発明の図5乃至図7において説明される冗長的なパケット送信メカニズムは、再送信されたパケットが失われたと検出された後にトリガされることに限定されない。加えて、パケットが失われたことが検出されたときに初めて、パケットが冗長的に送信され得る。
前述の方法の実施形態に基づいて、本発明はユーザ機器をさらに提供して、前述の方法の実施形態における送信ノードの機能を実施する。具体的には、図2を参照すると、ユーザ機器110は、プロセッサ120、TCPプロトコルスタック130、アンテナ142、無線モデム140およびメモリ150を含む。無線モデム140は、アンテナ142に接続されている。TCPプロトコルスタック130は、プロセッサ120の制御の下で、TCP/IPプロトコル仕様に従って、特定のデータフォーマットの複数のパケットにアプリケーションプログラムのデータをカプセル化し、複数のパケットを無線モデム140に送信するように構成される。無線モデム140は、受信されたパケットをアナログ信号に変調し、アンテナを使用することによって、アナログ信号を送信するように構成される。アプリケーションプログラムサーバ20は、無線ネットワークを使用することによって、ユーザ機器110によって送信されたアナログ信号を受信し、アナログ信号をデジタル信号に復調し、アプリケーションプログラムサーバ20のTCPプロトコルスタック21にデジタル信号を送信してよい。TCPプロトコルスタック21は、デジタル信号にデカプセル化して、最終的に、アプリケーションプログラムのデータを取得するように構成される。ユーザ機器110およびアプリケーションプログラムサーバ20のTCPプロトコルスタックは、物理レイヤ、リンクレイヤ、ネットワークレイヤ、送信レイヤおよびアプリケーションレイヤを含む。TCPプロトコルスタックがパケットをカプセル化およびデカプセル化するプロセスは、図10に示される。見て分かるように、パケットのカプセル化プロセスは、実際には、TCPプロトコルスタックによって、ヘッダおよび/またはフレームトレーラをパケットに追加するプロセスであり、パケットのデカプセル化プロセスは、実際には、ヘッダおよび/またはフレームトレーラをパケットから削除するプロセスである。
さらに、ユーザ機器110によって送信されたパケットを受信した後、アプリケーションプログラムサーバ20は、確認応答パケットを返して、パケットが受信されたことを示す。TCPプロトコルスタック130は、プロセッサ120の制御の下で、アプリケーションプログラムサーバから受信された確認応答パケットに従って、第1のパケットが失われたと判定し、第1のパケットを、事前に設定された時間間隔内で、少なくとも2回連続的に再送信するようにさらに構成される。
好ましくは、別の実施形態では、TCPプロトコルスタック130は、プロセッサ120の制御の下で、図5、図6または図7における一部または全てのステップを実行するようにさらに構成される。
TCPプロトコルスタック130は、ユーザ機器110上のソフトウェア、ハードウェアおよび/またはファームウェアの適切な組合せによって実行されてよいことは留意されるべきである。例えば、実施形態では、TCPプロトコルスタック130は、実行可能なプログラムコードの形態でメモリ150内に記憶される。プロセッサ120は、TCPプロトコルスタック130に対応するプログラムコードを実行して、図5、図6または図7に記載される一部または全てのステップを実行する。具体的には、図12に示されるように、ユーザ機器100は、論理階層に従って、チップ/ハードウェアプラットフォーム、チップ/ハードウェアプラットフォーム上のカーネル、ミドルウェアおよびミドルウェア上で動作するアプリケーションプログラムに分割される。カーネル、ミドルウェアおよびアプリケーションプログラムは全て、実行可能なコードの方式で、ユーザ機器110のメモリ150内に記憶される。プロセッサは、コードを特定の命令に解析し、命令を実行して、対応する機能を完了する。実行チップは、汎用プロセッサ、マイクロプロセッサ、グラフィックス処理ユニットまたはベースバンドプロセッサのうちの少なくとも1つを含む。ハードウェアプラットフォームは、チップ、メモリ、通信インタフェース等を含む。カーネルは、具体的には、チップドライバ、周辺ドライバ(例えば、通信インタフェースおよびセンサドライバ)、ハードウェア適応レイヤおよび基礎カーネルを含む。基礎カーネルは、メモリ管理、中断管理、プロセス管理およびファイルシステム等の機能を提供する。プロセッサは、カーネルに対応する実行可能なコードを実行して、特定の機能、例えば、データの読出しおよび書込みおよび制御命令の生成を実施するようにハードウェアリソースをスケジューリングする。
さらに、ミドルウェアは、カーネルと上位レイヤアプリケーションプログラムとの間のジョイントポイントとして、複数のタイプのプロトコルスタックを含んでよく、その結果、ユーザ機器は、異なるタイプのプロトコルをサポートする。例えば、ミドルウェアは、前述の実施形態で説明されるTCPプロトコルスタックを含んでよい。ミドルウェアは、アプリケーションプログラミングインタフェース(API)および異なるタイプのサービスコンポーネントをさらに含む。サービスコンポーネントは、特定のアプリケーションまたはサービス用に開発され、アプリケーションまたはサービスのためにいくつかの拡張機能を提供する。図8に示される適用シナリオについては、サービスコンポーネントは、ビデオ最適化機能および/またはビデオ符号化および復号機能を提供するように構成される、ビデオコンポーネントを含んでよく、それによって、ビデオ監視アプリケーションの動作をサポートする。APIは、メッセージを転送するために、上位レイヤアプリケーションプログラム、ミドルウェアおよびカーネル間のインターワーキングのために構成される。任意で、ミドルウェアは、デバイスの認証および許可を実施するように構成される、セキュリティコンポーネントをさらに含む。
具体的には、アプリケーションプログラム(例えば、APP 1)がプロセッサによって実行されるプロセスでは、APIは、データパケットをネットワークプロトコルスタック(例えば、TCPプロトコルスタック)に転送するために呼び出されてよい。パケットを感知した後、TCPプロトコルスタックは、システム関数を使用することによって、カーネル内のハードウェアドライバを呼び出して、関連ハードウェア、例えば、無線モデム140およびアンテナ142を駆動して、パケットを送信、受信および処理する。加えて、データパケット損失検出およびパケット再送信はまた、TCPプロトコルスタックを実行することによって、プロセッサによって実施される。TCPプロトコルスタックによるパケット損失検出およびパケット送信の具体的な実施の詳細については、前述の実施形態を参照されたく、詳細は、ここでは再び説明されない。
別の実施形態では、TCPプロトコルスタック130は、フィールドプログラマブルゲートアレイ(Field Programmable Gata Array, FPGA)または特定用途向け集積回路(Application Specific Integrated Circuit, ASIC)等のハードウェア回路または専用チップによって実施されてよい。この場合、プロセッサ120およびTCPプロトコルスタックを実施するように構成されるTCPハードウェア回路または特定用途向けチップは、バスを使用することによって接続される。プロセッサは、メモリ150内のアプリケーションプログラムを実行し、TCPプロトコルスタックを実施するように構成されるTCPハードウェア回路または専用チップを呼び出し、それによって、アプリケーションプログラムを実行するプロセスで生成されたデータを送信および処理する。具体的には、プロセッサ120は、アプリケーションプログラムに対応するコードをマシン命令に復号し、マシン命令を1つずつ実行し、命令を実行するプロセスで、対応するプログラムを使用することによって、TCPハードウェア回路または専用チップを呼び出して、パケットを送受信する。対応して、プロセッサ120の呼出しの下で、TCPハードウェア回路または専用チップは、本発明の方法の実施形態で説明されるステップまたは機能を完了するために別のハードウェアと協調する。加えて、TCPプロトコルスタックのTCPハードウェア回路または特定用途向けチップによって前述の方法のステップを実行する関連する詳細については、前述の方法の実施形態を参照されたく、詳細はここでは再び説明されない。
図11に示されるように、本発明の実施形態は、処理回路302、および、処理回路302に接続されている通信インタフェース304および記憶媒体320を含む別のユーザ機器300をさらに提供する。
処理回路302は、データを処理および/または送信し、データアクセスおよび記憶を制御し、コマンドを与え、操作を実行するように別のデバイスを制御するように構成される。処理回路302は、1つまたは複数のプロセッサ、1つまたは複数のコントローラおよび/またはプログラム等を実行するように構成され得る別の構造として実施されてよい。処理回路302は、具体的には、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または別のプログラマブル論理コンポーネントを含んでよい。汎用プロセッサは、マイクロプロセッサおよび任意の通常のプロセッサ、コントローラ、マイクロコントローラまたは状態マシンを含んでよい。処理回路302は、コンピューティングコンポーネント、例えば、DSPおよびマイクロプロセッサの組合せとして実施されてよい。
記憶媒体306は、磁気記憶デバイス(例えば、ハードディスク、フロッピーディスクまたは磁気ストライプ)、光記憶媒体(例えば、デジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、レジスタまたはそれらの任意の組合せ等のコンピュータ可読記憶媒体を含んでよい。記憶媒体306は、処理回路302に結合されてよく、その結果、処理回路302は、情報を読み出し、情報を記憶媒体306に書き込むことができる。具体的には、記憶媒体306は、処理回路302に統合されてよく、または、記憶媒体306および処理回路302は分離されてよい。
処理回路302は、記憶媒体306に記憶されているプログラムを実行するように適合される。本発明の本実施形態で使用される「プログラム」という用語は、命令、命令セット、コード、コードセグメント、サブルーチン、ソフトウェアモジュール、アプリケーション、ソフトウェアパッケージ、スレッド、プロセス、関数、ファームウェア、ミドルウェア等を含むがそれらに限定はされないものとして広く理解されるべきである。
通信インタフェース304は、ユーザ機器300と1つまたは複数の無線ネットワークデバイス(例えば、ネットワークノード)間の双方向通信を実施する回路および/またはプログラムを含み得る。通信インタフェース304は、1つまたは複数のアンテナ(図11には示されない)に結合されてよく、少なくとも1つの受信回路316および/または少なくとも1つの送信回路318を含んでよい。実施形態では、通信インタフェース304は、全体的にまたは部分的に無線モデムによって実施されてよい。
実施形態では、記憶媒体306は、プロトコルスタックプロトコル320を記憶する。処理回路302は、プロトコルスタックプロトコル320を実行して、プロトコルスタックモジュール308の機能を実施する。プロトコルスタックモジュール308は、通信インタフェース304によって受信されるデータに対して復号および/またはデカプセル化処理を実行して、上位レイヤアプリケーションプログラムにデータを転送してよく、または、アプリケーションプログラムのデータに対してカプセル化処理を実行して、次いで、通信インタフェースを使用することによって、データを別のデバイスに送信してよい。プロトコルスタックモジュール308の具体的な動作プロセスについては、前述の実施形態および図11における関連する説明におけるTCPプロトコルスタック130および21を参照されたい。
実施形態では、プロトコルスタックモジュール308は、レイヤのプロトコルを実施するために、物理レイヤモジュール、データリンクレイヤモジュール、ネットワークレイヤモジュール、送信レイヤモジュールおよびアプリケーションレイヤモジュールを含んでよい。例えば、物理レイヤモジュールは、物理デバイスインタフェース特性、送信媒体タイプ、送信レート、送信モード等を定義し、且つ、物理レイヤの信号処理を実施するように構成される、回路および/またはプログラムを含んでよい。同様に、データリンクレイヤモジュールは、例えば、ネットワークレイヤによって生成されるシグナリングを配信し、物理レイヤによって生成される情報を処理することを担う、データリンクレイヤの機能を実施するように構成される、回路および/またはプログラムを含んでよい。データリンクレイヤモジュールは、例えば、MACレイヤ、RLCレイヤおよびLLCレイヤの機能を実施するようにそれぞれ構成される、メディアアクセス制御(Media Access Control, MAC)レイヤモジュール、無線リンク制御(RLC)レイヤモジュールおよび論理リンク制御(LLC)レイヤモジュール等の1つまたは複数のサブモジュールを含んでよい。例えば、MACレイヤモジュールは、物理レイヤによって提供されるサービスを使用することによって、上位レイヤプロトコルデータを送信し、上位レイヤとエアインタフェースとの間のデータアクセスを管理するように構成される。RLCレイヤモジュールは、データセグメンテーションと再アセンブリのために構成される。LLCレイヤモジュールは、トラフィックおよびシーケンス制御機能およびエラー制御機能を提供するように構成される。さらに、ネットワークレイヤモジュールは、ネットワークレイヤの機能、例えば、論理アドレッシングおよびルーティングを実施する、回路および/またはプログラムを含んでよい。送信レイヤモジュールは、例えば、ポートアドレッシング、セグメンテーションおよび再アセンブリ、接続制御、トラフィック制御およびエラー制御等の送信レイヤの機能を実施するように構成される、回路および/またはプログラムを含んでよい。アプリケーションレイヤモジュールは、上位レイヤアプリケーションプログラムにインタフェースを提供するように構成される、回路および/またはプログラムを含んでよい。
本発明の本実施形態の1つまたは複数の態様によると、処理回路302は、記憶媒体306に記憶されるプロトコルスタックプロトコル320を実行するように適合され、それによって、プロトコルスタックモジュール308の機能を実施する。プロトコルスタックモジュール308は、具体的には、前述の方法の実施形態における一部または全てのステップを実施する。
図13に示されるように、本発明の実施形態は、ユーザ機器13をさらに提供し、前述の方法の実施形態における送信ノードの機能を実施する。ユーザ機器13は、受信ユニット131、送信ユニット133および処理ユニット132を含む。
送信ユニット133は、ユーザ機器13と通信接続している受信ノード14に複数のパケットを送信するように構成される。
受信ユニット131は、受信ノード14から確認応答パケットを受信するように構成される。
実施形態では、処理ユニット132は、受信ユニット131によって受信された確認応答パケットに従って、複数のパケットにおける第1のパケットが失われたと判定し、第1のパケットを受信ノード14に再送信するように、送信ユニット133をトリガするように構成される。さらに、処理ユニット132は、第1のパケットが再送信された後に受信ユニット131によって受信された確認応答パケットに従って、再送信されたパケットが失われたと判定し、第1のパケットを、第1の時間間隔内で少なくとも2回連続的に送信するように、送信ユニット133を直ちにトリガするようにさらに構成され、ここで、再送信されたパケットは、再送信された第1のパケットである。「直ちに」と「第1の時間間隔」の詳細な定義については、前述の方法の実施形態を参照されたい。
別の実施形態では、処理ユニット132は、受信ノード131によって受信された確認応答パケットに従って、複数のパケットにおける第1のパケットが失われたと判定し、第1のパケットを受信ノード14に再送信するように、送信ユニット133をトリガするように構成される。さらに、処理ユニット132は、第1のパケットが再送信された後に受信ノード131によって受信された確認応答パケットに従って、再送信されたパケットが失われたと判定し、第1のパケットを再び再送信するように送信ユニット133をトリガし、送信バッファが空であるかどうかを判定し、送信バッファが空でない場合、送信バッファ内の少なくとも1つのパケットを、第1の時間間隔内で送信するようにさらに構成され、ここで、送信バッファ内のパケットは、送信ユニットによって送信されていないパケットである。さらに、処理ユニット132は、送信バッファが空である場合、第1のパケットを、第1の時間間隔内で少なくとも1回送信するように送信ユニット133をトリガするようにさらに構成される。「第1の時間間隔」の詳細な定義については、前述の方法の実施形態を参照されたい。
別の実施形態では、処理ユニット132は、受信ユニット131によって受信された確認応答パケットに従って、複数のパケットにおける第1のパケットが失われたと判定し、第1のパケットを受信ノード14に再送信するように、送信ユニット133をトリガするように構成される。さらに、処理ユニット132は、第1のパケットが再送信された後に受信ユニット131によって受信された確認応答パケットに従って、再送信されたパケットが失われたと判定し、第1のパケットを再び再送信するように、送信ユニット133をトリガし、送信バッファが空であるかどうか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可するかどうかを判定し、送信バッファが空であるか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可しない場合、第1のパケットを、第1の時間間隔内で少なくとも1回送信するようにさらに構成される。さらに、処理ユニット132は、送信バッファが空でなく、且つ、現在の輻輳制御ポリシーが新しいパケットの送信を許可する場合、送信バッファ内の少なくとも1つのパケットを、第1の時間間隔内で送信するようにさらに構成され、ここで、送信バッファ内のパケットは、送信ユニットによって送信されていないパケットである。「第1の時間間隔」の詳細な定義については、前述の方法の実施形態を参照されたい。
受信ユニット131、送信ユニット133および処理ユニット132の詳細な動作プロセスについては、前述の方法の実施形態を参照されたく、詳細はここでは再び説明されないことは留意されるべきである。
本発明の実施形態は、送信ユニット、受信ユニットおよび処理ユニットを含むユーザ機器をさらに提供する。
送信ユニットは、ユーザ機器と通信接続している受信ノードに複数のパケットを送信するように構成される。
受信ユニットは、複数の確認応答パケットを、受信ノードから受信するように構成される。
実施形態では、処理ユニットは、受信ユニットによって受信された複数の確認応答パケットに従って、複数のパケットにおける第1のパケットが失われたと判定し、第1のパケットを受信ノードに直ちに再送信するように、送信ユニットをトリガし、第1のパケットを、第2の時間間隔内で少なくとも1回送信するように構成され、ここで、第2の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、送信ノードは、第2の時間間隔内で、再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない。加えて、ここで記載される「直ちに」は、第1のパケットが失われたと判定された後の事前に設定された時間間隔内を指す。事前に設定された時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であるか、それよりもはるかに小さい。好ましくは、事前に設定された時間間隔は0と等しいか、0に近い。
別の実施形態では、処理ユニットは、受信ユニットによって受信された複数の確認応答パケットに従って、複数のパケットにおける第1のパケットが失われたと判定し、第1のパケットを受信ノードに直ちに再送信するように、送信ユニットをトリガするように構成される。さらに、処理ユニットは、送信バッファが空であるかどうかを判定し、送信バッファが空である場合、第1のパケットを、第2の時間間隔内で少なくとも1回送信するように、送信ユニットをトリガするようにさらに構成される。さらに、処理ユニットは、送信バッファが空でない場合、送信バッファ内の少なくとも1つのパケットを、第1の時間間隔内で送信するように、送信ユニットをトリガするようにさらに構成され、ここで、送信バッファ内のパケットは、送信ユニットによって送信されていないパケットである。第2の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、送信ノードは、第2の時間間隔内で、再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない。加えて、ここで記載される「直ちに」は、第1のパケットが失われたと判定された後の事前に設定された時間間隔内を指す。事前に設定された時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であるか、それよりもはるかに小さい。好ましくは、事前に設定された時間間隔は0と等しいか、0に近い。
別の実施形態では、処理ユニットは、受信ユニットによって受信された複数の確認応答パケットに従って、複数のパケットにおける第1のパケットが失われたと判定し、第1のパケットを受信ノードに直ちに再送信するように、送信ユニットをトリガするように構成される。さらに、処理ユニットは、送信バッファが空であるかどうか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可するかどうかを判定し、送信バッファが空であるか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可しない場合、第1のパケットを、第2の時間間隔内で少なくとも1回送信するように、送信ユニットをトリガするようにさらに構成される。さらに、処理ユニットは、送信バッファが空でなく、且つ、現在の輻輳制御ポリシーが新しいパケットの送信を許可する場合、送信バッファ内の少なくとも1つのパケットを、第2の時間間隔内で送信するように、送信ユニットをトリガするようにさらに構成され、ここで、送信バッファ内のパケットは、送信ユニットによって送信されていないパケットである。第2の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、送信ノードは、第2の時間間隔内で、再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない。加えて、ここで記載される「直ちに」は、第1のパケットが失われたと判定された後の事前に設定された時間間隔内を指す。事前に設定された時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であるか、それよりもはるかに小さい。好ましくは、事前に設定された時間間隔は0と等しいか、0に近い。
当業者は、実施形態における方法のステップの全てまたは一部が、関連ハードウェア(プロセッサ等)に命令するプログラムによって実施され得ることを理解することができる。プログラムは、コンピュータ可読記憶媒体に記憶されてよい。記憶媒体は、ROM、RAM、磁気ディスクまたは光ディスクを含んでよい。
本発明の実施形態で提供されるパケット送信方法およびユーザ機器は、上で詳細に説明されている。本明細書では、本発明の原理および実施方式を説明するために、具体的な例が使用されており、実施形態の説明は、本発明の方法およびコアアイデアを理解するのを助けるようにのみ意図されている。加えて、当業者は、本発明のアイデアに基づいて、具体的な実施方式および適用範囲に関して修正を行うことができる。従って、本明細書の内容は、本発明への限定として解釈されるべきではない。
10 アクセスポイント
12 無線ゲートウェイ
13 ユーザ機器
14 ワイドエリアネットワーク
20 第1のアプリケーションプログラムサーバ
21 TCPプロトコルスタック
30 第2のアプリケーションプログラムサーバ
31 TCPプロトコルスタック
40 第3のアプリケーションプログラムサーバ
41 TCPプロトコルスタック
110 ユーザ機器
120 プロセッサ
130 TCPプロトコルスタック
131 受信ユニット
132 処理ユニット
133 送信ユニット
140 無線モデム
150 メモリ
302 処理回路
304 通信インタフェース
306 記憶媒体
308 プロトコルスタック
316 受信回路
318 送信回路
320 プロトコルスタックプログラム
コンピュータネットワーク通信において、パケット損失回復アルゴリズムは、非常に重要な役割を担う。パケット損失回復アルゴリズムは、送信制御プロトコル(Transmission Control Protocol, TCP)スタックにおけるデータ送信の信頼性を保証する重要なアルゴリズムであり、データパケットが失われたときのエラー耐性メカニズムであり、データ送信効率およびネットワーク帯域幅の利用率に直接影響を及ぼす。RFC2581は、タイムアウト再送信および高速再送信を主に含む、典型的なパケット損失回復アルゴリズムを定義および記載する。タイムアウト再送信は、TCPプロトコルにおけるデータ信頼性を保証するための重要なメカニズムである。タイムアウト再送信の原理は、送信ノードが、パケット送信後にタイムアウトタイマを有効にし、タイムアウトタイマが満了した後、送信ノードが、パケットが正しく受信されたことを示す確認応答パケット(Acknowledgement, 略してACK)を未だ受信しない場合、送信ノードはパケットを再送することである。再送されたパケットはまた、一般に、再送信されたパケットと呼ばれる。高速再送信は、タイムアウト再送信の最適化されたメカニズムである。送信端がN(一般に、Nは3と等しい)よりも多くの反復ACKを受信した場合、パケットが失われたと判定され、損失パケットは直ちに再送信される。高速再送信のメカニズムでは、パケット再送信は、再送信タイマが満了する前に実行されることができ、それによって、データ送信効率を大幅に改善する。
現在、再送信されたパケットの損失検出および回復に関するアルゴリズムは、主に、重複確認応答カウンティング(Duplicate Acknowledgement Counting, DAC)アルゴリズムおよび選択的確認応答プラス(Selective Acknowledgment Plus, SACK+)アルゴリズムを含む。DACアルゴリズムおよびSACK+アルゴリズムの両方が、非対称のTCP加速アルゴリズムであり、送信端のみで配置される必要があり、それらの基本的な考え方は非常に類似している。
SACK+アルゴリズムの原理は、DACアルゴリズムの原理と同様である。主な違いは、SACK+アルゴリズムにおいては、確認応答パケットのSACKオプションで搬送される選択確認応答情報を使用することによって、再送信されたパケットが失われたかどうかが判定されることである。
第6の態様の第1の可能な実施方式では、TCPプロトコルスタックは、送信バッファが空でなく、且つ、現在の輻輳制御ポリシーが新しいパケットの送信を許可する場合、無線モデムおよびアンテナを使用することによって、送信バッファ内の少なくとも1つのパケットを、第1の時間間隔内でサーバに送信するようにさらに構成される。
第7の態様の第1の可能な実施方式では、送信ユニットは、第1の時間間隔内で第2のパケットを送信するようにさらに構成され、ここで、第2のパケットは、送信ユニットによって送信されていないパケットである。
第10の態様によると、本発明の実施形態はパケット送信方法を提供し、方法は、送信ノードによって、送信ノードと受信ノードとの間の通信リンクを使用することによって、受信ノードに複数のパケットを送信するステップと、受信ノードから、複数の確認応答パケットを受信するステップと、受信された複数の確認応答パケットに基づいて、複数のパケットにおける第1のパケットが失われたと判定するステップと、第1のパケットを受信ノードに再送信し、第1のパケットを、第2の時間間隔内で少なくとも1回送信するステップであって、ここで、第2の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、送信ノードは、第2の時間間隔内で、再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ステップとを含む。
第11の態様によると、本発明の実施形態はパケット送信方法を提供し、方法は、送信ノードによって、送信ノードと受信ノードとの間の通信リンクを使用することによって、受信ノードに複数のパケットを送信するステップと、受信ノードから、複数の確認応答パケットを受信するステップと、受信された複数の確認応答パケットに基づいて、複数のパケットにおける第1のパケットが失われたと判定するステップと、第1のパケットを受信ノードに再送信し、送信バッファが空であるかどうかを判定し、送信バッファが空でない場合、送信ノードによって、送信バッファ内の少なくとも1つのパケットを、第2の時間間隔内で送信するステップであって、ここで、送信バッファ内のパケットは、送信ノードによって送信されていないパケットであり、第2の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、送信ノードは、第2の時間間隔内で、再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ステップとを含む。
第11の態様の第1の可能な実施方式では、送信バッファが空である場合、送信ノードは、第1のパケットを、第2の時間間隔内で少なくとも1回送信する。
第12の態様によると、本発明の実施形態はパケット送信方法を提供し、方法は、送信ノードによって、送信ノードと受信ノードとの間の通信リンクを使用することによって、受信ノードに複数のパケットを送信するステップと、受信ノードから、複数の確認応答パケットを受信するステップと、受信された複数の確認応答パケットに基づいて、複数のパケットにおける第1のパケットが失われたと判定するステップと、送信ノードによって、第1のパケットを受信ノードに再送信し、送信バッファが空であるかどうか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可するかどうかを判定するステップと、送信バッファが空であるか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可しない場合、送信ノードによって、第1のパケットを、第2の時間間隔内で少なくとも1回送信するステップとを含む。
第10乃至第12の態様または第10乃至第12の態様の可能な実施方式のいずれか1つでは、第2の時間間隔は、第1のパケットを再び再送信する瞬間を開始ポイントとして使用し、第1のパケットが再び再送信された後に第1の確認応答パケットを受信する瞬間を終了ポイントとして使用する。
第10乃至第12の態様または第10乃至第12の態様の可能な実施方式のいずれか1つでは、第2の時間間隔は0以上であり、且つ、第1のパケットのタイムアウトタイマの周期未満であり、送信ユニットは、第2の時間間隔内で、再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない。
本発明の実施形態で提供される技術的解決手段は、典型的には、例えば、移動体通信用グローバルシステム(Global System for Mobile Communication, GSM(登録商標))ネットワーク、符号分割多元接続(Code Division Multiple Access, CDMA)ネットワーク、ワイドバンド符号分割多元接続(Wideband Code Division Multiple Access, WCDMA(登録商標))ネットワーク、汎用パケット無線サービス(General Packet Radio Service, GPRS)ネットワーク、ロングタームエボリューション(Long Term Evolution, LTE)ネットワーク、ソフトウェア定義型ネットワーク(Software Defined Network, SDN)および無線センサネットワーク(Wireless Sensor Network, WSN)等の、比較的高いパケット損失レートを有する通信システムに適用されてよい。
図2は、本発明の実施形態に係る通信システム100の簡略ブロック図である。通信システム100は、単に、本発明の1つの適用シナリオとして使用され、本発明の適用シナリオへの限定として理解されるべきではない。本発明の本実施形態で提供される技術的解決手段は、TCP/IPプロトコルスタックに基づいている任意の通信システムに適用可能であることは理解され得る。TCP/IPプロトコルスタックは、TCP/IP参考モデルによって定義されるプロトコルレベルのための分割方式を参照して実施されるプロトコルスタックであることは留意されるべきである。TCP/IPプロトコルスタックは、送信制御プロトコルTransmission Control Protocol, TCP)およびインターネットプロトコルInternet Protocol, IP)という2つのコアプロトコルを含む。本発明の本実施形態では、TCPプロトコルの実施は最適化される。本発明の本実施形態の方法はまた、パケット再送信メカニズムを有する別の信頼できる送信プロトコルにも適用可能であることは理解され得る。
本発明の本実施形態におけるユーザ機器110は、モバイル端末(Mobile Terminal)、例えば、モバイル電話、アクションカメラまたはノートブックコンピュータ等のポータブル、ウェアラブル、または車両用モバイルデバイスであってよく、または、コンピュータまたはサーバ等のデバイスであってよく、または、ルータまたはゲートウェイ等のネットワークデバイスであってよい。ユーザ機器110は、別のユーザ機器へのTCP接続を確立してよく、さらに、TCP接続を使用することによって、パケットを受信および送信してよい。TCPパケットのフォーマットが、図3に示される。送信元ポートおよび宛先ポートは、送信端および受信端のアプリケーションプロセスを決定するように構成される。送信元ポート番号、宛先ポート番号、送信元IPアドレスおよび宛先IPアドレスは、TCP接続を一意に決定し得る。TCPパケットのヘッダのシーケンス番号(Sequence Number、一般に、略してseq)は、パケットのペイロードの第1のデータバイトのシーケンス番号を搬送する。TCPパケットを受信した後、受信ノードは、TCP接続を使用することによって、送信ノードに確認応答パケット(ACK)を送信する。ACKパケットのヘッダの確認応答番号(Acknowledge Number, 一般に、略してack)のフィールド値は、受信ノードによって受信されるパケットの「Sequence Number」フィールドの値を表し、また、受信端が送信端によって送信され、その「Sequence Number」の値がACKパケットの「Acknowledge Number」の値よりも小さい全てのパケットを受信したことを表す。ウィンドウのサイズは、受信端の現在の受信バッファ領域のサイズを示すために使用される。加えて、TCPパケットのヘッダは、6個のフラグビットをさらに有する:
URG: 緊急ポインタフィールドの有効性;
ACK: 確認応答番号フィールドの有効性;
PSH: 処理用のアプリケーションレイヤへの即時送信;
RST: 異常発生時のリセット;
SYN: 接続確立時に1に設定される同期フラグ; および
FIN: 接続を開放することを要求する終了フラグ。
ステップ501:図5における受信ノードから送信ノードへの矢印によって示されるように、送信ノードは、送信ノードと受信ノードとの間の通信リンクを使用することによって、受信ノードに複数のパケット(図5に示されるパケット1乃至8)を送信して、受信ノードから、確認応答パケットを受信する。送信ノードによって送信されるパケットはTCPパケットである。各パケットのヘッダのシーケンス番号フィールド(Sequence Number, 一般に、略してseq)は、パケットのペイロードにおける第1のデータバイトのシーケンス番号を搬送する。受信ノードがパケットを受信する度に、受信ノードは、受信ノードがパケットを正しく受信したことを示すために、確認応答パケット(ACK)を送信ノードに返す。任意で、ステップ501の後、送信ノードは、後続のパケット損失検出のために、送信されたパケットの最大シーケンス番号をさらに記録してよい。
具体的には、送信ノードは、複数の方式で、第1のパケットが失われたと判定してよい。図4に示される高速再送信メカニズムを例として使用すると、送信ノードが、そのack値が同じである少なくともN(一般に、Nは3と等しい)個の確認応答パケットを受信する場合、送信ノードは、そのシーケンス番号が同じack値に1を加えた値である第1のパケットが失われたと判定する。図5に示されるように、送信ノードは、そのackフィールド値が2である3つの確認応答パケットを受信する場合、送信ノードは、そのシーケンス番号が3であるパケットが失われたと判定する。別の例については、別の実施形態では、確認応答パケット内でSACKフィールドが拡張され、受信バッファのパケット情報を示すために使用され、ここで、受信バッファは、受信されたパケットを一時的に記憶するために使用され、SACKフィールドの値は、sackとして定義される。例えば、sackは、受信ノードによって受信されたパケットのシーケンス番号であってよい。このようにして、送信ノードは、受信ノードによって返される確認応答パケットのsackに従って、受信ノードによって受信されるパケットと、受信ノードによって受信されないパケットを学習して、失われたパケットが存在するかどうかをさらに判定してよい。
STEP1:送信ノードは、第1のパケットが再送信された後に受信される確認応答パケットに従って、再送信された第1のパケット(すなわち、ステップ503における再送信された第1のパケットFR3)が失われたと判定する。例えば、送信ノードによって記録される現在送信されているパケットの最大シーケンス番号は8である。送信ノードが、そのsackが8よりも大きい確認応答パケットを受信するとき、例えば、そのsackが9である確認応答パケットを受信するとき、送信ノードは、再送信されたパケットが失われたと判定してよい。sackは、確認応答パケットの拡張フィールド(SACK)内で搬送され、受信ノードによって受信されるパケットのシーケンス番号を示すために使用される。送信ノードが、別の方式では、再送信されたパケットが失われたかどうかをさらに検出し得ることは理解され得る。
別の実施形態では、TCPプロトコルスタック130は、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array, FPGA)または特定用途向け集積回路(Application Specific Integrated Circuit, ASIC)等のハードウェア回路または専用チップによって実施されてよい。この場合、プロセッサ120およびTCPプロトコルスタックを実施するように構成されるTCPハードウェア回路または特定用途向けチップは、バスを使用することによって接続される。プロセッサは、メモリ150内のアプリケーションプログラムを実行し、TCPプロトコルスタックを実施するように構成されるTCPハードウェア回路または専用チップを呼び出し、それによって、アプリケーションプログラムを実行するプロセスで生成されたデータを送信および処理する。具体的には、プロセッサ120は、アプリケーションプログラムに対応するコードをマシン命令に復号し、マシン命令を1つずつ実行し、命令を実行するプロセスで、対応するプログラムを使用することによって、TCPハードウェア回路または専用チップを呼び出して、パケットを送受信する。対応して、プロセッサ120の呼出しの下で、TCPハードウェア回路または専用チップは、本発明の方法の実施形態で説明されるステップまたは機能を完了するために別のハードウェアと協調する。加えて、TCPプロトコルスタックのTCPハードウェア回路または特定用途向けチップによって前述の方法のステップを実行する関連する詳細については、前述の方法の実施形態を参照されたく、詳細はここでは再び説明されない。

Claims (27)

  1. パケット送信方法であって、
    送信ノードによって、前記送信ノードと受信ノードとの間の通信リンクを使用することによって、前記受信ノードに複数のパケットを送信するステップと、
    前記複数のパケットにおける第1のパケットが失われたと判定した後、前記送信ノードによって、前記第1のパケットを再送信するステップと、
    前記第1のパケットが再送信された後に受信された確認応答パケットに基づいて、前記送信ノードによって、再送信されたパケットが失われたと判定するステップであって、前記再送信されたパケットは前記再送信された第1のパケットである、ステップと、
    前記送信ノードによって、前記第1のパケットを再び再送信し、前記第1のパケットを、第1の時間間隔内で少なくとも1回送信するステップであって、前記第1の時間間隔は0以上であり、且つ、前記第1のパケットのタイムアウトタイマの周期未満であり、前記送信ノードは、前記第1の時間間隔内で、再び再送信された前記第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ステップとを含む方法。
  2. 前記送信ノードによって、前記受信ノードから1つまたは複数の確認応答パケットを受信し、前記1つまたは複数の確認応答パケットで搬送されるackフィールドまたは拡張フィールドに従って、前記複数のパケットにおける前記第1のパケットが失われたと判定するステップをさらに含む、請求項1に記載の方法。
  3. 前記送信ノードによって、前記第1のパケットを、第1の時間間隔内で少なくとも1回送信する前記ステップの後、前記方法は、
    前記送信ノードによって、第2のパケットを送信するステップであって、前記第2のパケットは、前記送信ノードによって送信されていないパケットである、ステップをさらに含む、請求項1または2に記載の方法。
  4. 前記送信ノードと前記受信ノードとの間の前記通信リンクは、TCP接続である、請求項1乃至3のいずれか1項に記載の方法。
  5. パケット送信方法であって、
    送信ノードによって、前記送信ノードと受信ノードとの間の通信リンクを使用することによって、前記受信ノードに複数のパケットを送信するステップと、
    前記複数のパケットにおける第1のパケットが失われたと判定した後、前記送信ノードによって、前記第1のパケットを再送信するステップと、
    前記第1のパケットが再送信された後に受信された確認応答パケットに基づいて、前記送信ノードによって、再送信されたパケットが失われたと判定するステップであって、前記再送信されたパケットは前記再送信された第1のパケットである、ステップと、
    前記送信ノードによって、前記第1のパケットを再び再送信し、送信バッファが空であるかどうかを判定するステップと、
    前記送信バッファが空である場合、前記送信ノードによって、前記第1のパケットを、前記第1の時間間隔内で少なくとも1回送信するステップであって、前記第1の時間間隔は0以上であり、且つ、前記第1のパケットのタイムアウトタイマの周期未満であり、前記送信ノードは、前記第1の時間間隔内で、再び再送信された前記第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ステップとを含む方法。
  6. 前記送信バッファが空でない場合、前記送信ノードによって、前記送信バッファ内の少なくとも1つのパケットを、前記第1の時間間隔内で送信するステップであって、前記送信バッファ内の前記パケットは、前記送信ノードによって送信されていないパケットである、ステップをさらに含む、請求項5に記載の方法。
  7. 前記第1のパケットが再送信された後に受信された確認応答パケットに基づいて、前記送信ノードによって、前記再送信されたパケットが失われたと判定する前記ステップは、
    前記第1のパケットが再送信された後に受信された前記確認応答パケットで搬送されるackフィールドまたは拡張フィールドに従って、前記送信ノードによって、前記再送信されたパケットが失われたと判定するステップを含む、請求項5または6に記載の方法。
  8. 前記送信ノードと前記受信ノードとの間の前記通信リンクは、TCP接続である、請求項5乃至7のいずれか1項に記載の方法。
  9. パケット送信方法であって、
    送信ノードによって、前記送信ノードと受信ノードとの間の通信リンクを使用することによって、前記受信ノードに複数のパケットを送信するステップと、
    前記複数のパケットにおける第1のパケットが失われたと判定した後、前記送信ノードによって、前記第1のパケットを再送信するステップと、
    前記第1のパケットが再送信された後に受信された確認応答パケットに基づいて、前記送信ノードによって、再送信されたパケットが失われたと判定するステップであって、前記再送信されたパケットは前記再送信された第1のパケットである、ステップと、
    前記送信ノードによって、前記第1のパケットを再び再送信し、送信バッファが空であるかどうか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可するかどうかを判定するステップと、
    前記送信バッファが空であるか、または、前記現在の輻輳制御ポリシーが前記新しいパケットの送信を許可しない場合、前記送信ノードによって、前記第1のパケットを、第1の時間間隔内で少なくとも1回送信するステップであって、前記第1の時間間隔は0以上であり、且つ、前記第1のパケットのタイムアウトタイマの周期未満であり、前記送信ノードは、前記第1の時間間隔内で、再び再送信された前記第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ステップとを含む方法。
  10. 前記送信バッファが空でなく、且つ、前記現在の輻輳制御ポリシーが前記新しいパケットの送信を許可する場合、前記送信ノードによって、前記送信バッファ内の少なくとも1つのパケットを、前記第1の時間間隔内で送信するステップであって、前記送信バッファ内の前記パケットは、前記送信ノードによって送信されていないパケットである、ステップをさらに含む、請求項9に記載の方法。
  11. 無線モデム、プロセッサ、アンテナおよびTCPプロトコルスタックを含むユーザ機器であって、前記無線モデムは前記アンテナに接続され、前記TCPプロトコルスタックは、前記プロセッサの制御の下で、前記ユーザ機器上で動作するアプリケーションプログラムのデータを複数のパケットにカプセル化し、前記複数のパケットを前記無線モデムに送信するように構成され、前記無線モデムは、前記受信されたパケットをアナログ信号に変調し、前記アンテナを使用することによって、前記アナログ信号をサーバに送信するように構成され、
    前記TCPプロトコルスタックは、前記複数のパケットにおける第1のパケットが失われたと確認した後、前記無線モデムおよび前記アンテナを使用することによって、前記第1のパケットを前記サーバに再送信して、前記第1のパケットが再送信された後に受信された確認応答パケットに基づいて、再送信されたパケットが失われたと判定し、前記第1のパケットを前記サーバに再び再送信し、前記第1のパケットを、第1の時間間隔内で少なくとも1回前記サーバに送信するようにさらに構成され、前記再送信されたパケットは前記再送信された第1のパケットであり、前記第1の時間間隔は0以上であり、且つ、前記第1のパケットのタイムアウトタイマの周期未満であり、前記ユーザ機器は、前記第1の時間間隔内で、再び再送信された前記第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ユーザ機器。
  12. 前記TCPプロトコルスタックは、前記無線モデムおよび前記アンテナを使用することによって、第2のパケットを送信するようにさらに構成され、前記第2のパケットは、送信されていないパケットである、請求項11に記載のユーザ機器。
  13. 無線モデム、プロセッサ、アンテナおよびTCPプロトコルスタックを含むユーザ機器であって、前記無線モデムは前記アンテナに接続され、前記TCPプロトコルスタックは、前記プロセッサの制御の下で、前記ユーザ機器上で動作するアプリケーションプログラムのデータを複数のパケットにカプセル化し、前記複数のパケットを前記無線モデムに送信するように構成され、前記無線モデムは、前記受信されたパケットをアナログ信号に変調し、前記アンテナを使用することによって、前記アナログ信号をサーバに送信するように構成され、
    前記TCPプロトコルスタックは、前記複数のパケットにおける第1のパケットが失われたと確認した後、前記無線モデムおよび前記アンテナを使用することによって、前記第1のパケットを前記サーバに再送信して、前記第1のパケットが再送信された後に受信された確認応答パケットに基づいて、再送信されたパケットが失われたと判定し、前記第1のパケットを、前記サーバに再び再送信し、送信バッファが空であるかどうかを判定し、前記送信バッファが空である場合、前記無線モデムおよび前記アンテナを使用することによって、前記第1のパケットを、第1の時間間隔内で少なくとも1回前記サーバに送信するようにさらに構成され、前記再送信されたパケットは前記再送信された第1のパケットであり、前記第1の時間間隔は0以上であり、且つ、前記第1のパケットのタイムアウトタイマの周期未満であり、前記ユーザ機器は、前記第1の時間間隔内で、再び再送信された前記第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ユーザ機器。
  14. 前記TCPプロトコルスタックは、前記送信バッファが空でない場合、前記送信バッファ内の少なくとも1つのパケットを、前記無線モデムおよび前記アンテナを使用することによって、前記第1の時間間隔内で前記サーバに送信するようにさらに構成され、前記送信バッファ内の前記パケットは、前記ユーザ機器によって送信されていないパケットである、請求項13に記載のユーザ機器。
  15. 前記TCPプロトコルスタックは、具体的には、前記第1のパケットが再送信された後に受信された前記確認応答パケットで搬送されるackフィールドまたは拡張フィールドに従って、前記再送信されたパケットが失われたと判定するように構成される、請求項13または14に記載のユーザ機器。
  16. 無線モデム、プロセッサ、アンテナおよびTCPプロトコルスタックを含むユーザ機器であって、前記無線モデムは前記アンテナに接続され、前記TCPプロトコルスタックは、前記プロセッサの制御の下で、前記ユーザ機器上で動作するアプリケーションプログラムのデータを複数のパケットにカプセル化し、前記複数のパケットを前記無線モデムに送信するように構成され、前記無線モデムは、前記受信されたパケットをアナログ信号に変調し、前記アンテナを使用することによって、前記アナログ信号をサーバに送信するように構成され、
    前記TCPプロトコルスタックは、前記複数のパケットにおける第1のパケットが失われたと確認した後、前記無線モデムおよび前記アンテナを使用することによって、前記第1のパケットを前記サーバに再送信して、前記第1のパケットが再送信された後に受信された確認応答パケットに基づいて、再送信されたパケットが失われたと判定し、前記第1のパケットを、前記サーバに再び再送信し、送信バッファが空であるかどうか、または、現在の輻輳制御ポリシーが、新しいパケットの送信を許可するかどうかを判定し、前記送信バッファが空であるか、または、前記現在の輻輳制御ポリシーが、前記新しいパケットの送信を許可しない場合、前記第1のパケットを、第1の時間間隔内で少なくとも1回前記サーバに送信するようにさらに構成され、前記再送信されたパケットは前記再送信された第1のパケットであり、前記第1の時間間隔は0以上であり、且つ、前記第1のパケットのタイムアウトタイマの周期未満であり、前記ユーザ機器は、前記第1の時間間隔内で、再び再送信された前記第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ユーザ機器。
  17. 前記TCPプロトコルスタックは、前記送信バッファが空でなく、且つ、前記現在の輻輳制御ポリシーが前記新しいデータパケットの送信を許可する場合、前記無線モデムおよび前記アンテナを使用することによって、前記送信バッファ内の少なくとも1つのパケットを、前記第1の時間間隔内で前記サーバに送信するようにさらに構成され、前記送信バッファ内の前記パケットは、前記ユーザ機器によって送信されていないパケットである、請求項16に記載のユーザ機器。
  18. ユーザ機器であって、
    前記ユーザ機器と通信接続している受信ノードに複数のパケットを送信するように構成される送信ユニットと、
    前記受信ノードから、複数の確認応答パケットを受信するように構成される受信ユニットと、
    前記受信ユニットによって受信された前記複数の確認応答パケットに従って、前記複数のパケットにおける第1のパケットが失われたと判定し、前記第1のパケットを前記受信ノードに再送信するように前記送信ユニットをトリガし、前記第1のパケットが再送信された後に前記受信ユニットによって受信された確認応答パケットに従って、再送信されたパケットが失われたと判定するように構成される処理ユニットであって、前記再送信されたパケットは、前記再送信された第1のパケットである、処理ユニットとを含み、
    前記送信ユニットは、前記処理ユニットが前記再送信されたパケットが失われたと判定した後、前記第1のパケットを、第1の時間間隔内で少なくとも2回連続的に送信するようにさらに構成され、前記第1の時間間隔は0以上であり、且つ、前記送信ノードのタイムアウトタイマの周期未満である、ユーザ機器。
  19. 前記送信ユニットは、前記第1のパケットを少なくとも2回連続的に送信した後、第2のパケットを送信するようにさらに構成され、前記第2のパケットは、前記送信ユニットによって送信されていないパケットである、請求項18に記載のユーザ機器。
  20. ユーザ機器であって、
    前記ユーザ機器と通信接続している受信ノードに複数のパケットを送信するように構成される送信ユニットと、
    前記受信ノードから、複数の確認応答パケットを受信するように構成される受信ユニットと、
    前記受信ユニットによって受信された前記複数の確認応答パケットに従って、前記複数のパケットにおける第1のパケットが失われたと判定し、前記第1のパケットを前記受信ノードに再送信するように前記送信ユニットをトリガし、前記第1のパケットが再送信された後に前記受信ユニットによって受信された確認応答パケットに従って、再送信されたパケットが失われたと判定するように構成される処理ユニットであって、前記再送信されたパケットは、前記再送信された第1のパケットである、処理ユニットとを含み、
    前記送信ユニットは、前記処理ユニットが前記再送信されたパケットが失われたと判定した後、前記第1のパケットを再び再送信し、送信バッファが空であるかどうかを判定し、前記送信バッファが空である場合、前記第1のパケットを、第1の時間間隔内で少なくとも1回送信するようにさらに構成され、前記第1の時間間隔は0以上であり、且つ、前記第1のパケットのタイムアウトタイマの周期未満であり、前記受信ユニットは、前記第1の時間間隔内で、再び再送信された前記第1のパケットが失われたことを示すために使用される前記確認応答パケットを受信していない、ユーザ機器。
  21. 前記送信ユニットは、前記送信バッファが空でない場合、前記送信バッファ内の少なくとも1つのパケットを、前記第1の時間間隔内で送信するようにさらに構成され、前記送信バッファ内の前記パケットは、前記送信ユニットによって送信されていないパケットである、請求項20に記載のユーザ機器。
  22. ユーザ機器であって、
    前記ユーザ機器と通信接続している受信ノードに複数のパケットを送信するように構成される送信ユニットと、
    前記受信ノードから、複数の確認応答パケットを受信するように構成される受信ユニットと、
    前記受信ユニットによって受信された前記複数の確認応答パケットに従って、前記複数のパケットにおける第1のパケットが失われたと判定し、前記第1のパケットを前記受信ノードに再送信するように前記送信ユニットをトリガし、前記第1のパケットが再送信された後に前記受信ユニットによって受信された確認応答パケットに従って、再送信されたパケットが失われたと判定するように構成される処理ユニットであって、前記再送信されたパケットは、前記再送信された第1のパケットである、処理ユニットとを含み、
    前記送信ユニットは、前記処理ユニットが前記再送信されたパケットが失われたと判定した後、前記第1のパケットを再び再送信し、送信バッファが空であるかどうか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可するかどうかを判定し、前記送信バッファが空であるか、または、前記現在の輻輳制御ポリシーが前記新しいパケットの送信を許可しない場合、前記第1のパケットを、第1の時間間隔内で少なくとも1回送信するようにさらに構成され、前記第1の時間間隔は0以上であり、且つ、前記第1のパケットのタイムアウトタイマの周期未満であり、前記受信ユニットは、前記第1の時間間隔内で、再び再送信された前記第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ユーザ機器。
  23. 前記送信ユニットは、前記送信バッファが空でなく、且つ、前記現在の輻輳制御ポリシーが前記新しいパケットの送信を許可する場合、前記送信バッファ内の少なくとも1つのパケットを、前記第1の時間間隔内で送信するようにさらに構成され、前記送信バッファ内の前記パケットは、前記送信ユニットによって送信されていないパケットである、請求項22に記載のユーザ機器。
  24. パケット送信方法であって、
    送信ノードによって、前記送信ノードと受信ノードとの間の通信リンクを使用することによって、前記受信ノードに複数のパケットを送信するステップと、
    前記送信ノードによって、前記受信ノードから、複数の確認応答パケットを受信するステップと、
    前記送信ノードによって、前記受信された複数の確認応答パケットに基づいて、前記複数のパケットにおける第1のパケットが失われたと判定するステップと、
    前記送信ノードによって、前記第1のパケットを前記受信ノードに再送信し、前記第1のパケットを、第2の時間間隔内で少なくとも1回送信するステップであって、前記第2の時間間隔は0以上であり、且つ、前記第1のパケットのタイムアウトタイマの周期未満であり、前記送信ノードは、前記第2の時間間隔内で、前記再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ステップとを含む方法。
  25. パケット送信方法であって、
    送信ノードによって、前記送信ノードと受信ノードとの間の通信リンクを使用することによって、前記受信ノードに複数のパケットを送信するステップと、
    前記送信ノードによって、前記受信ノードから、複数の確認応答パケットを受信するステップと、
    前記送信ノードによって、前記受信された複数の確認応答パケットに基づいて、前記複数のパケットにおける第1のパケットが失われたと判定するステップと、
    前記送信ノードによって、前記第1のパケットを前記受信ノードに再送信し、前記送信バッファが空であるかどうかを判定し、前記送信バッファが空である場合、前記送信ノードによって、前記第1のパケットを、第2の時間間隔内で少なくとも1回送信するステップであって、前記第2の時間間隔は0以上であり、且つ、前記第1のパケットのタイムアウトタイマの周期未満であり、前記送信ノードは、前記第2の時間間隔内で、前記再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ステップとを含む方法。
  26. 前記送信バッファが空でない場合、前記送信ノードは、前記送信バッファ内の少なくとも1つのパケットを第1の時間間隔内で送信し、前記送信バッファ内の前記パケットは、前記送信ノードによって送信されていないパケットである、請求項25に記載の方法。
  27. パケット送信方法であって、
    送信ノードによって、前記送信ノードと受信ノードとの間の通信リンクを使用することによって、前記受信ノードに複数のパケットを送信するステップと、
    前記送信ノードによって、前記受信ノードから、複数の確認応答パケットを受信するステップと、
    前記送信ノードによって、前記受信された複数の確認応答パケットに基づいて、前記複数のパケットにおける第1のパケットが失われたと判定するステップと、
    前記送信ノードによって、前記第1のパケットを前記受信ノードに再送信し、送信バッファが空であるかどうか、または、現在の輻輳制御ポリシーが新しいパケットの送信を許可するかどうかを判定するステップと、
    前記送信バッファが空であるか、または、前記現在の輻輳制御ポリシーが前記新しいパケットの送信を許可しない場合、前記送信ノードによって、前記第1のパケットを、第2の時間間隔内で少なくとも1回送信するステップであって、前記第2の時間間隔は0以上であり、且つ、前記第1のパケットのタイムアウトタイマの周期未満であり、前記送信ノードは、前記第2の時間間隔内で、前記再送信された第1のパケットが失われたことを示すために使用される確認応答パケットを受信していない、ステップとを含む方法。
JP2018515052A 2015-09-21 2016-09-20 パケット送信方法およびユーザ機器 Active JP6522855B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510605226.9 2015-09-21
CN201510605226.9A CN106656431B (zh) 2015-09-21 2015-09-21 一种报文传输方法及用户设备
PCT/CN2016/099480 WO2017050216A1 (zh) 2015-09-21 2016-09-20 一种报文传输方法及用户设备

Publications (2)

Publication Number Publication Date
JP2018535582A true JP2018535582A (ja) 2018-11-29
JP6522855B2 JP6522855B2 (ja) 2019-05-29

Family

ID=58385688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018515052A Active JP6522855B2 (ja) 2015-09-21 2016-09-20 パケット送信方法およびユーザ機器

Country Status (9)

Country Link
US (2) US10601554B2 (ja)
EP (2) EP3780449A1 (ja)
JP (1) JP6522855B2 (ja)
KR (1) KR102136563B1 (ja)
CN (1) CN106656431B (ja)
BR (1) BR112018005373A2 (ja)
CA (1) CA2997637C (ja)
RU (1) RU2691240C1 (ja)
WO (1) WO2017050216A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7335966B2 (ja) 2019-02-05 2023-08-30 カーサシステムズ インコーポレイテッド ネットワーク関連付け情報を回復するための方法及び装置

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106788916B (zh) * 2016-12-30 2021-08-27 深圳市优必选科技股份有限公司 用于总线的数据传输方法及数据传输装置
CN108270682B (zh) * 2016-12-30 2022-06-24 华为技术有限公司 一种报文传输方法、终端、网络设备及通信系统
CN109981385B (zh) * 2017-12-27 2022-10-28 华为技术有限公司 一种实现丢包检测的方法、装置和系统
WO2020179993A1 (en) * 2019-03-07 2020-09-10 Samsung Electronics Co., Ltd. Apparatus and method for transmitting and receiving data in wireless communication system
CN115396078A (zh) * 2019-03-25 2022-11-25 华为技术有限公司 一种数据传输方法及装置
CN111830913A (zh) * 2019-04-22 2020-10-27 北京国电智深控制技术有限公司 一种数据获取方法及装置
CN112019306B (zh) * 2019-05-28 2022-02-18 上海华为技术有限公司 一种数据重传方法以及装置
CN110233856B (zh) * 2019-06-28 2022-04-05 北京云中融信网络科技有限公司 报文处理方法、装置及计算机可读存储介质
CN112311725B (zh) * 2019-07-26 2022-01-11 华为技术有限公司 一种数据处理方法、装置及终端
KR20210019307A (ko) * 2019-08-12 2021-02-22 삼성전자주식회사 상태 보고를 이용하여 신호 재전송을 수행하는 무선 통신 장치 및 이를 포함하는 무선 통신 시스템의 동작 방법
CN115801199A (zh) * 2019-10-28 2023-03-14 华为技术有限公司 一种确认报文的处理方法和通信装置以及存储介质
CN113765626B (zh) * 2020-06-01 2022-11-11 大唐移动通信设备有限公司 一种移动通信系统的数据传输方法和装置
CN111953555A (zh) * 2020-06-29 2020-11-17 联想(北京)有限公司 一种链路检测方法、cpe及存储介质
CN112087361A (zh) * 2020-09-17 2020-12-15 宏图智能物流股份有限公司 一种可实现不同仓库网络平台对接的方法
EP4207654A4 (en) * 2020-09-17 2023-09-27 Huawei Technologies Co., Ltd. PACKET RETRANSMISSION METHOD AND APPARATUS
CN113645015A (zh) * 2021-10-13 2021-11-12 徐州工程学院 一种被动重发的可靠传输方法
CN114442598B (zh) * 2022-02-09 2023-12-12 一汽解放汽车有限公司 诊断冲突协调方法、装置、计算机设备和存储介质
CN115941128A (zh) * 2022-11-07 2023-04-07 天津津航计算技术研究所 一种基于QCache的报文协议超时重发管理方法
CN117692396B (zh) * 2024-02-04 2024-04-26 湖南国科亿存信息科技有限公司 一种复杂网络环境下的tcp单边加速方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005045469A (ja) * 2003-07-25 2005-02-17 Toshiba Corp マルチメディアコンテンツ受信装置及びマルチメディアコンテンツ受信方法
JP2007060345A (ja) * 2005-08-25 2007-03-08 Kazunori Nakamura ネットワークシステム
WO2010013469A1 (ja) * 2008-07-30 2010-02-04 パナソニック株式会社 Tcp送信制御装置及びtcp送信制御方法
JP2010206608A (ja) * 2009-03-04 2010-09-16 Nec Corp 送信装置、送信レート算出方法及び送信レート算出プログラム
JP2016058909A (ja) * 2014-09-10 2016-04-21 沖電気工業株式会社 通信システム、通信装置、通信方法及び通信プログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1146261C (zh) * 2000-10-27 2004-04-14 清华大学 一种在衰落信道中重传丢失分组的方法
US7607062B2 (en) 2002-03-25 2009-10-20 Akamai Technologies, Inc. System for fast recovery from losses for reliable data communication protocols
JP2004187099A (ja) 2002-12-04 2004-07-02 Shinko Electric Ind Co Ltd 通信制御方法、通信システム及び通信装置
US8503294B2 (en) * 2003-07-11 2013-08-06 Nec Corporation Transport layer relay method, transport layer relay device, and program
CN101296161A (zh) * 2007-04-26 2008-10-29 华为技术有限公司 一种数据重传的方法、系统、装置、接收设备及发送设备
CN101631065B (zh) 2008-07-16 2012-04-18 华为技术有限公司 一种无线多跳网络拥塞的控制方法和装置
CN101753275A (zh) 2008-12-15 2010-06-23 华为技术有限公司 重传视频报文的方法、装置及系统
RU2543304C2 (ru) * 2009-06-29 2015-02-27 Телефонактиеболагет Лм Эрикссон (Пабл) Способ и устройство, для ретрансляции пакетов
US8804513B2 (en) * 2010-02-25 2014-08-12 The Trustees Of Columbia University In The City Of New York Methods and systems for controlling SIP overload
CN102480346B (zh) * 2010-11-26 2014-12-10 中国科学院声学研究所 一种网络数据可靠传输方法
CN102075436B (zh) * 2011-02-10 2014-09-17 华为数字技术(成都)有限公司 以太网络及其数据传输方法和装置
US9503223B2 (en) * 2011-03-04 2016-11-22 Blackberry Limited Controlling network device behavior
CN103220091A (zh) * 2012-01-20 2013-07-24 华为技术有限公司 数据传输的方法及装置
JP5942706B2 (ja) * 2012-08-29 2016-06-29 富士通株式会社 監視装置,監視プログラム,監視方法
US9276684B2 (en) * 2012-12-10 2016-03-01 Qualcomm Incorporated Efficient means of broadcast and relaying information between wireless terminals
CN103986548B (zh) 2013-02-07 2018-02-23 华为技术有限公司 一种确定丢包原因的方法和终端
JP6094357B2 (ja) * 2013-04-22 2017-03-15 富士通株式会社 通信方法、通信システム、及び通信装置
CN103401666A (zh) * 2013-06-29 2013-11-20 华为技术有限公司 数据重传方法和装置
US9240939B2 (en) * 2013-10-22 2016-01-19 Cisco Technology, Inc. Detecting packet loss and retransmission in a network environment
CN104660573A (zh) * 2013-11-25 2015-05-27 上海益尚信息科技有限公司 一种用于sctp协议的低信息交互的多基站置
AU2013408437B2 (en) * 2013-12-20 2016-11-10 Telefonaktiebolaget Lm Ericsson (Publ) High-reliability transmission scheme with low resource utilization
US20160226628A1 (en) * 2015-01-30 2016-08-04 Huawei Technologies Co., Ltd. System and method for data retransmission
CN110730105B (zh) * 2015-05-29 2021-09-28 腾讯科技(深圳)有限公司 图片数据传输方法、装置、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005045469A (ja) * 2003-07-25 2005-02-17 Toshiba Corp マルチメディアコンテンツ受信装置及びマルチメディアコンテンツ受信方法
JP2007060345A (ja) * 2005-08-25 2007-03-08 Kazunori Nakamura ネットワークシステム
WO2010013469A1 (ja) * 2008-07-30 2010-02-04 パナソニック株式会社 Tcp送信制御装置及びtcp送信制御方法
JP2010206608A (ja) * 2009-03-04 2010-09-16 Nec Corp 送信装置、送信レート算出方法及び送信レート算出プログラム
JP2016058909A (ja) * 2014-09-10 2016-04-21 沖電気工業株式会社 通信システム、通信装置、通信方法及び通信プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7335966B2 (ja) 2019-02-05 2023-08-30 カーサシステムズ インコーポレイテッド ネットワーク関連付け情報を回復するための方法及び装置
US11750725B2 (en) 2019-02-05 2023-09-05 Casa Systems, Inc. Methods and apparatus for recovering network association information

Also Published As

Publication number Publication date
US10601554B2 (en) 2020-03-24
CN106656431B (zh) 2020-09-29
KR102136563B1 (ko) 2020-07-22
EP3337072A1 (en) 2018-06-20
KR20180048760A (ko) 2018-05-10
JP6522855B2 (ja) 2019-05-29
US11153041B2 (en) 2021-10-19
CN106656431A (zh) 2017-05-10
EP3337072B1 (en) 2020-07-22
CA2997637C (en) 2021-01-26
EP3337072A4 (en) 2018-08-15
WO2017050216A1 (zh) 2017-03-30
US20200195390A1 (en) 2020-06-18
RU2691240C1 (ru) 2019-06-11
EP3780449A1 (en) 2021-02-17
US20180212721A1 (en) 2018-07-26
BR112018005373A2 (pt) 2018-10-09
CA2997637A1 (en) 2017-03-30

Similar Documents

Publication Publication Date Title
US11153041B2 (en) Packet transmission method and user equipment
US11272420B2 (en) Method and apparatus for transmitting data packets using dual sequence numbers
KR102203509B1 (ko) 패킷 전송 방법, 단말, 네트워크 디바이스 및 통신 시스템
US11799790B2 (en) Data transmission method, computing device, network device, and data transmission system
WO2019129147A1 (zh) 一种数据传输方法及第一设备
US20220014312A1 (en) Data transmission method and apparatus
WO2018082615A1 (zh) 一种发送报文的方法、装置、芯片及终端
KR102300300B1 (ko) 헤더 압축을 이용한 패킷 통신 방법 및 장치
US10524175B2 (en) Data transmission method and network device
JP2007235976A (ja) データ通信装置
US20140341028A1 (en) Reducing superfluous traffic in a network

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190308

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190325

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190424

R150 Certificate of patent or registration of utility model

Ref document number: 6522855

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250