JP6470166B2 - 順序制御装置、順序制御方法およびプログラム - Google Patents

順序制御装置、順序制御方法およびプログラム Download PDF

Info

Publication number
JP6470166B2
JP6470166B2 JP2015247019A JP2015247019A JP6470166B2 JP 6470166 B2 JP6470166 B2 JP 6470166B2 JP 2015247019 A JP2015247019 A JP 2015247019A JP 2015247019 A JP2015247019 A JP 2015247019A JP 6470166 B2 JP6470166 B2 JP 6470166B2
Authority
JP
Japan
Prior art keywords
order
level
packet
network
host processor
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.)
Active
Application number
JP2015247019A
Other languages
English (en)
Other versions
JP2017112556A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015247019A priority Critical patent/JP6470166B2/ja
Publication of JP2017112556A publication Critical patent/JP2017112556A/ja
Application granted granted Critical
Publication of JP6470166B2 publication Critical patent/JP6470166B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、通信パケットの順序を制御するための順序制御装置に係り、特に通信サーバの補助装置に順序制御機能が複数段のレベルに分けて実装され、通信処理性能に影響を与えずにパケットが保持すべき順序を所望のレベルで制御することができる順序制御装置、順序制御方法およびプログラムに関するものである。
近年、ネットワークの制御装置と転送装置を分離し、論理的集中制御によりネットワークサービスの自動化を実現するSDN(Software Defined Networking)関連技術が、将来の柔軟化指向ネットワークを実現するためのキーテクノロジーとして多くの関心を集め、クラウドサービスを提供するデータセンタに留まらず、通信事業者の広域インフラの在り方にも影響を及ぼしている。
背景として、汎用サーバ機器の高性能化が挙げられる。2013年には世界の通信事業者が連携して、NFV(Network Functions Virtualization)の構想が提唱されている。NFVは、特定ベンダの高価な専用ハードウェアではなく、安価な汎用ハードウェアとネットワーク仮想化技術を用いて、ソフトウェア主体で迅速かつ柔軟にネットワークサービスを提供し、CAPEX(CAPital EXpenditur)およびOPEX(OPerational EXpenditure)の低減を図る技術である。
既存のIP(Internet Protocol)ネットワークを構成する通信装置では、通信装置間で転送するパケットデータの送受信順序は適正に保証されなければならない。パケットの到着順が不問とされる非同期型の通信サービスならば、パケットの順序保証はさほど重視されないが、音声や映像のストリーミング配信等に代表される同期型のサービスや通信事業者が提供するキャリアグレードのサービスでは、パケットの順序保証は重要な役割を担うことになる。そのため、従来の通信装置では、受信したパケットをあるべき順序に補正して送信する仕組みが実現されている。このような仕組みの例としては、例えば特許文献1に開示された制御方法がある。
一方、SDN/NFVの考え方に基づいて構成するネットワークにおいても、同等の仕組みが必要とされ、そのような仕組みを前記の従来技術に基づいて通信装置内に構成し得るであろうことは当業者であれば容易に推測できる。しかしながら、SDN/NFVにおいては、従来のIPネットワークで利用されてきた専用ハードウェア主体の通信装置(以下、「物理NW機器」と呼ぶ)だけでなく、汎用ハードウェアとネットワーク仮想化技術とを用いたソフトウェア主体の通信装置(以下、「仮想NW機器」と呼ぶ)を積極的に配備していく点が、従来と異なるネットワークの構成上の顕著な特徴となっている。このため、仮想NW(Network)機器に起因するパケット順序の不整合(順序逆転)が問題となる場合がある。
例えば非特許文献1に示すように、仮想NW機器を構成する代表的なソフトウェア機能として仮想スイッチとその制御装置(以下、コントローラと呼ぶ)とがある。このような仮想スイッチを使用して構成するSDN/NFVのネットワークでは、一般に仮想スイッチとコントローラとが論理的に分離されて、互いに通信しながらパケットデータを処理する構成をとる。コントローラは、仮想スイッチが所望のパケットデータを任意の論理的なまとまり(以下、フロー)として柔軟に転送するような指示を与えることができるため、従来の自律分散制御を基盤とするIPネットワークと異なり、柔軟な集中制御が可能となる。
仮想スイッチは、典型的にはサーバ等の汎用装置上のソフトウェアとして構成される。サーバ上の仮想スイッチは、OS(Operating System)カーネルが備える通信機能を用いてフローを処理するケース、カーネル空間を介さずユーザー空間で高速にフローを送受信処理するケース、あるいは両方の空間を併用するケースで動作する。このとき、非特許文献1に示すようにコントローラがフロー処理の指示を与えるタイミングによっては、カーネル空間ないしユーザー空間に保持されたパケットの順序が適切に保持されないまま送信されてしまい、結果としてフロー内の順序逆転が発生することになる。非特許文献1では、本問題の有効な解決策が見出されていない。
また、上記の例に限らず、前記仮想NW機器は、構成上サーバCPU(Central Processing Unit)に代表される汎用ハードウェアを使用するため、バッチ処理やキャッシュの影響等複数の原因により、物理NW機器に比べてフローの順序に関して確定的な処理が難しい。このような仮想NW機器起因のフロー順序逆転を、以下ではソフトウェアリオーダと呼ぶ。ソフトウェアリオーダの発生原因は上記のように複数考えられ、原則として従来の物理NW機器に実施される順序制御用の専用ハードウェアを用いないため、特許文献1の仕組みでは解決できない。
これに対し、非特許文献2では、汎用ハードウェアで動作する高速なパケット処理ライブラリを用いてパケットの順序逆転を補正する技術が提案されている。本技術を仮想NW機器における仮想スイッチ部に適用することにより、ソフトウェアリオーダの解決が期待できる。しかしながら、ライブラリを使用したソフトウェアによる解決手段となるため、サーバCPUに負荷がかかり、結果として仮想NW機器の他の処理性能を圧迫することになる。
特許第4587053号公報
Joji Mtt,"Flow miss/Packet order question",2012,<http://www.mail-archive.com/discuss@openvswitch.org/msg03388.html> "Reorder Library",DPDK documentation,2015,<http://dpdk.org/doc/guides/prog_guide/reorder_lib.html>
以上のように、従来の技術では、仮想ネットワーク機器に起因するパケットの順序逆転の有効な解決策が見出されておらず、ライブラリを用いてパケットの順序逆転を補正しようとすると、汎用サーバに負荷がかかってしまうという問題点があった。
本発明は、上記課題を考慮してなされたものであり、その目的は、通信パケットを制御するための順序制御装置であって、仮想ネットワーク機器に起因するパケットの順序逆転の補正を実現しながらも、サーバ装置の負荷を低減することができる順序制御装置、順序制御方法およびプログラムを提供することにある。
本発明の順序制御装置は、ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えることが可能なレベル制御部と、前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル1順序制御部と、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル2順序制御部と、前記順序保証モードに応じて、前記ネットワークから受信して前記レベル1順序制御部で処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分部とを有し、前記レベル制御部と前記レベル1順序制御部と前記レベル2順序制御部と前記パケット振分部とは、前記通信サーバ装置のCPUの処理を補助する補助装置によって構成されることを特徴とするものである。
また、本発明の順序制御装置の1構成例において、前記レベル制御部は、前記レベル1順序制御部と前記レベル2順序制御部の機能を共にオフにして、前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送させると共に前記上位処理装置から受信したパケットをそのまま前記ネットワークへ転送させる高速動作モードと、前記レベル1順序制御部の機能をオン、前記レベル2順序制御部の機能をオフにして、前記ネットワークから前記上位処理装置へ転送されるパケットの順序のみを保証するレベル1順序制御モードと、前記レベル1順序制御部と前記レベル2順序制御部の機能を共にオンにして、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル2順序制御モード、のうちいずれか1つを選択可能なことを特徴とするものである。
また、本発明の順序制御装置の1構成例において、前記レベル2順序制御部は、前記ネットワークから受信したパケットに一意のシーケンス番号を付加する付加部と、前記シーケンス番号が付加されたパケットを前記レベル1順序制御部へ転送する転送部と、シーケンス番号を蓄積するための第1のバッファと、パケットを蓄積するための第2のバッファと、前記上位処理装置からパケットを受信したときに、このパケットに付加されているシーケンス番号を抽出してパケットから削除すると共に、抽出したシーケンス番号を前記第1のバッファに格納して、前記シーケンス番号を削除したパケットを前記第2のバッファに格納する抽出・削除部と、前記第2のバッファに蓄積されたパケットを所望の順序に並べ替えて前記ネットワークへ出力するパケット再整列部とを備え、前記レベル1順序制御部は、前記レベル2順序制御部から転送されたパケットを所定の論理的なグループに分類して、分類したグループ毎に前記パケット振分部へ転送することを特徴とするものである。
また、本発明の順序制御方法は、ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えるレベル制御ステップと、前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル1順序制御ステップと、前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル2順序制御ステップと、前記順序保証モードに応じて、前記ネットワークから受信して前記レベル1順序制御ステップで処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分ステップとを含み、前記レベル制御ステップと前記レベル1順序制御ステップと前記レベル2順序制御ステップと前記パケット振分ステップとは、前記通信サーバ装置のCPUの処理を補助する補助装置によって実行されることを特徴とするものである。
また、本発明のプログラムは、ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えるレベル制御ステップと、前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル1順序制御ステップと、前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル2順序制御ステップと、前記順序保証モードに応じて、前記ネットワークから受信して前記レベル1順序制御ステップで処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分ステップとを、前記通信サーバ装置のCPUの処理を補助する補助装置に実行させることを特徴とするものである。
本発明によれば、ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは上位処理装置からネットワークへ転送されるパケットの順序保証モードを切り替えることが可能なレベル制御部と、ネットワークから上位処理装置へ転送されるパケットの順序を保証するレベル1順序制御部と、ネットワークから上位処理装置へ転送されるパケットの順序と上位処理装置からネットワークへ転送されるパケットの順序を包括的に保証するレベル2順序制御部とを設けることにより、通信パケットの順序制御機能を通信サーバ装置の補助装置に複数段のレベルに分けて実装するため、パケットが保持すべき順序を所望のレベルで制御することが可能となる。また、本発明では、レベル制御部とレベル1順序制御部とレベル2順序制御部とパケット振分部とを、通信サーバ装置のCPUの処理を補助する補助装置によって構成することにより、通信サーバ装置によって実現される仮想ネットワーク機器に起因するパケットの順序逆転の補正を実現しながらも、通信サーバ装置のCPUの負荷を低減することができる。本発明は、実装するプログラム、回路データおよびデバイスの別を問わず、通信用デバイス一般に適用することができる。
また、本発明では、レベル制御部が、高速動作モードとレベル1順序制御モードとレベル2順序制御モードのうちいずれか1つを選択可能とすることにより、最低限のパケットの順序が保持されていればよいケース、厳格な運用を必要とするケース、パケットの順序を並べ替えてはいけないケース、性能確保を優先しなければならないケースなどに柔軟に対応することができる。
また、本発明では、レベル2順序制御部を、付加部と、転送部と、第1のバッファと、第2のバッファと、抽出・削除部と、パケット再整列部とから構成することにより、ネットワークから上位処理装置へ転送されるパケットの順序と上位処理装置からネットワークへ転送されるパケットの順序を包括的に保証することができる。
本発明の実施の形態に係る順序制御装置を備えた汎用サーバ装置の構成を示すブロック図である。 従来の順序制御装置の概略構成を示すブロック図である。 本発明の実施の形態に係る順序制御装置におけるレベル切替え動作の概要を示す図である。 本発明の実施の形態に係る順序制御装置のレベル2順序制御部の構成を示すブロック図である。 本発明の実施の形態に係る順序制御装置の受信側の動作を説明するフローチャートである。 本発明の実施の形態に係る順序制御装置の送信側の動作を説明するフローチャートである。
以下、本発明を実施するための構成および手段について図面を参照して説明する。図1は本発明の実施の形態に係る順序制御装置を備えた汎用サーバ装置(通信サーバ装置)の構成を示すブロック図である。本発明は、従来の物理NW機器のみを対象としたパケット順序制御ではなく、仮想NW機器におけるソフトウェアリオーダの問題までも解決するパケット順序制御の手段を提供することを目的としたものである。
そのため典型的には、図1のような汎用サーバ装置上に上位処理装置1として仮想NW機器のノードを構成する形態をとるが、もちろん上位処理装置1を除いた物理NW機器として構成しても構わない。その場合、汎用サーバの形態ではなく一般的なネットワークスイッチやルータの形態として構成することもできる。以下では、本発明の効果を説明するため図1の構成を用いて説明する。
上位処理装置1は、ネットワーク仮想化技術を用いて構成された個々のNFVアプリケーションである仮想ネットワーク機能部10と、汎用サーバ装置上のソフトウェアで実現される仮想スイッチであるソフトウェアパケット転送部11と、非特許文献2の関連技術であり、上位処理装置1と下位の補助装置2との間で高速なパケット処理を可能とするパケット入出力ライブラリ12とを有する。
ソフトウェアパケット転送部11としては、典型的にはLagopusやOpenvswitch等に代表されるオープンソース・ソフトウェアが開示されているが、他の仮想ルータ等の市中技術で代用することができる。
パケット入出力ライブラリ12としては、典型的にはINTEL DPDKに代表されるオープンソース・ソフトウェアが開示されているが、他の市中技術で代用することができる。
上位処理装置1は、以上のような一連のソフトウェアで構成されるため、処理の主体となるハードウェアは汎用サーバ装置のCPUである。このCPUは、汎用サーバ装置のメモリに格納されたプログラムに従って処理を実行し、仮想ネットワーク機能部10とソフトウェアパケット転送部11とパケット入出力ライブラリ12として機能する。
上位処理装置1は、汎用サーバ装置内において装置内転送用バス部3を介して下位の補助装置2と接続される。装置内転送用バス部3は、典型的には標準的なPCI(Peripheral Component Interconnect) Expressの各規格に適合するバス技術を用いて構成されるが、AXI(Advanced eXtensible Interface)等の他の市中技術で代用することができる。
補助装置2は、上位処理装置1のサーバCPUの処理を補助することを目的として構成され、効率的に上位処理装置1との間のデータ転送を可能とするDMA(Direct Memory Access)転送部20と、本実施の形態の特徴的構成である順序制御装置21と、Ethernet(登録商標)フレームを転送するMAC(Media Access Control)部22と、図示しないネットワークから受信した電気信号または光信号をデータに変換してMAC部22に渡し、MAC部22から渡されたデータを電気信号または光信号に変換してネットワークに送出するPHY(PHYsical)部23とを有する。
補助装置2は、CPU処理を補助する目的で実装されるプログラムおよびデバイスの別を問わず構成することができる。補助装置2は、典型的には、GPGPU(General-purpose Graphics Processing Unit)やネットワークプロセッサ、FPGA(Field Programmable Gate Array)あるいは他のコプロセッサ等のデバイスと、当該デバイス上で動作するプログラムあるいはデバイスの回路データとを用いて実現される。プログラムで実現する場合、デバイスのプロセッサは、メモリに格納されたプログラムに従って以下のような処理を実行し、補助装置2として機能する。
補助装置2に組み込まれる本実施の形態の順序制御装置21は、ネットワークから上位処理装置1へ転送されるパケットあるいは上位処理装置1からネットワークへ転送されるパケットの順序保証モードを切り替えることが可能なレベル制御部210と、パケット受信側のパケット振分部211と、パケット振分部211に設けられるレベル1順序制御部212と、パケット受信側およびパケット送信側の双方に関わるレベル2順序制御部213とを有する。
パケット振分部211は、汎用サーバ装置の外部のネットワークから受信したパケットを効率的に振り分けてDMA転送部20に渡す機能を備える。なお、本実施の形態では、レベル1順序制御部212とレベル2順序制御部213の2段階のレベルで構成した順序制御部を用いて説明するが、3段以上の複数段レベルで制御する順序制御装置21を構成することもできる。
以下、本実施の形態固有の特徴的な構成について、図2〜図5を用いて具体的に説明する。図2は特許文献1に開示されている従来の順序制御装置の概略構成を示すブロック図である。従来の順序制御装置は、物理NW機器を対象として提案されたものであり、典型的には既存のIPネットワークを構成する通信装置において専用のハードウェアで実現される。
従来の順序制御装置の構成および動作原理は単純なものであり、受信したパケットに対して一意のシーケンス番号をSEQ付与部100で付与し、パケットを振分部101によって複数の順序バッファ102に振り分けて蓄積させ、蓄積したパケットの順番を取出制御部103で確認して、所望の順番でパケットを取り出し、SEQ削除部104でパケットのシーケンス番号を削除する。
図2に示したような構成により、従来の順序制御装置は、所望の順序性が保持された状態でパケットを出力することができる。しかしながら、仮想NW機器に起因するパケットの順序逆転の補正および汎用サーバ装置における処理負荷を考慮した構成となっていないため、図2に示した構成による順序制御方法では前記背景技術において言及した複数の原因で発生するソフトウェアリオーダに対する十分な制御が困難である。
また、従来の順序制御装置は、必要に応じて順序制御装置を使用しない、といった柔軟な制御を行うことができないため、パケットの順序を並べ替えてはいけないケースや、性能確保を優先しなければならないケースに対応することができない。
これに対し、図3(A)〜図3(C)は本実施の形態の順序制御装置21におけるレベル切替え動作の概要を示す図である。本実施の形態の構成上の特徴である複数の順序保証モードを切り替えるレベル制御部210は、順序制御しない代わりに高速動作を可能とする高速動作モード(図3(C))と、パケット受信側のパケット振分部211の機能を有効(ON)にして、受信フロー内においてのみ順序を保証するレベル1順序制御モード(図3(B))と、パケット振分部211に加えて、パケット受信側およびパケット送信側の双方に関わるレベル2順序制御部213の機能を有効にして、受信フロー内に限定せず包括的にパケットの順序を保証するレベル2順序制御モード(図3(A))、の3つのモードの切り替えが可能である。
このような本実施の形態の順序制御装置21は、必要に応じて保証する制御レベルを変更することができるため、単純な順序制御だけでなく、より高度な順序制御を実現することができる。
例えばレベル1順序制御モードは、最低限フロー内の順序さえ保持されていればよく、高速な受信パケット振分け処理を可能とする動作モードである(図3(B))。レベル1順序制御部212は、具体的には、受信したパケットをある着眼点で論理的なグループ(フロー)に分類し、分類したグループ毎にパケット振分部211に転送すればよい。
例えば特許第4771988号公報には、パケットのヘッダ等からハッシュ値を生成して、後段装置への負荷分散を図りながらフロー内の順序を保証する負荷分散装置が開示されている。ただし、本発明は、パケットの分類方法および負荷分散装置の提供を意図したものではないため、本実施の形態のレベル1順序制御部212による順序制御は、特許第4771988号公報に開示された方法に限らず、他の様々な方法および装置で実装することが可能である。
一方、レベル2順序制御モードは、フロー内の順序保証だけでなく、より包括的な順序保証を可能とする動作モードである(図3(A))。レベル2の順序性の保証に関しては、提供するサービスによってフロー内の順序性さえ保持されていればよいものと、より厳格な順序性が求められるものとがある。
前記のとおり非同期型の通信サービスならばパケットの順序保証はさほど重視されないが、音声や映像のストリーミング配信等に代表される同期型のサービスや通信事業者が提供する帯域保証のキャリアグレードのサービスでは順序性に関して厳格な運用が必要とされる。前記のソフトウェアリオーダについてもこのレベル2に該当する保証対象である。レベル2順序制御部213は、このように通信事業者の広域インフラでの使用に耐える順序制御手段を提供する。
また、高速動作モードは、レベル1およびレベル2のいずれの順序制御も不要な動作モードである(図3(C))。このようなモードが必要になるのは、トラヒックのフローに関して高速動作を優先し、順序性は一切問わないような場合である。本実施の形態の順序制御装置21は、レベル制御部210を備えているため、このような場合にも容易に対応することができる。
以下では、レベル2順序制御部213の構成の詳細を説明し、レベル2順序制御部213を含む本実施の形態の順序制御装置21の動作の詳細について説明する。図4はレベル2順序制御部213の構成を示すブロック図、図5は複数段のレベルでパケット順序を保証する本実施の形態の順序制御装置21の受信側の動作を説明するフローチャート、図6は本実施の形態の順序制御装置21の送信側の動作を説明するフローチャートである。
レベル2順序制御部213は、ネットワークから受信したパケットに一意のシーケンス番号を付加するSEQ付加部2130と、シーケンス番号を付加したパケットをパケット振分部211に転送する転送部2131と、上位処理装置1からパケットを受信したときに、このパケットに付加されているシーケンス番号を抽出してパケットから削除すると共に、抽出したシーケンス番号とシーケンス番号を削除したパケットとを後述するバッファに格納するSEQ抽出・削除部2132と、SEQ抽出・削除部2132が抽出したシーケンス番号を蓄積するためのバッファ2133と、シーケンス番号が削除されたパケットを蓄積するためのバッファ2134と、バッファ2134に蓄積されたパケットを所望の順序に並べ替えて出力するパケット再整列部2135とを備えている。
レベル2順序制御部213は、パケットの受信側および送信側の双方に関わるため、受信側と送信側に分けて説明する。汎用サーバ装置の外部のネットワークからPHY部23およびMAC部22を介してパケットを受信したとき(図5ステップS100)、レベル制御部210による順序保証レベル制御(図5ステップS101)により、レベル2順序制御モード、すなわちレベル2順序制御部213がONとなっている場合(図5ステップS102においてY)、SEQ付加部2130は、ネットワークから受信した順にパケットにシーケンス番号(SEQ#)を付加する(図5ステップS103)。
例えば図4に示した例で、ネットワークからパケット1、2、3、4の順で受信したときには、SEQ付加部2130は、それぞれのパケットにSEQ#として#1、#2、#3、#4を付加する。
転送部2131は、SEQ付加部2130によってSEQ#が付加されたパケットをパケット振分部211に転送する(図5ステップS104)。
パケット振分部211内には、フロー内の順序保証を可能とするレベル1順序制御部212が設けられている。レベル1順序制御部212は、レベル2順序制御部213で付加されたSEQ#と不整合を起こさないようにしつつ、パケットを所定の論理的なグループに分類して、分類したグループ毎にパケット振分部211に転送する(図5ステップS106)。
パケット振分部211は、レベル1順序制御部212が分類したグループ(フロー)をDMA転送部20の複数の通信経路に効率的に振り分けてDMA転送部20に渡す(図5ステップS107)。
DMA転送部20は、パケット振分部211から渡されたパケットを装置内転送用バス部3を介して上位処理装置1に転送する(図5ステップS108)。
なお、レベル1順序制御モードの場合には、ステップS103,S104の処理を実施しない。
また、高速動作モードの場合には、ステップS103,S104,S106,S107の処理を実施せずに、ステップS108の処理のみを実施する。
次に、レベル2順序制御モードの場合の送信側の動作について説明する。ここでは、上位処理装置1で処理が完了したパケットがソフトウェアリオーダなど何らかの理由でパケットの順序性が崩れた状態で順序制御装置21に入力される状況を考える。例えば図4の例では、期待するパケットの順序が1、2、3、4であるのに対し、実際には上位処理装置1から1、53、64、7の順でパケットを受信したとする。
各パケットには受信側でSEQ#が付加されている。上位処理装置1から装置内転送用バス部3およびDMA転送部20を介してパケットを受信したとき(図6ステップS200)、レベル2順序制御モード、すなわちレベル2順序制御部213がONとなっている場合(図6ステップS201においてY)、SEQ抽出・削除部2132は、受信したパケットに付加されているSEQ#を抽出してパケットから削除すると共に(図6ステップS202)、抽出したSEQ#をバッファ2133に格納して、SEQ#を削除したパケットをバッファ2134に格納する(図6ステップS203)。
パケット再整列部2135は、バッファ2134に蓄積されたパケットを所望の順序に並べ替えてMAC部22に出力する(図6ステップS204)。ここで、所望の順序とは、例えばパケットと対応するように並行してバッファ2133に蓄積されたSEQ#が示す順序のことである。パケット再整列部2135は、SEQ#が示す順序で整列するようにパケットを並べ替えすればよい。
パケット再整列部2135から出力されたパケットは、MAC部22およびPHY部23を介してネットワークへ送出される(図6ステップS205)。
こうして、上位処理装置1から順序性が崩れた状態でパケットが順序制御装置21に入力された場合でも、図4の例で示すように最終的に期待するパケットの順序1、2、3、4で出力される。
なお、レベル2順序制御部213がOFF、すなわちレベル1順序制御モードまたは高速動作モードの場合には、ステップS202〜S204の処理を実施しない。したがって、SEQ#の付加、抽出、削除いずれの処理も実行されず、上位処理装置1から受信した1、53、64、7のパケット順のまま、一切補正せずにパケットをネットワークに出力することになる。
以上、本発明の実施形態が示され、説明がなされた。本実施の形態の順序制御装置21は、回路であってもよいし、機器であってもよい。本実施形態で示した順序制御装置21が、複数の順序保証モードを切り替えることを可能とするレベル制御部を具備する構成を最良の形態と見なしているものの、本実施の形態の順序制御装置21は、ROMに記憶されたファームウェアおよび再構成型デバイス、素子、基板、配線などのハードウェアで実現されていても構わない。或いは、順序制御装置21は、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPUにより読み出されて実行される。すなわち、プログラムは、本実施の形態の順序制御装置21としてコンピュータを機能させるものである。あるいは、順序制御装置21の各ステップをコンピュータに実行させるものである。
本発明は、パケットの順序を制御する技術に適用することができる。
1…上位処理装置、2…補助装置、3…装置内転送用バス部、10…仮想ネットワーク機能部、11…ソフトウェアパケット転送部、12…パケット入出力ライブラリ、20…DMA転送部、21…順序制御装置、22…MAC部、23…PHY部、210…レベル制御部、211…パケット振分部、212…レベル1順序制御部、213…レベル2順序制御部、2130…SEQ付加部、2131…転送部、2132…SEQ抽出・削除部、2133,2134…バッファ、2135…パケット再整列部。

Claims (7)

  1. ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えることが可能なレベル制御部と、
    前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル1順序制御部と、
    前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル2順序制御部と、
    前記順序保証モードに応じて、前記ネットワークから受信して前記レベル1順序制御部で処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分部とを有し、
    前記レベル制御部と前記レベル1順序制御部と前記レベル2順序制御部と前記パケット振分部とは、前記通信サーバ装置のCPUの処理を補助する補助装置によって構成されることを特徴とする順序制御装置。
  2. 請求項1記載の順序制御装置において、
    前記レベル制御部は、前記レベル1順序制御部と前記レベル2順序制御部の機能を共にオフにして、前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送させると共に前記上位処理装置から受信したパケットをそのまま前記ネットワークへ転送させる高速動作モードと、前記レベル1順序制御部の機能をオン、前記レベル2順序制御部の機能をオフにして、前記ネットワークから前記上位処理装置へ転送されるパケットの順序のみを保証するレベル1順序制御モードと、前記レベル1順序制御部と前記レベル2順序制御部の機能を共にオンにして、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル2順序制御モード、のうちいずれか1つを選択可能なことを特徴とする順序制御装置。
  3. 請求項1または2記載の順序制御装置において、
    前記レベル2順序制御部は、
    前記ネットワークから受信したパケットに一意のシーケンス番号を付加する付加部と、
    前記シーケンス番号が付加されたパケットを前記レベル1順序制御部へ転送する転送部と、
    シーケンス番号を蓄積するための第1のバッファと、
    パケットを蓄積するための第2のバッファと、
    前記上位処理装置からパケットを受信したときに、このパケットに付加されているシーケンス番号を抽出してパケットから削除すると共に、抽出したシーケンス番号を前記第1のバッファに格納して、前記シーケンス番号を削除したパケットを前記第2のバッファに格納する抽出・削除部と、
    前記第2のバッファに蓄積されたパケットを所望の順序に並べ替えて前記ネットワークへ出力するパケット再整列部とを備え、
    前記レベル1順序制御部は、前記レベル2順序制御部から転送されたパケットを所定の論理的なグループに分類して、分類したグループ毎に前記パケット振分部へ転送することを特徴とする順序制御装置。
  4. ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えるレベル制御ステップと、
    前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル1順序制御ステップと、
    前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル2順序制御ステップと、
    前記順序保証モードに応じて、前記ネットワークから受信して前記レベル1順序制御ステップで処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分ステップとを含み、
    前記レベル制御ステップと前記レベル1順序制御ステップと前記レベル2順序制御ステップと前記パケット振分ステップとは、前記通信サーバ装置のCPUの処理を補助する補助装置によって実行されることを特徴とする順序制御方法。
  5. 請求項4記載の順序制御方法において、
    前記レベル制御ステップは、前記レベル1順序制御ステップと前記レベル2順序制御ステップを共に実行せずに、前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送させると共に前記上位処理装置から受信したパケットをそのまま前記ネットワークへ転送させる高速動作モードと、前記レベル2順序制御ステップを実行せずに、前記レベル1順序制御ステップを実行して、前記ネットワークから前記上位処理装置へ転送されるパケットの順序のみを保証するレベル1順序制御モードと、前記レベル1順序制御ステップと前記レベル2順序制御ステップを共に実行して、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル2順序制御モード、のうちいずれか1つを選択可能なことを特徴とする順序制御方法。
  6. 請求項4または5記載の順序制御方法において、
    前記レベル2順序制御ステップは、
    前記ネットワークから受信したパケットに一意のシーケンス番号を付加するシーケンス番号付加ステップと、
    前記シーケンス番号を付加したパケットを前記レベル1順序制御ステップの処理に渡す転送ステップと、
    前記上位処理装置からパケットを受信したときに、このパケットに付加されているシーケンス番号を抽出してパケットから削除すると共に、抽出したシーケンス番号を第1のバッファに格納して、前記シーケンス番号を削除したパケットを第2のバッファに格納するシーケンス番号抽出・削除ステップと、
    前記第2のバッファに蓄積されたパケットを所望の順序に並べ替えて前記ネットワークへ出力するパケット再整列ステップとを含み、
    前記レベル1順序制御ステップは、前記転送ステップによって転送されたパケットを所定の論理的なグループに分類して、分類したグループ毎に前記パケット振分ステップの処理に渡すステップを含むことを特徴とする順序制御方法。
  7. ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えるレベル制御ステップと、
    前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル1順序制御ステップと、
    前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル2順序制御ステップと、
    前記順序保証モードに応じて、前記ネットワークから受信して前記レベル1順序制御ステップで処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分ステップとを、前記通信サーバ装置のCPUの処理を補助する補助装置に実行させることを特徴とするプログラム。
JP2015247019A 2015-12-18 2015-12-18 順序制御装置、順序制御方法およびプログラム Active JP6470166B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015247019A JP6470166B2 (ja) 2015-12-18 2015-12-18 順序制御装置、順序制御方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015247019A JP6470166B2 (ja) 2015-12-18 2015-12-18 順序制御装置、順序制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2017112556A JP2017112556A (ja) 2017-06-22
JP6470166B2 true JP6470166B2 (ja) 2019-02-13

Family

ID=59079847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015247019A Active JP6470166B2 (ja) 2015-12-18 2015-12-18 順序制御装置、順序制御方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6470166B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4587053B2 (ja) * 2007-08-28 2010-11-24 日本電気株式会社 通信装置、通信システム、パケット欠落検出方法、およびパケット欠落検出プログラム
EP2202937B1 (en) * 2008-12-24 2011-11-30 Mitsubishi Electric R&D Centre Europe B.V. Partial reassembly for pattern matching
JP2012114737A (ja) * 2010-11-25 2012-06-14 Sony Corp 受信装置、受信方法、プログラムおよび通信システム
US9003053B2 (en) * 2011-09-22 2015-04-07 Solarflare Communications, Inc. Message acceleration
JP2014175781A (ja) * 2013-03-07 2014-09-22 Hitachi High-Technologies Corp 並列パケット処理装置、方法およびプログラム

Also Published As

Publication number Publication date
JP2017112556A (ja) 2017-06-22

Similar Documents

Publication Publication Date Title
US10637685B2 (en) Non-blocking any-to-any data center network having multiplexed packet spraying within access node groups
US9246831B2 (en) NoC system and input switching device
US9407577B2 (en) Communication control system, switch node and communication control method
EP2898651B1 (en) Scalable low latency multi-protocol networking device
EP3066557B1 (en) Boosting linked list throughput
US20140056152A1 (en) Port mirroring in distributed switching systems
US9007962B2 (en) Deadlock-free routing using edge-disjoint sub-networks
JP2016518054A (ja) データのスケジューリングおよび交換の方法、装置、システム
US9832030B2 (en) Multicast packet routing via crossbar bypass paths
EP1501247A1 (en) Software configurable cluster-based router using stock personal computers as cluster nodes
US9515963B2 (en) Universal network interface controller
US9722810B2 (en) Computer-based flow synchronization for efficient multicast forwarding for products and services
US20120163398A1 (en) Communication apparatus, relay apparatus, and network system
JP6470166B2 (ja) 順序制御装置、順序制御方法およびプログラム
US10177935B2 (en) Data transfer system, data transfer server, data transfer method, and program recording medium
WO2019165855A1 (zh) 一种报文传输的方法及装置
Sjövall et al. Dynamic resource allocation for HEVC encoding in FPGA-accelerated SDN cloud
JP6330479B2 (ja) 情報処理システム及び情報処理方法
US10516596B2 (en) Information processing apparatus, method and non-transitory computer-readable storage medium
KR101491699B1 (ko) 소프트웨어 정의 네트워킹에서 제어 장치 및 그 동작 방법
Szymanski Low latency energy efficient communications in global-scale cloud computing systems
US20180287953A1 (en) Generic queue
JP2015106865A (ja) 通信装置、通信システム、通信方法、及び通信プログラム
WO2023085270A1 (ja) データ転送デバイス、データ処理デバイスおよびデータ処理方法
Lai et al. Using the depository buffer to mitigate the communications load between SDN switches and the controller

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181206

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: 20190115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190117

R150 Certificate of patent or registration of utility model

Ref document number: 6470166

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150