JP3934099B2 - パケット処理装置およびプログラム - Google Patents

パケット処理装置およびプログラム Download PDF

Info

Publication number
JP3934099B2
JP3934099B2 JP2003372737A JP2003372737A JP3934099B2 JP 3934099 B2 JP3934099 B2 JP 3934099B2 JP 2003372737 A JP2003372737 A JP 2003372737A JP 2003372737 A JP2003372737 A JP 2003372737A JP 3934099 B2 JP3934099 B2 JP 3934099B2
Authority
JP
Japan
Prior art keywords
processing unit
packet
unit
transmission processing
memory
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 - Lifetime
Application number
JP2003372737A
Other languages
English (en)
Other versions
JP2005136856A (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 JP2003372737A priority Critical patent/JP3934099B2/ja
Publication of JP2005136856A publication Critical patent/JP2005136856A/ja
Application granted granted Critical
Publication of JP3934099B2 publication Critical patent/JP3934099B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、パケット処理装置およびプログラムに係わり、特に、通信システムの中で通信データのプロトコル処理や、経路情報に基づきパケットデータの転送処理を行なうパケット処理装置に関する。
通信回線に接続されているパケット処理装置は、データを回線上に送出するために、データをパケットメモリに格納した後、プロトコル処理部でデータをパケット化し、プロトコル処理を行う。その後、回線対応部に対して、DMA(Direct Memory Access)を用いたデータ転送を行う。
DMAにより回線対応部に転送されたパケットは、通信回線上に順次送出される。通信回線上ヘパケットが送出されたのち、送出されたパケットの保持に使用されていたパケットメモリ領域は開放される。
前記パケット転送からパケットメモリの開放に至る処理は、パケット処理装置の送信中において、固定の処理方式で行われる。
また、パケットを通信回線から受信するためには、通信回線からのパケット到着を契機として、回線対応部からDMAを用いたデータ転送を行い、到着したパケットをパケットメモリに格納する。
同時に、回線対応部は、パケット受信を通知するハードウェア割り込みを発生し、強制同期処理の起動要求を行う。その後、パケット処理装置のプロセッサは、パケットメモリ内の受信パケットを強制的にプロトコル処理部へ受渡す強制同期処理を起動し、パケットの受信処理を行う。
パケット処理装置のプロセッサは全ての受信処理が完了した後、パケットの保持に使用されていたパケットメモリの領域を開放する。前記パケットの到着からパケットメモリの開放に至る処理は、パケット処理装置の受信中において、固定の処理方式で行われる。
なお、本願発明に関連する先行技術文献としては以下のものがある。
佐島 隆博 著,「Solaris デバイスドライバ」,オライリージャパン, 第3章,ISBN 4−87311−143−9 Ilhwan Kim,Junghwan Moon,and Heon Y.Yeom,"Timer-Based Interrupt Mitigation for High Performance Packet Processing", 5th International Conference on High-Performance Computing in the Asia-Pacfic Region, September,2001,(Gold Coast, Australia)
従来のパケット処理装置では、パケットの送出は図1、パケットの受信は図2に示す構成で実現されるのが一般的である。
パケットの送出処理を表す図1では、パケット入力部11から入力されたパケットは、パケットメモリ12に格納され、送信処理部13において特定の送信処理方式で処理された後、回線対応部14にDMA転送される。
また、送信処理部13は、パケットが回線対応部14から送出された後に、送信されたパケットを保持していたパケットメモリ12の領域を開放する。
本構成において、データの送出からメモリの領域開放に至るまでの処理は、パケット処理装置の送信中で固定の送信処理方式で行われるために以下のような問題点がある。
(1)パケット処理装置のリソース消費量(プロセッサ時間、パケットメモリ)はデータの送信中に動的に変化する。
この変化に応じて、パケット処理装置のパケット処理能力が変化する一方、送信処理部13の送信処理方式はデータの送信中で固定であるため、動作中の送信処理方式が、パケット処理装置のパケット処理能力に対して適合しない場合、送信性能が低下する。
特に、パケットメモリの消費量は、プロセッサの処理速度によって、大きく変動し、プロセッサの処理能力が高い場合は、回線対応部14へのデータ転送速度が間に合わずに、パケットメモリ12を多く消費する。そのため、パケットメモリ12が不足し、送信性能を低下させる。
(2)パケット処理装置は、複数のサービスを提供する事が一般的であるが、サービス毎に送信処理部の動作で必要な特性が異なる。例えば、データ送信が、パケット処理装置の送信要求に対して、即時行われるか否か、つまりデータ送信のリアルタイム性である。
また、送信処理部13を起動するために、パケット処理装置で必要とされるリソース量の特性も提供するサービスの動作へ影響を与える。しかし、送信処理部13の送信処理方式は、データの送出中で固定であるため、動作中の送信処理方式が、サービス毎に必要とされる送信特性を満足できないことがある。
パケットの受信処理を表す図2では、回線対応部14において受信したパケットは、パケットメモリ12ヘDMA転送される。その後、回線対応部14は、強制同期処理の起動要求を行う。
受信処理部29は、前記起動要求を検知すると、強制同期処理部29aを起動しパケットメモリ内のパケットを、プロトコル処理部30に渡す。プロトコル処理部30での処理が完了した後に、受信処理部29は受信したパケットを保持していたパケットメモリ12の領域を開放する。
本構成において、データの到着からメモリの領域開放に至るまでの処理は、パケット処理装置の受信中で固定の受信処理方式で行われるために以下のような問題点がある。
(3)パケット処理装置のリソース消費量(プロセッサ時間、パケットメモリ)はデータの受信処理中に動的に変化する。
この変化に応じて、パケット処理装置のパケット処理能力が変化する一方、受信処理部29の受信処理方式はデータの受信中で固定であるため、動作中の受信処理方式が、パケット処理装置のパケット処理能力に適合しない場合、受信性能が低下する。
特に、パケットメモリ12の消費量は、通信回線上のトラヒック特性や、プロセッサの処理速度によって、大きく変動し、パケットの到着時間間隔が短い場合、パケット処理装置におけるパケットメモリ12の開放処理が間に合わず、パケットメモリ12を多く消費するため、パケットメモリ12が不足し、受信性能が低下する。
(4)通信回線上を流れるパケットのトラヒック特性は、パケット処理装置のパケット受信中にも動的に変化する。
その一方、パケット処理装置は、パケットの受信中で、特定の受信処理方式をもつ受信処理部29で処理を行うために、受信処理方式が通信回線上のトラヒック特性に適合しない場合、パケットの受信性能が低下する。
特に、パケットサイズが数バイトから数十キロバイトまでの広範囲で変化したり、パケットの到着時間間隔の変化が大きい場合には、パケットの到着を契機として起動される強制同期処理の起動回数が広範囲に変化する。このとき、プロセッサの処理能力がボトルネックとなり、受信性能が低下する。
(5)パケット処理装置は、複数のサービスを提供する場合があるが、サービス毎に受信処理部29の受信処理方式へ要求される特性が異なる。
例えば、パケットの受信に対する応答の即時性や、その受信処理方式を動作させるのに必要なパケット処理装置のリソース等である。
しかし、パケット処理装置は、パケットの受信中で特定の受信処理方式で動作する受信処理部を用いる為に、動作中の受信処理方式が提供しているサービスに適合していない場合、サービス毎に求められる受信特性を満足できないことがある。
本発明は、前記従来技術の問題点を解決するためになされたものであり、本発明の目的は、パケット処理装置のリソース消費量や、提供するサービスの種類が、データの送信処理中に変化しても、送信処理部が、適合しない送信処理方式で動作することによる送信性能の低下を起こさずに、パケット処理装置の状態に適合した送信処理方式を選択して動作することによって、高い送信性能を維持することが可能なパケット処理装置を提供することにある。
た、本発明の他の目的は、前述のパケット処理をコンピュータに実行させるためのプログラムを提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面によって明らかにする。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記の通りである。
本発明では、パケット処理装置の通信回線に対するデータの送受信に関する処理を以下のように実現する。
本願の第1の発明では、パケット処理装置の送信処理において以下の処理を行う。
(1)パケット処理装置に設けられたリソース消費量取得部で、パケット処理装置のパケットメモリの消費量を取得し、カウンタに保持する。
(2)カウンタのカウント値に対して、パケットメモリの開放処理を強制的に開始させる強制同期処理部を用いる強制メモリ開放送信処理部、及び前記強制同期処理部を用いない非強制メモリ開放送信処理部を対応させる送信処理部テーブルをあらかじめ設定しておく。ただし、強制メモリ開放送信処理部、非強制メモリ開放送信処理部は、前記2種類のメモリ開放送信処理部の共通部分の動作を行う単一の送信処理部と、前記単一の送信処理部のメモリ開放動作を異ならせることが可能な設定部によっても構成する事が可能である。
(3)前記カウンタのカウント値と前記送信処理部テーブルとを比較部において比較処理を行い、その結果に基づき、送信処理部セレクタは、パケットを回線対応部に送出する送信処理部の選択を行う。
(4)選択された送信処理部に対して、送信処理部切替器はパケットの送り先を設定する。
本願の第2の発明では、本願の第1の発明に記載のリソース消費量取得部で、パケット処理装置のパケットメモリの消費量を取得する代わりに、計算処理能力取得部で、パケット処理装置のプロセッサ使用率を取得し、保持する事で以下のような処理を行う。
(1)パケット処理装置に設けられた計算処理能力取得部で、パケット処理装置のプロセッサ使用率を取得し、カウンタに保持する。
(2)カウンタのカウント値に対して、パケットメモリの開放処理を強制的に開始させる強制同期処理部を用いる強制メモリ開放送信処理部、及び前記強制同期処理部を用いない非強制メモリ開放送信処理部を対応させる送信処理部テーブルをあらかじめ設定しておく。ただし、強制メモリ開放送信処理部、非強制メモリ開放送信処理部は、前記2種類のメモリ開放送信処理部の共通部分の動作を行う単一の送信処理部と、前記単一の送信処理部のメモリ開放動作を異ならせることが可能な設定部によっても構成する事が可能である。
(3)前記カウンタのカウント値と前記送信処理部テーブルとを比較部において比較処理を行い、その結果に基づき、送信処理部セレクタは、パケットを回線対応部に送出する送信処理部の選択を行う。
(4)選択された送信処理部に対して、送信処理部切替器はパケットの送り先を設定する。
本願の第3の発明では、本願の第1の発明のリソース消費量取得部で、パケット処理装置のパケットメモリの消費量を取得する代わりに、送出プロトコル取得部で、パケット処理装置の送出するデータのプロトコルを判別し、プロトコル毎の送出数をカウンタに保持することで以下のような処理を行う。
(1)パケット処理装置に設けられた送出プロトコル取得部で、パケット処理装置の送出するデータのプロトコルを判別し、プロトコル毎に送出数をカウンタに保持する。
(2)統計処理部は、(1)で得られたプロトコル毎のパケット送出数から、ある一定期間に送出したパケットのプロトコルの分布を算出する。算出された分布から、ある割合以上送出されたプロトコルを選び出し出力する。
(3)パケット処理装置で提供しているサービスのプロトコルに対して、パケットメモリの開放処理を強制的に開始させる強制同期処理部を用いる強制メモリ開放送信処理部、及び前記強制同期処理部を用いない非強制メモリ開放送信処理部のどちらを用いるか送信処理部テーブルにあらかじめ設定しておく。ただし、強制メモリ開放送信処理部、非強制メモリ開放送信処理部は、前記2種類のメモリ開放送信処理部の共通部分の動作を行う単一の送信処理部と、前記単一の送信処理部のメモリ開放動作を異ならせることが可能な設定部によっても構成する事が可能である。
(4)選択されたプロトコルと前記送信処理部テーブルとを比較部において比較処理を行い、その結果に基づき、送信処理部セレクタは、パケットを回線対応部に送出する送信処理部の選択を行う。
(5)選択された送信処理部に対して、送信処理部切替器はパケットの送り先を設定する。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
本発明によれば、パケット処理装置のリソース消費量や、提供するサービス、また通信回線上を流れるパケットのトラヒックパターンやプロトコルの種類が変動しても、適切な送受信処理を実行する送受信処理部を選択することによって、パケット処理装置が高い送受信特性を提供することを可能となる。
以下、図面を参照して本発明の実施例を詳細に説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
[実施例1]
図3は、本発明の実施例1のパケット処理装置の概略構成を示すブロック図である。図3では、各々異なる送信処理方式で動作する送信処理部が2つの場合を示す。
同図において、14は回線対応部、15,16は、各々異なる送信処理方式で動作する送信処理部、17は送信処理部を切替える送信処理部切替器、18は送信処理部セレクタ、12はパケットメモリ、19は比較部、11はパケット入力部、20は送信処理部テーブル、21はカウンタ、22はリソース消費量取得部である。
ここで、送信処理部15は、強制メモリ開放送信処理部であり、送信処理部16は、非強制メモリ開放送信処理部であり、送信処理部(15,16)は、汎用パソコンやワークステーション上で動作するプログラムや、通信ボード上でプログラムと協調して動作するDMAコントローラ等のハードウェアで構成可能である。
また、送信処理部(15,16)を、単一の送信処理部と、送信処理部の動作を異ならせることが可能な設定部によっても構成することも可能である。この場合の設定部は、汎用パソコン上で動作し、通信ボード等のレジスタを設定するプログラムや、変数の値を設定するプログラムで構成可能である。
パケット入力部11、送信処理部切替器17、送信処理部セレクタ18、および比較部19は、汎用パソコン上で動作するプログラムで記述することで構成することが可能である。
パケットメモリ12は、汎用パソコンや、通信機器、通信ボード上のメモリとして構成可能である。
送信処理部テーブル20、カウンタ21は、汎用パソコン上で動作するプログラムの変数の値として、メモリ上に保持することで実現する事が可能である。また、カウンタ21は、一般的なアップダウンカウンタ等でも構成する事ができる。
リソース消費量取得部22は、ハードウェアのレジスタ読み出しや、メモリ上に保持されたカウンタ変数の読み出しを行うプログラムとして構成する事が可能である。
次に、本実施例のパケット処理装置の動作を図4を参照しながら示す。
図4は、パケット処理装置A23からパケット処理装置B24に対して、回線25と回線26をそれぞれ送信回線、受信回線として使用し、データを転送しようとしている。2つのパケット処理装置には、それぞれユニークなアドレスが付与される。
使用するアドレスは、IP(Intenet Protoco1)準拠の32bitのアドレス体系を持つものとし、パケット処理装置A23が、10.1.2.3であるとする。またデータ転送先のパケット処理装置B24は、アドレス10.1.2.4を持っている。
図5は、図3の構成において、実際の動作の様子を示す図である。
[具体的な実装例と、論理構成図との対応]
まず、本実施例の発明を、汎用パソコン上で動作しているオペレーティングシステムのネットワークドライバ部分に実装した具体例を図6に示し、本ネットワークドライバの動作を解説するとともに、その動作と図5との対応を明らかにする。
本ネットワークドライバは、汎用パソコンの拡張バスに搭載された通信カードを駆動する。
図中の番号に従い、ネットワークドライバおよび通信カードは以下の用に動作する。
(1)ステップ1
オペレーティングシステムのカーネルは、アプリケーションから送信要求のあったデータを、カーネル領域のバッファヘコピーした後、プロトコル処理、およびパケット化処理を行い、その後、ネットワークドライバの送信処理を起動する。
(2)ステップ2
ドライバは、カーネル領域で管理されている変数から、送信パケット用に確保されているバッファ量の値を読み出す。
(3)ステップ3
ドライバは、ステップ2で得た値にもとづいて、送信が終わったパケットの為に確保していたメモリの開放を行う方法を切替える。
方法としては、以下の2種類が一般的に行われている。
(A)ステップ7で、TxBDアドレスFIFO(First In First Out)に、TxBD(Buffer Descriptor for transmission)が登録されていない場合に発行されるNo TxBD割り込みを契機として開放を行う。
(B)ステップ4の前に、以前に送出したパケットの内、既に通信回線上に送出されたパケットを確保しているメモリを算出し、開放する。
以上の2種類の方法の切替えは、通信カード上の割り込みマスクレジスタをドライバから操作し、またドライバ中でどちらの方法を有効にするか指定するフラグ変数を用いる事で行われる。
(4)ステップ4
ドライバは、送信パケットを管理するTxBD(Buffer Descriptor for transmission)に、送信要求のあったパケットのアドレスを設定する。
(5)ステップ5
ドライバは、TxBDのアドレスを、通信カード上のTxBDアドレスFIFOにキューイングする。この時、TxBDアドレスFIFOの空き領域がなければ、TxBDfu11割り込みを発行する。
(6)ステップ6
通信カード上のDMAコントローラの送信可能レジスタを有効にする。
カーネル、およびドライバは、アプリケーションからデータの送信要求がある限りは、上記ステップ1からステップ6の動作を繰り返し行う。
以降は、通信カードが行う動作である。
(7)ステップ7
通信カードは、送信可能レジスタが有効にされると、TxBDアドレスFIFOからTxBDのアドレスを取り出す。この時、TxBDアドレスFIFOにTxBDが登録されていない場合、NoTxBD割り込みを発行する。
(8)ステップ8
ステップ7で取得したTxBDに設定されている送信パケットのアドレスを元に、パケットを、パソコンのメインメモリから通信カード上のFIFOメモリヘとDMA転送を行う。
(9)ステップ9
DMA転送が完了すると、フレーマに対して送信パケットがFIFOに転送された事が通知される。その後、フレーマは、FIFOメモリから通信回線上にパケットを送出する。
前述(3)でのべた2種類のメモリ開放の方法は、以下のような特徴がある。
(A)の方式では、割り込みで駆動されるために、確実にメモリ開放が行われるが、ショートパケットをバースト的に送出する場合は、割り込みが頻繁に発生するため、それに付随するスケジューリングの処理等の為にプロセッサヘの負荷が高くなり送信性能が低下する。
(B)の方式では、割り込みを用いないために、プロセッサヘの負荷が少なく、ショートパケットであっても、(A)の方式と比較して高速にパケットを送出する事が出来る。
ただし、高速なプロセッサを用いた場合、プロセッサから通信カードヘのパケット送信要求のスピードに対して、DMA転送のスピードが追い付かなくなり、バッファの開放が間に合わなくなる。この結果バッファが不足しはじめ、遂には1のステップでバッファの確保が出来なくなる。
(B)の方式では、このような状況ではバッファの開放ステップが実行されなくなるため、送信が完全に停止するデッドロックが発生するが、(A)の方式では、このような状況でも、割り込みによりバッファ開放が駆動されるため、パケットの送信を継続する事ができる。
以上の2種類の方式のそれぞれ有利な点を生かすために、本発明では、ステップ3で、バッファの消費量を元に、2種類のメモリ開放の方法を切替えている。
図6のうち、カーネル、およびドライバという四角で囲われている部分は、パソコンのプロセッサで動作する。
図5との対応関係は、以下のようになる。
Figure 0003934099
図5において、パケット入力部11から入力されたパケットは、パケットメモリ12に転送される。パケットメモリ内で、転送されるデータはプロトコルのヘッダ部分とコンテンツ部分の両方が入っているものとする。
リソース消費量取得部22では、パケットメモリ12の使用量を取得する。取得された値は、カウンタ21に保持される。
前記カウンタ21の値がとり得る範囲は、あらかじめ特定の範囲毎に分割されており、送信処理部テーブル20には、これらの分割された範囲に対して、強制メモリ開放送信処理部15、非強制メモリ開放送信処理部16が対応づけられて記述されている。
強制メモリ開放送信処理部15、非強制メモリ開放送信処理部16は、それぞれ以下のような送信処理方式で動作する。
強制メモリ開放送信処理部15と、回線対応部14の動作のフローチャートを図7に示す。
パケット入力部11からのパケット入力があると(ステップ101)、当該パケットをメモリ12に保持した後(ステップ102)、即時、パケットをパケットメモリ12から回線対応部14へDMA転送する(ステップ103)。
回線対応部14は、パケットを通信回線上への送出が完了すると(ステップ111)、強制メモリ開放送信処理部15の強制同期処理部15aを用いてハードウェア割り込みを発生させる。(ステップ112)
強制メモリ開放送信処理部15は、この割り込みを検知すると(ステップ104)、パケットメモリ12内の送出済パケットを確保していた領域の開放を行う(ステップ105)。
本送信処理は、強制同期処理部15aにより、パケットメモリ12の開放を起動するために、通信回線上へのパケット送信完了後、確実にメモリ開放を行うことが出来る。
その半面、強制同期処理は、パケット処理装置のプロセッサで、高い処理優先度で動作するため、頻繁に強制同期処理部15aが起動される場合、パケット処理装置のプロセッサへの負荷が高くなり、送信性能が低下する欠点がある。
なお、一般的なパケット処理装置は、パケットを通信回線上から受信する処理も行う。その際、パケットが到着した事をパケット処理装置のプロセッサヘ通知する為にも同様の強制同期処理を行う。
この性質を利用して、パケット処理装置の受信処理における強制同期処理部15aの起動と協調して送信用のパケットメモリ12を開放する強制メモリ開放処理方式も考えられる。
具体的には、プロセッサヘの負荷を軽減するために、通信回線上へのパケットの送信が完了した事を通知する割り込みが発生しないようにしている場合においても、通信回線上からパケットを受信した時は、プロセッサでの受信処理を起動する為に割り込みが発生する。このパケット受信時の割り込みの検知と同時に送信パケットを保持するパケットメモリを開放することによって、送信完了時の割り込みを用いなくてもパケットメモリの開放を行う契機とすることができる。
また、複数の送受信インターフェースを備えるパケット処理装置では、その他のインターフェースにおいて観測された強制同期処理部15aの起動と協調してパケットメモリ12を開放する強制メモリ開放処理方式も考えられる。
具体的には、プロセッサヘの負荷を軽減するために、通信回線上へのパケットの送信が完了した事を通知する割り込みが発生しないようにしている場合においても、他の送受信インターフェースにおいて送信処理が完了したり、パケットを受信したりした場合は割り込みが発生する。この他の送受信インターフェースにおける割り込みの検知と同時に送信パケットを保持するパケットメモリを開放することによって。送信完了時の割り込みを用いなくてもパケットメモリの開放を行う契機とすることができる。
非強制メモリ開放送信処理部16の動作のフローチャートを、図8に示す。
パケット入力部11からのパケット入力があると(ステップ121)、当該パケットをメモリ12に保持し(ステップ122)、回線対応部14ヘパケットを転送する前に、パケットメモリ12内の送出済パケットを確保していた領域を算出し(ステップ123)、パケットメモリ12の領域を開放する(ステップ124)。
その後、パケットをパケットメモリ12から回線対応部14へDMA転送する(ステップ125)。
本送信処理は、強制同期処理部15aを用いないので、強制メモリ開放送信処理部15と比較して、パケット処理装置のプロセッサヘの負荷を大幅に軽減させることができる。しかし、本送信処理は、メモリリソースを多く消費してしまうという欠点がある。
各送信処理部の特徴を図9に示す。
この状態で、比較部19、送信処理部セレクタ18の動作は以下のようになる。
(1)比較部19は、カウンタ21のカウント値と、あらかじめ設定された送信処理部テーブル20のエントリとの比較を行う。
(2)カウンタ21のカウント値は、パケットメモリ12の使用量を保持しており、ここでは、その値が全パケットメモリ12領域の50%以上とする。
(3)比較部19は、強制メモリ開放送信処理部15を選択する。
(4)送信処理部セレクタ18は、送信処理部切替器17に対して、強制メモリ開放送信処理部15を選択するように指示する。
パケット入力部11によって入力されたパケットは、強制メモリ開放送信処理部15を用いて、回線対応部14にDMA転送される。
回線対応部14は、パケットの通信回線上への送出が完了した後、強制同期処理部15aを起動し、パケットメモリ12の開放を行う。
その後、(5)カウント値が、全パケットメモリ12領域の50%未満となる。
(6)比較部19は、非強制メモリ開放送信処理部16を選択する。
(7)送信処理部セレクタ18は、送信処理部切替器17に対して、非強制メモリ開放送信処理部16を選択するように指示する。
パケット入力部11によって入力されたパケットは、非強制メモリ開放送信処理部16を用いて、送信済パケットのパケットメモリ領域を開放した後、パケットを回線対応部14にDMA転送する。
図10に本実施例における動作例を示す。
図10において、縦方向が経過する時間を示しており、それぞれの縦線が各部の動作処理時間の経過を示す。
なお、図10は、パケット入力部11から連続してパケットメモリ12に入力されたデータパケットを、次々にパケットメモリ12から回線対応部14に出力する場合である。
パケット入力部11からのパケット送出要求の後、比較、送信処理部の切替えが行われる。
パケットメモリ12の使用率が50%以上の時、強制メモリ開放送信処理部15において送信され、回線対応部14にDMA転送される。
続くパケットのパケットメモリ12からの送出の際、再度パケットメモリ12の使用率をカウント値から読み出し、比較、送信処理部の切替えが行われる。
パケットメモリ12の使用率が50%未満となると非強制メモリ開放送信処理部16が選択され、送信が行われる。
[実施例2]
図11は、本発明の実施例2のパケット処理装置の概略構成を示すブロック図である。なお、図11では、図5と同様に各々送信処理方式が異なる送信処理部が2つの場合を示す。
同図において、48は計算処理能力取得部である。計算処理能力取得部48は、汎用PC上で動作するプログラムや、プロセッサ上のレジスタで構成可能である。
カウンタ21は、プログラム中のカウンタ変数の値として、メモリ上に保持することで実現する事が可能である。また、一般的なアップダウンカウンタ等でも構成する事ができる。
その他の構成要素は、図5と同様である。
図11において、パケット入力部11から入力されたデータパケットは、パケットメモリ12に転送される。パケットメモリ12内で転送されるデータは、プロトコルのヘッダ部分とコンテンツ部分の両方が入っているものとする。
計算処理能力取得部48では、パケット処理装置のプロセッサの使用率を取得する。取得された値は、カウンタ21に保持される。
前記カウンタ21の値がとり得る範囲は、あらかじめ特定の範囲毎に分割されており、送信処理部テーブル49には、これらの分割された範囲に対して、強制メモリ開放送信処理部15、非強制メモリ開放送信処理部16が対応づけられて記述されている。
また、強制メモリ開放送信処理部15、非強制メモリ開放送信処理部16は、それぞれ前述の実施例1で示したものと同等のものであるとする。
この状態で、比較部19、送信処理部セレクタ18の動作は以下のようになる。
(1)カウンタ21のカウント値と、あらかじめ設定された送信処理部テーブル49のエントリとの比較を行う。
(2)カウント値は、パケット処理装置のプロセッサの使用率を保持しており、ここでは、その値が50%以上とする。
(3)比較部19は、非強制メモリ開放送信処理部16を選択する。
(4)送信処理部セレクタ18は、送信処理部切替器17に対して、非強制メモリ開放送信処理部16を選択するように指示する。
パケット入力部11によって入力されたパケットは、非強制メモリ開放送信処理部16を用いて、回線対応部14にDMA転送される。
その後、(5)カウント値が、50%未満となる。
(6)比較部19は、強制メモリ開放送信処理部15を選択する。
(7)送信処理部セレクタ18は、送信処理部切替器17に対して、強制メモリ開放送信処理部15を選択するように指示する。
パケット入力部11によって入力されたパケットは、強制メモリ開放送信処理部15を用いて、回線対応部14にDMA転送される。
回線対応部14は、パケットの通信回線上への送出が完了した後、強制同期処理部15aを起動し、パケットメモリ12の開放を行う。
[実施例3]
図12は、本発明の実施例3のパケット処理装置の概略構成を示すブロック図である。なお、図12では、図5と同様に各々送信処理方式が異なる送信処理部が2つの場合を示す。
同図において、28は送出プロトコル取得部、27は送信処理部テーブル、51は統計処理部である。
送出プロトコル取得部28は、汎用PC上で動作するパターンマッチングを行なうプログラムや、パターンマッチング回路で構成可能であり、統計処理部51は、汎用PC上で動作するプログラムで構成可能である。
カウンタ21は、プログラム中のカウンタ変数の値として、メモリ上に保持することで実現する事が可能である。また、一般的なアップダウンカウンタ等でも構成する事ができる。
その他の構成要素は、図5と同様である。
図12において、パケット入力部11から入力されたデータパケットは、パケットメモリ12に転送される。パケットメモリ12内で転送されるデータは、プロトコルのヘッダ部分とコンテンツ部分の両方が入っているものとする。
送出プロトコル取得部28は、送信パケットの宛先ポート番号、または、送信元ポート番号、または、宛先ポート番号と送信元ポート番号の組合せによってプロトコルを判別し、カウンタ21において、プロトコル毎の送信パケット数を保存する。
統計処理部51は、一定期間に送信した全パケット数に対する特定のプロトコルのパケット数の割合を算出し、この割合に対して閾値をあらかじめ設けている。
そして、前記カウンタ21のカウント値に基づき、ある一定期間に閾値以上の割合をしめるプロトコルを出力する。また、このとき、全てのプロトコルが閾値に満たない場合は、もっとも送出したパケット数が多いプロトコルを出力する。
送信処理部テーブル27には、各プロトコルに対応して、強制メモリ開放送信処理部15、非強制メモリ開放送信処理部16が対応づけられて記述されている。
図中のプロトコルAとプロトコルBは、それぞれ以下のような通信特性への要求条件を持つ。
プロトコルAは、送信要求に対して、即時に、パケットをパケットメモリ12から回線対応部14に送出する事が必要である。ただし、パケットメモリ12のリソースはあまり多く消費することはない。よって、非強制メモリ開放送信処理部16が適している。
プロトコルBは、送信要求に対して、即時に、パケットをパケットメモリ12から回線対応部14に送出する必要はない。ただし、パケットメモリ12のリソースを多く消費する。よって、強制メモリ開放送信処理部15が適している。
また、強制メモリ開放送信処理部15、非強制メモリ開放送信処理部16は、それぞれ前述の実施例1で示したものと同等のものであるとする。
この状態で、比較部19、送信処理部セレクタ18の動作は以下のようになる。
(1)プロトコル毎のパケット送出数を保持するカウンタ21のカウント値に基づいて、統計処理部51の出力と、送信処理部テーブル27のエントリとの比較を行う。
(2)統計処理部51は、カウンタ21に保持されている値に基づいて、プロトコルのパケットが、最近の1分間に送出した全パケット数の50%以上をしめると算出し、プロトコルを出力する。
(3)比較部19は、強制メモリ開放送信処理部15を選択する。
(4)送信処理部セレクタ18は、送信処理部切替器17に対して、強制メモリ開放送信処理部15を選択するように指示する。
パケット入力部11によって入力されたパケットは、強制メモリ開放送信処理部15を用いて、回線対応部14にDMA転送される。回線対応部14は、パケットの通信回線上への送出が完了した後、強制同期処理部15aを起動し、パケットメモリ12の開放を行う。
その後、(5)統計処理部51は、カウンタ21に保持されているカウント値に基づいて、プロトコルのパケットが、最近の1分間に送出した全パケット数の50%以上をしめると算出し、プロトコルを出力する。
(6)比較部19は、非強制メモリ開放送信処理部16を選択する。
(7)送信処理部セレクタ18は、送信処理部切替器17に対して、非強制メモリ開放送信処理部16を選択するように指示する。
パケット入力部11によって入力されたパケットは、非強制メモリ開放送信処理部16を用いて、回線対応部14にDMA転送される。
参考例1
図13は、本発明の参考例1のパケット処理装置の概略構成を示すブロック図である。なお、図13では、各々異なる受信処理方式で動作する受信処理部が2つの場合を示す。
同図において、14は回線対応部、31は受信処理部テーブル、47はパケット処理装置のリソース消費量を取得するリソース消費量取得部、46はカウンタ、34はカウンタ46の値と受信処理部テーブル31を比較する比較部、35は比較部34の結果を元に受信処理部を選択する受信処理部セレクタ、36は受信処理部を切替える受信処理部切替器、40,44が各々異なる受信処理方式で動作する受信処理部、12はパケットメモリ、30はプロトコル処理部である。
受信処理部テーブル31は、汎用なパソコンやワークステーション上で動作するプログラム上の変数として保持することで実現することが出来る。
リソース消費量取得部47は、汎用なパソコン上で動作するプログラムで実現することができる。
カウンタ46は、汎用なパソコンやワークステーション上で動作するプログラム上の変数や、一般的なアップダウンカウンタを用いて実現することが出来る。
その他の構成要素は、図5と同様である。
比較部34、受信処理部セレクタ35、受信処理部切替器36は、汎用なパソコン上で動作するプログラムで記述することが可能である。
受信処理部(40,44)は、汎用パソコン上で動作するプログラムや、通信ボード上でプログラムと協調して動作するDMAコントローラ等のハードウェアで構成可能である。
また、受信処理部(40,44)を単一の受信処理部と、受信処理部の動作を異ならせることが可能な設定部によっても構成することも可能である。この場合の設定部は、汎用パソコンで動作し、通信ボード等のレジスタを設定するプログラムや、変数の値を設定するプログラムで構成可能である。
パケットメモリ12は、汎用パソコンや、通信機器、通信ボード上のメモリとして構成可能である。
図14は、図13の構成において、実際の動作の様子を示す図である。
[具体的な実装例と、論理構成図との対応]
まず、本参考例の発明を、汎用パソコン上で動作しているオペレーティングシステムのネットワークドライバ部分に実装した具体例を図15に示し、本ネットワークドライバの動作を解説するとともに、その動作と図14との対応を明らかにする。
本ネットワークドライバは、汎用パソコンの拡張バスに搭載された通信カードを駆動する。図中の番号に従い、ネットワークドライバおよび通信カードは以下のように動作する。
(1)ステップ1
オペレーティングシステムのカーネルは、受信したパケットを格納するバッファ領域を確保すると共に、受信パケットの受信状態を管理するRxBD(Buffer Descriptor for transmission)に、確保したバッファのアドレスをセットする。RxBDは、ドライバの初期化時に一定数確保され、その後、通信カードのRxBDアドレスFIFOに、一定の数だけキューイングされる。
(2)ステップ2
ドライバは、カーネル領域で管理されている変数から、受信パケット用に確保されているバッファ量の値を読みだす。
(3)ステップ3
ドライバは、ステップ2で得た値にもとづいて、パケットを受信してから、そのパケットに対してパケット処理装置のプロトコル処理を開始するまでの遅延時間を異らせる。
前記遅延時間を異らせるためには、通信カード上のハードウェアで実現されているタイマーの時間を単位時間として、何周期分の時間を遅延させるかを、ドライバが通信カードのレジスタに設定する。
通信カードは、通信回線上からパケットが到着してから、設定された時間分だけタイマーを起動し、タイマー終了後に、割り込みを発生する。
ドライバは、前記割り込みを検知すると、プロセッサに対してプロトコル処理を開始するよう要求する。
(4)ステップ4
通信カード上のDMAコントローラの受信可能レジスタを有効にする。
ドライバは、通信回線上からパケットが到着するのに先立って、前記ステップ1からステップ4の動作を行なう。
以降は、通信カードが行なう動作である。
(5)ステップ5
通信回線上からパケットが到着する。
(6)ステップ6
パケットは、パケットのフレーミング処理を行なうフレーマに処理され通信カード上のFIFOメモリに格納される。また、フレーマは同時にDMAコントローラに対して、受信したパケットがFIFOに転送した事を通知する。
(7)ステップ7
DMAコントローラは、受信可能レジスタが有効にされていると、RxBDアドレスFIFOからRxBDのアドレスを取り出す。
(8)ステップ8
ステップ7で取得したRxBDに設定されている受信パケット格納用バッファのアドレスを元に、パケットを、通信カード上のFIFOメモリからパソコンのメインメモリヘとDMA転送を行なう。
また、DMAコントローラは同時に、RxBDに受信したパケットの長さや受信状態を表すフラグを書き込む。
(9)ステップ9
通信カードは、ステップ3で設定された遅延時間だけタイマーを起動し、タイマーの終了と同時に、RxBDに受信処理に必要な情報を書き込んだ事を示すRxBD Modify割り込みを発行する。
通信カードは、通信回線上からパケットが到着するたびに、前述のステップ6からステップ9の動作をくり返し行なう。
ステップ9で発行された割り込みは、ドライバによって検知される。
以降は、割込み検知の後のドライバで行なう動作である。
(10)ステップ10
前述のRxBD Modify割り込みを検知した後、ドライバは、受信したパケットのバッファ領域のアドレスと、RxBDとの関連付けを解除する。同時に、受信パケットのバッファアドレスは、カーネルでプロトコル処理を行なう為の所定の管理構造体にセットされる。
また、バッファ領域が切り放されたRxBDには、あらたに確保されたバッファ領域のアドレスがセットされる。このとき、受信パケットとは、ステップ9の遅延時間中にメインメモリに転送された全てのパケットを指す。
その結果、一度の割込みで、遅延時間中に到着した複数のパケットに対する処理を一括して行えるため、割込み処理が頻繁に起動することによるプロセッサヘの負荷を大幅に軽減することができる。
(11)ステップ11
その後、ドライバは、カーネルに対して、プロトコル処理を開始を要求する。プロトコル処理された受信パケットのバッファ領域は、アプリケーションのバッファ領域ヘコピーされるか、必要な処理が終了すると開放される。
前述のステップ3で設定される遅延時間の長短によって、以下のような特徴がある。
遅延時間が長い場合には、頻繁にパケットが到着する通信回線上では、より多くのパケットが一度の割込みで処理されるため、プロセッサ負荷の削減効果が大きい。
その半面、ステップ10において、あらたな受信バッファが割り当てられるまでの遅延時間も長くなるために、メモリの消費量が大きくなり、メモリが不足する場合は受信性能が低下する。特に、到着するパケットのサイズが大幅に変化する場合、短いパケットを想定して遅延時間を長く設定すると、長いパケットが頻繁に到着した場合、メモリの不足を引き起こす。
遅延時間が短い場合には、ステップ10において、あらたな受信バッファが割り当てられるまでの遅延時間が短いので、メモリの消費量が少なく、メモリの不足による受信性能の低下は起こりにくい。
ただし、一度の割込みで処理されるパケットの数が比較的少なくなるために、頻繁にパケットが到着する通信回線上では、プロセッサヘの負荷が高く、受信性能が低下する。特に、到着するパケットのサイズが大幅に変化する場合、長いパケットの到着を想定して、遅延時間を短く設定すると、短いパケットが頻繁に到着した場合、プロセッサヘの負荷が高くなる。
遅延時間の長短それぞれに有利な点を生かすために、本参考例では、ステップ3で、バッファの消費量を元に、遅延時間の長さを異らせている。
図15のうち、カーネル、およびドライバという四角で囲われている部分と、ステップ4は、パソコンのプロセッサで動作する。
図14との対応関係は、以下のようになる。
Figure 0003934099
図14において、回線対応部14から受信したデータパケットは、パケットメモリ12に転送される。回線対応部14から受信するデータは、プロトコルのヘッダ部分とコンテンツ部分の両方が入っているものとする。
リソース消費量取得部47では、パケットメモリ12の使用量を取得する。取得されたパケットメモリの使用量はカウンタ46に保持される。
前記カウンタ46の値がとり得る範囲は、あらかじめ特定の範囲毎に分割されており、受信処理部テーブル31には、これらの分割された範囲に対して、受信処理部A(41)、受信処理部B(42)、および受信処理部C(43)の各々の受信処理部が対応づけられて記述されている。
受信処理部A(41)、受信処理部B(42)、受信処理部C(43)は、それぞれ以下のような受信処理方法の違いがある。
受信処理部の動作のフローチャートを、図16に示す。
回線対応部14にパケットが到着すると(ステップ131)、当該パケットは、パケットメモリ12にDMA転送される(ステップ132)。
その後、受信処理部へ強制同期処理部の起動要求を行う(ステップ133)。
受信処理部は、前記強制同期処理部の起動要求が行われたことを検知すると(ステップ141)、一定時間の遅延処理を施した後(ステップ142)、強制同期処理を起動し(ステップ143)、パケットメモリ12内のパケットが記憶された領域のアドレスをプロトコル処理部30へ渡す(ステップ144)。
しかし、パケットの到着時間間隔が短い高速回線上では、強制同期処理の起動が頻繁に行われる為、パケット処理装置のプロセッサヘの負荷が高くなり受信性能が低下する。
この問題に対して、強制同期処理部の起動を行うまで一定時間の遅延処理を行い、遅延時間中に届いたパケットの受信を、一度の強制同期処理でまとめて行うという方法がとられる。
しかし、前記遅延時間は、到着するパケットの長さが数十バイトから数十キロバイトの様に広い範囲で変化する場合は、以下の理由より、パケットサイズの長さに応じて、適合した遅延時間が変化する。
パケット長が短い場合には、割り込みが頻繁に発生するため、プロセッサの負荷が特に高くなるが、パケットメモリ12の消費量は多くないので遅延時間が長い方が良い。
パケット長が長い場合には、パケットメモリ12の消費量が大きいため、遅延時間を長くしてしまうと、パケットメモリ12が不足してしまう。よって、プロセッサの負荷が高くなっても遅延時間を長くすることが出来ない。ただし、パケット長が長い場合、もともとプロセッサの負荷は低いので遅延時間は短くてもよい。
受信処理部A(41)、受信処理部B(42)、受信処理部C(43)は異なる長さの遅延時間が設定してあり、受信処理部A(41)がもっとも短く、受信処理部C(43)になるに従い徐々に遅延時間が長くなるように設定されている。
各遅延時間の長さによって決まる受信処理部の特徴を図17に示す。
この状態で、比較部34、受信処理部セレクタ35の動作は、以下のようになる。
(1)カウンタ46のカウント値と、受信処理部テーブル31のエントリとの比較を行う。
(2)カウンタ46は、リソース消費量取得部47で取得されたパケットメモリ12の使用量を保持しており、ここでは、パケットメモリ12の使用量が、全パケットメモリ12の60%以上とする。
(3)比較部34は、受信処理部B(42)を選択する。
(4)受信処理部セレクタ35は、受信処理部切替器36に対して、受信処理部B(42)を選択するように指示する。
回線対応部14に到着したパケットは、パケットメモリ12にDMA転送される。受信処理部B(42)は、設定された遅延時間が経過した後に強制同期処理部42aを起動し、パケットメモリ12内のパケットが記憶された領域のアドレスを、プロトコル処理部30へ渡す。
その後、(5)カウンタ46の値において、パケットメモリ12使用量が40%となる。(6)比較部34は、受信処理部C(43)を選択する。
(7)受信処理部セレクタ35は、受信処理部切替器36に対して、受信処理部C(43)を選択するように指示する。
この後、回線対応部14に到着したパケットは、パケットメモリ12にDMA転送され、受信処理部C(43)に設定された遅延時間が経過した後に強制同期処理部43aが起動される。
図18に本参考例における動作例を示す。
図18において、縦方向が経過する時間を示しており、それぞれの縦線が各部の動作処理時問の経過を示す。また、図18は、回線対応部14から連続して到着したデータパケットを、次々にパケットメモリ12ヘDMA転送し、プロトコル処理部30においてプロトコル処理を行う場合である。
回線対応部14からのパケット入力の際、前記比較、受信処理部切替えが行われる。
パケットメモリの使用率が80%の時、受信処理部A(41)において設定された時間が経過したのちに受信処理され、プロトコル処理部30ヘパケットが渡される。
続くパケット入力の際に、再度パケットメモリ12の使用率の算出が行われ、使用率が40%に変化すると同時に、受信処理部C(43)が選択され受信処理が行われる。
参考例2
図19は、本発明の参考例2のパケット処理装置の概略構成を示すブロック図である。なお、図19では、図14と同様に各々異なる受信処理方式で動作する受信処理部が3つの場合を示す。
同図において、48は計算処理能力取得部である。計算処理能力取得部48は、プロセッサのレジスタ読み出しや、一般的なパソコン上で動作するプログラムとして構成する事が可能である。
カウンタ46は、プログラム中のカウンタ変数の値として、メモリ上に保持することで実現する事が可能である。また、一般的なアップダウンカウンタ等でも構成する事ができる。
その他の構成要素は、図14と同様である。
図19において、回線対応部14から受信したデータパケットは、パケットメモリ12に転送される。回線対応部14から受信するデータは、プロトコルのヘッダ部分とコンテンツ部分の両方が入っているものとする。
計算処理能力取得部48では、パケット処理装置のプロセッサの使用率を取得する。取得された値は、カウンタ46に保持される。
前記カウンタ46の値がとり得る範囲は、あらかじめ特定の範囲毎に分割されており、受信処理部テーブル31には、これらの分割された範囲に対して、受信処理部A(41)、受信処理部B(42)、および受信処理部C(43)の各々の受信処理部が対応づけられて記述されている。
また、受信処理部A(41)、受信処理部B(42)、受信処理部C(43)は、それぞれ前述の参考例1と同様のものである。
この状態で、比較部34、受信処理部セレクタ35の動作は、以下のようになる。
(1)カウンタ46のカウント値と、受信処理部テーブル31のエントリとの比較を行う。
(2)ここでは、プロセッサの使用率が、60%以上とする。
(3)比較部34は、受信処理部B(42)を選択する。
(4)受信処理部セレクタ35は、受信処理部切替器36に対して、受信処理部B(42)を選択するように指示する。
回線対応部14に到着したパケットは、パケットメモリ12にDMA転送される。受信処理部B(42)は、設定された遅延時間が経過した後に強制同期処理部42aを起動し、パケットメモリ12内の受信したパケットが記憶された領域のアドレスを、プロトコル処理部30へ渡す。
その後、(5)プロセッサの使用率が40%となるものとする。
(6)比較部34は、受信処理部C(43)を選択する。
(7)受信処理部セレクタ35は、受信処理部切替器36に対して、受信処理部C(43)を選択するように指示する。
この後、回線対応部14に到着したパケットは、パケットメモリ12にDMA転送され、受信処理部C(43)に設定された遅延時間が経過した後に強制同期処理部43aが起動される。
参考例3
図20は、本発明の参考例3のパケット処理装置の概略構成を示すブロック図である。なお、図20では、図14と同様に各々異なる受信処理方式で動作する受信処理部が3つの場合を示す。
同図において、45は受信プロトコル取得部、50は統計処理部である。
受信プロトコル取得部45は、汎用PC上で動作するパターンマッチングを行なうプログラムや、パターンマッチング回路で構成可能であり、統計処理部51は、汎用PC上で動作するプログラムで構成可能である。
カウンタ46は、プログラム中のカウンタ変数の値として、メモリ上に保持することで実現する事が可能である。また、一般的なアップダウンカウンタ等でも構成する事ができる。
その他の構成要素は、図14と同様である。
図20において、回線対応部14から受信したデータパケットは、パケットメモリ12に転送される。回線対応部14から受信するデータは、プロトコルのヘッダ部分とコンテンツ部分の両方が入っているものとする。
受信プロトコル取得部45は、受信パケットの宛先ポート番号、または、送信元ポート番号、または、宛先ポート番号と送信元ポート番号の組合せによってプロトコルを判別し、カウンタ46で、プロトコル毎の受信パケット数を記憶する。
統計処理部50は、一定期間に受信した全パケット数に対する特定のプロトコルのパケット数の割合を算出し、この割合に対して閾値をあらかじめ設けている。
そして、前記カウンタ46の値に基づき、ある一定期間に閾値以上の割合をしめるプロトコルを出力する。また、このとき、全てのプロトコルが閾値に満たない場合は、もっとも受信したパケット数が多いプロトコルを出力する。
受信処理部テーブル31には、登録されている各プロトコルに対して受信処理部が対応づけられて記述されている。
プロトコルA、プロトコルBはそれぞれ以下のような受信特性への要求条件を持つ。
プロトコルAは、受信パケットに対する即時応答性が要求される。プロセッサでの処理は少ない。よって、遅延処理時間が短い受信処理部A(41)が適する。
プロトコルBは、受信パケットに対して即時応答性は要求しないが、プロセッサで行う処理が多い。よって、遅延処理時間が長い受信処理部C(43)が適する。
また、受信処理部A(41)、受信処理部B(42)、受信処理部C(43)は、それぞれ前述の参考例1と同様のものである。
この状態で、比較部34、受信処理部セレクタ35の動作は、以下のようになる。
(1)プロトコル毎のパケット受信数を保持するカウンタ46のカウント値に基づいて、統計処理部50の出力と、受信処理部テーブル31のエントリとの比較を行う。
(2)統計処理部50は、カウンタ46に保持されている値に基づいて、プロトコルAのパケットが、最近の1分間に受信した全パケット数の50%以上をしめると算出し、プロトコルAを出力する。
(3)比較部34は、受信処理部A(41)を選択する。
(4)受信処理部セレクタ35は、受信処理部切替器36に対して、受信処理部A(41)を選択するように指示する。
回線対応部14に到着したパケットは、パケットメモリ12にDMA転送される。受信処理部A(41)は、設定された遅延時間が経過した後に強制同期処理部41aを起動し、パケットメモリ12内の受信したパケットが記憶された領域のアドレスを、プロトコル処理部30へ渡す。
その後、(5)統計処理部50は、カウンタ46に保持されているカウント値に基づいて、プロトコルBのパケットが、最近の1分間に受信した全パケット数の50%以上をしめると算出し、プロトコルBを出力する。
(6)比較部34は、受信処理部B(42)を選択する。
(7)受信処理部セレクタ35は、受信処理部切替器36に対して、受信処理部B(42)を選択するように指示する。
この後、回線対応部14に到着したパケットは、パケットメモリ12にDMA転送され、受信処理部B(42)に設定された遅延時間が経過した後に強制同期処理部42aが起動される。
参考例4
図21は、本発明の参考例4のパケット処理装置の概略構成を示すブロック図である。なお、図21では、図14と同様に各々異なる受信処理方式で動作する受信処理部が3つの場合を示す。
同図において、39はトラヒックパターン情報取得部である。トラヒックパターン情報取得部39は、通信ボードの持つパケット到着時間解析機能や、受信パケット長解析機能により実現する事ができる。また、汎用的なパソコンで動作するプログラムにおいて変数を調査することでも実現することが出来る。
カウンタ46は、プログラム中のカウンタ変数の値として、メモリ上に保持することで実現する事が可能である。また、一般的なアップダウンカウンタ等でも構成する事ができる。
その他の構成要素は、図14と同様である。
図21において、回線対応部14から受信したデータパケットは、パケットメモリ12に転送される。回線対応部14から受信するデータは、プロトコルのヘッダ部分とコンテンツ部分の両方が入っているものとする。
トラヒックパターン情報取得部39では、回線対応部14から受信したデータパケットの到着時間間隔とパケットの長さを取得し、カウンタ46に記憶される。
統計処理部50は、トラヒック特性をいくつかのトラヒックパターンにあらかじめ分類しておき、前記カウンタ46の値に基づきトラヒック特性(ここでは、平均パケット長、平均到着時間間隔)を算出し、トラヒックパターンのいずれかに当てはめて、このパターンの値を出力する。
受信処理部テーブル31には、登録されている各トラヒック特性に対して適用する受信処理部が対応づけられて記述されている。
また、受信処理部A(41)、受信処理部B(42)、受信処理部C(43)は、それぞれ前述の参考例1と同様のものである。
この状態で、比較部34、受信処理部セレクタ35の動作は、以下のようになる。
(1)統計処理部50の出力と、受信処理部テーブル31のエントリとの比較を行う。
(2)統計処理部50は、カウンタ46に保持されているカウント値に基づいて、最近1分間の受信パケットの平均パケット長が1500byte、平均到着時間間隔が200msecであると算出し、この値はトラヒックパターンAに相当すると判断する。
(3)比較部34は、受信処理部A(41)を選択する。
(4)受信処理部セレクタ35は、受信処理部切替器36に対して、受信処理部A(41)を選択するように指示する。
回線対応部14に到着したパケットは、パケットメモリ12にDMA転送される。受信処理部A(41)は、設定された遅延時間が経過した後に強制同期処理部41aを起動し、パケットメモリ12内の受信したパケットが記載された領域のアドレスを、プロトコル処理部30へ渡す。
その後、(5)統計処理部50は、最近1分問の受信パケットの平均パケット長が250byte、平均到着時間間隔が10msecであると算出し、この値はトラヒックパターンBに相当すると判断する。
(6)比較部34は、受信処理部B(42)を選択する。
(7)受信処理部セレクタ35は、受信処理部切替器36に対して、受信処理部B(42)を選択するように指示する。
この後、回線対応部14に到着したパケットは、パケットメモリ12にDMA転送され、受信処理部B(42)に設定された遅延時間が経過した後に強制同期処理部42aが起動される。
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
従来のパケット処理装置の送信処理を説明するための図である。 従来のパケット処理装置の受信処理を説明するための図である。 本発明の実施例1のパケット処理装置の概略構成を示すブロック図である。 本発明の実施例1のパケット処理装置の接続構成を説明するための図である。 図3の構成において、実際の動作の様子を示す図である。 本発明の実施例1のパケット処理装置を汎用のコンピュータ上で構成した場合を示す図である。 図5に示す強制メモリ開放送信処理部の動作を説明するフローチャートである。 図5に示す非強制メモリ開放送信処理部の動作を説明するフローチャートである。 図5に示す各送信処理部の特徴を説明する図である。 本発明の実施例1のパケット処理装置の動作例を示す図である。 本発明の実施例2のパケット処理装置の概略構成を示すブロック図である。 本発明の実施例3のパケット処理装置の概略構成を示すブロック図である。 本発明の参考例1のパケット処理装置の概略構成を示すブロック図である。 図13の構成において、実際の動作の様子を示す図である。 本発明の参考例1のパケット処理装置を汎用のコンピュータ上で構成した場合を示す図である。 図14に示す受信処理部の動作を説明するフローチャートである。 図14に示す各受信処理部の特徴を説明する図である。 本発明の参考例1のパケット処理装置の動作例を示す図である。 本発明の参考例2のパケット処理装置の概略構成を示すブロック図である。 本発明の参考例3のパケット処理装置の概略構成を示すブロック図である。 本発明の参考例4のパケット処理装置の概略構成を示すブロック図である。
符号の説明
11 パケット入力部
12 パケットメモリ
13 送信処理部
14 回線対応部
15 強制メモリ開放送信処理部
15a,29a,40a,41a,42a,43a,44a 強制同期処理部
16 非強制メモリ開放送信処理部
17 送信処理部切替器
18 送信処理部セレクタ
19,34 比較部
20,27,49 送信処理部テーブル
21,46 カウンタ
22,47 リソース消費量取得部
23 パケット処理装置A
24 パケット処理装置B
25 送信用回線
26 受信用回線
28 送出プロトコル取得部
29,40,44 受信処理部
30 プロトコル処理部
31 受信処理部テーブル
35 受信処理部セレクタ
36 受信処理部切替器
39 トラヒックパターン情報取得部
41 受信処理部A
42 受信処理部B
43 受信処理部C
45 受信プロトコル取得部
48 計算処理能力取得部
50,51 統計処理部

Claims (6)

  1. 通信回線上にデータを送出する回線対応部と、
    前記回線対応部に送出するデータを記憶するパケットメモリと、
    前記パケットメモリの消費量を観測するリソース消費量取得部と、
    前記リソース消費量取得部で観測された前記パケットメモリのリソース消費量を保持するカウンタと、
    強制同期処理部が発生させる割り込みを契機として前記パケットメモリの開放処理を開始する強制メモリ開放送信処理部と、
    前記割り込みを用いずに前記パケットメモリの開放処理を開始する非強制メモリ開放送信処理部と、
    前記カウンタカウント値として保持する前記パケットメモリのリソース消費量に対して、該リソース消費量が所定の閾値以上の時には前記強制メモリ開放送信処理部、所定の閾値未満の時には前記非強制メモリ開放送信処理部を対応させる送信処理部テーブルと、
    前記カウンタのカウント値と前記送信処理部テーブルを比較する比較部と、
    前記比較部の結果に基づき、対向する送信処理部を選択する送信処理部セレクタと、
    前記送信処理部セレクタの指示に基づき、前記回線対応部に送出するデータの送信処理を実行する送信処理部を切替える送信処理部切替器とを備えることを特徴とするパケット処理装置。
  2. 通信回線上にデータを送出する回線対応部と、
    前記回線対応部に送出するデータを記憶するパケットメモリと、
    パケット処理装置の計算処理能力を観測する計算処理能力取得部と、
    前記計算処理能力取得部で観測された前記パケット処理装置の計算処理能力の使用率を保持するカウンタと、
    強制同期処理部が発生させる割り込みを契機として前記パケットメモリの開放処理を開始する強制メモリ開放送信処理部と、
    前記割り込みを用いずに前記パケットメモリの開放処理を開始する非強制メモリ開放送信処理部と、
    前記カウンタカウント値として保持する前記パケット処理装置の計算処理能力の使用率に対して、該使用率が所定の閾値未満の時には前記強制メモリ開放送信処理部、所定の閾値以上の時には前記非強制メモリ開放送信処理部を対応させる送信処理部テーブルと、
    前記カウンタのカウント値と前記送信処理部テーブルを比較する比較部と、
    前記比較部の結果に基づき、対向する送信処理部を選択する送信処理部セレクタと、
    前記送信処理部セレクタの指示に基づき、前記回線対応部に送出するデータの送信処理を実行する送信処理部を切替える送信処理部切替器とを備えることを特徴とするパケット処理装置。
  3. 通信回線上にデータを送出する回線対応部と、
    前記回線対応部に送出するデータを記憶するパケットメモリと、
    パケット処理装置の送出するデータのプロトコルを判別する送出プロトコル取得部と、
    前記送出プロトコル取得部で判別された送出データ数を送出プロトコル毎に保持するカウンタと、
    前記カウンタのカウント値から所定期間にもっとも送出したパケット数が多いプロトコルを出力する統計処理部と、
    強制同期処理部が発生させる割り込みを契機として前記パケットメモリの開放処理を開始する強制メモリ開放送信処理部と、
    前記割り込みを用いずに前記パケットメモリの開放処理を開始する非強制メモリ開放送信処理部と、
    前記統計処理部の出力値であるプロトコルに対して、該プロトコルが、送信要求に対して即時にパケットを前記パケットメモリから前記回線対応部に送出する必要がないプロトコル、もしくは前記パケットメモリのリソース消費量が比較的多いプロトコルである時には前記強制メモリ開放送信処理部、送信要求に対して即時にパケットを前記パケットメモリから前記回線対応部に送出する必要があるプロトコル、もしくは前記パケットメモリのリソース消費量が比較的少ないプロトコルである時には前記非強制メモリ開放送信処理部を対応させる送信処理部テーブルと、
    前記統計処理部の出力値と前記送信処理部テーブルを比較する比較部と、
    前記比較部の結果に基づき、対応する送信処理部を選択する送信処理部セレクタと、
    前記送信処理部セレクタの指示に基づき、前記回線対応部に送出するデータの送信処理を実行する送信処理部を切替える送信処理部切替器とを備えることを特徴とするパケット処理装置。
  4. 請求項に記載のパケット処理装置をコンピュータで実行させるためのプログラムであって、
    前記プログラムは、コンピュータに、請求項に記載のリソース消費量取得部、カウンタ、強制メモリ開放送信処理部、非強制メモリ開放送信処理部、比較部、送信処理部セレクタ、および、送信処理部切替器の処理を実行させることを特徴とするプログラム。
  5. 請求項に記載のパケット処理装置をコンピュータで実行させるためのプログラムであって、
    前記プログラムは、コンピュータに、請求項に記載の計算処理能力取得部、カウンタ、強制メモリ開放送信処理部、非強制メモリ開放送信処理部、比較部、送信処理部セレクタ、および、送信処理部切替器の処理を実行させることを特徴とするプログラム。
  6. 請求項に記載のパケット処理装置をコンピュータで実行させるためのプログラムであって、
    前記プログラムは、コンピュータに、請求項に記載の送出プロトコル取得部、カウンタ、統計処理部、強制メモリ開放送信処理部、非強制メモリ開放送信処理部、比較部、送信処理部セレクタ、および、送信処理部切替器の処理を実行させることを特徴とするプログラム。
JP2003372737A 2003-10-31 2003-10-31 パケット処理装置およびプログラム Expired - Lifetime JP3934099B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003372737A JP3934099B2 (ja) 2003-10-31 2003-10-31 パケット処理装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003372737A JP3934099B2 (ja) 2003-10-31 2003-10-31 パケット処理装置およびプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006112839A Division JP4349636B2 (ja) 2006-04-17 2006-04-17 パケット処理装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2005136856A JP2005136856A (ja) 2005-05-26
JP3934099B2 true JP3934099B2 (ja) 2007-06-20

Family

ID=34649028

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003372737A Expired - Lifetime JP3934099B2 (ja) 2003-10-31 2003-10-31 パケット処理装置およびプログラム

Country Status (1)

Country Link
JP (1) JP3934099B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7056337B2 (ja) * 2018-04-10 2022-04-19 日本電信電話株式会社 パケット処理装置およびパケット処理方法

Also Published As

Publication number Publication date
JP2005136856A (ja) 2005-05-26

Similar Documents

Publication Publication Date Title
US11799764B2 (en) System and method for facilitating efficient packet injection into an output buffer in a network interface controller (NIC)
US6836808B2 (en) Pipelined packet processing
KR101006260B1 (ko) 네트워크 프로토콜 처리의 오프로드에서 메모리 관리를 지원하기 위한 장치 및 방법
US7953915B2 (en) Interrupt dispatching method in multi-core environment and multi-core processor
KR100992282B1 (ko) 통신 접속 수립 방법과 시스템, 데이터 전송 방법과 시스템, 및 컴퓨터 판독 가능한 저장 매체
CN107220200B (zh) 基于动态优先级的时间触发以太网数据管理系统及方法
US20210034560A1 (en) Persistent kernel for graphics processing unit direct memory access network packet processing
JP2007079789A (ja) 計算機システム及びイベント処理方法
US20070005742A1 (en) Efficient network communications via directed processor interrupts
US5533203A (en) Start of packet receive interrupt for ethernet controller
CN116192772A (zh) 一种基于空间缓存的cpu收发包调度装置及方法
JP2000083053A (ja) プログラム内蔵方式パケット処理装置
JP5109748B2 (ja) 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード
JP2008011015A (ja) パケット処理方法およびパケット処理装置
JP4349636B2 (ja) パケット処理装置およびプログラム
CN111756586B (zh) 一种数据中心网络中基于优先级队列的公平带宽分配方法、交换机及可读存储介质
JP3934099B2 (ja) パケット処理装置およびプログラム
JP2001014243A (ja) 受信割込処理装置
US8090801B1 (en) Methods and apparatus for performing remote access commands between nodes
WO2007074343A2 (en) Processing received data
AU714853B2 (en) Job scheduling for instruction processor
US6324625B1 (en) Rotating rationed buffer refresh
JP5772132B2 (ja) データ転送装置、データ転送方法および情報処理装置
WO2023193689A1 (zh) 报文传输方法、装置、设备及计算机可读存储介质
US8842696B1 (en) Guaranteed rate port scheduler

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060417

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070314

R150 Certificate of patent or registration of utility model

Ref document number: 3934099

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110330

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110330

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120330

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130330

Year of fee payment: 6

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

EXPY Cancellation because of completion of term