JP3896829B2 - ネットワーク中継装置 - Google Patents
ネットワーク中継装置 Download PDFInfo
- Publication number
- JP3896829B2 JP3896829B2 JP2001363559A JP2001363559A JP3896829B2 JP 3896829 B2 JP3896829 B2 JP 3896829B2 JP 2001363559 A JP2001363559 A JP 2001363559A JP 2001363559 A JP2001363559 A JP 2001363559A JP 3896829 B2 JP3896829 B2 JP 3896829B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- segment
- network
- processing unit
- descriptor
- 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
Links
Images
Description
【発明の属する技術分野】
本発明は、ネットワーク中継装置に関し、特に、データ通信において通信プロトコル等が互いに異なる各種ネットワーク間の通信において使用される、カプセル化によるトンネル通信を効率的に実行する機能を備えたネットワーク中継装置に関する。
【0002】
【従来の技術】
ネットワーク上のデータ通信においては、一般に、本来の伝送データに、各種の通信プロトコルで定められた宛先の情報等を含むデータがヘッダデータとして先頭に付加されたパケットと呼ばれる単位が使用される。
【0003】
また、データ通信において、ネットワークの構成や運用上の都合から通信プロトコルや宛先アドレスといった情報等の体系が異なる複数のネットワークを渡って通信を行わせる場合がある。例えば、離れた位置に配置されたプライベートネットワーク間で通信を実現する場合や、中継経路中の通信プロトコルと送受信を行なうホストの通信プロトコルが異なる場合、そして送信パケットを暗号化する場合などである。このような場合に利用される通信手法を一般にトンネル通信と呼ぶ。
【0004】
トンネル通信を実現するには、カプセル化と呼ばれる技術が用いられる。カプセル化とは通信プロトコル等の異なるネットワーク間を渡る際にヘッダデータを含むパケット全体をひとつの新たな伝送データとして扱い、このパケットに更にヘッダデータを付加することで異なるパケットを新たに構成することである。つまり、通信プロトコル等が異なるネットワークをトンネルさせたい場合、そのトンネル対象ネットワークの通信プロトコル等に合わせたヘッダデータで元々のパケットをカプセル化すれば良い。そしてトンネル対象のネットワークの出口となる点においては、カプセル化されたときに付加されたヘッダデータを取り除きカプセル化される前のパケットを復元し受信先へ転送する。前者のようなトンネル対象ネットワーク入り口でヘッダデータを新たに付加する処理をカプセル処理、後者のようなトンネル出口にてヘッダデータを取り除いてトンネルに入る前のパケットを復元する処理をデカプセル処理と呼ぶ。
【0005】
一般に、ネットワークシステムにおいて複数のネットワーク間を接続するためにはルータやブリッジ等のネットワーク中継装置が用いられる。これらネットワーク中継装置は接続されているネットワークから受け取ったパケット内に含まれるヘッダデータを基に宛先アドレスを調べてパケットの転送先を決定し、転送先のネットワーク中継装置又はホストが接続されたネットワークにパケットを転送する。さらに上記のようなトンネル通信を行なう必要がある場合には、カプセル処理およびデカプセル処理も行なう機能を備える。なお、ネットワーク中継装置を実現する方式として、特開平5−199230号公報や特開2001−211203号公報等に記載された方式がある。
【0006】
【発明が解決しようとする課題】
近年、これまでの企業、研究機関等で固定的に運用されるコンピュータシステムから、企業や家庭でのパーソナルコンピュータ、また、個人の持つ携帯端末まで多様性を増す多くのシステムを収容するべく、それぞれのシステムの機能や特徴に特化した技術を適用することによりネットワークもまた多様性を増している。こういった背景からトンネル通信機能はネットワーク中継装置にとって欠かせない機能となりつつある。
【0007】
一方、ネットワークに接続されるシステムの性能向上および絶対数の増加に伴い、各種ネットワークを流れるトラフィックも増大し続けており、トンネル通信の処理においても処理性能の向上が求められている。
【0008】
ところが、上述した従来のネットワーク中継処理装置によれば、中継処理のために受信したパケットからヘッダデータと伝送すべきデータの区別し、またヘッダデータから宛先アドレス等必要な情報を抽出する処理を行なうことはできるが、ヘッダデータを付加したり削除したりするいわゆるカプセル処理およびデカプセル処理を行なうことができないためにトンネル通信機能の実現は困難という問題がある。また、ソフトウエアにて構成されるネットワーク中継処理装置ならばソフトウエアの変更によりカプセル処理およびデカプセル処理の機能を追加することでトンネル通信を実現する方法もあるが、ハードウエアにて中継処理をおこなうネットワーク中継処理装置に比較するとその処理性能に差があることは否めず、性能向上も難しい。
【0009】
本発明は、以上の点に鑑み、トンネル通信機能を備え、且つ、カプセル処理およびデカプセル処理を効率的に実効可能なデータ構造および機器構成を採用することで、多様性を増し且つトラフィックも増大し続けるネットワークの接続を柔軟かつ高速に処理することができるネットワーク中継装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明では、ネットワーク中継装置の入力されたパケットを保持する機構に、新規データを追加したり、逆に既存のパケットから特定の範囲のデータを削除する操作を効率良く実行可能な機能を備える。また、このような操作を可能とするために、入力されたパケットを保持する機構としてディスクリプタとパケットバッファを持つ。ディスクリプタは固定長であって、パケットバッファが保持している内容を管理するための情報を保持する。一方、パケットバッファは受信したパケットを保持するが、その方法として受信したパケットの内容を1つもしくは複数のセグメントと呼ばれる固定長の領域に分割して格納する。これはパケットバッファをハードウエアによって制御しやすくするという特徴を持たせるためである。その固定長のサイズは、例えばバースト転送をサポートするメモリのバーストサイズに合わせるなど、ハードウエアの構成に合わせて設計時に任意に決定することができる。
【0011】
ここで、ディスクリプタはセグメントに対し1対1に対応する。ディスクリプタが保持する内容は、図1に示されるように、パケットに対するセグメントの位置を識別する識別子、パケットバッファ全体におけるセグメントの位置を示すセグメントポインタ、セグメント内での実効データ開始を示すオフセット、セグメント内における実効データのサイズを示すセグメント長、パケットが複数セグメント、ディスクリプタで構成される場合の次ディスクリプタの位置を示すリンクポインタから構成される。なおリンクポインタについては、ディスクリプタを記憶機構に保持する方式の場合にあれば良い情報であり、単にキュー等でディスクリプタを管理する方式の場合は、必ずしもリンクポインタは必須ではない。ディスクリプタおよびセグメントは、その対応関係が明確である限り、入力されたパケットに応じて自動的に生成される他に、外部からの制御により生成されても良く、またパケット出力の際に削除される他に外部からの制御により削除されても良い。
【0012】
また、本発明では、回線対応部、パケット交換部、パケット転送および経路検索部といったネットワーク中継装置の基本的な構成に加えて、パケットのカプセル処理およびデカプセル処理をおこなうトンネル通信処理機能部をネットワーク中継装置が備える。
【0013】
具体的には、トンネル通信処理機能部は、カプセル処理の場合、トンネル対象ネットワークのヘッダ情報を新たなセグメントに登録し、それに対応したディスクリプタを生成する。次に、その生成した新たなセグメントとディスクリプタを、入力パケットを保持しているセグメントとそれに対応するディスクリプタ群の先頭に位置するようにリンクさせる。以上の操作によりカプセル化パケットの生成を実現する。
【0014】
また、デカプセル処理の場合は、入力したパケットから除外すべきヘッダデータ分だけ、そのヘッダデータの存在するセグメントに対応するディスクリプタ内のオフセット値およびセグメント値を変更し、見かけ上そのヘッダデータが削除されたように見せかける。削除すべきヘッダデータがセグメントをまたぐ場合には、ヘッダデータの削除によって不要となるセグメントを解放し、また、対応するディスクリプタを削除し、それに続くセグメントが先頭のセグメントとなるようにそのセグメントに対応するディスクリプタの識別子ならびにオフセットとセグメント長を変更する。以上の操作によってカプセル化されていたパケットを取り出す。
【0015】
経路検索の結果、自装置がネットワークにおけるトンネルの入り口またはトンネルの出口にあるという判定がなされた場合、トンネル通信処理機能部は、判定処理開始通知を経路処理部から受け、該当するカプセル処理またはデカプセル処理を終了するとその旨を経路処理部に通知する。経路検索部はこの通知を持って、今度はトンネル対象のネットワークに対し再び経路検索を行なう。この時、再度、別のネットワークトンネルの入り口またはトンネル出口にあるという判定がなされた場合は上記の手順を繰り返す。つまりトンネルが多重化されている場合でも、上記のような単純な操作の繰り返しによりカプセル処理またはデカプセル処理を行ない得る。この特徴もまたハードウエアなどによる装置構成の容易さを可能とし処理の高速化に貢献する点である。
【0016】
【発明の実施の形態】
以下、本発明の一実施形態を図面を用いて説明する。
【0017】
図2は本発明のネットワーク中継装置が適用されるネットワークシステム全体の概念図を示す。図2において、同一のプロトコルに従うネットワーク5およびネットワーク9に、パケットのヘッダ内に記述される情報に従ってパケットを転送するネットワーク中継装置3およびネットワーク中継装置7がそれぞれ接続されている。さらに、ネットワーク中継装置3およびネットワーク中継装置7はネットワーク1に接続されている。ここでネットワーク1は、ネットワーク5およびネットワーク9とは異なるプロトコルに従うものである。また、ネットワーク5にはサーバ装置6が接続され、ネットワーク9にはクライアント装置10が接続されている。
【0018】
ネットワーク5とネットワーク中継装置3との間で伝送されるパケット4と、ネットワーク8とネットワーク中継装置7との間で伝送されるパケット8とは、同一のプロトコルに従っている為、宛先アドレス等の情報が異なることはあってもそのフォーマットは同じものとなる。しかしながら、ネットワーク1がネットワーク5およびネットワーク9とは異なるプロトコルに従っている為、ネットワーク中継装置3およびネットワーク中継装置7はパケット4やパケット8と同じフォーマットのパケットをネットワーク1に送出することはできない。そこで図2においてパケット2として示されているように、ネットワーク1が従うプロトコルに沿ったヘッダデータを、例えばネットワーク5からネットワーク中継装置3に伝送されてきたパケット4に付加したパケットを用いて、ネットワーク中継装置3およびネットワーク中継装置7はネットワーク1を介して通信を行なう。これをトンネル通信と呼ぶ。
【0019】
ここで、サーバ装置6がクライアント装置10に対してパケットを送信する場合について説明する。
【0020】
サーバ装置6は、宛先アドレスとしてクライアント装置10のアドレスを含むヘッダ202を持つパケット4をネットワーク5に送信する。パケット中継装置3はパケット4をネットワーク5から受け取る。ネットワーク中継装置3は、ネットワーク1を介してパケット4をネットワーク中継装置7に中継するため、パケット4からパケット2を生成する。即ち、ネットワーク1が従っているプロトコルに応じたフォーマットを持つヘッダデータ203を、パケット4に付加する。ネットワーク中継装置3で行われるこの処理がカプセル処理である。一方、ネットワーク中継装置7は、パケット2からパケット8を取り出すことになる。即ち、ネットワーク9を介して通信を行なう際には不要であるヘッダデータ203をパケット2から削除する。ネットワーク中継装置7で行われるこの処理がデカプセル処理である。そして取り出されたパケット8はネットワーク9を介してクライアント装置10へ送られる。
【0021】
図3にトンネル処理をおこなうネットワーク中継装置3の全体構成のブロック図を示す。図3においてネットワーク中継装置3は、経路交換部31と経路検索処理部320、321を備える。
【0022】
経路検索処理部320、321は、回線インタフェース300、301に対してパケットの入出力を行い、また、パケットのヘッダ情報からパケットの転送先を検索してパケットを転送する。経路交換部31は、経路検索処理部320、321に接続され、それぞれの経路検索処理部の間のパケット転送を行なう。経路検索処理部320、321に繋がる回線インタフェース300、301の種類にはイーサネット等のLAN(Local Area Network)、WAN(Wide Area Network)、ATM(AsynchronousTransfer Mode)等がある。
【0023】
図4に経路検索処理部320の詳細ブロック図を示す。
【0024】
図4において、パケット転送処理部3201は、回線対応部インタフェース3205または経路交換部インタフェース3204に到着したパケットからディスクリプタの生成を行い、経路検索部3202へ転送先の検索要求を出し、その結果を元に転送先の決定を行なう。経路検索処理部3202は、パケット転送処理部3201からの情報および要求に基づきパケット転送先を検索処理する。トンネル処理部3203は、カプセル処理、デカプセル処理といったトンネル処理が必要な場合にヘッダデータの付け外しを行なう。経路交換部インタフェース3204は、経路交換部とのインタフェースを制御する。回線対応部インタフェース3205は、回線対応部とのインタフェースを制御する。パケットバッファ3207はパケットを保持する。パケットバッファ制御部3206はパケットバッファ3207を制御する。ディスクリプタバッファ3209はディスクリプタを保持する。ディスクリプタバッファ制御部3208はディスクリプタバッファ3209を制御する。
【0025】
回線対応部インタフェース3205または経路交換部インタフェース3204にパケットが到着すると、パケットをパケット転送処理部3201に転送する。パケット転送処理部3201ではパケットからディスクリプタを生成し、ディスクリプタバッファ制御部3208へ書き込み要求を、またパケット本体についてはパケットバッファ制御部3206に書き込み要求を出し、それぞれを保持する。続いて経路検索部3202に転送先の検索要求を発行する。経路検索部3202では検索要求を受けるとパケットのヘッダデータよりパケットの転送先を検索し、その結果をパケット転送処理部3201に返すことで応答する。経路検索部3202での検索の結果が通常のパケット中継の場合は、その内容に応じてパケットを回線対応部インタフェース3205または経路交換部インタフェース3204へ転送すべきことをパケット転送処理部3201に応答する。一方、検索の結果、自装置がトンネルの入り口または出口であることが判明した場合には、カプセル処理またはデカプセル処理が必要であるという情報とともにトンネル処理部3203にパケットを転送すべきことをパケット転送処理部3201に応答する。パケット転送処理部3201は経路検索部3202からの応答に基づきパケットを転送処理するが、トンネル処理部3203へパケットを転送する場合には、ディスクリプタとパケットは保持したままトンネル処理部3203にトンネル通信の処理要求を発行する。
【0026】
トンネル処理部3203では、カプセル処理またはデカプセル処理の指示によってパケット転送処理部3201にて生成されたディスクリプタを変更し、場合によってはさらに別途新規なディスクリプタとヘッダデータを生成し、本来のディスクリプタやパケットに結合させる。トンネル処理部3203での処理が終了すると、パケット転送処理部3201に処理終了の応答を返す。
【0027】
カプセル処理やデカプセル処理を行なうということはすなわちヘッダデータが置き換わるということであり、経路処理の観点からみれば、それは処理前のパケットとは異なるパケットに変わることを意味する。このためパケット転送処理部3201では、このトンネル処理部3203からの処理終了応答の受信は、回線対応部インタフェース3205や経路交換部インタフェース3204からのパケット到着通知と同等な意味を持って扱われる。ただし、そのパケットのディスクリプタとパケットは既に存在するため、ディスクリプタ生成および保持、パケットの保持要求はおこなわずそのまま再び経路検索部3202に転送先の検索要求を発行する。そして、その結果に基づき再度パケットの転送処理を行なう。
【0028】
以上の動作により、トンネル通信が可能となる。尚、仮にトンネルが多重化されているようなトンネル通信を行なう場合でも、本実施形態におけるネットワーク中継装置によれば、上述のようにパケット転送処理部3201から経路検索部3202に対する検索処理要求、そしてパケット転送処理部3201からトンネル処理部3203に対するトンネル処理要求を繰り返すだけで、他に複雑な手順を要することなくトンネル通信に必要な処理を実現できる。
【0029】
図5に、ディスクリプタのデータ構造およびセグメントとの関係を具体的に示す。セグメント511に対応するディスクリプタ501は、対応するセグメント511の属性を示す識別子5011、パケットバッファメモリ内のセグメントの位置を示すセグメントポインタ5012、セグメントに格納されている実効データ(パケット)の先頭位置を示すオフセット5013、セグメントに格納されている実効データ(パケット)の長さを示すセグメント長5014、複数のディスクリプタおよびセグメントによって1パケットが構成される場合にディスクリプタ501に続くディスクリプタ502のディスクリプタバッファ内の位置を示すリンクポインタ5015を含む。
【0030】
識別子5011が表すセグメント種別の一覧を図6に示す。識別子「1」で示される先頭かつ最終セグメントとは、例えば、図7に示されたセグメント702のように単一のセグメント内にヘッダデータを含めたパケット全体が収まる場合のセグメントを示す。識別子「0」で示される先頭かつ継続セグメント有りとは、例えば、図8に示されたセグメント811のように、単一セグメント内にパケットが収まらない場合の、そのパケットが格納されているセグメント群のうちの先頭のセグメントを示す。識別子「3」で示される非先頭かつ最終セグメントとは、例えば図8に示されたセグメント813のように、単一のセグメント内にパケットが収まらない場合の、そのパケットが格納されているセグメント群のうちの最後尾のセグメントを示す。識別子「2」で示される非先頭かつ継続セグメント有りとは、例えば図8に示されたセグメント812のように、単一のセグメント内にパケットが収まらない場合の、そのパケットが格納されているセグメント群のうちの中間にあるセグメントを示す。
【0031】
以下、ディスクリプタを用いたパケットの管理の仕方について説明する。
【0032】
図7に、トンネル通信されない通常のパケットであって1セグメントのトータルサイズよりもパケット全体のサイズが小さいパケットが、セグメントに格納されている状態と、そのセグメントに対応するディスクリプタの構成を示す。
【0033】
セグメント702には、ヘッダデータとデータ本体からなるパケット全体が格納されている。この場合、パケット転送処理部3201は、ディスクリプタ701として、識別子7011が先頭かつ最終セグメントを示す「1」、セグメントポインタ7012がセグメント702の所在する先頭アドレスの値、オフセット7013が値「0」、セグメント長7014がパケットのオクテット長であるディスクリプタを生成する。尚、この場合、リンクポインタ7015の値は無視される。
【0034】
また、図8に、トンネル通信されない通常のパケットであってパケットサイズが2セグメント分のサイズよりも大きいパケットが、セグメント群に格納されている状態と、各セグメントに対応するディスクリプタの構成を示す。
【0035】
図8において、セグメント811、812、813にパケットが分割されて格納されている。セグメント811には、パケットの先頭部分、即ち、ヘッダデータとデータ本体の先頭部分が格納されている。また、セグメント812には、パケットの中間部分、即ちデータ本体の中間部分が格納されている。さらに、セグメント813には、パケットの残り、即ち、データ本体の残りの部分が格納されている。この場合、パケット転送処理部3201は、セグメント811に対応するディスクリプタ801と、セグメント812に対応するディスクリプタ802と、セグメント813に対応するディスクリプタ803をそれぞれ生成する。ディスクリプタ801は、識別子8011として先頭かつ継続セグメント有を示す「0」、セグメントポインタ8012としてセグメント811の所在する先頭アドレス値、オフセット8013として値「0」、セグメント長8014としてセグメント811全体のサイズ、リンクポインタ8015としてディスクリプタ801に続くディスクリプタ802の所在する先頭アドレス値を含む。ディスクリプタ802は、識別子8021として非先頭かつ継続セグメント有を示す「2」、セグメントポインタ8022としてセグメント812の所在する先頭アドレス値、オフセット8023として値「0」、セグメント長8024としてセグメント812全体のサイズ、リンクポインタ8025としてディスクリプタ802に続くディスクリプタ803の所在する先頭アドレス値を含む。ディスクリプタ803は、識別子8031として非先頭かつ最終セグメントを示す「3」、セグメントポインタ8032としてセグメント813の所在する先頭アドレス値、オフセット8033として値「0」、セグメント長8034としてパケットのうちセグメント813内に格納されている部分のサイズを含む。ディスクリプタ803の場合、リンクポインタ8035については特になにもされず、転送処理においてこの情報は無視される。
【0036】
以上のようにパケット転送処理部3201により生成されたディスクリプタ801〜803によって1つのパケットが管理される。
【0037】
通常のパケット中継の場合は、上述のように生成したディスクリプタとセグメントデータを用いてパケット転送処理部3201がパケットを管理し、経路交換部インタフェース3204や回線対応部インタフェース3205へのパケット転送処理を行なう。しかし、トンネル通信のためにカプセル処理、デカプセル処理が必要となった場合は、トンネル処理部3203において、これらのディスクリプタとセグメントの組み合わせを以下の様に追加または変更することが必要となる。
【0038】
図9は、トンネル処理部3203によってカプセル処理が実行される場合に、トンネル処理部3203によって追加される新たなヘッダデータとそれに対応するディスクリプタの構成を示したものである。
【0039】
図7に示したのと同様に、パケット転送処理部3201に到着したパケットに対しディスクリプタ901がパケット転送処理部3201により生成され、また、パケットはセグメント911に保持されている。ここで、トンネル処理部3203がカプセル処理要求を受け付けると、パケットバッファ3207に新規にセグメント912を確保し、トンネル通信用の新規ヘッダデータを作成する。また、セグメント912に対応するディスクリプタ902を生成する。ディスクリプタ902は、識別子9021として先頭かつ継続セグメント有を示す「0」、セグメントポインタ9022としてセグメント912の所在を示す先頭アドレス値、オフセット9023として値「0」、セグメント長9024として新規ヘッダデータのデータ長、リンクポインタ9025としてディスクリプタ901の所在するアドレス値を含む。続いて、トンネル処理部3203は、ディスクリプタバッファ3209に保持されているディスクリプタ901の識別子9011を先頭かつ最終セグメントを示す「1」から、非先頭かつ最終セグメントを示す「3」に書き換える。カプセル処理部3203が以上の処理を行なうことによってカプセル処理をしたパケットが作成され、トンネル処理部3203は処理終了をパケット転送処理部3201に通知する。
【0040】
図9に示した例は、カプセル処理前のパケットサイズが1セグメントのサイズ以下の場合を想定したものであるが、図8のようにパケットサイズが1セグメントのサイズより大きい場合についても、パケットを格納するセグメント群のうちの先頭セグメントとそれに対応するディスクリプタに対して、図9を用いて説明したのと同様の動作をトンネル処理部3203は行なうのみである。トンネル処理部3203は、識別子が「0」か「1」であるディスクリプタを変更すべきディスクリプタとして認識し、識別子が「2」または「3」である中間セグメントおよび最終セグメントに対しては追加、変更等を行なわない。
【0041】
図10は、トンネル処理部3203によってデカプセル処理が実行される場合に、トンネル処理部3203によってディスクリプタが変更される様子を示したものである。
【0042】
まず、パケット転送処理部3201に到着したカプセル処理をされたパケットに対しディスクリプタ1001が生成され、また、パケットがセグメント1011に保持されている。
【0043】
この状態において、トンネル処理部3203がデカプセル処理要求を受け付けると、トンネル処理部3203は、ディスクリプタバッファ3209に保持されているディスクリプタ1001のオフセット10013を、それまで保持していた値に取り除くべきヘッダデータのサイズを加えた値に変更する。また、セグメント長10014の値を、それまで保持していた値から取り除くべきヘッダデータサイズの値を引いた値へと変更する。このような変更処理をトンネル処理部3203が行なうことにより、ディスクリプタ1001はディスクリプタ1002に変更される。ディスクリプタ1002において、オフセット10023はセグメント1011に格納されているカプセル化されたパケットのうちの元のヘッダデータの先頭位置を示し、セグメント長10024はセグメント1011に格納されているカプセル化されたパケットのうちのカプセル化によって付加されたヘッダデータが取り除かれた(カプセル化される以前の)パケットの長さを示す。従って、図10に示すように、変更されたディスクリプタ1002によって管理されるパケットは、セグメント1011に格納されているカプセル化されたパケット全体ではなく、見かけ上はセグメント1012として示されているように、カプセル化によって付加されたヘッダデータを除いた(カプセル化される以前の)パケットとなる。
【0044】
これによって、トンネル処理部3203によるデカプセル処理が完了する。
【0045】
なお、多重トンネル通信の為の処理によりデカプセル処理が連続する場合、デカプセル処理前のヘッダデータがセグメントをまたぎ、デカプセル処理後に得たい元のヘッダデータが先頭のセグメントではなく、それに続く中間のセグメントに存在するという場合が考えられる。
【0046】
このような場合のセグメントおよびディスクリプタの構成を図11に示す。
【0047】
先頭のセグメント1111にはカプセル処理により付加されたヘッダデータの一部が格納されており、また、セグメント1112にはカプセル処理により付加されたヘッダデータの残りの部分および元々のパケット(元のヘッダデータおよびデータ本体からなる)が格納されている。
【0048】
この状態において、トンネル処理部3203がデカプセル処理要求を受け付けると、上述したのと同様に、先頭セグメント1111に対応するディスクリプタ1101のオフセット11013およびセグメント長11014の値を変更する。
【0049】
このとき、先頭のセグメント1111に対応するディスクリプタ1101のセグメント長11014の値を変更する際の算出値が負の値になる、またはオフセット11013を変更する際の算出値がセグメント1111全体のサイズ以上になることにより、トンネル処理部3203は上述のような場合が発生したことを検出する。そこで、トンネル処理部3203は、デカプセル処理前に先頭であったセグメント1111およびそれに対応するディスクリプタ1101を削除する。そして、トンネル処理部3203は、ディスクリプタ1101に続くディスクリプタ1102の識別子11021が非先頭かつ継続セグメント有りを示す「2」である場合には、その識別子を先頭かつ継続セグメント有りを示す「0」に、非先頭かつ最終セグメントを示す「3」である場合には、先頭かつ最終セグメントを示す「1」に変更する。また、オフセット11023の値を、オフセット11013を変更する際に算出した値からセグメント1112全体のサイズを引いた値に変更し、セグメント長11024の値を、元の値から上記オフセット11023の値を引いた値に変更する。トンネル処理部3203が以上の処理を行なうことによりデカプセル処理済のパケットが作成され、トンネル処理部3203は処理終了をパケット転送処理部3201に通知する。
【0050】
図10に示した例は、デカプセル処理を行なうパケットのサイズが1セグメントのサイズ以下の場合を想定したものであるが、図8のようにデカプセル処理前のパケットサイズが1セグメントのサイズより大きい場合についても、パケットを格納するセグメント群のうちの先頭セグメントとそれに対応するディスクリプタに対して、図10を用いて説明したのと同様の動作をトンネル処理部3203は行なうのみである。
【0051】
【発明の効果】
本発明によれば、ネットワーク中継装置におけるトンネル通信の為の処理をハードウエアによって高速かつ効率的に実現可能である。
【図面の簡単な説明】
【図1】ディスクリプタとセグメントの構成を示す図
【図2】ネットワーク中継装置が適用されるネットワークシステム全体の概念図
【図3】ネットワーク中継装置の構成を示すブロック図
【図4】ネットワーク中継装置の経路検索処理部の詳細ブロック図
【図5】ディスクリプタとセグメントの構成を示す図
【図6】識別子が表すセグメント種別を示す図
【図7】パケットサイズが1セグメントサイズ以下の場合のディスクリプタとセグメントの構成を示す図
【図8】パケットサイズが1セグメントサイズ以上の場合のディスクリプタとセグメントの構成を示す図
【図9】カプセル処理が実行された場合のディスクリプタとセグメントの構成を示す図
【図10】デカプセル処理が実行された場合のディスクリプタとセグメントの構成を示す図
【図11】デカプセル処理によって取り除かれるべきヘッダデータがセグメントをまたぐ場合のディスクリプタとセグメントの構成を示す図
【符号の説明】
1,5,9…ネットワーク
2,4,8…パケット
3,7…ネットワーク中継装置
6…サーバ装置
10…クライアント装置
31…経路交換部
320,321…経路検索処理部
3201…パケット転送処理部3201
3202…経路検索部
3203…トンネル処理部
3204…経路交換部インタフェース
3205…回線対応部インタフェース
3206…パケットバッファ制御部
3207…パケットバッファ
3208…ディスクリプタバッファ制御部
3209…ディスクリプタバッファ
Claims (2)
- 何れかのネットワークから受信したパケットのヘッダ情報に従って、受信したパケットの中継先を決定し、受信したパケットを何れかのネットワークへ中継するネットワーク中継装置において、
ネットワークと接続されたインタフェースと、
前記インタフェースが受信したパケットを予め決められたサイズの領域に保持するパケットバッファと、
前記パケットバッファにおける受信したパケットの保持領域の管理情報を生成するパケット転送処理部と、
受信したパケットの転送先をヘッダ情報に従って決定し、該転送先を前記パケット転送処理部へ指示する経路検索部と、
受信したパケットに対するカプセル処理またはデカプセル処理を実行するトンネル処理部とを有し、
前記トンネル処理部により実行されるカプセル処理は、前記管理情報の内容を変更する処理を含み、さらに、新たなヘッダデータを作成して前記パケットバッファの他の領域に保持させる処理と、該新たなヘッダデータの保持領域の管理情報を生成する処理を含むことを特徴とするネットワーク中継装置。 - 何れかのネットワークから受信したパケットのヘッダ情報に従って、受信したパケットの中継先を決定し、受信したパケットを何れかのネットワークへ中継するネットワーク中継装置において、
ネットワークと接続されたインタフェースと、
前記インタフェースが受信したパケットを分割された保持領域に保持するパケットバッファと、
前記パケットバッファにおける保持領域の管理情報を生成するパケット転送処理部と、
受信したパケットの転送先をヘッダ情報に従って決定して当該転送先を前記パケット転送処理部へ指示する経路検索部と、
受信したパケットに対するカプセル処理またはデカプセル処理を実行するトンネル処理部とを有し、
前記トンネル処理部により実行されるデカプセル処理は、前記管理情報に含まれるデータ開始位置を、前記受信したパケットから取り除くべきヘッダデータのサイズに対応して移動し、且つ、前記管理情報に含まれるデータサイズから前記ヘッダデータのサイズを減らす処理を含み、前記移動したデータ開始位置が前記分割された保持領域の全体サイズを超える場合、もしくは前記減らしたデータサイズが負の値になる場合に、デカプセル処理前のヘッダデータが前記保持領域を跨っていることを検出することを特徴とするネットワーク中継装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001363559A JP3896829B2 (ja) | 2001-11-29 | 2001-11-29 | ネットワーク中継装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001363559A JP3896829B2 (ja) | 2001-11-29 | 2001-11-29 | ネットワーク中継装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003163702A JP2003163702A (ja) | 2003-06-06 |
JP3896829B2 true JP3896829B2 (ja) | 2007-03-22 |
Family
ID=19173882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001363559A Expired - Fee Related JP3896829B2 (ja) | 2001-11-29 | 2001-11-29 | ネットワーク中継装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3896829B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101695047B (zh) * | 2009-10-26 | 2015-01-28 | 中兴通讯股份有限公司 | 一种实现动态隧道报文转发的方法及交换机 |
TWI779938B (zh) * | 2021-11-29 | 2022-10-01 | 瑞昱半導體股份有限公司 | 存取系統記憶體的方法及設置於網路卡上的處理電路 |
-
2001
- 2001-11-29 JP JP2001363559A patent/JP3896829B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003163702A (ja) | 2003-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6799220B1 (en) | Tunneling management messages over a channel architecture network | |
CN102714629B (zh) | 通信系统、转发节点、路径管理服务器以及通信方法 | |
JP4057067B2 (ja) | 多層スイッチング・ネットワーク要素中でパケット・フィールドを置換するための機構 | |
US7953817B2 (en) | System and method for supporting TCP out-of-order receive data using generic buffer | |
US20040001484A1 (en) | Method and apparatus for implementing alterations on multiple concurrent frames | |
US7328270B1 (en) | Communication protocol processor having multiple microprocessor cores connected in series and dynamically reprogrammed during operation via instructions transmitted along the same data paths used to convey communication data | |
US8996724B2 (en) | Context switched route look up key engine | |
CN110022264A (zh) | 控制网络拥塞的方法、接入设备和计算机可读存储介质 | |
KR20000006114A (ko) | 네트워크인터페이스를제공하기위한방법및장치 | |
US20040215819A1 (en) | Apparatus for and method for controlling packet, and computer program product | |
WO2019179161A1 (zh) | 一种数据流量处理方法、设备及系统 | |
WO2024021801A1 (zh) | 报文转发装置及方法、通信芯片及网络设备 | |
JP3896829B2 (ja) | ネットワーク中継装置 | |
US20230254246A1 (en) | Mechanisms for packet path tracing and per-hop delay measurement in segment routing with multiprotocol label switching (sr-mpls) networks | |
JP6402078B2 (ja) | ネットワークシステムおよびパケット転送方法 | |
CN105656814A (zh) | 一种sdn网络转发系统与方法 | |
JP2006165952A (ja) | パケット中継装置およびパケット通信ネットワーク | |
CN113297117A (zh) | 数据传输方法、设备、网络系统及存储介质 | |
JP2000232480A (ja) | パケットヘッダ変換装置および通信ノード装置 | |
JP2015525984A (ja) | 通信システム、制御装置、通信方法及びプログラム | |
WO2022135321A1 (zh) | 报文传输方法、设备及系统 | |
JP2923921B1 (ja) | パケット転送方式 | |
WO2024001701A1 (zh) | 数据处理方法、装置及系统 | |
CN115396323B (zh) | 一种基于有限状态机的端口实时数据流可视化方法及其系统 | |
JP7116255B2 (ja) | ネットワーク機器及び変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040318 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051101 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060104 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060718 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060904 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061211 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 3896829 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110105 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120105 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130105 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |