JPWO2004075482A1 - ネットワークシステム、ラーニングブリッジノード、ラーニング方法及びそのプログラム - Google Patents
ネットワークシステム、ラーニングブリッジノード、ラーニング方法及びそのプログラム Download PDFInfo
- Publication number
- JPWO2004075482A1 JPWO2004075482A1 JP2005502664A JP2005502664A JPWO2004075482A1 JP WO2004075482 A1 JPWO2004075482 A1 JP WO2004075482A1 JP 2005502664 A JP2005502664 A JP 2005502664A JP 2005502664 A JP2005502664 A JP 2005502664A JP WO2004075482 A1 JPWO2004075482 A1 JP WO2004075482A1
- Authority
- JP
- Japan
- Prior art keywords
- node
- frame
- tag
- learning
- client
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4645—Details on frame tagging
- H04L12/4666—Operational details on the addition or the stripping of a tag in a frame, e.g. at a provider edge node
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
例えば「1998年、アイトリプルイー・スタンダード・802.1ディー(IEEE Std 802.1D)」と題するIEEE発行の標準化文書では、フレームの転送先ポートを決定するため、前記フレームを受信したポートおよび前記フレームの送信元MACアドレス(MAC SA)をフィルタリングデータベースに登録する、ラーニングプロセスと呼ばれる手法が規定されている(以下、文献1とする)。
また、「1998年、アイトリプルイー・スタンダード・802.1キュー(IEEE Std 802.1Q)」と題するIEEE発行の標準化文書では、前記ラーニングプロセスをVLANごと個別に行い、ラーニング結果の利用を、ラーニングに利用したフレームと同じVLANに属するフレーム到着時に限定するための、Independent Virtual Local Area Network(VLAN)Learning(IVL)と呼ばれる手法および、IVLを行うためのIVLブリッジが規定されている(以下、文献2とする)。
さらに、拡張タグを利用したフレーム転送方法に関する技術、およびテーブルドを接続したネットワークにおいて、前記ネットワークに属するノードが、主信号フレームが流れる経路とは逆の経路に定期的にラーニングフレームを送信することを特徴とする。
請求項2の本発明のネットワークシステムは、前記ノードが、前記ラーニングフレームにより、付加すべきフォワーディングタグをラーニングすることを特徴とする。
請求項3の本発明のネットワークシステムは、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、MAC SAテーブルキャッシュを参照して、ラーニングフレーム送信要求を行うか否かを決定するラーニングフレーム管理器と、ラーニングフレーム送信要求を行った送信元MACアドレス(MAC SA)を記憶するMAC SAテーブルキャッシュを備えることを特徴とする。
請求項4の本発明のネットワークシステムは、前記ノードが、MAC SAテーブルキャッシュのエージングを行うエージング要求受付器と、CPUに対してラーニングフレーム送信要求を行う送信要求器を備えることを特徴とする。
請求項5の本発明のネットワークシステムは、前記ノードが、ラーニングフレーム処理を行うラーニング管理プログラムを備えることを特徴とする。
請求項6の本発明のネットワークシステムは、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、ラーニングフレーム処理を行うラーニング管理プログラムを備えることを特徴とする。
請求項7の本発明のネットワークシステムは、前記ノードが、各種設定を行う機器制御プログラムを備えることを特徴とする。
請求項8の本発明のネットワークシステムは、前記ノードが、入力フレームを判別するフレームタイプ判定器を備えることを特徴とする。
請求項9の本発明のネットワークシステムは、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、エージング対象エントリのエージングを行うエージング制御器と、エージング対象エントリを記憶するエージング管理テーブルを備えることを特徴とする。
請求項10の本発明のネットワークシステムは、前記ノードが、宛先MACア構成に関する技術、及びフォワーディングタグに応じて経路を決定するためスパニングツリーを用いた経路決定方法に関する技術は、例えば、「次世代イーサネットアーキテクチャGOE(Global Optical Ethernet)の提案」(電子情報通信学会 2002年ソサイエティ大会講演論文集 B−7−11〜B−7−13)として開示されている(以下、文献3とする)。
上述した従来の技術においては、以下に述べるような問題があった。
第1に、文献1および文献2で示した何れの従来技術においても、ネットワークの帯域利用効率が下がるという問題があった。
文献1および文献2の技術は、双方向のフレームが対称経路を流れる、対称フローを前提としている。したがって文献3で示したような、方向によってフローの経由するノードが異なる非対称フローを流した場合、ラーニングプロセスが機能せず、フレームは宛先に届くものの、不必要な宛先にまで伝達されてしまうため、ネットワークの混雑を引き起こし、帯域利用効率が下がるという問題があった。
第2に、文献3で示した従来技術においても、設定作業に手間がかかるという問題があった。
文献3の技術を利用するためには、あらかじめ各ノードに、宛先MACアドレス(MAC DA)に応じて付加すべき拡張タグ(フォワーディングタグ)を設定しておかなければならないが、MACアドレス数はネットワークによっては数千、数万といった数になるため、この設定作業には手間がかかった。
本発明の第2の目的は、付加すべきフォワーディングタグの設定作業を自動化することのできる、ネットワークシステム、ラーニングブリッジ構成ノード、ラーニングブリッジ構成方法およびプログラムを提供することにある。
上記目的を達成する請求項1の本発明のネットワークシステムは、複数のノードレス(MAC DA)に対する出力ポートおよびタグ操作を記憶する、MACフォワーディングテーブルメモリを備えることを特徴とする。
請求項11の本発明のネットワークシステムは、前記ノードが、タグに対するブロードキャスト時の出力先ポートを記憶する、ブロードキャストテーブルメモリを備えることを特徴とする。
請求項12の本発明のネットワークシステムは、前記ノードが、フォワーディングタグに対する出力ポートを記憶する、タグフォワーディングテーブルメモリを備えることを特徴とする。
請求項13の本発明のネットワークシステムは、前記ノードが、テーブル、エージング回路、およびテーブル読込、書込回路をもったフォワーディングテーブルを備えることを特徴とする。
請求項14の本発明のネットワークシステムは、前記ノードが、フォワーディングタグに対するMACフォワーディングテーブルメモリ上の番地を記憶する、TAGアドレス管理テーブルを備えることを特徴とする。
請求項15の本発明のネットワークシステムは、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、イーサネット(R)のラーニング機能を非対称に流れるフローにも適用することを特徴とする。
請求項16の本発明は、複数のノードを接続したネットワークのラーニングブリッジノードにおいて、主信号フレームが流れる経路とは逆の経路に定期的にラーニングフレームを送信することを特徴とする。
請求項17の本発明のラーニングブリッジノードは、前記ラーニングフレームにより、付加すべきフォワーディングタグをラーニングすることを特徴とする。
請求項18の本発明は、複数のノードを接続したネットワークのラーニングブリッジノードにおいて、MAC SAテーブルキャッシュを参照して、ラーニングフレーム送信要求を行うか否かを決定するラーニングフレーム管理器と、ラーニングフレーム送信要求を行った送信元MACアドレス(MAC SA)を記憶するMAC SAテーブルキャッシュを備えることを特徴とする。
請求項19の本発明のラーニングブリッジノードは、MAC SAテーブルキャッシュのエージングを行うエージング要求受付器と、CPUに対してラーニングフレーム送信要求を行う送信要求器を備えることを特徴とする。
請求項20の本発明のラーニングブリッジノードは、ラーニングフレーム処理を行うラーニング管理プログラムを備えることを特徴とする。
請求項21の本発明は、複数のノードを接続したネットワークのラーニングブリッジノードにおいて、ラーニングフレーム処理を行うラーニング管理プログラムを備えることを特徴とする。
請求項22の本発明のラーニングブリッジノードは、各種設定を行う機器制御プログラムを備えることを特徴とする。
請求項23の本発明のラーニングブリッジノードは、入力フレームを判別するフレームタイプ判定器を備えることを特徴とする。
請求項24の本発明のラーニングブリッジノードは、エージング対象エントリのエージングを行うエージング制御器と、エージング対象エントリを記憶するエージング管理テーブルを備えることを特徴とする。
請求項25の本発明のラーニングブリッジノードは、宛先MACアドレス(MAC DA)に対する出力ポートおよびタグ操作を記憶する、MACフォワーディングテーブルメモリを備えることを特徴とする。
請求項26の本発明のラーニングブリッジノードは、タグに対するブロードキャスト時の出力先ポートを記憶する、ブロードキャストテーブルメモリを備えることを特徴とする。
請求項27の本発明のラーニングブリッジノードは、フォワーディングタグに対する出力ポートを記憶する、タグフォワーディングテーブルメモリを備えることを特徴とする。
請求項28の本発明のラーニングブリッジノードは、テーブル、エージング回路、およびテーブル読込、書込回路をもったフォワーディングテーブルを備えることを特徴とする。
請求項29の本発明のラーニングブリッジノードは、フォワーディングタグに対するMACフォワーディングテーブルメモリ上の番地を記憶する、TAGアドレス管理テーブルを備えることを特徴とする。
請求項30の本発明は、複数のノードを接続したネットワークのラーニングブリッジノードにおいて、イーサネット(R)のラーニング機能を非対称に流れるフローにも適用することを特徴とする。
請求項31の本発明は、複数のノードを接続したネットワークのラーニング方法において、前記ネットワークに属するノードが、主信号フレームが流れる経路とは逆の経路に定期的にラーニングフレームを送信することを特徴とする。
請求項32の本発明のラーニング方法は、前記ノードが、前記ラーニングフレームにより、付加すべきフォワーディングタグをラーニングすることを特徴とする。
請求項33の本発明は、複数のノードを接続したネットワークのラーニング方法において、前記ネットワークに属するノードが、MAC SAテーブルキャッシュを参照して、ラーニングフレーム送信要求を行うか否かを決定し、ラーニングフレーム送信要求を行った送信元MACアドレス(MAC SA)をMAC SAテーブルキャッシュに記憶することを特徴とする。
請求項34の本発明のラーニング方法は、前記ノードが、MAC SAテーブルキャッシュのエージングを行い、CPUに対してラーニングフレーム送信要求を行うことを特徴とする。
請求項35の本発明のラーニング方法は、前記ノードが、ラーニングフレーム処理を行うラーニング管理プログラムを備えることを特徴とする。
請求項36の本発明は、複数のノードを接続したネットワークのラーニング方法において、前記ネットワークに属するノードが、ラーニングフレーム処理を行うラーニング管理プログラムを備えることを特徴とする。
請求項37の本発明のラーニング方法は、前記ノードが、各種設定を行う機器制御プログラムを備えることを特徴とする。
請求項38の本発明のラーニング方法は、前記ノードが、入力フレームを判別することを特徴とする。
請求項39の本発明のラーニング方法は、前記ネットワークに属するノードが、エージング対象エントリのエージングを行い、エージング対象エントリをエージング管理テーブルに記憶することを特徴とする。
請求項40の本発明のラーニング方法は、前記ノードが、宛先MACアドレス(MAC DA)に対する出力ポートおよびタグ操作を、MACフォワーディングテーブルメモリに記憶することを特徴とする。
請求項41の本発明のラーニング方法は、前記ノードが、タグに対するブロードキャスト時の出力先ポートを、ブロードキャストテーブルメモリに記憶することを特徴とする。
請求項42の本発明のラーニング方法は、前記ノードが、フォワーディングタグに対する出力ポートを、タグフォワーディングテーブルメモリに記憶することを特徴とする。
請求項43の本発明のラーニング方法は、前記ノードが、テーブル、エージング回路、およびテーブル読込、書込回路をもったフォワーディングテーブルを備えることを特徴とする。
請求項44の本発明のラーニング方法は、前記ノードが、フォワーディングタグに対するMACフォワーディングテーブルメモリ上の番地を、TAGアドレス管理テーブルに記憶することを特徴とする。
請求項45の本発明は、複数のノードを接続したネットワークのラーニング方法において、前記ネットワークに属するノードが、イーサネット(R)のラーニング機能を非対称に流れるフローにも適用することを特徴とする。
請求項46の本発明のネットワークシステムは、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、フレームにソースタグを付加して送信することを特徴とすることを特徴とする。
請求項47の本発明のネットワークシステムは、前記ノードが、前記ソースタグ付きフレームにより、付加すべきフォワーディングタグをラーニングすることを特徴とする。
請求項48の本発明のネットワークシステムは、前記ノードが、エージング管理テーブルを参照して、ソースタグもしくはフォワーディングタグのどちらを付加するかを決定することを特徴とする。
請求項49の本発明のネットワークシステムは、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、フレームが入力されたポートを元に、付加すべきフォワーディングタグを決定することを特徴とする。
請求項50の本発明のネットワークシステムは、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、入力されたフレームに付加されているVLANタグを元に、付加すべきフォワーディングタグを決定することを特徴とする。
請求項51の本発明のネットワークシステムは、前記ノードが、前記入力ポートと、前記VLANタグの双方を元に、付加すべきフォワーディングタグを決定することを特徴とする。
請求項52の本発明のネットワークシステムは、前記ノードが、入力されたMACアドレスを別のMACアドレスに変換して出力することを特徴とする。
請求項53の本発明のネットワークシステムは、前記入力MACアドレスが、Universal Administrative MACアドレスであり、前記出力MACアドレスがトンネリングフレーム識別用MACアドレスであることを特徴とする。
請求項54の本発明のネットワークシステムは、前記ノードが、テーブルを参照して付加するタグの種別を決定するテーブル管理器を備えることを特徴とする。
請求項55の本発明のネットワークシステムは、前記ノードが、入力ポートおよび入力VLAN参照して付加するタグの種別を決定するための入力ポートテーブルメモリを備えることを特徴とする。
請求項56の本発明のネットワークシステムは、複数のノードを接続したネットワークにおいて、前記ノード間を流れるフレームが、ソースタグを備えることを特徴とする。
請求項57の本発明のネットワークシステムは、前記フレームが、トンネリングフレーム識別用MACアドレスを備えることを特徴とする。
請求項58の本発明のラーニングブリッジノードは、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、フレームにソースタグを付加して送信することを特徴とする。
請求項59の本発明のラーニングブリッジノードは、前記ノードが、前記ソースタグ付きフレームにより、付加すべきフォワーディングタグをラーニングすることを特徴とする。
請求項60の本発明のラーニングブリッジノードは、前記ノードが、エージング管理テーブルを参照して、ソースタグもしくはフォワーディングタグのどちらを付加するかを決定することを特徴とする。
請求項61の本発明のラーニングブリッジノードは、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、フレームが入力されたポートを元に、付加すべきフォワーディングタグを決定することを特徴とする。
請求項62の本発明のラーニングブリッジノードは、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、入力されたフレームに付加されているVLANタグを元に、付加すべきフォワーディングタグを決定することを特徴とする。
請求項63の本発明のラーニングブリッジノードは、前記ノードが、前記入力ポートと、前記VLANタグの双方を元に、付加すべきフォワーディングタグを決定することを特徴とする。
請求項64の本発明のラーニングブリッジノードは、前記ノードが、入力されたMACアドレスを別のMACアドレスに変換して出力することを特徴とする。
請求項65の本発明のラーニングブリッジノードは、前記入力MACアドレスが、Universal Administrative MACアドレスであり、前記出力MACアドレスがトンネリングフレーム識別用MACアドレスであることを特徴とする。
請求項66の本発明のラーニングブリッジノードは、前記ノードが、テーブルを参照して付加するタグの種別を決定するテーブル管理器を備えることを特徴とする。
請求項67の本発明のラーニングブリッジノードは、前記ノードが、入力ポートおよび入力VLAN参照して付加するタグの種別を決定するための入力ポートテーブルメモリを備えることを特徴とする。
請求項68の本発明のラーニングブリッジノードは、複数のノードを接続したネットワークにおいて、前記ノード間を流れるフレームが、ソースタグを備えることを特徴とする。
請求項69の本発明のラーニングブリッジノードは、前記フレームが、トンネリングフレーム識別用MACアドレスを備えることを特徴とする。
請求項70の本発明のラーニング方法は、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、フレームにソースタグを付加して送信することを特徴とする。
請求項71の本発明のラーニング方法は、前記ノードが、前記ソースタグ付きフレームにより、付加すべきフォワーディングタグをラーニングすることを特徴とする。
請求項72の本発明のラーニング方法は、前記ノードが、エージング管理テーブルを参照して、ソースタグもしくはフォワーディングタグのどちらを付加するかを決定することを特徴とする。
請求項73の本発明のラーニング方法は、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、フレームが入力されたポートを元に、付加すべきフォワーディングタグを決定することを特徴とする。
請求項74の本発明のラーニング方法は、複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、入力されたフレームに付加されているVLANタグを元に、付加すべきフォワーディングタグを決定することを特徴とする。
請求項75の本発明のラーニング方法は、前記ノードが、前記入力ポートと、前記VLANタグの双方を元に、付加すべきフォワーディングタグを決定することを特徴とする。
請求項76の本発明のラーニング方法は、前記ノードが、入力されたMACアドレスを別のMACアドレスに変換して出力することを特徴とする。
請求項77の本発明のラーニング方法は、前記入力MACアドレスが、Universal Administrative MACアドレスであり、前記出力MACアドレスがトンネリングフレーム識別用MACアドレスであることを特徴とする。
請求項78の本発明のラーニング方法は、前記ノードが、テーブルを参照して付加するタグの種別を決定するテーブル管理器を備えることを特徴とする。
請求項79の本発明のラーニング方法は、前記ノードが、入力ポートおよび入力VLAN参照して付加するタグの種別を決定するための入力ポートテーブルメモリを備えることを特徴とする。
請求項80の本発明のラーニング方法は、複数のノードを接続したネットワークにおいて、前記ノード間を流れるフレームが、ソースタグを備えることを特徴とする。
請求項81の本発明のラーニング方法は、前記フレームが、トンネリングフレーム識別用MACアドレスを備えることを特徴とする。
図2は、本発明の第1の実施例における、イーサネット(R)フレームの構成を示すブロック図である。
図3は、本発明の第1の実施例における、VLAN Taggedイーサネット(R)フレームの構成を示すブロック図である。
図4は、本発明の第1の実施例における、VLANタグの構成を示すブロック図である。
図5は、本発明の第1の実施例における、フォワーディングタグ付きイーサネット(R)フレームの構成を示すブロック図である。
図6は、本発明の第1の実施例における、タグの構成を示すブロック図である。
図7は、本発明の第1の実施例における、ラーニングフレームの構成を示すブロック図である。
図8は、本発明の第1の実施例における、ラーニングフレームの構成を示すブロック図である。
図9は、本発明の第1の実施例における、ノードG1の構成を詳細に示したブロック図である。
図10は、本発明の第1の実施例における、パケットフォワーディング機構20の構成を詳細に示したブロック図である。
図11は、本発明の第1の実施例における、フレーム解析器201の構成を詳細に示したブロック図である。
図12は、本発明の第1の実施例における、ラーニングフレーム送信管理器202の構成を詳細に示したブロック図である。
図13は、本発明の第1の実施例における、MACSAテーブルキャッシュ2025の構成を詳細に示したブロック図である。
図14は、本発明の第1の実施例における、テーブルサーチ器203の構成を詳細に示したブロック図である。
図15は、本発明の第1の実施例における、フォワーディングテーブル204の構成を詳細に示したブロック図である。
図16は、本発明の第1の実施例における、MACフォワーディングテーブルメモリ2043の構成を詳細に示したブロック図である。
図17は、本発明の第1の実施例における、タグフォワーディングテーブルメモリ2041の構成を詳細に示したブロック図である。
図18は、本発明の第1の実施例における、ブロードキャストテーブルメモリ2042の構成を詳細に示したブロック図である。
図19は、本発明の第1の実施例における、エージング管理テーブル2044の構成を詳細に示したブロック図である。
図20は、本発明の第1の実施例における、フレーム書換器205の構成を詳細に示したブロック図である。
図21は、本発明の第1の実施例における、フレーム合成器206の構成を詳細に示したブロック図である。
図22は、本発明の第1の実施例における、フレーム転送器207の構成を詳細に示したブロック図である。
図23は、本発明の第1の実施例における、CPU30内でソフトウェアにより実現される処理の構成を表すブロック図である。
図24は、本発明の第1の実施例における、TAGアドレス管理テーブル70134の構成を示す表である。
図25は、本発明の第1の実施例における、イベント01の動作を詳細に説明した流れ図である。
図26は、本発明の第1の実施例における、イベント11の動作を詳細に説明した流れ図である。
図27は、本発明の第1の実施例における、イベント03の動作を詳細に説明した流れ図である。
図28は、本発明の第1の実施例における、イベント12の動作を詳細に説明した流れ図である。
図29は、本発明の第1の実施例における、イベント05の動作を詳細に説明した流れ図である。
図30は、本発明の第1の実施例における、イベント13の動作を詳細に説明した流れ図である。
図31は、本発明の第1の実施例における、イベント06の動作を詳細に説明した流れ図である。
図32は、本発明の第1の実施例における、イベント14の動作を詳細に説明した流れ図である。
図33は、本発明の第1の実施例における、ツリーT0の構成例を示すトポロジ図である。
図34は、本発明の第1の実施例における、ツリーT1の構成例を示すトポロジ図である。
図35は、本発明の第1の実施例における、ツリーT2の構成例を示すトポロジ図である。
図36は、本発明の第1の実施例における、ツリーT3の構成例を示すトポロジ図である。
図37は、本発明の第1の実施例における、ツリーT4の構成例を示すトポロジ図である。
図38は、本発明の第1の実施例における、動作例1のシーケンス図である。
図39は、本発明の第1の実施例における、動作例2のシーケンス図である。
図40は、本発明の第1の実施例における、動作例3のシーケンス図である。
図41は、本発明の第2の実施例における、ソースタグ付きイーサネット(R)フレーム62Aの構成を示すブロック図である。
図42は、本発明の第2の実施例における、テーブルサーチ器203Aの構成を示すブロック図である。
図43は、本発明の第2の実施例におけるラーニング管理器202Aの構成を詳細に示したブロック図である。
図44は、本発明の第2の実施例における、イベント01の動作を詳細に説明した流れ図である。
図45は、本発明の第2の実施例における、動作例1のシーケンス図である。
図46は、本発明の第2の実施例における、動作例2のシーケンス図である。
図47は、本発明の第3の実施例における、テーブルサーチ器203Bの構成を示すブロック図である。
図48は、本発明の第3の実施例における、動作例1のシーケンス図である。
図49は、本発明の第4の実施例における、テーブルサーチ器203Cの構成を示すブロック図である。
図50は、本発明の第4の実施例における、フォワーディングテーブル204Cの構成を示すブロック図である。
図51は、本発明の第4の実施例における、入力ポートテーブルメモリ2049の構成を示すブロック図である。
図52は、本発明の第4の実施例における、物理ネットワークの構成例を示すブロック図である。
図53は、本発明の第4の実施例における、ソースタグ付きイーサネット(R)フレーム62Cの構成を示すブロック図である。
図1は、本発明を適用する物理ネットワークの構成例を示すブロック図である。
図1の物理ネットワークは、ノードG1〜G4をリング状に接続して構成されており、ノードG1は、ダウンリンクポート(D/L)とアップリンクポート(U/L)を有するイーサネット(R)スイッチであり、そのダウンリンクポートにはクライアントを接続し、アップリンクポートにはスイッチを接続する。本実施例では、ダウンリンクポート(D/L)にクライアントC1が、アップリンクポート(U/L)にノードG3およびノードG4が、それぞれ接続されている。
ノードG1は、図1の物理ネットワークにおいて以下に示すような動作を行なう。
(1)クライアントC1から到着したフレームを、必要に応じフォワーディング用等のタグ(例えば、あて先クライアントが接続されているノードのIDやアドレス)を付加した上で、ノードG3とノードG4の一方もしくは両方に転送する。
(2)ノードG3から到着したフレームを、必要であれば付加されているタグを削除した上で、クライアントC1とノードG4の一方もしくは両方に転送する。
例えば、到着したフレームがクライアントC1宛のものであれば、クライアントC1が自ノードに接続されているため、付加されているタグ(ノードG1のアドレス等の情報)を削除してクライアントC1に転送する。
(3)ノードG4から到着したフレームを、必要であれば付加されているタグを削除した上で、クライアントC1とノードG3の一方もしくは両方にに転送する。
例えば、到着したフレームがクライアントC1宛のものであれば、クライアントC1が自ノードに接続されているため、付加されているタグ(ノードG1のアドレス等の情報)を削除してクライアントC1に転送する。
(4)ラーニングフレームを、ノードG3もしくはノードG4との間で送受信し、(1)から(3)に示したフレーム転送を行う際に必要なアドレス情報の交換を行う。
(5)高速スパニングツリープロトコルにおいて規定されているBPDU(Bridge Protocol Data Unit)フレームを、ノードG3もしくはノードG4との間で送受信し、(1)から(4)に示した動作を行う際に必要な経路情報の交換を行う。
ノードG2は、ノードG1と同様の構成と機能を持つノードであり、ダウンリンクポート(D/L)とアップリンクポート(U/L)を有するイーサネット(R)スイッチである。ダウンリンクポートにはクライアントを接続し、アップリンクポートにはスイッチを接続する。本実施例では、ダウンリンクポート(D/L)にクライアントC2が、アップリンクポート(U/L)にノードG3およびノードG4が、それぞれ接続されている。
ノードG2は、図1の物理ネットワークにおいて以下に示すような動作を行なう。
(1)クライアントC2から到着したフレームを、必要に応じフォワーディング用等のタグ(例えば、あて先クライアントが接続されているノードのIDやアドレス)を付加した上で、ノードG3とノードG4の一方もしくは両方に転送する。
(2)ノードG3から到着したフレームを、必要であれば付加されているタグを削除した上で、クライアントC2とノードG4の一方もしくは両方に転送する。
例えば、到着したフレームがクライアントC2宛のものであれば、クライアントC2が自ノードに接続されているため、付加されているタグ(ノードG2のアドレス等の情報)を削除してクライアントC2に転送する。
(3)ノードG4から到着したフレームを、必要であれば付加されているタグを削除した上で、クライアントC2とノードG3の一方もしくは両方に転送する。
例えば、到着したフレームがクライアントC2宛のものであれば、クライアントC2が自ノードに接続されているため、付加されているタグ(ノードG2のアドレス等の情報)を削除してクライアントC2に転送する。
(4)ラーニングフレームを、ノードG3もしくはノードG4との間で送受信し、(1)から(3)に示したフレーム転送を行う際に必要なアドレス情報の交換を行う。
(5)高速スパニングツリープロトコルにおいて規定されているBPDUフレームを、ノードG3もしくはノードG4との間で送受信し、(1)から(4)に示した動作を行う際に必要な経路情報の交換を行う。
ノードG3は、ノードG1と同様の構成と機能を持つノードであり、ダウンリンクポート(D/L)とアップリンクポート(U/L)を有するイーサネット(R)スイッチである。ダウンリンクポートにはクライアントを接続し、アップリンクポートにはスイッチを接続する。本実施例では、ダウンリンクポート(D/L)にクライアントC3が、アップリンクポート(U/L)にノードG1およびノードG2が、それぞれ接続されている。
ノードG3は、図1の物理ネットワークにおいて以下に示すような動作を行なう。
(1)クライアントC3から到着したフレームを、必要に応じフォワーディング用等のタグ(例えば、あて先クライアントが接続されているノードのIDやアドレス)を付加した上で、ノードG1とノードG2の一方もしくは両方に転送する。
(2)ノードG1から到着したフレームを、必要であれば付加されているタグを削除した上で、クライアントC3とノードG2の一方もしくは両方に転送する。
例えば、到着したフレームがクライアントC3宛のものであれば、クライアントC3が自ノードに接続されているため、付加されているタグ(ノードG3のアドレス等の情報)を削除してクライアントC3に転送する。
(3)ノードG2から到着したフレームを、必要であれば付加されているタグを削除した上で、クライアントC3とノードG1の一方もしくは両方に転送する。
例えば、到着したフレームがクライアントC3宛のものであれば、クライアントC3が自ノードに接続されているため、付加されているタグ(ノードG3のアドレス等の情報)を削除してクライアントC3に転送する。
(4)ラーニングフレームを、ノードG1もしくはノードG2との間で送受信し、(1)から(3)に示したフレーム転送を行う際に必要なアドレス情報の交換を行う。
(5)高速スパニングツリープロトコルにおいて規定されているBPDUフレームを、ノードG1もしくはノードG2との間で送受信し、(1)から(4)に示した動作を行う際に必要な経路情報の交換を行う。
ノードG4は、ノードG1と同様の構成と機能を持つノードであり、ダウンリンクポート(D/L)とアップリンクポート(U/L)を有するイーサネット(R)スイッチである。ダウンリンクポートにはクライアントを接続し、アップリンクポートにはスイッチを接続する。本実施例では、ダウンリンクポート(D/L)には何も接続されておらず、アップリンクポート(U/L)にノードG1およびノードG2が、それぞれ接続されている。
ノードG4は、図1の物理ネットワークにおいて以下に示すような動作を行なう。
(1)ノードG1から到着したフレームを、必要であればノードG2に転送する。
(2)ノードG2から到着したフレームを、必要であればノードG1に転送する。
(3)ラーニングフレームを、ノードG1もしくはノードG2との間で送受信し、(1)から(2)に示したフレーム転送動作を行う際に必要なアドレス情報の交換を行う。
(4)高速スパニングツリープロトコルにおいて規定されているBPDUフレームを、ノードG1もしくはノードG2との間で送受信し、(1)から(3)に示した動作を行う際に必要な経路情報の交換を行う。
クライアントC1は、パソコン、サーバ、ルータ、スイッチ、およびその他のイーサネット(R)フレームを送受信するすべての電子機器を意味する。本実施例においては、クライアントC1を、ICMP PINGをやり取りすることのできるパソコンと基本ソフトウェアの組合せとしてみなした場合について説明を行う。なお、ここで説明する動作は、ICMP PING以外のアプリケーションにおいても同様に行うことができる。このアプリケーションには、NetBIOSやAppleTalkによるファイルやプリンタの共有のほか、TCP/IP、UDP/IP、およびこれらを利用したアプリケーションである、HTTP、TELNET、FTP、SMTP、POP、SSL等が含まれる。本構成例においては、クライアントC1は、ノードG1のダウンリンクポート(D/L)に接続されている。
クライアントC2は、クライアントC1と同様のクライアントであり、パソコン、サーバ、ルータ、スイッチ、およびその他のイーサネット(R)フレームを送受信するすべての電子機器を意味する。本実施例においては、クライアントC2を、ICMP PINGをやり取りすることのできるパソコンと基本ソフトウェアの組合せとしてみなした場合について説明を行う。本構成例においては、クライアントC2は、ノードG2のダウンリンクポート(D/L)に接続されている。
クライアントC3は、クライアントC1と同様のクライアントであり、パソコン、サーバ、ルータ、スイッチ、およびその他のイーサネット(R)フレームを送受信するすべての電子機器を意味する。本実施例においては、クライアントC3を、ICMP PINGをやり取りすることのできるパソコンと基本ソフトウェアの組合せとしてみなした場合について説明を行う。本構成例においては、クライアントC3は、ノードG3のダウンリンクポート(D/L)に接続されている。
図2は、図1のネットワーク上を転送されるイーサネット(R)フレームの構成を示すブロック図である。
IEEE802.3イーサネット(R)フレーム60は、イーサネット(R)で使用されるフレームフォーマットであり、図2のフレームフォーマットで形成される。宛先MACアドレスには、ネットワーク制御フレームの場合、規格により、特別なMACアドレスが格納される。
図3は、図1のネットワークを流れるVLAN Tagged(VLANタグ付き)イーサネット(R)フレームの構成を示すブロック図である。
IEEE802.3 VLANTaggedイーサネット(R)フレーム61は、IEEE802.3イーサネット(R)フレーム60のVLANタグ606付きのフレームである。イーサネット(R)で使用されるフレームフォーマットであり、図3のフレームフォーマットで形成される。宛先MACアドレスには、ネットワーク制御フレームの場合、規格により、特別なMACアドレスが格納され、ネットワーク分離情報を格納するためのVLANタグ606をフレーム内に持つ。
図4は、図3のVLAN Taggedイーサネット(R)フレームにおけるVLANタグの構成を示すブロック図である。
VLANタグ606のフレームフォーマットを図4に示す。タグタイプ6061には、フレームがタグ付きであることを示すタグの識別IDが格納され、規格上は0x8100が格納される。優先度6062には、0d000〜0d111までで、3ビット使用し、8段階のフレームの優先情報が格納される。CFI6063は、トークンリングで使用されるソースルーティングのための経路指定情報が入っていることを示す。VLAN ID6064は、ネットワークを分離するためのID情報が格納される。フレームを中継するノードは、本IDを参照することで、ID単位でフレームを転送する経路を制限し、ネットワーク分離を行う。
図5は、図1のネットワーク上を転送されるフォワーディングタグ付きイーサネット(R)フレームの構成を示すブロック図である。
フォワーディングタグ付きイーサネット(R)フレーム62は、IEEE802.3イーサネット(R)フレーム60のタグ620付きのフレームである。イーサネット(R)で使用されるフレームフォーマットと同じフレームフォーマットであり、図5のフレームフォーマットで形成される。宛先MACアドレスには、ネットワーク制御フレームの場合、規格により、特別なMACアドレスが格納され、フレームを中継するための情報を格納するためのタグ620を持つことを特徴とする。タグ620の優先度・タグ識別情報6201には、フォワーディングタグを示すビットが使用される。
図6は、図5のフォワーディングタグ付きイーサネット(R)フレームにおけるタグ620の構成を示すブロック図である。
タグ620のフレームフォーマットを図6に示す。タグタイプ6061には、フレームがタグ付きであることを示すタグの識別IDが格納され、規格上と同じ0x8100が格納される。優先度・タグ識別情報6201には、0d000〜0d111までで、3ビット使用し、4段階のフレームの優先情報と、タグの種類を示す情報が格納される。タグの種類には、フレームの宛先ノードを示すフォワーディングタグ、ブロードキャスト転送元の示すソースタグなど、ユーザの用途によってタグに格納する情報を定義可能である。CFI6063は、トークンリングで使用されるソースルーティングのための経路指定情報が入っていることを示す。VLANID6202には、タグの種類に応じて、送信先クライアントが接続されているノードのノードアドレス、または、送信元ノードのノードアドレス等の情報が格納される。
図7は、図1のネットワーク上を流れるラーニングフレームの構成を示すブロック図である。
ラーニングフレーム63は、IEEE802.3イーサネット(R)フレーム60に、タグ620付きのフレームであり、宛先MACアドレスに、フレームがラーニングフレームであることを示すラーニングフレーム識別用MACアドレス631が格納されることを特徴とする。タグ620の、優先度・タグ識別情報6201には、ブロードキャストタグを示すビットが使用される。また、イーサネット(R)で使用されるフレームフォーマットと同じフレームフォーマットであり、図5と同じフレームフォーマットで形成される。
図8は、図1のネットワークを流れるVLANタグ付きラーニングフレームの構成を示すブロック図である。
ラーニングフレーム63は、IEEE802.3イーサネット(R)フレーム60に、タグ620付きのフレームであり、宛先MACアドレスに、フレームがラーニングフレームであることを示すラーニングフレーム識別用MACアドレス631が格納されることを特徴とする。タグ620の、優先度・タグ識別6201には、ブロードキャストタグを示すビットが使用される。また、イーサネット(R)で使用されるフレームフォーマットと同じフレームフォーマットであり、図5のフレームフォーマットにVLANタグを挿入したフォーマットで形成される。
図9は、図1に示したノードG1(スイッチングハブ1)の構成を詳細に示したブロック図である。
図9において、スイッチングハブ1(すなわちノードG1)は、本発明の方法及び回路構成を適用したパケットフォワーディング機構20、CPU30、メインメモリ40、コンソールI/O51を備えて構成されるイーサネット(R)スイッチである。スイッチングハブ1は、I/F(1)、I/F(2)、I/F(3)、I/F(4)に接続されるPHY15、PHY16、PHY17、PHY18、MAC11、MAC12、MAC13、MAC14を使用してイーサネット(R)フレームの送受信を行う。
本発明を適用したパケットフォワーディング機構20は、受信したフレームを適切なインターフェースへ転送を行い、CPU30並びにメインメモリ40には、転送制御プログラムが格納され、パケットフォワーディング機構に制御指示を行う。
図10は、図9に記載のパケットフォワーディング機構20の構成を詳細に示したブロック図である。
パケットフォワーディング機構20は、従来の回路であるフレーム書換器205、フレーム合成器206、フレーム転送器207に加え、本発明の機能を搭載したフレーム解析器201、ラーニングフレーム送信管理器202、フォワーディングテーブル204、テーブルサーチ器203を備えて構成される。
パケットフォワーディング機構20は、図2のIEEE802.3イーサネット(R)フレーム60、図3のIEEE802.3 VLANTaggedイーサネット(R)フレーム61、図5のフォワーディングタグ付きイーサネット(R)フレーム、図6のラーニングフレーム63を、入力フレーム101として受信し、I/F(1)、I/F(2)、I/F(3)、I/F(4)に接続されるMAC11、MAC12、MAC13、MAC14へ、出力フレーム102として転送する機構を有する。
CPU30においては、ネットワークの制御並びに機器制御のためのプログラムであるネットワーク制御プログラム304や機器制御プログラム305が動作していると共に、フレームの送信処理や後述する図16、図17、図18のフォワーディングテーブルメモリの情報の操作を行なうフォワーディングテーブル制御プログラム301が動作している。フォワーディングテーブル制御プログラム301は、同様にCPU30上で動作するラーニング管理プログラム302やスパニングツリー制御プログラム303の指示により、ネットワーク制御に必要な情報を、テーブル書込情報3012と、テーブル書込アドレス3011を、フォワーディングテーブル204に対して出力することで、ネットワーク制御に必要な情報の送信並びに受信の制御を行う。
メインメモリ40は、図23に示したCPU30上で実行される各プログラム、および、図23に記載のメモリ複製情報3013を記憶する。
メモリ複製情報3013は、タグフォワーディングテーブルメモリ70131、ブロードキャストフォワーディングテーブルメモリ70132、MACフォワーディングテーブルメモリ70133、TAGアドレス管理テーブル70134の、4つのテーブルを持つ。
タグフォワーディングテーブルメモリ70131は、図15に記載のタグフォワーディングテーブルメモリ2041と同一内容のテーブルを、メインメモリ40上に作成したものである。
ブロードキャストテーブルメモリ70132は、図15に記載のブロードキャストテーブルメモリ2041と同一内容のテーブルを、メインメモリ40上に作成したものである。
MACフォワーディングテーブルメモリ70133は、図15に記載のMACフォワーディングテーブルメモリ2043と同一内容のテーブルを、メインメモリ40上に作成したものである。
図11は、図10に記載のフレーム解析器201の構成を詳細に示したブロック図である。
図11のフレーム解析器201は、入力フレーム101のフレームを解析し、転送経路を決定するためのテーブルサーチキー情報20131、フレームヘッダ情報20141、また制御フレーム(例えば、BPDUフレーム)をCPU30へ送信する機能を有する。
フレームタイプ判定器2011は、入力フレーム101のフレームの種類、入力ポートの種類を判定する。すなわち、フレームの種類が、IEEE802.3イーサネット(R)フレーム60、IEEE802.3 VLANTaggedイーサネット(R)フレーム61、フォワーディングタグ付きイーサネット(R)フレーム、ラーニングフレーム63のどの種類であるかを判定する。入力ポートの種類については、図23の機器制御プログラム305から設定されるポートの属性、アップリンクポートであるかダウンリンクポートであるかの情報を元に、入力ポート番号より入力ポートの種別を判定する。判定情報は、サーチキー決定器2013、フレームヘッダ解析器2014に送信する。また、入力フレーム101を、制御フレーム受信器2012並びに、フレームヘッダ解析器2014に送信する。
フレームヘッダ解析器2014は、入力フレーム101の情報と、フレームタイプ判定機111から送信される判定情報から、フレームヘッダ情報の抽出並びに、宛先MACアドレス、タグの種類を判定する。
宛先MACアドレスについては、通常MACアドレス、ネットワーク制御フレーム用のMACアドレスか、ラーニングフレーム識別用MACアドレスか判定する。タグの種類については、VLANタグ606であるか、フォワーディングタグ(自ノード宛、他ノード宛)であるか、ブロードキャストタグであるか判定する。これら判定情報は、サーチキー決定器2013に送信する。また、フレームの入力ポート情報と宛先MACアドレス601、送信元MACアドレス602、VLANタグ606、タグ620、フレームから抽出したイーサネット(R)属性情報603をフレームヘッダ情報20141、ペイロード604を入力フレームペイロード情報20111として出力する。
サーチーキー決定器2013は、フレームタイプ判定器2011、フレームヘッダ解析器2014から送信される、フレームの種類、入力ポートの種類、宛先MACアドレスの種類、タグの種類の情報から、テーブルサーチに使用するキーの決定を行う。
決定したキー情報は、テーブルサーチキー情報20131として出力する。サーチキーの決定方法は、MAC宛先アドレスがネットワーク制御フレーム用である場合、または、ラーニングフレーム識別用のMACアドレスである場合は、CPU宛ての転送のキーが決定され、その場合、制御フレーム受信器2012に対しCPU宛転送フレームであることを通知する。
他ノード宛のフォワーディングタグ(宛先クライアントが接続されているノードのアドレス等が格納されている)付きイーサネット(R)フレーム62の場合は、タグフォワーディングテーブル並びにブロードキャストフォワーディングテーブルのサーチを行うためのキー情報(例えば、タグ620に格納されている情報等)、自ノード宛のフォワーディングタグ付きイーサネット(R)フレーム62、IEEE802.3 イーサネット(R)フレーム60、IEEE802.3 VLAN Taggedイーサネット(R)フレーム61の場合は、MACフォワーディングテーブル並びにブロードキャストフォワーディングテーブルをサーチを行うためのキー情報(フレーム60と62の場合は、宛先MACアドレス601に格納されている情報、フレーム61の場合は、宛先MACアドレス601とVLANタグ606に格納されている情報)を出力する。
制御フレーム受信器2012は、サーチキー決定器から、CPU宛転送フレームの指示があった場合に、フレームタイプ判定器2011から入力される入力フレーム101をCPU宛転送フレーム20121として出力する。
図12は、図10に記載のラーニングフレーム送信管理器202の構成を詳細に示したブロック図である。
図12のラーニングフレーム送信管理器202は、ラーニングフレームの送信要求の管理を行い、同一フレームに対して、CPU30にラーニング動作要求を頻繁に行わないようにしてCPUの処理負荷を下げる機能を実現する、MACSAテーブルキャッシュ2025を備えている。また、このラーニングフレーム送信管理器202の動作により、ラーニング動作が必要なフレームの確認並びに、CPUへラーニングフレームの送信要求を行う。
ラーニングフレーム管理器2021は、フレーム解析器201より、フレームヘッダ情報20141を受取り、送信元MACアドレスをチェックし、ラーニングフレームの送信要求を行う。その時の動作は下記のようになる。
フレームヘッダ情報のMAC送信元アドレスを確認後、MAC SAテーブルキャッシュ2025を読込み、同じMAC送信元アドレスがエントリされていないかを確認する。確認後、エントリされていない場合は、送信要求器2023に、フレームヘッダ情報20141と共にラーニングフレーム送信要求20231を出力する。また、同時に、MAC送信元アドレス情報を、MAC SAテーブルキャッシュ2025にエントリする。なお、確認時、同一のMAC宛先アドレスがエントリされていた場合は、送信要求を出力しない。
また、MAC SAテーブルキャッシュ2025を、エージング要求受付器2022からの要求により、ゼロクリアする機能を持つ。
図13は、図12に記載のMACSAテーブルキャッシュ2025の構成を詳細に示したブロック図である。
MAC SAテーブルキャッシュ2025は、図13に示すように、フレームのMAC送信元アドレスを格納する機能を持ち、受信フレームのMAC送信元アドレス情報を保持する。このMAC SAテーブルキャッシュ2025には、新規フレームが受信された時にそのフレームのMAC送信元アドレスがMAC SA情報として格納される。2回目の受信時、同一情報が存在している際は、MAC送信元アドレスはエントリに格納されない。
送信要求器2023は、CPU30にラーニングフレームの送信要求を行う。ラーニングフレーム管理器2021から、ラーニングフレームの送信要求があった際、CPU30にラーニングフレームの送信処理を実行させるために、ラーニングフレーム送信要求20231を出力する。
エージング要求受付器2022は、CPU30からの、ラーニングエージング要求3021の受付けを行う。ラーニングエージング要求3021を受信すると、ラーニングフレーム管理器2021に、MAC SAテーブルキャッシュ2025のエントリを全てクリアする処理要求を行う。
図14のテーブルサーチ器203は、フレームの転送先を決定する機能を有し、テーブル管理器2031と、情報比較器2032を備えて構成される。
テーブル管理器2031は、テーブルサーチキー情報20131に従い、転送先の検索のためのフォワーディングテーブル204のテーブルサーチを行う。
フレームヘッダ情報20141は、テーブルサーチ器203からフレームヘッダの書換えを行うフレーム書換器205へ出力される。
また、テーブルサーチ器203は、テーブルサーチキー情報20131(例えば、VLAN ID・タグ情報6202に記載されている内容等)に基づいて、タグフォワーディングテーブルメモリ2041、MACフォワーディングテーブルメモリ2043、ブロードキャストフォワーディングテーブルメモリ2042へのサーチの指示を入力する。複数のサーチキーの情報が入力された場合には、タグフォワーディングテーブル>MACフォワーディングテーブル>ブロードキャストフォワーディングテーブルの優先順位で各テーブルへのサーチを行う指示をテーブル読込アドレス20311として、フォワーディングテーブル204に出力する。
各テーブルのサーチの結果については、情報比較器2032から、テーブルサーチキー情報20131とテーブル情報20451が一致した際にはヒット情報、異なった際にはミスヒット情報を受取り、ヒットするまで、同じテーブル上の異なるアドレスへのサーチまたは、次の優先順位のテーブルへのサーチ指示を、フォワーディングテーブル204に対して行う。また、MACフォワーディングテーブル参照時にヒットした際には、エントリヒット情報20312を出力し、テーブルメモリ読込制御回路2046を介して、図19のエージング管理テーブル2044に対して、ヒットしたMACフォワーディングテーブルのメモリアドレスをメモリアドレスとして、エントリ種別がMAC→Tagの際には、MAC−Tagエントリ管理情報、MAC→Portの際には、MAC−Portエントリ管理情報のエントリへエントリヒット情報20312を格納する。また、本実施例では、MACフォワーディングテーブルとエージング管理テーブルとのアドレス空間を対応させているので、上記のような処理で、エージング管理テーブルへの書き込みが実現可能となる。
また、テーブルサーチキー情報20131と、フォワーディングテーブル204から得たテーブル情報20451とを比較するために、テーブルサーチキー情報20131を情報比較器2032へ出力する。出力するテーブルサーチキー情報20131は、タグフォワーディングテーブルメモリ2041へのサーチを行う際はVLAN ID・タグ情報6202(送信先クライアントが接続しているノードのノードアドレス等の情報)を、MACフォワーディングテーブルメモリ2043へサーチを行う際は送信先MACアドレス601とVLANタグ606を、ブロードキャストフォワーディングテーブルメモリ2042へサーチを行う際は、VLAN ID・タグ情報6202とVLAN ID6064を出力する。なお、自ノード宛のフォワーディングタグ付きイーサネット(R)フレームの場合にのみ、情報比較器2032へ、タグ制御情報20322として、タグ削除の出力を行うように指示を行う。
情報比較器2032は、テーブル管理器2031がフォワーディングテーブル204へサーチを行った結果(テーブル情報20451)と、サーチ対象となるテーブルサーチキー情報20131との比較を行い、一致した場合、テーブルのエントリに格納されている出力ポート情報から出力ポートを決定する。前述の通り、テーブル管理器2031からは、サーチするテーブルに応じて、フレームの入力ポート情報並びに、VLAN ID・タグ情報6202、送信先MACアドレス601、VLANタグ606またはVLAN ID6064等の情報(テーブルサーチキー情報)を受取り、一方、フォワーディングテーブル204からは、テーブル管理器2031がフォワーディングテーブル204へテーブル読込指示を行った結果をテーブル情報20451として受取り、各テーブルの種類に応じてテーブルサーチキー情報20131とテーブル情報20451との比較を行い、それらが一致したらフレーム書き換え器に対してタグ情報20323およびタグ制御情報20322を出力し、さらに、テーブルのエントリに格納されている出力ポート情報を出力ポート情報20321として出力する。
また、出力ポート情報20321の出力時には、入力ポート情報と比較し、同じポート情報であった際には、フレームのループを防止するために出力ポート情報を出力せず、フレームは廃棄する。下記に各テーブル参照時における動作内容を示す。
タグフォワーディングテーブルメモリ2041への参照時は、以下のように動作する。タグフォワーディングテーブルメモリ2041のメモリアドレス(0x0000〜0x1000)はVLAN ID・タグ情報6202の値と対応させてあるので、即ち、VLAN ID・タグ情報6202が、参照するメモリアドレスとなっているため、情報比較を行う必要はない。よって、VLAN ID・タグ情報6202に格納された値の示すアドレス(エントリ)に存在するタグフォワーディングテーブルメモリ2041の出力ポート情報、障害時出力ポート情報(図17参照)を出力ポート情報20321へ出力する。なお、テーブルサーチキー情報20131とテーブル情報20451と比較した結果、一致していない場合は、テーブル管理器2031に対して、エントリミスヒットの情報を出力する。
MACフォワーディングテーブルメモリ2043への参照時は、テーブルサーチキー情報20131と、図16のMACフォワーディングテーブルメモリ2043のテーブルエントリ上のMAC宛先アドレス、送信先1段目TAG情報を比較し、一致した場合は、テーブルエントリに記載されている出力ポート情報、障害出力ポート情報は出力ポート情報20321へ出力、タグ情報はタグ情報20323、タグ制御情報はタグ制御情報20322として出力する。一致しなかった際には、テーブル管理器2031に対して、エントリミスヒットの情報を出力する。
ブロードキャストフォワーディングテーブルメモリ2042への参照時は、以下のように動作する。ブロードキャストフォワーディングテーブルメモリ2042のメモリアドレス(0x0000〜0x1000)はVLAN ID・タグ情報6202またはVLAN ID6064の値と対応させてあるので、即ち、テーブルサーチキー情報20131は、VLAN ID・タグ情報6202、またはVLAN ID6064が、参照するメモリアドレスとなっているため、情報比較を行う必要はない。図18のブロードキャストフォワーディングテーブルメモリ2042の複数出力ポート情報は、複数出力ポート情報として登録されていないポート番号が入力ポート情報と一致していないか確認後、一致していた場合はフレームは廃棄、一致していない場合は、出力ポート情報20321として出力する。なお、参照メモリアドレス先にエントリがない場合は、テーブル管理器2031に対して、エントリミスヒットの情報を出力する。
図15は、図10に記載のフォワーディングテーブル204の構成を詳細に示したブロック図である。
図15のフォワーディングテーブル204には、フレームを転送するための情報がテーブル情報として格納される。
テーブルメモリ読込制御回路2046は、テーブルサーチ器203より、読込対処とするテーブルアドレスの読込を行い、その結果を出力する。各テーブルに対する読込処理は下記のように動作する。
(1)図17のタグフォワーディングテーブルメモリ2041への読込時は、テーブル読込アドレス20311として、VLAN ID・タグ情報6202を受取り、その情報と同じメモリアドレスを参照し、そこにエントリされている、出力ポート情報、障害時出力ポート情報をメモリ情報出力回路2045へ出力する。
(2)図16のMACフォワーディングテーブルメモリ2043への読込時は、テーブル読込アドレス20311を受信した後、そのアドレスをメモリアドレスとし、図19に示すエージング管理テーブル2044の参照を行い、MAC−Tagエントリ管理情報、MAC−Portエントリ管理情報を参照する。その後、2つのエントリが双方共にエントリ無効でなければ、同じメモリアドレスを用いて、MACフォワーディングテーブルメモリ2043へアクセスし、テーブル情報を読込み、テーブルエントリ情報をメモリ情報出力回路2045へ出力する。なお、2つのエントリが双方ともにエントリ無効の場合は、MACフォワーディングテーブルメモリ2043は参照せず、エントリが無い事をエントリヒット情報20312として出力する。
(3)図18のブロードキャストフォワーディングテーブルメモリ2042への読込時は、テーブル読込アドレス20311として、VLAN ID・タグ情報6202または、VLAN ID6064を受取り、その情報と同じメモリアドレスを参照し、そこにエントリされている、出力ポート情報をメモリ情報出力回路2045へ出力する。
メモリ情報出力回路2045は、テーブルメモリ読込制御回路2046が読込みを行ったテーブルエントリ情報を、テーブル情報20451として、テーブルサーチ器203へ出力する。
図16は、図15に記載のMACフォワーディングテーブルメモリ2043の構成を詳細に示したブロック図である。
MACフォワーディングテーブルメモリ2043は、図16のテーブル構成で各エントリが格納され、IEEE802.3イーサネット(R)フレーム、IEEE803.3 VLAN Taggedイーサネット(R)フレームの転送先情報を格納するために使用される。メモリアドレス範囲は任意で、エージング管理テーブル2044と同じメモリアドレス範囲を持つ。本ブロック構成では一例として、0x00000〜0x7FFFFまでもち、最大8388706まで格納可能である。MAC宛先アドレスには、フレームの宛先MACアドレス601、宛先1段目TAG情報には、フレームのVLANタグ606に相当する物が格納される。また、エントリ種別して、タグ620を付与処理が発生するエントリを示すMAC→Tagと、タグ処理が発生しないMAC→Portの2種類のエントリ種別が管理される。出力ポート情報には転送先のポート番号、障害時出力ポート番号には、障害発生時の出力ポート番号、TAG制御情報には、フレームへのタグ挿入動作の有無、TAG情報には、タグ挿入時に挿入されるタグ情報が格納される。
図17は、図15に記載のタグフォワーディングテーブルメモリ2041の構成を示したブロック図である。このタグフォワーディングテーブルメモリは、文献3に記載のスパニングツリープロトコルを用いた方法で作成可能である。
タグフォワーディングテーブルメモリ2041は、図17のテーブル構成で各エントリが格納され、フォワーディングタグ付きフレームの転送先情報を格納するために使用される。メモリアドレス範囲は、0x0000〜0x1000で、最大で4096エントリ格納される。このメモリアドレスはVLAN6202の値に対応するように管理している。出力ポート情報にはフレームの転送先ポート番号、障害時出力ポート情報は、出力ポートが障害している時に転送するポート情報が格納される。
図18は、図15に記載のブロードキャストテーブルメモリ2042の構成を詳細に示したブロック図である。このブロードキャストフォワーディングテーブルは、従来既存のスパニングツリープロトコルを用いて作成可能である。
ブロードキャストフォワーディングテーブルメモリ2042は、図18のテーブル構成で各エントリが格納され、ブロードキャストタグ付きイーサネット(R)フレーム並びに、IEEE802.3イーサネット(R)フレーム、IEEE803.3VLAN Taggedイーサネット(R)フレームのブロードキャスト転送先情報を格納するために使用される。メモリアドレス範囲は、0x0000〜0x1000で、最大で4096エントリ格納される。また、このメモリアドレスはVLAN ID・タグ情報6202またはVLAN ID6064の値に対応するように管理している。複数出力ポート情報には、ブロードキャスト転送を行ってもよい複数のポート番号が格納される。
図19は、図15に記載のエージング管理テーブル2044の構成を詳細に示したブロック図である。
エージング管理テーブル2044は、図19の構成で各エントリが格納され、MACフォワーディングテーブルメモリ2043のエントリのアクセス状況の管理、エントリの有無を管理するために使用される。メモリアドレス範囲は任意で、MACフォワーディングテーブルメモリ2043と同じメモリアドレス範囲を持つ。MAC−TAGエントリ管理情報には、MACフォワーディングテーブルメモリのエントリ種別がMAC→Tagであるエントリのアクセス状況並びにエントリ有無情報が格納され、ノーヒットは使用されていないエントリ、ヒットは転送に使用されたエントリ、エントリ無効はエントリが無効であること、エントリ保護はエントリ削除できないことを示す。同様に、MAC−Portエントリ管理情報には、MACフォワーディングテーブルメモリのエントリ種別が、MAC→Portであるエントリのアクセス状況並びにエントリ有無情報が格納される。
エージング制御器2047は、エージング管理テーブル2044のエントリに対してエージング動作を行う。エージングは下記のように動作する。CPU30からMAC/TAGエージング制御3022として、MAC→Portまたは、MAC−Tagどちらのエントリ種別にエージングを掛けるかの情報と共にエージング要求を受付ける。要求を受付けると、エージング管理テーブル2044にアクセスし、対象のエントリ種別の情報を全て読込み、エントリ上、ヒットで格納されている物はノーヒットへのエントリ内容の変更、ノーヒットで格納されている物は、エントリ無効へのエントリ内容の変更を行うと共に、そのメモリアドレスを、CPU30へ通知する。
テーブルメモリ書込制御回路は2048は、各テーブルへのエントリの書込み動作を行う。テーブル書込アドレス3011から、MACフォワーディングテーブルメモリ2043、タグフォワーディングテーブル2041、ブロードキャストテーブルメモリ2042の何れかのメモリアドレスが入力されると、そのメモリアドレスに対し、テーブル書込情報3012をテーブルエントリとして、書込む。
図20は、図10に記載のフレーム書換器205の構成を詳細に示したブロック図である。
図20のフレーム書換器205は、フレームのヘッダ内容を書換え動作を行う。
フレームヘッダバッファ2054は、フレームのヘッダ情報の格納並びに、書換えのためのバッファとして使用される。フレームヘッダ情報20141の情報は、フレームヘッダバッファ2054へ入力され、フレームヘッダに対して、タグの挿入削除が、タグ挿入器2052、タグ削除器2053によって行われた後、書換えられたフレームヘッダを書換後フレームヘッダ情報20541として出力する。なお、タグ挿入器2052、タグ削除器2053からの操作がない場合は、フレームヘッダ情報141をそのまま、書換後フレームヘッダ情報20541として出力する。
タグ制御器2051は、フレームのヘッダに対して、タグの挿入並びに削除の制御を行う。テーブルサーチ器203より、フレームのヘッダ書換え処理が必要なフレームの場合は、タグの操作情報をタグ制御情報20322、タグの処理に必要なタグ情報をタグ情報20323として受取る。そのタグ制御情報20322がタグ挿入指示の場合、フレームヘッダにタグ情報20323を挿入するために、タグ情報20323をタグ挿入器2052に出力する。また、タグ削除指示の場合は、フレームヘッダのタグ情報を削除するために、タグ削除指示をタグ削除器2053へ出力する。
タグ挿入器2052は、フレームのヘッダにタグの挿入を行う。タグ制御器2051から、タグ情報20323を受取ると、フレームヘッダバッファ2054に格納されている、フレームヘッダ情報20141に対し、タグの挿入動作を行う。
タグ削除器2053は、フレームのヘッダにタグの削除を行う。タグ制御器2051から、タグ削除指示を受取ると、フレームヘッダバッファ2054に格納されている、フレームヘッダ情報20141に対し、タグの削除動作を行う。
図21は、図10に記載のフレーム合成器206の構成を詳細に示したブロック図である。
図21のフレーム合成器206は、書換え後のフレームヘッダと、フレームペイロード情報の合成を行い、出力可能なフレームの再構築を行う。
入力フレームヘッダ情報制御バッファ2062には、書換御のフレームヘッダ情報が格納される。書換後フレームヘッダ情報20541を受信した際は、フレーム組立器2064へ、フレームヘッダ情報引取り可能状態を通知する。
入力フレームペイロード情報制御バッファ2063には、フレームのペイロード情報が格納される。入力フレームペイロード情報20111を受信した際は、フレーム組立器2064へ、フレームペイロード情報引取り可能状態を通知する。
フレーム組立器2064は、フレームのヘッダ情報とペイロード情報を組立てを行う。入力フレームヘッダ情報制御バッファ2062、入力フレームペイロード情報制御バッファ2063から、情報引取り通知を受取ると、バッファより、ヘッダ情報並びにペイロード情報を読出し、フレームヘッダとペイロード情報を合成し、出力フレーム情報20641として出力する。
図22は、図10に記載のフレーム転送器207の構成を詳細に示したブロック図である。
図22のフレーム転送器207は、出力ポート情報に基づき、フレームの転送を行う。
フレーム転送指示器2072は、指定の出力ポート先へフレームの転送を行う。テーブルサーチ器203から出力ポート情報20321を受取ると、出力フレームバッファ2073に格納されているフレームを、その出力ポート番号のポートへ、出力フレーム102として出力し、その際、出力ポート番号がCPU宛てを示している場合は、CPU宛転送20121としてフレームを出力する。
また、CPUからのフレーム送信要求の際に使用される、CPU転送フレーム制御器2071から、CPU転送フレーム情報3041並びに、CPU転送フレーム出力ポート情報3042を受信すると、指定のポート番号へ、CPU転送フレーム情報3041を出力フレーム102として出力する
出力フレームバッファ2073には、フレーム合成器206によって組立てられた出力フレーム情報20641が格納され、バッファ内のフレームは、フレーム転送指示器2072によって、出力フレーム102として出力される。
CPU転送フレーム制御器2071は、CPU30から、転送したいフレーム情報をCPU転送フレーム情報3041、転送する出力ポート情報をCPU転送フレーム出力ポート情報3042として、受信し、フレーム転送指示器2072へ、フレーム転送の指示を行う。
図23は、図10に示すCPU30内でソフトウェアにより実現される処理の構成を表すブロック図である。
ネットワーク制御プログラム304は、以下に述べる3つの動作を行う。
(1)制御フレーム受信器2012より送信される、CPU宛転送フレームを受信し、受信したフレームの宛先MACアドレスに応じて、当該フレームを機器制御プログラム305、ラーニング管理プログラム302、もしくはスパニングツリー制御プログラム303に転送する。
(2)(1)と同時に、必要に応じてCPU転送フレーム出力ポート情報3042およびCPU転送フレーム情報3041を用いて、(1)において受信したフレームを再転送する。
(3)機器制御プログラム305、ラーニング管理プログラム302、もしくはスパニングツリー制御プログラム303より送信要求されたフレームを、CPU転送フレーム出力ポート情報3042および、CPU転送フレーム情報3041に書き出す。
ネットワーク制御プログラム304において、CPU宛転送フレーム20121として受信したフレームの宛先MACアドレスが00−00−4C−00−00−00であった場合には、当該フレームをラーニング管理プログラム302に転送すると同時に、CPU転送フレーム出力ポート情報3042およびCPU転送フレーム情報3041を用いて、当該フレームをブロードキャスト転送する。
ネットワーク制御プログラム304において、CPU宛転送フレーム20121として受信したフレームの宛先MACアドレスが01−80−C2−00−00−00であった場合には、当該フレームをスパニンフツリー制御プログラム303に転送する。
ネットワーク制御プログラム304において、CPU宛転送フレーム20121として受信したフレームの宛先MACアドレスが上記以外のアドレスであった場合には、当該フレームを機器制御プログラム305に転送する。
スパニングツリー制御プログラム303は、以下に挙げる3つの動作を行う。
(1)高速スパニングツリープロトコル(IEEE802.1W)もしくはスパニングツリープロトコル(IEEE802.1D)に基づき、隣接するノードとネットワーク制御プログラム304を通じてBPDUフレームを交換して、スパニングツリー構築を行う。なお、ツリー構築に際して必要な設定は、機器制御プログラム305によって行われる。
(2)(1)により構築したスパニングツリーのポート情報(Alternate Port,Root Port,Designated Port等)より、フォワーディングテーブル制御プログラム301を通じて、タグフォワーディングテーブルメモリ2041および、ブロードキャストフォワーディングテーブル2042、さらに、これら2つのメモリのソフトウェア側での複製である、メモリ複製情報3013を設定する。
(3)BPDUの交換により、もしルートポートの変更を検知した場合には、ラーニング管理プログラム302に対して、ルートポート変更(イベント14)を通知する。
機器制御プログラム305は、コンソールI/O51、もしくはネットワーク制御プログラム304を経由して提供するTELNET、SSHおよびHTTP等を用いた設定インタフェースを通じて設定を受け付け、設定情報をラーニング管理プログラム302、スパニングツリー制御プログラム303、および、ポート構成情報3051を通じてフレームタイプ判定器2011に通知する。
フォワーディングテーブル制御プログラム301は、以下の動作を行う。
(1)スパニングツリー制御プログラム303からの指示により、テーブル書込情報3012およびテーブル書込アドレス3011を用いて、タグフォワーディングメモリ2041およびブロードキャストフォワーディングテーブルメモリ2042に対してエントリ書込もしくはエントリ置換を行う。
(2)(1)と同時に、メモリ複製情報3013を用いて、ソフトウェアテーブル(メインメモリ40に上にある複製情報であるタグフォワーディングテーブルメモリ70131、ブロードキャストフォワーディングテーブルメモリ70132、MACフォワーディングテーブルメモリ70133、TAGアドレス管理テーブル70134)に対してもエントリ書込もしくはエントリ置換を行う。
(3)ラーニング管理プログラム302からの指示により、テーブル書込情報3012およびテーブル書込アドレス3011を用いて、MACフォワーディングテーブルメモリ2043に対してエントリ書込もしくはエントリ置換を行う。
(4)(3)と同時に、メモリ複製情報3013を用いて、ソフトウェアテーブルに対してもエントリ書込もしくはエントリ置換を行う。
(5)ラーニング管理プログラム302からの指示により、メモリ複製情報3013を用いて、ソフトウェアテーブルに対してエントリ検索を行う。
(6)ネットワーク制御プログラム304からの指示により、メモリ複製情報3013を用いて、ソフトウェアテーブルに対してエントリ検索を行う。
ラーニング管理プログラム302は、ラーニングフレーム送信要求20231、タイマ306からのエージングトリガ、ネットワーク制御プログラム304からのラーニングフレーム、そしてスパニングツリー制御プログラム303からのスパニングツリー変更通知を受信し、以下に示すイベントを起動し、MACフォワーディングテーブルメモリ2043およびその複製情報の登録、置換、削除を行う。
(1)ラーニングフレーム送信要求20231がラーニング管理プログラム302に到着すると、イベント01を起動する。
(2)ネットワーク制御プログラム304からラーニングフレームがラーニング管理プログラム302に到着すると、イベント03を起動する。
(3)タイマ306からのポートラーニングエージングトリガがラーニング管理プログラム302に到着すると、イベント12が起動する。
(4)タイマ306からのタグラーニングエージングトリガがラーニング管理プログラム302に到着すると、イベント13が起動する。
(5)スパニングツリー制御プログラム303よりラーニング管理プログラム302にルートノード変更通知が到着すると、イベント14を起動する。
(6)機器制御プログラム305より初期化要求が到着すると、イベント00を起動する。
タイマ306は、機器制御プログラム305が設定した時間ごとに、ポートラーニングエージングトリガもしくは、タグラーニングエージングトリガを生成し、ラーニング管理プログラム302に通知する。
図24は、図23に示すメモリ複製情報3013に含まれる、TAGアドレス管理テーブル70134の構成を示す表である。
TAGアドレス管理テーブル70134は、送信先1段目TAG情報および、テーブル格納アドレスの、2つの欄で構成されている。
送信先1段目TAG情報には、TAGアドレス管理テーブル70134の検索キーとなる、TAG情報(VLAN ID)が記載されている。ここでは、このTAG情報に含まれるVLANIDは、すべて偶数としている。もし奇数のIDを登録する場合は、登録しようとするID値から1を減算し、偶数アドレスで登録および検索を行う。
このようにした理由を以下に記す。1つのネットワークに複数のスパニングツリーが存在し、1つのノードが複数スパニングツリーのルートノードとなる場合がある。このような場合において、各ノードは各スパニングツリーに対応して複数のノードIDを有する。しかし、ラーニング時においては各ノードのノードIDは1つであるほうが都合がよい。なぜなら、1つのノードが複数のIDを有していると、ラーニング時に、これら複数のIDそれぞれを別のノードと捉えてラーニングを行ってしまう可能性があるからである。
このような不都合を防止することを目的とし、上記では、2つのスパニングツリーがある場合を想定し、偶数アドレスを各ノードの代表アドレスとしている。
したがって、上記の偶数アドレスを用いる方法以外に、何らかの方法で1つの代表アドレスを定めることができれば、その方法でもかまわない。
テーブル格納アドレスには、送信先1段目TAG情報に記載されているTAGが含まれるエントリの、MACフォワーディングテーブルメモリ70133(MACフォワーディングテーブルメモリ2043のメインメモリ上での複製情報)におけるアドレスが記載される。この欄に記載できるアドレスの数については、特に制限を設けない。
図25は、図23に示すラーニング管理プログラム302における、イベント01の動作を詳細に説明した流れ図である。
イベント01は、ラーニングフレーム送信要求20231がラーニング管理プログラム302に到着すると起動される。このイベントは、MACDAとタグより、送信先ポートを検索できるよう、MACフォワーディングテーブルメモリ2043およびそのメインメモリ40上での複製情報であるMACフォワーディングテーブルメモリ70133に、エントリを追加するためのソフトウェア処理である。
ステップN0101において、イベント01の処理が開始される。ラーニング管理プログラムからは、フレーム解析器201による判定結果(タグの有無および種別等)、フレームが入力されたポート、送信元MACアドレス、タグ情報などのテーブルサーチキー情報が通知される。ステップN0102に移る。
ステップN0102において、フォワーディングテーブル制御プログラム301を通じてMACフォワーディングテーブルメモリ70133を検索し、これから登録しようとしている情報がすでに前記テーブルに記載されていないか調べる。もし検索がヒットした場合は処理を終了し、ミスヒットの場合はステップN0103に移る。
ステップN0103において、ステップN0101で通知されたフレーム解析器201の判定結果を調べ、もしラーニングしようとしているフレームがアップリンク側から入力されたものである場合(Ptype=0)は、ステップN0105に移る。もしダウンリンクからの入力であれば(Ptype=1),ステップN0104に移る。
ステップN0104において、イベント11を起動し、ラーニングフレームを他のノードにブロードキャストする。イベント11起動時には、ステップN0101で通知された送信元MACアドレスとタグ情報を通知する。この後、ステップN0105に移る。
ステップN0105において、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にあるMACフォワーディングテーブルメモリ70133にエントリを追加する。この際、MAC送信先アドレスにはステップN0101で受信した送信元MACアドレス、送信先1段目TAG情報にはステップN0101で受信したタグ情報、出力ポート情報にはステップN0101で通知された入力ポートを設定する。この後、ステップN0106に進む。
ステップN0106において、フォワーディングテーブル制御プログラム301を通じて、MACフォワーディングテーブルメモリ2043にエントリを追加する。この際、MAC送信先アドレスにはステップN0101で受信した送信元MACアドレス、送信先1段目TAG情報にはステップN0101で受信したタグ情報、出力ポート情報にはステップN0101で通知された入力ポートを設定する。これでイベント01の処理を終了する。
図26は、図23に示すラーニング管理プログラム302における、イベント11の動作を詳細に説明した流れ図である。
イベント11は、イベント01もしくはイベント05において、ラーニングフレームを送信する場合に起動される。このイベントは、MACDAとタグより、付加すべきタグを検索できるよう、MACフォワーディングテーブルメモリ2043およびそのメインメモリ40上での複製情報であるMACフォワーディングテーブルメモリ70133に、エントリを追加するためのソフトウェア処理の一環としてのラーニングフレームの転送要求処理である。
ステップN1101において、イベント11の処理が開始される。起動時には、送信元MACアドレス、およびタグ情報が通知される。ステップN1102に移る。
ステップN1102において、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にあるブロードキャストフォワーディングテーブルメモリ70132を検索し、ラーニングフレームの出力先ポートを検索する。このとき、ブロードキャストフォワーディングテーブルメモリ70132のメモリアドレス(0x0000〜0x1000)(エントリ)は、VLAN ID・タグ情報6202に格納された値と対応させてあるので、即ち、VLAN ID・タグ情報6202が、参照するメモリアドレスとなっているため、情報比較を行う必要はない。よって、VLAN ID・タグ情報6202に格納された値の示すアドレス(エントリ)に存在するブロードキャストフォワーディングテーブルメモリ2042の複数出力ポート情報を出力先ポートとして出力する。
もし検索がミスヒットした場合は処理を終了して、イベント11起動元のイベントプロシージャに戻る。ヒットの場合はステップN1103に移る。
ステップN1103において、ネットワーク制御プログラム304、CPU転送フレーム出力ポート情報3042、およびCPU転送フレーム情報3041を用いて、CPU転送フレーム制御器2071に対して、ステップN1102で検索されたポートに対して、自ノードアドレスを記載したソースタグ、並びにステップN1101で渡されたVLANタグを付加した、ラーニングフレームの送信を要求する。これでイベント11の処理を終了し、イベント11起動元のイベントプロシージャに戻る。
図27は、図23に示すラーニング管理プログラム302における、イベント03の動作を詳細に説明した流れ図である。
イベント03は、ネットワーク制御プログラム304からラーニングフレームがラーニング管理プログラム302に到着した時に起動される。このイベントは、MACDAとタグより、付加するタグを検索できるよう、MACフォワーディングテーブルメモリ2043およびそのメインメモリ40上での複製情報であるMACフォワーディングテーブルメモリ70133に、エントリを追加するためのソフトウェア処理である。
ステップN0301において、イベント03の処理が開始される。起動時には、フレーム解析器201による判定結果(タグの有無および種別等)、、入力ポート、MACアドレス、タグ1(タグ620に格納された送信先クライアントが接続されているノードのノードアドレス等の情報)、およびタグ2(VLANタグ606に格納された情報)などのヘッダ情報が20121CPU宛転送フレームとしてフレーム解析器から通知される。ステップN0302に移る。(フレーム63のようにタグが2つ付加された場合)
ステップN0302において、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にある、タグフォワーディングテーブルメモリ70131を検索し、タグ1に対する出力先ポートを検索する。もし検索がミスヒットした場合は処理を終了する。ヒットの場合はステップN0303に移る。
ステップN0303において、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にある、MACフォワーディングテーブルメモリ70133を検索し、ステップN0301で通知されたMACアドレスおよびタグ2に対する付加タグ、出力ポート、予備出力ポートを検索する。もし検索がミスヒットした場合はステップN0305に進む。ヒットの場合はステップN0304に移る。
ステップN0304において、ステップN0302で検索された出力ポートおよび予備出力ポートと、ステップN0303で検索された出力ポートおよび予備出力ポート、さらに、ステップN0301で通知されたタグ1と、ステップN0303で検索された付加タグが一致していることを確認する。完全な一致が見られる場合は、処理を終了し、それ以外の場合は、ステップN0305に進む。
ステップN0305において、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にあるMACフォワーディングテーブルメモリ70133にエントリを追加する。この際、MAC送信先アドレスにはステップN0301で受信したMACアドレス、宛先1段目TAG情報にはステップN0301で受信したタグ2、、出力先ポートおよび予備出力ポートは、ステップN0303で検索したポート、付加するタグ(TAG情報)にはステップN0301で通知されたタグ1(送信先クライアントが接続されているノードのノードアドレス等の情報)を付加する。ステップN0306に進む。
ステップN0306において、フォワーディングテーブル制御プログラム301を通じて、MACフォワーディングテーブルメモリ2043にエントリを追加する。この際、MAC送信先アドレスにはステップN0301で受信したMACアドレス、宛先1段目TAG情報にはステップN0301で受信したタグ2、出力先ポートおよび予備出力ポートは、ステップN0303で検索したポート、付加するタグ(図16のTAG情報)にはステップN0301で通知されたタグ1(送信先クライアントが接続されているノードのノードアドレス等の情報)を付加する。ステップN0307もしくはステップN0308に進む。
ステップN0304において、エントリ記載内容と検索結果が一致しない場合、ステップん0306の処理の後ステップN0307に進む。ステップN0307において、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にあるTAGアドレス管理テーブル70134よりエントリを削除する。この際、インデックスタグ(図24の送信先1段目TAG情報)にはステップN0301で受信したタグ1、メモリアドレスにはステップN0303で得たエントリアドレス(図16のメモリアドレス)を指定する。ステップN0308に進む。 ステップN0308において、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にあるTAGアドレス管理テーブル70134にエントリを追加する。この際、インデックスタグにはステップN0303で検索した付加タグ、メモリアドレスにはステップN0305で得たエントリアドレス(図16のメモリアドレス)を指定する。ただし、付加タグの値は常に偶数とする。これで、イベント03の処理を終了する。
図28は、図23に示すラーニング管理プログラム302における、イベント12の動作を詳細に説明した流れ図である。
イベント12は、タイマ306よりタイマイベントが発生されることにより起動する。このイベントは、MACフォワーディングテーブルメモリ2043およびそのメインメモリ40上での複製情報であるMACフォワーディングテーブルメモリ70133に記載されたエントリのうち、MACDAとタグより送信先ポートを検索するためのエントリに対して、エージング処理を行うためのソフトウェア処理の一環である。
ステップN1201において、イベント12の処理が開始される。起動時には、オフセットアドレスが通知される。ステップN1202に移る。
ステップN1202において、ラーニングエージング要求3021および、MAC/TAGエージング要求3022により、ハードウェア側のMACフォワーディングテーブルメモリ2043およびMACSAテーブルキャッシュ2025に対してエージング要求を行う。ステップN1203に移る。
ステップN1203において、タイマ306に対して、機器制御プログラム305を通じて指定された時間後に、イベント12の発生を予約する。このとき、メモリオフセットアドレスも登録する。これで、イベント12の処理を終了する。
図29は、図23に示すラーニング管理プログラム302における、イベント05の動作を詳細に説明した流れ図である。
イベント05は、イベント12でMAC/TAGエージング制御3022を通じてエージング要求を行った後、MAC/TAGエージング制御3022よりエージング完了通知が到着することによって起動する。このイベントは、MACフォワーディングテーブルメモリ2043およびそのメインメモリ40上での複製情報であるMACフォワーディングテーブルメモリ70133に記載されたエントリのうち、MACDAとタグより送信先ポートを検索するためのエントリに対して、エージング処理を行うためのソフトウェア処理の一環である。
ステップN0501において、イベント05の処理が開始される。起動時には、リザルトコード(MAC→Port、または、MAC−Tagどちらのエージングを掛けたかの情報)、オフセットアドレスおよびビットマップ(どのエントリを削除したかの情報)が通知される。ステップN0502に移る。
ステップN0502において、ステップN0501で通知されたオフセットおよびビットマップより、エントリアドレス(削除したMACフォワーディングテーブルメモリ2043のメモリアドレス)を生成する。ステップN0503に移る。
ステップN0503において、ステップN0502で生成したエントリアドレスのエントリを、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にあるMACフォワーディングテーブルメモリ70133より削除する。
ステップN0502およびステップN0503の処理を、ステップN0501で削除処理対象として通知された全アドレス(オフセットとビットマップとで示される削除したエントリのアドレス)に対して行う。全アドレスに対する処理が完了すると、ステップN0504に移る。
ステップN0504において、MACフォワーディングテーブルメモリ70133内の、エントリ種別がMAC→Portと設定されている全エントリに対して、イベント11を起動してラーニングフレームを送信する。イベント11に対しては、MAC DAおよびVLAN TAGを引数として渡す。すべてのエントリに対する処理が終了すると、イベント05も終了する。
図30は、図23に示すラーニング管理プログラム302における、イベント13の動作を詳細に説明した流れ図である。
イベント13は、タイマ306よりタイマイベントが発生されることにより起動する。このイベントは、MACフォワーディングテーブルメモリ2043およびそのメインメモリ40上での複製情報であるMACフォワーディングテーブルメモリ70133に記載されたエントリのうち、MACDAとタグより付加するタグを検索するためのエントリに対して、エージング処理を行うためのソフトウェア処理の一環である。
ステップN1301において、イベント13の処理が開始される。起動時には、オフセットアドレス(削除を開始するスタートアドレス)が通知される。ステップN1302に移る。
ステップN1302において、MAC/TAGエージング要求3022により、ハードウェア側のMACフォワーディングテーブルメモリ2043に対してエージング要求を行う。ステップN1303に移る。
ステップN1303において、タイマ306に対して、機器制御プログラム305を通じて指定された時間後に、イベント13の発生を予約する。このとき、メモリオフセットアドレスも登録する。これで、イベント13の処理を終了する。
図31は、図23に示すラーニング管理プログラム302における、イベント06の動作を詳細に説明した流れ図である。
イベント06は、イベント13でMAC/TAGエージング制御3022を通じてエージング要求を行った後、MAC/TAGエージング制御3022よりエージング完了通知が到着することによって起動する。このイベントは、MACフォワーディングテーブルメモリ2043およびそのメインメモリ40上での複製情報であるMACフォワーディングテーブルメモリ70133に記載されたエントリのうち、MACDAとタグより付加するタグを検索するためのエントリに対して、エージング処理を行うためのソフトウェア処理の一環である。
ステップN0601において、イベント06の処理が開始される。起動時には、リザルトコード、オフセットアドレスおよびビットマップが通知される。ステップN0602に移る。
ステップN0602において、ステップN0601で通知されたオフセットおよびビットマップより、エントリアドレスを生成する。ステップN0603に移る。
ステップN0603において、ステップN0602で生成したエントリアドレスのエントリを、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にあるMACフォワーディングテーブルメモリ70133より削除する。ステップN0604に移る。
ステップN0604において、ステップN0603で生成したエントリアドレスのエントリを、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にあるTAGアドレス管理テーブル70134より削除する。
ステップN0602、ステップN0603、およびステップN0603の処理を、ステップN0601で削除処理対象として通知された全アドレス(オフセットとビットマップとで示される削除したエントリのアドレス)に対して行う。全アドレスに対する処理が完了すると、イベント06を終了する。
図32は、図23に示すラーニング管理プログラム302における、イベント14の動作を詳細に説明した流れ図である。
イベント14は、スパニングツリー制御プログラム303により、スパニングツリーのトポロジの変更が検出され、ルートポート、すなわちフレーム出力ポートが変更された場合に起動する。このイベントは、ツリートポロジの変化により変更が必要となった、MACフォワーディングテーブルメモリ2043およびそのメインメモリ40上の複製情報であるMACフォワーディングテーブルメモリ70133上に記載されている、出力先ポートおよび予備出力先ポートを書き換えるためのソフトウェア処理である。
ステップN1401において、イベント14の処理が開始される。起動時には、トポロジ変更対象のタグが通知される。ステップN1402に移る。
ステップN1402において、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にある、タグフォワーディングテーブルメモリ70131を検索し、ステップN1401で通知された変更対象のタグに対する出力先ポートを検索する。もし検索がミスヒットした場合は処理を終了する。ヒットの場合はステップN1403に移る。
ステップN1403において、TAGアドレス管理テーブル70134を検索し、MACフォワーディングテーブルメモリ70133上において、ステップN1401で通知された変更処理対象タグが付加タグとして設定されているエントリのエントリアドレスを検索する。もし検索がミスヒットした場合は処理を終了し、検索がヒットした場合はステップN1404に移る。
ステップN1404において、フォワーディングテーブル制御プログラム301を通じて、メモリ複製情報3013としてメインメモリ40に上にあるMACフォワーディングテーブルメモリ70133のエントリを置換する。この際、出力先ポートおよび予備出力ポートはステップN1402で検索したポートを設定し、その他の項目は置換しない。ステップN1405に進む。
ステップN1405において、フォワーディングテーブル制御プログラム301を通じて、ハードウェア側のMACフォワーディングテーブルメモリ2043のエントリを置換する。この際、出力先ポートおよび予備出力ポートはステップN1402で検索したポートを設定し、その他の項目は置換しない。
ステップN1404およびステップN1405の操作を、ステップN1403で検索された全アドレスエントリに対して実行する。全エントリの置換が終了すると、イベント14を終了する。
次に図33〜図37を参照して、IEEE802.1Wに規定されている高速スパニングツリープロトコル、もしくは、IEEE802.1Dに規定されているスパニングツリーツリープロトコルを用いることにより、図1に示す物理ネットワーク構成例において、ループが発生しないようにポートを遮断して論理ネットワークを作成した場合の、スパニングツリートポロジ構成例について述べる。
なお、図33〜図37の各図においては、ある1本のリンクが接続されている2個のポートのうちいずれか一方でもフレームの送受信が禁止されている状態である場合はリンクを細線で表し、ある1本のリンクが接続されている2個のポートの両方がフレームの送受信ともに可能である場合のみリンクを太線で表す。
また、以降の説明では、説明を簡略化するために、実際には細線のリンクにもフレームが流れる場合もあるが、本明細書においては、細線のリンクにはまったくフレームが流れないものとして説明する。このような説明を行っても、本発明のノードの動作の本質には影響を与えない。
図33は、図1に示す物理ネットワーク上で高速スパニングツリープロトコルもしくはスパニングツリープロトコルを用いた場合に作成される論理ネットワークである、ツリーT0の構成例を示すトポロジ図である。
本構成例においては、ツリーT0は、ノードG1をルートノードとし、ノードG3とノードG2間のポートが閉塞され、図33に示すトポロジになっている。このツリーは、高速スパニングツリープロトコルにしたがって、タグを付加しないBPDUフレームを交換することによって作成される。ルートノードは、高速スパニングツリープロトコルにしたがって、ノードG1〜ノードG4のいずれか1つのノードに決定される。この論理ネットワークは、タグが付加されていないフレームの転送を行う際に利用される。
図34は、図1に示す物理ネットワーク上で高速スパニングツリープロトコルもしくはスパニングツリープロトコルを用いた場合に作成される論理ネットワークである、ツリーT1の構成例を示すトポロジ図である。
本構成例においては、ツリーT1は、ノードG1をルートノードとし、ノードG3とノードG2間のポートが閉塞され、図34に示すトポロジになっている。このツリーは、高速スパニングツリープロトコルにしたがって、タグg1を付加したBPDUフレームを交換することによって作成される。ツリーT1においては、常にノードG1がルートノードになるようにあらかじめ設定しておくことにより、ルートノードはノードG1に決定される。この論理ネットワークは、ノードG1が宛先であることを意味するタグg1が付加されていたフレームの転送を行う際に利用される。すなわち、拡張タグg1が付加されたフレームは、ツリーT1を経路として転送される。
図35は、図1に示す物理ネットワーク上で高速スパニングツリープロトコルもしくはスパニングツリープロトコルを用いた場合に作成される論理ネットワークである、ツリーT2の構成例を示すトポロジ図である。
本構成例においては、ツリーT2は、ノードG2をルートノードとし、ノードG1とノードG4間のポートが閉塞され、図35に示すトポロジになっている。このツリーは、高速スパニングツリープロトコルにしたがって、タグg2を付加したBPDUフレームを交換することによって作成される。ツリーT2においては、常にノードG2がルートノードになるようにあらかじめ設定しておくことにより、ルートノードはノードG2に決定される。この論理ネットワークは、ノードG2があて先であることを意味するタグg2が付加されたフレームの転送を行う際に利用される。すなわち、拡張タグg2が付加されたフレームは、ツリーT2を経路として転送される。
図36は、図1に示す物理ネットワーク上で高速スパニングツリープロトコルもしくはスパニングツリープロトコルを用いた場合に作成される論理ネットワークであるツリーT3の構成例を示すトポロジ図である。
本構成例においては、ツリーT3は、ノードG3をルートノードとし、ノードG2とノードG4間のポートが閉塞され、図36に示すトポロジになっている。このツリーは、高速スパニングツリープロトコルにしたがって、タグg3を付加したBPDUフレームを交換することによって作成される。ツリーT3においては、常にノードG3がルートノードになるようにあらかじめ設定しておくことにより、ルートノードはノードG3に決定される。この論理ネットワークは、ノードG3があて先であることを意味するタグg3が付加されたフレームの転送を行う際に利用される。すなわち、拡張タグg3が付加されたフレームは、ツリーT3を経路として転送される。
図37は、図1に示す物理ネットワーク上で高速スパニングツリープロトコルもしくはスパニングツリープロトコルを用いた場合に作成される論理ネットワークである、ツリーT4の構成例を示すトポロジ図である。
本構成例においては、ツリーT4は、ノードG4をルートノードとし、ノードG1とノードG3間のポートが閉塞され、図37に示すトポロジになっている。このツリーは、高速スパニングツリープロトコルにしたがって、タグg4を付加したBPDUフレームを交換することによって作成される。ツリーT4においては、常にノードG4がルートノードになるようにあらかじめ設定しておくことにより、ルートノードはノードG4に決定される。この論理ネットワークは、ノードG4があて先であることを意味するタグg4が付加されたフレームの転送を行う際に利用される。すなわち、拡張タグg4が付加されたフレームは、ツリーT4を経路として転送される。
次に図38〜図40の各図を参照して、本実施例における動作例1〜3について述べる。
以降のシーケンス図において、主信号フレームのシーケンスを実線で示し、ラーニング(学習)フレームのシーケンスを破線で示す。また、拡張タグ付きフレームのシーケンスを太線で示し、拡張タグが付加されていないフレームのシーケンスを細線で示す。
図38は、ノードG1配下のクライアントC1がノードG2配下のクライアントC2に対してPING REQUESTを送信し、クライアントC2がクライアントC1に対してPING REPLYを返答する際の、各ノードおよびクライアント間でのフレームのやり取りをあらわす、シーケンス図である。これを動作例1とする。
シーケンスN111は、ネットワーク動作開始直後もしくはクライアントC1とクライアントC2の間の前回の通信が終了してから十分に長い時間が経過した場合の動作であって、クライアントC1のMACアドレスc1およびクライアントC1が属するノードG1のアドレスg1、さらにクライアントC2のMACアドレスc2およびクライアントC2が属するノードのアドレスg2が、ノードG1〜G4の各ノードにおいてラーニングされていない場合における、クライアントC1とクライアントC2の間の通信シーケンスである。ここでは、クライアントC1が、クライアントC2に対してICMP ECHO REQUESTフレームを送信し、クライアントC2がICMP ECHO REPLYフレームを返答する場合の例を示す。
まず、クライアントC1がクライアントC2に対して、宛先MACがc2、送信元MACがc1のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索するが、MACアドレスc2に関するラーニングが完了していないため、検索ヒットしない。このためノードG1は、前記主信号フレームをツリーT0に沿ってブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはノードG3およびノードG4の両方に転送される。
ノードG1は、ダウンリンク側から未ラーニングの送信元MACc1が付加されたフレームが到着したため、MACアドレスc1がダウンリンク側ポートに接続されていることをラーニングすると同時に、拡張タグアドレスとして、ソースノードG1のアドレスg1を付加したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG3およびノードG4の両方に転送される。
ノードG3は、ノードG1より送信された宛先MACc2宛ての主信号フレームを、アップリンクポートより受信する。このとき、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されているアップリンクポートに送信すればよいことをラーニングする。そして、宛先MACc2をキーとして出力ポートを検索するが、MACアドレスc2に関するラーニングが完了していないため、検索ヒットしない。このためノードG3は、前記主信号フレームをツリーT0および、ダウンリンク側ポートにブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートよりノードG3配下のクライアントC3に転送される。
ノードG3は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。このラーニングフレーム到着によるラーニングは、先に述べた主信号フレーム到着によるラーニングよりも優先される。これにより、以降MACアドレスc1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG3においてツリーT1は途切れているため、結果としてラーニングフレームはノードG3から先のノードへは転送されない。
クライアントC3は、ノードG3によって転送された宛先MACc2の主信号フレームを受信するが、宛先MACアドレスが自身のMACアドレスc3と一致しないため、このフレームを破棄する。
ノードG4は、ノードG1より送信された宛先MACc2宛ての主信号フレームを、アップリンクポートより受信する。このとき、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されているアップリンクポートに送信すればよいことをラーニングする。そして、宛先MACc2をキーとして出力ポートを検索するが、MACアドレスc2に関するラーニングが完了していないため、検索ヒットしない。このためノードG4は、前記主信号フレームをツリーT0および、ダウンリンク側ポートにブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはツリーT0に沿ってアップリンクポートよりノードG2に転送される。
ノードG4は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。このラーニングフレーム到着によるラーニングは、先に述べた主信号フレーム到着によるラーニングよりも優先される。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG2に転送される。
ノードG2は、ノードG4より送信された宛先MACc2宛ての主信号フレームを、アップリンクポートより受信する。このとき、宛先MACアドレスc1宛てのフレームは、ノードG4が接続されているアップリンクポートに送信すればよいことをラーニングする。そして、宛先MACc2をキーとして出力ポートを検索するが、MACアドレスc2に関するラーニングが完了していないため、検索ヒットしない。このためノードG2は、前記主信号フレームをツリーT0および、ダウンリンク側ポートにブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートよりノードG2配下のクライアントC2に転送される。
ノードG2は、アップリンク側からノードG4が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。このラーニングフレーム到着によるラーニングは、先に述べた主信号フレーム到着によるラーニングよりも優先される。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG2においてツリーT1は途切れているため、結果としてラーニングフレームはノードG2から先のノードへは転送されない。
クライアントC2は、ノードG2によって転送された宛先MACアドレスc2の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc2と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC2の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc2のICMP ECHO REPLYフレームを作成し、ノードG2宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG2は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1のフレームに対して、拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送すれば良いことがわかる。したがって、ノードG2は前記フレームに拡張フォワーディングタグg1を付加し、ノードG4に転送する。
これと同時に、ノードG2は、ダウンリンク側から未ラーニングの送信元MACアドレスc2が付加されたフレームが到着したため、MACアドレスc2がダウンリンク側ポートに接続されていることをラーニングすると同時に、拡張タグアドレスとして、ソースノードG2のアドレスg2を付加したラーニングフレームを、ツリーT2に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG3およびノードG4の両方に転送される。
ノードG4は、ノードG2より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg1をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg1に対する出力ポートは、常にスパニングツリーT1のルートポート側に設定されているため、ノードG4は前記受信フレームを、アップリンクポートよりノードG1に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG4は、アップリンク側からノードG2が送信したラーニングフレームを受信すると、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT2に沿ってアップリンク側にブロードキャスト送信する。しかしノードG4においてツリーT2は途切れているため、結果としてラーニングフレームはノードG4から先のノードへは転送されない。
ノードG3は、アップリンク側からノードG2が送信したラーニングフレームを受信すると、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT2に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG1に転送される。
ノードG1は、ノードG4より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg1は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc1をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc1を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG1は前記フレームをクライアントC1が接続されているダウンリンクポートに転送する。
ノードG1は、アップリンク側からノードG3が送信したラーニングフレームを受信すると、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG1においてツリーT2は途切れているため、結果としてラーニングフレームはノードG1から先のノードへは転送されない。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、ネットワーク動作開始直後もしくはクライアントC1とクライアントC2の間の前回の通信が終了してから十分に長い時間が経過した場合であって、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらに、クライアントC2のMACアドレスc2およびクライアントC2が属するノードのアドレスg2が、ノードG1〜G4の各ノードにおいてラーニングされていない場合における、クライアントC1とクライアントC2の間の通信シーケンスを説明できた。
シーケンスN112は、クライアントC1とクライアントC2の間の前回の通信が終了してから長時間経過しておらず、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらにクライアントC2のMACアドレスc2およびクライアントC2が属するノードのアドレスg2が、ノードG1〜G4の各ノードにおいて、すでにラーニングされている場合における、クライアントC1とクライアントC2の間の通信シーケンスである。
ここでは、クライアントC1が、クライアントC2に対してICMP ECHO REQUESTフレームを送信し、クライアントC2がICMP ECHO REPLYフレームを返答する場合の例を示す。
まず、クライアントC1がクライアントC2に対して、宛先MACがc2、送信元MACがc1のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、ラーニングにより、宛先MACアドレスc2のフレームに対して、拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送すれば良いことがわかる。したがって、ノードG1は前記フレームに拡張フォワーディングタグg2を付加し、ノードG3に転送する。
ノードG3は、ノードG1より送信された宛先拡張タグg2の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg2をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg2に対する出力ポートは、常にスパニングツリーT2のルートポート側に設定されているため、ノードG3は前記受信フレームを、アップリンクポートよりノードG2に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG2は、ノードG3より送信された宛先拡張タグg2の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg2は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc2をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc2を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG2は前記フレームをクライアントC2が接続されているダウンリンクポートに転送する。
クライアントC2は、ノードG2によって転送された宛先MACアドレスc2の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc2と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC2の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc2のICMP ECHO REPLYフレームを作成し、ノードG2宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG2は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、宛先MACアドレスc1のフレームに対して、拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送すれば良いことがわかる。したがって、ノードG2は前記フレームに拡張フォワーディングタグg1を付加し、ノードG4に転送する。
ノードG4は、ノードG2より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg1をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg1に対する出力ポートは、常にスパニングツリーT1のルートポート側に設定されているため、ノードG4は前記受信フレームを、アップリンクポートよりノードG1に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG1は、ノードG4より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg1は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc1をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc1を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG1は前記フレームをクライアントC1が接続されているダウンリンクポートに転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、クライアントC1とクライアントC2の間の前回の通信が終了してから長時間経過していない場合であって、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらにクライアントC2のMACアドレスc2およびクライアントC2が属するノードのアドレスg2が、ノードG1〜G4の各ノードにおいて、すでにラーニングされている場合における、クライアントC1とクライアントC2の間の通信シーケンスを説明できた。
シーケンスN113は、クライアントC1とクライアントC2の間の通信開始、もしくは前回のMACラーニングエージング開始から、あらかじめ機器制御プログラムを通じてタイマに設定されたMACラーニングエージング時間が経過したが、まだあらかじめ機器制御プログラムを通じてタイマに設定されたTAGラーニングエージング時間が経過していない場合における、クライアントC1とクライアントC2の間の通信シーケンスである。
この場合では、クライアントC1のMACアドレスc1およびクライアントC2のMACアドレスc2は、すでにラーニングされているがラーニングフレームを再送信するよう設定されており、クライアントC1が属するノードのアドレスg1およびクライアントC2が属するノードのアドレスg2は、シーケンスN112と同様に、ノードG1〜G4の各ノードにおいてすでにラーニングされている。
ここでは、クライアントC1が、クライアントC2に対してICMP ECHO REQUESTフレームを送信し、クライアントC2がICMP ECHO REPLYフレームを返答する場合の例を示す。
まず、クライアントC1がクライアントC2に対して、宛先MACがc2、送信元MACがc1のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、ラーニングにより、宛先MACアドレスc2のフレームに対して、拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送すれば良いことがわかる。したがって、ノードG1は前記フレームに拡張フォワーディングタグg2を付加し、ノードG3に転送する。
ノードG1は、ダウンリンク側からラーニングフレーム再送信が必要な送信元MACアドレスc1が付加されたフレームが到着したため、拡張タグアドレスとして、ソースノードG1のアドレスg1を付加したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG3およびノードG4の両方に転送される。
ノードG3は、ノードG1より送信された宛先拡張タグg2の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg2をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg2に対する出力ポートは、常にスパニングツリーT2のルートポート側に設定されているため、ノードG3は前記受信フレームを、アップリンクポートよりノードG2に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG3は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということを再ラーニングする。この再ラーニングにより、エージングによりクライアントC1に関するラーニング内容がノードG3から消えてしまうことを防ぐ。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG3においてツリーT1は途切れているため、結果としてラーニングフレームはノードG3から先のノードへは転送されない。
ノードG4は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということを再ラーニングする。この再ラーニングにより、エージングによりクライアントC1に関するラーニング内容がノードG3から消えてしまうことを防ぐ。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG2に転送される。
ノードG2は、ノードG3より送信された宛先拡張タグg2の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg2は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc2をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc2を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG2は前記フレームをクライアントC2が接続されているダウンリンクポートに転送する。
ノードG2は、アップリンク側からノードG4が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということを再ラーニングする。この再ラーニングにより、エージングによりクライアントC1に関するラーニング内容がノードG3から消えてしまうことを防ぐ。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG2においてツリーT1は途切れているため、結果としてラーニングフレームはノードG2から先のノードへは転送されない。
クライアントC2は、ノードG2によって転送された宛先MACアドレスc2の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc2と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC2の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc2のICMP ECHO REPLYフレームを作成し、ノードG2宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG2は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、宛先MACアドレスc1のフレームに対して、拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送すれば良いことがわかる。したがって、ノードG2は前記フレームに拡張フォワーディングタグg1を付加し、ノードG4に転送する。
ノードG2は、ダウンリンク側からラーニングフレーム再送信が必要な送信元MACアドレスc2が付加されたフレームが到着したため、ソースタグアドレスg2を付加したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG3およびノードG4の両方に転送される。
ノードG4は、ノードG2より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg1をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg1に対する出力ポートは、常にスパニングツリーT1のルートポート側に設定されているため、ノードG4は前記受信フレームを、アップリンクポートよりノードG1に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG4は、アップリンク側からノードG2が送信したラーニングフレームを受信すると、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということを再ラーニングする。この再ラーニングにより、エージングによりクライアントC2に関するラーニング内容がノードG4から消えてしまうことを防ぐ。また同時に、受信したラーニングフレームを、ツリーT2に沿ってアップリンク側にブロードキャスト送信する。しかしノードG4においてツリーT2は途切れているため、結果としてラーニングフレームはノードG4から先のノードへは転送されない。
ノードG3は、アップリンク側からノードG2が送信したラーニングフレームを受信すると、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということを再ラーニングする。この再ラーニングにより、エージングによりクライアントC2に関するラーニング内容がノードG3から消えてしまうことを防ぐ。また同時に、受信したラーニングフレームを、ツリーT2に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG1に転送される。
ノードG1は、ノードG4より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg1は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc1をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc1を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG1は前記フレームをクライアントC1が接続されているダウンリンクポートに転送する。
ノードG1は、アップリンク側からノードG3が送信したラーニングフレームを受信すると、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということを再ラーニングする。この再ラーニングにより、エージングによりクライアントC2に関するラーニング内容がノードG1から消えてしまうことを防ぐ。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG1においてツリーT2は途切れているため、結果としてラーニングフレームはノードG1から先のノードへは転送されない。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、クライアントC1とクライアントC2の間の通信開始、もしくは前回のMACラーニングエージング開始から、あらかじめ機器制御プログラムを通じてタイマに設定されたMACラーニングエージング時間が経過したが、まだあらかじめ機器制御プログラムを通じてタイマに設定されたTAGラーニングエージング時間が経過していない場合における、クライアントC1とクライアントC2の間の通信シーケンスを説明できた。
このラーニングフレーム再送信動作は、非対称ネットワークにおいて、各中継ノードのアドレスラーニング内容がエージングによって消えることのないよう維持するために行う。この動作により、ラーニング情報を維持したまま、イーサネット(R)に非対称の主信号フレームを送信することが可能となる。
以上の説明ではPINGについて説明したが、これ以外のフレーム転送は、以上のラーニングを行った後であれば、通常通りに行うことができる。
なお、本動作例におけるノードG4は、その装置構成を簡略化した、ノードE4に置き換えることができる。簡略化版ノードE4は、ノードG4に対して、(1)メモリ複製情報3013を持たないこと、(2)MACフォワーディングテーブルメモリ2043を持たないこと、(3)ラーニング管理プログラム302およびタイマ306を持たないこと、および、(4)ラーニングフレームを送受信しないことの、4点において異なる。
次に図39を参照して、本実施例における第2の動作例について述べる。
図39は、クライアントC1がクライアントC3に対してPING REQUESTを送信し、クライアントC3がクライアントC1に対してPING REPLYを返答する際の、各ノードおよびクライアント間でのフレームのやり取りをあらわす、シーケンス図である。これを動作例2とする。
図39のシーケンスにおいては、ノードG1、ノードG2,およびノードG4は、図38におけるシーケンスのノードと同様であるば、ノードG3は既存の一般的なイーサネット(R)スイッチである、ノードS3に置き換える。
既存ノードS3は、ノードG3に対して、(1)タグフォワーディングテーブルメモリ2041およびそのメモリ複製情報3013内のテーブルであるタグフォワーディングテーブルメモリ70131を持たないこと、(2)特定の宛先MACアドレスに対して拡張タグを挿入したり削除したりしないこと、および、(3)ラーニングフレームを送受信しないことの、3点において異なる。
シーケンスN121は、ネットワーク動作開始直後もしくはクライアントC1とクライアントC3の間の前回の通信が終了してから十分に長い時間が経過した場合の動作であって、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらにクライアントC3のMACアドレスc3が、ノードG1、ノードG2、ノードS3,ノードG4の各ノードにおいてラーニングされていない場合における、クライアントC1とクライアントC3の間の通信シーケンスである。ここでは、クライアントC1が、クライアントC3に対してICMP ECHO REQUESTフレームを送信し、クライアントC3がICMP ECHO REPLYフレームを返答する場合の例を示す。
まず、クライアントC1がクライアントC3に対して、宛先MACがc3、送信元MACがc1のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索するが、MACアドレスc3に関するラーニングが完了していないため、検索ヒットしない。このためノードG1は、前記主信号フレームをツリーT0に沿ってブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはノードS3およびノードG4の両方に転送される。
ノードG1は、ダウンリンク側から未ラーニングの送信元MACc1が付加されたフレームが到着したため、MACアドレスc1がダウンリンク側ポートに接続されていることをラーニングすると同時に、拡張タグアドレスとしてノードG1のアドレスg1を付加したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードS3およびノードG4の両方に転送される。
ノードG4は、ノードG1より送信された宛先MACc3宛ての主信号フレームを、アップリンクポートより受信する。このとき、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されているアップリンクポートに送信すればよいことをラーニングする。そして、宛先MACc3をキーとして出力ポートを検索するが、MACアドレスc3に関するラーニングが完了していないため、検索ヒットしない。このためノードG4は、前記主信号フレームをツリーT0および、ダウンリンク側ポートにブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはツリーT0に沿ってアップリンクポートよりノードG2に転送される。
ノードG4は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。このラーニングフレーム到着によるラーニングは、先に述べた主信号フレーム到着によるラーニングよりも優先される。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG2に転送される。
ノードG2は、ノードG4より送信された宛先MACc3宛ての主信号フレームを、アップリンクポートより受信する。このとき、宛先MACアドレスc1宛てのフレームは、ノードG4が接続されているアップリンクポートに送信すればよいことをラーニングする。そして、宛先MACc3をキーとして出力ポートを検索するが、MACアドレスc3に関するラーニングが完了していないため、検索ヒットしない。このためノードG2は、前記主信号フレームをツリーT0および、ダウンリンク側ポートにブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートよりクライアントC2に転送される。
ノードG2は、アップリンク側からノードG4が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。このラーニングフレーム到着によるラーニングは、先に述べた主信号フレーム到着によるラーニングよりも優先される。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG2においてツリーT1は途切れているため、結果としてラーニングフレームはノードG2から先のノードへは転送されない。
クライアントC2は、ノードG2によって転送された宛先MACc3の主信号フレームを受信するが、宛先MACアドレスが自身のMACアドレスc2と一致しないため、このフレームを破棄する。
ノードS3は、ノードG1より送信された宛先MACc3宛ての主信号フレームを受信する。このとき、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されているポートに送信すればよいことをラーニングする。そして、宛先MACc3をキーとして出力ポートを検索するが、MACアドレスc3に関するラーニングが完了していないため、検索ヒットしない。このためノードS3は、前記主信号フレームをツリーT0および、ダウンリンク側ポートにブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートよりクライアントC3に転送される。
ノードS3は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト転送する。しかしノードS3においてツリーT1は途切れているため、結果としてラーニングフレームはノードS3から先のノードへは転送されない。
なお、ノードS3はラーニングフレームを受信してネットワーク制御プログラム304を用いて前記フレームを転送することはできるが、受信したフレームの内容を用いてラーニング管理プログラム302によりテーブル情報を更新することはできない。したがって、ラーニングフレームにより、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということはラーニングできない。
クライアントC3は、ノードS3によって転送された宛先MACアドレスc3の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc3と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC3の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc3のICMP ECHO REPLYフレームを作成し、ノードS3宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードS3は、クライアントC3から送信された主信号フレームを受信する。このとき、宛先MACアドレスc3宛てのフレームは、クライアントC3が接続されている側のポートに送信すればよいことをラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されているポートに転送すれば良いことがわかる。したがって、ノードS3は前記フレームをノードG1に転送する。
ノードG1は、ノードS3によって転送された主信号フレームを受信する。このとき、宛先MACアドレスc3宛てのフレームは、ノードS3が接続されている側のポートに送信すればよいことをラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1宛てのフレームは、クライアントC1が接続されている側のダウンリンクポートに転送すれば良いことがわかる。したがって、ノードG1は前記フレームをクライアントC1に転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、ネットワーク動作開始直後もしくはクライアントC1とクライアントC3の間の前回の通信が終了してから十分に長い時間が経過した場合の動作であって、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらにクライアントC3のMACアドレスc3が、ノードG1、ノードG2、ノードS3,ノードG4の各ノードにおいてラーニングされていない場合における、クライアントC1とクライアントC3の間の通信シーケンスを説明できた。
シーケンスN122は、クライアントC1とクライアントC3の間の前回の通信が終了してから長時間経過していない場合であって、クライアントC1のMACアドレスc1およびクライアントC1の属するノードのアドレスg1が、ノードG1、ノードG2、ノードS3、ノードG4の各ノードにおいてすでにラーニングされており、さらにクライアントC3のMACアドレスc3が、ノードG1およびノードS3の各ノードにおいてすでにラーニングされている場合における、クライアントC1とクライアントC3の間の通信シーケンスである。
ここでは、クライアントC1が、クライアントC3に対してICMP ECHO REQUESTフレームを送信し、クライアントC3がICMP ECHO REPLYフレームを返答する場合の例を示す。
まず、クライアントC1がクライアントC3に対して、宛先MACがc3、送信元MACがc1のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、ラーニングにより、宛先MACアドレスc3のフレームに対しては拡張フォワーディングタグを付加せず、ノードS3側のポートに転送すれば良いことがわかる。したがって、ノードG1は前記フレームに対してタグを付加したり削除したりする操作は行わずに、そのままノードS3が接続されているアップリンクポートへ転送する。このとき、宛先MACアドレスc1宛てのフレームは、クライアントC1が接続されている側のダウンリンクポートに送信すればよいことを再ラーニングする。
ノードS3は、ノードG1から送信された主信号フレームを受信する。このとき、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されている側のポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、ラーニングにより、宛先MACアドレスc3宛てのフレームは、クライアントC3が接続されているポートに転送すれば良いことがわかる。したがって、ノードS3は前記フレームをクライアントC3が接続されている側のポートに転送する。
クライアントC3は、ノードS3によって転送された宛先MACアドレスc3の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc3と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC3の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc3のICMP ECHO REPLYフレームを作成し、ノードS3宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードS3は、クライアントC3から送信された主信号フレームを受信する。このとき、宛先MACアドレスc3宛てのフレームは、クライアントC3が接続されている側のポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されているポートに転送すれば良いことがわかる。したがって、ノードS3は前記フレームをノードG1に転送する。
ノードG1は、ノードS3によって転送された主信号フレームを受信する。このとき、宛先MACアドレスc3宛てのフレームは、ノードS3が接続されている側のアップリンクポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1宛てのフレームは、クライアントC1が接続されている側のダウンリンクポートに転送すれば良いことがわかる。したがって、ノードG1は前記フレームをクライアントC1に転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、クライアントC1とクライアントC3の間の前回の通信が終了してから長時間経過していない場合であって、クライアントC1のMACアドレスc1およびクライアントC1の属するノードのアドレスg1が、ノードG1、ノードG2、ノードS3、ノードG4の各ノードにおいてすでにラーニングされており、さらにクライアントC3のMACアドレスc3が、ノードG1およびノードS3の各ノードにおいてすでにラーニングされている場合における、クライアントC1とクライアントC3の間の通信シーケンスを説明できた。
シーケンスN123は、クライアントC1とクライアントC3の間の通信開始、もしくは前回のMACラーニングエージング開始から、あらかじめ機器制御プログラムを通じてタイマに設定されたMACラーニングエージング時間が経過したが、まだあらかじめ機器制御プログラムを通じてタイマに設定されたTAGラーニングエージング時間が経過していない場合における、クライアントC1とクライアントC3の間の通信シーケンスである。
このの場合では、クライアントC1のMACアドレスc1およびクライアントC3のMACアドレスc3は、すでにラーニングされているがラーニングフレームを再送信するよう設定されており、クライアントC1が属するノードのアドレスg1は、シーケンスN122と同様に、ノードG1、ノードG2、ノードS3、ノードG4の各ノードにおいてすでにラーニングされている。
ここでは、クライアントC1が、クライアントC3に対してICMP ECHO REQUESTフレームを送信し、クライアントC3がICMP ECHO REPLYフレームを返答する場合の例を示す。
まず、クライアントC1がクライアントC3に対して、宛先MACがc3、送信元MACがc1のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、ラーニングにより、宛先MACアドレスc3のフレームに対しては拡張フォワーディングタグを付加せず、ノードS3側のポートに転送すれば良いことがわかる。したがって、ノードG1は前記フレームに対してタグを付加したり削除したりする操作は行わずに、そのままノードS3が接続されているアップリンクポートへ転送する。このとき、宛先MACアドレスc1宛てのフレームは、クライアントC1が接続されている側のダウンリンクポートに送信すればよいことを再ラーニングする。
ノードG1は、ダウンリンク側からラーニングフレーム再送信が必要な送信元MACアドレスc1が付加されたフレームが到着したため、拡張タグアドレスとしてノードG1のノードアドレスg1を付加したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードS3およびノードG4の両方に転送される。
ノードG4は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということを再ラーニングする。この再ラーニングにより、エージングによりクライアントC1に関するラーニング内容がノードG3から消えてしまうことを防ぐ。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG2に転送される。
ノードG2は、アップリンク側からノードG4が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということを再ラーニングする。この再ラーニングにより、エージングによりクライアントC1に関するラーニング内容がノードG3から消えてしまうことを防ぐ。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG2においてツリーT1は途切れているため、結果としてラーニングフレームはノードG2から先のノードへは転送されない。
ノードS3は、ノードG1から送信された主信号フレームを受信する。このとき、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されている側のポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、ラーニングにより、宛先MACアドレスc3宛てのフレームは、クライアントC3が接続されているポートに転送すれば良いことがわかる。したがって、ノードS3は前記フレームをクライアントC3が接続されている側のポートに転送する。
ノードS3は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト転送する。しかしノードS3においてツリーT1は途切れているため、結果としてラーニングフレームはノードS3から先のノードへは転送されない。
クライアントC3は、ノードS3によって転送された宛先MACアドレスc3の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc3と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC3の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc3のICMP ECHO REPLYフレームを作成し、ノードS3宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードS3は、クライアントC3から送信された主信号フレームを受信する。このとき、宛先MACアドレスc3宛てのフレームは、クライアントC3が接続されている側のポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されているポートに転送すれば良いことがわかる。したがって、ノードS3は前記フレームをノードG1に転送する。
ノードG1は、ノードS3によって転送された主信号フレームを受信する。このとき、宛先MACアドレスc3宛てのフレームは、ノードS3が接続されている側のアップリンクポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1宛てのフレームは、クライアントC1が接続されている側のダウンリンクポートに転送すれば良いことがわかる。したがって、ノードG1は前記フレームをクライアントC1に転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、クライアントC1とクライアントC3の間の通信開始、もしくは前回のMACラーニングエージング開始から、あらかじめ機器制御プログラムを通じてタイマに設定されたMACラーニングエージング時間が経過したが、まだあらかじめ機器制御プログラムを通じてタイマに設定されたTAGラーニングエージング時間が経過していない場合における、クライアントC1とクライアントC3の間の通信シーケンスを説明できた。
なお、本動作例におけるノードG4は、その装置構成を簡略化した、ノードE4に置き換えることができる。簡略化版ノードE4は、ノードG4に対して、(1)メモリ複製情報3013を持たないこと、(2)MACフォワーディングテーブルメモリ2043を持たないこと、(3)ラーニング管理プログラム302およびタイマ306を持たないこと、および、(4)ラーニングフレームを送受信しないことの、4点において異なる。
次に図40を参照して、本実施例における第3の動作例について述べる。
図40は、クライアントC3がクライアントC1に対してPING REQUESTを送信し、クライアントC1がクライアントC3に対してPING REPLYを返答する際の、各ノードおよびクライアント間でのフレームのやり取りをあらわす、シーケンス図である。これを動作例3とする。
図40のシーケンスにおいては、ノードG1、ノードG2,およびノードG4は、図38におけるシーケンスのノードと同様であるば、ノードG3は既存の一般的なイーサネット(R)スイッチである、ノードS3に置き換える。
既存ノードS3は、ノードG3に対して、(1)タグフォワーディングテーブルメモリ2041およびそのメモリ複製情報3013内のテーブルであるタグフォワーディングテーブルメモリ70131を持たないこと、(2)特定の宛先MACアドレスに対して拡張タグを挿入したり削除したりしないこと、および、(3)ラーニングフレームを送受信しないことの、3点において異なる。
シーケンスN131は、ネットワーク動作開始直後もしくはクライアントC3とクライアントC1の間の前回の通信が終了してから十分に長い時間が経過した場合の動作であって、クライアントC1のMACアドレスc1およびクライアントC1が属するノードG1のアドレスg1、さらにクライアントC3のMACアドレスc3が、ノードG1、ノードG2、ノードS3,ノードG4の各ノードにおいてラーニングされていない場合における、クライアントC3とクライアントC1の間の通信シーケンスである。ここでは、クライアントC3が、クライアントC1に対してICMP ECHO REQUESTフレームを送信し、クライアントC1がICMP ECHO REPLYフレームを返答する場合の例を示す。
まず、クライアントC3がクライアントC1に対して、宛先MACがc1、送信元MACがc3のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードS3は、クライアントC3より送信された宛先MACc1宛ての主信号フレームを受信する。このとき、宛先MACアドレスc3宛てのフレームは、クライアントC3が接続されているポートに送信すればよいことをラーニングする。そして、宛先MACc1をキーとして出力ポートを検索するが、MACアドレスc1に関するラーニングが完了していないため、検索ヒットしない。このためノードS3は、前記主信号フレームをツリーT0および、ダウンリンク側ポートにブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはノードG1に転送される。
ノードG1は、前記フレームをアップリンクポートより受信する。宛先MACc1をキーとして、付加するタグおよび出力ポートを検索するが、MACアドレスc1に関するラーニングが完了していないため、検索ヒットしない。このためノードG1は、前記主信号フレームをツリーT0およびダウンリンクポートにブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはクライアントC1およびノードG4の両方に転送される。
ノードG4は、ノードG1より送信された宛先MACc1宛ての主信号フレームを、アップリンクポートより受信する。このとき、宛先MACアドレスc3宛てのフレームは、ノードG1が接続されているアップリンクポートに送信すればよいことをラーニングする。そして、宛先MACc1をキーとして出力ポートを検索するが、MACアドレスc1に関するラーニングが完了していないため、検索ヒットしない。このためノードG4は、前記主信号フレームをツリーT0および、ダウンリンク側ポートにブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはツリーT0に沿ってアップリンクポートよりノードG2に転送される。
ノードG2は、ノードG4より送信された宛先MACc1宛ての主信号フレームを、アップリンクポートより受信する。このとき、宛先MACアドレスc3宛てのフレームは、ノードG4が接続されているアップリンクポートに送信すればよいことをラーニングする。そして、宛先MACc1をキーとして出力ポートを検索するが、MACアドレスc1に関するラーニングが完了していないため、検索ヒットしない。このためノードG2は、前記主信号フレームをツリーT0および、ダウンリンク側ポートにブロードキャストする。このとき、前記フレームに対してタグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートよりクライアントC2に転送される。
クライアントC2は、ノードG2によって転送された宛先MACc1の主信号フレームを受信するが、宛先MACアドレスが自身のMACアドレスc2と一致しないため、このフレームを破棄する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC3から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC1の基本ソフトは、宛先MACアドレスc3、送信元MACアドレスc1のICMP ECHO REPLYフレームを作成し、ノードG1宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、ラーニングにより、宛先MACアドレスc3のフレームに対しては拡張フォワーディングタグを付加せず、ノードS3側のポートに転送すれば良いことがわかる。したがって、ノードG1は前記フレームに対してタグを付加したり削除したりする操作は行わずに、そのままノードS3が接続されているアップリンクポートへ転送する。
ノードG1は、ダウンリンク側から未ラーニングの送信元MACc1が付加されたフレームが到着したため、MACアドレスc1がダウンリンク側ポートに接続されていることをラーニングすると同時に、拡張タグアドレスとしてノードG1のノードアドレスg1を付加したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードS3およびノードG4の両方に転送される。
ノードG4は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG2に転送される。
ノードG2は、アップリンク側からノードG4が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG2においてツリーT1は途切れているため、結果としてラーニングフレームはノードG2から先のノードへは転送されない。
ノードS3は、ノードG1より送信された宛先MACc3宛ての主信号フレームを受信する。このとき、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されているポートに送信すればよいことをラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc3宛てのフレームは、クライアントC3が接続されているポートに転送すれば良いことがわかる。したがって、ノードS3は前記フレームをクライアントC3に転送する。
ノードS3は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト転送する。しかしノードS3においてツリーT1は途切れているため、結果としてラーニングフレームはノードS3から先のノードへは転送されない。
なお、ノードS3はラーニングフレームを受信してネットワーク制御プログラム304を用いて前記フレームを転送することはできるが、受信したフレームの内容を用いてラーニング管理プログラム302によりテーブル情報を更新することはできない。したがって、ラーニングフレームにより、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということはラーニングできない。
クライアントC3は、ノードS3によって転送された宛先MACアドレスc3の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc3と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、ネットワーク動作開始直後もしくはクライアントC3とクライアントC1の間の前回の通信が終了してから十分に長い時間が経過した場合の動作であって、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらにクライアントC3のMACアドレスc3が、ノードG1、ノードG2、ノードS3,ノードG4の各ノードにおいてラーニングされていない場合における、クライアントC3とクライアントC1の間の通信シーケンスを説明できた。
シーケンスN132は、クライアントC3とクライアントC1の間の前回の通信が終了してから長時間経過していない場合であって、クライアントC1のMACアドレスc1およびクライアントC1の属するノードのアドレスg1が、ノードG1、ノードG2、ノードS3、ノードG4の各ノードにおいてすでにラーニングされており、さらにクライアントC3のMACアドレスc3が、ノードG1およびノードS3の各ノードにおいてすでにラーニングされている場合における、クライアントC3とクライアントC1の間の通信シーケンスである。
ここでは、クライアントC3が、クライアントC1に対してICMP ECHO REQUESTフレームを送信し、クライアントC1がICMP ECHO REPLYフレームを返答する場合の例を示す。
まず、クライアントC3がクライアントC1に対して、宛先MACがc1、送信元MACがc3のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードS3は、クライアントC3から送信された主信号フレームを受信する。このとき、宛先MACアドレスc3宛てのフレームは、クライアントC3が接続されている側のポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されているポートに転送すれば良いことがわかる。したがって、ノードS3は前記フレームをノードG1に転送する。
ノードG1は、ノードS3によって転送された主信号フレームを受信する。このとき、宛先MACアドレスc3宛てのフレームは、ノードS3が接続されている側のアップリンクポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1宛てのフレームは、クライアントC1が接続されている側のダウンリンクポートに転送すれば良いことがわかる。したがって、ノードG1は前記フレームをクライアントC1に転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC3から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC1の基本ソフトは、宛先MACアドレスc3、送信元MACアドレスc1のICMP ECHO REPLYフレームを作成し、ノードG1宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、ラーニングにより、宛先MACアドレスc3のフレームに対しては拡張フォワーディングタグを付加せず、ノードS3側のポートに転送すれば良いことがわかる。したがって、ノードG1は前記フレームに対してタグを付加したり削除したりする操作は行わずに、そのままノードS3が接続されているアップリンクポートへ転送する。このとき、宛先MACアドレスc1宛てのフレームは、クライアントC1が接続されている側のダウンリンクポートに送信すればよいことを再ラーニングする。
ノードS3は、ノードG1から送信された主信号フレームを受信する。このとき、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されている側のポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、ラーニングにより、宛先MACアドレスc3宛てのフレームは、クライアントC3が接続されているポートに転送すれば良いことがわかる。したがって、ノードS3は前記フレームをクライアントC3が接続されている側のポートに転送する。
クライアントC3は、ノードS3によって転送された宛先MACアドレスc3の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc3と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、クライアントC3とクライアントC1の間の前回の通信が終了してから長時間経過していない場合であって、クライアントC1のMACアドレスc1およびクライアントC1の属するノードのアドレスg1が、ノードG1、ノードG2、ノードS3、ノードG4の各ノードにおいてすでにラーニングされており、さらにクライアントC3のMACアドレスc3が、ノードG1およびノードS3の各ノードにおいてすでにラーニングされている場合における、クライアントC3とクライアントC1の間の通信シーケンスを説明できた。
シーケンスN133は、クライアントC3とクライアントC1の間の通信開始、もしくは前回のMACラーニングエージング開始から、あらかじめ機器制御プログラムを通じてタイマに設定されたMACラーニングエージング時間が経過したが、まだあらかじめ機器制御プログラムを通じてタイマに設定されたTAGラーニングエージング時間が経過していない場合における、クライアントC3とクライアントC1の間の通信シーケンスである。
この場合では、クライアントC1のMACアドレスc1およびクライアントC3のMACアドレスc3は、すでにラーニングされているがラーニングフレームを再送信するよう設定されており、クライアントC1が属するノードのアドレスg1は、シーケンスN122と同様に、ノードG1、ノードG2、ノードS3、ノードG4の各ノードにおいてすでにラーニングされている。
ここでは、クライアントC3が、クライアントC1に対してICMP ECHO REQUESTフレームを送信し、クライアントC1がICMP ECHO REPLYフレームを返答する場合の例を示す。
まず、クライアントC3がクライアントC1に対して、宛先MACがc1、送信元MACがc3のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードS3は、クライアントC3から送信された主信号フレームを受信する。このとき、宛先MACアドレスc3宛てのフレームは、クライアントC3が接続されている側のポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されているポートに転送すれば良いことがわかる。したがって、ノードS3は前記フレームをノードG1に転送する。
ノードG1は、ノードS3によって転送された主信号フレームを受信する。このとき、宛先MACアドレスc3宛てのフレームは、ノードS3が接続されている側のアップリンクポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1宛てのフレームは、クライアントC1が接続されている側のダウンリンクポートに転送すれば良いことがわかる。したがって、ノードG1は前記フレームをクライアントC1に転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC3から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC1の基本ソフトは、宛先MACアドレスc3、送信元MACアドレスc1のICMP ECHO REPLYフレームを作成し、ノードG1宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、ラーニングにより、宛先MACアドレスc3のフレームに対しては拡張フォワーディングタグを付加せず、ノードS3側のポートに転送すれば良いことがわかる。したがって、ノードG1は前記フレームに対してタグを付加したり削除したりする操作は行わずに、そのままノードS3が接続されているアップリンクポートへ転送する。
ノードG1は、ダウンリンク側からラーニングフレーム再送信が必要な送信元MACアドレスc1が付加されたフレームが到着したため、ソースタグアドレスg1を付加したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードS3およびノードG4の両方に転送される。
ノードG4は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということを再ラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG2に転送される。
ノードG2は、アップリンク側からノードG4が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということを再ラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG2においてツリーT1は途切れているため、結果としてラーニングフレームはノードG2から先のノードへは転送されない。
ノードS3は、ノードG1より送信された宛先MACc3宛ての主信号フレームを受信する。このとき、宛先MACアドレスc1宛てのフレームは、ノードG1が接続されているポートに送信すればよいことを再ラーニングする。そして、宛先MACをキーとして出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc3宛てのフレームは、クライアントC3が接続されているポートに転送すれば良いことがわかる。したがって、ノードS3は前記フレームをクライアントC3に転送する。
ノードS3は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト転送する。しかしノードS3においてツリーT1は途切れているため、結果としてラーニングフレームはノードS3から先のノードへは転送されない。
クライアントC3は、ノードS3によって転送された宛先MACアドレスc3の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc3と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、クライアントC3とクライアントC1の間の通信開始、もしくは前回のMACラーニングエージング開始から、あらかじめ機器制御プログラムを通じてタイマに設定されたMACラーニングエージング時間が経過したが、まだあらかじめ機器制御プログラムを通じてタイマに設定されたTAGラーニングエージング時間が経過していない場合における、クライアントC3とクライアントC1の間の通信シーケンスを説明できた。
なお、本動作例におけるノードG4は、その装置構成を簡略化した、ノードE4に置き換えることができる。簡略化版ノードE4は、ノードG4に対して、(1)メモリ複製情報3013を持たないこと、(2)MACフォワーディングテーブルメモリ2043を持たないこと、(3)ラーニング管理プログラム302およびタイマ306を持たないこと、および、(4)ラーニングフレームを送受信しないことの、4点において異なる。
次に、本実施例の効果について説明する。
従来、イーサネット(R)によるネットワークに、方向によってフローの経由するノードが異なる非対称フローを流した場合、ラーニングプロセスが機能せず、フレームは宛先に届くものの、不必要な宛先にまで伝達されてしまうため、ネットワークの混雑を引き起こし、帯域利用効率が下がるという問題があった。
本実施例では、主信号フレームが流れる経路とは逆の経路にラーニングフレームを送信することで、非対称フローを流した場合でもラーニングプロセスを機能させることができ、ネットワークの混雑を解消し、帯域利用効率を上げることが可能である。
また従来、宛先を示すタグを用いたフレーム転送を行う場合は、あらかじめ各ノードに宛先MACアドレスに応じて付加すべき拡張タグに関する情報(宛先クライアントが接続されているノードのノードアドレス等)を設定しておかなければならなかった。
本実施例では、前記ラーニングフレームにタグ情報を含めることで、各ノードにおいて、宛先MACアドレスとこれに応じて付加すべき拡張タグとの対応付けを設定することができ、設定作業を自動化することが可能である。
(第2の実施例)
以下、本発明の第2の実施例について、図面を参照して詳細に説明する。
本発明の第2の実施例は、第1の実施例において、ラーニングフレームを送信する代わりに、宛先不明ユニキャストフレーム、ブロードキャストフレームもしくはマルチキャストフレームに送信元ノードのアドレスを格納した拡張タグを追加し、前記拡張タグ付きフレームを受信した各ノードがこの拡張タグを用いてMACアドレスとタグアドレスの関連づけを学習する点と、エージング完了時に、エージングにより消去されずに残ったエントリに対してラーニングフレームを送信しない点とが異なる。本実施例においては、送信元ノードのアドレスが格納された拡張タグ(以下、ソースタグという)つきブロードキャストフレームを用いてMAC→タグラーニングを行うため、ラーニングフレームの送信を省略することができる。
図41は、第1の実施例における図1のネットワーク上を転送されるソースタグ付きイーサネット(R)フレーム62Aの構成を示すブロック図である。
ソースタグ付きイーサネット(R)フレーム62Aは、第1の実施例におけるフォワーディングタグ付きイーサネット(R)フレーム62のタグ620の優先度・タグ識別情報6201に、ソースタグを示すビットが付加されている。
図42は、第1の実施例における図10に記載のテーブルサーチ器203の構成を詳細に示したブロック図である。
テーブル管理器2031Aは、第1の実施例における図14に記載のテーブル管理器2031に対して、情報比較器2032よりMACフォワーディングテーブルにおいてミスヒットの通知を受けた際の動作、および図41に記載の宛先MACアドレス601に、ブロードキャストアドレスもしくはマルチキャストアドレスが設定された場合の動作が異なる。
第1の実施例におけるテーブル管理器2031は、ダウンリンクポートからフレームを受信し、情報比較器2032よりMACフォワーディングテーブル2043においてミスヒットが発生したとの通知を受たた場合、もしくは宛先MACアドレスにブロードキャストアドレスもしくはマルチキャストアドレスが設定されていた場合は、入力されたVLANタグをキーとしてブロードキャストフォワーディングテーブル2042を検索していた。
これに対して、本実施例におけるテーブル管理器2031Aは、情報比較器2032AよりMACフォワーディングテーブル2043においてミスヒットが発生した場合(付加すべき宛先タグが不明の場合)、もしくは宛先MACアドレスにブロードキャストアドレスまたはマルチキャストアドレスが設定されていた場合は、自ノードアドレスをキーとしてブロードキャストフォワーディングテーブル2042を検索し、フレーム送出先ポートを決定する。
情報比較器2032Aは、第1の実施例における図14に記載の情報比較器2032に対して、MACフォワーディングテーブルにおいてミスヒットを検出した場合、および図41に記載の宛先MACアドレス601に、ブロードキャストアドレスまたはマルチキャストアドレスが設定された場合の動作が異なる。
第1の実施例における情報比較器2032は、MACフォワーディングテーブル2043を検索した結果ミスヒットを検出した場合、もしくは宛先MACアドレスにブロードキャストアドレスまたはマルチキャストアドレスが設定されていた場合は、テーブル管理器に2031に通知を行うが、フレーム書換え器205に対しては、特に書換え指示を行わなかった。
これに対して、本実施例における情報比較器2032Aは、MACフォワーディングテーブル2043を検索した結果ミスヒットを検出した場合、もしくは宛先MACアドレスにブロードキャストアドレスまたはマルチキャストアドレスが設定されていた場合は、テーブル管理器に2031に通知を行うほか、フレーム書換え器205に対して自ノードIDが格納されたソースタグをフレームに追加挿入するよう、タグ情報20323およびタグ制御情報20322により指示を出す。
以上に記載の動作により、フレームサーチ器203において、MACフォワーディングテーブル2043を検索した結果ミスヒットを検出した場合、もしくは宛先MACアドレスにブロードキャストアドレスまたはマルチキャストアドレスが設定されていた場合は、入力フレームにソースタグが追加挿入され、自ノードをルートノードとするツリーの経路に沿ってブロードキャスト転送される。
図43は、第2の実施例におけるラーニング管理器202Aの構成を詳細に示したブロック図である。ラーニング管理器202Aは、第1の実施例における図12に記載のに記載のラーニングフレーム送信管理器202と比べ、ラーニングフレーム管理器2021がラーニングフレーム管理器2021Aとなっている点において異なる。
ラーニングフレーム管理器2021Aは、第1の実施例における図12に記載のラーニングフレーム管理器2021に対して、フレームヘッダ情報として、送信元のアドレスを示す拡張タグ(ソースタグ)付きフレームを受信した場合の動作が異なる。
第1の実施例におけるラーニングフレーム管理器2021は、フレームヘッダ情報20141を受取ると、フレームのヘッダ構造にかかわらず、常に送信元MACアドレスをチェックしてから、ラーニングフレームの送信要求を行っていた。つまりフレームヘッダ情報のMAC送信元アドレスと同じMAC送信元アドレスがMAC SAテーブルキャッシュ2025にエントリされていないかを確認し、確認後、エントリされていない場合は、送信要求器2023に、フレームヘッダ情報20141と共にラーニングフレーム送信要求20231を出力していた。
これに対して、本実施例におけるラーニングフレーム管理器2021Aは、フレームヘッダ情報20141を受取ると、フレームのヘッダ構造を調べ、送信元のノードアドレスを示す拡張タグ(ソースタグ)付きフレームである場合は、MACSAキャッシュテーブル2025を検索せずに、常に第1の実施例における、MAC送信元アドレスがMAC SAキャッシュテーブルにエントリされていない場合と同様、フレームヘッダ情報20141と共にラーニングフレーム送信要求20231を出力する点において異なる。
なおラーニングフレーム管理器2021Aは、フレームヘッダ情報20141を受取り、フレームのヘッダ構造を調べ、送信元のノードアドレスを示す拡張タグ(ソースタグ)付きフレームでなかった場合は、ラーニングフレーム管理器2021と同様、フレームヘッダ情報のMAC送信元アドレスと同じMAC送信元アドレスがMAC SAテーブルキャッシュ2025にエントリされていないかを確認し、確認後、エントリされていない場合は、送信要求器2023に、フレームヘッダ情報20141と共にラーニングフレーム送信要求20231を出力する。また、同時に、MAC送信元アドレス情報を、MAC SAテーブルキャッシュ2025にエントリする。もし確認時、同一のMAC宛先アドレスがすでにエントリされていた場合は、送信要求を出力しない。
またラーニングフレーム管理器2021Aは、MAC SAテーブルキャッシュ2025を、エージング要求受付器2022からの要求により、ゼロクリアする機能を持つ。これについては、ラーニングフレーム管理器2021と同じ動作である。
図44は、第1の実施例における図23に示すラーニング管理プログラム302での、イベント01の動作を詳細に示した流れ図である。図44を参照すると、本発明の第2の実施例は、第1の実施例における図25のステップN0103Aの動作を設定により変更し、ラーニングフレームを送信するか否かを選択できるほか、Ptype=0と設定することで、MACフォワードテーブルにエントリを書き込む際に、常にラーニングフレーム送信対象外エントリとして登録する点において異なる。
ステップN0101、N0102、N0104〜N0106は、第1の実施例における図25のステップN0101、N0102、N0104〜N0106と同様である。
ステップN0103において、ステップN0101で通知されたフレーム解析器201の判定結果を調べ、もしラーニングしようとしているフレームがアップリンク側から入力されたものである場合、もしくはダウンリンクからの入力であっても、ラーニングフレームの送信が設定により停止されている場合は、ステップN0105に移る。もしダウンリンクからの入力であり、ラーニングフレームを送信可能な状態に設定されている場合、Ptype=0としてラーニングフレームを一度だけ送信し、以降の周期的な自動送信は行わないように設定した上で、ステップN0104に移る。
次に図45を参照して、本実施例における第1の動作例について述べる。
以降のシーケンス図において、拡張タグが付加されていない主信号フレームのシーケンスを細い実線で示す。また、拡張タグ(宛先クライアントが接続されたノードのノードアドレスが付加されたフォワーディングタグ)付き主信号フレームのシーケンスを太い実線で示し、拡張タグ(ソースタグ)付き主信号フレームのシーケンスを太い破線で示す。さらに拡張タグ(ソースタグ)付きラーニング(学習)のシーケンスを細い破線で示す。
図45は、第1の実施例における図1に示すネットワークにおいて、クライアントC1がクライアントC2に対してPING REQUESTを送信し、クライアントC2がクライアントC1に対してPING REPLYを返答する際の、各ノードおよびクライアント間でのフレームのやり取りをあらわす、シーケンス図である。ラーニングフレームは、送信しないように設定されているとする。
シーケンスN211は、シーケンスN212におけるクライアントC1からクライアントC2に対するPING REQUEST送信に先立って行われる、クライアントC1によるARP(Address Resolution Protocol) REQUESTを送信と、これに対するクライアントC2によるARP REPLYの返答を示したクライアントC1とクライアントC2の間の通信シーケンスである。
シーケンスN211の開始時においては、ネットワーク動作開始直後もしくはクライアントC1とクライアントC2の間の前回の通信が終了してから十分に長い時間が経過しており、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらにクライアントC2のMACアドレスc2およびクライアントC2が属するノードのアドレスg2が、ノードG1〜G4の各ノードにおいてラーニングされておらず、さらにC1、C2、C3の各ノードにおいて、ARPキャッシュはクリアされており、PINGに先立ってARP解決が必要である状態であるとする。
まず、クライアントC1がクライアントC2に対して、宛先MACがブロードキャスト(宛先MACアドレスがALL F)、送信元MACがc1のARP REQUESTフレームを送信する。このフレームを、以降の説明のARPリクエストフレームと呼ぶ。
ノードG1は、前記フレームをダウンリンクポートより受信する。宛先MACがブロードキャストアドレスであるため、ノードG1は、前記ARP REQUESTフレームを、ソースタグg1を付加した上で、第1の実施例における図34に記載の自らがルートノードとなるツリーT1に沿ってブロードキャストする。この結果、ARP REQUESTフレームは図41に示すソースタグ付きイーサネット(R)フレーム62AのフォーマットでノードG3およびノードG4の両方に転送される。
ノードG1は、ダウンリンク側から未ラーニングの送信元MACc1が付加されたフレームが到着したため、MACアドレスc1がダウンリンク側ポートに接続されていることをラーニングする。この際、設定によりラーニングフレームの送信は停止されているので、ラーニングフレームは送信しない。
ノードG3は、ノードG1より送信されたソースタグg1つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、ARP REQUESTフレームはダウンリンクポートより、ソースタグを削除してクライアントC3に転送される。
この際ノードG3は、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。
クライアントC3は、ノードG3によって転送されたARP REQUESTフレームを受信するが、要求されているIPアドレスが自身のIPアドレスと一致しないため、このフレームを破棄する。
ノードG4は、ノードG1より送信されたソースタグg1つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、前記フレームはツリーT1に沿ってアップリンクポートより、タグ操作なしでノードG2に転送される。
この際ノードG4は、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。
ノードG2は、ノードG4より送信されたソースタグg1つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートより、ソースタグを削除してクライアントC2に転送される。
この際ノードG2は、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。
クライアントC2は、ノードG2によって転送されたARP REQUESTフレームを受信し、要求されているIPアドレスが自身のIPアドレスと一致することを確認する。そして、宛先MACアドレスc1、送信元MACアドレスc2のARP REPLYフレームを生成し、ノードG2宛てに送信する。このフレームを、以降の説明のARP REPLYフレームと呼ぶ。
ノードG2は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1のフレームに対して、拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送すれば良いことがわかる。したがって、ノードG2は前記フレームに拡張フォワーディングタグg1を付加し、ノードG4に転送する。
このときノードG2は、ダウンリンク側から未ラーニングの送信元MACc2が付加されたフレームが到着したため、MACアドレスc2がダウンリンク側ポートに接続されていることをラーニングする。この際、設定によりラーニングフレームの送信は停止されているので、ラーニングフレームは送信しない。
ノードG4は、ノードG2より送信された宛先拡張タグg1のARP REPLYフレームを、アップリンクポートより受信する。そして、宛先拡張タグg1をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg1に対する出力ポートは、常にスパニングツリーT1のルートポート側に設定されているため、ノードG4は前記受信フレームを、アップリンクポートよりノードG1に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG1は、ノードG4より送信された宛先拡張タグg1のARP REPLYフレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg1は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc1をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc1を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG1は前記フレームをクライアントC1が接続されているダウンリンクポートに転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームを受信し、ARPモジュールに引き渡し、宛先IPアドレスに対するMACアドレスをARPテーブルに記録する。
以上により、シーケンスN212におけるクライアントC1からクライアントC2に対するPING REQUEST送信に先立って行われる、クライアントC1によるARP REQUESTを送信と、これに対するクライアントC2によるARP REPLYの返答を示したクライアントC1とクライアントC2の間の通信シーケンスを説明できた。
シーケンスN212は、シーケンスN211によるクライアントC1とクライアントC2の間のARP REQUESTおよびARP REPLYの交換が完了してから長時間経過しておらず、クライアントC1のMACアドレスc1に対するクライアントC1が属するノードのアドレスg1がノードG2〜G4の各ノードにおいてすでにラーニングされており、クライアントC1のMACアドレスc1に対する出力ポートがノードG1においてすでにラーニングされており、さらにクライアントC2のMACアドレスc2に対する出力ポートがノードG4においてすでにラーニングされている場合における、クライアントC1とクライアントC2の間のICMP ECHO REQUEST(PING REQUEST)、ICMP ECHO REPLY(PING REPLY)の通信シーケンスである。なお、ノードG1〜G3の各ノードにおいては、クライアントC2のMACアドレスc2に対するクライアントC2が属するノードのアドレスg2は未学習であるとする。
まず、クライアントC1がクライアントC2に対して、宛先MACがc2、送信元MACがc1のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索するが、MACアドレスc2に関するラーニングが完了していないため、検索ヒットしない。このためノードG1は、前記主信号フレームにソースタグg1を付加した上で、第1の実施例における図34に記載の、自らがルートノードとなるツリーT1に沿ってブロードキャストする。この結果、主信号フレームは図41に示すソースタグ付きイーサネット(R)フレーム62AのフォーマットでノードG3およびノードG4の両方に転送される。
ノードG3は、ノードG1より送信された宛先MACc2宛ての主信号フレームを、アップリンクポートより受信する。そして、宛先MACc2をキーとして出力ポートを検索するが、MACアドレスc2に関するラーニングが完了していないため、検索ヒットしない。このためノードG3は、前記主信号フレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートより、ソースタグg1を削除してクライアントC3に転送される。
クライアントC3は、ノードG3によって転送された宛先MACc2の主信号フレームを受信するが、宛先MACアドレスが自身のMACアドレスc3と一致しないため、このフレームを破棄する。
ノードG4は、ノードG1より送信された宛先MACc2宛てソースタグg1つきの主信号フレームを、アップリンクポートより受信する。ノードG4は前記フレームにソースタグが付加されているため、宛先MACc2をキーとした検索を行わずに、前記主信号フレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、主信号フレームはタグの追加・削除を行わずに、ツリーT1に沿ってアップリンクポートよりノードG2に転送される。
ノードG2は、ノードG4より送信された宛先MACc2宛ての主信号フレームを、アップリンクポートより受信する。そして、宛先MACc2をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc2を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG2は前記フレームをソースタグg1をはずした上で、クライアントC2が接続されているダウンリンクポートに転送する。
クライアントC2は、ノードG2によって転送された宛先MACアドレスc2の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc2と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC2の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc2のICMP ECHO REPLYフレームを作成し、ノードG2宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG2は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、シーケンスN211におけるラーニング動作により、宛先MACアドレスc1のフレームに対して、拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送すれば良いことがわかる。したがって、ノードG2は前記フレームに拡張フォワーディングタグg1を付加し、ノードG4に転送する。
ノードG4は、ノードG2より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg1をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg1に対する出力ポートは、常にスパニングツリーT1のルートポート側に設定されているため、ノードG4は前記受信フレームを、アップリンクポートよりノードG1に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG1は、ノードG4より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg1は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc1をキーとして、ダウンリンク側の出力ポートを検索する。すると、シーケンスN211におけるラーニング動作により、宛先MACアドレスc1を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG1は前記フレームをクライアントC1が接続されているダウンリンクポートに転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、シーケンスN211によるクライアントC1とクライアントC2の間のARP REQUESTおよびARP REPLYの交換が完了してから長時間経過しておらず、クライアントC1のMACアドレスc1に対するクライアントC1が属するノードのアドレスg1がノードG2〜G4の各ノードにおいてすでにラーニングされており、クライアントC1のMACアドレスc1に対する出力ポートがノードG1においてすでにラーニングされており、さらにクライアントC2のMACアドレスc2に対する出力ポートがノードG4においてすでにラーニングされている場合における、クライアントC1とクライアントC2の間のICMP ECHO REQUEST(PING REQUEST)、ICMP ECHO REPLY(PING REPLY)の通信シーケンスを説明できた。
シーケンスN213は、前記シーケンスN211および前記シーケンスN212の通信から長時間経過していない、つまりエージング処理が行われる前の状態において、クライアントC2からクライアントC3に対してARP REQUESTを行った場合の通信シーケンスを示している。
まず、クライアントC2がクライアントC3に対して、宛先MACがブロードキャスト(ALL F)、送信元MACがc2のARP REQUESTフレームを送信する。
ノードG2は、前記フレームをダウンリンクポートより受信する。宛先MACがブロードキャストアドレスであるため、ノードG2は、前記ARP REQUESTフレームを、ソースタグg2を付加した上で、第1の実施例における図35に記載の自らがルートノードとなるツリーT2に沿ってブロードキャストする。この結果、主信号フレームはノードG3およびノードG4の両方に転送される。
ノードG4は、ノードG2より送信されたソースタグg2つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT2および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。しかしノードG4においてツリーT2は途切れているため、結果として前記ARP REQUESTフレームはノードG4から先のノードへは転送されない。
この際ノードG4は、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。
ノードG3は、ノードG2より送信されたソースタグg2つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT2および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、ARP REQUESTフレームは、アップリンクポートよりタグの操作なしでノードG1に転送されると共に、ダウンリンクポートより、ソースタグを削除してクライアントC3にも転送される。
この際ノードG3は、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。
クライアントC3は、ノードG3によって転送されたARP REQUESTフレームを受信し、要求されているIPアドレスが自身のIPアドレスと一致することを確認する。そして、宛先MACアドレスc2、送信元MACアドレスc3のARP REPLYフレームを生成し、ノードG2宛てに送信する。
ARP REPLYフレームはノードG3において宛先タグg2が付加され、ツリーT2を経由してノードG2に到達し、ノードG2において宛先タグを削除された後、ダウンリンクポートよりクライアントC2に向けて転送される。
ノードG1は、ノードG3より送信されたソースタグg2つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT2および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートより、ソースタグを削除してクライアントC1に転送される。
この際ノードG1は、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。
クライアントC1は、ノードG2によって転送されたARP REQUESTフレームを受信するが、要求されているIPアドレスが自身のIPアドレスと一致しないため、処理を完了する。
以上により、前記シーケンスN211および前記シーケンスN212の通信から長時間経過していない、つまりエージング処理が行われる前の状態において、クライアントC2からクライアントC3に対してARP REQUESTを行った場合の通信シーケンスを説明できた。
シーケンスN214は、前記シーケンスN211〜N213の通信から長時間経過していない、つまりエージング処理が行われる前の状態において、クライアントC1からクライアントC2に対してICMP ECHO REQUEST(PING REQUEST)フレームを送信し、クライアントC2がICMP ECHO REPLY(PING REPLY)フレームを返答する場合の例を示している。
シーケンスN214では、クライアントC1のMACアドレスc1に対するクライアントC1が属するノードのアドレスg1がノードG2〜G4の各ノードにおいてすでにラーニングされており、クライアントC1のMACアドレスc1に対する出力ポートがノードG1においてすでにラーニングされており、クライアントC2のMACアドレスc2に対する出力ポートがノードG4においてすでにラーニングされており、さらにノードG1〜G3の各ノードにおいて、クライアントC2のMACアドレスc2に対するクライアントC2が属するノードのアドレスg2が既にラーニングされているとする。
まず、クライアントC1がクライアントC2に対して、宛先MACがc2、送信元MACがc1のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、ラーニングにより、宛先MACアドレスc2のフレームに対して、拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送すれば良いことがわかる。したがって、ノードG1は前記フレームに拡張フォワーディングタグg2を付加し、ノードG3に転送する。
ノードG3は、ノードG1より送信された宛先拡張タグg2の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg2をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg2に対する出力ポートは、常にスパニングツリーT2のルートポート側に設定されているため、ノードG3は前記受信フレームを、アップリンクポートよりノードG2に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG2は、ノードG3より送信された宛先拡張タグg2の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg2は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc2をキーとして、ダウンリンク側の出力ポートを検素する。すると、先ほどのラーニング動作により、宛先MACアドレスc2を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG2は前記フレームをクライアントC2が接続されているダウンリンクポートに転送する。
クライアントC2は、ノードG2によって転送された宛先MACアドレスc2の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc2と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC2の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc2のICMP ECHO REPLYフレームを作成し、ノードG2宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG2は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、宛先MACアドレスc1のフレームに対して、拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送すれば良いことがわかる。したがって、ノードG2は前記フレームに拡張フォワーディングタグg1を付加し、ノードG4に転送する。
ノードG4は、ノードG2より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg1をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg1に対する出力ポートは、常にスパニングツリーT1のルートポート側に設定されているため、ノードG4は前記受信フレームを、アップリンクポートよりノードG1に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG1は、ノードG4より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg1は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc1をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc1を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG1は前記フレームをクライアントC1が接続されているダウンリンクポートに転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、クライアントC1とクライアントC2の間の前回の通信が終了してから長時間経過していない場合であって、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらにクライアントC2のMACアドレスc2およびクライアントC2が属するノードのアドレスg2が、ノードG1〜G4の各ノードにおいて、すでにラーニングされている場合における、クライアントC1とクライアントC2の間の通信シーケンスを説明できた。
なお、本動作例におけるノードG4は、その装置構成を簡略化した、ノードE4に置き換えることができる。簡略化版ノードE4は、ノードG4に対して、(1)メモリ複製情報3013を持たないこと、(2)MACフォワーディングテーブルメモリ2043を持たないこと、(3)ラーニング管理プログラム302およびタイマ306を持たないこと、および、(4)ラーニングフレームを送受信しないことの、4点において異なる。
次に図46を参照して、本実施例における第2の動作例について述べる。
以降のシーケンス図において、拡張タグが付加されていない主信号フレームのシーケンスを細い実線で示す。また、拡張タグ(フォワーディングタグ)付き主信号フレームのシーケンスを太い実線で示し、拡張タグ(ソースタグ)付き主信号フレームのシーケンスを太い破線で示す。さらに拡張タグ(ソースタグ)付きラーニングのシーケンスを細い破線で示す。
図46は、クライアントC1がクライアントC2に対してPING REQUESTを送信し、クライアントC2がクライアントC1に対してPING REPLYを返答する際の、各ノードおよびクライアント間でのフレームのやり取りをあらわす、シーケンス図である。
本動作例は、図45に示した第1の実施例とは異なり、ノードG1〜G4の各ノードはラーニングフレームを送信するように設定されているとする。つまり、第1の実施例に示したソースタグによるラーニングのほか、第1の実施例に示したラーニングフレームによるラーニングを組み合わせたものである。
シーケンスN221は、シーケンスN221におけるクライアントC1からクライアントC2に対するPING REQUEST送信に先立って行われる、クライアントC1によるARP REQUESTを送信と、これに対するクライアントC2によるARP REPLYの返答を示したクライアントC1とクライアントC2の間の通信シーケンスである。
シーケンスN221の開始時においては、ネットワーク動作開始直後もしくはクライアントC1とクライアントC2の間の前回の通信が終了してから十分に長い時間が経過しており、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらにクライアントC2のMACアドレスc2およびクライアントC2が属するノードのアドレスg2が、ノードG1〜G4の各ノードにおいてラーニングされておらず、さらにC1、C2、C3の各ノードにおいて、ARPキャッシュはクリアされており、PINGに先立ってARP解決が必要である状態であるとする。
まず、クライアントC1がクライアントC2に対して、宛先MACがブロードキャスト(ALL F)、送信元MACがc1のARP REQUESTフレームを送信する。このフレームを、以降の説明のARPリクエストフレームと呼ぶ。
ノードG1は、前記フレームをダウンリンクポートより受信する。宛先MACがブロードキャストアドレスであるため、ノードG1は、前記ARP REQUESTフレームを、ソースタグg1を付加した上で、第1の実施例における図34に記載の自らがルートノードとなるツリーT1に沿ってブロードキャストする。この結果、ARP REQUESTフレームは図41に示すソースタグ付きイーサネット(R)フレーム62AのフォーマットでノードG3およびノードG4の両方に転送される。
ノードG1は、ダウンリンク側から未ラーニングの送信元MACc1が付加されたフレームが到着したため、MACアドレスc1がダウンリンク側ポートに接続されていることをラーニングすると同時に、拡張タグアドレスとしてノードG1のアドレスg1を付加したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG3およびノードG4の両方に転送される。
ノードG3は、ノードG1より送信されたソースタグg1つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、ARP REQUESTフレームはダウンリンクポートより、ソースタグを削除してクライアントC3に転送される。
この際ノードG3は、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。
ノードG3は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングしようとするが、すでにソースタグ付きARP REQUESTの到着により、このラーニングが完了しているため、新たなラーニング動作を行うことなく、受信したラーニングフレームをツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG3においてツリーT1は途切れているため、結果としてラーニングフレームはノードG3から先のノードへは転送されない。
クライアントC3は、ノードG3によって転送されたARP REQUESTフレームを受信するが、要求されているIPアドレスが自身のIPアドレスと一致しないため、このフレームを破棄する。
ノードG4は、ノードG1より送信されたソースタグg1つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、前記フレームはツリーT1に沿ってアップリンクポートより、タグ操作なしでノードG2に転送される。
この際ノードG4は、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。
ノードG4は、アップリンク側からノードG1が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングしようとするが、すでにソースタグ付きARP REQUESTの到着により、このラーニングが完了しているため、新たなラーニング動作を行うことなく、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG2に転送される。
ノードG2は、ノードG4より送信されたソースタグg1つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートより、ソースタグを削除してクライアントC2に転送される。
この際ノードG2は、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。
ノードG2は、アップリンク側からノードG4が送信したラーニングフレームを受信すると、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングしようとするが、すでにソースタグ付きARP REQUESTの到着により、このラーニングが完了しているため、新たなラーニング動作を行うことなく、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG2においてツリーT1は途切れているため、結果としてラーニングフレームはノードG2から先のノードへは転送されない。
クライアントC2は、ノードG2によって転送されたARP REQUESTフレームを受信し、要求されているIPアドレスが自身のIPアドレスと一致することを確認する。そして、宛先MACアドレスc1、送信元MACアドレスc2のARP REPLYフレームを生成し、ノードG2宛てに送信する。このフレームを、以降の説明のARP REPLYフレームと呼ぶ。
ノードG2は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1のフレームに対して、拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送すれば良いことがわかる。したがって、ノードG2は前記フレームに拡張フォワーディングタグg1を付加し、ノードG4に転送する。
これと同時に、ノードG2は、ダウンリンク側から未ラーニングの送信元MACアドレスc2が付加されたフレームが到着したため、MACアドレスc2がダウンリンク側ポートに接続されていることをラーニングすると同時に、ソースタグアドレスg2を付加したラーニングフレームを、ツリーT2に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG3およびノードG4の両方に転送される。
ノードG4は、ノードG2より送信された宛先拡張タグg1のARP REPLYフレームを、アップリンクポートより受信する。そして、宛先拡張タグg1をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg1に対する出力ポートは、常にスパニングツリーT1のルートポート側に設定されているため、ノードG4は前記受信フレームを、アップリンクポートよりノードG1に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG4は、アップリンク側からノードG2が送信したラーニングフレームを受信すると、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT2に沿ってアップリンク側にブロードキャスト送信する。しかしノードG4においてツリーT2は途切れているため、結果としてラーニングフレームはノードG4から先のノードへは転送されない。
ノードG3は、アップリンク側からノードG2が送信したラーニングフレームを受信すると、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT2に沿ってアップリンク側にブロードキャスト送信する。この結果、ラーニングフレームはノードG1に転送される。
ノードG1は、ノードG4より送信された宛先拡張タグg1のARP REPLYフレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg1は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc1をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc1を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG1は前記フレームをクライアントC1が接続されているダウンリンクポートに転送する。
ノードG1は、アップリンク側からノードG3が送信したラーニングフレームを受信すると、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。また同時に、受信したラーニングフレームを、ツリーT1に沿ってアップリンク側にブロードキャスト送信する。しかしノードG1においてツリーT2は途切れているため、結果としてラーニングフレームはノードG1から先のノードへは転送されない。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームを受信し、ARPモジュールに引き渡し、宛先IPアドレスに対するMACアドレスをARPテーブルに記録する。
以上により、シーケンスN222におけるクライアントC1からクライアントC2に対するPING REQUEST送信に先立って行われる、クライアントC1によるARP REQUESTを送信と、これに対するクライアントC2によるARP REPLYの返答を示したクライアントC1とクライアントC2の間の通信シーケンスを説明できた。
シーケンスN221における一連の動作により、クライアントC1のMACアドレスc1に対するクライアントC1が属するノードのアドレスg1がノードG2〜G4の各ノードにおいてラーニングされ、クライアントC1のMACアドレスc1に対する出力ポートがノードG1においてラーニングされて、さらにクライアントC2のMACアドレスc2に対する出力ポートがノードG4においてラーニングされ、ノードG1〜G3の各ノードにおいては、クライアントC2のMACアドレスc2に対するクライアントC2が属するノードのアドレスg2がラーニングされた。さらにC1、C2の各ノードにおいて、クライアントC1およびクライアントC2に対するARP(IPアドレスとMACアドレスの対応付け)が記憶された。
シーケンスN222は、前記シーケンスN221の通信から長時間経過していない、つまりエージング処理が行われる前の状態において、クライアントC1からクライアントC2に対してICMP ECHO REQUEST(PING REQUEST)フレームを送信し、クライアントC2がICMP ECHO REPLY(PING REPLY)フレームを返答する場合の例を示している。
シーケンスN222では、クライアントC1のMACアドレスc1に対するクライアントC1が属するノードのアドレスg1がノードG2〜G4の各ノードにおいてすでにラーニングされており、クライアントC1のMACアドレスc1に対する出力ポートがノードG1においてすでにラーニングされており、クライアントC2のMACアドレスc2に対する出力ポートがノードG4においてすでにラーニングされており、さらにノードG1〜G3の各ノードにおいて、クライアントC2のMACアドレスc2に対するクライアントC2が属するノードのアドレスg2が既にラーニングされているとする。
まず、クライアントC1がクライアントC2に対して、宛先MACがc2、送信元MACがc1のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、ラーニングにより、宛先MACアドレスc2のフレームに対して、拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送すれば良いことがわかる。したがって、ノードG1は前記フレームに拡張フォワーディングタグg2を付加し、ノードG3に転送する。
ノードG3は、ノードG1より送信された宛先拡張タグg2の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg2をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg2に対する出力ポートは、常にスパニングツリーT2のルートポート側に設定されているため、ノードG3は前記受信フレームを、アップリンクポートよりノードG2に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG2は、ノードG3より送信された宛先拡張タグg2の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg2は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc2をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc2を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG2は前記フレームをクライアントC2が接続されているダウンリンクポートに転送する。
クライアントC2は、ノードG2によって転送された宛先MACアドレスc2の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc2と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC2の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc2のICMP ECHO REPLYフレームを作成し、ノードG2宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG2は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、宛先MACアドレスc1のフレームに対して、拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送すれば良いことがわかる。したがって、ノードG2は前記フレームに拡張フォワーディングタグg1を付加し、ノードG4に転送する。
ノードG4は、ノードG2より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg1をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg1に対する出力ポートは、常にスパニングツリーT1のルートポート側に設定されているため、ノードG4は前記受信フレームを、アップリンクポートよりノードG1に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG1は、ノードG4より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg1は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc1をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc1を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG1は前記フレームをクライアントC1が接続されているダウンリンクポートに転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、クライアントC1とクライアントC2の間の前回の通信が終了してから長時間経過していない場合であって、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらにクライアントC2のMACアドレスc2およびクライアントC2が属するノードのアドレスg2が、ノードG1〜G4の各ノードにおいて、すでにラーニングされている場合における、クライアントC1とクライアントC2の間の通信シーケンスを説明できた。
なお、本動作例におけるノードG4は、その装置構成を簡略化した、ノードE4に置き換えることができる。簡略化版ノードE4は、ノードG4に対して、(1)メモリ複製情報3013を持たないこと、(2)MACフォワーディングテーブルメモリ2043を持たないこと、(3)ラーニング管理プログラム302およびタイマ306を持たないこと、および、(4)ラーニングフレームを送受信しないことの、4点において異なる。
次に、本実施例の効果について説明する。
従来、イーサネット(R)によるネットワークに、方向によってフローの経由するノードが異なる非対称フローを流した場合、ラーニング(ラーニング)プロセスが機能せず、フレームは宛先に届くものの、不必要な宛先にまで伝達されてしまうため、ネットワークの混雑を引き起こし、帯域利用効率が下がるという問題があった。
本実施例では、ブロードキャストMACアドレス付きフレーム、マルチキャストMACアドレス付きフレーム、および、送信先不明のユニキャストMACアドレス付きフレームに対して、送信元を示すソースタグを挿入し、前記フレームの送信元ノードをルートノードとするツリーにおいて、前記送信元が宛先となるフレームが流れる経路とは逆の経路に前記ソースタグ付きフレームを送信することで、非対称フローを流した場合でもラーニングプロセスを機能させることができ、ネットワークの混雑を解消し、帯域利用効率を上げることが可能である。
また従来、宛先を示すタグを用いたフレーム転送を行う場合は、あらかじめ各ノードに宛先MACアドレスに応じて付加すべき拡張タグ(フォワーディングタグ)を設定しておかなければならなかった。
本実施例では、前記ソースタグ付きフレームに送信元タグ情報を含めることで、各ノードに宛先MACアドレスに応じて付加すべき拡張タグを設定することができ、設定作業を自動化することが可能である。
(第3の実施例)
以下、本発明の第3の実施例について、図面を参照して詳細に説明する。
本発明の第3の実施例は、第2の実施例でラーニングフレームの送信を設定により停止した状態において、クライアントのMACアドレスと前記クライアントが属するノードアドレスの関連付けが既に学習されている場合に、テーブルサーチ器203がヒットビットを用いて宛先タグを挿入するか、ソースタグを挿入するかを決定する点が異なる。
図47は、第1の実施例における図10に記載のテーブルサーチ器203の構成を詳細に示したブロック図である。
第2の実施例における図42に記載のテーブル管理器2031Aは、ユニキャストフレームが到着して、MACフォワーディングテーブルをサーチし、宛先クライアントのMACアドレスと前記クライアントが属するノードアドレスの関連付けが既に学習されており、情報比較器2032からヒット情報を受信した場合、エントリヒット情報20312を出力し、テーブルメモリ読込制御回路2046を介して、図19のエージング管理テーブル2044に対して、ヒットした参照アドレスをメモリアドレスとして、MAC−Tagエントリ管理情報のエントリへ、エントリヒット情報20312を格納していた。そしてMACフォワードテーブルのサーチにより得られた宛先タグを付加するよう、フレーム書換え器205に対して情報比較器2032Bを通じてタグ情報20323およびタグ制御情報20322を生成し、入力フレームに宛先ノードをあらわすフォワーディングタグを挿入した。この動作によって完成するフレームは、図5に示すフォワーディングタグ付きイーサネット(R)フレーム62となった。
これに対し、本実施例における図47に記載のテーブル管理器2031Bは、ユニキャストフレームが到着して、MACフォワーディングテーブルをサーチし、宛先クライアントのMACアドレスと前記クライアントが属するノードアドレスの関連付けが既に学習されており、情報比較器2032からヒット情報を受信した場合、テーブルメモリ読込制御回路2046を介して、図19のエージング管理テーブル2044を参照し、ヒットビットがヒット状態であるか、ノーヒット状態であるかを確認する。
ここでヒット状態であった場合は、以降の動作は第2の実施例におけるテーブル管理器2031Aと同様になり、MACフォワードテーブルのサーチにより得られた宛先タグを付加するよう、フレーム書換え器205に対して情報比較器2032Bを通じてタグ情報20323およびタグ制御情報20322を生成し、入力フレームに宛先ノードをあらわすフォワーディングタグを挿入する。この動作によって完成するフレームは、図5に示すフォワーディングタグ付きイーサネット(R)フレーム62となる。
一方、ノーヒット状態であった場合は、以降の動作は第2の実施例におけるテーブル管理器2031Aと異なり、MACフォワードテーブルのサーチにより得られた宛先タグを無視して、自ノードIDが格納されたソースタグをフレームに追加挿入するよう、フレーム書換え器205に対して情報比較器2032Bを通じてタグ情報20323およびタグ制御情報20322により指示を出し、入力フレームに自ノードIDをあらわすソースタグを挿入する。この動作によって完成するフレームは、図41に示すソースタグ付きイーサネット(R)フレーム62Aとなる。さらにエントリヒット情報20312を出力し、テーブルメモリ読込制御回路2046を介して、図19のエージング管理テーブル2044に対して、ヒットした参照アドレスをメモリアドレスとして、MAC−Tagエントリ管理情報のエントリへ、エントリヒット情報20312を格納させる。
以上に記載の動作により、フレームサーチ器203において、宛先クライアントのMACアドレスと前記クライアントが属するノードアドレスの関連付けが新たに学習された以降、初めてこのエントリが検索された場合、入力フレームに対してフォワーディングタグではなくソースタグが追加挿入され、自ノードをルートノードとするツリーの経路に沿ってブロードキャスト転送される。これにより、各ノードは前記フレームの送信元であるクライアントのMACアドレスと、前記クライアントが接続されているノードの関連付けを学習することができる。
次に図48を参照して、本実施例における動作例について述べる。
以降のシーケンス図において、拡張タグが付加されていない主信号フレームのシーケンスを細い実線で示す。また、拡張タグ(フォワーディングタグ)付き主信号フレームのシーケンスを太い実線で示し、拡張タグ(ソースタグ)付き主信号フレームのシーケンスを太い破線で示す。さらに拡張タグ(ソースタグ)付きラーニング(学習)のシーケンスを細い破線で示す。
図48は、第1の実施例における図1に示すネットワークにおいて、クライアントC1がクライアントC2に対してPING REQUESTを送信し、クライアントC2がクライアントC1に対してPING REPLYを返答する際の、各ノードおよびクライアント間でのフレームのやり取りをあらわす、シーケンス図である。ラーニングフレームは、送信しないように設定されているとする。
シーケンスN311は、シーケンスN312におけるクライアントC1からクライアントC2に対するPING REQUEST送信に先立って行われる、クライアントC1によるARP REQUESTを送信と、これに対するクライアントC2によるARP REPLYの返答を示したクライアントC1とクライアントC2の間の通信シーケンスである。
シーケンスN311の開始時においては、ネットワーク動作開始直後もしくはクライアントC1とクライアントC2の間の前回の通信が終了してから十分に長い時間が経過しており、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらにクライアントC2のMACアドレスc2およびクライアントC2が属するノードのアドレスg2が、ノードG1〜G4の各ノードにおいてラーニングされておらず、さらにC1、C2、C3の各ノードにおいて、ARPキャッシュはクリアされており、PINGに先立ってARP解決が必要である状態であるとする。
まず、クライアントC1がクライアントC2に対して、宛先MACがブロードキャスト(ALL F)、送信元MACがc1のARP REQUESTフレームを送信する。このフレームを、以降の説明のARPリクエストフレームと呼ぶ。
ノードG1は、前記フレームをダウンリンクポートより受信する。宛先MACがブロードキャストアドレスであるため、ノードG1は、前記ARP REQUESTフレームを、ソースタグg1を付加した上で、第1の実施例における図34に記載の自らがルートノードとなるツリーT1に沿ってブロードキャストする。この結果、ARP REQUESTフレームは図41に示すソースタグ付きイーサネット(R)フレーム62AのフォーマットでノードG3およびノードG4の両方に転送される。
ノードG1は、ダウンリンク側から未ラーニングの送信元MACc1が付加されたフレームが到着したため、MACアドレスc1がダウンリンク側ポートに接続されていることをラーニングする。この際、設定によりラーニングフレームの送信は停止されているので、ラーニングフレームは送信しない。
ノードG3は、ノードG1より送信されたソースタグg1つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、ARP REQUESTフレームはダウンリンクポートより、ソースタグを削除してクライアントC3に転送される。
この際ノードG3は、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。
クライアントC3は、ノードG3によって転送されたARP REQUESTフレームを受信するが、要求されているIPアドレスが自身のIPアドレスと一致しないため、このフレームを破棄する。
ノードG4は、ノードG1より送信されたソースタグg1つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、前記フレームはツリーT1に沿ってアップリンクポートより、タグ操作なしでノードG2に転送される。
この際ノードG4は、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。
ノードG2は、ノードG4より送信されたソースタグg1つきのARP REQUESTフレームを、アップリンクポートより受信する。そして、前記ARP REQUESTフレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートより、ソースタグを削除してクライアントC2に転送される。
この際ノードG2は、MACアドレスc1を持ったクライアントC1が、拡張タグアドレスg1を持ったノードG1のダウンリンク側に接続されているということをラーニングする。これにより、以降c1宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送するようになる。
クライアントC2は、ノードG2によって転送されたARP REQUESTフレームを受信し、要求されているIPアドレスが自身のIPアドレスと一致することを確認する。そして、宛先MACアドレスc1、送信元MACアドレスc2のARP REPLYフレームを生成し、ノードG2宛てに送信する。このフレームを、以降の説明のARP REPLYフレームと呼ぶ。
ノードG2は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc1のフレームに対して、拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送すれば良いことがわかる。しかしながら、ヒットビットを確認したところ、ノーヒット状態であったため、前記ARP REPLYフレームに対して拡張フォワーディングタグg1を付加せずに、ソースタグg2を付加した上で、第1の実施例における図35に記載の自らがルートノードとなるツリーT2に沿ってブロードキャストする。この結果、主信号フレームは図41に示すソースタグ付きイーサネット(R)フレーム62AのフォーマットでノードG3およびノードG4の両方に転送される。これと同時に、宛先c1に対するヒットビットをヒット状態に設定する。
ノードG4は、ノードG2より送信されたソースタグg2つきのARP REPLYフレームを、アップリンクポートより受信する。そして、前記ARP REPLYフレームをツリーT2および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。しかしノードG4においてツリーT2は途切れているため、結果として前記ARP REPLYフレームはノードG4から先のノードへは転送されない。
この際ノードG4は、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。
ノードG3は、ノードG2より送信されたソースタグg2つきのARP REPLYフレームを、アップリンクポートより受信する。そして、前記ARP REPLYフレームをツリーT2および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、ARP REPLYフレームは、アップリンクポートよりタグの操作なしでノードG1に転送されると共に、ダウンリンクポートより、ソースタグを削除してクライアントC3にも転送される。
この際ノードG3は、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。
クライアントC3は、ノードG3によって転送されたARP REPLYフレームを受信しようとするが、宛先MACアドレスg1が自ノードMACアドレスg3と一致しないため、このフレームを廃棄する。
ノードG1は、ノードG3より送信されたソースタグg2つきのARP REPLYフレームを、アップリンクポートより受信する。そして、前記ARP REPLYフレームをツリーT2および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートより、ソースタグを削除してクライアントC1に転送される。
この際ノードG1は、MACアドレスc2を持ったクライアントC2が、拡張タグアドレスg2を持ったノードG2のダウンリンク側に接続されているということをラーニングする。これにより、以降c2宛てのフレームをダウンリンク側から受信した際には、前記フレームに拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送するようになる。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームを受信し、ARPモジュールに引き渡し、宛先IPアドレスに対するMACアドレスをARPテーブルに記録する。
以上により、シーケンスN312におけるクライアントC1からクライアントC2に対するPING REQUEST送信に先立って行われる、クライアントC1によるARP REQUESTを送信と、これに対するクライアントC2によるARP REPLYの返答を示したクライアントC1とクライアントC2の間の通信シーケンスを説明できた。
シーケンスN312は、シーケンスN311によるクライアントC1とクライアントC2の間のARP REQUESTおよびARP REPLYの交換が完了してから長時間経過しておらず、クライアントC1のMACアドレスc1に対するクライアントC1が属するノードのアドレスg1がノードG2〜G4の各ノードにおいてすでにラーニングされており、クライアントC1のMACアドレスc1に対する出力ポートがノードG1においてすでにラーニングされており、さらにクライアントC2のMACアドレスc2に対する出力ポートがノードG4においてすでにラーニングされており、さらにクライアントC2のMACアドレスc2に対するクライアントC2が属するノードのアドレスg2がラーニングされている場合における、クライアントC1とクライアントC2の間のICMP ECHO REQUEST(PING REQUEST)、ICMP ECHO REPLY(PING REPLY)の通信シーケンスである。
なお、ノードG1においてMACアドレスc2に対するヒットビットはノーヒットに設定されており、ノードG2においてMACアドレスc1に対するヒットビットはヒットに設定されている。
まず、クライアントC1がクライアントC2に対して、宛先MACがc2、送信元MACがc1のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、先ほどのラーニング動作により、宛先MACアドレスc2のフレームに対して、拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送すれば良いことがわかる。しかしながら、ヒットビットを確認したところ、ノーヒット状態であったため、前記主信号フレームに対して拡張フォワーディングタグg2を付加せずに、ソースタグg1を付加した上で、第1の実施例における図34に記載の自らがルートノードとなるツリーT1に沿ってブロードキャストする。この結果、主信号フレームは図41に示すソースタグ付きイーサネット(R)フレーム62AのフォーマットでノードG3およびノードG4の両方に転送される。これと同時に、宛先c2に対するヒットビットをヒット状態に設定する。
ノードG3は、ノードG1より送信された宛先MACc2宛ての主信号フレームを、アップリンクポートより受信する。そして、宛先MACc2をキーとして出力ポートを検索するが、MACアドレスc2に関するラーニングが完了していないため、検索ヒットしない。このためノードG3は、前記主信号フレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、主信号フレームはダウンリンクポートより、ソースタグg1を削除してクライアントC3に転送される。
クライアントC3は、ノードG3によって転送された宛先MACc2の主信号フレームを受信するが、宛先MACアドレスが自身のMACアドレスc3と一致しないため、このフレームを破棄する。
ノードG4は、ノードG1より送信された宛先MACc2宛ソースタグg1つきの主信号フレームを、アップリンクポートより受信する。ノードG4は前記フレームにソースタグが付加されているため、宛先MACc2をキーとした検索を行わずに、前記主信号フレームをツリーT1および、ダウンリンク側ポートにブロードキャストする。このとき、ダウンリンク側に送信するフレームについては前記フレームに付加されていたソースタグを削除する。アップリンク側に送信するフレームについては、タグを付加したり削除したりする操作は行わない。この結果、主信号フレームはタグの追加・削除を行わずに、ツリーT1に沿ってアップリンクポートよりノードG2に転送される。
ノードG2は、ノードG4より送信された宛先MACc2宛ての主信号フレームを、アップリンクポートより受信する。そして、宛先MACc2をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc2を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG2は前記フレームをソースタグg1をはずした上で、クライアントC2が接続されているダウンリンクポートに転送する。
クライアントC2は、ノードG2によって転送された宛先MACアドレスc2の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc2と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC2の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc2のICMP ECHO REPLYフレームを作成し、ノードG2宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG2は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、シーケンスN211におけるラーニング動作により、宛先MACアドレスc1のフレームに対して、拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送すれば良いことがわかる。さらにヒットビットを確認すると、すでにヒットした状態であるため、ノードG2は前記フレームに拡張フォワーディングタグg1を付加し、第1の実施例における図5に示すフォーマットで、前記主信号フレームをノードG4に転送する。
ノードG4は、ノードG2より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg1をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg1に対する出力ポートは、常にスパニングツリーT1のルートポート側に設定されているため、ノードG4は前記受信フレームを、アップリンクポートよりノードG1に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG1は、ノードG4より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg1は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc1をキーとして、ダウンリンク側の出力ポートを検索する。すると、シーケンスN211におけるラーニング動作により、宛先MACアドレスc1を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG1は前記フレームをクライアントC1が接続されているダウンリンクポートに転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、シーケンスN311によるクライアントC1とクライアントC2の間のARP REQUESTおよびARP REPLYの交換が完了してから長時間経過しておらず、クライアントC1のMACアドレスc1に対するクライアントC1が属するノードのアドレスg1がノードG2〜G4の各ノードにおいてすでにラーニングされており、クライアントC1のMACアドレスc1に対する出力ポートがノードG1においてすでにラーニングされており、さらにクライアントC2のMACアドレスc2に対する出力ポートがノードG4においてすでにラーニングされており、さらにクライアントC2のMACアドレスc2に対するクライアントC2が属するノードのアドレスg2がラーニングされている場合における、クライアントC1とクライアントC2の間のICMP ECHO REQUEST(PING REQUEST)、ICMP ECHO REPLY(PING REPLY)の通信シーケンスを説明できた。
シーケンスN313は、前記シーケンスN311〜3122の通信から長時間経過していない、つまりエージング処理が行われる前の状態において、クライアントC1からクライアントC2に対してICMP ECHO REQUEST(PING REQUEST)フレームを送信し、クライアントC2がICMP ECHO REPLY(PING REPLY)フレームを返答する場合の例を示している。
シーケンスN313では、クライアントC1のMACアドレスc1に対するクライアントC1が属するノードのアドレスg1がノードG2〜G4の各ノードにおいてすでにラーニングされており、クライアントC1のMACアドレスc1に対する出力ポートがノードG1においてすでにラーニングされており、クライアントC2のMACアドレスc2に対する出力ポートがノードG4においてすでにラーニングされており、さらにノードG1〜G3の各ノードにおいて、クライアントC2のMACアドレスc2に対するクライアントC2が属するノードのアドレスg2が既にラーニングされているとする。
また、ノードG1においてMACアドレスc2に対するヒットビットはヒットに設定されており、ノードG2においてMACアドレスc1に対するヒットビットもヒットに設定されている。
まず、クライアントC1がクライアントC2に対して、宛先MACがc2、送信元MACがc1のICMP ECHO REQUESTフレームを送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG1は、前記主信号フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、ラーニングにより、宛先MACアドレスc2のフレームに対して、拡張フォワーディングタグg2を付加して、ツリーT2のルートポート側に転送すれば良いことがわかる。さらにヒットビットを確認すると、すでにヒットした状態であるため、ノードG1は前記フレームに拡張フォワーディングタグg2を付加し、第1の実施例における図5に示すフォーマットで、前記主信号フレームをノードG3に転送する。
ノードG3は、ノードG1より送信された宛先拡張タグg2の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg2をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg2に対する出力ポートは、常にスパニングツリーT2のルートポート側に設定されているため、ノードG3は前記受信フレームを、アップリンクポートよりノードG2に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG2は、ノードG3より送信された宛先拡張タグg2の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg2は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc2をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc2を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG2は前記フレームをクライアントC2が接続されているダウンリンクポートに転送する。
クライアントC2は、ノードG2によって転送された宛先MACアドレスc2の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc2と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC2の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc2のICMP ECHO REPLYフレームを作成し、ノードG2宛てに送信する。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG2は、前記フレームをダウンリンクポートより受信する。宛先MACをキーとして、付加するタグおよび出力ポートを検索すると、宛先MACアドレスc1のフレームに対して、拡張フォワーディングタグg1を付加して、ツリーT1のルートポート側に転送すれば良いことがわかる。さらにヒットビットを確認すると、すでにヒットした状態であるため、ノードG2は前記フレームに拡張フォワーディングタグg1を付加し、第1の実施例における図5に示すフォーマットで、前記主信号フレームをノードG4に転送する。
ノードG4は、ノードG2より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグg1をキーとして出力ポートを検索する。すると、拡張フォワーディングタグg1に対する出力ポートは、常にスパニングツリーT1のルートポート側に設定されているため、ノードG4は前記受信フレームを、アップリンクポートよりノードG1に向けて転送する。このとき、このとき、前記フレームに対して一切の変更を加えない。したがって、タグを付加したり削除したり、さらにMACアドレスを書き換えたりすることはない。
ノードG1は、ノードG4より送信された宛先拡張タグg1の主信号フレームを、アップリンクポートより受信する。そして、宛先拡張タグに示されたアドレスg1は自身のアドレスであるため、この拡張タグをはずした上で、宛先MACc1をキーとして、ダウンリンク側の出力ポートを検索する。すると、先ほどのラーニング動作により、宛先MACアドレスc1を持つノードが、ダウンリンク側のどのポートに接続されているかわかる。したがって、ノードG1は前記フレームをクライアントC1が接続されているダウンリンクポートに転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、クライアントC1とクライアントC2の間の前回の通信が終了してから長時間経過していない場合であって、クライアントC1のMACアドレスc1およびクライアントC1が属するノードのアドレスg1、さらにクライアントC2のMACアドレスc2およびクライアントC2が属するノードのアドレスg2が、ノードG1〜G4の各ノードにおいて、すでにラーニングされている場合における、クライアントC1とクライアントC2の間の通信シーケンスを説明できた。
なお、本動作例におけるノードG4は、その装置構成を簡略化した、ノードE4に置き換えることができる。簡略化版ノードE4は、ノードG4に対して、(1)メモリ複製情報3013を持たないこと、(2)MACフォワーディングテーブルメモリ2043を持たないこと、(3)ラーニング管理プログラム302およびタイマ306を持たないこと、および、(4)ラーニングフレームを送受信しないことの、4点において異なる。
次に、本実施例の効果について説明する。
従来、イーサネット(R)によるネットワークに、方向によってフローの経由するノードが異なる非対称フローを流した場合、ラーニング(ラーニング)プロセスが機能せず、フレームは宛先に届くものの、不必要な宛先にまで伝達されてしまうため、ネットワークの混雑を引き起こし、帯域利用効率が下がるという問題があった。
本実施例では、ブロードキャストMACアドレス付きフレーム、マルチキャストMACアドレス付きフレーム、および、送信先不明のユニキャストMACアドレス付きフレームのほか、タグラーニング完了後に初めて流れるユニキャストフレームに対して、送信元を示すソースタグを挿入し、前記フレームの送信元ノードをルートノードとするツリーにおいて、前記送信元が宛先となるフレームが流れる経路とは逆の経路に前記ソースタグ付きフレームを送信することで、非対称フローを流した場合でもラーニングプロセスを機能させることができ、ネットワークの混雑を解消し、帯域利用効率を上げることが可能である。
また従来、宛先を示すタグを用いたフレーム転送を行う場合は、あらかじめ各ノードに宛先MACアドレスに応じて付加すべき拡張タグ(フォワーディングタグ)を設定しておかなければならなかった。
本実施例では、前記ソースタグ付きフレームに送信元タグ情報を含めることで、各ノードに宛先MACアドレスに応じて付加すべき拡張タグを設定することができ、設定作業を自動化することが可能である。
(第4の実施例)
以下、本発明の第4の実施例について、図面を参照して詳細に説明する。
本発明の第4の実施例は、第1〜第3の実施例で示した構成に対し、入力ポートと入力VLAN(VMAN)タグからラーニングなしで宛先タグを決定するための入力ポートテーブルメモリを追加している点が異なる。
図49は第4の実施例におけるテーブルサーチ器203Cの構成を、詳細に示したブロック図である。
第4の実施例におけるテーブルサーチ器203Cは、第1の実施例における図10に記載のテーブルサーチ器203に比べ、テーブル管理器2031がテーブル管理器2031Cに変更され、情報比較器2032が情報比較器2032Cに変更されている点において異なる。
テーブル管理貴2031Cは、テーブルサーチキー情報20131から、タグフォワーディングテーブルメモリ2041、MACフォワーディングテーブルメモリ2043、ブロードキャストフォワーディングテーブルメモリ2042、入力ポートテーブルメモリ2049のいずれかへサーチ指示を行う。
テーブル管理器2031Cに入力するテーブルサーチキー情報は、複数指定することも可能である。複数指定の場合は、まず入力ポートテーブルを検索し、ヒットした場合はタグフォワーディングテーブルを検索する。もし入力ポートテーブルがミスヒットであった場合は、MACフォワーディングテーブルを検索し、ヒットした場合は、MACフォワーディングテーブルで指定されたポートにフレームを送信する。もしミスヒットとなった場合は、ブロードキャストフォワーディングテーブルを検索して、フレーム出力先ポートを決定する。各テーブルへのサーチ指示は、テーブル読込アドレス20311としてフォワーディングテーブル204に出力する。
第1の実施例における図14に記載のテーブル管理器2031、および、第2の実施例における図42に記載のテーブル管理器2031A、および、第3の実施例における図47に記載のテーブル管理器2031Bは、フレームが到着すると、タグフォワーディングテーブル>MACフォワーディングテーブル>ブロードキャストフォワーディングテーブルの優先順位で各テーブルへのサーチを行っていた。
これに対し、本実施例における図49に記載のテーブル管理器2031Cは、フレームが到着すると、入力ポートテーブル>タグフォワーディングテーブル>MACフォワーディングテーブル>ブロードキャストフォワーディングテーブルの優先順位で各テーブルへのサーチを行う。
テーブル管理器2031Cは、各テーブルのサーチの結果について、情報比較器2032から、検索ヘッダ情報とテーブルエントリ情報が一致した際にはヒット情報、異なった際にはミスヒット情報を受取り、ヒットするまで、同じテーブル上の異なるアドレスへのサーチまたは、次の優先順位のテーブルへのサーチ指示を、フォワーディングテーブル204に対して行う。また、MACフォワーディングテーブル参照時にヒットした際には、エントリヒット情報20312を出力し、テーブルメモリ読込制御回路2046を介して、図19のエージング管理テーブル2044に対して、ヒットした参照アドレスをメモリアドレスとして、エントリ種別がMAC→Tagの際には、MAC−Tagエントリ管理情報、MAC→Portの際には、MAC−Portエントリ管理情報のエントリへエントリヒット情報20312を格納する。
テーブル管理器2031Cはまた、フレームヘッダ情報20141から、テーブルのサーチ対象となるヘッダ情報を抜きだし、フォワーディングテーブル204から得たテーブル情報と比較するために、情報比較器2032へ出力する。出力するヘッダ情報は、タグフォワーディングテーブルメモリ2041へのサーチを行う際はVLAN IDタグ情報6202、MACフォワーディングテーブルメモリ2043へサーチを行う際は送信先MACアドレス601とVLANタグ606、ブロードキャストフォワーディングテーブルメモリ2042へサーチを行う際は、VLAN IDタグ情報6202とVLAN ID6064、入力ポートテーブルメモリ2049へサーチを行う際はVLAN ID6064および入力ポート情報を出力する。なお、自ノード宛のフォワーディングタグ付きイーサネット(R)フレームの場合にのみ、情報比較器2032へ、タグ制御情報20322として、タグ削除の出力を行うように指示を行う。
以下、テーブル管理器2031Cの動作を示す。
(1)テーブル管理器2031Cは、ダウンリンク側から第1の実施例における図2に示すイーサネット(R)フレーム60のフォーマットのフレームが入力された場合、入力ポートおよび入力VLAN(ここではVLAN値を0000を設定する)をキーとして入力ポートテーブル2049を検索する。ここで、もし検索がヒットし、付加すべき拡張フォワーディングタグの宛先アドレスを取得できた場合は、ただちに宛先アドレスを付加し、タグフォワーディングテーブルをサーチして宛先ポートを検索して、検索されたポートに対してフレームを出力する。したがって、入力ポートテーブル2049でヒットした場合は、MACフォワーディングテーブル2043、そしてブロードキャストフォワーディングテーブル2042の各テーブルのサーチは行われない。また検索がヒットした場合は宛先MACアドレスを調べ、もし宛先MACアドレスがUniversal Administrative MACアドレス(01−80−c2−00−00−0x)であれば、トンネリングフレーム識別用MACアドレス(ここでは00−00−4c−00−00−1x)に変換するよう、フレームヘッダ情報20141を用いてフレーム書換え器205に命令する。ここでxは1〜fの任意の値である。もし検索がヒットしなかった場合は、第1〜第3の実施例におけるテーブル管理器と同様に、MACフォワーディングテーブル2043、そして必要であればブロードキャストフォワーディングテーブル2042のサーチを続けて行う。
(2)テーブル管理器2031Cは、ダウンリンク側から第1の実施例における図3に示すVLAN Taggedイーサネット(R)フレーム61のフォーマットのフレームが入力された場合、入力ポートおよび入力VLAN(もしくはVMAN)タグをキーとして入力ポートテーブル2049を検索する。ここで、もし検索がヒットし、付加すべき拡張フォワーディングタグの宛先アドレスを取得できた場合は、ただちに宛先アドレスを付加し、タグフォワーディングテーブルをサーチして宛先ポートを検索して、検索されたポートに対してフレームを出力する。したがって、入力ポートテーブル2049でヒットした場合は、MACフォワーディングテーブル2043、そしてブロードキャストフォワーディングテーブル2042の各テーブルのサーチは行われない。また検索がヒットした場合は宛先MACアドレスを調べ、もし宛先MACアドレスがUniversal Administrative MACアドレス(01−80−c2−00−00−0x)であれば、トンネリングフレーム識別用MACアドレス(ここでは00−00−4c−00−00−1x)に変換するよう、フレームヘッダ情報20141を用いてフレーム書換え器205に命令する。ここでxは1〜fの任意の値である。もし検索がヒットしなかった場合は、第1〜第3の実施例におけるテーブル管理器と同様に、MACフォワーディングテーブル2043、そして必要であればブロードキャストフォワーディングテーブル2042のサーチを続けて行う。
(3)テーブル管理器2031Cは、アップリンク側から自ノード宛拡張フォワーディングタグが付加されているが、VLAN(もしくはVMAN)タグが付加されていないフレームが入力された場合、入力されたVLAN(ここでは0000を設定する)をキーとしてブロードキャストテーブルメモリ2042を検索する。そして、出力ポート情報に記載されたポートのうち、ダウンリンク側のポートに対して、拡張フォワーディングタグを削除し、第1の実施例における図2に示すイーサネット(R)フレーム60のフォーマットにした上で、フレームを転送する。このとき宛先MACアドレスを調べ、もしトンネリングフレーム識別用MACアドレス(ここでは00−00−4c−00−00−1x)であれば、Universal Administrative MACアドレス(01−80−c2−00−00−0x)に変換するよう、フレームヘッダ情報20141を用いてフレーム書換え器205に命令する。ここでxは1〜fの任意の値である。
(4)テーブル管理器2031Cは、アップリンク側から自ノード宛拡張フォワーディングタグのほか、VLAN(もしくはVMAN)タグが付加されたフレームが入力された場合、入力されたVLAN(もしくはVMAN)タグをキーとしてブロードキャストテーブルメモリ2042を検索する。そして、出力ポート情報に記載されたポートのうち、ダウンリンク側のポートに対して、拡張フォワーディングタグを削除し、第1の実施例における図3に示すVLAN Taggedイーサネット(R)フレーム61のフォーマットにした上で、フレームを転送する。このとき宛先MACアドレスを調べ、もしトンネリングフレーム識別用MACアドレス(ここでは00−00−4c−00−00−1x)であれば、Universal Administrative MACアドレス(01−80−c2−00−00−0x)に変換するよう、フレームヘッダ情報20141を用いてフレーム書換え器205に命令する。ここでxは1〜fの任意の値である。
情報比較器2032Cは、テーブル管理器2031Cがフォワーディングテーブル204へサーチを行った結果と、サーチ対象となるヘッダ情報の比較を行い、出力ポートの決定を行う。前述の通り、テーブル管理器2031Cからは、各テーブルサーチに応じて、フレームの入力ポート情報並びに、VLAN ID・タグ情報6202、送信先MACアドレス601、VLANタグ606、VLAN ID6064のヘッダ情報を受取り、テーブル管理器2031Cがフォワーディングテーブル204へテーブル読込指示を行った結果をテーブル情報20451として受取り、各テーブルの種類に応じて情報比較とエントリ情報の出力並びに、出力ポート情報20321の出力を行う。また、出力ポート情報20321の出力時には、入力ポート情報と比較し、同じポート情報であった際には、フレームのループを防止するために出力ポート情報を出力せず、フレームは廃棄する。下記(1)から(4)に各テーブル参照時における動作内容を示す。
(1)タグフォワーディングテーブルメモリ2041への参照時は、ヘッダ情報は、VLAN ID・タグ情報6202が、参照するメモリアドレスとなっているため、情報比較を行う必要はない。図17のタグフォワーディングテーブルメモリ2041の出力ポート情報、障害時出力ポート情報を出力ポート20321へ出力する。なお、エントリがない場合は、テーブル管理器2031に対して、エントリミスヒットの情報を出力する。
(2)MACフォワーディングテーブルメモリ2043への参照時は、検索ヘッダ情報と、図16のMACフォワーディングテーブルメモリ2043のテーブルエントリ上のMAC送信先アドレス、送信先1段目TAG情報を比較し、一致した場合は、テーブルエントリに記載されている出力ポート情報、障害出力ポート情報は出力ポート情報20321へ出力、タグ情報はタグ情報20321、タグ制御情報はタグ制御情報20322として出力する。一致しなかった際には、テーブル管理器2031に対して、エントリミスヒットの情報を出力する。
(3)ブロードキャストフォワーディングテーブルメモリ2042への参照時は、ヘッダ情報は、VLAN ID・タグ情報6202、またはVLAN ID6064が、参照するメモリアドレスとなっているため、情報比較を行う必要はない。図18のブロードキャストフォワーディングテーブルメモリ2042の複数出力ポート情報は、複数出力ポート情報として登録されていないポート番号が入力ポート情報と一致していないか確認後、一致していた場合はフレームは廃棄、一致していない場合は、出力ポート情報20321として出力する。なお、参照メモリアドレス先にエントリがない場合は、テーブル管理器2031に対して、エントリミスヒットの情報を出力する。
(4)入力ポートテーブルメモリ2049への参照時は、ヘッダ情報はVLAN ID6064、および入力ポート情報が、参照するメモリアドレスとなっているため、情報比較を行う必要はない。図51の入力ポートテーブルメモリ2049のフォワーディングタグ情報が、登録されているかどうか確認後、登録されいてない場合はフレームは廃棄、登録されていた場合は、テーブル管理器2031Cに対してタグフォワーディングテーブルメモリ2041の検索を要求し、さらにフォワーディングタグ情報をタグ情報20321、タグ追加指令を行うためのタグ制御情報をタグ制御情報20322として出力する。なお、参照メモリアドレス先にエントリがない場合は、テーブル管理器2031Cに対して、エントリミスヒットの情報を出力する。
図50は第4の実施例におけるフォワーディングテーブル204の構成を、詳細に示したブロック図である。
第4の実施例におけるフォワーディングテーブル204Cは、第1の実施例におけるフォワーディングテーブル204に比べ、テーブルメモリ読込制御回路2046がテーブルメモリ読込制御回路2046Cに変更され、テーブルメモリ書込制御回路2048がテーブルメモリ書込制御回路2048Cに変更され、さらに入力ポートテーブルメモリ2049が追加されている点において異なる。
フォワーディングテーブル204Cは、タグフォワードテーブルメモリ2041、ブロードキャストテーブルメモリ2042、MACフォワードテーブルメモリ2043、エージング管理テーブル2044、メモリ情報出力回路2045、エージング制御器2047に関しては、第1の実施例におけるフォワーディングテーブル204に含まれるものと同一である。
テーブルメモリ読込制御回路2046Cは、読込対処とするテーブルアドレスの読込を行い、その結果を出力するが、第1の実施例におけるテーブルメモリ読込制御回路2046で挙げた(1)から(3)の動作のほか、以下の動作を追加して行う。
(4)図51の入力ポートテーブルメモリ2049の読込時は、テーブル読込アドレスとして、VLAN ID6064および入力ポート情報を受取り、その情報と同じメモリアドレスを参照し、そこにエントリされている、出力ポート情報、障害時出力ポート情報をメモリ情報出力回路2045へ出力する。なおエントリ無効の場合は、エントリが無い事をエントリヒット情報20312として出力する。
テーブルメモリ書込制御回路は2048Cは、各テーブルへのエントリの書込み動作を行う。テーブル書込アドレス3011から、MACフォワーディングテーブルメモリ2043、タグフォワーディングテーブル2041、ブロードキャストテーブルメモリ2042、入力ポートテーブルメモリ2049の何れかのメモリアドレスが入力されると、そのメモリアドレスに対し、テーブル書込情報3012をテーブルエントリとして、書込む。
図51は、図50に記載の入力ポートテーブルメモリ2049の構成を詳細に示したブロック図である。
入力ポートテーブルメモリ2049は、IEEE802.3イーサネット(R)フレーム、IEEE803.3VLAN Taggedイーサネット(R)フレームに付加する拡張宛先フォワーディングタグ情報を格納するために使用される。メモリアドレス範囲は、16ポート入力管理の場合0x0000〜0xFFFFの16ビットで、最大で65536エントリが格納される。
16ビットのメモリアドレス範囲のうち、上位4ビットはポートを表す、下位12ビットはVLAN IDを表す。従ってテーブルアクセスは、ポートとVLAN IDを組み合わせたメモリアドレスを指定して行う。なお、上位12ビットをVALNとし、下位4ビットをポートとすることも可能である。また、ビットを増減させることで、16ポート以外のポート数にも対応可能である。
本実施例では、入力ポートテーブルを用意し、あらかじめ設定した入力ポートおよび入力VLANタグIDの条件に合致するフレームに対する拡張フォワーディングタグ情報を設定可能とすることで、ラーニングプロセスが機能しない場合でも、タグを用いた転送により、不必要な宛先へのフレーム転送を防止でき、ネットワークの混雑を解消し、帯域利用効率を上げることが可能である。
従来ラーニングを用いない場合は、あらかじめ各ノードに宛先MACアドレスに応じて付加すべき拡張タグ(フォワーディングタグ)を設定しておかなければならなかった。本実施例では、設定すべき項目が、端末単位のアドレスであるVLANおよび、複数の端末がイーサネット(R)スイッチを介して接続される入力ポートに縮退されるため、設定作業を大幅に簡略化することが可能である。
図52は、本発明を適用する物理ネットワークの構成例を示すブロック図であり、第1の実施例における図1に対し、クライアントC4、イーサネット(R)スイッチW1およびイーサネット(R)スイッチW2を追加したものである。
イーサネット(R)スイッチW1は、UnTagポートとTaggedポートの2種類のポーとを持ち、以下の動作を行う。
(1)Untagポートから入力された図2に示すイーサネット(R)フレーム60のフォーマットのフレームに対して、あらかじめ設定されたIDのVLANタグを追加挿入し、図3に示すVLAN Taggedイーサネット(R)フレーム61の形式に変換して、Taggedポートより出力する。
(2)Taggedポートから図3に示すイーサネット(R)フレーム61のフォーマットのフレームが入力されると、設定情報を参照し、もし設定情報と一致した場合は、前記入力フレームよりVLANタグを削除し、図2に示すイーサネット(R)フレーム60の形式に変換して、Untagポートより出力する。
図52においては、イーサネット(R)スイッチW1のUntagポートにクライアントC4が接続され、TaggedポートにノードG1が接続されている。また、TaggedポートからはID0001のVLANタグ付きフレームを送受信するよう、設定されている。
図52におけるイーサネット(R)スイッチW2は、イーサネット(R)スイッチW1と同様の動作を行うイーサネット(R)スイッチである。イーサネット(R)スイッチW2のUntagポートにクライアントC3が接続され、TaggedポートにノードG3が接続されている。また、TaggedポートからはID0001のVLANタグ付きフレームを送受信するよう、設定されている。
図52を参照して、本実施例における第1の動作例について述べる。
第1の動作例では、ノードG1の入力ポートテーブルメモリにおいて、ポートD/L1から入力されたフレームに対して宛先タグアドレスg2の拡張フォワーディングタグを追加挿入するよう設定を行い、ノードG2の入力ポートテーブルメモリにおいて、ポートD/L1から入力されたフレームに対して宛先タグアドレスg1の拡張フォワーディングタグを追加挿入するよう設定を行う。この上でクライアントC1がクライアントC2に対してPING REQUESTを送信し、クライアントC2がクライアントC1に対してPING REPLYを返答する際の、各ノードおよびクライアント間でのフレームのやり取りを示す。なおARPは既に解決されているとする。
まずフレーム送信に先立ち、ノードG1において、ポートD/L1から入力されたずべてのフレームに対して宛先タグアドレスg2の拡張フォワーディングタグを追加挿入するよう設定を行う。ポートD/L1から入力されたずべてのフレームに対して宛先タグg2を挿入するよう設定するためには、ポートD/L1から入力される全てのVLANタグについて、フォワーディングタグg2を挿入するように設定しなければならない。したがって、入力ポートテーブルメモリ2049のポートD/L1、VLAN0000から、ポートD/L1、VLAN4095の合計4096エントリに対して、拡張フォワーディングタグ情報としてg2を指定する。また、ブロードキャストテーブルメモリ2042に対しても、VLAN0000から4095の合計4096エントリに対して、複数出力ポート情報にD/L1ポートを追加記載する。
次にノードG2において、ポートD/L1から入力されたずべてのフレームに対して宛先タグアドレスg1の拡張フォワーディングタグを追加挿入するよう設定を行う。ポートD/L1から入力されたずべてのフレームに対して宛先タグg1を挿入するよう設定するためには、ポートD/L1から入力される全てのVLANタグについて、フォワーディングタグg1を挿入するように設定しなければならない。したがって、入力ポートテーブルメモリ2049のポートD/L1、VLAN0000から、ポートD/L1、VLAN4095の合計4096エントリに対して、拡張フォワーディングタグ情報としてg1を指定する。また、ブロードキャストテーブルメモリ2042に対しても、VLAN0000から4095の合計4096エントリに対して、複数出力ポート情報にD/L1ポートを追加記載する。
上記設定のもと、クライアントC1からクライアントC2に対して、PING REQUESTを送信する。このフレームのフォーマットは、図2に示すイーサネット(R)フレーム60であり、宛先MACアドレスはc2、送信元MACアドレスはc1が設定される。
ノードG1は、ポートD/L1よりクライアントC1からのフレームを受け取る。前記フレームの入力ポートはD/L1であり、VLANはタグなしなのでVLAN=0000として入力ポートテーブルメモリ2049を検索する。すると拡張フォワーディング情報としてg2が設定されているため、前記フレームに対して拡張フォワーディングタグを挿入し、タグフォワードテーブルメモリ2043を検索して、出力ポートを決定する。タグアドレスg2のツリーであるツリーT2は、図35に示す形状であるため、前記フレームは図5に示すフォワーディングタグ付きイーサネット(R)フレーム62のフォーマットで、ノードG3に転送される。
ノードG3はノードG1より送信された前記フレームをアップリンクポートから受信すると、タグフォワードテーブルメモリ2043を検索して、出力ポート、を決定する。タグアドレスg2のツリーであるツリーT2は、図35に示す形状であるため、前記フレームはノードG2に転送される。
ノードG2は、アップリンクポートよりノードG3からのフレームを受け取る。このフレームは自ノード宛の拡張フォワーディングタグが付加されているため、まずはブロードキャストテーブルメモリ2042を検索する。ここで検索キーは、前記フレームにはVLANタグが付加されていないため、VLAN=0000を用いる。そして検索された複数出力ポート情報のうち、ダウンリンク側ポートとして設定されているポートがD/L1のみであることから、前記フレームから拡張フォワーディングタグを削除した上で、D/L1に転送する。
クライアントC2は、ノードG2によって転送された宛先MACアドレスc2の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc2と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC1から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC2の基本ソフトは、宛先MACアドレスc1、送信元MACアドレスc2のICMP ECHO REPLYフレームを作成し、ノードG2宛てに送信する。このフレームのフォーマットは、図2に示すイーサネット(R)フレーム60である。このフレームを、以降の説明の主信号フレームと呼ぶ。
ノードG2は、前記フレームをダウンリンクポートより受信する。そして入力ポート(D/L1)およびVLAN(0000)をキーとして、入力ポートテーブルメモリ2049を検索すると、拡張フォワーディングタグg1を付加して、図34に示すツリーT1のルートポート側に転送すれば良いことがわかる。よってノードG2は前記フレームに拡張フォワーディングタグg1を付加し、第1の実施例における図5に示すフォワーディングタグ付きイーサネット(R)フレーム62のフォーマットで、前記主信号フレームをノードG4に転送する。
ノードG4はノードG2より送信された前記フレームをアップリンクポートから受信すると、タグフォワードテーブルメモリ2043を検索して、出力ポートを決定する。タグアドレスg1のツリーであるツリーT1は、図34に示す形状であるため、前記フレームはノードG1に転送される。
ノードG1は、アップリンクポートよりノードG4からのフレームを受け取る。このフレームは自ノード宛の拡張フォワーディングタグが付加されているため、まずはブロードキャストテーブルメモリ2042を検索する。ここで検索キーは、前記フレームにはVLANタグが付加されていないため、VLAN=0000を用いる。そして検索された複数出力ポート情報のうち、ダウンリンク側ポートとして設定されているポートがD/L1のみであることから、前記フレームから拡張フォワーディングタグを削除した上で、D/L1に転送する。
クライアントC1は、ノードG1によって転送された宛先MACアドレスc1の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc1と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、ノードG1においてポートD/L1から入力されたフレームに対して宛先タグアドレスg2の拡張フォワーディングタグを追加挿入するよう設定を行い、ノードG2においてポートD/L1から入力されたフレームに対して宛先タグアドレスg1の拡張フォワーディングタグを追加挿入するよう設定を行った場合に、クライアントC1がクライアントC2に対してPING REQUESTを送信し、クライアントC2がクライアントC1に対してPING REPLYを返答する際の、各ノードおよびクライアント間でのフレームのやり取りを説明できた。
なお、本動作例におけるノードG4は、その装置構成を簡略化した、ノードE4に置き換えることができる。簡略化版ノードE4は、ノードG4に対して、(1)メモリ複製情報3013を持たないこと、(2)MACフォワーディングテーブルメモリ2043を持たないこと、(3)ラーニング管理プログラム302およびタイマ306を持たないこと、および、(4)ラーニングフレームを送受信しないことの、4点において異なる。
図52を参照して、本実施例における第2の動作例について述べる。
第2の動作例では、ノードG1の入力ポートテーブルメモリにおいて、ポートD/L2から入力されたVLAN0001のフレームに対して宛先タグアドレスg3の拡張フォワーディングタグを追加挿入するよう設定を行い、ノードG3の入力ポートテーブルメモリにおいて、ポートD/L1から入力されたVLAN0001のフレームに対して宛先タグアドレスg1の拡張フォワーディングタグを追加挿入するよう設定を行う。この上でクライアントC4がクライアントC3に対してPING REQUESTを送信し、クライアントC3がクライアントC4に対してPING REPLYを返答する際の、各ノードおよびクライアント間でのフレームのやり取りを示す。なおARPは既に解決されているとする。
まずフレーム送信に先立ち、ノードG1において、ポートD/L2から入力されたVLAN0001のフレームに対して宛先タグアドレスg3の拡張フォワーディングタグを追加挿入するよう設定を行う。したがって、入力ポートテーブルメモリ2049のポートD/L2、VLAN0001のエントリに対して、拡張フォワーディングタグ情報としてg3を指定する。また、ブロードキャストテーブルメモリ2042に対しても、VLAN0001のエントリに対して、複数出力ポート情報にD/L2ポートを追加記載する。
次にノードG3において、ポートD/L1から入力されたVLAN0001のフレームに対して宛先タグアドレスg1の拡張フォワーディングタグを追加挿入するよう設定を行う。したがって、入力ポートテーブルメモリ2049のポートD/L1、VLAN0001のエントリに対して、拡張フォワーディングタグ情報としてg1を指定する。また、ブロードキャストテーブルメモリ2042に対しても、VLAN0001のエントリに対して、複数出力ポート情報にD/L1ポートを追加記載する。
上記設定のもと、クライアントC4からクライアントC3に対して、PING REQUESTを送信する。このフレームのフォーマットは、図2に示すイーサネット(R)フレーム60であり、宛先MACアドレスはc3、送信元MACアドレスはc4が設定される。
イーサネット(R)スイッチW1は、クライアントC4から前記フレームを受信すると、入力フレームに対してID0001のVLANタグを挿入し、図3に示すVLAN Taggedイーサネット(R)フレーム61のフォーマットにして、ノードG1へ転送する。
ノードG1は、ポートD/L2よりフレームを受け取る。そして入力ポートをD/L2、VLAN=0000として入力ポートテーブルメモリ2049を検索する。すると拡張フォワーディング情報としてg3が設定されているため、前記フレームに対して拡張フォワーディングタグg3を挿入し、タグフォワードテーブルメモリ2043を検索して、出力ポートを決定する。タグアドレスg3のツリーであるツリーT3は、図36に示す形状であるため、前記フレームは図53に示すフォワーディングタグ・VLANタグ付きイーサネット(R)フレーム62Cのフォーマットで、ノードG3に転送される。
ノードG3は、アップリンクポートよりノードG1からのフレームを受け取る。このフレームは自ノード宛の拡張フォワーディングタグが付加されているため、まずはブロードキャストテーブルメモリ2042を検索する。ここで検索キーは、VLAN=0001を用いる。そして検索された複数出力ポート情報のうち、ダウンリンク側ポートとして設定されているポートがD/L1のみであることから、前記フレームから拡張フォワーディングタグを削除した上で、D/L1に転送する。
イーサネット(R)スイッチW2は、ノードG3から前記フレームを受信すると、入力フレームのVLANIDを確認する。イーサネット(R)スイッチW2においては、TaggedポートにおいてVLAN0001のタグ付きフレームを取り扱うよう設定されているため、VLANタグを削除し、図2に示すイーサネット(R)フレーム60のフォーマットに変換して、UntagポートよりクライアントC3へ転送する。
クライアントC3は、イーサネット(R)スイッチW2により受信した宛先MACアドレスc3の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc3と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。
なお、この例では、クライアントC4から送信されたフレームはICMP ECHO REQUESTとしているので、クライアントC3の基本ソフトは、宛先MACアドレスc4、送信元MACアドレスc3のICMP ECHO REPLYフレームを作成し、イーサネット(R)スイッチW2宛てに送信する。このフレームのフォーマットは、図2に示すイーサネット(R)フレーム60である。このフレームを、以降の説明の主信号フレームと呼ぶ。
イーサネット(R)スイッチW2は、クライアントC3から前記フレームを受信すると、入力フレームに対してID0001のVLANタグを挿入し、図3に示すVLAN Taggedイーサネット(R)フレーム61のフォーマットにして、ノードG3へ転送する。
ノードG3は、前記フレームをダウンリンクポートより受信する。そして入力ポート(D/L1)およびVLAN(0001)をキーとして、入力ポートテーブルメモリ2049を検索すると、拡張フォワーディングタグg1を付加して、図34に示すツリーT1のルートポート側に転送すれば良いことがわかる。よってノードG3は前記フレームに拡張フォワーディングタグg1を付加し、図53に示すフォワーディングタグ・VLANタグ付きイーサネット(R)フレーム62Cのフォーマットで、前記主信号フレームをノードG1に転送する。
ノードG1は、アップリンクポートよりノードG3からのフレームを受け取る。このフレームは自ノード宛の拡張フォワーディングタグが付加されているため、まずはブロードキャストテーブルメモリ2042を検索する。ここで検索キーは、VLAN=0001を用いる。そして検索された複数出力ポート情報のうち、ダウンリンク側ポートとして設定されているポートがD/L2のみであることから、前記フレームから拡張フォワーディングタグを削除し、図3に示すVLAN Taggedイーサネット(R)フレーム61のフォーマットに変換した上で、D/L2に転送する。
イーサネット(R)スイッチW1は、ノードG1から前記フレームを受信すると、入力フレームのVLANIDを確認する。イーサネット(R)スイッチW1においては、TaggedポートにおいてVLAN0001のタグ付きフレームを取り扱うよう設定されているため、VLANタグを削除し、図2に示すイーサネット(R)フレーム60のフォーマットに変換して、UntagポートよりクライアントC4へ転送する。
クライアントC4は、イーサネット(R)スイッチW4によって転送された宛先MACアドレスc4の主信号フレームを受信する。宛先MACアドレスが自身のMACアドレスc4と一致するため、このフレームをアプリケーションその他のプログラムに引き渡す。この例においては、基本ソフト内のPINGプログラムにフレームが引き渡され、PINGコマンドの結果が表示される。
以上により、ノードG1の入力ポートテーブルメモリにおいて、ポートD/L2から入力されたVLAN0001のフレームに対して宛先タグアドレスg3の拡張フォワーディングタグを追加挿入するよう設定を行い、ノードG3の入力ポートテーブルメモリにおいて、ポートD/L1から入力されたVLAN0001のフレームに対して宛先タグアドレスg1の拡張フォワーディングタグを追加挿入するよう設定を行った場合において、クライアントC4がクライアントC3に対してPING REQUESTを送信し、クライアントC3がクライアントC4に対してPING REPLYを返答する際の、各ノードおよびクライアント間でのフレームのやり取りを説明できた。
なお、本動作例におけるノードG4は、その装置構成を簡略化した、ノードE4に置き換えることができる。簡略化版ノードE4は、ノードG4に対して、(1)メモリ複製情報3013を持たないこと、(2)MACフォワーディングテーブルメモリ2043を持たないこと、(3)ラーニング管理プログラム302およびタイマ306を持たないこと、および、(4)ラーニングフレームを送受信しないことの、4点において異なる。
図52を参照して、本実施例における第3の動作例について述べる。
第3の動作例では、ノードG1の入力ポートテーブルメモリにおいて、ポートD/L2から入力されたVLAN0001のフレームに対して宛先タグアドレスg3の拡張フォワーディングタグを追加挿入するよう設定を行い、ノードG3の入力ポートテーブルメモリにおいて、ポートD/L1から入力されたVLAN0001のフレームに対して宛先タグアドレスg1の拡張フォワーディングタグを追加挿入するよう設定を行う。この上でイーサネット(R)スイッチW1が、IEEE802.1DもしくはIEEE802.1Wに規定されるスパニングツリープロトコルにおいて、ツリー構築のために用いられるBPDUフレームを送信し、このフレームがイーサネット(R)スイッチW2に伝達される場合のやり取りを示す。
なお、本実施例におけるBPDUフレームは、図3に示すVLAN Taggedイーサネット(R)フレーム61のフォーマットであり、宛先MACアドレスとしてUniversal Administrative MACアドレスの一部である01−80−C2−00−00−00が設定されているとする。
本実施例ではBPDUフレームの転送を例に、Universal Administrative MACアドレスを持つフレームが、イーサネット(R)スイッチW1からイーサネット(R)スイッチW2との間、もしくはイーサネット(R)スイッチW2からイーサネット(R)スイッチW1との間で、交換可能であることを示す。しかしながら本実施例は、BPDUフレームに限らず、01−80−C2−00−00−0x(xは1〜f)の宛先MACアドレス(以下、BPDUアドレスと呼ぶ)を持つ、全種類のUniversal Administrative MACアドレスに対して適用可能である。
まずフレーム送信に先立ち、ノードG1において、ポートD/L2から入力されたVLAN0001のフレームに対して宛先タグアドレスg3の拡張フォワーディングタグを追加挿入するよう設定を行う。したがって、入力ポートテーブルメモリ2049のポートD/L2、VLAN0001のエントリに対して、拡張フォワーディングタグ情報としてg3を指定する。また、ブロードキャストテーブルメモリ2042に対しても、VLAN0001のエントリに対して、複数出力ポート情報にD/L2ポートを追加記載する。
次にノードG3において、ポートD/L1から入力されたVLAN0001のフレームに対して宛先タグアドレスg1の拡張フォワーディングタグを追加挿入するよう設定を行う。したがって、入力ポートテーブルメモリ2049のポートD/L1、VLAN0001のエントリに対して、拡張フォワーディングタグ情報としてg1を指定する。また、ブロードキャストテーブルメモリ2042に対しても、VLAN0001のエントリに対して、複数出力ポート情報にD/L1ポートを追加記載する。
上記設定のもと、イーサネット(R)スイッチW1のTaggedポートに対してスパニングツリーを設定する。するとイーサネット(R)スイッチW1のTaggedポートより、図3に示すイーサネット(R)フレーム61のフォーマットを有し、宛先MACアドレスがBPDUアドレス、送信元MACアドレスがイーサネット(R)スイッチW1のMACアドレスであるw1、VLANタグ内のIDが0001の、BPDU制御フレームが送信される。
ノードG1は、ポートD/L2よりフレームを受け取る。そして入力ポートをD/L2、VLAN=0000として入力ポートテーブルメモリ2049を検索する。すると拡張フォワーディング情報としてg3が設定されているため、前記フレームに対して拡張フォワーディングタグg3を挿入し、タグフォワードテーブルメモリ2043を検索して、出力ポートを決定する。タグアドレスg3のツリーであるツリーT3は、図36に示す形状であるため、前記フレームは図53に示すフォワーディングタグ・VLANタグ付きイーサネット(R)フレーム62Cのフォーマットで、ノードG3に転送される。
この際ノードG1は、宛先MACアドレスをBPDUアドレスから、トンネリングフレーム識別用MACアドレス(ここでは00−00−4c−00−00−10)に変換する。この変換を行う理由は、中継ノードにおいて、Universal Administrative MACとしてのフレーム処理が行われないようにするためである。
ノードG3は、アップリンクポートよりノードG1からのフレームを受け取る。このフレームは自ノード宛の拡張フォワーディングタグが付加されているため、まずはブロードキャストテーブルメモリ2042を検索する。ここで検索キーは、VLAN=0001を用いる。そして検索された複数出力ポート情報のうち、ダウンリンク側ポートとして設定されているポートがD/L1のみであることから、前記フレームから拡張フォワーディングタグを削除した上で、D/L1に転送する。
この際ノードG1は、宛先MACアドレスをトンネリングフレーム識別用MACアドレス(ここでは00−00−4c−00−00−10)からBPDUアドレスに変換する。この変換を行うことで、以降のスイッチは前記フレームを通常のBPDU制御フレームとして取り扱うことができる。
イーサネット(R)スイッチW2は、ノードG3から前記フレームを受信すると、入力フレームのVLANIDを確認する。イーサネット(R)スイッチW2においては、TaggedポートにおいてVLAN0001のタグ付きフレームを取り扱うよう設定されているため、次にMACアドレスを参照する。すると、前記受信フレームがBPDUアドレスを有することが分かるため、フレームをイーサネット(R)スイッチW2内で動作するスパニングツリープロトコルに転送する。
以上により、Universal Administrative MACアドレスを持つフレームが、イーサネット(R)スイッチW1からイーサネット(R)スイッチW2へ転送可能であることを説明できた。本実施例では、この例と逆方向の転送も同様に行うことができ、イーサネット(R)スイッチW1からイーサネット(R)スイッチW2へも、Universal Administrative MACアドレスを持つフレームを転送することができる。
このことから、本実施例は、従来技術では不可能であった、Universal Administrative MACアドレスの透過転送(トンネリング)を実現できたといえる。
なお、本動作例におけるノードG4は、その装置構成を簡略化した、ノードE4に置き換えることができる。簡略化版ノードE4は、ノードG4に対して、(1)メモリ複製情報3013を持たないこと、(2)MACフォワーディングテーブルメモリ2043を持たないこと、(3)ラーニング管理プログラム302およびタイマ306を持たないこと、および、(4)ラーニングフレームを送受信しないことの、4点において異なる。
次に、本実施例の効果について説明する。
従来、宛先を示すタグを用いたフレーム転送を行う場合は、あらかじめ各ノードに宛先MACアドレスに応じて付加すべき拡張タグ(フォワーディングタグ)を設定しておかなければならなかった。
本実施例では、入力ポートテーブルを用意し、あらかじめ設定した入力ポートおよび入力VLANタグIDの条件に合致するフレームに対する拡張フォワーディングタグ情報を設定可能とすることで、設定すべき項目が、端末単位のアドレスであるMACアドレスから、複数台の端末をまとめたネットワークをあらわすIDであるVLANおよび、複数の端末がイーサネット(R)スイッチを介して接続される入力ポートに縮退されるため、第2の実施例や第3の実施例において示したラーニングを用いない場合においても、設定作業を大幅に簡略化することが可能である。
以上好ましい実施例及び動作例をあげて本発明を説明したが、本発明は必ずしも上記実施例及び動作例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
以上説明したように、本発明によれば、以下のような効果が達成される。
第1に、ネットワークの混雑を解消し、帯域利用効率を上げることが可能である。
その理由は、主信号フレームが流れる経路とは逆の経路にラーニングフレームを送信することで、非対称フローを流した場合でもラーニングプロセスを機能させることができるからである。
第2に、付加すべきフォワーディングタグの設定を自動化することができる。
その理由は、ラーニングフレームにタグ情報を含めるからである。
Claims (81)
- 複数のノードを接続したネットワークにおいて、
前記ネットワークに属するノードが、主信号フレームが流れる経路とは逆の経路に定期的にラーニングフレームを送信する
ことを特徴とするネットワークシステム。 - 前記ノードが、
前記ラーニングフレームにより、付加すべきフォワーディングタグをラーニングする
ことを特徴とする請求項1に記載のネットワークシステム。 - 複数のノードを接続したネットワークにおいて、
前記ネットワークに属するノードが、
MAC SAテーブルキャッシュを参照して、ラーニングフレーム送信要求を行うか否かを決定するラーニングフレーム管理器と、
ラーニングフレーム送信要求を行った送信元MACアドレス(MAC SA)を記憶するMAC SAテーブルキャッシュを備える
ことを特徴とするネットワークシステム。 - 前記ノードが、
MAC SAテーブルキャッシュのエージングを行うエージング要求受付器と、
CPUに対してラーニングフレーム送信要求を行う送信要求器を備える
ことを特徴とする、請求項3に記載のネットワークシステム。 - 前記ノードが、
ラーニングフレーム処理を行うラーニング管理プログラムを備える
ことを特徴とする請求項4に記載のネットワークシステム。 - 複数のノードを接続したネットワークにおいて、
前記ネットワークに属するノードが、
ラーニングフレーム処理を行うラーニング管理プログラムを備える
ことを特徴とするネットワークシステム。 - 前記ノードが、
各種設定を行う機器制御プログラムを備える
ことを特徴とする、請求項3から請求項6の何れか1項に記載のネットワークシステム。 - 前記ノードが、
入力フレームを判別するフレームタイプ判定器を備える
ことを特徴とする、請求項3から請求項7の何れか1項に記載のネットワークシステム。 - 前記ネットワークに属するノードが、
エージング対象エントリのエージングを行うエージング制御器と、
エージング対象エントリを記憶するエージング管理テーブルを備える
ことを特徴とする請求項3から請求項8の何れか1項に記載のネットワークシステム。 - 前記ノードが、
宛先MACアドレス(MAC DA)に対する出力ポートおよびタグ操作を記憶する、MACフォワーディングテーブルメモリを備える
ことを特徴とする請求項3から請求項9の何れか1項に記載のネットワークシステム。 - 前記ノードが、
タグに対するブロードキャスト時の出力先ポートを記憶する、ブロードキャストテーブルメモリを備える
ことを特徴とする請求項3から請求項10の何れか1項に記載のネットワークシステム。 - 前記ノードが、
フォワーディングタグに対する出力ポートを記憶する、タグフォワーディングテーブルメモリを備える
ことを特徴とする請求項3から請求項11の何れか1項に記載のネットワークシステム。 - 前記ノードが、
テーブル、エージング回路、およびテーブル読込、書込回路をもったフォワーディングテーブルを備える
ことを特徴とする請求項3から請求項12の何れか1項に記載のネットワークシステム。 - 前記ノードが、
フォワーディングタグに対するMACフォワーディングテーブルメモリ上の番地を記憶する、TAGアドレス管理テーブルを備える
ことを特徴とする請求項3から請求項13の何れか1項に記載のネットワークシステム。 - 複数のノードを接続したネットワークにおいて、
前記ネットワークに属するノードが、
イーサネット(R)のラーニング機能を非対称に流れるフローにも適用する
ことを特徴とするネットワークシステム。 - 複数のノードを接続したネットワークのラーニングブリッジノードにおいて、
主信号フレームが流れる経路とは逆の経路に定期的にラーニングフレームを送信する
ことを特徴とするラーニングブリッジノード。 - 前記ラーニングフレームにより、付加すべきフォワーディングタグをラーニングする
ことを特徴とする請求項16に記載のラーニングブリッジノード。 - 複数のノードを接続したネットワークのラーニングブリッジノードにおいて、
MAC SAテーブルキャッシュを参照して、ラーニングフレーム送信要求を行うか否かを決定するラーニングフレーム管理器と、
ラーニングフレーム送信要求を行った送信元MACアドレス(MAC SA)を記憶するMAC SAテーブルキャッシュを備える
ことを特徴とするラーニングブリッジノード。 - MAC SAテーブルキャッシュのエージングを行うエージング要求受付器と、
CPUに対してラーニングフレーム送信要求を行う送信要求器を備える
ことを特徴とする、請求項18に記載のラーニングブリッジノード。 - ラーニングフレーム処理を行うラーニング管理プログラムを備える
ことを特徴とする請求項19に記載のラーニングブリッジノード。 - 複数のノードを接続したネットワークのラーニングブリッジノードにおいて、
ラーニングフレーム処理を行うラーニング管理プログラムを備える
ことを特徴とするラーニングブリッジノード。 - 各種設定を行う機器制御プログラムを備える
ことを特徴とする、請求項18から請求項21の何れか1項に記載のラーニングブリッジノード。 - 入力フレームを判別するフレームタイプ判定器を備える
ことを特徴とする、請求項18から請求項22の何れか1項に記載のラーニングブリッジノード。 - エージング対象エントリのエージングを行うエージング制御器と、
エージング対象エントリを記憶するエージング管理テーブルを備える
ことを特徴とする請求項18から請求項23の何れか1項に記載のラーニングブリッジノード。 - 宛先MACアドレス(MAC DA)に対する出力ポートおよびタグ操作を記憶する、MACフォワーディングテーブルメモリを備える
ことを特徴とする請求項18から請求項24の何れか1項に記載のラーニングブリッジノード。 - タグに対するブロードキャスト時の出力先ポートを記憶する、ブロードキャストテーブルメモリを備える
ことを特徴とする請求項18から請求項25の何れか1項に記載のラーニングブリッジノード。 - フォワーディングタグに対する出力ポートを記憶する、タグフォワーディングテーブルメモリを備える
ことを特徴とする請求項18から請求項26の何れか1項に記載のラーニングブリッジノード。 - テーブル、エージング回路、およびテーブル読込、書込回路をもったフォワーディングテーブルを備える
ことを特徴とする請求項18から請求項27の何れか1項に記載のラーニングブリッジノード。 - フォワーディングタグに対するMACフォワーディングテーブルメモリ上の番地を記憶する、TAGアドレス管理テーブルを備える
ことを特徴とする請求項18から請求項28の何れか1項に記載のラーニングブリッジノード。 - 複数のノードを接続したネットワークのラーニングブリッジノードにおいて、
イーサネット(R)のラーニング機能を非対称に流れるフローにも適用する
ことを特徴とするラーニングブリッジノード。 - 複数のノードを接続したネットワークのラーニング方法において、
前記ネットワークに属するノードが、主信号フレームが流れる経路とは逆の経路に定期的にラーニングフレームを送信する
ことを特徴とするラーニング方法。 - 前記ノードが、
前記ラーニングフレームにより、付加すべきフォワーディングタグをラーニングする
ことを特徴とする請求項31に記載のラーニング方法。 - 複数のノードを接続したネットワークのラーニング方法において、
前記ネットワークに属するノードが、
MAC SAテーブルキャッシュを参照して、ラーニングフレーム送信要求を行うか否かを決定し、
ラーニングフレーム送信要求を行った送信元MACアドレス(MAC SA)をMAC SAテーブルキャッシュに記憶する
ことを特徴とするラーニング方法。 - 前記ノードが、
MAC SAテーブルキャッシュのエージングを行い、
CPUに対してラーニングフレーム送信要求を行う
ことを特徴とする、請求項33に記載のラーニング方法。 - 前記ノードが、
ラーニングフレーム処理を行うラーニング管理プログラムを備える
ことを特徴とする請求項34に記載のラーニング方法。 - 複数のノードを接続したネットワークのラーニング方法において、前記ネットワークに属するノードが、
ラーニングフレーム処理を行うラーニング管理プログラムを備える
ことを特徴とするラーニング方法。 - 前記ノードが、
各種設定を行う機器制御プログラムを備える
ことを特徴とする、請求項33から請求項36の何れか1項に記載のラーニング方法。 - 前記ノードが、入力フレームを判別する
ことを特徴とする、請求項33から請求項37の何れか1項に記載のラーニング方法。 - 前記ネットワークに属するノードが、
エージング対象エントリのエージングを行い、
エージング対象エントリをエージング管理テーブルに記憶する
ことを特徴とする請求項33から請求項38の何れか1項に記載のラーニング方法。 - 前記ノードが、
宛先MACアドレス(MAC DA)に対する出力ポートおよびタグ操作を、MACフォワーディングテーブルメモリに記憶する
ことを特徴とする請求項33から請求項39の何れか1項に記載のラーニング方法。 - 前記ノードが、
タグに対するブロードキャスト時の出力先ポートを、ブロードキャストテーブルメモリに記憶する
ことを特徴とする請求項33から請求項40の何れか1項に記載のラーニング方法。 - 前記ノードが、
フォワーディングタグに対する出力ポートを、タグフォワーディングテーブルメモリに記憶する
ことを特徴とする請求項33から請求項41の何れか1項に記載のラーニング方法。 - 前記ノードが、
テーブル、エージング回路、およびテーブル読込、書込回路をもったフォワーディングテーブルを備える
ことを特徴とする請求項33から請求項42の何れか1項に記載のラーニング方法。 - 前記ノードが、
フォワーディングタグに対するMACフォワーディングテーブルメモリ上の番地を、TAGアドレス管理テーブルに記憶する
ことを特徴とする請求項33から請求項43の何れか1項に記載のラーニング方法。 - 複数のノードを接続したネットワークのラーニング方法において、
前記ネットワークに属するノードが、
イーサネット(R)のラーニング機能を非対称に流れるフローにも適用する
ことを特徴とするラーニング方法。 - 複数のノードを接続したネットワークにおいて、 前記ネットワークに属するノードが、フレームにソースタグを付加して送信することを特徴とするネットワークシステム。
- 前記ノードが、前記ソースタグ付きフレームにより、付加すべきフォワーディングタグをラーニングすることを特徴とする請求項46に記載のネットワークシステム。
- 前記ノードが、エージング管理テーブルを参照して、ソースタグもしくはフォワーディングタグのどちらを付加するかを決定することを特徴とする請求項46から請求項47の何れか1項に記載のネットワークシステム。
- 複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、フレームが入力されたポートを元に、付加すべきフォワーディングタグを決定することを特徴とするネットワークシステム。
- 複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、入力されたフレームに付加されているVLANタグを元に、付加すべきフォワーディングタグを決定することを特徴とするネットワークシステム。
- 前記ノードが、前記入力ポートと、前記VLANタグの双方を元に、付加すべきフォワーディングタグを決定することを特徴とする請求項49から請求項50の何れか1項に記載のネットワークシステム。
- 前記ノードが、入力されたMACアドレスを別のMACアドレスに変換して出力することを特徴とする、請求項49から請求項51の何れか1項に記載のネットワークシステム。
- 前記入力MACアドレスが、Universal Administrative MACアドレスであり、前記出力MACアドレスがトンネリングフレーム識別用MACアドレスであることを特徴とする、請求項52に記載のネットワークシステム。
- 前記ノードが、テーブルを参照して付加するタグの種別を決定するテーブル管理器を備える
ことを特徴とする、請求項3から請求項14の何れか1項に記載のネットワークシステム。 - 前記ノードが、入力ポートおよび入力VLAN参照して付加するタグの種別を決定するための入力ポートテーブルメモリを備えることを特徴とする、請求項3から請求項14および請求項54の何れか1項に記載のネットワークシステム。
- 複数のノードを接続したネットワークにおいて、前記ノード間を流れるフレームが、ソースタグを備えることを特徴とするネットワークシステム。
- 前記フレームが、トンネリングフレーム識別用MACアドレスを備えることを特徴とする、請求項56に記載のネットワークシステム。
- 複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、フレームにソースタグを付加して送信することを特徴とするラーニングブリッジノード。
- 前記ノードが、前記ソースタグ付きフレームにより、付加すべきフォワーディングタグをラーニングすることを特徴とする請求項46に記載のラーニングブリッジノード。
- 前記ノードが、エージング管理テーブルを参照して、ソースタグもしくはフォワーディングタグのどちらを付加するかを決定することを特徴とする請求項46から請求項47の何れか1項に記載のラーニングブリッジノード。
- 複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、フレームが入力されたポートを元に、付加すべきフォワーディングタグを決定することを特徴とするラーニングブリッジノード。
- 複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、入力されたフレームに付加されているVLANタグを元に、付加すべきフォワーディングタグを決定することを特徴とするラーニングブリッジノード。
- 前記ノードが、前記入力ポートと、前記VLANタグの双方を元に、付加すべきフォワーディングタグを決定することを特徴とする請求項49から請求項50の何れか1項に記載のラーニングブリッジノード。
- 前記ノードが、入力されたMACアドレスを別のMACアドレスに変換して出力することを特徴とする、請求項49から請求項51の何れか1項に記載のラーニングブリッジノード。
- 前記入力MACアドレスが、Universal Administrative MACアドレスであり、前記出力MACアドレスがトンネリングフレーム識別用MACアドレスであることを特徴とする、請求項52に記載のラーニングブリッジノード。
- 前記ノードが、テーブルを参照して付加するタグの種別を決定するテーブル管理器を備える
ことを特徴とする、請求項3から請求項14の何れか1項に記載のラーニングブリッジノード。 - 前記ノードが、入力ポートおよび入力VLAN参照して付加するタグの種別を決定するための入力ポートテーブルメモリを備えることを特徴とする、請求項3から請求項14および請求項54の何れか1項に記載のラーニングブリッジノード。
- 複数のノードを接続したネットワークにおいて、前記ノード間を流れるフレームが、ソースタグを備えることを特徴とするラーニングブリッジノード。
- 前記フレームが、トンネリングフレーム識別用MACアドレスを備えることを特徴とする、請求項56に記載のラーニングブリッジノード。
- 複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、フレームにソースタグを付加して送信することを特徴とするラーニング方法。
- 前記ノードが、前記ソースタグ付きフレームにより、付加すべきフォワーディングタグをラーニングすることを特徴とする請求項46に記載のラーニング方法。
- 前記ノードが、エージング管理テーブルを参照して、ソースタグもしくはフォワーディングタグのどちらを付加するかを決定することを特徴とする請求項46から請求項47の何れか1項に記載のラーニング方法。
- 複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、フレームが入力されたポートを元に、付加すべきフォワーディングタグを決定することを特徴とするラーニング方法。
- 複数のノードを接続したネットワークにおいて、前記ネットワークに属するノードが、入力されたフレームに付加されているVLANタグを元に、付加すべきフォワーディングタグを決定することを特徴とするラーニング方法。
- 前記ノードが、前記入力ポートと、前記VLANタグの双方を元に、付加すべきフォワーディングタグを決定することを特徴とする請求項49から請求項50の何れか1項に記載のラーニング方法。
- 前記ノードが、入力されたMACアドレスを別のMACアドレスに変換して出力することを特徴とする、請求項49から請求項51の何れか1項に記載のラーニング方法。
- 前記入力MACアドレスが、Universal Administrative MACアドレスであり、前記出力MACアドレスがトンネリングフレーム識別用MACアドレスであることを特徴とする、請求項52に記載のラーニング方法。
- 前記ノードが、テーブルを参照して付加するタグの種別を決定するテーブル管理器を備える
ことを特徴とする、請求項3から請求項14の何れか1項に記載のラーニング方法。 - 前記ノードが、入力ポートおよび入力VLAN参照して付加するタグの種別を決定するための入力ポートテーブルメモリを備えることを特徴とする、請求項3から請求項14および請求項54の何れか1項に記載のラーニング方法。
- 複数のノードを接続したネットワークにおいて、前記ノード間を流れるフレームが、ソースタグを備えることを特徴とするラーニング方法。
- 前記フレームが、トンネリングフレーム識別用MACアドレスを備えることを特徴とする、請求項56に記載のラーニング方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003041727 | 2003-02-19 | ||
JP2003041727 | 2003-02-19 | ||
PCT/JP2004/000124 WO2004075482A1 (ja) | 2003-02-19 | 2004-01-09 | ネットワークシステム、ラーニングブリッジノード、ラーニング方法及びそのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2004075482A1 true JPWO2004075482A1 (ja) | 2006-08-10 |
JP4182977B2 JP4182977B2 (ja) | 2008-11-19 |
Family
ID=32866421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005502664A Expired - Fee Related JP4182977B2 (ja) | 2003-02-19 | 2004-01-09 | ネットワークシステム、ラーニングブリッジノード、ラーニング方法及びそのプログラム |
Country Status (8)
Country | Link |
---|---|
US (1) | US20040225725A1 (ja) |
EP (1) | EP1601137A4 (ja) |
JP (1) | JP4182977B2 (ja) |
KR (1) | KR101010554B1 (ja) |
CN (2) | CN1802818A (ja) |
CA (1) | CA2437669A1 (ja) |
TW (1) | TW200423609A (ja) |
WO (1) | WO2004075482A1 (ja) |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040243769A1 (en) * | 2003-05-30 | 2004-12-02 | Frame David W. | Tree based memory structure |
US20050141537A1 (en) * | 2003-12-29 | 2005-06-30 | Intel Corporation A Delaware Corporation | Auto-learning of MAC addresses and lexicographic lookup of hardware database |
WO2005065035A2 (en) * | 2004-01-08 | 2005-07-21 | Wisair Ltd. | Distributed and centralized media access control device and method |
US7502474B2 (en) * | 2004-05-06 | 2009-03-10 | Advanced Micro Devices, Inc. | Network interface with security association data prefetch for high speed offloaded security processing |
US7447225B2 (en) * | 2004-07-23 | 2008-11-04 | Cisco Technology, Inc. | Multiple multicast forwarder prevention during NSF recovery of control failures in a router |
US7624263B1 (en) * | 2004-09-21 | 2009-11-24 | Advanced Micro Devices, Inc. | Security association table lookup architecture and method of operation |
US7796614B1 (en) * | 2004-11-30 | 2010-09-14 | Symantec Corporation | Systems and methods for message proxying |
JP4821293B2 (ja) * | 2004-12-09 | 2011-11-24 | 日本電気株式会社 | 加入者回線遠隔制御装置、加入者回線遠隔制御方法及び加入者回線遠隔制御プログラム |
JP4199278B2 (ja) * | 2005-03-01 | 2008-12-17 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | パケット中継システムおよびパケット中継装置 |
US7889681B2 (en) * | 2005-03-03 | 2011-02-15 | Cisco Technology, Inc. | Methods and devices for improving the multiple spanning tree protocol |
US8565124B2 (en) * | 2005-03-04 | 2013-10-22 | Nec Corporation | Node, network, correspondence relationship generation method and frame transfer program |
JP4780340B2 (ja) * | 2005-03-04 | 2011-09-28 | 日本電気株式会社 | ノード,ネットワーク,対応関係作成方法及びフレーム転送プログラム |
US8194656B2 (en) * | 2005-04-28 | 2012-06-05 | Cisco Technology, Inc. | Metro ethernet network with scaled broadcast and service instance domains |
CN100488169C (zh) * | 2005-11-11 | 2009-05-13 | 华为技术有限公司 | 一种桥接网络中的数据处理方法及一种桥接网络 |
US7894451B2 (en) * | 2005-12-30 | 2011-02-22 | Extreme Networks, Inc. | Method of providing virtual router functionality |
US7944853B2 (en) * | 2006-01-06 | 2011-05-17 | Belair Networks Inc. | Virtual root bridge |
US8094584B2 (en) * | 2006-02-16 | 2012-01-10 | Nec Corporation | Node, network system, frame transfer method, and frame transfer program |
JP4751817B2 (ja) * | 2006-12-04 | 2011-08-17 | 富士通株式会社 | パケット転送装置およびネットワークシステム |
JP5100626B2 (ja) * | 2008-12-12 | 2012-12-19 | 三菱電機株式会社 | レイヤ2スイッチ |
CN102308536B (zh) | 2009-02-09 | 2015-10-07 | 日本电气株式会社 | 通信系统、通信单元、控制单元和控制方法 |
EP2422493B1 (en) * | 2009-04-23 | 2013-09-04 | FutureWei Technologies, Inc. | Media access control bridging in a mesh network |
US9294395B2 (en) | 2009-04-23 | 2016-03-22 | Futurewei Technologies, Inc. | Media access control bridging in a mesh network |
JP5407712B2 (ja) * | 2009-09-30 | 2014-02-05 | 富士通株式会社 | 通信装置および通信制御方法 |
US9716672B2 (en) | 2010-05-28 | 2017-07-25 | Brocade Communications Systems, Inc. | Distributed configuration management for virtual cluster switching |
US9270486B2 (en) | 2010-06-07 | 2016-02-23 | Brocade Communications Systems, Inc. | Name services for virtual cluster switching |
US8867552B2 (en) | 2010-05-03 | 2014-10-21 | Brocade Communications Systems, Inc. | Virtual cluster switching |
US9769016B2 (en) | 2010-06-07 | 2017-09-19 | Brocade Communications Systems, Inc. | Advanced link tracking for virtual cluster switching |
US9628293B2 (en) | 2010-06-08 | 2017-04-18 | Brocade Communications Systems, Inc. | Network layer multicasting in trill networks |
US9806906B2 (en) | 2010-06-08 | 2017-10-31 | Brocade Communications Systems, Inc. | Flooding packets on a per-virtual-network basis |
US9807031B2 (en) | 2010-07-16 | 2017-10-31 | Brocade Communications Systems, Inc. | System and method for network configuration |
US9185018B2 (en) * | 2010-10-22 | 2015-11-10 | Brocade Communications Systems, Inc. | Path diagnosis in communication networks |
US8605732B2 (en) | 2011-02-15 | 2013-12-10 | Extreme Networks, Inc. | Method of providing virtual router functionality |
US9736085B2 (en) | 2011-08-29 | 2017-08-15 | Brocade Communications Systems, Inc. | End-to end lossless Ethernet in Ethernet fabric |
US9699117B2 (en) | 2011-11-08 | 2017-07-04 | Brocade Communications Systems, Inc. | Integrated fibre channel support in an ethernet fabric switch |
US9450870B2 (en) | 2011-11-10 | 2016-09-20 | Brocade Communications Systems, Inc. | System and method for flow management in software-defined networks |
US8995272B2 (en) | 2012-01-26 | 2015-03-31 | Brocade Communication Systems, Inc. | Link aggregation in software-defined networks |
US9742693B2 (en) | 2012-02-27 | 2017-08-22 | Brocade Communications Systems, Inc. | Dynamic service insertion in a fabric switch |
US9154416B2 (en) | 2012-03-22 | 2015-10-06 | Brocade Communications Systems, Inc. | Overlay tunnel in a fabric switch |
US9374301B2 (en) | 2012-05-18 | 2016-06-21 | Brocade Communications Systems, Inc. | Network feedback in software-defined networks |
US10277464B2 (en) | 2012-05-22 | 2019-04-30 | Arris Enterprises Llc | Client auto-configuration in a multi-switch link aggregation |
US9401872B2 (en) | 2012-11-16 | 2016-07-26 | Brocade Communications Systems, Inc. | Virtual link aggregations across multiple fabric switches |
US9350680B2 (en) | 2013-01-11 | 2016-05-24 | Brocade Communications Systems, Inc. | Protection switching over a virtual link aggregation |
US9548926B2 (en) | 2013-01-11 | 2017-01-17 | Brocade Communications Systems, Inc. | Multicast traffic load balancing over virtual link aggregation |
US9413691B2 (en) | 2013-01-11 | 2016-08-09 | Brocade Communications Systems, Inc. | MAC address synchronization in a fabric switch |
US9565099B2 (en) | 2013-03-01 | 2017-02-07 | Brocade Communications Systems, Inc. | Spanning tree in fabric switches |
US9401818B2 (en) | 2013-03-15 | 2016-07-26 | Brocade Communications Systems, Inc. | Scalable gateways for a fabric switch |
US9699001B2 (en) | 2013-06-10 | 2017-07-04 | Brocade Communications Systems, Inc. | Scalable and segregated network virtualization |
US9806949B2 (en) | 2013-09-06 | 2017-10-31 | Brocade Communications Systems, Inc. | Transparent interconnection of Ethernet fabric switches |
US9912612B2 (en) | 2013-10-28 | 2018-03-06 | Brocade Communications Systems LLC | Extended ethernet fabric switches |
US9548873B2 (en) | 2014-02-10 | 2017-01-17 | Brocade Communications Systems, Inc. | Virtual extensible LAN tunnel keepalives |
US10581758B2 (en) | 2014-03-19 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | Distributed hot standby links for vLAG |
US10476698B2 (en) | 2014-03-20 | 2019-11-12 | Avago Technologies International Sales Pte. Limited | Redundent virtual link aggregation group |
US10063473B2 (en) | 2014-04-30 | 2018-08-28 | Brocade Communications Systems LLC | Method and system for facilitating switch virtualization in a network of interconnected switches |
US9800471B2 (en) | 2014-05-13 | 2017-10-24 | Brocade Communications Systems, Inc. | Network extension groups of global VLANs in a fabric switch |
US10616108B2 (en) | 2014-07-29 | 2020-04-07 | Avago Technologies International Sales Pte. Limited | Scalable MAC address virtualization |
US9807007B2 (en) * | 2014-08-11 | 2017-10-31 | Brocade Communications Systems, Inc. | Progressive MAC address learning |
US9699029B2 (en) | 2014-10-10 | 2017-07-04 | Brocade Communications Systems, Inc. | Distributed configuration management in a switch group |
US9626255B2 (en) | 2014-12-31 | 2017-04-18 | Brocade Communications Systems, Inc. | Online restoration of a switch snapshot |
US9628407B2 (en) | 2014-12-31 | 2017-04-18 | Brocade Communications Systems, Inc. | Multiple software versions in a switch group |
US10003552B2 (en) | 2015-01-05 | 2018-06-19 | Brocade Communications Systems, Llc. | Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches |
US9942097B2 (en) | 2015-01-05 | 2018-04-10 | Brocade Communications Systems LLC | Power management in a network of interconnected switches |
US10038592B2 (en) | 2015-03-17 | 2018-07-31 | Brocade Communications Systems LLC | Identifier assignment to a new switch in a switch group |
US9807005B2 (en) | 2015-03-17 | 2017-10-31 | Brocade Communications Systems, Inc. | Multi-fabric manager |
US10579406B2 (en) | 2015-04-08 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | Dynamic orchestration of overlay tunnels |
US10439929B2 (en) | 2015-07-31 | 2019-10-08 | Avago Technologies International Sales Pte. Limited | Graceful recovery of a multicast-enabled switch |
US10171303B2 (en) | 2015-09-16 | 2019-01-01 | Avago Technologies International Sales Pte. Limited | IP-based interconnection of switches with a logical chassis |
US9912614B2 (en) | 2015-12-07 | 2018-03-06 | Brocade Communications Systems LLC | Interconnection of switches based on hierarchical overlay tunneling |
US10237090B2 (en) | 2016-10-28 | 2019-03-19 | Avago Technologies International Sales Pte. Limited | Rule-based network identifier mapping |
CN106878176B (zh) * | 2017-01-06 | 2019-12-06 | 新华三技术有限公司 | 一种报文转发方法及装置 |
US20180234407A1 (en) * | 2017-02-14 | 2018-08-16 | Quanta Computer Inc. | Method for securely exchanging link discovery information |
JP7492127B2 (ja) | 2020-06-09 | 2024-05-29 | 富士通株式会社 | 通信装置及び通信方法 |
CN112737945B (zh) * | 2020-12-30 | 2022-09-30 | 杭州迪普信息技术有限公司 | 服务器连接控制方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0624368B2 (ja) * | 1988-11-19 | 1994-03-30 | 富士通株式会社 | 学習機能を持ったブリッジ方式 |
US5220562A (en) * | 1989-05-12 | 1993-06-15 | Hitachi, Ltd. | Bridge apparatus and a communication system between networks using the bridge apparatus |
US6122669A (en) * | 1997-02-14 | 2000-09-19 | Advanced Micro Devices, Inc. | Method and apparatus for auto-incrementing through table and updating single register in memory |
TW358911B (en) * | 1998-01-23 | 1999-05-21 | Accton Technology Corp | Data package sorting transmission method |
US6049834A (en) * | 1998-05-08 | 2000-04-11 | Cisco Technology, Inc. | Layer 3 switch unicast protocol |
JP2000253015A (ja) * | 1999-03-02 | 2000-09-14 | Nippon Telegr & Teleph Corp <Ntt> | パケット転送方法及び装置 |
US6937574B1 (en) | 1999-03-16 | 2005-08-30 | Nortel Networks Limited | Virtual private networks and methods for their operation |
US6515993B1 (en) * | 1999-05-28 | 2003-02-04 | Advanced Micro Devices, Inc. | Method and apparatus for manipulating VLAN tags |
US6639901B1 (en) * | 2000-01-24 | 2003-10-28 | 3Com Corporation | Apparatus for and method for supporting 802.1Q VLAN tagging with independent VLAN learning in LAN emulation networks |
JP4168574B2 (ja) * | 2000-06-02 | 2008-10-22 | 株式会社日立製作所 | パケット転送装置、パケット転送制御方法、及びパケット転送装置の設定方法 |
US7002974B1 (en) * | 2001-03-28 | 2006-02-21 | Netrake Corporation | Learning state machine for use in internet protocol networks |
US6947419B2 (en) * | 2001-06-12 | 2005-09-20 | Acute Technology Corp. | Apparatus for multicast forwarding in a virtual local area network environment |
JP4236398B2 (ja) * | 2001-08-15 | 2009-03-11 | 富士通株式会社 | 通信方法、通信システム及び通信接続プログラム |
WO2003027807A2 (en) * | 2001-09-24 | 2003-04-03 | Rumi Sheryar Gonda | Method for supporting ethernet mac circuits |
-
2003
- 2003-08-18 US US10/642,481 patent/US20040225725A1/en not_active Abandoned
- 2003-08-19 CA CA 2437669 patent/CA2437669A1/en not_active Abandoned
-
2004
- 2004-01-09 CN CNA2004800105031A patent/CN1802818A/zh active Pending
- 2004-01-09 EP EP04701101A patent/EP1601137A4/en not_active Withdrawn
- 2004-01-09 KR KR20057015444A patent/KR101010554B1/ko not_active IP Right Cessation
- 2004-01-09 CN CNA2008101079528A patent/CN101335705A/zh active Pending
- 2004-01-09 WO PCT/JP2004/000124 patent/WO2004075482A1/ja active Search and Examination
- 2004-01-09 JP JP2005502664A patent/JP4182977B2/ja not_active Expired - Fee Related
- 2004-02-17 TW TW93103720A patent/TW200423609A/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
CA2437669A1 (en) | 2004-08-19 |
EP1601137A1 (en) | 2005-11-30 |
TW200423609A (en) | 2004-11-01 |
WO2004075482A1 (ja) | 2004-09-02 |
KR101010554B1 (ko) | 2011-01-24 |
CN101335705A (zh) | 2008-12-31 |
CN1802818A (zh) | 2006-07-12 |
TWI302406B (ja) | 2008-10-21 |
US20040225725A1 (en) | 2004-11-11 |
EP1601137A4 (en) | 2010-04-28 |
JP4182977B2 (ja) | 2008-11-19 |
KR20050101347A (ko) | 2005-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4182977B2 (ja) | ネットワークシステム、ラーニングブリッジノード、ラーニング方法及びそのプログラム | |
US6633565B1 (en) | Apparatus for and method of flow switching in a data communications network | |
US8027348B2 (en) | Frame transfer method and frame transfer device | |
US8189585B2 (en) | Techniques for virtual private network fast convergence | |
EP1019833B1 (en) | Mechanism for packet field replacement in a multi-layered switched network element | |
US8194664B2 (en) | Two-level load-balancing of network traffic over an MPLS network | |
EP1158725B1 (en) | Method and apparatus for multi- redundant router protocol support | |
US7079537B1 (en) | Layer 3 switching logic architecture in an integrated network switch | |
US5920566A (en) | Routing in a multi-layer distributed network element | |
US7680943B2 (en) | Methods and apparatus for implementing multiple types of network tunneling in a uniform manner | |
US7489682B2 (en) | Packet relay system | |
US6798788B1 (en) | Arrangement determining policies for layer 3 frame fragments in a network switch | |
US20040213272A1 (en) | Layer 2 switching device | |
EP1533953A1 (en) | Frame transfer method and node and frame transfer program for use on network | |
US20030026246A1 (en) | Cached IP routing tree for longest prefix search | |
US20070165543A1 (en) | Routing system and route update method | |
JPH06261078A (ja) | テーブル検索方法及びルータ装置 | |
JP2002044126A (ja) | パケット転送方法および装置 | |
US6751220B1 (en) | Apparatus and method of managing virtual private network routing data | |
US20060153193A1 (en) | Network routing control method and apparatus | |
JP3685918B2 (ja) | 中継装置、ネットワーク中継システムおよび中継方法 | |
US7145911B2 (en) | Method and system for parallel hash transformation for an address input | |
US5905712A (en) | Data communication network | |
JP3228249B2 (ja) | ルータ装置 | |
KR100258264B1 (ko) | 이더넷 스위치를 이용한 3계층 라우팅 처리방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A529 | Written submission of copy of amendment under section 34 (pct) |
Free format text: JAPANESE INTERMEDIATE CODE: A5211 Effective date: 20050819 |
|
A80 | Written request to apply exceptions to lack of novelty of invention |
Free format text: JAPANESE INTERMEDIATE CODE: A801 Effective date: 20050819 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071219 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080218 |
|
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: 20080812 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080825 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110912 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4182977 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120912 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130912 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |