(57)【特許請求の範囲】
【請求項１】
送信対象の複数のフレームを格納する記憶部と、
前記記憶部から読み出される前記複数のフレームが直列に連結され、且つ各フレームのフレーム長情報及び前記複数のフレームの連結タイプ情報が付与された連結フレームを生成する生成部と、
前記連結フレームに、当該連結フレームの受信側との同期確立用情報を付与する付与部とを含み、
前記生成部は、
（１）同一の宛先情報を有する複数のフレームの何れか１つが前記宛先情報を含み、且つ残りの１以上のフレームから前記宛先情報が夫々省略された連結フレームを生成する第１の処理と、
（２）同一の仮想網識別情報を有する複数のフレームの何れか１つが前記仮想網識別情報を含み、且つ残りの１以上のフレームから前記仮想網識別情報が夫々省略された連結フレームを生成する第２の処理と、
（３）同一の宛先情報及び同一の仮想網識別情報を有する複数のフレームの何れか１つが前記宛先情報及び前記仮想網識別情報を含み、且つ残りの１以上のフレームから前記宛先情報及び前記仮想網識別情報が夫々省略された連結フレームを生成する第３の処理と、
（４）異なる宛先情報を有する複数のフレームが連結された連結フレームを生成する第４の処理と
の少なくとも２つから１つを選択して実行し、
前記連結フレーム又は前記複数のフレームの夫々に対し、前記生成部で選択される前記第１〜第４の処理の何れかを特定するための前記連結タイプ情報を挿入する挿入部をさらに含む、
フレーム連結装置。
【請求項２】
前記複数のフレームの夫々は、同一の宛先情報を含んでおり、
前記生成部は、前記複数のフレームの何れか１つが前記宛先情報を含み、且つ残りの１以上のフレームから前記宛先情報が夫々省略された前記連結フレームを生成する
請求項１に記載のフレーム連結装置。
【請求項３】
前記複数のフレームの夫々は、同一の仮想網識別情報を含んでおり、
前記生成部は、前記複数のフレームの何れか１つが前記仮想網識別情報を含み、且つ残りの１以上のフレームから前記仮想網識別情報が夫々省略された前記連結フレームを生成する
請求項１に記載のフレーム連結装置。
【請求項４】
前記複数のフレームの夫々は、同一の宛先情報及び同一の仮想網識別情報を含んでおり、
前記生成部は、前記複数のフレームの何れか１つが前記宛先情報及び前記仮想網識別情報を含み、且つ残りの１以上のフレームから前記宛先情報及び前記仮想網識別情報が夫々省略された前記連結フレームを生成する
請求項１に記載のフレーム連結装置。
【請求項５】
前記複数のフレームのフレーム長を夫々検出する検出部と、
前記検出されたフレーム長の夫々を、前記各フレームに挿入するフレーム長挿入部とをさらに含む
請求項１に記載のフレーム連結装置。
【請求項６】
前記複数のフレームの何れか１つは、前記連結フレーム中の先頭に配置されるフレームである
請求項２から４の何れか１項に記載のフレーム連結装置。
【請求項７】
前記フレームは、上位プロトコルのタイプを示すタイプ値とフレーム長を示すレングス値との一方が格納されるタイプ／レングスフィールドを含むＭＡＣフレームであり、
前記連結フレームにおいて先頭に位置するＭＡＣフレームのタイプ／レングスフィールドにレングス値が格納されている場合に、このレングス値をタイプ値に書き換えるとともに、タイプ／レングスフィールドの値が書き換えられたことを示す書換情報を連結フレームに付与する書換部
をさらに含む請求項１から６の何れか１項に記載のフレーム連結装置。
【請求項８】
複数のフレームが直列に連結され、且つ各フレームのフレーム長情報及び前記複数のフレームの連結タイプ情報が付与された連結フレームを受信する受信部と、
前記連結フレームに含まれる各フレームのフレーム長情報及び前記複数のフレームの連結タイプ情報に基づいて、前記連結フレームを前記複数のフレームに分割する分割部と、
分割された前記複数のフレームの夫々から前記フレーム長情報及び前記連結タイプ情報を削除する削除部とを含み、
前記分割部は、
（１）連結された複数のフレームの何れか１つが宛先情報を含み、且つ残りの１以上のフレームから前記宛先情報が夫々省略された状態の前記連結フレームを分割する第１の処理と、
（２）連結された複数のフレームの何れか１つが仮想網識別情報を含み、且つ残りの１以上のフレームから前記仮想網識別情報が夫々省略された状態の前記連結フレームを分割する第２の処理と、
（３）連結された複数のフレームの何れか１つが宛先情報及び仮想網識別情報を含み、且つ残りの１以上のフレームから前記宛先情報及び前記仮想網識別情報が夫々省略された状態の前記連結フレームを分割する第３の処理と、
（４）異なる宛先情報を有する複数のフレームが連結された前記連結フレームを分割する第４の処理と
の少なくとも２つから１つを選択して実行し、
前記分割部は、前記連結フレームに含まれる前記第１〜第４の処理の何れかを特定する
ための前記連結タイプ情報に従って、前記第１〜第４の処理の何れかを選択する、
フレーム復元装置。
【請求項９】
前記連結フレームは、前記複数のフレームの何れか１つが宛先情報を含み、且つ残りの１以上のフレームから前記宛先情報が夫々省略された状態を有し、
前記分割部で分割された、前記宛先情報を含まない前記１以上のフレームの夫々に対して、前記複数のフレームの何れか１つに含まれる前記宛先情報を付与する復元部をさらに含む
請求項８に記載のフレーム復元装置。
【請求項１０】
前記連結フレームは、前記複数のフレームの何れか１つが仮想網識別情報を含み、且つ残りの１以上のフレームから前記仮想網識別情報が夫々省略された状態を有し、
前記分割部で分割された、前記仮想網識別情報を含まない前記１以上のフレームの夫々に対して、前記複数のフレームの何れか１つに含まれる前記仮想網識別情報を付与する復元部をさらに含む
請求項８に記載のフレーム復元装置。
【請求項１１】
前記連結フレームは、前記複数のフレームの何れか１つが宛先情報及び仮想網識別情報を含み、且つ残りの１以上のフレームから前記宛先情報及び前記仮想網識別情報が夫々省略された状態を有し、
前記分割部で分割された、前記宛先情報及び前記仮想網識別情報を含まない前記１以上のフレームの夫々に対して、前記複数のフレームの何れか１つに含まれる前記宛先情報及び前記仮想網識別情報を付与する復元部をさらに含む
請求項８に記載のフレーム復元装置。
【請求項１２】
前記複数のフレームの何れか１つは、前記連結フレーム中の先頭に配置されるフレームである
請求項８から１１の何れか１項に記載のフレーム復元装置。
【請求項１３】
前記フレームは、上位プロトコルのタイプを示すタイプ値とフレーム長を示すレングス値との一方が格納されるタイプ／レングスフィールドを含むＭＡＣフレームであり、
前記連結フレームにおいて先頭に位置する先頭ＭＡＣフレームのタイプ／レングスフィールドの値が書き換えられていることを示す書換情報が前記連結フレームに含まれている場合に、前記先頭ＭＡＣフレームに対応するフレーム長情報に基づいて前記先頭ＭＡＣフレームのタイプ／レングスフィールドの値を書き換える再生部
をさらに含む請求項８から１２の何れか１項に記載のフレーム復元装置。
【請求項１４】
送信対象の複数のフレームを格納する記憶部と、
前記記憶部から読み出される前記複数のフレームが直列に連結され、且つ各フレームのフレーム長情報及び前記複数のフレームの連結タイプ情報が付与された連結フレームを生成する生成部と、
前記連結フレームに、当該連結フレームの受信側との同期確立用情報を付与する付与部と、
前記同期確立用情報が付与された前記連結フレームを送出する送出部とを含み、
前記生成部は、
（１）同一の宛先情報を有する複数のフレームの何れか１つが前記宛先情報を含み、且つ残りの１以上のフレームから前記宛先情報が夫々省略された連結フレームを生成する第１の処理と、
（２）同一の仮想網識別情報を有する複数のフレームの何れか１つが前記仮想網識別情報を含み、且つ残りの１以上のフレームから前記仮想網識別情報が夫々省略された連結フレ
ームを生成する第２の処理と、
（３）同一の宛先情報及び同一の仮想網識別情報を有する複数のフレームの何れか１つが前記宛先情報及び前記仮想網識別情報を含み、且つ残りの１以上のフレームから前記宛先情報及び前記仮想網識別情報が夫々省略された連結フレームを生成する第３の処理と、
（４）異なる宛先情報を有する複数のフレームが連結された連結フレームを生成する第４の処理と
の少なくとも２つから１つを選択して実行し、
前記連結フレーム又は前記複数のフレームの夫々に対し、前記生成部で選択される前記第１〜第４の処理の何れかを特定するための前記連結タイプ情報を挿入する挿入部をさらに含む、
通信装置。
【請求項１５】
前記記憶部に格納される前記複数のフレームはアップリンク及びダウンリンクの一方から受信され、
前記送出部は、前記連結フレームを前記アップリンク及び前記ダウンリンクの他方へ向けて送出する
請求項１４に記載の通信装置。
【請求項１６】
記憶部から読み出される送信対象の複数のフレームが連結され、且つ各フレームのフレーム長情報及び前記複数のフレームの連結タイプ情報が付与された連結フレームを生成し、
前記連結フレームに、当該連結フレームの受信側との同期確立用情報を付与することを含み、
前記生成することは、
（１）同一の宛先情報を有する複数のフレームの何れか１つが前記宛先情報を含み、且つ残りの１以上のフレームから前記宛先情報が夫々省略された連結フレームを生成する第１の処理と、
（２）同一の仮想網識別情報を有する複数のフレームの何れか１つが前記仮想網識別情報を含み、且つ残りの１以上のフレームから前記仮想網識別情報が夫々省略された連結フレームを生成する第２の処理と、
（３）同一の宛先情報及び同一の仮想網識別情報を有する複数のフレームの何れか１つが前記宛先情報及び前記仮想網識別情報を含み、且つ残りの１以上のフレームから前記宛先情報及び前記仮想網識別情報が夫々省略された連結フレームを生成する第３の処理と、
（４）異なる宛先情報を有する複数のフレームが連結された連結フレームを生成する第４の処理と
の少なくとも２つから１つを選択して実行し、
前記連結フレーム又は前記複数のフレームの夫々に対し、前記生成することで選択される前記第１〜第４の処理の何れかを特定するための前記連結タイプ情報を挿入することをさらに含む、
フレーム連結方法。
【請求項１７】
複数のフレームが直列に連結され、且つ各フレームのフレーム長情報及び前記複数のフレームの連結タイプ情報が付与された連結フレームを受信し、
前記連結フレームに含まれる各フレームのフレーム長情報及び前記複数のフレームの連結タイプ情報に基づいて、前記連結フレームを前記複数のフレームに分割し、
分割された前記複数のフレームの夫々から前記フレーム長情報及び前記連結タイプ情報を削除することを含み、
前記分割することは、
（１）連結された複数のフレームの何れか１つが宛先情報を含み、且つ残りの１以上のフレームから前記宛先情報が夫々省略された状態の前記連結フレームを分割する第１の処理
と、
（２）連結された複数のフレームの何れか１つが仮想網識別情報を含み、且つ残りの１以上のフレームから前記仮想網識別情報が夫々省略された状態の前記連結フレームを分割する第２の処理と、
（３）連結された複数のフレームの何れか１つが宛先情報及び仮想網識別情報を含み、且つ残りの１以上のフレームから前記宛先情報及び前記仮想網識別情報が夫々省略された状態の前記連結フレームを分割する第３の処理と、
（４）異なる宛先情報を有する複数のフレームが連結された前記連結フレームを分割する第４の処理と
の少なくとも２つから１つを選択して実行し、
前記分割することは、前記連結フレームに含まれる前記第１〜第４の処理の何れかを特定するための前記連結タイプ情報に従って、前記第１〜第４の処理の何れかを選択する、フレーム復元方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーム連結装置に関する。
【背景技術】
【０００２】
近年、“データセンタ”と呼ばれる、複数のサーバやストレージを管理し、インターネットへの接続回線や保守・運用サービスなどを提供する施設がある。【０００３】
データセンタでは、複数のラックに複数のサーバや複数のストレージなどが設置される。各ラックの通信回線上の入口には、“トップオブラックスイッチ”と呼ばれるLayer 2(Ｌ２)スイッチが設置される。各トップオブラックスイッチは、ラックに収容される複数
のサーバ、又は複数のストレージとダウンリンク回線を介して夫々接続される。一方、各トップオブラックスイッチは、インターネットに接続されたルータとアップリンク回線を介して接続される。
【０００４】
ラックに収容された１以上の物理サーバ内には複数の仮想マシン(VM)が配備されており、物理サーバやＶＭの稼働率に比例してデータセンタの運用効率を上げることができる。このため、トップオブラックスイッチには空きポートを作らないことが望ましい。【０００５】
現在主流となっているデータセンタ向けＬ２スイッチではダウンリンク側が1Gbps×44〜48ポートであり、アップリンク側が10Gbps×4ポートである。つまり現状ではトップオブラックのスイッチのポートを全て稼動させると、ダウンリンク側のトラフィック量がアップリンク側のトラフィック量を上回り、ノンブロッキング通信とならない。すなわち、ダウンリンク側の全てのトラフィックをアップリンク側へ送る処理を行うことができず、フレームが廃棄される状況が起こり得る。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１９８９９４号公報
【特許文献２】特開２００５−５１７３２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記した問題を解決するには、例えば、アップリンク側のポート数を増加することが考えられる。しかし、ポート数の増加は、Ｌ２スイッチのコストアップに繋がるため好ましくない。【０００８】
上記問題は、上述したトップオブラックスイッチとして使用されるＬ２スイッチのみならず、中継装置において、上流側の最大トラフィック量が下流側の最大トラフィック量を上回る場合に起こり得る問題である。また、上記のような状況に関係なく、データ伝送効率の良い通信方式の適用は一般に望まれることである。【０００９】
本発明の一態様は、上記問題に鑑みなされたものであり、効率的にフレームを伝送可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の態様の一つは、送信対象の複数のフレームを格納する記憶部と、
前記記憶部から読み出される前記複数のフレームが直列に連結され、且つ各フレームのフレーム長情報が付与された連結フレームを生成する生成部と、
前記連結フレームに、当該連結フレームの受信側との同期確立用情報を付与する付与部とを含む
フレーム連結装置である。
【発明の効果】
【００１１】
本発明の態様の一つによれば、フレームを効率的に伝送することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】データセンタを含むネットワークシステムの構成例を示す。
【図２】Ethernet（登録商標）のMedia Access Control (ＭＡＣ)フレームフォーマットを示す。
【図３】ＭＡＣアドレステーブルの例を示す。
【図４】Ｌ２スイッチの構成例を示す。
【図５】出口（Egress）側のＭＡＣ処理部の構成例を示す。
【図６】“異ＤＡ連結”方式（第４の処理）によって生成される連結フレームのフォーマットを示す。
【図７】図６に示した連結フレームに含まれるLengthフィールドのフォーマットを示す。
【図８】Lengthフィールドに含まれる連結コードと、連結タイプの対応を示す表である。
【図９】Egress側のＭＡＣ処理部の処理フローチャートを示す。
【図１０】入口（Ingress）側のＭＡＣ処理部の構成例を示す。
【図１１】Ingress側の処理フローチャートを示す。
【図１２】“ＤＡ連結”方式（第１の処理）によって生成される連結フレームのフォーマットを示す。
【図１３】“ＶＩＤ連結”方式（第２の処理）によって生成される連結フレームのフォーマットを示す。
【図１４】“ＶＩＤ及びＤＡ連結”方式によって生成される連結フレームのフォーマットを示す。
【図１５】ＭＡＣフレームを連結したときの物理回線の帯域使用率を示す。横軸はフレームサイズ、縦軸は帯域使用率を示している。連結するフレーム数は10個である。
【図１６】ＭＡＣフレームの連結数による物理回線の帯域使用率の変化を示す。横軸は連結数、縦軸は帯域使用率を示している。フレームサイズは６４バイトとしている。
【図１７】第２実施形態における出口側ＭＡＣ処理部の構成例を示す。
【図１８】第２実施形態におけるLengthフィールドのデータ構造例を示す。
【図１９】第２実施形態における出口側ＭＡＣ処理部の動作例を示すフローチャートである。
【図２０】第２実施形態における入口側ＭＡＣ処理部の構成例を示す。
【図２１】第２実施形態における入口側ＭＡＣ処理部の動作例を示すフローチャートである。
【発明の実施の形態】
【００１３】
以下、図面を参照して本発明の実施形態について説明する。実施形態の説明は例示であり、本発明は実施形態の構成に限定されない。
【００１４】
[第１実施形態]
＜ネットワークシステムの構成例＞
図１は、実施形態における、データセンタを含むネットワークシステムの構成例を示す。図１において、データセンタ１０は、複数のサーバやストレージを収容するラックと呼ばれる領域を有している。図１に示す例では、複数のサーバ（サーバマシン）１が収容されたサーバラック１１と、複数のストレージ２として機能するコンピュータ（サーバマシン）が収容されたストレージラック１２とが例示されている。サーバ１やストレージ２として機能するサーバマシン、すなわち物理サーバ内には、複数の仮想マシン(VM)を配備することができる。つまり、１つの仮想マシンは、サーバ（サーバマシン）１またはストレージ２として機能するコンピュータ（サーバマシン）として動作することもできる。
【００１５】
サーバラック１１には、複数のサーバマシン１のそれぞれと通信回線（ダウンリンク）を介して接続されたトップオブラックスイッチとして機能するＬ２スイッチ１３が設置されている。一方、ストレージラック１２には、複数のストレージ２のそれぞれと通信回線（ダウンリンク）を介して接続されたトップオブラックスイッチとして機能するＬ２スイッチ１４が設置されている。
【００１６】
各Ｌ２スイッチ１３，１４は、通信回線（アップリンク）を介してラック間スイッチとして機能するＬ２スイッチ１５と接続されている。Ｌ２スイッチ１５は、“セキュリティアプライアンス”と呼ばれる、ファイヤウォール，ウィルスゲートウェイ，迷惑メールフィルタのようなセキュリティ機能とルータ機能とが統合された専用の通信機器（セキュリティアプライアンス１６）を介してインターネットＩＮに接続されている。
【００１７】
インターネットＩＮに接続されたエンドユーザ（端末装置）１７は、インターネットＩＮを介してデータセンタ１０内におけるサーバ１やストレージ２にアクセスすることができ、所望のネットワークサービスやデータの提供を受けることができる。エンドユーザ１７とサーバ１又はストレージ２とのやりとり（データ送受信）において、Ｌ２スイッチ１３，１４，１５がＭＡＣフレームの中継を行う。
【００１８】
なお、図１に示すＬ２スイッチ１３，１４は、ダウンリンク側に1Gbps×44ポートを有し、アップリンク側に10Gbps×4ポートを有している。Ｌ２スイッチ１５はダウンリンク側に10Gbps×8ポートを有し、アップリンク側に10Gbps×4ポートを有している。
【００１９】
ここで、Ｌ２スイッチ間でデータを送受信する際に使用されるMedia Access Control（ＭＡＣ）フレームについて説明する。図２は、標準のＭＡＣフレームフォーマットを示す。
【００２０】
図２に示すように、ＭＡＣフレームが連続して送出される場合には、ＭＡＣフレーム間には、Inter Frame Gap（ＩＦＧ）と呼ばれる１２バイトのインターバルが設けられる。
【００２１】
ＭＡＣフレームの先頭から８バイトの領域（フィールド）は、プリアンブル/start frame delimiter（ＳＦＤ）と呼ばれる信号が格納される。プリアンブル/ＳＦＤは、ＭＡＣ伝送における同期確立時にＭＡＣフレームの先頭を検出するために使用される。プリアンブルは、ビット列“10101010”の信号が７バイト分連続した信号である。また、ＳＦＤは、ビット列“10101011”の１バイト信号である。
【００２２】
プリアンブル/ＳＦＤの次には、宛先アドレス（ＤＡ）フィールド、送信元アドレス（ＳＡ）フィールドとして利用される、それぞれ６バイトのフィールドが設けられる。ＤＡフィールドには、ＭＡＣフレームの宛先アドレスが格納される。ＳＡフィールドには、送信元のＭＡＣアドレスが格納される。
【００２３】
ＳＡフィールドの次には、タイプ/レングス（Type/Length）フィールド（２バイト）が設けられる。タイプ/レングスフィールドの２バイトが1500以下の値を取るとき、タイプ/レングスフィールドの値はユーザデータ長(Length)を表す。これに対し、タイプ/レングスフィールドの２バイトが1536以上の値を取るとき、タイプ/レングスフィールドの値は上位プロトコルのプロトコルタイプを表す。タイプ（Type）により表される主な値（プロトコルタイプ）としては0x0800(IP)、0x0806(ARP)、0x8100(802.1Q Tagged VLAN)などがある。
【００２４】
タイプ/レングスフィールドの次のデータ部（データフィールド）にはＭＡＣの上位層のユーザデータが格納される。データ部の長さは46〜1500バイトである。データ部の長さが４６バイトに満たない場合はパディング（PAD）を詰めて４６バイトになるように調整される。
【００２５】
Frame Check Sequence (ＦＥＣ)フィールド（４バイト）には、ＭＡＣフレームのプリアンブルを除いた部分についてCyclic Redundancy Check（ＣＲＣ：巡回冗長検査）３２を計算した値が格納される。ＭＡＣフレームの送信時にＦＣＳが付加され、受信側でもＦＣＳの計算が行われ、値が一致するかどうかでビット誤りが検出される。
【００２６】
次に、Ｌ２スイッチ間でのＭＡＣフレームの送受信に際して実行される、MAC learning（ＭＡＣアドレス学習）及びforwarding（ＭＡＣフォワーディング）、flooding（フラッディング）動作について説明する。
【００２７】
ＭＡＣフレームを制御するＭＡＣデバイスは、受信信号中のプリアンブル及びＳＦＤを監視し、プリアンブル及びＳＦＤを検出すると、このプリアンブル及びＳＦＤを含むＭＡＣフレームを検出する。ＭＡＣデバイスは、検出したＭＡＣフレームのＦＣＳチェック（ＣＲＣチェック）を行う。
【００２８】
次に、ＭＡＣデバイスは、ＭＡＣフレームが入ってきたポート番号と送信元ＭＡＣアドレスを検出し、そのポートに送信元ＭＡＣアドレスが存在していることを学習し、ＭＡＣアドレステーブルに登録する（ＭＡＣアドレス学習）。
【００２９】
ＭＡＣデバイスは、既に学習によって構築されたＭＡＣアドレステーブルからＭＡＣフレームの宛先ポートを見つける。宛先ポートが見つかった場合には、ＭＡＣデバイスは、ＭＡＣフレームを宛先ポートから送出する（ＭＡＣフォワーディング）。これに対し、宛先ポートが見つからなかった場合には、ＭＡＣデバイスは、ＭＡＣフレームが存在するネットワーク（全てのポート）へＭＡＣフレームを送信する(フラッディング)。
【００３０】
また、ＭＡＣアドレスを持つ機器（デバイス）が交換される場合、その機器のＭＡＣアドレスが変更される（ＭＡＣアドレスは機器に固有のアドレスである）。従って、機器の交換に際してＭＡＣアドレステーブルが更新される。ＭＡＣアドレステーブルの更新に際して、一定期間が経過したＭＡＣテーブル上の情報は削除される。このような処理は、エージングと呼ばれる。
【００３１】
図３にＭＡＣアドレステーブルの例を示す。図３において、ＭＡＣアドレスは、簡素化して１文字で表現されている。図３に示す例では、ポート番号１に対してＭＡＣアドレスＡの機器が存在していることになる。この場合、宛先Ａのフレームはポート１に送信される。上述したＭＡＣアドレス学習によって、新しく学習されたＭＡＣアドレスとポート番号との組み合わせがＭＡＣアドレステーブルに追記される。宛先ＭＡＣアドレスがＭＡＣアドレステーブル上に存在しない場合には、上述したように、ＭＡＣフレームは、同一ネットワーク上の全ポートに送信される。
【００３２】
図１に示したネットワークシステムにおけるデータセンタにおいて、サーバ１やストレージ２の稼動率を上げることが所望される。この場合、トップオブラックスイッチとして機能するＬ２スイッチ１３，１４における、ダウンリンク側及びアップリンク側の全てのポートを稼働させることが考えられる。
【００３３】
しかしながら、全てのポートが稼働状態となる場合には、各Ｌ２スイッチ１３，１４は、ダウンリンク側から流入する４４Ｇｂｐｓのデータ（ＭＡＣフレーム）を、アップリンク側に４０Ｇｂｐｓで送出する状態となる。すなわち、データ中継がノンブロッキングで行われない。
【００３４】
このため、各Ｌ２スイッチ１３，１４に対し、１０Gbpsのポートをアップリンク側に追加することが考えられる。しかし、ポートの追加はコストアップを招来するため、容易に実施できない。従って、ＭＡＣフレームが転送されるネットワーク、例えばEthernet（登録商標）の伝送効率を向上させることが考えられる。
【００３５】
しかしながら、現状におけるEthernet（登録商標）の仕様、すなわち、ＭＡＣフレーム転送に係るプロトコルでは、送信されるＭＡＣフレーム毎にインターフレームギャップ(ＩＦＧ)が１２バイト、さらにプリアンブル及びＳＦＤが８バイト挿入される。これらのＩＦＧ，プリアンブル及びＳＦＤが、実際のＭＡＣフレーム（ＤＡ，ＳＡ，Type/Length, 及びデータ部）を伝送するために使用すべき帯域を消費している。
【００３６】
従って、６４バイトのＭＡＣフレームを送信する場合、ＭＡＣフレームの物理帯域に対する送信効率は64/(64+12+8)≒0.76である。従来のEthernet（登録商標）方式（ＭＡＣフレームフォーマット）に従っている限り、この最大効率からは逃れられない。
【００３７】
そこで、実施形態では、標準のＭＡＣフレームフォーマットに改変を加える一方で、複数のＭＡＣフレームを結合（コンカチネーション）することで、一部のＭＡＣフレームに係るプリアンブル及びＳＦＤの省略を可能として、ＭＡＣフレームの伝送効率を高める方法について説明する。
【００３８】
＜Ｌ２スイッチの構成例＞
図４は、Ｌ２スイッチの構成例を示す。図４において、Ｌ２スイッチ２０は、図１に示したＬ２スイッチ１３，１４，１５として適用可能なものである。Ｌ２スイッチ２０は、Central Processing Unit（ＣＰＵ）２１と、ＳＤＲＡＭ２２と、フラッシュメモリ（Flash MEM)２３とを備えている。
【００３９】
また、Ｌ２スイッチ２０は、ＣＰＵ２１，ＳＤＲＡＭ２２，フラッシュメモリ２３とバスＢを介して接続されたＭＡＣスイッチ２４と、ＭＡＣスイッチ２４に接続された、複数のＰＨＹチップ（ＰＨＹデバイス）２５及びＭＡＣチップ（ＭＡＣデバイス）２６の組とを備えている。複数のＰＨＹチップ２５及びＭＡＣチップ２６の組は、ダウンリンク側とアップリンク側とに分かれており、それぞれ１以上のポートを収容することができる。さらに、各ＭＡＣチップ２６は、バスＢを介してＣＰＵ２１に接続されている。
【００４０】
ＣＰＵ２１は、フラッシュメモリ２３に格納されたオペレーティングシステム（ＯＳ）やＭＡＣチップ２６制御用のプログラムのような各種のプログラムを実行することによって、Ｌ２スイッチ２０全体の動作を制御する。例えば、ＣＰＵ２１は、特にＭＡＣフレーム中継時におけるＭＡＣチップの動作（ＭＡＣコンカチネーション処理（後述））を制御する。ＳＤＲＡＭ２２は、ＣＰＵ２１の作業領域として使用される。フラッシュメモリ２３は、Ｌ２スイッチの起動処理に使用されるブートメモリとして機能するとともに、ＯＳ等の各種プログラム及びプログラムの実行時に使用されるデータを格納している。
【００４１】
ＰＨＹチップ２５は、ＯＳＩ参照モデルにおけるレイヤ１（物理層）に係る処理を司る。ＭＡＣチップ２６は、ＭＡＣ層に係る処理を司る。ＭＡＣスイッチ２４は、各ＭＡＣチップ２６から入力されるＭＡＣフレームを、その宛先に応じたＭＡＣチップ２６へ転送する処理（スイッチング）を行う。このスイッチングに関して、上述したＭＡＣアドレステーブルを使用することができる。
【００４２】
＜ＭＡＣコンカチネーション処理＞
次に、図４に示したＭＡＣチップ２６で実行されるＭＡＣコンカチネーション処理について説明する。ＭＡＣコンカチネーション処理にあたり、ＣＰＵ２１は、ＭＡＣチップ２６に対して、使用する連結方式や連結するフレームサイズなどの指示を出すことができる。
【００４３】
ＭＡＣチップ２６は、出口（Egress）側のＭＡＣ処理部３０（図５）と、出口側（Ingress）側のＭＡＣ処理部４０（図１０）とを備えている。出口側のＭＡＣ処理部３０は、ＭＡＣフレームの送信方向（ＭＡＣ→ＰＨＹ）に流れるＭＡＣフレームに係る処理を行う。これに対し、入口側のＭＡＣ処理部４０は、ＭＡＣフレームの受信方向（ＰＨＹ→ＭＡＣ）に流れるＭＡＣフレームに係る処理を行う。
【００４４】
＜＜出口側のＭＡＣ処理部＞＞
図５は、出口側のＭＡＣ処理部の構成例を示す。出口側のＭＡＣ処理部３０は複数のＭＡＣフレームを連結し、ＭＡＣフレームコンカチネーションを行う。
【００４５】
出口側のＭＡＣ処理部３０は、ＦＣＳチェック部３１と、フレーム長チェック部３２と、フレーム長挿入部３３と、連結タイプ選択部３４（以下、選択部３４）と、連結タイプ挿入部３５（以下、タイプ挿入部３５）と、重複バイト削除部３６（以下、削除部３６）と、コンカチネーションフレーム生成部３７（以下、生成部３７）と、ＦＣＳ挿入部３８とを備えている。
【００４６】
タイプ挿入部３５は、ＤＡ連結タイプ挿入部３５Ａと、ＶＩＤ連結タイプ挿入部３５Ｂと、ＶＩＤ及びＤＡ連結タイプ挿入部３５Ｃと、異ＤＡ連結タイプ挿入部３５Ｄとを含んでいる。また、タイプ挿入部３５Ａ〜３５Ｄと削除部３６との間には、管理テーブルＴ１〜Ｔ４が設けられている。管理テーブルＴ１〜Ｔ４は、記憶部の例示である。
【００４７】
ＦＣＳチェック部３１には、ＭＡＣスイッチ２４から送出されるＭＡＣフレームが入力される。ＦＣＳチェック部３１は、ＭＡＣフレームのプリアンブル及びＳＦＤを検出することによってＭＡＣフレームを検出し、検出したＭＡＣフレームのＦＣＳをチェックする。
【００４８】
フレーム長チェック部３２は、ＭＡＣフレームのフレーム長（ＤＡ，ＳＡ，Type/Length，データ部，及びＦＣＳの長さ）をチェック（算出）する。
【００４９】
フレーム長挿入部３３は、ＭＡＣフレームに対し、算出したフレーム長（“フレーム長ビット列”と呼ぶ）を挿入する。選択部３４は、ＣＰＵ２１からの指示（連結方式の指定）に基づいて、ＭＡＣフレームの連結方式（連結タイプ）を選択し、連結方式に応じたタイプ挿入部３５Ａ〜３５Ｄの何れかへＭＡＣフレームを送る。
【００５０】
ここに連結方式（連結タイプ）は、“ＤＡ連結”，“V-LAN ID（ＶＩＤ）連結”，“ＶＩＤ及びＤＡ連結”，“異ＤＡ連結”の４つのタイプが例示されている（各タイプの説明は後述）。
【００５１】
各タイプ挿入部３５Ａ〜３５Ｄは、選択された連結方式（連結タイプ）を示すデータ（“連結タイプビット列”と呼ぶ）をＭＡＣフレームに挿入する。各タイプ挿入部３５Ａ〜３５Ｄは、ＭＡＣフレームを一時的に格納する管理テーブル（バッファ）を夫々有している。連結タイプバイトが挿入されたＭＡＣフレームは、対応する管理テーブルＴ１〜Ｔ４に一時的に格納される。
【００５２】
削除部３６は、生成部３７からの要求に応じて、連結（コンカチネーション）対象の複数のＭＡＣフレームを管理テーブル（バッファ）Ｔ１〜Ｔ４のいずれかから読み出す。削除部３６は、読み出した複数のＭＡＣフレーム間で重複するバイト（データ、すなわちＤＡ及び／又はＶＩＤ）を削除し、生成部３７に送る。
【００５３】
生成部３７は、ＣＰＵ２１からの制御に基づき、ＣＰＵ２１からの指示に応じたフレームサイズでコンカチネーションフレーム（連結フレーム）を生成する。
【００５４】
ここに、管理テーブルからのＭＡＣフレームの読み出しは、例えば、生成部３７が、各管理テーブルＴ１〜Ｔ４に格納されたＭＡＣフレームの合計サイズ（バッファ格納量）を監視し、バッファ格納量が連結フレームのフレームサイズに応じた量に達した場合に、削除部３６に対し、対応する管理テーブルからのＭＡＣフレームの読み出し指示を与える（連結タイプ：異ＤＡ以外）、或いは生成部が管理テーブルＴ４から直接ＭＡＣフレームを読み出す（連結タイプ：異ＤＡ）ようにしても良い。或いは、所定の周期で、周期的に削除部３６又は生成部３７が、管理テーブルＴ１〜Ｔ４中のＭＡＣフレームを読み出すようにしても良い。
【００５５】
ＦＣＳ挿入部３８は、生成部３７で生成された連結フレームに対するＣＲＣ計算を行い、計算結果をＦＣＳとして挿入した後、連結フレームをＰＨＹチップ２５へ向けて送出する。
【００５６】
図６は、連結フレームのフォーマットを示す。図６に示す連結フレームフォーマットは、連結タイプが“異ＤＡ”である場合における連結フレームのフォーマットを示す。この連結フレームは、具体的には以下のようなデータ構造を有する。
【００５７】
第１に、連結される複数のＭＡＣフレームのうち、先頭のＭＡＣフレームのプリアンブル及びＳＦＤを除き、残りのＭＡＣフレームに係るプリアンブル及びＳＦＤが省略されている。
【００５８】
第２に、連結された各ＭＡＣフレームに相当する部分のType/Lengthフィールドの次に、新規フィールドである“長さ（Length）”フィールド（２バイト）が挿入されている（図６において、アスタリスク（＊）が付されたフィールドが“Length”フィールドである）。“Length”フィールドには、上述したフレーム長ビット列と連結タイプビット列とが格納される。
【００５９】
図７は、“Length”フィールドのデータ構造例を示す。図７に示す例では、連結タイプ（連結方式）を示すビット列（連結コードと称する）は、２ビットで表現され、“Length”フィールドの先頭からの２ビット（ビットｂ０，ｂ１）に格納される。一方、フレーム長ビット列は、残りの１４ビット（ビットｂ２〜ｂ１５）で表現される。従って１６３８４バイトのフレーム長まで表現できる。
【００６０】
連結タイプビット列（連結コード：ビットｂ０，ｂ１）は、コンカチネーションの方式（連結方式）を表している。図８は、ビットｂ０及びｂ１で表現される連結コードと、連結コードに対応する連結方式との対応表である。
【００６１】
実施形態で説明される連結方式として、以下の４タイプが用意されている。
（１）異なる宛先アドレス（ＤＡ）を有するＭＡＣフレームを連結する“異ＤＡ連結”方式。
（２）同一のＤＡを有するＭＡＣフレームを連結する“ＤＡ連結”方式。
（３）同一のＶＩＤを有するＭＡＣフレームを連結する“ＶＩＤ連結”方式。
（４）同一のＶＩＤ及びＤＡを有するＭＡＣフレームを連結する“ＶＩＤ及びＤＡ連結”方式。
【００６２】
従って、連結コード“００”（異ＤＡ連結方式）は、異ＤＡ連結タイプ挿入部３５ＤでＭＡＣフレームに挿入され、連結コード“０１”（ＤＡ連結方式）は、ＤＡ連結タイプ挿入部３５ＡでＭＡＣフレームに挿入される。また、連結コード“１０”（ＶＩＤ連結方式）は、ＶＩＤ連結タイプ挿入部３５ＢでＭＡＣフレームに挿入され、連結コード“１１”（ＶＩＤ及びＤＡ連結方式）は、ＶＩＤ及びＤＡ連結タイプ挿入部３５ＣでＭＡＣフレームに挿入される。
【００６３】
図６に示す連結フレームは、連結フレーム中の先頭に位置するＭＡＣフレーム部分のType/Lengthフィールドの直後から、最後尾に位置するＭＡＣフレーム部分のデータ部までの部分を連結フレームのデータ部とみなすことができる。但し、ＦＣＳフィールドの値は、連結フレーム全体を考慮して計算された、新たな値（ＦＣＳ挿入部３８で計算される）が、設定される。
【００６４】
このように、連結フレームは、標準ＭＡＣフレームと同一フォーマットを持つ。従って、標準のＭＡＣフレームに適用されるＭＡＣアドレステーブルと同一のＭＡＣアドレステーブルでの管理が可能である。このことは、連結フレームを汎用のＬ２スイッチに中継させてエンド−トゥ−エンド（End to End）で使うことができることを意味する。
【００６５】
なお、上述した“Length”フィールドのバイト数，連結タイプビット列のビット数（コード），及びフレーム長のビット数は例示であって、連結方式のタイプ数や表現を所望するフィールド長に応じて適宜変更可能である。
【００６６】
＜＜出口側のＭＡＣ処理部の動作例（ＭＡＣフレームコンカチネーション（異ＤＡ連結））＞＞
図９は、出口側のＭＡＣ処理部３０の動作例を示すフローチャートである。図９に示す処理は、ＭＡＣ処理部３０にＭＡＣフレームが入力されることによって開始される。
【００６７】
ステップＳ１では、ＦＣＳチェック部３１が、ＭＡＣフレームを検出し、ＦＣＳチェック（ＣＲＣチェック）を実行する。このとき、ＦＣＳチェックの結果がエラーであるには、フレームが廃棄される（ステップＳ２）。これに対し、ＦＣＳチェックの結果が“ＯＫ”である場合には、ＭＡＣフレームがフレーム長チェック部３２に渡される。
【００６８】
フレーム長チェック部３２は、ＭＡＣフレームのフレーム長をチェック（計測）し（ステップＳ３）、計測したフレーム長を示すフレーム長ビット列とＭＡＣフレームとをフレーム長挿入部３３に渡す。
【００６９】
フレーム長挿入部３３は、ＭＡＣフレームの所定位置（Type/Lengthフィールドとデータ部との間）にフレーム長ビット列を挿入し（ステップＳ４）、ＭＡＣフレームを選択部３４に渡す。
【００７０】
選択部３４は、ＣＰＵ２１からの指示に応じた連結タイプ挿入部３５Ａ〜３５Ｄの何れかにＭＡＣフレームを渡す。すなわち、選択部３４は、指示された連結タイプが“ＤＡ連結”か否かを判定する（ステップＳ５）。
【００７１】
このとき、連結タイプが“ＤＡ連結”であれば、選択部３４は、処理をステップＳ１０に進める。これに対し、連結タイプが“ＤＡ連結”でなければ、選択部３４は、処理をステップＳ６に進める。
【００７２】
ステップＳ６に処理が進んだ場合には、選択部３４は、連結タイプが“ＶＩＤ連結”か否かを判定する。このとき、連結タイプが“ＶＩＤ連結”であれば、選択部３４は、処理をステップＳ１３に進める。これに対し、連結タイプが“ＶＩＤ連結”でなければ、選択部３４は、処理をステップＳ７に進める。
【００７３】
ステップＳ７に処理が進んだ場合には、選択部３４は、連結タイプが“ＶＩＤ及びＤＡ連結”か否かを判定する。このとき、連結タイプが“ＶＩＤ及びＤＡ連結”であれば、選択部３４は、処理をステップＳ１６に進める。これに対し、連結タイプが“ＶＩＤ及びＤＡ連結”でなければ、選択部３４は、処理をステップＳ８に進める。
【００７４】
ステップＳ７からステップＳ８へ処理が進む場合には、“異ＤＡ連結”方式に則った連結フレームの生成が行われる。すなわち、ステップＳ８において、ＭＡＣフレームが選択部３４から異ＤＡ連結タイプ挿入部３５Ｄに渡される。異ＤＡ連結タイプ挿入部３５Ｄは、異ＤＡ連結方式を示すコード“００”（図８）を、ＭＡＣフレーム中の所定位置（連結コード挿入位置）に挿入し、管理テーブル（バッファ）Ｔ４に格納する。
【００７５】
その後、ＣＰＵ２１により指定された適宜のタイミングで、管理テーブルＴ４に格納された複数の連結対象のＭＡＣフレームが読み出され、生成部３７に渡される。生成部３７は、受け取った複数のＭＡＣフレームから、上述した異ＤＡ連結方式に従った連結フレーム（図６）を生成し、ＦＣＳ挿入部３８に渡す。すると、処理がステップＳ９に進む。
【００７６】
ステップＳ９では、ＦＣＳ挿入部３８が、連結フレームに対するＣＲＣ計算を行い、その計算結果をＦＣＳフィールドに格納する。その後、連結フレームは、外線へ出力され、対応するＰＨＹチップ２５（図４）に送られる。なお、ステップＳ１０以降の処理については後述する。
【００７７】
なお、上記した動作例では、生成部３７が連結フレームの先頭に同期確立用情報としてのプリアンブル及びＳＦＤを付与する例を示した。これに対し、生成部３７の後段に、プリアンブル及びＳＦＤを付与する付与部が設けられていても良い。また、連結フレームに対するＳＦＤの付与と、プリアンブルの付与とが、異なる主体（構成要素）によって実施されるようにしても良い。
【００７８】
＜＜入口側のＭＡＣ処理部＞＞
次に、ＭＡＣチップ（ＭＡＣデバイス）２６における入口側のＭＡＣ処理部４０について説明する。図１０は、入口側のＭＡＣ処理部４０の構成例を示す。ＭＡＣ処理部４０は、ＭＡＣフレームコンカチネーションを解除し、連結前の各ＭＡＣフレームを復元する。
【００７９】
図１０において、ＭＡＣ処理部４０は、ＦＣＳチェック部４１と、連結タイプ判定部４２と、連結フレームの分割部４３と、重複バイト復元部４４（以下、復元部）と、フレーム長削除部４５（以下、削除部４５）と、ＳＦＤ挿入部４６と、ＦＣＳ挿入部４７とを備えている。
【００８０】
分割部４３は、“ＤＡ連結”方式に対応するＤＡ分割部４３Ａと、“ＶＩＤ連結”方式に対応するＶＩＤ分割部４３Ｂと、“ＶＩＤ及びＤＡ連結”方式に対応するＤＡ及びＶＩＤ分割部４３Ｃと、“異ＤＡ連結”方式に対応する異ＤＡ分割部４３Ｄとからなる。
【００８１】
ＦＣＳチェック部４１は、ＰＨＹチップ２５（図４）から受信される連結フレームのＦＣＳチェック（ＣＲＣチェック）を行う。
【００８２】
連結タイプ判定部４２は、連結フレームの連結タイプを判定する。連結タイプ判定部４２は、例えば、連結フレームの先頭から最初の“Length”フィールドのオフセット位置を有しており、オフセット位置に基づき、連結タイプを示す連結コード（ビットｂ０及びｂ１）を検出する。
【００８３】
このとき、連結コードが“００（異ＤＡ連結）”であれば、連結タイプ判定部４２は、連結フレームを異ＤＡ分割部４３Ｄに渡す。これに対し、連結コードが“０１（ＤＡ連結）”であれば、連結タイプ判定部４２は、連結フレームをＤＡ分割部４３Ａに渡す。これに対し、連結コードが“１０（ＶＩＤ連結）”であれば、連結タイプ判定部４２は、連結フレームをＶＩＤ分割部４３Ｂに渡す。これに対し、連結コードが“１１（ＶＩＤ及びＤＡ連結）”であれば、連結タイプ判定部４２は、連結フレームをＶＩＤ及びＤＡ分割部４３Ｃに渡す。
【００８４】
分割部４３では、連結タイプに応じた連結フレームの分割処理が行われる。例えば、連結タイプが“異ＤＡ”である場合には、異ＤＡ分割部４３Ｄが、連結フレームを、ＤＡフィールドから次のＤＡフィールドの直前のフィールド（ＦＣＳフィールド）までを単位とする複数の単位ブロックに分割する。
【００８５】
連結フレーム中の先頭に位置するＭＡＣフレームのＤＡフィールドのスタート位置は、標準ＭＡＣフレームのＤＡフィールドのスタート位置と同じであるので、標準ＭＡＣフレームのＤＡフィールドのオフセット位置より求めることができる。
【００８６】
先頭より２番目以降のＭＡＣフレーム部分のＤＡフィールドのスタート位置（連結フレーム上でのオフセット位置）は、直前のＭＡＣフレーム相当部分に含まれる“Length”フィールド内のフレーム長ビット列で表されるフレーム長から割り出される。
【００８７】
連結フレーム中の各ＭＡＣフレーム部分に含まれる“Length”フィールドのフレーム長は、ＭＡＣフレーム部分のフレーム長（ＤＡからＦＣＳまでの長さ）を示す。
【００８８】
従って、例えば、２番目のＭＡＣフレーム部分のＤＡフィールドのスタート位置を求める場合には、先頭のＭＡＣフレーム部分のＤＡフィールドのスタート位置を起点とし、そこから先頭のＭＡＣフレームのフレーム長に対応する部分が、先頭のＭＡＣフレーム部分に含まれる。そして、先頭のＭＡＣフレーム部分に含まれるＦＣＳフィールドの直後が、次の（２番目の）ＭＡＣフレームのＤＡフィールドのスタート位置（オフセット位置）となる。
【００８９】
従って、２番目のＤＡフィールドのオフセット位置と、２番目のＭＡＣフレーム部分の“Length”フィールド（スタート位置は、ＤＡのスタート位置から１６バイト隔たった位置）に格納されたフレーム長とから、３番目のＭＡＣフレーム部分におけるＤＡフィールドのオフセット位置を求めることができる。このようにして、連結フレームに含まれる各ＭＡＣフレームのＤＡフィールドを検出し、各ＤＡフィールドのスタート位置で、連結フレームを分割することができる。
【００９０】
ＤＡ分割部４３Ａ，ＶＩＤ分割部４３Ｂ，ＶＩＤ及びＤＡ分割部４３Ｃは、連結タイプに従って、連結フレームを複数の単位ブロックに分割する（詳細は後述）。
【００９１】
重複バイト復元部４４は、連結タイプに従って、分割部４３Ａ〜４３Ｃから受け取る複数の単位ブロックの夫々に関して、連結処理時に省略されたフィールド（ＤＡ及び／又はＶＩＤフィールド）の復元を行う。
【００９２】
フレーム長削除部４５は、重複バイト復元部４４又は異ＤＡ分割部４３Ｄから受け取る各単位ブロックから“Length”フィールドを削除する。
【００９３】
ＳＦＤ挿入部４６は、フレーム長削除部４５から受け取る各単位ブロックにＳＦＤを挿入する。ＦＣＳ挿入部４７は、ＳＦＤ挿入部４６から受け取る各単位ブロックに関してＣＲＣ３２計算を行い、計算結果をＦＣＳフィールドに挿入する。このようにして、元のＭＡＣフレームが復元される。
【００９４】
その後、各単位ブロックは、各ＭＡＣフレームとして、ＩＦＧのインターバル毎に、プリアンブル（７バイト）に続いて送出される。送出された各ＭＡＣフレームは、ＭＡＣスイッチ２４へ送られる。
【００９５】
＜＜入口側のＭＡＣ処理部の動作例（オリジナルフレームの復元（異ＤＡ連結））＞＞
図１１は、入口側のＭＡＣ処理部４０の動作例を示すフローチャートである。図１１に示す処理は、ＭＡＣ処理部４０に連結フレームが入力されることによって開始される。
【００９６】
ステップＳ００１では、ＦＣＳチェック部４１が、連結フレームを検出し、ＦＣＳチェック（ＣＲＣチェック）を実行する。このとき、ＦＣＳチェックの結果がエラーであるには、フレームが廃棄される（ステップＳ００２）。これに対し、ＦＣＳチェックの結果が“ＯＫ”である場合には、連結フレームが連結タイプ判定部４２に渡される。
【００９７】
連結タイプ判定部４２は、コンカチネーションタイプチェックを行う（ステップＳ００３）。すなわち、連結タイプ判定部４２は、例えば、予め保持している連結フレーム中の最初の“Length”フィールドのオフセット位置に基づき、“Length”フィールドから連結タイプを示すコードを検出し、コードが示す連結タイプを認識する。
【００９８】
そして、連結タイプ判定部４２は、認識した連結タイプに対応する分割部４３Ａ〜４３Ｄの何れかに連結フレームを渡す。すなわち、連結タイプ判定部４２は、連結タイプが“ＤＡ連結”か否かを判定する（ステップＳ００４）。
【００９９】
このとき、連結タイプが“ＤＡ連結”であれば、選択部３４は、処理をステップＳ０１３に進める。これに対し、連結タイプが“ＤＡ連結”でなければ、選択部３４は、処理をステップＳ００５に進める。
【０１００】
ステップＳ００５に処理が進んだ場合には、連結タイプ判定部４２は、連結タイプが“ＶＩＤ連結”か否かを判定する。このとき、連結タイプが“ＶＩＤ連結”であれば、連結タイプ判定部４２は、処理をステップＳ０１９に進める。これに対し、連結タイプが“ＶＩＤ連結”でなければ、連結タイプ判定部４２は、処理をステップＳ００６に進める。
【０１０１】
ステップＳ００６に処理が進んだ場合には、連結タイプ判定部４２は、連結タイプが“ＶＩＤ及びＤＡ連結”か否かを判定する。このとき、連結タイプが“ＶＩＤ及びＤＡ連結”であれば、連結タイプ判定部４２は、処理をステップＳ０２５に進める。これに対し、連結タイプが“ＶＩＤ及びＤＡ連結”でなければ、連結タイプ判定部４２は、処理をステップＳ００７に進める。
【０１０２】
ステップＳ００６からステップＳ００７へ処理が進む場合には、“異ＤＡ連結”方式に則った連結フレームの分割動作が行われる。すなわち、連結フレームが、連結タイプ判定部４２から異ＤＡ分割部４３Ｄに渡される。ステップＳ００７において、異ＤＡ分割部４３Ｄは、連結フレーム中の先頭のＭＡＣフレーム部分の“Length”フィールドのフィールド長をチェックする。
【０１０３】
そして、異ＤＡ分割部４３Ｄは、フィールド長に従って、先頭のＭＡＣフレーム部分からＦＣＳフィールドまでの部分を単位ブロックとして切り離す（分割する）（ステップＳ００８）。
【０１０４】
続いて、異ＤＡ分割部４３Ｄは、連結フレームの残り部分が次のＭＡＣフレーム部分を含むか否かを判定する（ステップＳ００９）。このとき、次のＭＡＣフレーム部分が残っている場合には、処理がステップＳ００７に戻り、残り部分の先頭“Length”フィールドをチェックして、分割位置を決定し、単位ブロックを切り離す（ステップＳ００８）。このようなループ処理は、次のＭＡＣフレーム部分がなくなる（ステップＳ００９のＮＯ判定）まで行われる。
【０１０５】
その後、連結フレームの分割によって作成された複数の単位ブロックがフレーム長削除部４５に渡される。フレーム長削除部４５は、各単位ブロックに含まれる“Length”フィールドを削除する（ステップＳ０１０）。
【０１０６】
フレーム長削除部４５は、各単位ブロックをＳＦＤ挿入部４６に渡す。ＳＦＤ挿入部４６は、各単位ブロックにＳＦＤを挿入する（ステップＳ０１１）。
【０１０７】
その後、ＳＦＤ挿入部４６は、各単位ブロックをＦＣＳ挿入部４７に渡し、ＦＣＳ挿入部４７は、各単位ブロックについてＦＣＳ（ＣＲＣ３２）計算を行い、計算結果をＦＣＳフィールドに格納する（ステップＳ０１２）。
【０１０８】
そして、ＦＣＳ挿入部４７は、各ＭＡＣフレームを、適宜のタイミング（ＩＦＧに従ったタイミング）でプリアンブルに続きＭＡＣスイッチ２４へ向けて送出する。なお、ステップＳ０１３以降の処理については後述する。
【０１０９】
図１におけるデータセンタにおいて、上述したようなＭＡＣフレームコンカチネーションは、各Ｌ２スイッチ１３，１４と、上位のＬ２スイッチ１５とを夫々結ぶアップリンク通信（Ｌ２スイッチ１３，１４→Ｌ２スイッチ１５）及びダウンリンク通信（Ｌ２スイッチ１５→Ｌ２スイッチ１３，１４）について適用することができる。
【０１１０】
上述した連結フレームの生成（ＭＡＣフレームコンカチネーション）処理（出口側（送信側）の処理）において、連結フレームに含まれる各ＭＡＣフレーム部分のフレーム長情報を挿入し、連結方式毎に連結コード挿入、省略可能な重複バイト削除を行い、最大フレーム長以内にフレームサイズを抑えながら連結フレームを生成している。
【０１１１】
一方、入口側（受信側）の処理フローでは、ＭＡＣコンカチネーションされたフレームの復元の為、受信した連結フレームの連結タイプに基づいて連結前の各フレーム（単位ブロック）に分割し、挿入したフレーム長バイトを削除することでオリジナルフレームの復元を実現している。
【０１１２】
したがって、標準ＭＡＣフレームを送受信する通信装置（例えばＬ２スイッチ）に、上記処理を実現する機能を追加することによって、MACコンカチネーションフレーム（連結フレーム）の送受信を可能にすることができる。
【０１１３】
上記した動作例によれば、従来のように、各ＭＡＣフレームに対してＳＦＤが付与されるのではなく、複数のＭＡＣフレームが連結された連結フレームに対して１つだけＳＦＤが付与される。これによって、連結フレームに含まれる２番目以降のＭＡＣフレームについては、ＩＦＧ，プリアンブル及びＳＦＤ（２０バイト）が省略された状態となる。すなわち、ＭＡＣフレーム毎に同期確立用情報であるＳＦＤ及びプリアンブルの８バイトが挿入されることを回避することができる。
【０１１４】
但し、ＭＡＣフレーム毎に“Length”フィールド２バイトが追加される。もっとも、“Length”フィールド２バイトは、少なくともＳＦＤ１バイト及びプリアンブル７バイトに比べて小さいので、標準ＭＡＣフレームフォーマットに比べて単位時間当たりに送信可能なＭＡＣフレーム数を増やす事ができる。従って、ＭＡＣフレームの伝送効率を高めることができる。これによって、データセンタ１０のサーバ１やストレージ２の稼働率を高めることが可能となる。
【０１１５】
＜ＤＡ連結方式に基づくＭＡＣフレームコンカチネーション＞
次に、“ＤＡ連結”方式に基づくＭＡＣフレームコンカチネーションについて説明する。“ＤＡ連結”方式では、同一のＤＡを有するＭＡＣフレームを集めてＭＡＣフレームコンカチネーションが実行される。
【０１１６】
上述した“異ＤＡ連結”方式との差異を中心に説明すると、図５に示す出口側のＭＡＣ処理部３０において、連結タイプ選択部３４は、ＣＰＵ２１からの“ＤＡ連結”方式の実行指示に従って、フレーム長挿入部３３から受け取るＭＡＣフレームをＤＡ連結タイプ挿入部３５Ａに送る。
【０１１７】
ＤＡ連結タイプ挿入部３５Ａは、“ＤＡ連結”を示す連結コード“０１”をＭＡＣフレームの所定位置に挿入し、管理テーブルＴ１に格納する。このとき、管理テーブル（バッファ）Ｔ１として、ＤＡ毎に１以上の管理テーブル（バッファ）Ｔ１、或いは、ＤＡ毎に異なる一時格納領域が用意される。
【０１１８】
削除部３６は、生成部３７からの指示に基づき、或る管理テーブルＴ１から連結フレームサイズに応じた（連結フレームの最大サイズを超えない）複数のＭＡＣフレーム（同一のＤＡを有する）を読み出す。続いて、削除部３６は、読み出した複数のＭＡＣフレームのうち、連結フレームの先頭に位置する予定のＭＡＣフレームのＤＡを残し、２番目以降に位置する予定の各ＭＡＣフレームに含まれるＤＡフィールドを削除する。
【０１１９】
生成部３７は、“ＤＡ連結”方式に従った連結フレームを生成する。図１２は、“ＤＡ連結”方式によって生成される連結フレームのフォーマットを示す。
【０１２０】
“異ＤＡ連結”方式のフォーマットとの相違は、２番目以降に位置するＭＡＣフレーム部分のＤＡフィールドが削除されている点である。したがって、“ＤＡ連結”方式では、“異ＤＡ連結”方式に比べ、削除されるＤＡフィールドのサイズに応じた伝送効率の向上を図ることが可能となる。
【０１２１】
以下、図９を用いて、“ＤＡ連結”方式における出口側のＭＡＣ処理部３０の動作例を説明する。図９のステップＳ５において、連結タイプが“ＤＡ連結”であると判定されると、ステップＳ１０において、連結コード“０１”がＤＡ連結タイプ挿入部３５ＡによってＭＡＣフレームに挿入される。
【０１２２】
その後、ＭＡＣフレームは、ＤＡ毎に仕分けされ（ステップＳ１１）、ＤＡに対応する管理テーブル（バッファ）Ｔ１にて一時格納される。その後、生成部３７からの読み出し指示を受けた削除部３６が、連結フレームサイズに応じた数のＭＡＣフレーム（同一ＤＡを有する）を、管理テーブルＴ１から読み出す。続いて、削除部３６は、連結フレームにおいて２番目以降に配置予定の各ＭＡＣフレームからＤＡフィールドを削除する（ステップＳ１２）。このとき、連結フレームにおいて先頭に配置予定のＭＡＣフレームのＤＡフィールドは削除されない。削除部３６は、複数のＭＡＣフレームを、生成部３７に与える。
【０１２３】
生成部３７は、“ＤＡ連結”方式に従って、図１２に示したフォーマットを有する連結フレームを生成する（ステップＳ８）。その後のステップＳ９（ＦＣＳ挿入）以降の処理は、“異ＤＡ連結”方式と同様である。
【０１２４】
次に、“ＤＡ連結”方式における入口側のＭＡＣ処理部４０について説明する。図１０に示した入口側のＭＡＣ処理部４０において、連結タイプ判定部４２は、連結タイプが“ＤＡ連結”であると判定すると、連結フレームをＤＡ分割部４３Ａに入力する。
【０１２５】
ＤＡ分割部４３Ａによる分割処理は、以下の点で“異ＤＡ連結”方式における異ＤＡ分割部４３Ｄの処理と異なる。“ＤＡ連結”方式では、連結フレームにおける２番目以降の各ＭＡＣフレーム部分には、ＤＡフィールドが含まれていない。
【０１２６】
このため、２番目以降のＭＡＣフレーム部分の“Length”フィールドに格納されたフレーム長は、削除されたＤＡフィールド（６バイト）だけ大きい値が格納されている。
【０１２７】
したがって、ＤＡ分割部４３Ａは、３番目以降のＭＡＣフレーム部分の先頭位置、すなわちＳＡフィールドのスタート位置を求めるにあたっては、直前のＭＡＣフレーム部分の“Length”フィールドのフィールド長から６バイトを減じた値を直前のＭＡＣフレーム部分のフレーム長として、次のＭＡＣフレーム部分のＳＡフィールドのスタート位置を求める。
【０１２８】
もっとも、例えば、ＭＡＣ処理部３０の削除部３６によるＤＡフィールドの削除に応じて、“Length”フィールドのフィールド長から６バイトが減じられる構成が採用されれば、上記処理は不要である。このようなフィールド長の変更処理は、例えば、削除部３６又は生成部３７で実行可能である。
【０１２９】
以下、図１１を用いて、“ＤＡ連結”方式における入口側のＭＡＣ処理部４０の動作例を説明する。図１１に示すステップＳ００４において、連結タイプが“ＤＡ連結”であると判定されると、連結フレームが連結タイプ判定部４２からＤＡ分割部４３Ａに送られる（ステップＳ０１３）。
【０１３０】
ＤＡ分割部４３Ａは、連結フレームにおける先頭のＭＡＣフレーム部分の“Length”フィールド中のフレーム長を検出する（Ｓ０１４）。続いて、ＤＡ分割部４３Ａは、フレーム長に基づいて、先頭のＭＡＣフレームにおけるＦＣＳフィールドの終了位置を特定し、そこでＭＡＣフレーム部分（単位ブロック）を切り離す（ステップＳ０１５）。
【０１３１】
ＤＡ分割部４３Ａは、単位ブロックを復元部４４に渡す。復元部４４は、ＤＡを復元するか否かを、渡された単位ブロックが先頭のＭＡＣフレーム部分であるか否かを以て判定する（ステップＳ０１６）。このとき、単位ブロックが先頭のＭＡＣフレーム部分であれば、処理がステップＳ０１８に進み、次のＭＡＣフレーム部分（連結フレームの残り）があるか否かが判定される。
【０１３２】
この判定は、ＤＡ分割部４３Ａで行われる。したがって、ステップＳ０１４，Ｓ０１５及びＳ０１８の処理は、ＤＡ分割部４３Ａで行われ、ステップＳ０１６，Ｓ０１７の処理は、復元部４４で行われる。このため、両者の処理は、順序がフロー通りでなくても良く、例えば、ステップＳ０１６の処理とステップＳ０１８の処理が並列に実行されるようにしても良い。
【０１３３】
次のＭＡＣフレーム部分がある場合には、処理がステップＳ０１４に戻り、連結フレームの残り部分について、最も先頭側に位置する“Length”フィールドのフレーム長が検出され、このフレーム長に基づいて、分離（切り離し位置）が決定され、単位ブロックの切り離し処理が行われる（ステップＳ０１５）。
【０１３４】
上述したように、２番目以降のＭＡＣフレーム部分からは、ＤＡフィールドが削除されているので、フレーム長からＤＡフィールド長を減じた値が、次のＭＡＣフレーム部分におけるＳＡフィールドのスタート位置（次の単位ブロックの切り離し位置）の決定に使用される。
【０１３５】
２番目以降のＭＡＣフレーム部分（単位ブロック）からは、ＤＡフィールドが削除されているので、復元部４４は、先頭の（１番目の）ＭＡＣフレーム部分（単位ブロック）のＤＡフィールドの値を複製し、２番目以降の単位ブロックに付与する（ステップＳ０１７）。このようにして、単位ブロックにＤＡフィールドが復元される。
【０１３６】
ステップＳ０１４〜Ｓ０１８のループ処理によって、必要に応じてＤＡフィールドが復元された複数の単位ブロックが生成される。複数の単位ブロックの夫々に対し、フレーム長削除部４５が、“Length”フィールドを削除する（ステップＳ０１０）。その後は、“異ＤＡ連結”方式と同様の処理が行われる（ステップＳ０１１，Ｓ０１２）。
【０１３７】
このように“ＤＡ連結”方式においても、標準ＭＡＣフレームとして扱うことが可能な連結フレームを生成することができる。また、“ＤＡ連結”方式では、削除されるＤＡフィールドのサイズに応じて連結フレームに含まれ得るＭＡＣフレームの数を、“異ＤＡ連結”方式に比べて増やすことが可能であり、ＭＡＣフレームの伝送効率を高めることが可能となる。
【０１３８】
＜ＶＩＤ連結方式に基づくＭＡＣフレームコンカチネーション＞
次に、“ＶＩＤ連結”方式に基づくＭＡＣフレームコンカチネーションについて説明する。“ＶＩＤ連結”方式では、同一のＶＩＤ（ＶＬＡＮ  ＩＤ）を有するＭＡＣフレームを集めてＭＡＣフレームコンカチネーションが実行される。
【０１３９】
上述した“異ＤＡ連結”方式との差異を中心に説明すると、図５に示す出口側のＭＡＣ処理部３０において、ＦＣＳチェック部３１，フレーム長チェック部３２，及びフレーム
長挿入部３３による処理は、“異ＤＡ連結”方式と同様である。これに対し、連結タイプ選択部３４は、ＣＰＵ２１からの“ＶＩＤ連結”方式の実行指示に従って、フレーム長挿入部３３から受け取るＭＡＣフレームをＶＩＤ連結タイプ挿入部３５Ｂに送る。
【０１４０】
ＶＩＤ連結タイプ挿入部３５Ｂは、“ＶＩＤ連結”を示す連結コード“１０”をＭＡＣフレームの所定位置に挿入し、管理テーブルＴ２に格納する。このとき、管理テーブル（バッファ）Ｔ２として、ＶＩＤ毎に１以上の管理テーブル（バッファ）Ｔ２、或いは、ＶＩＤ毎に異なる一時格納領域が用意される。
【０１４１】
削除部３６は、生成部３７からの指示に基づき、或る管理テーブル（バッファ）Ｔ２から連結フレームサイズに応じた（連結フレームの最大サイズを超えない）複数のＭＡＣフレーム（同一のＶＩＤを有する）を読み出す。続いて、削除部３６は、読み出した複数のＭＡＣフレームのうち、連結フレームの先頭（１番目）に位置する予定のＭＡＣフレームのＶＬＡＮタグフィールドを残し、２番目以降に位置する予定の各ＭＡＣフレームに含まれるＶＬＡＮタグフィールドを削除する。
【０１４２】
生成部３７は、“ＶＩＤ連結”方式に従った連結フレームを生成する。図１３は、“ＶＩＤ連結”方式によって生成される連結フレームのフォーマットを示す。
【０１４３】
ＶＩＤが格納されるＭＡＣフレームには、ＶＩＤ格納用フィールドとして、ＳＡフィールドとType/Lengthフィールドとの間に、ＶＬＡＮタグフィールド（４バイト）が設けられる。
【０１４４】
図１３に示す連結フレームフォーマットと、“異ＤＡ連結”方式のフォーマット（図６）との相違は、２番目以降に位置する各ＭＡＣフレーム部分のＶＬＡＮタグフィールドが削除されている点である。したがって、“ＶＩＤ連結”方式では、“異ＤＡ連結”方式に比べ、削除されるＶＬＡＮタグフィールドのサイズに応じた伝送効率の向上を図ることが可能となる。
【０１４５】
以下、図９を用いて、“ＶＩＤ連結”方式における出口側のＭＡＣ処理部３０の動作例を説明する。図９のステップＳ６において、連結タイプが“ＶＩＤ連結”であると判定されると、ステップＳ１３において、連結コード“１０”がＶＩＤ連結タイプ挿入部３５ＢによってＭＡＣフレームに挿入される。
【０１４６】
その後、ＭＡＣフレームは、ＶＩＤ毎に仕分けされ（ステップＳ１４）、ＶＩＤに対応する管理テーブル（バッファ）Ｔ２にて一時格納される。その後、生成部３７からの読み出し指示を受けた削除部３６が、連結フレームサイズに応じた数のＭＡＣフレーム（同一ＶＩＤを有する）を、管理テーブル（バッファ）Ｔ２から読み出し、連結フレームにおいて２番目以降に配置予定の各ＭＡＣフレームからＶＬＡＮタグフィールドを削除する（ステップＳ１５）。但し、連結フレームにおいて先頭（１番目）に配置予定のＭＡＣフレームのＶＬＡＮタグフィールドは削除されない。複数のＭＡＣフレームは、生成部３７に与えられる。
【０１４７】
生成部３７は、“ＶＩＤ連結”方式に従って、図１３に示したフォーマットを有する連結フレームを生成する（ステップＳ８）。その後のステップＳ９（ＦＣＳ挿入）以降の処理は、“異ＤＡ連結”方式と同様である。
【０１４８】
次に、“ＶＩＤ連結”方式における入口側のＭＡＣ処理部４０について説明する。図１０に示した入口側のＭＡＣ処理部４０において、連結タイプ判定部４２は、連結タイプが“ＶＩＤ連結”であると判定すると、連結フレームをＶＩＤ分割部４３Ｂに入力する。
【０１４９】
ＶＩＤ分割部４３Ｂによる処理は、以下の点で“異ＤＡ連結”方式における異ＤＡ分割部４３Ｄの処理と異なる。“ＶＩＤ連結”方式では、連結フレームにおける２番目以降の各ＭＡＣフレーム部分には、ＶＬＡＮタグフィールドが含まれていない。
【０１５０】
このため、２番目以降のＭＡＣフレーム部分の“Length”フィールドに格納されたフレーム長は、削除されたＶＬＡＮタグフィールド（４バイト）だけ大きい値が格納されている。
【０１５１】
したがって、ＶＩＤ分割部４３Ｂは、３番目以降のＭＡＣフレーム部分の先頭位置、すなわちＤＡフィールドのスタート位置を求めるにあたっては、直前のＭＡＣフレーム部分の“Length”フィールドのフィールド長から４バイトを減じた値を直前のＭＡＣフレーム部分のフレーム長として、次のＭＡＣフレーム部分のＤＡフィールドのスタート位置を求める。
【０１５２】
もっとも、例えば、ＭＡＣ処理部３０の削除部３６によるＶＬＡＮタグフィールドの削除に応じて、“Length”フィールドのフィールド長から４バイトが減じられる構成が採用されれば、上記処理は不要である。このようなフィールド長の変更処理は、削除部３６又は生成部３７で実行可能である。
【０１５３】
以下、図１１を用いて、“ＶＩＤ連結”方式における入口側のＭＡＣ処理部４０の動作例を説明する。図１１に示すステップＳ００５において、連結タイプが“ＶＩＤ連結”であると判定されると、連結フレームが連結タイプ判定部４２からＶＩＤ分割部４３Ｂに送られる（ステップＳ０１９）。
【０１５４】
ＶＩＤ分割部４３Ｂは、連結フレームにおける先頭の（１番目の）ＭＡＣフレーム部分の“Length”フィールド中のフレーム長を検出する（ステップＳ０２０）。続いてＶＩＤ分割部４３Ｂは、連結フレームにおける先頭のＭＡＣフレームにおけるＦＣＳフィールドの終了位置を特定し、そこでＭＡＣフレーム部分（単位ブロック）を切り離す（ステップＳ０２１）。
【０１５５】
ＶＩＤ分割部４３Ｂは、単位ブロックを復元部４４に渡す。復元部４４は、ＶＩＤを復元するか否かを、渡された単位ブロックが先頭のＭＡＣフレーム部分であるか否かを以て判定する（ステップＳ０２２）。このとき、単位ブロックが先頭のＭＡＣフレーム部分であれば、処理がステップＳ０２４に進み、次のＭＡＣフレーム部分（連結フレームの残り）があるか否かが判定される。
【０１５６】
ステップＳ０２４の判定は、ＶＩＤ分割部４３Ｂで行われる。したがって、ステップＳ０２０，Ｓ０２１及びＳ０２４の処理は、ＶＩＤ分割部４３Ｂで行われ、ステップＳ０２２，Ｓ０２３の処理は、復元部４４で行われる。このため、両者の処理は、順序がフロー通りでなくても良く、例えば、ステップＳ０２２の処理とステップＳ０２４の処理が並列に実行されるようにしても良い。
【０１５７】
次のＭＡＣフレーム部分（連結フレームの残り部分）がある場合には、処理がステップＳ０２０に戻り、連結フレームの残り部分において最も先頭側に位置する“Length”フィールドのフレーム長が検出され、このフレーム長に基づいて、分離（切り離し位置）が決定され、単位ブロックの切り離し処理が行われる（ステップＳ０２１）。
【０１５８】
上述したように、２番目以降のＭＡＣフレーム部分からは、ＶＬＡＮタグフィールドが削除されているので、フレーム長からＶＬＡＮタグフィールド長（４バイト）を減じた値が、次のＭＡＣフレーム部分におけるＤＡフィールドのスタート位置（次の単位ブロックの切り離し位置）の決定に使用される。
【０１５９】
２番目以降のＭＡＣフレーム部分（単位ブロック）からは、ＶＬＡＮタグフィールドが削除されているので、復元部４４は、先頭の（１番目の）ＭＡＣフレーム部分（単位ブロック）のＶＬＡＮタグフィールドの値、すなわちＶＩＤを複製し、２番目以降の単位ブロックに付与する（ステップＳ０２３）。このようにして、単位ブロックにＶＬＡＮタグフィールドが復元される。
【０１６０】
ステップＳ０２０〜Ｓ０２４のループ処理によって、必要に応じてＶＬＡＮタグフィールドが復元された複数の単位ブロックが生成される。複数の単位ブロックの夫々に対し、フレーム長削除部４５が、“Length”フィールドを削除する（ステップＳ０１０）。その後は、“異ＤＡ連結”方式と同様の処理が行われる（ステップＳ０１１，Ｓ０１２）。
【０１６１】
このように“ＶＩＤ連結”方式においても、標準ＭＡＣフレームとして扱うことが可能な連結フレームを生成することができる。また、“ＶＩＤ連結”方式では、削除されるＶＬＡＮタグフィールドのサイズに応じて連結フレームに含まれ得るＭＡＣフレームの数を“異ＤＡ連結”方式に比べて増やすことが可能であり、ＭＡＣフレームの伝送効率を高めることが可能となる。
【０１６２】
＜ＶＩＤ及びＤＡ連結方式に基づくＭＡＣフレームコンカチネーション＞
次に、“ＶＩＤ及びＤＡ連結”方式に基づくＭＡＣフレームコンカチネーションについて説明する。“ＶＩＤ及びＤＡ連結”方式では、同一のＶＩＤ（ＶＬＡＮ  ＩＤ）及び同一のＤＡを有するＭＡＣフレームを集めてＭＡＣフレームコンカチネーションが実行される。
【０１６３】
上述した“異ＤＡ連結”方式との差異を中心に説明すると、図５に示す出口側のＭＡＣ処理部３０において、ＦＣＳチェック部３１，フレーム長チェック部３２，及びフレーム長挿入部３３による処理は、“異ＤＡ連結”方式と同様である。これに対し、連結タイプ選択部３４は、ＣＰＵ２１からの“ＶＩＤ及びＤＡ連結”方式の実行指示に従って、フレーム長挿入部３３から受け取るＭＡＣフレームをＶＩＤ及びＤＡ連結タイプ挿入部３５Ｃに送る。
【０１６４】
ＶＩＤ及びＤＡ連結タイプ挿入部３５Ｃは、“ＶＩＤ及びＤＡ連結”を示す連結コード“１１”をＭＡＣフレームの所定位置に挿入し、管理テーブルＴ３に格納する。このとき、管理テーブル（バッファ）Ｔ３として、ＶＩＤ及びＤＡ毎に１以上の管理テーブル（バッファ）Ｔ３、或いは、ＶＩＤ及びＤＡ毎に異なる一時格納領域が用意される。
【０１６５】
削除部３６は、生成部３７からの指示に基づき、或る管理テーブル（バッファ）Ｔ３から連結フレームサイズに応じた（連結フレームの最大サイズを超えない）複数のＭＡＣフレーム（同一のＶＩＤ及び同一のＤＡを有する）を読み出す。続いて、削除部３６は、読み出した複数のＭＡＣフレームのうち、連結フレームの先頭（１番目）に位置する予定のＭＡＣフレームのＤＡフィールド及びＶＬＡＮタグフィールドを残し、２番目以降に位置する予定の各ＭＡＣフレームに含まれるＤＡフィールド及びＶＬＡＮタグフィールドを削除する。
【０１６６】
生成部３７は、“ＶＩＤ及びＤＡ連結”方式に従った連結フレームを生成する。図１４は、“ＶＩＤ及びＤＡ連結”方式によって生成される連結フレームのフォーマットを示す。
【０１６７】
図１４に示す連結フレームフォーマットと、“ＶＩＤ連結”方式のフォーマット（図１３）との相違は、２番目以降に位置する各ＭＡＣフレーム部分に関して、ＶＬＡＮタグフィールドだけでなくＤＡフィールドも削除されている点である。したがって、“ＶＩＤ及びＤＡ連結”方式では、“異ＤＡ連結”方式や“ＶＩＤ連結”方式に比べ、削除されるＤＡフィールド及びＶＬＡＮタグフィールドのサイズに応じた伝送効率の向上を図ることが可能となる。
【０１６８】
以下、図９を用いて、“ＶＩＤ及びＤＡ連結”方式における出口側のＭＡＣ処理部３０の動作例を説明する。図９のステップＳ７において、連結タイプが“ＶＩＤ及びＤＡ連結”であると判定されると、ステップＳ１６において、連結コード“１１”がＶＩＤ及びＤＡ連結タイプ挿入部３５ＣによってＭＡＣフレームに挿入される。
【０１６９】
その後、ＭＡＣフレームは、ＶＩＤ及びＤＡ毎に仕分けされ（ステップＳ１７）、ＶＩＤ及びＤＡに対応する管理テーブル（バッファ）Ｔ３にて一時格納される。その後、生成部３７からの読み出し指示を受けた削除部３６が、連結フレームサイズに応じた数のＭＡＣフレーム（同一ＶＩＤ及び同一ＤＡを有する）を、管理テーブル（バッファ）Ｔ３から読み出し、連結フレームにおいて２番目以降に配置予定の各ＭＡＣフレームからＤＡフィールド及びＶＬＡＮタグフィールドを削除する（ステップＳ１８）。但し、連結フレームにおいて先頭（１番目）に配置予定のＭＡＣフレームのＤＡフィールド及びＶＬＡＮタグフィールドは削除されない。複数のＭＡＣフレームは、生成部３７に与えられる。
【０１７０】
生成部３７は、“ＶＩＤ及びＤＡ連結”方式に従って、図１４に示したフォーマットを有する連結フレームを生成する（ステップＳ８）。その後のステップＳ９（ＦＣＳ挿入）以降の処理は、“異ＤＡ連結”方式と同様である。
【０１７１】
次に、“ＶＩＤ及びＤＡ連結”方式における入口側のＭＡＣ処理部４０について説明する。図１０に示した入口側のＭＡＣ処理部４０において、連結タイプ判定部４２は、連結タイプが“ＶＩＤ及びＤＡ連結”であると判定すると、連結フレームをＶＩＤ及びＤＡ分割部４３Ｃに入力する。
【０１７２】
ＶＩＤ及びＤＡ分割部４３Ｃによる処理は、以下の点で“異ＤＡ連結”方式における異ＤＡ分割部４３Ｄの処理と異なる。“ＶＩＤ及びＤＡ連結”方式では、連結フレームにおける２番目以降の各ＭＡＣフレーム部分には、ＤＡフィールド及びＶＬＡＮタグフィールドが含まれていない。
【０１７３】
このため、２番目以降のＭＡＣフレーム部分の“Length”フィールドに格納されたフレーム長は、削除されたＤＡフィールド及びＶＬＡＮタグフィールド（１０バイト）だけ大きい値が格納されている。
【０１７４】
したがって、ＶＩＤ及びＤＡ分割部４３Ｃは、３番目以降のＭＡＣフレーム部分の先頭位置、すなわちＳＡフィールドのスタート位置を求めるにあたっては、直前のＭＡＣフレーム部分の“Length”フィールドのフィールド長から１０バイトを減じた値を直前のＭＡＣフレーム部分のフレーム長として、次のＭＡＣフレーム部分のＳＡフィールドのスタート位置を求める。
【０１７５】
もっとも、例えば、ＭＡＣ処理部３０の削除部３６によるＤＡフィールド及びＶＬＡＮタグフィールドの削除に応じて、“Length”フィールドのフィールド長から１０バイトが減じられる構成が採用されれば、上記処理は不要である。このようなフィールド長の変更処理は、削除部３６又は生成部３７で実行可能である。
【０１７６】
以下、図１１を用いて、“ＶＩＤ及びＤＡ連結”方式における入口側のＭＡＣ処理部４０の動作例を説明する。図１１に示すステップＳ００６において、連結タイプが“ＶＩＤ及びＤＡ連結”であると判定されると、連結フレームが連結タイプ判定部４２から分割部４３Ｃに送られる（ステップＳ０２５）。
【０１７７】
分割部４３Ｃは、連結フレームにおける先頭の（１番目の）ＭＡＣフレーム部分の“Length”フィールド中のフレーム長を検出する（ステップＳ０２６）。続いて分割部４３Ｃは、連結フレームにおける先頭のＭＡＣフレームにおけるＦＣＳフィールドの終了位置を特定し、そこでＭＡＣフレーム部分（単位ブロック）を切り離す（ステップＳ０２７）。
【０１７８】
分割部４３Ｃは、単位ブロックを復元部４４に渡す。復元部４４は、ＶＩＤ及びＤＡを復元するか否かを、渡された単位ブロックが先頭のＭＡＣフレーム部分であるか否かを以て判定する（ステップＳ０２８）。このとき、単位ブロックが先頭のＭＡＣフレーム部分であれば、処理がステップＳ０３０に進み、次のＭＡＣフレーム部分（連結フレームの残り）があるか否かが判定される。
【０１７９】
ステップＳ０３０の判定は、分割部４３Ｃで行われる。したがって、ステップＳ０２６，Ｓ０２７及びＳ０３０の処理は、分割部４３Ｃで行われ、ステップＳ０２８，Ｓ０２９の処理は、復元部４４で行われる。このため、両者の処理は、順序がフロー通りでなくても良く、例えば、ステップＳ０２８の処理とステップＳ０３０の処理が並列に実行されるようにしても良い。
【０１８０】
次のＭＡＣフレーム部分（連結フレームの残り部分）がある場合には、処理がステップＳ０２６に戻り、連結フレームの残り部分において最も先頭側に位置する“Length”フィールドのフレーム長が検出され、このフレーム長に基づいて、分離（切り離し位置）が決定され、単位ブロックの切り離し処理が行われる（ステップＳ０２７）。
【０１８１】
上述したように、２番目以降のＭＡＣフレーム部分からは、ＤＡフィールド及びＶＬＡＮタグフィールドが削除されているので、フレーム長からＤＡフィールド長及びＶＬＡＮタグフィールド長（１０バイト）を減じた値が、次のＭＡＣフレーム部分におけるＳＡフィールドのスタート位置（次の単位ブロックの切り離し位置）の決定に使用される。
【０１８２】
２番目以降のＭＡＣフレーム部分（単位ブロック）からは、ＤＡフィールド及びＶＬＡＮタグフィールドが削除されているので、復元部４４は、先頭の（１番目の）ＭＡＣフレーム部分（単位ブロック）のＤＡフィールドの値（宛先ＭＡＣアドレス）及びＶＬＡＮタグフィールドの値（ＶＩＤ）を複製し、２番目以降の単位ブロックに付与する（ステップＳ０２９）。このようにして、単位ブロックにＤＡフィールド及びＶＬＡＮタグフィール
ドが復元される。
【０１８３】
ステップＳ０２６〜Ｓ０３０のループ処理によって、必要に応じてＤＡフィールド及びＶＬＡＮタグフィールドが復元された複数の単位ブロックが生成される。複数の単位ブロックの夫々に対し、フレーム長削除部４５が、“Length”フィールドを削除する（ステップＳ０１０）。その後は、“異ＤＡ連結”方式と同様の処理が行われる（ステップＳ０１１，Ｓ０１２）。
【０１８４】
このように“ＶＩＤ及びＤＡ連結”方式においても、標準ＭＡＣフレームとして扱うことが可能な連結フレームを生成することができる。また、“ＶＩＤ及びＤＡ連結”方式では、削除されるＤＡ及びＶＬＡＮタグフィールドのサイズに応じて連結フレームに含まれ得るＭＡＣフレームの数を“異ＤＡ連結”方式に比べて増やすことが可能であり、伝送効率を高めることが可能となる。
【０１８５】
なお、図４を用いて説明したＬ２スイッチ（中継装置、通信装置）の構成例において、スイッチ２４は、例えば半導体メモリを用いて実現可能である。また、ＰＨＹチップ２５やＭＡＣチップ２６は、Application Specific Integrated Circuit（ＡＳＩＣ）やField Programmable Gate Array（ＦＰＧＡ）のような専用又は汎用の集積回路（ハードウェア）、或いはこれらの組み合わせを用いて実現することができる。
【０１８６】
図５を用いて説明した出口側ＭＡＣ処理部３０、図１０を用いて説明した入口側ＭＡＣ処理部４０の各構成要素は、ＡＳＩＣ，ＦＰＧＡ，或いはこれらの組み合わせによって実現可能である。管理テーブル（バッファ）は、ＭＡＣチップ２６に含まれるストレージ（例えば、半導体メモリ、フラッシュメモリ）の記憶領域上に作成される。
【０１８７】
図４に示す例では、出口側ＭＡＣ処理部３０及び入口側ＭＡＣ処理部４０が１つのＭＡＣチップ２６に搭載された例を示した。出口側ＭＡＣ処理部３０と入口側ＭＡＣ処理部４０とは、異なるチップに実装されていても良い。また、出口側ＭＡＣ処理部３０及び入口側ＭＡＣ処理部４０の構成は例示であり、出口側ＭＡＣ処理部３０及び入口側ＭＡＣ処理部４０は、夫々１以上の集積回路で実現可能である。
【０１８８】
＜実施形態の効果＞
上述した実施形態によれば、以下の効果を得ることが可能である。例えば、６４バイトのＭＡＣフレームを送信する場合、ＭＡＣフレームの物理帯域に対する送信効率は、以下となる。
64/(64+12+8)≒0.76
これに対し、上述した“異ＤＡ連結”方式に基づき６４バイトのＭＡＣフレームを１００個連結した場合には、その送信効率は、以下となる。
[(64+2)×100]/[(64+2)×100+12+8]≒0.99697
従って、送信効率を９９％まで高めることが可能である。
【０１８９】
また、Ｌ２スイッチ１３（１４）が１Gbpsのダウンリンク回線４８本と１０Gbpsのアップリンク回線４本を有すると仮定する。この仮定において、標準ＭＡＣフレームのフレームサイズが６４バイトであるときにおけるダウンリンク側の最大使用帯域は、以下となる。
48×0.76=36.48[Gbps]
一方、標準ＭＡＣフレームのフレームサイズが６４バイトであるときにおけるアップリンク側の最大使用帯域は、以下となる。
40×0.76=30.4[Gbps]
これに対し、上述した“異ＤＡ連結”方式を適用すれば、アップリンク側の最大使用帯域は、以下のようになる。
40×0.99697=39.8788
従って、ＭＡＣフレームコンカチネーションを実施しない場合には、アップリンク回線で1Gbps×48本分の帯域を収容できなかったが、“異ＤＡ連結”方式による連結フレームを生成することで、ダウンリンク回線の帯域を収容することができる。
【０１９０】
また、上述した“ＤＡ連結”方式が適用される場合には、同一ＤＡを有する複数のＭＡＣフレームを束ねられる（連結される）ため、連結フレームにおける先頭の（１番目の）ＭＡＣフレーム部分のみにＤＡフィールドが残された状態となる。
【０１９１】
“異ＤＡ連結”方式を用いて６４バイトのＭＡＣフレームを１００個連結したときのフレームサイズは６６００バイトである。これに対し、“ＤＡ連結”方式を用いて６６００バイトの連結フレームを生成すると、以下のようになる。
(6600-6)/(64+2-6)=109.9
すなわち、ＭＡＣフレームを１０９．９個連結したことになり、“異ＤＡ連結”方式と比較して９．９％の効率向上となる。
【０１９２】
６４バイトのＭＡＣフレームにＶＬＡＮタグが付与されると６８バイトになる。このときの送信効率は、以下のように約７７％である。
68/(68+12+8)≒0.773
これに対し、“ＶＩＤ連結”方式を用いて同一ＶＩＤを有するＭＡＣフレームを１００個束ねる（連結する）と、送信効率は次のようになる。
(68+64×99)/(68+64×99+12+8)≒0.997
このように、送信効率を９９％まで高めることができる。
【０１９３】
さらに、“ＶＩＤ及びＤＡ連結”方式を用いて同一ＤＡ及び同一ＶＩＤを有するＭＡＣフレームを１００個束ねると、以下のように、約９９％まで高めることができる。
[68+(64-6)×99]/[68+(64-6)×99+12+8]≒0.997
図１５は、１０個のＭＡＣフレームを連結した場合における帯域使用率を示す。フレームサイズに応じて使用率は変化するが、従来の連結しない方式に比べて最大約２０％向上していることがわかる。
【０１９４】
図１６は、ＭＡＣフレームの連結数による帯域使用率の変化を示す。図１６において、ＭＡＣフレームのフレームサイズは６４バイトで固定している。従来の連結しない方式(連結数1個)のときに比べて、連結を行うと帯域の使用率が１００％近くまで向上することがわかる。
【０１９５】
＜変形例＞
上述したように、連結フレームは、連結フレームにおける先頭のＭＡＣフレーム部分をなすＤＡ，ＳＡ，（ＶＬＡＮタグ），Type/Lengthのフィールド部分をＭＡＣフレームヘッダとし、Type/Lengthフィールド直後から最後尾のＦＣＳフィールドの直前までの領域をデータ部と考えることで、標準ＭＡＣフレームとして扱うことができる。このとき、先頭のＭＡＣフレーム部分のType/Lengthフィールドには、連結フレームのデータ部のサイズがフレーム長として設定される。
【０１９６】
但し、標準ＭＡＣフレームフォーマットとしては、データ部のサイズ上限は１５００バイトであるので、連結フレームのデータ部サイズが１５００バイト以下である場合に、標準ＭＡＣフレームと同様の取り扱いが可能となる。この場合、例えば、連結フレームのデータ部サイズ上限を１５００バイトとすると、６４バイトのＭＡＣフレームを２２個連結することができる。
（６４＋２）×２２＋１２＋８＝１４７２ｂｙｔｅ
これに対し、ＭＡＣフレームを連結しない場合には、ＭＡＣフレーム１つ当たり８４バイト（６４＋１２＋８）が必要になるので、同一の帯域で送信可能なＭＡＣフレーム数は１７に止まる。従って、連結フレームのデータ部サイズ上限を１５００バイトとする運用下でも、送信効率（伝送効率）及び帯域使用率の向上を図ることができる。
【０１９７】
なお、実施形態では、ＣＰＵ２１及びＭＡＣデバイス２６によって、連結処理や復元処理が行われるようにされているが、ＭＡＣデバイス２６がＣＰＵ２１の機能を含んで、ＭＡＣデバイス２６のみで上述したような連結処理や復元処理が実行されるようにしても良い。
【０１９８】
また、実施形態では、出口側のＭＡＣ処理部３０がフレーム連結装置として機能し、入口側のＭＡＣ処理部４０がフレーム復元装置として機能するＬ２スイッチについて説明した。フレーム連結装置及びフレーム復元装置はスイッチングＨＵＢのような、ＭＡＣフレームの転送制御を行う通信装置についても適用可能である。また、フレーム連結装置及びフレーム復元装置は、Ｌ２スイッチやスイッチングＨＵＢのような中継装置のみならず、ＭＡＣフレームの送受信を行う端末装置に適用（搭載）することも可能である。また、フレーム連結装置及びフレーム復元装置の双方が１つの通信装置（中継装置、端末装置）に搭載されることは必須要件ではない。したがって、フレーム連結装置とフレーム復元装置との一方が通信装置に搭載されていても良い。
【０１９９】
また、実施形態では、連結フレームに含まれる複数のＭＡＣフレーム毎に連結コードが挿入される例について説明したが、連結コードは連結フレームに対して１箇所挿入されていれば良い。従って、例えば、連結コードは、連結フレームの任意のＭＡＣフレーム部分（例えば、先頭のＭＡＣフレーム部分）のLengthフィールドにのみ挿入されるようにしても良い。この場合、例えば、先頭のLengthフィールドのみ２バイトとし、他のＭＡＣフレームにおけるLengthフィールドのサイズを小さくしても良い。
【０２００】
[第２実施形態]
以下、本発明の第２実施形態について説明する。第２実施形態は、第１実施形態と共通の構成を含む。このため、第２実施形態は、主として第１実施形態との相違点について説明し、第１実施形態と共通の構成に関しては、同一の符号を付して説明を省略する。
【０２０１】
上述したように、標準ＭＡＣフレームフォーマットでは、データ部の上限サイズは１５００バイトとなっており、Type/Lengthフィールドで表現可能なフレーム長の上限サイズは１５００[byte]となっている。したがって、１５００バイトを超える連結フレームのサイズ（フレーム長）がType/Lengthフィールドに書き込まれると、標準ＭＡＣ転送プロトコルに則った汎用のＬ２スイッチは、このType/Lengthフィールドの値をフレーム長と認識することができない。
【０２０２】
第２実施形態は、上記した問題を解決するためのフレーム連結装置及びフレーム復元装置について説明する。第２実施形態におけるフレーム連結装置及びフレーム復元装置の夫々は、第１実施形態と同様に、ＭＡＣチップ（ＭＡＣデバイス）２６における出口側ＭＡＣ処理部及び入口側ＭＡＣ処理部として搭載可能である。
【０２０３】
図１７は、第２実施形態における出口側ＭＡＣ処理部の構成例を示す。図１７における出口側ＭＡＣ処理部３０Ａは、以下の点で第１実施形態における出口側ＭＡＣ処理部３０（図５）と異なる。
【０２０４】
すなわち、出口側ＭＡＣ処理部３０Ａでは、生成部３７とＦＣＳ挿入部３８との間に、書換部３９が挿入されている。書換部３９は、生成部３７によって生成される連結フレーム中の、先頭のＭＡＣフレーム部分（以下、先頭フレーム（先頭ＭＡＣフレーム）と称する）に含まれるType/Lengthフィールドの値をチェックする。
【０２０５】
書換部３９は、Type/Lengthフィールドの値が、上位プロトコルのタイプを示す値である場合には、特に処理を行わない。これに対し、Type/Lengthフィールドの値がＭＡＣフレームのサイズ（フレーム長）を示す値である場合には、書換部３９は、先頭フレーム内の上位プロトコルを解析する。解析の結果、上位プロトコルの種別（タイプ）が判明した場合には、書換部３９は、Type/Lengthフィールドの値を、上位プロトコルのタイプを示す値（Type値）に書き換える。
【０２０６】
上位プロトコルの解析は、例えば、連結フレーム中の先頭フレームのデータ部に格納された上位プロトコルヘッダを解析することによって実現することができる。
【０２０７】
このような書換処理によって、連結フレームのフレーム長（フレームサイズ）が先頭フレームのType/Lengthフィールドで表現可能な値（標準ＭＡＣフォーマットでは１５００バイト）を上回る場合でも、連結フレームのType/Lengthフィールドの値は、上位プロトコルのType値として連結フレームの受信側装置で解釈されることになる。
【０２０８】
従って、連結フレームは、連結フレームのサイズがType/Lengthフィールドで表現可能な値を上回る場合でも、正常なＭＡＣフレームとして、受信側の通信装置（例えば、汎用のＬ２スイッチやスイッチングＨＵＢ）で取り扱うことが可能となる。すなわち、汎用のＬ２スイッチやスイッチングＨＵＢを介して宛先へ連結フレームを送信することができる。
【０２０９】
図１８は、第２実施形態における“Length”フィールドのデータ構造例を示す。第１実施形態における“Length”フィールド（図７）と異なり、第３ビット（ビットｂ２）が、連結フレーム中の先頭フレーム（先頭ＭＡＣフレーム）のType/Lengthフィールドの値をType値に書き換えたか否かを示す書換情報として扱われる。
【０２１０】
具体的には、ビットｂ２が“０”であれば、Type値への書き換えが行われていないことを示し、ビットｂ２が“１”であれば、Type値への書き換えが行われたことを示す。
【０２１１】
なお、ビットｂ３〜ｂ１５は、ＭＡＣフレームのフレーム長（フレームサイズ）を示す。ビットｂ３〜ｂ１５は１３ビットであるため、第２実施形態では、８１９２バイトまで、フレームサイズを表現することができる。
【０２１２】
なお、連結フレームの受信側での、連結フレームから複数のＭＡＣフレームを復元する処理において参照されるのは、先頭フレームにおけるLengthフィールドのビットｂ２のみである。このため、２番目以降のＭＡＣフレーム部分に挿入されるLengthフィールドのビットｂ２は実質的に使用されない。このため、先頭フレームを除く２番目以降のＭＡＣフレーム部分の夫々におけるLengthフィールドには、第１実施形態で説明したデータ構造（図７）を適用することもできる。
【０２１３】
図１９は、第２実施形態における出口側ＭＡＣ処理部の動作例を示すフローチャートである。第１実施形態との相違点は、ステップＳ８とステップＳ９との間に、ステップＳ８Ａとして、書換部３９による処理が挿入されていることである。
【０２１４】
ステップＳ８Ａでは、書換部３９が、生成部３７から連結フレームを受け取る。書換部３９は、連結フレーム中の先頭フレームのType/Lengthフィールドの値を参照し、フィールド値がフレーム長（フレームサイズ）とType値のいずれを示すかを判定する。
【０２１５】
このとき、Type/Lengthフィールド値がType値を示す場合には、書換部３９は、特に処理を行わず、連結フレームをＦＣＳ挿入部３８に渡す。これに対し、Type/Lengthフィールド値がフレームサイズを示す場合には、書換部３９は、上位プロトコルタイプの解析を行い、解析結果として得られた上位プロトコルタイプを示すType値で、Type/Lengthフィールド値を書き換える。さらに、書換部３９は、先頭フレーム中のLengthフィールドにおけるビットｂ２の値を“１”にセットする。その後、書換部３９は、連結フレームをＦＣＳ挿入部３８に渡す。
【０２１６】
上記を除く出口側ＭＡＣ処理部３０Ａの構成及び動作は、第１実施形態における出口側ＭＡＣ処理部３０の構成及び動作と同様である。
【０２１７】
図２０は、第２実施形態における入口側ＭＡＣ処理部の構成例を示す。図２０における入口側ＭＡＣ処理部４０Ａは、以下の点で第１実施形態における入口側ＭＡＣ処理部４０（図１０）と異なる。
【０２１８】
すなわち、入口側ＭＡＣ処理部４０Ａでは、ＦＣＳチェック部４１と連結タイプ判定部４２との間に、再生部４８が挿入されている。再生部４８は、ＦＣＳチェック部４１から受け取る連結フレーム中の、Lengthフィールドに含まれるビットｂ２の値をチェックする。
【０２１９】
ビットｂ２が“０”である場合には、先頭フレームに含まれるType/Lengthフィールドの書き換えが行われていない（オリジナルの値がType値である）ものとして、再生部４８は、再生処理を行うことなく連結フレームを連結タイプ判定部４２に渡す。すなわち、再生部４８は連結フレームをスルーする。
【０２２０】
これに対し、ビットｂ２が“１”である場合には、先頭フレームに含まれるType/Lengthフィールドの書き換えが行われている（Length値がType値に書き換えられている）には、再生部４８は再生処理を行う。
【０２２１】
すなわち、再生部４８は、先頭フレームのLengthフィールドに格納されているLength値（フレームサイズ）の値を取得し、取得した値でType/Lengthフィールドの値を書き換える。これによって、Type/Lengthフィールドの値がオリジナルのLength値に戻る。その後、再生部４８は、連結フレームを連結タイプ判定部４２に渡す。
【０２２２】
図２１は、第２実施形態における入口側ＭＡＣ処理部の動作例を示すフローチャートである。第１実施形態との相違点は、ステップＳ００１とステップＳ００３との間に、ステップＳ００２Ａとして、再生部４８によるｂ２チェック及び再生処理が挿入されていることである。
【０２２３】
ステップＳ００２Ａでは、再生部４８は、ＦＣＳチェック部４１から受け取った連結フレーム中の先頭フレームのLengthフィールドのビットｂ２の値（Type/Lengthフィールドの書換有無判定用情報）をチェックし、ビットｂ２が“０”か“１”かを判定する。
【０２２４】
ビットｂ２が“０”であれば、再生部４８は連結フレームを連結タイプ判定部４２に渡す。これに対し、ビットｂ２が“１”であれば、再生部４８は、先頭フレームのType/Lengthフィールドの値を、先頭フレームのLengthフィールドのフレーム長（フレームサイズ）の値に書き換える。その後、再生部４８は、連結フレームを連結タイプ判定部４２に渡す。
【０２２５】
上記を除き、第２実施形態における入口側ＭＡＣ処理部の構成及び動作は、第１実施形態と同様である。
【０２２６】
第２実施形態によれば、第１実施形態で説明した作用効果に加えて、以下の作用効果を得ることができる。すなわち、連結フレームの送信側の通信装置（フレーム連結装置を備える通信装置）では、書換部３９が、連結フレーム中の先頭フレームのType/Lengthフィールドの値がType値とLength値とのいずれを示すかを判定する。Type/Lengthフィールドの値がLength値である場合には、書換部３９がLength値をType値に書き換える。
【０２２７】
これによって、連結フレームのフォーマットが標準ＭＡＣフォーマットに則った状態となるので、連結フレームは、標準ＭＡＣフレーム転送を行う汎用のＬ２スイッチやスイッチングＨＵＢにて、正常なＭＡＣフレームとして取り扱われる。すなわち、連結フレームを汎用のＬ２スイッチやスイッチングＨＵＢ経由で宛先に送ることができる。
【０２２８】
一方、連結フレームの受信側の通信装置（フレーム復元装置を備える通信装置）では、再生部４８が、連結フレームの先頭フレームに含まれるビットｂ２を参照する。Type/Lengthフィールドの値が書き換えられている場合には、再生部４８は、先頭フレームのLengthフィールドのフレーム長の値でType/Lengthフィールドの値を書き換えることによって、Type/Lengthフィールドの値をオリジナルの値に戻す。
これによって、分割部４３（分割部４３Ａ〜４３Ｄのいずれか）で分割される先頭フレーム（単位ブロック）のType/Lengthフィールドの値をオリジナルの値に戻すことができる。
【符号の説明】
【０２２９】
１３，１４，１５・・・Ｌ２スイッチ（通信装置，中継装置）
２１・・・ＣＰＵ
２２・・・ＳＤＲＡＭ
２３・・・フラッシュメモリ
２４・・・ＭＡＣスイッチ
２５・・・ＰＨＹチップ（ＰＨＹデバイス）
２６・・・ＭＡＣチップ（ＭＡＣデバイス）
３１、４１・・・ＦＣＳチェック部
３２・・・フレーム長チェック部
３３・・・フレーム長挿入部
３４・・・連結タイプ選択部
３５・・・連結タイプ挿入部
３６・・・重複バイト削除部
３７・・・連結フレーム生成部
３８，４７・・・ＦＣＳ挿入部
４２・・・連結タイプ判定部
４３・・・分割部
４４・・重複バイト復元部
４５・・・フレーム長削除部
４６・・・ＳＦＤ挿入部
【図１】
0005573955.tif 000002
【図２】
0005573955.tif 000003
【図３】
0005573955.tif 000004
【図４】
0005573955.tif 000005
【図５】
0005573955.tif 000006
【図６】
0005573955.tif 000007
【図７】
0005573955.tif 000008
【図８】
0005573955.tif 000009
【図９】
0005573955.tif 000010
【図１０】
0005573955.tif 000011
【図１１】
0005573955.tif 000012
【図１２】
0005573955.tif 000013
【図１３】
0005573955.tif 000014
【図１４】
0005573955.tif 000015
【図１５】
0005573955.tif 000016
【図１６】
0005573955.tif 000017
【図１７】
0005573955.tif 000018
【図１８】
0005573955.tif 000019
【図１９】
0005573955.tif 000020
【図２０】
0005573955.tif 000021
【図２１】
0005573955.tif 000022