JP5846018B2 - データ伝送装置、データ伝送システム及びデータ伝送方法 - Google Patents

データ伝送装置、データ伝送システム及びデータ伝送方法 Download PDF

Info

Publication number
JP5846018B2
JP5846018B2 JP2012083171A JP2012083171A JP5846018B2 JP 5846018 B2 JP5846018 B2 JP 5846018B2 JP 2012083171 A JP2012083171 A JP 2012083171A JP 2012083171 A JP2012083171 A JP 2012083171A JP 5846018 B2 JP5846018 B2 JP 5846018B2
Authority
JP
Japan
Prior art keywords
port
data
lag
transmission rate
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012083171A
Other languages
English (en)
Other versions
JP2013214827A (ja
Inventor
琢哉 前田
琢哉 前田
横山 哲哉
哲哉 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012083171A priority Critical patent/JP5846018B2/ja
Priority to US13/789,851 priority patent/US8880759B2/en
Publication of JP2013214827A publication Critical patent/JP2013214827A/ja
Application granted granted Critical
Publication of JP5846018B2 publication Critical patent/JP5846018B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、データ伝送装置、データ伝送システム及びデータ伝送方法に関する。
近年、様々なネットワークサービスの充実により、ネットワーク上を流れるデータ量が急激に増大してきている。そこで、ネットワークの帯域幅を向上させるため、複数の物理回線を1つの論理的な回線として利用する技術であるLAG(Link AGgregation)が、IEEE802.3adとして標準化されている。
一方、データ伝送装置においては通信速度や処理速度などの高速化が進んでいる。このような高速化により、データ伝送装置は、大きなデータを迅速に処理することが可能となってきている。そこで、ネットワーク上に流れる大量のデータを迅速に処理するため、データ伝送装置においては、1つのフレームで大きなデータを扱うロングフレームへの対応が求められている。特に、9000バイトを超えるフレームは、ジャンボフレームと呼ばれることもある。
ショートフレームとロングフレームとを1つのネットワークで用いる場合、ロングフレームがネットワーク内に流入すると、そのロングフレームが処理される間、ショートフレームは処理待ち状態となる。このため、ショートフレームに対する処理が遅延し、遅延ゆらぎが発生するおそれがある。遅延ゆらぎが発生すると、例えば、ショートフレームを処理するコンピュータへのショートフレームの到達時刻がまちまちになってしまい、コンピュータにおけるショートフレームの受信順が入れ替わることが考えられる。このように受信したショートフレームの順番が入れ替わっている場合、それらを受信したコンピュータが処理を正確に行えないおそれがある。例えば、IP電話はショートフレームを用い且つ低遅延が求められるサービスである。そして、IP電話などのサービスとジャンボフレームを扱うサービスとを1つのネットワーク内で共存させる場合に、ジャンボフレームによりIP電話のフレームに遅延ゆらぎが発生してしまう場合がある。この場合、IP電話のサービスが遅延してしまう危険がある。
このようなロングフレームに対する技術として、送信元でロングフレームを一定サイズに分割するフラグメントを行い、受信側でロングフレームを再構築する従来技術がある。また、LAGを構成し、出力パケットをパケットサイズに応じてLAGを構成する物理回線に振分け、ショートパケットの読み出しの比率を多くする従来技術がある。
特開2005−303516号公報 特開平09−312668号公報
しかしながら、ロングフレームをフラグメントする従来技術では、分割したフレーム毎の情報の付加やフレーム間ギャップの増加によりオーバヘッドが多くなってしまう。これによりトラフィックレートが大きくなり、余分に帯域を消費し、且つデータ処理も遅くなってしまう。また、パケットサイズに応じてLAGにフレームを振分ける従来技術では、ショートフレームとロングフレームとが混在する場合があり、ショートフレームに遅延ゆらぎが発生してしまう。
開示の技術は、上記に鑑みてなされたものであって、帯域の余分な消費を軽減しつつショートフレームの遅延を抑えるデータ伝送装置、データ伝送システム及びデータ伝送方法を提供することを目的とする。
本願の開示するデータ伝送装置、データ伝送システム及びデータ伝送方法は、一つの態様において、第1ポートは、所定値未満のデータ長を有する第1データを送信する。第2ポートは、所定値以上のデータ長を有する第2データを送信する。また、予備ポートを有する。送信レート判定部は、前記第1ポートの送信レート及び前記第2ポートの送信レートが閾値以上か否かを判定する。データ振分部は、入力データが第1データ又は第2データかを判定した判定結果及び送信レート判定部による送信レートの判定結果に基づき、入力データを第1ポート、第2ポート又は予備ポートのいずれかに振分ける。分割処理部は、データ振分部により第1データ及び第2データが予備ポートへ振分けられた場合、第2データを分割して予備ポートに送信する。
本願の開示するデータ伝送装置、データ伝送システム及びデータ伝送方法の一つの態様によれば、帯域の余分な消費を軽減しつつショートフレームの遅延を抑えることができるという効果を奏する。
図1は、実施例1に係るデータ伝送装置のブロック図である。 図2は、LAGポートテーブルの一例の図である。 図3は、送信レートテーブルの一例の図である。 図4は、LAG振分テーブルの一例の図である。 図5は、MAC学習テーブルの一例の図である。 図6は、実施例1に係るデータ伝送装置における送信レートが上限値を上回った場合の処理のフローチャートである。 図7は、実施例1に係るデータ伝送装置における送信レートが上限値を上回った場合のシーケンス図である。 図8は、実施例1に係るデータ伝送装置における送信レートが下限値を下回った場合の処理のフローチャートである。 図9は、実施例1に係るデータ伝送装置における送信レートが下限値を下回った場合のシーケンス図である。 図10は、実施例1に係るデータ伝送装置におけるショートフレーム送信を実現するためのハードウェア構成図である。 図11は、実施例2に係るデータ伝送装置のブロック図である。 図12は、実施例2に係るLAG振分テーブルの一例の図である。 図13は、実施例2における振り分け先の拡張の処理のフローチャートである。 図14は、実施例2における振り分け先の縮退の処理のフローチャートである。 図15は、使用していない予備ポートのリンク状態が変化した場合のLAG振分テーブルの遷移を表す図である。 図16は、使用している予備ポートのリンク状態が変化した場合で、且つ未使用の予備ポートが残っている場合のLAG振分テーブルの遷移を表す図である。 図17は、使用している予備ポートのリンク状態が変化した場合で、且つ振分け可能な予備ポートが残っていない場合のLAG振分テーブルの遷移を表す図である。 図18は、実施例2におけるリンクダウン検出時の処理のフローチャートである。 図19は、実施例2におけるリンクアップ検出時の処理のフローチャートである。 図20は、実施例3に係るデータ伝送装置のブロック図である。 図21は、シーケンス番号を付与されたフレームのフォーマットの一例の図である。 図22は、実施例3に係るデータ伝送システムのシステム構成図である。
以下に、本願の開示するデータ伝送装置、データ伝送システム及びデータ伝送方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するデータ伝送装置、データ伝送システム及びデータ伝送方法が限定されるものではない。
図1は、実施例1に係るデータ伝送装置のブロック図である。図1に示すように、本実施例に係るデータ伝送装置1は、入力IF(Inter Face)11、12、受信バッファ21、22、MAC(Media Access Control)学習処理部31、32を有している。また、データ伝送装置1は、LAG振分部40、スイッチ部50、フラグメント処理部61〜63、送信レートチェック部71〜73、送信バッファ81〜83、出力IF91〜93及び回線101〜103を有している。さらに、データ伝送装置1は、LAGポート管理部111、レート管理部112、記憶部113、MAC学習テーブル121及びLAG振分テーブル122を有している。データ伝送装置1は、データの送受信をフレーム単位で行うものとして説明する。以下では、データ伝送装置1が送受信するフレーム単位のデータを単に「フレーム」と呼ぶ場合がある。また、図1では、実線の矢印がフレームの流れを表しており、点線の矢印が制御情報の流れを表している。
出力IF91〜93は、それぞれ回線101〜103に接続する送信ポートである。本実施例では、説明の便宜上、データ伝送装置1は出力IF91〜3という3つの送信ポートのみを有するものとする。また、出力IF91〜93及び回線101〜103は、1つの論理的な回線として構成されている。以下では、複数の送信ポートをまとめて構成される1つの論理的な回線を「LAG」と呼ぶ場合がある。ただし、実際には、データ伝送装置1のポート数及びLAGの数は特に限定されず、また、LAGを構成しない送信ポートが存在してもよい。以下では、出力IF91〜93を、単に「ポート」と呼ぶ場合がある。
記憶部113は、LAGポートテーブル131及び送信レートテーブル132を記憶している。
LAGポートテーブル131は、情報としてメモリ上に格納されているテーブルである。LAGポートテーブル131は、例えば、図2に示すテーブル200のように各ポートに対応するポートの使用種別及び使用種別を特定するための情報を有している。図2は、LAGポートテーブルの一例の図である。
ここで、テーブル200について詳細に説明する。行201がポートの識別情報を表している。また、行202が、各ポートがどの型のフレームの送信に用いられるポートかを表す使用種別を表している。ここで、本実施例では、フレームの型としてショートフレーム及びロングフレームがある。テーブル200では、「short」がショートフレームの送信に用いるポート(以下では、「ショートフレーム用ポート」という。)であることを表している。また、「long」がロングフレームの送信に用いるポート(以下では、「ロングフレーム用ポート」という。)であることを表している。以下では、ショートフレーム用ポート及びロングフレーム用ポートをまとめて「通常ポート」と呼ぶ場合がある。また、「reserve」は、予備ポートであることを表しており、送信するフレームの型は決まっていない。本実施例では、ショートフレーム用ポート及びロングフレーム用ポートとして1回線ずつ用い、残りの回線を予備ポートとする。そして、行203がショートフレーム及びロングフレームの定義を表す情報である。すなわち、本実施例では、64byte未満のフレームをショートフレームとしている。また、64byte以上のフレームをロングフレームとしている。LAGポートテーブル131の情報は予め設定されている。ただし、操作者は、各ポートの使用種別を適当に設定することができ、また、ショートフレームとロングフレームの定義を適当な値に設定することができる。
ここで、本実施例では、ポートXは、出力IF91を表している。また、ポートYは、出力IF92を表している。また、ポートZは、出力IF93を表している。そして、出力IF91は、ショートフレーム用ポートとして設定されている。また、出力FI92は、予備ポートとして設定されている。また、出力IF93は、ロングフレーム用ポートとして設定されている。
送信レートテーブル132は、情報としてメモリ上に格納されているテーブルである。例えば、図3に示すテーブル300のように各ポートに対応するポートの使用種別、並びに各ポートの送信レートの上限値及び下限値の情報を有している。図3は、送信レートテーブルの一例の図である。
ここで、テーブル300について詳細に説明する。行301がポートの識別情報を表している。また、行302が、各ポートの使用種別を表している。そして、行303が各ポートの送信レートの上限値を表している。また、行304が各ポートの送信レートの下限値を表している。送信レートテーブル132の情報は予め設定されている。ただし、操作者は、各ポートの上限値及び下限値を適当に設定することができる。
LAGポート管理部111は、LAG設定時、ファームウェア起動時、操作者による設定変更時に、LAGポートテーブル131の設定値を読み出し、LAG振分テーブル122に読み出した設定値を設定する。
LAG振分テーブル122は、ハードウェアで構成されたテーブルである。LAG振分テーブル122は、例えば、図4に示すテーブル400のように各ポートに対応するポートの使用種別、リンク状態及び使用状態を有している。図4は、LAG振分テーブルの一例の図である。
ここで、テーブル400について詳細に説明する。行401がポートの識別情報を表している。また、行402が、各ポートの使用種別を表している。そして、行403が各ポートのリンク状態を表している。ここで、リンク状態とは、対向装置との間で接続が確立されてリンクアップしているか否かを表している。行402において「Up」がリンクアップを表しており、「Down」がリンクダウンを表している。また、行404が各ポートに実際に流れているフレームの型を示す使用状態を表している。ここで、使用状態は2ビットで表され、先頭ビットが1の場合にはショートフレームが流れている状態をあらわしており、次のビットが1の場合にはロングフレームが流れていることを表している。すなわち、使用状態が「01」は、ショートフレームのみが流れている状態を表しており、「10」は、ロングフレームのみが流れている状態を表している。また、使用状態が「11」は、ショートフレームとロングフレームとが混在して流れている状態(以下では、「フレーム混在」という場合がある。)を表している。また、使用状態が「00」は、未使用状態を表している。ここで、図4では、分かり易いように使用状態を表すビットの後ろに流れているフレームの型(「混在」は、フレーム混在を表している。)を記載している。
MAC学習テーブル121は、ハードウェアで構成されたテーブルである。MAC学習テーブル121は、例えば、図5に示すテーブル500のようにMACアドレスと対応する送信ポートの論理グループ又は送信ポートの情報を有している。図5は、MAC学習テーブルの一例の図である。例えば、テーブル500では、MACアドレス「MA」、「MB」及び「MC」は「LAG1」というLAGに対応している。ここで、本実施例ではLAG1という1つのLAGのみを設定しているので、テーブル500のようになっているが、MACアドレスは他のLAGに対応してもよいし、送信ポートに直接対応してもよい。
レート管理部112は、各ポートに対応する送信レートの上限値及び下限値を送信レートテーブル132から読み出す。そして、レート管理部112は、各ポートに繋がっている送信レートチェック部に読み出した上限値及び下限値を設定する。ここでは、送信レートは、通常ポートのみに設定されているので、レート管理部112は、送信レートチェック部71及び73にのみ上限値及び下限値を設定する。
入力IF11及び12は、外部の装置から送られてきたフレームを受信するインタフェースである。本実施例では、例えば、入力IF11はVLAN−ID(Virtual Local Area Network)が「10」のネットワークに接続している。また、入力IF12は、VLAN−IDが「20」のネットワークに接続している。また、VLAN−IDが「10」のネットワークには、MACアドレス「MA」「MB」を有する装置が接続されている。また、VLAN−IDが「20」のネットワークには、MACアドレス「MC」を有する装置が接続されている。入力IF11は、VLAN−IDが「10」のネットワークからフレームを受信する。また、入力IF11は、VLAN−IDが「20」のフレームを受信する。
受信バッファ21は、入力IF11が受信したフレームを取得し格納していく。受信バッファ22は、入力IF12が受信したフレームを取得し格納していく。
MAC学習処理部31は、受信バッファ21に格納されたフレームを順次読み出していく。そして、MAC学習処理部31は、読み出したフレームから宛先のMACアドレスを取得する。そして、MAC学習処理部31は、取得したMACアドレスに対応するポート番号をMAC学習テーブル121から取得、取得したポート番号を有するポートをフレームの宛先として決定する。ここで、MAC学習テーブル121においてMACアドレスに対応する宛先がLAGの場合には、MAC学習処理部31は、LAGの情報を取得する。例えば、フレームの宛先のマックアドレスが「MA」の場合、MAC学習処理部31は、テーブル500(図5参照)からLAG1を取得する。そして、MAC学習処理部31は、フレームの宛先をLAG1と決定する。そして、MAC学習処理部31は、読み出したフレームをフレームの宛先の情報と共にLAG振分部40へ出力する。
MAC学習処理部32は、受信バッファ22に格納されたフレームを順次読み出していく。そして、MAC学習処理部32は、MAC学習処理部31と同様にフレームの宛先を決定し、読み出したフレームをフレームの宛先の情報と共にLAG振分部40へ出力する。
LAG振分部40は、フレーム及びフレームの宛先の情報をMAC学習処理部31及び32から受信する。フレームの宛先がLAGの場合、LAG振分部40は、受信したフレームからサイズ情報を取得する。そして、LAG振分部40は、取得したフレームのサイズを用いてLAG振分テーブル122から取得したフレームの宛先となるポートを取得する。例えば、フレームのサイズが64Byte未満の場合、LAG振分部40は、そのフレームをショートフレームと判定し、LAG振分テーブル122の使用状態からショートフレームを送信しているポートを選択して、そのフレームの宛先のポートとする。また、例えば、フレームのサイズが64Byte以上の場合、LAG振分部40は、そのフレームをロングフレームと判定し、LAG振分テーブル122の使用状態からロングフレームを送信しているポートを選択して、そのフレームの宛先のポートとする。
LAG振分部40は、フレームの宛先としたポートが1つの場合、そのポートへの転送指示とともに受信したフレームをスイッチ部50へ出力する。取得したポートが2つ以上の場合、LAG振分部40は、その型のフレームを送るポートが周期的に変化するようにポートを選択して、そのポートへの転送指示とともに受信したフレームをスイッチ部50へ出力する。例えば、本実施例において、出力IF91と出力IF92とがショートフレームを送信している場合、LAG振分部40は、出力IF91と出力IF92とで交互にショートフレームが送られるように受信したフレームの宛先のポートを選択する。
さらに、LAG振分部40は、出力IF91又は93において送信レートが上限値を超えた場合、上限値を超えたポートに対応する送信レートチェック部71又は73から送信レートが上限値を超えた旨の通知を受信する。以下では、送信レートが上限値を超えたポートが送信していたフレームの型を「上限超型」という。
送信レートが上限値を超えた旨の通知を受信すると、LAG振分部40は、予備ポートである出力IF92がリンクアップしているか否かをLAG振分テーブル122から判定する。
出力IF92がリンクアップしている場合、上限超型のフレームを予備ポートである出力IF92に振分けるよう決定する。そして、LAG振分部40は、LAG振分テーブル122における出力IF92に対応するポートの使用状態を上限超型のフレームを送信するように変更する。例えば、ショートフレームを送信しているポートである出力IF91の送信レートが上限値を超えた場合、LAG振分部40は、送信レートが上限値を超えた旨の通知を送信レートチェック部71から受ける。そして、LAG振分部40は、LAG振分テーブル122における出力IF92の使用状態のショートフレームの送信を表すビットを立てる。具体的には、予備ポートである出力IF92が未使用であり使用状態を表すビットが「00」の場合、ショートフレームを送信するのであれば、LAG振分部40は、出力IF92の使用状態を表すビットを「01」に変える。また、予備ポートである出力IF92が既にロングフレームを送っており、使用状態を表すビットが「10」の場合、ショートフレームを送信するのであれば、LAG振分部40は、出力IF92の使用状態を表すビットを「11」に変える。
さらに、LAG振分部40は、予備ポートへのフレームの振分けを行った場合、LAG振分テーブル122における予備ポートの使用状態を確認し、使用状態を表すビットが「11」であれば、フレームが混在していると判定する。そして、LAG振分部40は、フレーム混在の状態であれば、フラグメント処理部62に対してフラグメント設定を指示する。
また、LAG振分部40は、フレーム混在のポートがある場合には、振分け先の拡張は行わない。
また、LAG振分部40は、予備ポートである出力IF92のリンクがダウンしている場合、上限超型とは逆の型のフレーム用のポートがリンクアップしているか否かをLAG振分テーブル122のリンクの状態から判定する。上限超型とは逆の型のフレーム用のポートがリンクアップしている場合、LAG振分部40は、上限超型とは逆の型のフレーム用のポートへ上限型のフレームを振分けるよう決定する。そして、上限超型とは逆の型のフレーム用のポートの使用状態を上限超型のフレームを送信するように変更する。例えば、ショートフレームを送信しているポートである出力IF91の送信レートが上限値を超えた場合で説明する。この場合、出力IF92がリンクダウンしていれば、LAG振分部40は、LAG振分テーブル122における出力IF93の使用状態のショートフレームの送信を表すビットを立てる。すなわち、LAG振分テーブル122における出力IF93の使用状態を表すビットは、「10」から「11」に変更される。
これに対して、上限超型とは逆の型のフレーム用のポートがリンクアップしていない場合、LAG振分部40は、フレームの振分けを行わない。
また、LAG振分部40は、出力IF91又は93において送信レートが下限値を下回った場合、下限値を下回ったポートに対応する送信レートチェック部71又は73から送信レートが下限値を超えた旨の通知を受信する。以下では、送信レートが下限値を下回ったポートが送信していたフレームの型を「下限超型」という。
送信レートが下限値を超えた旨の通知を受信すると、LAG振分部40は、LAG振分テーブル122を用いて、下限超型のフレームを予備ポートである出力IF92が送信しているか否かを判定する。下限超型のフレームを予備ポートである出力IF92が送信している場合、LAG振分部40は、出力IF92からの下限超型のフレームの送信の停止を決定する。そして、LAG振分部40は、LAG振分テーブル122における出力IF92に対応するポートの使用状態を下限超型のフレームを送信しないように変更する。例えば、ショートフレーム用ポートである出力IF91の送信レートが下限値を下回った場合、LAG振分部40は、送信レートが下限値を超えた旨の通知を送信レートチェック部71から受ける。そして、LAG振分部40は、LAG振分テーブル122における出力IF92の使用状態のショートフレームの送信を表すビットを落とす。具体的には、予備ポートである出力IF92がショートフレームのみを送信しており、使用状態を表すビットが「01」の場合、ショートフレームの送信を停止するのであれば、LAG振分部40は、出力IF92の使用状態を表すビットを「00」に変える。また、予備ポートである出力IF92がフレームを混在させて送っており、使用状態を表すビットが「11」の場合、ショートフレームの送信を停止するのであれば、LAG振分部40は、出力IF92の使用状況を表すビットを「10」に変える。
さらに、LAG振分部40は、予備ポートである出力IF92においてフレーム混在の状態で、予備ポートへのフレームの振分けを停止した場合、フラグメント処理部62に対してフラグメント停止を指示する。
また、出力IF92がリンクダウンしている場合、LAG振分部40は、下限超型とは逆の型のフレーム用のポートの使用状態がフレーム混在か否かをLAG振分テーブル122から判定する。下限超型とは逆の型のフレーム用のポートがフレームを混在して送信している場合、LAG振分部40は、下限超型とは逆の型のフレーム用のポートの使用状態を下限超型のフレームを送信しないように変更する。例えば、ショートフレーム用ポートである出力IF91の送信レートが下限値を下回った場合で説明する。この場合、ロングフレーム用ポートである出力IF93の使用状態がフレーム混在の場合、LAG振分部40は、LAG振分テーブル122における出力IF93の使用状態のショートフレームの送信を表すビットを落とす。すなわち、LAG振分テーブル122における出力IF93の使用状態を表すビットは、「11」から「10」に変更される。
スイッチ部50は、フレームとともにそのフレームの宛先のポートの指示をLAG振分部40から受信する。そして、スイッチ部50は、受信したフレームを指示されたポートに繋がるフラグメント処理部61〜63のいずれかへ出力する。
フラグメント処理部61〜63は、LAG振分部40からのフラグメント設定の指示を受けるまでは、フラグメントはディセーブルになっている。この場合、フラグメント処理部61〜63は、スイッチ部50から受信したフレームにたいしてフラグメント処理を行わずに対応する送信レートチェック部71〜73へ出力する。
フラグメント処理部61〜63は、LAG振分部40からフラグメント設定の指示を受けると、ロングフレームに対するフラグメント処理を開始する。フラグメント処理部61〜63は、受信したフレームのうちショートフレームは対応する送信レートチェック部71〜73へ出力する。また、フラグメント処理部61〜63は、受信したフレームのうちロングフレームを分割してフラグメントする。そして、フラグメント処理部61〜63は、フラグメントしたフレームを対応する送信レートチェック部71〜73へ出力する。
さらに、フラグメント処理部61〜63は、LAG振分部40からフラグメント停止の指示を受けるとフラグメント処理を停止する。そして、フラグメント停止の指示を受けた、フラグメント処理部61〜63は、スイッチ部50から受信したフレームにたいしてフラグメント処理を行わずに対応する送信レートチェック部71〜73へ出力する。
送信レートチェック部71〜73は、送信レートの上限値及び下限値の設定をレート管理部112から受ける。本実施例では、送信レートチェック部71及び73が、送信レートの上限値及び下限値の設定をレート管理部112から受ける。
送信レートチェック部71〜73は、対応するフラグメント処理部61〜63からフレームを受信する。送信レートチェック部72は、上限値及び下限値の設定がなされていないので、送信レートをチェックせずに送信バッファ82へフレームを出力する。これに対して、送信レートチェック部71及び73は、対応するポートにおける送信レートが上限値を上回っているか又は下限値を下回っているかをチェックする。送信レートチェック部71及び73は、送信レートが上限値を上回っている場合、送信レートが上限値を超えた旨をLAG振分部40へ通知する。また、送信レートチェック部71及び73は、送信レートが下限値を下回っている場合、送信レートが下限値を超えた旨をLAG振分部40へ通知する。
送信バッファ81〜83は、対応する送信レートチェック部71〜73からフレームを受信する。そして、送信バッファ81〜83は、受信したフレームを格納していく。そして、送信バッファ81〜83は、格納しているフレームを順次読み出し、対応するポートへ送信する。
次に、図6を参照して、本実施例に係るデータ伝送装置1における送信レートが上限値を上回った場合の処理について説明する。図6は、実施例1に係るデータ伝送装置における送信レートが上限値を上回った場合の処理のフローチャートである。ここでは、出力IF91〜92が全てリンクアップしている場合で説明する。
送信レートチェック部71又は73は、送信レートが上限値を超えたか否かを検出する(ステップS101)。上限値を超えていない場合(ステップS101:否定)、送信レートチェック部71又は73は、検出を継続する。
上限値を超えたことを検出した場合(ステップS101:肯定)、送信レートチェック部71又は73は、LAG振分部40に上限値超過を通知する(ステップS102)。
LAG振分部40は、予備ポートである出力IF92のリンクアップを確認し、LAG振分テーブル122の予備ポートの使用状態において、予備ポートへの上限超型のフレームの送信を設定する(ステップS103)。
LAG振分部40は、予備ポートである出力IF92の出力において使用状態がフレーム混在か否かを、LAG振分テーブル122の予備ポートの使用状態から判定する(ステップS104)。
フレーム混在の場合(ステップS104:肯定)、LAG振分部40は、フラグメント処理部62に対してフラグメント設定を行う(ステップS105)。これに対して、フレーム混在でない場合(ステップS104:否定)、LAG振分部40は、ステップS106へ進む。
その後、LAG振分部40は、上限超型のフレーム用のポートと通常ポートとに交互にフレームを送信する(ステップS106)。
次に、図7を参照して、本実施例に係るデータ伝送装置1における送信レートが上限値を上回った場合の処理についてさらに説明する。図7は、実施例1に係るデータ伝送装置における送信レートが上限値を上回った場合のシーケンス図である。ここでは、出力IF91〜93が全てリンクアップしている場合で説明する。また、ここでは、ショートフレーム用ポートである出力IF91において送信レートが超過した場合で説明する。
送信レートチェック部71は、出力IF91において送信レートが上限値を超過したことを検出する(ステップS201)。そして、送信レートチェック部71は、上限値超過をLAG振分部40に通知する(ステップS202)。
LAG振分部40は、予備ポートである出力IF92の出力がフレーム混在か否かを確認する(ステップS203)。ここでは、出力IF92の出力がフレーム混在でない場合で説明する。
LAG振分部40は、ショートフレームの送信に予備ポートを使用することを決定する(ステップS204)。
LAG振分テーブル122では、LAG振分部40により、予備ポートの使用状態において、ショートフレームの送信を表すビットを立てられる(ステップS206)。
LAG振分部40は、予備ポートである出力IF92の使用状態をLAG振分テーブル122から読み出す(ステップS207)。
そして、LAG振分部40は、読み出した使用状態からフレーム混在か否かを検出する。ここでは、フレーム混在の場合で説明する。LAG振分部40は、フレーム混在を検出する(ステップS208)。
LAG振分部40は、フラグメント設定をフラグメント処理部62に通知する(ステップS209)。フラグメント処理部62は、ロングフレームのフラグメントを開始する。
LAG振分部40は、ショートフレーム用ポートである出力IF91と予備ポートである出力IF92にショートフレームを交互に送信する(ステップS210)。
次に、図8を参照して、本実施例に係るデータ伝送装置1における送信レートが下限値を下回った場合の処理について説明する。図8は、実施例1に係るデータ伝送装置における送信レートが下限値を下回った場合の処理のフローチャートである。ここでは、出力IF91〜92が全てリンクアップしている場合で説明する。また、ここでは、下限超型のフレームが予備ポートに振分けられている場合で説明する。
送信レートチェック部71又は73は、送信レートが下限値を下回ったか否かを検出する(ステップS301)。下限値を下回っていない場合(ステップS301:否定)、送信レートチェック部71又は73は、検出を継続する。
下限値を下回ったことを検出した場合(ステップS301:肯定)、送信レートチェック部71又は73は、LAG振分部40に下限値超過を通知する(ステップS302)。
LAG振分部40は、予備ポートである出力IF92に下限超型のフレームの振分けを確認し、LAG振分テーブル122の予備ポートの使用状態において、予備ポートへの下限超型のフレームの送信停止を設定する(ステップS303)。
LAG振分部40は、フラグメント処理部62に対してフラグメント停止を指示する(ステップS304)。
その後、LAG振分部40は、下限超型のフレーム用のポートへフレームを送信する(ステップS305)。
次に、図9を参照して、本実施例に係るデータ伝送装置1における送信レートが下限値を下回った場合の処理についてさらに説明する。図9は、実施例1に係るデータ伝送装置における送信レートが上限値を下回った場合のシーケンス図である。ここでは、出力IF91〜93が全てリンクアップしている場合で説明する。また、ここでは、予備ポートである出力IF92にショートフレームを振分けている状態で、ショートフレーム用ポートである出力IF91において送信レートが下限値を下回った場合で説明する。
送信レートチェック部71は、出力IF91において送信レートが下限値を超過したことを検出する(ステップS401)。そして、送信レートチェック部71は、下限値超過をLAG振分部40に通知する(ステップS402)。
LAG振分部40は、予備ポートである出力IF92へのショートフレームの送信停止をLAG振分テーブル122に設定する(ステップS403)。
LAG振分テーブル122では、LAG振分部40により、予備ポートの使用状態において、ショートフレームの送信を表すビットが落とされる(ステップS404)。
LAG振分部40は、LAG振分テーブル122における予備ポートである出力IF92の使用状態を確認する(ステップS405)。
そして、LAG振分部40は、予備ポートである出力IF92においてフレームが混在していない状態を検出する(ステップS406)。
LAG振分部40は、フラグメント停止をフラグメント処理部62に通知する(ステップS407)。フラグメント処理部62は、ロングフレームのフラグメントを停止する。
LAG振分部40は、ショートフレーム用ポートである出力IF91にショートフレームを送信する(ステップS408)。このとき、LAG振分部40は、ロングフレームをロングフレーム用のポートである出力IF93と予備ポートである出力IF92へ交互に送信する。そして、出力IF92及び93は、フラグメントされていないロングフレームを出力する。
図10は、実施例1に係るデータ伝送装置におけるショートフレーム送信を実現するためのハードウェア構成図である。ここでは、ショートフレームの送信のためのハードウェアのみを示したが、データ伝送装置1において、図1に示すようにロングフレームの送信も加えて実現するには、さらに入出力経路を1つ加え、3の出力経路とすることが好ましい。
データ伝送装置1は、入力IF11及び出力IF91の機能を有する1つのインタフェースである入出力IF211を有し、また、入力IF12及び出力IF92の機能を有する1つのインタフェースである入出力IF212を有している。また、入出力IF213が出力IF93の機能を実現する。
MAC学習処理回路221及び222は、MAC学習処理部31及び32の機能を実現する回路である。LAG振分回路230は、LAG振分部40の機能を実現する回路である。スイッチ240は、スイッチ部50の機能を実現する。送信レートチェック回路261〜263は、送信レートチェック部71〜73の機能を実現する回路である。
そして、CPU271、ROM272、RAM273は、LAGポート管理部111、レート管理部112及び記憶部113の機能を実現する。例えば、RAM273は、LAGポートテーブル131及び送信レートテーブル132を記憶している。さらに、ROM272には、LAGポート管理部111及びレート管理部112の機能を実現するための実行モジュールなど各種プログラムが格納されている。そして、CPU271は、RAM272に格納された各種プログラムを実行することで、LAGポート管理部111及びレート管理部112の機能を実現する。
以上に説明したように、本実施例に係るデータ伝送装置は、ロングフレームとショートフレームとが混在したときにのみロングフレームのフラグメントを実施する。これにより、本実施例に係るデータ伝送装置は、帯域の余分な消費を軽減しつつショートフレームの遅延を抑えることができる。
次に実施例2に係るデータ伝送装置について説明する。図11は、実施例2に係るデータ伝送装置のブロック図である。本実施例に係るデータ伝送装置は、予備ポートを複数有することが実施例1と異なるものである。以下の説明では、実施例1と同じ機能については説明を省略する。ここで、本実施例では、予備ポートが3つの場合で説明するが、予備ポートの数に特に制限はない。
本実施例に係るデータ伝送装置は、予備ポートを複数持つため、LAG振分テーブル122における予備ポートの欄が図12に示すテーブル410のように複数になる。図12は、実施例2に係るLAG振分テーブルの一例の図である。
欄411のポートVが出力IF91に対応するショートフレーム用ポート、欄415のポートZが出力IF95に対応するロングフレーム用のポートである。さらに、欄412のポートW、欄413のポートX及び欄414のポートYがそれぞれ出力IF92〜94に対応する予備ポートである。
LAG振分部40は、送信レートチェック部71又は75から送信レートの上限値超過の通知を受けると、予備ポートの中から上限超型のフレームを振分けるポートを1つ選択する。本実施例では、LAG振分部40は、ショートフレームの送信レートが上限値を超過した場合、出力IF92に振分け、ロングフレームの送信レートが上限値を超過した場合、出力IF94に振分ける。そして、LAG振分部40は、LAG振分テーブル122の振分け先の予備ポートの使用状態に振分けた型のフレームのビットを立てる。その後、LAG振分部40は、LAG振分テーブル122を用いて、振分け先の予備ポートの使用状態がフレーム混在か否かを判定する。ここで、振分けた先の予備ポートの使用状態がフレーム混在であれば、LAG振分部40は、ショートフレームロングフレーム共に以降の振分け先の拡張を行わない。これに対して、振分け先の予備ポートの使用状態がフレーム混在でない場合、LAG振分部40は、振分け先の拡張を継続する。
予備ポートに対してフレームの振分けを行った後、振分けを行っている型のフレーム用のポートの送信レートが上限値を超過した場合、LAG振分部40は、未使用の予備ポートに振分けを行っている型のフレームをさらに振分ける。例えば、既にショートフレームを出力IF92に振分けている状態で、出力IF91の送信レートが上限値を超過した場合、LAG振分部40は、送信レートチェック部71から上限値超過の通知を受ける。そして、LAG振分部40は、未使用である予備ポートの中からポートXである出力IF93を振分け先として選択する。そして、LAG振分部40は、LAG振分テーブル122の振分け先の予備ポートの使用状態に振分けた型のフレームのビットを立てる。この後、同様にして、LAG振分部40は、振分け先の予備ポートの使用状態をチェックし、使用状態がフレーム混在であれば振分け先の拡張を停止し、フレーム混在でなければ振分け先の拡張を継続する。このようにして、LAG振分部40は、全ての予備ポートが使用され、且つそのうちの1つの予備ポートの使用状態がフレーム混在となるまで振分け先の拡張を行う。
LAG振分部40は、フレームの振分け先のポートが複数の場合、各ポートに順番にフレームを振分けていく。例えば、ショートフレームを出力IF91〜93に振分ける場合、LAG振分部40は、出力IF91、92、93の順番で繰り返しながらフレームを振分けていく。
また、ショートフレーム用ポートである出力IF91又はロングフレーム用ポートである出力IF95において送信レートが下限値以下になった場合、LAG振分部40は、使用状態がフレーム混在のポートがあるか否かを判定する。使用状態がフレーム混在のポートがある場合、LAG振分部40は、使用状態がフレーム混在のポートへの下限超型のフレームの振分けを停止する。これに対して、使用状態がフレーム混在のポートがない場合、LAG振分部40は、下限超型のフレームを送信しているポートがあるか否かを判定する。下限超型のフレームを送信しているポートがなければ、LAG振分部40は、振分けの縮退を行わない。これに対して、下限超型のフレームを送信しているポートがあれば、LAG振分部40は、下限超型のフレームを送信しているポートの中から11つのポートを選び、その選択したポートに対への下限超型のフレームの振分けを停止する。
LAG振分部40は、LAG振分テーブル122から下限超型のフレームの振分けを停止したポートの使用状態の下限超型のフレームの送信を表すビットを落とす。その後、LAG振分部40は、下限超型のフレームの振分けを停止したポートの使用状態を確認し、使用状態がフレーム混在でない場合、そのポートに対応するフラグメント処理部62〜64の状態を確認する。このとき、状態を確認したフラグメント処理部62〜64にフラグメント設定が行われていれば、LAG振分部40は、状態を確認したフラグメント処理部62〜64に対してフラグメント停止を指示する。LAG振分部40は、下限超型のフレームの予備ポートへの振分けが無くなるまで、上述した振分け先の縮退を行う。
また、LAG振分部40は、通常ポートにおいて送信レートが下限値以下になった場合に予備ポート全てが未使用であれば、以降の下限値超過の通知の停止を下限値超過を通知してきた送信レートチェック部72又は73に指示する。その後、下限値超過の通知を停止しているポートにおいて送信レートの上限値の超過が発生した場合、LAG振分部40は、下限値超過の通知を再開させる。
ここで、図13を参照してLAG振分部40による振り分け先の拡張の処理の流れについてさらに説明する。図13は、実施例2における振り分け先の拡張の処理のフローチャートである。
送信レートチェック部71又は73は、送信レートが上限値を超えたか否かを検出する(ステップS501)。上限値を超えていない場合(ステップS501:否定)、送信レートチェック部71又は73は、検出を継続する。
上限値を超えたことを検出した場合(ステップS501:肯定)、送信レートチェック部71又は73は、LAG振分部40に上限値超過を通知する。LAG振分部40は、LAG振分テーブル122を用いて、出力IF92〜94の中で未使用の予備ポートがあるかを判定する(ステップS502)。
未使用の予備ポートがある場合(ステップS502:肯定)、LAG振分部40は、未使用の予備ポートから1つのポートを選択する(ステップS503)。
LAG振分部40は、LAG振分テーブル122の選択した予備ポートの使用状態の上限超型にフレームに該当するビットを立てる(ステップS504)。
LAG振分部40は、LAG振分テーブル122を用いて、選択した予備ポートの使用状態がフレーム混在か否かを判定する(ステップS505)。フレーム混在の場合(ステップS505:肯定)、LAG振分部40は、選択した予備ポートに対応するフラグメント処理部に対してフラグメント設定を指示する(ステップS506)。これに対して、フレーム混在でない場合(ステップS505:否定)、LAG振分部40は、ステップS507へ進む。
その後、LAG振分部40は、上限超型のフレーム用のポート及び上限超型のフレームを振分けている予備ポートに順番にフレームを送信する(ステップS507)。
これに対して、未使用の予備ポートがない場合(ステップS502:否定)、LAG振分部40は、使用状態がフレーム混在の予備ポートがあるか否かを判定する(ステップS508)。フレーム混在の予備ポートがない場合、LAG振分部40は、上限超型とは逆の型のフレームの送信に使用している予備ポートの中から1つのポートを上限超型のフレームの振分け先として選択する(ステップS509)。その後、LAG振分部40は、ステップS506へ進む。
一方、フレーム混在の予備ポートがある場合(ステップS508:肯定)、LAG振分部40は、振分け先の拡張を行わず、ステップS507へ進む。
次に、図14を参照してLAG振分部40による振り分け先の縮退の処理の流れについてさらに説明する。図14は、実施例2における振り分け先の縮退の処理のフローチャートである。
送信レートチェック部71又は73は、送信レートが下限値を下回ったか否かを検出する(ステップS601)。下限値を下回っていない場合(ステップS601:否定)、送信レートチェック部71又は73は、検出を継続する。
下限値を下回ったことを検出した場合(ステップS601:肯定)、送信レートチェック部71又は73は、LAG振分部40に下限値超過を通知する。LAG振分部40は、LAG振分テーブル122を用いて、出力IF92〜94の中で下限超型のフレームの送信に使用中の予備ポートがあるかを判定する(ステップS602)。
使用中の予備ポートがある場合(ステップS602:肯定)、LAG振分部40は、使用状態がフレーム混在である予備ポートがあるか否かを判定する(ステップS603)。
フレーム混在の予備ポートがある場合(ステップS603:肯定)、LAG振分部40は、フレーム混在の予備ポートの使用状態から下限超型に該当するフレームのビットを落とす(ステップS604)。
さらに、LAG振分部40は、フレーム混在の予備ポートに対応するフラグメント処理部に対してフラグメント停止を指示する(ステップS605)。
これに対して、フレーム混在の予備ポートがない場合(ステップS603:否定)、LAG振分部40は、下限超型のフレームの送信に使用している予備ポートのうち最老番の予備ポートを選択する。LAG振分部40は、LAG振分テーブル122の選択した予備ポートの使用状態から下限超型の送信を表すビットを落とす(ステップS606)。そして、LAG振分部40は、ステップS607へ進む。
一方、使用中の予備ポートがない場合(ステップS602:否定)、LAG振分部40は、振分け先の縮退を行わず、ステップS607へ進む。
その後、LAG振分部40は、下限超型のフレーム用のポート及び下限超型のフレームを振分けている予備ポートに順番にフレームを送信する(ステップS607)。
次に、図15、16、17を参照して、ポートのリンク状態が変化した場合の処理について説明する。図15は、使用していない予備ポートのリンク状態が変化した場合のLAG振分テーブルの遷移を表す図である。図16は、使用している予備ポートのリンク状態が変化した場合で、且つ未使用の予備ポートが残っている場合のLAG振分テーブルの遷移を表す図である。図17は、使用している予備ポートのリンク状態が変化した場合で、且つ振分け可能な予備ポートが残っていない場合のLAG振分テーブルの遷移を表す図である。
図15を参照して、使用していない予備ポートのリンク状態が変化した場合の処理について説明する。
テーブル410Aがリンク状態変化前のLAG振分テーブル122を表している。この場合、欄421において使用状態を示すビットが「00」となっているので、ポートXが未使用である。
そして、未使用のポートXのリンクダウンが発生すると、テーブル410Bに示すように、LAG振分部40は、リンク状態を表す欄422を「Down」に書き換える。
その後、ポートXのリンクが回復しリンクアップすると、テーブル410Cに示すように、LAG振分部40は、リンク状態を表す欄422を「Up」に書き換える。この場合、使用状態が未使用であるので、LAG振分部40は振分け先の変更を行わない。そのため、ポートXの使用状態に変化は生じない。
次に、図16を参照して、使用している予備ポートのリンク状態が変化した場合で、且つ未使用の予備ポートが残っている場合の処理について説明する。
テーブル410Dがリンク状態変化前のLAG振分テーブル122を表している。この場合、欄421において使用状態を示すビットが「00」となっているので、ポートXが未使用である。
そして、使用中のポートYのリンクダウンが発生すると、テーブル410Eに示すように、LAG振分部40は、リンク状態を表す欄431を「Down」に書き換える。さらに、LAG振分部40は、ポートYに振分けられていたフレームを振分ける他の未使用のポートを選択する。ここでは、LAG振分部40は、ポートXを選択する。そして、LAG振分部40は、ポートYの使用状態を表す欄433を未使用に変更し、ポートXの使用状態を表す欄432をポートYの以前の使用状態と同じ「10」に変更する。
その後、ポートYのリンクが回復しリンクアップすると、テーブル410Fに示すように、LAG振分部40は、ポートYのリンク状態を表す欄434を「Up」に書き換える。このとき、LAG振分部40は、ポートXの使用状態の欄435及びポートYの使用状態の欄436は変更しない。すなわち、使用している予備ポートのリンク状態がダウンし、且つ未使用の予備ポートが残っている場合、LAG振分部40は、使用状態を入れ替え、その後ダウンしたリンクが回復しても振分け先はそのままで運用を継続する。
次に、図17を参照して、使用している予備ポートのリンク状態が変化した場合で、振分け可能な予備ポートが残っていない場合の処理について説明する。
テーブル410Gがリンク状態変化前のLAG振分テーブル122を表している。この場合、予備ポートがすべてリンクダウンしている。
そして、ショートフレーム用ポートであるポートVのリンクダウンが発生すると、テーブル410Hに示すように、LAG振分部40は、リンク状態を表す欄441を「Down」に書き換える。さらに、LAG振分部40は、ロングフレーム用ポートであるポートZしかないので、ショートフレームをポートZに振分けることを決定する。そして、LAG振分部40は、ポートZの使用状態を表す欄442のショートフレームの送信を表すビットを立てる。これにより、欄442のビットは、フレーム混在を表す「11」となる。
その後、ポートVのリンクが回復しリンクアップすると、テーブル410Iに示すように、LAG振分部40は、ポートVのリンク状態を表す欄443を「Up」に書き換える。このとき、LAG振分部40は、ポートZの使用状態のショートフレームの送信を表すビットを落とし、欄444のように「10」にする。すなわち、使用している予備ポートのリンク状態がダウンし、且つ予備ポートが残っていない場合、LAG振分部40は、一時的にショートフレーム用ポート又はロングフレーム用ポートをフレーム混在の状態にし、その後リンクが回復すると元の状態に戻して運用を継続する。
次に、図18を参照して、本実施例におけるリンクダウン検出時の処理の流れについて説明する。図18は、実施例2におけるリンクダウン検出時の処理のフローチャートである。
LAG振分部40は、いずれかのポートのリンクダウンを検出したか否かを判定する(ステップS701)。リンクダウンを検出していない場合(ステップS701:否定)、LAG振分部40は、運用を継続しつつリンクダウンの検出を行う。
これに対して、リンクダウンを検出した場合(ステップS701:肯定)、LAG振分部40は、LAG振分テーブル122におけるリンクダウンポートのリンク状態を「Down」に変更する(ステップS702)。
LAG振分部40は、LAG振分テーブル122を用いて、リンクダウンポートが使用中か否かを判定する(ステップS703)。
リンクダウンポートを使用中の場合(ステップS703:肯定)、LAG振分部40は、未使用の予備ポートがあるか否かを判定する(ステップS704)。
未使用の予備ポートがある場合(ステップS704:肯定)、LAG振分部40は、未使用の予備ポートから1つのポートを選択する。そして、LAG振分部40は、選択したポートの使用状態において、リンクダウンが送信していた型のフレーム(以下では、「該当フレーム」という。)の送信を表すビットを立てる(ステップS705)。
次に、LAG振分部40は、リンクダウンポートが予備ポートか否かを判定する(ステップS706)。リンクダウンポートが予備ポートの場合(ステップS706:肯定)、リンクダウンポートの仕様状態を未使用に変更する(ステップS707)。これに対して、リンクダウンポートが予備ポートでない場合(ステップS706:否定)、LAG振分部40は、ステップS718へ進む。
一方、未使用の予備ポートがない場合(ステップS704:否定)、LAG振分部40は、リンクダウンポートの使用状態がフレーム混在か否かを判定する(ステップS708)。
フレーム混在の場合(ステップS708:肯定)、LAG振分部40は、リンクダウンポートの使用状態を見使用に設定する(ステップS709)。そして、LAG振分部40は、リンクダウンポートに対応するフラグメント処理部のフラグメント停止を指示する(ステップS710)。
これに対して、リンクダウンポートがフレーム混在でない場合(ステップS708:否定)、LAG振分部40は、リンクアップしている予備ポートがあるか否かを判定する(ステップS711)。
リンクアップしている予備ポートがある場合(ステップS711:肯定)、LAG振分部40は、該当フレームを送信する予備ポートがあるか否かを判定する(ステップS712)。
該当フレームを送信する予備ポートがある場合(ステップS712:肯定)、LAG振分部40は、リンクダウンポートの使用状態を未使用に設定する(ステップS713)。
これに対して、該当フレームを送信する予備ポートがない場合(ステップS712:否定)、該当フレームとは逆の型の他方のフレーム送信に使用している予備ポートのうち最老番の予備ポートの使用状態における該当フレームのビットを立てる(ステップS714)。
一方、リンクアップしている予備ポートがない場合(ステップS711:否定)、LAG振分部40は、該当フレーム用の通常ポートがリンクアップしているか否かを判定する(ステップS715)。該当フレーム用の通常ポートがリンクアップしている場合(ステップS715:肯定)、LAG振分部40は、ステップS718に進む。
これに対して、該当フレーム用の通常ポートがリンクアップしていない場合(ステップS715:否定)、LAG振分部40は、残っている通常ポートの使用状態における該当フレームのビットを立てる(ステップS716)。
その後、LAG振分部40は、該当フレームのビットを立てたポートに対応するフラグメント処理部にフラグメント設定を指示する(ステップS717)。
そして、LAG振分部40は、フレームを順番に各ポートへ送信する(ステップS718)。
次に、図19を参照して、本実施例におけるリンクアップ検出時の処理の流れについて説明する。図19は、実施例2におけるリンクアップ検出時の処理のフローチャートである。
LAG振分部40は、ダウンしていたポートのリンクアップを検出したか否かを判定する(ステップS801)。リンクアップを検出していない場合(ステップS801:否定)、LAG振分部40は、運用を継続しつつリンクアップの検出を行う。
これに対して、リンクアップを検出した場合(ステップS801:肯定)、LAG振分部40は、LAG振分テーブル122におけるリンクアップポートのリンク状態を「Up」に変更する(ステップS802)。
LAG振分部40は、他にリンクアップしているポートがあるか否かを判定する(ステップS803)。
他にリンクアップしているポートがない場合(ステップS803:否定)、LAG振分部40は、リンクアップポートに対応するフラグメント処理部に対してフラグメント設定を指示する(ステップS804)。そして、LAG振分部40は、リンクアップポートの使用状態をフレーム混在に設定する(ステップS805)。
一方、他にリンクアップしているポートがない場合(ステップS803:肯定)、LAG振分部40は、他にリンクアップしているポートが2つ以上あるか否かを判定する(ステップS806)。他にリンクアップしているポートが2つ以上ある場合(ステップS806:肯定)、LAG振分部40は、ステップS812へ進む。
これに対して、他にリンクアップしているポートが1つの場合(ステップS806:否定)、リンクアップしている各ポートの種別がいずれも通常ポートであるか否かを判定する(ステップS807)。いずれも通常ポートとである場合(ステップS807:肯定)、LAG振分部40は、使用種別に併せて各ポートの使用状態を設定する(ステップS808)。
これに対して、通常ポートとでない場合(ステップS807:否定)、LAG振分部40は、どちらかが通常ポートであり、他方が予備ポートであるか否かを判定する(ステップS809)。どちらかが通常ポートであり、他方が予備ポートである場合(ステップS809:肯定)、LAG振分部40は、通常ポートの使用状態は使用種別に合わせて設定し、予備ポートの使用状態は通常ポートと逆の型のフレームを送信するように設定する(ステップS810)。
一方、両方とも予備ポートである場合(ステップS809:否定)、LAG振分部40は、若番を有するポートの使用状態をショートフレームを送信するように設定し、老番を有するポートの使用状態をロングフレームを送信するように設定する(ステップS811)。
そして、LAG振分部40は、各ポートへ順番にフレームを送信する(ステップS812)。
以上に説明したように、本実施例に係るデータ伝送装置は、複数の予備ポートを有し、それらの予備ポートを順にショートフレームとロングフレームの送信に予備ポートを用いていく。さらに、いずれかの予備ポートでフレームの混在が起きたときに、その予備ポートにおいてロングフレームのフラグメントを実施する。これにより、運用状態に合わせて、それぞれの予備ポートをショートフレームの送信専用又はロングフレームの送信専用に用いることができ、さらに、フレーム混在の予備ポートを適当に決めることができる。また、LAGを構成する回線を増やし予備ポートを追加することで、フレーム混在によるフラグメントの頻度を軽減することができる。また、予備ポートがリンクダウンしても他のポートにより運用を継続することができる。
次に実施例3に係るデータ伝送装置について説明する。図20は、実施例3に係るデータ伝送装置のブロック図である。本実施例に係るデータ伝送装置は、各フレームにシーケンス番号を振ることが実施例1と異なるものである。以下の説明では、実施例1と同じ機能については説明を省略する。
本実施例に係るデータ伝送装置1は、図20に示すように実施例1のデータ伝送装置にシーケンス番号付与部140を加えたものである。
シーケンス番号付与部140は、MAC学習処理部31及び32からフレームを受信する。そして、シーケンス番号付与部140は、図21に示すように各フレームにシーケンス番号700を付与する。シーケンス番号付与部140は、VLAN毎に異なるシーケンス番号を振る。図21は、シーケンス番号を付与されたフレームのフォーマットの一例の図である。図21に示すように、各フレームは、例えば、シーケンス番号700以外に、宛先アドレス、送信元アドレス、VLANの識別番号、タイプ、Payload及びFCS(Frame Check Sequence)を有する。
そして、本実施例に係るデータ伝送装置1は、図22に示すように対向装置2に接続されている。対向装置2は、他のデータ伝送装置でもよいし、情報処理端末でもよい。図22は、実施例3に係るデータ伝送システムのシステム構成図である。
シーケンス番号を付与されたフレームは、データ伝送装置1のLAGを構成する各ポートから出力され、回線101〜103を経由して対向装置2へ入力される。このとき、データ伝送装置1は、ある予備ポートでフレームが混在していればその予備ポートに対応するフラグメント処理部においてロングフレームのフラグメントを実行して出力する。
対向装置2は、受信側のLAGを構成するポートを有する。そして、ポート毎に、受信バッファ601〜603が配置されている。受信バッファ601は、回線101から入力されたフレームを格納する。受信バッファ602は、回線102から入力されたフレームを格納する。受信バッファ603は、回線103から入力されたフレームを格納する。
共有バッファ610は、全ての受信バッファ601〜603から、フレームを読み出しVLAN毎に格納していく。
転送部620は、フレームに含まれるシーケンス番号700を参照し、シーケンス番号の順序にしたがってフレームを読み出し、読み出した順にフレームを転送する。フレームは、例えば、対向装置2がデータ伝送装置の場合、次の送信を行う処理部に転送される。
以上に説明したように、本実施例に係るデータ伝送システムでは、シーケンス番号を付与したフレームをデータ伝送装置が送信し、そのフレームを受けた対向装置は、シーケンス番号にしたがって受信したフレームを処理していく。これにより、フラグメントされたフレームの受信側における順序の逆転を回避することができる。
1 データ伝送装置
11、12 入力IF
21、22 受信バッファ
31、32 MAC学習処理部
40 LAG振分部
50 スイッチ部
61〜65 フラグメント処理部
71〜75 送信レートチェック部
81〜85 送信バッファ
91〜95 出力IF
101〜103 回線
112 レート管理部
111 LAGポート管理部
113 記憶部
121 MAC学習テーブル
122 LAG振分テーブル
131 LAGポートテーブル
132 送信レートテーブル

Claims (7)

  1. 所定値未満のデータ長を有する第1データを送信するための第1ポートと、
    所定値以上のデータ長を有する第2データを送信するための第2ポートと、
    予備ポートと、
    前記第1ポートの送信レート及び前記第2ポートの送信レートが閾値以上か否かを判定する送信レート判定部と、
    入力データが前記第1データ又は前記第2データかを判定した判定結果及び前記送信レート判定部による前記送信レートの判定結果に基づき、前記入力データを前記第1ポート、前記第2ポート又は前記予備ポートのいずれかに振分けるデータ振分部と、
    前記データ振分部により前記第1データ及び前記第2データが前記予備ポートへ振分けられた場合、前記第2データを分割して前記予備ポートに送信する分割処理部と
    を備えたことを特徴とするデータ伝送装置。
  2. 前記データ振分部は、前記第1ポートの送信レートが前記閾値未満の場合、前記第1データを前記第1ポートに振分け、前記第1ポートの送信レートが前記閾値以上の場合、前記第1データを前記第1ポート及び前記予備ポートに振分け、前記第2ポートの送信レートが前記閾値未満の場合、前記第2データを前記第2ポートに振分け、前記第2ポートの送信レートが前記閾値以上の場合、前記第2データを前記第2ポート及び前記予備ポートに振分けることを特徴とする請求項1に記載のデータ伝送装置。
  3. 前記予備ポートは複数存在し、
    前記データ振分部は、前記第1ポートの送信レートが閾値以上となった場合、前記第1データを振分けるためのポートとして前記予備ポートの中から1つのポートを選択することを繰り返し、前記第2ポートの送信レートが閾値以上となった場合、前記第2データを振分けるポートとして前記予備ポートの中から1つのポートを選択することを繰り返し、未選択の前記予備ポートがなくなった場合、最後に選択した前記予備ポートに第1データ及び第2データを混在させて送信することを特徴とする請求項1又は請求項2に記載のデータ伝送装置。
  4. 前記第1ポート、前記第2ポート及び前記予備ポートは、1つの論理ポートとして構成されていることを特徴とする請求項1〜3のいずれか一つに記載のデータ伝送装置。
  5. 前記入力データに対して入力された順番に連続番号を付与する番号付与部をさらに備えることを特徴とする請求項1〜4のいずれか一つに記載のデータ伝送装置。
  6. データ伝送装置及びデータ受信装置を有するデータ伝送システムであって、
    前記データ伝送装置は、
    所定値未満のデータ長を有する第1データを前記データ受信装置へ送信するための第1ポートと、
    所定値以上のデータ長を有する第2データを前記データ受信装置に送信するための第2ポートと、
    前記データ受信装置にデータを送信するための予備ポートと、
    入力データに対して入力された順番に連続番号を付与する番号付与部と、
    前記第1ポートの送信レート及び前記第2ポートの送信レートが閾値以上か否かを判定する送信レート判定部と、
    入力データが前記第1データ又は前記第2データかを判定した判定結果及び前記送信レート判定部による前記送信レートの判定結果に基づき、前記入力データを前記第1ポート、前記第2ポート又は前記予備ポートのいずれかに振分けるデータ振分部と、
    前記データ振分部により前記第1データ及び前記第2データが前記予備ポートへ振分けられた場合、前記第2データを分割して前記予備ポートに送信する分割処理部とを備え、
    前記データ受信装置は、
    前記第1ポート、前記第2ポート又は前記予備ポートのいずれか一つ又は複数から前記入力データを受信し、前記連続番号の順番に基づいて前記入力データを処理するデータ処理部を備えた
    ことを特徴とするデータ伝送システム。
  7. 入力データが所定値未満のデータ長を有する第1データ又は前記所定値以上のデータ長を有する第2データかを判定し、
    前記入力データが前記第1データであれば第1ポートから送信し、
    前記入力データが前記第2データであれば第2ポートから送信し、
    前記第1ポートの送信レート及び前記第2ポートの送信レートが閾値以上か否かを判定し、
    前記送信レートの判定結果に基づき、前記入力データを予備ポートから送信し、
    前記第1データ及び前記第2データの双方を前記予備ポートから送信する場合、前記第2データを分割して送信する
    ことを特徴とするデータ伝送方法。
JP2012083171A 2012-03-30 2012-03-30 データ伝送装置、データ伝送システム及びデータ伝送方法 Expired - Fee Related JP5846018B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012083171A JP5846018B2 (ja) 2012-03-30 2012-03-30 データ伝送装置、データ伝送システム及びデータ伝送方法
US13/789,851 US8880759B2 (en) 2012-03-30 2013-03-08 Apparatus and method for fragmenting transmission data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012083171A JP5846018B2 (ja) 2012-03-30 2012-03-30 データ伝送装置、データ伝送システム及びデータ伝送方法

Publications (2)

Publication Number Publication Date
JP2013214827A JP2013214827A (ja) 2013-10-17
JP5846018B2 true JP5846018B2 (ja) 2016-01-20

Family

ID=49236608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012083171A Expired - Fee Related JP5846018B2 (ja) 2012-03-30 2012-03-30 データ伝送装置、データ伝送システム及びデータ伝送方法

Country Status (2)

Country Link
US (1) US8880759B2 (ja)
JP (1) JP5846018B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10103980B1 (en) * 2012-03-14 2018-10-16 Juniper Networks, Inc. Methods and apparatus for maintaining an integrated routing and bridging interface
CN112751754B (zh) * 2019-10-29 2022-05-13 华为技术有限公司 双归接入时选择切换为工作状态的端口的方法和设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6029083A (ja) * 1983-07-28 1985-02-14 Kokusai Denshin Denwa Co Ltd <Kdd> マルチリンクパケット通信方式
JPH09312668A (ja) 1996-05-22 1997-12-02 Fujitsu Ltd データ優先転送装置
US5956341A (en) * 1996-12-13 1999-09-21 International Business Machines Corporation Method and system for optimizing data transmission line bandwidth occupation in a multipriority data traffic environment
JP2004208119A (ja) 2002-12-26 2004-07-22 Nec Engineering Ltd フレームリレーネットワークにおけるパケット送受信装置
JP2005303516A (ja) 2004-04-08 2005-10-27 Mitsubishi Electric Corp 通信装置および通信方法
JP2007053564A (ja) 2005-08-17 2007-03-01 Fujitsu Ltd ネットワークスイッチ装置
US20080205287A1 (en) * 2007-02-27 2008-08-28 Alcatel Lucent Apparatus and method for controlling the transfer of communication traffic to multiple links of a multi-link system
JP5272849B2 (ja) * 2009-03-27 2013-08-28 日本電気株式会社 通信装置、通信装置の制御方法

Also Published As

Publication number Publication date
US8880759B2 (en) 2014-11-04
JP2013214827A (ja) 2013-10-17
US20130262713A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
JP5629954B2 (ja) 少なくとも部分的なフレーム送信に対して割り込みが可能な装置、方法、およびプログラム
CN101640644A (zh) 基于灵活链路组的流量均衡方法和设备
EP3849135B1 (en) Method and device for load balancing and message reordering in network
WO2015096548A1 (zh) 基于优先级的流控pfc方法及发送设备、接收设备
US11018990B2 (en) Route priority configuration method, device, and controller
EP3787262A1 (en) Transmission apparatus, connection device, and method
JP5846018B2 (ja) データ伝送装置、データ伝送システム及びデータ伝送方法
US11552905B2 (en) Managing virtual output queues
Ammar et al. Dynamic SDN controllers-switches mapping for load balancing and controller failure handling
JP2008060700A (ja) バッファ制御装置及びバッファ制御方法
WO2019163518A1 (ja) 負荷分散システム及び負荷分散方法
JP2009278297A (ja) ゲートウエイ装置およびそれを含む通信システムならびに通信方法
JP2014086884A (ja) ネットワーク機器、方法、及びプログラム
JP6288633B2 (ja) ネットワーク制御方法
EP3232617B1 (en) Protection switching method and system, and nodes
US11652707B2 (en) Network management system and method
CN115987763A (zh) 一种流的搬移方法及网络设备
JP6752355B2 (ja) 中継装置及びデータ転送方法
JP5169848B2 (ja) サーバー装置における省電力方法、省電力制御プログラム及びサーバー装置
JP2008283646A (ja) ルータ装置
US11632334B2 (en) Communication apparatus and communication method
WO2016088371A1 (ja) 管理ノード、端末、通信システム、通信方法、および、プログラム記録媒体
US20190036843A1 (en) Inter-switch communication management apparatus, inter-switch communication management method, and computer-readable storage medium
WO2024041572A1 (zh) 业务处理方法、装置、设备、介质及程序产品
EP3965380A1 (en) Message traffic sending method and apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151023

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151109

R150 Certificate of patent or registration of utility model

Ref document number: 5846018

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees