JP2012244364A - 計算機及び識別子管理方法 - Google Patents

計算機及び識別子管理方法 Download PDF

Info

Publication number
JP2012244364A
JP2012244364A JP2011111834A JP2011111834A JP2012244364A JP 2012244364 A JP2012244364 A JP 2012244364A JP 2011111834 A JP2011111834 A JP 2011111834A JP 2011111834 A JP2011111834 A JP 2011111834A JP 2012244364 A JP2012244364 A JP 2012244364A
Authority
JP
Japan
Prior art keywords
entry
identifier
conversion information
tables
user
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.)
Granted
Application number
JP2011111834A
Other languages
English (en)
Other versions
JP5610227B2 (ja
Inventor
Kenji Fujihira
健二 藤平
Masahiro Ashi
賢浩 芦
Masayoshi Takase
誠由 高瀬
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2011111834A priority Critical patent/JP5610227B2/ja
Priority to US13/462,011 priority patent/US8886913B2/en
Priority to CN201210153585.1A priority patent/CN102843287B/zh
Publication of JP2012244364A publication Critical patent/JP2012244364A/ja
Application granted granted Critical
Publication of JP5610227B2 publication Critical patent/JP5610227B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】他ユーザの識別子変換処理に影響を与えることなく、新規ユーザの識別子変換情報を設定可能な計算機及び識別子管理方法を提供する。
【解決手段】通信データに付与された識別子を変換する計算機であって、メモリは、複数のハッシュ関数と、複数のハッシュ関数の各々に対応し、当該ハッシュ関数の出力値と、当該ハッシュ関数の入力値である入力識別子と、入力識別子を変換して得られる出力識別子との対応を示す識別子変換情報を管理する複数のエントリー表と、複数のエントリー表の各々における識別子変換情報の設定状況を管理する管理表とを記憶し、プロセッサは、複数のエントリー表のいずれかに、新たな識別子変換情報を登録する場合には、複数のエントリー表の各々における識別子変換情報の設定状況に応じて、新たな識別子変換情報を登録すべきエントリー表を選択する。
【選択図】図2

Description

本発明は、計算機に関し、特に、ユーザ毎に通信接続を管理する通信システムにおいて、ユーザ識別子を変換する計算機に関する。
企業内ネットワークで流通する情報量は年々増加し、企業ユーザ向け通信サービスの重要性がますます高くなっている。そこで、通信事業者は企業ユーザに対し、複数拠点に配置された企業内LAN(Local Area Network)同士を接続するための通信網を敷設し、企業ユーザ毎に帯域を確保する帯域保証型サービスを提供している。一例として、予め帯域を確保したパスをエンド・トゥー・エンドで確立することにより、帯域保証を実現するMPLS−TP(Multi Protocol Label Switching-Transport Profile)を適用した通信システムの導入を進めている。
また、企業ユーザ向け通信サービスの需要の拡大に従って、多数の企業ユーザ向け通信サービスの管理効率を高めるための広帯域化、及び、重要データ(例えばユーザデータ)を確実に通信するための高い信頼性が要求されている。さらに、通信システムの維持コストを低減するため、通信システムが備える各通信装置の消費電力削減が要求されている。
通信事業者は、100Gbps(Gigabit per second)の高速通信をサポートする帯域保証技術の導入を検討している。高速通信を実現するために、各通信装置では、通信事業者網の管理者によって指定されるユーザID(ユーザ識別子)の値を、装置内で扱う内部ID(内部識別子)に高速に変換する。
例えば、前述のMPLS−TPにおいて、ユーザIDの値のとり得る範囲は20bit、すなわち最大1048575と標準規定されている。そのため、通信事業者網の管理者によって指定されるユーザIDは20bit値であり、主信号フレームには同じ20bit値が付与される。しかしながら、通信システムによって管理されるユーザ数は一般的に1048575よりも小さい。そのため、各通信装置では、通信事業者網の管理者によって指定されるユーザIDを、当該通信装置で管理可能なユーザ数をとり得る値の範囲とする内部IDに変換することにより、効率的に高速通信を実現する。
CAM(Content Addressable Memory)を用いることによって、ユーザIDを内部IDに高速に変換する処理を実現する方式が知られている。しかしながら、CAMが搭載されたチップは消費電力が大きいため、通信システムの維持コストが大きくなるという問題がある。この問題を解決するための技術として、特許文献1に開示された技術が知られている。
特許文献1には、CAMを用いずに、値範囲を圧縮するハッシュ関数を用いることによって、ユーザIDを内部IDに高速に変換する方式が開示されている。
一般的に、ハッシュ関数を用いる場合には、複数の入力値に対して同一の出力値を出力してしまう事象、いわゆる衝突が発生する。一方、特許文献1に開示された技術によれば、複数のハッシュ関数を用いて並列処理することによって、衝突の発生確率を減らし、且つ、高速に内部IDを決定することができる。
なお、特許文献1に開示された技術では、ユーザIDを内部IDに変換する場合に、複数のエントリー表(ハッシュ表)が用いられる。エントリー表は、ユーザ毎のユーザIDと内部IDとの対応関係、すなわちユーザ毎の識別子変換に関する情報を管理する。このエントリー表に新規ユーザのエントリー(新規エントリー)を設定する場合には、エントリー表においてエントリー設定可能な箇所に、新規ユーザのユーザIDと内部IDの対応関係を設定する。
一方、エントリー表においてエントリー設定可能な箇所がない場合には、既に設定されている設定済みエントリーを再配置した後に、新規エントリーを設定する。なお、エントリー可能な箇所がない場合とは、設定済みエントリー数がエントリー表の数よりも多い場合、すなわち、いずれのエントリー表にも新規エントリーを設定できない場合である。
特表2003-510963号公報
ところで、前述のように帯域保証型サービスでは、重要データを確実に通信するための高い信頼性が要求されている。特に、エントリー表に新規エントリーを設定する場合には、設定済みエントリーに係るユーザの通信(識別子変換処理を含む)に影響を与えない必要がある。ここでいう影響とは、例えば通信断やパケットロスの発生である。
しかしながら、特許文献1に開示された技術では、エントリー表に新規エントリーを設定する際に、エントリー表においてエントリー設定可能な箇所がない場合には、前述の再配置処理が実行され、この再配置処理の実行中、設定済みエントリーに係るユーザの通信断及びパケットロスが発生するという課題があった。図14A〜図16Bを用いて説明する。
図14Aは、従来技術におけるエントリー再配置前のエントリー表E1(41)の一例を示す図である。図14Bは、従来技術におけるエントリー再配置前のエントリー表E2(42)の一例を示す図である。例えば図14A及び図14Bに示す2つのエントリー表E1、E2が存在すると仮定する。
エントリー表E1(41)は、ハッシュ関数H1のハッシュ出力値A1(701)、ユーザID“L0”(702)、内部ID(703)の対応関係を管理する。ここでは、ハッシュ出力値A1(=1)と、ユーザID(=2)と、内部ID(=0)とが対応付けられた1つのエントリー705が設定されている。
一方、エントリー表E2(42)は、ハッシュ関数H1と異なるハッシュ関数H2のハッシュ出力値A2(708)、ユーザID“L0”(709)、内部ID(710)の対応関係を管理する。ここでは、ハッシュ出力値A2(=0)と、ユーザID(=0)と、内部ID(=1)とが対応付けられた1つのエントリー711が設定されている。
ここで、新たに、ハッシュ出力値A1=1、且つ、ハッシュ出力値A2=0のエントリーを設定する場合には、エントリー表E1、E2の両エントリー表において、エントリー設定不可能である。そのため、例えばエントリー表E1において設定済みのエントリー705を、エントリー表E2に再配置(移動)する再配置処理が実行される。
図15Aは、従来技術におけるエントリー再配置中のエントリー表E1(41)の一例を示す図である。図15Bは、従来技術におけるエントリー再配置中のエントリー表E2(42)の一例を示す図である。
図15Aに示すエントリー表E1では、設定済みのエントリー705が削除されている。一方、図15Bに示すエントリー表E2は、図14Bに示すエントリー表E2と同一である。なお、図15A及び図15Bに示す再配置中の状態では、エントリー705に対応するユーザID“2”の通信断及びパケットロスが発生する。
図16Aは、従来技術におけるエントリー再配置後のエントリー表E1(41)の一例を示す図である。図16Bは、従来技術におけるエントリー再配置後のエントリー表E2(42)の一例を示す図である。
図16Aに示すエントリー表E1は、図15Aに示すエントリー表E1と同一である。一方、図16Bに示すエントリー表E2では、再配置処理によって削除されたエントリー705が、ハッシュ出力値A2=2のエントリー712に新たに設定されている。これにより、追加すべきハッシュ出力値A1=1、且つ、ハッシュ出力値A2=0のエントリーを、エントリー表E1のエントリー705の位置に追加することができる。
なお、エントリー表の数を増やすことにより、ユーザの通信断及びパケットロスの発生確率を下げることが可能である。しかしながら、メモリサイズの制約により、前述の再配置処理を回避するために十分な数のエントリー表を実装することは困難である。
本発明は、上述した問題を考慮したものであって、他ユーザの識別子変換処理に影響を与えることなく、新規ユーザの識別子変換情報(ハッシュ出力値とユーザIDと内部IDの対応関係)を設定可能な計算機及び識別子管理方法を提供することを目的とする。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備え、通信データに付与された識別子を変換する計算機であって、前記メモリは、複数のハッシュ関数と、前記複数のハッシュ関数の各々に対応し、当該ハッシュ関数の出力値と、当該ハッシュ関数の入力値である入力識別子と、前記入力識別子を変換して得られる出力識別子と、の対応を示す識別子変換情報を管理する複数のエントリー表と、前記複数のエントリー表の各々における識別子変換情報の設定状況を管理する管理表と、を記憶し、前記プロセッサは、前記複数のエントリー表のいずれかに、新たな識別子変換情報を登録する場合には、前記管理表によって管理される前記複数のエントリー表の各々における識別子変換情報の設定状況に応じて、前記新たな識別子変換情報を登録すべきエントリー表を選択することを特徴とする。
本発明によれば、他ユーザの識別子変換処理に影響を与えることなく、新規ユーザの識別子変換情報を設定することができる。
本発明の第1の実施形態の通信システムの構成例を示す図である。 本発明の第1の実施形態のノードの構成の一例を示す図である。 本発明の第1の実施形態のノードのハードウェア構成例を示す図である。 本発明の第1の実施形態のユーザID処理部による内部ID付与処理の一例を示す図である。 本発明の第1の実施形態のハッシュ関数H1の一例を示す図である。 本発明の第1の実施形態のハッシュ関数H2の一例を示す図である。 本発明の第1の実施形態のエントリー表E1の一例を示す図である。 本発明の第1の実施形態のエントリー表E2の一例を示す図である。 本発明の第1の実施形態のエントリー表E1の一例を示す図である。 本発明の第1の実施形態のエントリー表E2の一例を示す図である。 本発明の第1の実施形態のエントリー数管理表の一例を示す図である。 本発明の第1の実施形態のエントリー数管理表の一例を示す図である。 本発明の第1の実施形態のエントリー追加処理の一例を示すフローチャートである。 本発明の第1の実施形態のエントリー追加処理の一例を示すシーケンス図である。 本発明の第2の実施形態のハッシュ関数H1の一例を示す図である。 本発明の第2の実施形態のハッシュ関数H2の一例を示す図である。 本発明の第2の実施形態のエントリー表E1の一例を示す図である。 本発明の第2の実施形態のエントリー表E2の一例を示す図である。 本発明の第2の実施形態のエントリー表E1の一例を示す図である。 本発明の第2の実施形態のエントリー表E2の一例を示す図である。 本発明の第2の実施形態のエントリー数管理表の一例を示す図である。 本発明の第2の実施形態のエントリー数管理表の一例を示す図である。 本発明の第2の実施形態のエントリー追加処理の一例を示すフローチャートである。 従来技術におけるエントリー再配置前のエントリー表E1の一例を示す図である。 従来技術におけるエントリー再配置前のエントリー表E2の一例を示す図である。 従来技術におけるエントリー再配置中のエントリー表E1の一例を示す図である。 従来技術におけるエントリー再配置中のエントリー表E2の一例を示す図である。 従来技術におけるエントリー再配置後のエントリー表E1の一例を示す図である。 従来技術におけるエントリー再配置後のエントリー表E2の一例を示す図である。
以下、本発明の実施形態を添付図面に基づいて説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態の通信システム100の構成例を示す図である。本発明の第1の実施形態の通信システム100は、帯域保証網N1、及び、帯域保証網N1を管理する網管理装置6を備える。帯域保証網N1は、複数のノード(通信装置、計算機)1、2、3を備える。
ノード1は、ノード2、及び、ノード4と接続する。ノード4は、アクセス網N2が備える通信装置である。ノード1は、ノード4から受信した主信号フレーム7にユーザIDを付与することによって、主信号フレーム8を生成し、ノード2に送信する。ユーザIDは、帯域保証網N1の管理者、及び、ノード1、2、3によってユーザ毎に一意に定められ、ユーザ識別の際に用いられる識別子である。ここでいうユーザとは、例えば会社、会社内の部署等の組織単位のユーザでもよいし、個人単位のユーザでもよい。
ノード2は、ノード1、及び、ノード3に接続する。ノード2は、ノード1から主信号フレーム8を受信し、受信した主信号フレーム8に付与されたユーザIDを解析する。すなわち、付与されたユーザIDに応じて、帯域保証網N1の管理者によって予め設定された送信先であるノード3を特定する。その後、主信号フレーム8と同一の主信号フレーム9をノード3に送信する。
ノード3は、ノード2、及び、ノード5と接続する。ノード5は、アクセス網N3が備える通信装置である。ノード3は、ノード2から主信号フレーム9を受信し、受信した主信号フレーム9に付与されたユーザIDを解析する。すなわち、付与されたユーザIDに応じて、帯域保証網N1の管理者によって予め設定された送信先であるノード5を特定する。その後、主信号フレーム9に付与されたユーザIDを削除することによって、主信号フレーム10を生成し、ノード5に送信する。
帯域保証網N1の管理者は、網管理装置6を用いて、ユーザIDに応じた通信経路を予め設定する。通信経路の設定方式としては、例えばMPLS−TPを用いる。
網管理装置6は、インターネット等のネットワークを介して、ノード1、2、3に接続される。網管理装置6は、入出力インタフェースとしてのディスプレイ、キーボード、マウス等(不図示)を備える。帯域保証網N1の管理者は、網管理装置6が備える入出力インタフェースを用いて、主信号フレーム7の通信経路、すなわち、ノード1からノード2及びノード3を経由してノード5に到達する通信経路を設定する。
図2は、本発明の第1の実施形態のノード1(2、3)の構成の一例を示す図である。なお、以下では、ノード1を例に説明するが、ノード2、3も同様である。
ノード1は、監視制御部21、インタフェース部22a、22b、及び、スイッチ部23を備える。
監視制御部21は、ノード1の動作を監視制御する。監視制御部21は、監視制御インタフェース24、通信経路設定部25、複数のハッシュ関数28c、複数のエントリー表29c、及び、エントリー数管理表30を備える。
監視制御インタフェース24は、網管理装置6と接続するためのインタフェース装置である。例えばSNMP(Simple Network Management Protocol)によって、網管理装置6と通信する。
通信経路設定部25は、帯域保証網N1の管理者が網管理装置6を用いて設定した通信経路をノード1に設定する。具体的には、設定された通信経路に対応するユーザIDを、インタフェース部22a、22bに反映する。MPLS−TPを用いて通信経路を設定する場合、ユーザIDはMPLSラベル値である。
ハッシュ関数28cは、20bitのユーザID、すなわち0から1048575までの範囲の値を、ノード1に設定可能なユーザID数の範囲の値に変換する、すなわち値範囲を圧縮する関数である。ハッシュ関数28cについては、図5A及び図5Bを参照して詳細に後述する。
エントリー表29cは、ユーザ毎のユーザIDと内部IDとの対応関係、すなわちユーザ毎の識別子変換に関する情報(識別子変換情報)を管理する表である。具体的には、ハッシュ関数28cの入力値であるユーザID(入力識別子)と、ユーザIDに対するハッシュ関数28cの出力値(値範囲が圧縮された値)と、ユーザIDを変換して得られる内部ID(出力識別子)との対応関係を示す情報を管理する。エントリー表29cについては、図6A〜図6Dを参照して詳細に後述する。
エントリー数管理表30は、複数のエントリー表29cの各々における識別子変換情報の登録状況を管理する。具体的には、複数のエントリー表29cの各々における設定済みエントリーの数を管理する。エントリー数管理表30については、図7A及び図7Bを参照して詳細に後述する。
インタフェース部22aは、複数の物理終端部26a、ユーザID処理部27a、複数のハッシュ関数28a、及び、複数のエントリー表29aを備える。このインタフェース部22aは、当該ノード1と主信号フレームを送受信する他のノードとの間のインタフェースである。
物理終端部26aは、主信号フレームを送受信する物理インタフェースである。複数の物理終端部26aが一つのユーザID処理部27aに接続される。
ユーザID処理部27aは、物理終端部26aから主信号フレームを受信すると、ハッシュ関数28a、及び、エントリー表29aを参照して、受信した主信号フレームに、ユーザIDに応じた内部IDを付与する。その後、内部IDが付与された主信号フレームをスイッチ部23へ送信する。内部IDを付与する処理については、図4を参照して詳細に後述する。
ハッシュ関数28aは、ハッシュ関数28cと同一のハッシュ関数である。予めインタフェース部22と監視制御部21には、複数の同一のハッシュ関数28が実装される。
エントリー表29aは、エントリー表29cと同一のエントリー表である。監視制御部21がエントリー表29cを更新すると、更新後のエントリー表29cをインタフェース部22aに送信する。インタフェース部22aは、監視制御部21から受信した更新後のエントリー表29cに基づいて、エントリー表29aを上書き(更新)する。
スイッチ部23は、ユーザID処理部27aから、内部IDが付与された主信号フレームを受信すると、当該付与された内部IDと、通信経路設定部25によって設定された通信経路とに基づいて、宛先を決定する。その後、決定された宛先に対応するユーザID処理部27bに、内部IDが付与された主信号フレームを送信する。
インタフェース部22bは、複数の物理終端部26b、ユーザID処理部27b、複数のハッシュ関数28b、及び、複数のエントリー表29bを備える。以下、前述のインタフェース部22aとの差異点について説明する。
ユーザID処理部27bは、スイッチ部23から主信号フレームを受信すると、主信号フレームに付与された内部IDに基づいて、物理終端部26bを選択する。その後、主信号フレームから内部IDを削除し、選択された物理終端部26bに送信する。
図3は、本発明の第1の実施形態のノード1(2、3)のハードウェア構成例を示す図である。図3に示すノード1は、それぞれバス31で相互に接続されたメモリ装置32、演算処理装置33、インタフェース装置34を備える。
メモリ装置32は、図2に示す通信経路設定部25の機能を実現するためのプログラムを記憶するRAM(Random Access Memory)等の記憶装置である。このメモリ装置32は、プログラムの実行に必要なファイル、データ(複数のハッシュ関数28c、複数のエントリー表29c、及び、エントリー数管理表30を含む)等も記憶する。
演算処理装置33は、メモリ装置32に格納されたプログラムを実行するCPU(Central Processing Unit)等の演算処理装置である。インタフェース装置34は、外部ネットワーク等に接続するためのインタフェース装置である。
なお、ノード1は、例えば入力装置、出力装置、補助記憶装置、及び、記憶媒体に記憶されたデータを読み込むためのドライブ装置(いずれも不図示)を備えてもよい。
図4は、本発明の第1の実施形態のユーザID処理部27aによる内部ID付与処理の一例を示す図である。ここでは、ユーザID処理部27aが、物理終端部26aから受信した主信号フレームに内部IDを付与する手順を説明する。
まずステップ51において、ユーザID処理部27aは、物理終端部26aからユーザID“L0”が付与された主信号フレームを受信する(51)。
次にステップ52a、52bにおいて、ユーザID処理部27aは、複数のハッシュ関数H1、H2を用いて、受信した主信号フレームに付与されたユーザID“L0”のハッシュ出力値A1、A2をそれぞれ計算する(52a、52b)。具体的には、ユーザID“L0”を複数のハッシュ関数H1、H2にそれぞれ入力する。そうすると、値範囲が圧縮されたハッシュ出力値A1(56a)、A2(56b)が出力される。これにより、ユーザID処理部27aは、ハッシュ出力値A1、A2を取得する。
その後ステップ53a、53bにおいて、ユーザID処理部27aは、予め作成済のエントリー表E1、E2を読み出す(53a、53b)。エントリー表E1は、ハッシュ出力値A1に対応するエントリー表である。すなわち、ハッシュ出力値A1、ユーザID、及び、内部IDの対応関係を管理する。一方、エントリー表E2は、ハッシュ出力値A2に対応するエントリー表である。すなわち、ハッシュ出力値A2、ユーザID、及び、内部IDの対応関係を管理する。
ユーザID処理部27aは、読み出されたエントリー表E1を参照し、ハッシュ出力値A1(56a)に対応するユーザID“L1”、及び、内部ID(57a)を取得する。同様に、読み出されたエントリー表E2を参照し、ハッシュ出力値A2(56b)に対応するユーザID“L2”、及び、内部ID(57b)を取得する。
その後ステップ54において、ユーザID処理部27aは、取得されたユーザID(57a、57b)と、ユーザID“L0”とを照合する(54)。その後、ユーザID“L0”と一致するユーザID(2つのユーザID“L1”、“L2”のいずれか)が存在する場合には、当該ユーザIDに対応する内部IDを、主信号フレームに付与する(55)。
以上のように、ユーザID処理部27aは、複数のハッシュ関数H1、H2を用いて並列処理することによって、衝突の発生確率を減らし、且つ、高速に内部IDを決定することができる。
図5Aは、本発明の第1の実施形態のハッシュ関数H1(28c−1)の一例を示す図である。図5Bは、本発明の第1の実施形態のハッシュ関数H2(28c−2)の一例を示す図である。ハッシュ関数28cは、図5Aに示すハッシュ関数H1(28c−1)、及び、図5Bに示すハッシュ関数H2(28c−2)を含む。
図5A及び図5Bでは、ノード1(又は、ノード2、3)に設定可能なユーザID数が4である場合の入力値(ユーザID値)と出力値の対応関係を示している。
図5Aに示すハッシュ関数H1は、20bitのユーザID、すなわち0から1048575までの範囲の値で示される入力値を入力し、入力値に対応する2bitの数字、すなわち0から3までの範囲の値で示される出力値A1を均等に出力する。例えば、入力値が(ユーザID“0”、“1”、“14”、…)である場合には、出力値A1は0である。
図5Bに示すハッシュ関数H2は、ハッシュ関数H1と同様に、20bitのユーザIDを入力し、入力値に対応する出力値A2を均等に出力する。例えば、入力値が(“0”、“4”、“9”、…)である場合には、出力値A2は0である。
以上に示すハッシュ関数H1、H2を用いることにより、通信経路設定部25は、ユーザIDの値範囲を圧縮することができる。
なお、これらハッシュ関数H1、H2は、例えばCRC(Cyclic Redundancy Check)演算や、剰余演算など、論理的な数式を実行するハードウェアとして実装される。また、ノード1はこれら複数のハッシュ関数H1、H2を備えることにより、一つのハッシュ関数のみを備える場合と比較して、衝突の発生確率を低減することが可能となる。また、ここではノード1が2つのハッシュ関数H1、H2を備える場合について説明してきたが、3つ以上のハッシュ関数を備えてもよい。
図6A及び図6Cは、本発明の第1の実施形態のエントリー表E1(29c−1)の一例を示す図である。図6B及び図6Dは、本発明の第1の実施形態のエントリー表E2(29c−2)の一例を示す図である。エントリー表29cは、図6A(又は図6C)に示すエントリー表E1(29c−1)と、図6B(又は図6D)に示すエントリー表E2(29c−2)とを含む。
なお、図6A及び図6Bは、変更前のエントリー表E1、E2である。一方、図6C及び図6Dは、変更後のエントリー表E1、E2である。変更前及び変更後については、図8の具体例において後述する。
エントリー表E1は、図5Aのハッシュ関数H1に対応するエントリー表である。すなわち、ハッシュ関数H1のハッシュ出力値A1(141)、ユーザID“L0”(142)、内部ID(143)の対応関係を管理する。
一方、エントリー表E2は、図5Bのハッシュ関数H2に対応するエントリー表である。すなわち、ハッシュ関数H2のハッシュ出力値A2(148)、ユーザID“L0”(149)、内部ID(150)の対応関係を管理する。
以上に示すエントリー表E1、E2を用いることにより、通信経路設定部25は、ハッシュ関数H1、H2によって値範囲が圧縮されたユーザID(ハッシュ出力値A1、A2)を、高速に内部IDに変換することができる。なお、ここではノード1が2つのエントリー表E1、E2を備える場合について説明してきたが、ハッシュ関数の数が3つ以上である場合には、ハッシュ関数の数と同じ3つ以上のエントリー表を備えてもよい。
図7A、及び、図7Bは、本発明の第1の実施形態のエントリー数管理表30の一例を示す図である。図7Aは、変更前のエントリー数管理表30であり、図6A及び図6Bに示すエントリー表E1、E2に対応する。一方、図7Bは、変更後のエントリー数管理表30であり、図6C及び図6Dに示すエントリー表E1、E2に対応する。
エントリー数管理表30は、各エントリー表29cの識別子(181)、各エントリー表29cにおいて設定済みのエントリー数(182)の対応関係、すなわちエントリー表29c毎のエントリー数を管理する。
図6Aに示すエントリー表E1では、設定済みのエントリー数が0である。また、図6Bに示すエントリー表E2では、設定済みのエントリー数が1である。そのため、図7Aに示すエントリー数管理表30では、エントリー表E1の設定済みエントリー数が0、及び、エントリー表E2の設定済みエントリー数が1として登録されている。
一方、図6Cに示すエントリー表E1では、設定済みのエントリー数が0である。また、図6Dに示すエントリー表E2では、設定済みのエントリー数が2である。そのため、図7Bに示すエントリー数管理表30では、エントリー表E1の設定済みエントリー数が0、及び、エントリー表E2の設定済みエントリー数が2として登録されている。
以上のように、エントリー数管理表30は、各エントリー表29cの設定済みのエントリー数を管理する。これにより、ノード1は、各エントリー表29cにおけるエントリー設定状況に応じて、新規エントリーの登録先のエントリー表29cを選択することが可能となる。
図8は、本発明の第1の実施形態のエントリー追加処理の一例を示すフローチャートである。ここでは、通信経路設定部25が、エントリー表29cに新規エントリーを追加(登録)する手順を、具体例を用いて説明する。
通信経路設定部25は、処理開始後(301)、網管理装置6から新規ユーザID(例えば、ユーザID“L”)の設定コマンドを受信するまで、待ち状態となる(302)。新規ユーザID“L”の設定コマンドを受信した場合には(302でYES)、変数"エントリー先候補"に"なし"を、設定済みエントリー数を表す変数Nに0を、カウンタiに1を、それぞれ初期値として設定する(303)。
次に、通信経路設定部25は、エントリー表Eiにおいて、ハッシュ出力値AiがHi(L)であるエントリーが空、且つ、変数Nの値がエントリー表Eiの設定済みエントリー数以下であるか否かを判定する(304)。なお、Hi(L)とは、入力値Lに対するハッシュ関数Hiの出力値である。
具体的には、まず、エントリー表E1(図6A)から、ハッシュ出力値A1がH1(L)であるエントリーを検索し、該当するエントリーが空であるか否かを確認する。例えば、ステップ302で新規ユーザID“L=2”の設定コマンドを受信した場合には、入力値2に対するハッシュ関数H1(図5A)の出力値は1である。すなわち、H1(2)=1である。そのため、エントリー表E1(図6A)から、ハッシュ出力値A1が1であるエントリーが空であることを確認する。
次に、エントリー数管理表30(図7A)を参照し、変数Nの値(ここでは初期値0)と、エントリー表E1の設定済みエントリー数とを比較する。エントリー数管理表30(図7A)において、エントリー表E1の設定済みエントリー数は0である。そのため、変数Nの値はエントリー表E1の設定済みエントリー数以下である。以上より、ステップ304においてYESとなる。
ステップ304においてYESの場合には、通信経路設定部25は、変数“エントリー先候補”に“Ei”を、変数Nに“エントリー表Eiの設定済みエントリー数”を設定する(305)。上記具体例では、変数"エントリー先候補"に"E1"を、変数Nにエントリー表E1の設定済みエントリー数である0を設定する。一方、ステップ304においてNOの場合には(304でNO)、ステップ305の処理を実行しない。
ステップ306に進むと、通信経路設定部25は、カウンタiをインクリメントする(306)。上記具体例では、i=2となる。
その後、通信経路設定部25は、カウンタiの値がエントリー表数imaxよりも大きいか否かを判定する(307)。カウンタiの値がエントリー表数imax以下である場合には(307でNO)、ステップ304に戻って処理を繰り返す。一方、カウンタiの値がエントリー表数imaxよりも大きい場合には(307でYES)、ステップ308に進む。
上記具体例では、カウンタiの値は2であり、エントリー表数imaxの値は2(エントリー表E1、E2の2つ)である。そのため、カウンタiの値はエントリー表数imax以下であるので(307でNO)、ステップ304に戻る。
ステップ304に戻ると、通信経路設定部25は、エントリー表E2(図6B)から、ハッシュ出力値A2がH2(2)であるエントリーを検索し、該当するエントリーが空であるか否かを確認する。入力値2に対するハッシュ関数H2(図5B)の出力値は2である。すなわち、H2(2)=2である。そのため、エントリー表E2(図6B)から、ハッシュ出力値A2が2であるエントリーが空であることを確認する。
次に、エントリー数管理表30(図7A)を参照し、変数Nの値(ここでは0)と、エントリー表E2の設定済みエントリー数とを比較する。エントリー数管理表30(図7A)において、エントリー表E2の設定済みエントリー数は1である。そのため、変数Nの値はエントリー表E2の設定済みエントリー数以下である。以上より、ステップ304においてYESとなる。
ステップ305に進み、通信経路設定部25は、変数“エントリー先候補”に“E2”を、変数Nにエントリー表E2の設定済みエントリー数である1を設定する(305)。その後、カウンタiをインクリメントしてi=3とする(306)。そうすると、カウンタiの値3はエントリー表数imax(=2)よりも大きいので(307でYES)、ステップ308に進む。
以上に示すステップ304〜307の処理により、通信経路設定部25は、変数“エントリー先候補”及び変数Nを用いて、設定済みエントリー数の最も多いエントリー表を、新規エントリーの登録先候補として決定する。
ステップ308では、通信経路設定部25は、変数"エントリー先候補"の値が"なし"であるか否かを確認する(308)。変数“エントリー先候補”の値が“なし”である場合には(308でYES)、ステップ311に進む。一方、変数“エントリー先候補”の値が“なし”でない場合には(308でNO)、ステップ309に進む。上記具体例では、変数“エントリー先候補”の値は“E2”であるので(308でNO)、ステップ309に進む。
ステップ309では、通信経路設定部25は、変数“エントリー先候補”で示されるエントリー表に、ユーザID“L”のエントリーを追加し、エントリー数管理表30を更新する(309)。
上記具体例では、変数“エントリー先候補"の値が"E2"であるので、エントリー表E2に、ユーザID“2”のエントリーを追加する。なお、新規エントリーを追加する場合に、新規エントリーに係る内部IDは、全てのエントリー表E1、E2においてユニークな値とする。その結果、図6Aに示すエントリー表E1、及び、図6Bに示すエントリー表E2は、それぞれ図6Cに示すエントリー表E1、及び、図6Dに示すエントリー表E2に変更する。
また、エントリー数管理表30を更新する。上記具体例では、エントリー表E2のエントリー数が1から2に変更されるので、図7Aに示すエントリー数管理表30は、図7Bに示すエントリー数管理表30に変更する。
その後ステップ310において、通信経路設定部25は、変更後のエントリー表E1及びE2(エントリー表29c)の情報を、各インタフェース部22a、22bに送信する(310)。各インタフェース部22a、22bは、受信した変更後のエントリー表E1及びE2の情報を、各インタフェース部22a、22bが備えるエントリー表29a、29bに上書き(更新)する。その後ステップ317において、監視制御部21は、通信経路を設定した旨を示す通信経路設定応答604を、網管理装置6に送信する(317)。
一方、ステップ308においてYESの場合には(308でYES)、ステップ311に進み、通信経路設定部25は、カウンタiの値を“1”に設定する(311)。
その後、通信経路設定部25は、エントリー表Eiにおいて、ハッシュ出力値AiがHi(L)であるエントリーを占有しているユーザID“Le”を、エントリー表E(i+1)に再配置可能であるか否かを判定する(312)。再配置可能である場合には(312でYES)、ステップ316に進む。
一方、再配置不可能である場合には(312でNO)、通信経路設定部25は、カウンタiをインクリメントする(313)。その後、カウンタiの値がエントリー表数imaxと等しくなるまで、ステップ312の処理を繰り返す(314)。
カウンタiの値がエントリー表数imaxと等しくなった場合(314でYES)、通信経路設定部25は、新規ユーザID“L”のエントリー先を確保できるまで、再配置処理を実行する(315)。具体的には、図14A〜図16Bを用いて前述したような再配置処理を実行する。
ステップ316に進んだ場合、通信経路設定部25は、エントリー表29cを再配置し、新規ユーザID“L”のエントリーを追加し、エントリー数管理表30を更新する(316)。その後、ステップ310に進む。
以上に示す処理により、通信経路設定部25は、設定済みエントリー数が他のエントリー表29cよりも多いエントリー表29c、すなわち設定済みエントリー数が最も多いエントリー表29cに優先的に新規エントリーを追加する。その結果、エントリーが追加されたエントリー表29cと、他のエントリー表29cとの間では、設定済みエントリー数の差がさらに大きくなる。すなわち、エントリー表29c間で設定済みエントリー数に偏りが生じることになる。
これにより、将来エントリーを追加する際の衝突の発生確率を下げることが可能となる。また、衝突が発生した際の再配置処理の実行頻度を削減することにより、主信号フレームの通信断の時間を低減することが可能となる。
また、通信経路設定部25は、設定済みエントリー数の最も多いエントリー表29cが複数存在する場合には、表番号(Ei)の大きなエントリー表29cに優先的に新規エントリーを追加する。これにより、表番号の大きなエントリー表29cに多くのエントリーが設定され、表番号の小さなエントリー表29cに少ないエントリーが設定されるように制御することができる。これにより、将来エントリーを追加する際の衝突の発生確率を下げることが可能となる。なお、新規エントリーの追加先は、表番号の大きなエントリー表29cに限定されるものではない。
図9は、本発明の第1の実施形態のエントリー追加処理の一例を示すシーケンス図である。ここでは、帯域保証網N1の管理者が、網管理装置6を用いて、ノード1、2、3に新規ユーザID“L”のエントリーを追加する手順を説明する。
まず、帯域保証網N1の管理者が、網管理装置6の入出力インタフェースを操作することにより、追加すべき新規ユーザID“L”の新規通信経路の設定コマンドを入力する(601)。続いて、網管理装置6は、入力されたユーザID“L”の値、及び、新規通信経路の情報を含む通信経路設定要求602を、ノード1、2、3に送信する。
各ノード1、2、3の通信経路設定部25は、受信した通信経路設定要求602に基づいて、ユーザID“L”のエントリー追加処理を実行する(603)。ユーザID“L”のエントリー追加処理については、前述の図8に示した通りである。
各ノード1、2、3の監視制御部21は、ステップ603のエントリー追加処理が終了すると、通信経路の設定が終了した旨を示す通信経路設定応答604を、網管理装置6に送信する。網管理装置6は、通信経路設定応答604を受信すると、ユーザID“L”の新規通信経路の設定結果を出力(例えばディスプレイ上に表示)する(605)。
以上に示す処理により、帯域保証網N1の管理者は、網管理装置6を用いて、ノード1、2、3に新規ユーザID“L”のエントリーを追加することができる。
(第2実施形態)
以下、本発明の第2の実施形態について説明する。なお、以下では、前述の第1の実施形態との差異点を中心に説明する。
前述の第1の実施形態では、エントリー数管理表30(図7A及び図7B参照)は、各エントリー表29cのエントリー数を管理した。この第2の実施形態では、エントリー数管理表30(図12A及び図12B参照)は、各エントリー表29cのエントリー未設定フィールド数である"空き数"を管理する。
図10Aは、本発明の第2の実施形態のハッシュ関数H1(28c−1)の一例を示す図である。図10Bは、本発明の第1の実施形態のハッシュ関数H2(28c−2)の一例を示す図である。ハッシュ関数28cは、図10Aに示すハッシュ関数H1(28c−1)、及び、図10Bに示すハッシュ関数H2(28c−2)を含む。
図10A及び図10Bでは、ノード1(又は、ノード2、3)に設定可能なユーザID数が4である場合の入力値(ユーザID値)と出力値の対応関係を示している。
なお、本発明の第2の実施形態のハッシュ関数H1、H2は、20bitのユーザID、すなわち0から1048575までの範囲の値を、ノード1(又は、ノード2、3)に設定可能なユーザID数以下の範囲の値に変換する関数である。
図10Aに示すハッシュ関数H1は、20bitのユーザID、すなわち0から1048575までの範囲の値で示される入力値を入力し、入力値に対応する2bitの数字、すなわち0から3までの範囲の値で示される出力値A1を均等に出力する。例えば、入力値が(ユーザID“0”、“1”、“14”、…)である場合には、出力値A1は0である。
図10Bに示すハッシュ関数H2は、20bitのユーザIDを入力し、入力値に対応する0から2までの範囲の値で示される出力値A2を均等に出力する。例えば、入力値が(“0”、“4”、“9”、…)である場合には、出力値A2は0である。
以上に示すハッシュ関数H1、H2を用いることにより、通信経路設定部25は、ユーザIDの値範囲をユーザID数以下の値の範囲に圧縮することができる。
なお、これらハッシュ関数H1、H2は、例えばCRC(Cyclic Redundancy Check)演算や、剰余演算など、論理的な数式を実行するハードウェアとして実装される。なお、ノード1はこれら複数のハッシュ関数H1、H2を備えることにより、一つのハッシュ関数のみを備える場合と比較して、衝突の発生確率を低減することが可能となる。また、ここではノード1が2つのハッシュ関数H1、H2を備える場合について説明してきたが、3つ以上のハッシュ関数を備えてもよい。
さらに、本発明の第2の実施形態では、ハッシュ関数H1、H2の出力値範囲として、設定可能なユーザID数よりも小さい値範囲を許容している。また、ハッシュ関数H1、H2の出力値の取り得る数が互いに異なる。これにより、実装メモリサイズに応じた柔軟なエントリー表29の管理が可能となる。
図11A及び図11Cは、本発明の第2の実施形態のエントリー表E1(29c−1)の一例を示す図である。図11B及び図11Dは、本発明の第1の実施形態のエントリー表E2(29c−2)の一例を示す図である。エントリー表29cは、図11A(又は図11C)に示すエントリー表E1(29c−1)と、図11B(又は図11D)に示すエントリー表E2(29c−2)とを含む。
なお、図11A及び図11Bは、変更前のエントリー表E1、E2である。一方、図11C及び図11Dは、変更後のエントリー表E1、E2である。変更前及び変更後については、図13の具体例において後述する。
エントリー表E1は、図10Aハッシュ関数H1に対応するエントリー表である。すなわち、ハッシュ関数H1のハッシュ出力値A1(241)、ユーザID“L0”(242)、内部ID(243)の対応関係を管理する。
一方、エントリー表E2は、図10Bのハッシュ関数H2に対応するエントリー表である。すなわち、ハッシュ関数H2のハッシュ出力値A2(248)、ユーザID“L0”(249)、内部ID(250)の対応関係を管理する。
なお、エントリー表E1では、ハッシュ出力値A1(241)の取り得る値は、0から3までの4つの値である。一方、エントリー表E2では、ハッシュ出力値A2(248)の取り得る値は、0から2までの3つの値である。
以上に示すエントリー表E1、E2を用いることにより、通信経路設定部25は、ハッシュ関数H1、H2によって値範囲が圧縮されたユーザID(ハッシュ出力値A1、A2)を、高速に内部IDに変換することができる。なお、ここではノード1が2つのエントリー表E1、E2を備える場合について説明してきたが、ハッシュ関数の数が3つ以上である場合には、ハッシュ関数の数と同じ3つ以上のエントリー表を備えてもよい。
図12A、及び、図12Bは、本発明の第2の実施形態のエントリー数管理表30の一例を示す図である。図12Aは、変更前のエントリー数管理表30であり、図11A及び図11Bに示すエントリー表E1、E2に対応する。一方、図12Bは、変更後のエントリー数管理表30であり、図11C及び図11Dに示すエントリー表E1、E2に対応する。
エントリー数管理表30は、各エントリー表29cの識別子(281)、各エントリー表29cに設定可能なエントリー数を表す表サイズ(282)、各エントリー表29cにおいて設定済みのエントリー数(283)、各エントリー表29cのエントリー未設定フィールド数である空き数(284)の対応関係、すなわちエントリー表29c毎の空き数(エントリー未設定フィールド数)を管理する。
図11Aに示すエントリー表E1では、設定可能なエントリー数が4、設定済みのエントリー数が0、エントリー未設定フィールド数が4である。また、図11Bに示すエントリー表E2では、設定可能なエントリー数が3、設定済みのエントリー数が1、エントリー未設定フィールド数が2である。そのため、図12Aに示すエントリー数管理表30では、エントリー表E1の表サイズが4、エントリー数が0、空き数が4として登録されている。同様に、エントリー表E2の表サイズが3、エントリー数が1、空き数が2として登録されている。
一方、図11Cに示すエントリー表E1では、設定可能なエントリー数が4、設定済みのエントリー数が0、エントリー未設定フィールド数が4である。また、図11Dに示すエントリー表E2では、設定可能なエントリー数が3、設定済みのエントリー数が2、エントリー未設定フィールド数が1である。そのため、図12Bに示すエントリー数管理表30では、エントリー表E1の表サイズが4、エントリー数が0、空き数が4として登録されている。同様に、エントリー表E2の表サイズが3、エントリー数が2、空き数が1として登録されている。
以上のように、エントリー数管理表30は、各エントリー表29cのエントリー未設定フィールド数である空き数を管理する。これにより、ノード1は、各エントリー表29cにおけるエントリー未設定状況に応じて、新規エントリーの登録先のエントリー表29cを選択することが可能となる。なお、表サイズ282やエントリー数283の欄は設けなくてもよい。
図13は、本発明の第2の実施形態のエントリー追加処理の一例を示すフローチャートである。ここでは、通信経路設定部25が、エントリー表29cに新規エントリーを追加(登録)する手順を、具体例を用いて説明する。
通信経路設定部25は、処理開始後(401)、網管理装置6から新規ユーザID(例えば、ユーザID“L”)の設定コマンドを受信するまで、待ち状態となる(402)。新規ユーザID“L”の設定コマンドを受信した場合には(402でYES)、変数"エントリー先候補"に"なし"を、空き数を表す変数Nに設定可能なユーザID数である4を、カウンタiに1を、それぞれ初期値として設定する(403)。
次に、通信経路設定部25は、エントリー表Eiにおいて、ハッシュ出力値AiがHi(L)であるエントリーが空、且つ、変数Nの値がエントリー表Eiの空き数以上であるか否かを判定する(404)。なお、Hi(L)とは、入力値Lに対するハッシュ関数Hiの出力値である。
具体的には、まず、エントリー表E1(図11A)から、ハッシュ出力値A1がH1(L)であるエントリーを検索し、該当するエントリーが空であるか否かを確認する。例えば、ステップ402で新規ユーザID“L=2”の設定コマンドを受信した場合には、入力値2に対するハッシュ関数H1(図10A)の出力値は1である。すなわち、H1(2)=1である。そのため、エントリー表E1(図11A)から、ハッシュ出力値A1が1であるエントリーが空であることを確認する。
次に、エントリー数管理表30(図12A)を参照し、変数Nの値(ここでは初期値4)と、エントリー表E1の空き数とを比較する。エントリー数管理表30(図12A)において、エントリー表E1の空き数は4である。そのため、変数Nの値はエントリー表E1の空き数以上である。以上より、ステップ404においてYESとなる。
ステップ404においてYESの場合には、通信経路設定部25は、変数“エントリー先候補”に“Ei”を、変数Nに“エントリー表Eiの空き数”を設定する(405)。上記具体例では、変数"エントリー先候補"に"E1"を、変数Nにエントリー表E1の空き数である4を設定する。一方、ステップ404においてNOの場合には(404でNO)、ステップ405の処理を実行しない。
ステップ406に進むと、通信経路設定部25は、カウンタiをインクリメントする(406)。上記具体例では、i=2となる。
その後、通信経路設定部25は、カウンタiの値がエントリー表数imaxよりも大きいか否かを判定する(407)。カウンタiの値がエントリー表数imax以下である場合には(407でNO)、ステップ404に戻って処理を繰り返す。一方、カウンタiの値がエントリー表数imaxよりも大きい場合には(407でYES)、ステップ408に進む。
上記具体例では、カウンタiの値は2であり、エントリー表数imaxの値は2(エントリー表E1、E2の2つ)である。そのため、カウンタiの値はエントリー表数imax以下であるので(407でNO)、ステップ404に戻る。
ステップ404に戻ると、通信経路設定部25は、エントリー表E2(図11B)から、ハッシュ出力値A2がH2(2)であるエントリーを検索し、該当するエントリーが空であるか否かを確認する。入力値2に対するハッシュ関数H2(図10B)の出力値は2である。すなわち、H2(2)=2である。そのため、エントリー表E2(図11B)から、ハッシュ出力値A2が2であるエントリーが空であることを確認する。
次に、エントリー数管理表30(図12A)を参照し、変数Nの値(ここでは4)と、エントリー表E2の空き数とを比較する。エントリー数管理表30(図12A)において、エントリー表E2の空き数は2である。そのため、変数Nの値はエントリー表E2の空き数以上である。以上より、ステップ404においてYESとなる。
ステップ405に進み、通信経路設定部25は、変数“エントリー先候補”に“E2”を、変数Nにエントリー表E2の空き数である2を設定する(405)。その後、カウンタiをインクリメントしてi=3とする(406)。そうすると、カウンタiの値3はエントリー表数imax(=2)よりも大きいので(407でYES)、ステップ408に進む。
以上に示すステップ404〜407の処理により、通信経路設定部25は、変数“エントリー先候補”及び変数Nを用いて、空き数の最も少ないエントリー表を、新規エントリーの登録先候補として決定する。
ステップ408では、通信経路設定部25は、変数"エントリー先候補"の値が"なし"であるか否かを確認する(408)。変数“エントリー先候補”の値が“なし”である場合には(408でYES)、ステップ411に進む。一方、変数“エントリー先候補”の値が“なし”でない場合には(408でNO)、ステップ409に進む。上記具体例では、変数“エントリー先候補”の値は“E2”であるので(408でNO)、ステップ409に進む。
ステップ409では、通信経路設定部25は、変数“エントリー先候補”で示されるエントリー表に、ユーザID“L”のエントリーを追加し、エントリー数管理表30を更新する(409)。
上記具体例では、変数“エントリー先候補"の値が"E2"であるので、エントリー表E2に、ユーザID“2”のエントリーを追加する。なお、新規エントリーを追加する場合に、新規エントリーに係る内部IDは、全てのエントリー表E1、E2においてユニークな値とする。その結果、図11Aに示すエントリー表E1、及び、図11Bに示すエントリー表E2は、それぞれ図11Cに示すエントリー表E1、及び、図11Dに示すエントリー表E2に変更する。
また、エントリー数管理表30を更新する。上記具体例では、エントリー表E2の空き数が2から1に変更されるので、図12Aに示すエントリー数管理表30は、図12Bに示すエントリー数管理表30に変更する。
その後ステップ410において、通信経路設定部25は、変更後のエントリー表E1及びE2(29c)の情報を、各インタフェース部22a、22bに送信する(410)。各インタフェース部22a、22bは、受信した変更後のエントリー表E1及びE2(29c)の情報を、各インタフェース部22a、22bが備えるエントリー表29a、29bに上書き(更新)する。その後ステップ417において、監視制御部21は、通信経路を設定した旨を示す通信経路設定応答604を、網管理装置6に送信する(417)。
なお、ステップ411〜416の処理については、前述のステップ311〜316の処理と同様であるとして、ここでは説明を省略する。
以上に示す処理により、通信経路設定部25は、エントリー未設定フィールド数が他のエントリー表29cよりも少ないエントリー表29c、すなわちエントリー未設定フィールド数が最も少ないエントリー表29cに優先的に新規エントリーを追加する。その結果、エントリーが追加されたエントリー表29cと、他のエントリー表29cとの間では、エントリー未設定フィールド数の差がさらに大きくなる。すなわち、エントリー表29c間でエントリー未設定フィール数に偏りが生じることになる。
これにより、将来エントリーを追加する際の衝突の発生確率を下げることが可能となる。また、衝突が発生した際の再配置処理の実行頻度を削減することにより、主信号フレームの通信断の時間を低減することが可能となる。
また、通信経路設定部25は、エントリー未設定フィールド数の最も少ないエントリー表29cが複数存在する場合には、表番号(Ei)の大きなエントリー表29cに優先的に新規エントリーを追加する。これにより、表番号の大きなエントリー表29cに多くのエントリーが設定され、表番号の小さなエントリー表29cに少ないエントリーが設定されるように制御することができる。これにより、将来エントリーを追加する際の衝突の発生確率を下げることが可能となる。なお、新規エントリーの追加先は、表番号の大きなエントリー表29cに限定されるものではない。
以上に示す各実施形態によれば、ハッシュ関数を用いた処理を実行する計算機(例えば通信装置、暗号処理装置)において、限られたメモリサイズ上の複数のエントリー表に対して効果的に新規エントリーを追加することができる。
すなわち、計算機は、新規エントリーを追加する際に、当該新規エントリーを追加可能なエントリー表29cが複数ある場合、エントリー数管理表30を参照し、エントリー設定状況に応じて新規エントリーの最適な追加先を選択する。これにより、将来エントリーを追加する場合に、設定済みエントリーの再配置処理を回避する又は再配置処理の実行頻度を削減することができる。また、設定済みエントリーの識別子変換処理に影響を与えることなく、新規エントリーを追加することができる。特に、帯域保証型サービスを提供する通信システムでは、設定済みエントリーに係るユーザの通信断を防ぐとともに、新規エントリーを追加することができる。
以上、本発明の各実施形態について説明したが、上記各実施形態は本発明の適用例の一つを示したものであり、本発明の技術的範囲を上記各実施形態の具体的構成に限定する趣旨ではない。
例えば、上記説明では、本発明をMPLS−TPに基づく帯域保証網N1に適用した場合を例に説明してきたが、この場合には限らない。例えば、ATM(Asynchronous Transfer Mode)やEthernet(登録商標) VLAN(Virtual Local Area Network)等のユーザ毎のユーザIDに基づいて通信接続を管理する通信システム内の通信装置に対しても適用可能である。
N1 帯域保証網
N2、N3 アクセス網
1、2、3、4、5 ノード
6 網管理サーバ
25 通信経路設定部
27a、27b ユーザID処理部
28a、28b、28c ハッシュ関数
29a、29b、29c エントリー表
30 エントリー数管理表

Claims (10)

  1. プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備え、通信データに付与された識別子を変換する計算機であって、
    前記メモリは、
    複数のハッシュ関数と、
    前記複数のハッシュ関数の各々に対応し、当該ハッシュ関数の出力値と、当該ハッシュ関数の入力値である入力識別子と、前記入力識別子を変換して得られる出力識別子と、の対応を示す識別子変換情報を管理する複数のエントリー表と、
    前記複数のエントリー表の各々における識別子変換情報の設定状況を管理する管理表と、を記憶し、
    前記プロセッサは、前記複数のエントリー表のいずれかに、新たな識別子変換情報を登録する場合には、前記管理表によって管理される前記複数のエントリー表の各々における識別子変換情報の設定状況に応じて、前記新たな識別子変換情報を登録すべきエントリー表を選択することを特徴とする計算機。
  2. 前記プロセッサは、前記複数のエントリー表の識別子変換情報の設定状況に、エントリー表間での偏りが生じるように、前記新たな識別子変換情報を登録すべきエントリー表を選択することを特徴とする請求項1に記載の計算機。
  3. 前記管理表は、前記複数のエントリー表の各々における識別子変換情報の設定数を管理し、
    前記プロセッサは、前記複数のエントリー表から、前記設定数が他のエントリー表よりも多いエントリー表を選択することを特徴とする請求項1に記載の計算機。
  4. 前記管理表は、前記複数のエントリー表の各々における識別子変換情報の未設定数を管理し、
    前記プロセッサは、前記複数のエントリー表から、前記未設定数が他のエントリー表よりも少ないエントリー表を選択することを特徴とする請求項1に記載の計算機。
  5. 前記複数のハッシュ関数のうち少なくとも2つのハッシュ関数は、それぞれ異なる範囲の出力値を出力するものであり、
    前記複数のエントリー表の各々は、当該エントリー表に対応する前記ハッシュ関数の出力値の数以下の識別子変換情報を管理することを特徴とする請求項4に記載の計算機。
  6. プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備え、通信データに付与された識別子を変換する計算機における識別子管理方法であって、
    前記メモリは、
    複数のハッシュ関数と、
    前記複数のハッシュ関数の各々に対応し、当該ハッシュ関数の出力値と、当該ハッシュ関数の入力値である入力識別子と、前記入力識別子を変換して得られる出力識別子と、の対応を示す識別子変換情報を管理する複数のエントリー表と、
    前記複数のエントリー表の各々における識別子変換情報の設定状況を管理する管理表と、を記憶し、
    前記方法は、
    前記プロセッサが、前記複数のエントリー表のいずれかに、新たな識別子変換情報を登録する場合には、前記管理表によって管理される前記複数のエントリー表の各々における識別子変換情報の設定状況に応じて、前記新たな識別子変換情報複数を登録すべきエントリー表を選択する手順と、
    前記選択された登録すべきエントリー表に、前記新たな識別子変換情報を登録する手順と、
    を含むことを特徴とする識別子管理方法。
  7. 前記選択する手順において、前記プロセッサは、前記複数のエントリー表の識別子変換情報の設定状況に、エントリー表間での偏りが生じるように、前記新たな識別子変換情報を登録すべきエントリー表を選択することを特徴とする請求項6に記載の識別子管理方法。
  8. 前記管理表は、前記複数のエントリー表の各々における識別子変換情報の設定数を管理し、
    前記選択する手順において、前記プロセッサは、前記設定数が他のエントリー表よりも多いエントリー表を選択することを特徴とする請求項6に記載の識別子管理方法。
  9. 前記管理表は、前記複数のエントリー表の各々における識別子変換情報の未設定数を管理し、
    前記選択する手順において、前記プロセッサは、前記未設定数が他のエントリー表よりも少ないエントリー表を選択することを特徴とする請求項6に記載の識別子管理方法。
  10. 前記複数のハッシュ関数のうち少なくとも2つのハッシュ関数は、それぞれ異なる範囲の出力値を出力するものであり、
    前記複数のエントリー表の各々は、当該エントリー表に対応する前記ハッシュ関数の出力値の数以下の識別子変換情報を管理することを特徴とする請求項9に記載の識別子管理方法。
JP2011111834A 2011-05-18 2011-05-18 計算機及び識別子管理方法 Expired - Fee Related JP5610227B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011111834A JP5610227B2 (ja) 2011-05-18 2011-05-18 計算機及び識別子管理方法
US13/462,011 US8886913B2 (en) 2011-05-18 2012-05-02 Apparatus and method for identifier management
CN201210153585.1A CN102843287B (zh) 2011-05-18 2012-05-17 计算机及标识符管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011111834A JP5610227B2 (ja) 2011-05-18 2011-05-18 計算機及び識別子管理方法

Publications (2)

Publication Number Publication Date
JP2012244364A true JP2012244364A (ja) 2012-12-10
JP5610227B2 JP5610227B2 (ja) 2014-10-22

Family

ID=47174882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011111834A Expired - Fee Related JP5610227B2 (ja) 2011-05-18 2011-05-18 計算機及び識別子管理方法

Country Status (3)

Country Link
US (1) US8886913B2 (ja)
JP (1) JP5610227B2 (ja)
CN (1) CN102843287B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11126418B2 (en) * 2012-10-11 2021-09-21 Mcafee, Llc Efficient shared image deployment
US10545917B2 (en) * 2014-02-19 2020-01-28 Snowflake Inc. Multi-range and runtime pruning
US10366102B2 (en) 2014-02-19 2019-07-30 Snowflake Inc. Resource management systems and methods
US10437780B2 (en) 2016-07-14 2019-10-08 Snowflake Inc. Data pruning based on metadata
US10419410B2 (en) * 2016-12-15 2019-09-17 Seagate Technology Llc Automatic generation of unique identifiers for distributed directory management users

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5032987A (en) * 1988-08-04 1991-07-16 Digital Equipment Corporation System with a plurality of hash tables each using different adaptive hashing functions
JP2003510963A (ja) * 1999-09-30 2003-03-18 モサイド・テクノロジーズ・インコーポレイテッド 4ウェイハッシュ表のための方法および装置
US20080229056A1 (en) * 2007-03-12 2008-09-18 Broadcom Corporation Method and apparatus for dual-hashing tables

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277426B2 (en) * 2002-05-24 2007-10-02 Mosaid Technologies, Inc. Method and apparatus for reordering entries in a multi probe lookup
US7680806B2 (en) * 2005-05-17 2010-03-16 Cisco Technology, Inc. Reducing overflow of hash table entries
US7984028B2 (en) * 2008-05-21 2011-07-19 Applied Micro Circuits Corporation System and method for application of hash function in telecommunication and networking
GB2462493B (en) * 2008-08-13 2012-05-16 Gnodal Ltd Data processing
CN101604337B (zh) * 2009-07-13 2011-08-24 中兴通讯股份有限公司 一种哈希表项存储、查找装置及方法
US8745063B2 (en) * 2010-02-16 2014-06-03 Broadcom Corporation Hashing with hardware-based reorder using duplicate values
US8423594B2 (en) * 2010-09-01 2013-04-16 International Business Machines Corporation Real-time hash map

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5032987A (en) * 1988-08-04 1991-07-16 Digital Equipment Corporation System with a plurality of hash tables each using different adaptive hashing functions
JP2003510963A (ja) * 1999-09-30 2003-03-18 モサイド・テクノロジーズ・インコーポレイテッド 4ウェイハッシュ表のための方法および装置
US20080229056A1 (en) * 2007-03-12 2008-09-18 Broadcom Corporation Method and apparatus for dual-hashing tables

Also Published As

Publication number Publication date
CN102843287B (zh) 2015-05-06
US8886913B2 (en) 2014-11-11
CN102843287A (zh) 2012-12-26
US20120294307A1 (en) 2012-11-22
JP5610227B2 (ja) 2014-10-22

Similar Documents

Publication Publication Date Title
US20210218665A1 (en) Resilient network communication using selective multipath packet flow spraying
JP6014254B2 (ja) 通信の方法及びシステム
US9571569B2 (en) Method and apparatus for determining virtual machine migration
US9571417B2 (en) Processing resource access request in network
US9743367B2 (en) Link layer discovery protocol (LLDP) on multiple nodes of a distributed fabric
US8942217B2 (en) System and method for hierarchical link aggregation
JP2014135721A (ja) データセンタネットワークのトラフィックを分配するための装置および方法
JP5466723B2 (ja) ホスト提供システム及び通信制御方法
JP5610227B2 (ja) 計算機及び識別子管理方法
JP2016116184A (ja) 網監視装置および仮想ネットワーク管理方法
US20200204481A1 (en) Fast redirect of traffic when pods fail
US20200244579A1 (en) Flexible Ethernet Frame Forwarding Method and Apparatus
CN112787913A (zh) 智能网卡组件、物理机、云服务系统以及报文发送方法
EP4042642A1 (en) Dynamic discovery of service nodes in a network
US10594613B2 (en) Systems and methods for enhanced autonegotiation
WO2024078208A1 (zh) 基于ecs协议的域名查询方法及装置、存储介质及设备
CN109286564B (zh) 一种报文转发方法及装置
CN116055426B (zh) 用于多绑定模式下流量卸载转发的方法、设备及介质
US20230131871A1 (en) Method, system and apparatus for forwarding data in virtual network and program product
US20230344815A1 (en) End-point instance indexing and owner pop selection in gateway service ticketing
US20210117097A1 (en) Methods, devices, and computer program products for storage management
EP2860920B1 (en) Method and device for generating forwarding table
CN115348187A (zh) 网络服务处理的方法和装置
CN118118348A (zh) 一种虚拟化网络功能vnf的实例化方法及装置
CN114051003A (zh) 用于流量控制的方法、设备及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140617

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140716

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140820

R150 Certificate of patent or registration of utility model

Ref document number: 5610227

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees