以下に、本発明の実施の形態にかかる通信装置および通信システムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態.
図1は、本発明の実施の形態にかかる通信システム100の構成例を示す図である。通信システム100は、終端ノード101,102,103と、エッジ通信装置110,111と、経由通信装置120,121と、を備える。通信システム100は、終端ノード101,102,103がイーサネットフレームを送受信して通信を行い、エッジ通信装置110,111および経由通信装置120,121がイーサネットフレームを低遅延で転送するネットワーク構成の通信システムである。終端ノード101はエッジ通信装置110と接続し、終端ノード102,103はそれぞれエッジ通信装置111と接続している。通信システム100において、イーサネットの通信速度は特に限定されない。
終端ノード101は、イーサネット回線140を介してエッジ通信装置110と接続している。エッジ通信装置110は、イーサネット回線140を介して終端ノード101と接続し、イーサネット回線141を介して経由通信装置120と接続している。経由通信装置120は、イーサネット回線141を介してエッジ通信装置110と接続し、イーサネット回線142を介して経由通信装置121と接続している。経由通信装置121は、イーサネット回線142を介して経由通信装置120と接続し、イーサネット回線143を介してエッジ通信装置111と接続している。エッジ通信装置111は、イーサネット回線143を介して経由通信装置121と接続し、イーサネット回線144を介して終端ノード102と接続し、イーサネット回線145を介して終端ノード103と接続している。終端ノード102は、イーサネット回線144を介してエッジ通信装置111と接続している。終端ノード103は、イーサネット回線145を介してエッジ通信装置111と接続している。
通信システム100は、産業用ネットワークまたは車載用ネットワークに適用されることが期待される通信システムである。産業用ネットワークおよび車載用ネットワークは、各分野独自の発展を遂げたインターフェイスで構成されてきた。しかしながら、これまでNC制御装置、ロボット、または各種センサーといった終端ノード毎に持つ多種なインターフェイスの違いを吸収するための多層構造のネットワークから、伝送媒体をイーサネットに統合化したフラットなネットワークへの変化がおきている。通信システム100は、イーサネット規格の産業用途または車載用途への適用において、低遅延なデータ転送を実現するものである。具体的に、通信システム100を産業用ネットワークに適用する場合、終端ノード101,102,103は、例えば、NC制御装置、ロボット、各種センサーである。また、通信システム100を車載用ネットワークに適用する場合、終端ノード101,102,103は、例えば、ミラー制御モータ、ECU(Engine Control Unit)、衝突監視センサーである。
通信システム100において、エッジ通信装置110,111および経由通信装置120,121は、終端ノード101,102,103が送受信するイーサネットフレームを低遅延で転送することを実現する通信装置である。エッジ通信装置110,111は、通信システム100において終端ノード101,102,103のいずれかの終端ノードと接続する第1の通信装置である。エッジ通信装置110,111は、終端ノード101,102,103との間で送受信されるイーサネットフレームのMACDA(Media Access Control Destination Address)領域をMAC(Media Access Control)アドレスからラベル値およびカットスルー転送指示ビットに書き換える制御を行い、またはMACDA領域をラベル値およびカットスルー転送指示ビットから元のMACアドレスに書き換える制御を行う。ラベル値およびカットスルー転送指示ビットの説明については後述する。経由通信装置120,121は、通信システム100において終端ノード101,102,103と直接接続せず、エッジ通信装置110,111または他の経由通信装置と接続する第2の通信装置である。経由通信装置120,121は、イーサネットフレームのMACDA領域のラベル値およびカットスルー転送指示ビットに基づいて、イーサネットフレームの転送処理を行う。以降の説明において、エッジ通信装置110,111および経由通信装置120,121をまとめて通信装置と称することがある。
なお、図1に示す通信システム100は、エッジ通信装置110、経由通信装置120,121、およびエッジ通信装置111がストレートに接続されたネットワーク構成であるが、一例であり、終端ノード101から終端ノード102,103までの経路が複数できるメッシュ型のネットワーク構成にすることも可能である。
つぎに、エッジ通信装置110,111および経由通信装置120,121の構成について説明する。
図2は、本実施の形態にかかるエッジ通信装置110の構成例を示す図である。エッジ通信装置110およびエッジ通信装置111は同一構成のため、ここではエッジ通信装置110を例にして説明する。なお、図2において点線は制御の流れを示し、実線はイーサネットフレームの流れを示す。以降の図においても同様とする。エッジ通信装置110は、受信ポート200と、対向ポート判定部201と、装置制御部202と、送信先判定部203と、学習部204と、アクセス制御部205と、記憶部206と、ラベル制御部207と、記憶部208と、ストアアンドフォワード転送部209と、カットスルー転送部210と、出力制御部211と、送信ポート212と、を備える。
受信ポート200は、終端ノード101が接続されたポートであり、終端ノード101から送信されたイーサネットフレームを受信する。なお、エッジ通信装置110は、実際には複数のポートを備えており、あるポートには終端ノード101が接続され、別のポートには経由通信装置120が接続され、イーサネットフレームの流れの向きによって各ポートは受信ポートにも送信ポートにもなり得る。図2の例では終端ノード101から送信されたイーサネットフレームを経由通信装置120へ転送する流れを示しているが、経由通信装置120から送信されたイーサネットフレームを終端ノード101へ転送する流れの場合、経由通信装置120が接続されているポートが受信ポート200となり、終端ノード101が接続されているポートが送信ポート212となる。受信ポート200および送信ポート212については、ポートと称することがある。
対向ポート判定部201は、対向しているポート、図2の例ではイーサネットフレームが受信された受信ポート200に接続されている装置が、イーサネットフレームの送信元または宛先となる終端ノードか、イーサネットフレームを転送する経由通信装置またはエッジ通信装置かを判定する。
装置制御部202は、エッジ通信装置110におけるイーサネットフレームの転送処理を制御する。
送信先判定部203は、対向ポート判定部201において受信ポート200に終端ノード101が接続されていると判定された場合、受信されたイーサネットフレームの情報を学習部204が記憶部206の学習テーブル206aに登録する処理を制御する。また、送信先判定部203は、対向ポート判定部201において受信ポート200に終端ノード101が接続されていると判定された場合、記憶部206の学習テーブル206aを検索し、検索結果に基づいて受信されたイーサネットフレームをカットスルー転送するか否かを判定する。
学習部204は、送信先判定部203においてイーサネットフレームから抽出されたイーサネットフレームの情報を、アクセス制御部205を介して記憶部206の学習テーブル206aに登録する。学習テーブル206aは、エッジ通信装置110において過去に受信されたイーサネットフレームの送信元の終端ノードのMACアドレスと、過去に受信されたイーサネットフレームを受信したポートとの関係が登録されたテーブルである。
アクセス制御部205は、装置制御部202、送信先判定部203、および学習部204から記憶部206の学習テーブル206aへのアクセスを制御する。
記憶部206は、エッジ通信装置110で受信されたイーサネットフレームの情報が登録された学習テーブル206aを格納する。
ラベル制御部207は、イーサネットフレームのMACDA領域を書き換える。具体的に、ラベル制御部207は、送信先判定部203においてカットスルー転送すると判定された場合、記憶部208のラベル付与削除テーブル208aの検索結果に基づいて、イーサネットフレームのMACDA領域のMACアドレスを、ラベル値およびカットスルー転送指示ビットに書き換える。また、ラベル制御部207は、対向ポート判定部201において受信ポート200に経由通信装置が接続されていると判定された場合、記憶部208のラベル付与削除テーブル208aの検索結果に基づいて、イーサネットフレームのMACDA領域のラベル値およびカットスルー転送指示ビットを、イーサネットフレームの宛先の終端ノードを示すMACアドレスに書き換える。この場合、ラベル制御部207は、イーサネットフレームのMACDA領域のラベル値およびカットスルー転送指示ビットを、イーサネットフレームの送信元の終端ノードが宛先の終端ノードを示すMACアドレスとして記載していた元のMACアドレスに戻すことになる。
ラベル値とは、通信システム100において、各終端ノードのMACアドレスに対して一意に決定される値である。ラベル値については、通信システム100の管理者が、予め各終端ノードのMACアドレス毎にエッジ通信装置110,111および経由通信装置120,121に設定してもよい。または、エッジ通信装置110,111および経由通信装置120,121が、通信システム100に存在する各終端ノードのMACアドレスの情報を交換し、各終端ノードのMACアドレスの昇順または降順に規定されたラベル値を割り当ててもよい。
カットスルー転送指示ビットとは、イーサネットフレーム内のData部分に格納された、イーサネットフレームをストアアンドフォワード転送するかカットスルー転送するかを示す識別データに基づいて、イーサネットフレームのMACDA領域に設定される指示ビットである。
エッジ通信装置110は、イーサネットフレームのMACDA領域に記載されていたMACアドレスを、カットスルー転送指示ビットを書き込み可能なラベル値、またはMACDA領域にカットスルー転送指示ビットを書き込む領域を確保可能なラベル値に書き換える。これにより、エッジ通信装置110は、イーサネットフレームのMACDA領域にカットスルー転送指示ビットを書き込むことが可能となる。以降の説明において、MACDA領域を宛先アドレス領域と称することがある。また、MACアドレスを単にアドレスと称することがある。
また、ラベル制御部207は、イーサネットフレームのMACDA領域をMACアドレスからラベル値およびカットスルー転送指示ビットで書き換えた場合、U(Universal)/L(Local)ビットを、ローカルアドレスを示す値に設定する。また、ラベル制御部207は、イーサネットフレームのMACDA領域をラベル値およびカットスルー転送指示ビットからイーサネットフレームの宛先の終端ノードのMACアドレスで書き換えた場合、U/Lビットを、ユニバーサルアドレスを示す値に設定する。U/Lビットは、ユニバーサルアドレスかローカルアドレスかを示すアドレスビットである。U/Lビットは、元々MACDA領域においてMACアドレスに含まれるものである。MACDA領域がラベル値およびカットスルー転送指示ビットに書き換えられた場合、U/Lビットは、ラベル値に含まれるようにしてもよいし、ラベル値とは独立させてもよい。
記憶部208は、イーサネットフレームの宛先の終端ノードのMACアドレス、イーサネットフレームの送信先のポート、およびラベル値の対応が設定されたラベル付与削除テーブル208aを格納する。
ストアアンドフォワード転送部209は、優先度毎のキューを複数備えており、イーサネットフレームの優先度を判別して優先度に対応したキューにイーサネットフレームを格納する。ストアアンドフォワード転送部209は、出力制御部211の制御により、優先度の低いキューに格納したイーサネットフレームよりも、優先度の高いキューに格納したイーサネットフレームから順に出力する。
カットスルー転送部210には、ストアアンドフォワード転送部209に入力されるイーサネットフレームよりも優先的に送信されるイーサネットフレームがラベル制御部207から入力される。カットスルー転送部210は、イーサネットフレームを格納することなく、出力制御部211の制御により出力する。
出力制御部211は、ストアアンドフォワード転送部209またはカットスルー転送部210から出力するイーサネットフレームのうち、カットスルー転送部210からのイーサネットフレームを優先的に出力する制御を行う。
送信ポート212は、経由通信装置120が接続されたポートであり、出力制御部211から出力されたイーサネットフレームを経由通信装置120に送信する。
なお、エッジ通信装置110は、前述のように複数のポートを備えており、実際にはポート毎に、ストアアンドフォワード転送部209、カットスルー転送部210、および出力制御部211を備えているものとする。
図3は、本実施の形態にかかる経由通信装置120の構成例を示す図である。経由通信装置120および経由通信装置121は同一構成のため、ここでは経由通信装置120を例にして説明する。経由通信装置120は、対向ポート判定部201と、送信先判定部203と、学習部204と、アクセス制御部205と、記憶部206と、ストアアンドフォワード転送部209と、カットスルー転送部210と、出力制御部211と、受信ポート300と、カットスルー判定部301と、装置制御部302と、ラベル判別部307と、記憶部308と、送信ポート312と、を備える。
受信ポート300は、エッジ通信装置110が接続されたポートであり、エッジ通信装置110から送信されたイーサネットフレームを受信する。なお、経由通信装置120は、エッジ通信装置110と同様、実際には複数のポートを備えており、あるポートにはエッジ通信装置110が接続され、別のポートには経由通信装置121が接続され、イーサネットフレームの流れの向きによって各ポートは受信ポートにも送信ポートにもなり得る。図3の例ではエッジ通信装置110から送信されたイーサネットフレームを経由通信装置121へ転送する流れを示しているが、経由通信装置121から送信されたイーサネットフレームをエッジ通信装置110へ転送する流れの場合、経由通信装置121が接続されているポートが受信ポート300となり、エッジ通信装置110が接続されているポートが送信ポート312となる。受信ポート300および送信ポート312については、ポートと称することがある。
カットスルー判定部301は、対向ポート判定部201において受信ポート300にエッジ通信装置110が接続されていると判定された場合、対向ポート判定部201から出力されたイーサネットフレームのMACDA領域の内容を確認し、エッジ通信装置110によって書き換えられたイーサネットフレームのMACDA領域の内容に基づいて、イーサネットフレームをカットスルー転送するか否かを判定する。
装置制御部302は、経由通信装置120におけるイーサネットフレームの転送処理を制御する。
ラベル判別部307は、カットスルー判定部301においてイーサネットフレームをカットスルー転送すると判定された場合、イーサネットフレームのラベル値を検索キーとして記憶部308のラベルスイッチテーブル308aを検索し、検索結果に基づいてイーサネットフレームをカットスルー転送するか廃棄するかを判定する。
記憶部308は、ラベル値、およびラベル値で示される終端ノード宛のイーサネットフレームの転送先となるポートの関係が設定されたラベルスイッチテーブル308aを格納する。
送信ポート312は、経由通信装置121が接続されたポートであり、出力制御部211から出力されたイーサネットフレームを経由通信装置121に送信する。
経由通信装置120は、エッジ通信装置110と同様、前述のように複数のポートを備えており、実際にはポート毎に、ストアアンドフォワード転送部209、カットスルー転送部210、および出力制御部211を備えているものとする。
ここで、通信システム100の終端ノード101,102,103、エッジ通信装置110,111、および経由通信装置120,121で送受信されるイーサネットフレームの構成について説明する。図4は、本実施の形態にかかる通信システム100で送受信されるイーサネットフレームの構成例を示す図である。図4(a)はVLAN(Virtual Local Area Network)403なしのイーサネットフレーム410を示し、図4(b)はVLAN403ありのイーサネットフレーム411を示している。VLAN403ありとは、終端ノード101,102,103が属するネットワークにおいて、VLANが設定されている場合である。
図4(a)に示すVLAN403なしのイーサネットフレーム410は、MACDA400、MACSA(Media Access Control Source Address)401、Type402、Data404、およびFCS(Frame Check Sequence)405から構成される。MACDA400はイーサネットフレーム410の宛先の通信装置のMACアドレスを示し、MACSA401はイーサネットフレーム410の送信元の通信装置のMACアドレスを示す。Type402は上位のネットワーク層のプロトコルを識別する識別番号である。Data404はイーサネットフレーム410で運ばれるデータが格納される領域である。FCS405はイーサネットフレーム410の破損を確認するために使用される。
図4(b)に示すVLAN403ありのイーサネットフレーム411は、図4(a)に示すVLAN403なしのイーサネットフレーム410に、終端ノードの属するVLANの識別番号であるVID(VLAN IDentifier)を含む領域であるVLAN403が追加されたものである。通信システム100は、図4(a)および図4(b)に示すいずれのイーサネットフレームにも適用可能である。
つづいて、エッジ通信装置110,111および経由通信装置120,121の動作について説明する。具体的に、通信システム100において、終端ノード101から、エッジ通信装置110、経由通信装置120,121、およびエッジ通信装置111を経由して終端ノード102にイーサネットフレームを送信する場合の、エッジ通信装置110,111および経由通信装置120,121のイーサネットフレームの転送処理について説明する。
図5は、実施の形態1にかかるエッジ通信装置110,111のイーサネットフレーム転送処理を示すフローチャートである。まず、終端ノード101からイーサネットフレームを受信するエッジ通信装置110の転送処理について説明する。
エッジ通信装置110では、受信ポート200が、終端ノード101から送信されたイーサネットフレームを、イーサネット回線140を介して受信する(ステップS501)。対向ポート判定部201は、イーサネットフレームが受信されたポートが非対応ポートか否かを判定する(ステップS502)。非対応ポートとは終端ノードが接続されたポートのことであり、非対応ポートではない対応ポートとは経由通信装置が接続されたポートのことである。対向ポート判定部201は、装置制御部202に対してイーサネットフレームが受信されたポートの種別を問い合わせ、装置制御部202からの応答の信号によって非対応ポートか否かを判定する。装置制御部202には、通信システム100の構築時において、エッジ通信装置110のどのポートにどのような装置が接続されているかの接続情報が設定されているものとする。装置制御部202の接続情報については、通信システム100の管理者が静的に設定してもよいし、装置制御部202が経由通信装置、他のエッジ通信装置との間でイーサネットフレームのやりとりによって接続されている装置を把握して動的に設定してもよい。
対向ポート判定部201は、イーサネットフレームが受信されたポートが非対応ポートであると判定した場合(ステップS502:Yes)、受信されたイーサネットフレームを送信先判定部203に出力する。送信先判定部203は、対向ポート判定部201から出力されたイーサネットフレームからMACSAおよびTypeの情報を抽出し、MACSA、Type、およびイーサネットフレームが受信された受信ポートの情報を学習部204に通知する。なお、送信先判定部203は、対向ポート判定部201から出力されたイーサネットフレームがVLAN領域を含む場合、さらに、イーサネットフレームからVLANの情報を抽出し、VLANの情報も学習部204に通知する。学習部204は、送信先判定部203から通知されたイーサネットフレームの情報を、アクセス制御部205を介して、記憶部206の学習テーブル206aに登録する(ステップS503)。
図6は、本実施の形態にかかるエッジ通信装置110の記憶部206に格納された学習テーブル206aの例を示す図である。記憶部206の学習テーブル206aには、イーサネットフレームの情報について、検索キー、送信ポート、およびエージング時間の項目が登録されている。検索キーは、学習部204によって登録されたMACSAであり、後述する送信先判定部203の検索において、イーサネットフレームのMACDA領域のMACアドレスに対する検索対象となる。送信ポートは、学習部204によって登録された受信ポートであり、後述する送信先判定部203の検索においてイーサネットフレームのMACDA領域のMACアドレスが検索ヒットした場合、イーサネットフレームの送信先のポートを示すものである。エージング時間は、予め送信ポート毎に設定された時間としてもよいがこれに限定されるものではなく、学習部204が送信先判定部203から通知されたType、VLANの一方または両方の情報を用いて設定してもよい。
送信先判定部203は、受信されたイーサネットフレームのMACDA領域のMACアドレスを検索キーとして、アクセス制御部205を介して記憶部206の学習テーブル206aを検索し、ヒットしたか否かを確認する(ステップS504)。ヒットとは、記憶部206の学習テーブル206aに検索キーとしたMACアドレスがあった場合である。ミスヒットとは、ヒットしなかった場合、すなわち記憶部206の学習テーブル206aに検索キーとしたMACアドレスがなかった場合である。ミスヒットの場合とは、エッジ通信装置110が、例えば、検索キーのMACアドレスに該当する終端ノードから送信されたイーサネットフレームを一度も受信したことのない場合である。または、ミスヒットの場合とは、エッジ通信装置110において、以前に受信したことがある送信元の終端ノードからのイーサネットフレームであるが、エージング時間を経過した後に受信した場合である。
ヒットした場合(ステップS504:Yes)、送信先判定部203は、つぎに、受信されたイーサネットフレームがカットスルー転送の対象か否かを確認する(ステップS505)。例えば、送信先判定部203には、通信システム100の構築時、予めカットスルー転送の対象の送信ポートが設定されているものとする。この場合、送信先判定部203は、イーサネットフレームのMACDA領域のMACアドレスを検索キーとして記憶部206の学習テーブル206aのMACアドレスを検索し、検索結果に基づいてイーサネットフレームをカットスルー転送するか否かを判定する。なお、通信システム100の構築時、予めカットスルー転送の対象のMACアドレスが送信先判定部203に設定されている場合、送信先判定部203は、イーサネットフレームのMACDA領域のMACアドレスに基づいてイーサネットフレームをカットスルー転送するか否かを判定してもよい。カットスルー転送の場合(ステップS505:Yes)、送信先判定部203は、イーサネットフレームをラベル制御部207に出力する。
ラベル制御部207は、送信先判定部203から出力されたイーサネットフレームのMACDA領域において、U/Lビットが0b0、すなわちユニバーサルアドレスを示す値か否かを確認する(ステップS506)。送信先判定部203から出力されたイーサネットフレームのMACDA領域のU/Lビットがユニバーサルアドレスを示す値の場合(ステップS506:Yes)、ラベル制御部207は、イーサネットフレームのMACDA領域のMACアドレスを検索キーとして記憶部208のラベル付与削除テーブル208aを検索し、ヒットしたか否かを確認する(ステップS507)。
図7は、本実施の形態にかかるエッジ通信装置110の記憶部208に格納されたラベル付与削除テーブル208aの例を示す図である。記憶部208のラベル付与削除テーブル208aには、イーサネットフレームの情報について、検索キー、送信ポート、および書き換え情報の項目が登録されている。検索キーは、ラベル制御部207の検索においてイーサネットフレームのMACDA領域のMACアドレスまたはラベル値に対する検索対象である。送信ポートは、ラベル制御部207の検索においてイーサネットフレームのMACDA領域のMACアドレスまたはラベル値が検索ヒットした場合、イーサネットフレームの送信先のポートを示すものである。書き換え情報は、ラベル制御部207の検索においてイーサネットフレームのMACDA領域のMACアドレスまたはラベル値が検索ヒットした場合、検索ヒットしたMACDA領域の内容を書き換える情報を示すものである。
図7において検索キーのMACDAがユニバーサルアドレス時とは、MACDA領域のU/Lビットがユニバーサルアドレスを示す値の場合、すなわち、エッジ通信装置110が終端ノード101からイーサネットフレームを受信した場合である。この場合、検索キーは、イーサネットフレームのMACDA領域のMACアドレスとなる。また、図7において検索キーのMACDAがローカルアドレス時とは、MACDA領域のU/Lビットがローカルアドレスを示す値の場合、すなわち、後述するエッジ通信装置111が終端ノード102にイーサネットフレームを送信する場合である。この場合、検索キーは、イーサネットフレームのMACDA領域のラベル値となる。
装置制御部202は、記憶部206の学習テーブル206aを参照し、エッジ通信装置110と接続する終端ノードを送信元とするイーサネットフレームについて、図7に示すラベル付与削除テーブル208aのうち検索キーのMACDAがユニバーサルアドレス時の部分を作成してもよい。また、装置制御部202は、記憶部206の学習テーブル206aを参照し、エッジ通信装置110が経由通信装置120経由で受信したエッジ通信装置110と直接接続しない終端ノードを送信元とするイーサネットフレームについて、図7に示すラベル付与削除テーブル208aのうち検索キーのMACDAがローカルアドレス時の部分を作成してもよい。
ステップS507においてヒットした場合(ステップS507:Yes)、ラベル制御部207は、送信先判定部203から出力されたイーサネットフレームのMACDA領域のMACアドレスを、記憶部208のラベル付与削除テーブル208aで設定されたラベル値、および、イーサネットフレーム内のData部分に格納されたストアアンドフォワード転送またはカットスルー転送を示す識別データに基づくカットスルー転送指示ビット有効を示す値で書き換える。また、ラベル制御部207は、MACDA領域のU/Lビットを0b1で示されるローカルアドレスに設定する。すなわち、ラベル制御部207は、送信先判定部203から出力されたイーサネットフレームのMACDA領域のMACアドレスに対して、ラベル値およびカットスルー転送指示ビット有効で書き換え、ローカルアドレスを設定する(ステップS508)。ラベル制御部207は、MACDA領域を書き換えたイーサネットフレームをカットスルー転送部210に出力する。
カットスルー転送部210は、出力制御部211の制御によって、イーサネットフレームをカットスルー転送する(ステップS509)。出力制御部211は、ストアアンドフォワード転送部209に格納されたイーサネットフレームよりも優先して、カットスルー転送部210からのイーサネットフレームを出力する(ステップS510)。そして、送信ポート212は、出力制御部211から出力されたイーサネットフレームを、経由通信装置120に送信する(ステップS511)。
ステップS507においてミスヒットの場合(ステップS507:No)、ラベル制御部207は、意図しないイーサネットフレームおいてU/Lビットが0b1すなわちローカルアドレスを示す値となっているとして、該当するイーサネットフレームの転送を防止するため廃棄する(ステップS512)。
ステップS506においてMACDA領域のU/Lビットがローカルアドレスを示す値の場合(ステップS506:No)、このときのラベル制御部207の動作は、後述するエッジ通信装置111の場合に該当するため、エッジ通信装置111の動作のところで説明する。
ステップS504においてミスヒットの場合(ステップS504:No)、送信先判定部203は、イーサネットフレームを、イーサネットフレームが受信されたポートすなわち受信ポート以外の全てのポートのストアアンドフォワード転送部209に出力する(ステップS515)。ストアアンドフォワード転送部209は、出力制御部211の制御によって、イーサネットフレームをストアアンドフォワード転送する(ステップS517)。具体的に、ストアアンドフォワード転送部209は、送信先判定部203から出力されたイーサネットフレームがVLANを含む場合、COS(Class Of Service)情報に基づいてイーサネットフレームの優先度を判別し、イーサネットフレームを格納するキューを決定する。また、ストアアンドフォワード転送部209は、送信先判定部203から出力されたイーサネットフレームがVLANを含まない場合、例えばIPv4のTOS(Type Of Service)情報に基づいてイーサネットフレームの優先度を判別し、イーサネットフレームを格納するキューを決定する。
出力制御部211は、カットスルー転送部210からのイーサネットフレームの出力を優先しつつ、ストアアンドフォワード転送部209に格納されたイーサネットフレームを出力する(ステップS510)。そして、送信ポート212は、出力制御部211から出力されたイーサネットフレームを、経由通信装置120に送信する(ステップS511)。
ステップS505においてストアアンドフォワード転送の場合(ステップS505:No)、送信先判定部203は、イーサネットフレームを、MACDA領域のMACアドレスに基づいて該当する1つのポートのストアアンドフォワード転送部209に出力する(ステップS516)。ストアアンドフォワード転送部209は、出力制御部211の制御によって、イーサネットフレームをストアアンドフォワード転送する(ステップS517)。出力制御部211は、カットスルー転送部210からのイーサネットフレームの出力を優先しつつ、ストアアンドフォワード転送部209に格納されたイーサネットフレームを送信ポート212に出力する(ステップS510)。そして、送信ポート212は、出力制御部211から出力されたイーサネットフレームを、経由通信装置120に送信する(ステップS511)。
なお、ステップS502において対応ポートの場合(ステップS502:No)の対向ポート判定部201の動作は、後述するエッジ通信装置111の場合に該当するため、エッジ通信装置111の動作のところで説明する。
つぎに、エッジ通信装置110からイーサネットフレームを受信する経由通信装置120の動作をについて説明する。図8は、実施の形態1にかかる経由通信装置120,121のイーサネットフレーム転送処理を示すフローチャートである。
経由通信装置120では、受信ポート300が、エッジ通信装置110から送信されたイーサネットフレームを、イーサネット回線141を介して受信する(ステップS601)。対向ポート判定部201は、イーサネットフレームが受信されたポートが非対応ポートか否かを判定する(ステップS602)。対向ポート判定部201は、装置制御部302に対してイーサネットフレームが受信されたポートの種別を問い合わせ、装置制御部302からの応答の信号によって非対応ポートか否かを判定する。装置制御部302には、通信システム100の構築時において、経由通信装置120のどのポートにどの通信装置が接続されているかの接続情報が設定されているものとする。装置制御部302における接続情報の設定方法は、前述のエッジ通信装置110の装置制御部202と同様とする。
対向ポート判定部201は、イーサネットフレームが受信されたポートが対応ポートであると判定した場合(ステップS602:No)、受信されたイーサネットフレームをカットスルー判定部301に出力する。カットスルー判定部301は、対向ポート判定部201から出力されたイーサネットフレームのMACDA領域のU/Lビットおよびカットスルー転送指示ビットの設定を確認する(ステップS603)。U/Lビットがローカルアドレスを示す値かつカットスルー転送指示ビット有効が設定されている場合(ステップS603:Yes)、カットスルー判定部301は、イーサネットフレームをラベル判別部307に出力する。ラベル判別部307は、カットスルー判定部301から出力されたイーサネットフレームのMACDA領域のラベル値を検索キーとして記憶部308のラベルスイッチテーブル308aを検索し、ヒットするか否かを確認する(ステップS604)。
図9は、本実施の形態にかかる経由通信装置120の記憶部308に格納されたラベルスイッチテーブル308aの例を示す図である。記憶部308のラベルスイッチテーブル308aには、検索キーおよび送信ポートの項目が登録されている。検索キーは、ラベル判別部307の検索においてイーサネットフレームのMACDA領域のラベル値に対する検索対象である。送信ポートは、ラベル判別部307の検索においてイーサネットフレームのMACDA領域のラベル値が検索ヒットした場合、イーサネットフレームの送信先のポートを示すものである。前述のエッジ通信装置110の記憶部208に格納されたラベル付与削除テーブル208aと同様、ラベル値については、通信システム100の管理者が、予め各終端ノードのMACアドレスに対してエッジ通信装置110,111および経由通信装置120,121に設定してもよい。または、エッジ通信装置110,111および経由通信装置120,121が、通信システム100に存在する各終端ノードのMACアドレスの情報を交換し、各終端ノードのMACアドレスの昇順または降順に規定されたラベル値を割り当ててもよい。
ステップS604においてヒットした場合(ステップS604:Yes)、ラベル判別部307は、イーサネットフレームをカットスルー転送部210に出力する。
カットスルー転送部210は、出力制御部211の制御によって、イーサネットフレームをカットスルー転送する(ステップS605)。出力制御部211は、ストアアンドフォワード転送部209に格納されたイーサネットフレームよりも優先して、カットスルー転送部210からのイーサネットフレームを出力する(ステップS606)。そして、送信ポート312は、出力制御部211から出力されたイーサネットフレームを、経由通信装置121に送信する(ステップS607)。
ステップS604においてミスヒットの場合(ステップS604:No)、ラベル判別部307は、意図しないイーサネットフレームにおいてU/Lビットが0b1すなわちローカルアドレスを示す値となっているとして、該当するイーサネットフレームの転送を防止するため廃棄する(ステップS608)。
ステップS602において非対応ポートの場合(ステップS602:Yes)、対向ポート判定部201は、受信されたイーサネットフレームを送信先判定部203に出力する。また、ステップS603においてU/Lビットがユニバーサルアドレスを示す値の場合、またはカットスルー転送指示ビット有効が設定されていない場合、または両方の場合(ステップS603:No)、カットスルー判定部301は、受信されたイーサネットフレームを送信先判定部203に出力する。
送信先判定部203は、対向ポート判定部201またはカットスルー判定部301から出力されたイーサネットフレームからMACSAおよびTypeを抽出し、MACSA、Type、およびイーサネットフレームが受信された受信ポートの情報を学習部204に通知する。なお、送信先判定部203は、対向ポート判定部201から出力されたイーサネットフレームがVLANのフィールドを含む場合、さらに、VLANの情報も学習部204に通知する。学習部204は、送信先判定部203から通知された情報を、アクセス制御部205を介して、記憶部206の学習テーブルに登録する(ステップS609)。
図10は、本実施の形態にかかる経由通信装置120の記憶部206に格納された学習テーブル206aの例を示す図である。本実施の形態において、通信システム100は、エッジ通信装置110、経由通信装置120,121、エッジ通信装置111がストレートに接続されたネットワーク構成である。そのため、エッジ通信装置110、経由通信装置120,121、エッジ通信装置111は、同じイーサネットフレームを転送することになるため、同じ内容の学習テーブル206aを持つことが予想される。なお、通信システムの形態が図1に示すストレート形状ではなく、複数の通信経路が選択可能なメッシュ形状の場合、各エッジ通信装置および各経由通信装置は、異なる内容の学習テーブル206aを持つことになると考えられる。
送信先判定部203は、受信されたイーサネットフレームのMACDA領域のMACアドレスを検索キーとして、アクセス制御部205を介して記憶部206の学習テーブル206aを検索し、ヒットしたか否かを確認する(ステップS610)。
ヒットした場合(ステップS610:Yes)、送信先判定部203は、イーサネットフレームを、MACDA領域のMACアドレスに基づいて該当する1つのポートに対応するストアアンドフォワード転送部209に出力する(ステップS611)。ステップS610においてミスヒットの場合(ステップS610:No)、送信先判定部203は、イーサネットフレームを、イーサネットフレームが受信されたポートすなわち受信ポート以外の全てのポートに対応するストアアンドフォワード転送部209に出力する(ステップS612)。
ストアアンドフォワード転送部209は、出力制御部211の制御によって、イーサネットフレームをストアアンドフォワード転送する(ステップS613)。出力制御部211は、カットスルー転送部210からのイーサネットフレームの出力を優先しつつ、ストアアンドフォワード転送部209に格納されたイーサネットフレームを出力する(ステップS606)。そして、送信ポート312は、出力制御部211から出力されたイーサネットフレームを、経由通信装置121に送信する(ステップS607)。
つぎに、経由通信装置120からイーサネットフレームを受信する経由通信装置121の動作をについて説明する。経由通信装置121では、受信ポート300が、経由通信装置120から送信されたイーサネットフレームを、イーサネット回線142を介して受信する(ステップS601)。以降の動作は、経由通信装置120と同様である。送信ポート312は、出力制御部211から出力されたイーサネットフレームを、エッジ通信装置111に送信する(ステップS607)。
つぎに、経由通信装置121からイーサネットフレームを受信するエッジ通信装置111の動作について説明する。エッジ通信装置111では、受信ポート200が、経由通信装置121から送信されたイーサネットフレームを、イーサネット回線143を介して受信する(ステップS501)。
対向ポート判定部201は、イーサネットフレームが受信されたポートが対応ポートであると判定し(ステップS502:No)、受信されたイーサネットフレームをラベル制御部207に出力する。
ラベル制御部207は、対向ポート判定部201から出力されたイーサネットフレームのMACDA領域においてU/Lビットがローカルアドレスを示す値であると判定する(ステップS506:No)。ラベル制御部207は、イーサネットフレームのMACDA領域のラベル値を検索キーとして記憶部208のラベル付与削除テーブル208aを検索し、ヒットしたか否かを確認する(ステップS513)。この場合、ラベル制御部207は、図7に示すラベル付与削除テーブル208aのうち、検索キーのMACDAがローカルアドレス時の部分を対象として検索する。
ヒットした場合(ステップS513:Yes)、ラベル制御部207は、対向ポート判定部201から出力されたイーサネットフレームのMACDA領域のラベル値およびカットスルー転送指示ビット有効を、記憶部208のラベル付与削除テーブル208aに設定されたMACアドレスで書き換える。このとき、ラベル制御部207は、MACDA領域のカットスルー転送指示ビットを無効とし、U/Lビットを0b0で示されるユニバーサルアドレスに設定する(ステップS514)。ラベル制御部207は、MACDA領域を書き換えたイーサネットフレームをカットスルー転送部210に出力する。
カットスルー転送部210は、出力制御部211の制御によって、イーサネットフレームをカットスルー転送する(ステップS509)。出力制御部211は、ストアアンドフォワード転送部209に格納されたイーサネットフレームよりも優先して、カットスルー転送部210からのイーサネットフレームを出力する(ステップS510)。そして、送信ポート212は、出力制御部211から出力されたイーサネットフレームを、イーサネット回線144を介して、経由通信装置120に送信する(ステップS511)。
ステップS513においてミスヒットの場合(ステップS513:No)、ラベル制御部207は、意図しないイーサネットフレームにおいてU/Lビットが0b1すなわちローカルアドレスを示す値となっているとして、該当するイーサネットフレームの転送を防止するため廃棄する(ステップS512)。
このように、エッジ通信装置110がMACDA領域においてカットスルー転送指示ビット有効を設定する。経由通信装置120,121は、イーサネットフレームの転送方式の判断をMACDA領域のカットスルー転送指示ビットで判断することができる。これにより、経由通信装置120,121は、イーサネットフレームの読み込み量を従来よりも少ない状態で、イーサネットフレームの転送方式の判断ができる。
図11は、本実施の形態にかかる通信システム100で送受信されるイーサネットフレームに対する経由通信装置120,121の読み込み位置を示す図である。図4(a)に示すVLAN403なしのイーサネットフレーム410に対して、ストアアンドフォワード転送かカットスルー転送かを示す識別データ404a、および従来の読み込み位置420を追加している。また、図4(b)に示すVLAN403ありのイーサネットフレーム411に対して、ストアアンドフォワード転送かカットスルー転送かを示す識別データ404a、および従来の読み込み位置421を追加している。経由通信装置120,121は、従来では読み込み位置420または読み込み位置421までイーサネットフレームを読み込む必要があったが、本実施の形態では、MACDA400の部分だけを読み込むことで、イーサネットフレームの転送方式の判断ができる。経由通信装置120,121は、読み込み位置420または読み込み位置421までイーサネットフレームを読み込む必要がなくなり、読み込み位置420,421とMACDA400との差分だけ転送処理を高速化することが可能となる。
つづいて、エッジ通信装置110,111のハードウェア構成について説明する。エッジ通信装置110,111において、受信ポート200および送信ポート212はイーサネットフレームを送受信可能なインターフェイス回路により実現される。エッジ通信装置110,111のその他の構成は処理回路により実現される。すなわち、エッジ通信装置110,111は、イーサネットフレームのMACDA領域を書き換えるための処理回路を備える。処理回路は、専用のハードウェアであってもよいし、メモリに格納されるプログラムを実行するCPU(Central Processing Unit)およびメモリであってもよい。
図12は、本実施の形態にかかるエッジ通信装置110,111の処理回路をCPUおよびメモリで構成する場合の例を示す図である。処理回路がCPU901およびメモリ902で構成される場合、エッジ通信装置110,111の各機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアはプログラムとして記述され、メモリ902に格納される。処理回路では、メモリ902に記憶されたプログラムをCPU901が読み出して実行することにより、各機能を実現する。すなわち、エッジ通信装置110,111は、イーサネットフレームのMACDA領域を書き換えるステップが結果的に実行されることになるプログラムを格納するためのメモリ902を備える。また、これらのプログラムは、エッジ通信装置110,111の手順および方法をコンピュータに実行させるものであるともいえる。ここで、CPU901は、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、またはDSP(Digital Signal Processor)などであってもよい。また、メモリ902とは、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)などの、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、またはDVD(Digital Versatile Disc)などが該当する。
図13は、本実施の形態にかかるエッジ通信装置110,111の処理回路を専用のハードウェアで構成する場合の例を示す図である。処理回路が専用のハードウェアである場合、図13に示す処理回路903は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせたものが該当する。エッジ通信装置110,111の各機能を機能別に処理回路903で実現してもよいし、各機能をまとめて処理回路903で実現してもよい。
なお、エッジ通信装置110,111の各機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。このように、処理回路は、専用のハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現することができる。また、経由通信装置120,121のハードウェア構成についても、エッジ通信装置110,111のハードウェア構成と同様、図12および図13を用いて説明することができる。
以上説明したように、本実施の形態によれば、エッジ通信装置110は、受信されたイーサネットフレームのMACDA領域をラベル値およびカットスルー転送指示ビット有効で書き換え、イーサネットフレームの転送に必要な情報をMACDA領域に集約して経由通信装置120へ送信することとした。これにより、経由通信装置120,121は、イーサネットフレームのMACDA領域を読み込むことでイーサネットフレームの転送先の情報、およびカットスルー転送するか否かの情報を得ることができ、イーサネットフレームのデータ部分にあるストアアンドフォワード転送するかまたはカットスルー転送するかの情報を読み込む場合と比較して、低遅延でイーサネットフレームを転送することができる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。