以下、本発明の実施の形態を図面を参照して説明する。
図1−1は、本発明の実施の形態のパケット通信装置101のブロック図である。
パケット通信装置101は、ノード管理用プロセッサ102、オペレータ制御端末103、ノード内メモリ104、ネットワークインタフェース(NIF)105、モジュールI/F106、制御用I/F107、機能拡張モジュール108及び内部スイッチ109を備える。
なお、NIF105、モジュールI/F106及び機能拡張モジュール108は、いくつ備えられていてもよい。
ノード管理用プロセッサ102は、パケット通信装置101の全体を管理する。
オペレータ制御端末103は、表示部(例えば、液晶ディスプレイ等)及び入力部(例えば、キーボード等)を備える計算機である。オペレータ制御端末103には、パケット通信装置101への指示がオペレータから入力される。また、オペレータ制御端末103は、入力された指示をノード管理用プロセッサ102へ送信する。
制御用I/F107は、ノード管理用プロセッサ102とオペレータ制御端末103とを接続するインタフェースである。なお、制御用I/F107とノード管理用プロセッサ102とは、直接接続されていてもよいし、内部スイッチ109を介して接続されていてもよい。
ノード内メモリ104は、ノード管理用プロセッサ102に接続され、当該ノード管理用プロセッサ102が使用する情報を記憶する。なお、ノード内メモリ104とノード管理用プロセッサ102とは、直接接続されていてもよいし、内部スイッチ109を介して接続されていてもよい。
NIF105は、外部ネットワーク110とパケットを送受信する。また、NIF105は、パケットを送受信する機能を停止することなく、プログラムをインストールできる。同様に、NIF105は、パケットを送受信する機能を停止することなく、インストールされたプログラムを削除できる。また、NIF105は、インストールされたプログラムを実行することによって、受信したパケットに所定の処理を行う。所定の処理は、例えば、カプセル化処理、暗号化処理及び/又は複合化処理等である。
外部のネットワーク110は、ユーザネットワーク、ISP(インターネットサービスプロバイダ)網又はアクセス網等である。ユーザネットワークは、ユーザが直接接続するネットワークである。ISP網は、インターネットサーバが直接接続するネットワークである。インターネットサーバは、ユーザにインターネットサービスを提供する計算機である。アクセス網は、ユーザネットワークとISP網とを接続するネットワークである。
モジュールI/F106は、内部スイッチ109と機能拡張モジュール108とを接続するインタフェースである。
なお、モジュールI/F106及び制御用I/F107は、NIF105と同等の機能を備えるインタフェースであってもよい。
機能拡張モジュール108は、モジュールI/F106に着脱できる。また、機能拡張モジュール108は、モジュールI/F106に装着されると、パケット通信装置101に機能を提供する。
内部スイッチ109は、ノード管理用プロセッサ102、NIF105及びモジュールI/F106等を含む装置内の部位と接続する。また、内部スイッチ109は、フォワーディングテーブルを記憶する。フォワーディングテーブルは、パケットのヘッダ情報とパケットの転送先との対応を示す。
具体的には、内部スイッチ109は、接続する装置内の部位からパケットを受信する。次に、内部スイッチ109は、フォワーディングテーブルを参照して、受信したパケットの転送先を決定する。そして、内部スイッチ109は、決定した転送先の装置内の部位へ当該パケットを転送する。
図1−2は、本発明の実施の形態のパケット通信装置101の内部におけるパケットの構成図である。
パケット通信装置101の内部におけるパケット(内部パケット)113は、内部ヘッダ111及びペイロード112を含む。
内部ヘッダ111には、パケット通信装置101の内部のみで有効なアドレス(内部アドレス)などの情報が格納される。ペイロード112には、当該パケットの内容が格納される。
図2は、本発明の実施の形態のパケット通信装置101を適用したネットワークのブロック図である。
本説明図は、ユーザ端末201がインターネット202に接続するネットワークの典型的な構成を示す。このネットワークは、インターネット202、アクセス網203及びISP網205を含む。
ユーザ端末201は、ISP網205を経由して、インターネット202に接続する計算機である。
インターネット202は、多数のサーバで構築されるネットワークである。
ISP網205は、インターネットサーバ207及びノード204を含む。インターネットサーバ207は、ユーザ端末201にインターネットサービスを提供する。ノード204は、ネットワーク上でパケットを転送する。
アクセス網203は、ユーザ端末201とISP網205とを接続するネットワークである。また、アクセス網203は、ノード204を含む。
更に、ISP網205に含まれるノード204及び/又はアクセス網203に含まれるノード204には、本実施の形態のパケット通信装置101を適用できる。この場合、パケット通信装置101は、インターネットサーバ207とユーザ端末201とを接続し、パケットを転送する。また、パケット通信装置101は、転送するパケットに所定の処理を行う。所定の処理は、例えば、パケットフィルタリング処理、認証処理及び/又は暗号化処理等である。
図3−1は、本発明の実施の形態のNIF105のブロック図である。
NIF105は、NIF管理用プロセッサ301、NIF内メモリ302、パケット処理用プロセッサ303、内部I/F305、外部I/F306及びNIF内部スイッチ307を備える。
外部I/F306は、n個を図示しているが、いくつであってもよい。
NIF内部スイッチ307は、NIF管理用プロセッサ301、NIF内メモリ302、パケット処理用プロセッサ303、内部I/F305及び外部I/F306と接続する。
NIF管理用プロセッサ301は、NIF105の全体を管理する。
NIF内メモリ302は、NIF管理用プロセッサ301が使用する情報を記憶する。また、NIF内メモリ302は、内部I/F305又は外部I/F306から受信したパケットを一時的に記憶する。
また、NIF内メモリ302は、図4−2で後述するフォワーディングテーブルを記憶する。フォワーディングテーブルは、パケットのヘッダ情報とパケットの転送先との対応を示す。更に、NIF内メモリ302で記憶するフォワーディングテーブルは、パケット処理用プロセッサ303がパケットを処理する内容も含む。
パケット処理用プロセッサ303は、プログラム用メモリ304を含む。プログラム用メモリ304は、パケットを処理するプログラムが格納される。プログラム用メモリ304に格納されるプログラムは、例えば、カプセル化処理、暗号化処理及び/又は復号化処理等を行う。
また、プログラム用メモリ304に格納されるプログラムは、同一の規格で作成されることが好ましい。このようにすると、プログラム用メモリ304を効率的に利用できる。
パケット処理用プロセッサ303は、プログラム用メモリ304に格納されているプログラムを実行することによって、パケットに所定の処理を行う。
なお、プログラム用メモリ304に格納されるプログラムを変更することによって、パケット処理用プロセッサ303が実行する処理の内容を変更できる。
また、プログラム用メモリ304は、NIF内メモリ302に代わって、フォワーディングテーブル(図4−2)を記憶していてもよい。
内部I/F305は、内部スイッチ109とNIF内部スイッチ307とを接続するインタフェースである。
外部I/F306は、外部ネットワーク110とNIF内部スイッチ307とを接続するインタフェースである。
ここで、外部I/F306からパケットを受信したNIF105の処理を説明する。
外部I/F306は、接続している外部ネットワーク110からパケットを受信する。すると、外部I/F306は、受信したパケットを、NIF内部スイッチ305を介してNIF内メモリ302に送信する。
次に、NIF内メモリ302は、受信したパケットを記憶する。
次に、パケット処理用プロセッサ303は、NIF内メモリ302が記憶したパケットの内容を解析する。そして、パケット処理用プロセッサ303は、当該パケットに対して、解析した内容に対応する処理を行う。
例えば、パケット処理用プロセッサ303は、NIF内メモリ302が記憶したパケットをIPパケットと解析する。すると、パケット処理用プロセッサ303は、NIF内メモリ302が記憶するフォワーディングテーブル(図4−2)を参照して、当該パケットを外部に転送するNIF105を決定する。
次に、パケット処理用プロセッサ303は、決定したNIF105の内部アドレスを当該パケットに付加する。そして、パケット処理用プロセッサ303は、内部アドレスを付加したパケットを、NIF内部スイッチ307及び内部I/F305を経由して、内部スイッチ109へ送信する。
図3−2は、本発明の実施の形態の機能拡張モジュール108のブロック図である。
機能拡張モジュール108は、モジュール内プロセッサ308、モジュール内メモリ309及びモジュール内部I/F310を備える。
モジュール内部I/F310は、パケットを内部スイッチ109と送受信するインタフェースである。
モジュール内メモリ309は、モジュール内プロセッサ308が使用する情報(プログラムを含む。)を記憶する。更に、モジュール内メモリ309は、NIF105にインストールされるプログラムを記憶する。
モジュール内プロセッサ308は、モジュール内メモリ309が記憶するプログラムを実行することによって、モジュール内部I/F310から受信したパケットを処理する。また、モジュール内プロセッサ308は、機能拡張モジュール108の全体を管理する。
図4−1は、本発明の実施の形態のパケット通信装置101を構成する部位の内部アドレスの説明図である。
本実施の形態では、装置内のそれぞれの部位には、「1、2・・・」という内部アドレスが付与されている。
具体的には、ノード管理用プロセッサ102の内部アドレスは「1」である。また、内部スイッチの内部アドレスは「2」である。また、NIF(1)105の内部アドレスは「3」であり、NIF(2)105の内部アドレスは「4」である。また、モジュールI/F(1)106の内部アドレスは「7」であり、モジュールI/F(2)106の内部アドレスは「8」である。また、機能拡張モジュール(1)108の内部アドレスは「11」であり、機能拡張モジュール(2)108の内部アドレスは「12」であり
図4−2は、本発明の実施の形態のNIF(1)105のフォワーディングテーブル401の構成図である。
フォワーディングテーブル401は、ヘッダ情報402及び処理内容403を含む。
ヘッダ情報402は、宛先内部アドレス404、ペイロードタイプ405及びIPアドレス/プレフィックス長406を含む。
宛先内部アドレス404は、当該パケットを次に転送する装置内の部位の内部アドレスである。ペイロードタイプ405は、イーサネット(Ethernet)(登録商標、以下同じ)におけるヘッダ情報であり、ペイロードに格納された情報の種類である。IPアドレス/プレフィックス長406には、当該パケットの送信先のIPアドレスが格納される。更に、IPアドレス/プレフィックス長406には、当該IPアドレスのネットワークアドレス部の長さ(プレフィックス長)が格納される。
処理内容403は、当該レコードに該当するパケットをNIF(1)105が処理する内容である。処理内容には、当該パケットの転送先及び当該パケットを処理するプログラム名が格納される。
NIF(1)105は、内部I/F305又は外部I/F306からパケットを受信する。すると、NIF(1)105は、受信したパケットからヘッダを抽出する。次に、NIF(1)105は、抽出したヘッダとフォワーディングテーブル401のヘッダ情報402とが一致するレコードをフォワーディングテーブル401から選択する。次に、NIF(1)105は、選択したレコードから、処理内容403を抽出する。
次に、NIF(1)105は、抽出した処理内容403に格納されているプログラム名のプログラムを実行することによって、当該パケットを処理する。そして、NIF(1)105は、処理したパケットを、抽出した処理内容403に格納されている転送先へ送信する。
図5−1は、本発明の実施の形態のノード管理用プロセッサ処理コード管理テーブル700の構成図である。
ノード管理用プロセッサ処理コード管理テーブル700は、ノード内メモリ104、NIF105のNIF内メモリ302及び機能拡張モジュール108のモジュール内メモリ309に記憶される。
ノード管理用プロセッサ処理コード管理テーブル700は、ノード管理用プロセッサ処理コード701及び処理内容702を含む。
ノード管理用プロセッサ処理コード701は、処理内容702の一意な識別子である。処理内容702は、ノード管理用プロセッサ102に要求する処理の内容である。
図5−2は、本発明の実施の形態のプログラム取得コード管理テーブル710の構成図である。
プログラム取得コード管理テーブル710は、ノード内メモリ104、NIF105のNIF内メモリ302及び機能拡張モジュール108のモジュール内メモリ309に記憶される。
プログラム取得コード管理テーブル710は、プログラム取得コード711及び取得方法712を含む。
プログラム取得コード711は、取得方法712の一意な識別子である。
取得方法712は、ノード管理用プロセッサ102がプログラムを取得する方法である。
図5−3は、本発明の実施の形態のNIF指定コード管理テーブル720の構成図である。
NIF指定コード管理テーブル720は、ノード内メモリ104及び機能拡張モジュール108のモジュール内メモリ309に記憶される。
NIF指定コード管理テーブル720は、NIF指定コード721及び送信先722を含む。
NIF指定コード721は、送信先722の一意な識別子である。送信先722は、プログラムの送信先となるNIF105を示す。
図5−4は、本発明の実施の形態のパケット指定コード管理テーブル730の構成図である。
パケット指定コード管理テーブル730は、ノード内メモリ104、NIF105のNIF内メモリ302及び機能拡張モジュール108のモジュール内メモリ309に記憶される。
パケット指定コード管理テーブル730は、パケット指定コード731及びパケットの種類732を含む。
パケット指定コード731は、パケットの種類732の一意な識別子である。パケットの種類732は、パケットのヘッダ等から判定される種類であり、例えば、ペイロードタイプやIPアドレス等である。
図6−1は、本発明の実施の形態のNIF−プログラム管理テーブル800の構成図である。
NIF−プログラム管理テーブル800は、ノード内メモリ104及びNIF105のNIF内メモリ302に記憶される。
NIF−プログラム管理テーブル800は、NIF105とプログラムとの対応を示す。
NIF番号802は、NIF105の一意な識別子である。プログラム名801は、プログラムの一意な識別子である。
NIF番号802のNIF105にプログラム名801のプログラムがインストールされていると、NIF−プログラム管理テーブル800の該当するボックスに丸印が格納される。
更に、NIF−プログラム管理テーブル800は、リファレンスカウンタ(ref)803及びメモリ残存率(rem)804を含む。
リファレンスカウンタ803は、当該プログラムを使用している機能拡張モジュール108の数である。
メモリ残存率804は、当該NIF105のプログラム用メモリ304の未使用領域の割合である。
なお、NIF−プログラム管理テーブル800は、機能拡張モジュール108とプログラムとの対応や、NIF105と機能拡張モジュール108との対応等の情報を有していてもよい。
図6−2は、本発明の実施の形態のNIF処理コード管理テーブル740の構成図である。
NIF処理コード管理テーブル740は、ノード内メモリ104及びNIF105のNIF内メモリ302に記憶される。
NIF処理コード管理テーブル740は、NIF処理コード741及びNIF処理内容742を含む。
NIF処理コード741は、NIF処理内容742の一意な識別子である。NIF処理内容742は、NIF105が行う処理の内容である。
図6−3は、本発明の実施の形態の更新コード管理テーブル750の構成図である。
更新コード管理テーブル750は、ノード内メモリ104及びNIF105のNIF内メモリ302に記憶される。
更新コード管理テーブル750は、更新コード751及びNIF更新内容752を含む。
更新コード751は、NIF更新内容752の一意な識別子である。NIF更新内容752は、NIF105がフォワーディングテーブル401を更新する内容である。
図7−1は、本発明の実施の形態のプログラム指定コード管理テーブル760の構成図である。
プログラム指定コード管理テーブル760は、ノード内メモリ104及びNIF105のNIF内メモリ302に記憶される。
プログラム指定コード管理テーブル760は、プログラム指定コード761及び送信プログラム762を含む。
プログラム指定コード761は、送信プログラム762の一意な識別子である。送信プログラム762は、NIF105にインストールされるプログラムを示す。
図7−2は、本発明の実施の形態のモジュール処理コード管理テーブル770の構成図である。
モジュール処理コード管理テーブル770は、ノード内メモリ104及び機能拡張モジュール108のモジュール内メモリ309に記憶される。
モジュール処理コード管理テーブル770は、モジュール処理コード771及びモジュール処理内容772を含む。
モジュール処理コード771は、モジュール処理内容772の一意な識別子である。モジュール処理内容772は、機能拡張モジュール108に要求する処理の内容である。
図8は、本発明の実施の形態のパケット通信装置101の機能拡張モジュール追加処理のフローチャートである。
機能拡張モジュール108が、モジュールI/F106に接続される。すると、パケット通信装置101は、機能拡張モジュール108の追加処理を開始する(501)。
具体的には、機能拡張モジュール108は、自身のモジュール内部I/F310とパケット通信装置101のモジュールI/F106とが接続されたことを検知する。機能拡張モジュール108は、接続を検知すると、ノード管理用プロセッサ102にインストール要求内部パケットを送信する(502)。
インストール要求内部パケットは、プログラムのインストールをNIF105へ要求するパケットであり、内部ヘッダ111及びペイロード112から構成される。
図9−1は、本発明の実施の形態の内部ヘッダ111の構成図である。
内部ヘッダ111は、宛先アドレス601及び送信元アドレス602を含む。
宛先アドレス601は、当該パケットを受信する装置内の部位の内部アドレスである。送信元アドレス602は、当該パケットを送信する装置内の部位の内部アドレスである。
インストール要求内部パケットでは、宛先アドレス601がノード管理用プロセッサ102の内部アドレスである。また、送信元アドレス602が機能拡張モジュール108の内部アドレスである。
なお、機能拡張モジュール108がノード管理用プロセッサ102の内部アドレスを知ることができないパケット通信装置101では、マルチキャストアドレスを予め設定しておく必要がある。そして、インストール要求内部パケットは、宛先アドレス601をマルチキャストアドレスとする。なお、マルチキャストアドレスを宛先アドレスとするパケットは、装置内のすべての部位に送信される。
ただし、ノード管理用プロセッサ102以外の装置内の部位は、宛先アドレスがマルチキャストアドレスである内部パケットを受信すると、破棄する。または、内部スイッチ109は、宛先アドレス601がマルチキャストアドレスである内部パケットを受信すると、ノード管理用プロセッサ102だけにパケットを転送する。これによって、ノード管理用プロセッサ102のみが、インストール要求内部パケットを受信する。
図9−2は、本発明の実施の形態のプログラムを含むインストール要求内部パケットのペイロード112の構成図である。
本説明図のインストール要求内部パケットのペイロード112は、プログラム607を含む。更に、ノード管理用プロセッサ処理コード701、プログラム取得コード711、NIF指定コード721及びパケット指定コード731を含む。
機能拡張モジュール108は、以下のようにインストール要求内部パケットのペイロード112を作成する。
まず、機能拡張モジュール108は、ノード管理用プロセッサ102に要求する処理の内容がノード管理用プロセッサ処理コード管理テーブル700の処理内容702に合致するレコードを、ノード管理用プロセッサ処理コード管理テーブル700から選択する。次に、選択したレコードから、ノード管理用プロセッサ処理コード701を抽出する。そして、抽出したノード管理用プロセッサ処理コード701をパケットのペイロード112に格納する。
インストール要求内部パケットは、機能拡張モジュール108の追加をノード管理用プロセッサ102に要求する。よって、機能拡張モジュール108は、ノード管理用プロセッサ処理コード701を「0」として、パケットのペイロード112に格納する。
次に、機能拡張モジュール108は、ノード管理用プロセッサ102がプログラムを取得する方法がプログラム取得コード管理テーブル710の取得方法712に合致するレコードを、プログラム取得コード管理テーブル710から選択する。次に、選択したレコードから、プログラム取得コード711を抽出する。そして、抽出したプログラム取得コード711をパケットのペイロード112に格納する。
本説明図のペイロードは、プログラム607を含む。よって、機能拡張モジュール108は、プログラム取得コード711を「0」として、パケットのペイロード112に格納する。
次に、機能拡張モジュール108は、プログラムをインストールさせるNIF105とNIF指定コード管理テーブル720の送信先722とが一致するレコードを、NIF指定コード管理テーブル720から選択する。次に、選択したレコードから、NIF指定コード721を抽出する。そして、抽出したNIF指定コード721をパケットのペイロード112に格納する。
本説明図のインストール要求パケットは、プログラムをインストールするNIFをオペレータに指定させる場合とする。よって、機能拡張モジュール108は、NIF指定コード721を「1」として、パケットのペイロード112に格納する。
次に、機能拡張モジュール108は、NIF105にインストールさせるプログラム607をパケットのペイロードに格納する。プログラム607は、プログラム名608を含む。
プログラム名608は、プログラムの一意な識別子である。なお、プログラム名608は、プログラムのバージョン及び特徴を示すものが好ましい。これによって、オペレータ制御端末103がプログラム名608を表示することによって、プログラムの種類をオペレータに理解させることができる。
次に、機能拡張モジュール108は、NIF105がプログラム607を実行するパケットの種類とパケット指定コード管理テーブル730のパケットの種類732とが一致するレコードを、パケット指定コード管理テーブル730から選択する。次に、選択したレコードから、パケット指定コード731を抽出する。そして、抽出したパケット指定コード731をパケットのペイロードに格納する。
なお、インストール要求パケットは、複数のプログラム607を含んでいてもよい。この場合、インストール要求パケットは、それぞれのプログラム607に対応するパケット指定コード731を含む。
例えば、プログラム名608が「4.0.1」のプログラム607に対応するパケット指定コード731は、「1」である。
図9−3は、本発明の実施の形態のプログラムの所在情報を含むインストール要求内部パケットのペイロード112の構成図である。
本説明図のインストール要求内部パケットのペイロード112は、プログラムの所在情報609を含む。それ以外の構成は、プログラムを含むインストール要求内部パケットのペイロード(図9−2)と同一である。同一の構成には同一の番号を付し、説明を省略する。
プログラムの所在情報609は、NIF105にインストールさせるプログラムの所在に関する情報である。プログラムの所在情報609は、例えば、当該プログラムを記憶しているサーバのURL又は当該プログラムを記憶しているノードのIPアドレス等である。
なお、本説明図のペイロードは、プログラム607の代わりに、プログラムの所在情報609を含む。よって、機能拡張モジュール108は、プログラム取得コード711を「1」として、パケットのペイロード112に格納する。
ここで、図8に戻る。ノード管理用プロセッサ102は、機能拡張モジュール108からインストール要求内部パケットを受信する。
次に、ノード管理用プロセッサ102は、受信したインストール要求内部パケットから、ノード管理用プロセッサ処理コードを抽出する。次に、ノード管理用プロセッサ102は、抽出したノード管理用プロセッサ処理コードとノード管理用プロセッサ処理コード管理テーブル700のノード管理用プロセッサ処理コード701とが一致するレコードを、ノード管理用プロセッサ処理コード管理テーブル700から選択する。次に、ノード管理用プロセッサ102は、選択したレコードから、処理内容702を抽出する(503)。
そして、ノード管理用プロセッサ102は、抽出した処理内容702に対応する処理を行う。ここでは、ノード管理用プロセッサ処理コード701が「0」なので、ノード管理用プロセッサ102は、機能拡張モジュール追加処理を行う。
具体的には、ノード管理用プロセッサ102は、受信したインストール要求内部パケットの内部ヘッダ111から、宛先アドレス601を抽出する。次に、ノード管理用プロセッサ102は、抽出した宛先アドレス601を、新たに追加された機能拡張モジュール108の内部アドレスとして、ノード内メモリ104に記憶する(504)。
ただし、内部アドレスがそれぞれの部位に固定的に割り当てられるアドレス(例えば、イーサネットのMACアドレス)でない場合には、ノード管理用プロセッサ102は、抽出した宛先アドレス601を内部アドレスとして記憶しない。この場合、ノード管理用プロセッサ102は、利用可能な内部アドレスを機能拡張モジュール108に割り当てる。次に、ノード管理用プロセッサ102は、割り当てた内部アドレスをノード内メモリ104に記憶する。そして、ノード管理用プロセッサ102は、割り当てた内部アドレスを機能拡張モジュール108の内部アドレスとして、内部スイッチ109に設定する。
次に、ノード管理用プロセッサ102は、受信したインストール要求内部パケットから、プログラム取得コードを抽出する(505)。次に、抽出したプログラム取得コードとプログラム取得コード管理テーブル710のプログラム取得コード711とが一致するレコードを、プログラム取得管理テーブル710から選択する。次に、ノード管理用プロセッサ102は、選択したレコードから、取得方法712を抽出する。そして、ノード管理用プロセッサ102は、抽出した取得方法712に対応する処理によって、プログラムを取得する。
具体的には、ノード管理用プロセッサ102は、抽出したプログラム取得コード711が「0」であると、インストール要求内部パケットのペイロード112にプログラム607が格納されていると判定する。よって、ノード管理用プロセッサ102は、プログラム607及びプログラム名608をインストール要求内部パケットのペイロード112から取得する(506−1)。
また、ノード管理用プロセッサ102は、抽出したプログラム取得コード711が「1」であると、インストール要求内部パケットのペイロード112にプログラムの所在情報609が格納されていると判定する。よって、ノード管理用プロセッサ102は、ペイロード112に格納されているプログラムの所在情報609に基づいて、プログラム及びプログラム名を取得する(506−2)。
また、ノード管理用プロセッサ102は、抽出したプログラム取得コード711が「2」であると、インストール要求内部パケットのペイロード112にプログラム名が格納されていると判定する。よって、ノード管理用プロセッサ102は、ペイロード112に格納されているプログラム名に関する情報を、ノード内メモリ104から検索する。
そして、当該プログラム名のプログラムがノード内メモリ104に記憶されていると、ノード管理用プロセッサ102は、当該プログラムをノード内メモリ104から取得する(506−3)。
一方、当該プログラム名のプログラムの所在情報がノード内メモリ104に記憶されていると、ノード管理用プロセッサ102は、当該所在情報をノード内メモリ104から取得する。そして、ノード管理用プロセッサ102は、取得した所在情報に基づいて、プログラムを取得する(506−3)。
次に、ノード管理用プロセッサ102は、受信したインストール要求内部パケットのペイロード112から、パケット指定コード731を抽出する。そして、ノード管理用プロセッサ102は、取得したプログラム、取得したプログラム名及び抽出したパケット指定コード731をノード内メモリ104に記憶する(507)。
次に、ノード管理用プロセッサ102は、受信したインストール要求内部パケットのペイロード112から、NIF指定コードを抽出する(508)。
次に、ノード管理用プロセッサ102は、抽出したNIF指定コードとNIF指定コード管理テーブル720のNIF指定コード721とが一致するレコードを、NIF指定コード管理テーブル720から選択する。次に、ノード管理用プロセッサ102は、選択したレコードから、送信先722を抽出する。そして、ノード管理用プロセッサ102は、抽出した送信先722のNIF105に対して、プログラムを送信する。
具体的には、ノード管理用プロセッサ102は、抽出したNIF指定コード721が「0」であると、すべてのNIF105をプログラムの送信先と決定する。よって、そのままステップ511に進む。
一方、ノード管理用プロセッサ102は、抽出したNIF指定コード721が「1」であると、プログラムをインストールするNIF105をオペレータに指定させると判定する。そこで、ノード管理用プロセッサ102は、NIF指定要求をオペレータ制御端末103に送信する(509)。NIF指定要求は、ステップ507でノード内メモリ104が記憶したプログラム名を含む。
すると、オペレータ制御端末103は、受信したNIF指定要求に対応する情報を表示部に表示する。
図10−1は、本発明の実施の形態のNIF指定要求を受信したオペレータ制御端末103の表示画面の説明図である。
オペレータ制御端末103は、NIF−プログラム管理テーブル800(図6−1)及びメッセージ806等を表示する。
具体的には、オペレータ制御端末103は、受信したNIF指定要求からプログラム名を抽出する。次に、オペレータ制御端末103は、抽出したプルグラム名のプログラムをインストールするNIF105の指定を要求するメッセージ806を表示する。
更に、オペレータ制御端末103は、ノード内メモリ104からNIF−プログラム管理テーブル800を取得する。そして、オペレータ制御端末は、取得したNIF−プログラム管理テーブル800を表示する。
オペレータは、オペレータ制御端末103の表示画面を確認することによって、NIF105のプログラムインストール状況を視覚的に把握できる。
ここで、図8に戻る。
オペレータは、プログラムをインストールするNIF105をオペレータ制御端末103上で指定する(510)。
オペレータ制御端末103は、オペレータに指定されたNIF105を、ノード管理用プロセッサ102に通知する。すると、ノード管理用プロセッサ102は、通知されたNIF105をプログラムの送信先と決定する。
次に、ノード管理用プロセッサ102は、NIF−プログラム管理テーブル800を参照することによって、送信先と決定したNIF105に当該プログラムが既にインストールされているか否かを判定する(511)。
具体的には、ノード管理用プロセッサ102は、インストールするプログラム名とNIF−プログラム管理テーブル800のプログラム名801とが一致し、更に、送信先と決定したNIF105のNIF番号とNIF−プログラム管理テーブル800のNIF番号804とが一致するブロックを抽出する。
そして、ノード管理用プロセッサ102は、抽出したブロックに丸印が格納されていると、既にインストールされていると判定する。一方、抽出したブロックが空欄であると、インストールされていないと判定する。
ノード管理用プロセッサ102は、プログラムがインストールされていないと判定すると、送信先と決定したNIF105にプログラムインストール要求パケットを送信する(512)。
図10−2は、本発明の実施の形態のプログラムインストール要求パケットの構成図である。
プログラムインストール要求パケットは、内部ヘッダ111及びペイロード112から構成される。
内部ヘッダ111は、宛先アドレス601及び送信元アドレス602を含む。
宛先アドレス601は、当該パケットを受信する装置内の部位の内部アドレスである。送信元アドレス602は、当該パケットを送信する装置内の部位の内部アドレスである。
プログラムインストール要求パケットでは、宛先アドレス601がパケット送信先のNIF105の内部アドレスである。また、送信元アドレス602がノード管理用プロセッサ102の内部アドレスである。
ペイロード112は、NIF処理コード741、機能拡張モジュールの内部アドレス902、パケット指定コード731、プログラム903及びプログラム名904を含む。
なお、ペイロード112は、複数のプログラム903を含んでいてもよい。この場合、ペイロード112は、それぞれのプログラム903に対応するパケット指定コード731及びプログラム名904を含む。
ノード管理用プロセッサ102は、以下のようにプログラムインストール要求パケットのペイロード112を作成する。
まず、ノード管理用プロセッサ102は、NIF105に要求する処理の内容がNIF処理コード管理テーブル740のNIF処理内容742に合致するレコードを、NIF処理コード管理テーブル740から選択する。次に、選択したレコードから、NIF処理コード741を抽出する。そして、抽出したNIF処理コード741をパケットのペイロード112に格納する。
プログラムインストール要求パケットは、ペイロードに格納されているプログラム903のインストールをNIF105に要求する。よって、ノード管理用プロセッサ102は、NIF処理コード714を「0」として、パケットのペイロード112に格納する。
次に、ノード管理用プロセッサ102は、ステップ504でノード内メモリ104に記憶した内部アドレスを抽出する。次に、抽出した内部アドレスを、パケット通信装置101に追加された機能拡張モジュールの内部アドレス902として、パケットのペイロード112に格納する。
次に、ノード管理用プロセッサ102は、ステップ507でノード内メモリ104に記憶したパケット指定コード731、プログラム及びプログラム名を抽出する。そして、抽出したパケット指定コード731、プログラム及びプログラム名をパケットのペイロード112に格納する。
ここで、図8に戻る。
一方、ノード管理用プロセッサ102は、ステップ511でプログラムが既にインストールされていると判定すると、プログラムをNIF105に送信する必要がない。よって、ノード管理用プロセッサ102は、送信先と決定したNIF105にフォワーディングテーブル更新要求パケットを送信する(513)。
図10−3は、本発明の実施の形態のフォワーディングテーブル更新要求パケットの構成図である。
フォワーディングテーブル更新要求パケットは、内部ヘッダ111及びペイロード112から構成される。
内部ヘッダ111は、宛先アドレス601及び送信元アドレス602を含む。
宛先アドレス601は、当該パケットを受信する装置内の部位の内部アドレスである。送信元アドレス602は、当該パケットを送信する装置内の部位の内部アドレスである。
フォワーディングテーブル更新要求パケットでは、宛先アドレス601がパケット送信先のNIF105の内部アドレスである。また、送信元アドレス602がノード管理用プロセッサ102の内部アドレスである。
ペイロード112は、NIF処理コード741、更新コード751、内部アドレス902、パケット指定コード731及びプログラム名904を含む。
なお、ペイロード112は、複数のプログラム名904を含んでいてもよい。この場合、ペイロード112は、それぞれのプログラム名904に対応するパケット指定コード731を含む。
ノード管理用プロセッサ102は、以下のようにフォワーディングテーブル更新要求パケットのペイロード112を作成する。
まず、ノード管理用プロセッサ102は、NIF105に要求する処理の内容がNIF処理コード管理テーブル740のNIF処理内容742に合致するレコードを、NIF処理コード管理テーブル740から選択する。次に、選択したレコードから、NIF処理コード741を抽出する。そして、抽出したNIF処理コード741をパケットのペイロード112に格納する。
フォワーディングテーブル更新要求パケットは、フォワーディングテーブルの更新をNIF105に要求する。よって、ノード管理用プロセッサ102は、NIF処理コード741を「1」として、パケットのペイロード112に格納する。
次に、ノード管理用プロセッサ102は、NIF105に要求するフォワーディングテーブルの更新の内容が更新コード管理テーブル750のNIF更新内容752に合致するレコードを、更新コード管理テーブル750から選択する。次に、選択したレコードから、更新コード751を抽出する。そして、抽出した更新コード751をパケットのペイロードに格納する。
本説明図のフォワーディングテーブル更新要求パケットは、機能拡張モジュール108をパケット通信装置101に追加する処理で送信される。この場合、フォワーディングテーブル401は、経路を追加される。よって、ノード管理用プロセッサ102は、更新コード751を「0」として、パケットのペイロード112に格納する。
次に、ノード管理用プロセッサ102は、ステップ504でノード内メモリ104に記憶した内部アドレスを抽出する。次に、抽出した内部アドレスを、パケット通信装置101に追加された機能拡張モジュールの内部アドレス902として、パケットのペイロード112に格納する。
次に、ノード管理用プロセッサ102は、ステップ507のノード内メモリ104に記憶したパケット指定コード731及びプログラム名を抽出する。そして、抽出したパケット指定コード731及びプログラム名をパケットのペイロード112に格納する。
ここで、図8に戻る。ノード管理用プロセッサ102は、プログラムインストール要求パケット又はフォワーディングテーブル更新要求パケットをNIF105に送信すると、NIF−プログラム管理テーブル800を更新する(514)。
具体的には、ノード管理用プロセッサ102は、パケット(プログラムインストール要求パケット又はフォワーディングテーブル更新要求パケット)に格納したプログラム名904とNIF−プログラム管理テーブル800のプログラム名801とが一致し、更に、パケットの送信先のNIF105のNIF番号とNIF−プログラム管理テーブル800のNIF番号802とが一致するボックスに、丸印を格納する。
次に、ノード管理用プロセッサ102は、パケットに格納したプログラム名904とNIF−プログラム管理テーブル800のプログラム名801とが一致するレコードのリファレンスカウンタ803を選択する。そして、選択したリファレンスカウンタ803を増加させる。
次に、ノード管理用プロセッサ102は、プログラムインストール要求パケットに格納したプログラム903のデータ量を測定する。次に、パケットの送信先のNIF105のNIF番号とNIF−プログラム管理テーブル800のNIF番号802とが一致するレコードのメモリ残存率804を選択する。そして、測定したデータ量に基づいて、選択したメモリ残存率を変更する。
次に、ノード管理用プロセッサ102は、プログラム記憶処理を行う(515)。なお、プログラム記憶処理は、図11−2で詳細を説明する。
一方、NIF105は、ノード管理用プロセッサ102からパケットを受信する。次に、NIF105は、受信したパケットのペイロード112から、NIF処理コードを抽出する(516)。
次に、NIF105は、抽出したNIF処理コードとNIF処理コード管理テーブル740のNIF処理コード741とが一致するレコードを、NIF処理コード管理テーブル740から選択する。次に、NIF105は、選択したレコードから、NIF処理内容742を抽出する。そして、NIF105は、抽出したNIF処理内容742に対応する処理を行う。
具体的には、NIF105は、抽出したNIF処理コード741が「0」であると、受信したパケットをプログラムインストール要求パケットと判定する。よって、NIF105は、受信したパケットのペイロード112から、プログラム903を抽出する。次に、NIF105は、抽出したプログラム903をインストールする。
次に、NIF105は、フォワーディングテーブル401を更新する(517−1)。
具体的には、NIF105は、受信したパケットのペイロード112から、パケット指定コード731を抽出する。次に、NIF105は、抽出したパケット指定コードとパケット指定コード管理テーブル730のパケット指定コード731とが一致するレコードを、パケット指定コード管理テーブル730から選択する。次に、選択したレコードから、パケットの種類732を抽出する。
次に、NIF105は、フォワーディングテーブル401に新たなレコードを追加する。次に、NIF105は、抽出したパケットの種類732を、新たなレコードのペイロードタイプ405及びIPアドレス/プレフィックス長406に格納する。
次に、NIF105は、受信したパケットのペイロードから、機能拡張モジュールの内部アドレス902及びプログラム名904を抽出する。次に、NIF105は、抽出した機能拡張モジュールの内部アドレス902及びプログラム名904を、追加した新たなレコードの処理内容403に格納する。
このように、NIF105は、フォワーディングテーブル401を更新する。そして、パケット通信装置101は、機能拡張モジュール108の追加処理を終了する(518)。
また、NIF105は、抽出したNIF処理コード741が「1」であると、受信したパケットをフォワーディングテーブル更新要求パケットと判定する。よって、NIF105は、フォワーディングテーブル401を更新する(517−2)。
具体的には、NIF105は、受信したパケットから、更新コードを抽出する。次に、NIF105は、抽出した更新コードと更新コード管理テーブル750の更新コード751とが一致するレコードを、更新コード管理テーブル750から選択する。次に、選択したレコードからNIF更新内容752を抽出する。
そして、NIF105は、抽出したNIF更新内容752に基づいて、フォワーディングテーブル401を更新する内容を決定する。
ここでは、NIF105は、抽出した更新コード751が「0」であるので、フォワーディングテーブル401に経路を追加する。よって、NIF105は、受信したパケットのペイロード112から、パケット指定コード731を抽出する。次に、NIF105は、抽出したパケット指定コードとパケット指定コード管理テーブル730のパケット指定コード731とが一致するレコードを、パケット指定コード管理テーブル730から選択する。次に、選択したレコードから、パケットの種類732を抽出する。
次に、NIF105は、フォワーディングテーブル401に新たなレコードを追加する。次に、NIF105は、抽出したパケットの種類732を、新たなレコードのペイロードタイプ405及びIPアドレス/プレフィックス長406に格納する。
次に、NIF105は、受信したパケットのペイロード112から、機能拡張モジュールの内部アドレス902及びプログラム名904を抽出する。次に、NIF105は、抽出した機能拡張モジュールの内部アドレス902及びプログラム名904を、追加した新たなレコードの処理内容403に格納する。
このように、NIF105は、フォワーディングテーブル401を更新する。そして、パケット通信装置101は、機能拡張モジュール108の追加処理を終了する(518)。
また、NIF105は、抽出した処理コード741が「2」であると、受信したパケットをプログラムアンインストール要求パケットと判定する。よって、NIF105は、受信したパケットのペイロード112から、プログラム名904を抽出する。次に、NIF105は、抽出したプログラム名904のプログラムを削除する。
次に、NIF105は、フォワーディングテーブル401を更新する(517−3)。ここでは、NIF105は、フォワーディングテーブル401から経路を削除する。
具体的には、NIF105は、受信したパケットのペイロード112から、パケット指定コード731を抽出する。次に、NIF105は、抽出したパケット指定コードとパケット指定コード管理テーブル730のパケット指定コード731とが一致するレコードを、パケット指定コード管理テーブル730から選択する。次に、選択したレコードから、パケットの種類732を抽出する。
次に、NIF105は、抽出したパケットの種類732がフォワーディングテーブル401のヘッダ情報402に合致するレコードを、フォワーディングテーブル401から選択する。そして、NIF105は、選択したレコードを、フォワーディングテーブル401から削除する。
このように、NIF105は、フォワーディングテーブル401を更新する。そして、パケット通信装置101は、機能拡張モジュール108の追加処理を終了する(518)。
図11−1は、本発明の実施の形態のモジュール−プログラム管理テーブル820の構成図である。
モジュール−プログラム管理テーブル820は、ノード内メモリ104に記憶される。
モジュール−プログラム管理テーブル820は、機能拡張モジュール108とプログラムとの対応を示す。
モジュール種類822は、機能拡張モジュール108が実現するサービスの一意な識別子である。プログラム名821は、プログラムの一意な識別子である。
モジュール種類822の機能拡張モジュール108が、プログラム名821のプログラムを使用していると、モジュール−プログラム管理テーブル820の該当するボックスに丸印が格納される。
更に、モジュール−プログラム管理テーブル820は、リファレンスカウンタ(ref)823、保存内容824及びパケット指定コード825を含む。
リファレンスカウンタ823は、当該プログラムを使用している機能拡張モジュール108の数である。リファレンスカウンタ823は、当該プログラムに該当するレコードに格納されている丸印の数と同数になる。
保存方法824は、当該プログラムを保存している方法を示す。
具体的には、保存方法824が「1」であると、ノード内メモリ104がプログラムを記憶している。また、保存方法824が「2」であると、ノード内メモリ104がプログラムの所在情報を記憶している。また、保存方法824が「3」であると、ノード内メモリ104はプログラム及びプログラムの所在情報のどちらも記憶していないが、機能拡張モジュール108がプログラムを記憶している。また、保存方法824が「4」であると、ノード内メモリ104はプログラム及びプログラムの所在情報のどちらも記憶していないが、機能拡張モジュール108がプログラムの所在情報を記憶している。
パケット指定コード825は、当該機能拡張モジュール822が処理するパケットの種類の一意な識別子である。なお、パケット指定コード825は、パケット指定コード管理テーブル730のパケット指定コード731と同一の識別子を用いる。
ノード内メモリ104がプログラム管理テーブル1212を記憶することによって、ノード管理用プロセッサ102は、プログラムを取得する方法及び場所を迅速に判断できる。
図11−2は、本発明の実施の形態のノード管理用プロセッサ102のプログラム記憶処理のフローチャートである。
ノード管理用プロセッサ102は、機能拡張モジュール追加処理(図8)のステップ514においてNIF−プログラム管理テーブル800を更新すると、プログラム記憶処理(515)を開始する。
まず、機能拡張モジュール追加処理(図8)のステップ506−1〜506−3で取得したプログラムを記憶する容量がノード内メモリ104に残っているか否かを判定する(1202)。
記憶容量が残っていると、当該プログラムをノード内メモリ104に記憶する(1203)。そして、ステップ1210に進む。
一方、記憶容量が残っていないと、当該プログラムのプログラム名とモジュール−プログラム管理テーブル820のプログラム名821とが一致するレコードを選択する。次に、選択したレコードから、リファレンスカウンタ823を抽出する。次に、モジュール−プログラム管理テーブル820の保存方法824が「1」であるレコードをすべて選択する。
次に、抽出したリファレンスカウンタと、保存方法824が「1」であるすべてのレコードのリファレンスカウンタ823と、を比較する。そして、比較したすべてのリファレンスカウンタ823の中で、抽出したリファレンスカウンタが最小であるか否かを判定する(1204)。
抽出したリファレンスカウンタが最小であると、当該プログラムを保存しないと判定する。よって、当該プログラムの所在情報を機能拡張モジュール108から取得できるか否かを判定する(1205)。
プログラムの所在情報を取得できないと、そのままステップ1210に進む。
一方、プログラムの所在情報を取得できると、取得したプログラムの所在情報をノード内メモリ104に記憶する(1206)。そして、ステップ1210に進む。
一方、抽出したリファレンスカウンタが最小でないとステップ1204で判定すると、抽出したリファレンスカウンタより小さい値のリファレンスカウンタ823に対応するプログラム名821をモジュール−プログラム管理テーブル820からすべて抽出する。
次に、抽出したプログラム名のプログラムをすべて削除した場合に、当該プログラムを記憶する容量をノード内メモリ104に確保できるか否かを判定する(1207)。
当該プログラムの記憶容量を確保できないと判定すると、ステップ1205に進む。
一方、当該プログラムの記憶容量を確保できると判定すると、モジュール−プログラム管理テーブル820のリファレンスカウンタ823が小さいプログラムから順に、ノード内メモリ104から削除する(1208)。そして、ノード内メモリ104に当該プログラムの記憶容量を確保するまで、プログラムの削除を繰り返す。
なお、リファレンスカウンタ823が小さいプログラムから順に削除するのでなく、記憶した日時の古いプログラムから順に削除してもよい。
ノード内メモリ104が当該プログラムの記憶容量を確保すると、当該プログラムをノード内メモリ104に記憶する(1209)。
次に、ノード管理用プロセッサ102は、モジュール−プログラム管理テーブル820を更新する(1210)。
具体的には、モジュール−プログラム管理テーブル820に新たなレコードを追加する。次に、ステップ501(図8)で追加された機能拡張モジュール108の種類を、新たなレコードのモジュール種類822に格納する。
次に、ノード内メモリ104に記憶したプログラムのプログラム名とモジュール−プログラム管理テーブル820のプログラム名821とが一致するボックスを、新たなレコードから選択する。そして、選択したボックスに丸印を格納する。
次に、ノード内メモリ104に記憶したプログラムのプログラム名とモジュール−プログラム管理テーブル820のプログラム名821とが一致するレコードを、モジュール−プログラム管理テーブル820から選択する。次に、選択したレコードのリファレンスカウンタ823を増加させる。
次に、プログラムの保存方法に変更があった場合には、選択したレコードの保存方法824を該当する値に変更する。
このようにモジュール−プログラム管理テーブル820を更新すると、プログラム記憶処理を終了する(1211)。
ここで、ステップ506−1〜506−3(図8)で取得したプログラムが複数ある場合には、当該プログラム記憶処理をプログラム数と同じ回数繰り返す。
以上のように、ノード内メモリ104は、NIF105がインストールするプログラムを記憶する。これによって、ノード管理用プロセッサ102は、NIF105にプログラムを送信する際に、機能拡張モジュール108又は外部の装置から、プログラムを取得する必要がなくなる。つまり、ノード管理用プロセッサ102は、NIF105に送信するプログラムをノード内メモリ104から取得するので、処理を高速化できる。
また、ノード内メモリ104は、リファレンスカウンタ801の大きいプログラムを記憶している。つまり、ノード管理用プロセッサ102は、NIF105へ送信する可能性が高いプログラムをノード内メモリ104から取得できる。よって、ノード管理用プロセッサ102は、機能拡張モジュール108からプログラムを取得する回数を減らすことができる。
また、ノード内メモリ104は、プログラムを記憶できない場合、プログラムの所在情報を記憶する。これによって、ノード管理用プロセッサ102は、プログラムの所在情報を機能拡張モジュール108に問い合わせる処理を省略できる。
図12は、本発明の実施の形態のパケット通信装置101の機能拡張モジュール追加処理のシーケンス図である。
このシーケンス図は、機能拡張モジュール108を追加されたパケット通信装置101の代表的な処理を示す。
まず、機能拡張モジュール108がモジュールI/F106に追加される。すると、機能拡張モジュール108は、プログラムをペイロード112に格納したインストール要求内部パケットを作成する。そして、機能拡張モジュール108は、作成したインストール要求内部パケットをノード管理用プロセッサ102に送信する(1001)。
すると、ノード管理用プロセッサ102は、機能拡張モジュール108からインストール要求内部パケットを受信する。次に、ノード管理用プロセッサ102は、プログラムをインストールするNIF105の指定要求をオペレータ制御端末103に送信する(1002)。
すると、オペレータ制御端末103は、受信した指定要求の内容を表示する。オペレータ制御端末103は、NIF105の指定をオペレータから入力される。ここでは、オペレータは、NIF(1)105、NIF(2)及びNIF(3)を指定したとする。すると、オペレータ制御端末103は、入力された内容を含むNIF指定応答をノード管理用プロセッサ102に送信する(1003)。
ノード管理用プロセッサ102は、オペレータ管理端末103からNIF指定応答を受信する。すると、ノード管理用プロセッサ102は、受信したNIF指定応答で指定されたNIF105の内部アドレスを宛先アドレスに格納し、更に、プログラムをペイロード112に格納したプログラムインストール要求パケットを作成する。
そして、ノード管理用プロセッサ102は、作成したプログラムインストール要求パケットを、NIF指定応答で指定されたすべてのNIF105に送信する(1004)。つまり、ノード管理用プロセッサ102は、NIF(1)105、NIF(2)及びNIF(3)にプログラムインストール要求パケットを送信する。
プログラムインストール要求パケットを受信したNIF105は、受信したパケットに格納されているプログラムをインストールする。
そして、パケット通信装置101は、機能拡張モジュール108の追加処理を終了する。
次に、本実施の形態のパケット通信装置101の効果を説明する。
ここでは、追加される機能拡張モジュール108が、サービス拒否(DoS)攻撃対処モジュールである場合を説明する。
DoS攻撃対処モジュールは、まず、パケットのヘッダからフロー統計情報を収集する。フロー統計情報は、アドレス及びポート番号等である。次に、DoS攻撃対処モジュールは、収集したフロー統計情報を分析することによって、DoS攻撃に関係するパケットの特徴を特定する。そして、DoS攻撃対処モジュールは、特定した特徴を有するパケットを受信すると、転送せずに廃棄する。
ここで、本発明の効果を明確にするため、DoS攻撃対処モジュールを追加された従来の固定転送装置の処理を説明する。
従来の固定転送装置の構成は、本実施の形態のパケット通信装置101(図1−1)と同一であってもよいし、同一でなくてもよい。ここでは、本実施の形態との対比を容易にするため、同一の構成の場合で説明する。
図13−1は、従来の固定転送装置のパケット転送処理のフローチャートである。
まず、NIF105は、外部ネットワーク110からパケットを受信する(1101)。
次に、NIF105は、受信したパケットをNIF内メモリ302に記憶する(1102)。
次に、NIF105は、NIF内メモリ302に記憶したパケットからヘッダを抽出する。次に、NIF105は、抽出したヘッダとフォワーディングテーブル401とを比較することによって、パケットの転送先を決定する。ここでは、NIF105は、DoS攻撃対処モジュールを転送先に決定する。
次に、NIF105は、NIF内メモリ302に記憶したパケットに、DoS攻撃対処モジュールの内部アドレスを宛先アドレスとする内部ヘッダを付加する。次に、NIF105は、内部ヘッダを付加したパケットを、内部スイッチを109を介してDoS攻撃対処モジュールに送信する(1103)。
DoS攻撃対処モジュールは、パケットを受信すると、受信したパケットを処理する(1104)。具体的には、DoS攻撃対処モジュールは、受信したパケットから内部ヘッダを削除する。次に、DoS攻撃対処モジュールは、内部ヘッダを削除したパケットのヘッダからフロー統計情報を収集する。次に、DoS攻撃対処モジュールは、収集したフロー統計情報を分析することによって、DoS攻撃に関係するパケットの特徴を特定する。
次に、DoS攻撃対処モジュールは、当該パケットを装置内の他の部位に転送するか否かを判定する(1105)。具体的には、DoS攻撃対処モジュールは、当該パケットがDoS攻撃に関係するパケットの特徴を有すると、当該パケットを装置内の他の部位に転送しないと判定する。
DoS攻撃対処モジュールは、パケットを転送しないと判定すると、当該パケットを破棄する。そして、固定転送装置は、パケット転送処理を終了する。
一方、DoS攻撃対処モジュールは、パケットを転送すると判定すると、当該パケットのヘッダとフォワーディングテーブルとを比較することによって、パケットの転送先を決定する。ここでは、DoS攻撃対処モジュールは、NIF105を転送先に決定する。
次に、DoS攻撃対処モジュールは、当該パケットに、転送先に決定したNIF105の内部アドレスを宛先アドレスとする内部ヘッダを付加する。次に、DoS攻撃対処モジュールは、内部ヘッダを付加したパケットを、内部スイッチを109を介して転送先のNIF105に送信する(1106)。
すると、NIF105は、DoS攻撃対処モジュールから受信したパケットをNIF内メモリ302に記憶する(1107)。
NIF105は、NIF内メモリ302に記憶したパケットから内部ヘッダを削除する。次に、NIF105は、内部ヘッダを削除したパケットのヘッダとフォワーディングテーブル401とを比較することによって、パケットの転送先を決定する。ここでは、NIF105は、外部ネットワーク110を転送先に決定する。
次に、NIF105は、NIF内メモリ302に記憶したパケットのヘッダを、外部ネットワーク110を宛先とするヘッダに付け替える。
次に、NIF105は、当該パケットを外部ネットワーク110へ送信する(1108)。そして、従来の固定転送装置は、パケット転送処理を終了する(1109)。
従来の固定転送装置は、以上のようにパケットを転送する。
従来の固定転送装置では、NIF105は、受信したすべてのパケットをDoS攻撃対処モジュールに転送する必要があった。これは、固定転送装置に接続された機能拡張モジュールが、DoS攻撃対処モジュールの場合だけでなく、パケットの解析又はフィルタリングを行うモジュールであれば同様である。
DoS攻撃対処モジュールは、転送されたすべてのパケットに対して、高度な解析処理を行う。よって、DoS攻撃対処モジュールの処理が、装置全体のスループットを低下させていた。
また、DoS攻撃対処モジュールは、解析処理を行ったパケットをNIF105に転送する。そのため、DoS攻撃対処モジュールは、フォワーディングテーブル401を備える必要があった。更に、DoS攻撃対処モジュールは、パケットの転送経路を管理する必要があった。
本実施の形態のパケット通信装置101は、これらの問題を解決したパケット転送処理を行うことができる。
図13−2は、本発明の実施の形態のパケット通信装置101のパケット転送処理のフローチャートである。
本実施の形態のパケット通信装置101では、NIF105にプログラムをインストールできる。ここでは、NIF105は、DoS攻撃対処モジュールに対応するプログラムをインストールされている。当該プログラムは、外部ネットワーク110から受信したパケットのヘッダをコピーして、コピーしたヘッダのみをDoS攻撃対処モジュールへ転送する。
以下、当該プログラムをインストールされたNIF105がパケットを受信した場合のパケット通信装置101のパケット転送処理を説明する。
まず、NIF105は、外部ネットワーク110からパケットを受信する(1111)。
次に、NIF105は、受信したパケットをNIF内メモリ302に記憶する(1112)。
次に、NIF105は、NIF内メモリ302に記憶したパケットからヘッダを抽出する。次に、NIF105は、抽出したヘッダとフォワーディングテーブル401とを比較することによって、転送先及び処理内容を決定する(1113)。ここでは、NIF105は、当該パケットを転送する外部ネットワーク110に接続されたNIF105を転送先に決定する。また、NIF105は、DoS攻撃対処モジュールに対応するプログラムの実行を、処理内容に決定する。
次に、NIF105は、当該プログラムを実行することによって、パケットを処理する。具体的には、NIF105は、NIF内メモリ302に記憶したパケットのヘッダをコピーする。そして、NIF105は、コピーしたヘッダのみをDoS攻撃対処モジュールへ転送する(1114)。
次に、NIF105は、NIF内メモリ301に記憶したパケットに、ステップ1113で決定した転送先のNIF105の内部アドレスを宛先アドレスとする内部ヘッダを付加する。次に、NIF105は、内部ヘッダを付加したパケットを、内部スイッチ109を介して転送先のNIF105に送信する(1116)。
すると、転送先のNIF105は、受信したパケットをNIF内メモリ302に記憶する(1117)。
転送先のNIF105は、NIF内メモリ302に記憶したパケットから内部ヘッダを削除する。次に、転送先のNIF105は、内部ヘッダを削除したパケットのヘッダとフォワーディングテーブル401とを比較することによって、パケットの転送先を決定する。ここでは、転送先のNIF105は、外部ネットワーク110を転送先に決定する。
次に、転送先のNIF105は、NIF内メモリ302に記憶したパケットのヘッダを、外部ネットワーク110を宛先とするヘッダに付け替える。
次に、転送先のNIF105は、当該パケットを外部ネットワーク110へ送信する(1118)。そして、パケット通信装置101は、パケット転送処理を終了する(1119)。
一方、ステップ1114においてNIF105からヘッダを受信したDoS攻撃対処モジュールは、受信したヘッダを処理する(1115)。具体的には、DoS攻撃対処モジュールは、受信したヘッダからフロー統計情報を収集する。次に、DoS攻撃対処モジュールは、収集したフロー統計情報を分析することによって、DoS攻撃に関係するヘッダの特徴を特定する。
そして、DoS攻撃対処モジュールは、DoS攻撃に関係するヘッダの特徴を特定すると、フォワーディングテーブル401の変更をNIF105に要求する。この要求には、DoS攻撃に関係するヘッダの特徴が含まれる。
NIF105は、要求を受けると、フォワーディングテーブル401を変更する。このフォワーディングテーブル401では、DoS攻撃に関係するヘッダの特徴を有するパケットに対応する処理内容403が破棄となる。
本実施の形態のパケット通信装置101は、以上のようにパケットを転送する。
本実施の形態のパケット通信装置101では、NIF105がパケットのDoS攻撃に関連する重要な部分(例えば、SYNパケットのヘッダ)をコピーし、コピーした部分のみをDoS攻撃対処モジュールに転送する。
つまり、NIF105は、パケット自体をDos攻撃対処モジュールに転送する必要がない。そのため、本実施の形態のパケット通信装置101は、DoS攻撃対処モジュールの処理の影響を受けることなくパケットを転送するので、装置全体のスループットを維持できる。
また、本実施の形態のパケット通信装置101に接続されるDoS攻撃対処モジュールは、パケットを転送しないので、フォワーディングテーブル401を備える必要がない。
また、本実施の形態のパケット通信装置101に接続されるDoS攻撃対処モジュールは、処理に必要な情報のみを受信するため、負荷が軽減される。
また、本実施の形態のパケット通信装置101のNIF105は、インストールされているプログラムを変更できる。例えば、パケットのDoS攻撃に関連する重要な部分が変化した場合、NIF105は、インストールされているプログラムを変更する。よって、パケット通信装置101は、パケットのDoS攻撃に関連する重要な部分の変化に対し、迅速に対応できる。
図14−1は、本発明の実施の形態のパケット通信装置101の機能拡張モジュール削除処理のフローチャートである。
機能拡張モジュール108が、モジュールI/F106から取り外される(1901)。これによって、パケット通信装置101は、機能拡張モジュール108の削除処理を開始する。
具体的には、機能拡張モジュール108は、自身のモジュール内部I/F310がパケット通信装置101のモジュールI/F106から取り外されたことを検知する。機能拡張モジュール108は、取り外しを検知すると、ノード管理用プロセッサ102に機能拡張モジュール削除要求を送信する。
ノード管理用プロセッサ102は、当該要求を受けると、モジュール−プログラム管理テーブル820を更新する(1902)。
具体的には、ノード管理用プロセッサ102は、取り外された機能拡張モジュール108が実現するサービスとモジュール−プログラム管理テーブル820のモジュール種類822とが一致するレコードを、モジュール−プログラム管理テーブル820から削除する。
また、ノード管理用プロセッサ102は、取り外された機能拡張モジュール108が対応するプログラム名とモジュール−プログラム管理テーブル820のプログラム名821とが一致するレコードを選択する。次に、選択したレコードのリファレンスカウンタ823を減少させる。
次に、ノード管理用プロセッサ102は、更新したモジュール−プログラム管理テーブル820のリファレンスカウンタ823に一つでも「0」が存在するか否かを判定する(1903)。
リファレンスカウンタ823に一つも「0」が存在しないと、ノード管理用プロセッサ102は、NIF105からプログラムを削除する必要がないと判定する。よって、ノード管理用プロセッサ102は、フォワーディングテーブル更新要求パケットをNIF105に送信する(1904)。
図14−2は、本発明の実施の形態のフォワーディングテーブル更新要求パケットの構成図である。
フォワーディングテーブル更新要求パケットは、内部ヘッダ111及びペイロード112から構成される。
内部ヘッダ111は、宛先アドレス601及び送信元アドレス602を含む。
宛先アドレス601は、当該パケットを受信する装置内の部位の内部アドレスである。送信元アドレス602は、当該パケットを送信する装置内の部位の内部アドレスである。
フォワーディングテーブル更新要求パケットでは、宛先アドレス601がNIF105の内部アドレスである。また、送信元アドレス602がノード管理用プロセッサ102の内部アドレスである。
ペイロード112は、NIF処理コード741、更新コード751及び内部アドレス902を含む。
ノード管理用プロセッサ102は、以下のようにフォワーディングテーブル更新要求パケットのペイロード112を作成する。
まず、ノード管理用プロセッサ102は、NIF105に要求する処理の内容がNIF処理コード管理テーブル740のNIF処理内容742に合致するレコードを、NIF処理コード管理テーブル740から選択する。次に、選択したレコードから、NIF処理コード741を抽出する。そして、抽出したNIF処理コード741をパケットのペイロード112に格納する。
フォワーディングテーブル更新要求パケットは、フォワーディングテーブル401の更新をNIF105に要求する。よって、ノード管理用プロセッサ102は、NIF処理コード714を「1」として、パケットのペイロード112に格納する。
次に、ノード管理用プロセッサ102は、NIF105に要求するフォワーディングテーブル401の更新の内容が更新コード管理テーブル750のNIF更新内容752に合致するレコードを、更新コード管理テーブル750から選択する。次に、選択したレコードから、更新コード751を抽出する。そして、抽出した更新コード751をパケットのペイロードに格納する。
本説明図のフォワーディングテーブル更新要求パケットは、機能拡張モジュール108をパケット通信装置101から削除する処理で送信される。この処理において、NIF105は、フォワーディングテーブル401から経路を削除する。よって、ノード管理用プロセッサ102は、更新コード751を「1」として、パケットのペイロード112に格納する。
次に、ノード管理用プロセッサ102は、ステップ1901で取り外された機能拡張モジュール108の内部アドレスを、経路を削除する機能拡張モジュールの内部アドレス902として、パケットのペイロード112に格納する。
ここで、図14−1に戻る。
NIF105は、フォワーディングテーブル更新要求パケットを受信する。
次に、NIF105は、受信したフォワーディングテーブル更新要求パケットのペイロード112から、NIF処理コードを抽出する。
次に、NIF105は、抽出したNIF処理コードとNIF処理コード管理テーブル740のNIF処理コード741とが一致するレコードを、NIF処理コード管理テーブル740から選択する。次に、NIF105は、選択したレコードから、NIF処理内容742を抽出する。そして、NIF105は、抽出したNIF処理内容742に対応する処理を行う。
つまり、NIF105は、抽出したNIF処理コード741が「1」であるので、受信したパケットをフォワーディングテーブル更新要求パケットと判定する。よって、NIF105は、フォワーディングテーブル401を更新する(1905)。
具体的には、NIF105は、受信したパケットから、更新コードを抽出する。次に、NIF105は、抽出した更新コードと更新コード管理テーブル750の更新コード751とが一致するレコードを、更新コード管理テーブル750から選択する。次に、選択したレコードからNIF更新内容752を抽出する。
そして、NIF105は、抽出したNIF更新内容752に基づいて、フォワーディングテーブル401を更新する内容を決定する。
ここでは、NIF105は、抽出した更新コード751が「1」であるので、フォワーディングテーブル401から経路を削除する。
よって、NIF105は、受信したパケットのペイロード112から、機能拡張モジュールの内部アドレス902を抽出する。次に、NIF105は、抽出した機能拡張モジュールの内部アドレス902がフォワーディングテーブル401の処理内容403に含まれるすべてのレコードを、フォワーディングテーブル401から削除する。
このように、NIF105は、取り外された機能拡張モジュール108への経路をフォワーディングテーブル401から削除する。
そして、パケット通信装置101は、機能拡張モジュール削除処理を終了する(1908)。
一方、ステップ1903においてリファレンスカウンタ823に「0」が存在すると、NIF105は、すべての機能拡張モジュール108がまったく使用しないプログラムを記憶していることになる。よって、ノード管理用プロセッサ102は、リファレンスカウンタ823が「0」となったプログラムの削除をNIF105に要求する。つまり、ノード管理用プロセッサ102は、プログラム削除要求パケットをNIF105に送信する(1906)。
なお、プログラム削除要求パケットには、NIF処理コード741として「2」が格納されている。また、NIF105に削除を要求するプログラム名が格納されている。更に、取り外された機能拡張モジュールの内部アドレスが格納されている。
また、NIF105に削除を要求するプログラムがノード内メモリ104に記憶されている場合、ノード管理用プロセッサ102は、当該プログラムをノード内メモリ104から削除してもよい。
NIF105は、プログラム削除要求パケットを受信する。次に、NIF105は、受信したパケットからNIF処理コードを抽出する。
次に、NIF105は、抽出したNIF処理コードとNIF処理コード管理テーブル740のNIF処理コード741とが一致するレコードを、NIF処理コード管理テーブル740から選択する。次に、NIF105は、選択したレコードから、NIF処理内容742を抽出する。そして、NIF105は、抽出したNIF処理内容742に対応する処理を行う。
つまり、NIF105は、抽出したNIF処理コード741が「2」であるので、受信したパケットをプログラム削除要求パケットと判定する。よって、NIF105は、プロプログラムを削除し、更に、フォワーディングテーブル401を更新する(1907)。
具体的には、NIF105は、受信したプログラム削除要求パケットからプログラム名を抽出する。そして、NIF105は、抽出したプログラム名のプログラムをプログラム用メモリ304から削除する。
次に、NIF015は、受信したプログラム削除要求パケットから、機能拡張モジュールの内部アドレスを抽出する。そして、NIF105は、抽出した機能拡張モジュールの内部アドレス902がフォワーディングテーブル401の処理内容403に含まれるすべてのレコードを、フォワーディングテーブル401から削除する。
これによって、NIF105は、取り外された機能拡張モジュール108への経路をフォワーディングテーブル401から削除する。
そして、パケット通信装置101は、機能拡張モジュール削除処理を終了する(1908)。
なお、ステップ1903において、ノード管理用プロセッサ102は、モジュール−プログラム管理テーブル820のリファレンスカウンタ823に基づいて、プログラムの削除をNIF105に要求するか否かを判定した。しかし、ノード管理用プロセッサ102は、リファレンスカウンタだけでなく、NIF105のプログラム用メモリ304のメモリ容量等を含むNIF105の負荷状態に基づいて判定してもよい。
図15は、本発明の実施の形態のパケット通信装置101のNIF追加処理のフローチャートである。
新たなNIF105が、内部スイッチ109に接続される(1301)。これによって、パケット通信装置101は、NIF追加処理を開始する。
具体的には、NIF105は、自身の内部I/F305と内部スイッチ109とが接続されたことを検知する。NIF105は、接続を検知すると、ノード管理用プロセッサ102にプログラム送信要求パケットを送信する(1302)。
プログラム送信要求パケットは、プログラムの送信をノード管理用プロセッサ102に要求する。
図16−1は、本発明の実施の形態のプログラム送信要求パケットの構成図である。
プログラム送信要求パケットは、内部ヘッダ111及びペイロード112から構成される。
内部ヘッダ111は、宛先アドレス601及び送信元アドレス602を含む。
宛先アドレス601は、当該パケットを受信する装置内の部位の内部アドレスである。送信元アドレス602は、当該パケットを送信する装置内の部位の内部アドレスである。
プログラム送信要求パケットでは、宛先アドレス601がノード管理用プロセッサ102の内部アドレスである。また、送信元アドレス602が追加された新たなNIF105の内部アドレスである。
ペイロード112は、ノード管理用プロセッサ処理コード701及びプログラム指定コード761を含む。
NIF105は、以下のようにプログラム送信要求パケットのペイロード112を作成する。
まず、NIF105は、ノード管理用プロセッサ102に要求する処理の内容がノード管理用プロセッサ処理コード管理テーブル700の処理内容702に合致するレコードを、ノード管理用プロセッサ処理コード管理テーブル700から選択する。次に、選択したレコードから、ノード管理用プロセッサ処理コード701を抽出する。そして、抽出したノード管理用プロセッサ処理コード701をパケットのペイロード112に格納する。
プログラム送信要求パケットは、ノード管理用プロセッサ102にプログラムの送信を要求する。よって、機能拡張モジュール108は、ノード管理用プロセッサ処理コード701を「1」として、パケットのペイロード112に格納する。
次に、NIF105は、インストールを要求するプログラムがプログラム指定コード管理テーブル760の送信プログラム762に合致するレコードを、プログラム指定コード管理テーブル760から選択する。次に、選択したレコードから、プログラム指定コード761を抽出する。そして、抽出したプログラム指定コード761をパケットのペイロード112に格納する。
本説明図のプログラム送信要求パケットは、NIF105がインストールするプログラムをオペレータに指定させる場合とする。よって、NIF105は、プログラム指定コード761を「1」として、パケットのペイロード112に格納する。
なお、NIF105は、プログラム指定コード762を「2」としてパケットのペイロード112に格納する場合には、要求するプログラムのプログラム名をパケットのペイロードに併せて格納する。
ここで、図15に戻る。
ノード管理用プロセッサ102は、プログラム送信要求パケットを受信する。すると、ノード管理用プロセッサ102は、受信したプログラム送信要求パケットのペイロード112から、ノード管理用プロセッサ処理コードを抽出する。
次に、ノード管理用プロセッサ102は、抽出したノード管理用プロセッサ処理コードとノード管理用プロセッサ処理コード管理テーブル700(図5−1)のノード管理用プロセッサ処理コード701とが一致するレコードを、ノード管理用プロセッサ処理コード管理テーブル700から選択する。次に、選択したレコードから、処理内容702を抽出する。
そして、ノード管理用プロセッサ102は、抽出した処理内容702に対応する処理を行う(1303)。ここでは、ノード管理用プロセッサ処理コードが「1」なので、指定されたプログラムをNIF105に送信する。
具体的には、ノード管理用プロセッサ102は、受信したプログラム送信要求パケットから、プログラム指定コードを抽出する。
次に、ノード管理用プロセッサ102は、抽出したプログラム指定コードとプログラム指定コード管理テーブル760のプログラム指定コード761とが一致するレコードを、プログラム指定コード管理テーブル760から選択する。次に、選択したレコードから、送信プログラム762を抽出する。
次に、ノード管理用プロセッサ102は、抽出した送信プログラム762に基づいて、NIF105に送信するプログラムを判定する。
具体的には、ノード管理用プロセッサ102は、抽出したプログラム指定コードが「0」であると、機能拡張モジュール108に関するすべてのプログラムを送信すると判定し、ステップ1307に進む。
また、ノード管理用プロセッサ102は、抽出したプログラム指定コードが「2」であると、受信したプログラム送信要求パケットから、プログラム名を抽出する。そして、ノード管理用プロセッサ102は、抽出したプログラム名のプログラムを送信すると判定し、ステップ1307に進む。
また、ノード管理用プロセッサ102は、抽出したプログラム指定コードが「1」であると、NIF105に送信するプログラムをオペレータに指定させると判定する。そこで、ノード管理用プロセッサ102は、プログラム指定要求をオペレータ制御端末103に送信する。プログラム指定要求は、追加された新たなNIFのNIF番号を含む。
すると、オペレター制御端末103は、受信したプログラム指定要求に対応する情報を表示する。
図17は、本発明の実施の形態のプログラム指定要求を受信したオペレータ制御端末103の表示画面の説明図である。
オペレータ制御端末103は、モジュール−プログラム管理テーブル820等を表示している。
オペレータは、オペレータ制御端末103に表示されたモジュール−プログラム管理テーブル820を参照することによって、機能拡張モジュール108とプログラムとの対応を把握できる。そのため、オペレータは、新たに追加されたNIF105にインストールするプログラムを決定できる。そして、オペレータは、決定したプログラムを、オペレータ制御端末103上で指定する。
しかし、この表示画面では、表示している情報量が多い。そのため、オペレータは、NIF105にインストールするプログラムを直感的に判断するのは困難である。そこで、オペレータ制御端末103は、以下のような表示をしてもよい。
図18−1は、本発明の実施の形態のプログラム指定要求を受信したオペレータ制御端末103の表示画面の説明図である。
オペレータ制御端末103は、機能拡張モジュール108が提供するサービスの種類をすべて表示している。
そして、オペレータは、新たに追加されたNIF105で実現したいサービスを、オペレータ制御端末103上で選択する。
すると、オペレータ制御端末103は、選択されたサービスを提供する機能拡張モジュールが使用するプログラムを、モジュールプログラム管理テーブル820から判定する。そして、判定したプログラムを、ユーザに指定されたプログラムとする。
他にも、オペレータ制御端末103は、以下のような表示をしてもよい。
図18−2は、本発明の実施の形態のプログラム指定要求を受信したオペレータ制御端末103の表示画面の説明図である。
オペレータ制御端末103は、NIF−プログラム管理テーブル800等を表示している。
この場合、オペレータは、パケット通信装置101に既に接続されているNIF105(既存のNIF105)に記憶されているプログラムと同一のプログラムを指定できる。よって、オペレータは、簡便且つ設定ミスの少ないプログラム指定が可能となる。
例えば、オペレータは、既存のNIF105の一つをオペレータ制御端末103上で選択する。
すると、オペレータ制御端末103は、選択されたNIF105に記憶されているプログラムを、NIF−プログラム管理テーブル800から判定する。そして、判定したプログラムを、ユーザに指定されたプログラムとする。
ここで、図15に戻る。
次に、オペレータは、新たに追加されたNIF105にインストールするプログラムをオペレータ制御端末103上で指定する(1306)。すると、オペレータ制御端末103は、指定されたプログラムをノード管理用プロセッサ102に通知する。
次に、ノード管理用プロセッサ102は、モジュール−プログラム管理テーブル820の保存方法824を参照することによって、通知されたプログラム又は通知されたプログラムの所在情報の記憶場所を判定する。
そして、ノード管理用プロセッサ102は、指定されたプログラムがノード内メモリ104に記憶されているか否かを判定する(1307)。
指定されたプログラムがノード内メモリ104に記憶されていると、ノード管理用プロセッサ102は、ノード内メモリ104から当該プログラムを取得する。そして、ステップ1315に進む。
一方、指定されたプログラムがノード内メモリ104に記憶されていないと、ノード管理用プロセッサ102は、ノード内メモリ104から当該プログラムを取得できない。そこで、ノード管理用プロセッサ102は、指定されたプログラムの所在情報がノード内メモリ104に記憶されているか否かを判定する(1308)。
所在情報がノード内メモリ104に記憶されていると、ノード管理用プロセッサ102は、当該所在情報に対応するサーバ又はノード等から、当該プログラムを取得する(1309)。そして、ステップ1315に進む。
一方、所在情報がノード内メモリ104に記憶されていないと、ノード管理用プロセッサ102は、当該プログラムに関する情報がノード内メモリ104から取得できないと判定する。そこで、ノード管理用プロセッサ102は、モジュール−プログラム管理テーブル820を参照することによって、当該プログラムを記憶している機能拡張モジュール108を特定する。次に、ノード管理用プロセッサ102は、特定した機能拡張モジュール108へ、プログラム要求パケットを送信する(1310)。
図16−2は、本発明の実施の形態のプログラム要求パケットの構成図である。
プログラム要求パケットは、内部ヘッダ111及びペイロード112から構成される。
内部ヘッダ111は、宛先アドレス601及び送信元アドレス602を含む。
宛先アドレス601は、当該パケットを受信する装置内の部位の内部アドレスである。送信元アドレス602は、当該パケットを送信する装置内の部位の内部アドレスである。
プログラム要求パケットでは、宛先アドレス601が機能拡張モジュール108の内部アドレスである。また、送信元アドレス602がノード管理用プロセッサ102の内部アドレスである。
ペイロード112は、モジュール処理コード771及びプログラム名904を含む。
ノード管理用プロセッサ102は、以下のようにプログラム要求パケットのペイロード112を作成する。
まず、モジュール−プログラム管理テーブル820の保存方法824を参照することによって、当該プログラム又は当該プログラムの所在情報のどちらを機能拡張モジュール108が記憶しているかを判定する。
具体的には、モジュール−プログラム管理テーブル820の保存方法824が「3」であると、機能拡張モジュール108がプログラムを記憶していると判定する。よって、機能拡張モジュール108にプログラムを要求するので、モジュール処理コード771を「1」として、パケットのペイロード112に格納する。
一方、モジュール−プログラム管理テーブル820の保存方法824が「4」であると、機能拡張モジュール108がプログラムの所在情報を記憶していると判定する。よって、機能拡張モジュール108にプログラムの所在情報を要求するので、モジュール処理コード771を「2」として、パケットのペイロード112に格納する。
更に、機能拡張モジュール108に要求するプログラムのプログラム名906を、パケットのペイロードに格納する。
ここで、図15に戻る。
機能拡張モジュール108は、プログラム要求パケットを受信する。次に、機能拡張モジュール108は、受信したプログラム要求パケットのペイロード112から、モジュール処理コードを抽出する。
次に、機能拡張モジュール108は、抽出したモジュール処理コードとモジュール処理コード管理テーブル770のモジュール処理コード771とが一致するレコードを、モジュール処理コード管理テーブル770から選択する。次に、選択したレコードから、モジュール処理内容772を抽出する。そして、機能拡張モジュール108は、抽出したモジュール処理内容772に対応する処理を行う。
具体的には、機能拡張モジュール108は、抽出したモジュール処理コードが「0」又は「1」のどちらであるかを判定する(1311)。
機能拡張モジュール108は、抽出したモジュール処理コードが「0」であると、プログラムの所在情報を要求されている。そこで、機能拡張モジュール108は、受信したプログラム要求パケットのペイロード112から、プログラム名904を抽出する。
次に、機能拡張モジュール108は、抽出したプログラム名904のプログラムの所在情報を、ノード管理用プロセッサ102に送信する(1314)。
すると、ノード管理用プロセッサ102は、受信したプログラムの所在情報をノード内メモリ104に記憶する。
そして、ステップ1308に戻る。この場合、ノード管理用プロセッサ102は、プログラムの所在情報がノード内メモリに記憶されていると判定する。そこで、ノード管理用プロセッサ102は、当該所在情報に対応するサーバ又はノード等から、プログラムを取得する(1309)。そして、ステップ1315に進む。
一方、機能拡張モジュール108は、抽出したモジュール処理コードが「1」であると、プログラムを要求されている。そこで、機能拡張オジュール108は、受信したプログラム要求パケットのペイロード112から、プログラム名904を抽出する。
次に、機能拡張モジュール108は、抽出したプログラム名904のプログラムを、ノード管理用プロセッサ102に送信する(1312)。
すると、ノード管理用プロセッサ102は、機能拡張モジュール108からプログラムを受信する(1313)。
次に、ノード管理用プロセッサ102は、受信したプログラムを含むプログラムインストール要求パケットを、新たに追加されたNIF105に送信する(1315)。
図19−1は、本発明の実施の形態のプログラムインストール要求パケットの構成図である。
プログラムインストール要求パケットは、内部ヘッダ111及びペイロード112から構成される。
内部ヘッダ111は、宛先アドレス601及び送信元アドレス602を含む。
宛先アドレス601は、当該パケットを受信する装置内の部位の内部アドレスである。送信元アドレス602は、当該パケットを送信する装置内の部位の内部アドレスである。
プログラムインストール要求パケットでは、宛先アドレス601が新たに追加されたNIF105の内部アドレスである。また、送信元アドレス602がノード管理用プロセッサ102の内部アドレスである。
ペイロード112は、NIF処理コード741、機能拡張モジュールの内部アドレス1701、パケット指定コード731、プログラム903及びプログラム名904を含む。なお、機能拡張モジュールの内部アドレス1701、パケット指定コード731、プログラム903及びプログラム名をまとめて、更新情報1702とする。
なお、ペイロード112は、機能拡張モジュールの内部アドレス1701を複数含んでいてもよい。この場合、ペイロード112は、それぞれの機能拡張モジュール108が対応するパケット指定コード731を含む。
ノード管理用プロセッサ102は、以下のようにプログラムインストール要求パケットのペイロード112を作成する。
まず、ノード管理用プロセッサ102は、NIF105に要求する処理の内容がNIF処理コード管理テーブル740のNIF処理内容742に合致するレコードを、NIF処理コード管理テーブル740から選択する。次に、選択したレコードから、NIF処理コード741を抽出する。そして、抽出したNIF処理コード741を、パケットのペイロード112に格納する。
プログラムインストール要求パケットは、ペイロードに格納されているプログラム903のインストールをNIF105に要求する。よって、ノード管理用プロセッサ102は、NIF処理コード714を「0」として、パケットのペイロード112に格納する。
次に、ノード管理用プロセッサ102は、モジュール−プログラム管理テーブル820を参照して、当該プログラムを使用する機能拡張モジュール108を特定する。更に、ノード管理用プロセッサ102は、特定した機能拡張モジュール108が処理するパケットのパケット指定コードを特定する。そして、ノード管理用プロセッサ102は、特定した機能拡張モジュール108の内部アドレス902及びパケット指定コード731をパケットのペイロード112に格納する。
また、ノード管理用プロセッサ102は、ノード内メモリ102又は機能拡張モジュール108等から取得したプログラムをパケットのペイロード112に格納する。
図19−2は、本発明の実施の形態のプログラムインストール要求パケットの構成図である。
本説明図のプログラムインストール要求パケットは、複数の更新情報1702を含む。対して、図19−1のプログラムインストール要求パケットは、更新情報1702を一つだけ含む。
つまり、プログラムインストール要求パケットは、更新情報1702をいくつ含んでいてもよい。
なお、本説明図のプログラムインストール要求パケットのそれ以外の構成は、図19−1のプログラムインストール要求パケットと同一である。よって、同一の構成には同一の番号を付し、説明を省略する。
ここで、図15に戻る。
ノード管理用プロセッサ102は、プログラムインストール要求パケットを送信すると、NIF−プログラム管理テーブル800を更新する(1316)。
具体的には、ノード管理用プロセッサ102は、プログラムインストール要求パケットに格納したプログラム名904とNIF−プログラム管理テーブル800のプログラム名801とが一致し、更に、パケットの送信先のNIF105のNIF番号とNIF−プログラム管理テーブル800のNIF番号802とが一致するボックスに、丸印を格納する。
次に、ノード管理用プロセッサ102は、プログラムインストール要求パケットに格納したプログラム903のデータ量を測定する。次に、パケットの送信先のNIF105のNIF番号とNIF−プログラム管理テーブル800のNIF番号802とが一致するレコードのメモリ残存率804を選択する。そして、測定したデータ量に基づいて、選択したメモリ残存率を変更する。
次に、ノード管理用プロセッサ102は、プログラム記憶処理(図11−2)を行う(1317)。
一方、NIF105は、ノード管理用プロセッサ102からプログラムインストール要求パケットを受信する。すると、NIF105は、受信したプログラムインストール要求パケットのペイロード112から、NIF処理コードを抽出する。
次に、NIF105は、抽出したNIF処理コードとNIF処理コード管理テーブル740のNIF処理コード741とが一致するレコードを、NIF処理コード管理テーブル740から選択する。次に、NIF105は、選択したレコードから、NIF処理内容742を抽出する。そして、NIF105は、抽出したNIF処理内容742に対応する処理を行う。
具体的には、NIF105は、抽出したNIF処理コード741が「0」なので、受信したパケットをプログラムインストール要求パケットと判定する。よって、NIF105は、受信したプログラムインストール要求パケットのペイロード112から、プログラム903を抽出する。次に、NIF105は、抽出したプログラム903をインストールする。
更に、NIF105は、フォワーディングテーブル401を更新する(1318)。
具体的には、NIF105は、受信したパケットのペイロード112から、パケット指定コード731を抽出する。次に、NIF105は、抽出したパケット指定コードとパケット指定コード管理テーブル730のパケット指定コード731とが一致するレコードを、パケット指定コード管理テーブル730から選択する。次に、選択したレコードから、パケットの種類732を抽出する。
次に、NIF105は、フォワーディングテーブル401に新たなレコードを追加する。次に、NIF105は、抽出したパケットの種類732を、新たなレコードのペイロードタイプ405及びIPアドレス/プレフィックス長406に格納する。
次に、NIF105は、受信したパケットのペイロード112から、機能拡張モジュールの内部アドレス902及びプログラム名904を抽出する。次に、NIF105は、抽出した機能拡張モジュールの内部アドレス902及びプログラム名904を、追加した新たなレコードの処理内容403に格納する。
このように、NIF105は、フォワーディングテーブル401を更新する。そして、パケット通信装置101は、機能拡張モジュール108の追加処理を終了する(1319)。
図20は、本発明の実施の形態のパケット通信装置のNIF追加処理のシーケンス図である。
このシーケンス図は、NIF105を追加されたパケット通信装置101の代表的な処理を示す。
まず、NIF105がパケット通信装置101に追加される。すると、追加されたNIF105は、プログラムをノード管理用プロセッサ102に要求する(1801)。
すると、ノード管理用プロセッサ102は、NIF105にインストールするプログラムの指定をオペレータ制御端末103に要求する(1802)。
オペレータ制御端末103は、受信したプログラム指定要求の内容を表示する。オペレータは、NIF105にインストールするプログラムの指定をオペレータ制御端末103に入力する。すると、オペレータ制御端末103は、入力された内容を含むプログラム指定応答をノード管理用プロセッサ102に送信する(1803)。
ノード管理用プロセッサ102は、オペレータ制御端末103からプログラム指定応答を受信する。次に、ノード管理用プロセッサ102は、受信したプログラム指定応答から、オペレータによって指定されたプログラムを特定する。次に、ノード管理用プロセッサ102は、特定したプログラムを記憶している機能拡張モジュール108を判定する。そして、ノード管理用プロセッサ102は、判定した機能拡張モジュール108に、特定したプログラムを要求する(1804)。
プログラムを要求された機能拡張モジュール108は、要求されたプログラムをノード管理用プロセッサ102に送信する(1805)。
すると、ノード管理用プロセッサ102は、機能拡張モジュール108からプログラムを受信する。
次に、ノード管理用プロセッサ102は、受信したプログラムをNIF105に送信する。更に、ノード管理用プロセッサ102は、送信したプログラムのインストールをNIF105に要求する(1806)。
すると、NIF105は、受信したプログラムをインストールする。
そして、パケット通信装置101は、NIF追加処理を終了する。
次に、本実施の形態のパケット通信装置101の効果を説明する。
ここでは、通知用プログラムをインストールされているNIF105を備えるパケット通信装置101で説明する。
なお、通知用プログラムは、所定の条件に合致するイベントが発生すると、NIF105に転送用プログラムをインストール又はアンインストールする。
なお、所定の条件に合致するイベントには、インストール用イベント又はアンインストール用イベントがある。例えば、インストール用イベントは、特定の特徴を有するパケットをNIF105が受信した場合等である。また、アンインストール用イベントは、所定の時間が経過した場合又は所定の時刻となった場合等である。
また、転送用プログラムは、NIF105が受信したパケットを機能拡張モジュール108へ転送する。なお、転送用プログラムは、機能拡張モジュール108への転送前に、カプセル化、暗号化、復号化及び/又はコピー等の処理を行ってもよい。
図21−1は、本発明の実施の形態のパケット通信装置101のイベント処理のフローチャートである。
まず、NIF105が所定の条件に合致するイベントを検出すると、パケット通信装置101は、イベント処理を開始する(2001)。ここで、NIF105は、オペレータ制御端末103にイベントの発生を通知してもよい。
NIF105は、発生したイベントが、インストール用イベント又はアンインストール用イベントのどちらであるかを判定する(2002)。
インストール用イベントであると、NIF105は、プログラム送信要求パケットをノード管理用プロセッサ102に送信する(2003)。
プログラム送信要求パケットは、転送用プログラムの送信をノード管理用プロセッサ102に要求する。
図21−2は、本発明の実施の形態のプログラム送信要求パケットの構成図である。
プログラム送信要求パケットは、内部ヘッダ111及びペイロード112から構成される。
内部ヘッダ111は、宛先アドレス601及び送信元アドレス602を含む。
宛先アドレス601は、当該パケットを受信する装置内の部位の内部アドレスである。送信元アドレス602は、当該パケットを送信する装置内の部位の内部アドレスである。
プログラム送信要求パケットでは、宛先アドレス601がノード管理用プロセッサ102の内部アドレスである。また、送信元アドレス602がNIF105の内部アドレスである。
ペイロード112は、ノード管理用プロセッサ処理コード701、プログラム指定コード761及びプログラム名904を含む。
NIF105は、以下のようにプログラム送信要求パケットのペイロード112を作成する。
まず、NIF105は、ノード管理用プロセッサ102に要求する処理の内容がノード管理用プロセッサ処理コード管理テーブル700の処理内容702に合致するレコードを、ノード管理用プロセッサ処理コード管理テーブル700から選択する。次に、選択したレコードから、ノード管理用プロセッサ処理コード701を抽出する。そして、抽出したノード管理用プロセッサ処理コード701をパケットのペイロード112に格納する。
プログラム送信要求パケットは、ノード管理用プロセッサ102に転送用プログラムの送信を要求する。よって、機能拡張モジュール108は、ノード管理用プロセッサ処理コード701を「1」として、パケットのペイロード112に格納する。
次に、NIF105は、インストールを要求するプログラムがプログラム指定コード管理テーブル760の送信プログラム762に合致するレコードを、プログラム指定コード管理テーブル760から選択する。次に、選択したレコードから、プログラム指定コード761を抽出する。そして、抽出したプログラム指定コード761をパケットのペイロード112に格納する。
本説明図のプログラム送信要求パケットは、転送用プログラムをペイロードで指定する。よって、NIF105は、プログラム指定コード761を「2」として、パケットのペイロード112に格納する。
また、NIF105は、転送用プログラムのプログラム名904を、パケットのペイロード112に格納する。
ここで、図21−1に戻る。
ノード管理用プロセッサ102は、プログラム送信要求パケットをNIF105から受信する。すると、ノード管理用プロセッサ102は、受信したプログラム送信要求パケットのペイロード112から、ノード管理用プロセッサ処理コードを抽出する。
次に、ノード管理用プロセッサ102は、抽出したノード管理用プロセッサ処理コードとノード管理用プロセッサ処理コード管理テーブル700(図5−1)のノード管理用プロセッサ処理コード701とが一致するレコードを、ノード管理用プロセッサ処理コード管理テーブル700から選択する。次に、選択したレコードから、処理内容702を抽出する。
そして、ノード管理用プロセッサ102は、抽出した処理内容702に対応する処理を行う。ここでは、ノード管理用プロセッサ処理コードが「1」なので、プログラムをNIF105に送信する。
具体的には、ノード管理用プロセッサ102は、受信したプログラム送信要求パケットのペイロードから、プログラム指定コードを抽出する。
次に、ノード管理用プロセッサ102は、抽出したプログラム指定コードとプログラム指定コード管理テーブル760のプログラム指定コード761とが一致するレコードを、プログラム指定コード管理テーブル760から選択する。次に、選択したレコードから、送信プログラム762を抽出する。
次に、ノード管理用プロセッサ102は、抽出した送信プログラム762に基づいて、NIF105に送信するプログラムを特定する。
ここでは、ノード管理用プロセッサ102は、抽出したプログラム指定コードが「2」なので、受信したプログラム送信要求パケットからプログラム名904を抽出する。そして、ノード管理用プロセッサ102は、抽出したプログラム名904の転送用プログラムをNIF105へ送信する(2004)。なお、ノード管理用プロセッサ102は、プログラムインストール要求パケット(図19−1)を使って、転送用プログラムを送信する。
次に、ノード管理用プロセッサ102は、プログラムインストール要求パケットを送信すると、NIF−プログラム管理テーブル800を更新する(2005)。なお、このNIF−プログラム管理テーブル800を更新処理は、NIF追加処理(図15)のステップ1316と同一である。よって、詳細の説明は省略する。
一方、NIF105は、ノード管理用プロセッサ102からプログラムインストール要求パケットを受信する。すると、NIF105は、受信したプログラムインストール要求パケットのペイロード112から、NIF処理コードを抽出する。
次に、NIF105は、抽出したNIF処理コードとNIF処理コード管理テーブル740のNIF処理コード741とが一致するレコードを、NIF処理コード管理テーブル740から選択する。次に、NIF105は、選択したレコードから、NIF処理内容742を抽出する。そして、NIF105は、抽出したNIF処理内容742に対応する処理を行う。
具体的には、NIF105は、抽出したNIF処理コード741が「0」なので、受信したパケットをプログラムインストール要求パケットと判定する。よって、NIF105は、受信したプログラムインストール要求パケットのペイロード112から、プログラム903を抽出する。次に、NIF105は、抽出したプログラム903をインストールする。
更に、NIF105は、フォワーディングテーブル401を更新する(2006)。なお、フォワーディングテーブル401の更新処理は、NIF追加処理(図15)のステップ1318と同一である。よって、詳細の説明は省略する。
そして、パケット通信装置101は、イベント処理を終了する(2010)。
一方、ステップ2002でアンインストール用イベントであると、NIF105は、プログラム用メモリ304に記憶されている転送用プログラムを削除する。更に、NIF105は、フォワーディングテーブル401を更新する(2007)。
具体的には、NIF105は、削除した転送用プログラムのプログラム名がフォワーディングテーブル401の処理内容403に格納されているレコードを、フォワーディングテーブル401から選択する。そして、選択したレコードをフォワーディングテーブル401から削除する。
次に、NIF105は、ノード管理用プロセッサ102にプログラム削除通知パケットを送信する(2008)。
図21−3は、本発明の実施の形態のプログラム削除通知パケットの構成図である。
プログラム削除通知パケットは、プログラムの削除をノード管理用プロセッサ102に通知する。
プログラム削除通知パケットは、内部ヘッダ111及びペイロード112から構成される。
内部ヘッダ111は、宛先アドレス601及び送信元アドレス602を含む。
宛先アドレス601は、当該パケットを受信する装置内の部位の内部アドレスである。送信元アドレス602は、当該パケットを送信する装置内の部位の内部アドレスである。
プログラム削除通知パケットでは、宛先アドレス601がノード管理用プロセッサ102の内部アドレスである。また、送信元アドレス602がNIF105の内部アドレスである。
ペイロード112は、ノード管理用プロセッサ処理コード701及びプログラム名904を含む。
NIF105は、以下のようにプログラム削除通知パケットのペイロード112を作成する。
まず、NIF105は、ノード管理用プロセッサ102に要求する処理の内容がノード管理用プロセッサ処理コード管理テーブル700の処理内容702に合致するレコードを、ノード管理用プロセッサ処理コード管理テーブル700から選択する。次に、選択したレコードから、ノード管理用プロセッサ処理コード701を抽出する。そして、抽出したノード管理用プロセッサ処理コード701を、パケットのペイロード112に格納する。
プログラム削除通知パケットは、ノード管理用プロセッサ102にプログラムの削除を通知し、NIF−プログラム管理テーブル800の更新を要求する。よって、NIF105は、ノード管理用プロセッサ処理コード701を「3」として、パケットのペイロード112に格納する。
次に、NIF105は、プログラム用メモリ304から削除した転送用プログラムのプログラム名904を、パケットのペイロードに格納する。
ここで、図21−1に戻る。
ノード管理用プロセッサ102は、NIF105からプログラム削除通知パケットを受信する。すると、ノード管理用プロセッサ102は、受信したプログラム削除通知パケットから、ノード管理用プロセッサ処理コードを抽出する。
次に、ノード管理用プロセッサ102は、抽出したノード管理用プロセッサ処理コードとノード管理用プロセッサ処理コード管理テーブル700(図5−1)のノード管理用プロセッサ処理コード701とが一致するレコードを、ノード管理用プロセッサ処理コード管理テーブル700から選択する。次に、選択したレコードから、処理内容702を抽出する。
そして、ノード管理用プロセッサ102は、抽出した処理内容702に対応する処理を行う。ここでは、ノード管理用プロセッサ102は、抽出したノード管理用プロセッサ処理コードが「3」なので、NIF−プログラム管理テーブル800を更新する(2009)。
具体的には、ノード管理用プロセッサ102は、受信したパケットのペイロード112からプログラム名904を抽出する。また、受信したパケットの内部ヘッダ111から、送信元アドレス602を抽出する。次に、ノード管理用プロセッサ102は、抽出したプログラム名904とNIF−プログラム管理テーブル800のプログラム名801とが一致し、更に、抽出した送信元アドレス602に対応するNIF番号とNIF−プログラム管理テーブル800のNIF番号802とが一致するボックスを、NIF−プログラム管理テーブル800から選択する。そして、選択したボックスに格納されている丸印を削除する。
そして、パケット通信装置101は、イベント処理を終了する(2010)。
以上のように、通知用プログラムをインストールされているNIF105は、転送用プログラムが必要なときだけ、インストールする。よって、プログラム用メモリ304を効率よく利用できる。
また、通知用プログラムは、NIF105が処理できないパケットを受信した場合、設定ミスの可能性がある旨をオペレータ制御端末103に通知することもできる。この場合、オペレータ制御端末103は、設定ミスの可能性がある旨の通知を受けると、通知の内容を表示する。よって、オペレータは、パケット通信装置101の設定ミスを早急に発見し、解消できる。
また、通知用プログラムは、一定の時間が経過した場合又は所定の時刻になった場合等に、転送用プログラムをインストールすることもできる。この場合、すべてのNIF105に、転送用プログラムを一斉にインストールできる。よって、オペレータは、それぞれのNIF105の設定を変更する必要がないので、負担が軽減される。ここで、本発明の特徴を述べる。装置を制御するノード管理用プロセッサと、外部ネットワークとの間でパケットを送受信するネットワークインタフェースと、前記パケットに所定の処理を行う機能拡張モジュールと、前記パケットを装置内で転送するスイッチと、を備えるパケット通信装置と、前記パケット通信装置に対してパケットを送受信する端末と、前記パケット通信装置と前記端末とを接続するネットワークと、を含むパケット通信システムにおいて、前記ネットワークインタフェースは、CPUとメモリとを備え、前記メモリは、前記CPUが実行するプログラムを記憶し、前記CPUは、該プログラムを実行することによって、前記外部ネットワークから受信したパケットを処理し、前記機能拡張モジュールは、前記メモリに記憶されるプログラムを記憶していることを特徴とする。また、装置を制御するノード管理用プロセッサと、外部ネットワークとの間でパケットを送受信するネットワークインタフェースと、前記パケットに所定の処理を行う機能拡張モジュールと、前記パケットを装置内で転送するスイッチと、を備えるパケット通信装置における機能拡張方法であって、前記ネットワークインタフェースは、CPUとメモリとを備え、前記メモリは、前記CPUが実行するプログラムを記憶し、前記CPUは、該プログラムを実行することによって、前記外部ネットワークから受信したパケットを処理し、前記機能拡張モジュールは、前記メモリに記憶されるプログラムを記憶していることを特徴とする。また、特許請求の範囲に記載されている発明のパケット通信装置において、前記機能拡張モジュールが取り外されると、前記ノード管理用プロセッサは、前記プログラム管理情報に含まれる前記カウンタを減少させ、前記カウンタが0になると、当該カウンタに対応するプログラムが記憶されているネットワークインタフェースへ、当該プログラムの削除を要求する。また、前記プログラムは、前記外部ネットワークから受信したパケットを前記機能拡張モジュールへ転送する。また、前記プログラムは、所定の時間が経過した場合又は特定のパケットを受信した場合に、他のプログラムの追加又は削除をネットワークインタフェースに要求する。また、前記パケット通信装置に追加されたネットワークインタフェースは、前記ノード管理用プロセッサにプログラムを要求し、前記ノード管理用プロセッサは、前記プログラムの要求があると、予め設定された条件に基づいて、前記追加されたネットワークインタフェースに送信するプログラムを特定し、前記特定したプログラムを取得し、前記追加されたネットワークインタフェースに前記取得したプログラムを送信する。また、情報を記憶するノード内メモリを備え、前記ノード内メモリは、プログラムを管理するプログラム管理情報を記憶し、前記ノード管理用プロセッサは、前記プログラム管理情報に基づいて、前記特定したプログラムが格納されている場所を特定し、前記特定した場所から、前記プログラムを取得する。また、前記ネットワークインタフェースは、前記外部ネットワークを介して、装置外部のサーバ及び装置外部のノードに接続され、前記ノード管理用プロセッサは、前記特定したプログラムを、前記ノード内メモリ、前記機能拡張モジュール、前記装置外部のサーバ又は前記装置外部のノードから取得する。