JP4998507B2 - ネットワーク装置 - Google Patents

ネットワーク装置 Download PDF

Info

Publication number
JP4998507B2
JP4998507B2 JP2009105046A JP2009105046A JP4998507B2 JP 4998507 B2 JP4998507 B2 JP 4998507B2 JP 2009105046 A JP2009105046 A JP 2009105046A JP 2009105046 A JP2009105046 A JP 2009105046A JP 4998507 B2 JP4998507 B2 JP 4998507B2
Authority
JP
Japan
Prior art keywords
processing
time
unit
packet data
distribution
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
Application number
JP2009105046A
Other languages
English (en)
Other versions
JP2010258660A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009105046A priority Critical patent/JP4998507B2/ja
Publication of JP2010258660A publication Critical patent/JP2010258660A/ja
Application granted granted Critical
Publication of JP4998507B2 publication Critical patent/JP4998507B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、通信パケットデータのルーティング、フィルタリング、編集・加工等の処理を行うルータやゲートウェイ装置等のネットワーク装置に関する。
IP(Internet Protocol)ネットワーク等に用いられるネットワーク装置は、近年の伝送速度の高速化やパケットデータ処理の高度化・複雑化に対応するため、ハードウェアによる処理の高速化および高度化(高レイヤ処理)がトレンドとなっている。すなわち、同一装置内または装置間に複数の処理部を設け、各処理部によりパケットデータ処理を並列処理(負荷分散)することで性能パフォーマンスを高めている。
入力したパケットデータを複数の処理部で並列処理を行うにあたっては、複数の処理部に対して入力したパケットデータの処理振り分けを行う必要があり、ハッシュ方式やラウンドロビン方式による処理振り分けが一般的である。ハッシュ方式とは、入力したパケットデータのヘッダ情報等の一部に対してハッシュ演算を行い、ハッシュ値の法(modulo)をとることで、振り分ける処理部を決定するものである。ラウンドロビン方式とは、複数の処理部に対してパケットデータを順番に振り分けるものである。
しかし、ハッシュ方式やラウンドロビン方式による処理振り分けでは、パケットデータの偏り(ハッシュ結果が分散しない)や処理時間(TAT:Turn Around Time)のバラツキにより、処理部の負荷に偏りが生じ、最適に処理リソースを使用することができないという問題がある。
そのため、処理部の受付バッファ(処理キュー)の残量や処理の輻輳情報を取得し、これに基づいて処理振り分けを行うようにした技術が提案されている(例えば、特許文献1、2参照。)。特許文献1は、パケット分配制御部が、パケットプロセッサの負荷レベル(バッファ保持パケット量、処理中断パケット数、パケット処理の種類等)に応じて返送される応答により、負荷の少ないパケットプロセッサを分配先として決定するようにしている。特許文献2は、ネットワーク処理部(分配部相当)が、複数のインタフェース処理部と複数のルート検索部の負荷状況(パケット属性毎にパケットメモリ保存のパケット数)を監視し、負荷判断手段により負荷が最も小さいと判断されたものに分散するようにしている。
特開2000−222374号公報 特開2000−36834号公報
上述した処理部の受付バッファの残量や処理の輻輳情報に基づいて処理振り分けを行うようにした従来の技術では、処理中の状態あるいは処理後の結果から処理部の負荷を判定するため、
(1)処理遅延バラツキの増大
(2)処理順序逆転による待ち合わせのための処理性能パフォーマンス低下
(3)受付バッファ量の増大による遅延増大
という問題があった。
以下、これらの問題の発生につき、より詳細に説明する。
図1は従来のネットワーク装置の概略構成を示す図であり、入力パケットデータを処理振り分け部によりn個の処理部#1〜#nに振り分け、それぞれの処理部#1〜#nから処理後の出力パケットデータを得る。各処理部#1〜#nは、受付バッファ(処理キュー)とCPU(Central Processing Unit)コアと情報送信部とを備えている。
受付バッファは、振り分けられたパケットデータを受付順に保持する。CPUコアは、受付バッファの先頭のパケットデータから順次に処理を行う。なお、CPUコアは、処理に際してメモリやI/O(Input Output)デバイス等の共有リソースのアクセスを行う。
情報送信部は、受付バッファの残量等に基づく残量・輻輳情報を処理振り分け部に通知する。例えば、受付バッファの蓄積量が第1の所定値よりも多くなった場合には、残量・輻輳情報として、処理振り分けの停止を通知し、受付バッファの蓄積量が第2の所定値よりも少なくなった場合には、処理振り分けの再開を通知する。
図2は図1のネットワーク装置による処理振り分けの例を示す図であり、処理部の数nを4としている。
今、処理部#1には、パケット処理サイクルが「100」かかるパケットが1個、処理部#2、#3、#4にはパケット処理サイクルが「10」かかるパケットが2個ずつ、処理待ち状態にあるものとする。この状態の時に、入力パケットがA1、A2、A3、B1、C1の順で到着したとする。なお、入力パケットA1、A2、A3、B1、C1のパケット処理サイクルは全て「10」であるものとする。
ここで、入力パケットA1〜A3の3パケットは、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)のパケットのように複数のIPパケットにまたがるものとする。そのため、TCPやUDPのレイヤでの処理完了は、3つのパケットA1〜A3全てが完了することである。
先ず、最初に到着したパケットA1は、最もバッファリングされたパケット数が少ない処理部#1へ振り分けられる。
その次のパケットA2は、全ての処理部でのバッファリングされたパケット数が同一のため、任意の処理部、ここでは処理部#2へ振り分けられる。
他のパケットについても同じ論理にて各処理部へ振り分けられ、均等にパケット数が保たれてスケジューリングされることになる。ただし、パケット数は同一であるが、処理時間の合計は処理部#1〜#4において、それぞれ「120」「30」「30」「30」と異なるものとなる。
図3は上記の処理振り分け結果に基づく処理実行の例を示す図である。
処理部#1は、時間「0」から「100」サイクルかかる処理を行っているため、パケットA1の処理は時間「100」から開始され、時間「110」に処理を完了する。
処理部#2は、時間「20」からパケットA2の処理を開始し、時間「30」に処理を完了するが、処理逆転によりパケットA1の処理が完了していないため、時間「110」まで待ち合わせのためストールする。処理部#3も同様に同時刻までストールする。TCPパケットのように複数のIPパケットから構成されるものを再組み立てして処理するケースでは、異なる処理部に振り分けられた結果、処理逆転が発生し、処理が完了しても待ち合わせのために次のパケットの処理に移行できなくなる。従って、処理部#2、#3の時間「30」から「110」までは、後続のパケットを処理できないロス時間となる。このロス時間は、パケット処理性能を下げる要因となり、パケット単位の処理時間に差が大きいほど影響が大きくなる。
次に、パケットB1は待ち処理時間の少ない処理部#4に振り分けられ、パケットC1は待ち処理時間の少ない処理部#1に振り分けられているため、パケットB1の処理完了時間が時間「30」、パケットC1の処理完了時間が「120」となる。パケットB1の処理完了時間とパケットC1の処理完了時間には「90」の差が生まれる。この時間差は処理遅延のゆらぎや増大という問題で表面化する。また、パケット当りの最小処理時間と最大処理時間の差が大きいほど、遅延バラツキが大きくなる。
次に、図4は受付バッファのバッファ量と処理振り分けの送信/停止の関係の例を示す図である。
図4において、各処理部#1〜#4は、受付バッファの蓄積量(パケット数)が送信停止閾値Xon(パケット数)を超えた場合に、処理振り分け部に残量・輻輳情報として送信停止を要求するものとする。また、受付バッファの蓄積量が送信再開閾値Xoff(パケット数)を下回った場合に処理振り分け部に送信再開を要求するものとする。また、受付バッファの最大蓄積量をY(パケット数)とする。受付バッファから処理振り分け部に残量・輻輳情報が届くまでの経過時間をTAT1とする。残量・輻輳情報が処理振り分け部から各処理部#1〜#4へのパケットデータの送信・停止に反映されるまでの経過時間をTAT2とする。この場合、各処理部#1〜#4の受付バッファが空にならずオーバフローしないための条件としては、
TAT1+TAT2 < Xoff × パケット当たりの最小処理時間
TAT1+TAT2 < (Y−Xon) × パケット当たりの最大処理時間
となる。
従って、TAT1+TAT2を固定値とし、Xoff、XonをYにおける所定の比率とした場合、処理部の受付バッファ量Yはパケット当りの最小処理時間が短いほど大きくなり、受付バッファに入ってから処理が完了するまでの遅延時間が長くかかる。受付バッファ量を小さくすれば、受付バッファが空になって処理部のアイドル時間により処理性能が低下する可能性がある。
上記の従来の問題点に鑑み、処理遅延バラツキが小さく、処理順序逆転による待ち合わせのための処理性能パフォーマンス低下が生じにくく、受付バッファ量の増大による遅延増大が発生しにくい負荷分散の手法を提供することを目的とする。
このネットワーク装置の一実施態様では、複数の処理部を有し、入力パケットデータを処理振り分け部により前記処理部のいずれか一つに振り分けて負荷分散しながら所定のネットワーク処理を行うネットワーク装置であって、前記処理振り分け部は、入力パケットデータの一部のキー情報に基づいて処理種別を取得する手段と、取得した処理種別を記憶する手段と、今回の処理種別と前記記憶している前回の処理種別とが同一であるときは、前記処理種別に対応する第1の時間に基づいて処理時間を算出し、同一でないときは、前記処理種別に対応する、前記第1の時間よりも長い第2の時間に基づいて処理時間を算出し、当該処理時間に基づき、入力パケットデータを前記処理部のそれぞれに振り分けたと仮定した場合の前記処理部の各々の処理時間の分布情報を算出する手段と、処理時間の分布が最も均等になる前記処理部に入力パケットデータを振り分ける手段とを備える。
開示のネットワーク装置にあっては、入力したパケットデータを、処理時間を考慮して予めスケジューリングしてから処理部に振り分けるため、処理遅延バラツキの低減、処理順序逆転による処理性能パフォーマンス低下の防止、受付バッファ量の増大による遅延増大の防止を図ることができる。
従来のネットワーク装置の概略構成を示す図である。 処理振り分けの例を示す図である。 処理振り分け結果に基づく処理実行の例を示す図である。 受付バッファのバッファ量と処理振り分けの送信/停止の関係の例を示す図である。 一実施形態にかかるネットワーク装置の構成例を示す図である。 識別番号取得テーブルのデータ構造例を示す図である。 処理時間取得テーブルのデータ構造例を示す図である。 固定処理時間情報の表現形式の例を示す図である。 処理時間管理部の構成例を示す図である。 実行用時間キューの構成例を示す図である。 データ書き込み/補正部の処理例を示すフローチャートである。 「競合相手の後ろに補正」の処理例を示すフローチャートである。 「競合相手を補正」の処理例を示すフローチャートである。 処理振り分けの例を示す図である。 処理振り分け結果に基づく処理実行の例を示す図である。 アクセス経路の例を示す図(その1)である。 固定処理時間情報の補正の例を示す図である。 アクセス経路の例を示す図(その2)である。 アクセス経路の例を示す図(その3)である。
以下、本発明の好適な実施形態につき説明する。
<構成>
図5は一実施形態にかかるネットワーク装置の構成例を示す図である。
図5において、ネットワーク装置1は、回線対応部2と処理振り分け部3とデータバッファ41およびデータディスクリプタ42と処理部5#1〜5#nと共有リソース6#1〜6#mと送信制御部8とを備えている。
回線対応部2は、GbE(Gigabit Ethernet(登録商標))、POS(PPP(Point to Point Protocol) over SONET(Synchronous Optical Network))等の回線データとのインタフェースを行う部分である。回線対応部2は、回線データに対する物理(PHY)レイヤの処理を行う回線終端部21、24と、Ethernet(登録商標)、PPP等のレイヤ2の処理を行うL2終端部22、23とを備えている。
処理振り分け部3は、回線対応部2から入力したパケットデータを処理部5#1〜5#nのいずれかに振り分ける部分である。処理振り分け部3は、パケット識別部31と処理時間管理部32とスケジューリング判定部33と実行用時間キュー34とを備えている。
パケット識別部31は、入力したパケットデータのパケットヘッダ情報やペイロードの情報の一部から処理種別(パケット処理識別番号)を識別し、その処理種別のパケットデータの処理部5#1〜5#nでの処理に必要な固定処理時間を取得する部分である。パケット識別部31は、シーケンス番号付与部311と検索部312と識別番号取得テーブル313と処理時間取得テーブル314とを備えている。
シーケンス番号付与部311は、入力したパケットデータに対してシーケンス番号を付与する機能を有している。検索部312は、パケットデータに含まれるIP種別、IP−DA(Destination Address)/SA(Source Address)等のキー情報を抽出し、識別番号取得テーブル313を検索してパケット処理識別番号を取得する機能を有している。また、検索部312は、検索して得たパケット処理識別番号に基づき、処理時間取得テーブル314を検索して固定処理時間情報を取得する機能を有している。
識別番号取得テーブル313は、CAM(Content Addressable Memory)等により実装されるものであり、図6に示すように、IP種別、IP−DA/SA等のキー情報とパケット処理識別番号とが予め対応付けて格納されている。
処理時間取得テーブル314は、SRAM(Static Random Access Memory)もしくはDRAM(Dynamic Random Access Memory)等により実装されるものであり、図7に示すように、パケット処理識別番号と固定処理時間情報とが対応付けて格納されている。この対応付けは、予めオペレータ等の作業により行なわれる場合と、処理部5#1〜5#nからのフィードバックにより自動的に行われる場合とがある。
また、固定処理時間情報には、キャッシュヒット固定処理時間とキャッシュ未ヒット固定処理時間とが含まれている。キャッシュヒット固定処理時間とは、各処理部5#1〜5#n内で直前と同一の処理種別のパケットデータを処理する場合の固定処理時間である。キャッシュ未ヒット固定処理時間とは、各処理部5#1〜5#n内で直前と異なる処理種別のパケットデータを処理する場合の固定処理時間である。図7では、命令実行による処理時間をC1、共有リソースアクセスの処理時間をC2としており、命令実行による処理時間C1はキャッシュヒットの場合は短くなる。
図8は固定処理時間情報の表現形式の例を示す図であり、その後の処理を実施しやすくするため、ビット表現により実現したものである。すなわち、命令実行をサイクル数分のビット「1」で表し、共有リソースアクセスをサイクル数分のビット「0」で表している。図示の例では、時間軸上に命令実行が5サイクル、その後に共有リソースアクセスが5サイクル、再度の命令実行が5サイクルからなる処理について、「111110000011111」=「0x7C1F」と表現している。なお、図示の例では共有リソースアクセスが1回であるが、複数回の共有リソースアクセスについても同様に表現することができる。また、1アクセス目に共有リソースアクセスが発生することはないため(処理部は命令実行により共有リソースアクセスを行うため)、全ビット長がアクセスサイクル数となる。
なお、図8は2つの実行内容を1ビットで表現した例であるが、複数の実行内容を表現したい場合、例えば異なる種別の共有リソースが複数ある場合などは、多ビットを1アクセスサイクルに対応付けることにより表現することができる。
図5に戻り、処理時間管理部32は、パケット識別部31により取得した固定処理時間情報に基づき、パケットデータを処理部5#1〜5#nのそれぞれに別々に振り分けたと仮定した場合の処理部5#1〜5#nの各々の処理時間の分布情報(平均偏差合計値)を算出する部分である。なお、処理時間管理部32は、直前の振り分け情報を実行用時間キュー34から取得し、最新の状態に更新された状態で分布情報の算出を行う。
処理時間管理部32は、各処理部5#1〜5#nに対応する処理部#1計算用時間キュー321#1〜処理部#n計算用時間キュー321#nを備えている。処理部#1計算用時間キュー321#1は、パケットデータを処理部5#1に振り分けたと仮定した場合の各処理部5#1〜5#nの各々の処理時間の分布情報を算出する。処理部#n計算用時間キュー321#nは、パケットデータを処理部5#nに振り分けたと仮定した場合の各処理部5#1〜5#nの各々の処理時間の分布情報を算出する。処理時間管理部32の内部構成の詳細については後述する。
スケジューリング判定部33は、処理時間管理部32の算出した分布情報に基づき、処理時間の分布が最も均等な処理部(処理部5#1〜5#nのいずれか)を決定する部分である。パケットデータの優先度に基づく制御を行う場合、スケジューリング判定部33は、パケット処理識別番号から優先度を識別し、優先クラス毎に処理部5#1〜5#nへの入力パケットデータの振り分けを行う。
実行用時間キュー34は、スケジューリング判定部33により決定された処理部(処理部5#1〜5#nのいずれか)に対するスケジューリング済の情報を保持し、各処理部5#1〜5#nに対して入力パケットデータを振り分ける部分である。また、実行用時間キュー34は、必要に応じ、共有リソース6#1〜6#mに対して共有リソース割り当て情報(アクセス許可要求)を与える。
データバッファ41は、パケット識別部31の検索部312を介して処理対象のパケットデータを保持するとともに、各処理部5#1〜5#nによる処理済のパケットデータを保持する部分である。
データディスクリプタ42は、データバッファ41に保持されたパケットデータのアドレスを示すパケットバッファポインタとシーケンス番号とを対応付けて保持する部分である。
処理部5#1〜5#nは、処理振り分け部3により振り分けられたパケットデータに対して処理種別に応じた所定の処理を実行する部分である。各処理部5#1〜5#nは、受付バッファ(処理キュー)51とパケットデータ領域52とプログラム/キャッシュ領域53とCPUコア54と共有リソースアクセス部55とTAT保持/送信部56とを備えている。TAT保持/送信部56は、固定処理時間情報のフィードバックによる自動的な更新を行わない場合は省略することができる。
受付バッファ51は、処理振り分け部3により振り分けられたデータパケットのシーケンス番号とパケット処理識別番号を格納する部分である。パケットデータ領域52は、データバッファ41からシーケンス番号に基づいて取得したパケットデータおよび処理済のパケットデータを格納する部分である。プログラム/キャッシュ領域53は、処理のためのプログラムおよび一時的データを格納する部分である。CPUコア54は、処理を実行する部分である。共有リソースアクセス部55は、アクセス経路7を介して共有リソース6#1〜6#mにアクセスする部分である。TAT保持/送信部56は、受付バッファ51から処理対象のパケットが取り出されるタイミングとCPUコア54および共有リソースアクセス部55の処理状態から、直前の処理の実際の固定処理時間を把握し、処理振り分け部3のパケット識別部31の処理時間取得テーブル314にフィードバックする部分である。
共有リソース6#1〜6#mは、処理部5#1〜5#nからアクセスされる、メモリやI/Oデバイス等である。
送信制御部8は、データバッファ41から処理済のパケットデータを回線対応部2を介して出力する制御を行う部分である。
次に、図9は処理時間管理部32の構成例を示す図である。
図9において、処理時間管理部32の処理部#1計算用時間キュー321#1〜処理部#n計算用時間キュー321#nは同様の構成であるため、処理部#1計算用時間キュー321#1について説明する。
処理部#1計算用時間キュー321#1は、データ書き込み/補正部322と平均偏差合計値生成部323とデータ出力部324と処理部#1用時間キューPQ#1〜処理部#n用時間キューPQ#nと共有リソース#1用時間キューRQ#1〜共有リソース#m用時間キューRQ#mとを備えている。
データ書き込み/補正部322は、処理部#1用時間キューPQ#1〜処理部#n用時間キューPQ#nおよび共有リソース#1用時間キューRQ#1〜共有リソース#m用時間キューRQ#mに対してデータを書き込むとともに、共有リソース#1用時間キューRQ#1〜共有リソース#m用時間キューRQ#mにおける時間的な競合がなくなるように補正を行う部分である。なお、データ書き込み/補正部322は、前回の処理対象となったパケットデータのパケット処理識別番号(前回パケット処理識別番号)を保持している。
平均偏差合計値生成部323は、データ書き込み/補正部322による補正が完了した後に、処理部#1用時間キューPQ#1〜処理部#n用時間キューPQ#nのキュー長の平均偏差合計値を計算する部分である。平均偏差合計値の計算は、処理部#1用時間キューPQ#1〜処理部#n用時間キューPQ#nの時間キュー長の平均値を算出し、各々の時間キュー長と平均値との偏差(絶対値)の合計を計算することで行う。
データ出力部324は、平均偏差合計値生成部323により計算された平均偏差合計値を後続のスケジューリング判定部33に出力する部分である。
処理部#1用時間キューPQ#1〜処理部#n用時間キューPQ#nは、それぞれにポインタテーブルT1とデータテーブルT2とデータテーブルT3とを備えている。ポインタテーブルT1は、シーケンス番号SEQ_NO、パケット処理識別番号、補正前次ポインタNext_Pointer1、補正後次ポインタNext_Pointer2の項目を有している。括弧内は、説明の便宜のためにパケットデータを区別するインデックスである。図においては、下から上方向に積み上げていくものとしており、1段目のインデックスは「0」、2段目のインデックスは「1」としている。データテーブルT2は、補正前の処理時間が格納され、各処理時間の先頭アドレスを前回のパケットデータに対応する補正前次ポインタNext_Pointer1が指している。データテーブルT3は、補正後の処理時間が格納され、各処理時間の先頭アドレスを前回のパケットデータに対応する補正後次ポインタNext_Pointer2が指している。
共有リソース#1用時間キューRQ#1〜共有リソース#m用時間キューRQ#mは、それぞれにポインタテーブルT4とデータテーブルT5とデータテーブルT6とを備えている。ポインタテーブルT4は、シーケンス番号SEQ_NO、処理部番号CNT、補正前先頭ポインタPointer_s_1、補正前末尾ポインタPointer_e_1、補正後先頭ポインタPointer_s_2、補正後末尾ポインタPointer_e_2の項目を有している。処理部番号CNTは、該当する共有リソースにアクセスする処理部5#1〜5#nを識別する番号である。データテーブルT5は、補正前の共有リソースアクセスの処理時間が格納され、各処理時間の先頭アドレスを補正前先頭ポインタPointer_s_1が指し、末尾アドレスを補正前末尾ポインタPointer_e_1が指している。データテーブルT6は、補正後の共有リソースアクセスの処理時間が格納され、各処理時間の先頭アドレスを補正後先頭ポインタPointer_s_2が指し、末尾アドレスを補正後末尾ポインタPointer_e_2が指している。
図10は実行用時間キュー34の構成例を示す図である。
図10において、実行用時間キュー34は、データ書き込み/出力部341と処理部#1用時間キューPQ#1〜処理部#n用時間キューPQ#nと共有リソース#1用時間キューRQ#1〜共有リソース#m用時間キューRQ#mとを備えている。
データ書き込み/出力部341は、処理部#1用時間キューPQ#1〜処理部#n用時間キューPQ#nおよび共有リソース#1用時間キューRQ#1〜共有リソース#m用時間キューRQ#mに対してデータを書き込むとともに、これらの内容を先頭(図の下側)から後続の処理部5#1〜5#nに出力する部分である。
処理部#1用時間キューPQ#1〜処理部#n用時間キューPQ#nは、それぞれにポインタテーブルT1とデータテーブルT3とを備えている。ポインタテーブルT1は、シーケンス番号SEQ_NO、パケット処理識別番号、次ポインタNext_Pointerの項目を有している。データテーブルT3は、処理時間(処理時間管理部32による補正後の処理時間)が格納され、各処理時間の先頭アドレスを前回のパケットデータに対応する次ポインタNext_Pointerが指している。
共有リソース#1用時間キューRQ#1〜共有リソース#m用時間キューRQ#mは、それぞれにポインタテーブルT4とデータテーブルT6とを備えている。ポインタテーブルT4は、シーケンス番号SEQ_NO、処理部番号CNT、先頭ポインタPointer_s、末尾ポインタPointer_eの項目を有している。データテーブルT6は、共有リソースアクセスの処理時間(処理時間管理部32による補正後の処理時間)が格納され、各処理時間の先頭アドレスを先頭ポインタPointer_sが指し、末尾アドレスを末尾ポインタPointer_eが指している。
<動作>
先ず、図5に基づいてネットワーク装置1の全体的な動作について説明する。
回線対応部2の回線終端部21は、入力したGbE、POS等の回線データに対して物理(PHY)レイヤの処理を行い、ビット列をL2終端部22に引き渡す。L2終端部22は、Ethernet(登録商標)、PPP等のレイヤ2の処理を行い、Etherパケット、PPPパケット等のパケットデータを処理振り分け部3に与える。
処理振り分け部3のパケット識別部31は、検索部312により、パケットデータに含まれるIP種別、IP−DA/SA等のキー情報を抽出し、識別番号取得テーブル313を検索してパケット処理識別番号を取得する。また、識別番号取得テーブル313から取得したパケット処理識別番号により処理時間取得テーブル314を検索し、固定処理時間情報を取得する。また、検索部312は、入力したパケットデータ毎にシーケンス番号付与部311からシーケンス番号を取得する。
検索部312は、入力したパケットデータをデータバッファ41に格納するとともに、格納したアドレスを示すパケットバッファポインタとシーケンス番号をデータディスクリプタ42に格納する。また、検索部312は、シーケンス番号とパケット処理識別番号と固定処理時間情報を処理時間管理部32に与える。
処理時間管理部32は、処理部#1計算用時間キュー321#1〜処理部#n計算用時間キュー321#nにより、新たなパケットデータを処理部5#1〜5#nのそれぞれに別々に振り分けたと仮定した場合の各処理部用の時間キューの平均偏差合計値を計算してスケジューリング判定部33に与える。処理時間管理部32は、新たなパケットデータをいったん処理部5#1〜5#nに機械的に仮に振り分けた後、共有リソースの競合がある場合には時間帯の補正を行い、補正後の状態に基づいて時間キューの平均偏差合計値を計算する。処理時間管理部32における処理の詳細については後述する。
スケジューリング判定部33は、平均偏差合計値が最も小さい、すなわち、処理時間の分布が最も均等になる処理部を決定し、処理部用の時間キューと共有リソース用の時間キューの更新データを実行用時間キュー34に与える。これは、処理遅延差を最小化するために各処理部5#1〜5#nに対して均等に処理するものであるが、処理種別毎に優先順位をつけて処理部5#1〜5#nを選択することも可能である。この場合、スケジューリング判定部33は、パケット処理識別番号から優先度を識別し、優先クラス毎に処理部5#1〜5#nへの入力パケットデータの振り分けを行う。また、リアルタイム性の高いメディアに関して、対応する処理部用時間キュー長を他の処理部用時間キューより短くすることにより、低遅延な優先制御を行うことができる。優先順位が高いものの分布のバラツキの少ないものを選択するか、全体の分布のバラツキが少ないものを選択するかは、装置事情による。
なお、実行用時間キュー34からは、処理時間管理部32に対して最新の更新データが与えられ、処理時間管理部32は次のパケットデータの計算前に、振り分けが完了した最新の状態に更新される。
実行用時間キュー34は、所定のタイミングで、各処理部用時間キューからシーケンス番号とパケット処理識別番号を処理部5#1〜5#nに与える。また、実行用時間キュー34は、所定のタイミングで、各共有リソース用時間キューから、処理部番号と処理時間を含む共有リソース割り当て情報(アクセス許可要求)を共有リソース6#1〜6#mに与える。なお、共有リソース6#1〜6#mが共有リソース割り当て情報を必要としない場合は、その付与を省略することができる。
処理部5#1〜5#nの受付バッファ51は、受け取ったシーケンス番号とパケット処理識別番号を処理キューに格納するとともに、シーケンス番号に基づいてデータディスクリプタ42からパケットバッファポインタを取得してパケットデータ領域52に与える。また、パケットデータ領域52から、そのパケットバッファポインタに基づいてデータバッファ41からパケットデータを取得して格納する。
また、CPUコア54は、受付バッファ51の先頭からシーケンス番号とパケット処理識別番号を取得し、パケット処理識別番号に応じた処理をプログラム/キャッシュ領域53のプログラムに基づいて実行し、処理済のパケットデータをパケットデータ領域52に格納する。この処理に際して共有リソース6#1〜6#mにアクセスする必要がある場合は、共有リソースアクセス部55からアクセス経路7を介して共有リソース6#1〜6#mにアクセスする。
また、TAT保持/送信部56は、受付バッファ51から出力されるパケット処理識別番号のタイミングを起点として、次のパケット処理識別番号を受信するまで、サイクル毎に実行内容を各パケット処理識別番号の固定処理時間情報として保持する。すなわち、共有リソースアクセス部55からREQ(Request)が発行されていない時間を命令実行サイクル、REQ発行後ACK(Acknowledge)受信までを共有リソースアクセスサイクルとする。また、CPUコア54からキャッシュヒット/キャッシュ未ヒットを認識する。そして、TAT保持/送信部56は、パケット処理識別番号と固定処理時間(キャッシュヒット/キャッシュ未ヒットの別を含む)を処理時間取得テーブル314にフィードバックする。処理時間取得テーブル314は、フィードバックされた内容に更新を行う。
一方、パケットデータ領域52は、処理が完了したタイミングで、データバッファ41に処理済のパケットデータを格納し、データディスクリプタ42にシーケンス番号とパケットバッファポインタを格納する。
そして、送信制御部8は、処理部5#1〜5#nの受付バッファ51から処理が完了したパケットデータのシーケンス番号を取得し、そのシーケンス番号に基づいてデータディスクリプタ42からパケットバッファポインタを取得する。そして、送信制御部8はそのパケットバッファポインタからのデータ出力をデータバッファ41に指示し、回線対応部2のL2終端部23および回線終端部24を介して回線データを出力する。
次に、図9に示した処理時間管理部32の動作につき、図11のフローチャートに基づいて説明する。
図11において、新たなパケットデータを入力して処理を開始すると(ステップS101)、該当する処理部用時間キューのポインタテーブルT1に新SEQ_NO(z)とパケット処理識別番号を追加格納する(ステップS102)。該当する処理部用時間キューとは、処理部#1計算用時間キュー321#1であれば処理部#1用時間キューPQ#1であり、処理部#n計算用時間キュー321#nであれば処理部#n用時間キューPQ#nである。
次いで、該当する共有リソース用時間キューのポインタテーブルT4に新SEQ_NO(z)とCNT(z)を追加格納する(ステップS103)。該当する共有リソース用時間キューとは、パケット処理識別番号で示される処理でアクセスする共有リソースである。パケット処理識別番号とアクセスする共有リソースの対応関係は図示しないテーブル等により管理される。
次いで、前回と今回のパケット処理識別番号が同じであれば、固定処理時間情報のうちキャッシュヒット部分を処理時間(補正前)とし、異なればキャッシュ未ヒット部分を処理時間(補正前)として抽出する(ステップS104)。
次いで、該当する処理部用時間キューのポインタテーブルT1のSEQ_NO(y)のNext_Pointer1(y)より、データテーブル(補正前)T2上のアドレスを求め、そこに処理時間(補正前)を格納する(ステップS105)。
次いで、処理時間(補正前)のデータサイズからをNext_Pointer1(z)を算出し、該当する処理部用時間キューのポインタテーブルT1に格納する(ステップS106)。
次いで、処理時間(補正前)の共有リソース処理部分の先頭アドレスPointer_s_1(z)と最終アドレスPointer_e_1(z)の値を算出し、該当する共有リソース用時間キューのポインタテーブルT4に格納する(ステップS107)。
次いで、該当する共有リソース用時間キューのポインタテーブルT4のアドレスPointer_s_1(z)は競合なしか否か判断する(ステップS108)。競合なしか否かの判断は、そのポインタテーブルT4の他のPointer_s_1〜Pointer_e_1の範囲内にPointer_s_1(z)が含まれるか否かにより判断する。
Pointer_s_1(z)が競合なしの場合(ステップS108のYes)、該当する共有リソース用時間キューのポインタテーブルT4のアドレスPointer_e_1(z)は競合なしか否か判断する(ステップS109)。
Pointer_e_1(z)が競合なしの場合(ステップS109のYes)、該当する共有リソース用時間キューのポインタテーブルT4のアドレスPointer_s_1(z)からPointer_e_1(z)は競合なしか否か判断する(ステップS110)。
Pointer_s_1(z)からPointer_e_1(z)が競合なしの場合(ステップS110のYes)、補正は不要として、該当する共有リソース用時間キューのポインタテーブルT4のPointer_s_2(z)、Pointer_e_2(z)にそれぞれPointer_s_1(z)、Pointer_e_1(z)を格納し、データテーブル(補正後)T6に処理時間(補正前)の共有リソース処理部分を格納する(ステップS111)。
次いで、該当する処理部用時間キューのポインタテーブルT1のNext_Pointer2(z)にNext_Pointer1(z)を格納し、データテーブル(補正後)T3に処理時間(補正前)を格納する(ステップS112)。
次いで、今回のパケット処理識別番号を内部的に保持し(ステップS113)、処理を終了する(ステップS116)。
一方、Pointer_s_1(z)が競合する場合(ステップS108のNo)、「競合相手の後ろに補正」の処理を行い(ステップS114)、処理を終了する(ステップS116)。処理の詳細については後述する。
また、Pointer_e_1(z)が競合する場合(ステップS109のNo)あるいはPointer_s_1(z)からPointer_e_1(z)が競合する場合(ステップS110のNo)、「競合相手を補正」の処理を行い(ステップS115)、処理を終了する(ステップS116)。処理の詳細については後述する。
図12は「競合相手の後ろに補正」の処理例を示すフローチャートである。
図12において、先ず、Pointer_s_1(z)と競合するSEQ_NO(a)を算出する(ステップS121)。
次いで、該当する共有リソース用時間キューのポインタテーブルT4のアドレスPointer_e_1(a)+1から[Pointer_e_1(z)-Pointer_s_1(z)]分は競合なしか否か判断する(ステップS122)。
競合する場合(ステップS122のNo)、aの次の値をaに代入し(ステップS123)、競合の判断(ステップS122)に戻る。
競合なしの場合(ステップS122のYes)、補正値α[Pointer_e_1(a)+1-Pointer_s_1(z)]を算出する(ステップS124)。
次いで、該当する共有リソース用時間キューのポインタテーブルT4のPointer_s_2(z)、Pointer_e_2(z)にそれぞれPointer_s_1(z)+α、Pointer_e_1(z)+αを格納し、データテーブル(補正後)T6に処理時間(補正前)の共有リソース処理部分を格納する(ステップS125)。
次いで、該当する処理部用時間キューのポインタテーブルT1のNext_Pointer2(z)にNext_Pointer1(z)+αを格納し、データテーブル(補正後)T3に処理時間(補正前)を格納する(ステップS126)。
図13は「競合相手を補正」の処理例を示すフローチャートである。
図13において、先ず、該当する共有リソース用時間キューのポインタテーブルT4のPointer_s_2(z)、Pointer_e_2(z)にPointer_s_1(z)、Pointer_e_1(z)を格納し、データテーブル(補正後)T6に処理時間(補正前)を格納する(ステップS131)。
次いで、該当する処理部用時間キューのポインタテーブルT1のNext_Pointer2(z)にNext_Pointer1(z)を格納し、データテーブル(補正後)T3に処理時間(補正前)を格納する(ステップS132)。
次いで、Pointer_e_1(z)もしくはPointer_s_1(z)と競合するSEQ_NO(a)を算出する(ステップS133)。
次いで、補正値α[Pointer_e_1(z)+1-Pointer_s_1(a)]を算出する(ステップS134)。
次いで、該当する共有リソース用時間キューのポインタテーブルT4のa以降のiにつきPointer_s_2(i)、Pointer_e_2(i)にそれぞれPointer_s_1(i)+α、Pointer_e_1(i)+αを格納し、データテーブル(補正後)T6に以前の処理時間(補正後)を格納する(ステップS135)。
次いで、該当する処理部用時間キューのポインタテーブルT1のi以降のjにつきNext_Pointer2(j)にNext_Pointer1(j)+αを格納し、データテーブル(補正後)T3に以前の処理時間(補正後)を格納する(ステップS136)。
次いで、該当する共有リソース用時間キューのポインタテーブルT4のi以降のjにつきPointer_s_2(j)、Pointer_e_2(j)にそれぞれPointer_s_1(j)+α、Pointer_e_1(j)+αを格納し、データテーブル(補正後)T6に以前の処理時間(補正後)を格納する(ステップS137)。
<具体的動作例>
図14は処理振り分けの例を示す図であり、処理部の数nを4としている。図2に示した従来の処理振り分けと対比しやすくするため、同じ状況を想定している。
今、処理部5#1には、パケット処理サイクルが「100」かかるパケットデータが1個、処理部5#2、5#3、5#4にはパケット処理サイクルが「10」かかるパケットデータが2個ずつ、処理待ち状態にあるものとする。処理部5#1〜5#4に振り分けられたパケットデータの状態は、処理時間管理部32において予め行われているスケジューリングにより把握されており、処理部用時間キューがその状態を示している。図14では、各処理部5#1〜5#4の処理待ちのパケットデータに要する処理時間の長さを網掛けのバーで併記している。
この状態の時に、入力パケットがA1、A2、A3、B1、C1の順で到着したとする。なお、入力パケットA1、A2、A3、B1、C1のパケット処理サイクルは全て「10」であるものとする。
先ず、入力パケットA1については、処理時間が「10」と認識され、処理部5#2〜5#4のいずれに振り分けても分布の均等さは変わらないものと判断し、処理部5#2に振り分ける。
後続の入力パケットA2、A3、B1、C1についても同様に振り分けが行われ、結果として、処理部5#1には振り分けられず、処理部5#2には入力パケットA1、B1が、処理部5#3には入力パケットA2、C1が、処理部5#4には入力パケットA3が振り分けられる。
図15は上記の処理振り分け結果に基づく処理実行の例を示す図である。図3に示した従来の処理実行と比べ、「100」サイクルかかる処理を行っている処理部5#1には新たなパケットデータが振り分けられないため、連続して到来するパケットデータA1、A2、A3、B1、C1はほぼ同時期に処理が行われる。そのため、処理遅延バラツキが小さく抑えられるとともに、TCPパケットのように再組み立てのための待ち合わせが発生しないため、処理性能の低下もきたさない。
<共有リソースへのアクセス経路の違いによる変更点等>
図16は処理部5#1〜5#nと共有リソース6#1〜6#mを接続するアクセス経路7としてシリアルバスもしくはパラレルバスを用いたものである。
シリアルバスもしくはパラレルバスの場合、バスが共有型になるため、複数の共有リソース6#1〜6#mが接続される場合においても処理振り分け部3の共有リソース用時間キューは、共有リソース単位ではなく、共有バス単位に具備する必要がある。
また、シリアルバスとパラレルバスでは、処理部5#1〜5#nからバスへ信号を送出するまでの時間が異なる。このため、シリアルバスとパラレルバスが混在する構成では、パケット識別部31からの固定処理時間情報をバス種別により補正する必要がある。パケット識別部31で設定される固定処理時間情報がパラレルバス基準の場合、処理時間管理部32の最初の段階においてシリアルバス用の補正を行う。補正値はバスの構造上から決定されるものであるため、固定値である。
図17は固定処理時間情報の補正の例を示す図であり、パケット識別部31からの固定処理時間情報に対し、シリアルバス用に必要なS/P(Serial/Parallel)変換時間を共有リソースアクセスの前後に加えて補正を行っている。
図18はアクセス経路7の他の例を示す図であり、処理部5#1〜5#nと共有リソース6#1〜6#mを接続するアクセス経路7としてトークンリングバスやTDM(Time Division Multiplexing)バスを用いたものである。なお、コントローラ71は、処理振り分け部3からの共有リソース割り当て情報をもとに、タイムスロットの割り当てやトークンの発行を行う。
トークンリングバスやTDMバスの場合は、各処理部5#1〜5#nに割り当てられるスロット(周期的)が決まっているため、バスを時分割で共有することになり、1本のトークンリングバスやTDMバスの上に複数の共有リソース6#1〜6#mが接続されていても、各処理部5#1〜5#nは同時に別々の共有リソースにアクセスすることができる。このため、処理振り分け部3の共有リソース用時間キューは、共有リソース単位に実装する。
図19はアクセス経路7の他の例を示す図であり、処理部5#1〜5#nと共有リソース6#1〜6#mを接続するアクセス経路7としてP−P(Point to Point)接続やSW(Switch)接続を用いたものである。アクセス経路7は処理振り分け部3からの共有リソース割り当て情報をもとに、処理部5#1〜5#nと共有リソース6#1〜6#mの間の接続経路を確立する。
P−P接続やSW接続の場合は、各処理部5#1〜5#nは同時に別々の共有リソース6#1〜6#mにアクセスするため、処理振り分け部3の共有リソース用時間キューは、共有リソース単位に実装する。
<総括>
以上説明したように、本実施形態によれば、従来の方式に比して次のような利点がある。
(1)従来の受付バッファ量を監視する方式の場合、これから処理を振り分けるパケットデータの処理完了時間が予測できないため、その時点で受付バッファに余裕のある処理部に振り分けるしかない。その結果、処理時間が長いパケットデータを振り分けられた処理部は処理完了までに時間を要し、その後に振り分けられたパケットデータの処理完了が遅くなり、遅延バラツキが大きくなる。この点、本実施形態では、入力したパケットデータを、処理時間を考慮してスケジューリングしてから処理部に振り分けるため、遅延パラツキを最小限に抑えた負荷分散を行うことができる。また、遅延バラツキを最小限に抑えることができるため、一つの処理部内で、遅延に厳しいトラフィックとそうでないトラフィックとを混在させて処理することも可能となる。
(2)従来の受付バッファ量を監視する方式の場合、パケットデータ単位に処理開始時間が異なるため、TCPパケットのように複数のIPパケットから構成されるものを処理して再組み立てするケースでは、各処理部での処理順序が守られない。このため、全パケットデータの処理が完了してから再組み立てすることが必要となり、待ち合わせの時間が無駄となる。この点、本実施形態では、事前のスケジューリングにより一連のパケットデータについてほぼ同時期に処理を行うことができるため、待ち合わせ時間がほとんど発生せず、逐次処理が可能となって処理性能が向上する。
(3)従来の受付バッファ量を監視する方式の場合、受付バッファが空となってアイドル時間が発生しないようにするには受付バッファ量を増やすしかなく、その結果、遅延時間が増大してしまう。この点、本実施形態では、事前にスケジューリングすることにより振り分けを行うものであり、受付バッファ量を監視しないため、受付バッファ量による遅延時間の増大という問題は発生しない。
(4)バス接続、リング接続、TDM接続、P−P接続、スイッチ接続等の種々の経路で接続される共有リソースに対応することができる。
(5)優先度の高いパケットデータを所定の処理部に振り分けることにより、優先度の高い高いリアルタイム性が要求されるトラフィックの透過保証を実現することができる。
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
(付記1)
複数の処理部を有し、入力パケットデータを処理振り分け部により前記処理部のいずれか一つに振り分けて負荷分散しながら所定のネットワーク処理を行うネットワーク装置であって、
前記処理振り分け部は、
入力パケットデータの一部のキー情報に基づいて処理種別を取得する手段と、
取得した処理種別に対応する固定処理時間を取得する手段と、
取得した固定処理時間に基づき、入力パケットデータを前記処理部のそれぞれに振り分けたと仮定した場合の前記処理部の各々の処理時間の分布情報を算出する手段と、
処理時間の分布が最も均等になる前記処理部に入力パケットデータを振り分ける手段と
を備えたことを特徴とするネットワーク装置。
(付記2)
付記1に記載のネットワーク装置において、
前記分布情報を算出する手段は、
前記処理部内で直前と同一の処理種別の入力パケットデータを処理する場合は固定処理時間のうちのキャッシュヒット分を処理時間の計算に使用し、
直前と異なる処理種別の入力パケットデータを処理する場合は固定処理時間のうちのキャッシュ未ヒット分を処理時間の計算に使用する
ことを特徴とするネットワーク装置。
(付記3)
付記1または2のいずれか一項に記載のネットワーク装置において、
前記分布情報を算出する手段は、
共有リソースへのアクセスが競合する処理につき、アクセスが競合しないよう処理時間の時間帯の補正を行う
ことを特徴とするネットワーク装置。
(付記4)
付記3に記載のネットワーク装置において、
前記処理部と前記共有リソースとの接続形態がシリアルバスもしくはパラレルバスの共有バスである場合、前記分布情報を算出する手段は、個々の共有バスについて固定処理時間のうちのリソースアクセス分の処理時間を管理し、当該リソースアクセス分の処理時間の競合を回避する補正を行う
ことを特徴とするネットワーク装置。
(付記5)
付記3に記載のネットワーク装置において、
前記処理部と前記共有リソースとの接続形態がリング接続、TDM接続、ポイントツーポイント接続、スイッチ接続のいずれかである場合、前記分布情報を算出する手段は、個々の前記共有リソースについて固定処理時間のうちのリソースアクセス分の処理時間を管理し、当該リソースアクセス分の処理時間の競合を回避する補正を行う
ことを特徴とするネットワーク装置。
(付記6)
付記1乃至5のいずれか一項に記載のネットワーク装置において、
前記処理部は、実際に処理が完了した入力パケットデータの処理種別毎の固定処理時間を前記処理振り分け部にフィードバックする手段
を備えたことを特徴とするネットワーク装置。
(付記7)
付記1乃至6のいずれか一項に記載のネットワーク装置において、
前記処理振り分け部は、入力パケットデータの一部のキー情報に基づいて優先度を識別し、優先クラス毎に前記処理部への入力パケットデータの振り分けを行う
ことを特徴とするネットワーク装置。
(付記8)
複数の処理部を有し、入力パケットデータを処理振り分け部により前記処理部のいずれか一つに振り分けて負荷分散しながら所定のネットワーク処理を行うネットワーク装置の処理方法であって、
前記処理振り分け部は、
入力パケットデータの一部のキー情報に基づいて処理種別を取得する工程と、
取得した処理種別に対応する固定処理時間を取得する工程と、
取得した固定処理時間に基づき、入力パケットデータを前記処理部のそれぞれに振り分けたと仮定した場合の前記処理部の各々の処理時間の分布情報を算出する工程と、
処理時間の分布が最も均等になる前記処理部に入力パケットデータを振り分ける工程と
を備えたことを特徴とする負荷分散処理方法。
1 ネットワーク装置
2 回線対応部
21、24 回線終端部
22、23 L2終端部
3 処理振り分け部
31 パケット識別部
311 シーケンス番号付与部
312 検索部
313 識別番号取得テーブル
314 処理時間取得テーブル
32 処理時間管理部
321#1〜321#n 処理部計算用時間キュー
322 データ書き込み/補正部
323 平均偏差合計値生成部
324 データ出力部
PQ#1〜PQ#n 処理部用時間キュー
RQ#1〜RQ#m 共有リソース用時間キュー
T1、T4 ポインタテーブル
T2、T3、T5、T6 データテーブル
33 スケジューリング判定部
34 実行用時間キュー
341 データ書き込み/出力部
PQ#1〜PQ#n 処理部用時間キュー
RQ#1〜RQ#m 共有リソース用時間キュー
1、T4 ポインタテーブル
3、T6 データテーブル
41 データバッファ
42 データディスクリプタ
5#1〜5#n 処理部
51 受付バッファ
52 パケットデータ領域
53 プログラム/キャッシュ領域
54 CPUコア
55 共有リソースアクセス部
56 TAT保持/送信部
6#1〜6#m 共有リソース
7 アクセス経路
8 送信制御部

Claims (5)

  1. 複数の処理部を有し、入力パケットデータを処理振り分け部により前記処理部のいずれか一つに振り分けて負荷分散しながら所定のネットワーク処理を行うネットワーク装置であって、
    前記処理振り分け部は、
    入力パケットデータの一部のキー情報に基づいて処理種別を取得する手段と、
    取得した処理種別を記憶する手段と、
    今回の処理種別と前記記憶している前回の処理種別とが同一であるときは、前記処理種別に対応する第1の時間に基づいて処理時間を算出し、同一でないときは、前記処理種別に対応する、前記第1の時間よりも長い第2の時間に基づいて処理時間を算出し、当該処理時間に基づき、入力パケットデータを前記処理部のそれぞれに振り分けたと仮定した場合の前記処理部の各々の処理時間の分布情報を算出する手段と、
    処理時間の分布が最も均等になる前記処理部に入力パケットデータを振り分ける手段と
    を備えたことを特徴とするネットワーク装置。
  2. 請求項1に記載のネットワーク装置において、
    前記分布情報を算出する手段は、
    共有リソースへのアクセスが競合する処理につき、アクセスが競合しないよう処理時間の時間帯の補正を行う
    ことを特徴とするネットワーク装置。
  3. 請求項1または2のいずれか一項に記載のネットワーク装置において、
    前記処理部は、実際に処理が完了した入力パケットデータの処理種別毎の固定処理時間を前記処理振り分け部にフィードバックする手段
    を備えたことを特徴とするネットワーク装置。
  4. 請求項1乃至のいずれか一項に記載のネットワーク装置において、
    前記処理振り分け部は、入力パケットデータの一部のキー情報に基づいて優先度を識別し、優先クラス毎に前記処理部への入力パケットデータの振り分けを行う
    ことを特徴とするネットワーク装置。
  5. 複数の処理部を有し、入力パケットデータを処理振り分け部により前記処理部のいずれか一つに振り分けて負荷分散しながら所定のネットワーク処理を行うネットワーク装置の処理方法であって、
    前記処理振り分け部
    入力パケットデータの一部のキー情報に基づいて処理種別を取得する工程と、
    取得した処理種別を記憶する工程と、
    今回の処理種別と前記記憶している前回の処理種別とが同一であるときは、前記処理種別に対応する第1の時間に基づいて処理時間を算出し、同一でないときは、前記処理種別に対応する、前記第1の時間よりも長い第2の時間に基づいて処理時間を算出し、当該処理時間に基づき、入力パケットデータを前記処理部のそれぞれに振り分けたと仮定した場合の前記処理部の各々の処理時間の分布情報を算出する工程と、
    処理時間の分布が最も均等になる前記処理部に入力パケットデータを振り分ける工程と
    を備えたことを特徴とする負荷分散処理方法。
JP2009105046A 2009-04-23 2009-04-23 ネットワーク装置 Expired - Fee Related JP4998507B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009105046A JP4998507B2 (ja) 2009-04-23 2009-04-23 ネットワーク装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009105046A JP4998507B2 (ja) 2009-04-23 2009-04-23 ネットワーク装置

Publications (2)

Publication Number Publication Date
JP2010258660A JP2010258660A (ja) 2010-11-11
JP4998507B2 true JP4998507B2 (ja) 2012-08-15

Family

ID=43319100

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009105046A Expired - Fee Related JP4998507B2 (ja) 2009-04-23 2009-04-23 ネットワーク装置

Country Status (1)

Country Link
JP (1) JP4998507B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5933064B2 (ja) * 2015-03-24 2016-06-08 株式会社東芝 通信装置及びプログラム
JP6461834B2 (ja) * 2016-02-03 2019-01-30 日本電信電話株式会社 ネットワーク負荷分散装置および方法
FR3055504B1 (fr) * 2016-08-29 2018-09-07 Kerlink Procede de controle de la charge d'une passerelle de concentration de donnees pour un reseau de communication sans fil
JP6977699B2 (ja) * 2018-10-30 2021-12-08 日本電信電話株式会社 転送装置及びリソース割当方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249491A (ja) * 2006-03-15 2007-09-27 Fujitsu Ltd マルチサーバ環境においてバッチジョブを分散させるプログラム、装置、および方法
JP2008129767A (ja) * 2006-11-20 2008-06-05 Mitsubishi Electric Corp ネットワーク装置

Also Published As

Publication number Publication date
JP2010258660A (ja) 2010-11-11

Similar Documents

Publication Publication Date Title
US10178053B2 (en) Programmable broadband gateway hierarchical output queueing
Hong et al. Finishing flows quickly with preemptive scheduling
JP4396859B2 (ja) 負荷分散方法、ノード及び制御プログラム
US9225632B2 (en) Globally fair polling for packet switched routers using dynamically biased arbitration
WO2017133623A1 (zh) 一种数据流处理方法、装置和系统
US8064344B2 (en) Flow-based queuing of network traffic
US8230110B2 (en) Work-conserving packet scheduling in network devices
CN109104373B (zh) 网络拥塞的处理方法、装置及系统
US20030163589A1 (en) Pipelined packet processing
JPWO2005067227A6 (ja) 負荷分散方法、ノード及び制御プログラム
JP4771988B2 (ja) 負荷分散装置及びネットワーク装置
US8588242B1 (en) Deficit round robin scheduling using multiplication factors
JP4998507B2 (ja) ネットワーク装置
Kliazovich et al. CA-DAG: Communication-aware directed acyclic graphs for modeling cloud computing applications
US7342883B2 (en) Method and apparatus for managing network traffic
WO2009029833A1 (en) Scheduling processing tasks used in active network measurement
US20200036645A1 (en) Communication system, communication control method, and communication apparatus
US10715437B2 (en) Deadline driven packet prioritization for IP networks
CN111740922B (zh) 数据传输方法、装置、电子设备及介质
JP2000083055A (ja) ルータ
CN115883490A (zh) 基于sdn的分布式计算通信一体化调度方法及相关组件
US11438270B2 (en) Data scheduling method and tor switch
JP3598985B2 (ja) キュー割り当てシステムおよびパケット交換機のキュー割り当て方法
US20070133561A1 (en) Apparatus and method for performing packet scheduling using adaptation round robin
US8289989B1 (en) System and method for arbitration using availability signals

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120312

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees