IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

<>
  • 特開-TCP通信装置、方法及びプログラム 図1
  • 特開-TCP通信装置、方法及びプログラム 図2
  • 特開-TCP通信装置、方法及びプログラム 図3
  • 特開-TCP通信装置、方法及びプログラム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024049593
(43)【公開日】2024-04-10
(54)【発明の名称】TCP通信装置、方法及びプログラム
(51)【国際特許分類】
   H04L 69/163 20220101AFI20240403BHJP
【FI】
H04L69/163
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022155902
(22)【出願日】2022-09-29
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】鈴木 陽登
(57)【要約】
【課題】通信状況に応じた適切な再送閾値を設定できるTCP通信装置を提供する。
【解決手段】送信側から順次、送信されるパケットを受信側として受信するTCP通信装置において、直近に受信している所定数のパケットの各々から、パケット到着順番の入れ替わり度合いを算出する第1処理2,3と、前記所定数のパケットにおける入れ替わり度合いの統計値に基づいて、前記送信側が前記受信側から重複ACKを受け取った回数が再送閾値に到達した場合に、前記送信側がパケット再送を行う判断を行うための、当該再送閾値を決定する第2処理4と、を実行することを特徴とする。
【選択図】図1
【特許請求の範囲】
【請求項1】
送信側から順次、送信されるパケットを受信側として受信するTCP通信装置において、
直近に受信している所定数のパケットの各々から、パケット到着順番の入れ替わり度合いを算出する第1処理と、
前記所定数のパケットにおける入れ替わり度合いの統計値に基づいて、前記送信側が前記受信側から重複ACKを受け取った回数が再送閾値に到達した場合に、前記送信側がパケット再送を行う判断を行うための、当該再送閾値を決定する第2処理と、を実行することを特徴とするTCP通信装置。
【請求項2】
前記再送閾値を前記送信側に送信する第3処理をさらに実行することを特徴とする請求項1に記載のTCP通信装置。
【請求項3】
前記第1処理では、前記統計値として平均値、中央値またはパーセンタイル値を用いることを特徴とする請求項1に記載のTCP通信装置。
【請求項4】
前記第1処理では、前記所定数のパケットのうちの最新の送信順番から、最新の受信パケットの送信順番を減算した値として、前記入れ替わり度合いを算出することを特徴とする請求項1に記載のTCP通信装置。
【請求項5】
前記第1処理及び前記第2処理では、再送パケットは除外したものとして、前記所定数のパケットを定めることを特徴とする請求項1に記載のTCP通信装置。
【請求項6】
前記第2処理では、所定の上限及び下限の範囲内において、前記再送閾値を決定することを特徴とする請求項1に記載のTCP通信装置。
【請求項7】
送信側から順次、送信されるパケットを受信側として受信するTCP通信方法において、
直近に受信している所定数のパケットの各々から、パケット到着順番の入れ替わり度合いを算出する第1手順と、
前記所定数のパケットにおける入れ替わり度合いの統計値に基づいて、前記送信側が前記受信側から重複ACKを受け取った回数が再送閾値に到達した場合に、前記送信側がパケット再送を行う判断を行うための、当該再送閾値を決定する第2手順と、を備えることを特徴とするTCP通信方法。
【請求項8】
送信側から順次、送信されるパケットを受信側として受信するTCP通信装置としてコンピュータを機能させるプログラムにおいて、
直近に受信している所定数のパケットの各々から、パケット到着順番の入れ替わり度合いを算出する第1処理と、
前記所定数のパケットにおける入れ替わり度合いの統計値に基づいて、前記送信側が前記受信側から重複ACKを受け取った回数が再送閾値に到達した場合に、前記送信側がパケット再送を行う判断を行うための、当該再送閾値を決定する第2処理と、をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、TCP通信装置、方法及びプログラムに関する。
【背景技術】
【0002】
非特許文献1は、TCP(伝送制御プロトコル)の高速再送について規定するものである。TCPは通常、重複ACK(確認応答)を3回受け取ったら、タイムアウトを待たずに再送を行う。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】"RFC 5681 - TCP Congestion Control", September 2009
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では例えば上記3回のように、再送閾値を固定的に設定しているため、以下のような状況に対して適切な処理が行われるものではなかった。
【0005】
6G時代においては、1ユーザ通信の大容量化(100Gbpsクラス)が期待される。このような通信の大容量化につれて、帯域確保のためのマルチパス通信の活用が期待される。ただし、通信をマルチパス化するほど、パケットの順序違い発生のリスクが増加する。
【0006】
しかし、TCPでは通常、前述の通り重複するACKを3回受け取ったらロスが発生したとみなして再送を行い、輻輳制御アルゴリズムの種類によっては輻輳ウインドウサイズを減少させる。つまり、あるパケットを3つのパケットが追い越すだけで、ロスとみなされてしまう。大容量通信の速度要件達成のために、通信路を4本、5本、…と増やしていくにつれて、このような再送処理は簡単に発生してしまう恐れがある。
【0007】
一方、再送判断閾値(すなわち、いくつの重複ACKで再送を実行するかを判定する閾値)をあまりにも大きな値に設定すると、本当にロスが発生した際の再送が遅れてしまい、アプリケーションの通信が長時間停止するなどのリスクが生じる。
【0008】
さらに、特に「セルラー+セルラー」のような構成のマルチパスの場合、「セルラー+WiFi(登録商標)」の構成の場合と比べ非対称性が小さくなる(経路ごとの遅延に大きな差がなくなる)ことが予想され、順序違いのリスクがより一層高まるため、対策が必須となる。
【0009】
上記従来技術の課題に鑑み、本発明は、通信状況に応じた適切な再送閾値を設定できるTCP通信装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明は、送信側から順次、送信されるパケットを受信側として受信するTCP通信装置において、直近に受信している所定数のパケットの各々から、パケット到着順番の入れ替わり度合いを算出する第1処理と、前記所定数のパケットにおける入れ替わり度合いの統計値に基づいて、前記送信側が前記受信側から重複ACKを受け取った回数が再送閾値に到達した場合に、前記送信側がパケット再送を行う判断を行うための、当該再送閾値を決定する第2処理と、を実行することを特徴とする。また、当該装置に対応する方法及びプログラムであることを特徴とする。
【発明の効果】
【0011】
本発明によれば、通信状況に応じた適切な再送閾値を設定できる。
【図面の簡単な説明】
【0012】
図1】一実施形態に係るTCP通信装置の機能ブロック図である。
図2】一実施形態に係る通信システムの構成図である。
図3】一実施形態に係るTCP通信システムの動作のフローチャートである。
図4】説明例を表として示す図である。
【発明を実施するための形態】
【0013】
図1は、一実施形態に係るTCP通信装置の機能ブロック図である。TCP通信装置10は、TCP機能部1、順序違い距離計算部2、順序違い距離管理部3、再送閾値計算部4、再送パケット判断部5、再送閾値書換部6、再送フラグ設定部7及び通信処理部8を備える。TCP通信装置10はスマートフォン等のモバイル端末で、無線アクセスネットワークを介してネットワーク通信を行うものであってよい。
【0014】
TCP機能部1は、TCPにおける通常の機能として、コネクション管理、輻輳制御、再送制御、ACK送信などの機能を担う。順序違い距離計算部2、順序違い距離管理部3、再送閾値計算部4、再送パケット判断部5、再送閾値書換部6及び再送フラグ設定部7はそれぞれ詳細を後述するように、本実施形態においてTCP機能部1に対して追加的な機能を提供する。
【0015】
通信処理部8は、TCP通信装置10がTCP/IP階層モデルにおいて通信を行うために必要となる処理のうち、TCP機能部1によるトランスポート層以外の処理を担い、下位側のネットワークインターフェース層及びインターネット層の処理と、上位側のアプリケーション層の処理とを担う。通信処理部8は、これら各層について任意の既存手法を用いて実現することができる。
【0016】
図2は、一実施形態に係る通信システムの構成図である。通信システム20は、送信側ノード10S及び受信側ノード10Rを備える。送信側ノード10S及び受信側ノード10Rはいずれも、機能ブロック構成として図1のTCP通信装置10の構成を有するが、以下の説明では図2のように、メール等の何らかのアプリケーションによりデータ送信を行う側を送信側ノード10S(「送信側」と略称する)とし、当該データの受信を行う側を受信側ノード10R(「受信側」と略称する)として説明する。
【0017】
本実施形態の通信システム20によれば、「順序違いによるACK」と「ロスによるACK」の判断手法を改善し、不要な再送を防ぐことができる。このため、送信側及び受信側はそれぞれ、以下の機能を有する。
【0018】
受信側は、図1内にも示される通り、以下の機能1R~4Rを有する。
<1R> 受信側は、順序違い距離計算部2を有し、順序違い距離 [単位:パケット]の集計を行う。ここで、順序違い距離とは、到着済みパケットのシーケンス番号最大値と、到着したパケットのシーケンス番号から導出する、何パケット分遅れて届いたかを表す値である。
【0019】
<2R> 受信側は、順序違い距離管理部3を有し、直近のnパケットの順序違い距離を管理する。すなわち、上記の順序違い距離計算部2が、到着したパケットに対して逐次的に順序違い距離を計算しているのに対し、順序違い距離管理部3は、到着した直近のn個のパケットについて当該計算された順序違い距離を記憶しておく。nは、所定数として予め設定しておく。
【0020】
<3R> 受信側は、再送閾値計算部4を有し、上記の順序違い距離管理部3で管理しているnパケット分の順序違い距離の統計値を基に、再送閾値(すなわち、いくつの重複ACKで再送をトリガすべきかの値)を定期的に導出して、送信側に通知する。
【0021】
なお、再送閾値決定手法は後述するが、様々な方法で決定してよく、パーセンタイル保証的な決定手法や、平均値を基準とする手法や、中央値を基準とする手法などを用いることができる。
<4R> 受信側は、再送パケット判断部5を有し、TCPヘッダのオプション領域に含まれる「再送フラグ」を見て、受信したパケットが再送パケットか否かを判断する機能を持つ。
【0022】
送信側は、図1内にも示される通り、以下の機能1S、2Sを有する。
<1S> 送信側は、再送閾値書換部6を有し、受信側から受け取った再送閾値を基に現在設定されている再送閾値を書き換える。再送閾値の数だけ重複ACKを受け取った場合に、再送処理を行う。
【0023】
<2S> 送信側は、再送フラグ設定部7を有し、再送パケットを送信する際、TCPヘッダのオプション領域に「再送フラグ」を1に設定し、受信側で受信パケットが再送パケットか否かを判断できるようにする。
【0024】
なお、再送フラグを設定する理由は次の通りである。順序違い距離の集計をする際、再送パケットを集計に含めると、順序違いの程度が正しく算出されなくなってしまう。そのため、TCPヘッダのオプショナルフィールドに「再送フラグ領域」を含めて、それが再送パケットなのか順序が入れ替わったパケットなのかを受信ノードが判断できるようにする。
【0025】
図3は、一実施形態に係るTCP通信システム20の動作のフローチャートである。
【0026】
ステップS1では、送信側がメール等の何らかのアプリケーションの処理として、受信側へのデータの送信を開始し、TCP機能部1の処理により、受信側とコネクションを確立し、送信データをパケットに分割して、送信元ポート、宛先ポート、シーケンス番号、確認応答番号などをTCPヘッダとして付与したうえで、各パケットを順次、受信側へと送信する。ステップS1ではまた、受信側が、TCP機能部1の処理により、送信側がコネクションを確立し、当該送信されたパケットの受信を開始する。
【0027】
ステップS2では、受信側が、ステップS1で送信開始されたパケットの新たな受信があったか否かを判定し、受信していればステップS3へ進み、受信していなければステップS2に戻ることを繰り返し、受信があるまで待機する。
【0028】
ステップS3では、受信側が、ステップS2で受信したパケットについて重複ACKを送信する必要があるか否かを判断し、必要があればステップS3からステップS4へ進んで受信側から送信側へと重複ACKを送信してからステップS5へ進み、必要がなければステップS3からステップS5へと進む。
【0029】
ステップS5では、受信側が、その各部2~5により再送閾値を更新(再送閾値計算部4が計算する最新の再送閾値へと更新)して送信側へと送信してから、ステップS2に戻る。なお、ステップS5の送信タイミングは適宜のタイミングを予め設定することができ、このように1パケットを受信するたびに必要に応じて送信するようにしてもよいし、複数パケット(例えば100パケット)に1回で送信するようにしてもよいし、値の更新があった際に送信するようにしてもよい。
【0030】
以下、ステップS5における受信側の各部2~5による処理の詳細を説明する。
【0031】
再送閾値計算部4による再送閾値の決定は、順序違い距離管理部3に保存されているn個の順序違い距離dの各種統計値を用いて、以下のような手法で決定して良い。
●「余計な再送をXパーセンタイル防ぐ」ことを基準に決定する手法
●順序違い距離の平均値や、平均値からの偏差で決定する手法
●順序違い距離の中央値や、中央値からの偏差で決定する手法
【0032】
ここで、たまたまパケットが順序通りに到着することが続いた場合に、再送閾値が0や1などに設定されてしまうことを防ぐため、閾値には下限値を設けてよい。同様に、再送までの時間が極端に高まることを防ぐために、再送閾値に上限値を設けてよい。
【0033】
順序違い距離dは以下の通り算出することができる
d=(seq_num_max - seq_num)/ segment_size
ここで、seq_num_maxは、n個の直近の到着済みパケットのシーケンス番号のうち、最大のものであり、seq_numは、直近に到着したパケットのシーケンス番号であり、segment_sizeは、セグメントサイズ(パケットのデータ長)である。
【0034】
換言すれば、送信側が送信したデータパケットに、送信順でID=1,2,3,…を付与すると、順序違い距離dは、n個の直近の到着済みパケットのIDのうちの最大値(maxとする)から、直近の到着済みパケットのIDの値(nowとする)を減算したものとして算出でき、直近のパケットの到達順番の違い(到着順番の入れ替わり度合い)を定量化した値に該当する。
d=max-now
【0035】
<説明例>
説明のため、n=9とし、9個のパケットに、送信側での送信の順序に従って、送信開始時点から1~9のIDが割り振られたものとする。1, 4, 2, 6, 9, 8, 7, 3, 5の順番でパケットが到着した場合、逐次的に計算される順序違い距離dは図4の通りとなる。
【0036】
この図4の表の例の場合、順序違い距離dは下記のようになる
・ ID = 4が到着した時:d = 4 - 4 = 0
・ ID = 2が到着した時:d = 4 - 2 = 2
・ ID = 6が到着した時:d = 6 - 6 = 0
・ ID = 5が到着した時:d = 9 - 5 = 4
【0037】
この、図4の表の例の場合、ID=5が到着した時点で、再送閾値tはn=9個についての各種の統計値により、下記のような値として算出できる。
・90パーセンタイルで余計な再送を防ぐなら、再送閾値t = 5(上の表にて、4回までの重複ACKを許容すれば、90パーセンタイルで不要な再送を防ぐことができる)
・平均値(切り上げ)を採用するなら、t = 2(閾値下限 = t_minとすると、t_min ≧ 2であれば閾値に変更なし)
・中央値を採用するなら、t = 1(閾値下限 = t_minとすると、t_min ≧ 0であれば閾値に変更なし)
【0038】
以上、本発明の実施形態によれば、通信状況に応じた適切な再送閾値の設定を実現することにより、不要な再送処理の回数を最小限に抑えることができる。以下、種々の補足例、代替例、追加例などについて説明する。
【0039】
<ハードウェア構成や本実施形態をプログラムとして提供することについて>
TCP通信装置10の各機能は、TCP通信装置10がCPU及びメモリ等のコンピュータハードウェアを備え、CPUがメモリに格納されたコンピュータプログラムを実行することにより実現される。なお、送受信に関して、通信インタフェースを利用してよい。なお、TCP通信装置10として、汎用のコンピュータ装置を使用して構成してもよく、又は、専用のハードウェア装置として構成してもよい。
【0040】
本実施形態のTCP通信装置10によれば、情報通信技術のインフラ整備に寄与することができる。これにより、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0041】
図3のステップS2~S5では、受信側の動作をメインで説明したが、受信側からの返信される情報に応じて、送信側も、前述した通りの再送閾値書換部6や、再送フラグ設定部7の処理を行っている。図4のようなn=9個等の統計を算出するに際しても、前述の通り、再送パケット判断部5の処理により、再送パケットを除外してn=9個等の統計を算出する。
【符号の説明】
【0042】
10…TCP通信装置、1…TCP機能部、2…順序違い距離計算部、3…順序違い距離管理部、4…再送閾値計算部、5…再送パケット判断部、6…再送閾値書換部、7…再送フラグ管理部
図1
図2
図3
図4