(57)【特許請求の範囲】
【請求項１】
所定値未満のデータ長を有する第１データを送信するための第１ポートと、
所定値以上のデータ長を有する第２データを送信するための第２ポートと、
予備ポートと、
前記第１ポートの送信レート及び前記第２ポートの送信レートが閾値以上か否かを判定する送信レート判定部と、
入力データが前記第１データ又は前記第２データかを判定した判定結果及び前記送信レート判定部による前記送信レートの判定結果に基づき、前記入力データを前記第１ポート、前記第２ポート又は前記予備ポートのいずれかに振分けるデータ振分部と、
前記データ振分部により前記第１データ及び前記第２データが前記予備ポートへ振分けられた場合、前記第２データを分割して前記予備ポートに送信する分割処理部と
を備えたことを特徴とするデータ伝送装置。
【請求項２】
前記データ振分部は、前記第１ポートの送信レートが前記閾値未満の場合、前記第１データを前記第１ポートに振分け、前記第１ポートの送信レートが前記閾値以上の場合、前記第１データを前記第１ポート及び前記予備ポートに振分け、前記第２ポートの送信レートが前記閾値未満の場合、前記第２データを前記第２ポートに振分け、前記第２ポートの送信レートが前記閾値以上の場合、前記第２データを前記第２ポート及び前記予備ポートに振分けることを特徴とする請求項１に記載のデータ伝送装置。
【請求項３】
前記予備ポートは複数存在し、
前記データ振分部は、前記第１ポートの送信レートが閾値以上となった場合、前記第１データを振分けるためのポートとして前記予備ポートの中から１つのポートを選択することを繰り返し、前記第２ポートの送信レートが閾値以上となった場合、前記第２データを振分けるポートとして前記予備ポートの中から１つのポートを選択することを繰り返し、未選択の前記予備ポートがなくなった場合、最後に選択した前記予備ポートに第１データ及び第２データを混在させて送信することを特徴とする請求項１又は請求項２に記載のデータ伝送装置。
【請求項４】
前記第１ポート、前記第２ポート及び前記予備ポートは、１つの論理ポートとして構成されていることを特徴とする請求項１〜３のいずれか一つに記載のデータ伝送装置。
【請求項５】
前記入力データに対して入力された順番に連続番号を付与する番号付与部をさらに備えることを特徴とする請求項１〜４のいずれか一つに記載のデータ伝送装置。
【請求項６】
データ伝送装置及びデータ受信装置を有するデータ伝送システムであって、
前記データ伝送装置は、
所定値未満のデータ長を有する第１データを前記データ受信装置へ送信するための第１ポートと、
所定値以上のデータ長を有する第２データを前記データ受信装置に送信するための第２ポートと、
前記データ受信装置にデータを送信するための予備ポートと、
入力データに対して入力された順番に連続番号を付与する番号付与部と、
前記第１ポートの送信レート及び前記第２ポートの送信レートが閾値以上か否かを判定する送信レート判定部と、
入力データが前記第１データ又は前記第２データかを判定した判定結果及び前記送信レート判定部による前記送信レートの判定結果に基づき、前記入力データを前記第１ポート、前記第２ポート又は前記予備ポートのいずれかに振分けるデータ振分部と、
前記データ振分部により前記第１データ及び前記第２データが前記予備ポートへ振分けられた場合、前記第２データを分割して前記予備ポートに送信する分割処理部とを備え、
前記データ受信装置は、
前記第１ポート、前記第２ポート又は前記予備ポートのいずれか一つ又は複数から前記入力データを受信し、前記連続番号の順番に基づいて前記入力データを処理するデータ処理部を備えた
ことを特徴とするデータ伝送システム。
【請求項７】
入力データが所定値未満のデータ長を有する第１データ又は前記所定値以上のデータ長を有する第２データかを判定し、
前記入力データが前記第１データであれば第１ポートから送信し、
前記入力データが前記第２データであれば第２ポートから送信し、
前記第１ポートの送信レート及び前記第２ポートの送信レートが閾値以上か否かを判定し、
前記送信レートの判定結果に基づき、前記入力データを予備ポートから送信し、
前記第１データ及び前記第２データの双方を前記予備ポートから送信する場合、前記第２データを分割して送信する
ことを特徴とするデータ伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送装置、データ伝送システム及びデータ伝送方法に関する。
【背景技術】
【０００２】
近年、様々なネットワークサービスの充実により、ネットワーク上を流れるデータ量が急激に増大してきている。そこで、ネットワークの帯域幅を向上させるため、複数の物理回線を１つの論理的な回線として利用する技術であるＬＡＧ（Link  AGgregation）が、IEEE802.3adとして標準化されている。
【０００３】
一方、データ伝送装置においては通信速度や処理速度などの高速化が進んでいる。このような高速化により、データ伝送装置は、大きなデータを迅速に処理することが可能となってきている。そこで、ネットワーク上に流れる大量のデータを迅速に処理するため、データ伝送装置においては、１つのフレームで大きなデータを扱うロングフレームへの対応が求められている。特に、９０００バイトを超えるフレームは、ジャンボフレームと呼ばれることもある。
【０００４】
ショートフレームとロングフレームとを１つのネットワークで用いる場合、ロングフレームがネットワーク内に流入すると、そのロングフレームが処理される間、ショートフレームは処理待ち状態となる。このため、ショートフレームに対する処理が遅延し、遅延ゆらぎが発生するおそれがある。遅延ゆらぎが発生すると、例えば、ショートフレームを処理するコンピュータへのショートフレームの到達時刻がまちまちになってしまい、コンピュータにおけるショートフレームの受信順が入れ替わることが考えられる。このように受信したショートフレームの順番が入れ替わっている場合、それらを受信したコンピュータが処理を正確に行えないおそれがある。例えば、ＩＰ電話はショートフレームを用い且つ低遅延が求められるサービスである。そして、ＩＰ電話などのサービスとジャンボフレームを扱うサービスとを１つのネットワーク内で共存させる場合に、ジャンボフレームによりＩＰ電話のフレームに遅延ゆらぎが発生してしまう場合がある。この場合、ＩＰ電話のサービスが遅延してしまう危険がある。
【０００５】
このようなロングフレームに対する技術として、送信元でロングフレームを一定サイズに分割するフラグメントを行い、受信側でロングフレームを再構築する従来技術がある。また、ＬＡＧを構成し、出力パケットをパケットサイズに応じてＬＡＧを構成する物理回線に振分け、ショートパケットの読み出しの比率を多くする従来技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３０３５１６号公報
【特許文献２】特開平０９−３１２６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ロングフレームをフラグメントする従来技術では、分割したフレーム毎の情報の付加やフレーム間ギャップの増加によりオーバヘッドが多くなってしまう。これによりトラフィックレートが大きくなり、余分に帯域を消費し、且つデータ処理も遅くなってしまう。また、パケットサイズに応じてＬＡＧにフレームを振分ける従来技術では、ショートフレームとロングフレームとが混在する場合があり、ショートフレームに遅延ゆらぎが発生してしまう。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、帯域の余分な消費を軽減しつつショートフレームの遅延を抑えるデータ伝送装置、データ伝送システム及びデータ伝送方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示するデータ伝送装置、データ伝送システム及びデータ伝送方法は、一つの態様において、第１ポートは、所定値未満のデータ長を有する第１データを送信する。第２ポートは、所定値以上のデータ長を有する第２データを送信する。また、予備ポートを有する。送信レート判定部は、前記第１ポートの送信レート及び前記第２ポートの送信レートが閾値以上か否かを判定する。データ振分部は、入力データが第１データ又は第２データかを判定した判定結果及び送信レート判定部による送信レートの判定結果に基づき、入力データを第１ポート、第２ポート又は予備ポートのいずれかに振分ける。分割処理部は、データ振分部により第１データ及び第２データが予備ポートへ振分けられた場合、第２データを分割して予備ポートに送信する。
【発明の効果】
【００１０】
本願の開示するデータ伝送装置、データ伝送システム及びデータ伝送方法の一つの態様によれば、帯域の余分な消費を軽減しつつショートフレームの遅延を抑えることができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るデータ伝送装置のブロック図である。
【図２】図２は、ＬＡＧポートテーブルの一例の図である。
【図３】図３は、送信レートテーブルの一例の図である。
【図４】図４は、ＬＡＧ振分テーブルの一例の図である。
【図５】図５は、ＭＡＣ学習テーブルの一例の図である。
【図６】図６は、実施例１に係るデータ伝送装置における送信レートが上限値を上回った場合の処理のフローチャートである。
【図７】図７は、実施例１に係るデータ伝送装置における送信レートが上限値を上回った場合のシーケンス図である。
【図８】図８は、実施例１に係るデータ伝送装置における送信レートが下限値を下回った場合の処理のフローチャートである。
【図９】図９は、実施例１に係るデータ伝送装置における送信レートが下限値を下回った場合のシーケンス図である。
【図１０】図１０は、実施例１に係るデータ伝送装置におけるショートフレーム送信を実現するためのハードウェア構成図である。
【図１１】図１１は、実施例２に係るデータ伝送装置のブロック図である。
【図１２】図１２は、実施例２に係るＬＡＧ振分テーブルの一例の図である。
【図１３】図１３は、実施例２における振り分け先の拡張の処理のフローチャートである。
【図１４】図１４は、実施例２における振り分け先の縮退の処理のフローチャートである。
【図１５】図１５は、使用していない予備ポートのリンク状態が変化した場合のＬＡＧ振分テーブルの遷移を表す図である。
【図１６】図１６は、使用している予備ポートのリンク状態が変化した場合で、且つ未使用の予備ポートが残っている場合のＬＡＧ振分テーブルの遷移を表す図である。
【図１７】図１７は、使用している予備ポートのリンク状態が変化した場合で、且つ振分け可能な予備ポートが残っていない場合のＬＡＧ振分テーブルの遷移を表す図である。
【図１８】図１８は、実施例２におけるリンクダウン検出時の処理のフローチャートである。
【図１９】図１９は、実施例２におけるリンクアップ検出時の処理のフローチャートである。
【図２０】図２０は、実施例３に係るデータ伝送装置のブロック図である。
【図２１】図２１は、シーケンス番号を付与されたフレームのフォーマットの一例の図である。
【図２２】図２２は、実施例３に係るデータ伝送システムのシステム構成図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するデータ伝送装置、データ伝送システム及びデータ伝送方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するデータ伝送装置、データ伝送システム及びデータ伝送方法が限定されるものではない。
【実施例１】
【００１３】
図１は、実施例１に係るデータ伝送装置のブロック図である。図１に示すように、本実施例に係るデータ伝送装置１は、入力ＩＦ（Inter  Face）１１、１２、受信バッファ２１、２２、ＭＡＣ（Media  Access  Control）学習処理部３１、３２を有している。また、データ伝送装置１は、ＬＡＧ振分部４０、スイッチ部５０、フラグメント処理部６１〜６３、送信レートチェック部７１〜７３、送信バッファ８１〜８３、出力ＩＦ９１〜９３及び回線１０１〜１０３を有している。さらに、データ伝送装置１は、ＬＡＧポート管理部１１１、レート管理部１１２、記憶部１１３、ＭＡＣ学習テーブル１２１及びＬＡＧ振分テーブル１２２を有している。データ伝送装置１は、データの送受信をフレーム単位で行うものとして説明する。以下では、データ伝送装置１が送受信するフレーム単位のデータを単に「フレーム」と呼ぶ場合がある。また、図１では、実線の矢印がフレームの流れを表しており、点線の矢印が制御情報の流れを表している。
【００１４】
出力ＩＦ９１〜９３は、それぞれ回線１０１〜１０３に接続する送信ポートである。本実施例では、説明の便宜上、データ伝送装置１は出力ＩＦ９１〜３という３つの送信ポートのみを有するものとする。また、出力ＩＦ９１〜９３及び回線１０１〜１０３は、１つの論理的な回線として構成されている。以下では、複数の送信ポートをまとめて構成される１つの論理的な回線を「ＬＡＧ」と呼ぶ場合がある。ただし、実際には、データ伝送装置１のポート数及びＬＡＧの数は特に限定されず、また、ＬＡＧを構成しない送信ポートが存在してもよい。以下では、出力ＩＦ９１〜９３を、単に「ポート」と呼ぶ場合がある。
【００１５】
記憶部１１３は、ＬＡＧポートテーブル１３１及び送信レートテーブル１３２を記憶している。
【００１６】
ＬＡＧポートテーブル１３１は、情報としてメモリ上に格納されているテーブルである。ＬＡＧポートテーブル１３１は、例えば、図２に示すテーブル２００のように各ポートに対応するポートの使用種別及び使用種別を特定するための情報を有している。図２は、ＬＡＧポートテーブルの一例の図である。
【００１７】
ここで、テーブル２００について詳細に説明する。行２０１がポートの識別情報を表している。また、行２０２が、各ポートがどの型のフレームの送信に用いられるポートかを表す使用種別を表している。ここで、本実施例では、フレームの型としてショートフレーム及びロングフレームがある。テーブル２００では、「ｓｈｏｒｔ」がショートフレームの送信に用いるポート（以下では、「ショートフレーム用ポート」という。）であることを表している。また、「ｌｏｎｇ」がロングフレームの送信に用いるポート（以下では、「ロングフレーム用ポート」という。）であることを表している。以下では、ショートフレーム用ポート及びロングフレーム用ポートをまとめて「通常ポート」と呼ぶ場合がある。また、「ｒｅｓｅｒｖｅ」は、予備ポートであることを表しており、送信するフレームの型は決まっていない。本実施例では、ショートフレーム用ポート及びロングフレーム用ポートとして１回線ずつ用い、残りの回線を予備ポートとする。そして、行２０３がショートフレーム及びロングフレームの定義を表す情報である。すなわち、本実施例では、６４ｂｙｔｅ未満のフレームをショートフレームとしている。また、６４ｂｙｔｅ以上のフレームをロングフレームとしている。ＬＡＧポートテーブル１３１の情報は予め設定されている。ただし、操作者は、各ポートの使用種別を適当に設定することができ、また、ショートフレームとロングフレームの定義を適当な値に設定することができる。
【００１８】
ここで、本実施例では、ポートＸは、出力ＩＦ９１を表している。また、ポートＹは、出力ＩＦ９２を表している。また、ポートＺは、出力ＩＦ９３を表している。そして、出力ＩＦ９１は、ショートフレーム用ポートとして設定されている。また、出力ＦＩ９２は、予備ポートとして設定されている。また、出力ＩＦ９３は、ロングフレーム用ポートとして設定されている。
【００１９】
送信レートテーブル１３２は、情報としてメモリ上に格納されているテーブルである。例えば、図３に示すテーブル３００のように各ポートに対応するポートの使用種別、並びに各ポートの送信レートの上限値及び下限値の情報を有している。図３は、送信レートテーブルの一例の図である。
【００２０】
ここで、テーブル３００について詳細に説明する。行３０１がポートの識別情報を表している。また、行３０２が、各ポートの使用種別を表している。そして、行３０３が各ポートの送信レートの上限値を表している。また、行３０４が各ポートの送信レートの下限値を表している。送信レートテーブル１３２の情報は予め設定されている。ただし、操作者は、各ポートの上限値及び下限値を適当に設定することができる。
【００２１】
ＬＡＧポート管理部１１１は、ＬＡＧ設定時、ファームウェア起動時、操作者による設定変更時に、ＬＡＧポートテーブル１３１の設定値を読み出し、ＬＡＧ振分テーブル１２２に読み出した設定値を設定する。
【００２２】
ＬＡＧ振分テーブル１２２は、ハードウェアで構成されたテーブルである。ＬＡＧ振分テーブル１２２は、例えば、図４に示すテーブル４００のように各ポートに対応するポートの使用種別、リンク状態及び使用状態を有している。図４は、ＬＡＧ振分テーブルの一例の図である。
【００２３】
ここで、テーブル４００について詳細に説明する。行４０１がポートの識別情報を表している。また、行４０２が、各ポートの使用種別を表している。そして、行４０３が各ポートのリンク状態を表している。ここで、リンク状態とは、対向装置との間で接続が確立されてリンクアップしているか否かを表している。行４０２において「Ｕｐ」がリンクアップを表しており、「Ｄｏｗｎ」がリンクダウンを表している。また、行４０４が各ポートに実際に流れているフレームの型を示す使用状態を表している。ここで、使用状態は２ビットで表され、先頭ビットが１の場合にはショートフレームが流れている状態をあらわしており、次のビットが１の場合にはロングフレームが流れていることを表している。すなわち、使用状態が「０１」は、ショートフレームのみが流れている状態を表しており、「１０」は、ロングフレームのみが流れている状態を表している。また、使用状態が「１１」は、ショートフレームとロングフレームとが混在して流れている状態（以下では、「フレーム混在」という場合がある。）を表している。また、使用状態が「００」は、未使用状態を表している。ここで、図４では、分かり易いように使用状態を表すビットの後ろに流れているフレームの型（「混在」は、フレーム混在を表している。）を記載している。
【００２４】
ＭＡＣ学習テーブル１２１は、ハードウェアで構成されたテーブルである。ＭＡＣ学習テーブル１２１は、例えば、図５に示すテーブル５００のようにＭＡＣアドレスと対応する送信ポートの論理グループ又は送信ポートの情報を有している。図５は、ＭＡＣ学習テーブルの一例の図である。例えば、テーブル５００では、ＭＡＣアドレス「ＭＡ」、「ＭＢ」及び「ＭＣ」は「ＬＡＧ１」というＬＡＧに対応している。ここで、本実施例ではＬＡＧ１という１つのＬＡＧのみを設定しているので、テーブル５００のようになっているが、ＭＡＣアドレスは他のＬＡＧに対応してもよいし、送信ポートに直接対応してもよい。
【００２５】
レート管理部１１２は、各ポートに対応する送信レートの上限値及び下限値を送信レートテーブル１３２から読み出す。そして、レート管理部１１２は、各ポートに繋がっている送信レートチェック部に読み出した上限値及び下限値を設定する。ここでは、送信レートは、通常ポートのみに設定されているので、レート管理部１１２は、送信レートチェック部７１及び７３にのみ上限値及び下限値を設定する。
【００２６】
入力ＩＦ１１及び１２は、外部の装置から送られてきたフレームを受信するインタフェースである。本実施例では、例えば、入力ＩＦ１１はＶＬＡＮ−ＩＤ（Virtual  Local  Area  Network）が「１０」のネットワークに接続している。また、入力ＩＦ１２は、ＶＬＡＮ−ＩＤが「２０」のネットワークに接続している。また、ＶＬＡＮ−ＩＤが「１０」のネットワークには、ＭＡＣアドレス「ＭＡ」「ＭＢ」を有する装置が接続されている。また、ＶＬＡＮ−ＩＤが「２０」のネットワークには、ＭＡＣアドレス「ＭＣ」を有する装置が接続されている。入力ＩＦ１１は、ＶＬＡＮ−ＩＤが「１０」のネットワークからフレームを受信する。また、入力ＩＦ１１は、ＶＬＡＮ−ＩＤが「２０」のフレームを受信する。
【００２７】
受信バッファ２１は、入力ＩＦ１１が受信したフレームを取得し格納していく。受信バッファ２２は、入力ＩＦ１２が受信したフレームを取得し格納していく。
【００２８】
ＭＡＣ学習処理部３１は、受信バッファ２１に格納されたフレームを順次読み出していく。そして、ＭＡＣ学習処理部３１は、読み出したフレームから宛先のＭＡＣアドレスを取得する。そして、ＭＡＣ学習処理部３１は、取得したＭＡＣアドレスに対応するポート番号をＭＡＣ学習テーブル１２１から取得、取得したポート番号を有するポートをフレームの宛先として決定する。ここで、ＭＡＣ学習テーブル１２１においてＭＡＣアドレスに対応する宛先がＬＡＧの場合には、ＭＡＣ学習処理部３１は、ＬＡＧの情報を取得する。例えば、フレームの宛先のマックアドレスが「ＭＡ」の場合、ＭＡＣ学習処理部３１は、テーブル５００（図５参照）からＬＡＧ１を取得する。そして、ＭＡＣ学習処理部３１は、フレームの宛先をＬＡＧ１と決定する。そして、ＭＡＣ学習処理部３１は、読み出したフレームをフレームの宛先の情報と共にＬＡＧ振分部４０へ出力する。
【００２９】
ＭＡＣ学習処理部３２は、受信バッファ２２に格納されたフレームを順次読み出していく。そして、ＭＡＣ学習処理部３２は、ＭＡＣ学習処理部３１と同様にフレームの宛先を決定し、読み出したフレームをフレームの宛先の情報と共にＬＡＧ振分部４０へ出力する。
【００３０】
ＬＡＧ振分部４０は、フレーム及びフレームの宛先の情報をＭＡＣ学習処理部３１及び３２から受信する。フレームの宛先がＬＡＧの場合、ＬＡＧ振分部４０は、受信したフレームからサイズ情報を取得する。そして、ＬＡＧ振分部４０は、取得したフレームのサイズを用いてＬＡＧ振分テーブル１２２から取得したフレームの宛先となるポートを取得する。例えば、フレームのサイズが６４Ｂｙｔｅ未満の場合、ＬＡＧ振分部４０は、そのフレームをショートフレームと判定し、ＬＡＧ振分テーブル１２２の使用状態からショートフレームを送信しているポートを選択して、そのフレームの宛先のポートとする。また、例えば、フレームのサイズが６４Ｂｙｔｅ以上の場合、ＬＡＧ振分部４０は、そのフレームをロングフレームと判定し、ＬＡＧ振分テーブル１２２の使用状態からロングフレームを送信しているポートを選択して、そのフレームの宛先のポートとする。
【００３１】
ＬＡＧ振分部４０は、フレームの宛先としたポートが１つの場合、そのポートへの転送指示とともに受信したフレームをスイッチ部５０へ出力する。取得したポートが２つ以上の場合、ＬＡＧ振分部４０は、その型のフレームを送るポートが周期的に変化するようにポートを選択して、そのポートへの転送指示とともに受信したフレームをスイッチ部５０へ出力する。例えば、本実施例において、出力ＩＦ９１と出力ＩＦ９２とがショートフレームを送信している場合、ＬＡＧ振分部４０は、出力ＩＦ９１と出力ＩＦ９２とで交互にショートフレームが送られるように受信したフレームの宛先のポートを選択する。
【００３２】
さらに、ＬＡＧ振分部４０は、出力ＩＦ９１又は９３において送信レートが上限値を超えた場合、上限値を超えたポートに対応する送信レートチェック部７１又は７３から送信レートが上限値を超えた旨の通知を受信する。以下では、送信レートが上限値を超えたポートが送信していたフレームの型を「上限超型」という。
【００３３】
送信レートが上限値を超えた旨の通知を受信すると、ＬＡＧ振分部４０は、予備ポートである出力ＩＦ９２がリンクアップしているか否かをＬＡＧ振分テーブル１２２から判定する。
【００３４】
出力ＩＦ９２がリンクアップしている場合、上限超型のフレームを予備ポートである出力ＩＦ９２に振分けるよう決定する。そして、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２における出力ＩＦ９２に対応するポートの使用状態を上限超型のフレームを送信するように変更する。例えば、ショートフレームを送信しているポートである出力ＩＦ９１の送信レートが上限値を超えた場合、ＬＡＧ振分部４０は、送信レートが上限値を超えた旨の通知を送信レートチェック部７１から受ける。そして、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２における出力ＩＦ９２の使用状態のショートフレームの送信を表すビットを立てる。具体的には、予備ポートである出力ＩＦ９２が未使用であり使用状態を表すビットが「００」の場合、ショートフレームを送信するのであれば、ＬＡＧ振分部４０は、出力ＩＦ９２の使用状態を表すビットを「０１」に変える。また、予備ポートである出力ＩＦ９２が既にロングフレームを送っており、使用状態を表すビットが「１０」の場合、ショートフレームを送信するのであれば、ＬＡＧ振分部４０は、出力ＩＦ９２の使用状態を表すビットを「１１」に変える。
【００３５】
さらに、ＬＡＧ振分部４０は、予備ポートへのフレームの振分けを行った場合、ＬＡＧ振分テーブル１２２における予備ポートの使用状態を確認し、使用状態を表すビットが「１１」であれば、フレームが混在していると判定する。そして、ＬＡＧ振分部４０は、フレーム混在の状態であれば、フラグメント処理部６２に対してフラグメント設定を指示する。
【００３６】
また、ＬＡＧ振分部４０は、フレーム混在のポートがある場合には、振分け先の拡張は行わない。
【００３７】
また、ＬＡＧ振分部４０は、予備ポートである出力ＩＦ９２のリンクがダウンしている場合、上限超型とは逆の型のフレーム用のポートがリンクアップしているか否かをＬＡＧ振分テーブル１２２のリンクの状態から判定する。上限超型とは逆の型のフレーム用のポートがリンクアップしている場合、ＬＡＧ振分部４０は、上限超型とは逆の型のフレーム用のポートへ上限型のフレームを振分けるよう決定する。そして、上限超型とは逆の型のフレーム用のポートの使用状態を上限超型のフレームを送信するように変更する。例えば、ショートフレームを送信しているポートである出力ＩＦ９１の送信レートが上限値を超えた場合で説明する。この場合、出力ＩＦ９２がリンクダウンしていれば、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２における出力ＩＦ９３の使用状態のショートフレームの送信を表すビットを立てる。すなわち、ＬＡＧ振分テーブル１２２における出力ＩＦ９３の使用状態を表すビットは、「１０」から「１１」に変更される。
【００３８】
これに対して、上限超型とは逆の型のフレーム用のポートがリンクアップしていない場合、ＬＡＧ振分部４０は、フレームの振分けを行わない。
【００３９】
また、ＬＡＧ振分部４０は、出力ＩＦ９１又は９３において送信レートが下限値を下回った場合、下限値を下回ったポートに対応する送信レートチェック部７１又は７３から送信レートが下限値を超えた旨の通知を受信する。以下では、送信レートが下限値を下回ったポートが送信していたフレームの型を「下限超型」という。
【００４０】
送信レートが下限値を超えた旨の通知を受信すると、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２を用いて、下限超型のフレームを予備ポートである出力ＩＦ９２が送信しているか否かを判定する。下限超型のフレームを予備ポートである出力ＩＦ９２が送信している場合、ＬＡＧ振分部４０は、出力ＩＦ９２からの下限超型のフレームの送信の停止を決定する。そして、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２における出力ＩＦ９２に対応するポートの使用状態を下限超型のフレームを送信しないように変更する。例えば、ショートフレーム用ポートである出力ＩＦ９１の送信レートが下限値を下回った場合、ＬＡＧ振分部４０は、送信レートが下限値を超えた旨の通知を送信レートチェック部７１から受ける。そして、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２における出力ＩＦ９２の使用状態のショートフレームの送信を表すビットを落とす。具体的には、予備ポートである出力ＩＦ９２がショートフレームのみを送信しており、使用状態を表すビットが「０１」の場合、ショートフレームの送信を停止するのであれば、ＬＡＧ振分部４０は、出力ＩＦ９２の使用状態を表すビットを「００」に変える。また、予備ポートである出力ＩＦ９２がフレームを混在させて送っており、使用状態を表すビットが「１１」の場合、ショートフレームの送信を停止するのであれば、ＬＡＧ振分部４０は、出力ＩＦ９２の使用状況を表すビットを「１０」に変える。
【００４１】
さらに、ＬＡＧ振分部４０は、予備ポートである出力ＩＦ９２においてフレーム混在の状態で、予備ポートへのフレームの振分けを停止した場合、フラグメント処理部６２に対してフラグメント停止を指示する。
【００４２】
また、出力ＩＦ９２がリンクダウンしている場合、ＬＡＧ振分部４０は、下限超型とは逆の型のフレーム用のポートの使用状態がフレーム混在か否かをＬＡＧ振分テーブル１２２から判定する。下限超型とは逆の型のフレーム用のポートがフレームを混在して送信している場合、ＬＡＧ振分部４０は、下限超型とは逆の型のフレーム用のポートの使用状態を下限超型のフレームを送信しないように変更する。例えば、ショートフレーム用ポートである出力ＩＦ９１の送信レートが下限値を下回った場合で説明する。この場合、ロングフレーム用ポートである出力ＩＦ９３の使用状態がフレーム混在の場合、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２における出力ＩＦ９３の使用状態のショートフレームの送信を表すビットを落とす。すなわち、ＬＡＧ振分テーブル１２２における出力ＩＦ９３の使用状態を表すビットは、「１１」から「１０」に変更される。
【００４３】
スイッチ部５０は、フレームとともにそのフレームの宛先のポートの指示をＬＡＧ振分部４０から受信する。そして、スイッチ部５０は、受信したフレームを指示されたポートに繋がるフラグメント処理部６１〜６３のいずれかへ出力する。
【００４４】
フラグメント処理部６１〜６３は、ＬＡＧ振分部４０からのフラグメント設定の指示を受けるまでは、フラグメントはディセーブルになっている。この場合、フラグメント処理部６１〜６３は、スイッチ部５０から受信したフレームにたいしてフラグメント処理を行わずに対応する送信レートチェック部７１〜７３へ出力する。
【００４５】
フラグメント処理部６１〜６３は、ＬＡＧ振分部４０からフラグメント設定の指示を受けると、ロングフレームに対するフラグメント処理を開始する。フラグメント処理部６１〜６３は、受信したフレームのうちショートフレームは対応する送信レートチェック部７１〜７３へ出力する。また、フラグメント処理部６１〜６３は、受信したフレームのうちロングフレームを分割してフラグメントする。そして、フラグメント処理部６１〜６３は、フラグメントしたフレームを対応する送信レートチェック部７１〜７３へ出力する。
【００４６】
さらに、フラグメント処理部６１〜６３は、ＬＡＧ振分部４０からフラグメント停止の指示を受けるとフラグメント処理を停止する。そして、フラグメント停止の指示を受けた、フラグメント処理部６１〜６３は、スイッチ部５０から受信したフレームにたいしてフラグメント処理を行わずに対応する送信レートチェック部７１〜７３へ出力する。
【００４７】
送信レートチェック部７１〜７３は、送信レートの上限値及び下限値の設定をレート管理部１１２から受ける。本実施例では、送信レートチェック部７１及び７３が、送信レートの上限値及び下限値の設定をレート管理部１１２から受ける。
【００４８】
送信レートチェック部７１〜７３は、対応するフラグメント処理部６１〜６３からフレームを受信する。送信レートチェック部７２は、上限値及び下限値の設定がなされていないので、送信レートをチェックせずに送信バッファ８２へフレームを出力する。これに対して、送信レートチェック部７１及び７３は、対応するポートにおける送信レートが上限値を上回っているか又は下限値を下回っているかをチェックする。送信レートチェック部７１及び７３は、送信レートが上限値を上回っている場合、送信レートが上限値を超えた旨をＬＡＧ振分部４０へ通知する。また、送信レートチェック部７１及び７３は、送信レートが下限値を下回っている場合、送信レートが下限値を超えた旨をＬＡＧ振分部４０へ通知する。
【００４９】
送信バッファ８１〜８３は、対応する送信レートチェック部７１〜７３からフレームを受信する。そして、送信バッファ８１〜８３は、受信したフレームを格納していく。そして、送信バッファ８１〜８３は、格納しているフレームを順次読み出し、対応するポートへ送信する。
【００５０】
次に、図６を参照して、本実施例に係るデータ伝送装置１における送信レートが上限値を上回った場合の処理について説明する。図６は、実施例１に係るデータ伝送装置における送信レートが上限値を上回った場合の処理のフローチャートである。ここでは、出力ＩＦ９１〜９２が全てリンクアップしている場合で説明する。
【００５１】
送信レートチェック部７１又は７３は、送信レートが上限値を超えたか否かを検出する（ステップＳ１０１）。上限値を超えていない場合（ステップＳ１０１：否定）、送信レートチェック部７１又は７３は、検出を継続する。
【００５２】
上限値を超えたことを検出した場合（ステップＳ１０１：肯定）、送信レートチェック部７１又は７３は、ＬＡＧ振分部４０に上限値超過を通知する（ステップＳ１０２）。
【００５３】
ＬＡＧ振分部４０は、予備ポートである出力ＩＦ９２のリンクアップを確認し、ＬＡＧ振分テーブル１２２の予備ポートの使用状態において、予備ポートへの上限超型のフレームの送信を設定する（ステップＳ１０３）。
【００５４】
ＬＡＧ振分部４０は、予備ポートである出力ＩＦ９２の出力において使用状態がフレーム混在か否かを、ＬＡＧ振分テーブル１２２の予備ポートの使用状態から判定する（ステップＳ１０４）。
【００５５】
フレーム混在の場合（ステップＳ１０４：肯定）、ＬＡＧ振分部４０は、フラグメント処理部６２に対してフラグメント設定を行う（ステップＳ１０５）。これに対して、フレーム混在でない場合（ステップＳ１０４：否定）、ＬＡＧ振分部４０は、ステップＳ１０６へ進む。
【００５６】
その後、ＬＡＧ振分部４０は、上限超型のフレーム用のポートと通常ポートとに交互にフレームを送信する(ステップＳ１０６)。
【００５７】
次に、図７を参照して、本実施例に係るデータ伝送装置１における送信レートが上限値を上回った場合の処理についてさらに説明する。図７は、実施例１に係るデータ伝送装置における送信レートが上限値を上回った場合のシーケンス図である。ここでは、出力ＩＦ９１〜９３が全てリンクアップしている場合で説明する。また、ここでは、ショートフレーム用ポートである出力ＩＦ９１において送信レートが超過した場合で説明する。
【００５８】
送信レートチェック部７１は、出力ＩＦ９１において送信レートが上限値を超過したことを検出する（ステップＳ２０１）。そして、送信レートチェック部７１は、上限値超過をＬＡＧ振分部４０に通知する（ステップＳ２０２）。
【００５９】
ＬＡＧ振分部４０は、予備ポートである出力ＩＦ９２の出力がフレーム混在か否かを確認する（ステップＳ２０３）。ここでは、出力ＩＦ９２の出力がフレーム混在でない場合で説明する。
【００６０】
ＬＡＧ振分部４０は、ショートフレームの送信に予備ポートを使用することを決定する（ステップＳ２０４）。
【００６１】
ＬＡＧ振分テーブル１２２では、ＬＡＧ振分部４０により、予備ポートの使用状態において、ショートフレームの送信を表すビットを立てられる（ステップＳ２０６）。
【００６２】
ＬＡＧ振分部４０は、予備ポートである出力ＩＦ９２の使用状態をＬＡＧ振分テーブル１２２から読み出す（ステップＳ２０７）。
【００６３】
そして、ＬＡＧ振分部４０は、読み出した使用状態からフレーム混在か否かを検出する。ここでは、フレーム混在の場合で説明する。ＬＡＧ振分部４０は、フレーム混在を検出する（ステップＳ２０８）。
【００６４】
ＬＡＧ振分部４０は、フラグメント設定をフラグメント処理部６２に通知する（ステップＳ２０９）。フラグメント処理部６２は、ロングフレームのフラグメントを開始する。
【００６５】
ＬＡＧ振分部４０は、ショートフレーム用ポートである出力ＩＦ９１と予備ポートである出力ＩＦ９２にショートフレームを交互に送信する（ステップＳ２１０）。
【００６６】
次に、図８を参照して、本実施例に係るデータ伝送装置１における送信レートが下限値を下回った場合の処理について説明する。図８は、実施例１に係るデータ伝送装置における送信レートが下限値を下回った場合の処理のフローチャートである。ここでは、出力ＩＦ９１〜９２が全てリンクアップしている場合で説明する。また、ここでは、下限超型のフレームが予備ポートに振分けられている場合で説明する。
【００６７】
送信レートチェック部７１又は７３は、送信レートが下限値を下回ったか否かを検出する（ステップＳ３０１）。下限値を下回っていない場合（ステップＳ３０１：否定）、送信レートチェック部７１又は７３は、検出を継続する。
【００６８】
下限値を下回ったことを検出した場合（ステップＳ３０１：肯定）、送信レートチェック部７１又は７３は、ＬＡＧ振分部４０に下限値超過を通知する（ステップＳ３０２）。
【００６９】
ＬＡＧ振分部４０は、予備ポートである出力ＩＦ９２に下限超型のフレームの振分けを確認し、ＬＡＧ振分テーブル１２２の予備ポートの使用状態において、予備ポートへの下限超型のフレームの送信停止を設定する（ステップＳ３０３）。
【００７０】
ＬＡＧ振分部４０は、フラグメント処理部６２に対してフラグメント停止を指示する（ステップＳ３０４）。
【００７１】
その後、ＬＡＧ振分部４０は、下限超型のフレーム用のポートへフレームを送信する(ステップＳ３０５)。
【００７２】
次に、図９を参照して、本実施例に係るデータ伝送装置１における送信レートが下限値を下回った場合の処理についてさらに説明する。図９は、実施例１に係るデータ伝送装置における送信レートが上限値を下回った場合のシーケンス図である。ここでは、出力ＩＦ９１〜９３が全てリンクアップしている場合で説明する。また、ここでは、予備ポートである出力ＩＦ９２にショートフレームを振分けている状態で、ショートフレーム用ポートである出力ＩＦ９１において送信レートが下限値を下回った場合で説明する。
【００７３】
送信レートチェック部７１は、出力ＩＦ９１において送信レートが下限値を超過したことを検出する（ステップＳ４０１）。そして、送信レートチェック部７１は、下限値超過をＬＡＧ振分部４０に通知する（ステップＳ４０２）。
【００７４】
ＬＡＧ振分部４０は、予備ポートである出力ＩＦ９２へのショートフレームの送信停止をＬＡＧ振分テーブル１２２に設定する（ステップＳ４０３）。
【００７５】
ＬＡＧ振分テーブル１２２では、ＬＡＧ振分部４０により、予備ポートの使用状態において、ショートフレームの送信を表すビットが落とされる（ステップＳ４０４）。
【００７６】
ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２における予備ポートである出力ＩＦ９２の使用状態を確認する（ステップＳ４０５）。
【００７７】
そして、ＬＡＧ振分部４０は、予備ポートである出力ＩＦ９２においてフレームが混在していない状態を検出する（ステップＳ４０６）。
【００７８】
ＬＡＧ振分部４０は、フラグメント停止をフラグメント処理部６２に通知する（ステップＳ４０７）。フラグメント処理部６２は、ロングフレームのフラグメントを停止する。
【００７９】
ＬＡＧ振分部４０は、ショートフレーム用ポートである出力ＩＦ９１にショートフレームを送信する（ステップＳ４０８）。このとき、ＬＡＧ振分部４０は、ロングフレームをロングフレーム用のポートである出力ＩＦ９３と予備ポートである出力ＩＦ９２へ交互に送信する。そして、出力ＩＦ９２及び９３は、フラグメントされていないロングフレームを出力する。
【００８０】
図１０は、実施例１に係るデータ伝送装置におけるショートフレーム送信を実現するためのハードウェア構成図である。ここでは、ショートフレームの送信のためのハードウェアのみを示したが、データ伝送装置１において、図１に示すようにロングフレームの送信も加えて実現するには、さらに入出力経路を１つ加え、３の出力経路とすることが好ましい。
【００８１】
データ伝送装置１は、入力ＩＦ１１及び出力ＩＦ９１の機能を有する１つのインタフェースである入出力ＩＦ２１１を有し、また、入力ＩＦ１２及び出力ＩＦ９２の機能を有する１つのインタフェースである入出力ＩＦ２１２を有している。また、入出力ＩＦ２１３が出力ＩＦ９３の機能を実現する。
【００８２】
ＭＡＣ学習処理回路２２１及び２２２は、ＭＡＣ学習処理部３１及び３２の機能を実現する回路である。ＬＡＧ振分回路２３０は、ＬＡＧ振分部４０の機能を実現する回路である。スイッチ２４０は、スイッチ部５０の機能を実現する。送信レートチェック回路２６１〜２６３は、送信レートチェック部７１〜７３の機能を実現する回路である。
【００８３】
そして、ＣＰＵ２７１、ＲＯＭ２７２、ＲＡＭ２７３は、ＬＡＧポート管理部１１１、レート管理部１１２及び記憶部１１３の機能を実現する。例えば、ＲＡＭ２７３は、ＬＡＧポートテーブル１３１及び送信レートテーブル１３２を記憶している。さらに、ＲＯＭ２７２には、ＬＡＧポート管理部１１１及びレート管理部１１２の機能を実現するための実行モジュールなど各種プログラムが格納されている。そして、ＣＰＵ２７１は、ＲＡＭ２７２に格納された各種プログラムを実行することで、ＬＡＧポート管理部１１１及びレート管理部１１２の機能を実現する。
【００８４】
以上に説明したように、本実施例に係るデータ伝送装置は、ロングフレームとショートフレームとが混在したときにのみロングフレームのフラグメントを実施する。これにより、本実施例に係るデータ伝送装置は、帯域の余分な消費を軽減しつつショートフレームの遅延を抑えることができる。
【実施例２】
【００８５】
次に実施例２に係るデータ伝送装置について説明する。図１１は、実施例２に係るデータ伝送装置のブロック図である。本実施例に係るデータ伝送装置は、予備ポートを複数有することが実施例１と異なるものである。以下の説明では、実施例１と同じ機能については説明を省略する。ここで、本実施例では、予備ポートが３つの場合で説明するが、予備ポートの数に特に制限はない。
【００８６】
本実施例に係るデータ伝送装置は、予備ポートを複数持つため、ＬＡＧ振分テーブル１２２における予備ポートの欄が図１２に示すテーブル４１０のように複数になる。図１２は、実施例２に係るＬＡＧ振分テーブルの一例の図である。
【００８７】
欄４１１のポートＶが出力ＩＦ９１に対応するショートフレーム用ポート、欄４１５のポートＺが出力ＩＦ９５に対応するロングフレーム用のポートである。さらに、欄４１２のポートＷ、欄４１３のポートＸ及び欄４１４のポートＹがそれぞれ出力ＩＦ９２〜９４に対応する予備ポートである。
【００８８】
ＬＡＧ振分部４０は、送信レートチェック部７１又は７５から送信レートの上限値超過の通知を受けると、予備ポートの中から上限超型のフレームを振分けるポートを１つ選択する。本実施例では、ＬＡＧ振分部４０は、ショートフレームの送信レートが上限値を超過した場合、出力ＩＦ９２に振分け、ロングフレームの送信レートが上限値を超過した場合、出力ＩＦ９４に振分ける。そして、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２の振分け先の予備ポートの使用状態に振分けた型のフレームのビットを立てる。その後、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２を用いて、振分け先の予備ポートの使用状態がフレーム混在か否かを判定する。ここで、振分けた先の予備ポートの使用状態がフレーム混在であれば、ＬＡＧ振分部４０は、ショートフレームロングフレーム共に以降の振分け先の拡張を行わない。これに対して、振分け先の予備ポートの使用状態がフレーム混在でない場合、ＬＡＧ振分部４０は、振分け先の拡張を継続する。
【００８９】
予備ポートに対してフレームの振分けを行った後、振分けを行っている型のフレーム用のポートの送信レートが上限値を超過した場合、ＬＡＧ振分部４０は、未使用の予備ポートに振分けを行っている型のフレームをさらに振分ける。例えば、既にショートフレームを出力ＩＦ９２に振分けている状態で、出力ＩＦ９１の送信レートが上限値を超過した場合、ＬＡＧ振分部４０は、送信レートチェック部７１から上限値超過の通知を受ける。そして、ＬＡＧ振分部４０は、未使用である予備ポートの中からポートＸである出力ＩＦ９３を振分け先として選択する。そして、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２の振分け先の予備ポートの使用状態に振分けた型のフレームのビットを立てる。この後、同様にして、ＬＡＧ振分部４０は、振分け先の予備ポートの使用状態をチェックし、使用状態がフレーム混在であれば振分け先の拡張を停止し、フレーム混在でなければ振分け先の拡張を継続する。このようにして、ＬＡＧ振分部４０は、全ての予備ポートが使用され、且つそのうちの１つの予備ポートの使用状態がフレーム混在となるまで振分け先の拡張を行う。
【００９０】
ＬＡＧ振分部４０は、フレームの振分け先のポートが複数の場合、各ポートに順番にフレームを振分けていく。例えば、ショートフレームを出力ＩＦ９１〜９３に振分ける場合、ＬＡＧ振分部４０は、出力ＩＦ９１、９２、９３の順番で繰り返しながらフレームを振分けていく。
【００９１】
また、ショートフレーム用ポートである出力ＩＦ９１又はロングフレーム用ポートである出力ＩＦ９５において送信レートが下限値以下になった場合、ＬＡＧ振分部４０は、使用状態がフレーム混在のポートがあるか否かを判定する。使用状態がフレーム混在のポートがある場合、ＬＡＧ振分部４０は、使用状態がフレーム混在のポートへの下限超型のフレームの振分けを停止する。これに対して、使用状態がフレーム混在のポートがない場合、ＬＡＧ振分部４０は、下限超型のフレームを送信しているポートがあるか否かを判定する。下限超型のフレームを送信しているポートがなければ、ＬＡＧ振分部４０は、振分けの縮退を行わない。これに対して、下限超型のフレームを送信しているポートがあれば、ＬＡＧ振分部４０は、下限超型のフレームを送信しているポートの中から1１つのポートを選び、その選択したポートに対への下限超型のフレームの振分けを停止する。
【００９２】
ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２から下限超型のフレームの振分けを停止したポートの使用状態の下限超型のフレームの送信を表すビットを落とす。その後、ＬＡＧ振分部４０は、下限超型のフレームの振分けを停止したポートの使用状態を確認し、使用状態がフレーム混在でない場合、そのポートに対応するフラグメント処理部６２〜６４の状態を確認する。このとき、状態を確認したフラグメント処理部６２〜６４にフラグメント設定が行われていれば、ＬＡＧ振分部４０は、状態を確認したフラグメント処理部６２〜６４に対してフラグメント停止を指示する。ＬＡＧ振分部４０は、下限超型のフレームの予備ポートへの振分けが無くなるまで、上述した振分け先の縮退を行う。
【００９３】
また、ＬＡＧ振分部４０は、通常ポートにおいて送信レートが下限値以下になった場合に予備ポート全てが未使用であれば、以降の下限値超過の通知の停止を下限値超過を通知してきた送信レートチェック部７２又は７３に指示する。その後、下限値超過の通知を停止しているポートにおいて送信レートの上限値の超過が発生した場合、ＬＡＧ振分部４０は、下限値超過の通知を再開させる。
【００９４】
ここで、図１３を参照してＬＡＧ振分部４０による振り分け先の拡張の処理の流れについてさらに説明する。図１３は、実施例２における振り分け先の拡張の処理のフローチャートである。
【００９５】
送信レートチェック部７１又は７３は、送信レートが上限値を超えたか否かを検出する（ステップＳ５０１）。上限値を超えていない場合（ステップＳ５０１：否定）、送信レートチェック部７１又は７３は、検出を継続する。
【００９６】
上限値を超えたことを検出した場合（ステップＳ５０１：肯定）、送信レートチェック部７１又は７３は、ＬＡＧ振分部４０に上限値超過を通知する。ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２を用いて、出力ＩＦ９２〜９４の中で未使用の予備ポートがあるかを判定する（ステップＳ５０２）。
【００９７】
未使用の予備ポートがある場合（ステップＳ５０２：肯定）、ＬＡＧ振分部４０は、未使用の予備ポートから１つのポートを選択する（ステップＳ５０３）。
【００９８】
ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２の選択した予備ポートの使用状態の上限超型にフレームに該当するビットを立てる（ステップＳ５０４）。
【００９９】
ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２を用いて、選択した予備ポートの使用状態がフレーム混在か否かを判定する（ステップＳ５０５）。フレーム混在の場合（ステップＳ５０５：肯定）、ＬＡＧ振分部４０は、選択した予備ポートに対応するフラグメント処理部に対してフラグメント設定を指示する（ステップＳ５０６）。これに対して、フレーム混在でない場合（ステップＳ５０５：否定）、ＬＡＧ振分部４０は、ステップＳ５０７へ進む。
【０１００】
その後、ＬＡＧ振分部４０は、上限超型のフレーム用のポート及び上限超型のフレームを振分けている予備ポートに順番にフレームを送信する(ステップＳ５０７)。
【０１０１】
これに対して、未使用の予備ポートがない場合（ステップＳ５０２：否定）、ＬＡＧ振分部４０は、使用状態がフレーム混在の予備ポートがあるか否かを判定する（ステップＳ５０８）。フレーム混在の予備ポートがない場合、ＬＡＧ振分部４０は、上限超型とは逆の型のフレームの送信に使用している予備ポートの中から１つのポートを上限超型のフレームの振分け先として選択する（ステップＳ５０９）。その後、ＬＡＧ振分部４０は、ステップＳ５０６へ進む。
【０１０２】
一方、フレーム混在の予備ポートがある場合（ステップＳ５０８：肯定）、ＬＡＧ振分部４０は、振分け先の拡張を行わず、ステップＳ５０７へ進む。
【０１０３】
次に、図１４を参照してＬＡＧ振分部４０による振り分け先の縮退の処理の流れについてさらに説明する。図１４は、実施例２における振り分け先の縮退の処理のフローチャートである。
【０１０４】
送信レートチェック部７１又は７３は、送信レートが下限値を下回ったか否かを検出する（ステップＳ６０１）。下限値を下回っていない場合（ステップＳ６０１：否定）、送信レートチェック部７１又は７３は、検出を継続する。
【０１０５】
下限値を下回ったことを検出した場合（ステップＳ６０１：肯定）、送信レートチェック部７１又は７３は、ＬＡＧ振分部４０に下限値超過を通知する。ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２を用いて、出力ＩＦ９２〜９４の中で下限超型のフレームの送信に使用中の予備ポートがあるかを判定する（ステップＳ６０２）。
【０１０６】
使用中の予備ポートがある場合（ステップＳ６０２：肯定）、ＬＡＧ振分部４０は、使用状態がフレーム混在である予備ポートがあるか否かを判定する（ステップＳ６０３）。
【０１０７】
フレーム混在の予備ポートがある場合（ステップＳ６０３：肯定）、ＬＡＧ振分部４０は、フレーム混在の予備ポートの使用状態から下限超型に該当するフレームのビットを落とす（ステップＳ６０４）。
【０１０８】
さらに、ＬＡＧ振分部４０は、フレーム混在の予備ポートに対応するフラグメント処理部に対してフラグメント停止を指示する（ステップＳ６０５）。
【０１０９】
これに対して、フレーム混在の予備ポートがない場合（ステップＳ６０３：否定）、ＬＡＧ振分部４０は、下限超型のフレームの送信に使用している予備ポートのうち最老番の予備ポートを選択する。ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２の選択した予備ポートの使用状態から下限超型の送信を表すビットを落とす（ステップＳ６０６）。そして、ＬＡＧ振分部４０は、ステップＳ６０７へ進む。
【０１１０】
一方、使用中の予備ポートがない場合（ステップＳ６０２：否定）、ＬＡＧ振分部４０は、振分け先の縮退を行わず、ステップＳ６０７へ進む。
【０１１１】
その後、ＬＡＧ振分部４０は、下限超型のフレーム用のポート及び下限超型のフレームを振分けている予備ポートに順番にフレームを送信する(ステップＳ６０７)。
【０１１２】
次に、図１５、１６、１７を参照して、ポートのリンク状態が変化した場合の処理について説明する。図１５は、使用していない予備ポートのリンク状態が変化した場合のＬＡＧ振分テーブルの遷移を表す図である。図１６は、使用している予備ポートのリンク状態が変化した場合で、且つ未使用の予備ポートが残っている場合のＬＡＧ振分テーブルの遷移を表す図である。図１７は、使用している予備ポートのリンク状態が変化した場合で、且つ振分け可能な予備ポートが残っていない場合のＬＡＧ振分テーブルの遷移を表す図である。
【０１１３】
図１５を参照して、使用していない予備ポートのリンク状態が変化した場合の処理について説明する。
【０１１４】
テーブル４１０Ａがリンク状態変化前のＬＡＧ振分テーブル１２２を表している。この場合、欄４２１において使用状態を示すビットが「００」となっているので、ポートＸが未使用である。
【０１１５】
そして、未使用のポートＸのリンクダウンが発生すると、テーブル４１０Ｂに示すように、ＬＡＧ振分部４０は、リンク状態を表す欄４２２を「Ｄｏｗｎ」に書き換える。
【０１１６】
その後、ポートＸのリンクが回復しリンクアップすると、テーブル４１０Ｃに示すように、ＬＡＧ振分部４０は、リンク状態を表す欄４２２を「Ｕｐ」に書き換える。この場合、使用状態が未使用であるので、ＬＡＧ振分部４０は振分け先の変更を行わない。そのため、ポートＸの使用状態に変化は生じない。
【０１１７】
次に、図１６を参照して、使用している予備ポートのリンク状態が変化した場合で、且つ未使用の予備ポートが残っている場合の処理について説明する。
【０１１８】
テーブル４１０Ｄがリンク状態変化前のＬＡＧ振分テーブル１２２を表している。この場合、欄４２１において使用状態を示すビットが「００」となっているので、ポートＸが未使用である。
【０１１９】
そして、使用中のポートＹのリンクダウンが発生すると、テーブル４１０Ｅに示すように、ＬＡＧ振分部４０は、リンク状態を表す欄４３１を「Ｄｏｗｎ」に書き換える。さらに、ＬＡＧ振分部４０は、ポートＹに振分けられていたフレームを振分ける他の未使用のポートを選択する。ここでは、ＬＡＧ振分部４０は、ポートＸを選択する。そして、ＬＡＧ振分部４０は、ポートＹの使用状態を表す欄４３３を未使用に変更し、ポートＸの使用状態を表す欄４３２をポートＹの以前の使用状態と同じ「１０」に変更する。
【０１２０】
その後、ポートＹのリンクが回復しリンクアップすると、テーブル４１０Ｆに示すように、ＬＡＧ振分部４０は、ポートＹのリンク状態を表す欄４３４を「Ｕｐ」に書き換える。このとき、ＬＡＧ振分部４０は、ポートＸの使用状態の欄４３５及びポートＹの使用状態の欄４３６は変更しない。すなわち、使用している予備ポートのリンク状態がダウンし、且つ未使用の予備ポートが残っている場合、ＬＡＧ振分部４０は、使用状態を入れ替え、その後ダウンしたリンクが回復しても振分け先はそのままで運用を継続する。
【０１２１】
次に、図１７を参照して、使用している予備ポートのリンク状態が変化した場合で、振分け可能な予備ポートが残っていない場合の処理について説明する。
【０１２２】
テーブル４１０Ｇがリンク状態変化前のＬＡＧ振分テーブル１２２を表している。この場合、予備ポートがすべてリンクダウンしている。
【０１２３】
そして、ショートフレーム用ポートであるポートＶのリンクダウンが発生すると、テーブル４１０Ｈに示すように、ＬＡＧ振分部４０は、リンク状態を表す欄４４１を「Ｄｏｗｎ」に書き換える。さらに、ＬＡＧ振分部４０は、ロングフレーム用ポートであるポートＺしかないので、ショートフレームをポートＺに振分けることを決定する。そして、ＬＡＧ振分部４０は、ポートＺの使用状態を表す欄４４２のショートフレームの送信を表すビットを立てる。これにより、欄４４２のビットは、フレーム混在を表す「１１」となる。
【０１２４】
その後、ポートＶのリンクが回復しリンクアップすると、テーブル４１０Ｉに示すように、ＬＡＧ振分部４０は、ポートＶのリンク状態を表す欄４４３を「Ｕｐ」に書き換える。このとき、ＬＡＧ振分部４０は、ポートＺの使用状態のショートフレームの送信を表すビットを落とし、欄４４４のように「１０」にする。すなわち、使用している予備ポートのリンク状態がダウンし、且つ予備ポートが残っていない場合、ＬＡＧ振分部４０は、一時的にショートフレーム用ポート又はロングフレーム用ポートをフレーム混在の状態にし、その後リンクが回復すると元の状態に戻して運用を継続する。
【０１２５】
次に、図１８を参照して、本実施例におけるリンクダウン検出時の処理の流れについて説明する。図１８は、実施例２におけるリンクダウン検出時の処理のフローチャートである。
【０１２６】
ＬＡＧ振分部４０は、いずれかのポートのリンクダウンを検出したか否かを判定する（ステップＳ７０１）。リンクダウンを検出していない場合（ステップＳ７０１：否定）、ＬＡＧ振分部４０は、運用を継続しつつリンクダウンの検出を行う。
【０１２７】
これに対して、リンクダウンを検出した場合（ステップＳ７０１：肯定）、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２におけるリンクダウンポートのリンク状態を「Ｄｏｗｎ」に変更する（ステップＳ７０２）。
【０１２８】
ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２を用いて、リンクダウンポートが使用中か否かを判定する（ステップＳ７０３）。
【０１２９】
リンクダウンポートを使用中の場合（ステップＳ７０３：肯定）、ＬＡＧ振分部４０は、未使用の予備ポートがあるか否かを判定する（ステップＳ７０４）。
【０１３０】
未使用の予備ポートがある場合（ステップＳ７０４：肯定）、ＬＡＧ振分部４０は、未使用の予備ポートから１つのポートを選択する。そして、ＬＡＧ振分部４０は、選択したポートの使用状態において、リンクダウンが送信していた型のフレーム（以下では、「該当フレーム」という。）の送信を表すビットを立てる（ステップＳ７０５）。
【０１３１】
次に、ＬＡＧ振分部４０は、リンクダウンポートが予備ポートか否かを判定する（ステップＳ７０６）。リンクダウンポートが予備ポートの場合（ステップＳ７０６：肯定）、リンクダウンポートの仕様状態を未使用に変更する（ステップＳ７０７）。これに対して、リンクダウンポートが予備ポートでない場合（ステップＳ７０６：否定）、ＬＡＧ振分部４０は、ステップＳ７１８へ進む。
【０１３２】
一方、未使用の予備ポートがない場合（ステップＳ７０４：否定）、ＬＡＧ振分部４０は、リンクダウンポートの使用状態がフレーム混在か否かを判定する（ステップＳ７０８）。
【０１３３】
フレーム混在の場合（ステップＳ７０８：肯定）、ＬＡＧ振分部４０は、リンクダウンポートの使用状態を見使用に設定する（ステップＳ７０９）。そして、ＬＡＧ振分部４０は、リンクダウンポートに対応するフラグメント処理部のフラグメント停止を指示する（ステップＳ７１０）。
【０１３４】
これに対して、リンクダウンポートがフレーム混在でない場合(ステップＳ７０８：否定)、ＬＡＧ振分部４０は、リンクアップしている予備ポートがあるか否かを判定する（ステップＳ７１１）。
【０１３５】
リンクアップしている予備ポートがある場合（ステップＳ７１１：肯定）、ＬＡＧ振分部４０は、該当フレームを送信する予備ポートがあるか否かを判定する（ステップＳ７１２）。
【０１３６】
該当フレームを送信する予備ポートがある場合（ステップＳ７１２：肯定）、ＬＡＧ振分部４０は、リンクダウンポートの使用状態を未使用に設定する（ステップＳ７１３）。
【０１３７】
これに対して、該当フレームを送信する予備ポートがない場合（ステップＳ７１２：否定）、該当フレームとは逆の型の他方のフレーム送信に使用している予備ポートのうち最老番の予備ポートの使用状態における該当フレームのビットを立てる（ステップＳ７１４）。
【０１３８】
一方、リンクアップしている予備ポートがない場合（ステップＳ７１１：否定）、ＬＡＧ振分部４０は、該当フレーム用の通常ポートがリンクアップしているか否かを判定する（ステップＳ７１５）。該当フレーム用の通常ポートがリンクアップしている場合（ステップＳ７１５：肯定）、ＬＡＧ振分部４０は、ステップＳ７１８に進む。
【０１３９】
これに対して、該当フレーム用の通常ポートがリンクアップしていない場合（ステップＳ７１５：否定）、ＬＡＧ振分部４０は、残っている通常ポートの使用状態における該当フレームのビットを立てる(ステップＳ７１６)。
【０１４０】
その後、ＬＡＧ振分部４０は、該当フレームのビットを立てたポートに対応するフラグメント処理部にフラグメント設定を指示する(ステップＳ７１７)。
【０１４１】
そして、ＬＡＧ振分部４０は、フレームを順番に各ポートへ送信する（ステップＳ７１８）。
【０１４２】
次に、図１９を参照して、本実施例におけるリンクアップ検出時の処理の流れについて説明する。図１９は、実施例２におけるリンクアップ検出時の処理のフローチャートである。
【０１４３】
ＬＡＧ振分部４０は、ダウンしていたポートのリンクアップを検出したか否かを判定する（ステップＳ８０１）。リンクアップを検出していない場合（ステップＳ８０１：否定）、ＬＡＧ振分部４０は、運用を継続しつつリンクアップの検出を行う。
【０１４４】
これに対して、リンクアップを検出した場合（ステップＳ８０１：肯定）、ＬＡＧ振分部４０は、ＬＡＧ振分テーブル１２２におけるリンクアップポートのリンク状態を「Ｕｐ」に変更する（ステップＳ８０２）。
【０１４５】
ＬＡＧ振分部４０は、他にリンクアップしているポートがあるか否かを判定する（ステップＳ８０３）。
【０１４６】
他にリンクアップしているポートがない場合（ステップＳ８０３：否定）、ＬＡＧ振分部４０は、リンクアップポートに対応するフラグメント処理部に対してフラグメント設定を指示する（ステップＳ８０４）。そして、ＬＡＧ振分部４０は、リンクアップポートの使用状態をフレーム混在に設定する（ステップＳ８０５）。
【０１４７】
一方、他にリンクアップしているポートがない場合（ステップＳ８０３：肯定）、ＬＡＧ振分部４０は、他にリンクアップしているポートが２つ以上あるか否かを判定する（ステップＳ８０６）。他にリンクアップしているポートが２つ以上ある場合（ステップＳ８０６：肯定）、ＬＡＧ振分部４０は、ステップＳ８１２へ進む。
【０１４８】
これに対して、他にリンクアップしているポートが１つの場合（ステップＳ８０６：否定）、リンクアップしている各ポートの種別がいずれも通常ポートであるか否かを判定する（ステップＳ８０７）。いずれも通常ポートとである場合（ステップＳ８０７：肯定）、ＬＡＧ振分部４０は、使用種別に併せて各ポートの使用状態を設定する（ステップＳ８０８）。
【０１４９】
これに対して、通常ポートとでない場合（ステップＳ８０７：否定）、ＬＡＧ振分部４０は、どちらかが通常ポートであり、他方が予備ポートであるか否かを判定する（ステップＳ８０９）。どちらかが通常ポートであり、他方が予備ポートである場合（ステップＳ８０９：肯定）、ＬＡＧ振分部４０は、通常ポートの使用状態は使用種別に合わせて設定し、予備ポートの使用状態は通常ポートと逆の型のフレームを送信するように設定する（ステップＳ８１０）。
【０１５０】
一方、両方とも予備ポートである場合（ステップＳ８０９：否定）、ＬＡＧ振分部４０は、若番を有するポートの使用状態をショートフレームを送信するように設定し、老番を有するポートの使用状態をロングフレームを送信するように設定する(ステップＳ８１１)。
【０１５１】
そして、ＬＡＧ振分部４０は、各ポートへ順番にフレームを送信する（ステップＳ８１２）。
【０１５２】
以上に説明したように、本実施例に係るデータ伝送装置は、複数の予備ポートを有し、それらの予備ポートを順にショートフレームとロングフレームの送信に予備ポートを用いていく。さらに、いずれかの予備ポートでフレームの混在が起きたときに、その予備ポートにおいてロングフレームのフラグメントを実施する。これにより、運用状態に合わせて、それぞれの予備ポートをショートフレームの送信専用又はロングフレームの送信専用に用いることができ、さらに、フレーム混在の予備ポートを適当に決めることができる。また、ＬＡＧを構成する回線を増やし予備ポートを追加することで、フレーム混在によるフラグメントの頻度を軽減することができる。また、予備ポートがリンクダウンしても他のポートにより運用を継続することができる。
【実施例３】
【０１５３】
次に実施例３に係るデータ伝送装置について説明する。図２０は、実施例３に係るデータ伝送装置のブロック図である。本実施例に係るデータ伝送装置は、各フレームにシーケンス番号を振ることが実施例１と異なるものである。以下の説明では、実施例１と同じ機能については説明を省略する。
【０１５４】
本実施例に係るデータ伝送装置１は、図２０に示すように実施例１のデータ伝送装置にシーケンス番号付与部１４０を加えたものである。
【０１５５】
シーケンス番号付与部１４０は、ＭＡＣ学習処理部３１及び３２からフレームを受信する。そして、シーケンス番号付与部１４０は、図２１に示すように各フレームにシーケンス番号７００を付与する。シーケンス番号付与部１４０は、ＶＬＡＮ毎に異なるシーケンス番号を振る。図２１は、シーケンス番号を付与されたフレームのフォーマットの一例の図である。図２１に示すように、各フレームは、例えば、シーケンス番号７００以外に、宛先アドレス、送信元アドレス、ＶＬＡＮの識別番号、タイプ、Ｐａｙｌｏａｄ及びＦＣＳ（Frame  Check  Sequence）を有する。
【０１５６】
そして、本実施例に係るデータ伝送装置１は、図２２に示すように対向装置２に接続されている。対向装置２は、他のデータ伝送装置でもよいし、情報処理端末でもよい。図２２は、実施例３に係るデータ伝送システムのシステム構成図である。
【０１５７】
シーケンス番号を付与されたフレームは、データ伝送装置１のＬＡＧを構成する各ポートから出力され、回線１０１〜１０３を経由して対向装置２へ入力される。このとき、データ伝送装置１は、ある予備ポートでフレームが混在していればその予備ポートに対応するフラグメント処理部においてロングフレームのフラグメントを実行して出力する。
【０１５８】
対向装置２は、受信側のＬＡＧを構成するポートを有する。そして、ポート毎に、受信バッファ６０１〜６０３が配置されている。受信バッファ６０１は、回線１０１から入力されたフレームを格納する。受信バッファ６０２は、回線１０２から入力されたフレームを格納する。受信バッファ６０３は、回線１０３から入力されたフレームを格納する。
【０１５９】
共有バッファ６１０は、全ての受信バッファ６０１〜６０３から、フレームを読み出しＶＬＡＮ毎に格納していく。
【０１６０】
転送部６２０は、フレームに含まれるシーケンス番号７００を参照し、シーケンス番号の順序にしたがってフレームを読み出し、読み出した順にフレームを転送する。フレームは、例えば、対向装置２がデータ伝送装置の場合、次の送信を行う処理部に転送される。
【０１６１】
以上に説明したように、本実施例に係るデータ伝送システムでは、シーケンス番号を付与したフレームをデータ伝送装置が送信し、そのフレームを受けた対向装置は、シーケンス番号にしたがって受信したフレームを処理していく。これにより、フラグメントされたフレームの受信側における順序の逆転を回避することができる。
【符号の説明】
【０１６２】
１  データ伝送装置
１１、１２  入力ＩＦ
２１、２２  受信バッファ
３１、３２  ＭＡＣ学習処理部
４０  ＬＡＧ振分部
５０  スイッチ部
６１〜６５  フラグメント処理部
７１〜７５  送信レートチェック部
８１〜８５  送信バッファ
９１〜９５  出力ＩＦ
１０１〜１０３  回線
１１２  レート管理部
１１１  ＬＡＧポート管理部
１１３  記憶部
１２１  ＭＡＣ学習テーブル
１２２  ＬＡＧ振分テーブル
１３１  ＬＡＧポートテーブル
１３２  送信レートテーブル
【図１】
0005846018.tif 000002
【図２】
0005846018.tif 000003
【図３】
0005846018.tif 000004
【図４】
0005846018.tif 000005
【図５】
0005846018.tif 000006
【図６】
0005846018.tif 000007
【図７】
0005846018.tif 000008
【図８】
0005846018.tif 000009
【図９】
0005846018.tif 000010
【図１０】
0005846018.tif 000011
【図１１】
0005846018.tif 000012
【図１２】
0005846018.tif 000013
【図１３】
0005846018.tif 000014
【図１４】
0005846018.tif 000015
【図１５】
0005846018.tif 000016
【図１６】
0005846018.tif 000017
【図１７】
0005846018.tif 000018
【図１８】
0005846018.tif 000019
【図１９】
0005846018.tif 000020
【図２０】
0005846018.tif 000021
【図２１】
0005846018.tif 000022
【図２２】
0005846018.tif 000023