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

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

▶ 株式会社デンソーの特許一覧

<>
  • 特許-送信装置、方法、及びプログラム 図1
  • 特許-送信装置、方法、及びプログラム 図2
  • 特許-送信装置、方法、及びプログラム 図3
  • 特許-送信装置、方法、及びプログラム 図4
  • 特許-送信装置、方法、及びプログラム 図5
  • 特許-送信装置、方法、及びプログラム 図6
  • 特許-送信装置、方法、及びプログラム 図7
  • 特許-送信装置、方法、及びプログラム 図8
  • 特許-送信装置、方法、及びプログラム 図9
  • 特許-送信装置、方法、及びプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】送信装置、方法、及びプログラム
(51)【国際特許分類】
   H04L 47/41 20220101AFI20241008BHJP
   H04L 45/12 20220101ALI20241008BHJP
【FI】
H04L47/41
H04L45/12
【請求項の数】 12
(21)【出願番号】P 2022045816
(22)【出願日】2022-03-22
(65)【公開番号】P2023139989
(43)【公開日】2023-10-04
【審査請求日】2023-12-20
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】中田 恒夫
【審査官】岩田 玲彦
(56)【参考文献】
【文献】国際公開第2007/111331(WO,A1)
【文献】特開2008-306321(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 47/41
H04L 45/12
(57)【特許請求の範囲】
【請求項1】
複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置(10)であって、
上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出する算出部(12)と、
前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択する選択部(14)と、
前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信する送信部(16)と、
を含む送信装置。
【請求項2】
前記選択部は、前記保持部に保持されたパケットに前記到着順に付与されるシーケンス番号を用いて、前記予測遅延に基づいて選択されるパケットのシーケンス番号に対してマージンを持たせたシーケンス番号のパケットを、前記到着順が後のパケットとして選択する請求項1に記載の送信装置。
【請求項3】
前記選択部は、前記複数の通信経路間で負荷分散の均衡を図るために設定された値である許容遅延内で送信可能なパケットについての前記予測遅延に基づいて、前記マージンを設定する請求項2に記載の送信装置。
【請求項4】
前記選択部は、前記遅延大の通信経路から送信するパケットの予測遅延と、前記遅延大の通信経路以外の遅延小の通信経路から送信するパケットの予測遅延との差である予測遅延差に応じた値の前記マージンを設定する請求項2に記載の送信装置。
【請求項5】
前記選択部は、前記複数の通信経路のうち、前記遅延大の通信経路以外の遅延小の通信経路の回線速度に応じた値の前記マージンを設定する請求項2に記載の送信装置。
【請求項6】
前記選択部は、前記予測遅延差と前記遅延小の通信経路の回線速度とを乗じて算出したオフセットに応じた値の前記マージンを設定する請求項4に記載の送信装置。
【請求項7】
前記選択部は、前記マージンを自然数で定義する請求項2~請求項6のいずれか1項に記載の送信装置。
【請求項8】
前記選択部は、前記複数のパケットの各々のデータ量が同一ではない場合、前記マージンをデータ量で定義し、前記予測遅延に基づいて選択されるパケットの次のパケットから順に所定のパケットまでの各パケットのデータ量を加算した総和と前記マージンとして定義されたデータ量との差が所定範囲となる場合の前記所定のパケットを、前記到着順が後のパケットとして選択する請求項2~請求項6のいずれか1項に記載の送信装置。
【請求項9】
前記選択部は、前記遅延大の通信経路以外の遅延小の通信経路が2以上ある場合、前記遅延小の通信経路の各々についてのマージンの総和を、最終的な前記マージンとして設定する請求項2~請求項8のいずれか1項に記載の送信装置。
【請求項10】
前記送信部は、前記複数の通信経路間で負荷分散の均衡を図るために設定された値である許容遅延内で送信が完了する個数の前記パケットを送信する請求項1~請求項9のいずれか1項に記載の送信装置。
【請求項11】
複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置であって、
算出部が、上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出し、
選択部が、前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択し、
送信部が、前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信する、
ことを含む処理をコンピュータが実行する送信方法。
【請求項12】
コンピュータを、
複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置であって、
上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出する算出部と、
前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択する選択部と、
前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信する送信部
として機能させるための送信プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、送信装置、送信方法、及び送信プログラムに関する。
【背景技術】
【0002】
従来、通信の負荷を通信経路間に分散させることで、単一の経路では実現困難である大容量の通信経路を提供する技術が存在する。
【0003】
しかし、多重化により帯域は拡大するものの、複数経路のうち最も遅延の大きい経路が送信の律速となってしまうため、遅延の異なる経路を多重化することで遅延が大きくなる場合があるという問題があった。
【0004】
このような経路間の遅延差の増加により負荷分散の効果が小さくなることを避けるために、例えば特許文献1に記載される技術が開示されている。特許文献1に開示の技術では、各経路の遅延および回線速度の推定値から、送信する各パケットの予定送信経路を、受信ノードへの到着予測時刻の順番が送信ノードに到着した時刻の順番と等しくなるように決定する。そして、そのうち各経路に許容される最大遅延の大きい経路1では送信待ちパケットのうち先頭ではないパケットを送信する。これにより、経路間の遅延差を抑制しつつ各経路に適正な負荷をかけることが可能となり、通信効率を最適化している。
【先行技術文献】
【特許文献】
【0005】
【文献】特許第4488256号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記従来技術では、経路1の許容遅延が大きいほど、経路1で送信した最後のパケットの到着までに要する時間が長くなるため、その間に経路1以外の経路の通信状態が変化する可能性が高くなる。そのため、経路1以外の経路の回線速度が更に高速化した場合には、受信ノードへのパケット到着順序の解決待ち時間による、受信ノード下流へのパケットの転送遅延が発生するという問題がある。
【0007】
本発明は、上記の点に鑑みてなされたものであり、複数の通信経路で負荷分散によりパケットを送信する際に、遅延の小さい経路が予測よりも高速化した場合でも、受信側における転送遅延を抑制することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明に係る送信装置は、複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置(10)であって、上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置(20)に到着するまでに要する時間である予測遅延を算出する算出部(12)と、前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択する選択部(14)と、前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信する送信部(16)と、を含んで構成されている。
【0009】
また、本発明に係る送信方法は、複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置であって、算出部が、上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出し、選択部が、前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択し、送信部が、前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信することを含む処理をコンピュータが実行する方法である。
【0010】
また、本発明に係る送信プログラムは、コンピュータを、複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置であって、上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出する算出部と、前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択する選択部と、前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信する送信部として機能させるためのプログラムである。
【発明の効果】
【0011】
本発明に係る送信装置、送信方法、及び送信プログラムによれば、複数の通信経路で負荷分散によりパケットを送信する際に、遅延の小さい経路が予測よりも高速化した場合でも、受信側における転送遅延を抑制することができる。
【図面の簡単な説明】
【0012】
図1】通信システムの概略構成を示すブロック図である。
図2】送信装置のハードウェア構成を示すブロック図である。
図3】送信装置の機能ブロック図である。
図4】通信経路の高速化時の従来の送信を説明するための図である。
図5】通信経路の高速化時の本実施形態における送信を説明するための図である。
図6】マージンの数値設定方法の一例を説明するための図である。
図7】マージンを量で定義する際のマージンの数値設定方法の一例を説明するための図である。
図8】通信経路が3以上ある場合のマージンの数値設定方法の一例を説明するための図である。
図9】送受信のタイミングの一例を示すシーケンス図である。
図10】送信処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。
【0014】
図1に示すように、本実施形態に係る通信システム100は、送信装置10と受信装置20とを含む。送信装置10と受信装置20とは、通信回線30を介して接続され、相互にデータを送受信する。通信回線30は、複数の通信経路を多重化して構成される。なお、通信システム100に含まれる送信装置10及び受信装置20の各々の数は図1の例に限定されず、送信装置10及び受信装置20はそれぞれ2以上含まれていてもよい。
【0015】
図2に、送信装置10のハードウェア構成を示す。図2に示すように、送信装置10は、CPU(Central Processing Unit)42、メモリ44、記憶装置46、入力装置48、出力装置50、記憶媒体読取装置52、及び通信I/F(Interface)54を有する。各構成は、バス56を介して相互に通信可能に接続されている。
【0016】
記憶装置46には、後述する送信処理を実行するための送信プログラムが格納されている。CPU42は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU42は、記憶装置46からプログラムを読み出し、メモリ44を作業領域としてプログラムを実行する。CPU42は、記憶装置46に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0017】
メモリ44は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。メモリ44の一部は送信キュー(保持部)として機能する。記憶装置46は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0018】
入力装置48は、例えば、キーボードやマウス等の、各種の入力を行うための装置である。出力装置50は、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための装置である。出力装置50として、タッチパネルディスプレイを採用することにより、入力装置48として機能させてもよい。
【0019】
記憶媒体読取装置52は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリなどの各種の記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。通信I/F54は、受信装置20を含む他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
【0020】
受信装置20のハードウェア構成は、図2に示す送信装置10のハードウェア構成と概ね同様であるため、説明を省略する。なお、受信装置20の記憶装置46には、受信装置20の各処理を実行するための受信プログラムが格納されている。
【0021】
次に、図3を参照して、本実施形態に係る送信装置10の機能的な構成を説明する。図3に示すように、送信装置10は、算出部12と、選択部14と、送信部16とを含む。各機能部は、図2に示すCPU42によって実現される。
【0022】
まず、送信装置10の送信キューには、ネットワーク層の上位層から到着した送信待ちデータがパケット毎に格納される。この複数のパケットは、到着順に送信キューに保持される。この送信キューで保持されたパケットは到着順にシーケンス番号(以下、「[seq] 」で表現する。)が付与される。なお、送信キューは、本発明の保持部の一例である。送信装置10のメモリ44の一部が、送信キューとして機能する。
【0023】
算出部12は、送信キューで保持されたパケットが送信装置10から送信されて受信装置20に到着するまでに要する時間である予測遅延を算出する。算出部12は、送信キューで保持されたパケットのデータ量及び複数の通信経路の各々の回線速度に基づいて予測遅延を算出する。
【0024】
選択部14は、送信キューで保持されている複数のパケットの各々が到着順に受信装置20で受信されるように、複数のパケットの各々を送信する通信経路を複数から一つ選択する。その際、選択部14は、算出部12で算出された予測遅延の値が最も大きくなる通信経路(以下、「遅延大の通信経路」という。)が選択された場合には、算出部12で算出した予測遅延に基づいて送信を選択されたパケットよりも、到着順が後のパケットを選択する。
【0025】
ここで、図4を用いて、本実施形態との比較例におけるパケットの選択方法について説明する。比較例は、受信装置にシーケンス番号順にパケットが到着するように予測遅延にのみ基づいて各パケットを送信する通信経路を選択する方法である。
【0026】
図4は、予測遅延に基づいて複数の経路で送信するパケットのシーケンス番号を選択した例を示している。ここで、図中のtは時間を、vは通信経路の回線速度を示す。時間tは左向きに増加し、速度vは上向きに増加するように図中で示している。また、紙面向かって左が送信側であり右が受信側である。立体のブロックは、送信キューに到着しシーケンス番号順に並んだままのパケットを示しており、平面のブロックは、複数経路に割り振られた後の選択後のパケットを示している。また、平面のブロックの横幅は、そのブロックに対応するパケットの送信に要する時間を表しており、ブロックの縦幅は、そのブロックに対応するパケットが送信される速度を表している。この複数の平面のブロックは、受信側に近いほどパケットの到着が早いことも示している。また、図中の経路1とは遅延大の通信経路を示しており、対して経路2とは遅延大の通信経路ではない通信経路(以下、「遅延小の通信経路」という。)を示している。
【0027】
図4を参照して、比較例における各パケットを送信する通信経路の選択及び送信について具体的に説明する。
【0028】
まず、送信キューの中にシーケンス番号順にパケットが格納されている。次に、パケットを送信する経路を複数の経路から選択する。より具体的には、図4(a)に示すように、遅延大の経路である経路1の回線速度がv、遅延小の経路である経路2の回線速度が2vの場合、各パケットのデータ量が同一であれば、経路1における1パケット分の予測遅延は2t、経路2における1パケット分の予測遅延はtとなる。この各経路の予測遅延に基づいて、例えば、[seq1,seq2]のパケットを経路2から送信し、[seq3]のパケットを経路1から送信するように選択する。続いて、[seq4,seq5]のパケットを経路2から送信し、[seq6]のパケットを経路1から送信するように選択する。これにより、経路2から[seq1,seq2]のパケットが送信され受信が終わるタイミングで、経路1から[seq3]の送受信が終わるようにパケットが送信される。次に経路2から[seq4,seq5]のパケットが送信され受信が終わるタイミングで、経路1から[seq6]の送受信が終わるようにパケットが送信される。
【0029】
このように、比較例では、算出された予測遅延に基づいて、待ち時間の無駄を抑制するように、すなわち受信装置にシーケンス番号順にパケットが到着するように、各パケットを送信する経路を選択している。
【0030】
しかし、図4(b)のように、実際のパケット送信時において、経路2の回線速度が予測遅延を算出した時点よりも高速化する場合がある。図4(b)では、経路2の回線速度が、2vから4vに高速化した例を示している。すなわち、経路2では、1パケット分の予測遅延が1/2tとなる。この場合、図4(a)と同様の方法で選択されたパケットのシーケンス番号順に送信を行うと、経路1で未到着のパケットよりもシーケンス番号が後のパケットが経路2で先に到着してしまう。そのため、シーケンス番号順に受信装置の下流へパケットを転送する場合、経路2で先に到着したパケットは、そのパケットよりもシーケンス番号が前のパケットの到着を待つ必要がある。これをHead Of Lineブロッキング(以下、「HoLB」という。)という。HoLBが起きる結果、受信装置において、順序解決待ち時間による受信装置から下流への転送遅延が発生する。
【0031】
図4(b)の例では、経路1で[seq3]のパケットの送信が完了するまでに、経路2から[seq1,seq2,seq4,seq5]のパケットを送信可能である。しかし、経路1で[seq3]のパケットの送信が完了するまで、経路2で送信された[seq4,seq5]のパケットは転送を待たなくてはならない。つまり、[seq4,seq5]のパケットにHoLBが起きている。同様に、経路2の[seq7]以降のパケットにもHoLBが起きている。このようにHoLBが頻発することや、HoLBによる待ち時間が増大することで、経路2の回線速度の高速化時に下流への転送遅延が起きるという問題が比較例ではある。すなわち、予測遅延に基づく到着順のみを考慮した場合、遅延小の通信経路の高速化時に転送遅延が起きる。
【0032】
そこで、本実施形態の選択部14は、遅延大の通信経路が選択された場合には、算出部12で算出した予測遅延に基づいて送信を選択されたパケットよりも、到着順が後のパケットを選択する。具体的には、図5に示すように、選択部14は、遅延大の通信経路である経路1において、算出部12で算出した予測遅延に基づいて選択されるパケットのシーケンス番号に対して、マージンを持たせたシーケンス番号のパケットを選択する。
【0033】
例えば、選択部14は、図4(a)と同様の例において、経路1から送信するパケットとして、予測遅延に基づいて選択される[seq6]のパケットに対して、図5(a)に示すように、+2のマージンを持たせる。これにより、選択部14は、予測遅延に基づく選択では[seq6]のパケットを選択するところで、[seq8]のパケットを経路1から送信するパケットとして選択している。同様に、選択部14は、予測遅延に基づいて選択される[seq9]に対して、図5(a)では+6のマージンを持たせることで、[seq15]のパケットを経路1から送信するパケットとして選択している。
【0034】
このように、選択部14は、マージンを持たせたシーケンス番号のパケットを遅延大の経路から送信するように選択する。この選択方法により、経路2が高速化した際にも、図5(b)のように、最初こそHoLBは発生するものの、経路2の後続のパケットへの影響は小さくなる。結果として、比較例である図4(b)の場合よりHoLBによる下流への転送遅延は緩和される。
【0035】
次に、選択部14におけるマージンの設定方法について説明する。
【0036】
図6を参照して、自然数で定義する場合のマージンの具体例について説明する。なお、図6において、経路1から送信するパケットを、送信が早い順にP1、P2、P3で表す。
【0037】
まず、マージンの設定に用いる変数として、例えば、以下の3種類の変数を定義する。
【0038】
1種類目の変数として、予測遅延差iについて説明する。予測遅延差iとは、後述する許容遅延内で送信可能なパケットの範囲で、遅延大の通信経路から送信する各パケットの予測遅延tと、遅延小の通信経路から送信する最終パケットの予測遅延tとの差で求めた時間である。図6では、斜線のブロックが、各通信経路の許容遅延内に送信されるパケットを表しており、網点のブロックは、斜線のブロックのパケットの送信後に送信されるパケットを表している。図4図5、及び図8においても同様である。なお、この送信のタイミングについては後述する。
【0039】
図6の例では、許容遅延内で送信可能なパケットが、経路1及び経路2ともに3つである場合を表している。また、各パケットの予測遅延は、送信装置10からパケットを送信した時刻を遅延0とし、遅延0の時点から、パケットが受信装置20へ到着するまでの経過時間に相当する。例えば、パケットP3についての予測遅延(P3)は、図6中の実線の両矢印の幅に相当する。この場合、パケットP3についての予測遅延差(P3)は、図6中の点線の両矢印で示すように、経路1のパケットP3の予測遅延(P3)から、経路2のパケット3つ分の予測遅延を引いた時間となる。また、パケットP2についての予測遅延差(P2)も同様に、図6中の破線の両矢印の幅に相当する。予測遅延差iは下記式(1)で表される。
【0040】
i[予測遅延差] = t[経路1の予測遅延] - t[経路2の予測遅延] (1)
【0041】
2種類目の変数として、オフセットjについて説明する。オフセットjとは、予測遅延差iと遅延小の通信経路の回線速度vとを乗じて求めたデータ量のことである。オフセットjは下記式(2)で表される。
【0042】
j[オフセット] = i[予測遅延差] × v[経路2の回線速度] (2)
【0043】
3種類目の変数kとして、無負荷時オフセットkについて説明する。無負荷時オフセットkとは、遅延大の通信経路の予測遅延tと遅延小の通信経路の回線速度vとを乗じて求めたデータ量のことである。無負荷時オフセットkは下記式(3)で表される。
【0044】
k[無負荷時オフセット] = t[経路1の予測遅延] × v[経路2の回線速度] (3)
【0045】
次に、上記の変数i,j,kを用いたマージンの算出について説明する。ここでは、下記式(4)~(8)に示す5つの算出方法を例示する。
【0046】
なお、選択部14は、式(4)~(8)において、変数i,j,kは前述の式(1)~(3)で求め、定数aは任意の値を設定する。なお、選択部14は、定数aとして、各式において異なる値を設定してもよい。また、選択部14は、マージンを付加したシーケンス番号が、送信キューに保持されているパケットのシーケンス番号の最大値を超えないように、送信キューに保持されているパケット数に応じて動的に定数aを設定してもよい。
【0047】
= v[経路2の回線速度] × a (4)
= k[無負荷時オフセット] × a (5)
= j[オフセット] × a (6)
= t[経路1の予測遅延] × m (7)
= i[予測遅延差] × m (8)
【0048】
また、選択部14は、予測遅延差iが一定値以上の場合に、式(4)~(8)のいずれかでマージンmの値を算出し、予測遅延差iが一定値未満の場合には、マージンm=0としてもよい。受信装置20でのパケット到着順序のずれが無視できる程度に小さい場合には、処理負荷の軽減及び効率最適化を優先させるものである。選択部14は、式(4)~(8)のいずれかで算出したマージンmの値をパケット数に換算して、自然数のマージンを定義する。
【0049】
また、式(4)~(8)で算出したマージンを適用する場合の各効果は以下のようになる。
【0050】
式(4):経路2の遅延減少(例えば、図6(a1)に示すように、遅延0の時点から最初のパケット到達までの遅延減少)時の影響を緩和する。
式(5):経路2の帯域拡大(例えば、図6(a2)に示すように、予測遅延算出時よりも経路2の回線速度が高速化)時の影響を緩和する。
式(6):最終パケット受信後の経路2の帯域拡大時の影響を緩和する。
式(7):時間経過によるさらなる経路2の帯域拡大(図6(a3))時の影響を緩和する。
式(8):最終パケット受信後の時間経過によるさらなる経路2の帯域拡大時の影響を緩和する。
【0051】
図5の例は、経路1から2番目及び3番目に送信するパケットのシーケンス番号に、上記式(6)のマージンを付加した例である。具体的には、それぞれのパケットの予測遅延の、経路2から送信する最終パケット[seq4]の予測遅延との差の間に、経路2から到着予定のパケット数の2倍となる値をマージンとして設定している。これは[seq4]のパケット受信後に経路2が2倍高速化した場合までHoLブロッキングを防ぐ設定に相当する。
【0052】
次に、マージンをデータ量で定義する場合について説明する。マージンの値自体は、前述の5つの計算式のいずれかで算出可能であるが、算出した値をパケット数に換算して、マージンを自然数で定義することができない場合がある。例えば、図7に示すように、パケットの各々のデータ量が同一ではない場合である。そのため、選択部14は、マージンをデータ量で定義すると共に、次に示す方法で、マージンに基づくシーケンス番号のパケットを選択する。
【0053】
具体的には、選択部14は、予測遅延に基づいて、遅延大の経路で送信するように選択されるマージン非適用時のパケットの次のパケットから順に所定のパケットまでの各パケットのデータ量を加算した総和を求める。図7の例では、マージン非適用時のパケットは[seq5]であり、次のパケットは[seq6]である。次に、選択部14は、前述の5つの計算式のいずれかで求められたマージンとして定義されたデータ量と、前述の総和との差が所定範囲となる場合の所定のパケットを、遅延大の経路から送信するパケットとして選択する。
【0054】
選択部14は、上記の差が所定範囲となる場合の所定のパケットを、以下の3パターンのいずれかにより選択する。
【0055】
1. マージン(データ量) > 各パケットのデータ量の総和 となる最大のシーケンス番号を選択する。
2. マージン(データ量) <= 各パケットのデータ量の総和 となる最小のシーケンス番号を選択する。
3. マージン(データ量)に各パケットのデータ量の総和が最も近くなるシーケンス番号を選択する。
【0056】
例えば、図7の場合、選択部14は、パターン1の場合[seq9]、パターン2の場合[seq10]、パターン3の場合[seq9]のパケットを選択する。
【0057】
次に、遅延小の通信経路が2以上ある場合のマージンの設定方法を説明する。
【0058】
選択部14は、遅延小の通信経路が2以上ある場合に、遅延小の通信経路の各々についてのマージンの総和をとり、その値を最終的なマージンとして設定する。
【0059】
図8に示すように、例えば、経路1で送信するパケットとして、マージン適用前では、1番目のパケット[seq7]、2番目のパケット[seq14]、3番目のパケット[seq21]が選択されているものとする。そして、2番目のパケットに対して経路2のマージンが+2、経路3のマージンが+6と算出されたとする。この場合、経路1の2番目のパケットに対するマージンの総和は2+6で8となり、選択部14は、[seq14]に8を足した[seq22]のパケットをマージン適用後のパケットとして選択する。
【0060】
送信部16は、送信キューに保持された複数のパケットの各々を、選択部14により選択された通信経路の各々を介して送信する。
【0061】
なお、送信部16は、設定された許容遅延内で送信が完了する個数以内のパケットを送信する。許容遅延とは、複数の通信経路間で負荷分散の均衡を図るために、各経路で許容される遅延の最大値であり、遅延大の経路ほど大きな許容遅延が設定される。
【0062】
具体的には、送信装置10の送信部16は、送信開始時において、図9に示す無負荷時遅延及び回線速度(図9中のv)を推定し、これらに基づき、許容遅延内に収まる最大のデータ量をウィンドウサイズとして設定する。そして、送信部16は、マージンを反映して選択したウィンドウサイズ分のパケットを送信する。送信開始のタイミングは経路1も経路2も同じである。経路1の例である図9(a)では、ウィンドウサイズ分のパケットとして、パケットP1~P5が送信されている。なお、選択部14で選択後のシーケンス番号、すなわちマージンが反映されたシーケンス番号に基づいて、各経路から1番目に送信されるパケットをP1、2番目に送信されるパケットをP2等として示している。送信部16は、所定のタイミングで受信装置20から送信される、受信装置20で受信したパケットの肯定応答であるACKを受け取る。図9(a)に示す経路1では、受信装置20が2パケット受信する毎にACKを送信装置10へ送信する例を示しているが、ACK送信のタイミングは、適宜設定可能である。送信部16は、ACKを受け取ると、図9(a)ではP2までの送受信が正常に完了したことを検知し、ウィンドウサイズの空きである2パケット分(パケットP6~P7)を次に送信する。
【0063】
また、経路2の例である図9(b)でも同様に、送信部16は、送信開始のタイミング及びACK受信後のタイミングでパケットを送信する。図9(b)では、送信開始時のウィンドウサイズが6パケット分であり、受信装置20が3パケット受信する毎にACKを送信装置10へ送信する例を示している。したがって、次以降の送信タイミングには3パケット分の空きがあるため、送信部16は、経路2については、次以降の送信タイミング毎に3パケットずつ送信する。なお、図9において、星印はパケットの送信タイミングを表している。
【0064】
送信部16は、上記の各送信タイミングにおいて、選択部14により予め選択されているパケットを各経路から選択してもよいし、送信タイミング毎に再選択されたパケットを送信してもよい。後者の場合、具体的には、送信部16は、ACKを受信する都度、選択部14に通知する。選択部14は、通知を受けた時点での予測遅延等に基づくマージンを反映して、各経路で送信するパケットを再選択する。また、送信部16は、ACK受信後の送信タイミングにおける送信可能量を、ウィンドウの空き量ではなく、ACK受信時の回線速度等を再推定するなどして、送信タイミングの都度決定するようにしてもよい。
【0065】
受信装置20は、送信装置10から送信されたパケットを受信すると、所定のタイミングで送信装置10へACKを送信する。また、受信装置20は、経路毎に受信したパケットをシーケンス番号順に下流へ転送する。
【0066】
次に、本実施形態に係る通信システム100の作用について説明する。送信装置10において、図10に示す送信処理が実行される。なお、送信処理は、本発明の送信方法の一例である。
【0067】
図10を参照して、送信処理について説明する。
【0068】
ステップS10で、算出部12が、送信装置10の送信キューへのパケットの到着を検出すると、到着順に各パケットに1から順に連番のシーケンス番号を付与する。次に、ステップS12で、算出部12が、シーケンス番号を特定するための変数nに1を代入する。
【0069】
次に、ステップS14で、算出部12が、シーケンス番号nのパケットを送信する経路が未選択か否かを判定する。選択済みの場合(ステップS14:NO)、ステップS16へ移行し、変数nを1インクリメントして、ステップS14に戻る。未選択の場合(ステップS14:YES)、ステップS18へ移行する。
【0070】
ステップS18では、算出部12が、シーケンス番号nのパケットの経路毎の予測遅延を算出する。予測遅延は、送信キューに格納された送信待ちデータのデータ量、及び通信回線30の推定回線速度から算出する。
【0071】
次に、ステップS20で、選択部14が、算出部12により算出された予測遅延に基づいて、到着予測が早いのは複数経路のうち遅延大の経路か否かを判定する。遅延大の経路ではない場合(ステップS20:NO)、ステップS26へ移行し、選択部14がシーケンス番号nのパケットの経路として遅延小の経路を選択して、ステップS28へ移行する。一方、遅延大の経路である場合(ステップS20:YES)、ステップS22へ移行し、選択部14が、マージンmを設定する。次に、ステップS24で、選択部14が、シーケンス番号n+mのパケットの経路として遅延大の経路を選択し、ステップS28へ移行する。
【0072】
ステップS28では、選択部14が、送信キュー内の全パケットの経路の選択を完了したか否かを判定する。経路を未選択のパケットが存在する場合(ステップS28:NO)、ステップS14に戻る。全てのパケットの経路の選択が完了した場合(ステップS28:YES)、ステップS30へ移行し、送信部16が、選択部14で選択した経路で各パケットを送信し、ステップS10に戻る。
【0073】
なお、上記送信処理では、送信キュー内の全パケットの経路の選択が完了した段階でパケットを送信する場合について説明したが、所定個のパケットの経路の選択が完了した段階でパケットを送信するようにしてもよい。
【0074】
以上説明したように、本実施形態に係る通信システムによれば、複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置が、上位層から到着する複数のパケットを到着順に保持する。そして、送信キューに保持されたパケットのデータ量及び複数の通信経路の各々の回線速度に基づいて、複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出する。また、送信装置が、複数のパケットの各々が送信キューへの到着順に受信装置で受信されるように、複数のパケットの各々を送信する通信経路を選択する。この際に、送信装置は、複数の通信経路のうち、同一データ量のパケットを送信する場合の予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、予測遅延に基づいて選択されるパケットよりも到着順が後のパケットを選択する。そして、送信装置が、複数のパケットの各々を、選択した通信経路の各々を介して送信する。これにより、遅延大の通信経路以外の経路の回線速度が更に高速化した場合でも、Head Of Line ブロッキングの頻度を低くし、受信装置へのパケット到着順序の解決待ち時間を削減できるため、受信装置下流へのパケットの転送遅延を抑制できる。
【0075】
また、上記実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した送信処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、送信処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0076】
また、上記実施形態では、送信プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0077】
100 通信システム
10 送信装置
12 算出部
14 選択部
16 送信部
20 受信装置
30 通信回線
42 CPU
44 メモリ
46 記憶装置
48 入力装置
50 出力装置
52 記憶媒体読取装置
54 通信I/F
56 バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10