パケット処理装置及び方法
【課題】 複数モジュールを用いて構成した場合でもモジュール間通信の量を低減することができるパケット処理装置を提供する。
【解決手段】 本発明は、入力パケットを処理するパケット処理装置に関する。そしてパケット処理装置は、それぞれの入力パケットに対して、当該入力パケットの処理に関する処理制御情報を生成する手段と、初期の処理パケットとしての入力パケットと、当該処理パケットの処理制御情報が挿入された内部パケットを生成する手段と、内部パケットが供給されると、当該内部パケットに挿入された処理制御情報に基づいて、当該内部パケットに挿入された処理パケットを処理するパケット処理モジュールを1又は複数用いて、内部パケットを処理する手段と、処理された内部パケットから、処理パケットを抽出して出力する手段とを有することを特徴とする。
【解決手段】 本発明は、入力パケットを処理するパケット処理装置に関する。そしてパケット処理装置は、それぞれの入力パケットに対して、当該入力パケットの処理に関する処理制御情報を生成する手段と、初期の処理パケットとしての入力パケットと、当該処理パケットの処理制御情報が挿入された内部パケットを生成する手段と、内部パケットが供給されると、当該内部パケットに挿入された処理制御情報に基づいて、当該内部パケットに挿入された処理パケットを処理するパケット処理モジュールを1又は複数用いて、内部パケットを処理する手段と、処理された内部パケットから、処理パケットを抽出して出力する手段とを有することを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、パケット処理装置及び方法に関し、例えば、リアルタイムに音声データ等のパケットを処理するメディア変換サーバに適用し得る。
【背景技術】
【0002】
従来、ネットワーク事業者向けのSIP(Session Initiation Protocol)サーバ等の通信装置(パケット処理装置)に適用可能なハードウェアの規格として、ATCA(Advanced Telecom Computing Architecture)という規格がある。
【0003】
ATCAでは、通信装置を構成するシャーシ(筐体;シェルフ)や、シャーシに挿入するモジュール(ブレード)のハードウェア仕様(形状等)等を規定している。ATCA等の規格に準拠して、通信装置(各モジュール)を開発することにより、通信装置の開発効率を高め開発コストを低減させたり、開発した装置の柔軟な拡張性を確保する等を実現できる。
従来のATCAに準拠した通信装置(パケット処理装置)としては、例えば、特許文献1の記載技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−28708号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載された装置のように、ATCA等の規格に基づいて装置を構築した場合、モジュール内のデータ転送速度(例えば、プロセッサ間のデータ転送)に比べて、モジュール間のデータ転送速度は遅くなる。また、モジュール間のデータ転送では、フレーム形式(例えば、イーサネット(登録商標)フレーム)となる場合には、モジュール間のデータ転送を行う際にフレーム化する処理も発生する。
【0006】
そのため、ATCAの規格等に基づいて、複数のモジュールを用いて構成されたパケット処理装置では、モジュール間通信をできるだけ少なくすることが望ましい。
【0007】
しかしながら、ATCAの規格等に基づいてモジュールを構成する場合には、モジュールの形状(サイズ)は限定されるため、全ての機能や処理能力を1つのモジュールで実現することが難しい場合がある。特に通信事業者向けの大規模なシステムに適用するモジュールは、モジュールに搭載する半導体装置等の量も多いため、パケット処理装置を構成するモジュール数は多くなる傾向にある。
【0008】
また、複数種類の機能を1つのモジュールに収めてしまうと、機能ごとにモジュール化されている場合と比べて、一部のモジュール差し替えや追加による柔軟な仕様変更に対応できないといった問題がある。
【0009】
以上のような問題に鑑みて、複数モジュールを用いて構成した場合でもモジュール間通信の量を低減することができるパケット処理装置及び方法が望まれている。
【課題を解決するための手段】
【0010】
第1の本発明は、入力パケットを処理するパケット処理装置において、(1)それぞれの入力パケットに対して、当該入力パケットの処理に関する処理制御情報を生成する制御情報生成手段と、(2)初期の処理パケットとしての入力パケットと、当該処理パケットの処理制御情報が挿入された内部パケットを生成する内部パケット生成手段と、(3)内部パケットが供給されると、当該内部パケットに挿入された処理制御情報に基づいて、当該内部パケットに挿入された処理パケットを処理するパケット処理モジュールを1又は複数用いて、上記内部パケット生成手段が生成した内部パケットを処理するパケット処理手段と、(4)上記パケット処理手段により処理された内部パケットから、処理パケットを抽出して出力するパケット出力手段とを有することを特徴とする。
【0011】
第2の本発明は、入力パケットを処理するパケット処理装置のパケット処理方法において、(1)制御情報生成手段、内部パケット生成手段、パケット処理手段、パケット出力手段を備え、(2)上記制御情報生成手段は、それぞれの入力パケットに対して、当該入力パケットの処理に関する処理制御情報を生成し、(3)上記内部パケット生成手段は、初期の処理パケットとしての入力パケットと、当該処理パケットの処理制御情報が挿入された内部パケットを生成し、(4)上記パケット処理手段は、内部パケットが供給されると、当該内部パケットに挿入された処理制御情報に基づいて、当該内部パケットに挿入された処理パケットを処理するパケット処理モジュールを1又は複数用いて、上記内部パケット生成手段が生成した内部パケットを処理し、(5)上記パケット出力手段は、上記パケット処理手段により処理された内部パケットから、処理パケットを抽出して出力することを特徴とする。
【発明の効果】
【0012】
本発明によれば、複数モジュールを用いて構成した場合でもモジュール間通信の量を低減することができるパケット処理装置を提供することができる。
【図面の簡単な説明】
【0013】
【図1】実施形態に係るパケット処理装置の構成について示したブロック図である。
【図2】実施形態に係るパケット処理装置を備える通信システムの全体構成について示したブロック図である。
【図3】実施形態に係るパケット受信機能モジュール(フロー識別部)で保持されるフロー識別テーブルの内容例について示した説明図である。
【図4】実施形態に係るパケット受信機能モジュール(内部パケット生成部)で保持されるヘッダ処理テーブルの内容例について示した説明図である。
【図5】実施形態に係るパケット処理装置の各モジュール間を流れる内部パケットの構成例について示した説明図である。
【図6】実施形態のパケット処理機能モジュールを構成するDSP内の各コアの機能的構成について示した説明図である。
【図7】実施形態のパケット処理機能モジュールを構成するDSP内の各コアで保持されるバッファ管理テーブルの構成例について示した説明図である。
【図8】実施形態のパケット処理装置で、新規フローの追加処理が行われる場合の動作について示したシーケンス図である。
【図9】実施形態のパケット処理装置で、入力パケットの処理が行われる場合の動作について示したシーケンス図である。
【図10】実施形態のパケット処理装置で、フローの切断が発生した場合の動作について示したシーケンス図である。
【発明を実施するための形態】
【0014】
(A)主たる実施形態
以下、本発明によるパケット処理装置及び方法の一実施形態を、図面を参照しながら詳述する。
【0015】
(A−1)実施形態の構成
図2は、この実施形態のパケット処理装置を備える通信システム1の全体構成について示した説明図である。
【0016】
また、図1は、パケット処理装置10の構成について示したブロック図である。
【0017】
図2に示すように、通信システム1では、N台のSIP端末20(SIP端末20−1〜20−N)と、SIP端末20間のパケットを処理・中継するパケット処理装置10が配置されている。
【0018】
この実施形態では、それぞれのSIP端末20は、SIPに対応した通信端末であるものとして説明する。具体的には、例えば、SIPを用いてメッセージ送受信やメディア通信(例えば、音声通話やビデオ通話等)を行う端末が該当する。SIP端末20としては、既存のSIPに対応した端末を適用することができるので詳しい説明は省略する。
【0019】
そして、この実施形態のパケット処理装置10は、例として、SIP端末20間のメディア通信のデータが挿入されたパケット(例えば、音声通話に伴う音声データが挿入されたパケット)を処理するメディア変換サーバ機能、および、SIP端末20間の呼制御(シグナリング)を行う呼制御機能(SIPサーバの機能)に対応するものとして説明する。
【0020】
そして、パケット処理装置10では、ハードウェア的に、制御機能モジュール11、内部スイッチ12、パケット受信機能モジュール13、パケット処理機能モジュール14、及びパケット送信機能モジュール15のモジュールを備えているものとする。この実施形態では、例として、パケット処理装置10は、図示しないシャーシ(筐体)に、複数の板形状のモジュール(ブレード)を挿入して構築された装置(いわゆるブレードサーバ)であるものとする。パケット処理装置10を構成する図示しない筐体(シャーシ)や、各モジュールのハードウェア要件については、例えば既存のATCA等の規格に基づいたものを適用することができる。
【0021】
そして、パケット処理装置10を構成するモジュールのそれぞれは、図示しない内部バスに接続されているものとする。
【0022】
内部スイッチ12は、その他のモジュール間のデータ転送を行うスイッチであり、図示しない内部バスを介して、各モジュールから受信したフレームを、宛先のモジュールに転送する。この実施形態の内部スイッチ12では、イーサネット(登録商標)フレームを転送するように構成されているものとする。そして、パケット処理装置10内の各モジュールには、それぞれMACアドレス(レイヤ2アドレス)が1又は複数割り振られており、各モジュールは、宛先のモジュールに対応するMACアドレスをヘッダに設定したイーサネットフレームを、スイッチ12に送出する構成となっている。
【0023】
上述のように、内部スイッチ12を用いてモジュール間の通信を実現する構成については、例えば、既存のブレードサーバと同様の構成を適用することができるため詳しい説明については省略する。ただし、パケット処理装置10内で、各モジュール間の通信を行う構成については、上述のイーサネットフレームをスイッチングする構成に限定されず、種々の内部データ転送の構成を適用することができる。
【0024】
制御機能モジュール11は、パケット処理装置10内のパケットを処理するための各モジュール(パケット受信機能モジュール13、パケット処理機能モジュール14、パケット送信機能モジュール15)の動作を制御する機能を担っている。
【0025】
パケット処理装置10では、制御機能モジュール11の制御の下、パケットを処理するための各モジュール(パケット受信機能モジュール13、パケット処理機能モジュール14、パケット送信機能モジュール15)が、送信元のSIP端末20から受信した、メディア通信に係る入力パケット(以下「PI」とも表わす)を処理して、出力パケットを生成(以下、「PO」パケット)し、出力パケットを宛先のSIP端末20へ向けて送出する。
【0026】
次に、制御機能モジュール11の内部構成について説明する。
【0027】
制御機能モジュール11は、内部IF111、モジュール制御部112、及び呼制御部113を有している。
【0028】
内部IF111は、内部スイッチ12を介して、他のモジュールとフレームの送受信をするものである。
【0029】
モジュール制御部112は、パケットを処理するための各モジュールの動作を制御する機能を担っている。
【0030】
呼制御部113は、SIP端末20間の呼制御処理を行う機能を担っている。呼制御部113は、具体的には、例えば、SIP信号(INVITEメッセージ等のSIPメッセージ)を呼制御対象のSIP端末20とやりとりして呼制御処理(シグナリング)を行う。呼制御部113は、SIP端末20とSIP信号の送受信を行う場合、パケット受信機能モジュール13及びパケット送信機能モジュール15をネットワークNに接続するインタフェースとして用いるようにしても良いし、別途独自のインタフェースを備えるようにしても良い。なお、呼制御部113が行う呼制御処理自体は、既存のSIPサーバ(呼制御サーバ)と同様の処理を適用することができるため詳しい説明は省略する。また、図1では、呼制御部113は、制御機能モジュール11内に配置されるものとして図示しているが、呼制御部113を配置する位置は限定されないものであり、別のモジュールや外部装置に配置するようにしても良い。
【0031】
そして、呼制御部113は、SIP端末20間の呼制御処理が終了すると、モジュール制御部112に、当該パケット処理装置10で処理が必要なフローに関する情報を通知する。
【0032】
次に、パケット受信機能モジュール13の概要について説明する。
【0033】
パケット受信機能モジュール13は、内部IF131、外部IF132、パケット受信処理部133、フロー識別部134、及び内部パケット生成部135を有している。
【0034】
外部IF132は、パケット受信機能モジュール13で、外部(ネットワークN)からパケット受信するためのインタフェースである。外部IF132は、受信したパケットを、パケット受信処理部133に引き渡す。
【0035】
パケット受信処理部133は、外部IF132から供給されたパケットがメディア通信に係る入力パケットPIである場合、当該入力パケットPIについて受信処理(フロー識別部134及び内部パケット生成部135による処理)を施して、内部パケットPE1として、内部IF131に引き渡す。
【0036】
内部IF131は、内部スイッチ12を介して、他のモジュールとフレームの送受信をするためのインタフェースであり、パケット受信処理部133から供給された内部パケットPE1を、パケット処理機能モジュール14に向けて送出する。
【0037】
次に、パケット処理機能モジュール14の概要について説明する。
【0038】
パケット処理機能モジュール14は、内部IF141と、3つのDSP142(142−1〜142−3)(Digital Signal Processor)を有している。
【0039】
内部IF141は、パケット処理機能モジュール14で、内部スイッチ12を介して、他のモジュールとフレームの送受信するためのインタフェースである。また、内部IF141は、パケット受信機能モジュール13から送出された内部パケットPE1を受信して、対応するDSP142に供給する。
【0040】
DSP142(142−1〜142−3)は、それぞれ、パケット受信機能モジュール13から供給された内部パケットPE1の処理を行う半導体装置(専用チップ)である。なお、パケット受信機能モジュール13に搭載されるDSP142の数は限定されないものである。また、この実施形態では、各DSP142は、パケット受信機能モジュール13から供給された内部パケットPE1のデータについてメディア変換処理(音声コーデック変換処理)を行うものとして説明する。
【0041】
そして、それぞれのDSP142は、4つのコアC(C1〜C4)を備えており、それぞれのコアC1〜C4が並列的にメディア変換処理を行うことが可能な構成となっているものとする。
【0042】
そして、それぞれのコアCには、内部スイッチ12で認識可能なMACアドレスが付与されているものとする。したがって、パケット受信機能モジュール13では、3つのDSP142−1〜142−3により、合計12個のコアCが搭載されていることになるので、少なくとも12個のMACアドレスが付与されている。
【0043】
以下では、説明を簡易にするために、DSP142−1の各コアC1〜C4のMACアドレスを、それぞれMAC311〜MAC314と表わすものとする。例えば、DSP142−1のコアC1のMACアドレスはMAC311となる。同様に、DSP142−2の各コアC1〜C4のMACアドレスを、それぞれMAC321〜MAC324と表わすものとする。また、DSP142−3の各コアC1〜C4のMACアドレスを、それぞれMAC331〜MAC334と表わすものとする。
【0044】
したがって、内部IF141は、パケット受信機能モジュール13から供給された内部パケットPE1のイーサネットヘッダ(宛先MACアドレス)に対応するDSP142のコアCに、当該内部パケットPE1を供給する。
【0045】
なお、以下では、モジュール制御部112のMACアドレスをMAC100、パケット受信機能モジュール13のMACアドレスをMAC200、パケット送信機能モジュール15のMACアドレスを400と表わすものとする。
【0046】
そして、それぞれのコアCは、内部パケットPE1を受信すると、当該内部パケットPE1を処理し、出力パケットPOを生成し、生成した出力パケットPOをデータ部に挿入した内部パケットPE2(パケット送信機能モジュール15を宛先とするパケット)を生成(イーサネットヘッダを付与)して、内部IF141に供給する。
【0047】
そして、内部パケットPE2の供給を受けた内部IF141は、当該パケットをパケット送信機能モジュール15に向けて送出する。なお、コアCが生成した出力パケットPOにヘッダを付与する処理については、内部IF141側で行うようにしても良い。
【0048】
次に、パケット送信機能モジュール15の概要について説明する。
【0049】
パケット送信機能モジュール15は、内部IF151、パケット送信処理部153、及び外部IF152を有している。
【0050】
内部IF151は、パケット送信機能モジュール15で、内部スイッチ12を介して、他のモジュールとフレームの送受信するためのインタフェースである。また、内部IF151は、パケット処理機能モジュール14から送出された内部パケットPE2を受信して、パケット送信処理部153に供給する。
【0051】
パケット送信処理部153は、内部IF151から供給された内部パケットPE2のデータから出力パケットPOを抽出して、外部IF152に供給する処理を行う。
【0052】
外部IF152は、パケット送信機能モジュール15で、外部(ネットワークN)にパケット送信するためのインタフェースである。外部IF152は、パケット送信処理部153から供給された出力パケットPOを、ネットワークNに送出する処理を行う。
【0053】
次に、パケット受信機能モジュール13のパケット受信処理部133について説明する。
【0054】
上述の通り、パケット受信処理部133では、供給されたパケットがメディア通信に係るパケット(入力パケットPI)である場合には、当該入力パケットPIについて、フロー識別部134及び内部パケット生成部135による処理を行う。
【0055】
パケット受信処理部133では、例えば、供給されたパケットのヘッダ情報(例えば、ポート番号等)等により、当該パケットがメディア通信に係るパケット(入力パケットPI)であるか否かを判定することができる。パケット受信処理部133が受信したパケットが、メディア通信に係るパケット(入力パケットPI)に該当しない場合(例えば、ネットワーク制御に係るパケット等)の処理については、例えば、既存のサーバ(メディア変換サーバ等)と同様の処理を行うようにしても良く、詳細な説明については省略する。
【0056】
そして、外部IF132から供給されたパケットが、入力パケットPIに該当する場合、まずフロー識別部134により、いずれのフローに該当するのかが判定される。ここでいうフローとは、第1のSIP端末20と第2のSIP端末20との間のEnd−to−Endのデータの流れ(音声データの流れ)を表すものとする。具体的には、例えば、第1のSIP端末20から、第2のSIP端末20へ向けて送信される音声データの流れ(ストリーム)が該当する。この実施形態では、第1のSIP端末20と第2のSIP端末20との間の音声通話について、パケット処理装置10でメディア変換(音声コーデック変換処理)を行うため、第1のSIP端末20と、第2のSIP端末20との間では双方向で計2本のフローが発生することになる。
【0057】
フロー識別部134では、それぞれのフローに対してフローIDが付与されて管理されており、フロー識別部134では、受信した入力パケットPIが、いずれのフローIDに該当するのかを判定する処理を行う。フロー識別部134で、フローIDを判定する処理を行う具体的な方法については管理されないものであるが、この実施形態では、図3に示すような、テーブル(以下、「フロー識別テーブル」と呼ぶ)に基づいて、受信した入力パケットPIのフローIDを確認するものとする。フロー識別テーブルの内容については、制御機能モジュール11からの制御に基づいてセットされるものとする。
【0058】
そして、図3に示すように、フロー識別テーブルには、フローIDごとに、当該フローIDを識別するためのフロー識別情報として、送信元アドレス、送信元ポート番号、宛先アドレス、宛先ポート番号が登録されている。なお、フロー識別情報の項目については、フロー識別部134の内容に基づいてフローを識別することができれば、図3の例に限定されないものである。
【0059】
図3では、FID1が、SIP端末20−1からSIP端末20−2へのフローのフローIDを示しているものとする。また、図3では、FID2が、SIP端末20−2からSIP端末20−1へのフローのフローIDを示しているものとする。
【0060】
なお、図3に示すように、以下では、SIP端末20−1のIPアドレスをIP1、SIP端末20−2のIPアドレスをIP2と表わすものとする。また、SIP端末20−1側でSIP端末20−2とのパケット送受信に用いるポート番号をP1と表わすものとする。さらに、SIP端末20−2側でSIP端末20−1とのパケット送受信に用いるポート番号をP2と表わすものとする。
【0061】
そして、フロー識別部134の識別結果(当該入力パケットPIのフローID)に基づいて、内部パケット生成部135による処理が行われる。
【0062】
具体的には、内部パケット生成部135では、図4に示すヘッダ処理テーブルに基づいて、内部パケットPE1を生成する処理を行う。
【0063】
図5は、内部パケット生成部135が生成する内部パケットPE1の構成例について示した説明図である。図5(a)は、内部パケットPE1の全体構成(イーサネットフレーム全体)について示した説明図である。また、図5(b)は内部パケットPE1を構成するデータ部について示した説明図である。
【0064】
上述の通り、内部パケットPE1のデータ部には、少なくともパケット処理機能モジュール14で処理対象となるパケット(以下、「処理対象パケット」と呼ぶ)が挿入される。パケット受信機能モジュール13では、処理対象パケットの初期データとして、入力パケットPIが、内部パケットPE1のデータ部に挿入される。
【0065】
そして、内部パケット生成部135では、内部パケットPE1のデータ部に、処理対象パケット(入力パケットPI)に加えて、当該処理対象パケットの処理に関する情報として処理制御情報ICを付加する。具体的には、この実施形態の処理制御情報ICには、当該処理対象パケットのメディア変換処理(パケット処理機能モジュール14が行う処理)に関する情報として、「メディア変換処理ID」及び「フローID」が含まれるものとして説明する。
【0066】
メディア変換処理IDとは、変換処理前の音声コーデックの形式(入力パケットPIの音声コーデックの形式)と、変換処理後の音声コーデックの形式(出力パケットPOの音声コーデックの形式)の組み合わせごとに、パケット処理装置10内で共通に定められているIDを示している。
【0067】
以下では、例として、G.711μ−lawのコーデックの音声データを、G.722.1のコーデックの音声データに変換する場合のメディア変換処理IDを「TID1」であるものとする。また、逆に、G.722.1のコーデックの音声データを、G.711μ−lawのコーデックの音声データに変換する場合のメディア変換処理IDを「TID2」と表すものとする。以下では、説明を簡易とするためにメディア変換処理IDについて「TID1、TID2、TID3、…」と表わすが、実際には、「1、2、3、…」等、できるだけデータ量の少ない形式で記述(10進数ではなく2進数でビット単位の形式で記述するようにしても良い)することが望ましい。
【0068】
なお、パケット処理装置10では、上述のようにコーデックの形式だけでなく、ビットレートや圧縮率等のパラメータについても異なる組み合わせとして、メディア変換処理IDを付与するようにしても良い。なお、パケット処理機能モジュール14側で、メディア変換処理の内容が認識できれば、メディア変換処理IDの項目について、他の記述形式(例えば、変換前と変換後のコーデックの両方の情報を記述する形式)に置き換えるようにしてもよい。
【0069】
そして、内部パケット生成部135では、フローごと(フローIDごと)のメディア変換処理IDについて、図4に示すように、ヘッダ処理テーブルで管理されている。図4では、FID1のフローについては、メディア変換処理IDをTID1と設定し、FID2のフローについては、メディア変換処理IDをTID2と設定している。
【0070】
また、パケット処理装置10では、パケット受信機能モジュール13(パケット受信処理部133)から、パケット処理機能モジュール14へ、内部パケットPE1を送信する場合には、当該内部パケットPE1の入力パケットPIを処理するDSP142及びコアCを指定する。
【0071】
具体的には、パケット受信処理部133では、図4に示すように、フローIDごとに対応するコアCのMACアドレス(以下、「指定コアMACアドレス」と呼ぶ)を管理している。そして、パケット受信処理部133は、内部パケットPE1のイーサネットヘッダを生成する際に、当該ヘッダの宛先MACアドレスを、フローIDに対応する指定コアMACアドレスに設定する。
【0072】
図4では、FID1のフローについては、指定コアMACアドレスをMAC311(DSP142−1のコアC1のMACアドレス)と設定し、FID2のフローについては、メディア変換処理IDをMAC321(DSP142−2のコアC1のMACアドレス)と設定している。
【0073】
したがって、例えば、フロー識別部134でフローIDがFID1と識別された入力パケットPIに基づく内部パケットPE1では、送信元MACアドレスは「MAC200」、宛先MACアドレスは「MAC311」、処理制御情報ICのメディア変換処理IDは「TID1」、処理制御情報ICのフローIDは「FID1」となる。
【0074】
次に、上述のような内部パケットPE1を受信して処理するコアC内部の機能的構成について説明する。
【0075】
図6は、それぞれのコアC内部の機能的構成の例について示した説明図である。この実施形態では、全てのコアCは同じ構成であるものとして説明する。
【0076】
図6に示すように、それぞれのコアCは、パケット処理部CC、内部パケット入力部CR、M個の処理バッファCB(CB1〜CBM)、及び内部パケット出力部CSを有している。
【0077】
なお、図6に示すコアCの機能的構成は、物理的な構成について示すものではなく、一部又は全部を内部の処理プロセッサを用いてソフトウェア的に構成するようにしても良い。
【0078】
それぞれの処理バッファCB1〜CBMは、1つのフロー(フローID)に係る内部パケットPE1を一時的に保留するためのバッファメモリである。なお、それぞれのコアCに備える処理バッファCBの数は限定されないものである。
【0079】
なお、コアC内では、処理バッファCBにID(以下、「バッファID」と呼ぶ)が付与されているものとする。この実施形態では、処理バッファCB1〜CBMのバッファIDを、それぞれBID1〜BIDMと表わすものとする。
【0080】
そして、コアCにおいて、それぞれの処理バッファCBに対応するフローIDについては、内部パケット入力部CRで保持されるバッファ管理テーブルにより管理されているものとする。
【0081】
図7の例では、バッファID「BID1」(処理バッファCB1)と、フローID「FID1」とが対応付けられている。なお、バッファ管理テーブルにおいて、使用していない処理バッファCBに対応するフローIDの欄には、未使用であることを示すパラメータ(図7の例では「−」)が入力されるものとする。
【0082】
そして、内部パケット入力部CRでは、内部パケットPE1が供給されると、当該内部パケットPE1の処理制御情報ICのフローIDの情報を抽出する。そして、内部パケット入力部CRは、フローIDに対応するバッファIDを、バッファ管理テーブルから取得する。そして、内部パケット入力部CRは、取得したバッファIDの処理バッファCBに、当該内部パケットPE1を供給する。
【0083】
また、内部パケットPE1の処理制御情報ICから抽出したフローIDが、バッファ管理テーブルに登録されていない場合(新規のフローIDの場合)、内部パケット入力部CRは、空いている処理バッファCBに、当該フローを割り当てる。具体的には、内部パケット入力部CRは、新規のフローのフローIDを、バッファ管理テーブル上でフローIDが割り当てられていないバッファIDに対応付けて登録する。
【0084】
そして、パケット処理部CCは、各処理バッファCBに保持された内部パケットPE1からメディア変換処理ID及び処理対象パケット(入力パケットPI)を抽出する。そして、パケット処理部CCは、抽出した処理対象パケットに対して、抽出したメディア変換処理IDに基づく方式でのメディア変換処理(コーデック変換処理)を行い、出力パケットPOを生成する。そして、パケット処理部CCは、出力パケットPOを挿入した内部パケットPE2(パケット送信機能モジュール15を宛先MACアドレスとするフレーム)を生成して、内部IF141に引き渡す。なお、パケット処理部CCが行うメディア変換処理自体は、既存のメディア変換サーバと同様の処理を適用することができるため、詳しい説明は省略する。
【0085】
(A−2)実施形態の動作
次に、以上のような構成を有するこの実施形態のパケット処理装置10の動作について図8〜図10のフローチャートを用いて説明する。
【0086】
図8〜図10のフローチャートでは、説明を簡易にするために、SIP端末20−1からSIP端末20−2へむけて送出されるフローを中心とした動作説明をしている。パケット処理装置10において、各フローに関する個別の動作については、各種パラメータ(例えば、メディア変換処理の内容やアドレス等)が異なるだけであるため詳しい説明を省略する。
【0087】
図8は、パケット処理装置10で新規フローの受入れ準備を行う処理について示したフローチャートである。
【0088】
まず、制御機能モジュール11(呼制御部113)により、SIP端末20−1とSIP端末20−2との間のSIPに基づく呼制御(INVITEメッセージを利用した呼制御)が完了し、SIP端末20−1と、SIP端末20−2との間の音声通話(双方向の音声データのセッション)について接続状態となったものとする(S101)。
【0089】
そして、呼制御部113から、モジュール制御部112に、SIP端末20−1とSIP端末20−2との間の音声通話フローに関する情報が供給される。そして、モジュール制御部112では、SIP端末20−1からSIP端末20−2へのフローと、SIP端末20−2からSIP端末20−1へのフローに対して、それぞれフローID及びコアCの割り当てが実行される(S102)。
【0090】
呼制御部113からモジュール制御部112に対しては、少なくとも、パケット受信機能モジュール13に設定するパラメータを決定できる内容が含まれている必要がある。具体的には、フローごとの、送信元アドレス、送信元ポート番号、宛先アドレス、宛先ポート番号、送信元のSIP端末20が対応するメディアの種類(コーデックの種類)、宛先のSIP端末20が対応するメディアの種類(コーデックの種類)の項目の情報が含まれる必要がある。なお、送信元及び宛先のSIP端末20が対応するメディアの種類(コーデックの種類)については、上述のメディア変換処理IDを用いて表現するようにしても良い。
【0091】
そして、モジュール制御部112では、上述の例と同様に、SIP端末20−1からSIP端末20−2へのフローには、FID1というフローIDが付与され、SIP端末20−2からSIP端末20−1へのフローには、FID2というフローIDが付与されたものとする。また、FID1のフローには、指定コアMACアドレスとしてMAC311が付与され、FID2のフローには、指定コアMACアドレスとしてMAC321が付与されたものとする。
【0092】
なお、モジュール制御部112では、フロー識別部134のフロー識別テーブル、及び、内部パケット生成部のヘッダ処理テーブルと同様の情報について保持しているものとする。
【0093】
そして、モジュール制御部112からパケット受信機能モジュール13へは、FID1のフローとFID2のフローについて新規に処理を開始する指示と共に、フロー識別テーブル及びヘッダ処理テーブルに設定するために必要な情報が通知される(S103)。
【0094】
そして、パケット受信機能モジュール13のフロー識別部134では、モジュール制御部112からの通知に基づいて、ヘッダ処理テーブルに新規フロー(FID1及びFID2のフロー)に関する情報がセットされる(S104)。
【0095】
ここでは、上述のステップS104の処理の結果、ヘッダ処理テーブルの内容は、上述の図3のような内容になったものとする。
【0096】
そして、パケット受信機能モジュール13の内部パケット生成部135では、モジュール制御部112からの通知に基づいて、フロー識別テーブルに新規フロー(FID1及びFID2のフロー)に関する情報がセットされる(S105)。
【0097】
ここでは、上述のステップS105の処理の結果、フロー識別テーブルの内容は、上述の図4のような内容になったものとする。
【0098】
そして、パケット受信機能モジュール13では、各テーブルへのデータのセットが終了すると、当該フロー(FID1、FID2のフロー)について処理の準備が完了した旨を、制御機能モジュール11(モジュール制御部112)に通知する(S106)。
【0099】
以上のように、パケット処理装置10(パケット受信機能モジュール13)では、新規フローの受入れ準備を行う処理が実行される。
【0100】
次に、パケット処理装置10でSIP端末20−1から受信した入力パケットPIを処理して、出力パケットPOをSIP端末20−2に向けて送出する動作について、図9のフローチャートを用いて説明する。
【0101】
ここでは、上述の図8の処理により、パケット受信機能モジュール13には、FID1及びFID2に関する情報はセットされているものとする。
【0102】
そして、パケット受信機能モジュール13では、SIP端末20−1からSIP端末20−2へのフロー(FID1のフロー)の入力パケットPIが到来すると(S201)、まず、フロー識別部134により当該入力パケットPIのフローが識別される(S202)。
【0103】
そして、当該入力パケットPIは、内部パケット生成部135により、フロー識別部134の識別結果(FID1)に基づいた処理が行われ、内部パケットPE1が生成される(S203)。
【0104】
当該内部パケットPE1の宛先MACアドレスは、ヘッダ処理テーブルの内容に基づいて、MAC311(DSP142−1のコアC1)が設定されることになる。
【0105】
そして、当該内部パケットPE1が内部スイッチ12を経由してパケット処理機能モジュール14のDSP142−1のコアC1に送信される(S204)。
【0106】
そして、DSP142−1のコアC1では、当該フロー(FID1のフロー)の内部パケットPE1は、初めて受信することになるので、当該フローに対して、新規に処理バッファCBを割り当てる処理(バッファ管理テーブルへの登録処理)が行われる(S205)。
【0107】
ここでは、DSP142−1のコアC1では、FID1のフローに対して、処理バッファCB1(BID1のバッファ)が割り当てられ、バッファ管理テーブルの内容は、上述の図7のように設定されたものとする。
【0108】
そして、当該内部パケットPE1は、DSP142−1のコアC1の内部パケット入力部CRにより、当該フローに割り当てられた処理バッファCB1に供給される(S206)。
【0109】
そして、DSP142−1のコアC1を構成するパケット処理部CCでは、処理バッファCB1で保持された内部パケットPE1の処理が開始され(S207)、当該処理に基づいたタイミングで、出力パケットPOが生成される。そして、処理バッファCB1では、その生成した出力パケットPOを挿入した内部パケットPE2が生成され、パケット送信処理部153に送信される(S208)。
【0110】
そして、内部パケットPE2を受信したパケット送信機能モジュール15では、パケット送信処理部153により内部パケットPE2から出力パケットPOが抽出され、ネットワークNに送出(SIP端末20−2へ向けて送信)される(S209)。
【0111】
その後、パケット処理装置10では、FID1のフローの入力パケットPIが供給される度に、同様の処理(ただし、ステップS205の処理バッファCB割り当て処理は除く)が行われることになる。
【0112】
そして、その後、SIP端末20−1とSIP端末20−2との間の音声通話の処理が終了し、SIP端末20−1とSIP端末20−2との間の音声通話を切断した場合のパケット処理装置10の動作について図10を用いて説明する。
【0113】
まず、呼制御部113により、SIP端末20−1とSIP端末20−2との間の音声通話が終了し、切断する呼制御が行われたものとする(S301)。
【0114】
呼制御部113による音声通話の切断の呼制御については、例えば、既存のSIPサーバ(呼制御サーバ)と同様の処理を適用することができるので、詳しい説明については省略する。
【0115】
そして、呼制御部113から、モジュール制御部112に、SIP端末20−1とSIP端末20−2との間の音声通話に係るフローの情報が供給され、モジュール制御部112は、その供給された情報に基づいて、対応するフロー(フローID)を確認する(S302)。
【0116】
なお、上述の通り、モジュール制御部112では、フロー識別部134及び内部パケット生成部135が保持するフロー識別テーブル及びヘッダ処理テーブルと同様の情報について保持しているものとする。
【0117】
呼制御部113からモジュール制御部112に対しては、少なくとも、切断対象となるフローのフローIDが特定できる情報が含まれている必要がある。例えば、上述のステップS102で説明した、呼制御部113からモジュール制御部112に対して供給される情報と同様の項目としても良い。
【0118】
そして、モジュール制御部112では、切断対象のフローとして、FID1及びFID2が検出される。
【0119】
そして、モジュール制御部112からパケット受信機能モジュール13へは、FID1のフローとFID2のフローについて切断処理を行う指示が通知される(S303)。
【0120】
そして、パケット受信機能モジュール13のフロー識別部134では、モジュール制御部112からの通知に基づいて、フロー識別テーブルから切断対象フロー(FID1及びFID2のフロー)に関する情報が削除される。また、パケット受信機能モジュール13の内部パケット生成部135では、モジュール制御部112からの通知に基づいて、ヘッダ処理テーブルから切断対象フロー(FID1及びFID2のフロー)に関する情報が削除される(S304)。
【0121】
そして、パケット受信機能モジュール13の内部パケット生成部135は、切断処理を行うフローIDに対応する指定コアMACアドレス宛に、当該フローIDについて切断処理を指示するための制御用の内部パケットを生成して送信する(S305)。
【0122】
具体的には、内部パケット生成部135では、処理バッファCB1のコア1宛(MAC311)に、FID1のフローの切断処理を指示する内部パケットが生成・送出が行われる。また、内部パケット生成部135では、処理バッファCB2のコア2宛(MAC311)に、FID2のフローの切断処理を指示する内部パケットが生成・送出が行われる。
【0123】
また、切断処理を指示するための内部パケットの記述形式については限定されないものであるが、例えば、処理制御情報ICに、切断処理を行う旨の指示信号(例えば、切断処理を示す所定パターンのデータ)と、切断処理の対象となるフローのフローIDを含むように記述してもよい。
【0124】
そして、パケット受信機能モジュール13から、切断処理を指示する内部パケットを受信したパケット処理機能モジュール14のコアC(DSP142−1のコア1及びDSP142−2のコア1)は、フロー識別テーブルから切断対象フローのフローID(FID1及びFID2)の情報が削除され、対応する処理バッファCBが未使用の状態に管理される(S306)。
【0125】
そして、パケット受信機能モジュール13では、各テーブルからの情報削除、及び、パケット処理機能モジュール14へのフロー切断指示の内部パケットの送信が終了すると、当該フロー(FID1、FID2のフロー)について切断処理が完了した旨を、制御機能モジュール11(モジュール制御部112)に通知する(S307)。
【0126】
上述のように、パケット処理装置10では、呼制御結果に応じたフローの切断処理が行われる。
【0127】
(A−3)実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
【0128】
パケット処理装置10では、パケット受信機能モジュール13で、処理対象パケット(入力パケットPI)に処理制御情報IC付加した内部パケットを生成して後段のモジュール(パケット処理機能モジュール14)への処理の指示を行っている。これにより、パケット処理装置10では、制御機能モジュール11から、パケット受信機能モジュール13に対する制御を行うだけで、各フローに対するパケット処理を行うことが可能となる。
【0129】
従来の複数モジュールを用いて構成するパケット処理装置では、装置全体を制御する制御機能モジュールから、他のモジュールの全てに対する制御やモジュール間の同期制御処理を行う必要があった。一方、この実施形態のパケット処理装置10では、上述の通りパケット受信機能モジュール13で、処理制御情報IC付加した内部パケットを生成して後段のモジュールに引き渡すことにより、制御機能モジュール11による制御処理の量を低減することができる。
【0130】
以上のように、パケット処理装置10では、制御機能モジュール11による他のモジュールへの制御処理の量を低減することにより、モジュール間の通信量を低減し、パケット処理装置10全体の制御性能等を向上させることができる。特に、制御処理能力が低く、パケット処理能力が高いハードウェア上でパケット処理装置10を実現する場合、上述の効果が大きくなる。また、機能モジュール数が多いハードウェアでパケット処理装置10を実現する場合でも上述の効果が大きくなる。
【0131】
(B)他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【0132】
(B−1)上記の実施形態のパケット処理装置10では、パケット処理機能モジュール14を1つだけ搭載しているが、複数搭載して、パケット処理手段を実現するようにしてもよい。
【0133】
例えば、上記の実施形態のパケット処理装置10では、パケット処理機能モジュール14を用いて、処理対象パケットに挿入された音声データのメディア変換処理を行っているが、パケット処理機能モジュール14の後段(パケット処理機能モジュール14とパケット送信機能モジュール15との間)に、第2のパケット処理機能モジュールを追加して、暗号化処理を行うようにしてもよい。このように、パケット処理装置10では、複数のパケット処理機能モジュールを直列に連結した多段構成とすることにより、パケット処理を行うようにしてもよい。
【0134】
パケット処理装置10に、複数段のパケット処理機能モジュールが連結して搭載されている場合には、パケット受信機能モジュール13の内部パケット生成部135では、それぞれの段のパケット処理機能モジュールに対する制御情報をスタックして内部パケットの処理制御情報ICを構成するようにしてもよい。この場合、それぞれのパケット処理機能モジュールに対する制御情報としては、例えば、当該パケット処理機能モジュールの処理内容(例えば、暗号化方式や、暗号化に係るパラメータ等)の情報や、次の段のパケット処理モジュールへ内部パケットを送信する際の宛先(MACアドレス)の情報が記述されている必要がある。
【0135】
このように、パケット受信機能モジュール13で、多段構成のパケット処理機能モジュールのそれぞれに対する制御情報を有する処理制御情報ICと、処理対象パケット(入力パケットPI)とを挿入した内部パケットを生成し、生成した内部パケットを多段構成の先頭のパケット処理機能モジュールに引き渡すだけで、多段構成のパケット処理機能モジュールのそれぞれに処理対象パケットの処理を実行させることができる。このように、本発明のパケット処理装置10では、パケット処理機能モジュールの数が多くなるほど、モジュール間の制御処理量の低減効果を大きくすることができる。
【0136】
(B−2)上記の実施形態では、パケット処理装置10において、処理対象パケット(入力パケットPI)のヘッダのアドレス等の変換処理(送信元及び又は宛先のIPアドレスやポート番号について変換する処理)を行う構成となっていないが、ヘッダのアドレス等を変換する処理構成について付加するようにしてもよい。
【0137】
パケット処理装置10において、ヘッダのアドレス等を変換する処理を行うモジュールについては限定されないものであるが、例えば、パケット受信機能モジュール13の内部パケット生成部135で行うようにしてもよい。例えば、内部パケット生成部135において、入力パケットPIに対して所定のアドレス変換処理を行ったものを初期の処理対象パケットとして、内部パケットPE1に挿入するようにしてもよい。この場合、内部パケット生成部135は、図示しないアドレス変換テーブルに基づいて、入力パケットPIに対するアドレス変換処理を行うようにしてもよい。内部パケット生成部135で保持されるアドレス変換テーブルの内容や、内部パケット生成部135による具体的なアドレス変換処理の内容については、例えば、既存のNAT(Network Address Translation)やNAPT(Network Address Port Translation)に対応するルータ等と同様の処理を適用することができる。
【0138】
(B−3)上記の実施形態では、パケット処理装置10で用いる呼制御信号はSIP信号(SIPメッセージ)を用いるものとして説明したが、呼制御方式はSIPに限定されず、既存の種々の方式を適用することができる。
【0139】
(B−4)上記の実施形態では、パケット処理機能モジュール14へのフローの切断処理の指示を、パケット受信機能モジュール13から行っているが、制御機能モジュール11から直接指示するように構成してもよい。
【符号の説明】
【0140】
1…通信システム、10…パケット処理装置、20、20−1〜20−N…SIP端末、11…制御機能モジュール、12…内部スイッチ、111…内部IF、112…モジュール制御部、113…呼制御部、13…パケット受信機能モジュール、131…内部IF、132…外部IF、133…パケット受信処理部、134…フロー識別部、135…内部パケット生成部、14…パケット処理機能モジュール、141…内部IF、142、142−1〜142−3…DSP、DSP142−3、C、C1〜C4…コア、15…パケット送信機能モジュール、151…内部IF、153…パケット送信処理部、152…外部IF、PI…入力パケット、PO…出力パケット、PE1、PE2…内部パケット、IC…処理制御情報、N…ネットワーク、C…コア、CC…パケット処理部、CR…内部パケット入力部、CB、CB1〜CBM…処理バッファ、CS…内部パケット出力部。
【技術分野】
【0001】
この発明は、パケット処理装置及び方法に関し、例えば、リアルタイムに音声データ等のパケットを処理するメディア変換サーバに適用し得る。
【背景技術】
【0002】
従来、ネットワーク事業者向けのSIP(Session Initiation Protocol)サーバ等の通信装置(パケット処理装置)に適用可能なハードウェアの規格として、ATCA(Advanced Telecom Computing Architecture)という規格がある。
【0003】
ATCAでは、通信装置を構成するシャーシ(筐体;シェルフ)や、シャーシに挿入するモジュール(ブレード)のハードウェア仕様(形状等)等を規定している。ATCA等の規格に準拠して、通信装置(各モジュール)を開発することにより、通信装置の開発効率を高め開発コストを低減させたり、開発した装置の柔軟な拡張性を確保する等を実現できる。
従来のATCAに準拠した通信装置(パケット処理装置)としては、例えば、特許文献1の記載技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−28708号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載された装置のように、ATCA等の規格に基づいて装置を構築した場合、モジュール内のデータ転送速度(例えば、プロセッサ間のデータ転送)に比べて、モジュール間のデータ転送速度は遅くなる。また、モジュール間のデータ転送では、フレーム形式(例えば、イーサネット(登録商標)フレーム)となる場合には、モジュール間のデータ転送を行う際にフレーム化する処理も発生する。
【0006】
そのため、ATCAの規格等に基づいて、複数のモジュールを用いて構成されたパケット処理装置では、モジュール間通信をできるだけ少なくすることが望ましい。
【0007】
しかしながら、ATCAの規格等に基づいてモジュールを構成する場合には、モジュールの形状(サイズ)は限定されるため、全ての機能や処理能力を1つのモジュールで実現することが難しい場合がある。特に通信事業者向けの大規模なシステムに適用するモジュールは、モジュールに搭載する半導体装置等の量も多いため、パケット処理装置を構成するモジュール数は多くなる傾向にある。
【0008】
また、複数種類の機能を1つのモジュールに収めてしまうと、機能ごとにモジュール化されている場合と比べて、一部のモジュール差し替えや追加による柔軟な仕様変更に対応できないといった問題がある。
【0009】
以上のような問題に鑑みて、複数モジュールを用いて構成した場合でもモジュール間通信の量を低減することができるパケット処理装置及び方法が望まれている。
【課題を解決するための手段】
【0010】
第1の本発明は、入力パケットを処理するパケット処理装置において、(1)それぞれの入力パケットに対して、当該入力パケットの処理に関する処理制御情報を生成する制御情報生成手段と、(2)初期の処理パケットとしての入力パケットと、当該処理パケットの処理制御情報が挿入された内部パケットを生成する内部パケット生成手段と、(3)内部パケットが供給されると、当該内部パケットに挿入された処理制御情報に基づいて、当該内部パケットに挿入された処理パケットを処理するパケット処理モジュールを1又は複数用いて、上記内部パケット生成手段が生成した内部パケットを処理するパケット処理手段と、(4)上記パケット処理手段により処理された内部パケットから、処理パケットを抽出して出力するパケット出力手段とを有することを特徴とする。
【0011】
第2の本発明は、入力パケットを処理するパケット処理装置のパケット処理方法において、(1)制御情報生成手段、内部パケット生成手段、パケット処理手段、パケット出力手段を備え、(2)上記制御情報生成手段は、それぞれの入力パケットに対して、当該入力パケットの処理に関する処理制御情報を生成し、(3)上記内部パケット生成手段は、初期の処理パケットとしての入力パケットと、当該処理パケットの処理制御情報が挿入された内部パケットを生成し、(4)上記パケット処理手段は、内部パケットが供給されると、当該内部パケットに挿入された処理制御情報に基づいて、当該内部パケットに挿入された処理パケットを処理するパケット処理モジュールを1又は複数用いて、上記内部パケット生成手段が生成した内部パケットを処理し、(5)上記パケット出力手段は、上記パケット処理手段により処理された内部パケットから、処理パケットを抽出して出力することを特徴とする。
【発明の効果】
【0012】
本発明によれば、複数モジュールを用いて構成した場合でもモジュール間通信の量を低減することができるパケット処理装置を提供することができる。
【図面の簡単な説明】
【0013】
【図1】実施形態に係るパケット処理装置の構成について示したブロック図である。
【図2】実施形態に係るパケット処理装置を備える通信システムの全体構成について示したブロック図である。
【図3】実施形態に係るパケット受信機能モジュール(フロー識別部)で保持されるフロー識別テーブルの内容例について示した説明図である。
【図4】実施形態に係るパケット受信機能モジュール(内部パケット生成部)で保持されるヘッダ処理テーブルの内容例について示した説明図である。
【図5】実施形態に係るパケット処理装置の各モジュール間を流れる内部パケットの構成例について示した説明図である。
【図6】実施形態のパケット処理機能モジュールを構成するDSP内の各コアの機能的構成について示した説明図である。
【図7】実施形態のパケット処理機能モジュールを構成するDSP内の各コアで保持されるバッファ管理テーブルの構成例について示した説明図である。
【図8】実施形態のパケット処理装置で、新規フローの追加処理が行われる場合の動作について示したシーケンス図である。
【図9】実施形態のパケット処理装置で、入力パケットの処理が行われる場合の動作について示したシーケンス図である。
【図10】実施形態のパケット処理装置で、フローの切断が発生した場合の動作について示したシーケンス図である。
【発明を実施するための形態】
【0014】
(A)主たる実施形態
以下、本発明によるパケット処理装置及び方法の一実施形態を、図面を参照しながら詳述する。
【0015】
(A−1)実施形態の構成
図2は、この実施形態のパケット処理装置を備える通信システム1の全体構成について示した説明図である。
【0016】
また、図1は、パケット処理装置10の構成について示したブロック図である。
【0017】
図2に示すように、通信システム1では、N台のSIP端末20(SIP端末20−1〜20−N)と、SIP端末20間のパケットを処理・中継するパケット処理装置10が配置されている。
【0018】
この実施形態では、それぞれのSIP端末20は、SIPに対応した通信端末であるものとして説明する。具体的には、例えば、SIPを用いてメッセージ送受信やメディア通信(例えば、音声通話やビデオ通話等)を行う端末が該当する。SIP端末20としては、既存のSIPに対応した端末を適用することができるので詳しい説明は省略する。
【0019】
そして、この実施形態のパケット処理装置10は、例として、SIP端末20間のメディア通信のデータが挿入されたパケット(例えば、音声通話に伴う音声データが挿入されたパケット)を処理するメディア変換サーバ機能、および、SIP端末20間の呼制御(シグナリング)を行う呼制御機能(SIPサーバの機能)に対応するものとして説明する。
【0020】
そして、パケット処理装置10では、ハードウェア的に、制御機能モジュール11、内部スイッチ12、パケット受信機能モジュール13、パケット処理機能モジュール14、及びパケット送信機能モジュール15のモジュールを備えているものとする。この実施形態では、例として、パケット処理装置10は、図示しないシャーシ(筐体)に、複数の板形状のモジュール(ブレード)を挿入して構築された装置(いわゆるブレードサーバ)であるものとする。パケット処理装置10を構成する図示しない筐体(シャーシ)や、各モジュールのハードウェア要件については、例えば既存のATCA等の規格に基づいたものを適用することができる。
【0021】
そして、パケット処理装置10を構成するモジュールのそれぞれは、図示しない内部バスに接続されているものとする。
【0022】
内部スイッチ12は、その他のモジュール間のデータ転送を行うスイッチであり、図示しない内部バスを介して、各モジュールから受信したフレームを、宛先のモジュールに転送する。この実施形態の内部スイッチ12では、イーサネット(登録商標)フレームを転送するように構成されているものとする。そして、パケット処理装置10内の各モジュールには、それぞれMACアドレス(レイヤ2アドレス)が1又は複数割り振られており、各モジュールは、宛先のモジュールに対応するMACアドレスをヘッダに設定したイーサネットフレームを、スイッチ12に送出する構成となっている。
【0023】
上述のように、内部スイッチ12を用いてモジュール間の通信を実現する構成については、例えば、既存のブレードサーバと同様の構成を適用することができるため詳しい説明については省略する。ただし、パケット処理装置10内で、各モジュール間の通信を行う構成については、上述のイーサネットフレームをスイッチングする構成に限定されず、種々の内部データ転送の構成を適用することができる。
【0024】
制御機能モジュール11は、パケット処理装置10内のパケットを処理するための各モジュール(パケット受信機能モジュール13、パケット処理機能モジュール14、パケット送信機能モジュール15)の動作を制御する機能を担っている。
【0025】
パケット処理装置10では、制御機能モジュール11の制御の下、パケットを処理するための各モジュール(パケット受信機能モジュール13、パケット処理機能モジュール14、パケット送信機能モジュール15)が、送信元のSIP端末20から受信した、メディア通信に係る入力パケット(以下「PI」とも表わす)を処理して、出力パケットを生成(以下、「PO」パケット)し、出力パケットを宛先のSIP端末20へ向けて送出する。
【0026】
次に、制御機能モジュール11の内部構成について説明する。
【0027】
制御機能モジュール11は、内部IF111、モジュール制御部112、及び呼制御部113を有している。
【0028】
内部IF111は、内部スイッチ12を介して、他のモジュールとフレームの送受信をするものである。
【0029】
モジュール制御部112は、パケットを処理するための各モジュールの動作を制御する機能を担っている。
【0030】
呼制御部113は、SIP端末20間の呼制御処理を行う機能を担っている。呼制御部113は、具体的には、例えば、SIP信号(INVITEメッセージ等のSIPメッセージ)を呼制御対象のSIP端末20とやりとりして呼制御処理(シグナリング)を行う。呼制御部113は、SIP端末20とSIP信号の送受信を行う場合、パケット受信機能モジュール13及びパケット送信機能モジュール15をネットワークNに接続するインタフェースとして用いるようにしても良いし、別途独自のインタフェースを備えるようにしても良い。なお、呼制御部113が行う呼制御処理自体は、既存のSIPサーバ(呼制御サーバ)と同様の処理を適用することができるため詳しい説明は省略する。また、図1では、呼制御部113は、制御機能モジュール11内に配置されるものとして図示しているが、呼制御部113を配置する位置は限定されないものであり、別のモジュールや外部装置に配置するようにしても良い。
【0031】
そして、呼制御部113は、SIP端末20間の呼制御処理が終了すると、モジュール制御部112に、当該パケット処理装置10で処理が必要なフローに関する情報を通知する。
【0032】
次に、パケット受信機能モジュール13の概要について説明する。
【0033】
パケット受信機能モジュール13は、内部IF131、外部IF132、パケット受信処理部133、フロー識別部134、及び内部パケット生成部135を有している。
【0034】
外部IF132は、パケット受信機能モジュール13で、外部(ネットワークN)からパケット受信するためのインタフェースである。外部IF132は、受信したパケットを、パケット受信処理部133に引き渡す。
【0035】
パケット受信処理部133は、外部IF132から供給されたパケットがメディア通信に係る入力パケットPIである場合、当該入力パケットPIについて受信処理(フロー識別部134及び内部パケット生成部135による処理)を施して、内部パケットPE1として、内部IF131に引き渡す。
【0036】
内部IF131は、内部スイッチ12を介して、他のモジュールとフレームの送受信をするためのインタフェースであり、パケット受信処理部133から供給された内部パケットPE1を、パケット処理機能モジュール14に向けて送出する。
【0037】
次に、パケット処理機能モジュール14の概要について説明する。
【0038】
パケット処理機能モジュール14は、内部IF141と、3つのDSP142(142−1〜142−3)(Digital Signal Processor)を有している。
【0039】
内部IF141は、パケット処理機能モジュール14で、内部スイッチ12を介して、他のモジュールとフレームの送受信するためのインタフェースである。また、内部IF141は、パケット受信機能モジュール13から送出された内部パケットPE1を受信して、対応するDSP142に供給する。
【0040】
DSP142(142−1〜142−3)は、それぞれ、パケット受信機能モジュール13から供給された内部パケットPE1の処理を行う半導体装置(専用チップ)である。なお、パケット受信機能モジュール13に搭載されるDSP142の数は限定されないものである。また、この実施形態では、各DSP142は、パケット受信機能モジュール13から供給された内部パケットPE1のデータについてメディア変換処理(音声コーデック変換処理)を行うものとして説明する。
【0041】
そして、それぞれのDSP142は、4つのコアC(C1〜C4)を備えており、それぞれのコアC1〜C4が並列的にメディア変換処理を行うことが可能な構成となっているものとする。
【0042】
そして、それぞれのコアCには、内部スイッチ12で認識可能なMACアドレスが付与されているものとする。したがって、パケット受信機能モジュール13では、3つのDSP142−1〜142−3により、合計12個のコアCが搭載されていることになるので、少なくとも12個のMACアドレスが付与されている。
【0043】
以下では、説明を簡易にするために、DSP142−1の各コアC1〜C4のMACアドレスを、それぞれMAC311〜MAC314と表わすものとする。例えば、DSP142−1のコアC1のMACアドレスはMAC311となる。同様に、DSP142−2の各コアC1〜C4のMACアドレスを、それぞれMAC321〜MAC324と表わすものとする。また、DSP142−3の各コアC1〜C4のMACアドレスを、それぞれMAC331〜MAC334と表わすものとする。
【0044】
したがって、内部IF141は、パケット受信機能モジュール13から供給された内部パケットPE1のイーサネットヘッダ(宛先MACアドレス)に対応するDSP142のコアCに、当該内部パケットPE1を供給する。
【0045】
なお、以下では、モジュール制御部112のMACアドレスをMAC100、パケット受信機能モジュール13のMACアドレスをMAC200、パケット送信機能モジュール15のMACアドレスを400と表わすものとする。
【0046】
そして、それぞれのコアCは、内部パケットPE1を受信すると、当該内部パケットPE1を処理し、出力パケットPOを生成し、生成した出力パケットPOをデータ部に挿入した内部パケットPE2(パケット送信機能モジュール15を宛先とするパケット)を生成(イーサネットヘッダを付与)して、内部IF141に供給する。
【0047】
そして、内部パケットPE2の供給を受けた内部IF141は、当該パケットをパケット送信機能モジュール15に向けて送出する。なお、コアCが生成した出力パケットPOにヘッダを付与する処理については、内部IF141側で行うようにしても良い。
【0048】
次に、パケット送信機能モジュール15の概要について説明する。
【0049】
パケット送信機能モジュール15は、内部IF151、パケット送信処理部153、及び外部IF152を有している。
【0050】
内部IF151は、パケット送信機能モジュール15で、内部スイッチ12を介して、他のモジュールとフレームの送受信するためのインタフェースである。また、内部IF151は、パケット処理機能モジュール14から送出された内部パケットPE2を受信して、パケット送信処理部153に供給する。
【0051】
パケット送信処理部153は、内部IF151から供給された内部パケットPE2のデータから出力パケットPOを抽出して、外部IF152に供給する処理を行う。
【0052】
外部IF152は、パケット送信機能モジュール15で、外部(ネットワークN)にパケット送信するためのインタフェースである。外部IF152は、パケット送信処理部153から供給された出力パケットPOを、ネットワークNに送出する処理を行う。
【0053】
次に、パケット受信機能モジュール13のパケット受信処理部133について説明する。
【0054】
上述の通り、パケット受信処理部133では、供給されたパケットがメディア通信に係るパケット(入力パケットPI)である場合には、当該入力パケットPIについて、フロー識別部134及び内部パケット生成部135による処理を行う。
【0055】
パケット受信処理部133では、例えば、供給されたパケットのヘッダ情報(例えば、ポート番号等)等により、当該パケットがメディア通信に係るパケット(入力パケットPI)であるか否かを判定することができる。パケット受信処理部133が受信したパケットが、メディア通信に係るパケット(入力パケットPI)に該当しない場合(例えば、ネットワーク制御に係るパケット等)の処理については、例えば、既存のサーバ(メディア変換サーバ等)と同様の処理を行うようにしても良く、詳細な説明については省略する。
【0056】
そして、外部IF132から供給されたパケットが、入力パケットPIに該当する場合、まずフロー識別部134により、いずれのフローに該当するのかが判定される。ここでいうフローとは、第1のSIP端末20と第2のSIP端末20との間のEnd−to−Endのデータの流れ(音声データの流れ)を表すものとする。具体的には、例えば、第1のSIP端末20から、第2のSIP端末20へ向けて送信される音声データの流れ(ストリーム)が該当する。この実施形態では、第1のSIP端末20と第2のSIP端末20との間の音声通話について、パケット処理装置10でメディア変換(音声コーデック変換処理)を行うため、第1のSIP端末20と、第2のSIP端末20との間では双方向で計2本のフローが発生することになる。
【0057】
フロー識別部134では、それぞれのフローに対してフローIDが付与されて管理されており、フロー識別部134では、受信した入力パケットPIが、いずれのフローIDに該当するのかを判定する処理を行う。フロー識別部134で、フローIDを判定する処理を行う具体的な方法については管理されないものであるが、この実施形態では、図3に示すような、テーブル(以下、「フロー識別テーブル」と呼ぶ)に基づいて、受信した入力パケットPIのフローIDを確認するものとする。フロー識別テーブルの内容については、制御機能モジュール11からの制御に基づいてセットされるものとする。
【0058】
そして、図3に示すように、フロー識別テーブルには、フローIDごとに、当該フローIDを識別するためのフロー識別情報として、送信元アドレス、送信元ポート番号、宛先アドレス、宛先ポート番号が登録されている。なお、フロー識別情報の項目については、フロー識別部134の内容に基づいてフローを識別することができれば、図3の例に限定されないものである。
【0059】
図3では、FID1が、SIP端末20−1からSIP端末20−2へのフローのフローIDを示しているものとする。また、図3では、FID2が、SIP端末20−2からSIP端末20−1へのフローのフローIDを示しているものとする。
【0060】
なお、図3に示すように、以下では、SIP端末20−1のIPアドレスをIP1、SIP端末20−2のIPアドレスをIP2と表わすものとする。また、SIP端末20−1側でSIP端末20−2とのパケット送受信に用いるポート番号をP1と表わすものとする。さらに、SIP端末20−2側でSIP端末20−1とのパケット送受信に用いるポート番号をP2と表わすものとする。
【0061】
そして、フロー識別部134の識別結果(当該入力パケットPIのフローID)に基づいて、内部パケット生成部135による処理が行われる。
【0062】
具体的には、内部パケット生成部135では、図4に示すヘッダ処理テーブルに基づいて、内部パケットPE1を生成する処理を行う。
【0063】
図5は、内部パケット生成部135が生成する内部パケットPE1の構成例について示した説明図である。図5(a)は、内部パケットPE1の全体構成(イーサネットフレーム全体)について示した説明図である。また、図5(b)は内部パケットPE1を構成するデータ部について示した説明図である。
【0064】
上述の通り、内部パケットPE1のデータ部には、少なくともパケット処理機能モジュール14で処理対象となるパケット(以下、「処理対象パケット」と呼ぶ)が挿入される。パケット受信機能モジュール13では、処理対象パケットの初期データとして、入力パケットPIが、内部パケットPE1のデータ部に挿入される。
【0065】
そして、内部パケット生成部135では、内部パケットPE1のデータ部に、処理対象パケット(入力パケットPI)に加えて、当該処理対象パケットの処理に関する情報として処理制御情報ICを付加する。具体的には、この実施形態の処理制御情報ICには、当該処理対象パケットのメディア変換処理(パケット処理機能モジュール14が行う処理)に関する情報として、「メディア変換処理ID」及び「フローID」が含まれるものとして説明する。
【0066】
メディア変換処理IDとは、変換処理前の音声コーデックの形式(入力パケットPIの音声コーデックの形式)と、変換処理後の音声コーデックの形式(出力パケットPOの音声コーデックの形式)の組み合わせごとに、パケット処理装置10内で共通に定められているIDを示している。
【0067】
以下では、例として、G.711μ−lawのコーデックの音声データを、G.722.1のコーデックの音声データに変換する場合のメディア変換処理IDを「TID1」であるものとする。また、逆に、G.722.1のコーデックの音声データを、G.711μ−lawのコーデックの音声データに変換する場合のメディア変換処理IDを「TID2」と表すものとする。以下では、説明を簡易とするためにメディア変換処理IDについて「TID1、TID2、TID3、…」と表わすが、実際には、「1、2、3、…」等、できるだけデータ量の少ない形式で記述(10進数ではなく2進数でビット単位の形式で記述するようにしても良い)することが望ましい。
【0068】
なお、パケット処理装置10では、上述のようにコーデックの形式だけでなく、ビットレートや圧縮率等のパラメータについても異なる組み合わせとして、メディア変換処理IDを付与するようにしても良い。なお、パケット処理機能モジュール14側で、メディア変換処理の内容が認識できれば、メディア変換処理IDの項目について、他の記述形式(例えば、変換前と変換後のコーデックの両方の情報を記述する形式)に置き換えるようにしてもよい。
【0069】
そして、内部パケット生成部135では、フローごと(フローIDごと)のメディア変換処理IDについて、図4に示すように、ヘッダ処理テーブルで管理されている。図4では、FID1のフローについては、メディア変換処理IDをTID1と設定し、FID2のフローについては、メディア変換処理IDをTID2と設定している。
【0070】
また、パケット処理装置10では、パケット受信機能モジュール13(パケット受信処理部133)から、パケット処理機能モジュール14へ、内部パケットPE1を送信する場合には、当該内部パケットPE1の入力パケットPIを処理するDSP142及びコアCを指定する。
【0071】
具体的には、パケット受信処理部133では、図4に示すように、フローIDごとに対応するコアCのMACアドレス(以下、「指定コアMACアドレス」と呼ぶ)を管理している。そして、パケット受信処理部133は、内部パケットPE1のイーサネットヘッダを生成する際に、当該ヘッダの宛先MACアドレスを、フローIDに対応する指定コアMACアドレスに設定する。
【0072】
図4では、FID1のフローについては、指定コアMACアドレスをMAC311(DSP142−1のコアC1のMACアドレス)と設定し、FID2のフローについては、メディア変換処理IDをMAC321(DSP142−2のコアC1のMACアドレス)と設定している。
【0073】
したがって、例えば、フロー識別部134でフローIDがFID1と識別された入力パケットPIに基づく内部パケットPE1では、送信元MACアドレスは「MAC200」、宛先MACアドレスは「MAC311」、処理制御情報ICのメディア変換処理IDは「TID1」、処理制御情報ICのフローIDは「FID1」となる。
【0074】
次に、上述のような内部パケットPE1を受信して処理するコアC内部の機能的構成について説明する。
【0075】
図6は、それぞれのコアC内部の機能的構成の例について示した説明図である。この実施形態では、全てのコアCは同じ構成であるものとして説明する。
【0076】
図6に示すように、それぞれのコアCは、パケット処理部CC、内部パケット入力部CR、M個の処理バッファCB(CB1〜CBM)、及び内部パケット出力部CSを有している。
【0077】
なお、図6に示すコアCの機能的構成は、物理的な構成について示すものではなく、一部又は全部を内部の処理プロセッサを用いてソフトウェア的に構成するようにしても良い。
【0078】
それぞれの処理バッファCB1〜CBMは、1つのフロー(フローID)に係る内部パケットPE1を一時的に保留するためのバッファメモリである。なお、それぞれのコアCに備える処理バッファCBの数は限定されないものである。
【0079】
なお、コアC内では、処理バッファCBにID(以下、「バッファID」と呼ぶ)が付与されているものとする。この実施形態では、処理バッファCB1〜CBMのバッファIDを、それぞれBID1〜BIDMと表わすものとする。
【0080】
そして、コアCにおいて、それぞれの処理バッファCBに対応するフローIDについては、内部パケット入力部CRで保持されるバッファ管理テーブルにより管理されているものとする。
【0081】
図7の例では、バッファID「BID1」(処理バッファCB1)と、フローID「FID1」とが対応付けられている。なお、バッファ管理テーブルにおいて、使用していない処理バッファCBに対応するフローIDの欄には、未使用であることを示すパラメータ(図7の例では「−」)が入力されるものとする。
【0082】
そして、内部パケット入力部CRでは、内部パケットPE1が供給されると、当該内部パケットPE1の処理制御情報ICのフローIDの情報を抽出する。そして、内部パケット入力部CRは、フローIDに対応するバッファIDを、バッファ管理テーブルから取得する。そして、内部パケット入力部CRは、取得したバッファIDの処理バッファCBに、当該内部パケットPE1を供給する。
【0083】
また、内部パケットPE1の処理制御情報ICから抽出したフローIDが、バッファ管理テーブルに登録されていない場合(新規のフローIDの場合)、内部パケット入力部CRは、空いている処理バッファCBに、当該フローを割り当てる。具体的には、内部パケット入力部CRは、新規のフローのフローIDを、バッファ管理テーブル上でフローIDが割り当てられていないバッファIDに対応付けて登録する。
【0084】
そして、パケット処理部CCは、各処理バッファCBに保持された内部パケットPE1からメディア変換処理ID及び処理対象パケット(入力パケットPI)を抽出する。そして、パケット処理部CCは、抽出した処理対象パケットに対して、抽出したメディア変換処理IDに基づく方式でのメディア変換処理(コーデック変換処理)を行い、出力パケットPOを生成する。そして、パケット処理部CCは、出力パケットPOを挿入した内部パケットPE2(パケット送信機能モジュール15を宛先MACアドレスとするフレーム)を生成して、内部IF141に引き渡す。なお、パケット処理部CCが行うメディア変換処理自体は、既存のメディア変換サーバと同様の処理を適用することができるため、詳しい説明は省略する。
【0085】
(A−2)実施形態の動作
次に、以上のような構成を有するこの実施形態のパケット処理装置10の動作について図8〜図10のフローチャートを用いて説明する。
【0086】
図8〜図10のフローチャートでは、説明を簡易にするために、SIP端末20−1からSIP端末20−2へむけて送出されるフローを中心とした動作説明をしている。パケット処理装置10において、各フローに関する個別の動作については、各種パラメータ(例えば、メディア変換処理の内容やアドレス等)が異なるだけであるため詳しい説明を省略する。
【0087】
図8は、パケット処理装置10で新規フローの受入れ準備を行う処理について示したフローチャートである。
【0088】
まず、制御機能モジュール11(呼制御部113)により、SIP端末20−1とSIP端末20−2との間のSIPに基づく呼制御(INVITEメッセージを利用した呼制御)が完了し、SIP端末20−1と、SIP端末20−2との間の音声通話(双方向の音声データのセッション)について接続状態となったものとする(S101)。
【0089】
そして、呼制御部113から、モジュール制御部112に、SIP端末20−1とSIP端末20−2との間の音声通話フローに関する情報が供給される。そして、モジュール制御部112では、SIP端末20−1からSIP端末20−2へのフローと、SIP端末20−2からSIP端末20−1へのフローに対して、それぞれフローID及びコアCの割り当てが実行される(S102)。
【0090】
呼制御部113からモジュール制御部112に対しては、少なくとも、パケット受信機能モジュール13に設定するパラメータを決定できる内容が含まれている必要がある。具体的には、フローごとの、送信元アドレス、送信元ポート番号、宛先アドレス、宛先ポート番号、送信元のSIP端末20が対応するメディアの種類(コーデックの種類)、宛先のSIP端末20が対応するメディアの種類(コーデックの種類)の項目の情報が含まれる必要がある。なお、送信元及び宛先のSIP端末20が対応するメディアの種類(コーデックの種類)については、上述のメディア変換処理IDを用いて表現するようにしても良い。
【0091】
そして、モジュール制御部112では、上述の例と同様に、SIP端末20−1からSIP端末20−2へのフローには、FID1というフローIDが付与され、SIP端末20−2からSIP端末20−1へのフローには、FID2というフローIDが付与されたものとする。また、FID1のフローには、指定コアMACアドレスとしてMAC311が付与され、FID2のフローには、指定コアMACアドレスとしてMAC321が付与されたものとする。
【0092】
なお、モジュール制御部112では、フロー識別部134のフロー識別テーブル、及び、内部パケット生成部のヘッダ処理テーブルと同様の情報について保持しているものとする。
【0093】
そして、モジュール制御部112からパケット受信機能モジュール13へは、FID1のフローとFID2のフローについて新規に処理を開始する指示と共に、フロー識別テーブル及びヘッダ処理テーブルに設定するために必要な情報が通知される(S103)。
【0094】
そして、パケット受信機能モジュール13のフロー識別部134では、モジュール制御部112からの通知に基づいて、ヘッダ処理テーブルに新規フロー(FID1及びFID2のフロー)に関する情報がセットされる(S104)。
【0095】
ここでは、上述のステップS104の処理の結果、ヘッダ処理テーブルの内容は、上述の図3のような内容になったものとする。
【0096】
そして、パケット受信機能モジュール13の内部パケット生成部135では、モジュール制御部112からの通知に基づいて、フロー識別テーブルに新規フロー(FID1及びFID2のフロー)に関する情報がセットされる(S105)。
【0097】
ここでは、上述のステップS105の処理の結果、フロー識別テーブルの内容は、上述の図4のような内容になったものとする。
【0098】
そして、パケット受信機能モジュール13では、各テーブルへのデータのセットが終了すると、当該フロー(FID1、FID2のフロー)について処理の準備が完了した旨を、制御機能モジュール11(モジュール制御部112)に通知する(S106)。
【0099】
以上のように、パケット処理装置10(パケット受信機能モジュール13)では、新規フローの受入れ準備を行う処理が実行される。
【0100】
次に、パケット処理装置10でSIP端末20−1から受信した入力パケットPIを処理して、出力パケットPOをSIP端末20−2に向けて送出する動作について、図9のフローチャートを用いて説明する。
【0101】
ここでは、上述の図8の処理により、パケット受信機能モジュール13には、FID1及びFID2に関する情報はセットされているものとする。
【0102】
そして、パケット受信機能モジュール13では、SIP端末20−1からSIP端末20−2へのフロー(FID1のフロー)の入力パケットPIが到来すると(S201)、まず、フロー識別部134により当該入力パケットPIのフローが識別される(S202)。
【0103】
そして、当該入力パケットPIは、内部パケット生成部135により、フロー識別部134の識別結果(FID1)に基づいた処理が行われ、内部パケットPE1が生成される(S203)。
【0104】
当該内部パケットPE1の宛先MACアドレスは、ヘッダ処理テーブルの内容に基づいて、MAC311(DSP142−1のコアC1)が設定されることになる。
【0105】
そして、当該内部パケットPE1が内部スイッチ12を経由してパケット処理機能モジュール14のDSP142−1のコアC1に送信される(S204)。
【0106】
そして、DSP142−1のコアC1では、当該フロー(FID1のフロー)の内部パケットPE1は、初めて受信することになるので、当該フローに対して、新規に処理バッファCBを割り当てる処理(バッファ管理テーブルへの登録処理)が行われる(S205)。
【0107】
ここでは、DSP142−1のコアC1では、FID1のフローに対して、処理バッファCB1(BID1のバッファ)が割り当てられ、バッファ管理テーブルの内容は、上述の図7のように設定されたものとする。
【0108】
そして、当該内部パケットPE1は、DSP142−1のコアC1の内部パケット入力部CRにより、当該フローに割り当てられた処理バッファCB1に供給される(S206)。
【0109】
そして、DSP142−1のコアC1を構成するパケット処理部CCでは、処理バッファCB1で保持された内部パケットPE1の処理が開始され(S207)、当該処理に基づいたタイミングで、出力パケットPOが生成される。そして、処理バッファCB1では、その生成した出力パケットPOを挿入した内部パケットPE2が生成され、パケット送信処理部153に送信される(S208)。
【0110】
そして、内部パケットPE2を受信したパケット送信機能モジュール15では、パケット送信処理部153により内部パケットPE2から出力パケットPOが抽出され、ネットワークNに送出(SIP端末20−2へ向けて送信)される(S209)。
【0111】
その後、パケット処理装置10では、FID1のフローの入力パケットPIが供給される度に、同様の処理(ただし、ステップS205の処理バッファCB割り当て処理は除く)が行われることになる。
【0112】
そして、その後、SIP端末20−1とSIP端末20−2との間の音声通話の処理が終了し、SIP端末20−1とSIP端末20−2との間の音声通話を切断した場合のパケット処理装置10の動作について図10を用いて説明する。
【0113】
まず、呼制御部113により、SIP端末20−1とSIP端末20−2との間の音声通話が終了し、切断する呼制御が行われたものとする(S301)。
【0114】
呼制御部113による音声通話の切断の呼制御については、例えば、既存のSIPサーバ(呼制御サーバ)と同様の処理を適用することができるので、詳しい説明については省略する。
【0115】
そして、呼制御部113から、モジュール制御部112に、SIP端末20−1とSIP端末20−2との間の音声通話に係るフローの情報が供給され、モジュール制御部112は、その供給された情報に基づいて、対応するフロー(フローID)を確認する(S302)。
【0116】
なお、上述の通り、モジュール制御部112では、フロー識別部134及び内部パケット生成部135が保持するフロー識別テーブル及びヘッダ処理テーブルと同様の情報について保持しているものとする。
【0117】
呼制御部113からモジュール制御部112に対しては、少なくとも、切断対象となるフローのフローIDが特定できる情報が含まれている必要がある。例えば、上述のステップS102で説明した、呼制御部113からモジュール制御部112に対して供給される情報と同様の項目としても良い。
【0118】
そして、モジュール制御部112では、切断対象のフローとして、FID1及びFID2が検出される。
【0119】
そして、モジュール制御部112からパケット受信機能モジュール13へは、FID1のフローとFID2のフローについて切断処理を行う指示が通知される(S303)。
【0120】
そして、パケット受信機能モジュール13のフロー識別部134では、モジュール制御部112からの通知に基づいて、フロー識別テーブルから切断対象フロー(FID1及びFID2のフロー)に関する情報が削除される。また、パケット受信機能モジュール13の内部パケット生成部135では、モジュール制御部112からの通知に基づいて、ヘッダ処理テーブルから切断対象フロー(FID1及びFID2のフロー)に関する情報が削除される(S304)。
【0121】
そして、パケット受信機能モジュール13の内部パケット生成部135は、切断処理を行うフローIDに対応する指定コアMACアドレス宛に、当該フローIDについて切断処理を指示するための制御用の内部パケットを生成して送信する(S305)。
【0122】
具体的には、内部パケット生成部135では、処理バッファCB1のコア1宛(MAC311)に、FID1のフローの切断処理を指示する内部パケットが生成・送出が行われる。また、内部パケット生成部135では、処理バッファCB2のコア2宛(MAC311)に、FID2のフローの切断処理を指示する内部パケットが生成・送出が行われる。
【0123】
また、切断処理を指示するための内部パケットの記述形式については限定されないものであるが、例えば、処理制御情報ICに、切断処理を行う旨の指示信号(例えば、切断処理を示す所定パターンのデータ)と、切断処理の対象となるフローのフローIDを含むように記述してもよい。
【0124】
そして、パケット受信機能モジュール13から、切断処理を指示する内部パケットを受信したパケット処理機能モジュール14のコアC(DSP142−1のコア1及びDSP142−2のコア1)は、フロー識別テーブルから切断対象フローのフローID(FID1及びFID2)の情報が削除され、対応する処理バッファCBが未使用の状態に管理される(S306)。
【0125】
そして、パケット受信機能モジュール13では、各テーブルからの情報削除、及び、パケット処理機能モジュール14へのフロー切断指示の内部パケットの送信が終了すると、当該フロー(FID1、FID2のフロー)について切断処理が完了した旨を、制御機能モジュール11(モジュール制御部112)に通知する(S307)。
【0126】
上述のように、パケット処理装置10では、呼制御結果に応じたフローの切断処理が行われる。
【0127】
(A−3)実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
【0128】
パケット処理装置10では、パケット受信機能モジュール13で、処理対象パケット(入力パケットPI)に処理制御情報IC付加した内部パケットを生成して後段のモジュール(パケット処理機能モジュール14)への処理の指示を行っている。これにより、パケット処理装置10では、制御機能モジュール11から、パケット受信機能モジュール13に対する制御を行うだけで、各フローに対するパケット処理を行うことが可能となる。
【0129】
従来の複数モジュールを用いて構成するパケット処理装置では、装置全体を制御する制御機能モジュールから、他のモジュールの全てに対する制御やモジュール間の同期制御処理を行う必要があった。一方、この実施形態のパケット処理装置10では、上述の通りパケット受信機能モジュール13で、処理制御情報IC付加した内部パケットを生成して後段のモジュールに引き渡すことにより、制御機能モジュール11による制御処理の量を低減することができる。
【0130】
以上のように、パケット処理装置10では、制御機能モジュール11による他のモジュールへの制御処理の量を低減することにより、モジュール間の通信量を低減し、パケット処理装置10全体の制御性能等を向上させることができる。特に、制御処理能力が低く、パケット処理能力が高いハードウェア上でパケット処理装置10を実現する場合、上述の効果が大きくなる。また、機能モジュール数が多いハードウェアでパケット処理装置10を実現する場合でも上述の効果が大きくなる。
【0131】
(B)他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【0132】
(B−1)上記の実施形態のパケット処理装置10では、パケット処理機能モジュール14を1つだけ搭載しているが、複数搭載して、パケット処理手段を実現するようにしてもよい。
【0133】
例えば、上記の実施形態のパケット処理装置10では、パケット処理機能モジュール14を用いて、処理対象パケットに挿入された音声データのメディア変換処理を行っているが、パケット処理機能モジュール14の後段(パケット処理機能モジュール14とパケット送信機能モジュール15との間)に、第2のパケット処理機能モジュールを追加して、暗号化処理を行うようにしてもよい。このように、パケット処理装置10では、複数のパケット処理機能モジュールを直列に連結した多段構成とすることにより、パケット処理を行うようにしてもよい。
【0134】
パケット処理装置10に、複数段のパケット処理機能モジュールが連結して搭載されている場合には、パケット受信機能モジュール13の内部パケット生成部135では、それぞれの段のパケット処理機能モジュールに対する制御情報をスタックして内部パケットの処理制御情報ICを構成するようにしてもよい。この場合、それぞれのパケット処理機能モジュールに対する制御情報としては、例えば、当該パケット処理機能モジュールの処理内容(例えば、暗号化方式や、暗号化に係るパラメータ等)の情報や、次の段のパケット処理モジュールへ内部パケットを送信する際の宛先(MACアドレス)の情報が記述されている必要がある。
【0135】
このように、パケット受信機能モジュール13で、多段構成のパケット処理機能モジュールのそれぞれに対する制御情報を有する処理制御情報ICと、処理対象パケット(入力パケットPI)とを挿入した内部パケットを生成し、生成した内部パケットを多段構成の先頭のパケット処理機能モジュールに引き渡すだけで、多段構成のパケット処理機能モジュールのそれぞれに処理対象パケットの処理を実行させることができる。このように、本発明のパケット処理装置10では、パケット処理機能モジュールの数が多くなるほど、モジュール間の制御処理量の低減効果を大きくすることができる。
【0136】
(B−2)上記の実施形態では、パケット処理装置10において、処理対象パケット(入力パケットPI)のヘッダのアドレス等の変換処理(送信元及び又は宛先のIPアドレスやポート番号について変換する処理)を行う構成となっていないが、ヘッダのアドレス等を変換する処理構成について付加するようにしてもよい。
【0137】
パケット処理装置10において、ヘッダのアドレス等を変換する処理を行うモジュールについては限定されないものであるが、例えば、パケット受信機能モジュール13の内部パケット生成部135で行うようにしてもよい。例えば、内部パケット生成部135において、入力パケットPIに対して所定のアドレス変換処理を行ったものを初期の処理対象パケットとして、内部パケットPE1に挿入するようにしてもよい。この場合、内部パケット生成部135は、図示しないアドレス変換テーブルに基づいて、入力パケットPIに対するアドレス変換処理を行うようにしてもよい。内部パケット生成部135で保持されるアドレス変換テーブルの内容や、内部パケット生成部135による具体的なアドレス変換処理の内容については、例えば、既存のNAT(Network Address Translation)やNAPT(Network Address Port Translation)に対応するルータ等と同様の処理を適用することができる。
【0138】
(B−3)上記の実施形態では、パケット処理装置10で用いる呼制御信号はSIP信号(SIPメッセージ)を用いるものとして説明したが、呼制御方式はSIPに限定されず、既存の種々の方式を適用することができる。
【0139】
(B−4)上記の実施形態では、パケット処理機能モジュール14へのフローの切断処理の指示を、パケット受信機能モジュール13から行っているが、制御機能モジュール11から直接指示するように構成してもよい。
【符号の説明】
【0140】
1…通信システム、10…パケット処理装置、20、20−1〜20−N…SIP端末、11…制御機能モジュール、12…内部スイッチ、111…内部IF、112…モジュール制御部、113…呼制御部、13…パケット受信機能モジュール、131…内部IF、132…外部IF、133…パケット受信処理部、134…フロー識別部、135…内部パケット生成部、14…パケット処理機能モジュール、141…内部IF、142、142−1〜142−3…DSP、DSP142−3、C、C1〜C4…コア、15…パケット送信機能モジュール、151…内部IF、153…パケット送信処理部、152…外部IF、PI…入力パケット、PO…出力パケット、PE1、PE2…内部パケット、IC…処理制御情報、N…ネットワーク、C…コア、CC…パケット処理部、CR…内部パケット入力部、CB、CB1〜CBM…処理バッファ、CS…内部パケット出力部。
【特許請求の範囲】
【請求項1】
入力パケットを処理するパケット処理装置において、
それぞれの入力パケットに対して、当該入力パケットの処理に関する処理制御情報を生成する制御情報生成手段と、
初期の処理パケットとしての入力パケットと、当該処理パケットの処理制御情報が挿入された内部パケットを生成する内部パケット生成手段と、
内部パケットが供給されると、当該内部パケットに挿入された処理制御情報に基づいて、当該内部パケットに挿入された処理パケットを処理するパケット処理モジュールを1又は複数用いて、上記内部パケット生成手段が生成した内部パケットを処理するパケット処理手段と、
上記パケット処理手段により処理された内部パケットから、処理パケットを抽出して出力するパケット出力手段と
を有することを特徴とするパケット処理装置。
【請求項2】
入力パケットの各フローに関するフロー情報を管理するフロー情報管理手段と、
上記フロー情報管理手段で管理された情報に基づいて、入力された入力パケットが属するフローを識別するフロー識別手段とをさらに備え、
上記制御情報生成手段は、入力パケットのフロー情報に基づいて、当該入力パケットの処理制御情報を生成する
ことを特徴とする請求項1に記載のパケット処理装置。
【請求項3】
内部パケットの処理制御情報には、少なくとも当該内部パケットに挿入された処理パケットの処理内容を識別する処理IDが含まれることを特徴とする請求項2に記載のパケット処理装置。
【請求項4】
内部パケットの処理制御情報には、さらに、当該内部パケットに係るフローを識別するためのフローIDが含まれることを特徴とする請求項3に記載のパケット処理装置。
【請求項5】
入力パケットを処理するパケット処理装置のパケット処理方法において、
制御情報生成手段、内部パケット生成手段、パケット処理手段、パケット出力手段を備え、
上記制御情報生成手段は、それぞれの入力パケットに対して、当該入力パケットの処理に関する処理制御情報を生成し、
上記内部パケット生成手段は、初期の処理パケットとしての入力パケットと、当該処理パケットの処理制御情報が挿入された内部パケットを生成し、
上記パケット処理手段は、内部パケットが供給されると、当該内部パケットに挿入された処理制御情報に基づいて、当該内部パケットに挿入された処理パケットを処理するパケット処理モジュールを1又は複数用いて、上記内部パケット生成手段が生成した内部パケットを処理し、
上記パケット出力手段は、上記パケット処理手段により処理された内部パケットから、処理パケットを抽出して出力する
ことを特徴とするパケット処理方法。
【請求項1】
入力パケットを処理するパケット処理装置において、
それぞれの入力パケットに対して、当該入力パケットの処理に関する処理制御情報を生成する制御情報生成手段と、
初期の処理パケットとしての入力パケットと、当該処理パケットの処理制御情報が挿入された内部パケットを生成する内部パケット生成手段と、
内部パケットが供給されると、当該内部パケットに挿入された処理制御情報に基づいて、当該内部パケットに挿入された処理パケットを処理するパケット処理モジュールを1又は複数用いて、上記内部パケット生成手段が生成した内部パケットを処理するパケット処理手段と、
上記パケット処理手段により処理された内部パケットから、処理パケットを抽出して出力するパケット出力手段と
を有することを特徴とするパケット処理装置。
【請求項2】
入力パケットの各フローに関するフロー情報を管理するフロー情報管理手段と、
上記フロー情報管理手段で管理された情報に基づいて、入力された入力パケットが属するフローを識別するフロー識別手段とをさらに備え、
上記制御情報生成手段は、入力パケットのフロー情報に基づいて、当該入力パケットの処理制御情報を生成する
ことを特徴とする請求項1に記載のパケット処理装置。
【請求項3】
内部パケットの処理制御情報には、少なくとも当該内部パケットに挿入された処理パケットの処理内容を識別する処理IDが含まれることを特徴とする請求項2に記載のパケット処理装置。
【請求項4】
内部パケットの処理制御情報には、さらに、当該内部パケットに係るフローを識別するためのフローIDが含まれることを特徴とする請求項3に記載のパケット処理装置。
【請求項5】
入力パケットを処理するパケット処理装置のパケット処理方法において、
制御情報生成手段、内部パケット生成手段、パケット処理手段、パケット出力手段を備え、
上記制御情報生成手段は、それぞれの入力パケットに対して、当該入力パケットの処理に関する処理制御情報を生成し、
上記内部パケット生成手段は、初期の処理パケットとしての入力パケットと、当該処理パケットの処理制御情報が挿入された内部パケットを生成し、
上記パケット処理手段は、内部パケットが供給されると、当該内部パケットに挿入された処理制御情報に基づいて、当該内部パケットに挿入された処理パケットを処理するパケット処理モジュールを1又は複数用いて、上記内部パケット生成手段が生成した内部パケットを処理し、
上記パケット出力手段は、上記パケット処理手段により処理された内部パケットから、処理パケットを抽出して出力する
ことを特徴とするパケット処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2013−110507(P2013−110507A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−252684(P2011−252684)
【出願日】平成23年11月18日(2011.11.18)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願日】平成23年11月18日(2011.11.18)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】
[ Back to top ]