JP3988039B2 - リンク切替方法及びリンクインターフェース - Google Patents

リンク切替方法及びリンクインターフェース Download PDF

Info

Publication number
JP3988039B2
JP3988039B2 JP2002215243A JP2002215243A JP3988039B2 JP 3988039 B2 JP3988039 B2 JP 3988039B2 JP 2002215243 A JP2002215243 A JP 2002215243A JP 2002215243 A JP2002215243 A JP 2002215243A JP 3988039 B2 JP3988039 B2 JP 3988039B2
Authority
JP
Japan
Prior art keywords
packet
link
counter
count
storage element
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
JP2002215243A
Other languages
English (en)
Other versions
JP2004056736A (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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2002215243A priority Critical patent/JP3988039B2/ja
Publication of JP2004056736A publication Critical patent/JP2004056736A/ja
Application granted granted Critical
Publication of JP3988039B2 publication Critical patent/JP3988039B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワークデバイス間のリンクを集約する際に用いられるリンク切替方法及びリンクインターフェースに関し、特に、マーカプロトコルによるリンク切り替えの処理をハードウエアで実現するリンク切替方法及びリンクインターフェースに関する。
【0002】
【従来の技術】
近年、ネットワークデバイス間を接続する複数のリンクを集約するリンク集約化が注目を浴びている。リンク集約を行うことにより、例えば、大掛かりなハードウエアの更新を行うことなく実効的なリンク容量を増加させることができ、また、障害が発生したリンクを切り離して正常なリンクのみで通信を行えることから、リンクの可用性を高めることができる。
【0003】
リンク集約の対象となるリンクは、例えば、OSI参照モデルでのレイヤ2(データリンク層)のリンクであり、具体的には、いわゆるイーサネット(R)技術によるリンクである。IEEE802.3adでは、同一のデータレートで動作するイーサネット(R)リンクのリンク集約化が標準化されている。
【0004】
レイヤ2のリンクでは、一般に、伝送されるフレームやパケットに関しての順序制御は行われないから、例えば同一のアプリケーションに属するフレームやパケットについては、到達順序の逆転などが起こらないようにするために同一のリンクを使用するよう、リンクへのフレームやパケットの分配を制御する必要がある。以下の説明においては、この技術分野における通常の用法に基づいて、配送における順序を維持する必要があるトラフィックの集合のことを「対話」と定義する。同じ対話に属するフレームあるいはパケットは、同一のリンクを使って伝送されることになる。
【0005】
ところで、動的な負荷分散上の都合や、ネットワークの物理的構成の変更、いずれかのリンクにおいて障害が発生した場合などにおいて、集約化されたリンクの間でリンクの切替を行うことがある。上述したように同一の対話に属するフレームあるいはパケットは、同一のリンクで伝送する必要があるから、任意のタイミングでリンクを切り替えることはできず、通信中の対話の全フレームの伝送の完了を確認してからリンクの切り替えを行う必要がある。そこで、上述のIEEE802.3adは、マーカプロトコルによるリンク切替を規定している。
【0006】
マーカプロトコルでは、自デバイスから隣接するデバイスに対してあるリンク上で、送信中の対話の全フレームの伝送が完了したときなどに、マーカパケットを送信し、マーカパケットを受信した隣接デバイスはマーカ応答パケットを送り返すこととしており、マーカ応答パケットを自デバイスで受信した時点でリンクの切替を行うことができる。このとき、新たな切替後のリンク上では、新たな対話の通信をそのリンク上で最初から開始するために、マーカパケットを送信したデバイスでは、マーカパケットを送信した以降のパケットから再送を始める必要がある。
【0007】
このようなマーカプロトコルによるリンク切替を実現するために、従来は、キュー内の送信するパケットとそれらを一意的に管理するそれぞれのポインタとの関連付けをソフトウエアによって処理していた。例えば、マーカプロトコルによるリンク切替では、マーカパケットのアドレスをポインタによって管理し、受信したパケットがマーカ応答パケットであるかを判別し、マーカ応答パケットである場合には、リンクの切り替えを行うとともに、送信キューにおける次に送信すべきパケットを表わすポインタをマーカパケットのアドレスの次アドレスに書き替え、書き替えられたアドレスからパケットの再送を開始する処理を、全てソフトウエアで行うようになっていた。そのため、この処理は、ネットワークの性能を向上する上でのボトルネックとなることがある。将来的に、ネットワークトラフィックが急増していき、例えば10ギガビットイーサネット(R)でリンク集約化をさせようとしたときには、このソフトウエアによる処理性能の限界がネットワーク性能の低下に直接つながることが予想される。
【0008】
図1は、リンク集約が行われるネットワークの構成の一例を示している。図1において、デバイスAとデバイスBは、いずれも、リンク1及びリンク2によって接続されたネットワークデバイスである。ここでリンク1とリンク2は互いに集約化されたリンクである。さらに、デバイスAには加入ポートとしてリンク3〜リンクNが設けられており、同様にデバイスBには加入ポートとしてリンクN+1〜リンクMが設けられており、これらのリンク3〜リンクMはいずれも集約化されていないリンクである。
【0009】
以下、説明のために、ネットワークトラフィックはデバイスAからデバイスBへ流れるものとする。リンク1とリンク2は冗長構成のために集約化されており、デバイスAとデバイスBを接続する2本のリンクのうち、リンク1はワーク用(現用系)リンクであり、リンク2はプロテクション用(予備系)リンクであるとする。
【0010】
図2は、このようなデバイスAにおけるデータパケットの送信を行う部分の構成を示している。リンクインターフェース(データパケット送信部)93には、パケットキュー管理部94と、パケットキュー管理部94とリンク1との間に設けられたインターフェース97と、パケットキュー管理部94とリンク2との間に設けられたインターフェース98とを備えている。インターフェース97,98は、物理層でのインターフェース機能を有し、少なくともここではリンクに対する出力機能を有している。パケットキュー管理部94内には、デバイスBに対して転送されるべきパケットを一時的に送信すべき順で格納する出力キュー95と、出力キュー95内のパケットをリンク1及びリンク2のいずれかに振り分けるためのフレームディストリビュータ98と、を備えている。図において、pkt1〜pkt7は、デバイスBへ転送される出力キュー95内のパケットを示している。これらのパケットは、フレームディストリビュータ98によって、それらのパケットを送信するインターフェース97,98のいずれかへ振り分けられることになる。また、必要に応じて、出力キュー95内の適切な位置に、マーカパケットが挿入される。
【0011】
従来のリンクインターフェースでは、出力キュー95やフレームディストリビュータ96での処理や、出力キュー95に対するポインタ管理は、ソフトウエアによって実現されていた。そのようなソフトウエアでの処理にはそれなりの時間を要するため、ネットワークの性能低下という問題を引き起こしやすい。
【0012】
【発明が解決しようとする課題】
上述したように、従来、マーカプロトコルによるリンク切替を実行するリンクインターフェースは、従来は、キュー内の送信するパケットとそれらを一意的に管理するそれぞれのポインタとの関連付けをソフトウエアによって処理していた。そのため、この処理は、ネットワークの性能を向上する上でのボトルネックとなることがあり、ネットワークの性能低下の原因となるおそれがある。
【0013】
今後、ネットワークトラフィックの急増が見込まれ、また、集約化される個々のリンクのデータレートの大きな上昇も見込まれる。リンクインターフェースでの上述した処理をソフトウエアによって実現する場合、その処理は実際にはCPU(中央処理装置)によって行われることになるが、この処理は、CPUにとっては比較的重い処理である。CPUの能力も年々高まっているが、ネットワークトラフィックの増大やリンクのデータレートの上昇ほどにはCPUの能力の向上は見込めないため、リンク集約における性能問題のソフトウエア依存性はますます大きくなると考えられる。
【0014】
そこで本発明の目的は、マーカプロトコルによるリンク切替をハードウエア処理によって実行することによって処理の高速化を図ったリンク切替方法及びリンクインターフェースを提供することにある。
【0015】
【課題を解決するための手段】
本発明のリンク切替方法は、複数のリンクが接続するネットワークデバイスにおいてマーカプロトコル処理によって複数のリンク間でリンク切替を行うリンク切替方法であって、送信キューに格納されているパケットをパケット処理計数カウンタによってカウントする段階と、パケット処理計数カウンタの計数値を書き込みアドレスとして第1の記憶素子に与えてパケットの第1の部分を第1の記憶素子に記憶させる段階と、パケット処理計数カウンタの計数値を書き込みアドレスとして第2の記憶素子に与えてパケットの第2の部分を第2の記憶素子に記憶させる段階と、パケットの第2の部分を書き込みアドレスとして第3の記憶素子に与えてパケット処理計数カウンタの計数値を第3の記憶素子に記憶させる段階と、マーカ応答パケットを受信したときに、リンクの切り替えを行うとともに、そのマーカ応答パケットの第2の部分を読み出しアドレスとして第3の記憶素子から値を読み出し、読み出された値に該当するアドレスの次のアドレスから第1及び第2の記憶素子からの読み出しを実行し、第1及び第2の記憶素子からの読み出し内容に応じて、切り替え後のリンクに送信パケットを送出する段階と、を有する。
【0016】
本発明のリンクインターフェースは、複数のリンクが接続するネットワークデバイスに設けられ、マーカプロトコル処理によって複数のリンク間でリンク切替を行うリンクインターフェースであって、送信キューに格納されているパケットをカウントするパケット処理計数カウンタと、パケット処理計数カウンタの計数値が書き込みアドレスとして与えられ、パケットの第1の部分を記憶する第1の記憶素子と、パケット処理計数カウンタの計数値が書き込みアドレスとして与えられ、パケットの第2の部分を記憶する第2の記憶素子と、パケットの第2の部分が書き込みアドレスとして与えられ、パケット処理計数カウンタの計数値を記憶する第3の記憶素子と、リンクの切り替えを行い、選択されたリンクに送信パケットを送出するリンク切替部と、を有し、マーカ応答パケットを受信したときに、そのマーカ応答パケットの第2の部分を読み出しアドレスとして第3の記憶素子から値を読み出し、読み出された値に該当するアドレスの次のアドレスから第1及び第2の記憶素子からの読み出しを実行し、選択されたリンクに所定のデータを送出する。
【0017】
本発明では、送信キューに格納されているパケットをパケット処理計数カウンタでカウントするとともに、このパケット処理計数カウンタの計数値を書き込みアドレスとして第1及び第2の記憶素子にそれぞれパケットの第1及び第2の部分を記憶させるとともに、パケットの第2の部分を書き込みアドレスとしてパケット処理計数カウンタの計数値を第3の記憶素子に記憶させている。ここで第2の部分とは、典型的には、宛先アドレスなどを含むパケットの識別要素部分であり、第1の部分とは、典型的には、パケットのペイロード部分、すなわちパケットのうち識別要素部分以外の部分である。
【0018】
マーカプロトコルでは、対向デバイスからマーカ応答パケットを受信した時点で、そのマーカ応答パケットの契機となったマーカパケットの送信時点からのパケットを再送する必要があるが、本発明では、第1及び第2の記憶素子には送信パケットを第1及び第2の部分に分けて格納し、同時に、第3の記憶素子には、パケットの第2の部分をキー(検索鍵)としてパケット処理計数カウンタの計数値が検索できるように、パケットの第2のキーを書き込みアドレスとしてパケット処理計数カウンタの計数値を記憶させる。
【0019】
一般に、マーカパケットとマーカ応答パケットの第2の部分は同一であるから(これは、マーカプロトコルにおいてマーカパケットとマーカ応答パケットに対し、宛先アドレスとして所定のグローバルに一意なマルチキャストアドレスを用いることになっていることによる)、マーカ応答パケット受信時にその第2の部分を取り出して読み出しアドレスとして第3の記憶素子にアクセスすることにより、第3の記憶素子からは、マーカパケット送出時のパケット処理計数カウンタの計数値が出力される。そこで本発明では、この読み出された計数値をアドレスとしたときにそのアドレスの次のアドレスから、第1及び第2の記憶素子からのデータの読み出しを行っている。その結果、第1及び第2の記憶素子からは、マーカパケットを送信した直後のパケットが読み出されることになり、これらを切り替え後のリンクに送信パケットとして送出することによって、マーカパケットを送信した時点からのパケットの再送が行われることになる。
【0020】
以上のパケット再送の処理は、パケット処理計数カウンタ、第1乃至第3の記憶素子といったハードウエアだけで実行されている。すなわち、マーカプロトコル処理に伴なうキュー(第1及び第2の記憶素子)のポインタ管理をハードウエアで実現できており、本発明のリンク切替方法では、リンク切替に係る再送処理をハードウエアで実現することができる。
【0021】
さらに、本発明のリンクインターフェースでは、従来のリンクインターフェースにおけるフレームディストリビュータの代わりに、マーカ応答パケットの受信に応じて切り替わるリンク切替部を使用しており、このリンク切替部の切替動作には、ソフトウエアによる処理の介入が必要ない。結局、本発明のリンクインターフェースでは、上述のリンク切替方法における場合と同様に、リンク切替に係る再送処理をハードウエアで実現することができるともに、リンク切替動作自体もハードウエアで実現することができ、高速処理が可能となり、ネットワークの性能低下を回避できる。
【0022】
【発明の実施の形態】
次に、本発明の好ましい実施の形態について、図面を参照して説明する。
【0023】
図3は、本発明の実施の一形態のリンクインターフェース部を構成を示す回路図である。このリンクインターフェース10は、集約化されたリンクと接続するネットワークデバイスにおいて、集約リンクに対してパケットを一時的に格納(キュー)するとともに送出する機能を有するものである。図2に示した従来の構成におけるパケットキュー管理部94に対応するものであるが、図3に示したようにハードウエア処理を行うように構成されている点で、図2に示したものと相違している。
【0024】
ここでのネットワークデバイスとは、典型的にはOSI参照モデルにおけるレイヤ2の処理を行うものである。このようなネットワークデバイスととしては、例えば、上位装置であるサーバ装置(サーバコンピュータ)内に組み込まれるいわゆるネットワークインターフェースカード(NIC)や、レイヤ2でのスイッチを行うスイッチングハブや、ルーターなどにおいて各入出力ポートごとに設けられるレイヤ2のインターフェースなどが挙げられる。
【0025】
以下の説明では、図1に示した場合と同様に、それぞれネットワークデバイスであって離れた場所に設けられているデバイスAとデバイスBとがネットワークによって接続しており、デバイスAとデバイスBとの間の2本のリンク(リンク1とリンク2)が集約化されており、本実施形態のリンクインターフェースは、少なくともデバイスAに搭載されるものとする。すなわち以下では、図1に示すネットワーク構成において、自デバイスがデバイスA、対向デバイスがデバイスBに対応するものとして説明を行う。また、リンク1やリンク2が相互にデータレートが等しいイーサネット(R)のリンクであるものとする。したがって、リンク上で転送されるパケットには、宛先アドレスや送信元アドレスとして、MAC(Media Access Control)アドレスが含まれることになる。このようなパケットは、1つのパケット内に、大別すると、識別要素とペイロードとを含んでおり、後述するアセンブリ部において識別要素とペイロードとを組み合わせることによって組み立てられるものである。識別要素とは、宛先アドレスや送信元アドレスなど、パケット自体を識別し、あるいはネットワークデバイスにおいてパケットの転送を制御するために使用される情報要素である。ペイロードとは、識別要素以外の情報であり、例えば、パケットが転送すべきデータなどである。
【0026】
リンクインターフェース10は、出力パケットをリンク1とリンク2のいずれかに出力するリンク切替部11と、識別要素とペイロードとを組み立ててパケットとしリンク切替部11に出力するアセンブリ部12と、このリンクインターフェース10に与えられるペイロードを一時的に保持する記憶素子e 15と、このリンクインターフェース10に与えられる識別要素を一時的に保持する記憶素子f 16と、パケット処理計数カウンタ18と、パケット処理計数カウンタ18の計数値を時間軸上の並びとして保持する記憶素子g 17と、カウンタ19とを備えている。リンクインターフェース10自体を構成するものではないが、リンクインターフェース10の周辺回路部分として、図3には、対向するネットワークデバイスから受信したパケットを一時的に格納する受信バッファ13と、受信パケットがマーカ受信パケットである場合にそのマーカ受信パケットのパケットとしての識別要素を取り出すセグメント部14と、このネットワークデバイス全体のホスト(CPU)20とが描かれている。また、リンクインターフェース10に対しては、リンク1あるいはリンク2に対して送出するパケットを構成するために、識別要素とペイロードとが、このネットワークデバイスに備えられた送信キュー25から供給されている。また、リンク1、リンク2に対する物理的なインターフェースとして、リンク切替部11には物理インターフェース(I/F)部25,26がそれぞれ接続している。物理インターフェース部25,26は、リンクを構成する物理的な信号媒体(ケーブル、光ファイバ)などとのインターフェースとなるものである。
【0027】
ここで、このリンクインターフェースにおける識別要素について、詳細に説明する。ここでは宛先アドレスなどの識別要素を記憶素子g 17にアドレスとして与えると説明したが、識別要素として宛先アドレスの全体を使用するものとすると、この宛先アドレスがMACアドレスであればMACアドレスは48ビット長(6オクテット)であることから、識別要素も最低48ビット長ということになる。リンク集約の実装によっては、宛先アドレスと送信元アドレスの両方を識別要素として使用する場合もあり、その場合は識別要素は96ビット長となる。このような長いビット長の識別要素を記憶素子におけるアドレスとして使用すると、記憶素子には極めて大きな記憶容量やアドレス空間が必要となり、現実的でない。
【0028】
このリンクインターフェースでは、以下の説明から明らかになるように、マーカパケットとマーカ応答パケットが同じ識別要素を持つこと、及び、マーカパケットとマーカ応答パケットとが他の種類のパケットとは異なる識別要素を持つことを利用して、リンク切替を行っている。そこで、このリンクインターフェースにおいては、以上のような観点から、リンク集約による使用リンクの分散やリンク切替を行うために最小限必要なものを識別要素とし、それ以外のものペイロードとすることができる。そこで、例えば、連続する“0”の部分を省略するとか、宛先アドレスの下位数ビットと上位数ビットとを組み合わせたものを用いるなどして、記憶素子として現実的な容量の範囲内に収まるように、記憶素子g 17にアドレスとして与えられる識別要素としては、数ビットから十数ビットとビット長を短くしたものを使用し、宛先アドレスの残りのビットを含めてパケットの他の部分をペイロードとみなすようにする。
【0029】
このリンクインターフェース10では、送信すべきパケットについて、ペイロードと識別要素とを分けてそれぞれ記憶素子e 15と記憶素子f 16に一時的に記憶させ、これら分離して記憶されたペイロードと識別要素とをアセンブリ部12において組み合わせて送信パケット(データパケットあるいはマーカパケット)に組み立て、リンク切替部11を介してリンク1またはリンク2に出力している。すなわち、記憶素子e 15及び記憶素子f 16は、リンク切替後のパケット再送信に備えて、リンク上に送出したパケットを一時的に格納するバッファとして機能する。そして、記憶素子g 17には、パケットの識別要素からその識別要素のパケットがどのタイミングであるいは何番目に送出されたパケットであるかを知ることができるようにするため、識別要素をアドレスとし、パケット処理計数カウンタ18の計数値をデータとして格納するようにしている。
【0030】
パケット処理計数カウンタ18は、送信キュー25に格納されているパケットがこのリンクインターフェースに送り込まれるたびに1だけカウントアップする動作を行っている。パケット処理計数カウンタ18の出力すなわち計数値は、記憶素子e 15や記憶素子f 16に対して書き込み時のアドレスとして与えられ、また、記憶素子g 17に対しては格納すべきデータとして与えられる。
【0031】
リンクインターフェース10においては高速の処理が要求され、またパケットの入出力や識別要素やペイロードの入力は非同期に発生し得るので、この実施形態のリンクインターフェース10では、記憶素子15〜17としてそれぞれデュアルポート素子(デュアルポートメモリ)を使用している。中でも、記憶素子e15及び記憶素子f 16には、デュアルポート素子を用いることが好ましい。図中、Aとあるのはアドレス入力端子を示し、Dとあるのはデータの入力端子または出力端子を示している。記憶素子e 15の入力側のポートをポートe1、出力側のポートをポートe2とする。ポートe1のアドレスにはパケット処理カウンタ18の計数値が入力し、データにはペイロードが入力する。ポートe2のアドレスにはカウンタ19の計数値が入力し、データはアセンブリ部12に出力される。記憶素子f 16の入力側のポートはポートf1であり、出力側のポートはポートf2であり、ポートf1のアドレスにはパケット処理カウンタ18の計数値が入力し、データには、記憶素子e 15に記憶されるペイロードに対応する識別要素(例えば宛先アドレスなど)が入力し、ポートe2のアドレスにはカウンタ19の計数値が入力し、データはアセンブリ部12に出力される。記憶素子g 17の入力側のポートはポートg1であり、出力側のポートはポートg2であり、ポートg1のアドレスには識別要素が入力し、データにはパケット処理カウンタ18の計数値が入力し、ポートe2のアドレスにはセグメント部14から出力されるマーカ応答パケットの識別要素が入力し、データはカウンタ19に出力される。後述するように、リンク切替ではない通常運転時のパケット送信の場合には、ポートe2とポートf2のアドレスには、カウンタ19は、パケット処理計数カウンタ18の計数値をそのまま透過して出力する。
【0032】
上述したように受信バッファ13は、対向するデバイスから送られてくるパケットを受信するバッファであり、もし受信パケットが自デバイス宛のパケットであれば、自デバイス宛パケット処理部へ渡す。また受信したパケットが隣接デバイスからのマーカ応答パケットであれば、セグメント部14へパケットを渡す。
【0033】
セグメント部14は、受信したマーカ応答パケットの識別要素を記憶素子g 17のポートg2のアドレスとして渡す。これによって記憶素子g 17のポートg2から、データとして、自デバイスがマーカパケットを送信したときのパケット計数値を読み出すことができるようになる。これは、マーカプロトコルにおいて、マーカパケットとマーカ応答パケットとでは、宛先アドレス等の識別要素が同じであることによる。IEEE802.3adによれば、マーカパケットもマーカ応答パケットも、宛先アドレスとして、グローバルに一意なマルチキャストアドレスである「01−80−C2−00−00−02」(16進表示)を持つことになっている。また、セグメント部14は、マーカ応答パケットを受信した場合、受信した旨の通知をカウンタ19とホスト20に対して行うようになっている。これによってホスト20は、カウンタ19に対して、ポートg2からの出力の値に1を加算したものを取り込むように命令を与える。
【0034】
次に、カウンタ19の構成について、図4を用いて説明する。
【0035】
カウンタ19は、リンク切替ではない通常運転時には、パケット処理計数カウンタ18のカウンタ出力値をそのままポートe2及びポートf2のアドレス端子に出力し、自デバイスが対向デバイスからマーカ応答パケットを受信した時点で、記憶素子g 17のポートg2から、自デバイスがマーカパケットを送信したときのパケット計数値を読み出してこれに1を加算し、加算後の値からカウントアップを開始してそのカウンタ値をポートe2及びポートf2のアドレス端子に出力するものである。カウンタ19のカウントアップによるカウンタ値がパケット処理計数カウンタ18が出力しているカウンタ値と一致した時点で、カウンタ19は、リンク切替でない通常運転時のモードに復帰し、パケット処理計数カウンタ18のカウンタ出力値をそのまま出力するように切り替わる。なお、カウンタ19がポートe2及びポートf2のアドレスのためにカウントアップを行っている期間中に自デバイスがマーカパケットを送信する場合もありうるが、その場合には、カウンタ19は、そのカウントアップを停止する。一般に、送信キュー25からのこのリンクインターフェース10へのパケット転送速度は、各リンク上でのパケット転送速度より低く抑えられるが、カウンタ19については、例えば、物理インターフェース部26,27におけるフロー制御などにより、リンク上にパケットが送出可能になったら即座にカウントアップを行い、リンク上になるべく早く次のパケットが送出されるようにすることが好ましい。少なくとも、カウンタ19の計数率(すなわちリンク切替に伴なう再送処理を行っている際のリンク上でのパケット転送速度)は、送信キュー25からパケットを取り込む際における転送速度よりも大きい必要がある。そうでないと、再送処理のための送信バッファである記憶素子e 15及び記憶素子f 16がバッファオーバーフローになってしまう。
【0036】
このようなカウンタ19は、マーカ応答パケットの受信をマーカ応答受信d1として通知されたときにカウントアップ動作を行うカウント部21と、カウント部21の出力とパケット処理計数カウンタ18のカウンタ出力値のいずれかを選択してこのカウンタ19の出力i1とするとともに、カウント部21でのカウンタ値とパケット処理計数カウンタ18のカウンタ出力値とを比較する比較・選択部22と、ホスト20からの命令j1に応じ、記憶素子g 17のポートg2のデータ出力を取り込んで1を加算し、加算結果をカウンタ部21に転送する加算部23と、を有している。
【0037】
次に、このリンクインターフェース10の動作について説明する。
【0038】
まず、自デバイスの送信キュー25内に格納されているパケットが、1つずつ、このリンクインタフェース10に送り込まれるものとする。もちろん、通常のOSIレイヤ2のデバイスと同様に適切なフロー制御が行われており、リンクインターフェース10での処理能力を超えてパケットが流入することはないようになっている。特に、リンク切替に伴うパケット再送を行っている期間中は、送信キューから送り込まれたパケットの送信よりも、リンクインターフェース10中に格納されているパケットの再送を優先して実行するので、リンクインターフェース10内でのバッファオーバーフローが発生しないように、リンク上に送出される単位時間あたりのパケット数よりも、リンクインターフェース10に送り込まれる単位時間あたりのパケット数が小さくなるようにする。
【0039】
図5は、リンク切替前後でのリンクインターフェース10の動作を示す図である。ここでは、パケットpkt1からパケットが順次、リンクインターフェース10に取り込まれるものとし、3番目のパケットpkt3がマーカパケット(識別要素が「m」)であるとする。リンク1がワーク用リンクであり、リンク2がプロテクション用リンクであるとして、ここでのリンク切替がリンク1からリンク2への切替であるとする。パケットpkt1に対するパケット処理計数カウンタ18の計数値がn−2(ということは、マーカパケットに対応するパケット処理計数カウンタ18の計数値がn)であるとする。また、8番目のパケットpkt8を送信したタイミングでマーカ応答パケットを受信したものとする。
【0040】
送信キュー25からのパケットは、それぞれ識別要素と、識別要素以外のペイロード部分とに分けられて与えられ、識別要素は記憶素子f 16にポートf1を介して記憶され、ペイロード部分は記憶素子e 15にポートe1を介して記憶される。この時、ポートe1及びポートf1のアドレス端子には、パケット処理計数カウンタ18の計数値が入力するようにする。パケット処理計数カウンタ18は、送信キュー25からパケットがリンクインターフェース10に取り込まれるごとにカウントアップするから、送信キュー25からパケットが1つ取り込まれると、そのときのパケット処理計数カウンタ18の計数値をアドレスとして、そのパケットのペイロードが記憶素子eに格納され、識別要素が記憶素子fに格納される。またこのとき、そのパケットの識別要素が記憶素子g 17のポートg1に書込みアドレスとして与えられて、パケット処理カウンタ18の計数値が記憶素子gに格納される。ここでは、アドレスとデータの関係が、記憶素子g17のポートg1と記憶素子f 16のポートf1では、ちょうど逆転している。また、記憶素子e 15及び記憶素子f 16には、各パケット(ペイロード及び識別要素)が時間順に記憶されることになる。
【0041】
図5では、時間の経過に伴うパケット処理計数カウンタの計数値の変化、各時点で送信キューからリンクウインターフェース10に取り込まれるパケット、その時点で記憶素子e及び記憶素子fに書き込まれるデータ、カウンタ19の出力値、その時点での記憶素子e及び記憶素子fから読み出されるデータ、リンク上に送出されるパケット及び使用リンクが示されている。カウンタ19の出力値において値の前に「→」が付されているものは、パケット処理計数カウンタ18の出力値がそのままカウンタ19の出力値となっていることを示している。各記憶素子e〜gとしてデュアルポートメモリを利用しているとしているので、図では、同じタイミングで同じ記憶素子に対して書き込みと読み出しの両方が行われるように示されているが、実際には、書き込みと読み出しのタイミングは多少ずれていてもよい。ここでS(pkt…)とあるのは、pkt…のペイロードを示しており、R(pkt…)とあるのは、pkt…の識別要素を示している。パケット処理計数カウンタ18の計数値は、時間の経過とともにn−2から1つずつカウントアップしており、その計数値が書き込みアドレスとして、記憶素子e及び記憶素子fに、各パケットのペイロードと識別要素とが書き込まれることが分かる。上述したように記憶素子g 17においては、各パケットの識別要素が書き込みアドレスとして与えられてパケット処理計数カウンタ18の計数値が格納されるから、記憶素子g 17の記憶内容は、9番目のパケットpkt9を送信キュー25から受け取った時点では、図6(a)に示すようになる。なお、各パケットの識別要素の値は、パケットの入力順とは無関係であるから、アドレス順で見た場合、データであるパケット処理計数カウンタ18の計数値は、順番には並ばない。ここで、マーカパケットの識別要素mをアドレスとして、マーカパケット送信時のパケット処理計数カウンタ18の計数値nが記憶されていることに注意する必要がある。なお、図6(b)は、記憶素子eと記憶素子fの各アドレスに何が格納されるかを示しており、以下の処理を経た後の最終的な記憶内容を示している。
【0042】
リンク切替が発生していない段階では、前述したように、ポートe1及びポートf1側でそれぞれ送信パケットの識別要素とペイロードを記憶するためのアドレスとして、パケット処理計数カウンタ18のカウント値を使用する。パケット処理計数カウンタ18のカウンタ値は、カウンタ19にも入力される。ここではリンク切替がまだ発生していないとしているから、カウンタ19は通常運転時の動作モードであり、パケット処理計数カウンタ18のカウンタ値がそのままカウンタ19の出力i1となる。この出力i1が、記憶素子e 15のポートe2及び記憶素子f 16のポートf2のアドレスとして渡される。したがって、記憶素子e 15のポートe2からは、送信するパケットのペイロードが読み出され、記憶素子f 16のポートf2からは、パケットの識別要素が読み出され、それらがアセンブリ部12で結合されて1つの送信パケットが生成される。この送信パケットは、リンク切替部11に転送され、使用するリンク(ここではリンク1)へ転送される。
【0043】
図5に示すものでは、パケット処理計数カウンタの計数値がn−2であるタイミングで、パケットpkt1が送信キュー25から読み込まれ、そのペイロードS(pkt1)と識別要素R(pkt1)がそれぞれ記憶素子eと記憶素子fのアドレスn−2に格納され、このとき、カウンタ19の出力はパケット処理計数カウンタの計数値であるから、記憶素子eと記憶素子fからペイロードS(pkt1)と識別要素R(pkt1)が読み出されて、アセンブリ部12でパケットpkt1として組み立てられ、リンク1上に送出される。またこのとき、記憶素子g 17のアドレスR(pkt1)にデータとしてn−2が書き込まれる。結局、送信キュー25から読み込まれたパケットpkt1は、記憶素子e 15及び記憶素子f 16のアドレスn−2に格納されるものの、実質的にはそのままリンク上に送出されることとなる。次のパケットpkt2についても同様である。
【0044】
次に、リンクの切替作業が発生したとする。リンクの切替作業が発生すると、従来の技術で述べたものと同様に、現在使用しているリンクを介し、隣接するネットワークデバイスへマーカパケットを転送する。パケット処理計数カウンタ18の計数値がnのときにマーカパケットが送信され、このマーカパケットの識別要素は識別要素mである。マーカパケットを送信した場合、カウンタ19は、リンク切替のための後述するポートe2及びポートf2に対するカウント動作を行っていればそのカウント動作を停止する。カウント動作を行っていない場合には、そのまま、カウント動作を行わないままとする。なお、パケット処理計数カウンタ18の計数値を出力している場合には、図示するようにそのまま出力を続行してもよい。その結果、マーカ応答パケットを受信するまでに、切替前のリンクであるリンク1上に、パケットpkt4から数個のパケットが送出される。もっとも、これらのパケットは、隣接デバイス側で破棄されるものであるから、パケット処理計数カウンタ18の計数値を出力している場合にその出力を停止するようにしてもよい。
【0045】
図5に示すものでは、パケット処理計数カウンタ18の計数値nのタイミングでマーカパケットが読み込まれ、上述したパケットpkt1の場合と同様に、このマーカパケットも記憶素子e 15及び記憶素子f 16のアドレスnに格納されるとともに、リンク1上に送出される。また、記憶素子g 17のアドレスm(マーカパケットの識別要素)には、このときのパケット処理計数カウンタ18の計数値nが格納される(図6参照)。マーカパケットの次のパケットであるパケットpkt4についても、pkt1の場合と同様に、記憶素子e 15及び記憶素子f 16のアドレスn+1に格納されるとともに、リンク1上に送出される。また、記憶素子g 17のアドレスR(pkt4)には、このときのパケット処理計数カウンタ18の計数値n+1が格納される。以下、マーカアドレス送信後のパケットが、送信キュー25から順次読み込まれてリンク1上に送出されるとともに、記憶素子e 15及び記憶素子f 16の連続するアドレス領域に順番に格納されていくことになる。
【0046】
ここで、リンク1がワーク用リンクであり、リンク2がプロテクション用リンクであって、リンク1からリンク2へのリンク切替であるとしているから、マーカパケットは、リンク1を介して隣接デバイス(対向デバイス)に転送されることになる。隣接デバイスは、リンクの切替要求が来たことを認識すると、マーカパケットを送信したデバイスに対し、マーカ応答パケットを返送して、リンク切替要求を認識したことを通知する。ここでは、8番目のパケットpktを送出した時点(8番目のパケットpkt8を送信キュー25から受け取って上述したような各処理が終了した時点)で、マーカ応答パケットは受信バッファ13で受け付けられ、セグメント部14へ渡される。もし、受信バッファ13が受け付けたパケットが通常の自デバイス宛パケットであれば、これは受信バッファ13から自デバイス宛パケット処理部へと渡される。
【0047】
マーカ応答パケットは、セグメント部14において、宛先アドレス等のパケットの識別要素を取り出され、これは記憶素子gのポートg2のアドレスとなる。マーカプロトコルでは、マーカパケットもマーカ応答パケットも同一の宛先アドレスを有することになっているから、これらのパケットの識別要素も相互に同じであって、上述した識別要素mである。なお、マーカパケットもマーカ応答パケットも単一のリンク内だけに転送が制限されるものであるから、通常のパケット配送におけるような宛先の指定は本来不要なものであり、その代わりに、マーカパケットあるいはマーカ応答パケットであることを示す特殊な宛先アドレスが付与されている。
【0048】
識別要素mがアドレスとして記憶素子g 17のポートg2に渡されると、記憶素子g 17はデュアルポート素子であることから、図6に示したように、ポートg2からデータとしてパケットカウント値nが読み出される。このパケットカウント値nはマーカパケットを送信したときのパケット処理計数カウンタ18の計数値である。読み出されたカウント値nは、カウンタ19に渡される。また、セグメント部14は、マーカ応答パケットを受信した際に、マーカ応答の受信の通知をカウンタ19とホスト20に対して行う。
【0049】
カウンタ19は、セグメント部14からの通知をマーカ応答受信d1として受け取る。またホスト20は、カウンタ19に対して、記憶素子g 17のポートg2の出力g1を取り込んでその値を「+1」だけインクリメントするように命令する。これをホスト命令j1とする。この命令j1を受けたカウンタiは、ポートg2の出力g1を取り込み、加算部23によって出力g1に1を加算し、加算後の値すなわち「n+1」をカウント部21に転送し、カウント部21はこの「n+1」の値からカウントアップしていく。また、マーカ応答受信d1を受け取ったことにより、比較・選択部22は、パケット処理計数カウンタ18からの入力をマスクし、カウント部21での計数値を、カウンタ19の出力i1とする。この出力i1が記憶素子e 15のポートe2及び記憶素子f 16のポートf2でのアドレスとなる。これらの記憶素子15,16は上述したようにデュアルポート素子であり、カウンタ19の出力i1は「n+1」から計数されるため、記憶素子e 15のポートe2と記憶素子f 16のポートf2からのデータとして、マーカパケット送信以降のパケットのペイロード及び識別要素がそれぞれ新たに読み出されることになる。これらはアセンブリ部12(図3参照)で結合され送信パケットとなる。また、マーカ応答パケットを受信した時点で、セグメント部14からリンク切替部11へリンク切替の通知が伝達されているから、アセンブリ部12で生成された送信パケットは、リンク切替部11での新たな切替後のリンク上に転送される。リンク1からリンク2への切替がなされているのであれば、この送信パケットはリンク2上に転送される。これにより、マーカパケット送信した直後のパケットから、リンク2上に転送されることとなり、対話に支障をきたすことなく、リンク切替が行われたことになる。
【0050】
なお、カウンタ19内の比較・選択部22は、マーカ応答パケットを受信した以降のカウント部21でのカウンタ値とパケット処理計数カウンタ18から入力するカウンタ値とを常に比較しており、両者が一致した場合に切り替わり、それ以降は、次にマーカパケットの送信やマーカ応答バケットの受信があるまで、パケット処理計数カウンタ18から入力するカウンタ値をカウンタ19の出力i1とする。
【0051】
図5に示した例では、パケット処理計数カウンタ18の計数値がn+5のとき、マーカ応答パケットが受信される。すると上述したように、そのマーカ応答パケットの識別要素mが記憶素子gの読み出しアドレスとして与えられ、その結果、記憶素子gからは、マーカパケット送信時の計数値nがカウンタ19に出力される。また、カウンタ19も切り替わって、n+1からカウントアップを開始して、そのカウントアップされた値が記憶素子e及び記憶素子fに読み出しアドレスとして与えられるようになる。その結果、記憶素子e及び記憶素子fに与えられる読み出しアドレスは、n+5の次がn+1となり、記憶素子e及び記憶素子fからは、パケットpkt4も含めてそれ以降のパケットが順次再出力されることになる。ここで、マーカ応答パケットの受信に応じてリンク切替部11も切り替わっているから、その結果、パケット処理計数カウンタ18の計数値n+1から、対応するパケットのペイロード及び識別要素が記憶素子e及び記憶素子fからそれぞれ読み出され、送信パケットに組み立てられて、マーカ応答パケットに応じて切り替わった後のリンクに送出されることになる。その結果、マーカプロトコルによるパケットの再送処理が、ハードウエア構成で実行されたことになる。
【0052】
パケットの再送処理を開始した時点では、記憶素子e及び記憶素子fにおいて、書き込みアドレス(=パケット処理計数カウンタ18の計数値)よりも読み出しアドレス(カウンタ19の出力値)の方が遅れているが、カウンタ19のカウントアップのクロックはパケット処理計数カウンタ18のカウントアップのクロック(送信キューからこのリンクインターフェースに入力するパケットの転送速度)よりも速く設定されており、その結果、書き込みアドレスと読み出しアドレスとの差は徐々に小さくなり、ついには書き込みアドレスが読み出しアドレスに追いつくこととなる。その時点でカウンタ19は通常状態に切り替わって、その後は、カウンタ19を介してパケット処理計数カウンタ18の計数値が記憶素子e及び記憶素子fに読み出しアドレスとしても供給されるようになる。図5に示した例では、パケット処理計数カウンタ18の計数値がn+11のときに、カウンタ19の計数値もn+11となって追いつくことから、通常状態に切り替わる。
【0053】
次に、本発明の別の実施の形態のリンクインターフェースについて説明する。図3に示したリンクインターフェースは、冗長構成のために現用系のリンクと予備系のリンクとを切替えることを目的としたものであったが、ここでは、さらに、対話ごとにリンクを分散させる例を説明する。図7は、対話ごとにリンクを分散する機能を有するリンクインターフェースを示すブロック図である。
【0054】
図7に示したリンクインターフェースは、図3に示したリンクインターフェースと同様の構成のものであるが、対話ごとにリンクを分散させるために、送信すべき各パケットについて識別要素とペイロードのほかに、対話識別要素が入力する。対話識別要素は、そのパケットがどの対話に属するかを識別するフラグである。リンク切替の技術分野でよく知られているように、あるパケットがどの対話に属するかは、例えば、宛先アドレスが異なっている、あるいは送信元アドレスが異なっている、あるいは、上位レイヤ側で用いるポート番号などが異なっている、などに基づいて判別することができる。ここでは図示していないが、送信キューにおいてそのような判別を行い、その結果、送信キューから各パケットの識別要素、ペイロード及び対話識別要素がこのリンクインターフェースに与えられるようになっている。
【0055】
さらに、図7に示したリンクインターフェースは、リンク切替部11と、アセンブリ部12と、受信バッファ13と、セグメント部14と、記憶素子15〜17と、パケット処理計数カウンタ18と、カウンタ19との他に、個々のアプリケーションの対話パケットごとの対話識別要素と識別要素とによって、対話ごとにリンクを分散させるリンク制御部31と、パケット処理計数カウンタ18の計数値を一時的に格納するレジスタ32とを備えている。リンク制御部31は、リンク切替部11を制御し、対話ごとに使用するリンクを分散させる。またレジスタ32は、マーカ応答パケットを受信したときのパケット処理計数カウンタ18の値を格納するものであって、ホスト20からアクセス可能である。ホスト20は、通常運用時における負荷分散などのためのリンク切替も制御する。
【0056】
ここで、送信すべきパケットがpkt1〜pkt7までであるとし、pkt2とpkt4、pkt3とpkt6、pkt5とpkt7はそれぞれ同じ対話に属するパケットであるとする。また、ネットワークの通常運用時には、pkt1をリンク1、pkt2とpkt4及びpkt3とpkt6をリンク2、pkt5とpkt7をリンク1上に分散させるとする。自デバイスがデバイスAであり、対向デバイスがデバイスBであるとする。その結果、通常運用時におけるパケットの転送は、図8に示すようになる。デバイスAには、図7に示したリンクインターフェースが装備されているとする。
【0057】
ここで、トラフィックの負荷分散のためpkt3とpkt6に属する対話をリンク2からリンク1へ移動させるとすると、図2に示した場合と同様に、pkt3の後にマーカパケットを送信する準備を行う。図9は、このときのパケット転送を示している。マーカパケットは、リンク2上で、pkt3の直後にデバイスAからデバイスBへ転送され、これによりデバイスAは、pkt3とpkt6に属する対話をリンク1へ移動する要求を行う。マーカパケットを認識したデバイスBは、マーカ応答パケットをリンク2上でデバイスBからデバイスAへ転送し、pkt3とpkt6に属する対話をリンク1へ移動する要求を認識したことを通知する。このとき、pkt4はリンクの移動対象外であるため、前述したデバイスAのリンク制御部31とリンク切替部11によって、リンク2上に送信される。
【0058】
デバイスAのリンクインターフェース(図7参照)では、受信バッファ13においてマーカ応答パケットを受信すると、セグメント部14においてマーカ応答パケットの識別要素が取り出され、これが記憶素子g 17のポートg2のアドレスとして入力する。記憶素子g 17には、図3に示したリンクインターフェースと同様に、パケット処理計数カウンタ18のカウント値がデータとして格納されており、特に、マーカパケットの識別要素に対応するアドレスには、そのマーカパケットを送信したときのパケット処理計数カウンタ18のカウント値が記憶されているため、マーカパケットとマーカ応答パケットの識別要素が同じであることから、記憶素子g 17からは、マーカパケット送信時のパケット処理計数カウンタ18の計数値が読み出されることになる。読み出された値(マーカパケット送信時のカウント値)は、カウンタ19に送られ、カウンタ19は、マーカ応答受信の通知に基づいて、この送られた値に1を加算した値からカウントアップを行い、カウントアップされた値が、順次、記憶素子e 15のポートe2及び記憶素子f 16のポートf2のアドレスとして入力する。これらの記憶素子15,16は、デバイスAがマーカパケットを送信した時点及び以降のパケットのペイロード及び識別要素を記憶しているため、マーカパケットの送信の直後からのパケットのペイロード及び識別要素が記憶素子e 15のポートe2及び記憶素子f 16のポートf2から読み出され、これらはアセンブリ部12において送信パケットとして組み立てられる。そして、マーカパケットを送信した直後のパケットから、リンク制御部31とリンク切替部11によって、対話ごとに切替後のリンクへの転送が開始される。前述の例だと、pkt6は新たにリンク1から転送される。図10はこの様子を示している。
【0059】
図11は、ここでのパケット処理計数カウンタ18及びカウンタ19の動作を説明する図である。この実施の形態のリンクインターフェースにおいても、基本的な動作は図6を用いて示したものと同様であるが、対話の移動を行うために、細部の動作が異なっている。図11においては、記憶素子e及び記憶素子fの記憶内容がアドレスごとに1つにまとめられて、「マーカパケット」やpkt4〜pkt21としてまとめて示されている。
【0060】
ここで、マーカパケットは、パケット処理計数カウンタ18の計数値がNのときに送信され、マーカ応答パケットを受信したときのパケット処理計数カウンタ18の計数値はN+12であるとする。上述したように、マーカ応答パケットを受信したときのパケット処理計数カウンタ18の計数値(この例の場合はN+12)は、レジスタ32に格納される。マーカ応答パケットを受信したことによって、記憶素子g 17からカウント値Nが読み出され、カウンタ19はホスト20からの命令を受けてカウンタ値Nに1を加算した値(N+1)から計数を再開する。このN+1は、マーカパケットを送信した直後のパケットであるpkt4に対応するものである。このときpkt3やpkt6と同じ対話に属するパケットを、pkt8、pkt9、pkt14、pkt15とすると、これらのパケットは、新たな切替後のリンク1上で送信される。その他のパケットであるpkt4、pkt5、pkt7、pkt10〜pkt13は、リンク切替の対象外であるため再送の必要はない。これは、セグメント部14からのマーカ応答パケット受信通知をリンク切替部11に渡すとともに、ホスト20からリンク切替部11に対して、マーカプロトコルにしたがって再送処理を行うべき対話についてその対話に対応する識別情報を指定し、リンク切替部11において、指定された識別情報にもとづいてパケットをフィルタリングすることにより、その対話のパケットだけをリンクに送出することによって行われる。すなわち、記憶素子e及び記憶素子fからは、図6において説明したようにマーカパケット送出時点以降のパケットが、再送の必要性の有無に関わらず読み出されるが、リンク切替部11は、再送の必要のないパケットは破棄することになる。
【0061】
カウンタ19の計数値がレジスタ32に格納された値(この例ではN+12)に達するまでは、リンク移動する対話に属するパケットについてのみリンクを開放するが、パケット処理計数カウンタ18におけるこれ以降のカウント値に対応するパケットについては、通常動作、すなわち、リンク切替により改めて対話ごとに集約されたリンク上で、パケット転送を行う。このときホスト20は、カウンタ19からの出力値がレジスタ32に格納された値に達したことを検出すると、リンク切替部11に対し、上述したパケットを破棄する処理を止めるように指示する。ここでは、カウンタ19からの出力値がレジスタ32に格納された値に達したことをホスト20が検出するとしたが、ホスト20とは別のハードウエアを設けて、そのハードウエアからの指示でリンク切替部11がパケットの破棄を止めるようにしてもよい。
【0062】
したがって、この実施の形態によれば、ネットワークトラフィックの負荷を分散させるために対話ごとにリンクを切り替えるときであっても、リンクの切替後における対話ごとの伝送パケットの並びの順序を維持でき、対向デバイス側で廃棄されるパケットをなくすことができる。
【0063】
以上、本発明の好ましい実施形態について、リンクインターフェースを有する自デバイス(図1におけるデバイスA)と対向デバイス(図1におけるデバイスB)とが2本のリンクで接続され、これらのリンクがリンク集約あるいはリンク切替の対象となる場合を例に挙げて説明したが、本発明の適用範囲はこれに限定されるものではない。自デバイスと対向デバイスとの間のリンク集約の対象となるリンクの数は、3以上であってもよい。また、図1では自デバイス(デバイスA)と対向デバイス(デバイスB)とがリンク1やリンク2によって直接接続されているように描かれているが、マーカプロトコルの処理が行える限り、自デバイスと対向デバイスとの間にブリッジやルータ、スイッチなどの他のネットワーク要素が介在していてもよい。もちろん、集約化されたリンクの両端に位置する2つのネットワークデバイスの両方が、ここで述べたリンクインターフェースを備えるようにしてもよい。
【0064】
【発明の効果】
以上説明したように本発明では、ネットワークデバイス内でリンク上にパケットを送信するリンクインターフェースに、宛先アドレスなどパケットを識別する識別要素を格納する記憶素子とパケットのペイロードを格納する記憶素子と、送信パケットを計数、管理するカウンタ回路と、受信したマーカ応答パケットの識別要素からマーカパケットを送信したときのパケット計数の値を参照できる記憶素子とを用いることにより、送信キュー内でマーカパケットの直後に格納されていたパケットから順番に切替後のリンクによって送信できるようになる。したがって、本発明によれば、リンク切替の処理をハードウエアで高速処理することができるようになるという効果がある。
【図面の簡単な説明】
【図1】ネットワーク構成の一例を示す図である。
【図2】ネットワークデバイスにおける従来のリンクインターフェースの構成を示すブロック図である。
【図3】本発明の実施の一形態のリンクインターフェースの構成を示すブロック図である。
【図4】カウンタの構成を示すブロック図である。
【図5】図3に示すリンクインターフェースの動作を説明する図である。
【図6】記憶素子gの記憶内容を説明する図である。
【図7】本発明の別の実施の形態のリンクインターフェースの構成を示すブロック図である。
【図8】パケット転送を説明する図である。
【図9】パケット転送を説明する図である。
【図10】パケット転送を説明する図である。
【図11】パケット処理計数カウンタ及びカウンタの動作を説明する図である。
【符号の説明】
10 リンクインターフェース
11 リンク切替部
12 アセンブリ部
13 受信バッファ
14 セグメント部
15 記憶素子e
16 記憶素子f
17 記憶素子g
18 パケット処理計数カウンタ
19 カウンタ
20 ホスト
21 カウント部
22 比較・選択部
23 加算部
25 送信キュー
31 リンク制御部
32 バッファ

Claims (23)

  1. 複数のリンクが接続するネットワークデバイスにおいてマーカプロトコル処理によって前記複数のリンク間でリンク切替を行うリンク切替方法であって、
    送信キューに格納されているパケットをパケット処理計数カウンタによってカウントする段階と、
    前記パケット処理計数カウンタの計数値を書き込みアドレスとして第1の記憶素子に与えて前記パケットの第1の部分を前記第1の記憶素子に記憶させる段階と、
    前記パケット処理計数カウンタの計数値を書き込みアドレスとして第2の記憶素子に与えて前記パケットの第2の部分を前記第2の記憶素子に記憶させる段階と、
    前記パケットの第2の部分を書き込みアドレスとして第3の記憶素子に与えて前記パケット処理計数カウンタの計数値を前記第3の記憶素子に記憶させる段階と、
    マーカ応答パケットを受信したときに、リンクの切り替えを行うとともに、当該マーカ応答パケットの第2の部分を読み出しアドレスとして前記第3の記憶素子から値を読み出し、読み出された値に該当するアドレスの次のアドレスから前記第1及び第2の記憶素子からの読み出しを実行し、前記第1及び第2の記憶素子からの読み出し内容に応じて、切り替え後のリンクに所定のデータを送出する段階と、
    を有するリンク切替方法。
  2. 前記所定のデータを送出する段階は、前記第1の記憶素子から読み出される前記第1の部分と前記第2の記憶素子から読み出される前記第2の部分とを組み合わせて前記送信パケットとし、当該送信パケットを送出する段階を含む、請求項1に記載のリンク切替方法。
  3. 前記第1の部分はペイロード部分であり、前記第2の部分は識別要素部分である、請求項1または2に記載のリンク切替方法。
  4. 前記識別要素部分は、少なくともパケットの宛先アドレスに基づいている、請求項3に記載のリンク切替方法。
  5. 通常動作時には前記パケット処理計数カウンタの計数値をそのまま読み出しアドレスとして前記第1及び第2の記憶素子に供給し、前記マーカ応答パケットを受信したときに前記第3の記憶素子から読み出された値を取り込んで1を加算し、加算後の値からカウントアップを行って前記第1及び第2の記憶素子に対する読み出しアドレスとして供給する段階を有する、請求項1乃至4のいずれか1項に記載のリンク切替方法。
  6. 前記カウントアップ中にマーカパケットの送信があった場合に前記カウントアップを停止する請求項5に記載のリンク切替方法。
  7. 前記カウントアップされた値が前記パケット処理計数カウンタの計数値に達した場合に前記通常動作に復帰する、請求項5または6に記載のリンク切替方法。
  8. 前記送信キューに格納されているパケットの属する対話に応じて前記対話ごとに使用リンクを分散させる、請求項1乃至7のいずれか1項に記載のリンク切替方法。
  9. 複数のリンクが接続するネットワークデバイスに設けられ、マーカプロトコル処理によって前記複数のリンク間でリンク切替を行うリンクインターフェースであって、
    送信キューに格納されているパケットをカウントするパケット処理計数カウンタと、
    前記パケット処理計数カウンタの計数値が書き込みアドレスとして与えられ、前記パケットの第1の部分を記憶する第1の記憶素子と、
    前記パケット処理計数カウンタの計数値が書き込みアドレスとして与えられ、前記パケットの第2の部分を記憶する第2の記憶素子と、
    前記パケットの第2の部分が書き込みアドレスとして与えられ、前記パケット処理計数カウンタの計数値を記憶する第3の記憶素子と、
    リンクの切り替えを行い、選択されたリンクに所定のデータを送出するリンク切替部と、
    を有し、
    マーカ応答パケットを受信したときに、当該マーカ応答パケットの前記第2の部分を読み出しアドレスとして前記第3の記憶素子から値を読み出し、読み出された値に該当するアドレスの次のアドレスから前記第1及び第2の記憶素子からの読み出しを実行し、前記選択されたリンクに前記所定のデータを送出するリンクインターフェース。
  10. 前記第1の記憶素子から読み出される前記第1の部分と前記第2の記憶素子から読み出される識別要素部分とを組み合わせて送信パケットを組み立てるアセンブリ部をさらに有し、前記送信パケットが前記所定のデータとして前記選択されたリンクに送出される、請求項9に記載のリンクインターフェース。
  11. 前記第1の部分はペイロード部分であり、前記第2の部分は識別要素部分である、請求項9または10に記載のリンクインターフェース。
  12. 前記識別要素部分は、少なくともパケットの宛先アドレスに基づいている、請求項11に記載のリンクインターフェース。
  13. 前記第1及び第2の記憶素子がいずれもデュアルポートメモリである請求項9乃至12のいずれか1項に記載のリンクインターフェース。
  14. 前記第3の記憶素子がデュアルポートメモリである請求項13に記載のリンクインターフェース。
  15. 対向デバイスからのパケットを受信する受信バッファと、
    前記受信したパケットのうちの前記マーカ応答パケットの識別要素部分を抽出して前記第3の記憶素子の読み出しアドレスとして与えるセグメント部と、
    をさらに有する請求項9乃至14のいずれか1項に記載のリンクインターフェース。
  16. 前記セグメント部は、前記マーカ応答パケットの受信に応じて前記リンク切替部にリンク切替要求を送る、請求項15に記載のリンクインターフェース。
  17. 前記パケット処理計数カウンタの計数値と前記第3の記憶素子から読み出された値が入力し、通常動作時には前記パケット処理計数カウンタの計数値をそのまま出力し、前記マーカ応答パケットを受信したときに前記第3の記憶素子から読み出された値を取り込んで1を加算し、加算後の値からカウントアップを行って前記第1及び第2の記憶素子に対する読み出しアドレスを供給するカウンタをさらに有する、請求項9乃至16のいずれか1項に記載のリンクインターフェース。
  18. 前記カウンタは、前記カウントアップ中にマーカパケットの送信があった場合に前記カウントアップを停止する請求項17に記載のリンクインターフェース。
  19. 前記カウンタは、前記カウントアップされた値が前記パケット処理計数カウンタの計数値に達した場合に、前記通常動作に復帰する、請求項17または18に記載のリンクインターフェース。
  20. 前記カウンタは、
    前記第3の記憶素子から読み出された値に1を加算する加算部と、
    前記加算部での加算結果を取り込んで前記マーカ応答パケットの受信があったときにカウントアップを開始するカウント部と、
    前記パケット処理計数カウンタの計数値と前記カウント部の計数値とが入力し、通常動作時には前記パケット処理計数カウンタの計数値を出力し、前記マーカ応答パケットの受信があったときに前記カウント部の計数値の出力に切り替わり、前記カウント部の計数値が前記パケット処理計数カウンタの計数値に達したときに前記パケット処理計数カウンタの計数値の出力に復帰する比較・選択部と、
    を有する請求項19に記載のリンクインターフェース。
  21. 前記送信キューに格納されているパケットの属する対話に応じて対話識別要素が入力し、前記対話識別要素に基づいて対話ごとに使用リンクを分散させる、請求項9乃至20のいずれか1項に記載のリンクインターフェース。
  22. 前記対話識別要素に基づいて前記使用リンクを分散させるように前記リンク切替部を制御するリンク制御部をさらに有する請求項21に記載のリンクインターフェース。
  23. 第1のネットワークデバイスと、第2のネットワークデバイスと、前記第1及び第2のネットワークデバイス間を接続する複数のリンクとを有し、マーカプロトコル処理によって前記複数のリンク間でリンクの切り替えが行われるシステムにおいて、
    前記第1及び第2のネットワークデバイスの少なくとも一方が請求項9乃至21のいずれか1項に記載のリンクインターフェースを備えることを特徴とするシステム。
JP2002215243A 2002-07-24 2002-07-24 リンク切替方法及びリンクインターフェース Expired - Fee Related JP3988039B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002215243A JP3988039B2 (ja) 2002-07-24 2002-07-24 リンク切替方法及びリンクインターフェース

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002215243A JP3988039B2 (ja) 2002-07-24 2002-07-24 リンク切替方法及びリンクインターフェース

Publications (2)

Publication Number Publication Date
JP2004056736A JP2004056736A (ja) 2004-02-19
JP3988039B2 true JP3988039B2 (ja) 2007-10-10

Family

ID=31937326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002215243A Expired - Fee Related JP3988039B2 (ja) 2002-07-24 2002-07-24 リンク切替方法及びリンクインターフェース

Country Status (1)

Country Link
JP (1) JP3988039B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8451713B2 (en) * 2005-04-12 2013-05-28 Fujitsu Limited Special marker message for link aggregation marker protocol
CN112532731B (zh) * 2020-12-02 2023-04-07 上海英方软件股份有限公司 一种多路行情数据源自动择优的方法及装置

Also Published As

Publication number Publication date
JP2004056736A (ja) 2004-02-19

Similar Documents

Publication Publication Date Title
EP0993635B1 (en) Method and apparatus for dynamic queue sizing
CA2358525C (en) Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
EP1019833B1 (en) Mechanism for packet field replacement in a multi-layered switched network element
US7035212B1 (en) Method and apparatus for end to end forwarding architecture
US6975587B1 (en) Mechanism for automatic protection switching in a router
US8619793B2 (en) Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
US7620040B2 (en) Application non disruptive task migration in a network edge switch
JP3109591B2 (ja) Atm交換機
US20030120852A1 (en) Multiple port allocation and configurations for different port operation modes on a host
US7254620B2 (en) Storage system
US6392996B1 (en) Method and apparatus for frame peeking
US7729369B1 (en) Bit clearing mechanism for an empty list
US20040037302A1 (en) Queuing and de-queuing of data with a status cache
US20210014166A1 (en) Data traffic processing method, device, and system
US7286565B1 (en) Method and apparatus for packet reassembly in a communication switch
EP1351439B1 (en) Embedded system for broadcast traffic congestion control in communication network
US7505476B2 (en) Packet transfer path control apparatus and control program therefor
US7284074B2 (en) Pipelined network processing with FIFO queues
US5913042A (en) Method and apparatus for managing packet memory
JP3988039B2 (ja) リンク切替方法及びリンクインターフェース
CN113179228B (zh) 一种提高交换机堆叠可靠性的方法、装置、设备及介质
US7710991B1 (en) Scalable packet routing and switching device and method
US8498304B2 (en) Communication controller
EP1326475A1 (en) Method and apparatus using multiple packet reassembler and memories for performing multiple functions
EP1347597B1 (en) Embedded system having multiple data receiving channels

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20041209

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050615

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070320

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070515

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070703

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

Free format text: PAYMENT UNTIL: 20100727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130727

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees