JP4648290B2 - パケット転送装置、パケット分配方法、グループ所属プロセッサ変更方法、およびコンピュータプログラム - Google Patents
パケット転送装置、パケット分配方法、グループ所属プロセッサ変更方法、およびコンピュータプログラム Download PDFInfo
- Publication number
- JP4648290B2 JP4648290B2 JP2006314234A JP2006314234A JP4648290B2 JP 4648290 B2 JP4648290 B2 JP 4648290B2 JP 2006314234 A JP2006314234 A JP 2006314234A JP 2006314234 A JP2006314234 A JP 2006314234A JP 4648290 B2 JP4648290 B2 JP 4648290B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- packet
- group
- processors
- packets
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
L. Kencl, J. Boudec, "Adaptive Load Sharing for Network Processors," IEEE Infocom2002, pp.545−554, 2002 B. Wo, et al., "An Efficient Scheduling Mechanism with Flow−Based Packet Reordering in a High−Speed Network Processor," IEEE HPSR2005, pp.481−485, 2005
パケットごとに処理させるプロセッサを決定し、そのプロセッサにパケットを渡す第1のモジュールと、プロセッサでの処理後にパケットを到着順に並べ直す第2のモジュールとを有し、
前記第1のモジュールは、パケット処理を行うプロセッサをまとめたプロセッサグループと、各プロセッサグループに属するプロセッサを管理する手段と、パケットのフロー識別子からパケット処理を行うプロセッサが属するプロセッサグループを、前記プロセッサを管理する手段から選択する手段と、プロセッサグループ毎に単位時間当たりのパケット到着数をカウントし、カウント結果に対応するプロセッサ数を検索し、検索されたプロセッサ数に合うようにプロセッサグループに所属するプロセッサを決定する手段と、該プロセッサグループに属するプロセッサからパケットを処理してもらうプロセッサを選択する手段と、選択したプロセッサにパケットを送る手段と、プロセッサグループごとにパケットの到着順を表わすシーケンス番号を管理する手段と、シーケンス番号をパケット情報としてプロセッサに渡した後、前記シーケンス番号を管理する手段中のシーケンス番号を増加させる手段とを有し、
前記第2のモジュールは、先にフロー情報から計算されたIDごとに次に送信するパケットの番号を管理する手段と、処理されたパケットのシーケンス番号と前記パケットの番号を管理する手段で管理している次に転送するパケットのシーケンス番号を比較し、両者が一致する時パケットを送信し、合致しない場合はバッファに格納して、送信する順番になるまで待機させる手段とを有する。
異なるフローのフロー情報から計算される値が同じになる場合を許可する関数を用いてプロセッサグループIDを計算するステップと、
プロセッサグループ毎に単位時間当たりのパケット到着数をカウントし、カウント結果に対応するプロセッサ数を検索し、検索されたプロセッサ数に合うようにプロセッサグループに所属するプロセッサを決定するステップと、
前記プロセッサグループIDをインデックスとして、プロセッサグループID-プロセッサ番号管理テーブルからパケットを処理させるプロセッサグループの番号を検索するステップと、
前記プロセッサグループIDをインデックスとして、プロセッサグループID-シーケンス番号管理テーブルからパケットのシーケンス番号を検索するステップと、
検索されたプロセッサグループに属するプロセッサからパケットを処理してもらうプロセッサを選択するステップと、
選択したプロセッサにパケットを、前記プロセッサグループIDと前記シーケンス番号とともに送るステップと、
前記プロセッサグループID-シーケンス番号管理テーブルの前記計算されたプロセッサグループIDのシーケンス番号を増加させるステップと、
を有する。
前記プロセッサグループに属するプロセッサに処理してもらうパケットが単位時間内に到着する数をプロセッサグループごとに計算するステップと、
プロセッサごとの単位時間当たりのパケット受付数を計算するステップと、
プロセッサグループに属するプロセッサ数を数えるステップと、
該プロセッサグループに属するプロセッサに処理してもらうパケットの単位時間当たりの到着率を計算するステップと、
プロセッサのパケット受付数が第1の閾値を超えると、該プロセッサをグループに加えているプロセッサグループのうち、最も単位時間当たりのパケット到着数の多いグループに、その時点で最も受付数の少なかったプロセッサを追加し、プロセッサのパケット受付数が第1の閾値を下回ると、該プロセッサをグループに加えているプロセッサグループのうち、最も単位時間当たりのパケット到着数の少ないグループから、その時点で最も受付数の多かったプロセッサを削除するステップと、
プロセッサグループに対応するパケットの到着率が、前回測定時よりも増加し、かつ前記到着率に関する複数の第2の閾値とプロセッサ数の関係を記載する表におけるグループに属するプロセッサ数を変更しない上限の第2の閾値を超える場合、その時点で最も受付数の少なかったプロセッサを該プロセッサグループに追加し、プロセッサグループに対応するパケットの到着率が、前回測定時よりも減少し、かつ前記第2の閾値とプロセッサ数の関係を記載する表において、到着率がグループに属するプロセッサ数を変更しない下限の第2の閾値を下回る場合、プロセッサグループに属しているプロセッサのうち、最も単位時間当たりのパケット処理数の大きいものをプロセッサグループから削除するステップと
を有する。
プロセッサグループID計算部11はヘッダに記載されているソースアドレスやディスティネーションアドレスなどの情報からプロセッサグループIDを計算する(ステップ101)。この計算は、関数管理テーブル12に管理されている関数に、ヘッダに記載されている情報を引数として入力することで行う。次に、グループ所属プロセッサ決定部18内に存在するパケット計測部32において計算されたプロセッサグループIDをインデックスとして、プロセッサグループ−パケット数管理テーブル33においてプロセッサグループごとに管理しているパケット数を1増加させる(ステップ102)。次に、プロセッサ検索部16は計算されたプロセッサグループIDをインデックスとして、パケットを処理させるプロセッサの番号とパケットのシーケンス番号を、それぞれプロセッサグループID−プロセッサ番号管理テーブル14とプロセッサグループID−シーケンス番号管理テーブル15から検索する(ステップ103、104)。次に、シーケンス番号添付部17は検索されたプロセッサグループに属しているプロセッサを、プロセッサ選択アルゴリズム13を用いて選択し、パケットを選択したプロセッサに処理してもらうため、パケットを処理するための情報を作成、もしくはプロセッサ1からもたらされたものを利用し、その中にプロセッサグループIDとシーケンス番号を記載する(ステップ105)。プロセッサ選択アルゴリズム13の例として、グループ内の処理を行わないプロセッサを、ラウンドロビンや重み付けラウンドで選択する、一様分布に従って選択する、などのアルゴリズムがある。次に、プロセッサにこの情報を渡す(ステップ106)。最後に、次に到着したパケットの順番を示すため、プロセッサグループID−シーケンス番号管理テーブル15中のシーケンス番号を増加させる(ステップ107)。
ソーター4のシーケンス番号比較部22は、プロセッサによって処理されたパケットの情報を受信すると(ステップ301)、該情報に記載されているプロセッサグループIDを用いて、プロセッサグループID−シーケンス番号管理テーブル21から次に送信するパケットのシーケンス番号を検索する(ステップ302)。次に、検索した番号と受け取ったパケットの番号を比較し、受け取ったパケットが次に送信するパケットかどうかを判断する(ステップ303)。両者が一致する場合は次に送信できるパケットを受信したことがわかるため、パケットをプロセッサ5に送る(ステップ304)。もし両者が異なっていれば送信する順番が来るまで該パケットをパケット待機用バッファ23でパケットを待機させる(ステップ306)。プロセッサ5がパケットを転送するたびに転送されたパケットと同じプロセッサグループIDに対応した、プロセッサグループID−シーケンス番号管理テーブル21中の、次に送信する順番を示すシーケンス番号を1増加させる(ステップ305)。
ソーター4はプロセッサによって処理されたパケットの情報を受け取ると、パケットの情報の中に入っているプロセッサグループIDとシーケンス番号を調べる(図11)。次に、得られたプロセッサグループIDをもとにプロセッサグループID−シーケンス番号管理テーブル21から、次に送信するパケットのシーケンス番号を得る(図12)。この例では、次に送信するパケットのシーケンス番号が1354で、プロセッサ32から送られてきたパケット情報に記載しているシーケンス番号が1354であるため、次に送信するパケットであると判断される。その後、パケット情報はプロセッサ5へと送られ、プロセッサ5によってパケットは転送される。プロセッサ5はパケットを送信すると、ソーター4のプロセッサグループID−シーケンス番号管理テーブル21で管理される、次に送信するパケットのシーケンス番号の値を1増加させる(図13)。もし、ソーター4が持つパケット待機用バッファ23内のキューの中にパケットが待機させられているならば、シーケンス番号が増加するたびに待機しているパケットのシーケンス番号をチェックし、次に転送するパケットが存在するならばそのパケットをプロセッサ5に送る。ソーター4は待機するパケットを収納するためにプロセッサグループIDごとにキューを用意している。シーケンス番号をチェックする際には、キューを先頭から探索し、次に送信するシーケンス番号と同じものを持つパケットを検索する。
2 ディストリビュータ
31〜3n プロセッサ
4 ソーター
5 プロセッサ(Tx)
11 プロセッサグループID計算部
12 関数記録テーブル
13 プロセッサ選択アルゴリズム
14 プロセッサグループID−プロセッサ番号管理テーブル
15 プロセッサグループID−シーケンス番号管理テーブル
16 プロセッサ検索部
17 シーケンス番号添付部
18 グループ所属プロセッサ決定部
21 プロセッサグループID−シーケンス番号管理テーブル
22 シーケンス番号比較部
23 パケット待機用バッファ
31 タイマー
32 パケット計測部
33 プロセッサグループ−プロセッサ数管理テーブル
34 プロセッサ決定部
35 プロセッサ数−パケット到着率対応表
36 プロセッサ負荷計測部
101〜107,201〜207,301〜306 ステップ
Claims (5)
- パケットを処理するプロセッサが複数存在するパケット転送装置において、
パケットごとに処理させるプロセッサを決定し、そのプロセッサにパケットを渡す第1のモジュールと、プロセッサでの処理後にパケットを到着順に並べ直す第2のモジュールとを有し、
前記第1のモジュールは、パケット処理を行うプロセッサをまとめたプロセッサグループと、各プロセッサグループに属するプロセッサを管理する手段と、パケットのフロー識別子からパケット処理を行うプロセッサが属するプロセッサグループを、前記プロセッサを管理する手段から選択する手段と、プロセッサグループ毎に単位時間当たりのパケット到着数をカウントし、カウント結果に対応するプロセッサ数を検索し、検索されたプロセッサ数に合うようにプロセッサグループに所属するプロセッサを決定する手段と、該プロセッサグループに属するプロセッサからパケットを処理してもらうプロセッサを選択する手段と、選択したプロセッサにパケットを送る手段と、プロセッサグループごとにパケットの到着順を表わすシーケンス番号を管理する手段と、シーケンス番号をパケット情報としてプロセッサに渡した後、前記シーケンス番号を管理する手段中のシーケンス番号を増加させる手段とを有し、
前記第2のモジュールは、先にフロー情報から計算されたIDごとに次に送信するパケットの番号を管理する手段と、処理されたパケットのシーケンス番号と前記パケットの番号を管理する手段で管理している次に転送するパケットのシーケンス番号を比較し、両者が一致する時パケットを送信し、合致しない場合はバッファに格納して、送信する順番になるまで待機させる手段とを有する
パケット転送装置。 - パケット転送装置におけるパケットを処理させるプロセッサにパケットを分配する方法であって、
異なるフローのフロー情報から計算される値が同じになる場合を許可する関数を用いてプロセッサグループIDを計算するステップと、
プロセッサグループ毎に単位時間当たりのパケット到着数をカウントし、カウント結果に対応するプロセッサ数を検索し、検索されたプロセッサ数に合うようにプロセッサグループに所属するプロセッサを決定するステップと、
前記プロセッサグループIDをインデックスとして、プロセッサグループID-プロセッサ番号管理テーブルからパケットを処理させるプロセッサグループの番号を検索するステップと、
前記プロセッサグループIDをインデックスとして、プロセッサグループID-シーケンス番号管理テーブルからパケットのシーケンス番号を検索するステップと、
検索されたプロセッサグループに属するプロセッサからパケットを処理してもらうプロセッサを選択する手段と、
選択したプロセッサにパケットを、前記プロセッサグループIDと前記シーケンス番号とともに送るステップと、
前記プロセッサグループID-シーケンス番号管理テーブルの前記計算されたプロセッサグループIDのシーケンス番号を増加させるステップと、
を有するパケット分配方法。 - パケット転送装置においてパケットを処理するプロセッサの負荷を均等にするグループ所属プロセッサ変更方法であって、
前記プロセッサグループに属するプロセッサに処理してもらうパケットが単位時間内に到着する数をプロセッサグループごとに計算するステップと、
プロセッサごとの単位時間当たりのパケット受付数を計算するステップと、
プロセッサグループに属するプロセッサ数を数えるステップと、
該プロセッサグループに属するプロセッサに処理してもらうパケットの単位時間当たりの到着率を計算するステップと、
プロセッサのパケット受付数が第1の閾値を超えると、該プロセッサをグループに加えているプロセッサグループのうち、最も単位時間当たりのパケット到着数の多いグループに、その時点で最も受付数の少なかったプロセッサを追加し、プロセッサのパケット受付数が第1の閾値を下回ると、該プロセッサをグループに加えているプロセッサグループのうち、最も単位時間当たりのパケット到着数の少ないグループから、その時点で最も受付数の多かったプロセッサを削除するステップと、
プロセッサグループに対応するパケットの到着率が、前回測定時よりも増加し、かつ前記到着率に関する複数の第2の閾値とプロセッサ数の関係を記載する表におけるグループに属するプロセッサ数を変更しない上限の第2の閾値を超える場合、その時点で最も受付数の少なかったプロセッサを該プロセッサグループに追加し、プロセッサグループに対応するパケットの到着率が、前回測定時よりも減少し、かつ前記第2の閾値とプロセッサ数の関係を記載する表において、到着率がグループに属するプロセッサ数を変更しない下限の第2の閾値を下回る場合、プロセッサグループに属しているプロセッサのうち、最も単位時間当たりのパケット処理数の大きいものをプロセッサグループから削除するステップと
を有するグループ所属プロセッサ変更方法。 - 請求項2に記載のパケット分配方法をコンピュータに実行させるためのプログラム。
- 請求項3に記載のグループ所属プロセッサ変更方法をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006314234A JP4648290B2 (ja) | 2006-11-21 | 2006-11-21 | パケット転送装置、パケット分配方法、グループ所属プロセッサ変更方法、およびコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006314234A JP4648290B2 (ja) | 2006-11-21 | 2006-11-21 | パケット転送装置、パケット分配方法、グループ所属プロセッサ変更方法、およびコンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008131350A JP2008131350A (ja) | 2008-06-05 |
JP4648290B2 true JP4648290B2 (ja) | 2011-03-09 |
Family
ID=39556766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006314234A Expired - Fee Related JP4648290B2 (ja) | 2006-11-21 | 2006-11-21 | パケット転送装置、パケット分配方法、グループ所属プロセッサ変更方法、およびコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4648290B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5028431B2 (ja) * | 2009-01-07 | 2012-09-19 | 株式会社日立製作所 | ネットワーク中継装置およびパケット振り分け方法 |
JP5325731B2 (ja) * | 2009-09-30 | 2013-10-23 | 株式会社日立製作所 | ネットワーク中継装置 |
KR101583325B1 (ko) * | 2014-08-12 | 2016-01-07 | 주식회사 구버넷 | 가상 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법 |
JP6482296B2 (ja) * | 2015-01-28 | 2019-03-13 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | パケット処理システム、通信システム、パケット処理装置、パケット処理方法、及びプログラム |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04235662A (ja) * | 1991-01-11 | 1992-08-24 | Nec Corp | マルチプロセッサ間の負荷分散方式 |
JPH0774754A (ja) * | 1993-09-06 | 1995-03-17 | Nec Corp | パケット交換機の負荷分散制御方式 |
WO2000004494A1 (en) * | 1998-07-17 | 2000-01-27 | Intergraph Corporation | Graphics processing system with multiple strip breakers |
JP2001339382A (ja) * | 2000-05-29 | 2001-12-07 | Matsushita Electric Works Ltd | 暗号処理制御方法及びそのプログラムを記録した記録媒体及び暗号処理制御装置及び暗号処理システム |
JP2004524598A (ja) * | 2000-09-25 | 2004-08-12 | クロスビーム システムズ, インク. | ネットワークアプリケーション装置のためのフロースケジューリング及びアーキテクチャ |
JP2004350188A (ja) * | 2003-05-26 | 2004-12-09 | Nec Corp | データ転送装置及びプログラム |
JP2005507614A (ja) * | 2001-10-30 | 2005-03-17 | エイチアイ/エフエヌ,インコーポレイテッド | パケットの順序付けを行う並列パケット変換処理のための方法、システムおよびコンピュータプログラム製品 |
-
2006
- 2006-11-21 JP JP2006314234A patent/JP4648290B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04235662A (ja) * | 1991-01-11 | 1992-08-24 | Nec Corp | マルチプロセッサ間の負荷分散方式 |
JPH0774754A (ja) * | 1993-09-06 | 1995-03-17 | Nec Corp | パケット交換機の負荷分散制御方式 |
WO2000004494A1 (en) * | 1998-07-17 | 2000-01-27 | Intergraph Corporation | Graphics processing system with multiple strip breakers |
JP2001339382A (ja) * | 2000-05-29 | 2001-12-07 | Matsushita Electric Works Ltd | 暗号処理制御方法及びそのプログラムを記録した記録媒体及び暗号処理制御装置及び暗号処理システム |
JP2004524598A (ja) * | 2000-09-25 | 2004-08-12 | クロスビーム システムズ, インク. | ネットワークアプリケーション装置のためのフロースケジューリング及びアーキテクチャ |
JP2005507614A (ja) * | 2001-10-30 | 2005-03-17 | エイチアイ/エフエヌ,インコーポレイテッド | パケットの順序付けを行う並列パケット変換処理のための方法、システムおよびコンピュータプログラム製品 |
JP2004350188A (ja) * | 2003-05-26 | 2004-12-09 | Nec Corp | データ転送装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2008131350A (ja) | 2008-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shi et al. | Load balancing for parallel forwarding | |
US11824764B1 (en) | Auto load balancing | |
CN102170396B (zh) | 一种基于区分服务的云存储系统QoS控制方法 | |
US9185047B2 (en) | Hierarchical profiled scheduling and shaping | |
US7751404B2 (en) | Method, system, and computer program product for high performance bonding resequencing | |
US9106545B2 (en) | Hierarchical occupancy-based congestion management | |
US20140075036A1 (en) | Queue Scheduling Method and Apparatus | |
US20080101233A1 (en) | Method and apparatus for load balancing internet traffic | |
CN111107000B (zh) | 一种基于网络编码的命名数据网络中内容缓存方法 | |
US12068972B1 (en) | Shared traffic manager | |
CN116114233A (zh) | 自动流管理 | |
CN113518130B (zh) | 一种基于多核处理器的分组突发负载均衡方法及系统 | |
JP4648290B2 (ja) | パケット転送装置、パケット分配方法、グループ所属プロセッサ変更方法、およびコンピュータプログラム | |
US7792129B2 (en) | Multi-queue packet processing using Patricia tree | |
JP2013196389A (ja) | 情報処理装置、情報処理プログラム及び情報処理方法 | |
US10291540B2 (en) | Method and apparatus for performing a weighted queue scheduling using a set of fairness factors | |
WO2020200307A1 (zh) | 数据包标记方法及设备、数据传输系统 | |
US10742558B1 (en) | Traffic manager resource sharing | |
JP2000083055A (ja) | ルータ | |
CN111444183B (zh) | 一种键值存储系统中的分布式自适应用户请求调度方法 | |
CN114285790A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN110661731B (zh) | 一种报文处理方法及其装置 | |
JP7251060B2 (ja) | 情報処理装置、情報処理システム及び情報処理プログラム | |
CN115297122B (zh) | 基于负载自动监测的政务运维方法和系统 | |
WO2023193689A1 (zh) | 报文传输方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100917 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101006 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101112 |
|
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: 20101201 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101209 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131217 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |