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

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

▶ 日本電気株式会社の特許一覧

特許7416334パケット制御システム、パケット制御方法及びパケット制御装置
<>
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図1
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図2
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図3
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図4
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図5
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図6
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図7
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図8
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図9
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図10
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図11
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図12
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図13
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図14
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図15
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図16
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図17
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図18
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図19
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図20
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図21
  • 特許-パケット制御システム、パケット制御方法及びパケット制御装置 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】パケット制御システム、パケット制御方法及びパケット制御装置
(51)【国際特許分類】
   H04L 47/52 20220101AFI20240110BHJP
   H04L 49/9023 20220101ALI20240110BHJP
【FI】
H04L47/52
H04L49/9023
【請求項の数】 20
(21)【出願番号】P 2023518137
(86)(22)【出願日】2022-06-30
(86)【国際出願番号】 JP2022026313
【審査請求日】2023-03-20
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和3年度、国立研究開発法人情報通信研究機構、「革新的情報通信技術研究開発委託研究/Beyond 5G研究開発促進事業/Beyond 5Gで実現する同期型CPSコンピューティング基盤の研究開発」、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】沢辺 亜南
(72)【発明者】
【氏名】篠原 悠介
【審査官】宮島 郁美
(56)【参考文献】
【文献】国際公開第2020/026983(WO,A1)
【文献】特開2000-299686(JP,A)
【文献】特開2011-24027(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-12/66,13/00,41/00-49/9057,61/00-65/80,69/00-69/40
(57)【特許請求の範囲】
【請求項1】
送出タイミングが関連付けられたパケットを取得する取得手段と、
前記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューするエンキュー手段と、
前記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから前記パケットをデキューし、ネットワークに送出する送出手段と、を備え、
前記送出手段が前記ネットワークに送出するパケット数は、前記ネットワークの利用可能な帯域に応じて制限され、
前記送出手段は、前記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する、パケット制御システム。
【請求項2】
前記送出手段は、前記パケットに関連付けられた送出タイミングに送出されなかったパケットを、当該送出タイミングからの遅延量に応じた優先順序に従って送出する、
請求項1に記載のパケット制御システム。
【請求項3】
前記エンキュー手段は、前記パケットに関連付けられた送出タイミングに対応するキューにエンキューされているエンキュー済みパケット数に基づいて、当該パケットを当該キューにエンキューするか否かを判定する
請求項1又は2に記載のパケット制御システム。
【請求項4】
前記エンキュー手段は、前記キューごとに、当該キューに規定されたデキュータイミングにおいてデキューし、前記ネットワークに送出することができる見込みパケット数を推定し、
前記パケットに関連付けられた送出タイミングに対応するキューにおける前記エンキュー済みパケット数に応じて、当該パケットのエンキュー先を特定する、
請求項3に記載のパケット制御システム。
【請求項5】
前記エンキュー手段は、前記キューごとに、当該キューについて過去に推定した前記見込みパケット数を参照して、現行の前記見込みパケット数を推定する、請求項4に記載のパケット制御システム。
【請求項6】
前記複数のキューは、遅延粒度に応じて複数のレベルにレベル分けされており、
前記エンキュー手段は、前記パケットに関連付けられた送出タイミングに対応する第1のキューにおける前記エンキュー済みパケット数が前記見込みパケット数以上である場合、当該パケットを、前記第1のキューと同じレベルの第2のキューにエンキューする、
請求項4に記載のパケット制御システム。
【請求項7】
前記取得手段が取得したパケットのアプリケーション種別に応じた算出手法で当該パケットの送出タイミングを算出する算出手段、を更に備える、請求項1に記載のパケット制御システム。
【請求項8】
送出タイミングが関連付けられたパケットを取得することと、
前記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューすることと、
前記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから前記パケットをデキューし、ネットワークに送出することと、を含み、
前記送出する工程において、前記ネットワークに送出するパケット数は、前記ネットワークの利用可能な帯域に応じて制限され、
前記送出する工程において、前記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する、パケット制御方法。
【請求項9】
前記送出する工程において、前記パケットに関連付けられた送出タイミングに送出されなかったパケットを、当該送出タイミングからの遅延量に応じた優先順序に従って送出する、
請求項8に記載のパケット制御方法。
【請求項10】
前記エンキューする工程において、前記パケットに関連付けられた送出タイミングに対応するキューにエンキューされているエンキュー済みパケット数に基づいて、当該パケットを当該キューにエンキューするか否かを判定する
請求項8又は9に記載のパケット制御方法。
【請求項11】
前記エンキューする工程において、前記キューごとに、当該キューに規定されたデキュータイミングにおいてデキューし、前記ネットワークに送出することができる見込みパケット数を推定し、
前記パケットに関連付けられた送出タイミングに対応するキューにおける前記エンキュー済みパケット数に応じて、当該パケットのエンキュー先を特定する、
請求項10に記載のパケット制御方法。
【請求項12】
前記エンキューする工程において、前記キューごとに、当該キューについて過去に推定した前記見込みパケット数を参照して、現行の前記見込みパケット数を推定する、請求項11に記載のパケット制御方法。
【請求項13】
前記複数のキューは、遅延粒度に応じて複数のレベルにレベル分けされており、
前記エンキューする工程において、前記パケットに関連付けられた送出タイミングに対応する第1のキューにおける前記エンキュー済みパケット数が前記見込みパケット数以上である場合、当該パケットを、前記第1のキューと同じレベルの第2のキューにエンキューする、
請求項11に記載のパケット制御方法。
【請求項14】
前記取得したパケットのアプリケーション種別に応じた算出手法で当該パケットの送出タイミングを算出すること、を更に含む、請求項8に記載のパケット制御方法。
【請求項15】
送出タイミングが関連付けられたパケットを取得する取得手段と、
前記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューするエンキュー手段と、
前記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから前記パケットをデキューし、ネットワークに送出する送出手段と、を備え、
前記送出手段が前記ネットワークに送出するパケット数は、前記ネットワークの利用可能な帯域に応じて制限され、
前記送出手段は、前記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する、パケット制御装置。
【請求項16】
前記送出手段は、前記パケットに関連付けられた送出タイミングに送出されなかったパケットを、当該送出タイミングからの遅延量に応じた優先順序に従って送出する、
請求項15に記載のパケット制御装置。
【請求項17】
前記エンキュー手段は、前記パケットに関連付けられた送出タイミングに対応するキューにエンキューされているエンキュー済みパケット数に基づいて、当該パケットを当該キューにエンキューするか否かを判定する
請求項15又は16に記載のパケット制御装置。
【請求項18】
前記エンキュー手段は、前記キューごとに、当該キューに規定されたデキュータイミングにおいてデキューし、前記ネットワークに送出することができる見込みパケット数を推定し、
前記パケットに関連付けられた送出タイミングに対応するキューにおける前記エンキュー済みパケット数に応じて、当該パケットのエンキュー先を特定する、
請求項17に記載のパケット制御装置。
【請求項19】
前記エンキュー手段は、前記キューごとに、当該キューについて過去に推定した前記見込みパケット数を参照して、現行の前記見込みパケット数を推定する、請求項18に記載のパケット制御装置。
【請求項20】
前記複数のキューは、遅延粒度に応じて複数のレベルにレベル分けされており、
前記エンキュー手段は、前記パケットに関連付けられた送出タイミングに対応する第1のキューにおける前記エンキュー済みパケット数が前記見込みパケット数以上である場合、当該パケットを、前記第1のキューと同じレベルの第2のキューにエンキューする、請求項18に記載のパケット制御装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケットを制御する技術に関する。
【背景技術】
【0002】
パケットの送信制御を複数のキューを用いて行う技術が提案されている。例えば特許文献1には、通信パケットの受け渡しに関する受渡情報から所定の関数によって求められた値に応じて、複数のキューのいずれかにパケットを振り分けて格納し、キューごとの帯域を制御して出力する中継装置が記載されている。また、特許文献2には、パケットの種別に応じてパケットをキューへ振り分け、キューに設定されたQoS(Quality of Service)値に応じて送信予定時刻を決定してパケットを出力することが記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2013-34164号公報
【文献】特開2011-24027号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1及び2に記載の技術では、ネットワークの利用可能な帯域が変動する場合、瞬間的な過負荷の発生によって遅延及び遅延ジッターが急増してしまうという問題がある。
【0005】
本発明の一態様は、上記の問題に鑑みてなされたものであり、その目的の一例は、ネットワークの利用可能な帯域が変動する場合であっても、ネットワークを戦略的に活用できるパケット制御技術を提供することである。
【課題を解決するための手段】
【0006】
本発明の一側面に係るパケット制御システムは、送出タイミングが関連付けられたパケットを取得する取得手段と、前記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューするエンキュー手段と、前記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから前記パケットをデキューし、ネットワークに送出する送出手段と、を備え、前記送出手段が前記ネットワークに送出するパケット数は、前記ネットワークの利用可能な帯域に応じて制限され、前記送出手段は、前記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する。
【0007】
本発明の一側面に係るパケット制御方法は、送出タイミングが関連付けられたパケットを取得することと、前記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューすることと、前記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから前記パケットをデキューし、ネットワークに送出することと、を含み、前記送出する工程において、前記ネットワークに送出するパケット数は、前記ネットワークの利用可能な帯域に応じて制限され、前記送出する工程において、前記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する。
【0008】
本発明の一側面に係るパケット制御装置は、送出タイミングが関連付けられたパケットを取得する取得手段と、前記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューするエンキュー手段と、前記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから前記パケットをデキューし、ネットワークに送出する送出手段と、を備え、前記送出手段が前記ネットワークに送出するパケット数は、前記ネットワークの利用可能な帯域に応じて制限され、前記送出手段は、前記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する。
【発明の効果】
【0009】
本発明の一態様によれば、ネットワークの利用可能な帯域が変動する場合であっても、ネットワークを戦略的に活用できる。
【図面の簡単な説明】
【0010】
図1】例示的実施形態1に係るパケット制御方法の構成を示すブロック図である。
図2】例示的実施形態1に係るパケット制御方法の流れを示すフロー図である。
図3】例示的実施形態1に係るパケット制御装置の構成を示すブロック図である。
図4】例示的実施形態2に係る情報処理装置の構成を示すブロック図である。
図5】例示的実施形態2に係る情報処理装置のパケット送信制御に関する構成の一例を概略的に示す図である。
図6】例示的実施形態2に係る複数のキューの具体例を示す図である。
図7】例示的実施形態2に係るエンキュー処理の流れを示すフローチャートである。
図8】例示的実施形態2に係るエンキュー処理の具体例を示す図である。
図9】例示的実施形態2に係るデキュー処理の流れを示すフローチャートである。
図10】例示的実施形態2に係るパケットアウト処理の具体例を示す図である。
図11】例示的実施形態2に係る再エンキュー処理の具体例を示す図である。
図12】例示的実施形態2に係る再エンキュー処理の具体例を示す図である。
図13】例示的実施形態2に係るパケットアウト処理の具体例を示す図である。
図14】例示的実施形態2に係るパケットアウト処理の具体例を示す図である。
図15】例示的実施形態2に係る遅延時間と遅延ジッターとの測定結果の一例を示す図である。
図16】要求レベルの算出処理の一例を説明するための図である。
図17】キューに格納されたパケットの送出タイミングを説明するための図である。
図18】遅延時間の測定結果の一例を示す図である。
図19】パケットの順序についての測定結果の一例を示す図である。
図20】エンキュー部が行うエンキュー処理の他の例を示すフローチャートである。
図21】エンキュー部が行うエンキュー処理を説明するための図である。
図22】本発明の各例示的実施形態に係る各装置の各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0011】
〔例示的実施形態1〕
本発明の第1の例示的実施形態について、図面を参照して詳細に説明する。本例示的実施形態は、後述する例示的実施形態の基本となる形態である。
【0012】
<パケット制御システムの構成>
本例示的実施形態に係るパケット制御システム1の構成について、図1を参照して説明する。図1は、パケット制御システム1の構成を示すブロック図である。パケット制御システム1は、取得部11、エンキュー部12及び送出部17を備える。取得部11、エンキュー部12及び送出部17は、本明細書に係る取得手段、エンキュー手段及び送出手段の一例である。
【0013】
取得部11は、送出タイミングが関連付けられたパケットを取得する。取得部11が取得するパケットは、送信制御の対象である。取得部11が取得するパケットには、送出タイミングだけでなく、要求される遅延ジッター、又は要求されるスループットが関連付けられていてもよい。送出タイミングが関連付けられたパケットは、例えば、リアルタイム性が重要となる用途において使用されるパケットが挙げられ、例えば、これに限定するものではないが、音声通信等のパケットが挙げられる。
【0014】
要求される遅延ジッター、遅延時間、スループット等をパケットに関連付ける手法としては、一例として、要件を記載したタグ(情報ビット、等)をパケットのヘッダもしくはトレイラとして付与してもよい。又は、一例として、パケットのヘッダのオプションフィールドに要件を記載することで、要求する遅延ジッターを各パケットに関連付けてもよい。パケットに関連付けられる要件(遅延ジッター、遅延時間、スループット、等)は、一例として、パケットのアプリケーションの種別により異なる。換言すると、パケットに関連付けられる要件は、アプリケーションの種別に対応している。
【0015】
エンキュー部12は、上記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューする。複数のキューは、パケット制御システム1がパケットの送信制御のために用いるキューである。複数のキューは、一例として、デキュータイミングとしてそれぞれ異なるタイミングが規定されている。エンキュー部12は一例として、パケットに関連付けられた送出タイミングに対応するキューに当該パケットをエンキューする。
【0016】
送出部17は、上記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから上記パケットをデキューし、ネットワークに送出する。ここで、送出部17が上記ネットワークに送出するパケット数は、上記ネットワークの利用可能な帯域に応じて制限される。また、送出部17は、上記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する。例えば、LTE(Long Term Evolution)等の周波数帯域幅を選択できる通信方式の場合、周波数帯域の輻輳状況等により利用可能な帯域が変動する。利用可能な帯域が一定でないネットワークにおいては、利用可能な帯域において瞬間的な過負荷の発生等により遅延及び遅延ジッターが数倍に急増してしまい、パケットに関連付けられた送出タイミングに当該パケットを送出できない状況が発生する場合がある。
【0017】
送出部17は一例として、パケットに関連付けられた送出タイミングに送出されなかったパケットを、当該送出タイミングからの遅延量に応じた優先順位に従って送出する。また、送出部17は一例として、パケットに関連付けられた送出タイミングに対応するキューにエンキューされているエンキュー済みパケット数に基づいて、当該パケットを当該キューにエンキューするか否かを判定してもよい。この場合、送出部17は、当該パケットを当該キューにエンキューしないと判定した場合、当該キューとは異なるキューに当該パケットをエンキューする。異なるキューにエンキューされたパケットは、当該異なるキューに関連付けられたデキュータイミングにおいてデキューされ、ネットワークに送出される。本明細書において、「デキュー」とは、キューからパケットを取り出すことをいう。また、「パケットの送出」は、デキューされたパケットを通信リンクに送出することをいう。
【0018】
以上のように、本例示的実施形態に係るパケット制御システム1は、送出タイミングが関連付けられたパケットを取得する取得部11と、上記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューするエンキュー部12と、上記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから上記パケットをデキューし、ネットワークに送出する送出部17と、を備え、送出部17が上記ネットワークに送出するパケット数は、上記ネットワークの利用可能な帯域に応じて制限され、送出部17は、上記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する構成が採用されている。このため、本例示的実施形態に係るパケット制御システム1によれば、ネットワークの利用可能な帯域が変動する場合であっても、ネットワークを戦略的に活用できるという効果が得られる。
【0019】
<パケット制御方法の流れ>
本例示的実施形態に係るパケット制御方法S1の流れについて、図2を参照して説明する。図2は、パケット制御方法S1の流れを示すフロー図である。なお、パケット制御方法S1における各ステップの実行主体は、パケット制御システム1が備えるプロセッサであってもよいし、他の装置が備えるプロセッサであってもよく、各ステップの実行主体がそれぞれ異なる装置に設けられたプロセッサであってもよい。
【0020】
ステップS11では、少なくとも1つのプロセッサが、送出タイミングが関連付けられたパケットを取得する。ステップS12では、少なくとも1つのプロセッサが、上記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューする。
【0021】
ステップS13では、少なくとも1つのプロセッサが、上記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから上記パケットをデキューし、ネットワークに送出する。ここで、ステップS13において上記ネットワークに送出するパケット数は、上記ネットワークの利用可能な帯域に応じて制限される。また、ステップS13において、上記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する。
【0022】
以上のように、本例示的実施形態に係るパケット制御方法S1は、送出タイミングが関連付けられたパケットを取得することと、上記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューすることと、上記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから上記パケットをデキューし、ネットワークに送出することと、を含み、上記送出する工程において、上記ネットワークに送出するパケット数は、上記ネットワークの利用可能な帯域に応じて制限され、上記送出する工程において、上記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する構成が採用されている。このため、本例示的実施形態に係るパケット制御方法S1によれば、ネットワークの利用可能な帯域が変動する場合であっても、ネットワークを戦略的に活用できるという効果が得られる。
【0023】
<パケット制御装置の構成>
本例示的実施形態に係るパケット制御装置10の構成について、図3を参照して説明する。図3は、パケット制御装置10の構成を示すブロック図である。パケット制御装置10は、取得部11、エンキュー部12、及び送出部17を備える。取得部11、エンキュー部12及び送出部17は、上述のパケット制御システム1が備える取得部11、エンキュー部12及び送出部17と同じ機能を有する。
【0024】
以上のように、本例示的実施形態に係るパケット制御装置10は、送出タイミングが関連付けられたパケットを取得する取得部11と、上記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューするエンキュー部と、上記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから上記パケットをデキューし、ネットワークに送出する送出部17と、を備え、送出部17が上記ネットワークに送出するパケット数は、上記ネットワークの利用可能な帯域に応じて制限され、送出部17は、上記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する構成が採用されている。このため、本例示的実施形態に係るパケット制御装置10によれば、ネットワークの利用可能な帯域が変動する場合であっても、ネットワークを戦略的に活用できるという効果が得られる。
【0025】
〔例示的実施形態2〕
本発明の第2の例示的実施形態について、図面を参照して詳細に説明する。なお、例示的実施形態1にて説明した構成要素と同じ機能を有する構成要素については、同じ符号を付し、その説明を繰り返さない。
【0026】
<情報処理装置の構成>
図4は、情報処理装置1Aの構成を示すブロック図である。情報処理装置1Aは、パケットの送信を制御する装置であり、例えば中継装置である。情報処理装置1Aは、本明細書に係るパケット制御装置の一例である。情報処理装置1Aは、アプリケーションの要求に応じて通信リンクの資源割当を行うソフトスライシングによりネットワークスライシングを行う。すなわち、情報処理装置1Aは、複数のキューを用いたキューイングによるパケット送信制御を行う。情報処理装置1Aは、図4に示すように、制御部10A、記憶部20A、通信部30A及び入出力部40Aを備える。
【0027】
情報処理装置1Aの各機能部のうちの一部が、情報処理装置1Aとは別の装置に実装されてもよい。例えば、算出部15が情報処理装置1Aと異なる他の装置に実装され、情報処理装置1Aが上記他の装置から算出部15の算出結果を受け取り、キュー制御部16が動作してもよい。また、上記他の装置はクラウドに配置されてもよい。
【0028】
(通信部30A)
通信部30Aは、情報処理装置1Aの外部の装置と通信回線を介して通信する。通信回線の具体的構成は本例示的実施形態を限定するものではないが、通信回線は一例として、無線LAN(Local Area Network)、有線LAN、WAN(Wide Area Network)、公衆回線網、モバイルデータ通信網、Wi-Fi(登録商標)、LTE(Long Term Evolution)、5G、ローカル5G、4G、3G、又は、これらの組み合わせである。通信部30Aは、制御部10Aから供給されたデータを他の装置に送信したり、他の装置から受信したデータを制御部10Aに供給したりする。
【0029】
(入出力部40A)
入出力部40Aには、キーボード、マウス、ディスプレイ、プリンタ、タッチパネル等の入出力機器が接続される。入出力部40Aは、接続された入力機器から情報処理装置1Aに対する各種の情報の入力を受け付ける。また、入出力部40Aは、制御部10Aの制御の下、接続された出力機器に各種の情報を出力する。入出力部40Aとしては、例えばUSB(Universal Serial Bus)などのインタフェースが挙げられる。
【0030】
(制御部10A)
制御部10Aは、図4に示すように、取得部11、クラス分け部14、算出部15及びキュー制御部16を備える。
【0031】
(取得部11)
取得部11は、送信制御の対象であるパケットを取得する。送信制御の対象であるパケットには、一例として、パケットの到着時刻、要求される遅延時間、要求されるスループット、及び、要求される遅延ジッターの少なくとも1つが関連付けられている。要求される遅延時間とパケットの到着時刻とから、要求される送出タイミングが特定されるから、パケットの到着時刻と要求される遅延時間とが関連付けられたパケットは、要求される送出タイミングが関連付けられたパケットであるとも言える。そのため、換言すると、取得部11は、要求される送出タイミング及び上記遅延ジッターが関連付けられたパケットを取得する。また、取得部11は、上記遅延ジッターが関連付けられたパケット、及び、上記遅延ジッターが関連付けられていないパケットを取得する。また、換言すると、取得部11は、要求されるスループットが関連付けられたパケットを取得する。
【0032】
(クラス分け部14)
クラス分け部14は、パケットのクラス分けを行う。クラス分け部14は、一例として、パケットのアプリケーションの種別等に基づきクラス分けを行い、クラス分けの結果を示すフローIDを出力する。クラス分けは例えば、スループット、遅延、遅延ジッターのいずれが要求されるかについてパケットを分類することをいう。例えばスループットが要求されるパケットは動画のパケットであり、遅延が要求されるパケットは緊急性を要する通信のパケットである。また、遅延ジッターが要求されるパケットは例えば、リアルタイムセンシング、又は遠隔制御のパケットである。
【0033】
(算出部15)
算出部15は、パケットアウトの要件であるパケットアウト要件を算出する。パケットアウト要件は、パケットをパケットアウトする際に求められる諸条件である。パケットアウト要件は一例として、要求時刻及び要求レベルを含む。要求時刻は、要求されるパケットアウトの時刻である。要求時刻は、本明細書に係る送出タイミングの一例である。要求レベルは、パケットアウトが要求されるキューのレベルである。要求レベルは、本明細書に係る第1のレベルの一例である。算出部15が行うパケットアウト要件の算出方法については後述する。
【0034】
(キュー制御部16)
キュー制御部16は、複数のキューを用いたキューイングによるパケットの送信制御を行う。キュー制御部16は、一例として、カレンダーキューイングの技術を用いてパケットの送信制御を行う。キュー制御部16は、エンキュー部12及びデキュー部13を含む。エンキュー部12は、レベル分けされた複数のキューのいずれかにパケットをエンキューする。また、エンキュー部12は、パケットに関連付けられた遅延ジッターに対応する第1のレベルとは異なる第2のレベルのキューからデキューされたパケットを、上記第1のレベルのキューに再エンキューする。
【0035】
本例示的実施形態において、複数のレベルは、対応する遅延ジッターがそれぞれ異なっている。換言すると、レベルとは、遅延ジッターの値の範囲に応じて割り当てる分類である。より具体的には、一例として、上位のレベルほど遅延粒度が大きく、下位のレベルほど遅延粒度が小さい。そのため、複数のキューは、遅延粒度に応じて複数のレベルにレベル分けされているということもできる。
【0036】
デキュー部13は、複数のキューそれぞれに規定されたデキュータイミングに応じて、各キューから上記パケットをデキューする。また、デキュー部13は、要求レベルからデキューしたパケットをネットワークに送出する。デキュー部13は、本明細書に係る送出手段の一例である。
【0037】
(記憶部20A)
記憶部20Aは、パケットバッファ21を含む。パケットバッファ21は、送信を待機しているパケットを保存するために確保されるメモリ空間である。パケットバッファ21にバッファリングされたパケットは、上記複数のキューにより遅延時間等を制御された後、ネットワークに送出される。
【0038】
図5は、情報処理装置1Aのパケット送信制御に関する構成の一例を概略的に示す図である。なお、図5において、一方向性の矢印は、ある信号(データ)の流れの方向を端的に示したもので、双方向性を排除するものではない。図5の例で、クラス分け部14は、パケットのクラス分けを行い、クラス分け結果を示すフローIDを、パケットバッファ21から取得したパケットポインタとともに算出部15に供給する。クラス分け部14によるクラス分けは、一例として、アプリケーションの種別に基づき行われる。クラス分け結果を示すフローIDは、算出部15がパケットアウト要件を算出する際に参照される。算出部15は、フローIDに対応する算出手法でパケットアウト要件を算出する。換言すると、算出部15は、アプリケーションの種別によってパケットアウト要件を特定する。また、算出部15は、アプリケーションの種別によってパケットアウト要件の算出に用いる数値を変更したり、重みを変更したりする、と言うこともできる。更に換言すると、算出部は、取得部11が取得したパケットのアプリケーション種別に応じた算出手法で当該パケットの送出タイミングを算出する。なお、クラス分けの結果を示すフローIDは、キュー制御部16のキュー制御においては参照されない。また、パケットポインタは、パケットバッファ21において各パケットの格納場所を示すポインタである。
【0039】
算出部15は、フローIDに対応する算出手法でパケットアウト要件を算出する。本例示的実施形態では、算出部15は、要求時刻及び要求レベルをパケットアウト要件として算出する。算出部15は、算出したパケットアウト要件を、パケットポインタ及びパケット到着時刻とともにキュー制御部16に供給する。キュー制御部16は、複数のキューを用いてパケット送信制御を行う。キュー制御部16は、複数のキューを用いたキューイングにより送信制御を行い、パケットをネットワークに送出する。
【0040】
ここで、キュー制御部16がパケット送信制御に用いる複数のキューの具体例について図面を参照しつつ説明する。図6は、複数のキューの具体例を示す図である。図6の例では、キュー制御部16は、(i×j)個のキューQi_j(1≦i≦3、0≦j≦9)を用いたカレンダーキューイングによりパケットの送信制御を行う。複数のキューQi_jは複数のレベルiにレベル分けされている。すなわち、レベルi毎に10個のキューQi_0~Qi_9が用意されている。図6の例では、レベル3が最上位のレベルであり、レベル1が最下位のレベルである。また、図6の例では、仮想時間単位を1[ms]としている。
【0041】
複数のキューは、レベル毎に遅延粒度(Granularity)が異なっている。換言すると、複数のキューは、レベルが高いほど、遅延粒度が大きくなるようにレベル分けされている。図6の例で、レベル1のキューQ1_jの遅延粒度は、1[ms]である。また、レベル2のキューQ2_jの遅延粒度は、10[ms]である。また、レベル3のキューQ3_jの遅延粒度は、100[ms]である。
【0042】
エンキュー部12は、送信制御の対象であるパケットを、当該パケットに関連付けられた要求時刻に対応するキューにエンキューする。また、デキュー部13は、キューにエンキューされたパケットを、当該キューに規定されたデキュータイミングに応じてデキューする。エンキュー処理とデキュー処理の詳細については後述する。
【0043】
<パケット制御方法の流れ>
情報処理装置1Aは、複数のキューを用いてパケットの送信制御を行う。以下では、(i)パケットのエンキュー処理と、(ii)パケットのデキュー処理とについて順に説明する。
【0044】
((i)パケットのエンキュー処理)
図7は、パケットのエンキュー処理の流れを示すフローチャートである。
(ステップS21・S22)
ステップS21において、取得部11は、送信制御の対象であるパケットを取得する。また、ステップS22において、算出部15は、ステップS21で取得したパケットのパケットアウト要件を算出する。算出部15は、要求フローの種類に応じた算出手法でパケットアウト要件を算出する。ここで、(a)スループット要求フロー、(b)遅延要求フロー、(c)遅延ジッター要求フロー、のそれぞれの場合について、パケットアウト要件の算出手法の具体例を説明する。
【0045】
((a)スループット要求フロー)
(a)スループット要求フローは、スループットが要求されるフローである。ここで、ひとつ前のパケットの送信時刻をut-1[s]、パケットサイズをs[byte]、要求スループットをx[bps]とすると、パケットアウトが要求される時刻である要求時刻uは、一例として、
u=ut-1+8s/x
である。
【0046】
また、スループット要求フローの場合、遅延ジッターを要求されておらず遅延ジッターを制御する必要がないため、要求レベルlは任意である。そのため、算出部15は例えば、要求レベルlを、複数のキューの最上位のレベルとする。換言すると、算出部15は、遅延ジッターが関連付けられていないパケットの要求レベルlとして、複数のレベルのうちの最上位のレベルを算出する。例えばキューのレベルとしてレベル1~レベル3が設定されている場合、算出部15は、レベル3を要求レベルlとして決定する。
【0047】
ただし、要求時刻u及び要求レベルlを算出する手法は上述した例に限られず、算出部15は他の手法により要求時刻u又は要求レベルlを算出してもよい。算出部15は例えば、スループットが関連付けられたパケットの要求レベルlとして、当該スループットの算出粒度に対応するレベルよりも1つ下位のレベルを算出してもよい。
【0048】
((b)遅延要求フロー)
遅延要求フローは、遅延が要求されるフローである。ここで、現在時刻をt[s]、要求された遅延時間をy[s]とすると、要求時刻uは、一例として、
u=t+y
である。
【0049】
また、遅延要求フローの場合、遅延ジッターを要求されておらず遅延ジッターを制御する必要がないため、要求レベルlは任意である。そのため、算出部15は例えば、要求レベルlを、複数のキューの最上位のレベルとする。換言すると、算出部15は、上記遅延ジッターが関連付けられていないパケットの要求レベルlとして、複数のレベルのうちの最上位のレベルを算出する。例えばキューのレベルとしてレベル1~レベル3が設定されている場合、算出部15は、レベル3を要求レベルlとして決定する。
【0050】
ただし、要求時刻u及び要求レベルlを算出する手法は上述した例に限られず、算出部15は他の手法により要求時刻u又は要求レベルlを算出してもよい。算出部15は、例えば、スループットが関連付けられたパケットの要求レベルlとして、当該スループットの算出粒度に対応するレベルよりも1つ下位のレベルを算出してもよい。
【0051】
((c)遅延ジッター要求フロー)
遅延ジッター要求フローは、遅延ジッターが要求されるフローである。ここで、一つ前のパケットの送信時刻をut-1[s]、要求された遅延時間をy[s]、要求された遅延ジッターをz[s]とする。また、キューのレベルiの粒度(Granularity)をg、仮想時間単位をvとすると、要求時刻uは、一例として、
u=ut-1+y
である。また、要求レベルlは、一例として、
l=argmax(gv<z)
である。換言すると、算出部15は、パケットに関連付けられた遅延ジッターを用いて、要求レベル(第1のレベル)を算出する。
【0052】
(ステップS23)
図7のステップS23において、エンキュー部12は、ステップS21で取得したパケットを、複数のキューのいずれかにエンキューする。より具体的には、エンキュー部12は、算出部15が算出した要求時刻uに対応するキューにパケットをエンキューする。換言すると、エンキュー部12は、取得部11が取得したパケットを、当該パケットに関連付けられた要求時刻uに対応するキューにエンキューする。
【0053】
図6の例において、エンキュー部12は、要求時刻uの下3桁を参照し、下3桁が000~00j[ms](0≦j≦9)であるパケットを、レベル1のキューQ1_jにエンキューする。また、エンキュー部12は、下3桁が010~099[ms]であるパケットを、レベル2のキューQ2_jにエンキューする。より具体的には、エンキュー部12は、要求時刻uの2桁目の値がj(0≦j≦9)であるパケットを、レベル2のキューQ2_jにエンキューする。また、エンキュー部12は、下3桁が100~999[ms]であるパケットを、レベル3のキューQ3_jにエンキューする。より具体的には、エンキュー部12は、要求時刻uの3桁目の値がj(0≦j≦9)であるパケットを、レベル3のキューQ3_jにエンキューする。
【0054】
より具体的には、エンキュー部12は例えば、要求時刻uが50[ms]~59[ms]のパケットを、レベル2のキューQ2_5にエンキューする。また、エンキュー部12は例えば、要求時刻uが60[ms]~69[ms]のパケットを、レベル2のキューQ2_6にエンキューする。また、エンキュー部12は例えば、要求時刻が100[ms]~199[ms]のパケットを、レベル3のキューQ3_1にエンキューする。
【0055】
(エンキューの具体例)
図8は、エンキュー処理の具体例を示す図である。図8の例では、エンキュー部12は、算出部15が算出した要求時刻uが「9」であるパケットp_9を、レベル1のキューQ1_9にエンキューする。また、エンキュー部12は、算出部15が算出した要求時刻uが「191」であるパケットp_191を、レベル3のキューQ3_1にエンキューする。
【0056】
((ii)パケットのデキュー処理)
図9は、情報処理装置1Aが行うデキュー処理の流れを示すフローチャートの一例を示すである。この例で、デキュー部13は、図9に示す処理を、(i×j)個のキューQi_jのそれぞれについて実行する。ただし、デキュー部13が実行するデキュー処理の流れは図9に示す例に限定されるものではない。
【0057】
(ステップS31)
ステップS31において、デキュー部13は、処理対象であるキューQi_jに規定されたデキュータイミングであるかを判定する。デキュータイミングである場合(ステップS31にてYES)、デキュー部13はステップS32の処理に進む。一方、デキュータイミングでない場合(ステップS31にてNO)、デキュー部13は、デキュータイミングになるまで待機する。
【0058】
ここで、レベルiのn個のキューQi_jのそれぞれに規定されたデキュータイミングは、一例として、時刻(j・ni-1)、(j・ni-1+1)、(j・ni-1+2)、…、((j+1)・ni-1)-1)である。この場合、キューQ3_1に規定されたデキュータイミングは、100、101、102、…、199[ms]である。また、例えば、キューQ1_9に規定されたデキュータイミングは9[ms]である。
【0059】
(ステップS32)
ステップS32において、デキュー部13は、再エンキューを行うか否かを判定する。具体的には、デキュー部13は一例として、デキュー対象であるパケット(キューの先頭のパケット)の要求レベルlが処理対象であるキューQi_jのレベルiよりも高いかを判定することにより、再エンキューを行うか否かを判定する。要求レベルlが処理対象であるキューQi_jのレベルi以上である場合、デキュー部13は再エンキューを行わないと判定する。一方、要求レベルlがレベルi未満である場合、デキュー部は再エンキューを行うと判定する。再エンキューを行わない場合(ステップS32にてNO)、デキュー部13はステップS33の処理に進む。一方、再エンキューを行う場合(ステップS32にてYES)、デキュー部13はステップS34の処理に進む。
【0060】
ただし、ステップS32の判定処理の手法は上述した例に限られず、デキュー部13は他の手法により再エンキューを行うか否かを判定してもよい。デキュー部13は例えば、要求された遅延ジッターの値が所定の条件を満たすか否かによって、再エンキューを行うか否かを判定してもよい。より具体的にはデキュー部13は例えば、要求された遅延ジッターの値が閾値以下である場合に再エンキューを行う一方、要求された遅延ジッターの値が閾値以上である場合に、再エンキューを行なわずにパケットアウトすると判定してもよい。
【0061】
(ステップS33)
ステップS33において、デキュー部13は、パケットをデキューし、ネットワークに送出する。
【0062】
(ステップS34・S35)
ステップS34において、デキュー部13は、キューQi_jからパケットをデキューする。ステップS35において、エンキュー部12は、ステップS34でデキュー部13がデキューしたパケットを、ひとつ下位のレベルのキュー、すなわちレベル(i-1)のキューQ(i-1)_jにエンキューする。換言すると、エンキュー部12は、要求レベル(第1のレベル)よりも上位の第2のレベルのキューからデキューされたパケットを、当該第2のレベルの1つ下位のレベルのキューにエンキューする。
【0063】
図9のステップS32~S36の処理が繰り返されることにより、キューにエンキューされたパケットは、そのキューのひとつ下位のレベルのキューに再エンキューされ、また、再エンキューされたパケットは更にひとつ下位のレベルのキューに再エンキューされる、という処理が繰り返される。
【0064】
(ステップS36)
ステップS36において、デキュー部13は、判定対象であるキューQi_jの所定長に含まれるパケットをデキューしたかを判定する。所定長は一例として、キュー長の(1/ni-1)である。ここで、iはレベルであり、nは各レベルのキューの数である。所定長のパケットをデキューした場合(ステップS36にてYES)、デキュー部13はステップS31の処理に戻り、次のデキュータイミングに到達するまで待機する。一方、所定長のパケットをデキューしていない場合(ステップS36にてNO)、デキュー部13はステップS32の処理に戻り、次のパケットについてデキュー処理を行う。
【0065】
すなわち、この例で、デキュー部13は、キューQi_jに規定されたデキュータイミングにおいて、当該キューにエンキューされた全てのパケットをデキューするのではなく、一部のパケット(キュー長の(1/n)のパケット)をデキューする。デキュータイミングが到来する毎に一部のパケットをデキューする処理を繰り返すことにより、時間nが経過したときに、レベルiのn個のキューQi_jにエンキューされた全てのパケットがデキューされる。
【0066】
例えば、キューQ2_5からは、50[ms]~59[ms]の間に、1/10ずつパケットが排出される。すなわち、50[ms]~59[ms]のパケットは、50[ms]~59[ms]の任意のタイミングで排出される。
【0067】
また、キューQ2_6からは、60[ms]~69[ms]の間に、1/10ずつパケットが排出される。すなわち、60[ms]~69[ms]のパケットは、60[ms]~69[ms]の任意のタイミングで排出される。
【0068】
また、キューQ3_1からは、100[ms]~199[ms]の間に、1/100ずつパケットが排出される。すなわち、要求時刻が100[ms]~199[ms]のパケットは、100[ms]~199[ms]の任意のタイミングで排出される。
【0069】
同様に、キューQ3_2からは、200[ms]~299[ms]の間に、1/100ずつパケットが排出される。すなわち、要求時刻が200[ms]~299[ms]のパケットは、200[ms]~299[ms]の任意のタイミングで排出される。
【0070】
上述したように、ステップS31~S36の処理を繰り返し実行することにより、デキュー部13は、各キューにエンキューされたパケットを、1回以上の段階に分割してデキューする(ステップS33、S34)。
【0071】
以上説明したように、上述の図9の例では、デキュー部13は、各キューに規定されたデキュータイミングにおいてデキュー対象のパケットを再エンキューするかを判定し(図9のステップS32)、再エンキューする場合、当該キューのレベルとは異なるレベルのキューに再エンキューする(ステップS34、S35)一方、再エンキューしない場合、デキューしたパケットをネットワークに送出する(ステップS33)。
【0072】
(パケットアウト処理及び再エンキュー処理の具体例)
パケットアウト処理及び再エンキュー処理の具体例について、図10図14を参照して説明する。図10は、パケットアウト処理の具体例を示す図である。図10の例では、時刻t=009において、デキュー部13は、キューQ1_9に格納されたパケットp_9をパケットアウトし、ネットワークに送出する(図9のステップS33)。
【0073】
図11及び図12は、再エンキュー処理の具体例を示す図である。図11の例で、時刻t=100では、キューQ3_1、キューQ2_0、キューQ1_0、の3つのキューがデキューの対象である。ここで、キューQ3_1に格納されているパケットp_191の要求レベルlが「1」である場合、キューQ3_1のレベル「3」は、要求レベルl(「1」)よりも高い。そのため、デキュー部13は、キューQ3_1からデキューしたパケットp_191を、そのままパケットアウトするのではなく、レベル2のキューQ2_9に再エンキューする(図9のステップS35)。
【0074】
また、図12の例で、時刻t=190では、キューQ3_1、キューQ2_9、キューQ1_0の3つのキューがデキューの対象である。キューQ2_9に格納されているパケットp_191の要求レベルlが「1」である場合、キューQ2_9のレベル「2」は、要求レベルl(「1」)よりも高い。そのため、デキュー部13は、キューQ2_9からデキューしたパケットp_191を、そのままパケットアウトするのではなく、レベル1のキューQ1_1に再エンキューする(図9のステップS35)。
【0075】
図13及び図14は、パケットアウト処理の具体例を示す図である。時刻t=191では、キューQ3_1、キューQ2_9、キューQ1_1の3つのキューがデキューの判定対象である。ここで、キューQ1_1に格納されているパケットp_191の要求レベルlが「1」である場合、デキュー部13は、キューQ1_1からパケットp_191をデキューし、パケットアウトする(図9のステップS33)。
【0076】
図14は、パケットアウトの他の具体例を示す図である。時刻t=100では、キューQ3_1、キューQ2_0、キューQ1_0の3つのキューがデキューの判定対象である。ここで、キューQ3_1に格納されているパケットp_191の要求レベルlが「3」である場合(図9のステップS32にて「YES」)、デキュー部13は、キューQ1_1からパケットp_191をデキューし、パケットアウトする(図9のステップS33)。
【0077】
図15は、遅延時間と遅延ジッターとの測定結果の一例を示す図である。図において、グラフ201は、本例示的実施形態に係る情報処理装置1Aによるパケット送信制御の結果を示すグラフである。図15に示すように、本例示的実施形態に係るパケット送信制御によれば、要求された遅延時間が20[ms]であるパケットの遅延時間は20[ms]以下に収まっている。また、要求された遅延ジッターが1[ms]であるパケットの遅延ジッターは1[ms]であり、要求された遅延ジッターが10[ms]であるパケットの遅延ジッターは10[ms]となっている。図15に示すように、本例示的実施形態によれば、要求された遅延時間と要求された遅延ジッターとの両方を満たすことができる。
【0078】
次いで、遅延ジッターが関連付けられていないパケットの要求レベルの算出処理の一例について、図面を参照しつつ説明する。図16は、要求レベルの算出処理の一例を説明するための図であり、遅延ジッターが関連付けられていないパケットの要求レベルを変更したときのデキューレート[Mbps]の一例を示す図である。図16の例では、遅延粒度がそれぞれ異なる6つのレベル1~6のそれぞれで複数のキューが用意されており、これらのキューを用いてパケットの送信制御を行った結果が示されている。図16の例で、レベル1~レベル6の遅延粒度はそれぞれ、100[s]、10[s]、1[s]、100[ms]、10[ms]、1[ms]である。また、スループットビンが100[ms]の場合の測定結果を示している。図示のように、要求レベルが2以下である場合にデキューレートが安定している。このように、デキューレートを安定させるためには、スループット算出で利用されるビンサイズ(窓幅)よりも一段細かい粒度のレベルを要求レベルに設定すればよい。すなわち、スループットビンが100[ms]のときは10[ms](すなわちレベル2)、1[s]のときは100[ms](レベル3)のように、必要なスループット算出粒度の1つ下位のレベルを設定すればよい。
【0079】
<パケットアウト処理の具体例>
次いで、図9のステップS33のパケットアウト処理の具体例を説明する。この例で、デキュー部13は、上記パケットに関連付けられた送出タイミング(要求時刻u)に送出されなかったパケットを、当該送出タイミングからの遅延量に応じた優先順序に従って送出する。
【0080】
利用可能な帯域が変動する場合、瞬間的な過負荷の発生によって、遅延及び遅延ジッターが数倍に急増する場合がある。例えば、カレンダーキューイングにおいて、利用可能な帯域の変動の影響でデキューが回ってこないことにより、要求時刻uまでにパケットアウトされないパケットが発生する場合がある、この場合、バッファ内でのパケットの滞留時間が増加することで、パケットの遅延及び遅延ジッターが増大してしまう。
【0081】
具体的には例えば、帯域の変動によって、レベル1でデキューできないパケットが発生すると、最低で、キューに規定されたデキュータイミングの時間間隔(レベル1のgranularity×単位時間)の遅延が発生する。このように、各レベルのフローに対して、要求された遅延時間のN倍の遅延が発生することになる。
【0082】
図17はキューに格納されたパケットの送出タイミングを説明するための図である。例えば、図17において、キューQ1_0のデキュータイミングにおいて、キューQ1_0に格納されたパケットが送出できなかった場合、送りきれなかったパケットは、キューQ1_0の次回のデキュータイミングがくるまで待たされる。そのため、送りきれなかったパケットの遅延が10[ms]増加してしまう。
【0083】
そこで、本処理例では、デキュー部13は、送りきれなかったパケットに対して優先順序を設定し、優先的にパケットアウトを行う。優先順序は、一例として、予定時刻を超過した時間の長さに応じて設定される。例えば、デキュー部13は、超過した時間が長いほど優先順位が高くなるように、パケットの優先順序を設定する。ただし、優先順序の設定方法は上述した例に限られず、デキュー部13は他の手法により送りきれなかったパケットの優先順序を設定してもよい。
【0084】
例えば、図17の例で、デキュー部13は、キューQ1_1に規定されたデキュータイミングにおいて、キューQ1_1と同じレベルの他のキューに格納されているパケットであってデキュー予定時刻を超えているパケット(キュー1_0に格納されているパケット)を、キューQ1_1に格納されているパケットよりも優先させてデキューする。
【0085】
図18は、本処理例に係る遅延時間の測定結果の一例を示す図である。図18において、グラフ901は、利用可能な帯域が変動する場合において従来技術の手法によりパケット送信制御を行った場合の遅延時間の測定結果を示す。一方、グラフ902は、利用可能な帯域が変動する場合において本処理例に係るパケット送信制御を行った場合の遅延時間の測定結果を示す。図18に示されるように、グラフ901では、キューに規定されたデキュータイミングの時間間隔のN倍分の遅延が発生するため、遅延ジッターが大幅に増加してしまう。それに対し本処理例では、同じレベルのキューに格納されているパケットであってデキュー予定時刻を超えているパケットを優先的にデキューすることにより、遅延時間の増加が抑制される。
【0086】
図19は、パケットの順序についての測定結果の一例を示す図である。図19において、グラフ801は、利用可能な帯域が変動する場合において、従来技術の手法によりパケット送信制御を行った場合のパケットの受信順序と送出順序との関係を示す。グラフ802は、利用可能な帯域が変動する場合において、本処理例に係るパケット送信制御を行った場合のパケットの受信順序と送出順序との関係を示す。図19に示されるように、グラフ801では、過負荷時にデキューが後回しにされるパケットが発生してしまうため、順序の入れ替わりが発生してしまう。それに対し本処理例では、デキュー予定時刻を超えたものに対して優先的にデキューすることで、順序の入れ替わりの発生を防ぐことができる。
【0087】
<エンキュー処理の他の例>
次いで、図7のステップS23のエンキュー処理の他の例について説明する。エンキュー部12が行うエンキュー処理は上述した例(図7のステップS23の処理)に限られず、エンキュー部12は他の手法によりパケットのエンキュー処理を行ってもよい。
【0088】
図20は、エンキュー処理の他の例を示すフローチャートである。ステップS41において、エンキュー部12は、上記キューごとに、当該キューについて過去に推定した見込みパケット数を参照して、現行の上記見込みパケット数を推定する。
【0089】
(見込みパケット数)
ここで、見込みパケット数とは、各キューに規定されたデキュータイミングにデキュー可能と推定されるパケット数である。ネットワークが輻輳でなく各キューのデキュータイミングにおいてパケットをデキューしきれている場合、キューiの見込みパケット数Li,tは、一例として、
i,t=min(2Li,t-1,Q
と表される。ここで、Li,t-1は1サイクル前に推定した見込みパケット数、Qはキューiに格納可能なパケットの最大値である。
【0090】
一方、ネットワークの輻輳によりキューiに格納されたパケットをデキューしきれていない場合、キューiの見込みパケット数Li,tは、一例として、
i,t=αLi,t-1+(1-α)bi,t
と表される。ここで、αは0≦α≦1を満たす係数、bi,tはキューiがデキューしたパケット数、Li,t-1は1サイクル前に推定した見込みパケット数である。換言すると、エンキュー部12は一例として、キューごとに、当該キューについて、過去にパケットがデキューされ、当該キューにパケットが残った場合には、過去にデキューされたパケット数をさらに参照して、現行の見込みパケット数を推定する。また、エンキュー部12は一例として、過去T秒間に観測したパケット数の平均から、上記見込みパケット数を算出してもよい。この場合、時間Tを短くすることで瞬間的な通信品質の変動に適応でき、時間Tを長くすることで長期的な通信品質の変動に適応できる。
【0091】
ステップS42~44において、エンキュー部12は、パケットに関連付けられた送出タイミングに対応するキューにおけるエンキュー済みパケット数に応じて、当該パケットのエンキュー先を特定する。ここで、送信タイミングに対応するキューとは、送信タイミングに対応するデキュータイミングが規定されているキューである。まず、ステップS42において、エンキュー部12は、エンキュー済みパケット数が見込みパケット数以上であるかを判定する。エンキュー済みパケット数が見込みパケット数以上である場合(ステップS42にてYES)、エンキュー部12はステップS43の処理に進む。一方、エンキュー済みパケット数が見込みパケット数未満である場合(ステップS42にてNO)、エンキュー部12はステップS44の処理に進む。
【0092】
ステップS43において、エンキュー部12は、エンキュー対象であるパケットを、当該キューとは異なるキューにエンキューする。換言すると、エンキュー部12は、上記キューごとに、当該キューに規定されたデキュータイミングにおいてデキューし、上記ネットワークに送出することができる見込みパケット数を推定し、上記パケットに関連付けられた送出タイミングに対応するデキュータイミングが規定されているキューにおいて、上記エンキュー済みパケット数が、上記見込みパケット数以上である場合には、当該パケットを、当該キューとは異なるキューにエンキューする。
【0093】
ステップS44において、エンキュー部12は、エンキュー対象であるパケットを、当該キューにエンキューする。換言すると、エンキュー部12は、上記パケットに関連付けられた送出タイミングに対応するデキュータイミングが規定されているキューにおいて、上記エンキュー済みパケット数が、上記見込みパケット数未満である場合には、当該パケットを、当該キューにエンキューする。
【0094】
上述したように、エンキュー部12は、ステップS42~S44において、パケットに関連付けられた送出タイミング(要求時刻u)に対応するキューにエンキューされているエンキュー済みパケット数に基づいて、当該パケットを当該キューにエンキューするか否かを判定する。ここで、送信タイミングに対応するキューとは、送信タイミングに対応するデキュータイミングが規定されているキューである。
【0095】
図21は、本処理例においてエンキュー部12が行うエンキュー処理を説明するための図である。図21の例では、利用可能な帯域が変動する場合において、エンキュー部12は、エンキューの対象であるキューQ1_0の見込みパケット数qを算出する(図20のステップS41)。エンキュー部12は、キューQ1_0におけるエンキュー済みパケット数が見込みパケット数q以上である場合、キューQ1_0のレベルと同じレベルの他のキューQ1_1に、キューQ1_0にエンキュー予定だったパケットをエンキューする。ここで、キューQ1_0は、本明細書に係る「第1のキュー」の一例であり、キューQ1_1は、本明細書に係る「第2のキュー」の一例である。キューQ1_1に規定されたデキュータイミングは、キューQ1_0に規定されたデキュータイミングよりも遅い。すなわち、図21の例では、エンキュー部12は、パケットに関連付けられた送出タイミングに対応するキューのエンキュー済みパケット数が見込みパケット数q以上である場合、当該パケットを、規定されたデキュータイミングが当該キューに規定されたデキュータイミングよりも遅いキューに、エンキューする。
【0096】
図21の例において、上記パケットをキューQ1_0にエンキューした場合(図中の点線参照)、送出タイミングで送りきれなかったパケットは、キューQ1_0の次回のデキュータイミングがくるまで待たされる。そのため、遅延時間が最低でも10[ms]は増加してしまう。一方、エンキュー部12が上記パケットをキューQ1_0ではなくキューQ1_1にエンキューした場合(図中の実線参照)、遅延時間を9[ms]に抑えることができ、遅延時間の増加を抑制することができる。
【0097】
<情報処理装置の効果>
以上のように、本例示的実施形態に係る情報処理装置1Aにおいては、デキュー部13は、上記パケットに関連付けられた送出タイミングに送出されなかったパケットを、当該送出タイミングからの遅延量に応じた優先順序に従って送出する構成が採用されている。送出されなかったパケットを遅延量に応じた優先順序に従って送出することにより、本例示的実施形態に係る情報処理装置1Aによれば、パケットの送信制御において遅延量が大きくなりすぎることを防ぐことができる。
【0098】
また、本例示的実施形態に係る情報処理装置1Aにおいては、エンキュー部12は、上記パケットに関連付けられた送出タイミングに対応するキューにエンキューされているエンキュー済みパケット数に基づいて、当該パケットを当該キューにエンキューするか否かを判定する構成が採用されている。このため、本例示的実施形態に係る情報処理装置1Aによれば、エンキュー済みパケット数に基づいてエンキューするか否かを判定しない場合に比べて、パケットの送信制御において遅延量が大きくなりすぎることを防ぐことができる。
【0099】
また、本例示的実施形態に係る情報処理装置1Aにおいては、エンキュー部12は、上記キューごとに、当該キューに規定されたデキュータイミングにおいてデキューし、上記ネットワークに送出することができる見込みパケット数を推定し、前記パケットに関連付けられた送出タイミングに対応するキューにおける前記エンキュー済みパケット数に応じて、当該パケットのエンキュー先を特定する構成が採用されている。このため、本例示的実施形態に係る情報処理装置1Aによれば、見込みパケット数に応じてパケットのエンキュー先を特定しない場合に比べて、パケットの送信制御において遅延量が大きくなりすぎることを防ぐことができる。
【0100】
また、本例示的実施形態に係る情報処理装置1Aにおいては、エンキュー部12は、上記キューごとに、当該キューについて過去に推定した上記見込みパケット数を参照して、現行の上記見込みパケット数を推定する構成が採用されている。推定した見込みパケット数を用いてエンキューするキューを決定することにより、本例示的実施形態に係る情報処理装置1Aによれば、ネットワークの利用可能な帯域が変動する場合であっても、パケットの送信制御において遅延及び遅延ジッターの増加を低減できるという効果が得られる。
【0101】
また、本例示的実施形態に係る情報処理装置1Aにおいては、上記複数のキューは、遅延粒度に応じて複数のレベルにレベル分けされており、エンキュー部12は、上記パケットに関連付けられた送出タイミングに対応する第1のキューにおけるエンキュー済みパケット数が見込みパケット数以上である場合、当該パケットを、上記第1のキューと同じレベルの第2のキューにエンキューする構成が採用されている。このため、本例示的実施形態に係る情報処理装置1Aによれば、パケットの送信制御において遅延及び遅延ジッターの増加を低減できるという効果が得られる。
【0102】
また、本例示的実施形態に係る情報処理装置1Aにおいては、取得部11が取得したパケットのアプリケーション種別に応じた算出手法で当該パケットの送出タイミングを算出する算出部15、を更に備える構成が採用されている。このため、本例示的実施形態に係る情報処理装置1Aによれば、アプリケーション種別に応じたパケット送信制御を行うことができるという効果が得られる。
【0103】
〔ソフトウェアによる実現例〕
パケット制御装置10、情報処理装置1A、パケット制御システム1(以下、「パケット制御装置10等」という)の一部又は全部の機能は、集積回路(ICチップ)等のハードウェアによって実現してもよいし、ソフトウェアによって実現してもよい。
【0104】
後者の場合、パケット制御装置10等は、例えば、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータによって実現される。このようなコンピュータの一例(以下、コンピュータCと記載する)を図22に示す。コンピュータCは、少なくとも1つのプロセッサC1と、少なくとも1つのメモリC2と、を備えている。メモリC2には、コンピュータCをパケット制御装置10等として動作させるためのプログラムPが記録されている。コンピュータCにおいて、プロセッサC1は、プログラムPをメモリC2から読み取って実行することにより、パケット制御装置10等の各機能が実現される。
【0105】
プロセッサC1としては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせなどを用いることができる。メモリC2としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又は、これらの組み合わせなどを用いることができる。
【0106】
なお、コンピュータCは、プログラムPを実行時に展開したり、各種データを一時的に記憶したりするためのRAM(Random Access Memory)を更に備えていてもよい。また、コンピュータCは、他の装置との間でデータを送受信するための通信インタフェースを更に備えていてもよい。また、コンピュータCは、キーボードやマウス、ディスプレイやプリンタなどの入出力機器を接続するための入出力インタフェースを更に備えていてもよい。
【0107】
また、プログラムPは、コンピュータCが読み取り可能な、一時的でない有形の記録媒体Mに記録することができる。このような記録媒体Mとしては、例えば、テープ、ディスク、カード、半導体メモリ、又はプログラマブルな論理回路などを用いることができる。コンピュータCは、このような記録媒体Mを介してプログラムPを取得することができる。また、プログラムPは、伝送媒体を介して伝送することができる。このような伝送媒体としては、例えば、通信ネットワーク、又は放送波などを用いることができる。コンピュータCは、このような伝送媒体を介してプログラムPを取得することもできる。
【0108】
〔付記事項1〕
本発明は、上述した実施形態に限定されるものでなく、請求項に示した範囲で種々の変更が可能である。例えば、上述した実施形態に開示された技術的手段を適宜組み合わせて得られる実施形態についても、本発明の技術的範囲に含まれる。
【0109】
〔付記事項2〕
上述した実施形態の一部又は全部は、以下のようにも記載され得る。ただし、本発明は、以下の記載する態様に限定されるものではない。
(付記1)
送出タイミングが関連付けられたパケットを取得する取得手段と、前記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューするエンキュー手段と、前記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから前記パケットをデキューし、ネットワークに送出する送出手段と、を備え、前記送出手段が前記ネットワークに送出するパケット数は、前記ネットワークの利用可能な帯域に応じて制限され、前記送出手段は、前記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する、パケット制御システム。
【0110】
(付記2)
前記送出手段は、前記パケットに関連付けられた送出タイミングに送出されなかったパケットを、当該送出タイミングからの遅延量に応じた優先順序に従って送出する、
付記1に記載のパケット制御システム。
【0111】
(付記3)
前記エンキュー手段は、前記パケットに関連付けられた送出タイミングに対応するキューにエンキューされているエンキュー済みパケット数に基づいて、当該パケットを当該キューにエンキューするか否かを判定する付記1又は2に記載のパケット制御システム。
【0112】
(付記4)
前記エンキュー手段は、前記キューごとに、当該キューに規定されたデキュータイミングにおいてデキューし、前記ネットワークに送出することができる見込みパケット数を推定し、前記パケットに関連付けられた送出タイミングに対応するキューにおける前記エンキュー済みパケット数に応じて、当該パケットのエンキュー先を特定する、付記3に記載のパケット制御システム。
【0113】
(付記5)
前記エンキュー手段は、前記キューごとに、当該キューについて過去に推定した前記見込みパケット数を参照して、現行の前記見込みパケット数を推定する、付記4に記載のパケット制御システム。
【0114】
(付記6)
前記複数のキューは、遅延粒度に応じて複数のレベルにレベル分けされており、前記エンキュー手段は、前記パケットに関連付けられた送出タイミングに対応する第1のキューにおける前記エンキュー済みパケット数が前記見込みパケット数以上である場合、当該パケットを、前記第1のキューと同じレベルの第2のキューにエンキューする、付記4又は5に記載のパケット制御システム。
【0115】
(付記7)
前記取得手段が取得したパケットのアプリケーション種別に応じた算出手法で当該パケットの送出タイミングを算出する算出手段、を更に備える、付記1から6のいずれか1つに記載のパケット制御システム。
【0116】
(付記8)
送出タイミングが関連付けられたパケットを取得することと、前記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューすることと、前記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから前記パケットをデキューし、ネットワークに送出することと、を含み、前記送出する工程において、前記ネットワークに送出するパケット数は、前記ネットワークの利用可能な帯域に応じて制限され、前記送出する工程において、前記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する、パケット制御方法。
【0117】
(付記9)
前記送出する工程において、前記パケットに関連付けられた送出タイミングに送出されなかったパケットを、当該送出タイミングからの遅延量に応じた優先順序に従って送出する、付記8に記載のパケット制御方法。
【0118】
(付記10)
前記エンキューする工程において、前記パケットに関連付けられた送出タイミングに対応するキューにエンキューされているエンキュー済みパケット数に基づいて、当該パケットを当該キューにエンキューするか否かを判定する付記8又は9に記載のパケット制御方法。
【0119】
(付記11)
前記エンキューする工程において、前記キューごとに、当該キューに規定されたデキュータイミングにおいてデキューし、前記ネットワークに送出することができる見込みパケット数を推定し、前記パケットに関連付けられた送出タイミングに対応するキューにおける前記エンキュー済みパケット数に応じて、当該パケットのエンキュー先を特定する、付記10に記載のパケット制御方法。
【0120】
(付記12)
前記エンキューする工程において、前記パケットに関連付けられた送出タイミングに対応するデキュータイミングが規定されているキューにおいて、前記エンキュー済みパケット数が、前記見込みパケット数未満である場合には、当該パケットを、当該キューにエンキューする、付記11に記載のパケット制御方法。
【0121】
(付記13)
前記複数のキューは、遅延粒度に応じて複数のレベルにレベル分けされており、前記エンキューする工程において、前記パケットに関連付けられた送出タイミングに対応する第1のキューにおける前記エンキュー済みパケット数が前記見込みパケット数以上である場合、当該パケットを、前記第1のキューと同じレベルの第2のキューにエンキューする、付記11又は12に記載のパケット制御方法。
【0122】
(付記14)
前記取得したパケットのアプリケーション種別に応じた算出手法で当該パケットの送出タイミングを算出すること、を更に含む、請求項8に記載のパケット制御方法。
【0123】
(付記15)
送出タイミングが関連付けられたパケットを取得する取得手段と、前記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューするエンキュー手段と、前記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから前記パケットをデキューし、ネットワークに送出する送出手段と、を備え、前記送出手段が前記ネットワークに送出するパケット数は、前記ネットワークの利用可能な帯域に応じて制限され、前記送出手段は、前記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する、パケット制御装置。
【0124】
(付記16)
前記送出手段は、前記パケットに関連付けられた送出タイミングに送出されなかったパケットを、当該送出タイミングからの遅延量に応じた優先順序に従って送出する、
付記15に記載のパケット制御装置。
【0125】
(付記17)
前記エンキュー手段は、前記パケットに関連付けられた送出タイミングに対応するキューにエンキューされているエンキュー済みパケット数に基づいて、当該パケットを当該キューにエンキューするか否かを判定する付記15又は16に記載のパケット制御装置。
【0126】
(付記18)
前記エンキュー手段は、前記キューごとに、当該キューに規定されたデキュータイミングにおいてデキューし、前記ネットワークに送出することができる見込みパケット数を推定し、前記パケットに関連付けられた送出タイミングに対応するキューにおける前記エンキュー済みパケット数に応じて、当該パケットのエンキュー先を特定する、付記17に記載のパケット制御装置。
【0127】
(付記19)
前記エンキュー手段は、前記キューごとに、当該キューについて過去に推定した前記見込みパケット数を参照して、現行の前記見込みパケット数を推定する、付記18に記載のパケット制御装置。
【0128】
(付記20)
前記複数のキューは、遅延粒度に応じて複数のレベルにレベル分けされており、前記エンキュー手段は、前記パケットに関連付けられた送出タイミングに対応する第1のキューにおける前記エンキュー済みパケット数が前記見込みパケット数以上である場合、当該パケットを、前記第1のキューと同じレベルの第2のキューにエンキューする、付記18又は19に記載のパケット制御装置。
【0129】
〔付記事項3〕
上述した実施形態の一部又は全部は、更に、以下のように表現することもできる。
【0130】
少なくとも1つのプロセッサを備え、前記プロセッサは、送出タイミングが関連付けられたパケットを取得する取得処理と、前記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューするエンキュー処理と、前記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから前記パケットをデキューし、ネットワークに送出する送出処理と、を実行し、前記送出処理において前記ネットワークに送出するパケット数は、前記ネットワークの利用可能な帯域に応じて制限され、前記送出処理において、前記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出するパケット制御システム。
【0131】
なお、このパケット制御システムは、更にメモリを備えていてもよく、このメモリには、前記取得処理と、前記エンキュー処理と、前記送出処理とを前記プロセッサに実行させるためのプログラムが記憶されていてもよい。また、このプログラムは、コンピュータ読み取り可能な一時的でない有形の記録媒体に記録されていてもよい。
【0132】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。また、上述したパケット制御装置10等の機能のうちの少なくとも一以上の機能は、ネットワーク上のいかなる場所に設置され接続された複数の異なる情報処理装置で実行されてもよく、つまり、いわゆるクラウドコンピューティングで実行されてもよい。
【符号の説明】
【0133】
1 パケット制御システム
1A 情報処理装置
10 パケット制御装置
10A 制御部
11 取得部
12 エンキュー部
15 算出部
13 デキュー部
16 キュー制御部
17 送出部

【要約】
ネットワークの利用可能な帯域が変動する場合であってもネットワークを戦略的に活用するために、パケット制御システム(1)は、送出タイミングが関連付けられたパケットを取得する取得部(11)と、上記パケットに関連付けられた送出タイミングに応じて、複数のキューのいずれかに当該パケットをエンキューするエンキュー部(12)と、上記複数のキューそれぞれに規定されたデキュータイミングに応じて各キューから上記パケットをデキューし、ネットワークに送出する送出部(17)と、を備え、送出部(17)が上記ネットワークに送出するパケット数は、上記ネットワークの利用可能な帯域に応じて制限され、送出部(17)は、上記パケットに関連付けられた送出タイミングに送出されないパケットを、当該送出タイミング後に送出する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22