以下に、本願の開示するデータ伝送装置及びデータ伝送方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するデータ伝送装置及びデータ伝送方法が限定されるものではない。
図1は、実施例1に係るデータ伝送装置のブロック図である。図1に示すように本実施例に係るデータ伝送装置1は、受信IF(Inter Face)11、12、受信バッファ21、22、フラグメント処理部31、32、スイッチ部4、フレームカウント部51、52、送信バッファ61、62及び送信IF71、72を有している。さらに、データ伝送装置1は、フラグメント制御部8、フレームカウント収集部9、記憶部10及びユーザインタフェース110を有している。
本実施例では、各フレームが流れる経路は、VLAN(Virtual Local Area Network)により指定される。すなわち、各フレームは、指定されたVLAN毎に通過経路が区分けされ、同じVLANを用いることを指定されたデータは同じ経路を通過する。各フレームには、VLANの識別情報が含まれている。以下では、VLANによって指定されるデータ伝送装置1内の経路をパスという。言い換えれば、同じVLANを用いることを指定されたフレームは同じパスを通過する。ただし、本実施例では、VLANにより転送するフレームの通過経路を区分けしたが、これは他の区分けを用いてもよく、例えば、装置から出力されたフレームがそれぞれ異なる経路、すなわち異なるパスを通過してもよい。
受信IF11及び12は、外部から入力されるフレームを受信するインタフェースである。受信IF11は、外部から入力されたフレームを受信し、受信バッファ21へ出力する。また、受信IF12は、外部から入力されたフレームを受信し、受信バッファ22へ出力する。
受信バッファ21は、受信IF11から受信したフレームを格納していく。受信バッファ22は、受信IF12から受信したフレームを格納していく。
フラグメント処理部31は、受信バッファ21に格納されているフレームを順次読み出していく。そして、フラグメント処理部31は、ユーザトラフィック毎、すなわち本実施例ではVLAN毎にフレームを処理していく。図1のフラグメント処理部31内の「1−1」〜「1−4」は、フラグメント処理部31におけるVLAN毎の処理機能を表している。ここで、「1−1」〜「1−4」は、前段の数字が受信したインタフェースを表し、後段の数字がVLANを表している。前段の数字が「1」の場合は受信IF11を表しており、前段の数字が「2」の場合は受信IF12を表している。例えば、「1−1」は、受信IF11から入力されたVLAN識別子が100のデータを処理する。そして、「1−1」〜「1−4」は、受信IF11から入力されたフレームであり、且つそれぞれ異なるVLANのフレームを処理する。フラグメント処理部31によるフレームに対する処理の内容は次に説明する。
フラグメント処理部31は、VLAN毎、すなわちパス毎にフラグメントを実行するフラグメント設定の指示、又はフラグメントの実行を停止するフラグメント解除の指示をフラグメント制御部8から受ける。
フラグメント処理部31は、フラグメント設定の指示を受けたパスを通過するフレームのうち予め決められたフレーム長より長いフレーム(以下では、「ロングフレーム」という。)に対してフラグメントを行う。このとき、フラグメント処理部31は、予め決められたフレーム長以下の大きさのフレーム(以下では、「ショートフレーム」という。)にはフラグメントは行わない。そして、フラグメント処理部31は、ショートフレーム及びフラグメントを行ったジャンボフレームをスイッチ部4へ出力する。例えば、フラグメント処理部31は、受信IF11で受信されたVLANの識別番号が100を経路とするフレームを「1−1」で処理している場合で説明する。この場合、フラグメント処理部31は、受信IF11で受信されたVLANの識別番号が100を経路とするフレームに対してフラグメントをフラグメント制御部8から指示された場合、「1−1」を通過するロングフレームに対してフラグメントを行い出力する。
また、フラグメント処理部31は、フラグメント設定が指示されていないパス及びフラグメント解除が指示されたパスについては、ショートフレーム及びロングフレーム共に、受信バッファ21から読み出した状態でスイッチ部4へ出力する。
フラグメント処理部32は、受信バッファ21からフレームを読み出し、フラグメント制御部8の指示に従い各パスを通過するフレームに対してフラグメントを行い、スイッチ部4へ出力する。図1のフラグメント処理部32の中に記載されている「2−1」〜「2−4」は、フラグメント処理部32におけるVLAN毎の処理機能を表している。フラグメント処理部32の動作の詳細は、フラグメント処理部31と同様であるので、説明を省略する。
スイッチ部4は、フレームの入力をフラグメント処理部31及び32から受ける。そして、スイッチ部4は、VLANの設定に従い、受信したフレームをフレームカウント部51又は52に出力する。例えば、VLAN100が、フラグメント処理部31の「1−1」を経由し後述するフレームカウント部51の「3−1」を通過するパスを有している場合、スイッチ部4は、フラグメント処理部31の「1−1」から受信したフレームをフレームカウント部51の「3−1」へ出力する。
フレームカウント部51及び52は、ショートフレーム用のカウンタ及びロングフレーム用のカウンタを有している。フレームカウント部51及び52は、受信したフレームの数をカウントする。
フレームカウント部51は、VLAN毎、すなわちパス毎にフレームの入力をスイッチ部4から受ける。図1におけるフレームカウント部51の中の「3−1」〜「3−4」は、フレームカウント部51におけるVLAN毎の処理機能を表している。ここで、「3−1」〜「3−4」は、前段の数字が受信したインタフェースを表し、後段の数字がVLANを表している。前段の数字が「3」の場合は後述する送信IF71を表しており、前段の数字が「4」の場合は送信IF72を表している。例えば、「3−1」は、送信IF71から出力されるVLAN識別子が100のデータを処理する。そして、「3−1」〜「3−4」は、送信IF71から出力されるフレームであり、且つそれぞれ異なるVLANのフレームを処理する。フレームカウント部51によるフレームに対する処理の内容は次に説明する。
フレームカウント部51は、パス毎に受信したフレームの中のショートフレームの数及びロングフレームの数をそれぞれのカウンタを用いてカウントしていく。そして、フレームカウント部51は、受信したフレームを送信バッファ61へ出力する。
同様に、フレームカウント部52は、スイッチ部4から受信したフレームのショートフレームの数及びロングフレームの数をそれぞれカウントする。そして、フレームカウント部52は、受信したフレームを送信バッファ62へ出力する。
送信バッファ61は、フレームカウント部51から受信したフレームを格納していく。送信バッファ62は、フレームカウント部52から受信したフレームを取得し格納していく。
送信IF71は、送信バッファ61に格納されているフレームを読み出し、回線が接続されている外部の装置へ出力する。送信IF72は、送信バッファ62に格納されているフレームを読み出し、回線が接続されている外部の装置へ出力する。
記憶部10は、フラグメント状態管理テーブル101、パス接続管理テーブル102、優先パス判定テーブル103及びカウンタ管理テーブル104を格納している。各テーブルについては後で詳細に説明する。
以下の説明では、図2に示すようにパスが通っている状態を例に説明する。図2は、パスの状態の一例を説明するための図である。
図2では、パスP1は、受信IF11、受信バッファ21、フラグメント処理部31の「1−1」、スイッチ部4、フレームカウント部51の「3−1」、送信バッファ61及び送信IF71を通過するパスである。パスP2は、受信IF11、受信バッファ21、フラグメント処理部31の「1−2」、スイッチ部4、フレームカウント部51の「3−2」、送信バッファ61及び送信IF71を通過するパスである。パスP3は、受信IF12、受信バッファ22、フラグメント処理部32の「2−1」、スイッチ部4、フレームカウント部51の「3−3」、送信バッファ61及び送信IF71を通過するパスである。パスP4は、受信IF12、受信バッファ22、フラグメント処理部32の「2−2」、スイッチ部4、フレームカウント部52の「4−1」、送信バッファ62及び送信IF72を経由する。
操作者は、ユーザインタフェース110を用いて、パスの接続先と接続元との対応をパス接続管理テーブル102に登録する。パスの接続先は、フレームを受けるインタフェースとVLANの識別子とによって表される。すなわち、パスの接続先は、フラグメント処理部31の「1−1」〜「1−4」及びフラグメント処理部32の「2−1」〜「2−4」のいずれかに1対1で対応する。また、パスの接続元は、フレームを出力するインタフェースとVLANの識別子とによって表される。すなわち、パスの接続先は、フレームカウント部51の「3−1」〜「3−4」及びフレームカウント部52の「4−1」〜「4−4」のいずれかに1対1で対応する。パス接続管理テーブル102には、図3に示すようにユーザインタフェース110を用いて操作者が入力した設定が登録される。図3は、パス接続管理テーブルの一例の図である。図3は、図2で表されるパスの状態を表している。パス接続管理テーブル102では、行401に接続元ID(IDentification)が登録され、行402で接続先IDが登録される。ここで、パスの接続元はフラグメント処理部31の「1−1」〜「1−4」及びフラグメント処理部32の「2−1」〜「2−4」のいずれかに1対1で対応するので、パスの接続元IDを「1−1」〜「1−4」及び「2−1」〜「2−4」を用いて表す。また、パスの接続先はフレームカウント部51の「3−1」〜「3−4」及びフレームカウント部52の「4−1」〜「4−4」のいずれかに1対1で対応するので、パスの接続先IDを「3−1」〜「3−4」及び「4−1」〜「4−4」を用いて表す。また、以下の説明でもパスの接続元及び接続先はそれらの符号を用いて表すものとする。パスP1は「1−1」と「3−1」とを通過しているので、パスP1における接続元IDは「1−1」であり接続先IDは「3−1」である。そこで、接続先IDとして「3−1」が記載された欄411に対応する欄421には、接続元IDとして「1−1」が記載されている。パスP2は「1−2」と「3−2」とを通過しているので、パスP2における接続元IDは「1−2」であり接続先IDは「3−2」である。そこで、接続先IDとして「3−2」が記載された欄412に対応する欄422には、接続元IDとして「1−2」が記載されている。パスP3は「2−1」と「3−3」とを通過しているので、パスP3における接続元IDは「2−1」であり接続先IDは「3−3」である。そこで、接続先IDとして「3−3」が記載された欄413に対応する欄423には、接続元IDとして「2−1」が記載されている。パスP4は「2−2」と「4−1」とを通過しているので、パスP4における接続元IDは「2−2」であり接続先IDは「4−1」である。そこで、接続先IDとして「4−1」が記載された欄414に対応する欄424には、接続元IDとして「2−2」が記載されている。また、例えば、フラグメント処理部32の「2−4」にはパスが張られていない。そこで、接続先IDとして「2−4」が記載された欄415に対応する接続元IDを表す欄425には「Null」が記載されている。同様に、他のパスが張られていない接続先IDに対応する接続元IDの欄にも「Null」が記載されている。
フレームカウント収集部9は、タイマを有している。また、フレームカウント収集部9は、フレームカウント値を収集する周期を予め記憶している。そして、フレームカウント収集部9は、タイマで経過時間を計測し、フレームカウント部51及び52がカウントした各フレームの数であるフレームカウント値を収集する周期が到来したか否かを判定する。フレームカウント値を収集する周期が来ると、フレームカウント収集部9は、フレームカウント部51及びフレームカウント部52からVLAN毎のショートフレームの数及びロングフレームの数を取得する。そして、フレームカウント収集部9は、取得したショートフレームの数及びロングフレームの数をVLAN毎に図4に示すようにカウンタ管理テーブル104に登録する。図4は、カウンタ管理テーブルの一例の図である。
図4に示すように、カウンタ管理テーブル104は、接続先IDに対応させて、ショートフレームの数を示す列201(図では「short」と表示している)とロングフレームの数を示す列202(図では「long」と表示している)を有している。例えば、図4では、接続先IDが「3−1」であるパスにおけるショートフレームの数を表す欄211の値が5、ロングフレームの数を表す欄221の値が0である。すなわち、図4の状態では、接続先IDが「3−1」のパスには、ショートフレームが5つ流れ、ロングフレームが1つも流れていないことを表している。ここでは、フレームカウント収集部9が図4に示すカウンタ管理テーブル104のように、各フレームカウント値を収集した場合で説明する。
次に、フレームカウント収集部9は、自己が収集したフレームカウント値を登録したカウンタ管理テーブル104を参照し、各パスにおいて、ショートフレームが予め決められた数以上であり、且つロングフレームが0であるか否かを検出する。
そして、フレームカウント収集部9は、優先パス判定テーブル103においてショートフレームが例えば3などの閾値以上であり、且つロングフレームが0であるパスの送信状態判定結果として「TRUE」を設定する。また、フレームカウント収集部9は、優先パス判定テーブル103においてショートフレームが閾値未満である、又はロングフレームが1以上であるパスの送信状態判定結果として「FALSE」を設定する。これにより、フレームカウント収集部9は、図5に示すような優先パス判定テーブル103を作成する。図5は、優先パス判定テーブルの一例の図である。優先パス判定テーブル103は、図5に示すように接続先IDに対応する送信状態判定結果を表す列301を有している。例えば、ショートフレームの閾値を3とした場合、図4において、接続先IDが3−1であるパスは、ショートフレームが5であり、ロングフレームが0であるので、フレームカウント収集部9は接続先IDが3−1に対応する欄311にTUREを設定する。また、接続先IDが3−2、3−3及び4−1のパスはいずれもロングフレームが1以上であるので、フレームカウント収集部9は、接続先IDが3−2、3−3及び4−1に対応する欄312、313及び314にFALSEを設定する。また、その他の接続先IDはパスが張られていないので、フレームカウント収集部9は値を設定しない。
そして、フレームカウント収集部9は、優先パス判定テーブル103の作成が完了すると、フラグメント制御部8に対してフラグメント処理の制御を依頼する。
フラグメント制御部8は、フラグメント処理の制御の依頼をフレームカウント収集部9から受けると、優先パス判定テーブル103から各パスの送信状態判定結果を取得する。さらにフラグメント制御部8は、図6に示すようなフラグメント状態管理テーブル101を取得する。図6は、フラグメント状態管理テーブルの一例の図である。
フラグメント状態管理テーブル101は、接続先IDに対応する今周期の優先パス状態を表す列501を有する。列501の今周期の優先パス状態には、接続先IDに対応するパスのフラグメント制御部8による今回判定した優先パス状態の結果が登録される。本実施例では、優先パス状態として、優先パス、非優先パス及び保護中パスの3種類を用いる。優先パスは、同じ送信インタフェースを用いる他のパスがある場合に、他のパスにおいてフラグメントが行われるパスである。逆に、非優先パスは、同じ送信インタフェースを用いる他のパスの中に優先パスがある場合、自己においてフラグメントを行うパスである。保護中パスは、優先パスであったものが非優先パスに変わる場合に、所定期間他のパスにおけるフラグメントを継続させる状態のパスである。また、フラグメント状態管理テーブル101は、前回の優先パスの判定結果が登録されている前周期の優先パス状態を表す列502を有する。また、フラグメント状態管理テーブル101は、接続先IDに対応するパスにおいてフラグメント設定がなされているか否かを表すフラグメント制御状態を表す列503を有する。また、フラグメント状態管理テーブル101は、フラグメントの解除を一定期間保留するフラグメント解除保護が行われているか否かを表す列504を有する。フラグメント解除保護については後で詳細に説明する。
フラグメント制御部8は、パス毎に今周期の優先パス状態を判定し、送信インタフェース毎に含まれるパスの優先パス状態に合わせてフラグメント制御方法を決定する。そして、フラグメント制御部8が、決定したフラグメント制御方法に合わせて、各パスのフラグメント制御状態を決定する。そして、フラグメント制御部8は、決定したフラグメント制御状態に合わせてフラグメント設定又は解除をフラグメント処理部31及び32に指示する。
優先パス状態の判定について具体的に説明する。フラグメント制御部8は、フラグメント制御の依頼をフレームカウント収集部9から受けると、全てのパスのうち1つを選択する。そして、フラグメント制御部8は、選択パスにおいてフラグメント制御状態が実施中か否かをフラグメント状態管理テーブル101のフラグメント制御状態から判定する。そして、選択パスにおいてフラグメント制御状態が実施中であれば、フラグメント制御部8は、選択パスの優先パス状態及びフラグメント解除保護の値を維持する。ここでは、フラグメント解除保護の値は「0」となる。ここで、フラグメント解除保護の値が「0」である場合、そのパスにおいてはフラグメント解除保護が行われていないことを表す。
これに対して、選択パスにおいてフラグメント制御状態が実施中でなければ、フラグメント制御部8は、選択パスの送信状態判定結果がTRUEであるか否かを優先パス判定テーブル103から判定する。選択パスの送信状態判定結果がTRUEである場合、フラグメント制御部8は、選択パスの今周期の優先パス状態を優先パスに設定し、さらにフラグメント解除保護を「0」に設定する。
一方、選択パスの送信状態判定結果がFALSEである場合、フラグメント制御部8は、選択パスの前周期の優先パス状態が優先パス、非優先パス又は保護中パスのいずれであったかを判定する。選択パスの前周期の優先パス状態が非優先パスの場合、フラグメント制御部8は、選択パスの優先パス状態及びフラグメント解除保護の値を維持する。
また、選択パスの前周期の優先パス状態が優先パスの場合、フラグメント制御部8は、選択パスの今周期の優先パス状態を保護中パスに設定し、フラグメント解除保護の値を予め決められた保護回数、例えば本実施例では「5」に設定する。ここで、前周期が優先パスであったものを突然非優先パスにした場合、ショートフレームの送信が少し遅れた場合や、ロングフレームが少し混ざった場合にもすぐに他のパスにおけるフラグメントが解除されてしまう。これでは、ショートフレームの連続送信の状態にすぐに復帰しても他のパスにおけるフラグメントが行われない期間が発生してしまい、遅延が許されないパスにおいて遅延が発生してしまうおそれがある。そこで、優先パスから非優先パスに変更する場合に、ある期間、例えば、本実施例では5周期分の間変更を行わずに現在の状態を維持し、その間にショートフレームの連続送信の状態に復帰した場合、フラグメントを継続できショートフレームの遅延を回避する。
また、選択パスの前周期の優先パス状態が保護中パスの場合、フラグメント制御部8は、フラグメント状態管理テーブル101における選択パスのフラグメント解除保護の値が0か否かを判定する。フラグメントフラグメント解除保護の値が0であれば、フラグメント制御部8は、選択パスの今周期の優先パス状態を非優先パスに設定し、フラグメント解除保護の値は0として維持する。これに対して、フラグメント解除保護の値が0でなければ、フラグメント制御部8は、選択パスの今周期の優先パスの状態を保護中パスとして維持し、さらに、フラグメント解除保護の値を1つデクリメントする。
フラグメント制御部8は、決定した選択パスの今周期の優先パス状態及びフラグメント解除保護の値をフラグメント状態管理テーブル101に登録する。そして、フラグメント制御部8は、以上の優先パス状態の判定を全てのパスについて行う。
次に、フラグメント制御方法の決定について具体的に説明する。フラグメント制御部8は、全てのパスの優先パス状態が決定すると、送信IF71及び72におけるフラグメント制御方法を一旦「解除」と設定することで、各送信インタフェースのフラグメント制御方法を初期化する。
次に、接続先IDにはどの送信インタフェースからフレームが出力されるかを表す情報が含まれているので、フラグメント制御部8は、接続先IDを用いて、同じ送信インタフェースを用いるパスを抽出する。本実施例では、フラグメント制御部8は、接続先IDの前段の値が同じパスを同じ送信インタフェースを用いるパスとして抽出する。そして、フラグメント制御部8は、送信インタフェースを1つずつ選び各送信インタフェースのフラグメント制御方法を決定する。以下では、送信IF71の場合で説明する。
そして、フラググメント制御部8は、送信IF71を用いるパスのうち1つを選択する。そして、フラグメント制御部8は、フラグメント状態管理テーブル101の現在の優先パス状態を参照し、選択パスの優先パス状態を判定する。選択パスが優先パスである場合、送信IF71のフラグメント制御方法を「設定」に決定する。この場合、送信IF71のフラグメント制御方法は「設定」に決定される。
また、選択パスが保護中パスである場合、フラグメント制御部8は、送信IF71のフラグメント制御方法を一旦「保持」とする。また、選択パスが非優先パスの場合、フラグメント制御部8は、送信IF71のフラグメント制御方法は「解除」のままとする。そして、フラグメント制御部8は、選択パスが保護中パス又は非選択パスの場合、送信IF71を用いる他の判定に使用していないパスから1つを選択して上述した判定を繰り返す。途中で、優先パスがあれば、フラグメント制御部8は、送信IF71のフラグメント制御方法を「設定」に決定する。これに対して、保護中パスと非優先パスのみの場合、フラグメント制御部8は、送信IF71のフラグメント制御方法を「保持」に決定する。また、非優先パスのみの場合、フラグメント制御部8は、送信IF71のフラグメント制御方法を「解除」に決定する。
次に、各パスのフラグメント制御状態の決定について具体的に説明する。フラグメント制御部8は、送信インタフェースを選択し、その送信インタフェースに含まれる各パスについてフラグメント制御をするか否かを判定していく。以下では、送信インタフェースとして送信IF71を選択した場合について説明する。
まず、フラグメント制御部8は、送信IF71に含まれる各パスの接続先IDに対応する接続元IDをパス接続管理テーブル102から取得する。
そして、送信IF71のフラグメント制御方法が「保持」の場合、フラグメント制御部8は、フラグメント処理部31及び32が行う接続元IDに対応する処理のフラグメント制御状態をそのまま維持する。
また、送信IF71のフラグメント制御方法が「設定」の場合、フラグメント制御部8は、送信IF71を用いるパスの中から1つのパスを選択する。そして、フラグメント制御部8は、選択パスの優先パス状態をフラグメント状態管理テーブル101から取得する。選択パスが優先パス又は保護中パスの場合、フラグメント制御部8は、選択パスの接続元IDに対応するフラグメント処理部31又は32が行う処理のフラグメント制御状態をそのまま維持し、そのまま次のパスの判定に進む。これに対して、選択パスが非優先パスの場合、フラグメント制御部8は、フラグメント処理部31又は32に対して選択パスの接続元IDに対応する処理におけるフラグメント設定を指示する。フラグメント制御部8は、送信IF71を用いるパス全てについて上記のフラグメント制御状態の決定を繰り返す。
また、送信IF71のフラグメント制御方法が「解除」の場合、フラグメント制御部8は、送信IF71を用いるパスの中から1つのパスを選択する。そして、フラグメント制御部8は、選択パスのフラグメント制御状態をフラグメント状態管理テーブル101から取得する。選択パスにおいてフラグメントが未実施の場合、フラグメント制御部8は、選択パスの接続元IDに対応するフラグメント処理部31又は32が行う処理のフラグメント制御状態をそのまま維持する。そのまま次のパスの判定に進む。これに対して、選択パスにおいてフラグメントが実施中の場合、フラグメント制御部8は、フラグメント処理部31又は32に対して選択パスの接続元IDに対応する処理におけるフラグメント解除を指示する。フラグメント制御部8は、送信IF71を用いるパス全てについて上記のフラグメント制御状態の決定を繰り返す。
フラグメント制御部8は、決定した全てのパスのフラグメント制御状態をフラグメント状態管理テーブル101のフラグメント制御状態に登録する。
次に、図7〜図11を参照して、本実施例に係るデータ伝送装置1におけるフラグメント制御処理の流れについて説明する。図7は、フラグメント制御処理の全体的な流れを表すフローチャートである。図8は、フレームカウンタ値の収集及びフレームの送信状態判定のフローチャートである。図9は、優先パス状態判定のフローチャートである。図10は、フラグメント制御方法の決定のフローチャートである。図11は、フラグメント制御状態決定のフローチャートである。
図7を参照して、フラグメント制御処理の全体的な概略を説明する。フレームカウント部51及び52は、パス毎にショートフレームの数及びロングフレームの数をカウントするフレームカウントを行う(ステップS1)。フレームカウント収集部9は、周期的に繰り返す収集タイミングが到来したか否かを判定する(ステップS2)。収集タイミングでない場合(ステップS2:否定)、フレームカウント部51及び52はステップS1を行う。
一方、収集タイミングの場合(ステップS2:肯定)、フレームカウント収集部9は、フレームカウンタ値の収集及びカウンタ管理テーブルへの登録、並びに送信状態判定結果の優先パス判定テーブル103への登録を行う(ステップS3)。
次に、フラグメント制御部8は、優先パス判定テーブル103及びフラグメント状態管理テーブル101を参照して各パスの優先パス状態を決定する(ステップS4)。
次に、フラグメント制御部8は、フラグメント状態管理テーブル101を用いて、送信IF71及び72のフラグメント制御方法を決定する(ステップS5)。
次に、フラグメント制御部8は、フラグメント状態管理テーブル101を用いて各パスのフラグメント制御状態を決定し、パス接続管理テーブル102を用いてフラグメント処理部31及び32にフラグメント設定又は解除を指示する(ステップS6)。
フラグメント処理部31及び32は、フラグメント制御部8からの指示に従い、パス毎、すなわちVLAN毎にフラグメントを実施する(ステップS7)。
次に、図8を参照して、フレームカウンタ値の収集及びフレームの送信状態の判定について説明する。図8のフローチャートは、図7におけるステップS3の処理を詳細にしたものの一例である。
フレームカウント収集部9は、フレームカウンタ値をフレームカウント部51及び52から取得する(ステップS101)。
次に、フレームカウント収集部9は、収集したフレームカウンタ値をカウンタ管理テーブル104に登録してカウンタ管理テーブルを更新する(ステップS102)。
フレームカウント収集部9は、フレームの送信状態の判定が終わっていないパスを1つ選択する(ステップS103)。
フレームカウント収集部9は、選択パスにおいてショートフレームの数が閾値以上で、且つロングフレームの数が0という条件に一致するか否かを判定する(ステップS104)。
条件に一致する場合(ステップS104:肯定)、フレームカウント収集部9は、優先パス判定テーブル103における選択パスの送信状態判定結果を「TURE」に設定する(ステップS105)。これに対して、条件に一致しない場合(ステップS104:否定)、フレームカウント収集部9は、優先パス判定テーブル103における選択パスの送信状態判定結果を「FALSE」に設定する(ステップS106)。
フレームカウント収集部9は、全てのパスに対するフレームの送信状態の判定が完了したか否かを判定する(ステップS107)。判定をしていないパスがある場合(ステップS107:否定)、フレームカウント収集部9は、ステップS103へ戻る。これに対して、全てのパスの判定が完了した場合(ステップS107:肯定)、フレームカウント収集部9は、フラグメント処理の制御をフラグメント制御部8に依頼する(ステップS108)。
次に、図9を参照して、優先パス状態の判定の流れについて説明する。図9のフローチャートは、図7におけるステップS4の処理を詳細にしたものの一例である。
フラグメント制御部8は、フラグメント制御の依頼をフレームカウント収集部9から受けると、全てのパスのうち1つを選択する。そして、フラグメント制御部8は、選択パスにおいてフラグメント制御状態が実施中か否かをフラグメント状態管理テーブル101のフラグメント制御状態から判定する(ステップS201)。
選択パスにおいてフラグメント制御状態が実施中の場合(ステップS201:肯定)、フラグメント制御部8は、フラグメント状態管理テーブル101の今周期の優先パスを非優先パスに設定し(ステップS202)、ステップS210へ進む。
これに対して、選択パスにおいてフラグメント制御状態が実施中でない場合(ステップS201:否定)、フラグメント制御部8は、選択パスの送信状態判定結果がTRUEであるか否かを優先パス判定テーブル103から判定する(ステップS203)。選択パスの送信状態判定結果がTRUEである場合(ステップS203:肯定)、フラグメント制御部8は、選択パスの今周期の優先パス状態を優先パスに設定し(ステップS204)、ステップS210へ進む。
一方、選択パスの送信状態判定結果がFALSEである場合(ステップS203:否定)、フラグメント制御部8は、選択パスの前周期の優先パス状態が優先パスであるか否かを判定する(ステップS205)。前周期の優先パス状態が優先パスでない場合(ステップS205:否定)、フラグメント制御部8は、選択パスの前周期の優先パス状態が非優先パスか否かを判定する(ステップS206)。
前周期の優先パスが非優先パスの場合(ステップS206:肯定)、フラグメント制御部8は、選択パスの今周期の優先パス状態を非優先パスに設定し(ステップS207)、ステップS210へ進む。
これに対して、前周期の優先パス状態が保護中パスの場合(ステップS206:否定)、フラグメント制御部8は、フラグメント状態管理テーブル101における選択パスのフラグメント解除保護の値が0か否かを判定する(ステップS208)。フラグメントフラグメント解除保護の値が0の場合(ステップS208:肯定)、フラグメント制御部8は、選択パスの今周期の優先パス状態を非優先パスに設定する(ステップS209)。
そして、フラグメント制御部8は、ステップS202、ステップS204、ステップS207又はステップS209に続いて、フラグメント解除保護の値を0に設定する(ステップS210)。
これに対して、フラグメント解除保護の値が0でない場合(ステップS208:否定)、フラグメント制御部8は、選択パスの今周期の優先パスの状態を保護中パスに設定する(ステップS211)。そして、フラグメント制御部8は、フラグメント解除保護の値を1つデクリメントする(ステップS212)。
これに対して、前周期の優先パス状態が優先パスの場合(ステップS205:肯定)、フラグメント制御部8は、選択パスの今周期の優先パス状態を保護中パスに設定する(ステップS213)。そして、フラグメント制御部8は、フラグメント解除保護の値を予め決められた保護回数に設定する(ステップS214)。
フラグメント制御部8は、決定した選択パスの今周期の優先パス状態及びフラグメント解除保護の値をフラグメント状態管理テーブル101に登録する。そして、フラグメント制御部8は、優先パス状態の判定及びフラグメント解除保護の値の決定を全てのパスについて完了したか否かを判定する(ステップS215)。完了していないパスがまだ残っている場合(ステップS215:否定)、フラグメント制御部8は、ステップS201へ戻る。これに対して、全てのパスについて完了した場合(ステップS215:肯定)、フラグメント制御部8は、優先パス状態の判定及びフラグメント解除保護の値の決定の処理を終了する。
ここで、このフローでは優先パス状態及びフラグメント解除保護状態を都度設定するように記載しているが、前回と同じ値を今回も採る場合にはフラグメント制御部8は、選択パスの優先パス状態及びフラグメント解除保護の値を維持してもよい。
次に、図10を参照して、フラグメント制御方法の決定の流れについて説明する。図10のフローチャートは、図7におけるステップS5の処理を詳細にしたものの一例である。ここでは、送信IF71のフラグメント制御方法の決定を例に説明する。
フラグメント制御部8は、送信IF71のフラグメント制御方法を一旦「解除」に設定する(ステップS301)。
次に、フラグメント制御部8は、送信IF71を用いるパスのうち1つを選択する。そして、フラグメント制御部8は、フラグメント状態管理テーブル101の現在の優先パス状態を参照し、選択パスの優先パス状態が優先パスか否かを判定する(ステップS302)。選択パスが優先パスである場合(ステップS302:肯定)、送信IF71のフラグメント制御方法を「設定」とする(ステップS303)。この場合、フラグメント制御部8は、送信IF71のフラグメント制御方法を「設定」と決定しフラグメント制御方法の決定の処理を終了する。
これに対して、選択パスが優先パスでない場合(ステップS302:否定)、フラグメント制御部8は、選択パスの優先パス状態が保護中パスか否かを判定する(ステップS304)。選択パスが保護中パスである場合(ステップS304:肯定)、フラグメント制御部8は、送信IF71のフラグメント制御方法を「保持」とする(ステップS305)。
これに対して、選択パスが保護中パスでない場合、すなわち非優先パスの場合(ステップS304:否定)、フラグメント制御部8は、送信IF71のフラグメント制御方法を「解除」のままとし、ステップS306へ進む。
そして、フラグメント制御部8は、フラグメント制御方法の判定を全てのパスで完了したか否かを判定する(ステップS306)。パスが未だ残っている場合(ステップS306:否定)、フラグメント制御部8は、ステップS302へ戻る。これに対して、全てのパスで判定が完了している場合(ステップS306:肯定)、フラグメント制御部8は、フラグメント制御方法の決定の処理を終了する。
次に、図11を参照して、フラググメント制御状態の決定の流れについて説明する。図11のフローチャートは、図7におけるステップS6の処理を詳細にしたものの一例である。ここでは、送信IF71を用いるパスについてのフラグメント制御状態の決定を例に説明する。
フラグメント制御部8は、送信IF71のフラグメント制御状態が「保持」か否かを判定する(ステップS401)。送信IF71のフラグメント制御方法が保持の場合(ステップS401:肯定)、フラグメント制御部8は、フラグメント処理部31及び32が行う接続元IDに対応する処理のフラグメント制御状態をそのまま維持し、フラグメント制御状態の決定の処理を終了する。
これに対して、送信IF71のフラグメント制御方法が「保持」でない場合(ステップS401:否定)、フラグメント制御部8は、送信IF71のフラグメント制御状態が「設定」か否かを判定する(ステップS402)。
フラグメント制御状態が「設定」の場合(ステップS402:肯定)、フラグメント制御部8は、送信IF71を用いるパスの中からフラググメント制御状態が決定していないパスを1つ選択する(ステップS403)。そして、フラグメント制御部8は、フラグメント状態管理テーブル101を参照し、選択パスが非優先パスか否かを判定する(ステップS404)。選択パスが非優先パスでない場合、すなわち、選択パスが優先パス又は保護中パスの場合(ステップS404:否定)、フラグメント制御部8は、選択パスの接続元IDに対応するフラグメント処理部31又は32が行う処理のフラグメント制御状態をそのまま維持し、ステップS407へ進む。これに対して、選択パスが非優先パスの場合(ステップS404:肯定)、フラグメント制御部8は、フラグメント処理部31又は32に対して選択パスの接続元IDに対応する処理におけるフラグメント設定を指示する(ステップS405)。さらに、フラグメント制御部8は、フラグメント状態管理テーブル101における選択パスのフラグメント制御状態を実施中に設定する(ステップS406)。そして、フラグメント制御部8は、送信IF71を用いるパス全てについてフラグメント制御状態の決定が完了したか否かを判定する(ステップS407)。フラグメント制御状態が決定していないパスが残っている場合(ステップS407:否定)、フラグメント制御部8は、ステップS403に戻る。
また、送信IF71のフラグメント制御方法が「設定」でない場合、すなわち「解除」の場合(ステップS402:否定)、フラグメント制御部8は、送信IF71を用いるパスの中からフラグメント制御状態が決定していないパスを1つ選択する(ステップS408)。そして、フラグメント制御部8は、選択パスのフラグメント制御状態をフラグメント状態管理テーブル101から取得し、選択パスにおいてフラグメントが実施中か否かを判定する(ステップS409)。選択パスにおいてフラグメントが未実施の場合(ステップS409:否定)、フラグメント制御部8は、選択パスの接続元IDに対応するフラグメント処理部31又は32が行う処理のフラグメント制御状態をそのまま維持し、ステップS412に進む。これに対して、選択パスにおいてフラグメントが実施中の場合(ステップS409:肯定)、フラグメント制御部8は、フラグメント処理部31又は32に対して選択パスの接続先IDに対応する処理におけるフラグメント解除を指示する(ステップS410)。さらに、フラグメント制御部8は、フラグメント状態管理テーブル101における選択パスのフラグメント制御状態を未実施に設定する(ステップS411)。そして、フラグメント制御部8は、送信IF71を用いるパス全てについてフラグメント制御状態の決定が完了したか否かを判定する(ステップS412)。フラグメント制御状態が決定していないパスが残っている場合(ステップS412:否定)、フラグメント制御部8は、ステップS408に戻る。
送信IF71を用いるパス全てについてフラグメント制御状態の決定が完了した場合(ステップS407又はステップS412:肯定)、フラグメント制御部8は、フラグメント制御状態の決定の処理を終了する。
次に、図12を参照して、本実施例に係るデータ伝送装置によるフラググメント処理の制御についてさらに説明する。図12は、実施例1に係るデータ伝送装置によるフラグメント処理の制御のシーケンス図である。
フレームカウント収集部9は、フレームカウント値の収集タイミングが到来すると定期起動する(ステップS501)。
そして、フレームカウント収集部9は、フレームカウント部51及び52からフレームカウンタ値を取得する(ステップS502)。
次に、フレームカウント収集部9は、収集したフレームカウンタ値をカウンタ管理テーブル104へ格納する(ステップS503)。
次に、フレームカウント収集部9は、カウンタ管理テーブル104から各パスのフレームカウンタ値を読み出す(ステップS504)。
次に、フレームカウント収集部9は、各パスにおけるフレームの送信状態を判定する(ステップS505)。そして、フレームカウント収集部9は、各パスの送信状態判定結果を優先パス判定テーブル103へ登録する(ステップS506)。
そして、フレームカウント収集部9は、フラグメント制御部8にフラグメント処理の制御を依頼する(ステップS507)。
フラグメント制御部8は、送信状態判定結果を優先パス判定テーブル103から取得する(ステップS508)。さらに、フラグメント制御部8は、フラグメント制御情報をカウンタ管理テーブル104から取得する(ステップS509)。
そして、フラグメント制御部8は、各パスの優先パス状態及びフラグメント解除保護を決定する(ステップS510)。そして、フラグメント制御部8は、決定した各パスの優先パス状態及びフラグメント解除保護をフラグメント状態管理テーブル101へ登録する(ステップS511)。
次に、フラグメント制御部8は、各パスの優先パス状態及びフラグメント解除保護をフラグメント状態管理テーブル101から取得する(ステップS512)。
そして、フラグメント制御部8は、送信IF71及び72におけるそれぞれのフラグメント制御方法を決定する(ステップS513)。
次に、フラグメント制御部8は、パス接続管理テーブル102から各パスの接続元と接続先との対応を表す接続状態を取得する(ステップS514)。さらに、フラグメント制御部8は、フラグメント状態管理テーブル101から各パスのフラグメント制御状態を取得する(ステップS515)。
そして、フラグメント制御部8は、各パスに対するフラグメント設定又はフラグメント解除であるフラグメント制御を決定する(ステップS516)。
その後、フラグメント制御部8は、各パスに対するフラグメント設定又は解除をフラグメント処理部31及び32に指示する(ステップS517)。さらに、フラグメント制御部8は、各パスの現在のフラグメント制御状態をフラグメント状態管理テーブル101に登録して更新する。
ここで、本実施例では、優先パス状態の1つとして保護中パスを用いたが、優先パスから非優先パスへの切替えに一定期間の余裕を持たせる必要がなければ、保護中パスを用いないこともできる。
(ハードウェア構成)
図13は、データ伝送装置のハードウェア構成図である。データ伝送装置1は、受信IF11、12、受信バッファ21、22、フラグメント制御回路601、602、スイッチ603、フレームカウント回路604、605、送信バッファ61、62、及び送信IF71,72を有している。さらに、データ伝送装置1は、CPU(Central Processing Unit)606、ROM(Read Only Memory)607、RAM(Random Access Memory)608及びHDD(Hard Disk Drive)609を有している。
フラグメント制御回路601、602、フレームカウント回路604、605、CPU606、ROM607、RAM608及びHDD609は、それぞれバスで接続されている。
フラグメント制御回路601及び602は、図1に示したフラグメント処理部31及び32の機能を実現する。
フレームカウント回路604及び605は、図1に示したフレームカウント部51及び52の機能を実現する。
CPU606、ROM607、RAM608及びHDD609は、図1に示したフラグメント制御部8及びフレームカウント収集部9等の機能を実現する。
具体的には、ROM607は、図1に示したフラグメント制御部8及びフレームカウント収集部9による処理を実現するプログラムなどの各種プログラムを格納している。RAM608は、例えば、通信接続用のデータ及びフレームカウント回路によってカウントされたフレームカウント値のデータが格納している。HDD609は、フラグメント状態管理テーブル101、パス接続管理テーブル102、優先パス判定テーブル103及びカウンタ管理テーブル104などを記憶している。さらに、HDD609は、通信接続用のテーブルを有している。
CPU606は、ROM607から各種プログラムを読み出し実行することで上述の各機能を実現するプロセスを生成する。
以上に説明したように、本実施例に係るデータ伝送装置は、ショートフレームのみが閾値以上流れているパスがある場合、そのパスを優先パスとして、優先パスと同じ送信インタフェースを用いている他のパスにおいてロングフレームに対するフラグメントを行う。これにより、帯域の余分な消費を軽減しつつショートフレームの遅延を軽減することができる。
また、保護中パスを用いてフラグメントを解除するまでに余裕を持たせることで、フラグメント設定と解除との切替えの頻度を抑えることができ、処理負荷を軽減するとともに、ショートフレームの遅延をより軽減することができる。