JP4015628B2 - フォーワーディング情報を動的に管理する分散構造ルータ及びその方法 - Google Patents

フォーワーディング情報を動的に管理する分散構造ルータ及びその方法 Download PDF

Info

Publication number
JP4015628B2
JP4015628B2 JP2004024440A JP2004024440A JP4015628B2 JP 4015628 B2 JP4015628 B2 JP 4015628B2 JP 2004024440 A JP2004024440 A JP 2004024440A JP 2004024440 A JP2004024440 A JP 2004024440A JP 4015628 B2 JP4015628 B2 JP 4015628B2
Authority
JP
Japan
Prior art keywords
node
forwarding
routing
virtual
information
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
JP2004024440A
Other languages
English (en)
Other versions
JP2004236339A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2004236339A publication Critical patent/JP2004236339A/ja
Application granted granted Critical
Publication of JP4015628B2 publication Critical patent/JP4015628B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/46Cluster building
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/52Multiprotocol routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers

Landscapes

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

Description

本発明は、分散構造ルータにおいてフォーワーディング情報を管理する方法に関し、特に、分散構造ルータの全てのノードが各ノードで収集されるルーティング情報を実時間で共有し、そのルーティング情報に基づいてフォーワーディング情報をアグリゲーション(aggregation)によって動的に管理する方法に関する。
大容量超高速ネットワークの発展につれて、ルータは、既存の中央集中形構造から分散処理形の新しい構造に変化していく。
中央集中形ルータにおいて、中央のプロセッサは、ルーティングプロトコルを具現し、このルーティングプロトコルによって収集されたルーティング情報を管理する。例えば、中央のプロセッサは、ルーティングテーブルを計算し、それぞれのラインカードにルーティングテーブルを分配する。従って、ラインカードは、中央のプロセッサによって計算されたルーティングテーブルに基づいてフォーワーディングを遂行する。
一方、分散処理形ルータは、中央のプロセッサに集中された作業を複数のプロセッサに分散処理させる。従って、分散処理形ルータは、中央集中形ルータに比べて大容量のデータ処理ができる。例えば、分散処理形ルータは、ルーティングプロトコルを管理する第1プロセッサ、ルーティングテーブルを計算する第2プロセッサ、及びパケットフォーワーディングを管理する第3プロセッサを別々に備える。これらそれぞれのプロセッサは、該当作業を分散処理することによって、ルーティング性能が向上する。
ルーティングノード(routing node: RN)は、それぞれのサブネットワークを支援するためのルーティングテーブル及びそれぞれのルーティング経路を処理するためのプロセッサを含む。分散構造ルータにおいて、このようなRNは、他のRNのルーティングテーブルを全体的に管理することによって、使用者に1つのルータとして見られる。
各RNの入/出力プロセッサは、ルーティングプロトコル、管理プロセッサ及びルーティングテーブルを含むシステムプロセッサ領域と、フォーワーディングテーブルを含むネットワーク領域とに区分される。各RNのシステムプロセッサは、ルーティング情報を収集し、ルーティング経路を計算することによって得られたフォーワーディングテーブルを管理し、他の入/出力プロセッサとルーティングテーブルを共有する一連の過程を遂行する。一方、ネットワークプロセッサは、フォーワーディングテーブルに基づいてローカル領域に連結されたネットワーク装備間にデータを伝送する。従って、分散構造ルータは、大容量のデータを迅速に処理すべきである。
分散構造ルータにおいて、各RNは、大容量のデータを迅速に処理するために他のRNとフォーワーディングを共有する必要がある。例えば、従来は、任意の1つのRNが全てのRNのフォーワーディングテーブルを全体的に管理するために、各RNが他のRNとフォーワーディングテーブルを交換している。結果的に、分散構造ルータにおいて、各RNは、フォーワーディングテーブルを貯蔵するための大容量のメモリを備えなければならず、これは、パケットフォーワーディングという不要のオーバーヘッドを生じさせる。
本発明は、上記のような従来の問題点を解決するために案出され、本発明の第1目的は、分散構造ルータにおいて各ノードがルーティング情報を共有するためにパケットをフォーワーディングすることによって発生する内部トラヒックの増加を防止する分散構造ルータ及びその方法を提供することにある。
本発明の第2目的は、分散構造ルータの全てのノードで収集されるルーティング情報を各ノードが実時間で共有する分散構造ルータ及びその方法を提供することにある。
本発明の第3目的は、分散構造ルータのノード別のフォーワーディングテーブルのサイズを低減するようにフォーワーディング情報を管理するルータ及びその方法を提供することにある。
本発明の第4目的は、分散構造ルータの全てのノードで収集されるルーティング情報を各ノードが実時間で共有する分散構造ルータのノード別フォーワーディング情報を管理するルータ及びその方法を提供することにある。
本発明の第5目的は、分散構造ルータのルーティング情報に対応するノード及びルーティング情報をアグリゲーションする仮想ノードから構成された2進アグリゲーションツリー(aggregation tree)を利用して各ノードのフォーワーディング情報を管理するルータ及びその方法を提供することにある。
本発明の第6目的は、仮想ノードのアグリゲーションレベルを可変的に設定することによってフォーワーディング情報を効率的に管理するルータ及びその方法を提供することにある。
このような目的を達成するための本発明は、分散構造ルータにおいて、複数のルーティングプロトコルを有する複数のルーティングノードと、各ルーティングノードのルーティングプロトコルに対応する複数のルーティングプロトコルを有し、各ルーティングノードによって収集されたルーティング情報を他のルーティングノードと実時間で共有するスイッチングモジュールと、を有することを特徴とする。
そして、本発明は、(1)ルーティングテーブルに対するアグリゲーションツリーによって生成されたフォーワーディング情報を全てのルーティングノードが共有する分散構造ルータで、ルーティングテーブルにルーティング情報が挿入される場合、そのルーティング情報に対応する挿入ノードがアグリゲーションツリーに挿入された位置を探索する過程と、(2)予め設定された最大アグリゲーションレベル範囲内で挿入ノードの先祖ノードの有無を決定する過程と、(3)フォーワーディングテーブルに先祖ノードに対応するフォーワーディング情報が存在し、挿入ノード及び先祖ノードのソース領域が同一であると、該先祖ノードが存在する挿入ノードの情報をフォーワーディングテーブルにアップデートしない過程と、(4)先祖ノードが存在しない場合、最大アグリゲーションレベル範囲内でアグリゲーションレベルを再設定し、該再設定されたアグリゲーションレベルに挿入ノードを代表する仮想ノードを挿入する過程と、(5)挿入されたルーティング情報を生成したソース領域を確認し、該ルーティング情報のソース領域が、仮想領域である場合はフォーワーディングテーブルに仮想ノードのフォーワーディング情報を挿入し、ローカル領域である場合はフォーワーディングテーブルに挿入ノードのフォーワーディング情報を挿入することによって、フォーワーディング情報を挿入する過程と、を含むことを特徴とする分散構造ルータにおけるフォーワーディング情報管理方法を提案する。
この方法は、新しいルーティング情報に対応する挿入ノードがアグリゲーションツリーに挿入される位置を検出して、該挿入ノードの位置に仮想ノードが存在する場合、当該挿入ノードに対応するフォーワーディング情報を挿入した後、フォーワーディングテーブルから仮想ノードに対応するフォーワーディング情報を削除する過程をさらに含むことができる。また、新しいルーティング情報に対応する挿入ノードがアグリゲーションツリーに挿入される位置を検出して、該挿入ノードの位置に仮想ノードが存在し、該仮想ノードの左/右サブツリーが存在する場合、当該挿入ノードに対応するフォーワーディング情報を挿入した後、左/右サブツリーノードを再挿入し、フォーワーディングテーブルから仮想ノードに対応するフォーワーディング情報を削除する過程をさらに含むことができる。さらに、先祖ノードの有無を決定して、挿入ノードの先祖ノードが最大アグリゲーションレベル範囲内に存在する場合、該挿入ノードの子孫ノードを探索する過程と、挿入ノードの子孫ノードが存在する場合、挿入ノードと子孫ノードに対するフォーワーディング情報のプレフィックスの差によってアグリゲーションレベルを再設定し、挿入ノードの子孫ノードが存在しない場合、挿入ノードの先祖ノードのレベルによってアグリゲーションレベルを再設定する過程と、再設定されたアグリゲーションレベルが0である場合、フォーワーディングテーブルに挿入ノードに対応するフォーワーディング情報を挿入する過程と、再設定されたアグリゲーションレベルが0より大きい場合、フォーワーディングテーブルに挿入ノードを代表する仮想ノードを挿入する過程と、挿入されたルーティング情報のソース領域を確認し、該ルーティング情報のソース領域が、仮想領域である場合はフォーワーディングテーブルに仮想ノードに対応するフォーワーディング情報を挿入し、ローカル領域である場合はフォーワーディングテーブルに挿入ノードに対応するフォーワーディング情報を挿入する過程と、を含むようにしてもよい。
また、先祖ノードが存在しない場合、最大アグリゲーションレベル範囲内でアグリゲーションレベルを再設定し、該再設定されたアグリゲーションレベルに挿入ノードを代表する仮想ノードを挿入する過程は、挿入ノードの先祖ノードが存在するか否かを判断するための探索レベル範囲を設定する過程と、挿入ノードの先祖ノードが探索レベル範囲内に存在する場合、最大アグリゲーションレベル範囲内に挿入ノードを代表する仮想ノードの子孫ノードが存在するか否かを判断する過程と、最大アグリゲーションレベル範囲内に挿入ノードを代表する仮想ノードの子孫ノードが存在する場合、該仮想ノードの子孫ノードのプレフィックスと挿入ノードのプレフィックスとの差によってアグリゲーションレベルを再設定する過程と、再設定されたアグリゲーションレベルに挿入ノードの仮想ノードを挿入する過程と、を含むことができる。
本発明によれば、さらに、ルーティングテーブルからルーティング情報が削除される場合、削除されたルーティング情報に対応する削除ノードをアグリゲーションツリーで探索する過程と、削除ノードに対応するフォーワーディング情報がフォーワーディングテーブルに存在する場合、予め設定された最大アグリゲーションレベル範囲内で削除ノードの子孫ノードを探索する過程と、予め設定された最大アグリゲーションレベルより低いアグリゲーションレベルに削除ノードの子孫ノードが存在する場合、該子孫ノードを仮想ノードの新しいソースノードとして変更し、予め設定された最大アグリゲーションレベルより低いアグリゲーションレベルに削除ノードの子孫ノードが存在しない場合、フォーワーディングテーブルから削除ノードに対応するフォーワーディング情報を削除する過程と、を含むことを特徴とする分散構造ルータにおけるフォーワーディング情報管理方法を提案する。この方法において、削除ノードが仮想ノードを生成したソースノードである場合、その仮想ノードに対応するフォーワーディング情報によって削除ノードに対応するフォーワーディング情報を変更する過程をさらに含むことができる。
本発明によれば、この他に、分散構造ルータにおいて、分散構造ルータ内でフォーワーディング情報に関する複数のルーティングプロトコルを含むスイッチングモジュールと、ローカル領域を含むソース領域に対応するサービスネットワークのそれぞれに配置された複数のルーティングノードと、を含み、その複数のルーティングノードは、スイッチングモジュールを通じて仮想領域を含むソース領域に連結され、収集されたルーティング情報を管理するルーティングテーブル及びそのルーティングテーブルによって生成されたアグリゲーションツリーを実時間で共有することを特徴とする。そして、ルーティングテーブルに新しいルーティング情報が挿入されると、ルーティングノードは、アグリゲーションツリーで新しいルーティング情報に対応する挿入ノードが追加される位置を識別する過程と、挿入ノードの先祖ノードを識別するために、最大アグリゲーションレベル範囲内でアグリゲーションツリーを探索する過程と、この探索過程で先祖ノードが識別され、挿入ノードと先祖ノードが同一のソース領域から生成された場合、該挿入ノードに対応するフォーワーディング情報をフォーワーディングテーブルにアップデートしない過程と、前記探索過程で、先祖ノードが識別されない場合、最大アグリゲーションレベル範囲内でアグリゲーションレベルを再設定し、再設定されたアグリゲーションレベルに挿入ノードを代表する仮想ノードを挿入する過程と、新しいルーティング情報のソース領域を確認する過程と、新しいルーティング情報のソース領域が仮想領域である場合は、仮想ノードに対応するフォーワーディング情報を挿入する過程と、新しいルーティング情報のソース領域がローカル領域である場合は、挿入ノードに対応するフォーワーディング情報を挿入する過程と、を実行することを特徴とする。
本発明は、分散構造ルータの全てのノードで収集されるルーティング情報を各ノードが実時間で共有し、このルーティング情報を利用してフォーワーディング情報を動的に管理することによって、ルーティング情報を共有するための各ノード間のパケットフォーワーディング過程を省略することができるという効果がある。また、そのルーティング情報をフォーワーディングテーブルに選択的にアップデートすることによって、ノード別のフォーワーディングテーブルを効率的に管理することができるという利点がる。さらに、本発明は、2進アグリゲーションツリー(aggregation tree)を利用して各ノードのフォーワーディング情報を管理し、ルーティング情報に対応するノード情報をアグリゲーションする仮想ノードのレベルを可変的に設定することによって分散構造ルータのノード別のフォーワーディングテーブルのサイズを低減することができるという利点がある。
以下、本発明の好適な実施形態について添付図を参照しつつ詳細に説明する。下記の説明において、本発明の要旨のみを明確にする目的で、関連した公知機能又は構成に関する具体的な説明は省略する。
図1は、分散構造ルータ100に対する例示図である。特に、図1の分散構造ルータは、ギャラクシーIPルータ(Galaxy IP Router)の例を示す。
図1を参照すると、分散構造ルータ100は、スイッチングモジュール(switching module: SWM)150によって互いに連結される複数のルーティングノード(Routing Nodes: RN)110,120,130,140を含む。RN110,120,130,140のそれぞれは、入出力プロセッサ(Input Output Processor: IOP)111を備え、IOP111は、2つの物理的な媒体(Physical Medium Device: PMD)PMD−A112及びPMD−B113からパケットを受信するように設計されている。
RN110,120,130,140は、それぞれ対応するサブネットワーク(sub-network)を支援するための固有のルーティングテーブル(own routing table)及びルーティング経路を処理するための固有のプロセッサ(own processors)を有する。RN110,120,130,140は、独自的なルーティングプロトコルを実行し、独自的なフォーワーディング(forwarding)を遂行する。しかしながら、RN110,120,130,140は、使用者の観点から1つのルータとして認識される。従って、RN110,120,130,140は、SWM150を通じて連結された他のRN110,120,130,140のルーティングテーブルを全体的に管理する。RN110,120,130,140のいずれか1つに連結された物理的なサブネットワークをローカル領域(local area)Bと称し、SWM150を通じてRN110,120,130,140間が連結されて形成されたネットワークを仮想領域(virtual area)Aと称する。
図2は、分散構造ルータ100の通常的なプロセス構造を示す図であり、特に、分散構造ルータ100が4つのRNを有する場合、各RNのIOP(IOP#1、IOP#2、IOP#3、IOP#4)10,20,30,40によって遂行されるプロセス構造及びSWM50とIOP10,20,30,40との間の連結状態を示す。
図2を参照すると、IOP#1(10)は、複数のルーティングプロトコル(ripd(11)、ospfd(12)、bgpd(13)、isisd(14))、IOP管理プロセッサ(Galaxy Loosely Unified Environment Daemon: GLUED)15、ルーティングテーブル16、及びフォーワーディングテーブル17を含む。
ルーティングプロトコル11,12,13,14は、それぞれ固有の収集基準によってルーティング情報を収集する。ルーティングテーブル16は、ルーティング情報を貯蔵し、フォーワーディングテーブル17は、ルーティングテーブル16に貯蔵されたルーティング情報を計算して得られたフォーワーディング情報を貯蔵する。
IOP管理プロセッサ(GLUED)15は、ルーティングプロトコル11,12,13,14で収集されたルーティング情報をルーティングテーブル16に貯蔵し、このルーティング情報を計算して得られたフォーワーディング情報をフォーワーディングテーブル17に貯蔵し、ルーティングテーブル16及びフォーワーディングテーブル17を管理する。さらに、IOP管理プロセッサ15は、ルーティングテーブル16によって貯蔵されている収集されたルーティング情報をSWM50を通じてIOP20,30,40に通知する。
IOP#1(10)は、ルーティングプロトコル11,12,13,14、IOP管理プロセッサ15及びルーティングテーブル16を含むシステムプロセッサ(system processor)領域60とフォーワーディングテーブル17を含むネットワークプロセッサ(network processor)領域70とに区分される。システムプロセッサ領域60は、ルーティング情報の収集、ルーティング経路の計算によるフォーワーディングテーブル管理及び他のIOP20,30,40のルーティングテーブルの共有のための一連の処理過程を遂行し、ネットワークプロセッサ領域70は、フォーワーディングテーブル17に貯蔵された情報によってローカル領域に連結されたネットワーク装備間のフォーワーディングを遂行する。従って、分散構造ルータは、大容量のデータをより迅速に処理することができる。
図1及び図2に示すように、分散構造ルータ100において大容量のデータをより迅速に処理するためには、各RN10,20,30,40が他のRN10,20,30,40とフォーワーディングテーブルを共有すべきである。このために、従来の分散構造ルータ100においては、各RN10,20,30,40がフォーワーディングテーブルをSWM150を通じて他のRN10,20,30,40と相互伝送することで、各RNが全てのRN10,20,30,40のフォーワーディングテーブルを全体的に管理することができるようにしていた。例えば、分散構造ルータ100が10個のRNを有し、それぞれのRNが固有の10,000個のフォーワーディングエントリ(forwarding entries)を有すると仮定する場合、各RNは、100,000(=10,000(RN当りのフォーワーディングエントリ)×10(RN))のフォーワーディングエントリを管理しなければならない。従って、従来の分散構造ルータ100は、100,000以上のフォーワーディングエントリを含むフォーワーディングテーブルを貯蔵するために、大容量の記憶空間を必要とし、パケットフォーワーディング伝送に不要のオーバーヘッドが発生するという問題点があった。
図3は、本発明による分散構造ルータのプロセス構造の一例を示す図である。一般的に、分散構造ルータは、複数のIOP(Input Output Processor)を含み、1つのスイッチングモジュール(SWM)によってIOP間に情報を交換する。図3に示す構成は、他のルーティングノード220(IOP#2),230(IOP#3)等は簡略化のために省き、1つのIOP(IOP#1)210及びSWM250のみを示した構造である。
図3を参照すると、本発明による分散構造ルータのプロセス構造は、IOP#1(210)のシステムプロセッサ領域260にアグリゲーションツリー(aggregation tree)218を含むことができる。アグリゲーションツリー218は、本出願の出願人による大韓民国特許出願(出願番号2002−75701)に説明されているように、分散構造ルータの各IOPによって管理されるフォーワーディング情報及びルーティング情報に対応するノード、及びフォーワーディング情報及びルーティング情報をアグリゲーションする仮想ノード(delegation node)を含む。
SWM250は、ルーティングプロトコル(ripd(251)、ospfd(252)、bgpd(253)、Dglued(254))を含む。ルーティングプロトコル(ripd(251)、ospfd(252)、bgpd(253)、Dglued(254))は、対応するIOP内のルーティングプロトコル(ripd(211)、ospfd(212)、bgpd(213)、glued(214))と内部的に連結(internal peer connection)される。
従って、SWM250は、このような連結(internal peer connection)を通じて各IOPのルーティングプロトコル別に収集されたルーティング情報を実時間で共有し、IOPのルーティング情報を他のIOPに提供する。結果的に、本発明による分散構造ルータにおいて、ルーティングプロトコル間の連結(internal peer connection)によって全てのIOPが同一のルーティング情報を共有することができる。
図3の例において、IOP#1(210)及びSWM250に含まれたRTM(Routing Table Manage)モジュール215,255は、各ルーティングプロトコル211,212,213,214及び251,252,253,254から得られたルーティング情報を全体的に管理し、ルーティング情報の優先順位を管理する。
図4Aは、本発明によってフォーワーディング情報を管理するために生成されたアグリゲーションツリーの各ノード別の管理データ構造を示す。図4Aを参照すると、本発明によってフォーワーディング情報を管理するためのアグリゲーションツリーの各ノードは、該当フォーワーディング情報がフォーワーディングされるアドレスであるPREFIX、PREFIXの長さを示すLENGTH、ノードのアグリゲーションレベルを示すAGGREGATION_LEVEL、ノードが仮想ノードである場合、該ノードの属するソースノード(例えば、仮想ノードを生成したノード)情報を示すINDEX、フォーワーディング情報のタイプを示すTYPE、フォーワーディング情報を生成したRNを示すSOURCE IOP、フォーワーディング情報がローカルフォーワーディングテーブルに貯蔵されているか否かを示すFT FLAG、及び一般の2進ツリーのリンク情報(例えば、親ノード(parent node)を識別するためのインジケータPARENT、左側サブツリーを示すデータフィールドであるL_SUBTREE、右側サブツリーを示すデータフィールドであるR_SUBTREE)を含む。ノード別の管理データは、アグリゲーションツリーがアップデートされる場合に共にアップデートして管理する。
アグリゲーションレベルは、運営者によってデフォルトレベル(つまり、最大レベル)に設定され、ルータの運営によってデフォルトレベル内で可変する。つまり、ネットワーク状態によってアグリゲーションレベルを動的に再設定することができるので、再設定されたダイナミックレベル(dynamic level)内でルーティング情報をアグリゲーションした仮想ノードを生成することができる。
INDEXは、ノードが仮想ノードである場合、該仮想ノードを生成したソースノードを示す。INDEXは、仮想ノードからソースノードを探すことのできる情報を提供する。例えば、仮想ノードの左側子ノード(left child node)の右側子ノードから仮想ノードを生成した場合、一般的に、左側子ノードは‘0’値を有し、右側子ノードは‘1’値を有するので、仮想ノードのINDEXは‘01’になる。
TYPEは、IOP210内で該当フォーワーディング情報を生成したルーティングプロトコルの種類(例えば、BGP、SDPF、RIP)を示す。仮想ノードの場合、TYPEは、実際フォーワーディング情報と区別するための別途のタイプ(Delegation)を指定し、他のタイプ(例えば、BGP、SDPF、RIP)のフォーワーディング情報より低い優先順位を有する。仮想ノードは仮想のフォーワーディング情報であるので、ルーティングプロトコルによって生成される実際のフォーワーディング情報に高い優先順位が与えられる。
フォーワーディング情報のタイプを設定するために、ルーティングノードは、フォーワーディング情報のソース領域を確認する。フォーワーディング情報がローカル領域から生成された場合、RNは、フォーワーディング情報を生成したプロセッサの種類によってフォーワーディング情報のタイプを設定する。フォーワーディング情報が仮想領域から生成された場合、RNは、仮想のタイプを設定してフォーワーディング情報が仮想であることを示す。従って、RNは、フォーワーディング情報のPREFIXを分析し、その分析結果、PREFIXが私設IP(internet protocol)アドレスである場合、対応するフォーワーディング情報が仮想領域から伝達されていると判断する。そうでない場合は、対応するフォーワーディング情報がローカル領域から生成されていると判断する。
私設(プライベート)IPアドレスは、所定のローカルネットワークで使用できるアドレスを示し、ローカルネットワーク内に連結されたノードを識別するためのアドレス情報である。従って、私設IPアドレスは、ローカルネットワークの外部では使用することができない。一般的に、分散構造ルータは、分散構造ルータに含まれたRNを識別するために、各RNに私設IPアドレスを与える。従って、本発明においては、各RNの私設IPアドレスを利用してフォーワーディング情報のソース領域を確認する。
図4Bは、本発明によってフォーワーディング情報を管理するために生成されたアグリゲーションツリー構造の例を示す図である。このアグリゲーションツリーは、2進ツリーである。ルーティング情報の挿入及び削除によるアグリゲーションツリーのアップデートは、図9A、図9B、図10A及び図10Bを参照して後で具体的に説明する。
本発明において、本発明の性能検証のために使用されるリアル(real)BGP(border gateway protocol)コアルーティングテーブルのルーティングエントリは、図4Cのようにプレフィックス(prefix)長さ(length)15〜24の地点に集中的に分布する。従って、プレフィックス長さ分布の分析は、仮想ノードのアグリゲーションレベルをデフォルトレベルに制限することによって、動的にフォーワーディング情報のアグリゲーション及び削除(retrieve)時のアルゴリズムオーバーヘッドを低減することができる。
本発明によると、図1に示すギャラクシーIPルータがマルチ−ラック(multi-rack)に拡張される時、各ラックに存在するSWMのRTM(routing table manager)255は、自分が管理する全てのIOPのルーティングテーブルを管理し、これは、IOP間のフォーワーディング情報アグリゲーションがラック間のフォーワーディング情報アグリゲーションに容易に拡張されるようにする。
図5は、新しく挿入されたルーティング情報を管理する本発明の方法を例示したフローチャートである。
図5を参照すると、図3に示すような本発明の分散構造ルータにおいて、RNに新しいルーティング情報が追加されると(段階110)、RNは、追加されたルーティング情報に対応する挿入ノード(insertion node)の位置を探索する(段階1200)。つまり、追加されるルーティング情報のプレフィックス長さと同一の長さを有するノードを探索するまで、予め設定されたアグリゲーションツリーの最上位ノード(root node)から2進探索(binary search)を反復遂行する。挿入ノードの位置が探索されると、RNは、挿入ノードの位置に仮想ノードが存在するか否かを確認する(段階1300)。段階1300の確認結果、挿入ノードの位置に仮想ノードが存在しないと確認される場合、つまり、該当位置が空いている場合、追加されるルーティング情報に対応する挿入ノードを該当位置に挿入する(段階2000)。
段階1300の確認結果、挿入ノードの位置に仮想ノードが存在する場合、該仮想ノードに対応するフォーワーディング情報を削除して挿入ノードの位置を確保し(段階1600)、挿入ノードを挿入する(段階2000)。
このために、仮想ノードの左/右サブツリー(left/right subtree)が存在するか否かを確認する(段階1400)。仮想ノードの左/右サブツリーが存在しない場合、RNは、フォーワーディングテーブルから仮想ノードに対応するフォーワーディング情報を削除する(段階1700)。仮想ノードの左/右サブツリーが存在する場合、この仮想ノードは、左/右サブツリーを構成するノードを代表するノードであるので、当該仮想ノードに対応するフォーワーディング情報を削除する(段階1600)前に、その左/右サブツリーを構成するノードを再挿入する(段階1500)。左/右サブツリーを構成するノードを再挿入するためには、図5の全体挿入過程を再び遂行する。これを通常的に循環関数(recursive function)と称する。つまり、仮想ノードの左/右サブツリーが存在すると判断された場合は、段階1500の再挿入過程を遂行した後、フォーワーディングテーブルから仮想ノードに対応するフォーワーディング情報を削除する(段階1600)。
前述したように、挿入ノードの位置に仮想ノードが存在する場合は、段階1400〜段階1700を通じて仮想ノードに対応するフォーワーディング情報を挿入ノードと取り替える(段階2000)。
図6Aないし図6Cは、段階2000を具体的に示す。
図6Aを参照すると、RNは、挿入ノードに対応するフォーワーディング情報を挿入する前に、挿入ノードを代表する仮想ノードを挿入するための位置を検出するために、アグリゲーションできる最大レベル(defaultlevel)範囲内で挿入ノードの先祖ノード(ancestor node)を探す(段階2001)。
段階2001の結果、挿入ノードの先祖ノードが検出されなかった場合(段階2003)、挿入ノードのデフォルト探索レベル(default search level)を設定する(段階2005)。デフォルト探索レベルは、数式1によって算出される。
[数1]
searchlevel = defaultlevel*2−1
RNは、挿入ノードを代表する仮想ノード挿入時に発生するエラーを低減するために、探索レベル(search level)内に挿入ノードの先祖ノードが存在するが否かを確認する(段階2007)。
段階2007の確認結果、探索レベル内に挿入ノードの先祖ノードが存在しない場合、デフォルトレベルに挿入ノードを代表する仮想ノードを挿入する(段階2170)。該当探索レベルに挿入ノードの先祖ノードが存在する場合、仮想ノードによって代表される子孫ノードの有無を確認するために、探索レベルに対するデフォルトレベル内で仮想ノードの子孫ノード(descendant node)を探索する(段階2009)。
デフォルト探索レベル内に挿入ノードの子孫ノードが存在しない場合(段階2110)、段階2170で、デフォルト探索レベルに挿入ノードの仮想ノードを挿入する。しかしながら、挿入ノードの子孫ノードが存在する場合は、アグリゲーションできるレベルをダイナミック(動的)レベルに再設定し(段階2130)、ダイナミックレベルに仮想ノードを挿入する(段階2150)。ここで、アグリゲーションレベルを再設定する方法は、数式2に例示された方法を利用することが望ましい。
[数2]
dynamiclevel = GetNodePrefixLength(insertion node)
−GetDistPrefixLength(insertion node、desendant node)
ここで、‘GetNodePrefixLength’は、挿入ノードのプレフィックス長さを計算する関数であり、‘GetDistPrefixLength’は、挿入ノードとその子孫ノードとのプレフィックス長さの差が発生する位置を計算する関数である。
例えば、挿入ノードのプレフィックス長さが18であり、挿入ノードとその子孫ノードとのプレフィックス長さの差が発生する位置が19である場合、数式2によってダイナミックレベルは1になる(1=19−18)。従って、挿入ノードの仮想ノードは、挿入ノードのレベルより1つだけ高い上位レベルに生成される。
段階2005ないし段階2170によってアグリゲーションツリーの所定の位置に挿入ノードを代表する仮想ノードを挿入した後、該挿入されたルーティング情報をフォーワーディングテーブルに貯蔵するかどうかを判断するために、ルーティング情報のソース領域を確認する(段階2190)。確認結果、ルーティング情報のソース領域が仮想領域(virtual aera)である場合、フォーワーディングテーブルにルーティング情報を代表する仮想ノード情報を挿入する(段階2210)。ルーティング情報のソース領域がローカル領域である場合は、フォーワーディングテーブルにルーティング情報に対応する挿入ノード情報を挿入する(段階2230)。
図6Bは、段階2001の結果、挿入ノードの先祖ノードが存在する場合に対する処理過程を示す。
図6A、図6B及び図6Cを参照すると、挿入ノードの先祖ノードが存在すると、所定のアルゴリズム(Select Delegation Level)(図6Cに示す)によって仮想ノードを挿入するダイナミックレベル(Delegation Lvel)を選択する(段階2300)。アルゴリズム(Select Delegation Level)は、挿入ノードの先祖ノードが予めフォーワーディングテーブルにアップデートされ、かつ、挿入ノード及びその先祖ノードが同一のIOPによって生成された場合、フォーワーディングテーブルにアップデートする過程を省略するために、ダイナミックレベルを仮想の値(−1)に設定する(図6Cの段階2350ないし段階2370)。
ダイナミックレベル(Delegation Level)は、0と比較される(段階2410)。
ダイナミックレベル(Delegation Level)が0であると、挿入ノードを代表する仮想ノードを挿入することができず、フォーワーディングテーブルに挿入ノード情報を直接挿入する(段階2510)。
ダイナミックレベル(Delegation Level)が0より小さい場合は、ルーティング情報のソース領域をもう一度確認して(段階S253)、ルーティング情報のソース領域がローカル領域である場合のみに、フォーワーディングテーブルに挿入ノード情報をアップデートする(段階2550)。ルーティング情報のソース領域が仮想領域である場合、RNは、フォーワーディングテーブルにアップデートする過程を省略して次の段階に進行する。この場合、アグリゲーションプロセスは、フォーワーディングテーブルによるオーバーヘッドを低減させる効果がある。
ダイナミックレベル(Delegation Level)が0より大きい場合、RNは、ダイナミックレベルに挿入ノードの仮想ノードを挿入する(段階2430)。RNは、挿入されたルーティング情報のソース領域を確認して(段階2450)、ルーティング情報のソース領域が仮想領域である場合は、フォーワーディングテーブルに仮想ノード情報を挿入し(段階2470)、ルーティング情報のソース領域がローカル領域である場合は、フォーワーディングテーブルに挿入ノード情報を挿入する(段階2490)。
図6Cは、段階2300のアルゴリズムをより詳細に示す。図6Cを参照すると、仮想ノードを挿入するダイナミックレベルを選択するために、挿入ノードの子孫ノードの有無の検出(段階2310)によってアグリゲーションレベルを別に再設定する。まず、挿入ノードの子孫ノードを探索して(段階2320)、挿入ノードの子孫ノードが存在すると、数式2によってダイナミックレベル、つまり、アグリゲーションレベルを再設定する(段階2330)。つまり、挿入ノードのプレフィックス長さ及び挿入ノードとその子孫ノードとのプレフィックスの差が発生する位置情報によってアグリゲーションレベルを再設定する。一方、段階2320で挿入ノードの子孫ノードが存在しない場合は、挿入ノードの先祖ノードのレベルをアグリゲーションレベルに設定する(段階2340)。
そして、挿入ノードの先祖ノードが予めフォーワーディングテーブルにアップデートされ(段階2350)、挿入ノード及びその先祖ノードが同一のIOPから生成された場合(段階2360)、フォーワーディングテーブルアップデート過程を省略するために、ダイナミックレベルを仮想の値(−1)に設定する(段階2370)。
図7は、削除されたルーティング情報を管理する本発明の方法を例示するフローチャートである。
図7を参照すると、1つのRNのルーティングテーブルからルーティング情報が削除されると(段階5100)、RNは、削除されたルーティング情報に対応するノード(以下、削除ノード(deletion node)と称する)の位置を探索する(段階5200)。この段階は、ルーティングテーブルに新しいルーティング情報が挿入された場合にその挿入ノードの位置を探索する過程と類似している。つまり、削除されるルーティング情報のプレフィックス長さと同一の長さを有するノードを探索するまで、予め設定されたアグリゲーションツリーの最上位ノード(root node)から2進探索(binary search)を反復遂行する。
削除ノードの位置が探索されると、RNは、削除ノードが仮想ノードを生成したソースノードであるか否かを確認し(段階5300)、削除ノードがソースノードである場合は、仮想ノードを削除することによって削除ノードの削除の効果を得るために、仮想ノードに対応するフォーワーディング情報を削除ノードのフォーワーディング情報に変更する(段階5400)。
RNは、削除ノードがフォーワーディングテーブルにアップデートされているか否かを確認し(段階5500)、削除ノードがフォーワーディングテーブルにアップデートされていない場合は、削除過程を終了する。一方、削除ノードがフォーワーディングテーブルにアップデートされている場合は、デフォルトレベル範囲内で削除ノードの子孫ノードを探索し(段階5600)、削除ノードの子孫ノードが存在する場合は、子孫ノードを仮想ノードの新しいソースノードに変更する(段階5800)。これは、1つの仮想ノードが複数の子孫ノードを代表している場合、仮想ノードのソースノードの削除によって残りの子孫ノードを代表する仮想ノードの損失を防止するためである。
段階5600及び段階5700の結果、前記範囲内に削除ノードの子孫ノードが存在しない場合、RNは、フォーワーディングテーブルから削除ノードに対応するフォーワーディング情報を削除する(段階5900)。
図8Aないし図8Gは、フォーワーディング情報を動的に管理する本発明の方法に対するアルゴリズムの例を示す。
図8Aは、図5の処理過程を疑似コード(pseudo code)で表現し、図8Bは、図5の段階1200及び図7の段階5200を疑似コードで表現し、図8Cは、図6Aの処理過程を疑似コードで表現し、図8Dは、図6Aの段階2150及び段階2170で仮想ノードを挿入する過程を疑似コードで表現し、図8Eは、図6Bの処理過程を疑似コードで表現し、図8Fは、図6Cの処理過程を疑似コードで表現し、図8Gは、図7の処理過程を疑似コードで表現する。図8Aないし図8Gに対する具体的な説明は、図5ないし図7を参照した説明部分に記載されているので、その具体的な説明は省略する。図8Aないし図8Gに示すアルゴリズム処理方式は1つの実施例に過ぎず、このようなアルゴリズムを多様に変更して実行できることは自明である。
図9Aないし図10Bは、本発明によるフォーワーディング情報管理方法を説明する図であり、デフォルトレベルが2である場合に挿入されたフォーワーディング情報及び削除されたフォーワーディング情報を管理する方法を説明する。図9A及び図9Bは、挿入されたフォーワーディング情報を管理する方法を説明する図であり、図10A及び図10Bは、削除されたフォーワーディング情報を管理する方法を説明する図である。
図9Aないし図10Bのアグリゲーションツリーにおいて、PREFIXは、ノードに対応するフォーワーディング情報がフォーワーディングされるアドレスを示し、ノード識別の機能を有する。SOURCE IOPは、挿入ノードを生成したルーティングノードのソースIOPを示し、FEは、フォーワーディング情報がフォーワーディングテーブルに貯蔵されているか否かを示す。従って、FEのマーキング部分は、フォーワーディング情報がフォーワーディングテーブルに存在することを示す。INDEXは、 フォーワーディングされるノードが仮想ノードである場合、仮想ノードを生成したソースノードを示し、LEVELは、フォーワーディングされるノードのアグリゲーションレベルを示す。
図9Aを参照すると、何の情報も登録されていない状態で、IOP#1(210)にフォーワーディングアドレスが3である新しいルーティング情報が挿入された場合、IOP#1(210)の制御部は、ルーティング情報をIOP#1(210)のアグリゲーションツリーに挿入する。つまり、ノード3をアグリゲーションツリーに挿入する。この挿入ノードのアグリゲーションレベルが2であるので、プレフィックスが0である仮想ノードを3のプレフィックスを有する挿入ノードより2レベル上位に追加する。プレフィックスが0である仮想ノードのソースノードが挿入ノード3(つまり、プレフィックスが3である挿入ノード)であるので、仮想ノードのINDEDXは“00”になる。挿入ノード3及びプレフィックスが0であるこの仮想ノードは、同一のソース(つまり、ルーティングノードIOP#1(210))を有するので、フォーワーディングテーブルには挿入ノード3に関する情報が貯蔵される。
一方、本発明の分散構造ルータにおいて、他のノードIOP#2、IOP#3、IOP#4は、IOP#1(210)のルーティング情報(例えば、アグリゲーションツリー218)を共有し、各ノードは、他のノードと自分のルーティングテーブルに貯蔵されたルーティング情報を共有する。図9Aの例において、IOP#2(220)は、IOP#1(210)のルーティングテーブル216に貯蔵されたルーティング情報を共有する。これは、以下の例にも同一に適用される。
図9Aを参照すると、IOP#2(220)のアグリゲーションツリーはIOP#1(210)のアグリゲーションツリーと同一であり、フォーワーディングテーブル情報のみが異なる。つまり、IOP#1(210)は、ローカル領域に新しいルーティング情報が挿入されたので、挿入ノード3の情報をフォーワーディングテーブル217に貯蔵し、IOP#2(220)は、仮想領域に新しいルーティング情報が挿入されたので、仮想ノード0の情報をフォーワーディングテーブルに貯蔵する。
図9Bは、仮想ノード0がIOP#2(220)のフォーワーディングテーブルに予め貯蔵された状態で、IOP#2(220)のローカル領域にプレフィックスが7であるルーティング情報が挿入された場合の例を示す。
IOP#2(220)の制御部は、挿入ノード7の位置を探索した後、デフォルトレベル2によって挿入ノード7の先祖ノードを探索する。次に、IOP#2(220)の制御部は、ノード1を挿入ノード7の先祖ノードとして検出する。ノード1は、IOP#1(210)の挿入ノード3を検出するために経る先祖ノードである。従って、ノード7に対する仮想ノードは、先祖ノード1でない、挿入ノード7の先祖ノードとして機能するノード4の位置に挿入される。前述したように、本発明においては、アグリゲーションレベルが可変的であり、可変的に再設定されたアグリゲーションレベルをダイナミックレベルと称する。
図9Bに示すように、IOP#1(210)のアグリゲーションツリー218に挿入ノード7及び先祖ノード4が両方とも追加され、ノード4及びノード7のソース領域が仮想領域であるので、ノード7の仮想ノード4をIOP#1(210)のフォーワーディングテーブルにアップデートする。
一方、IOP#2(220)の制御部は、ローカル領域にノード7が挿入された場合であるので、挿入ノード7に関する情報をフォーワーディングテーブルにアップデートする。
以下、図10A及び図10Bを参照して、本発明によるルーティング情報削除過程を説明する。
図10Aを参照すると、仮想ノード0は、IOP#1(210)のローカル領域において生成されたノード3、ノード4、ノード5及びノード6を代表している。ノード0のソースノードがノード3である場合、ルーティングノード210(IOP#1)のフォーワーディングテーブルにノード3、ノード4、ノード5及びノード6に関する情報がアップデートされ、ルーティングノード220(IOP#2)のフォーワーディングテーブルにはノード0のみがアップデートされる。
図10Bは、図10Aに示すルーティングツリー210,220のアグリゲーションツリーから、仮想ノード0のソースノードであるノード3が削除された場合を示す。
本発明において、仮想ノードのソースノードが削除される場合、フォーワーディングテーブルから削除されたソースノードのフォーワーディング情報、つまり、削除ノードのフォーワーディング情報を削除し、仮想ノードのソースノードのみを変更し、仮想領域では何の変更も遂行しない。
図10Bに示すように、仮想ノード0のソースノードであるノード3が削除された場合、IOP#1(210)の制御部は、仮想ノード0のソースノードをノード4に変更する。一方、ルーティングノード220(IOP#2)の制御部は、ルーティングノード220のフォーワーディングテーブルに仮想ノード0の情報のみが貯蔵されるので、ルーティングノード220のフォーワーディングテーブルに対して別途の作業を遂行する必要がない。
図11Aないし図11Dは、本発明によるフォーワーディング情報の動的管理方法の効果を立証するためのテスト結果である。
本テスト結果を得るために、1つのSWM及び2つのIOPを備えるギャラクシーシステム、及びhttp://www.telstra.net/ops/bgptable.htmlまたはhttp://www.bgp.protaro.netから提供されるコア(core)BGPルータのルーティングテーブルエントリを利用して、53,000個のルーティングエントリを挿入し、このルーティングエントリの一定比率をフラップ(flap)するテストを遂行する。
図11Aは、挿入されるエントリの順序が本発明の効果に影響を与えるか否かを測定するためのテスト結果を示す。10回にかけて昇順で整列されたサンプルエントリの順序をランダムに変更しながら、6つのデフォルトレベルを適用し、サンプルエントリを挿入した結果を示す。図11Aを参照すると、フォーワーディングエントリ(forwarding entries)の個数は、60〜110の範囲である。従って、本発明のアグリゲーション性能は、フォーワーディングエントリの挿入順序の影響をほとんど受けない。
図11Bは、6つのデフォルトレベルを適用した場合のオーバーヘッド測定結果を示すグラフである。図11A及び図11Bを参照すると、ルータの性能及びオーバーヘッドを考慮するとき、本発明は、デフォルトレベルが3以下である時に最も効果的であることが分かる。
図11Cは、53,000のコアBGPルーティングエントリの0%〜70を削除するとき、フォーワーディングテーブルに残存するフォーワーディングエントリの個数を示すグラフである。図11Cを参照すると、コアBGPエントリを単純に挿入し、削除比率が0%である場合、約26%〜77%のフォーワーディングエントリが減少される。
図11Dは、Agilent Router Testerを利用して実際インターネット環境の性能の測定結果を示すグラフである。Agilent Router Testerは、ネットワークトポロジー(topology)またはネットワークの影響範囲(reachability)が持続的に変化する動的のルーティング条件下でルータの性能を測定する。図11Dは、ルータがルーティング情報の変化をフォーワーディングテーブルに反映する時間(convergence time)に焦点を合わせてテスト結果を示す。この“BGP4 flap convergence time”テストは、ネットワークトポロジーまたはネットワーク影響範囲の変化によって主ルータ(primary router)がドロップ(drop)された場合、主ルータを新しいルータに変更するための時間(traffic redirect convergence time)を測定する。当該テストは、3つのRNを使用して遂行される。3つのRNのうち2つは、RNの後ろの同一のネットワークの影響範囲を通知し、残りの1つのRNは、通知されたネットワークにデータトラヒック(data traffic)を生成する。図11Dに示す遂行時間(convergence time)測定結果から、フォーワーディングテーブルの修正の最小化のために仮想ノードの実際ソースノードを削除する時に仮想ノードのソースノードの情報のみを変更する時に、遂行時間(convergence time)が低減される。
以上、本発明を具体的な実施形態を参照して詳細に説明してきたが、本発明の範囲は前述の実施形態によって限られるべきではなく、本発明の範囲内で様々な変形が可能であるということは、当該技術分野における通常の知識を持つ者には明らかである。
分散構造ルータの例示図。 分散構造ルータの通常的なプロセス構造を示す図。 本発明による分散構造ルータのプロセス構造の一例を示す図。 本発明によってフォーワーディング情報を管理するために生成されたアグリゲーションツリーの各ノード別管理データ構造の例を示す図。 本発明によってフォーワーディング情報を管理するために生成されたアグリゲーションツリー構造の例を示す図。 プレフィックス長さ別のプレフィックス分布を示すグラフ。 追加されたルーティング情報を管理する本発明の方法を例示するフローチャート。 フォーワーディング情報を追加する本発明の過程を例示するフローチャート。 フォーワーディング情報を追加する本発明の過程を例示するフローチャート。 フォーワーディング情報を追加する本発明の過程を例示するフローチャート。 削除されたルーティング情報を管理する本発明の方法を例示するフローチャート。 フォーワーディング情報を動的に管理する本発明の方法に対するアルゴリズムの例を示す。 フォーワーディング情報を動的に管理する本発明の方法に対するアルゴリズムの例を示す。 フォーワーディング情報を動的に管理する本発明の方法に対するアルゴリズムの例を示す。 フォーワーディング情報を動的に管理する本発明の方法に対するアルゴリズムの例を示す。 フォーワーディング情報を動的に管理する本発明の方法に対するアルゴリズムの例を示す。 フォーワーディング情報を動的に管理する本発明の方法に対するアルゴリズムの例を示す。 フォーワーディング情報を動的に管理する本発明の方法に対するアルゴリズムの例を示す。 追加されたフォーワーディング情報を管理する本発明の方法を説明する図。 追加されたフォーワーディング情報を管理する本発明の方法を説明する図。 削除されたフォーワーディング情報を管理する本発明の方法を説明する図。 削除されたフォーワーディング情報を管理する本発明の方法を説明する図。 本発明によるフォーワーディング情報動的管理方法の効果を立証するためのテスト結果を示すテーブル。 本発明によるフォーワーディング情報動的管理方法の効果を立証するためのテスト結果を示すグラフ。 本発明によるフォーワーディング情報動的管理方法の効果を立証するためのテスト結果を示すグラフ。 本発明によるフォーワーディング情報動的管理方法の効果を立証するためのテスト結果を示すグラフ。

Claims (8)

  1. (1)ルーティングテーブルに対するアグリゲーションツリーによって生成されたフォーワーディング情報を全てのルーティングノードが共有する分散構造ルータで、ルーティングテーブルにルーティング情報が挿入される場合、そのルーティング情報に対応する挿入ノードがアグリゲーションツリーに挿入された位置を探索する過程と、
    (2)予め設定された最大アグリゲーションレベル範囲内で挿入ノードの先祖ノードの有無を決定する過程と、
    (3)フォーワーディングテーブルに先祖ノードに対応するフォーワーディング情報が存在し、挿入ノード及び先祖ノードのソース領域が同一であると、該先祖ノードが存在する挿入ノードの情報をフォーワーディングテーブルにアップデートしない過程と、
    (4)先祖ノードが存在しない場合、最大アグリゲーションレベル範囲内でアグリゲーションレベルを再設定し、該再設定されたアグリゲーションレベルに挿入ノードを代表する仮想ノードを挿入する過程と、
    (5)挿入されたルーティング情報を生成したソース領域を確認し、該ルーティング情報のソース領域が、仮想領域である場合はフォーワーディングテーブルに仮想ノードのフォーワーディング情報を挿入し、ローカル領域である場合はフォーワーディングテーブルに挿入ノードのフォーワーディング情報を挿入することによって、フォーワーディング情報を挿入する過程と、を含むことを特徴とする分散構造ルータにおけるフォーワーディング情報管理方法。
  2. 新しいルーティング情報に対応する挿入ノードがアグリゲーションツリーに挿入される位置を検出して、該挿入ノードの位置に仮想ノードが存在する場合、当該挿入ノードに対応するフォーワーディング情報を挿入した後、フォーワーディングテーブルから仮想ノードに対応するフォーワーディング情報を削除する過程をさらに含む請求項1記載のフォーワーディング情報管理方法。
  3. 新しいルーティング情報に対応する挿入ノードがアグリゲーションツリーに挿入される位置を検出して、該挿入ノードの位置に仮想ノードが存在し、該仮想ノードの左/右サブツリーが存在する場合、当該挿入ノードに対応するフォーワーディング情報を挿入した後、左/右サブツリーノードを再挿入し、フォーワーディングテーブルから仮想ノードに対応するフォーワーディング情報を削除する過程をさらに含む請求項1記載のフォーワーディング情報管理方法。
  4. 先祖ノードの有無を決定して、挿入ノードの先祖ノードが最大アグリゲーションレベル範囲内に存在する場合、該挿入ノードの子孫ノードを探索する過程と、
    挿入ノードの子孫ノードが存在する場合、挿入ノードと子孫ノードに対するフォーワーディング情報のプレフィックスの差によってアグリゲーションレベルを再設定し、挿入ノードの子孫ノードが存在しない場合、挿入ノードの先祖ノードのレベルによってアグリゲーションレベルを再設定する過程と、
    再設定されたアグリゲーションレベルが0である場合、フォーワーディングテーブルに挿入ノードに対応するフォーワーディング情報を挿入する過程と、
    再設定されたアグリゲーションレベルが0より大きい場合、フォーワーディングテーブルに挿入ノードを代表する仮想ノードを挿入する過程と、
    挿入されたルーティング情報のソース領域を確認し、該ルーティング情報のソース領域が、仮想領域である場合はフォーワーディングテーブルに仮想ノードに対応するフォーワーディング情報を挿入し、ローカル領域である場合はフォーワーディングテーブルに挿入ノードに対応するフォーワーディング情報を挿入する過程と、を含む請求項1記載のフォーワーディング情報管理方法。
  5. 先祖ノードが存在しない場合、最大アグリゲーションレベル範囲内でアグリゲーションレベルを再設定し、該再設定されたアグリゲーションレベルに挿入ノードを代表する仮想ノードを挿入する過程は、
    挿入ノードの先祖ノードが存在するか否かを判断するための探索レベル範囲を設定する過程と、
    挿入ノードの先祖ノードが探索レベル範囲内に存在する場合、最大アグリゲーションレベル範囲内に挿入ノードを代表する仮想ノードの子孫ノードが存在するか否かを判断する過程と、
    最大アグリゲーションレベル範囲内に挿入ノードを代表する仮想ノードの子孫ノードが存在する場合、該仮想ノードの子孫ノードのプレフィックスと挿入ノードのプレフィックスとの差によってアグリゲーションレベルを再設定する過程と、
    再設定されたアグリゲーションレベルに挿入ノードの仮想ノードを挿入する過程と、を含む請求項1記載のフォーワーディング情報管理方法。
  6. ルーティングテーブルからルーティング情報が削除される場合、削除されたルーティング情報に対応する削除ノードをアグリゲーションツリーで探索する過程と、
    削除ノードに対応するフォーワーディング情報がフォーワーディングテーブルに存在する場合、予め設定された最大アグリゲーションレベル範囲内で削除ノードの子孫ノードを探索する過程と、
    予め設定された最大アグリゲーションレベルより低いアグリゲーションレベルに削除ノードの子孫ノードが存在する場合、該子孫ノードを仮想ノードの新しいソースノードとして変更し、予め設定された最大アグリゲーションレベルより低いアグリゲーションレベルに削除ノードの子孫ノードが存在しない場合、フォーワーディングテーブルから削除ノードに対応するフォーワーディング情報を削除する過程と、を含むことを特徴とする分散構造ルータにおけるフォーワーディング情報管理方法。
  7. 削除ノードが仮想ノードを生成したソースノードである場合、その仮想ノードに対応するフォーワーディング情報によって削除ノードに対応するフォーワーディング情報を変更する過程をさらに含む請求項6記載のフォーワーディング情報管理方法。
  8. 分散構造ルータにおいて、
    分散構造ルータ内でフォーワーディング情報に関する複数のルーティングプロトコルを含むスイッチングモジュールと、ローカル領域を含むソース領域に対応するサービスネットワークのそれぞれに配置された複数のルーティングノードと、を含み、
    前記複数のルーティングノードは、前記スイッチングモジュールを通じて仮想領域を含むソース領域に連結され、収集されたルーティング情報を管理するルーティングテーブル及びそのルーティングテーブルによって生成されたアグリゲーションツリーを実時間で共有し、
    ルーティングテーブルに新しいルーティング情報が挿入されると、ルーティングノードは、
    アグリゲーションツリーで新しいルーティング情報に対応する挿入ノードが追加される位置を識別する過程と、
    挿入ノードの先祖ノードを識別するために、最大アグリゲーションレベル範囲内でアグリゲーションツリーを探索する過程と、
    この探索過程で先祖ノードが識別され、挿入ノードと先祖ノードが同一のソース領域から生成された場合、該挿入ノードに対応するフォーワーディング情報をフォーワーディングテーブルにアップデートしない過程と、
    前記探索過程で、先祖ノードが識別されない場合、最大アグリゲーションレベル範囲内でアグリゲーションレベルを再設定し、再設定されたアグリゲーションレベルに挿入ノードを代表する仮想ノードを挿入する過程と、
    新しいルーティング情報のソース領域を確認する過程と、
    新しいルーティング情報のソース領域が仮想領域である場合は、仮想ノードに対応するフォーワーディング情報を挿入する過程と、
    新しいルーティング情報のソース領域がローカル領域である場合は、挿入ノードに対応するフォーワーディング情報を挿入する過程と、を実行する
    ことを特徴とする分散構造ルータ。
JP2004024440A 2003-01-30 2004-01-30 フォーワーディング情報を動的に管理する分散構造ルータ及びその方法 Expired - Fee Related JP4015628B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20030006435A KR100918733B1 (ko) 2003-01-30 2003-01-30 포워딩정보를 동적으로 관리하는 분산구조라우터 및 그방법

Publications (2)

Publication Number Publication Date
JP2004236339A JP2004236339A (ja) 2004-08-19
JP4015628B2 true JP4015628B2 (ja) 2007-11-28

Family

ID=32653324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004024440A Expired - Fee Related JP4015628B2 (ja) 2003-01-30 2004-01-30 フォーワーディング情報を動的に管理する分散構造ルータ及びその方法

Country Status (6)

Country Link
US (1) US20040153573A1 (ja)
EP (1) EP1443721B1 (ja)
JP (1) JP4015628B2 (ja)
KR (1) KR100918733B1 (ja)
CN (1) CN100342698C (ja)
DE (1) DE602004020135D1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100534625B1 (ko) * 2003-02-18 2005-12-07 삼성전자주식회사 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및그 방법
US7362763B2 (en) * 2003-09-04 2008-04-22 Samsung Electronics Co., Ltd. Apparatus and method for classifying traffic in a distributed architecture router
US7366167B2 (en) * 2003-09-19 2008-04-29 Samsung Electronics Co., Ltd. Apparatus and method for hairpinning data packets in an Ethernet MAC chip
US9032095B1 (en) 2004-01-06 2015-05-12 Juniper Networks, Inc. Routing device having multiple logical routers
KR100733989B1 (ko) 2004-12-08 2007-06-29 한국전자통신연구원 와이어스피드 실현을 위한 패킷 처리 장치 및 그 방법
KR100779101B1 (ko) * 2005-12-07 2007-11-27 한국전자통신연구원 분산 구조 라우터에서의 라우터 어드버타이즈먼트 관리방법 및 그 장치
US20080159290A1 (en) * 2006-12-28 2008-07-03 Futurewei Technologies, Inc. Method of Preventing Transport Leaks in Hybrid Switching Networks
US8149837B2 (en) * 2007-01-16 2012-04-03 Futurewei Technologies, Inc. Method of supporting an open provider backbone network
US8327016B1 (en) 2007-01-29 2012-12-04 Juniper Networks, Inc. Device communications over unnumbered interfaces
US8817638B2 (en) 2009-07-24 2014-08-26 Broadcom Corporation Method and system for network communications utilizing shared scalable resources
US8369345B1 (en) * 2009-11-13 2013-02-05 Juniper Networks, Inc. Multi-router system having shared network interfaces
US8606890B2 (en) 2009-11-20 2013-12-10 International Business Machines Corporation Managing communication between nodes in a virtual network
US8891535B2 (en) * 2012-01-18 2014-11-18 International Business Machines Corporation Managing a global forwarding table in a distributed switch
CN104756457A (zh) * 2012-08-30 2015-07-01 林钟辰 具有动态端口转发功能的网络共享器
US20140185614A1 (en) * 2012-12-28 2014-07-03 General Instrument Corporation Multiple domain addressing in message routing
US9935831B1 (en) * 2014-06-03 2018-04-03 Big Switch Networks, Inc. Systems and methods for controlling network switches using a switch modeling interface at a controller
WO2016118630A1 (en) 2015-01-20 2016-07-28 Ultrata Llc Utilization of a distributed index to provide object memory fabric coherency
US11086521B2 (en) 2015-01-20 2021-08-10 Ultrata, Llc Object memory data flow instruction execution
US9886210B2 (en) 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
US9971542B2 (en) 2015-06-09 2018-05-15 Ultrata, Llc Infinite memory fabric streams and APIs
WO2017100281A1 (en) 2015-12-08 2017-06-15 Ultrata, Llc Memory fabric software implementation
US10241676B2 (en) 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
WO2017100292A1 (en) 2015-12-08 2017-06-15 Ultrata, Llc. Object memory interfaces across shared links
US10235063B2 (en) 2015-12-08 2019-03-19 Ultrata, Llc Memory fabric operations and coherency using fault tolerant objects
CN108124168A (zh) * 2017-12-28 2018-06-05 洛阳师范学院 一种无线移动网络下基于用户兴趣感知的视频共享方法
CN108920542B (zh) * 2018-06-13 2021-07-20 苏州涅瓦信息科技有限公司 一种分布式内存大数据处理系统及其数据处理方法
US11218569B1 (en) 2019-01-11 2022-01-04 Architecture Technology Corporation IP packet translation for low-overhead out-of-band data embedding
US10491715B1 (en) * 2019-01-11 2019-11-26 Architecture Technology Corporation IP packet translation to piggyback networking information
CN110620683B (zh) 2019-08-30 2021-03-23 华为技术有限公司 一种应用于分布式路由器组网的报文发送方法、设备及系统
US11916731B2 (en) 2020-07-09 2024-02-27 Drivenets Ltd. Identification of nodes included in a disaggregated system

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509123A (en) * 1994-03-22 1996-04-16 Cabletron Systems, Inc. Distributed autonomous object architectures for network layer routing
JPH0853664A (ja) 1994-08-10 1996-02-27 Fujitsu Ltd 熱伝導材料及びその製造方法、電子部品の冷却方法、回路基板の冷却方法、並びに電子部品の実装方法
US5751971A (en) * 1995-07-12 1998-05-12 Cabletron Systems, Inc. Internet protocol (IP) work group routing
US5629930A (en) * 1995-10-31 1997-05-13 Northern Telecom Limited Call routing in an ATM switching network
US5790541A (en) * 1996-04-01 1998-08-04 Motorola, Inc. Apparatus, method, system and system method for distributed routing in a multipoint communication system
US6400681B1 (en) * 1996-06-20 2002-06-04 Cisco Technology, Inc. Method and system for minimizing the connection set up time in high speed packet switching networks
US6006216A (en) * 1997-07-29 1999-12-21 Lucent Technologies Inc. Data architecture for fetch-intensive database applications
US6266706B1 (en) * 1997-09-15 2001-07-24 Effnet Group Ab Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams
CA2217267A1 (en) * 1997-10-03 1999-04-03 Newbridge Networks Corporation Scalable, robust configuration of edge forwarders in a distributed router
US6563823B1 (en) * 1997-10-30 2003-05-13 Marconi Communications, Inc. Multi-resolution tree for longest match address lookups
US6078963A (en) * 1998-01-16 2000-06-20 At&T Corp. Router with de-centralized processing using intelligent ports
US6643292B2 (en) * 1998-04-28 2003-11-04 Nortel Networks Limited Efficient packet data transport mechanism and an interface therefor
EP0969630B1 (en) * 1998-07-01 2011-10-12 Hitachi, Ltd. Method for sharing network information and router apparatus
US6141738A (en) * 1998-07-08 2000-10-31 Nortel Networks Corporation Address translation method and system having a forwarding table data structure
US6212184B1 (en) * 1998-07-15 2001-04-03 Washington University Fast scaleable methods and devices for layer four switching
US6584093B1 (en) * 1998-08-25 2003-06-24 Cisco Technology, Inc. Method and apparatus for automatic inter-domain routing of calls
US6574669B1 (en) * 1998-08-31 2003-06-03 Nortel Networks Limited Method and apparatus for routing traffic within a network utilizing linear optimization
IT1305140B1 (it) * 1998-10-27 2001-04-10 Cselt Centro Studi Lab Telecom Memoria per la ricerca di informazioni mediante analisi di prefissi inparticolare per la realizzazione di tabelle di instradamento in nodi
US6205488B1 (en) * 1998-11-13 2001-03-20 Nortel Networks Limited Internet protocol virtual private network realization using multi-protocol label switching tunnels
TW468116B (en) * 1999-02-08 2001-12-11 Wen-Shian Chen High speed Internet protocol address lookups method for saving memory
US6192051B1 (en) * 1999-02-26 2001-02-20 Redstone Communications, Inc. Network router search engine using compressed tree forwarding table
US6456600B1 (en) * 1999-04-28 2002-09-24 3Com Corporation Complex node representation in an asynchronous transfer mode PNNI network
JP3570323B2 (ja) * 1999-05-11 2004-09-29 日本電気株式会社 アドレスに関するプレフィクスの格納方法
US6473408B1 (en) * 1999-05-19 2002-10-29 3Com Corporation Building a hierarchy in an asynchronous transfer mode PNNI network utilizing proxy SVCC-based RCC entities
US6449354B1 (en) * 1999-06-08 2002-09-10 Nortel Networks Limited Communication system, article and method of configuring and establishing a connection therein
US6490592B1 (en) * 1999-12-30 2002-12-03 Nortel Networks Limited Method of and apparatus for generating a tree data structure supporting longest match lookup
US6658481B1 (en) * 2000-04-06 2003-12-02 International Business Machines Corporation Router uses a single hierarchy independent routing table that includes a flag to look-up a series of next hop routers for routing packets

Also Published As

Publication number Publication date
KR100918733B1 (ko) 2009-09-24
KR20040069881A (ko) 2004-08-06
CN1520110A (zh) 2004-08-11
EP1443721B1 (en) 2009-03-25
US20040153573A1 (en) 2004-08-05
JP2004236339A (ja) 2004-08-19
DE602004020135D1 (de) 2009-05-07
EP1443721A2 (en) 2004-08-04
CN100342698C (zh) 2007-10-10
EP1443721A3 (en) 2007-07-04

Similar Documents

Publication Publication Date Title
JP4015628B2 (ja) フォーワーディング情報を動的に管理する分散構造ルータ及びその方法
US9118587B2 (en) Network multi-path discovery
US7869349B2 (en) Method and system for deducing network routes by querying routers
US9203743B2 (en) Packet forwarding system, control device, forwarding device and method and program for preparing processing rules
US9391886B2 (en) Identification of the paths taken through a network of interconnected devices
AU2014255719B2 (en) Identifying an egress port of a device
EP2984799B1 (en) Identification of paths in a network of mixed routing/switching devices
US9531598B2 (en) Querying a traffic forwarding table
GB2527273A (en) Executing loops
US7035934B1 (en) System and method for improving traffic analysis and network modeling
KR100617720B1 (ko) 분산구조라우터에서 포워딩 정보를 동적으로 관리하는 방법
JPWO2005020525A1 (ja) プロトコル高速化装置
JP5100672B2 (ja) ルータ装置
CN100499569C (zh) 协议高速化装置
KR100919256B1 (ko) 3계층 스위칭 기능을 구비한 장치 및 스위칭 기능을 구비한네트워크 장치
JP2005117213A (ja) 経路表および経路検索方法
JP2003022226A (ja) ネットワークにおける負荷分散システム及び負荷分散方式
KR20090022473A (ko) 3계층 스위칭을 위한 포워딩 테이블

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040714

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040803

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060627

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060922

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070320

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070619

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070913

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

Free format text: PAYMENT UNTIL: 20100921

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110921

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130921

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees