JP2015518317A - イーサネット(r)スイッチのための、ルックアップ・テーブルを使わない、レイヤ2でのパケット交換 - Google Patents

イーサネット(r)スイッチのための、ルックアップ・テーブルを使わない、レイヤ2でのパケット交換 Download PDF

Info

Publication number
JP2015518317A
JP2015518317A JP2015503962A JP2015503962A JP2015518317A JP 2015518317 A JP2015518317 A JP 2015518317A JP 2015503962 A JP2015503962 A JP 2015503962A JP 2015503962 A JP2015503962 A JP 2015503962A JP 2015518317 A JP2015518317 A JP 2015518317A
Authority
JP
Japan
Prior art keywords
mac address
mac
xor
address
computer readable
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
JP2015503962A
Other languages
English (en)
Other versions
JP6270816B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2015518317A publication Critical patent/JP2015518317A/ja
Application granted granted Critical
Publication of JP6270816B2 publication Critical patent/JP6270816B2/ja
Active 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/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • 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]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

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

Abstract

【課題】ルックアップ・テーブルを使わずに、レイヤ2でパケット交換ができるシステム、コンピュータ・プログラム製品、および方法を提供する。【解決手段】一実施形態において、システムは少なくとも一つのプロセッサを含み、ポート上で、デバイスに対しメディア・アクセス制御(MAC)アドレスを割り当てる要求を受信するよう構成されたロジックと、少なくとも部分的に該ポートに基づいて該デバイスに割り当てるMACアドレスを決めるよう構成されたロジックと、そのMACアドレスを添えて要求への応答を送信するよう構成されたロジックとを含む。別の実施形態において、MACアドレスを割り当てるためのコンピュータ・プログラム製品は、具現化されたコンピュータ可読プログラム・コードを有するコンピュータ可読ストレージ媒体を含み、該コンピュータ可読プログラム・コードは、ルックアップ・テーブルを使わずに、デバイスに割り当てるMACアドレスを決めるよう構成されたコンピュータ可読プログラム・コードと、そのMACアドレスを該デバイスに送信するよう構成されたコンピュータ可読プログラム・コードとを含む。さらなる実施形態によって、他のシステム、方法、およびコンピュータ・プログラム製品が提供される。【選択図】図4

Description

本発明は、データ・センタのインフラストラクチャに関し、さらに具体的には、本発明は、ルックアップ・テーブルを使わずに、レイヤ2でパケット交換ができるイーサネット(R)スイッチに関する。
パケット交換ネットワーク・スイッチにおいて、パケットを転送するためのスイッチング・デバイスの実際の宛先ポートを見出すために、通常、宛先メディア・アクセス制御(MAC:media access control)アドレスまたは宛先インターネット・プロトコル(IP:internet protocol)アドレスに対するルックアップが行われる。ほとんどのシステムは、この判定のために、特定用途向け集積回路(ASIC:application specific integrated circuit)など何らかのスイッチング・プロセッサを用いる。このスイッチング・プロセッサは、このルックアップ判定を行うためルックアップ・テーブルを維持しており、一般的なネットワークでは、該テーブルはかなり長くおそらく数千のエントリを有する。このルックアップ・テーブルはチップ上に格納されるかもしくはチップの外部に格納される。
いずれの場合においても、ルックアップ・テーブルの使用は、チップに対し、相当な論理的複雑さ、スペース、およびメモリ要求が加わる。この追加された複雑さは、最終的にはより多くの待ち時間をもたらし、チップを望まれているよりも高価なものにする。したがって、ルックアップ・テーブルの使用なしに実際の宛先ポートを見出すことができれば有益であろう。
一実施形態において、システムは少なくとも一つのプロセッサを含み、該プロセッサは、或るポートの或るデバイスに対しメディア・アクセス制御(MAC)アドレスを割り当てる要求を受信するよう構成されたロジックと、少なくとも部分的に該ポートに基づいて該デバイスに割り当てるMACアドレスを決めるよう構成されたロジックと、該MACアドレスを添えて要求に対する応答を送信するよう構成されたロジックとを含む。
別の実施形態において、MACアドレスを割り当てるためのコンピュータ・プログラム製品は、具現化されたコンピュータ可読プログラム・コードを有するコンピュータ可読ストレージ媒体を含み、該コンピュータ可読プログラム・コードは、ルックアップ・テーブルを使わずに、デバイスに割り当てるMACアドレスを決めるよう構成されたコンピュータ可読プログラム・コードと、そのMACアドレスを該デバイスに送信するよう構成されたコンピュータ可読プログラム・コードとを含む。
別の実施形態によれば、MACアドレスを割り当てる方法は、スイッチング・デバイスのポートでMACアドレスに対するデバイスからの要求を受信するステップと、少なくとも部分的に該ポートに基づいて、デバイスに割り当てるMACアドレスを決めるステップと、MACアドレスを添えて要求に応答するステップとを含む。
さらに別の実施形態において、MACアドレスを取得する方法は、MACアドレスに対する要求をMACアドレス割当てサーバ(MAAS:MAC address allocation server)に送信するステップと、所定の長さの時間、要求に対する応答の受信を待つステップであって、該応答はMACアドレスを含む、該待つステップと、所定の長さの時間内に要求に対する応答が受信された場合、そのMACアドレスを使用するステップとを含む。
本発明の他の態様および実施形態は、本発明の原理を例として示す諸図面と併せ、以下の詳細な説明を読めば明らかになろう。
一実施形態による、ネットワーク・アーキテクチャを示す。 一実施形態による、図1のサーバもしくはクライアントまたはその両方に関連付けることが可能な代表的なハードウェア環境を示す。 一実施形態による、スイッチング・デバイスの簡略化された図である。 一実施形態による、メディア・アクセス制御(MAC)アドレス割当てテーブルを示す。 一実施形態による方法のフローチャートである。 別の実施形態による方法のフローチャートである。
以下の説明は、本発明の一般的原理を例示する目的で行うものであり、本明細書の本請求の発明概念を限定する意図はない。さらに、本明細書で説明する特定の特徴は、様々な可能な組合せおよび順序の各々の形で、説明された他の特徴と組合せて用いることができる。
本明細書中に特に別途に定義されていなければ、全ての用語は、本明細書で含蓄される意味の他、当業者が理解している意味もしくは辞書、論文などで定義される意味またはその両方を含め、それら用語の可能な最広義の解釈が付与されている。
また、本明細書および添付の特許請求の範囲での使用において、単数形「ある(“a”、“an”)」および「該(“the”)」は、別途に指定されていなければ、複数形の指示対象も含むことに留意する必要がある。
一つのアプローチにおいて、メディア・アクセス制御(MAC)アドレスは、システムに組み込まれたスイッチング・システムに連結されたデバイスに対して決められ、ハッシュ化アルゴリズムが適用されている場合、各MACアドレスは或る特定のハッシュ値に対応し、各ハッシュ値はスイッチング・デバイスの一つのポートに対応し、これにより、MACアドレスをどのようにデバイスに割り当てるかが単純化され改良される。
一つの一般的実施形態において、システムは、或るポートの或るデバイスに対しメディア・アクセス制御(MAC)アドレスを割り当てる要求を受信するよう構成されたロジックと、少なくとも部分的に該ポートに基づいて該デバイスに割り当てるMACアドレスを決めるよう構成されたロジックと、該MACアドレスを添えて要求に対する応答を送信するよう構成されたロジックとを含む少なくとも一つのプロセッサ、を含む。
別の一般的実施形態において、MACアドレスを割り当てるためのコンピュータ・プログラム製品は、具現化されたコンピュータ可読プログラム・コードを有するコンピュータ可読ストレージ媒体を含み、該コンピュータ可読プログラム・コードは、ルックアップ・テーブルを使わずに、デバイスに割り当てるMACアドレスを決めるよう構成されたコンピュータ可読プログラム・コードと、そのMACアドレスを該デバイスに送信するよう構成されたコンピュータ可読プログラム・コードとを含む。
別の一般的実施形態によれば、MACアドレスを割り当てる方法は、スイッチング・デバイスのポートでMACアドレスに対するデバイスからの要求を受信するステップと、少なくとも部分的に該ポートに基づいて、該デバイスに割り当てるMACアドレスを決めるステップと、MACアドレスを添えて要求に応答するステップとを含む。
さらに別の一般的実施形態において、MACアドレスを取得する方法は、MACアドレスに対する要求をMACアドレス割当てサーバ(MAAS)に送信するステップと、所定の長さの時間、要求に対する応答の受信を待つステップであって、該応答はMACアドレスを含む、該待つステップと、所定の長さの時間内に要求に対する応答が受信された場合、そのMACアドレスを使用するステップとを含む。
当業者が周知のように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。従って、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、一般に本明細書では全て「ロジック」、「回路」、「モジュール」、または「システム」といわれることもある、ソフトウェアおよびハードウェア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の態様は、具体化されたコンピュータ可読プログラム・コードを有する一つ以上コンピュータ可読媒体(群)中に具現化されたコンピュータ・プログラム製品の形を取ることもできる。
一つ以上のコンピュータ可読媒体(群)の任意の組合せを用いることができる。該コンピュータ可読媒体は、コンピュータ可読信号媒体、または非一時的コンピュータ可読ストレージ媒体であってよい。非一時的コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、または半導体の、システム、装置、またはデバイス、あるいはこれらの任意の適切な組合せであり得る。非一時的コンピュータ可読ストレージ媒体のさらに具体的な例(非包括的リスト)には、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM:erasable programmable read−only memoryまたはフラッシュ・メモリ)、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、ブルーレイ・ディスク読み取り専用メモリ(BD−ROM:Blu−ray disc read−only memory)、光ストレージ・デバイス、磁気ストレージ・デバイス、または前述の任意の適切な組合せが含まれる。本明細書の文脈において、非一時的コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連させて使用するためのプログラムまたはアプリケーションを、包含または格納できる任意の有形媒体であり得る。
コンピュータ可読信号媒体には、例えばベースバンド中にまたは搬送波の一部として具現化されたコンピュータ可読プログラム・コードを有する、伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の適切な組合せを含め、さまざまな任意の形を取ることが可能である。コンピュータ可読信号媒体は、非一時的コンピュータ可読ストレージ媒体ではないが、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連させて使用するためのプログラムの通信、伝播、または伝送が可能な、一つ以上の配線を有する電気接続、光ファイバなど任意のコンピュータ可読媒体であり得る。
コンピュータ可読媒体上に具現化されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、RFなど、または前述の任意の適した組合せを含め、任意の適切な媒体を用いて送信することができる。
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および、“C”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組合せで記述することが可能である。このプログラム・コードは、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク(LAN:local area network)、ストレージ・エリア・ネットワーク(SAN:storage area network)もしくは広域ネットワーク(WAN:wide area network)、またはこれらの組合せを含む任意の種類のネットワークを介して、遠隔コンピュータまたはサーバをユーザのコンピュータに接続することもでき、あるいは例えばインターネット・サービス・プロバイダ(ISP:Internet Service Provider)を使いインターネットを介し外部のコンピュータへの接続を行うこともできる。
本発明の様々な実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、本発明の態様を本明細書で説明する。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方中のブロックの組合せは、コンピュータ・プログラム命令によって実装することが可能である。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群/動作群を実装するための手段を生成するようにすることができる。
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命令することができるコンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定されている機能/動作を実装する命令群を包含する製造品を作り出せるようにすることができる。
さらに、コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、そのコンピュータ上、他のプログラム可能装置上、または他のデバイス上で一連のオペレーション・ステップを実行させて、コンピュータ実装のプロセスを作り出し、当該コンピュータ上もしくは他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群/動作群を実装するためのプロセスを提供するようにすることも可能である。
図1は、一実施形態による、ネットワーク・アーキテクチャ100を示す。図1に示されるように、第一遠隔ネットワーク104および第二遠隔ネットワーク106を含む、複数の遠隔ネットワーク102が設けられている。ゲートウェイ101を、遠隔ネットワーク102と隣接ネットワーク108との間に連結することができる。本ネットワーク・アーキテクチャ100の状況において、ネットワーク104、106の各々は、以下に限らないが、LAN、インターネットなどのWAN、公衆交換電話ネットワーク(PSTN:public switched telephone network)、内部電話ネットワークなどを含め、任意の形をとることが可能である。
使用において、ゲートウェイ101は、遠隔ネットワーク102から隣接ネットワーク108への入り口点としての役割をする。しかして、ゲートウェイ101は、ゲートウェイ101に到着した所与のデータのパケットを方向付けできるルータとして、および所与のパケットに対しゲートウェイ101の外側および内側への実際の経路を提供するスイッチとして、機能することが可能である。
さらに、隣接ネットワーク108に連結され、遠隔ネットワーク102からゲートウェイ101を介してアクセスが可能な、少なくとも一つのデータ・サーバ114が含まれている。なお、データ・サーバ(群)114は、任意の種類のコンピューティング・デバイス/グループウェアを含むことができる。各データ・サーバ114には、複数のユーザ・デバイス116が連結されている。かかるユーザ・デバイス116は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、プリンタ、もしくは他の種類のロジック含有デバイス、またはこれらの組合せを含むことができる。なお、いくつかの実施形態では、ユーザ・デバイス111が、任意のネットワークに直接連結することも可能である。
例えば、ファクシミリ・マシン、プリンタ、スキャナ、ハード・ディスク・ドライブ、ネットワーク接続もしくはローカルまたはその両方のストレージ・ユニットまたはシステムなどの、周辺機器120または周辺機器120のシリーズを、一つ以上のネットワーク104、106、108に連結することができる。なお、データベースもしくは追加のコンポーネントまたはその両方を、ネットワーク104、106、108に連結された任意の種類のネットワーク・エレメントを使い、またはその中に組み込んで用いることが可能である。本説明の文脈において、ネットワーク・エレメントは、ネットワークの任意の構成要素を言及し得る。
いくつかのアプローチによれば、本明細書に記載の方法およびシステムは、仮想システム、もしくは、例えば、IBM(IBM社の登録商標)z/OS(IBM社の登録商標)環境をエミュレートするUNIX(R)システム、MICROSOFT WINDOWS(R)環境を仮想的にホストするUNIX(R)システム、IBM(IBM社の登録商標)z/OS(IBM社の登録商標)環境をエミュレートするMICROSOFT WINDOWS(R)システムなど、一つ以上の他のシステムをエミュレートするシステム、またはこれらの両方のシステムを使って実装する、もしくはこれらシステムの上に実装する、またはその両方を行うことが可能である。いくつかの実施形態において、この仮想化もしくはエミュレーションまたはその両方は、VMWAREソフトウェアの使用を介して改良することができる。
さらなるアプローチにおいて、一つ以上のネットワーク104、106、108は、通常「クラウド」と言われるシステムのクラスタを表し得る。クラウド・コンピューティングにおいて、処理パワー、周辺機器、ソフトウェア、データ、サーバなど、共有リソースは、オンデマンドの関係でクラウド中のどのシステムにも提供され、これによって、多くのコンピューティング・システムに亘るサービスへのアクセスおよびその分配を可能にする。クラウド・コンピューティングは、当該技術分野で周知のように、クラウド中で作動しているシステム群の間に、通常インターネット接続を必要とするが、これらのシステム群を接続する他の技法を使うことも可能である。
図2は、一実施形態による、図1のユーザ・デバイス116もしくはサーバ114またはその両方に関連付けられる代表的なハードウェア環境を示す。図2は、マイクロプロセッサなどの中央処理装置(CPU:central processing unit)210および一つ以上のバス212(いくつかの実施形態によれば、これらは、ローカル・バス、並列バス、直列バスなど各種のバスであり得る)を介して相互接続された、いくつかの他のユニットを有するワークステーションの典型的なハードウェア構成を示す。
図2に示されたワークステーションは、ランダム・アクセス・メモリ(RAM)214と、読み取り専用メモリ(ROM)216と、ディスク・ストレージ・ユニット220などの周辺機器を一つ以上のバス212に接続するためのI/Oアダプタ218と、キーボード224、マウス226、スピーカ228、マイクロフォン232、もしくはタッチ・スクリーン、デジタル・カメラ(図示せず)またはこれらの組合せなど他のユーザ・インタフェース・デバイスを一つ以上のバス212に接続するためのユーザ・インタフェース・アダプタ222と、ワークステーションを通信ネットワーク235(例えば、データ処理ネットワーク)に接続するための通信アダプタ234と、一つ以上のバス212をディスプレイ・デバイス238に接続するためのディスプレイ・アダプタ236と、を含む。
ワークステーションはその上に常駐する、MICROSOFT WINDOWS(R)オペレーティング・システム(OS:Operating System)、MAC(R)OS、UNIX(R)OSなどのオペレーティング・システムを有し得る。当然のことながら、好適な実施形態は、前述したものと違ったプラットフォームおよびオペレーティング・システムに実装することも可能である。好適な実施形態は、オブジェクト指向プログラミング手法を併せ用い、JAVA(R)、XML、C、もしくはC++言語またはこれらの組合せを使って、または他のプログラミング言語を使って記述することができる。複雑なアプリケーションを開発するのに益々多く使われるようになってきた、オブジェクト指向プログラミング(OOP:object oriented programming)を用いることが可能である。
現在、IEEEは、企業、教育機関などの組織にMACアドレスを割り当てており、これらの組織は、適切と思われる場合、自分たちのネットワーク(群)に亘りそのMACアドレスを自由に割り当てている。しかしながら、このプロセスは、非効率で待ち時間および問題に満ちている。例えば、イーサネット(R)スイッチングにおいて、特定のスイッチング・デバイスに対し分かっている全てのMACアドレス格納しているMACアドレス・テーブルのサイズの如何によっては、拡大しているネットワークで使用するためスイッチを対応させる上で、MACアドレス対処のための処理能力に対して、および低いルックアップ待ち時間を維持する上で、重大な問題があり得る。
現在使われているMACアドレス処理プロトコルに関連するこの問題および待ち時間を克服するために、固定MACアドレスを割り当てる代わりに、MACアドレスを必要とするデバイスに連結されたスイッチング・デバイスの起動時にMACアドレスを割り当てることが可能である。これらのMACアドレスは、アルゴリズム的割当ての着実な実行に基づいて決めることができる。
一実施形態によれば、受信されたパケットが転換される宛先ポートは、宛先MACアドレスの関数とすることが可能であり、この関数は、Dest_Port=F(Dest_MAC_Address,is_mirror,is_flow)(=F(宛先_MAC_アドレス,は_ミラー、または_フロー)と記述することができ、この式のFは関数を表し、Dest_Portは宛先ポートであり、Dest_MAC_Addressは、パケットにより提供される宛先MACアドレスであり、is_mirrorは、パケットが複数のポートにミラーすることが可能かどうかを表し、is_flowは、特殊なオペレーションとフロー制御を表す。is_mirrorおよびis_flowは、パケット交換には不必要だが、必要な場合に使用することができる。こうすれば、MACアドレス割当ては、在来の方法に比べて、より効率的で、より少ない必要オーバーヘッド処理を使って行うことが可能である。
次いで図3を参照すると、一実施形態による、スイッチング・デバイスなどのシステム300が示されている。図示のように、システム300は、電気的にシステム300に連結されたデバイス群304に対してMACアドレスを割り当てし、管理するようになされた、MAASなどのサーバを含む。このサーバは、コンポーネントとするか、もしくは、ロジックを実行するためのスイッチング・プロセッサなど少なくとも一つのプロセッサ306に管理させるか、またはその両方を行うことが可能である。また、いくつかの実施形態において、システム300は、ロジックを実行するためのローカル・プロセッサ302を含むことができ、このプロセッサは、該少なくとも一つのプロセッサ306に電気的に連結されている。ローカル・プロセッサ302もしくは少なくとも一つのプロセッサ306またはその両方には、中央処理装置(CPU)、フィールド・プログラム可能ゲート・アレイ(FPGA:field programmable gate array)、集積回路(IC:integrated circuit)、特定用途向け集積回路(ASIC)など、当該技術分野で周知の任意の種類のプロセッサを使用すればよい。さらなる実施形態において、スイッチングASICおよびローカルCPUの両方をシステム300に含め、スイッチングASICには交換オペレーションを管理させ、ローカルCPUにはMACアドレス割当てオペレーションを管理させることができる。
オンラインに参加するあらゆる新規のホスト、サーバ、またはデバイスは、他のデバイスと通信するためにMACアドレスを獲得する。これは、デバイスのネットワーク・インターフェース・カード(NIC:network interface card)にMACアドレスが事前プログラムされている在来の方法に比べユニークである。従来、デバイスは、起動時に通信のためにそのMACアドレスを用いる。しかしながら、本明細書で説明する諸実施形態によれば、MACアドレス取得アルゴリズムまたはMACアドレス取得プロトコル(MAAP)を用いる、MACアドレス取得の方法は、事前プログラムされたMACアドレスの必要性を排除し、いくつかのアプローチにおいて、事前プログラムされたMACアドレスに加えて用いることができる。
一実施形態によれば、少なくとも一つのプロセッサ306は、ポート308上で、デバイス304にMACアドレスを割り当てる要求を受信するよう構成されたロジックを含むか、または該ロジックへのアクセスを有する。この要求は、デバイス304によって送信されるか、あるいは、ネットワークまたはシステム300中の他の場所で発生し得る。要求が受信されたポート308は、将来、デバイス304と結び付く全ての発信トラフィックを送信するのに用いることができるように、保存または別途に記憶される。少なくとも一つのプロセッサ306は、少なくとも部分的に当該ポートに基づいてデバイスに割り当てるMACアドレスを決めるよう構成されたロジックと、該MACアドレスを添えて要求に対する応答を送信するよう構成されたロジックと、をさらに含むか、またはこれらロジックへのアクセスをさらに有する。
一実施形態において、少なくとも一つのプロセッサ306は、MACアドレス割当てテーブルを生成するよう構成されたロジックをさらに含むか、または該ロジックへのアクセスをさらに有することができる。次いで図4を参照すると、MACアドレス割当てテーブル400は、複数のハッシュ値402を含むことが可能で、各ハッシュ値402は一つのポート404と複数のMACアドレス406とに関連付けられている。ここで図3〜4を参照すると、一つのアプローチにおいて、複数のMACアドレス406のどの一つもハッシュ化アルゴリズムを適用することによって関連付けられたハッシュ値402が得られ、これには、MACアドレス406を要求するデバイス304に対し、該デバイス304をシステム300に連結しているポート404に対応するMACアドレス406を割り当てるための系統的方法がある。
一つのアプローチにおいて、デバイス304aに割り当てるMACアドレス406aを決めるよう構成されたロジックは、MACアドレス割当てテーブル400からMACアドレス406aを選択するよう構成されたロジックを含むことができ、選択されたMACアドレス406aにハッシュ化アルゴリズムを適用することによって、デバイス304aに連結されたポート404aに関連付けられたハッシュ値402aが得られる。
さらなるアプローチにおいて、MACアドレス割当てテーブル400からMACアドレス406aを選択するよう構成されたロジックは、複数の利用可能なMACアドレス406から、次の利用可能なMACアドレス406aを連続的にまたはランダムに選択するよう構成されたロジックを含み、利用可能なMACアドレスは現在どのデバイス304にも割り当てられていない。利用不可能なMACアドレスが現在デバイス304に割り当てられていることは言うまでもない。
さらに別の実施形態において、該ロジックは、MACアドレス割当てテーブル400からMACアドレス406aが選択されたならば、該MACアドレス406aをMACアドレス割当てテーブル400から除去し、そのMACアドレスを使用中MACアドレス・テーブル(図示しないが、割当て済みMACアドレスだけを含むことを除き、MACアドレス割当てテーブル400と類似のものとなろう)に加えることによって、該MACアドレス406aを利用不可として標識するよう構成されたロジックをさらに含むことができる。さらなる諸アプローチにおいて、該ロジックは、デバイス304aが自分に割り当てられたMACアドレス406aを解放すると、該MACアドレス406aをMACアドレス割当てテーブル400に加え、そのMACアドレス406aを使用中MACアドレス・テーブルから除去することによって、該MACアドレス406aを利用可能として標識するよう構成されたロジックをさらに含むことが可能である。
別の実施形態において該ロジックは、MACアドレス割当てテーブル400中のMACアドレス406aに関連付けられ、該MACアドレス406aが利用可能かまたは不可能かを表示する、表示ビットを反転するように構成することが可能である。
様々な実施形態によれば、このハッシュ化アルゴリズムは、当該技術分野で周知の任意の完全または不完全ハッシュ化アルゴリズムを含むことができる。一つのアプローチにおいて、該ハッシュ化アルゴリズムは、H(DM)=(DM[0]*1 XOR DM[1]*2 XOR DM[2]*3 XOR DM[3]*4 XOR DM[4]*5 XOR DM[5]*6)MOD Pを含むことが可能で、この式中の、DMはMACアドレスであり、H(DM)はMACアドレスDMの全6バイトのハッシュ値であり、Pはシステム300の物理ポート308の合計数である。
別の実施形態において、該ハッシュ化アルゴリズムは、H(DM)=(DM[0]*1 XOR DM[1]*2 ・・・ XOR DM[N−1]*N) MOD Pを含むことができ、この式中の、DMはMACアドレスであり、H(DM)はMACアドレスDMのハッシュ値であり、DM[N−1]は、Nバイト数を有するMACアドレスDMの或るバイトであり、Pは物理ポートの合計数である。
別の実施形態によれば、MACアドレス割当てテーブル400は、少なくとも一つのプロセッサ306の始動プロセスの過程で生成することができる。この始動プロセスは、システム300の立ち上げ、またはコンポーネント群が速度に達した後に生じる任意のプロセスで行うことができる。
別の実施形態では、要求には、送信元アドレスを有するMACアドレス取得プロトコル(MAAP)パケットを含めることができる。この場合、応答には、受信されたMAAPパケットの宛先アドレスを該受信MAAPパケットの送信元アドレスに変えるように変更された受信MAAPパケットを含めることができる。このように、送信元アドレスと宛先アドレスとの間の簡単な切替えを使って、要求と応答とに同じMAAPパケットを用いることができる。
次いで図5を参照すると、一実施形態による、MACアドレスを割り当てる方法500のフローチャートが示されている。方法500は、様々な実施形態において、なかんずく、図1〜4に示された環境のいずれかにおいて本発明に従って実施することができる。当然のことながら、当業者なら本説明を読めば分かるように、図5に特定的に記載されたオペレーションよりも多い、または少ないオペレーションを方法500に含めることが可能である。
方法500のステップの各々は、オペレーティング環境の任意の適切なコンポーネントによって実施することができる。例えば、一実施形態において、方法500は、スイッチング・デバイスもしくはスイッチング・デバイスのMAASまたはその両方で、部分的にまたは全体的に実施することが可能である。
図5に示されるように、方法500は、オペレーション502から開始でき、該オペレーションでは、スイッチング・デバイスの或るポートで或るデバイスからのMACアドレスに対する要求が受信される。本明細書で説明したように、要求が受信されたポートは、該デバイスに対するMACアドレスを決める過程で使用するため保存される。
オペレーション504で、少なくとも部分的に該ポートに基づいてデバイスに割り当てるMACアドレスが決められる。
一つのアプローチにおいて、MACアドレス割当てテーブルを生成することができる。MACアドレス割当てテーブルには複数のハッシュ値を含め、各ハッシュ値を複数のMACアドレスに対応している各ポートに関連付けることが可能である。さらに、複数のMACアドレスのどの一つもハッシュ化アルゴリズムを適用することによって関連付けられたハッシュ値が得られ、続いてこれがそのMACアドレスのポートに関連付けられる。
さらに、一実施形態において、MAASは、MACアドレス割当てテーブルを構築するための入力ファイルからMAASに提供された、MACアドレスの所定のセットを用いることができる。この場合、MAASは、MACアドレス割当てプロトコル(MAAP)パケットが受信されるのに応じて、MACアドレス割当てテーブルから、デバイスに割り当てるMACアドレスを決める。
一実施形態において、ハッシュ化アルゴリズムは完全ハッシュ化アルゴリズムまたは不完全ハッシュ化アルゴリズムとすることができる。使用可能なかかる一つの完全ハッシュ化アルゴリズムは、H(DM)=(DM[0]*1 XOR DM[1]*2 XOR DM[2]*3 XOR DM[3]*4 XOR DM[4]*5 XOR DM[5]*6)MOD Pであり、この式の、DMはMACアドレスであり、H(DM)はMACアドレスDMの全6バイトのハッシュ値であり、Pはスイッチング・デバイスの物理ポートの合計数である。
別の実施形態によれば、該ハッシュ化アルゴリズムは、H(DM)=(DM[0]*1 XOR DM[1]*2 ・・・ XOR DM[N−1]*N) MOD Pを含むことができ、この式中の、DMはMACアドレスであり、H(DM)はMACアドレスDMのハッシュ値であり、DM[N−1]は、Nバイト数を有するMACアドレスDMの或るバイトであり、Pはポートの合計数である。
いくつかのアプローチにおいて、あるデバイスからパケットを受信し、MACアドレスにハッシュ化アルゴリズムを適用してもスイッチング・デバイスの適切なポートが得られない場合、例えば、宛先MACアドレスがMAAPによって提供されなかった場合には、宛先ポートを見出すために、通常のルックアップ・アルゴリズムを使用することが可能である。次いで、該パケットを宛先ポートに転送することができる。MAAPを用いて、MAASによって提供されなかったMACアドレスを識別するために、それらのMACアドレスを、当該範囲および汎用一意識別子(UUID:universally unique identifier)フィールドと対比することが可能である。MAAPは、ある特定の事前プログラムされた範囲内でMACアドレスを割り当てる。
一つのアプローチにおいて、立ち上げ過程など、スイッチング・デバイスの始動プロセスの過程でMACアドレス割当てテーブルを生成することができる。また、MACアドレス割当ては、リスト、関連付け表、ファイル、または一つ以上のMACアドレスを単一のポートおよび単一のハッシュ値に関連付けできる何らかの他の手段を使ってもよい。
さらなるアプローチにおいて、方法500は、MACアドレス割当てテーブルからMACアドレスを選択するステップをさらに含み、選択されたMACアドレスにハッシュ化アルゴリズムを適用することによって、デバイスに連結されたスイッチング・デバイスの当該ポートに関連付けられたハッシュ値が得られるようにできる。例えば、デバイスがスイッチング・デバイスのポート4に接続されている場合、そのデバイスに対し選択されたMACアドレスにハッシュ化アルゴリズムを適用することによって、ポート4に関連付けられたハッシュ値が得られる。このハッシュ値は4とすることもでき、または、この値は、特定のハッシュ値にハッシュ化されたMACアドレスの割当てに先立ってスイッチング・デバイスの該ポートに関連付けられた任意の他の番号とすることができる。
さらなる別の実施形態において、MACアドレス割当てテーブルからMACアドレスを選択するステップは、複数の利用可能MACアドレスから次の利用可能MACアドレスを連続的にまたはランダムに選択するステップを含むことができる。利用可能MACアドレスとは、現在どのデバイスにも割り当てられていないMACアドレスであり、利用不可MACアドレスは、現在あるデバイスに割り当てられているMACアドレスである。
さらなる別の実施形態において、方法500は、MACアドレス割当てテーブルからMACアドレスを選択したならば、そのMACアドレスを利用不可として標識するステップ、またはそのMACアドレスをMACアドレス割当てテーブルから除去し、そのMACアドレスを使用中MACアドレス・テーブルに加えるステップを含むことができる。さらに、デバイスが自分に割り当てられたMACアドレスを解放したならば、そのMACアドレスを、MACアドレス割当てテーブルに加え、使用中MACアドレス・テーブルから除去することができ、あるいは、該MACアドレスを利用可能として標識することが可能である。当然のことながら、これら別個の割当てテーブルの両方、および標識はいくつかのさらなる実施形態において使用することができる。
別のアプローチにおいて、この標識するステップには、MACアドレス割当てテーブル中のMACアドレスに関連付けられた表示ビットを反転させるステップ、あるいは、当該技術分野で知られた、テーブル中のエントリを標識するための任意の他の方法を含めることが可能である。
オペレーション506で、要求に対しMACアドレスを添えて応答がされる。イーサネット(R)パケットなど、MACアドレスを含む任意の応答法が使用可能である。かかる一つの状況において、この要求は送信元アドレスを有するMAAPパケットを含み得る。この場合、応答には、受信されたMAAPパケットの宛先アドレスを該受信MAAPパケットの送信元アドレスに変えるように変更された受信MAAPパケットを含めることができる。このように、送信元アドレスと宛先アドレスとの間の簡単な切替えを使って、要求と応答とに同じMAAPパケットを用いることができる。
一実施形態によれば、立ち上げ時に、D−MAC=01:00:5e:00:00:xx、S−MAC=NIC MACアドレス、およびEtherType=0xFFFFまたは0xXXXXを用いてパケットを形成することが可能で、XXまたはxxはまだ定義されていないが、設定時に、ネットワーク管理者が決定してホスト・オペレーティング・システムに与えることが可能である。したがって、これらの値は、両方のエントリに対して周知の任意の値とすればよい。
次いで、イーサネット(R)パケット(好ましくはMAAPパケット)はMAASに接続されたNICポート上から送信され、このポートはスイッチング・デバイスの一部であってよい。次に、スイッチング・デバイスが、該スイッチング・デバイスのポートの一つでパケットを受信する。これに応じ、MAAP要求パケットが送信元ポート情報と共にローカルMAASに送信される。この点で、ローカルMAASは、アドレス割当てアルゴリズムを実行して、ホスト・オペレーティング・システムに対するMACアドレスH−MACを決定する。
一つのアプローチにおいて、アドレス割当てアルゴリズムは、制御ソフトウェアを使い、MAAP要求が到着してそのポートを通ってMAASに至ったスイッチ・ポートの番号「p」を抽出するステップを含むことができる。次いで、MACアドレス割当てテーブルを貫いて構文解析が行われ、第一利用可能(未割り当ての)MACアドレスが決められる。次いで、このアドレスがMAAPパケットに加えられ、該アドレスは利用不可(割当て済み)として標識される。
次に、MAASは、該MAAPパケットにH−MACアドレスを書き込み、宛先アドレスを、当初のMAAP要求の当初の送信元アドレスに変えることによってMAAPパケットを変更する。このパケットは送信元ポートに送られる。要求したホスト・オペレーティング・システムは、所定の待ち時間(t_wait)以内に応答MAAPパケットを受信し、以降の全ての通信に対する自分の送信元MACアドレスとして、H−MACの使用を開始する。
MAAP応答が待ち時間(t_wait)以内に到着しない場合、ホスト・オペレーティング・システムは、このプロセスを2回以上再試行することができる。この再試行においても応答が受信されない場合、ホスト・オペレーティング・システムは、以降の全て通信に対する自分の送信元MACアドレスとして、事前プログラムされたNIC MACアドレスの使用を開始する。
大部分の実施形態によれば、本明細書に記載の方法およびシステムは、全てのホスト、デバイス、またはサーバに同じサブネットのIPアドレスが割り当てられている、フラット・レイヤ2ネットワーク上で初期化することができる。
次いで図6を参照すると、一実施形態による、MACアドレスを取得するための方法600のフローチャートが示されている。方法600は、様々な実施形態において、なかんずく、図1〜4に示された環境のいずれかにおいて本発明に従って実施することができる。当然のことながら、当業者なら本説明を読めば分かるように、図6に特定的に記載されたオペレーションよりも多いまたは少ないオペレーションを方法600に含めることが可能である。
方法600のステップの各々は、オペレーティング環境の任意の適切なコンポーネントによって実施することができる。例えば、一実施形態において、方法600は、スイッチング・デバイスもしくはスイッチング・デバイスのMAASまたはその両方で、部分的にまたは全体的に実施することが可能である。
図6に示されるように、方法600は、オペレーション602から開始でき、MACアドレスに対する要求がMAASに送信される。一つのアプローチにおいて、この要求はMAAPパケットとすることができる。
オペレーション604で、要求に対する応答が待ち受けられる。要求に対する応答が、所定の長さの時間の間に受信されない場合、他の処置が取られる。
オペレーション606で、要求に対する応答が所定の長さの時間の間に受信された場合、そのMACアドレスが使用される。応答はMACアドレスを含み、その受信後、そのMACアドレスは当初に要求を送信したデバイスもしくはそのデバイスに連結された何らかの他のデバイスによって用いられる。
一実施形態において、要求に対する応答が所定の長さの時間の間に受信されない場合、MACアドレスに対する要求を送信したデバイスは、事前プログラムされたMACアドレスを使用することができる。一つのアプローチによれば、このMACアドレスは、製造時にデバイス中に事前プログラムされる。
本明細書で提示する諸実施形態およびアプローチによれば、ネットワーク中の各デバイスが、スイッチング・デバイスの宛先ポートに対応するMACアドレスを有するので、ルックアップ・テーブルを使わないでスイッチング決定を行うことが可能である。さらに、このことは、極めて高速のスイッチング・アルゴリズムを提供し、非常に短い待ち時間を提供する。これは、スイッチング・ロジックを単純化することによって、さらに大幅にカットスルー待ち時間を削減しコストを低減する。
上記で様々な実施形態を説明してきたが、当然のことながら、これらは例示目的のためであり限定を示すものではない。しかして、本発明の実施形態の幅および範囲は、前述した例示的な実施形態のいずれにも限定されるべきでなく、添付の特許請求の範囲およびこれらと等価なものによってだけ定義さるべきものである。

Claims (25)

  1. 少なくとも一つのプロセッサを含むシステムであって、前記少なくとも一つのプロセッサが、
    ポートで、デバイスに対しメディア・アクセス制御(MAC)アドレスを割り当てる要求を受信するよう構成されたロジックと、
    少なくとも部分的に前記ポートに基づいて前記デバイスに割り当てるMACアドレスを決めるよう構成されたロジックと、
    前記MACアドレスを添えて前記要求に対する応答を送信するよう構成されたロジックと、
    を含む、システム。
  2. MACアドレス割当てテーブルを生成するよう構成されたロジックをさらに含み、
    前記MACアドレス割当てテーブルは複数のハッシュ値を含み、各ハッシュ値は一つのポートと複数のMACアドレスとに関連付けられており、前記複数のMACアドレスのどの一つもハッシュ化アルゴリズムを適用することによって、前記関連付けられたハッシュ値が得られる、
    請求項1に記載のシステム。
  3. 前記デバイスに割り当てる前記MACアドレスを決めるよう構成された前記ロジックは、前記MACアドレス割当てテーブルから前記MACアドレスを選択するよう構成されたロジックを含み、前記選択されたMACアドレスに前記ハッシュ化アルゴリズムを適用することによって、前記デバイスに連結された前記ポートに関連付けられたハッシュ値が得られる、請求項2に記載のシステム。
  4. 前記MACアドレス割当てテーブルから前記MACアドレスを選択するよう構成された前記ロジックは、複数の利用可能なMACアドレスから、次の利用可能なMACアドレスを連続的にまたはランダムに選択するよう構成されたロジックを含み、利用可能なMACアドレスは現在どのデバイスにも割り当てられていない、請求項3に記載のシステム。
  5. 前記MACアドレス割当てテーブルから前記MACアドレスを選択したならば、前記MACアドレスを前記MACアドレス割当てテーブルから除去し、前記MACアドレスを使用中MACアドレス・テーブルに加えることによって、または前記MACアドレス割当てテーブル中の前記MACアドレスに関連付けられた表示ビットを反転することによって、前記MACアドレスを利用不可として標識するよう構成されたロジックと、
    前記デバイスが自分に割り当てられた前記MACアドレスを解放したならば、前記MACアドレスを前記MACアドレス割当てテーブルに加え、前記MACアドレスを前記使用中MACアドレス・テーブルから除去することによって、または前記MACアドレス割当てテーブル中の前記MACアドレスに関連付けられた前記表示ビットを反転することによって、前記MACアドレスを利用可能として標識するよう構成されたロジックと、
    をさらに含む、請求項4に記載のシステム。
  6. 前記ハッシュ化アルゴリズムは、H(DM)=(DM[0]*1 XOR DM[1]*2 XOR DM[2]*3 XOR DM[3]*4 XOR DM[4]*5 XOR DM[5]*6)MOD Pであり、前記式中の、DMは前記MACアドレスであり、H(DM)は前記MACアドレスDMの全6バイトの前記ハッシュ値であり、Pは前記システムのポートの合計数である、請求項3に記載のシステム。
  7. 前記MACアドレス割当てテーブルが、前記少なくとも一つのプロセッサの始動プロセスの過程で生成され、前記ハッシュ化アルゴリズムは、H(DM)=(DM[0]*1 XOR DM[1]*2 ・・・ XOR DM[N−1]*N) MOD Pを含み、前記式中の、DMは前記MACアドレスであり、H(DM)は前記MACアドレスDMの前記ハッシュ値であり、DM[N−1]は、Nバイト数を有する前記MACアドレスDMの或るバイトであり、Pはポートの合計数である、請求項2に記載のシステム。
  8. 前記要求が、送信元アドレスを有するMACアドレス取得プロトコル(MAAP)パケットを含み、前記応答が、前記受信されたMAAPパケットの宛先アドレスを前記受信されたMAAPパケットの送信元アドレスに変えるように変更された前記受信MAAPパケットを含む、請求項1に記載のシステム。
  9. メディア・アクセス制御(MAC)アドレスを割り当てるためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、具現化されたコンピュータ可読プログラム・コードを有するコンピュータ可読ストレージ媒体を含み、前記コンピュータ可読プログラム・コードは、
    ルックアップ・テーブルを使わずに、デバイスに割り当てるMACアドレスを決めるよう構成されたコンピュータ可読プログラム・コードと、
    前記MACアドレスを前記デバイスに送信するよう構成されたコンピュータ可読プログラム・コードと、
    を含む、コンピュータ・プログラム製品。
  10. MACアドレス割当てテーブルを生成するよう構成されたコンピュータ可読プログラム・コードであって、前記MACアドレス割当てテーブルは複数のハッシュ値を含み、各ハッシュ値は複数のMACアドレスに対応している各ポートに関連付けられており、前記複数のMACアドレスのどの一つもハッシュ化アルゴリズムを適用することによって前記関連付けられたハッシュ値が得られる、前記コンピュータ可読プログラム・コードと、
    前記MACアドレス割当てテーブル中の前記複数のMACアドレスから前記MACアドレスを選択するよう構成されたコンピュータ可読プログラム・コードであって、前記選択されたMACアドレスに前記ハッシュ化アルゴリズムを適用することによって、前記デバイスに連結されたポートに関連付けられたハッシュ値が得られる、前記コンピュータ可読プログラム・コードと、
    をさらに含む、請求項9に記載のコンピュータ・プログラム製品。
  11. 前記MACアドレス割当てテーブルから前記MACアドレスを選択したならば、前記MACアドレスを利用不可として標識するよう構成されたコンピュータ可読プログラム・コード、または前記MACアドレスを前記MACアドレス割当てテーブルから除去し、前記MACアドレスを使用中MACアドレス・テーブルに加えるよう構成されたコンピュータ可読プログラム・コードをさらに含み、利用不可のMACアドレスは現在或るデバイスに割り当てられている、請求項10に記載のコンピュータ・プログラム製品。
  12. 前記デバイスが自分に割り当てられた前記MACアドレスを解放したならば、
    前記MACアドレスを前記MACアドレス割当てテーブルに加え、前記MACアドレスを前記使用中MACアドレス・テーブルから除去するよう構成されたコンピュータ可読プログラム・コード、または、
    前記MACアドレスを利用可能として標識するよう構成されたコンピュータ可読プログラム・コード、
    をさらに含む、請求項11に記載のコンピュータ・プログラム製品。
  13. 前記MACアドレスを利用可能として標識するよう構成された前記コンピュータ可読プログラム・コードが、前記MACアドレス割当てテーブル中の前記MACアドレスに関連付けられた表示ビットを反転するよう構成されたロジックを含む、請求項12に記載のコンピュータ・プログラム製品。
  14. 前記ハッシュ化アルゴリズムは、H(DM)=(DM[0]*1 XOR DM[1]*2 XOR DM[2]*3 XOR DM[3]*4 XOR DM[4]*5 XOR DM[5]*6)MOD Pであり、前記式中の、DMは前記MACアドレスであり、H(DM)は前記MACアドレスDMの全6バイトの前記ハッシュ値であり、Pはポートの合計数である、請求項10に記載のコンピュータ・プログラム製品。
  15. 前記MACアドレス割当てテーブルが始動プロセスの過程で生成され、前記ハッシュ化アルゴリズムは、H(DM)=(DM[0]*1 XOR DM[1]*2 ・・・ XOR DM[N−1]*N) MOD Pを含み、前記式中の、DMは前記MACアドレスであり、H(DM)は前記MACアドレスDMの前記ハッシュ値であり、DM[N−1]は、Nバイト数を有する前記MACアドレスDMの或るバイトであり、Pはポートの合計数である、
    請求項10に記載のコンピュータ・プログラム製品。
  16. メディア・アクセス制御(MAC)アドレスを割り当てる方法であって、前記方法は、
    スイッチング・デバイスのポートで、デバイスからのMACアドレスに対する要求を受信するステップと、
    少なくとも部分的に前記ポートに基づいて、前記デバイスに割り当てるMACアドレスを決めるステップと、
    前記MACアドレスを添えて前記要求に応答するステップと、
    を含む方法。
  17. MACアドレス割当てテーブルを生成するステップであって、前記MACアドレス割当てテーブルは複数のハッシュ値を含み、各ハッシュ値は複数のMACアドレスに対応している各ポートに関連付けられており、前記複数のMACアドレスのどの一つもハッシュ化アルゴリズムを適用することによって前記関連付けられたハッシュ値が得られる、前記生成するステップをさらに含む、請求項16に記載の方法。
  18. MACアドレス割当てサーバ(MAAS)は、前記MACアドレス割当てテーブルを構築するための入力ファイルから前記MAASに提供された、MACアドレスの所定のセットを用い、前記MAASは、MACアドレス割当てプロトコル(MAAP)パケットが受信されるのに応じて、前記MACアドレス割当てテーブルから、前記デバイスに割り当てる前記MACアドレスを決める、請求項17に記載の方法。
  19. 前記デバイスに割り当てる前記MACアドレスを決めるステップは、前記MACアドレス割当てテーブルから前記MACアドレスを選択するステップを含み、前記選択されたMACアドレスに前記ハッシュ化アルゴリズムを適用することによって、前記デバイスに連結された前記スイッチング・デバイスの前記ポートに関連付けられたハッシュ値が得られる、請求項17に記載の方法。
  20. 前記MACアドレス割当てテーブルから前記MACアドレスを選択するステップは、複数の利用可能なMACアドレスから、次の利用可能なMACアドレスを連続的にまたはランダムに選択するステップを含み、利用可能なMACアドレスは現在どのデバイスにも割り当てられていないMACアドレスである、請求項18に記載の方法。
  21. 前記MACアドレス割当てテーブルから前記MACアドレスを選択したならば、前記MACアドレスを利用不可として標識するステップ、または前記MACアドレスを前記MACアドレス割当てテーブルから除去し、前記MACアドレスを使用中MACアドレス・テーブルに加えるステップと、
    前記デバイスが自分に割り当てられた前記MACアドレスを解放したならば、前記MACアドレスを前記MACアドレス割当てテーブルに加え、前記MACアドレスを前記使用中MACアドレス・テーブルから除去するステップ、または前記MACアドレスを利用可能として標識するステップと、
    をさらに含む、請求項18に記載の方法。
  22. 前記ハッシュ化アルゴリズムは、H(DM)=(DM[0]*1 XOR DM[1]*2 XOR DM[2]*3 XOR DM[3]*4 XOR DM[4]*5 XOR DM[5]*6)MOD Pであり、前記式中の、DMは前記MACアドレスであり、H(DM)は前記MACアドレスDMの全6バイトの前記ハッシュ値であり、Pは前記スイッチング・デバイスのポートの合計数である、請求項18に記載の方法。
  23. 前記MACアドレス割当てテーブルが前記スイッチング・デバイスの始動プロセスの過程で生成され、前記ハッシュ化アルゴリズムは、H(DM)=(DM[0]*1 XOR DM[1]*2 ・・・ XOR DM[N−1]*N) MOD Pを含み、前記式中の、DMは前記MACアドレスであり、H(DM)は前記MACアドレスDMの前記ハッシュ値であり、DM[N−1]は、Nバイト数を有する前記MACアドレスDMの或るバイトであり、Pはポートの合計数である、請求項17に記載の方法。
  24. メディア・アクセス制御(MAC)アドレスを取得する方法であって、前記方法は、
    MACアドレスに対する要求をMACアドレス割当てサーバ(MAAS)に送信するステップと、
    所定の長さの時間、前記要求に対する応答の受信を待つステップであって、前記応答は前記MACアドレスを含む、前記待つステップと、
    前記所定の長さの時間内に前記要求に対する前記応答が受信された場合、前記MACアドレスを使用するステップと、
    を含む方法。
  25. 前記所定の長さの時間内に前記応答が受信されない場合、事前プログラムされたMACアドレスを用いるステップをさらに含む、請求項24に記載の方法。
JP2015503962A 2012-04-03 2013-03-19 イーサネット(r)スイッチのための、ルックアップ・テーブルを使わない、レイヤ2でのパケット交換 Active JP6270816B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/438,794 2012-04-03
US13/438,794 US8861401B2 (en) 2012-04-03 2012-04-03 Layer 2 packet switching without look-up table for ethernet switches
PCT/IB2013/052168 WO2013150404A1 (en) 2012-04-03 2013-03-19 Layer 2 packet switching without look-up table for ethernet switches

Publications (2)

Publication Number Publication Date
JP2015518317A true JP2015518317A (ja) 2015-06-25
JP6270816B2 JP6270816B2 (ja) 2018-01-31

Family

ID=49234910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015503962A Active JP6270816B2 (ja) 2012-04-03 2013-03-19 イーサネット(r)スイッチのための、ルックアップ・テーブルを使わない、レイヤ2でのパケット交換

Country Status (7)

Country Link
US (3) US8861401B2 (ja)
JP (1) JP6270816B2 (ja)
KR (1) KR20140107173A (ja)
CN (1) CN104221331B (ja)
DE (1) DE112013001904B4 (ja)
GB (1) GB2515442B (ja)
WO (1) WO2013150404A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319335B1 (en) * 2010-12-07 2016-04-19 Pluribus Networks, Inc. Distributed operating system for a layer 2 fabric
US8861401B2 (en) 2012-04-03 2014-10-14 International Business Machines Corporation Layer 2 packet switching without look-up table for ethernet switches
US8902896B2 (en) 2012-04-16 2014-12-02 International Business Machines Corporation Packet switching without look-up table for ethernet switches
US9137173B2 (en) 2012-06-19 2015-09-15 Advanced Micro Devices, Inc. Devices and methods for interconnecting server nodes
US8930595B2 (en) 2012-06-21 2015-01-06 Advanced Micro Devices, Inc. Memory switch for interconnecting server nodes
US9253287B2 (en) 2012-08-20 2016-02-02 Advanced Micro Devices, Inc. Speculation based approach for reliable message communications
US20140068088A1 (en) * 2012-09-04 2014-03-06 Advanced Micro Devices, Inc. Systems and methods for processing media access control (mac) addresses
CN105847191B (zh) * 2016-03-23 2019-03-01 华为技术有限公司 一种基于重排序算法的交换设备
CN108848202B (zh) * 2018-06-21 2021-05-04 Oppo(重庆)智能科技有限公司 电子装置、数据传输方法及相关产品
US11861595B2 (en) * 2018-12-19 2024-01-02 Jpmorgan Chase Bank , N.A. Systems and methods for generation and use of a device wallet identifier
US11050746B2 (en) * 2019-01-29 2021-06-29 Cisco Technology, Inc. Media access control (MAC) address anonymization based on allocations by network controller elements
CN113595812B (zh) * 2021-06-25 2023-05-16 深圳市联洲国际技术有限公司 一种客户端识别方法、装置、存储介质及网络设备
CN113727222B (zh) * 2021-08-16 2023-11-03 烽火通信科技股份有限公司 一种pon系统中mac地址漂移的检测方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005045442A (ja) * 2003-07-25 2005-02-17 Hitachi Cable Ltd 宛先判定回路
JP2010088055A (ja) * 2008-10-02 2010-04-15 Fujitsu Ltd 通信システム、移動機、端末管理装置および通信方法

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7466703B1 (en) 1998-05-01 2008-12-16 Alcatel-Lucent Usa Inc. Scalable high speed router apparatus
GB9810843D0 (en) 1998-05-21 1998-07-22 3Com Technologies Ltd Method for storing data in network devices
US6876653B2 (en) 1998-07-08 2005-04-05 Broadcom Corporation Fast flexible filter processor based architecture for a network device
DE60031515T2 (de) 1999-03-17 2007-08-23 Broadcom Corp., Irvine Netzwerkvermittlung
US6587462B2 (en) 2001-02-16 2003-07-01 Dunti Corporation Address mapping mechanism enabling multi-domain addressing in communication networks
US7778259B1 (en) 1999-05-14 2010-08-17 Dunti Llc Network packet transmission mechanism
US6985431B1 (en) 1999-08-27 2006-01-10 International Business Machines Corporation Network switch and components and method of operation
US6690667B1 (en) * 1999-11-30 2004-02-10 Intel Corporation Switch with adaptive address lookup hashing scheme
US6804232B1 (en) * 2000-03-27 2004-10-12 Bbnt Solutions Llc Personal area network with automatic attachment and detachment
CA2337674A1 (en) 2000-04-20 2001-10-20 International Business Machines Corporation Switching arrangement and method
KR20020017265A (ko) 2000-08-29 2002-03-07 구자홍 동일 아이피 서브넷상에 구성된 서로 다른 가상랜 사이의통신방법
JP4489308B2 (ja) 2001-01-05 2010-06-23 富士通株式会社 パケットスイッチ
US7529851B1 (en) * 2002-02-08 2009-05-05 Cisco Technology, Inc. Method and apparatus for MAC address assignment
GB0227048D0 (en) 2002-11-20 2002-12-24 3Com Corp Network units for use in and organisation of cascade systems
US7069312B2 (en) * 2002-12-06 2006-06-27 Microsoft Corporation Network location signature for disambiguating multicast messages in dual-IP stack and/or multi-homed network environments
JP4014155B2 (ja) * 2003-01-27 2007-11-28 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置及び方法、プログラム、データ構造、並びにコンピュータ読取り可能な記録媒体
US20040170181A1 (en) 2003-02-27 2004-09-02 Padcom, Inc. Prioritized alternate port routing
US20040213278A1 (en) * 2003-04-24 2004-10-28 Broadcom Corporation System, method, and computer program product for in-place, lightweight Ack promotion in a cable modem environment
JP4409991B2 (ja) 2004-03-01 2010-02-03 富士通株式会社 リンクアグリゲーションを用いた伝送制御システム
US7433356B2 (en) * 2004-05-13 2008-10-07 International Business Machines Corporation Methods and apparatus for creating addresses
US7877519B2 (en) 2004-10-18 2011-01-25 Intel Corporation Selecting one of a plurality of adapters to use to transmit a packet
JP4704043B2 (ja) 2005-01-07 2011-06-15 富士通株式会社 移動処理プログラム、情報処理装置、コンピュータシステム及び移動処理プログラムを格納したコンピュータ読み取り可能な記録媒体
JP4816161B2 (ja) * 2006-03-10 2011-11-16 日本電気株式会社 無線通信装置、macアドレス管理システム、無線通信方法及び無線通信プログラム
US7710862B2 (en) * 2006-08-30 2010-05-04 Hewlett-Packard Development Company, L.P. Method and system of assigning media access control (MAC) addresses across teamed communication ports
JP4918862B2 (ja) 2007-01-05 2012-04-18 富士通株式会社 リンクトレースフレーム転送プログラム、リンクトレースフレーム転送装置、リンクトレースフレーム転送方法
US8144709B2 (en) 2007-04-06 2012-03-27 International Business Machines Corporation Method, system and computer processing an IP packet, routing a structured data carrier, preventing broadcast storms, load-balancing and converting a full broadcast IP packet
US8089967B2 (en) 2007-04-06 2012-01-03 International Business Machines Corporation Modification of a switching table of an internet protocol switch
TWI335085B (en) 2007-04-19 2010-12-21 Ind Tech Res Inst Bifacial thin film solar cell and method for fabricating the same
US7995465B2 (en) 2007-05-18 2011-08-09 Nvidia Corporation Intelligent load balancing and failover of network traffic
US8553537B2 (en) 2007-11-09 2013-10-08 International Business Machines Corporation Session-less load balancing of client traffic across servers in a server group
CN101252530B (zh) * 2008-03-28 2010-09-29 中兴通讯股份有限公司 报文转发方法、系统以及交换设备
CN101640943B (zh) 2008-07-31 2012-11-07 国际商业机器公司 用于无线局域网的网络层切换方法及相应无线接入点设备
JP5131239B2 (ja) * 2009-03-31 2013-01-30 富士通株式会社 Ipアドレス割当制御プログラム、ipアドレス割当制御装置およびipアドレス割当制御方法
US8259726B2 (en) 2009-05-28 2012-09-04 Force10 Networks, Inc. Method and apparatus for forwarding table reduction
TWI491300B (zh) * 2009-06-10 2015-07-01 皇家飛利浦電子股份有限公司 無線網路系統、使用於一無線網路系統中之加入器件、用於委任一無線網路系統之方法及電腦程式產品
US20100322086A1 (en) 2009-06-17 2010-12-23 Motorola, Inc. Enabling buffer status reports in a communication system
US8788570B2 (en) 2009-06-22 2014-07-22 Citrix Systems, Inc. Systems and methods for retaining source IP in a load balancing multi-core environment
US8953603B2 (en) 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US8625429B2 (en) 2010-12-17 2014-01-07 Jakub Schmidtke Scheduling data over multiple network interfaces
US8446910B2 (en) * 2011-04-14 2013-05-21 Cisco Technology, Inc. Methods for even hash distribution for port channel with a large number of ports
US8861401B2 (en) 2012-04-03 2014-10-14 International Business Machines Corporation Layer 2 packet switching without look-up table for ethernet switches
US8902896B2 (en) 2012-04-16 2014-12-02 International Business Machines Corporation Packet switching without look-up table for ethernet switches

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005045442A (ja) * 2003-07-25 2005-02-17 Hitachi Cable Ltd 宛先判定回路
JP2010088055A (ja) * 2008-10-02 2010-04-15 Fujitsu Ltd 通信システム、移動機、端末管理装置および通信方法

Also Published As

Publication number Publication date
CN104221331A (zh) 2014-12-17
CN104221331B (zh) 2017-10-24
US9450868B2 (en) 2016-09-20
GB2515442B (en) 2018-12-12
WO2013150404A1 (en) 2013-10-10
US8861401B2 (en) 2014-10-14
GB2515442A (en) 2014-12-24
DE112013001904B4 (de) 2021-12-23
KR20140107173A (ko) 2014-09-04
US10148569B2 (en) 2018-12-04
JP6270816B2 (ja) 2018-01-31
US20140334498A1 (en) 2014-11-13
US20130258899A1 (en) 2013-10-03
DE112013001904T5 (de) 2014-12-18
US20130259048A1 (en) 2013-10-03
GB201419383D0 (en) 2014-12-17

Similar Documents

Publication Publication Date Title
JP6270816B2 (ja) イーサネット(r)スイッチのための、ルックアップ・テーブルを使わない、レイヤ2でのパケット交換
US8819211B2 (en) Distributed policy service
US9537766B2 (en) Packet switching without look-up table for ethernet switches
US8214528B2 (en) Address identifier scaling in converged networks
JP6014254B2 (ja) 通信の方法及びシステム
US8830870B2 (en) Network adapter hardware state migration discovery in a stateful environment
CN106533890B (zh) 一种报文处理方法、装置及系统
US20160337231A1 (en) Software defined network (sdn) switch clusters having layer-3 distributed router functionality
US20120297384A1 (en) Virtual Managed Network
US10701151B2 (en) Methods and systems for accessing virtual storage servers in a clustered environment
US20140044130A1 (en) Avoiding unknown unicast floods resulting from mac address table overflows
US9398121B1 (en) Selecting among virtual networking protocols
US10291709B2 (en) Protocol independent storage discovery and enablement
US10931581B2 (en) MAC learning in a multiple virtual switch environment
US10764330B2 (en) LAN/SAN network security management
US7577735B1 (en) Transparent mode
WO2024001549A1 (zh) 地址配置方法和电子设备
US9853885B1 (en) Using packet duplication in a packet-switched network to increase reliability

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170728

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171226

R150 Certificate of patent or registration of utility model

Ref document number: 6270816

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150