JP5888036B2 - 中継装置、情報処理システム、中継方法および中継プログラム - Google Patents

中継装置、情報処理システム、中継方法および中継プログラム Download PDF

Info

Publication number
JP5888036B2
JP5888036B2 JP2012061204A JP2012061204A JP5888036B2 JP 5888036 B2 JP5888036 B2 JP 5888036B2 JP 2012061204 A JP2012061204 A JP 2012061204A JP 2012061204 A JP2012061204 A JP 2012061204A JP 5888036 B2 JP5888036 B2 JP 5888036B2
Authority
JP
Japan
Prior art keywords
packet
port
received
identifier
ports
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
JP2012061204A
Other languages
English (en)
Other versions
JP2013197750A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012061204A priority Critical patent/JP5888036B2/ja
Priority to US13/754,369 priority patent/US9197585B2/en
Publication of JP2013197750A publication Critical patent/JP2013197750A/ja
Application granted granted Critical
Publication of JP5888036B2 publication Critical patent/JP5888036B2/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
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports

Landscapes

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

Description

本発明は、中継装置、情報処理システム、中継方法および中継プログラムに関する。
従来、受信したパケットの送信元のMACアドレスと、パケットを受信したポートとを対応付けてFDB(Forwarding Database)に登録し、FDBに基づいて、パケットを送出するポートを選択する中継装置が知られている。
例えば、中継装置は、パケットを受信すると、パケットの送信元のMACアドレスとパケットを受信したポートとを対応付けてFDBに登録する。また、中継装置は、受信したパケットの送信先のMACアドレスがFDBに登録されているか否かを判別する。そして、中継装置は、送信先のMACアドレスがFDBに登録されている場合は、対応付けて登録されたポートからパケットを送出する。
また、中継装置は、受信したパケットの送信先のMACアドレスがFDBに登録されていない場合には、パケットを受信したポート以外の全てのポートから所定の順にパケットを送出するフラッディングを行う。そして、中継装置は、他の中継装置がフラッディングしたパケットを複数のポートから受信した場合には、パケットを最初に受信したポートと、受信したパケットの送信元のMACアドレスとを対応付けてFDBに登録する。
以下、中継装置の一例として、FDBを用いてパケットの送出を行うスイッチについて説明する。図11は、従来のスイッチの一例を説明するための図である。図11に示す例では、サーバ38〜38bと、サーバ38c〜38eとが送受信するパケットを複数のスイッチ30〜37が中継する。
また、各スイッチ30〜37は、送信先のMACアドレスがFDBに登録されていないパケットを受信した場合には、フラッディングを行う。そして、各スイッチ30〜37は、他の中継装置がフラッディングしたパケットを最初に受信したポートと送信元のMACアドレスとを対応付けてFDBに登録することで、最も遅延が少ない経路を学習する。
図12は、従来のスイッチが実行するフラッディング処理を説明するための図である。図12に示す例では、スイッチ30は、複数のポート39〜42とMAC処理部43とを有する。例えば、MAC処理部43は、ポート39を介して、サーバ38からパケットを受信する。
すると、MAC処理部43は、受信したパケットの送信先のMACアドレスがFDBに登録されているか否かを判別し、登録されていないと判別した場合は、フラッディングを行う。例えば、スイッチ30は、ポート40、ポート41、ポート42の順番で、パケットを送出する。
すると、図11に示す例では、各スイッチ31〜36は、スイッチ30が送出したパケットのフラッディングをそれぞれ行うと共に、パケットを最初に受信したポートとサーバ38とを対応付けてFDBに登録する。この結果、各スイッチ30〜37は、サーバ38を宛先とするパケットを転送する経路のうち、最も遅延が少ない経路を学習する。
その後、各スイッチ30〜37は、サーバ38を宛先とするパケットを受信した場合には、サーバ38のMACアドレスと対応付けたポートからパケットを送出する。すなわち、各スイッチ30〜37は、サーバ38を宛先とするパケットを、最も遅延が少ない経路で転送する。
特開2008−141614号公報
しかしながら、所定の順序でフラッディングを行う技術では、各スイッチは、送信先のMACアドレスがFDBに登録されていないパケットを受信する度に、各ポートから所定の順序でパケットを送出する。このため、転送遅延が同程度となる経路が複数存在するにも係らず、パケットの転送経路が偏ってしまうという問題がある。
例えば、図11に示す例では、スイッチ30とスイッチ37との間には、ホップ数が同一となる3つの経路が存在する。詳細には、スイッチ30とスイッチ37との間には、スイッチ31、スイッチ32を経由する経路、スイッチ33、スイッチ34を経由する経路、スイッチ35、スイッチ36を経由する経路が存在する。ここで、各スイッチ間でパケットを送受信する際の遅延は同程度である。
スイッチ30は、ポート39を介して、送信先のMACアドレスがFDBに登録されていないパケットを受信する度に、ポート40、ポート41、ポート42の順にパケットを送信する。すると、スイッチ31は、スイッチ33、および、スイッチ35よりも先にパケットを受信し、受信したパケットをスイッチ32に送信する。また、スイッチ32は、スイッチ34、および、スイッチ36よりも先にスイッチ37にパケットを送信する。
この結果、スイッチ37は、転送遅延が同程度の経路が複数存在するにも係らず、スイッチ31、スイッチ32を経由したパケットを最初に受信する。このため、各スイッチ30〜37は、遅延がほぼ同じとなる複数の経路が存在するにも係らず、送信先のMACアドレスがFDBに登録されていないパケットを転送する度に、スイッチ32とスイッチ31とを経由する経路を学習してしまう。
1つの側面では、本発明は、パケットを送受信する経路の偏りを軽減することを目的とする。
1つの側面では、情報処理装置が送受信するパケットを中継する中継装置である。また、中継装置は、パケットを送受信する複数のポートを有する。また、中継装置は、情報処理装置を示す識別子と情報処理装置に送信するパケットを送出するポートとを対応付けて記憶する。そして、中継装置は、いずれかのポートを介してパケットを受信した場合には、受信したパケットの送信先を示す識別子を記憶しているか否かを判別する。そして中継装置は、識別子を記憶していると判別した場合は、識別子と対応付けて記憶するポートからパケットを送出する。また、中継装置は、識別子を記憶していないと判別した場合には、パケットを受信したポート以外のポートから、対応付けて記憶された識別子の数が少ない順番で選択されるポートからパケットを送出する。
1実施形態では、パケットを送受信する経路の偏りを軽減できる。
図1は、実施例1に係る情報処理システムを説明するための図である。 図2は、実施例1に係るスイッチの機能構成を説明するための図である。 図3は、実施例1に係るFDBの一例を説明するための図である。 図4は、実施例1に係る統計情報の一例を説明するための図である。 図5は、実施例1に係る先着学習テーブルの一例を説明するためのである。 図6は、実施例1に係るスイッチが実行するフラッディング処理を説明するための図である。 図7は、実施例1に係るスイッチによる経路分散の一例を説明するための図である。 図8は、実施例1に係るスイッチが実行する処理の流れを説明するためのフローチャートである。 図9は、多段階構成のファットツリーによる情報処理システムの一例を説明するための図である。 図10は、中継プログラムを実行するコンピュータの一例を説明するための図である。 図11は、従来のスイッチの一例を説明するための図である。 図12は、従来のスイッチが実行するフラッディング処理を説明するための図である。
以下に添付図面を参照して本願に係る中継装置、情報処理システム、中継方法および中継プログラムについて説明する。
以下の実施例1では、図を用いて、情報処理システムの一例を説明する。図1は、実施例1に係る情報処理システムを説明するための図である。なお、図1に示す情報処理システムは、少なくとも、データセンタ等に設置された情報処理システムであり、多段階に接続された複数のスイッチが、複数のサーバ間でやり取りされるパケットの中継を行うシステムである。
図1に示すように、情報処理システム1は、複数のサーバ2〜5、複数のスイッチ10〜10iを有する。なお、図1に示す例では、サーバ2〜5以外のサーバについては、図示を省略したが、情報処理システム1は、任意の数のサーバを設置可能である。
図1に示す例では、スイッチ10〜10fは、サーバ2〜5と接続されるスイッチである。また、スイッチ10g〜10iは、各スイッチ10〜10fと接続され、各スイッチ10〜10fが送受信するパケットの中継を行う上位のスイッチである。すなわち、図1に示す例では、情報処理システム1は、2段のFAT−Tree型に接続した複数のスイッチ10〜10hが、サーバ2〜5が送受信するパケットの中継を行うシステムである。
サーバ2は、他のサーバ3〜5との間でパケットの送受信を行う情報処理装置である。また、サーバ2には、サーバ2を一意に示す識別子が付与されており、サーバ2を一意に示す識別子を用いて、パケットの送受信を行う。
例えば、サーバ2は、他のサーバ3〜5とパケットの送受信を行うためのNIC(Network Interface Card)を有する。NICには、NICを一意に示すMAC(Media Access Control)アドレスが付与されている。サーバ2は、パケットを送信する場合には、サーバ2が有するNICのMACアドレスを送信元アドレスとして格納し、パケットの送信先のサーバが有するNICのMACアドレスを送信先アドレスとして格納する。そして、サーバ2は、送信対象となるデータをパケットに格納し、パケットをスイッチ10に送信する。なお、サーバ3〜5は、サーバ2と同様の機能を発揮するものとして、説明を省略する。
次に、図2を用いて、情報処理システム1が有するスイッチ10が実行する処理について説明する。なお、以下の説明では、スイッチ10が実行する処理を説明し、スイッチ10a〜10iについては、スイッチ10と同様の機能を発揮するものとして、説明を省略する。
図2は、実施例1に係るスイッチの機能構成を説明するための図である。図2に示す例では、スイッチ2は、接続部11、MAC処理部12、パケット処理部13、メモリ14、CPU(Central Processing Unit)15を有する。また、接続部11は、複数のポート16、17、複数の物理層処理部18、19を有する。
また、MAC処理部12は、MACフレーム処理部20を有する。また、パケット処理部13は、パケット転送処理部21、MAC学習処理部22、先着学習処理部23、経路分散処理部24を有する。また、メモリ14は、FDB(Forwarding Database)26、統計情報25、先着学習テーブル27を記憶する。
まず、図3〜5を用いて、メモリ14が記憶するFDB26、統計情報25、先着学習テーブル27について説明する。図3は、実施例1に係るFDBを説明するための図である。図3に示す例では、FDB26は、ポート番号と、MACアドレスとを対応付けたエントリを複数有する。
ここで、ポート番号とは、スイッチ10が有する各ポート16、17を識別するための情報である。例えば、ポート番号「1」は、ポート16を示し、ポート番号「2」は、ポート17を示す。また、MACアドレスとは、いずれかのサーバが有するNICに付与されたMACアドレスである。また、FDB26は、スイッチ10が受信したパケットの送信元を示すMACアドレスと、このMACアドレスを送信元とするパケットを最初に受信したポートを示すポート番号とが対応付けて格納されている。
例えば、スイッチ10は、サーバ2が送信元となるパケットをポート16から受信した場合には、サーバ2のNICに付与されたMACアドレスと、ポート16を示すポート番号とを対応付けてFDB26に格納する。また、スイッチ10は、サーバ3が送信元となるパケットをポート17から受信した場合には、サーバ3のNICに付与されたMACアドレスと、ポート17を示すポート番号とを対応付けてFDB26に格納する。
詳細な例を挙げるならば、FDB26には、ポート16を示すポート番号「1」と、サーバ2のNICに付与されたMACアドレス「00:00:C0:11:11:11」とを対応付けたエントリを有する。また、FDB26には、ポート17を示すポート番号「2」と、サーバ2のNICに付与されたMACアドレス「00:00:C0:22:22:22」とを対応付けたエントリを有する。
次に、図4を用いて、統計情報25について説明する。図4は、実施例1に係る統計情報の一例を説明するための図である。図4に示す例では、統計情報25は、ポート番号、送出パケットレート、MAC学習数、輻輳検出回数、パケット廃棄数、パケット送出増加数を対応付けたエントリを有する。
送出パケットレートとは、対応付けられたポート番号が示すポートが単位時間ごとに送出するデータ量である。具体的には、CPU10は、所定の時間おきに、各ポート16、17が送出したパケットの数を計数し、計数した数とパケットのビット数との積を所定の時間で除算した値を送出パケットレートとして統計情報25に格納する。
例えば、図4に示す例では、統計情報25は、ポート番号「1」のポートが「200Mbps(Mega Bit Par Second)」でパケットを送出し、ポート番号「2」のポートが「900Mbps」でパケットを送出する旨を示す。また、統計情報25は、ポート番号「3」のポートが800Mbpsでパケットを送出する旨を示す。
MAC学習数とは、対応付けられたポート番号と対応付けられたMACアドレスがいくつFDB26に登録されているかを示す情報である。例えば、図4に示す例では、統計情報25は、FDB26に、ポート番号「1」と対応付けられたMACアドレスの数が「10」個存在することを示す。また、統計情報25は、FDB26に、ポート番号「2」と対応付けられたMACアドレスの数が「50」個存在することを示す。また、統計情報25は、FDB26に、ポート番号「3」と対応付けられたMACアドレスの数が「40」個存在することを示す。
輻輳検出回数とは、対応付けられたポート番号が示すポートにおいて、輻輳が発生した回数である。ここで、輻輳について説明する。例えば、各ポート16、17は、送信するパケットを一時的に記憶するバッファを有する。そして、CPU10は、各ポート16、17が有するバッファが記憶するパケットの数を計数し、計数したパケットの数が所定の数よりも多い場合には、輻輳が発生したと判別する。
例えば、統計情報25は、ポート番号「1」のポートにおいて輻輳が発生していないことを示す。また、統計情報25は、ポート番号「2」のポートにおいて、輻輳が「5」回発生したことを示す。また、統計情報25は、ポート番号「3」のポートにおいて、輻輳が「8」回発生したことを示す。
パケット廃棄数とは、他のスイッチ10a〜10iがフラッディングしたパケットを、各パケットがいくつ廃棄したかを示す情報である。すなわち、CPU10は、ポート16、17を解して、他のスイッチ10a〜10iがフラッディングしたパケットを受信する。この際、CPU10は、最初に受信したパケットのみを転送するとともに、2番目以降に受信したパケットについては、廃棄する。そして、CPU10は、各ポート16、17ごとに、受信したパケットを廃棄した数を計数し、計数した数を、統計情報25のパケット廃棄数とする。
例えば、図4に示す例では、統計情報25は、ポート番号「1」のポートが受信したパケットの廃棄を行っていないことを示す。また、統計情報25は、ポート番号「2」のポートが受信したパケットを「1000」個廃棄した旨を示す。また、統計情報25は、ポート番号「3」のポートが受信したパケットを「2000」個廃棄した旨を示す。
パケット送出増加数とは、所定の時間おきに、各ポートの送出パケットレートがどれだけ増加したかを示す情報である。すなわち、スイッチ10は、所定の時間おきに、各ポートの送出パケットレートを更新するとともに、前回の送出パケットレートと、新たな送出パケットレートとの差分をパケット送出増加数として、統計情報25に格納する。
例えば、図4に示す例では、統計情報25は、ポート番号「1」のパケットレートが、前回と比較して「50Mbps」減少したことを示す。また、統計情報25は、ポート番号「2」のパケットレートが、前回と比較して「100Mbps」増加したことを示す。また、統計情報25は、ポート番号「3」のパケットレートが、前回と比較して「100Mbps」減少したことを示す。
次に、図5を用いて、先着学習テーブル27について説明する。図5は、実施例1に係る先着学習テーブルの一例を説明するための図である。図5に示す例では、先着学習テーブル27は、送信元情報、受信ポート番号、受信時刻、FCS(Frame Check Sequence)とを対応づけたエントリを有する。ここで、送信元情報とは、スイッチ10以外のスイッチ10a〜10iによってフラッディングされたパケットの送信元を示すMACアドレスである。
また、受信ポート情報とは、フラッディングされたパケットを最初に受信したポートを示すポート番号である。また、受信時刻とは、フラッディングされたパケットを最初に受信した時刻であり、図5に示す例では月:日:時間:分:秒を記載した。また、FCSとは、フレームリレーを行う際にエラーを検出するため、各パケットに付与されるチェックサムであり、受信したパケットから算出される値である。
例えば、図5に示す例では、先着学習テーブル27は、送信元のMACアドレスが「00:00:C0:22:22:22」のパケットをポート番号「2」のパケットから時刻1:25:13:25:21.215」に受信した旨を示す。また、先着学習テーブル27は、受信したパケットのFDSが「xxxxxxxx」である旨を示す。
図2に戻って、スイッチ10の機能構成について説明する。ポート16、17は、外部装置とパケットを送受信するためのポートであり、それぞれサーバ2、サーバ3と接続されている。また、図2では省略したが、スイッチ10は、スイッチ10g、スイッチ10h、スイッチ10iと接続されたポートを有する。また、CPU15は、プログラムを実行することで、スイッチ10が有する各種機能を発揮させる演算処理を実行する。
物理層処理部18、19は、パケットの送受信を行う際に物理層における処理を実行する。具体的には、物理層処理部18、19は、パケットのフレーム符号化、パラレル−シリアル変換、信号波形変換等を行う。例えば、物理層処理部18、19は、ポート16を介して受信した電気信号をデータリンク層レベルのパケットに変換し、変換後のパケットをMACフレーム処理部20に出力する。また、物理層処理部18、19は、MACフレーム処理部20からパケットを受信すると、受信したパケットを電気信号に変換し、それぞれポート16、17から出力する。
また、物理層処理部18、19は、各ポート16、17から送出するパケットを一時的に記憶するバッファを有する。そして、物理層処理部18、19は、所定の時間間隔でバッファが記憶するパケットの数を計数し、計数したパケットの数が所定の閾値よりも多いか否かを判別する。そして、物理層処理部18、19は、計数したパケットの数が所定の閾値よりも多い場合には、輻輳が発生した旨をMACフレーム処理部20に通知する。また、物理層処理部18、19は、各ポート16、17から送出したパケットの数を計数し、計数した数をMACフレーム処理部20に通知する。
MACフレーム処理部20は、MACフレームの解析処理やIPパケットのプロトコル解析処理などを行う。具体的には、MACフレーム処理部20は、物理層処理部18、19からパケットを受信すると、受信したパケットを解析し、以下の情報を抽出する。
すなわち、MACフレーム処理部20は、パケットの送信元MACアドレス、パケットの送信先MACアドレス、パケットを受信した時間、パケットを受信したポートを抽出する。また、MACフレーム処理部20は、パケットに格納されたデータからFDSを算出する。そして、MACフレーム処理部20は、抽出した各情報、およびFDSをパケット転送処理部21に出力する。
また、MACフレーム処理部20は、受信したパケットを送出するポートの通知をパケット転送処理部21から受信する。すると、MACフレーム処理部20は、通知されたポートの物理層処理部に対して、受信したパケットを出力する。また、MACフレーム処理部20は、パケット転送処理部21からパケットを廃棄する旨の通知を取得した場合には、受信したパケットを廃棄する。
また、MACフレーム処理部20は、パケットをフラッディングする旨の通知と、パケットを各ポート16、17から送出する順序を示す順序リストを受信する。すると、MACフレーム処理部20は、取得した順序リストが示す順序で、同一のパケットを各ポート16、17の各物理層処理部18、19に出力する。
また、MACフレーム処理部20は、各物理層処理部18、19から、輻輳が発生した旨の通知を受信すると、受信した通知をパケット転送処理部21に転送する。また、MACフレーム処理部20は、各物理層処理部18、19から、各ポート16、17から送出したパケットの数の通知を受信すると、受信した通知をパケット転送処理部21に転送する。
パケット転送処理部21は、各ポート16、17が受信したパケットの情報をMACフレーム処理部20から取得した場合は、取得したパケットの情報に応じて、受信したパケットを送出するポートを決定する。そして、パケット転送処理部21は、決定したポートをMACフレーム処理部20に通知する。
具体的には、パケット転送処理部21は、パケットの送信元MACアドレス、パケットの送信先MACアドレス、パケットを受信した時間、パケットを受信したポート、パケットに格納されたデータから算出されたFDSをMACフレーム処理部20から受信する。パケット転送処理部21は、パケットの送信元MACアドレスと、パケットを受信したポートと、FCSと、パケットを受信した時間とを先着学習処理部23に通知する。
すると、パケット転送処理部21は、先着学習処理部23から、パケットを廃棄する旨の通知、または、パケットを転送する旨の通知を取得する。そして、パケット転送処理部21は、先着学習処理部23からパケットを廃棄する旨の通知を取得した場合には、パケットを廃棄する旨の通知をMACフレーム処理部20に送信する。そして、パケット転送処理部21は、経路分散処理部24に対して、パケットを廃棄した旨を通知する。
また、パケット転送処理部21は、先着学習処理部23からパケットを転送する旨の通知を取得した場合には、MAC学習処理部22に対して、パケットの送信元MACアドレスと、パケットの送信先MACアドレスと、パケットを受信したポートとを通知する。すると、パケット転送処理部21は、MAC学習処理部22から、パケットを送出するポートの通知、または、パケットの送出先ポートが登録されていない旨の通知を受信する。
パケット転送処理部21は、パケットを送出するポートの通知を受けた場合は、MAC学習処理部22から通知されたポートをMACフレーム処理部20に通知する。一方、パケット転送処理部21は、パケットの送出先ポートが登録されていない旨の通知を受信した場合は、経路分散処理部24に対して、順序リストの作成を要求する。
このような場合には、経路分散処理部24は、所定の方式を用いて作成した順序リストを作成し、作成したリストをMACフレーム処理部20に出力する。すると、パケット転送処理部21は、順序リスト、パケットをフラッディングする旨の通知をMACフレーム処理部20に出力する。
また、パケット転送処理部21は、輻輳が発生した旨の通知を受信すると、輻輳が発生した旨を経路分散処理部24に通知する。また、パケット転送処理部21は、各ポート16、17が送信したパケットの数の通知を受信すると、各ポート16、17が受信したパケットの数を経路分散処理部24に通知する。
MAC学習処理部22は、パケット転送処理部21からパケットの送信元MACアドレスと、パケットの送信先MACアドレスと、パケットを受信したポートとを受信する。すると、MAC学習処理部22は、受信したパケットの送信先MACアドレスがFDB26に登録されているか否かを判別する。
そして、MAC学習処理部22は、受信したパケットの送信先MACアドレスがFDB26に登録されている場合には、受信したパケットの送信先MACアドレスと対応付けられたポート番号を取得する。そして、MAC学習処理部22は、取得したポート番号が示すポートをパケット転送処理部21に通知する。一方、MAC学習処理部22は、受信したパケットの送信先MACアドレスがFDB26に登録されていない場合には、パケットの送出先ポートが登録されていない旨の通知をパケット転送処理部21に通知する。
また、MAC学習処理部22は、パケット転送処理部21から受信したパケットの送信元MACアドレスとパケットを受信したポートとを対応付けたエントリがFDB26に登録されているか否かを判別する。そして、MAC学習処理部22は、パケット転送処理部21から受信したパケットの送信元MACアドレスとパケットを受信したポートとを対応付けたエントリがFDB26に登録されている場合は、そのまま処理を終了する。
一方、MAC学習処理部22は、パケット転送処理部21から受信したパケットの送信元MACアドレスとパケットを受信したポートとを対応付けたエントリがFDB26に登録されていない場合は、FDB26の登録処理を行う。すなわち、MAC学習処理部22は、パケット転送処理部21から受信したパケットの送信元MACアドレスとパケットを受信したポートとを対応付けたエントリをFDB26に登録する。
先着学習処理部23は、パケットの送信元MACアドレスと、パケットを受信したポートと、パケットを受信した時刻とFCSとをパケット転送処理部21から受信する。すると、先着学習処理部23は、受信したパケットの送信元MACアドレスとFCSとを対応付けたエントリが先着学習テーブル27に登録されているか否かを判別する。
そして、先着学習処理部23は、受信したパケットの送信元MACアドレスとFCSとを対応付けたエントリが先着学習テーブル27に登録されている場合には、以下の処理を実行する。すなわち、先着学習処理部23は、登録されていたエントリに格納されている受信時刻が、パケット転送処理部21から受信した受信時刻よりも早いか否かを判別する。また、先着学習処理部23は、エントリに格納されている受信ポート番号が、パケット転送処理部21から通知されたポート番号と異なるか否かを判別する。
そして、先着学習処理部23は、エントリに格納されている受信ポート番号が、パケット転送処理部21から通知されたポート番号と異なり、かつ、エントリの受信時刻が、パケット転送処理部21から受信した受信時刻よりも早い場合は、以下の処理を実行する。すなわち、先着学習処理部23は、他のスイッチ10a〜10iによってフラッディングされたパケットを、他のポートから先に受信していると判別し、パケットを廃棄する旨の通知をパケット転送処理部21に通知する。
一方、先着学習処理部23は、エントリに格納されている受信ポート番号が、パケット転送処理部21から通知されたポート番号と同じ、または、エントリの受信時刻が、パケット転送処理部21から受信した受信時刻よりも遅い場合は、以下の処理を実行する。すなわち、先着学習処理部23は、パケットを転送する旨の通知をパケット転送処理部21に通知する。
また、先着学習処理部23は、エントリに格納されている受信ポート番号が、パケット転送処理部21から通知されたポート番号と異なり、かつ、エントリの受信時刻が、パケット転送処理部21から受信した受信時刻よりも早い場合は、以下の処理を実行する。すなわち、先着学習処理部23は、登録されていたエントリを削除するとともに、パケット転送処理部21から受信した各情報を用いて、新たなエントリを先着学習テーブル27に登録する。
経路分散処理部24は、パケット転送処理部21から順序リストの作成を要求された場合には、あらかじめ指定された方法で順序リストを作成し、作成した順序リストをパケット転送処理部21に出力する。具体例を挙げると、経路分散処理部24は、以下の方法で順序リストを作成する機能を有する。
すなわち、経路分散処理部24は、統計情報25に格納されたMAC学習数の数が少ない順にポートを並べた順序リストを生成する機能を有する。また、経路分散処理部24は、統計情報25に格納された送出パケットレートの値が少ない順にポートを並べた順序リストを生成する機能を有する。
また、経路分散処理部24は、統計情報25に格納された輻輳検出回数が少ない順にポートを並べた順序リストを生成する機能を有する。また、経路分散処理部24は、統計情報25に格納されたパケット送出増加数の値が少ない順にポートを並べた順序リストを生成する機能を有する。また、経路分散処理部24は、統計情報25に格納されたパケット廃棄数の数が少ない順にポートを並べた順序リストを生成する機能を有する。
そして、経路分散処理部24は、上述したいずれかの手法を用いて、順序リストを生成し、生成した順序リストをパケット転送処理部21に出力する。なお、経路分散処理部24が用いる手法は、情報処理システム1の利用者が任意のタイミングで設定するようにしてもよい。また、経路分散処理部24は、順序リストの生成を要求されるたびに、方法をランダムに選択することとしてもよい。
なお、経路分散処理部24は、輻輳が発生した旨の通知を受信すると、統計情報25の各エントリのうち、輻輳が発生したポートの輻輳検出回数を1インクリメントする。また、経路分散処理部24は、各ポート16、17が送信したパケットの数の通知を受信すると、各ポート16、17が送信したパケットの数に、パケット1つ分の情報量を積算した値を送出パケットレートとして算出する。
また、経路分散処理部24は、各ポートごとに、統計情報25に格納されている送出パケットレートから新たに算出した送出パケットレートを減算した値をパケット送出増加数として算出する。そして、経路分散処理部24は、算出した送出パケットレートと、パケット送出増加数とを統計情報25に格納する。
また、経路分散処理部24は、所定の時間間隔でFDB26の各エントリを検査し、各ポート番号が登録されている数を計数する。そして、経路分散処理部24は、計数した数を、各ポートのMAC学習数として、統計情報25に格納する。
このように、パケット処理部13は、受信したパケットの送信元MACアドレスとパケットを受信したポートのポート番号とを対応付けてFDB26に登録する。また、パケット処理部13は、受信したパケットの送信先MACアドレスがFDB26に登録されているか否かを判別する。
そして、パケット処理部13は、受信したパケットの送信先MACアドレスがFDB26に登録されている場合には、登録されているMACアドレスと対応付けて記憶したポートからパケットを送出させる。また、パケット処理部13は、受信したパケットの送信先MACアドレスがFDB26に登録されていない場合には、パケットを受信したポート以外のポートから送出するフラッディングを行う。なお、パケット処理部13は、フラッディングを行う場合には、パケットを各ポートから送出する順序を固定することなくパケットを送出する。
また、パケット処理部13は、送出する順序を固定することなくパケットを送出する以下の手法のうち、予め設定された手法を用いてパケットを送出する。すなわち、パケット処理部13は、統計情報25に格納された送出パケットレートを用いて、各ポート16、17が送信したパケットの数が少ない順を識別する。そして、パケット処理部13は、パケットを受信したポート以外のポートから、送出したパケットの数が少ない順で、パケットを送出する。
また、パケット処理部13は、パケットを受信したポート以外のポートから、統計情報25に格納されたMAC学習数が少ない順で、受信したパケットを送出する。また、パケット処理部13は、パケットを受信したポート以外のポートから、統計情報25に格納された輻輳検出回数が少ない順で、受信したパケットを送出する。
また、パケット処理部13は、パケットを受信したポート以外のポートから、統計情報25に格納されたパケット送出増加数の値が少ない順で、受信したパケットを送出する。また、パケット処理部13は、パケットを受信したポート以外のポートから、統計情報25に格納されたパケット廃棄数の数が少ない順で、受信したパケットを送出する。
このため、パケット処理部13は、パケットのフラッディングを実行する際に、パケットを各ポート16、17から送出する順番を、固定することなく送出することができる。この結果、スイッチ10は、パケットを送信する経路においてレイテンシが同程度となる経路が複数存在する際に、パケットを転送する経路の偏りを解消することができる。
図6は、実施例1に係るスイッチが実行するフラッディング処理を説明するための図である。図6に示す例では、サーバ2が送信元となるパケットをスイッチ10がフラッディングする際の処理について記載した。例えば、スイッチ10は、サーバ2からパケットを受信すると、送信先MACアドレスがFDB26に記憶されているか否かを判別する。そして、スイッチ10は、送信先MACアドレスがFDB26に記憶されていない場合は、フラッディングを実行する。
ここで、スイッチ10は、各ポートからパケットを送出する順序を固定することなくフラッディングを行う。例えば、スイッチ10は、図6中(A)、(B)、(C)の順でパケットを送出する。このような場合には、スイッチ10g、スイッチ10h、スイッチ10iの順にパケットを受信する。すると、各スイッチ10g〜10iは、スイッチ10g、スイッチ10h、スイッチ10iの順にフラッディングを実行する。
また、スイッチ10は、再度サーバ2から受信したパケットの送信先MACアドレスがFDB26に記憶されていない場合には、図6中(B)、(A)、(C)の順でパケットを送出する。このような場合には、スイッチ10h、スイッチ10g、スイッチ10iの順にパケットを受信する。すると、各スイッチ10g〜10iは、スイッチ10h、スイッチ10g、スイッチ10iの順にフラッディングを実行する。
このように、スイッチ10は、フラッディングを行う際に、パケットを各ポートから送出する順序を固定せずに、そのつどパケットを送出するポートの順序を判別し、判別した順序でパケットを各ポートから出力する。この結果、スイッチ10は、パケットを転送する経路を偏らせずに、各経路を解したパケットの転送を行うことができる。
すなわち、従来のスイッチは、パケットをフラッディングする際に、所定の順序で各ポートからパケットを送出するので、レイテンシが同程度の経路が複数存在する場合には、パケットを送信する経路が偏ってしまう。一方、スイッチ10は、パケットのフラッディングを実行する際に、パケットを各ポートから送出する順序を固定しない。この結果、スイッチ10は、レイテンシが同程度の経路が複数存在する際は、パケットを転送する経路を偏らせずに、各経路を介したパケットの転送を行うことができる。
図7は、実施例1に係るスイッチによる経路分散の一例を説明するための図である。例えば、図7に示す例では、スイッチ10にサーバ2、サーバ3、サーバ6が接続され、スイッチ10fにサーバ4、サーバ5、サーバ7が接続されているものとする。ここで、サーバ2は、サーバ4を宛先とするパケットを送信し、サーバ3は、サーバ5を宛先とするパケットを送信し、サーバ6は、サーバ7を宛先とするパケットを送信するものとする。
ここで、図7に示す例では、各サーバ間には、パケットを転送する複数の経路が存在する。例えば、サーバ2、サーバ3、サーバ6とサーバ4、サーバ5、サーバ7との間で送受信するパケットを転送する経路としては、スイッチ10gを経由する経路、スイッチ10hを経由する経路、スイッチ10iを経由する経路が存在する。なお、各経路は、ポップ数がいずれも同じであるため、同程度の遅延でパケットを転送するものとする。
ここで、スイッチ10は、サーバ2が送信したパケットを受信すると、受信したパケットを各スイッチ10g〜10iにフラッディングする。例えば、スイッチ10は、スイッチ10g、スイッチ10h、スイッチ10iの順にパケットをフラッディングする。次に、各スイッチ10g〜10iは、スイッチ10と接続されたポートとサーバ2のMACアドレスとを対応付けてFDB26に登録するとともに、それぞれスイッチ10から受信したパケットをフラッディングする。この結果、スイッチ10fは、各スイッチ10g〜10iがフラッディングしたパケットを受信する。
ここで、スイッチ10は、スイッチ10gに対して一番最初にパケットを送出した。このため、スイッチ10fは、スイッチ10gからパケットを一番最初に受信するので、スイッチ10gが接続されたポートとサーバ2のMACアドレスとを対応付けてFDB26に登録する。この結果、サーバ2を宛先とするパケットは、スイッチ10f、スイッチ10g、スイッチ10を介する経路で転送される。
次に、スイッチ10は、サーバ3から受信したパケットをフラッディングする。ここで、従来のスイッチは、サーバ2から受信したパケットをフラッディングした際と同様の順序でパケットを送出するため、サーバ3を宛先とするパケットを転送する経路と、サーバ2を宛先とするパケットを転送する経路とを同じにしてしまう。
しかし、スイッチ10は、サーバ3からパケットを受信すると、例えば、スイッチ10h、スイッチ10g、スイッチ10iの順で送出する。すると、スイッチ10fは、スイッチ10hから最初にパケットを受信する。この結果、各スイッチ10〜10fは、サーバ3を宛先とするパケットは、スイッチ10f、スイッチ10h、スイッチ10を介する経路で転送される。
次に、スイッチ10は、サーバ6が送出したパケットをスイッチ10i、スイッチ10h、スイッチ10gの順にフラッディングする。この結果、スイッチ10fがスイッチ10iから最初にパケットを受信するため、サーバ6を宛先とするパケットは、スイッチ10f、スイッチ10i、スイッチ10を介する経路で転送される。
このように、スイッチ10は、パケットをフラッディングする際にパケットを各ポートから送出する順序を固定しないので、先着学習方式のネットワークにおいて同程度の遅延が複数存在する際に、パケットの転送経路を分散させることができる。また、スイッチ10は、パケットを送出する順序を、各ポートが送出するパケットの数に応じた値に応じて、そのつど決定する。
すなわち、送出パケットレートが多いポートからは、多くのパケットが送出されているので、スイッチ10は、送出パケットレートが少ない順で各ポートからパケットをフラッディングすることで、経路の偏りを防ぐことができる。また、MAC学習数が多いポートからは、多くのパケットが送出される。このため、スイッチ10は、MAC学習数が少ない順で、各ポートからパケットをフラッディングした場合には、経路を分散させることができる。また、輻輳検出回数が多いポートからは、多くのパケットが送出されているので、スイッチ10は、輻輳検出回数が少ない順で各ポートからパケットをフラッディングすることで、経路の偏りを防ぐことができる。
また、パケット送出増加数が多いポートからは、多くのパケットが送出されているので、スイッチ10は、パケット送出増加数が少ない順で各ポートからパケットをフラッディングすることで、経路の偏りを防ぐことができる。また、パケット廃棄数が多いポートは、レイテンシが大きいので、スイッチ10は、パケット送出増加数が少ない順で各ポートからパケットをフラッディングすることで、レイテンシがより少ない経路を介したパケットの転送を行うことができる。
例えば、ポート16、ポート17、物理層処理部18、物理層処理部19、MACフレーム処理部20、パケット転送処理部21、MAC学習処理部22、先着学習処理部23、経路分散処理部24とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
また、統計情報25、FDB26、先着学習テーブル27とは、メモリ14に格納されたデータであり、メモリとは、RAM(Random Access Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
次に、図8を用いて、スイッチ10が実行する処理の流れについて説明する。図8は、実施例1に係るスイッチが実行する処理の流れを説明するためのフローチャートである。例えば、スイッチ10は、いずれかのポートからパケットを受信する(ステップS101)。すると、スイッチ10は、受信したパケットが先着パケットであるか否かを判別する(ステップS102)。すなわち、スイッチ10は、受信したパケットが他のスイッチがフラッディングしたパケットであって、最初に受信したパケットであるか否かを判別する。
そして、スイッチ10は、受信したパケットが先着パケットであると判別した場合は(ステップS102肯定)、先着学習テーブル27の登録を先着処理として実行する(ステップS103)。次に、スイッチ10は、受信したパケットの送信元MACドレスに係るエントリをFDB26に登録する(ステップS104)。
また、スイッチ10は、受信したパケットの送信先MACアドレスがFDB26に学習済みであるか否かを判別する(ステップS105)。そして、スイッチ10は、送信先MACアドレスがFDB26に学習済みではないと判別した場合は(ステップS105否定)、以下の処理を行う。すなわち、スイッチ10は、パケットを受信したポート以外のポートから、パケットを送出する順序を固定せずに、フラッディングを行い(ステップS106)、処理を終了する。
一方、スイッチ10は、送信先MACアドレスがFDB26に学習済みであると判別した場合は(ステップS105肯定)、FDB26に対応付けて登録されたポートから、受信したパケットを送出し(ステップS107)、処理を終了する。なお、スイッチ10は、受信したパケットが先着パケットではない場合には(ステップS102否定)、パケットを廃棄し(ステップS108)、処理を終了する。
[実施例1の効果]
このように、スイッチ10は、受信したパケットの送信元MACアドレスとパケットを受信したポートのポート番号とを対応付けてFDB26に登録する。また、スイッチ10は、受信したパケットの送信先MACアドレスがFDB26に登録されているか否かを判別する。そして、スイッチ10は、受信したパケットの送信先MACアドレスがFDB26に登録されていない場合には、パケットを各ポートから送出する順序を固定することなく、パケットを送出する。つまり、スイッチ10は、パケットを受信したポート以外のポートから非固定的な順番で選択されるポートからパケットを送出する。
ここで、スイッチ10は、受信したパケットが他のスイッチ10a〜10iがフラッディングした複数のパケットを受信した場合は、一番最初にパケットを受信したポートと、送信元MACアドレスとを対応付けてFDB26に登録する。このため、スイッチ10は、レイテンシが最も少ないパケットの転送経路を選択できる。
なお、スイッチ10は、送出する順序を固定することなくパケットを送出する以下の手法のうち、予め設定された手法を用いてパケットを送出する。すなわち、スイッチ10は、統計情報25に格納された送出パケットレートを用いて、各ポート16、17が送信したパケットの数が少ない順を識別する。そして、スイッチ10は、パケットを受信したポート以外のポートから、送出パケットレートが少ない順、すなわち、送出したパケットの数が少ない順で、パケットを送出する。このため、スイッチ10は、経路の偏りを軽減できる。
また、スイッチ10は、パケットを受信したポート以外のポートから、統計情報25に格納されたMAC学習数が少ない順で、受信したパケットを送出するので、経路の偏りを防ぐことができる。また、スイッチ10は、各ポートの輻輳検出回数を計数し、パケットを受信したポート以外のポートから、輻輳検出回数が少ない順で、受信したパケットを送出するので、経路の偏りを軽減できる。
また、スイッチ10は、パケットを受信したポート以外のポートから、統計情報25に格納されたパケット送出増加数の値が少ない順で、受信したパケットを送出するので、経路の偏りを防ぐことができる。また、スイッチ10は、パケットを受信したポート以外のポートから、統計情報25に格納されたパケット廃棄数の数が少ない順、すなわち、経路のレイテンシが少ない順で受信したパケットを送出するので、レイテンシが少ない経路を選択できる。
このように、スイッチ10は、パケットのフラッディングを実行する際に、パケットを送出する順番を、固定することなく送出することができる。この結果、スイッチ10は、パケットを送信する経路においてレイテンシが同程度の経路が複数存在する際に、パケットを転送する経路の偏りを軽減できる。
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
(1)情報処理システム1のネットワークについて
上述した情報処理システム1は、図1に示す2D(Dimension)方のFAT−Tree構造で複数のスイッチ10〜10iを接続し、エッジとなるスイッチ10〜10fが、それぞれサーバ2〜7と接続されていた。しかし、実施例はこれに限定されるものではない。
図9は、多段階構成のファットツリーによる情報処理システムの一例を説明するための図である。図9に示す例では、実施例2に係る情報処理システム1aは、複数のスイッチを3tierで接続した。具体的には、情報処理システム1aは、サーバ2〜5と同様の機能を発揮するサーバ2a〜5aを有する。
また、情報処理システム1aは、情報処理システム1と同様に接続したスイッチ10〜10fを有するネットワーク30を有し、さらに、ネットワーク30と同様の機能を発揮する複数のネットワーク30a、ネットワーク30bを有する。そして、情報処理システム1aは、各ネットワーク30〜20bのエッジ(葉:リーフ)となるスイッチと各サーバ2a〜5aを接続する。例えば、サーバ2aは、各ネットワーク30〜10bのエッジとなるスイッチと接続されている。
このように、情報処理システム1aは、ネットワーク30と同様の機能を発揮するネットワークを増やすことで、システムのスケールを大きくすることができる。例えば、データセンタ等、多くのサーバをネットワークに接続するため、ポート数の多いスイッチを用いる手法が考えられるが、ポート数の多いスイッチは高価であるため、システム構築のコストを増加させてしまう。
一方、通常のスイッチを多段階に接続した場合には、コストを増加させることなく、多くのサーバが接続可能なネットワークを構築できる。ここで、スイッチを多段階に接続した場合には、各サーバ間がパケットを送受信する経路が複数存在することとなる。また、各パケットを送受信する経路のうち、レイテンシが同程度の経路も複数存在する。しかしながら、従来の先着学習方式のスイッチでは、フラッディングを行う際にパケットを送出する順序が固定されているため、各サーバがパケットを送受信する経路が偏ってしまう。しかし、スイッチ10〜10iは、フラッディングを行う際に、パケットを送出する順序を固定せずに、各ポートからパケットを送出するので、経路の偏りを防ぐことができる。
(2)パケット処理部について
上述したパケット処理部13は、パケット転送処理部21、MAC学習処理部22、先着学習処理部23、経路分散処理部24が協調して処理を行っていた。しかし、実施例は、これに限定されるものではなく、パケット転送処理部21、MAC学習処理部22、先着学習処理部23、経路分散処理部24の機能は、任意に統合、分散させることができる。
また、上述したスイッチ10は、パケットを受信したポート以外の全てのポートから、パケットを非固定的な順序で送出したが、実施例はこれに限定されるものではない。例えば、スイッチ10は、パケットを受信したポート以外のポートからパケットを送出するポートを選択し、選択したポート以外のポートから非固定的な順序でパケットを送出してもよい。このような処理を実行した場合は、スイッチ10は、例えばサーバ等のスイッチではない装置が接続するポートをフラッディングの対象から除外するので、ネットワークのトラフィック量を削減できる。
(3)ネットワークについて
上述した情報処理システム1および情報処理システム1aは、FAT−Tree型のネットワークを有した。しかし、実施例はこれに限定されるものではなく、任意のトポロジで複数のスイッチ10〜10iを接続することとしてもよい。すなわち、スイッチ10は、ネットワークのトポロジによらず、パケットを送受信する経路の偏りを解消することができる。
(4)プログラム
ところで、実施例1、実施例2に係るスイッチ10は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムをスイッチ10が有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図10を用いて、スイッチ10と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図10は、中継プログラムを実行するコンピュータの一例を説明するための図である。
図10に例示されたコンピュータ100は、ROM(Read Only Memory)110、HDD(Hard Disk Drive)120、RAM(Random Access Memory)130、CPU(Central Processing Unit)140がバス160で接続される。また、図10に例示されたコンピュータ100は、パケットを送受信するためのI/O(Input Output)150を有する。
RAM130には、中継プログラム131があらかじめ保持される。CPU140が中継プログラム131をRAM130から読み出して実行することによって、図10に示す例では、中継プログラム131は、中継プロセス141として機能するようになる。なお、中継プロセス141は、図2に示した接続部11、MAC処理部12、パケット処理部13と同様の機能を発揮する。なお、図10では省略したが、中継プログラム131には、図2に示す統計情報25、FDB26、先着学習テーブル27と同様の情報がデータとして含まれる。
なお、本実施例で説明した中継プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM(Compact Disc Read Only Memory)、MO(Magneto Optical Disc)、DVD(Digital Versatile Disc)などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
1、1a 情報処理システム
2〜5、2a〜5a サーバ
10〜10i スイッチ
11 接続部
12 MAC処理部
13 パケット処理部
14 メモリ
15 CPU
16、17 ポート
18、19 物理層処理部
20 MACフレーム処理部
21 パケット転送処理部
22 MAC学習処理部
23 先着学習処理部
24 経路分散処理部
25 統計情報
26 FDB
27 先着学習テーブル

Claims (9)

  1. 情報処理装置が送受信するパケットを中継する中継装置において、
    前記パケットを送受信する複数のポートと、
    前記情報処理装置を示す識別子と当該情報処理装置に送信するパケットを送出するポートとを対応付けて記憶する経路記憶部と、
    いずれかのポートが前記パケットを受信した場合には、当該受信したパケットの送信先を示す識別子が前記経路記憶部に記憶されているか否かを判別する判別部と
    前記識別子が前記経路記憶部に記憶されていると前記判別部が判別した場合は、当該識別子と対応付けられたポートから前記パケットを送出し、前記識別子が前記経路記憶部に記憶されていないと前記判別部が判別した場合には、前記パケットを受信したポート以外の複数のポートの中から選択される選択ポートから、前記経路記憶部に対応付けて記憶された識別子の数が少ない順番でパケットを送出する送出部と
    を有することを特徴とする中継装置。
  2. いずれかのポートがパケットを受信した場合は、当該パケットの送信元となる情報処理装置を示す識別子と当該パケットを受信したポートとを対応付けて前記経路記憶部に登録し、複数のポートが同一のパケットを受信した場合は、当該パケットの送信元となる情報処理装置を示す識別子と当該パケットを最初に受信したポートとを対応付けて前記経路記憶部に登録する登録部をさらに有することを特徴とする請求項1に記載の中継装置。
  3. 情報処理装置が送受信するパケットを中継する中継装置において、
    前記パケットを送受信する複数のポートと、
    前記情報処理装置を示す識別子と当該情報処理装置に送信するパケットを送出するポートとを対応付けて記憶する経路記憶部と、
    いずれかのポートが前記パケットを受信した場合には、当該受信したパケットの送信先を示す識別子が前記経路記憶部に記憶されているか否かを判別する判別部と
    前記ポート毎に送出するパケットを一時的に記憶する複数のバッファと、
    前記バッファが記憶するパケットの数が所定の閾値を超える輻輳が発生した回数を前記ポート毎に計数する輻輳計数部と
    前記識別子が前記経路記憶部に記憶されていると前記判別部が判別した場合は、当該識別子と対応付けられたポートから前記パケットを送出し、前記識別子が前記経路記憶部に記憶されていないと前記判別部が判別した場合には、前記パケットを受信したポート以外の複数のポートの中から選択される選択ポートから、前記輻輳計数部が計数した数が少ない順番でパケットを送出する送出部と
    を有することを特徴とする中継装置。
  4. いずれかのポートがパケットを受信した場合は、当該パケットの送信元となる情報処理装置を示す識別子と当該パケットを受信したポートとを対応付けて前記経路記憶部に登録し、複数のポートが同一のパケットを受信した場合は、当該パケットの送信元となる情報処理装置を示す識別子と当該パケットを最初に受信したポートとを対応付けて前記経路記憶部に登録する登録部をさらに有することを特徴とする請求項3に記載の中継装置。
  5. 情報処理装置が送受信するパケットを中継する中継装置において、
    前記パケットを送受信する複数のポートと、
    前記情報処理装置を示す識別子と当該情報処理装置に送信するパケットを送出するポートとを対応付けて記憶する経路記憶部と、
    いずれかのポートが前記パケットを受信した場合には、当該受信したパケットの送信先を示す識別子が前記経路記憶部に記憶されているか否かを判別する判別部と
    所定の時間間隔で、送出したパケットの数の増加数を各ポート毎に測定する測定部を有し、
    前記識別子が前記経路記憶部に記憶されていると前記判別部が判別した場合は、当該識別子と対応付けられたポートから前記パケットを送出し、前記識別子が前記経路記憶部に記憶されていないと前記判別部が判別した場合には、前記パケットを受信したポート以外の複数のポートの中から選択される選択ポートから、前記測定部が測定した増加数が少ない順番でパケットを送出する送出部と
    を有することを特徴とする中継装置。
  6. いずれかのポートがパケットを受信した場合は、当該パケットの送信元となる情報処理装置を示す識別子と当該パケットを受信したポートとを対応付けて前記経路記憶部に登録し、複数のポートが同一のパケットを受信した場合は、当該パケットの送信元となる情報処理装置を示す識別子と当該パケットを最初に受信したポートとを対応付けて前記経路記憶部に登録する登録部をさらに有することを特徴とする請求項5に記載の中継装置。
  7. パケットを送受信する複数のサーバと、
    多段階に接続され、前記サーバが送受信するパケットの中継を行う複数の中継装置と
    を有する情報処理システムにおいて、
    前記中継装置は、
    前記パケットを送受信する複数のポートと、
    前記サーバを示す識別子と当該サーバに送信するパケットを送出するポートとを対応付けて記憶する経路記憶部と、
    いずれかのポートが前記パケットを受信した場合には、当該受信したパケットの送信先を示す識別子が前記経路記憶部に記憶されているか否かを判別する判別部と
    前記識別子が前記経路記憶部に記憶されていると前記判別部が判別した場合は、当該識別子と対応付けられたポートから前記パケットを送出し、前記識別子が前記経路記憶部に記憶されていないと前記判別部が判別した場合には、前記パケットを受信したポート以外の複数のポートの中から選択される選択ポートから、前記経路記憶部に対応付けて記憶された識別子の数が少ない順番でパケットを送出する送出部と
    を有することを特徴とする情報処理システム。
  8. 複数のポートを有し、情報処理装置が送受信するパケットを中継する中継装置が、
    いずれかのポートが前記パケットを受信した場合には、前記情報処理装置を示す識別子と当該情報処理装置に送信するパケットを送出するポートとを対応付けたテーブルに、該受信したパケットの送信先を示す識別子が登録されているか否かを判別し、
    前記識別子が前記テーブルに記憶されていると判別した場合は、当該識別子と対応付けられたポートから前記パケットを送出し、前記識別子が前記テーブルに記憶されていないと判別した場合は、前記パケットを受信したポート以外の複数のポートの中から選択される選択ポートから、前記テーブルに対応付けて登録された識別子の数が少ない順番でパケットを送出する
    処理を実行することを特徴とする中継方法。
  9. 複数のポートを有し、情報処理装置が送受信するパケットを中継する中継装置が有するコンピュータに、
    いずれかのポートが前記パケットを受信した場合には、前記情報処理装置を示す識別子と当該情報処理装置に送信するパケットを送出するポートとを対応付けたテーブルに、該受信したパケットの送信先を示す識別子が登録されているか否かを判別し、
    前記識別子が前記テーブルに記憶されていると判別した場合は、当該識別子と対応付けられたポートから前記パケットを送出し、前記識別子が前記テーブルに記憶されていないと判別した場合は、前記パケットを受信したポート以外の複数のポートの中から選択される選択ポートから、前記テーブルに対応付けて登録された識別子の数が少ない順番でパケットを送出する
    処理を実行させることを特徴とする中継プログラム。
JP2012061204A 2012-03-16 2012-03-16 中継装置、情報処理システム、中継方法および中継プログラム Expired - Fee Related JP5888036B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012061204A JP5888036B2 (ja) 2012-03-16 2012-03-16 中継装置、情報処理システム、中継方法および中継プログラム
US13/754,369 US9197585B2 (en) 2012-03-16 2013-01-30 Apparatus and method for relaying a packet transmitted from and to an information processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012061204A JP5888036B2 (ja) 2012-03-16 2012-03-16 中継装置、情報処理システム、中継方法および中継プログラム

Publications (2)

Publication Number Publication Date
JP2013197750A JP2013197750A (ja) 2013-09-30
JP5888036B2 true JP5888036B2 (ja) 2016-03-16

Family

ID=49157590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012061204A Expired - Fee Related JP5888036B2 (ja) 2012-03-16 2012-03-16 中継装置、情報処理システム、中継方法および中継プログラム

Country Status (2)

Country Link
US (1) US9197585B2 (ja)
JP (1) JP5888036B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5888036B2 (ja) * 2012-03-16 2016-03-16 富士通株式会社 中継装置、情報処理システム、中継方法および中継プログラム
US10187218B2 (en) * 2015-09-15 2019-01-22 Google Llc Systems and methods for processing packets in a computer network
US11558183B2 (en) * 2020-05-15 2023-01-17 Bank Of America Corporation System for exchanging symmetric cryptographic keys using computer network port knocking
US11949652B2 (en) * 2021-03-31 2024-04-02 Samsung Electronics Co., Ltd. Transmitting router advertisements based on identification information of external devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4751817B2 (ja) * 2006-12-04 2011-08-17 富士通株式会社 パケット転送装置およびネットワークシステム
WO2008111173A1 (ja) * 2007-03-13 2008-09-18 Fujitsu Limited 通信経路制御方法、通信装置及び通信システム
JP2010114724A (ja) * 2008-11-07 2010-05-20 Fujitsu Ltd ネットワークスイッチ装置、ネットワークスイッチ方法及びネットワークスイッチプログラム
JP4688946B2 (ja) * 2009-06-15 2011-05-25 富士通株式会社 スイッチ及びアドレス学習方法
US8913489B2 (en) * 2010-08-04 2014-12-16 Alcatel Lucent System and method for virtual fabric link failure recovery
JP5888036B2 (ja) * 2012-03-16 2016-03-16 富士通株式会社 中継装置、情報処理システム、中継方法および中継プログラム

Also Published As

Publication number Publication date
US9197585B2 (en) 2015-11-24
JP2013197750A (ja) 2013-09-30
US20130243005A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
Rasley et al. Planck: Millisecond-scale monitoring and control for commodity networks
CN109314666B (zh) 用于执行拥塞感知负载均衡的方法和虚拟隧道端点
Li et al. Lossradar: Fast detection of lost packets in data center networks
JP6527880B2 (ja) フロールーティング、スケーラビリティおよびセキュリティの向上を伴う、自律システム内および自律システム間のトラフィックのソフトウェア定義ルーティングのためのシステムならびに方法
CN106998263B (zh) 用于保持网络服务级别的系统和方法
CN108243111B (zh) 确定传输路径的方法和装置
Gholami et al. Congestion control in software defined data center networks through flow rerouting
US20190190833A1 (en) Data Packet Forwarding Method and Apparatus
JP6483720B2 (ja) 物理ポート間のノンブロッキング動作のための仮想ポートマッピング
WO2018090904A1 (zh) 测量时延的方法和设备
JP5888036B2 (ja) 中継装置、情報処理システム、中継方法および中継プログラム
EP2883334A1 (en) Techniques for flooding optimization for link state protocols in a network topology
CN108777646A (zh) 流量监控方法及装置
TW201906375A (zh) 巨網路流量偵測方法與軟體定義網路交換器
JP2015057931A (ja) ネットワーク装置、通信システム、異常トラヒックの検出方法およびプログラム
JP5968841B2 (ja) ネットワーク装置及びプロセッサの監視方法
WO2014044093A1 (en) Disjoint multi-paths with service guarantee extension
WO2013078579A1 (zh) 发送报文的方法、装置和系统
Shpiner et al. Unlocking credit loop deadlocks
US11451494B2 (en) Packet order recovery in a programmable edge switch in a data center network
US11240162B1 (en) Method for remote direct memory access (RDMA) congestion control over an ethernet network
JP5348138B2 (ja) パケットロス頻度計測システム、パケットロス頻度計測方法およびプログラム
WO2023226633A1 (zh) 故障处理方法、相关设备和系统
US20180069790A1 (en) Packet transfer device and packet transfer method
Tilmans et al. Mille-Feuille: Putting ISP traffic under the scalpel

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150918

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160201

R150 Certificate of patent or registration of utility model

Ref document number: 5888036

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees