JP5059266B2 - データ・パケットの処理 - Google Patents

データ・パケットの処理 Download PDF

Info

Publication number
JP5059266B2
JP5059266B2 JP2001510206A JP2001510206A JP5059266B2 JP 5059266 B2 JP5059266 B2 JP 5059266B2 JP 2001510206 A JP2001510206 A JP 2001510206A JP 2001510206 A JP2001510206 A JP 2001510206A JP 5059266 B2 JP5059266 B2 JP 5059266B2
Authority
JP
Japan
Prior art keywords
packet
template
data
processor
stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001510206A
Other languages
English (en)
Other versions
JP2003504967A (ja
Inventor
スミス,ジョーゼフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nortel Networks Ltd
Original Assignee
Nortel Networks Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nortel Networks Ltd filed Critical Nortel Networks Ltd
Publication of JP2003504967A publication Critical patent/JP2003504967A/ja
Application granted granted Critical
Publication of JP5059266B2 publication Critical patent/JP5059266B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

【0001】
(発明の属する技術分野)
本発明は、インターネット・プロトコル(IP)パケットの処理に用いることが可能なデータ・パケット処理方法及び装置に関する。
【0002】
(発明の背景)
パケット単位及びセル単位の転送プロトコルは、音声、データ、及び映像などの広範囲なトラフィック種類を運ぶ能力のために受け入れられてきている。インターネット・プロトコル(IP)は、相互接続されたネットワークを超える通信、及び、様々なハードウェア・アーキテクチャを有するコンピュータとオペレーティング・システムとの間の通信を提供するネットワーキング・プロトコルとして、産業界で幅広く受け入れられてきている。国際電気通信連合(ITU)のH.323、及び、インターネット・エンジニアリング・タスクフォースのセッション・イニシエイション・プロトコル(SIP)のプロトコル一式は、いずれもIP及びインターネット電話用の規格として開発されている。図1は、音声データがIPネットワークを通じた転送のために処理される典型的な方法を示す。最初に、音声データが受信され(2)、多くの場合圧縮され(4)、データ・パケットのペイロードを構成する。このデータ・パケットは、IPスタックを通ってルーティングされる(6)。IPスタックは、パケットにルーティング情報及び他のオーバーヘッド情報を付加する。最後に、組み立てられたデータ・パケットがデータ・ネットワークを通じて送信される(8)。図2に示すように、これにより、パケット・ストリーム74〜77が得られる。各パケットは、オーバーヘッド若しくはヘッダ・セクション70と、ペイロード・セクション72とを有する。各データ・パケットは、これと同じように処理される。すなわち、パケット74〜77のそれぞれのオーバーヘッド・セクション72は、パケットをIPスタックを通してルーティングさせることによって生成される。データ・パケットをIPスタックを通るようにルーティングさせる工程は、多くの場合、ソフトウェアによって実行され、システム・プロセッサ上に高い要求を発生させる。プロセッサ上の要求は、このデータが、音声信号を遅延させるのを回避するためにリアルタイム処理が要求されるリアルタイム音声データであるという事実によって、更に悪化させられる。
【0003】
(発明の開示)
本発明は、より効率的なデータ・パケット処理方法を提供することを探究する。
【0004】
本発明の第一の態様は、データ・ネットワーク上にパケット形式で送信されることが意図された受信データ・ストリームを処理する方法であって、該データを、各パケットがペイロード・セクションとオーバーヘッド・セクションとを有するパケット・ストリームへ構成する工程を有し、該パケットを構成する工程は、前記パケット・ストリームによって用いられるテンプレート・オーバーヘッド・セクションを作成し、該テンプレートを前記データに適用して前記パケットを構成する方法を提供する。
【0005】
パケット・ストリームによって用いられるテンプレート・オーバーヘッド、ヘッダ、又はセクションを生成することは重要な利点を有する。このオーバーヘッド・データは、ストリームのすべてのパケットに対して生成される必要はなく、一度だけ生成されればよい。これは、データ・パケットを構築するプロセッサ上の処理要求を大幅に削減する。これにより、より安価なマイクロプロセッサを用いることができる。或いは、同じマイクロプロセッサが従前よりも多くのトラフィック処理チャネルをサポートすることができる。更に、データによって経験される送信遅延を削減することができ、データによって運ばれるトラフィックの品質を向上させることができる。
【0006】
テンプレート作成工程は、そのパケットに対するルーティング情報を含むテンプレートを作成することが好ましい。テンプレート・オーバーヘッド・セクションは、パケットをルーティング・スタックを通るように送信することによって構成することができる。テンプレートが適用される後続データはルーティング・スタックを通るように転送されないため、処理リソースを大幅に節約することができる。
【0007】
本方法は、後でテンプレート・パケットとして識別され得るパケットを生成する工程を更に有し、テンプレート・オーバーヘッド・セクションは、テンプレート・パケットをルーティング・スタックを通るように送信し、後で該パケットをテンプレート・パケットとして識別し、ルーティング・スタックによってテンプレート・パケットに適用されたルーティング情報を用いて構成されることが好ましい。
【0008】
テンプレート構造は、メモリ内に作成することが可能であり、ルーティング・スタックを通るように転送されるパケットは、このテンプレート構造へのポインタを含み得る。このポインタは、ルーティング・スタックを通るように転送されるパケットのペイロードに保持されることが可能であり、テンプレート構造は、そのパケットがテンプレートであることを示す識別子を含み得る。
【0009】
ルーティング情報は、テンプレート・パケットからテンプレート構造へコピーされるのが好ましい。このパケットの後でテンプレート・パケットとして識別されること及びテンプレート構造への情報のコピーは、データリンク層で実行され得る。この方法は、全体的に、ルーティング・スタックの内部動作から独立している。なぜなら、ルーティング・スタックは、データのペイロードに対して、通常通りの方法で、通常通りのルーティング情報及び他のオーバーヘッド情報を生成するように動作するからである。パケットがテンプレート・パケットであることを明らかにし、テンプレート構造をオーバーヘッド情報で満たすのは、データリンク層によるパケットの後続の調査である。
【0010】
必要であれば、新しいテンプレート・オーバーヘッド・セクションが、データ・ストリームの持続時間中に周期的に作成されることも可能である。
【0011】
このテンプレーティング方法は、選択されたパケット種類に対してのみ適切である。よって、パケット種類を決定する工程を更に有し、テンプレートを生成し、該テンプレートを選択されたパケット種類に適用する工程のみを実行することが好ましい。このテンプレーティング方法は、リアルタイム転送プロトコル(RTP)及びユーザ・データグラム・プロトコル(UDP)のパケット種類に対して特に適切である。
【0012】
更に、第一のプロセッサを用いてテンプレート・パケットを作成し、このテンプレートを第二のプロセッサを用いてデータに適用することによっても利点が得られる。第二のプロセッサは、第一のプロセッサよりも低い機能性を有するプロセッサであって、第一のプロセッサのコプロセッサ、縮小命令セット(RISC)プロセッサ、又はFPGA(field programmable gate array)であると有益的である。
【0013】
本発明の別の態様は、データ・ネットワーク上にパケット形式で送信されることが意図された受信データ・ストリームを処理する装置であって、該受信データを、各パケットがデータのペイロード・セクション及びオーバーヘッド・セクションを有するパケット・ストリームへ構成するプロセッサを有し、該プロセッサは、前記パケット・ストリームによって用いられるテンプレート・オーバーヘッド・セクションを作成し、該テンプレートを前記データに適用して前記パケットを構成するように構成されている装置を提供する。
【0014】
この装置は、全体がハードウェアで実現されてもよく、ソフトウェアとハードウェアの組み合わせにより実現されてもよい。
【0015】
本方法は、プロセッサを制御するソフトウェア・コードとして実現されてもよい。従って、本発明の更に別の態様は、上記方法を実行するソフトウェア・コードを提供する。このコードは、ディスケット、光ディスク、若しくはメモリ装置などの機械可読媒体上に記録されてもよい。
【0016】
本発明の更に別の態様は、シグナリング・パケットとリアルタイム・データを運ぶリアルタイム・パケットとの2種類のデータ・パケットを処理する方法であって、シグナリング・パケットを第一のプロセッサによって処理し、リアルタイム・パケットを第二のプロセッサによって処理する方法を提供する。
【0017】
第二のプロセッサは、第一のプロセッサよりも低い機能性を有するプロセッサであると有益的である。これにより、第一のプロセッサ上の処理要求が大幅に低減され、完全な機能性を備えたプロセッサ群を用いる場合よりもより安価な装置とすることができる。第二のプロセッサは、第一のプロセッサのコプロセッサ、縮小命令セット(RISC)プロセッサ、又はFPGA(field programmable gate array)であると有益的である。
【0018】
データ・パケットを送信する際、第一のプロセッサを用いて、リアルタイム・データ・パケット・ストリームによって用いられるテンプレート・オーバーヘッド・セクションを生成し、第二のプロセッサを用いて、テンプレートをリアルタイム・データ・パケットに適用することによって更なる利点が得られる。
【0019】
好ましい特徴は、適切に組み合わせられてもよく、本発明の任意の態様と組み合わせられてもよいことは当業者には明らかであろう。
【0020】
(発明の詳細な説明)
本発明をより良い理解のために、及び、本発明が如何にして実行され得るかを例示的に示すために、ここで、添付図面を参照して実施形態を説明する。
【0021】
図3は、データ・ネットワークを通じて電話を掛けることができる典型的なシステムを示す。端末10、11は、構内交換機PBX Aの個別のディジタル回線カード(DLC)12へ接続されている。音声、FAX、及び他の情報は、シグナリング情報と共に、時分割多重(TDM)内部バス15を通じて、データ・ネットワーク30とのインターフェースとなるIPゲートウェイ・カード20へ切り替えられる。ゲートウェイ・カード20は、PBXによって用いられるフォーマットとデータ・ネットワーク30を通じた転送に必要なフォーマットとの間の変換を実行する。このゲートウェイ機能は、更に、ダイヤルされた番号とインターネット・プロトコル・アドレスとの間の変換を扱う。トラフィックは、通常、TCP/IP若しくはUDP/IPフォーマットに従って、データ・ネットワーク上を運ばれる。すなわち、シグナリングは、通常、TCPパケットによって運ばれ、音声データは、リアルタイム転送プロトコル(RTP)のユーザ・データグラム・プロトコル(UDP)パケット・ストリームによって運ばれる。音声若しくは他の音声帯域情報は、データ・ネットワーク30を超えてパケットをルーティングさせるための情報を運ぶヘッダをそれぞれが有するデータ・パケット内へパッケージ化される。このデータ・ネットワークは、データ・ネットワーク30を超えるトラフィックのルーティングを実行するルータ25、26を含む。以上の装置は本分野では既知である。データ・ネットワーク30は、構内IPデータ・ネットワーク若しくはイントラネットでもよく、公のインターネットでもよい。ユーザがデータ・ネットワーク30に直接接続されたコンピュータ端末16から電話を掛ける場合、(音声データをパケットへ組み立てる)IPゲートウェイ・カードの機能は、端末16自身のソフトウェアによって実行される。
【0022】
図4は、UDPデータを運ぶIPパケット若しくはデータグラムのフォーマットを示す。これは、UDPデータのペイロード60と、(8バイトの)UDPヘッダ61と、(20バイトの)IPヘッダ62と、物理層若しくはデータリンク層ヘッダ63と、を有する。ペイロード60の長さは変化する。図5は、8バイトのUDPヘッダ61のフォーマットを示し、図6は、20バイトのIPヘッダ62のフォーマットを示す。UDPヘッダの16ビットのUDPチェックサム64が、UDPデータ60、UDPヘッダ61、及びIPヘッダ62の一部に提示されたデータに従って計算される。
【0023】
図7は、データ・パケットをデータ・ネットワークを通じた送信のために処理する方法を示す。これは、UDP/IPパケットを参照して説明される。UDP/IPは、VoIP(Voice over IP;IPネットワーク上に音声を通すための技術の総称)用途で用いられる種類のRTP音声データ・パケットを運ぶのに用いられる。しかし、この技術が、ストリーム内の各パケットに関連付けられたオーバーヘッド情報が同じであれば、あらゆる種類のストリーム化されたデータ・パケットに対してより幅広く適用させることが可能なのは明らかである。TCPパケットは、この方法によって処理することができない。なぜなら、それらは個々にIP層における承認を必要とするからである。
【0024】
最初に、データ・ネットワークを超えて発信元から宛先へデータ・ストリームを送信するために、発信元においてUDPソケット100が確立される。このソケットは、通常、TCP/IP呼セットアップ・シグナリングの結果として確立される。ソケットは、ほとんどの今日のオペレーティング・システムにおいて、幅広く用いられているネットワーク・インターフェース用プログラミング・インターフェースである。
【0025】
特殊なテンプレート・パケットが、通常のUDP/IPルーティング・スタック105を通ってルーティングされる。このテンプレート・パケットのペイロードは、メモリに記録された固有のテンプレート構造のポインタ、すなわちメモリ・アドレスを有する。このポインタにより、パケットはデータリンク層によってテンプレート・パケットとして識別される。
【0026】
テンプレート構造の好ましい構成は、
1.固有の識別子 − それがテンプレート・パケットであるか否かを素早く判断するためにデータリンク層によって用いられる。
2.手旗信号(semaphore) − テンプレート構造の送信者にこのテンプレートが使える状態であることを示すためにデータリンク層によって用いられるフラグ。
3.ドライバ送信機能 − UDP/IPスタックを通るようにルーティングされない後続のパケットの直接送信を可能にするためにパケットが送信される際に通らなければならないインターフェースに固有の機能。パケット・テンプレートと共にデータリンク層によって満たされる。
4.ドライバ送信パラメータ − ドライバ送信機能と共に用いられ、パラメータ・ストリームが通るインターフェースの識別を可能にするパラメータ。複数のネットワーク・インターフェースを有するシステムにおいて必要とされる。パケット・テンプレートと共にデータリンク層によって満たされる。
5.テンプレート・データ − 作成されたテンプレートの実際のデータ。
6.テンプレート長 − テンプレート・データ・エリアの長さ。
【0027】
デバイス・ドライバ(データリンク層110)は、テンプレート・パケットを検知し、このルーティングされたテンプレート・パケットを送信者へ送り返す。次いで、データリンク層は、このルーティングされたパケットからのヘッダ情報をメモリ内の特殊なテンプレート構造内へコピーする。後続データ130は、パケットをデータリンク層へ直接送信するためにデータリンク層によってちょうど満たされたテンプレート構造における情報を用いるテンプレート・ソケット120を通じて、送信される。
【0028】
IPプロトコルは、IPヘッダのみをカバーするIPヘッダ・チェックサム(654、図64)を含む。このチェックサムの値は、特に、ペイロード長に依存する。データ・パケットが同じ長さであれば、IPヘッダ・チェックサムは、すべてのパケットに対して同じであり、テンプレート情報の一部として含まれ得る。これは、UDPストリーム・パケットがなるであろう長さまで詰めものが埋め込まれたテンプレート・パケットを送信することによって為される。パケットが異なる長さであれば、IPヘッダ・チェックサムは、データリンク層へ送信される前に、各パケットに対して再計算されなければならない。
【0029】
パケットは、データ・ネットワークを通じた送信のためにデバイス・ドライバ(データリンク層)へ直接送信され、UDP/IPスタック105をバイパスする。前述のIPチェックサムと同様に、パケット毎に長さが異なれば、UDPチェックサムのみが再計算されなければならない。従って、テンプレートが適用される後続データ130は、すべてのパケットに対してUDP/IPルーティングを実行することをプロセッサに要求することがなく、より迅速に処理され得る。ここで図2に戻る。パケット74のオーバーヘッド・セクション70は、IPスタックを通るようにテンプレート・パケットをルーティングさせることによって生成することができ、パケット75〜77のオーバーヘッド・セクション70は、パケット75〜77のそれぞれをIPスタックを通るようにルーティングさせることなく、テンプレートを適用することによって生成することができる。
【0030】
すべての後続パケットはこのように処理され、UDP/IPスタック105をバイパスする。VoIPシナリオにおける新しい呼の開始時などに、各UDPストリームのそれぞれに対して新しいテンプレートが生成される。テンプレートのルーティング情報が変更される必要があることはめったにない。なぜなら、パケット・ストリームのルーティングは固定的となる傾向にあるからである。しかし、ルートがより頻繁に変更するネットワークにおいては、ルート変更に対応するために、Nパケット毎に新しいテンプレート・パケットが生成されるように上記技術を適応させることも可能である。Nの値は、特定のネットワークに対して可能な限り大きくなるように選ばれる。ほとんどのアプリケーションにおいて、ルーティングが変更されることは稀であり、テンプレート情報は、データ・ネットワークを超えるルート上の第一のルータ25が変更された場合のみ、変更する必要がある。
【0031】
以下は、UDP/IP環境においてテンプレートを作成する処理の擬似コードの説明である。ソケット側及びデータリンク側の2つの部分が存在する。
【0032】
ソケット側:
1.データを宛先に送信するために、ソケットを通常通り作成する。
2.前述のテンプレート構造の対してメモリ空間を割り当て、固有識別子を初期化する。
3.テンプレートがリンク層によって作成された場合に示される手旗信号を作成し、テンプレート構造内へデータを埋め込む。
4.テンプレート構造へのポインタであるデータを有するソケット用の書き込み機能を呼び出す。あなたが作成中のテンプレートのためのデータ・ストリームが固定長であれば、例えばすべてのパケットがXバイト長である場合にソケットにポインタ値及び(ポイント・サイズXである)パッド・バイトを書き込むように、ソケットに正しい長さを書き込ませるために十分なパッド・データをソケットに書き込む。パッド・バイトの値は重要ではない。これは、パケット長がUDP最大パケットサイズ未満である場合のみ機能する。
5.手旗信号を待機。
6.リンク層が手旗信号を与えると、テンプレート構造の残りのフィールドがリンク層によって満たされ、このテンプレートは使用可能な状態となる。
7.すべての更なるデータ・パケットは、ドライバ送信機能を用いることによって、テンプレート構造からリンク層(110)へ直接送信される。
【0033】
リンク層側:
1.最初の(ポインタ・サイズ)バイトがテンプレート構造ポインタであると仮定することによって、返されたポインタ値を参照するのを止めることによって、それがテンプレート・パケットであるか否かを判断するために、パケットをチェックする。参照を止める前に、それが妥当なメモリ範囲にあることを確認するためにポインタのレンジをチェックする。それが妥当なテンプレート・パケットであるかを判断するために固有識別子をチェックする。
2.テンプレート・パケットでない場合、通常通りに送信する。
3.テンプレート・パケットである場合、テンプレート構造をパケット・ヘッダ・コンテンツ及び長さで満たす。ドライバ送信機能及びパラメータをこのデバイス・ドライバ(リンク層)に関する詳細で満たす。
4.テンプレート構造が使用可能な状態になったことをソケット層へ伝えるための手旗信号を与える。
5.データ・パケットに関連付けられたメモリを開放する。これで、すべての関連データがテンプレート構造内に記録された状態となる。
【0034】
図8乃至10は、より効率的にパケットを処理する方法及び装置を示す。
【0035】
IPゲートウェイによって運ばれるトラフィックは、2つの種類:音声トラフィックなどのリアルタイムを運ぶリアルタイム転送プロトコル(RTP)パケット、及び例えばシグナリングを運ぶ非RTPパケット、に分けることができる。
【0036】
IP電話ゲートウェイについて、99%を超えるパケットは、音声トラフィックを運ぶRTPパケットである。これは、パケットをリアルタイムに組み立てるために、プロセッサに面倒な要求を掛ける。非圧縮G.711音声トラフィックをパケット毎に10ミリ秒の音声ペイロードで32チャネル設けることによって、毎秒3200パケットの送信パケット及び受信パケットをそれぞれ作成することができる。Wind River SytemsからのVxWorksTMなどのリアルタイム・オペレーティング・システムのルーティング・ソフトウェアを用いると、Intel 486DX100などの非常に処理能力の高いプロセッサを用いたとしても、パケットを送信するためのリアルタイム量の半分は、パケットをUDP/IP/イーサネット・スタックを通るように転送することに占められる。チャネル容量をより大きくスケールアップするには、処理能力が高く、高価なプロセッサが必要となる。
【0037】
しかし、パケットのほとんどはRTPパケットであるため、前述のテンプレート・パケット技術を用いることによって大幅な節約が可能となる。前述のようにテンプレート・パケットを用いることによって処理要求を簡素化することに加えて、上記テンプレート・メカニズムを用いることによって、UDPストリーム・パケット処理の負荷を減らし、主CPUをテンプレートをデータ・ストリームに適用する役割に最適化された低価格のコプロセッサへ変えることができるという別の利点も得ることができる。このアーキテクチャは、2つのプロセッサを有する。
【0038】
第一のプロセッサ(パケット・プロセッサ320)は、RTPパケットの処理を扱うことに最適化されている。このプロセッサは、FPGA(fiels programmable gate array)でもよく、MotorolaTMからのPower QUICCなどのエンペデッド・システム・コントローラへコプロセッサとしてしばしば提供されるマイクロRISCプロセッサでもよく、その他の装置でもよい。
【0039】
第二のプロセッサは、他のすべてのパケット、すなわち非RTPパケット及びテンプレート・パケットの処理と、他のアプリケーション・コードの起動とを扱う。この第二のプロセッサは、IntelTM486若しくはPentiumTMプロセッサなどのCPUでもよい。
【0040】
縮小命令セット(RISC)プロセッサ若しくはFPGA装置は、完全なCPUと比べて縮小された機能しか持たないが、完全なCPUと比べて大幅にコストが安い。
【0041】
ここで、上記技術を図8及び9を参照して詳述する。図8は、送信のためのパケット処理に含まれる工程を示す。最初に、ユーザからの呼リクエストへの応答として、呼がセットアップされる(工程200)。これは、通常、TCP/IPシグナリングを用いて達成される。この呼が音声トラフィックなどのリアルタイム・データを運ぶものである場合、この発信元と固定された宛先との間にUDP/IPパケット・ストリームが生成される。すなわち、該ストリーム内のすべてのパケットは同じ宛先へ向かい、従って同じオーバーヘッド情報を運ぶ。CPUは、テンプレート・パケットをUDP/IPスタックを通るようにルーティングさせ、後続パケットによって用いられるテンプレートを生成する(工程210)。このテンプレートは、パケット・プロセッサへ送信される(工程220)。このパケット・プロセッサは、テンプレートを受信し、リアルタイム・データを受信するのに備え、該データを処理するためにDSPチャネルをセットアップする(工程240)。リアルタイム・データは、DSPへ送信される(工程245)。次いで、DSPは、該データを処理し(工程250)、その後、処理されたデータをパケット・プロセッサへ送信する(工程260)。パケット・プロセッサは、このテンプレートを処理済データの各バッチへ適用してUDP/IPを形成し(工程270)、次いで、このパケットをイーサネット・コントローラを通じてデータ・ネットワークへ送信する(工程280)。UDP/IPパケットは、CPUによる処理無しに、該ネットワークへ直接送信される。CPUは、一旦テンプレートが作成されれば、RTPパケットの送信にはかかわらないのが好ましい。但し、SRAMバッファのメンテナンス若しくは統計の収集はCPUによって為されてもよい。CPUによって為されなければならない作業量は、自立的に機能するパケット・プロセッサの能力に依存する。CPUは、パケット・プロセッサの最終的な制御を有する。なぜなら、シグナリングとUDPストリームを処理する制御部とを取り扱うからである。
【0042】
ここで、図10を参照して、受信パケットの処理方法を説明する。前と同様に、通常はTCP/IPシグナリングを用いて、発信元エンティティとこの受信エンティティとの間に呼がセットアップされる(工程400)。CPUは、UDPポート番号と対応するDSPチャネル情報とをパケット・プロセッサへ送信する(工程410)。到来IPパケットは、イーサネット・コントローラによって、データ・ネットワークから受信される(工程420)。このイーサネット・コントローラは、パケットをパケット・プロセッサのスタティックRAM325へ直接DMA(direct memory access)転送する。パケット・プロセッサは、受信パケットのパケット種類(工程430)及びポート番号(工程435)を検査する。RTPパケットからのデータは、例えば解凍などの処理のためにDSP装置へ送信される(工程440)。CPUによって供給されるポート番号は、パケット・プロセッサが使用するDSPチャネルを決定し得る。パケット・プロセッサがパケット種類がUDPでないと判断した場合、又は、ポート番号が非RTPポートであった場合、そのパケットは通常処理のためにCPUへ送信される。パケット・プロセッサの容量に応じて、RTPパケットについて、パケット・プロセッサは、CPUへ信号を送り、該到来パケットによって使われているSRAMバッファを開放させる。或いは、自身を再使用するためにそれらを開放してもよい。
【0043】
パケット・プロセッサ320は、アプリケーションの要求に応じて、複雑なものとしてもよく、簡易なものとしてもよい。例えば、FPGAは主CPUから一部補助を受けるだけで十分な場合もあれば、パケット・プロセッサはそれ自体が完璧なCPUである場合もある。この差は、システムによって処理されることが要求される毎秒あたりのパケット数と、主CPUが実行しなければならない余剰作業量とに帰因する。
【図面の簡単な説明】
【図1】 IPネットワーク上を転送させるために音声データを処理する既知の方法を示す図である。
【図2】 図1に係る方法から得られるパケット・ストリームを示す図である。
【図3】 データ・ネットワーク上で音声トラフィックを運ぶための例示的システムを示す図である。
【図4】 IPパケットのフォーマットを示す図である。
【図5】 UDPヘッダのフォーマットを示す図である。
【図6】 IPヘッダのフォーマットを示す図である。
【図7】 テンプレート・パケットを作成する処理を示す図である。
【図8】 データ・ネットワーク上を送信させるためのデータ・パケット処理が可能な方法を示す図である。
【図9】 パケット処理装置を示す図である。
【図10】 受信データ・パケットを処理することができる方法を示す図である。

Claims (15)

  1. データ・ネットワーク上にパケット形式で送信されることが意図された受信データ・ストリームを処理する方法であって、
    該データを、各パケットがペイロード・セクションとオーバーヘッド・セクションとを有するパケット・ストリームへ構成する工程を有し、
    該パケットを構成する工程は、
    ルーティング・スタックを通るように該パケットを送信することによって、前記パケット・ストリームによって用いられるテンプレート・オーバーヘッド・セクションを形成する工程、及び
    該テンプレートを前記データに適用して前記パケットを構成する工程、
    メモリにテンプレート構造を作成する工程、
    を有
    前記ルーティング・スタックを通るように前記パケットを送信する工程は、前記メモリ内の前記テンプレートに対するポインタを有するパケットを送信する工程を有し、
    前記テンプレートは、そのパケットがテンプレートであることを示す識別子を有する、
    ことを特徴とする方法。
  2. 請求項1記載の方法であって、
    前記テンプレート・オーバーヘッド・セクションを形成する工程は、そのパケットに対するルーティング情報を含むテンプレートを作成する工程を有する、
    ことを特徴とする方法。
  3. 請求項2記載の方法であって、
    後でテンプレート・パケットとして識別され得るパケットを生成する工程を更に有し、
    前記テンプレート・オーバーヘッド・セクションは、
    前記ルーティング・スタックを通るように前記テンプレート・パケットを送信し、
    後で該パケットをテンプレート・パケットとして識別し、
    前記ルーティング・スタックによって前記テンプレート・パケットに適用されたルーティング情報を用いて構成される、
    ことを特徴とする方法。
  4. 請求項1記載の方法であって、
    前記ルーティング情報を用いる工程は、該ルーティング情報を前記テンプレート・パケットから前記テンプレート構造へコピーする、
    ことを特徴とする方法。
  5. 請求項3記載の方法であって、
    前記パケットを後でテンプレート・パケットとして識別する工程は、データリンク層で実行される、
    ことを特徴とする方法。
  6. 請求項1記載の方法であって、
    新しいテンプレート・オーバーヘッド・セクションは、前記データ・ストリームの持続時間中に周期的に作成される、
    ことを特徴とする方法。
  7. 請求項1記載の方法であって、
    パケット種類を決定する工程を更に有し、
    前記テンプレートを生成し、該テンプレートを選択されたパケット種類に適用する工程のみを実行する、
    ことを特徴とする方法。
  8. 請求項7記載の方法であって、
    前記テンプレートを生成し、適用する工程は、リアルタイム転送プロトコル(RTP)パケット種類、及びユーザ・データグラム・プロトコル(UDP)パケット種類の中の少なくとも1つに対して実行される、
    ことを特徴とする方法。
  9. 請求項1記載の方法であって、
    前記パケットは、インターネット・プロトコル(IP)パケットである、
    ことを特徴とする方法。
  10. 請求項1記載の方法であって、
    前記データをパケットへ構成する工程は、パケットを等しい長さのペイロードを有するパケットを形成し、
    一パケットに対するチェックサムが一度計算され、前記パケット・ストリームを適用するための前記テンプレートの一部を構成する、
    ことを特徴とする方法。
  11. 請求項1記載の方法であって、
    前記テンプレート・パケットを作成する工程は、第一のプロセッサによって実行され、
    前記テンプレートを前記データに適用する工程は、第二のプロセッサによって実行される、
    ことを特徴とする方法。
  12. 請求項11記載の方法であって、
    前記第二のプロセッサは、前記第一のプロセッサよりも低い機能性を有する、
    ことを特徴とする方法。
  13. 請求項12記載の方法であって、
    前記第二のプロセッサは、前記第一のプロセッサのコプロセッサ、縮小命令セット(RISC)プロセッサ、及びFPGA(field programmable gate
    array)のうちの1つであることを特徴とする方法。
  14. データ・ネットワーク上にパケット形式で送信されることが意図された受信データ・ストリームを処理する装置であって、
    該受信データを、各パケットがデータのペイロード・セクション及びオーバーヘッド・セクションを有するパケット・ストリームへ構成するプロセッサを有し、
    該プロセッサは、
    ルーティング・スタックを通るように該パケットを送信することによって、前記パケット・ストリームによって用いられるテンプレート・オーバーヘッド・セクションを作成し、該テンプレートを前記データに適用して前記パケットを構成するように構成
    メモリにテンプレート構造を作成し、
    前記メモリ内の前記テンプレートに対するポインタを有するパケットを送信し、
    前記テンプレートは、そのパケットがテンプレートであることを示す識別子を有する、
    ことを特徴とする装置。
  15. データ・ストリームを受信し、該データを、各パケットがデータのペイロード・セクション及びオーバーヘッド・セクションを有するパケット・ストリームへ構成することによって、データ・ストリーム処理装置にデータ・ネットワーク上にパケット形式で送信されることが意図された受信データ・ストリームを処理させるソフトウェア・コードを記録された機械可読媒体であって、
    当該ソフトウェア・コードは、機械に読み込まれると、
    ルーティング・スタックを通るように前記パケットを送信することによって、前記パケット・ストリームによって用いられるテンプレート・オーバーヘッド・セクションを作成する工程と、
    該テンプレートを前記ストリーム内の前記データに適用する工程と、
    メモリにテンプレート構造を作成する工程、
    を実行させ、
    前記ルーティング・スタックを通るように前記パケットを送信する工程は、前記メモリ内の前記テンプレートに対するポインタを有するパケットを送信する工程を有し、
    前記テンプレートは、そのパケットがテンプレートであることを示す識別子を有する、
    ことを特徴とする機械可読媒体。
JP2001510206A 1999-07-07 2000-06-27 データ・パケットの処理 Expired - Fee Related JP5059266B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/349,348 1999-07-07
US09/349,348 US6678246B1 (en) 1999-07-07 1999-07-07 Processing data packets
PCT/GB2000/002475 WO2001005114A2 (en) 1999-07-07 2000-06-27 Processing data packets

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010118653A Division JP5236685B2 (ja) 1999-07-07 2010-05-24 データ・パケットの処理

Publications (2)

Publication Number Publication Date
JP2003504967A JP2003504967A (ja) 2003-02-04
JP5059266B2 true JP5059266B2 (ja) 2012-10-24

Family

ID=23372009

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2001510206A Expired - Fee Related JP5059266B2 (ja) 1999-07-07 2000-06-27 データ・パケットの処理
JP2010118653A Expired - Fee Related JP5236685B2 (ja) 1999-07-07 2010-05-24 データ・パケットの処理

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2010118653A Expired - Fee Related JP5236685B2 (ja) 1999-07-07 2010-05-24 データ・パケットの処理

Country Status (10)

Country Link
US (1) US6678246B1 (ja)
EP (1) EP1201067B1 (ja)
JP (2) JP5059266B2 (ja)
CN (1) CN1208935C (ja)
AT (1) ATE373916T1 (ja)
AU (1) AU5554600A (ja)
CA (1) CA2373632A1 (ja)
DE (1) DE60036479T2 (ja)
IL (1) IL147464A0 (ja)
WO (1) WO2001005114A2 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001186193A (ja) * 1999-12-24 2001-07-06 Fujitsu Ltd Ip通信インタフェース装置、回線交換機及びip通信ネットワークシステム
US7028071B1 (en) * 2000-01-28 2006-04-11 Bycast Inc. Content distribution system for generating content streams to suit different users and facilitating e-commerce transactions using broadcast content metadata
US7496924B2 (en) * 2000-03-27 2009-02-24 Siemens Communications, Inc. Dispatching messages among registered software modules in telecommunications system including telephony internet server coupled between packet network and PBX
US7035248B2 (en) * 2000-08-10 2006-04-25 Alcatel Switch with emulation client
US6845397B1 (en) * 2000-12-29 2005-01-18 Nortel Networks Limited Interface method and system for accessing inner layers of a network protocol
US7082569B2 (en) * 2001-01-17 2006-07-25 Outlooksoft Corporation Systems and methods providing dynamic spreadsheet functionality
US20020186683A1 (en) * 2001-04-02 2002-12-12 Alan Buck Firewall gateway for voice over internet telephony communications
US7283519B2 (en) * 2001-04-13 2007-10-16 Esn, Llc Distributed edge switching system for voice-over-packet multiservice network
US7269186B2 (en) * 2001-08-06 2007-09-11 Qualcomm Incorporated Protocol for framing a payload
DE10139936B4 (de) * 2001-08-14 2005-04-28 Siemens Ag Verfahren und Anordnung zur Steuerung von Datenpaketen
US20030185210A1 (en) * 2002-03-27 2003-10-02 Mccormack Tony Monitoring quality of service in a packet-based network
US7099438B2 (en) * 2002-06-14 2006-08-29 Ixia Multi-protocol, multi-interface communications device testing system
US7324516B2 (en) * 2002-08-14 2008-01-29 Intel Corporation Data packet header conversion
US20040177142A1 (en) * 2003-03-06 2004-09-09 Ixia Dynamic streams for network analysis
US7840664B2 (en) * 2003-05-21 2010-11-23 Ixia Automated characterization of network traffic
US7627669B2 (en) * 2003-05-21 2009-12-01 Ixia Automated capturing and characterization of network traffic using feedback
DE10327545B4 (de) * 2003-06-18 2005-12-01 Infineon Technologies Ag Verfahren und Vorrichtung zur Verarbeitung von Echtzeitdaten
US20050249147A1 (en) * 2004-05-04 2005-11-10 Theglobe.Com Wireless network telecommunications system
US7570629B1 (en) * 2004-06-21 2009-08-04 Nortel Network Limited Distribution of packets to multiple addresses
US7702742B2 (en) * 2005-01-18 2010-04-20 Fortinet, Inc. Mechanism for enabling memory transactions to be conducted across a lossy network
US7515585B2 (en) * 2005-01-21 2009-04-07 Ixia Data communication optimization
US7414975B2 (en) 2005-03-24 2008-08-19 Ixia Protocol stack
US8121148B2 (en) 2005-03-24 2012-02-21 Ixia Protocol stack using shared memory
US7446678B2 (en) * 2005-04-18 2008-11-04 Research In Motion Limited Method and system for encoding communications between wireless and other devices
US20060245358A1 (en) * 2005-04-29 2006-11-02 Beverly Harlan T Acceleration of data packet transmission
US20070036164A1 (en) * 2005-08-11 2007-02-15 Rolf Goehler Digital gateway for education systems
US9100407B2 (en) * 2006-03-23 2015-08-04 Cisco Technology, Inc. Method and system to enhance performance of a session initiation protocol network and its elements
US20080010523A1 (en) * 2006-05-12 2008-01-10 Samik Mukherjee Performance Testing Despite Non-Conformance
US20070280293A1 (en) * 2006-06-06 2007-12-06 Broadcom Corporation System and method for implementing video streaming over IP networks
US8180856B2 (en) * 2006-09-14 2012-05-15 Ixia Testing a network
US7616568B2 (en) * 2006-11-06 2009-11-10 Ixia Generic packet generation
US20080307109A1 (en) * 2007-06-08 2008-12-11 Galloway Curtis C File protocol for transaction based communication
US20080307102A1 (en) * 2007-06-08 2008-12-11 Galloway Curtis C Techniques for communicating data between a host device and an intermittently attached mobile device
CN102025848A (zh) * 2009-09-18 2011-04-20 鸿富锦精密工业(深圳)有限公司 网关及其处理封包的方法
US8614955B2 (en) * 2009-09-22 2013-12-24 Ixia Misdirected packet detection apparatus and method
CA2792038A1 (en) * 2010-03-05 2011-09-09 Brass Monkey, Inc. System and method for two way communication and controlling content in a web browser
US8537839B2 (en) 2010-08-30 2013-09-17 Ixia Traffic generator with dynamic MPLS label assignment
CN102938783A (zh) * 2012-10-30 2013-02-20 中兴通讯股份有限公司 一种Socket处理方法、装置和Web服务器
JP6515915B2 (ja) 2016-12-26 2019-05-22 トヨタ自動車株式会社 車載ネットワークシステム
US11398968B2 (en) 2018-07-17 2022-07-26 Keysight Technologies, Inc. Methods, systems, and computer readable media for testing virtualized network functions and related infrastructure
US11323354B1 (en) 2020-10-09 2022-05-03 Keysight Technologies, Inc. Methods, systems, and computer readable media for network testing using switch emulation
US11483227B2 (en) 2020-10-13 2022-10-25 Keysight Technologies, Inc. Methods, systems and computer readable media for active queue management
US11483228B2 (en) 2021-01-29 2022-10-25 Keysight Technologies, Inc. Methods, systems, and computer readable media for network testing using an emulated data center environment
US11405302B1 (en) 2021-03-11 2022-08-02 Keysight Technologies, Inc. Methods, systems, and computer readable media for network testing using configurable test infrastructure
US11388081B1 (en) 2021-03-30 2022-07-12 Keysight Technologies, Inc. Methods, systems, and computer readable media for impairment testing using an impairment device
US11729087B2 (en) 2021-12-03 2023-08-15 Keysight Technologies, Inc. Methods, systems, and computer readable media for providing adaptive background test traffic in a test environment
US11765068B2 (en) 2021-12-22 2023-09-19 Keysight Technologies, Inc. Methods, systems, and computer readable media for programmable data plane processor based traffic impairment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535200A (en) * 1994-05-05 1996-07-09 Sprint Communications Company L.P. Signaling system for a telecommunications network
US6002689A (en) * 1996-11-22 1999-12-14 Sprint Communications Co. L.P. System and method for interfacing a local communication device
JP3714441B2 (ja) * 1997-04-28 2005-11-09 松下電器産業株式会社 サーバシステムとそのプロトコル処理方法
WO1999004343A1 (en) 1997-07-18 1999-01-28 Interprophet Corporation Tcp/ip network accelerator system and method
US6195739B1 (en) * 1998-06-29 2001-02-27 Cisco Technology, Inc. Method and apparatus for passing data among processor complex stages of a pipelined processing engine
US6542504B1 (en) * 1999-05-28 2003-04-01 3Com Corporation Profile based method for packet header compression in a point to point link

Also Published As

Publication number Publication date
WO2001005114A3 (en) 2001-06-28
EP1201067B1 (en) 2007-09-19
US6678246B1 (en) 2004-01-13
IL147464A0 (en) 2002-08-14
JP5236685B2 (ja) 2013-07-17
ATE373916T1 (de) 2007-10-15
CN1208935C (zh) 2005-06-29
EP1201067A2 (en) 2002-05-02
CN1360783A (zh) 2002-07-24
AU5554600A (en) 2001-01-30
CA2373632A1 (en) 2001-01-18
DE60036479T2 (de) 2008-01-10
DE60036479D1 (de) 2007-10-31
JP2010233240A (ja) 2010-10-14
JP2003504967A (ja) 2003-02-04
WO2001005114A2 (en) 2001-01-18

Similar Documents

Publication Publication Date Title
JP5059266B2 (ja) データ・パケットの処理
US6389038B1 (en) Voice IP bandwidth utilization
KR100922654B1 (ko) 패킷 처리용 시스템 및 방법
US6711166B1 (en) System and method for packet network trunking
AU2007324356B2 (en) Audio communications system using networking protocols
US6377571B1 (en) Virtual modem for dialout clients in virtual private network
CN1316797C (zh) 利用数字信号处理器来创建分组的方法和设备
JP4024797B2 (ja) 移動無線ネットワークの無線ネットワークコントローラと他の装置との間でipパケットを伝送するための方法及び装置
US20030093550A1 (en) Method for sending multiple voice channels over packet networks
JP4167985B2 (ja) パケット・ヘッダを圧縮する方法と装置
CA2420310C (en) Sharing of protocol processing
JP2006115507A (ja) 効率的な帯域幅使用のための暗号化が適用されたパケット通信網での音声データ処理方法及びその装置
CN100505656C (zh) 调制解调器中继聚合器设备
US7092383B2 (en) Method for switching on a subscriber signal, associated switching office and associated program
US7570629B1 (en) Distribution of packets to multiple addresses
US7680105B2 (en) Voice over internet protocol (VOIP) subcell multiplexing
JP2005020080A (ja) 加入者端末間通信システム
JP2004208042A (ja) ゲートウェイ装置、通信システム
JP2002271438A (ja) プロトコル変換装置、プロトコル変換方法および加入者交換機
JP2004135008A (ja) ネットワークアドレス変換装置及びそれに用いるネットワークアドレス変換方法並びにそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100224

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100303

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100324

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100331

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100422

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100524

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101015

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101201

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20101224

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120405

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120410

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120802

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees