JP2010166138A - バッファ制御方法およびパケット転送装置 - Google Patents
バッファ制御方法およびパケット転送装置 Download PDFInfo
- Publication number
- JP2010166138A JP2010166138A JP2009004642A JP2009004642A JP2010166138A JP 2010166138 A JP2010166138 A JP 2010166138A JP 2009004642 A JP2009004642 A JP 2009004642A JP 2009004642 A JP2009004642 A JP 2009004642A JP 2010166138 A JP2010166138 A JP 2010166138A
- Authority
- JP
- Japan
- Prior art keywords
- clock
- buffer
- transmission
- unit
- ifg
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
【課題】クロック差が発生しうるパケット転送装置間において、送信バッファにおけるバッファあふれを防ぎ、MACフレームの破棄を防ぐ。
【解決手段】受信したMACフレームから送信クロック周波数を抽出して装置内クロック周波数とのクロック差を比較する。MACフレームのプリアンブルにフレームを受信したポートの番号を埋め込み、送信側でどの受信ポートから到来したMACフレームであるかを識別する。制御部1214は、ポート番号に対応するクロック差に基づき、装置内クロック周波数よりも速い送信クロック周波数を持つMACフレームの到来を判断し、且つ、送信バッファ(1208)の空き容量が予め定められたしきい値以下になった場合に、送信バッファ(1208)から出力されるMACフレーム間の間隔(IFG)をクロック差に応じた間隔に変更し、MACフレームの出力タイミングを早める。
【選択図】図12
【解決手段】受信したMACフレームから送信クロック周波数を抽出して装置内クロック周波数とのクロック差を比較する。MACフレームのプリアンブルにフレームを受信したポートの番号を埋め込み、送信側でどの受信ポートから到来したMACフレームであるかを識別する。制御部1214は、ポート番号に対応するクロック差に基づき、装置内クロック周波数よりも速い送信クロック周波数を持つMACフレームの到来を判断し、且つ、送信バッファ(1208)の空き容量が予め定められたしきい値以下になった場合に、送信バッファ(1208)から出力されるMACフレーム間の間隔(IFG)をクロック差に応じた間隔に変更し、MACフレームの出力タイミングを早める。
【選択図】図12
Description
本発明は、バッファ制御方法およびパケット転送装置に係り、特にイーサネット(登録商標)を用いて通信を行うバッファ制御方法およびパケット転送装置に関する。
イーサネット(登録商標)を用いた通信において、現在1M〜10Gbit/sまでの伝送速度が規格化され、40Git/sまたは100Gbit/sについても規格化が進行している。イーサネット(登録商標)通信に用いられる媒体としては、ツイストペア線や光ファイバーが用いられ、規格で定められた伝送速度で、媒体に適するように符号化されたデジタル信号(以後、ベースバンド信号と呼ぶ。)で直接送受信される。イーサネット(登録商標)を用いた通信は可変長のMAC(Media Access Control)フレーム単位で行われ、送信側が任意のタイミングでMACフレームを送信する非同期通信となっている(例えば、非特許文献1参照)。
上述の通り、MACフレームの送受信は非同期で行われるため、送信側の装置と受信側の装置でクロック差が発生する場合がある。イーサネット(登録商標)においては、±100ppmのクロック精度が規定されているため、最大で200ppmのクロック差が発生する場合がある。送信側の装置と受信側の装置でクロック差が発生したとき、送信側は自身の装置内クロックに従ってMACフレームを送信するだけなのでクロック差があっても問題は発生しないが、受信側の装置内クロックが送信側の装置内クロックよりも遅い場合、受信側の装置内の受信バッファがあふれる可能性がある。例えば、10Gbit/sの伝送速度の場合、1秒間で200万ビット(約1.9Mバイト)のデータが受信バッファにたまってしまい、最終的に受信バッファにMACフレーム等のデータを書き込めなくなる場合がある。そのため、イーサネット(登録商標)では連続して送信するMACフレーム間にインターフレームギャップ(Inter Frame Gap、以下、IFG)と呼ばれるアイドル区間を最低12バイト分設け、受信バッファがあふれそうになった場合、受信バッファ内のIFGからデータを削除して、受信バッファ内のデータを詰めることによりバッファあふれを防ぐ。
また、送信側の装置と受信側の装置のクロック差が少ない場合であっても、長期間にわたる通信ではクロック差により受信バッファに蓄積されるデータ量が積み重なりデータスリップが発生する場合がある。例えば、長期間にわたってクロック差が発生し続けると、いずれ受信バッファにおいてバッファあふれが起こり、データを受信バッファに書き込めずにデータを損失する場合がある。そこで、クロック偏差に応じて送出するデータ間隔を増減することによって、データスリップの発生を防ぐ方法がある。例えば、特許文献1に、受信クロック変動制御部により読み出し受信クロックの周波数を中心周波数に追い込み、データスリップが発生しないように制御し、書き込み受信部による受信バッファへのデータの書き込みと、読み出し受信部による受信バッファからのデータの読み出しとが擬似的に同期がとれた状態となり、安定した信号を送出することが開示されている。
また、特許文献2には、例えば、クロックのタイミングの修正やスキューの調整を行うために、バッファの信号蓄積量を監視し、検出した信号蓄積量の増減に応じて、インターフレームギャップに対するアイドルバイトの挿入または抜き取りを実施することが開示されている。
さらに、特許文献3には、例えば、受信クロックと送信クロックとの周波数差によってFIFOバッファの蓄積量がそのFIFOバッファの上限を超えることがないように、また、下限を下回ることがないように、アイドル符号のセットの挿抜を行うことが開示されている。
上述の通り、MACフレームの送受信は非同期で行われるため、送信側の装置と受信側の装置でクロック差が発生する場合がある。イーサネット(登録商標)においては、±100ppmのクロック精度が規定されているため、最大で200ppmのクロック差が発生する場合がある。送信側の装置と受信側の装置でクロック差が発生したとき、送信側は自身の装置内クロックに従ってMACフレームを送信するだけなのでクロック差があっても問題は発生しないが、受信側の装置内クロックが送信側の装置内クロックよりも遅い場合、受信側の装置内の受信バッファがあふれる可能性がある。例えば、10Gbit/sの伝送速度の場合、1秒間で200万ビット(約1.9Mバイト)のデータが受信バッファにたまってしまい、最終的に受信バッファにMACフレーム等のデータを書き込めなくなる場合がある。そのため、イーサネット(登録商標)では連続して送信するMACフレーム間にインターフレームギャップ(Inter Frame Gap、以下、IFG)と呼ばれるアイドル区間を最低12バイト分設け、受信バッファがあふれそうになった場合、受信バッファ内のIFGからデータを削除して、受信バッファ内のデータを詰めることによりバッファあふれを防ぐ。
また、送信側の装置と受信側の装置のクロック差が少ない場合であっても、長期間にわたる通信ではクロック差により受信バッファに蓄積されるデータ量が積み重なりデータスリップが発生する場合がある。例えば、長期間にわたってクロック差が発生し続けると、いずれ受信バッファにおいてバッファあふれが起こり、データを受信バッファに書き込めずにデータを損失する場合がある。そこで、クロック偏差に応じて送出するデータ間隔を増減することによって、データスリップの発生を防ぐ方法がある。例えば、特許文献1に、受信クロック変動制御部により読み出し受信クロックの周波数を中心周波数に追い込み、データスリップが発生しないように制御し、書き込み受信部による受信バッファへのデータの書き込みと、読み出し受信部による受信バッファからのデータの読み出しとが擬似的に同期がとれた状態となり、安定した信号を送出することが開示されている。
また、特許文献2には、例えば、クロックのタイミングの修正やスキューの調整を行うために、バッファの信号蓄積量を監視し、検出した信号蓄積量の増減に応じて、インターフレームギャップに対するアイドルバイトの挿入または抜き取りを実施することが開示されている。
さらに、特許文献3には、例えば、受信クロックと送信クロックとの周波数差によってFIFOバッファの蓄積量がそのFIFOバッファの上限を超えることがないように、また、下限を下回ることがないように、アイドル符号のセットの挿抜を行うことが開示されている。
IEEE Std 802.3TM−2005 Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications
従来の転送装置では、受信したMACフレームを例えば他の装置へ転送するとき、転送元の伝送速度が転送先への伝送速度より速い場合、転送するMACフレームをバッファリングするための送信バッファについてもバッファあふれが発生する可能性がある。
また、特許文献1に示す技術のように、送信間隔を整えることでデータスリップを回避する方法では、例えば、急激なクロック変動により一定時間あたりに書き込むデータ量が急増して、瞬間的なバッファあふれが発生した際には、対応できない場合がある。
また、イーサネット(登録商標)規格では、バッファあふれを回避するためのフロー制御が規定されており、送信側へ送信停止要求をすることが可能だが、送信を停止している間等の待ち時間に比例してデータ遅延が発生し及びスループットが低下する場合がある。
また、転送装置が受けている各MACフレームのクロック(各転送元の伝送速度)の内、偏差が最大(最速)のクロックで転送装置を駆動すればバッファあふれは発生しないが、元々±100ppmという低精度なクロックの精度であるため、現状最速なクロックが今後も最速のクロックであるとは限らず、その後さらにクロック差が生じる場合がある。また、例えば、受信側の装置内クロックを動的に変更可能にした場合でも、クロック変動により動作が不安定になる可能性があり、また一般的に動的に動作クロックを変更する回路は複雑で高価なものになる。
本発明は、以上の点に鑑み、クロック差が発生しうるパケット転送装置間において、送信バッファにおけるバッファあふれを防ぎ、MACフレームの破棄を防ぐことを目的とする。
また、特許文献1に示す技術のように、送信間隔を整えることでデータスリップを回避する方法では、例えば、急激なクロック変動により一定時間あたりに書き込むデータ量が急増して、瞬間的なバッファあふれが発生した際には、対応できない場合がある。
また、イーサネット(登録商標)規格では、バッファあふれを回避するためのフロー制御が規定されており、送信側へ送信停止要求をすることが可能だが、送信を停止している間等の待ち時間に比例してデータ遅延が発生し及びスループットが低下する場合がある。
また、転送装置が受けている各MACフレームのクロック(各転送元の伝送速度)の内、偏差が最大(最速)のクロックで転送装置を駆動すればバッファあふれは発生しないが、元々±100ppmという低精度なクロックの精度であるため、現状最速なクロックが今後も最速のクロックであるとは限らず、その後さらにクロック差が生じる場合がある。また、例えば、受信側の装置内クロックを動的に変更可能にした場合でも、クロック変動により動作が不安定になる可能性があり、また一般的に動的に動作クロックを変更する回路は複雑で高価なものになる。
本発明は、以上の点に鑑み、クロック差が発生しうるパケット転送装置間において、送信バッファにおけるバッファあふれを防ぎ、MACフレームの破棄を防ぐことを目的とする。
上述の課題を解決するために、本発明は、例えば、受信したMACフレームから送信側の装置内クロックを抽出して受信側の装置内クロックとのクロック差を比較する手段と、MACフレームのプリアンブルに受信したポートの識別番号を埋め込み、またどの受信ポートから到来したMACフレームであるかを識別する手段と、空き容量を通知可能な送信バッファを持ち、受信側の装置内クロックよりも速い送信側の装置内クロックを持つMACフレームの到来を識別し、送信バッファの空き容量が予め定められたしきい値以下になった場合に、送信バッファから出力されるMACフレーム間の間隔をクロック差に応じた間隔に変更可能な機能を有することにより、MACフレームの出力タイミングを早めることでバッファあふれを防ぐ。
本発明のパケット転送装置は、例えば、
複数の対向装置と接続可能な複数のポートを持ち、前記ポートから受信したベースバンド信号をデジタル信号へ変換および前記ポートへ送信するデジタル信号をベースバンド信号に変換する回線収容部と、前記回線収容部からMACフレームを受信する受信バッファと、MACフレームの処理を実施するMAC処理部と、前記MAC処理部から転送されるMACフレームの転送処理を行うパケット処理部を持ち、前記パケット処理部から転送先のMAC処理部を経由して転送されたMACフレームをバッファリングしバッファ空き容量を通知可能な送信バッファと、MACフレーム間に挿入するIFGパターンを生成するIFG生成部と、MACフレームとIFGパターンを選択するセレクタと、それらを制御する制御部を持つパケット転送装置において、受信したMACフレームは受信バッファでバッファリングした後にMAC処理部を経由してパケット処理部へと転送され、前記パケット処理部にて転送先と判定されたMACフレームは送信先のポートに対応したMAC処理部を経由して送信バッファへ転送され、制御部は前記送信バッファから通知された空き容量から送信バッファあふれが発生すると判断した場合、IFG生成部からMACフレーム間に挿入されるIFGパターンの長さを送信バッファの空き容量に対応して短くすることにより、送信バッファあふれを抑える。
複数の対向装置と接続可能な複数のポートを持ち、前記ポートから受信したベースバンド信号をデジタル信号へ変換および前記ポートへ送信するデジタル信号をベースバンド信号に変換する回線収容部と、前記回線収容部からMACフレームを受信する受信バッファと、MACフレームの処理を実施するMAC処理部と、前記MAC処理部から転送されるMACフレームの転送処理を行うパケット処理部を持ち、前記パケット処理部から転送先のMAC処理部を経由して転送されたMACフレームをバッファリングしバッファ空き容量を通知可能な送信バッファと、MACフレーム間に挿入するIFGパターンを生成するIFG生成部と、MACフレームとIFGパターンを選択するセレクタと、それらを制御する制御部を持つパケット転送装置において、受信したMACフレームは受信バッファでバッファリングした後にMAC処理部を経由してパケット処理部へと転送され、前記パケット処理部にて転送先と判定されたMACフレームは送信先のポートに対応したMAC処理部を経由して送信バッファへ転送され、制御部は前記送信バッファから通知された空き容量から送信バッファあふれが発生すると判断した場合、IFG生成部からMACフレーム間に挿入されるIFGパターンの長さを送信バッファの空き容量に対応して短くすることにより、送信バッファあふれを抑える。
また、本発明の他のパケット転送装置は、例えば、
複数の対向装置と接続可能な複数のポートを持ち、前記ポートから受信したベースバンド信号をデジタル信号へ変換および前記ポートへ送信するデジタル信号をベースバンド信号に変換する回線収容部と、前記回線収容部からMACフレームを受信する受信バッファと、前記回線収容部から受信したMACフレームから送信クロックを抽出可能なクロック抽出部と、前記クロック抽出部にて抽出された送信クロックと装置内クロックと比較するクロック比較部と、前記クロック比較部にて比較されたクロック差情報を格納するクロック差テーブルと、MACフレームの処理を実施するMAC処理部と、前記MAC処理部から転送されるMACフレームの転送処理を行うパケット処理部を持ち、前記パケット処理部から転送先のMAC処理部を経由して転送されたMACフレームをバッファリングしバッファ空き容量を通知可能な送信バッファと、MACフレーム間に挿入するIFGパターンを生成するIFG生成部と、MACフレームとIFGパターンを選択するセレクタと、それらを制御する制御部を持つパケット転送装置において、各受信ポートにて受信されたMACフレームから抽出した送信クロックと装置内クロックとそれらの差をクロック差テーブルに任意のタイミングで書き出すとともに、受信したMACフレームは受信バッファでバッファリングした後、前記MAC処理部を経由してパケット処理部へと転送され、前記パケット処理部にて転送先と判定されたMACフレームは送信先のポートに対応したMAC処理部を経由して送信バッファへ転送され、制御部は前記クロック差テーブルを照会して装置内クロックよりも速いポートからのMACフレームが到着する可能性があり、かつ送信バッファから通知された空き容量から送信バッファあふれが発生すると判断した場合、IFG生成部からMACフレーム間に挿入されるIFGパターンの長さを送信バッファの空き容量に対応した分短くすることにより、送信バッファあふれを抑える。
複数の対向装置と接続可能な複数のポートを持ち、前記ポートから受信したベースバンド信号をデジタル信号へ変換および前記ポートへ送信するデジタル信号をベースバンド信号に変換する回線収容部と、前記回線収容部からMACフレームを受信する受信バッファと、前記回線収容部から受信したMACフレームから送信クロックを抽出可能なクロック抽出部と、前記クロック抽出部にて抽出された送信クロックと装置内クロックと比較するクロック比較部と、前記クロック比較部にて比較されたクロック差情報を格納するクロック差テーブルと、MACフレームの処理を実施するMAC処理部と、前記MAC処理部から転送されるMACフレームの転送処理を行うパケット処理部を持ち、前記パケット処理部から転送先のMAC処理部を経由して転送されたMACフレームをバッファリングしバッファ空き容量を通知可能な送信バッファと、MACフレーム間に挿入するIFGパターンを生成するIFG生成部と、MACフレームとIFGパターンを選択するセレクタと、それらを制御する制御部を持つパケット転送装置において、各受信ポートにて受信されたMACフレームから抽出した送信クロックと装置内クロックとそれらの差をクロック差テーブルに任意のタイミングで書き出すとともに、受信したMACフレームは受信バッファでバッファリングした後、前記MAC処理部を経由してパケット処理部へと転送され、前記パケット処理部にて転送先と判定されたMACフレームは送信先のポートに対応したMAC処理部を経由して送信バッファへ転送され、制御部は前記クロック差テーブルを照会して装置内クロックよりも速いポートからのMACフレームが到着する可能性があり、かつ送信バッファから通知された空き容量から送信バッファあふれが発生すると判断した場合、IFG生成部からMACフレーム間に挿入されるIFGパターンの長さを送信バッファの空き容量に対応した分短くすることにより、送信バッファあふれを抑える。
さらに、本発明の他のパケット転送装置は、例えば、
複数の対向装置と接続可能な複数のポートを持ち、前記ポートから受信したベースバンド信号をデジタル信号へ変換および前記ポートへ送信するデジタル信号をベースバンド信号に変換する回線収容部と、前記回線収容部からMACフレームを受信する受信バッファと、前記回線収容部から受信したMACフレームから送信クロックを抽出可能なクロック抽出部と、前記クロック抽出部にて抽出された送信クロックと装置内クロックと比較するクロック比較部と、前記クロック比較部にて比較されたクロック差情報を格納するクロック差テーブルと、MACフレームのプリアンブルに受信ポート番号を付加するポート番号付加部と、MACフレームの処理を実施するMAC処理部と、前記MAC処理部から転送されるMACフレームの転送処理を行うパケット処理部を持ち、前記パケット処理部から転送先のMAC処理部を経由して転送されたMACフレームのプリアンブルからポート番号を抽出・削除してポート番号を通知可能なポート番号識別部と、前記ポート番号識別部から転送されたMACフレームをバッファリングしバッファ空き容量を通知可能な送信バッファと、MACフレーム間に挿入するIFGパターンを生成するIFG生成部と、MACフレームとIFGパターンを選択するセレクタと、それらを制御する制御部を持つパケット転送装置において、各受信ポートにて受信されたMACフレームから抽出した送信クロックと装置内クロックとそれらの差をクロック差テーブルに任意のタイミングで書き出すとともに、受信したMACフレームは受信バッファでバッファリングした後ポート番号部付与部に転送され、ポート番号付与部では転送されたMACフレームのプリアンブルに受信したポート番号を書き込んだ後にMAC処理部を経由してパケット処理部へと転送され、前記パケット処理部にて転送先と判定されたMACフレームは送信先のポートに対応したMAC処理部に転送され、前記MAC処理部からMACフレームを転送されたポート番号識別部はMACフレームからポート番号を削除するとともにそのポート番号情報を制御部へと通知し、前記ポート番号情報を通知された制御部はポート番号を前記クロック差テーブルへ照会し、装置内クロックよりも速いポートからのMACフレームが到着していると判断でき、かつ送信バッファから通知された空き容量から送信バッファあふれが発生すると判断した場合、IFG生成部からMACフレーム間に挿入されるIFGパターンの長さを送信バッファの空き容量に対応した分短くすることにより、送信バッファあふれを抑える。
複数の対向装置と接続可能な複数のポートを持ち、前記ポートから受信したベースバンド信号をデジタル信号へ変換および前記ポートへ送信するデジタル信号をベースバンド信号に変換する回線収容部と、前記回線収容部からMACフレームを受信する受信バッファと、前記回線収容部から受信したMACフレームから送信クロックを抽出可能なクロック抽出部と、前記クロック抽出部にて抽出された送信クロックと装置内クロックと比較するクロック比較部と、前記クロック比較部にて比較されたクロック差情報を格納するクロック差テーブルと、MACフレームのプリアンブルに受信ポート番号を付加するポート番号付加部と、MACフレームの処理を実施するMAC処理部と、前記MAC処理部から転送されるMACフレームの転送処理を行うパケット処理部を持ち、前記パケット処理部から転送先のMAC処理部を経由して転送されたMACフレームのプリアンブルからポート番号を抽出・削除してポート番号を通知可能なポート番号識別部と、前記ポート番号識別部から転送されたMACフレームをバッファリングしバッファ空き容量を通知可能な送信バッファと、MACフレーム間に挿入するIFGパターンを生成するIFG生成部と、MACフレームとIFGパターンを選択するセレクタと、それらを制御する制御部を持つパケット転送装置において、各受信ポートにて受信されたMACフレームから抽出した送信クロックと装置内クロックとそれらの差をクロック差テーブルに任意のタイミングで書き出すとともに、受信したMACフレームは受信バッファでバッファリングした後ポート番号部付与部に転送され、ポート番号付与部では転送されたMACフレームのプリアンブルに受信したポート番号を書き込んだ後にMAC処理部を経由してパケット処理部へと転送され、前記パケット処理部にて転送先と判定されたMACフレームは送信先のポートに対応したMAC処理部に転送され、前記MAC処理部からMACフレームを転送されたポート番号識別部はMACフレームからポート番号を削除するとともにそのポート番号情報を制御部へと通知し、前記ポート番号情報を通知された制御部はポート番号を前記クロック差テーブルへ照会し、装置内クロックよりも速いポートからのMACフレームが到着していると判断でき、かつ送信バッファから通知された空き容量から送信バッファあふれが発生すると判断した場合、IFG生成部からMACフレーム間に挿入されるIFGパターンの長さを送信バッファの空き容量に対応した分短くすることにより、送信バッファあふれを抑える。
本発明の第1の解決手段によると、
送信するフレーム間に予め定められた長さのギャップパターンを挿入して出力するパケット転送装置において、
フレームを送受信するための回線収容部と、
前記回線収容部を介して受信したフレームを蓄積する受信バッファと、
前記受信バッファに蓄積されたフレームを転送するパケット処理部と、
前記パケット処理部から転送されたフレームを蓄積する送信バッファと、
フレーム間に挿入するギャップパターンを生成するギャップ生成部と、
前記送信バッファに蓄積されたフレーム及び前記ギャップ生成部で生成されたギャップパターンを選択し、回線収容部を介して出力するセレクタと、
前記送信バッファの空き容量を監視し、該空き容量が予め定められた閾値以下になると、前記セレクタを制御して前記ギャップ生成部から出力するギャップパターンの長さを前記予め定められた長さより短くし、前記送信バッファからのフレームの読み出しを速くする制御部と
を備えた前記パケット転送装置が提供される。
また、上述のパケット転送装置は、
受信したフレームのクロック周波数を抽出するクロック抽出部と、
前記クロック抽出部で抽出されたクロック周波数と、装置内クロックの周波数を比較するクロック比較部と
をさらに備え、
前記制御部は、抽出されたクロック周波数が装置内クロックの周波数より速く、かつ、前記送信バッファの空き容量が予め定められた閾値以下の場合に、前記セレクタを制御して前記ギャップ生成部から出力するギャップパターンの長さを前記予め定められた長さより短くし、前記送信バッファからのフレームの読み出しを速くする。
また、上述のパケット転送装置は、
前記回線収容部が有する所定のポートを介して受信されたフレームのクロック周波数を抽出するクロック抽出部と、
前記クロック抽出部で抽出されたクロック周波数と、装置内クロックの周波数を比較するクロック比較部と、
前記ポートを識別するポート識別子毎に、抽出されたクロック周波数と装置内クロックの周波数を含むクロック情報、又は、抽出されたクロック周波数と装置内クロックの周波数との差を含むクロック情報が記憶されたクロック情報記憶部と、
前記ポートを介して受信されたフレームに、該ポートのポート識別子を付加するポート識別子付加部と、
前記パケット処理部から転送されたフレームに付加されたポート識別子を、前記制御部に出力するポート識別部と
をさらに備え、
前記制御部は、前記ポート識別部からポート識別子を入力し、該ポート識別子に基づき前記クロック情報記憶部を参照し、対応するクロック情報に従い該ポート識別子が示すポートで受信されたフレームのクロック周波数が装置内クロックの周波数より速いか判断し、速い場合に、前記セレクタを制御して前記ギャップ生成部から出力するギャップパターンの長さを前記予め定められた長さより短くし、前記送信バッファからのフレームの読み出しを速くする。
送信するフレーム間に予め定められた長さのギャップパターンを挿入して出力するパケット転送装置において、
フレームを送受信するための回線収容部と、
前記回線収容部を介して受信したフレームを蓄積する受信バッファと、
前記受信バッファに蓄積されたフレームを転送するパケット処理部と、
前記パケット処理部から転送されたフレームを蓄積する送信バッファと、
フレーム間に挿入するギャップパターンを生成するギャップ生成部と、
前記送信バッファに蓄積されたフレーム及び前記ギャップ生成部で生成されたギャップパターンを選択し、回線収容部を介して出力するセレクタと、
前記送信バッファの空き容量を監視し、該空き容量が予め定められた閾値以下になると、前記セレクタを制御して前記ギャップ生成部から出力するギャップパターンの長さを前記予め定められた長さより短くし、前記送信バッファからのフレームの読み出しを速くする制御部と
を備えた前記パケット転送装置が提供される。
また、上述のパケット転送装置は、
受信したフレームのクロック周波数を抽出するクロック抽出部と、
前記クロック抽出部で抽出されたクロック周波数と、装置内クロックの周波数を比較するクロック比較部と
をさらに備え、
前記制御部は、抽出されたクロック周波数が装置内クロックの周波数より速く、かつ、前記送信バッファの空き容量が予め定められた閾値以下の場合に、前記セレクタを制御して前記ギャップ生成部から出力するギャップパターンの長さを前記予め定められた長さより短くし、前記送信バッファからのフレームの読み出しを速くする。
また、上述のパケット転送装置は、
前記回線収容部が有する所定のポートを介して受信されたフレームのクロック周波数を抽出するクロック抽出部と、
前記クロック抽出部で抽出されたクロック周波数と、装置内クロックの周波数を比較するクロック比較部と、
前記ポートを識別するポート識別子毎に、抽出されたクロック周波数と装置内クロックの周波数を含むクロック情報、又は、抽出されたクロック周波数と装置内クロックの周波数との差を含むクロック情報が記憶されたクロック情報記憶部と、
前記ポートを介して受信されたフレームに、該ポートのポート識別子を付加するポート識別子付加部と、
前記パケット処理部から転送されたフレームに付加されたポート識別子を、前記制御部に出力するポート識別部と
をさらに備え、
前記制御部は、前記ポート識別部からポート識別子を入力し、該ポート識別子に基づき前記クロック情報記憶部を参照し、対応するクロック情報に従い該ポート識別子が示すポートで受信されたフレームのクロック周波数が装置内クロックの周波数より速いか判断し、速い場合に、前記セレクタを制御して前記ギャップ生成部から出力するギャップパターンの長さを前記予め定められた長さより短くし、前記送信バッファからのフレームの読み出しを速くする。
本発明の第2の解決手段によると、
バッファにフレームが書き込まれる速度と読み出される速度との差が許容され、該バッファから読み出されるフレーム間に予め定められた長さのギャップパターンを挿入して出力するシステムにおけるバッファ制御方法であって、
フレームをバッファに蓄積するステップと、
フレーム間に挿入するギャップパターンを生成するステップと、
バッファの空き容量を監視するステップと、
該空き容量が予め定められた閾値以下になると、生成されたギャップパターンの長さを前記予め定められた長さより短くし、バッファからのフレームの読み出しを速くするステップと
を含むバッファ制御方法が提供される。
バッファにフレームが書き込まれる速度と読み出される速度との差が許容され、該バッファから読み出されるフレーム間に予め定められた長さのギャップパターンを挿入して出力するシステムにおけるバッファ制御方法であって、
フレームをバッファに蓄積するステップと、
フレーム間に挿入するギャップパターンを生成するステップと、
バッファの空き容量を監視するステップと、
該空き容量が予め定められた閾値以下になると、生成されたギャップパターンの長さを前記予め定められた長さより短くし、バッファからのフレームの読み出しを速くするステップと
を含むバッファ制御方法が提供される。
本発明によると、クロック差が発生しうるパケット転送装置間において、送信バッファにおけるバッファあふれを防ぎ、MACフレームの破棄を防ぐことができる。
以下、本発明の各実施の形態について、図面を参照して詳細に説明する。
1.第1の実施の形態
図1は、ネットワーク構成の概略を示す図である。
パケット転送装置(100)は、例えば、複数の端末(101−1〜101−2)および/または他ネットワーク(102)と接続可能な複数のポートを備える。パケット転送装置(100)は、例えば、端末(101−1〜101−2)との間、他ネットワーク(102)との間および端末(101−1〜101−2)と他ネットワーク(102)との間において、MACフレームを転送することが可能である。なお、パケット転送装置(100)が備えるポートの数は、適宜の数備えることができる。
1.第1の実施の形態
図1は、ネットワーク構成の概略を示す図である。
パケット転送装置(100)は、例えば、複数の端末(101−1〜101−2)および/または他ネットワーク(102)と接続可能な複数のポートを備える。パケット転送装置(100)は、例えば、端末(101−1〜101−2)との間、他ネットワーク(102)との間および端末(101−1〜101−2)と他ネットワーク(102)との間において、MACフレームを転送することが可能である。なお、パケット転送装置(100)が備えるポートの数は、適宜の数備えることができる。
図2は、第1の実施の形態において実現されるパケット転送装置の内部ブロックを示す構成図である。
パケット転送装置(100)は、例えば、複数の送受信ポートを収容する回線収容部(201)と、受信したMACフレームをバッファリングする受信バッファ(202−1〜n)と、エラー検出等のMACフレームに対する処理を行うMAC処理部(203−1〜n)と、MACフレームの転送処理を行うパケット処理部(204)と、送信するMACフレームを一旦バッファリングして回線収容部(201)に転送するとともに、バッファの空き容量を制御部(209)に通知可能な送信バッファ(205−1〜n)と、IFGパターンを生成し回線収容部(201)へ送出するIFG生成部(ギャップ生成部)(206−1〜n)と、回線収容部(201)へ転送するデータをMACフレームまたはIFGパターンから選択するセレクタ(207−1〜n)と、送受信装置間で決定された伝送速度に従いクロック信号を生成する装置内クロック発生部(208)と、これら送信バッファ(205−1〜n)およびセレクタ(207−1〜n)等を制御するための制御部(209)とを備える。
制御部(209)は、例えば、パケット転送装置(100)に対して各種設定データを設定する制御端末(210)と接続され、制御端末(210)から入力された各種設定データを適宜の記憶部に記憶することができる。なお、パケット転送装置(100)は、受信バッファ(202)、MAC処理部(203)、送信バッファ(205)、IFG生成部(206)およびセレクタ(207)を、パケット転送装置(100)が備えるポートの数分(図2の例ではn個)それぞれ備える。
パケット転送装置(100)は、例えば、複数の送受信ポートを収容する回線収容部(201)と、受信したMACフレームをバッファリングする受信バッファ(202−1〜n)と、エラー検出等のMACフレームに対する処理を行うMAC処理部(203−1〜n)と、MACフレームの転送処理を行うパケット処理部(204)と、送信するMACフレームを一旦バッファリングして回線収容部(201)に転送するとともに、バッファの空き容量を制御部(209)に通知可能な送信バッファ(205−1〜n)と、IFGパターンを生成し回線収容部(201)へ送出するIFG生成部(ギャップ生成部)(206−1〜n)と、回線収容部(201)へ転送するデータをMACフレームまたはIFGパターンから選択するセレクタ(207−1〜n)と、送受信装置間で決定された伝送速度に従いクロック信号を生成する装置内クロック発生部(208)と、これら送信バッファ(205−1〜n)およびセレクタ(207−1〜n)等を制御するための制御部(209)とを備える。
制御部(209)は、例えば、パケット転送装置(100)に対して各種設定データを設定する制御端末(210)と接続され、制御端末(210)から入力された各種設定データを適宜の記憶部に記憶することができる。なお、パケット転送装置(100)は、受信バッファ(202)、MAC処理部(203)、送信バッファ(205)、IFG生成部(206)およびセレクタ(207)を、パケット転送装置(100)が備えるポートの数分(図2の例ではn個)それぞれ備える。
図3は、第1の実施の形態におけるパケット転送装置の動作説明図である。
図示の例は、図2で示されたパケット転送装置(100)の構成において、ポート01からポート02へのMACフレーム転送に着目した例であり、第1の実施の形態においての動作を示すものである。
例えば、パケット転送装置(100)は、ポート01に端末A(101−1)、ポート02に端末B(101−2)が接続され、パケット転送装置(100)と、端末A(101−1)と、端末B(101−2)とで決められた伝送速度をB(Hz)とする。ここで、端末A(101−1)から送信される複数のMACフレームおよびIFG(309)はクロック差があり、例えば伝送速度B(Hz)よりも速い伝送速度Btx(Hz)で送信されると仮定する。また、パケット転送装置(100)内では、伝送速度Bに対応して装置内クロック発生部(208)が周波数Brx(Hz)のクロック信号を生成し、このBrxが端末B(101−2)へ転送されるMACフレームおよびIFG(310)の伝送速度となる。ここで、Brx(Hz)は、伝送速度B(Hz)よりも遅いと仮定する。受信バッファ(202−1)は、受信したMACフレームおよびIFG(309)を処理するため、Btx(Hz)の速度で動作する。一方、送信バッファ(205−2)、IFG生成部(206−2)およびセレクタ(207−2)は、装置内クロック発生部(208)の周波数Brx(Hz)の速度に基づいて動作する。なお、MAC処理部(203−1)、パケット処理部(204)、MAC処理部(203−2)および制御部(209)は、別のクロック信号に基づきBtx(Hz)およびBrx(Hz)よりも速い速度で動作することができる。
図示の例は、図2で示されたパケット転送装置(100)の構成において、ポート01からポート02へのMACフレーム転送に着目した例であり、第1の実施の形態においての動作を示すものである。
例えば、パケット転送装置(100)は、ポート01に端末A(101−1)、ポート02に端末B(101−2)が接続され、パケット転送装置(100)と、端末A(101−1)と、端末B(101−2)とで決められた伝送速度をB(Hz)とする。ここで、端末A(101−1)から送信される複数のMACフレームおよびIFG(309)はクロック差があり、例えば伝送速度B(Hz)よりも速い伝送速度Btx(Hz)で送信されると仮定する。また、パケット転送装置(100)内では、伝送速度Bに対応して装置内クロック発生部(208)が周波数Brx(Hz)のクロック信号を生成し、このBrxが端末B(101−2)へ転送されるMACフレームおよびIFG(310)の伝送速度となる。ここで、Brx(Hz)は、伝送速度B(Hz)よりも遅いと仮定する。受信バッファ(202−1)は、受信したMACフレームおよびIFG(309)を処理するため、Btx(Hz)の速度で動作する。一方、送信バッファ(205−2)、IFG生成部(206−2)およびセレクタ(207−2)は、装置内クロック発生部(208)の周波数Brx(Hz)の速度に基づいて動作する。なお、MAC処理部(203−1)、パケット処理部(204)、MAC処理部(203−2)および制御部(209)は、別のクロック信号に基づきBtx(Hz)およびBrx(Hz)よりも速い速度で動作することができる。
ポート01にて受信されたMACフレームおよびIFG(309)は、回線収容部(201)を経由して受信バッファ(202−1)にてバッファリングされたのち、MAC処理部(203−1)を経由してパケット処理部(204)に転送される。MACフレームは、パケット処理部(204)からポート02側のMAC処理部(203−2)を経由して送信バッファ(205−2)へ転送される。なお、受信されたIFGは、例えば、MCA処理部(203−1)等で適宜削除される。制御部(209)は、送信バッファ(205−2)から通知される送信バッファ(205−2)の空き容量(送信バッファ空き容量)を監視する。また、制御部(209)は、セレクタ(207−2)を操作して、送信バッファ(205−2)からMACフレームを選択し、またはIFG生成部(206−2)から所定の長さのIFGパターンを選択して、回線収容部(201)およびポート02を経由してMACフレームおよびIFG(310)を端末B(101−2)へ送信する。ここで、IFGの長さが例えば、11バイトに調整される。また、制御部(209)は、制御端末(210)により、パケット転送装置(100)全体の動作に関する設定データを入力し、記憶することが可能である。
図4は、MACフレームを示す説明図である。
MACフレームが伝送される際には、例えば、MACフレーム本体(以下単に、MACフレームと記す。)(400−1〜2)と、MACフレーム間に存在するIFG(401−1〜2)が交互に繰り返して伝送される。MACフレームは、例えば、MACフレームの識別に使用されるプリアンブル/SFD(Start of Frame Delimiter)(402)、送信元MACアドレス(403)、送信先MACアドレス(404)、VLAN(Virtual LAN)タグ(405)、Type/Length(406)、ペイロード(407)、FCS(Frame Check Sequence)(408)を含む。また、MACフレームは、76〜1530バイトの可変長フレームである。
なお、MACフレームが含む各データの詳細については、イーサネット(商標登録)規格に規定されているため、詳細な説明は省略する。また、VLANタグ(405)はオプションであり、MACフレームは、VLANタグ(405)を含まなくてもよい。
MACフレームが伝送される際には、例えば、MACフレーム本体(以下単に、MACフレームと記す。)(400−1〜2)と、MACフレーム間に存在するIFG(401−1〜2)が交互に繰り返して伝送される。MACフレームは、例えば、MACフレームの識別に使用されるプリアンブル/SFD(Start of Frame Delimiter)(402)、送信元MACアドレス(403)、送信先MACアドレス(404)、VLAN(Virtual LAN)タグ(405)、Type/Length(406)、ペイロード(407)、FCS(Frame Check Sequence)(408)を含む。また、MACフレームは、76〜1530バイトの可変長フレームである。
なお、MACフレームが含む各データの詳細については、イーサネット(商標登録)規格に規定されているため、詳細な説明は省略する。また、VLANタグ(405)はオプションであり、MACフレームは、VLANタグ(405)を含まなくてもよい。
図5−1に、送信バッファの説明図を示す。
図5−1に示すように、送信バッファ(205−2)は、例えば、複数のMACフレームを収容可能な容量(送信バッファ容量、Tbuf)を持ち、収容したMACフレームを順次送出する。また、IFG生成部(206−2)は、MACフレームの間に挿入するためのインターフレームギャップ(IFG)を生成する。このときのMACフレームの送信バッファ(205−2)への書き込み速度を例えばBtx(Hz)、送信バッファ(205−2)からの読み出し速度を例えばBrx(Hz)とする。これらBtxおよびBrxは、端末A(101−1)とパケット転送装置(100)間で決定された伝送速度B(Hz)に対して±100ppmの範囲内の数値となる。また、送信バッファ(205−2)の空き容量(送信バッファ空き容量)をEbufとする。このとき、読み出し速度Brxが書き込み速度Btxより速い場合は送信バッファ(205−2)内のMACフレームは滞りなく出力されるため、クロック差による送信バッファ(205−2)のバッファあふれは発生しない。しかし、読み出し速度Brxが書き込み速度Btxよりも遅い場合は、送信バッファ(205−2)内に読み出しきれないデータ(MACフレーム)が蓄積され、送信バッファ空き容量Ebufが減少することになる。
図5−1に示すように、送信バッファ(205−2)は、例えば、複数のMACフレームを収容可能な容量(送信バッファ容量、Tbuf)を持ち、収容したMACフレームを順次送出する。また、IFG生成部(206−2)は、MACフレームの間に挿入するためのインターフレームギャップ(IFG)を生成する。このときのMACフレームの送信バッファ(205−2)への書き込み速度を例えばBtx(Hz)、送信バッファ(205−2)からの読み出し速度を例えばBrx(Hz)とする。これらBtxおよびBrxは、端末A(101−1)とパケット転送装置(100)間で決定された伝送速度B(Hz)に対して±100ppmの範囲内の数値となる。また、送信バッファ(205−2)の空き容量(送信バッファ空き容量)をEbufとする。このとき、読み出し速度Brxが書き込み速度Btxより速い場合は送信バッファ(205−2)内のMACフレームは滞りなく出力されるため、クロック差による送信バッファ(205−2)のバッファあふれは発生しない。しかし、読み出し速度Brxが書き込み速度Btxよりも遅い場合は、送信バッファ(205−2)内に読み出しきれないデータ(MACフレーム)が蓄積され、送信バッファ空き容量Ebufが減少することになる。
図5−2に、送信バッファ空き容量Ebufが減少する状況の説明図を示す。
例えば、送信バッファ(205−2)からの読み出し速度Brxが書き込み速度Btxよりも遅い場合、この送信バッファ(205−2)の空き容量の減少量をAbufとしたとき、1MACフレームあたりのバッファ減少量Abufは、次の式で算出できる。
Abuf = L×8×(1/Brx − 1/Btx)×B(ビット)
ここで、Lは、フレーム長である。
上述の式より、バッファ減少量Abufが最大となるのは、フレーム長LがMACフレームの最大長であり、読み出し速度Brxが最小に偏差し、また書き込み速度Btxが最大に偏差したときであることが分かる。従って、例えば、伝送速度B=10GHz、Btx=10.001GHz(B+100ppm偏差)、Brx=9.999GHz (B−100ppm偏差)、L=1530バイトとして計算すると、1MACフレームあたりのバッファ減少量Abufは、次の値となる。
Abuf = 1530×8×(1/9.999GHz − 1/10.001GHz)×10GHz ≒ 2.4(ビット)
そこで、送信バッファ(205−2)のバッファあふれの発生が予想されるときは、送信バッファ(205−2)からこのバッファ減少量Abufに見合った分MACフレームを読み出すタイミングを早めることができれば、送信バッファ(205−2)のバッファあふれを防ぐことができる。具体的には、例えば、MACフレーム間に挿入されるIFGをバッファ減少量Abufに見合ったサイズ分短く調整すること(IFG調整)でMACフレーム間の間隔を短くし、MACフレームを読み出すタイミングを速くして送信バッファ(205−2)のバッファあふれを防ぐことができる。このIFG調整の処理を行うトリガーとして、例えば、送信バッファ(205−2)が送信バッファ空き容量Ebufを監視し適宜のタイミングで制御部(209)に送信バッファ空き容量Ebufを通知して、制御部(209)が、送信バッファ空き容量Ebufが予め定められたしきい値(以下、バッファあふれしきい値またはバッファあふれ制御開始しきい値)以下になったところでIFG調整等のバッファあふれ制御を開始する。
例えば、送信バッファ(205−2)からの読み出し速度Brxが書き込み速度Btxよりも遅い場合、この送信バッファ(205−2)の空き容量の減少量をAbufとしたとき、1MACフレームあたりのバッファ減少量Abufは、次の式で算出できる。
Abuf = L×8×(1/Brx − 1/Btx)×B(ビット)
ここで、Lは、フレーム長である。
上述の式より、バッファ減少量Abufが最大となるのは、フレーム長LがMACフレームの最大長であり、読み出し速度Brxが最小に偏差し、また書き込み速度Btxが最大に偏差したときであることが分かる。従って、例えば、伝送速度B=10GHz、Btx=10.001GHz(B+100ppm偏差)、Brx=9.999GHz (B−100ppm偏差)、L=1530バイトとして計算すると、1MACフレームあたりのバッファ減少量Abufは、次の値となる。
Abuf = 1530×8×(1/9.999GHz − 1/10.001GHz)×10GHz ≒ 2.4(ビット)
そこで、送信バッファ(205−2)のバッファあふれの発生が予想されるときは、送信バッファ(205−2)からこのバッファ減少量Abufに見合った分MACフレームを読み出すタイミングを早めることができれば、送信バッファ(205−2)のバッファあふれを防ぐことができる。具体的には、例えば、MACフレーム間に挿入されるIFGをバッファ減少量Abufに見合ったサイズ分短く調整すること(IFG調整)でMACフレーム間の間隔を短くし、MACフレームを読み出すタイミングを速くして送信バッファ(205−2)のバッファあふれを防ぐことができる。このIFG調整の処理を行うトリガーとして、例えば、送信バッファ(205−2)が送信バッファ空き容量Ebufを監視し適宜のタイミングで制御部(209)に送信バッファ空き容量Ebufを通知して、制御部(209)が、送信バッファ空き容量Ebufが予め定められたしきい値(以下、バッファあふれしきい値またはバッファあふれ制御開始しきい値)以下になったところでIFG調整等のバッファあふれ制御を開始する。
図5−3に、バッファあふれ制御を開始する場合の送信バッファの説明図を示す。
バッファあふれしきい値をThbufとすると、例えば送信バッファ空き容量Ebufがバッファあふれしきい値Thbuf以下になったときに、MACフレーム間に挿入するIFG長(Lifg)をイーサネット(登録商標)規格における最低値である12バイト未満の長さにすることによって、送信バッファ(205−2)内のMACフレームの送出タイミングを早めることができる。これにより、送信バッファ(205−2)に空きを作ることでバッファあふれを抑止することができる。このときのIFG長(Lifg)は、例えば、次式で算出できる。
Lifg = 12 − (INT(Abuf/8)+1) (バイト)
ここで、Abufは1MACフレームあたりのバッファ減少量、INT()は小数点以下を切り捨てる関数である。
また、バッファあふれしきい値Thbufについては、一例として、バッファあふれが発生すると判断してから最初のIFG調整の開始までに要する時間内に減少する、総バッファ減少量以上の値にすることができる。より具体的には、例えば、最初のIFG調整の開始までにNフレーム分の処理時間がかかるとすれば、バッファあふれしきい値Thbufは、次式により算出することができる。
Thbuf = INT( Abuf/ 8 +1 )× N (バイト)
ここでNは、IFG調整の開始までにかかる時間に相当するMACフレーム数である。
バッファあふれしきい値をThbufとすると、例えば送信バッファ空き容量Ebufがバッファあふれしきい値Thbuf以下になったときに、MACフレーム間に挿入するIFG長(Lifg)をイーサネット(登録商標)規格における最低値である12バイト未満の長さにすることによって、送信バッファ(205−2)内のMACフレームの送出タイミングを早めることができる。これにより、送信バッファ(205−2)に空きを作ることでバッファあふれを抑止することができる。このときのIFG長(Lifg)は、例えば、次式で算出できる。
Lifg = 12 − (INT(Abuf/8)+1) (バイト)
ここで、Abufは1MACフレームあたりのバッファ減少量、INT()は小数点以下を切り捨てる関数である。
また、バッファあふれしきい値Thbufについては、一例として、バッファあふれが発生すると判断してから最初のIFG調整の開始までに要する時間内に減少する、総バッファ減少量以上の値にすることができる。より具体的には、例えば、最初のIFG調整の開始までにNフレーム分の処理時間がかかるとすれば、バッファあふれしきい値Thbufは、次式により算出することができる。
Thbuf = INT( Abuf/ 8 +1 )× N (バイト)
ここでNは、IFG調整の開始までにかかる時間に相当するMACフレーム数である。
図5−4は、送信バッファ空き容量Ebufの推移を表す説明図である。
パケット転送装置(100)起動時等は、送信バッファ空き容量Ebufは送信バッファ容量Tbufと等しいが、高速のMACフレームを受信し始めると送信バッファ空き容量Ebufは減り始める。このまま高速のMACフレームを受信し続けていると送信バッファ空き容量Ebufは0になり、送信バッファ(205−2)にデータの書き込みができなくなり、バッファあふれが発生する。そこで、送信バッファ空き容量Ebufがバッファあふれしきい値Thbuf以下になったときに、IFG長(Lifg)を短くしその分MACフレームの送出を早めることにより、12−Lifg(バイト)分送信バッファ空き容量Ebufを増やすことができる。また、その後、送信バッファ空き容量Ebufが充分回復したと判断されるとき、すなわち、送信バッファ空き容量Ebufが予め定められたバッファあふれ制御解除しきい値(第2の閾値)ThbufEを超えたときに、パケット転送装置(100)は、バッファあふれ制御を停止する。なお、バッファあふれ制御解除しきい値ThbufEには、例えば、送信バッファ容量Tbuf以下、且つバッファあふれしきい値Thbuf以上の任意の値を設定することができる。なお、バッファあふれ制御解除しきい値ThbufEを送信バッファ容量Tbufに設定すれば、送信バッファ(205−2)のデータがすべてクリアされるときにバッファあふれ制御を解除することになる。
パケット転送装置(100)起動時等は、送信バッファ空き容量Ebufは送信バッファ容量Tbufと等しいが、高速のMACフレームを受信し始めると送信バッファ空き容量Ebufは減り始める。このまま高速のMACフレームを受信し続けていると送信バッファ空き容量Ebufは0になり、送信バッファ(205−2)にデータの書き込みができなくなり、バッファあふれが発生する。そこで、送信バッファ空き容量Ebufがバッファあふれしきい値Thbuf以下になったときに、IFG長(Lifg)を短くしその分MACフレームの送出を早めることにより、12−Lifg(バイト)分送信バッファ空き容量Ebufを増やすことができる。また、その後、送信バッファ空き容量Ebufが充分回復したと判断されるとき、すなわち、送信バッファ空き容量Ebufが予め定められたバッファあふれ制御解除しきい値(第2の閾値)ThbufEを超えたときに、パケット転送装置(100)は、バッファあふれ制御を停止する。なお、バッファあふれ制御解除しきい値ThbufEには、例えば、送信バッファ容量Tbuf以下、且つバッファあふれしきい値Thbuf以上の任意の値を設定することができる。なお、バッファあふれ制御解除しきい値ThbufEを送信バッファ容量Tbufに設定すれば、送信バッファ(205−2)のデータがすべてクリアされるときにバッファあふれ制御を解除することになる。
以下に、第1の実施の形態のパケット転送装置(100)の動作の詳細を図3に従って説明する。
パケット転送装置(100)は、起動後、各ポートに接続された端末A(101−1)および端末B(101−2)との間で、適宜の通信方式に基づいてネゴシエーションを実施し、回線種別および伝送速度等の設定を行う。第1の実施の形態においては、例えば、ポート01−端末A(101−1)間およびポート02−端末B(101−2)間の伝送速度は同一とし、その速度をB(Hz)とする。また、ネゴシエーションで決定された伝送速度B(Hz)を実現するために、パケット転送装置(100)は、装置内クロック発生部(208)をB(Hz)に設定し、受信待機状態になる。また、制御端末(210)により、制御部(209)は、例えば、予め送信バッファあふれ制御機能のON(有効)/OFF(無効)の設定、バッファあふれしきい値Thbuf、バッファあふれ制御解除しきい値ThbufEの設定を行うことができる。
その後、端末A(101−1)からパケット転送装置(100)にMACフレームおよびIFG(309)の送信が開始される。このとき、例えば、送信されるMACフレームおよびIFG(309)の長さ(フレーム長)は、MACフレームは1530バイト、IFGは12バイトとし、無限にまたはバッファあふれが発生しうる長時間、MACフレームおよびIFG(309)の送信が繰り返されるものと仮定する。送信されたMACフレームおよびIFG(309)がポート01に到着した際、パケット転送装置(100)は、受信−送信処理を開始する。
パケット転送装置(100)は、起動後、各ポートに接続された端末A(101−1)および端末B(101−2)との間で、適宜の通信方式に基づいてネゴシエーションを実施し、回線種別および伝送速度等の設定を行う。第1の実施の形態においては、例えば、ポート01−端末A(101−1)間およびポート02−端末B(101−2)間の伝送速度は同一とし、その速度をB(Hz)とする。また、ネゴシエーションで決定された伝送速度B(Hz)を実現するために、パケット転送装置(100)は、装置内クロック発生部(208)をB(Hz)に設定し、受信待機状態になる。また、制御端末(210)により、制御部(209)は、例えば、予め送信バッファあふれ制御機能のON(有効)/OFF(無効)の設定、バッファあふれしきい値Thbuf、バッファあふれ制御解除しきい値ThbufEの設定を行うことができる。
その後、端末A(101−1)からパケット転送装置(100)にMACフレームおよびIFG(309)の送信が開始される。このとき、例えば、送信されるMACフレームおよびIFG(309)の長さ(フレーム長)は、MACフレームは1530バイト、IFGは12バイトとし、無限にまたはバッファあふれが発生しうる長時間、MACフレームおよびIFG(309)の送信が繰り返されるものと仮定する。送信されたMACフレームおよびIFG(309)がポート01に到着した際、パケット転送装置(100)は、受信−送信処理を開始する。
図6−1に、第1の実施の形態におけるパケット転送装置(100)の受信−送信処理のフローチャートを示す。
パケット転送装置(100)は、ポート01にてMACフレームおよびIFG(309)を受信し(S601)、MACフレームおよびIFG(309)を回線収容部(201)でパケット転送装置(100)に適した信号に変換して受信バッファ(202−1)へ転送し(S602)、MAC処理部(203−1)を経由してパケット処理部(204)へ転送する(S603、S604)。パケット処理部(204)は、転送されたMACフレームの送信先を判定し、図3の例ではポート02に対応したMAC処理部(203−2)へMACフレームを転送する(S605)。例えば、パケット処理部(204)は、MACフレーム内の送信先MACアドレス(404)を参照して送信先を判定する。パケット転送装置(100)は、送信バッファ(205−2)、セレクタ(207−2)および回線収容部(201)を経由してMACフレームを端末B(101−2)へ送信する(S606〜S608)。
また、パケット転送装置(100)が、上述のMACフレームの受信−送信処理をしている間に、制御部(209)は、送信バッファあふれ監視処理を実施する。
パケット転送装置(100)は、ポート01にてMACフレームおよびIFG(309)を受信し(S601)、MACフレームおよびIFG(309)を回線収容部(201)でパケット転送装置(100)に適した信号に変換して受信バッファ(202−1)へ転送し(S602)、MAC処理部(203−1)を経由してパケット処理部(204)へ転送する(S603、S604)。パケット処理部(204)は、転送されたMACフレームの送信先を判定し、図3の例ではポート02に対応したMAC処理部(203−2)へMACフレームを転送する(S605)。例えば、パケット処理部(204)は、MACフレーム内の送信先MACアドレス(404)を参照して送信先を判定する。パケット転送装置(100)は、送信バッファ(205−2)、セレクタ(207−2)および回線収容部(201)を経由してMACフレームを端末B(101−2)へ送信する(S606〜S608)。
また、パケット転送装置(100)が、上述のMACフレームの受信−送信処理をしている間に、制御部(209)は、送信バッファあふれ監視処理を実施する。
図6−2に、第1の実施の形態におけるパケット転送装置(100)の送信バッファあふれ監視処理のフローチャートを示す。
送信バッファ(205−2)は、例えば、MACフレームの書き込みがあったタイミングで送信バッファ空き容量Ebufを制御部(209)に通知する。なお、通知のタイミングは予め定められた周期など適宜のタイミングでもよい。制御部(209)は、送信バッファ(205−2)から通知される送信バッファ空き容量Ebufとバッファあふれしきい値Thbufを比較する(S611)。なお、バッファあふれしきい値Thbufは予め定められ、適宜の記憶部に記憶されることができる。このとき、バッファ空き容量Ebufがバッファあふれしきい値Thbuf以下になる場合、制御部(209)は送信バッファあふれが発生すると判断し、IFG調整を開始する。まず、制御部(209)は、送信バッファ(205−2)の動作状況を確認し、現在MACフレームを送出中であるか否かを判断する(S612)。MACフレームを送出中であれば、制御部(209)は、当該MACフレームの送出終了まで待機する(S613)。制御部(209)は、当該MACフレームの送出が終了後、セレクタ(207−2)をIFG生成部(206−2)側へ切替えて(S614)、IFGを送出する(S615)。このとき、制御部(209)は、IFG長(Lifg)を、上述の式を用いて算出する。
送信バッファ(205−2)は、例えば、MACフレームの書き込みがあったタイミングで送信バッファ空き容量Ebufを制御部(209)に通知する。なお、通知のタイミングは予め定められた周期など適宜のタイミングでもよい。制御部(209)は、送信バッファ(205−2)から通知される送信バッファ空き容量Ebufとバッファあふれしきい値Thbufを比較する(S611)。なお、バッファあふれしきい値Thbufは予め定められ、適宜の記憶部に記憶されることができる。このとき、バッファ空き容量Ebufがバッファあふれしきい値Thbuf以下になる場合、制御部(209)は送信バッファあふれが発生すると判断し、IFG調整を開始する。まず、制御部(209)は、送信バッファ(205−2)の動作状況を確認し、現在MACフレームを送出中であるか否かを判断する(S612)。MACフレームを送出中であれば、制御部(209)は、当該MACフレームの送出終了まで待機する(S613)。制御部(209)は、当該MACフレームの送出が終了後、セレクタ(207−2)をIFG生成部(206−2)側へ切替えて(S614)、IFGを送出する(S615)。このとき、制御部(209)は、IFG長(Lifg)を、上述の式を用いて算出する。
Lifg = 12 −( INT(Abuf/8) + 1)
= 12 − (INT(1530×8×(1/9.999Ghz−1/10.001GHz)×10GHz/8)+1)
= 12 − (INT(2.4/8) +1) = 12 − (0+1)
= 11バイト
この場合、制御部(209)は、例えば、セレクタ(207−2)を制御して、算出したIFG長(Lifg、11バイト)分のIFGを送出する。なお、例えば、制御部(209)は、算出した長さ(Lifg)のIFGを生成するようにIFG生成部(206−2)に要求し、IFG送出完了時にセレクタ(207−2)を切替えることでIFG調整を行ってもよい。
その後、セレクタ(207−2)を送信バッファ(205−2)側へ切替えて(S616)、MACフレームを送出し(S617)、送信バッファ空き容量Ebufとバッファあふれ制御解除しきい値ThbufEを比較する(S620)。送信バッファ空き容量Ebufがバッファあふれ制御解除しきい値ThbufE以上である場合、制御部(209)は、通常のバッファ制御を実施する(S621)。通常のバッファ制御では、例えば、制御部(209)はIFG調整をしていない、予め定められたIFG長(例えば、12バイト)のIFGを送出する。
= 12 − (INT(1530×8×(1/9.999Ghz−1/10.001GHz)×10GHz/8)+1)
= 12 − (INT(2.4/8) +1) = 12 − (0+1)
= 11バイト
この場合、制御部(209)は、例えば、セレクタ(207−2)を制御して、算出したIFG長(Lifg、11バイト)分のIFGを送出する。なお、例えば、制御部(209)は、算出した長さ(Lifg)のIFGを生成するようにIFG生成部(206−2)に要求し、IFG送出完了時にセレクタ(207−2)を切替えることでIFG調整を行ってもよい。
その後、セレクタ(207−2)を送信バッファ(205−2)側へ切替えて(S616)、MACフレームを送出し(S617)、送信バッファ空き容量Ebufとバッファあふれ制御解除しきい値ThbufEを比較する(S620)。送信バッファ空き容量Ebufがバッファあふれ制御解除しきい値ThbufE以上である場合、制御部(209)は、通常のバッファ制御を実施する(S621)。通常のバッファ制御では、例えば、制御部(209)はIFG調整をしていない、予め定められたIFG長(例えば、12バイト)のIFGを送出する。
一方、送信バッファ空き容量Ebufがバッファあふれ制御解除しきい値ThbufEより小さい場合、制御部(209)は、ステップS612に戻り、送信バッファあふれ監視処理を継続する。
また、ステップS611において、バッファ空き容量Ebufがバッファあふれしきい値Thbufよりも大きい場合、制御部(209)は、通常のバッファ制御を実施する(S621)。また、ステップS612において送信バッファ(205−2)の動作状態がMACフレーム出力中でない場合、すなわちIFG送出中の場合、制御部(209)は、既に12バイト以上のIFGが出力されているか否かを判断する(S618)。既に12バイト以上のIFGが出力されている場合、IFGの送出が終了しているため、制御部(209)は、直ちにセレクタ(207−2)を送信バッファ(205−2)側へ切替えてIFG送出を停止し(S616)、MACフレームを送出した後(S617)、ステップS612に戻り送信バッファあふれ監視処理を継続し、次のIFG送出のタイミングでIFG調整を行う。
また、ステップS611において、バッファ空き容量Ebufがバッファあふれしきい値Thbufよりも大きい場合、制御部(209)は、通常のバッファ制御を実施する(S621)。また、ステップS612において送信バッファ(205−2)の動作状態がMACフレーム出力中でない場合、すなわちIFG送出中の場合、制御部(209)は、既に12バイト以上のIFGが出力されているか否かを判断する(S618)。既に12バイト以上のIFGが出力されている場合、IFGの送出が終了しているため、制御部(209)は、直ちにセレクタ(207−2)を送信バッファ(205−2)側へ切替えてIFG送出を停止し(S616)、MACフレームを送出した後(S617)、ステップS612に戻り送信バッファあふれ監視処理を継続し、次のIFG送出のタイミングでIFG調整を行う。
一方、ステップS618にて、送出済みのIFGがIFG長Lifg(例えば、12バイト)よりも短い場合は不足分の長さのIFGを送出した後(S619)、制御部(209)は、セレクタ(207−2)を送信バッファ(205−2)側へ切替えてIFG送出を停止し(S616)、MACフレームを送出した後(S617)、ステップS612に戻り送信バッファあふれ監視処理を継続し、次のIFG送出のタイミングでIFG調整を行う。
以上の処理により、第1の実施の形態では、送信バッファの空き容量を監視し、送信バッファがあふれることが予測される場合は、IFGの長さを短くすることで送信バッファからMACフレームデータを送出する間隔を詰める。これにより、送信バッファの空く時間が短くなり、バッファあふれを防ぐパケット転送装置を提供することができる。また、上述の動作は、ポート01−ポート02間だけではなく、他のポートの組合せでも実行することができる。
また、第1の実施の形態において、短くするIFGの長さに制限はなく0にすることも可能であるが、イーサネット(登録商標)規格ではIFGは12バイト以上であることを推奨しており、IFGを5バイトまでは短縮可能なことが規格上許されているため、5バイトまで短くすることが推奨される。しかし、5バイト未満のIFGを使用するかは対向装置の仕様に依存するため、パケット転送装置を設定する際に、例えば、5バイト未満のIFGを使用するバッファあふれ制御機能のオン(有効)/オフ(無効)を選択できるようにしてもよい。
以上の処理により、第1の実施の形態では、送信バッファの空き容量を監視し、送信バッファがあふれることが予測される場合は、IFGの長さを短くすることで送信バッファからMACフレームデータを送出する間隔を詰める。これにより、送信バッファの空く時間が短くなり、バッファあふれを防ぐパケット転送装置を提供することができる。また、上述の動作は、ポート01−ポート02間だけではなく、他のポートの組合せでも実行することができる。
また、第1の実施の形態において、短くするIFGの長さに制限はなく0にすることも可能であるが、イーサネット(登録商標)規格ではIFGは12バイト以上であることを推奨しており、IFGを5バイトまでは短縮可能なことが規格上許されているため、5バイトまで短くすることが推奨される。しかし、5バイト未満のIFGを使用するかは対向装置の仕様に依存するため、パケット転送装置を設定する際に、例えば、5バイト未満のIFGを使用するバッファあふれ制御機能のオン(有効)/オフ(無効)を選択できるようにしてもよい。
2.第2の実施の形態
第1の実施の形態では、送信バッファ空き容量Ebufに着目してバッファあふれを制御したが、クロック差以外の要因で送信バッファ空き容量Ebufが減っていく場合、例えば複数の送信先から一つの受信先へMACフレームが集中する場合についてもバッファあふれが発生する場合がある。このような状況では、上述のバッファあふれ制御によるIFG調整ではバッファがあふれを防ぐことができない場合があり、IFG調整の処理が余計な処理となる場合がある。そこで、第2の実施の形態では、送受信装置間でクロック差がある場合のみ、バッファあふれ制御を行い、より効率的なパケット転送装置を提供する。
図7は、第2の実施の形態におけるパケット転送装置の内部ブロックを示す構成図である。
第2の実施の形態のパケット転送装置(700)は、第1の実施の形態のパケット転送装置に対して、さらに、ポート毎のクロック抽出部(703−1〜n)、クロック差テーブル(クロック情報記憶部)(709)およびクロック比較部(710)を備える。
具体的には、パケット転送装置(700)は、複数の送受信ポートを収容する回線収容部(701)と、受信したMACフレームをバッファリングする受信バッファ(702−1〜n)と、受信したMACフレームからクロック周波数を抽出するクロック抽出部(703−1〜n)と、エラー検出等の受信したMACフレームに対する処理を行うMAC処理部(704−1〜n)と、MACフレームの転送処理を行うパケット処理部(705)と、送信するMACフレームをバッファリングして回線収容部(701)に転送するとともに、バッファの空き容量を制御部(712)に通知可能な送信バッファ(706−1〜n)と、IFGパターンを生成し回線収容部(701)へ送出するIFG生成部(707−1〜n)と、回線収容部(701)へ転送するデータをMACフレームまたはIFGパターンから選択するセレクタ(708−1〜n)と、送受信装置間で決定された伝送速度に従い装置内クロック信号を生成する装置内クロック発生部(711)と、クロック抽出部(703−1〜n)にて抽出された送信クロック周波数(パケット転送装置(700)が受信したMACフレームのクロック周波数)と装置内クロック周波数(装置内クロック発生部(711)が生成するクロック信号の周波数)を収集・比較するクロック比較部(710)と、クロック比較部(710)にて収集・比較されたクロック情報(例えば、送信クロック周波数と装置内クロック周波数および/またはクロック差)を格納するクロック差テーブル(709)と、これら送信バッファ(706−1〜n)およびセレクタ(708−1〜n)等を制御するための制御部(712)とを備える。
第1の実施の形態では、送信バッファ空き容量Ebufに着目してバッファあふれを制御したが、クロック差以外の要因で送信バッファ空き容量Ebufが減っていく場合、例えば複数の送信先から一つの受信先へMACフレームが集中する場合についてもバッファあふれが発生する場合がある。このような状況では、上述のバッファあふれ制御によるIFG調整ではバッファがあふれを防ぐことができない場合があり、IFG調整の処理が余計な処理となる場合がある。そこで、第2の実施の形態では、送受信装置間でクロック差がある場合のみ、バッファあふれ制御を行い、より効率的なパケット転送装置を提供する。
図7は、第2の実施の形態におけるパケット転送装置の内部ブロックを示す構成図である。
第2の実施の形態のパケット転送装置(700)は、第1の実施の形態のパケット転送装置に対して、さらに、ポート毎のクロック抽出部(703−1〜n)、クロック差テーブル(クロック情報記憶部)(709)およびクロック比較部(710)を備える。
具体的には、パケット転送装置(700)は、複数の送受信ポートを収容する回線収容部(701)と、受信したMACフレームをバッファリングする受信バッファ(702−1〜n)と、受信したMACフレームからクロック周波数を抽出するクロック抽出部(703−1〜n)と、エラー検出等の受信したMACフレームに対する処理を行うMAC処理部(704−1〜n)と、MACフレームの転送処理を行うパケット処理部(705)と、送信するMACフレームをバッファリングして回線収容部(701)に転送するとともに、バッファの空き容量を制御部(712)に通知可能な送信バッファ(706−1〜n)と、IFGパターンを生成し回線収容部(701)へ送出するIFG生成部(707−1〜n)と、回線収容部(701)へ転送するデータをMACフレームまたはIFGパターンから選択するセレクタ(708−1〜n)と、送受信装置間で決定された伝送速度に従い装置内クロック信号を生成する装置内クロック発生部(711)と、クロック抽出部(703−1〜n)にて抽出された送信クロック周波数(パケット転送装置(700)が受信したMACフレームのクロック周波数)と装置内クロック周波数(装置内クロック発生部(711)が生成するクロック信号の周波数)を収集・比較するクロック比較部(710)と、クロック比較部(710)にて収集・比較されたクロック情報(例えば、送信クロック周波数と装置内クロック周波数および/またはクロック差)を格納するクロック差テーブル(709)と、これら送信バッファ(706−1〜n)およびセレクタ(708−1〜n)等を制御するための制御部(712)とを備える。
制御部(712)は、例えば、パケット転送装置(700)に対して各種設定データを設定する制御端末(713)と接続され、制御端末(713)から入力された各種設定データを適宜の記憶部に記憶することができる。なお、パケット転送装置(700)は、受信バッファ(702)、クロック抽出部(703)、MAC処理部(704)、送信バッファ(706)、IFG生成部(707)およびセレクタ(708)を、パケット転送装置(700)が備えるポートの数分(図7の例ではn個)それぞれ備える。
図8は、第2の実施の形態におけるパケット転送装置の動作説明図である。
図示の例は、図7で示されたパケット転送装置(700)の構成のうち、ポート01からポート02へのMACフレーム転送に着目した例であり、第2の実施の形態においての動作を示すものである。
例えば、パケット転送装置(700)は、ポート01に端末A(101−1)、ポート02に端末B(101−2)が接続され、パケット転送装置(700)と、端末A(101−1)と、端末B(101−2)とで決められた伝送速度を、例えばB(Hz)とする。ここで、端末A(101−1)から送信される複数のMACフレームおよびIFG(812)はクロック差があり、例えば伝送速度B(Hz)よりも速い伝送速度Btx(Hz)で送信されると仮定する。また、パケット転送装置(700)内では伝送速度Bに対応して装置内クロック発生部(711)が周波数Brx(Hz)のクロック信号を生成し、このBrxが端末B(101−2)へ転送されるMACフレームおよびIFG(813)の伝送速度となる。ここで、Brx(Hz)は、伝送速度B(Hz)よりも遅いと仮定する。なお、クロック抽出部(703−1)は、MACフレームおよびIFG(812)を処理するため、Btx(Hz)の速度で動作する。クロック比較部(710)は、別のクロック信号に基づきBtx(Hz)およびBrx(Hz)よりも速い速度で動作することができる。なお、他のブロックの動作速度は、第1の実施の形態と同様である。
図8は、第2の実施の形態におけるパケット転送装置の動作説明図である。
図示の例は、図7で示されたパケット転送装置(700)の構成のうち、ポート01からポート02へのMACフレーム転送に着目した例であり、第2の実施の形態においての動作を示すものである。
例えば、パケット転送装置(700)は、ポート01に端末A(101−1)、ポート02に端末B(101−2)が接続され、パケット転送装置(700)と、端末A(101−1)と、端末B(101−2)とで決められた伝送速度を、例えばB(Hz)とする。ここで、端末A(101−1)から送信される複数のMACフレームおよびIFG(812)はクロック差があり、例えば伝送速度B(Hz)よりも速い伝送速度Btx(Hz)で送信されると仮定する。また、パケット転送装置(700)内では伝送速度Bに対応して装置内クロック発生部(711)が周波数Brx(Hz)のクロック信号を生成し、このBrxが端末B(101−2)へ転送されるMACフレームおよびIFG(813)の伝送速度となる。ここで、Brx(Hz)は、伝送速度B(Hz)よりも遅いと仮定する。なお、クロック抽出部(703−1)は、MACフレームおよびIFG(812)を処理するため、Btx(Hz)の速度で動作する。クロック比較部(710)は、別のクロック信号に基づきBtx(Hz)およびBrx(Hz)よりも速い速度で動作することができる。なお、他のブロックの動作速度は、第1の実施の形態と同様である。
ポート01にて受信されたMACフレームおよびIFG(812)は、回線収容部(701)を経由して受信バッファ(702−1)にてバッファリングされたのち、MAC処理部(704−1)を経由してパケット処理部(705)に転送される。また、クロック抽出部(703−1)は、MACフレームおよびIFG(812)を受信したポートの番号と、受信したMACフレームおよびIFG(812)から抽出した送信クロック周波数をクロック比較部(710)へと通知する。なお、ポート番号は、それぞれのクロック抽出部(703)に予め記憶されていてもよいし、回線収容部(701)から通知されてもよい。また、MACフレームおよびIFG(812)からクロックを抽出する手法は、適宜の手法を用いることができる。クロック比較部(710)は、送信クロック周波数と装置内クロック発生部(711)で生成された装置内クロックの周波数とを比較して、その結果(クロック差)をクロック差テーブル(709)に書き込む。ポート02へ送信されるMACフレームは、パケット処理部(705)からポート02側のMAC処理部(704−2)を経由して送信バッファ(706−2)へ転送される。なお、受信されたIFGは、例えばMAC処理部(704−1)等で、適宜削除される。制御部(712)は、クロック差テーブル(709)と、送信バッファ(706−2)から通知される送信バッファ空き容量Ebufとを監視し、IFG調整を行うか否かを判断する。また、制御部(712)は、セレクタ(708−2)を操作して、送信バッファ(706−2)からMACフレームを選択し、またはIFG生成部(707−2)から所定の長さのIFGパターンを選択して、回線収容部(701)およびポート02を経由してMACフレームおよびIFG(813)を端末B(101−2)へ送信する。ここで、IFGの長さが例えば11バイトに調整される。なお、制御部(712)は、制御端末(713)により、パケット転送装置(700)全体の動作に関する設定データを入力し、記憶することが可能である。
図9は、第2の実施の形態で使用されるクロック差テーブルの説明図である。
クロック差テーブル(709)は、例えば、装置内クロック周波数(900)、ポート番号(901)、送信クロック周波数(902)およびクロック差(903)を含む。送信クロック周波数(902)およびクロック差(903)は、ポート番号(901)に対応して記憶される。装置内クロック周波数(900)は、例えば、装置内クロック発生部(711)が生成するクロック信号の周波数を示す。ポート番号(901)は、例えば、MACフレームおよびIFG(812)を受信したポートを特定する適宜の識別情報を示す。送信クロック周波数(902)は、例えば、受信したMACフレームおよびIFG(812)の信号の周波数を示す。クロック差(903)は、例えば、装置内クロック周波数(900)と、クロック差(903)に対応する送信クロック周波数(902)との差分を示す。なお、クロック差テーブル(709)は、クロック差(903)を省略し、制御部(712)が必要に応じて装置内クロック周波数(900)と送信クロック周波数(902)からクロック差(903)を求めてもよいし、クロック比較部(710)が送信クロック周波数(902)を入力した際に装置内クロック周波数(900)と送信クロック周波数(902)からクロック差(903)を求めてクロック差テーブル(709)に記憶し、送信クロック周波数(902)の記憶を省略してもよい。
クロック差テーブル(709)は、例えば、装置内クロック周波数(900)、ポート番号(901)、送信クロック周波数(902)およびクロック差(903)を含む。送信クロック周波数(902)およびクロック差(903)は、ポート番号(901)に対応して記憶される。装置内クロック周波数(900)は、例えば、装置内クロック発生部(711)が生成するクロック信号の周波数を示す。ポート番号(901)は、例えば、MACフレームおよびIFG(812)を受信したポートを特定する適宜の識別情報を示す。送信クロック周波数(902)は、例えば、受信したMACフレームおよびIFG(812)の信号の周波数を示す。クロック差(903)は、例えば、装置内クロック周波数(900)と、クロック差(903)に対応する送信クロック周波数(902)との差分を示す。なお、クロック差テーブル(709)は、クロック差(903)を省略し、制御部(712)が必要に応じて装置内クロック周波数(900)と送信クロック周波数(902)からクロック差(903)を求めてもよいし、クロック比較部(710)が送信クロック周波数(902)を入力した際に装置内クロック周波数(900)と送信クロック周波数(902)からクロック差(903)を求めてクロック差テーブル(709)に記憶し、送信クロック周波数(902)の記憶を省略してもよい。
以下に、第2の実施の形態のパケット転送装置(700)の動作の詳細を図8に従って説明する。
パケット転送装置(700)は、起動後、各ポートに接続された端末A(101−1)および端末B(101−2)との間で、適宜の通信方式に基づいてネゴシエーションを実施し、回線種別および伝送速度等の設定を行う。例えば、ポート01−端末A(101−1)間およびポート02−端末B(101−2)間の伝送速度は同一とし、その伝送速度をB(Hz)とする。また、ネゴシエーションで決定された伝送速度B(Hz)を実現するために、パケット転送装置(700)は、装置内クロック発生部(711)に伝送速度B(Hz)を設定する。また、パケット転送装置(700)は、クロック差テーブル(709)へ、図11(a)に示すように、初期状態として装置内クロック周波数(900)、送信クロック周波数(902)およびクロック差(903)の項目に例えばnullを設定し、受信待機状態になる。なお、ポート番号(901)には、nullを設定しなくてもよい。また、制御端末(713)により、制御部(712)は、例えば適宜の記憶部に予め送信バッファあふれ制御機能のON(有効)/OFF(無効)の設定、バッファあふれしきい値Thbuf、バッファあふれ制御解除しきい値ThbufEの設定を行うことができる。
その後、端末A(101−1)からパケット転送装置(700)にMACフレームおよびIFG(812)の送信が開始される。このとき、例えば、端末A(101−1)から送信されるMACフレームおよびIFG(812)の長さは、MACフレームは1530バイト、IFGは12バイトとし、無限またはバッファあふれが発生しうる長時間にMACフレームおよびIFG(812)の送信が繰り返されるものと仮定する。送信されたMACフレームおよびIFG(812)がポート01に到着し、パケット転送装置(700)は、受信−送信処理を実行する。
パケット転送装置(700)は、起動後、各ポートに接続された端末A(101−1)および端末B(101−2)との間で、適宜の通信方式に基づいてネゴシエーションを実施し、回線種別および伝送速度等の設定を行う。例えば、ポート01−端末A(101−1)間およびポート02−端末B(101−2)間の伝送速度は同一とし、その伝送速度をB(Hz)とする。また、ネゴシエーションで決定された伝送速度B(Hz)を実現するために、パケット転送装置(700)は、装置内クロック発生部(711)に伝送速度B(Hz)を設定する。また、パケット転送装置(700)は、クロック差テーブル(709)へ、図11(a)に示すように、初期状態として装置内クロック周波数(900)、送信クロック周波数(902)およびクロック差(903)の項目に例えばnullを設定し、受信待機状態になる。なお、ポート番号(901)には、nullを設定しなくてもよい。また、制御端末(713)により、制御部(712)は、例えば適宜の記憶部に予め送信バッファあふれ制御機能のON(有効)/OFF(無効)の設定、バッファあふれしきい値Thbuf、バッファあふれ制御解除しきい値ThbufEの設定を行うことができる。
その後、端末A(101−1)からパケット転送装置(700)にMACフレームおよびIFG(812)の送信が開始される。このとき、例えば、端末A(101−1)から送信されるMACフレームおよびIFG(812)の長さは、MACフレームは1530バイト、IFGは12バイトとし、無限またはバッファあふれが発生しうる長時間にMACフレームおよびIFG(812)の送信が繰り返されるものと仮定する。送信されたMACフレームおよびIFG(812)がポート01に到着し、パケット転送装置(700)は、受信−送信処理を実行する。
図10−1に、第2の実施の形態におけるパケット転送装置(700)の受信−送信処理のフローチャートを示す。
パケット転送装置(700)は、ポート01にてMACフレームおよびIFG(812)を受信し(S1001)、MACフレームおよびIFG(812)を回線収容部(701)でパケット転送装置(700)に適した信号に変換して受信バッファ(702−1)へ転送し(S1002)、MAC処理部(704−1)を経由してパケット処理部(705)へ転送する(S1003、S1004)。パケット処理部(705)は、転送されたMACフレームの送信先を判定し、図8の例ではポート02に対応したMAC処理部(704−2)へMACフレームを転送する(S1005)。例えば、パケット処理部(705)は、MACフレーム内の送信先MACアドレス(404)を参照して送信先を判定する。パケット転送装置(700)は、送信バッファ(706−2)、セレクタ(708−2)および回線収容部(701)を経由してMACフレームを端末B(101−2)へと送信する(S1006〜S1108)。また、受信−送信処理と並行して、パケット転送装置(700)は、クロック情報収集処理を実行する。
パケット転送装置(700)は、ポート01にてMACフレームおよびIFG(812)を受信し(S1001)、MACフレームおよびIFG(812)を回線収容部(701)でパケット転送装置(700)に適した信号に変換して受信バッファ(702−1)へ転送し(S1002)、MAC処理部(704−1)を経由してパケット処理部(705)へ転送する(S1003、S1004)。パケット処理部(705)は、転送されたMACフレームの送信先を判定し、図8の例ではポート02に対応したMAC処理部(704−2)へMACフレームを転送する(S1005)。例えば、パケット処理部(705)は、MACフレーム内の送信先MACアドレス(404)を参照して送信先を判定する。パケット転送装置(700)は、送信バッファ(706−2)、セレクタ(708−2)および回線収容部(701)を経由してMACフレームを端末B(101−2)へと送信する(S1006〜S1108)。また、受信−送信処理と並行して、パケット転送装置(700)は、クロック情報収集処理を実行する。
図10−2に、第2の実施の形態におけるパケット転送装置(700)のクロック情報収集処理のフローチャートを示す。
MACフレームおよびIFG(812)は、回線収容部(701)を経由してクロック抽出部(703−1)へも転送される(S1011)。クロック抽出部(703−1)は、MACフレームおよびIFG(812)のクロック周波数(以後、送信クロック周波数と呼ぶ。)をカウントして、送信クロック周波数と、MACフレームおよびIFG(812)を受信したポートの番号とをクロック比較部(710)へ出力する(S1012)。また、このとき、装置内クロック発生部(711)は、装置内クロック周波数をクロック比較部(710)へ出力する(S1013)。なお、装置内クロック周波数を出力するタイミングはMACフレームの受信時でもよいし、予め出力されるなど他の適宜のタイミングでもよい。クロック比較部(710)は、これら送信クロック周波数と装置内クロック周波数の差分(クロック差)を算出する(S1014)。クロック比較部(710)は、例えば、図11(b)に示すように、クロック差テーブル(709)に受信ポート(ポート番号(901))に対応して送信クロック周波数(902)、クロック差(903)を書き込む(S1015)。また、クロック比較部(710)は、装置内クロック周波数(900)をクロック差テーブル(709)に記憶する。なお、クロック差の算出の処理(S1014)およびクロック差テーブル(709)への書き込みの処理(S1015)は、任意の間隔で実施することができる。また、上述のクロック情報収集処理は、他の受信ポートについても実施されることができる。また、パケット転送装置(700)が、上述のMACフレームの受信−送信処理をしている間に、制御部(712)は、送信バッファあふれ監視処理を実施する。
MACフレームおよびIFG(812)は、回線収容部(701)を経由してクロック抽出部(703−1)へも転送される(S1011)。クロック抽出部(703−1)は、MACフレームおよびIFG(812)のクロック周波数(以後、送信クロック周波数と呼ぶ。)をカウントして、送信クロック周波数と、MACフレームおよびIFG(812)を受信したポートの番号とをクロック比較部(710)へ出力する(S1012)。また、このとき、装置内クロック発生部(711)は、装置内クロック周波数をクロック比較部(710)へ出力する(S1013)。なお、装置内クロック周波数を出力するタイミングはMACフレームの受信時でもよいし、予め出力されるなど他の適宜のタイミングでもよい。クロック比較部(710)は、これら送信クロック周波数と装置内クロック周波数の差分(クロック差)を算出する(S1014)。クロック比較部(710)は、例えば、図11(b)に示すように、クロック差テーブル(709)に受信ポート(ポート番号(901))に対応して送信クロック周波数(902)、クロック差(903)を書き込む(S1015)。また、クロック比較部(710)は、装置内クロック周波数(900)をクロック差テーブル(709)に記憶する。なお、クロック差の算出の処理(S1014)およびクロック差テーブル(709)への書き込みの処理(S1015)は、任意の間隔で実施することができる。また、上述のクロック情報収集処理は、他の受信ポートについても実施されることができる。また、パケット転送装置(700)が、上述のMACフレームの受信−送信処理をしている間に、制御部(712)は、送信バッファあふれ監視処理を実施する。
図10−3に、第2の実施の形態におけるパケット転送装置(700)の送信バッファあふれ監視処理のフローチャートを示す。
送信バッファ(706−2)は、例えば、MACフレームの書き込みがあったタイミングで送信バッファ空き容量Ebufを制御部(712)に通知する。なお、通知のタイミングは予め定められた周期など適宜のタイミングでもよい。制御部(712)は、送信バッファ(706−2)から通知される送信バッファ空き容量Ebufとバッファあふれしきい値Thbufを比較する(S1021)。このとき、送信バッファ空き容量Ebufがバッファあふれしきい値Thbufより大きい場合、制御部(712)は、通常のバッファ制御を実施する(S1029)。通常のバッファ制御では、例えば、制御部(712)は、IFG調整をしていない予め定められたIFG長(例えば、12バイト)のIFGを送出する。一方、送信バッファ空き容量Ebufがバッファあふれしきい値Thbuf以下の場合、制御部(712)は、クロック差テーブル(709)を検索し、装置内クロック周波数(900)よりも速い送信クロック周波数(902)があるか否かを判断する(S1022)。装置内クロック周波数(900)がどの送信クロック周波数よりも速い場合は、クロック差によるバッファあふれは発生しないので、制御部(712)は、通常のバッファ制御を実施する(S1029)。一方、装置内クロック周波数(900)よりもいずれかの送信クロック周波数(902)が速い場合は、制御部(712)は送信バッファあふれが発生し得ると判断し、第1の実施の形態と同様にバッファあふれ制御(IFG調整)を開始する。
送信バッファ(706−2)は、例えば、MACフレームの書き込みがあったタイミングで送信バッファ空き容量Ebufを制御部(712)に通知する。なお、通知のタイミングは予め定められた周期など適宜のタイミングでもよい。制御部(712)は、送信バッファ(706−2)から通知される送信バッファ空き容量Ebufとバッファあふれしきい値Thbufを比較する(S1021)。このとき、送信バッファ空き容量Ebufがバッファあふれしきい値Thbufより大きい場合、制御部(712)は、通常のバッファ制御を実施する(S1029)。通常のバッファ制御では、例えば、制御部(712)は、IFG調整をしていない予め定められたIFG長(例えば、12バイト)のIFGを送出する。一方、送信バッファ空き容量Ebufがバッファあふれしきい値Thbuf以下の場合、制御部(712)は、クロック差テーブル(709)を検索し、装置内クロック周波数(900)よりも速い送信クロック周波数(902)があるか否かを判断する(S1022)。装置内クロック周波数(900)がどの送信クロック周波数よりも速い場合は、クロック差によるバッファあふれは発生しないので、制御部(712)は、通常のバッファ制御を実施する(S1029)。一方、装置内クロック周波数(900)よりもいずれかの送信クロック周波数(902)が速い場合は、制御部(712)は送信バッファあふれが発生し得ると判断し、第1の実施の形態と同様にバッファあふれ制御(IFG調整)を開始する。
具体的には、制御部(712)は、送信バッファ(706−2)の動作状況を確認し、現在MACフレームを送出中であるか否かを判断する(S1023)。MACフレーム送出中であれば、制御部(712)は、当該MACフレームの送出終了まで待機する(S1024)。制御部(712)は、当該MACフレームの送出の終了後、セレクタ(708−2)をIFG生成部(707−2)側へ切替えて(S1025)、IFGを送出する(S1026)。このとき、制御部(712)は、IFG長(Lifg)を第1の実施の形態と同様の方法により算出することができる。例えば、制御部(712)は、11バイトとなるまでIFGを送出後、セレクタ(708−2)を送信バッファ(706−2)側へ切替えて(S1027)、MACフレームを送出し(S1028)、送信バッファ空き容量Ebufとバッファあふれ制御解除しきい値ThbufEを比較する(S1033)。なお、例えば、制御部(712)は、算出した長さ(Lifg)のIFGを生成するようにIFG生成部(707−2)に要求し、IFG送出完了時にセレクタ(708−2)を切替えることでIFG調整を行ってもよい。送信バッファ空き容量Ebufがバッファあふれ制御解除しきい値ThbufE以上である場合、制御部(712)は、通常のバッファ制御を実施する(S1029)。一方、送信バッファ空き容量Ebufがバッファあふれ制御解除しきい値ThbufEより小さい場合、制御部(712)は、ステップS1023に戻り、送信バッファあふれ監視処理を継続する。また、ステップS1023において送信バッファ(706−2)の動作状態がMACフレーム出力中でない場合、すなわちIFGパターン送出中の場合、制御部(712)は、既に12バイト以上のIFGが出力されているか否かを判断する(S1031)。既に12バイト以上のIFGが出力されている場合、IFGの送出が終了しているため、制御部(712)は、直ちにセレクタ(708−2)を送信バッファ(706−2)側へ切替えてIFG送出を停止し(S1027)、MACフレームを送出した後(S1028)、ステップS1023に戻り送信バッファあふれ監視処理を継続し、次のIFG送出のタイミングでIFG調整を行う。一方、ステップS1031において、送出済みのIFGがIFG長Lifg(例えば、12バイト)よりも短い場合は、不足分の長さのIFGパターンを送出した後(S1032)、制御部(712)は、セレクタ(708−2)を送信バッファ(706−2)側へ切替えてIFG送出を停止し(S1027)、MACフレームを送出した後(S1028)、ステップS1023に戻り送信バッファあふれ監視処理を継続し、次のIFG送出のタイミングでIFG調整を行う。
以上の処理により、第2の実施の形態では、送信バッファの空き容量を監視し、装置内クロック周波数がいずれかの送信クロック周波数よりも遅く、送信バッファがあふれることが予測される場合に、IFGの長さを短くすることで送信バッファからMACフレームデータを送出する間隔を詰める。これにより、送信バッファの空く時間が短くなり、バッファあふれを防ぐパケット転送装置を提供することができる。また、クロック差によるバッファあふれが予測される場合のみIFGの長さを調整することができる。また、上述の動作は、ポート01−ポート02間だけではなく、他のポートの組合せでも実行することができる。
また、第2の実施の形態において、短くするIFGの長さに制限はなく0にすることも可能であるが、イーサネット(登録商標)規格ではIFGは12バイト以上であることを推奨しており、IFGを5バイトまでは短縮可能なことが規格上許されているため、5バイトまで短くすることが推奨される。しかし、5バイト未満のIFGを使用するかは対向装置の仕様に依存するため、パケット転送装置を設定する際に、例えば、5バイト未満のIFGを使用するバッファあふれ制御機能のオン(有効)/オフ(無効)を選択できるようにしてもよい。
また、第2の実施の形態において、短くするIFGの長さに制限はなく0にすることも可能であるが、イーサネット(登録商標)規格ではIFGは12バイト以上であることを推奨しており、IFGを5バイトまでは短縮可能なことが規格上許されているため、5バイトまで短くすることが推奨される。しかし、5バイト未満のIFGを使用するかは対向装置の仕様に依存するため、パケット転送装置を設定する際に、例えば、5バイト未満のIFGを使用するバッファあふれ制御機能のオン(有効)/オフ(無効)を選択できるようにしてもよい。
3.第3の実施の形態
第2の実施の形態では、事前にクロック差を調査し、クロック差がある場合のみバッファあふれ制御をすることにより、効率的にバッファあふれ制御を実施するものだったが、例えば、ひとつでも装置内クロック周波数よりも高速なMACフレームが送信元から到着した場合、クロック差のないMACフレームに対してもバッファあふれ制御を行う。そこで、第3の実施の形態では、装置内クロック周波数よりも高速な送信元からのMACフレームが到着した場合、高速なMACフレームに対してのみバッファあふれ制御を行うようなパケット転送装置を提供する。
図12は、第3の実施の形態において実現されるパケット転送装置の内部ブロックを示す構成図である。
第3の実施の形態のパケット転送装置(1200)は、第2の実施の形態のパケット転送装置に対して、さらに、ポート番号付加部(ポート識別子付加部)(1204)およびポート番号識別部(ポート識別部)(1207)を備える。
具体的には、パケット転送装置(1200)は、複数の送受信ポートを収容する回線収容部(1201)と、受信したMACフレームをバッファリングする受信バッファ(1202−1〜n)と、受信したMACフレームからクロック周波数を抽出するクロック抽出部(1203−1〜n)と、MACフレームのプリアンブル部分にフレームを受信したポートのポート番号を埋めこむポート番号付加部(1204−1〜n)と、エラー検出等の受信したMACフレームに対する処理を行うMAC処理部(1205−1〜n)と、MACフレームの転送処理を行うパケット処理部(1206)と、パケット処理部(1206)から転送されてきたMACフレームのプリアンブル部から受信したポート番号を抽出して削除し抽出したポート番号を制御部(1214)に出力するポート番号識別部(1207−1〜n)と、送信するMACフレームをバッファリングして回線収容部(1201)に転送するとともに、バッファの空き容量を制御部(1214)に通知可能な送信バッファ(1208−1〜n)と、IFGパターンを生成し回線収容部(1201)へ送出するIFG生成部(1209−1〜n)と、送信するデータをMACフレームまたはIFGパターンから選択するセレクタ(1210−1〜n)と、送受信装置間で決定された伝送速度に従い装置内クロック信号を生成する装置内クロック発生部(1213)と、クロック抽出部(1203−1〜n)にて抽出された送信クロック周波数(パケット転送装置(1200)が受信したMACフレームのクロック周波数)と装置内クロック周波数(装置内クロック発生部(1213)が生成するクロック信号の周波数)を収集・比較するクロック比較部(1212)と、クロック比較部にて収集・比較されたクロック情報(送信クロック周波数と装置内クロック周波数および/またはクロック差)を格納するクロック差テーブル(1211)と、これら送信バッファ(1208−1〜n)およびセレクタ(1210−1〜n)等を制御するための制御部(1214)とを備える。
第2の実施の形態では、事前にクロック差を調査し、クロック差がある場合のみバッファあふれ制御をすることにより、効率的にバッファあふれ制御を実施するものだったが、例えば、ひとつでも装置内クロック周波数よりも高速なMACフレームが送信元から到着した場合、クロック差のないMACフレームに対してもバッファあふれ制御を行う。そこで、第3の実施の形態では、装置内クロック周波数よりも高速な送信元からのMACフレームが到着した場合、高速なMACフレームに対してのみバッファあふれ制御を行うようなパケット転送装置を提供する。
図12は、第3の実施の形態において実現されるパケット転送装置の内部ブロックを示す構成図である。
第3の実施の形態のパケット転送装置(1200)は、第2の実施の形態のパケット転送装置に対して、さらに、ポート番号付加部(ポート識別子付加部)(1204)およびポート番号識別部(ポート識別部)(1207)を備える。
具体的には、パケット転送装置(1200)は、複数の送受信ポートを収容する回線収容部(1201)と、受信したMACフレームをバッファリングする受信バッファ(1202−1〜n)と、受信したMACフレームからクロック周波数を抽出するクロック抽出部(1203−1〜n)と、MACフレームのプリアンブル部分にフレームを受信したポートのポート番号を埋めこむポート番号付加部(1204−1〜n)と、エラー検出等の受信したMACフレームに対する処理を行うMAC処理部(1205−1〜n)と、MACフレームの転送処理を行うパケット処理部(1206)と、パケット処理部(1206)から転送されてきたMACフレームのプリアンブル部から受信したポート番号を抽出して削除し抽出したポート番号を制御部(1214)に出力するポート番号識別部(1207−1〜n)と、送信するMACフレームをバッファリングして回線収容部(1201)に転送するとともに、バッファの空き容量を制御部(1214)に通知可能な送信バッファ(1208−1〜n)と、IFGパターンを生成し回線収容部(1201)へ送出するIFG生成部(1209−1〜n)と、送信するデータをMACフレームまたはIFGパターンから選択するセレクタ(1210−1〜n)と、送受信装置間で決定された伝送速度に従い装置内クロック信号を生成する装置内クロック発生部(1213)と、クロック抽出部(1203−1〜n)にて抽出された送信クロック周波数(パケット転送装置(1200)が受信したMACフレームのクロック周波数)と装置内クロック周波数(装置内クロック発生部(1213)が生成するクロック信号の周波数)を収集・比較するクロック比較部(1212)と、クロック比較部にて収集・比較されたクロック情報(送信クロック周波数と装置内クロック周波数および/またはクロック差)を格納するクロック差テーブル(1211)と、これら送信バッファ(1208−1〜n)およびセレクタ(1210−1〜n)等を制御するための制御部(1214)とを備える。
制御部(1214)は、例えば、パケット転送装置(1200)に対して各種設定データを設定できる制御端末(1215)と接続され、制御端末(1215)から入力された各種設定データを適宜の記憶部に記憶することができる。なお、パケット転送装置(1200)は、受信バッファ(1202)、クロック抽出部(1203)、ポート番号付加部(1204)、MAC処理部(1205)、ポート番号識別部(1207)、送信バッファ(1208)、IFG生成部(1209)およびセレクタ(1210)を、パケット転送装置(1200)が備えるポートの数分(図12の例ではn個)それぞれ備える。
図13は、第3の実施の形態におけるパケット転送装置の動作説明図である。
図示の例は、図12で示されたパケット転送装置(1200)の構成のうち、ポート01からポート02へのMACフレーム転送に着目した例であり、第3の実施の形態においての動作を示すものである。
例えば、パケット転送装置(1200)は、ポート01に端末A(101−1)、ポート02に端末B(101−2)が接続され、パケット転送装置(1200)と、端末A(101−1)と、端末B(101−2)とで決められた伝送速度を、例えばB(Hz)とする。ここで、端末A(101−1)から送信される複数のMACフレームおよびIFG(1314)はクロック差があり、例えば伝送速度B(Hz)よりも速い伝送速度Btx(Hz)で送信されると仮定する。また、パケット転送装置(1200)内では伝送速度Bに対応して装置内クロック発生部(1213)が周波数Brx(Hz)のクロック信号を生成し、このBrxが端末B(101−2)へ転送されるMACフレームおよびIFG(1319)の伝送速度となる。ここで、Brx(Hz)は、伝送速度B(Hz)よりも遅いと仮定する。ポート番号付加部(1204−1)およびポート番号識別部(1207−2)は、別のクロック信号に基づきBtx(Hz)およびBrx(Hz)よりも速い速度で動作することができる。なお、他のブロックの動作速度は、第1、第2の実施の形態と同様である。
図13は、第3の実施の形態におけるパケット転送装置の動作説明図である。
図示の例は、図12で示されたパケット転送装置(1200)の構成のうち、ポート01からポート02へのMACフレーム転送に着目した例であり、第3の実施の形態においての動作を示すものである。
例えば、パケット転送装置(1200)は、ポート01に端末A(101−1)、ポート02に端末B(101−2)が接続され、パケット転送装置(1200)と、端末A(101−1)と、端末B(101−2)とで決められた伝送速度を、例えばB(Hz)とする。ここで、端末A(101−1)から送信される複数のMACフレームおよびIFG(1314)はクロック差があり、例えば伝送速度B(Hz)よりも速い伝送速度Btx(Hz)で送信されると仮定する。また、パケット転送装置(1200)内では伝送速度Bに対応して装置内クロック発生部(1213)が周波数Brx(Hz)のクロック信号を生成し、このBrxが端末B(101−2)へ転送されるMACフレームおよびIFG(1319)の伝送速度となる。ここで、Brx(Hz)は、伝送速度B(Hz)よりも遅いと仮定する。ポート番号付加部(1204−1)およびポート番号識別部(1207−2)は、別のクロック信号に基づきBtx(Hz)およびBrx(Hz)よりも速い速度で動作することができる。なお、他のブロックの動作速度は、第1、第2の実施の形態と同様である。
ポート01にて受信されたMACフレームおよびIFG(1314)は、回線収容部(1201)を経由して受信バッファ(1202−1)にてバッファリングされたのちポート番号付加部(1204−1)へ転送され、ポート番号付加部(1204−1)にてプリアンブルに受信したポートのポート番号が埋めこまれ、MAC処理部(1205−1)を経由してパケット処理部(1206)に転送される。なお、埋めこまれるポート番号はそれぞれのポート番号付加部(1204)に予め記憶されていてもよい。また、受信されたIFGは、例えばMAC処理部(1205−1)等で、適宜削除される。
また、クロック抽出部(1203−1)は、MACフレームおよびIFG(1314)を受信したポートの番号と、受信したMACフレームおよびIFG(1314)から抽出した送信クロック周波数をクロック比較部(1212)へと通知する。なお、通知されるポート番号は、それぞれのクロック抽出部(1203)に予め記憶されていてもよいし、回線収容部(1201)から通知されてもよい。また、MACフレームおよびIFG(1314)からクロックを抽出する手法は、適宜の手法を用いることができる。クロック比較部(1212)は、送信クロック周波数と装置内クロック発生部(1213)から得られた装置内クロックの周波数を比較して、その結果(クロック差)をクロック差テーブル(1211)に書き込む。
ポート02へ送信されるMACフレームは、MAC処理部(1205−2)を経由してポート番号識別部(1207−2)へと転送され、ポート番号識別部(1207−2)は、MACフレームからポート番号を抽出してポート番号を制御部(1214)へと通知し、ポート番号を削除したMACフレームを送信バッファ(1208−2)へ転送する。制御部(1214)は、クロック差テーブル(1211)と、送信バッファ(1208−2)から通知される送信バッファ空き容量Ebufとを監視して、IFG調整を行うか否かを判断する。また、制御部(1214)は、セレクタ(1210−2)を操作して、送信バッファ(1208−2)からMACフレームを選択し、またはIFG生成部(1209−2)から所定の長さのIFGパターンを選択して、回線収容部(1201)およびポート02を経由してMACフレームおよびIFG(1319)を端末B(101−2)へ送信する。ここで、IFGの長さが例えば11バイトに調整される。なお、クロック差テーブル(1211)のテーブルフォーマットは、第2の実施の形態の図9で示したものと同じである。また、制御部(1214)は、制御端末(1215)により、パケット転送装置(1200)全体の動作に関する設定データを入力し、記憶することが可能である。
また、クロック抽出部(1203−1)は、MACフレームおよびIFG(1314)を受信したポートの番号と、受信したMACフレームおよびIFG(1314)から抽出した送信クロック周波数をクロック比較部(1212)へと通知する。なお、通知されるポート番号は、それぞれのクロック抽出部(1203)に予め記憶されていてもよいし、回線収容部(1201)から通知されてもよい。また、MACフレームおよびIFG(1314)からクロックを抽出する手法は、適宜の手法を用いることができる。クロック比較部(1212)は、送信クロック周波数と装置内クロック発生部(1213)から得られた装置内クロックの周波数を比較して、その結果(クロック差)をクロック差テーブル(1211)に書き込む。
ポート02へ送信されるMACフレームは、MAC処理部(1205−2)を経由してポート番号識別部(1207−2)へと転送され、ポート番号識別部(1207−2)は、MACフレームからポート番号を抽出してポート番号を制御部(1214)へと通知し、ポート番号を削除したMACフレームを送信バッファ(1208−2)へ転送する。制御部(1214)は、クロック差テーブル(1211)と、送信バッファ(1208−2)から通知される送信バッファ空き容量Ebufとを監視して、IFG調整を行うか否かを判断する。また、制御部(1214)は、セレクタ(1210−2)を操作して、送信バッファ(1208−2)からMACフレームを選択し、またはIFG生成部(1209−2)から所定の長さのIFGパターンを選択して、回線収容部(1201)およびポート02を経由してMACフレームおよびIFG(1319)を端末B(101−2)へ送信する。ここで、IFGの長さが例えば11バイトに調整される。なお、クロック差テーブル(1211)のテーブルフォーマットは、第2の実施の形態の図9で示したものと同じである。また、制御部(1214)は、制御端末(1215)により、パケット転送装置(1200)全体の動作に関する設定データを入力し、記憶することが可能である。
図14は、第3の実施の形態のパケット転送装置内で使用されるMACフレームの説明図である。
MACフレームが転送される際には、例えば、MACフレーム本体(以下単に、MACフレームと記す。)(1400−1〜2)と、MACフレーム間に存在するIFG(1401−1〜2)が交互に繰り返して伝送される。MACフレームは、例えば、MACフレームの識別に使用されるプリアンブル/SFD(1402)、送信元MACアドレス(1403)、送信先MACアドレス(1404)、VLANタグ(1405)、Type/Length(1406)、ペイロード(1407)、FCS(1408)を含む。また、MACフレームは、76〜1530バイトの可変長フレームである。
なお、MACフレームが含む各データの詳細については、イーサネット(登録商標)規格に規定されているため、詳細な説明は省略する。また、VLANタグ(1405)はオプションであり、MACフレームはVLANタグ(1405)を含まなくても良い。
また、プリアンブル/SFD(1402)は、例えば、プリアンブル(1409)とSFD(1410)を含む。なお、MACフレームが受信されたポート番号を書き込む領域(1412)として、例えば、プリアンブル(1409)の最終1バイトを使用することができる。また、新たなフィールドを設けるなどMACフレームの他の適宜の領域に、ポート番号を格納できるようにしてもよい。また、MACフレームの送信時には、ポート番号(1412)は不要のため、制御部(1214)は、元のプリアンブル(1409、1415)に戻すために当該部分(ポート番号(1412))を書き換えることができる。
MACフレームが転送される際には、例えば、MACフレーム本体(以下単に、MACフレームと記す。)(1400−1〜2)と、MACフレーム間に存在するIFG(1401−1〜2)が交互に繰り返して伝送される。MACフレームは、例えば、MACフレームの識別に使用されるプリアンブル/SFD(1402)、送信元MACアドレス(1403)、送信先MACアドレス(1404)、VLANタグ(1405)、Type/Length(1406)、ペイロード(1407)、FCS(1408)を含む。また、MACフレームは、76〜1530バイトの可変長フレームである。
なお、MACフレームが含む各データの詳細については、イーサネット(登録商標)規格に規定されているため、詳細な説明は省略する。また、VLANタグ(1405)はオプションであり、MACフレームはVLANタグ(1405)を含まなくても良い。
また、プリアンブル/SFD(1402)は、例えば、プリアンブル(1409)とSFD(1410)を含む。なお、MACフレームが受信されたポート番号を書き込む領域(1412)として、例えば、プリアンブル(1409)の最終1バイトを使用することができる。また、新たなフィールドを設けるなどMACフレームの他の適宜の領域に、ポート番号を格納できるようにしてもよい。また、MACフレームの送信時には、ポート番号(1412)は不要のため、制御部(1214)は、元のプリアンブル(1409、1415)に戻すために当該部分(ポート番号(1412))を書き換えることができる。
以下に、第3の実施の形態のパケット転送装置(1200)の動作の詳細を図13に従って説明する。
パケット転送装置(1200)は、起動後、各ポートに接続された端末A(101−1)および端末B(101−2)との間で、適宜の通信方式に基づいてネゴシエーションを実施し、回線種別および伝送速度等の設定を行う。第3の実施の形態においては、例えば、ポート01−端末A(101−1)間およびポート02−対端末B(101−2)間の伝送速度は同一とし、その伝送速度をB(Hz)とする。また、ネゴシエーションで決定された伝送速度B(Hz)を実現するために、パケット転送装置(1200)は、装置内クロック発生部(1213)に伝送速度B(Hz)を設定する。また、パケット転送装置(1200)は、クロック差テーブル(1211)には、図16(a)に示すように、初期状態として装置内クロック周波数(1600)、送信クロック周波数(1602)およびクロック差(1603)の項目に例えばnullを設定し、受信待機状態になる。なお、ポート番号(1601)には、例えば、nullを設定しなくてもよい。また、制御端末(1215)により、制御部(1214)は、例えば予め適宜の記憶部に送信バッファあふれ制御機能のON(有効)/OFF(無効)の設定、バッファあふれしきい値Thbuf、バッファあふれ制御解除しきい値ThbufEの設定を行うことができる。
その後、端末A(101−1)からパケット転送装置(1200)にMACフレームおよびIFG(1314)の送信が開始される。このとき、例えば、端末A(101−1)から送信されるMACフレームおよびIFG(1314)の長さは、MACフレームは1530バイト、IFGは12バイトとし、無限またはバッファあふれが発生しうる長時間にMACフレームおよびIFG(1314)の送信が繰り返されるものと仮定する。送信されたMACフレームおよびIFG(1314)が受信ポート01に到着し、パケット転送装置(1200)は、受信−送信処理を実行する。
パケット転送装置(1200)は、起動後、各ポートに接続された端末A(101−1)および端末B(101−2)との間で、適宜の通信方式に基づいてネゴシエーションを実施し、回線種別および伝送速度等の設定を行う。第3の実施の形態においては、例えば、ポート01−端末A(101−1)間およびポート02−対端末B(101−2)間の伝送速度は同一とし、その伝送速度をB(Hz)とする。また、ネゴシエーションで決定された伝送速度B(Hz)を実現するために、パケット転送装置(1200)は、装置内クロック発生部(1213)に伝送速度B(Hz)を設定する。また、パケット転送装置(1200)は、クロック差テーブル(1211)には、図16(a)に示すように、初期状態として装置内クロック周波数(1600)、送信クロック周波数(1602)およびクロック差(1603)の項目に例えばnullを設定し、受信待機状態になる。なお、ポート番号(1601)には、例えば、nullを設定しなくてもよい。また、制御端末(1215)により、制御部(1214)は、例えば予め適宜の記憶部に送信バッファあふれ制御機能のON(有効)/OFF(無効)の設定、バッファあふれしきい値Thbuf、バッファあふれ制御解除しきい値ThbufEの設定を行うことができる。
その後、端末A(101−1)からパケット転送装置(1200)にMACフレームおよびIFG(1314)の送信が開始される。このとき、例えば、端末A(101−1)から送信されるMACフレームおよびIFG(1314)の長さは、MACフレームは1530バイト、IFGは12バイトとし、無限またはバッファあふれが発生しうる長時間にMACフレームおよびIFG(1314)の送信が繰り返されるものと仮定する。送信されたMACフレームおよびIFG(1314)が受信ポート01に到着し、パケット転送装置(1200)は、受信−送信処理を実行する。
図15−1に、第3の実施の形態におけるパケット転送装置(1200)の受信−送信処理のフローチャートを示す。
パケット転送装置(1200)は、ポート01にてMACフレームおよびIFG(1314)を受信し(S1501)、MACフレームおよびIFG(1314)を回線収容部(1201)でパケット転送装置(1200)に適した信号に変換して受信バッファ(1202−1)へ転送し(S1502)、受信バッファ(1202−1)はポート番号付加部(1204−1)へMACフレームを転送する(S1503)。ポート番号付加部(1204−1)は、MACフレームのプリアンブル(1409)の最終1バイトのポート番号(1412)にポート01の識別子(例えば、ポート番号)を書き込み(S1504)、MAC処理部(1205−1)へMACフレームを転送する(S1505)。このように、MACフレームの受信ポート番号をMACフレーム自身に埋めこむことで、転送先にMACフレームを転送する際に、このポート番号に基づいてクロック差テーブル(1211)より対応する送信クロック周波数を参照し、このMACフレームがいかなるクロックで伝送されてきたかを検知することが可能となる。そのため、パケット転送装置(1200)は、バッファあふれ制御の処理を開始するトリガーとしてこのポート番号に基づくクロックを利用することが可能である。
パケット転送装置(1200)は、ポート01にてMACフレームおよびIFG(1314)を受信し(S1501)、MACフレームおよびIFG(1314)を回線収容部(1201)でパケット転送装置(1200)に適した信号に変換して受信バッファ(1202−1)へ転送し(S1502)、受信バッファ(1202−1)はポート番号付加部(1204−1)へMACフレームを転送する(S1503)。ポート番号付加部(1204−1)は、MACフレームのプリアンブル(1409)の最終1バイトのポート番号(1412)にポート01の識別子(例えば、ポート番号)を書き込み(S1504)、MAC処理部(1205−1)へMACフレームを転送する(S1505)。このように、MACフレームの受信ポート番号をMACフレーム自身に埋めこむことで、転送先にMACフレームを転送する際に、このポート番号に基づいてクロック差テーブル(1211)より対応する送信クロック周波数を参照し、このMACフレームがいかなるクロックで伝送されてきたかを検知することが可能となる。そのため、パケット転送装置(1200)は、バッファあふれ制御の処理を開始するトリガーとしてこのポート番号に基づくクロックを利用することが可能である。
さらに、MAC処理部(1205−1)は、受信したMACフレームをパケット処理部(1206)へ転送する(S1506)。パケット処理部(1206)は、転送されたMACフレームの送信先を判定し、図13の例ではポート02に対応したMAC処理部(1205−2)へMACフレームを転送する(S1507)。例えば、パケット処理部(1206)は、MACフレーム内の送信先MACアドレス(1404)を参照して送信先を判定する。MAC処理部(1205−2)は、ポート番号識別部(1207−2)へMACフレームを転送し(S1508)、ポート番号識別部(1207−2)は、MACフレームのポート番号(1412)からポート番号を抽出して、抽出したポート番号を制御部(1214)へ通知するとともに、MACフレームに書き込まれたポート番号(1412)をプリアンブルのビットパターンで上書きする(S1509)。例えば、イーサネット(登録商標)規格においてプリアンブル(1409)は、「1」と「0」が交互に続くビットパターンで表されるため、ポート番号識別部(1207−2)は、「1」と「0」が交互に続くビットパターンを1バイト分ポート番号(1412)に上書きする。ポート番号識別部(1207−2)は、MACフレームを送信バッファ(1208−2)へ転送する(S1510)。パケット転送装置(1200)は、セレクタ(1210−2)および回線収容部(1201)を経由してMACフレームを端末B(101−2)へ送信する(S1511、S1512)。また、受信−送信処理と並行して、パケット転送装置(1200)は、クロック情報収集処理を実行する。
図15−2に、第3の実施の形態におけるパケット転送装置(1200)のクロック情報収集処理のフローチャートを示す。
MACフレームおよびIFG(1314)は、回線収容部(1201)を経由してクロック抽出部(1203−1)へも転送される(S1521)。クロック抽出部(1230−1)は、MACフレームおよびIFG(1314)のクロック周波数(以後、送信クロック周波数と呼ぶ。)をカウントして、送信クロック周波数と、MACフレームおよびIFG(1314)を受信したポートの番号とをクロック比較部(1212)へ出力する(S1522)する。また、このとき、装置内クロック発生部(1213)は、装置内クロック周波数をクロック比較部(1212)へ出力する(S1523)。なお、装置内クロック周波数を出力するタイミングはMACフレームの受信時でもよいし、予め出力されるなど他の適宜のタイミングでもよい。クロック比較部(1212)は、これら送信クロック周波数と装置内クロック周波数の差分(クロック差)を算出する(S1524)。クロック比較部(1212)は、例えば、図16(b)に示すように、クロック差テーブル(1211)に受信ポート(ポート番号1601)に対応して送信クロック周波数(160201)、クロック差(160301)を書き込む(S1525)。また、クロック比較部(1212)は、装置内クロック周波数(1600)をクロック差テーブル(1211)に記憶する。なお、クロック差の算出の処理(S1524)およびクロック差テーブル(1211)への書き込みの処理(S1525)は、任意の間隔で実施することができる。また、上述のクロック情報収集処理は、他の受信ポートについても実施されることができる。また、パケット転送装置(1200)が、上述のMACフレームの受信−送信処理をしている間に、制御部(1214)は、送信バッファあふれ監視処理を実施する。
MACフレームおよびIFG(1314)は、回線収容部(1201)を経由してクロック抽出部(1203−1)へも転送される(S1521)。クロック抽出部(1230−1)は、MACフレームおよびIFG(1314)のクロック周波数(以後、送信クロック周波数と呼ぶ。)をカウントして、送信クロック周波数と、MACフレームおよびIFG(1314)を受信したポートの番号とをクロック比較部(1212)へ出力する(S1522)する。また、このとき、装置内クロック発生部(1213)は、装置内クロック周波数をクロック比較部(1212)へ出力する(S1523)。なお、装置内クロック周波数を出力するタイミングはMACフレームの受信時でもよいし、予め出力されるなど他の適宜のタイミングでもよい。クロック比較部(1212)は、これら送信クロック周波数と装置内クロック周波数の差分(クロック差)を算出する(S1524)。クロック比較部(1212)は、例えば、図16(b)に示すように、クロック差テーブル(1211)に受信ポート(ポート番号1601)に対応して送信クロック周波数(160201)、クロック差(160301)を書き込む(S1525)。また、クロック比較部(1212)は、装置内クロック周波数(1600)をクロック差テーブル(1211)に記憶する。なお、クロック差の算出の処理(S1524)およびクロック差テーブル(1211)への書き込みの処理(S1525)は、任意の間隔で実施することができる。また、上述のクロック情報収集処理は、他の受信ポートについても実施されることができる。また、パケット転送装置(1200)が、上述のMACフレームの受信−送信処理をしている間に、制御部(1214)は、送信バッファあふれ監視処理を実施する。
図15−3に、第3の実施の形態におけるパケット転送装置(1200)の送信バッファあふれ監視処理のフローチャートを示す。
制御部(1214)は、ポート番号識別部(1207−2)から通知されてくるポート番号を受信する(S1531)。制御部(1214)は、受信したポート番号に基づいてクロック差テーブル(1211)の対応するクロック差(1603)を参照する(S1532)。制御部(1214)は、ポート番号に対応するクロック差(1603)に基づき装置内クロック周波数(1600)よりも送信クロック周波数(1602)が速いか否かを判断する(S1533)。例えば、クロック差(903)の値が正の値の場合、送信クロック周波数(1602)が装置内クロック周波数(1600)よりも速いと判断することができる。装置内クロック周波数(1600)よりも送信クロック周波数(1602)が速くない場合、制御部(1214)は、通常のバッファ制御を実施する(S1541)。通常のバッファ制御では、例えば、制御部(1214)は、IFG調整をしていない予め定められたIFG長(例えば、12バイト)のIFGを送出する。一方、装置内クロック周波数(1600)よりも送信クロック周波数(1602)が速い場合、制御部(1214)は、送信バッファ(1208−2)から通知される送信バッファ空き容量Ebufとバッファあふれしきい値Thbufを比較する(S1534)。なお、送信バッファ(1208−2)は、例えば、MACフレームの書き込みがあったタイミングで送信バッファ空き容量Ebufを制御部(1214)に通知する。なお、通知のタイミングは予め定められた周期など適宜のタイミングでもよい。このとき、送信バッファ空き容量Ebufがバッファあふれしきい値Thbufより大きい場合は、クロック差によるバッファあふれは発生しないので、制御部(1214)は、通常のバッファ制御を実施する(S1541)。一方、送信バッファ空き容量Ebufがバッファあふれしきい値Thbuf以下の場合は、制御部(1214)は送信バッファあふれが発生し得ると判断し、第1の実施の形態と同様にバッファあふれ制御(IFG調整)を開始する。具体的には、制御部(1214)は、送信バッファ(1208−2)の動作状況を確認し、現在MACフレームを送出中であるか否かを判断する(S1535)。MACフレーム送出中であれば、制御部(1214)は、当該MACフレームの送出終了まで待機する(S1536)。制御部(1214)は、当該MACフレームの送出の終了後、セレクタ(1210−2)をIFG生成部(1209−2)側へ切替えて(S1537)、IFGを送出する(S1538)。このとき、制御部(1214)は、IFG長(Lifg)を第1の実施の形態と同様の方法により算出することができる。例えば、制御部(1214)は、11バイトとなるまでIFGを送出後、セレクタ(1210−2)を送信バッファ(1208−2)側へ切替えて(S1539)、MACフレームを送出し(S1540)、送信バッファ空き容量Ebufとバッファあふれ制御解除しきい値ThbufEを比較する(S1545)。なお、例えば、制御部(1214)は、算出した長さ(Lifg)のIFGを生成するようにIFG生成部(1209−2)に要求し、IFG送出完了時にセレクタ(1210−2)を切替えることでIFG調整を行ってもよい。送信バッファ空き容量Ebufがバッファあふれ制御解除しきい値ThbufE以上である場合、制御部(1214)は、通常のバッファ制御を実施する(S1541)。一方、送信バッファ空き容量Ebufがバッファあふれ制御解除しきい値ThbufEより小さい場合、制御部(1214)は、ステップS1535に戻り、送信バッファあふれ監視処理を継続する。また、ステップS1535において送信バッファ(1208−2)の動作状態がMACフレーム出力中でない場合、すなわちIFGパターン送出中の場合、制御部(1214)は、既に12バイト以上のIFGが出力されているか否かを判断する(S1543)。既に12バイト以上のIFGが出力されている場合、IFGの送出が終了しているため、制御部(1214)は、直ちにセレクタ(1210−2)を送信バッファ(1208−2)側へ切替えて、IFG送出を停止し(S1539)、MACフレームを送出した後(S1540)、ステップS1535に戻り、送信バッファあふれ監視処理を継続し、次のIFG送出のタイミングでIFG調整を行う。一方、ステップS1543において、送出済みのIFGがIFG長Lifg(例えば、12バイト)よりも短い場合は、不足分の長さのIFGを送出した後(S1544)、制御部(1214)はセレクタ(1210−2)を送信バッファ(1208−2)側へ切替えてしてIFG送出を停止し(S1539)、MACフレームを送出した後(S1540)、ステップS1535に戻り、送信バッファあふれ監視処理を継続し、次のIFG送出のタイミングでIFG調整を行う。
制御部(1214)は、ポート番号識別部(1207−2)から通知されてくるポート番号を受信する(S1531)。制御部(1214)は、受信したポート番号に基づいてクロック差テーブル(1211)の対応するクロック差(1603)を参照する(S1532)。制御部(1214)は、ポート番号に対応するクロック差(1603)に基づき装置内クロック周波数(1600)よりも送信クロック周波数(1602)が速いか否かを判断する(S1533)。例えば、クロック差(903)の値が正の値の場合、送信クロック周波数(1602)が装置内クロック周波数(1600)よりも速いと判断することができる。装置内クロック周波数(1600)よりも送信クロック周波数(1602)が速くない場合、制御部(1214)は、通常のバッファ制御を実施する(S1541)。通常のバッファ制御では、例えば、制御部(1214)は、IFG調整をしていない予め定められたIFG長(例えば、12バイト)のIFGを送出する。一方、装置内クロック周波数(1600)よりも送信クロック周波数(1602)が速い場合、制御部(1214)は、送信バッファ(1208−2)から通知される送信バッファ空き容量Ebufとバッファあふれしきい値Thbufを比較する(S1534)。なお、送信バッファ(1208−2)は、例えば、MACフレームの書き込みがあったタイミングで送信バッファ空き容量Ebufを制御部(1214)に通知する。なお、通知のタイミングは予め定められた周期など適宜のタイミングでもよい。このとき、送信バッファ空き容量Ebufがバッファあふれしきい値Thbufより大きい場合は、クロック差によるバッファあふれは発生しないので、制御部(1214)は、通常のバッファ制御を実施する(S1541)。一方、送信バッファ空き容量Ebufがバッファあふれしきい値Thbuf以下の場合は、制御部(1214)は送信バッファあふれが発生し得ると判断し、第1の実施の形態と同様にバッファあふれ制御(IFG調整)を開始する。具体的には、制御部(1214)は、送信バッファ(1208−2)の動作状況を確認し、現在MACフレームを送出中であるか否かを判断する(S1535)。MACフレーム送出中であれば、制御部(1214)は、当該MACフレームの送出終了まで待機する(S1536)。制御部(1214)は、当該MACフレームの送出の終了後、セレクタ(1210−2)をIFG生成部(1209−2)側へ切替えて(S1537)、IFGを送出する(S1538)。このとき、制御部(1214)は、IFG長(Lifg)を第1の実施の形態と同様の方法により算出することができる。例えば、制御部(1214)は、11バイトとなるまでIFGを送出後、セレクタ(1210−2)を送信バッファ(1208−2)側へ切替えて(S1539)、MACフレームを送出し(S1540)、送信バッファ空き容量Ebufとバッファあふれ制御解除しきい値ThbufEを比較する(S1545)。なお、例えば、制御部(1214)は、算出した長さ(Lifg)のIFGを生成するようにIFG生成部(1209−2)に要求し、IFG送出完了時にセレクタ(1210−2)を切替えることでIFG調整を行ってもよい。送信バッファ空き容量Ebufがバッファあふれ制御解除しきい値ThbufE以上である場合、制御部(1214)は、通常のバッファ制御を実施する(S1541)。一方、送信バッファ空き容量Ebufがバッファあふれ制御解除しきい値ThbufEより小さい場合、制御部(1214)は、ステップS1535に戻り、送信バッファあふれ監視処理を継続する。また、ステップS1535において送信バッファ(1208−2)の動作状態がMACフレーム出力中でない場合、すなわちIFGパターン送出中の場合、制御部(1214)は、既に12バイト以上のIFGが出力されているか否かを判断する(S1543)。既に12バイト以上のIFGが出力されている場合、IFGの送出が終了しているため、制御部(1214)は、直ちにセレクタ(1210−2)を送信バッファ(1208−2)側へ切替えて、IFG送出を停止し(S1539)、MACフレームを送出した後(S1540)、ステップS1535に戻り、送信バッファあふれ監視処理を継続し、次のIFG送出のタイミングでIFG調整を行う。一方、ステップS1543において、送出済みのIFGがIFG長Lifg(例えば、12バイト)よりも短い場合は、不足分の長さのIFGを送出した後(S1544)、制御部(1214)はセレクタ(1210−2)を送信バッファ(1208−2)側へ切替えてしてIFG送出を停止し(S1539)、MACフレームを送出した後(S1540)、ステップS1535に戻り、送信バッファあふれ監視処理を継続し、次のIFG送出のタイミングでIFG調整を行う。
以上の処理により、第3の実施の形態では、他のパケット転送装置が送信するMACフレームの送信クロック周波数が装置内クロック周波数より速く、送信バッファがあふれることが予測される場合に、IFGの長さを短くすることで送信バッファから当該MACフレームデータを送出する間隔を詰める。これにより、送信バッファの空く時間が短くなり、バッファあふれを防ぐパケット転送装置を提供することができる。また、MACフレーム内に格納したポート番号に基づいてクロック差テーブル(1211)を参照することにより、装置内クロック周波数よりも速い送信クロック周波数のMACフレームに対してのみIFGの長さを調整することができる。また、上述の動作は、ポート01−ポート02間だけではなく、他のポートの組合せでも実行することができる。
また、第3の実施の形態において短くするIFGの長さに制限はなく0にすることも可能であるが、イーサネット(登録商標)規格ではIFGは12バイト以上であることを推奨しており、5バイトまではIFGを短縮可能なことが規格上許されているため、5バイトまで短くすることが推奨される。しかし、5バイト未満のIFGを使用するかは対向装置の仕様に依存するため、パケット転送装置を設定する際に、例えば、5バイト未満のIFGを使用するバッファあふれ制御機能のオン(有効)/オフ(無効)を選択できるようにしてもよい。
また、第3の実施の形態において短くするIFGの長さに制限はなく0にすることも可能であるが、イーサネット(登録商標)規格ではIFGは12バイト以上であることを推奨しており、5バイトまではIFGを短縮可能なことが規格上許されているため、5バイトまで短くすることが推奨される。しかし、5バイト未満のIFGを使用するかは対向装置の仕様に依存するため、パケット転送装置を設定する際に、例えば、5バイト未満のIFGを使用するバッファあふれ制御機能のオン(有効)/オフ(無効)を選択できるようにしてもよい。
本発明は、例えば、イーサネット(登録商標)規格に準拠したインタフェースをもつルータ、L2SW、L3SW、ハブ、NIC等の機器・転送装置等に適用可能である。
100、700、1200 パケット転送装置
101 端末
102 他ネットワーク
201、701、1201 回線収容部
202、702、1202 受信バッファ
203、704、1205 MAC処理部
204、705、1206 パケット処理部
205、706、1208 送信バッファ
206、707、1209 IFG生成部
207、708、1210 セレクタ
208、711、1213 装置内クロック発生部
209、712、1214 制御部
210、713、1215 制御端末
703、1203 クロック抽出部
709、1211 クロック差テーブル
710、1212 クロック比較部
1204 ポート番号付加部
1207 ポート番号識別部
101 端末
102 他ネットワーク
201、701、1201 回線収容部
202、702、1202 受信バッファ
203、704、1205 MAC処理部
204、705、1206 パケット処理部
205、706、1208 送信バッファ
206、707、1209 IFG生成部
207、708、1210 セレクタ
208、711、1213 装置内クロック発生部
209、712、1214 制御部
210、713、1215 制御端末
703、1203 クロック抽出部
709、1211 クロック差テーブル
710、1212 クロック比較部
1204 ポート番号付加部
1207 ポート番号識別部
Claims (9)
- 送信するフレーム間に予め定められた長さのギャップパターンを挿入して出力するパケット転送装置において、
フレームを送受信するための回線収容部と、
前記回線収容部を介して受信したフレームを蓄積する受信バッファと、
前記受信バッファに蓄積されたフレームを転送するパケット処理部と、
前記パケット処理部から転送されたフレームを蓄積する送信バッファと、
フレーム間に挿入するギャップパターンを生成するギャップ生成部と、
前記送信バッファに蓄積されたフレーム及び前記ギャップ生成部で生成されたギャップパターンを選択し、回線収容部を介して出力するセレクタと、
前記送信バッファの空き容量を監視し、該空き容量が予め定められた閾値以下になると、前記セレクタを制御して前記ギャップ生成部から出力するギャップパターンの長さを前記予め定められた長さより短くし、前記送信バッファからのフレームの読み出しを速くする制御部と
を備えた前記パケット転送装置。 - 受信したフレームのクロック周波数を抽出するクロック抽出部と、
前記クロック抽出部で抽出されたクロック周波数と、装置内クロックの周波数を比較するクロック比較部と
をさらに備え、
前記制御部は、抽出されたクロック周波数が装置内クロックの周波数より速く、かつ、前記送信バッファの空き容量が予め定められた閾値以下の場合に、前記セレクタを制御して前記ギャップ生成部から出力するギャップパターンの長さを前記予め定められた長さより短くし、前記送信バッファからのフレームの読み出しを速くする請求項1に記載のパケット転送装置。 - 抽出されたクロック周波数と装置内クロックの周波数が記憶された、又は、抽出されたクロック周波数と装置内クロックの周波数との差が記憶されたクロック情報記憶部
をさらに備え、
前記制御部は、前記送信バッファの空き容量が前記閾値以下になると前記クロック情報記憶部を参照し、抽出されたクロック周波数が装置内クロックの周波数より速い場合に、前記セレクタを制御して前記ギャップ生成部から出力するギャップパターンの長さを前記予め定められた長さより短くし、前記送信バッファからのフレームの読み出しを速くする請求項2に記載のパケット転送装置。 - 前記回線収容部が有する所定のポートを介して受信されたフレームのクロック周波数を抽出するクロック抽出部と、
前記クロック抽出部で抽出されたクロック周波数と、装置内クロックの周波数を比較するクロック比較部と、
前記ポートを識別するポート識別子毎に、抽出されたクロック周波数と装置内クロックの周波数を含むクロック情報、又は、抽出されたクロック周波数と装置内クロックの周波数との差を含むクロック情報が記憶されたクロック情報記憶部と、
前記ポートを介して受信されたフレームに、該ポートのポート識別子を付加するポート識別子付加部と、
前記パケット処理部から転送されたフレームに付加されたポート識別子を、前記制御部に出力するポート識別部と
をさらに備え、
前記制御部は、前記ポート識別部からポート識別子を入力し、該ポート識別子に基づき前記クロック情報記憶部を参照し、対応するクロック情報に従い該ポート識別子が示すポートで受信されたフレームのクロック周波数が装置内クロックの周波数より速いか判断し、速い場合に、前記セレクタを制御して前記ギャップ生成部から出力するギャップパターンの長さを前記予め定められた長さより短くし、前記送信バッファからのフレームの読み出しを速くする請求項1に記載のパケット転送装置。 - 前記制御部は、前記送信バッファの空き容量が、前記閾値以上の第2の閾値より大きくなると、前記セレクタを制御して前記ギャップ生成部から出力するギャップパターンの長さを予め定められた元の長さに戻す請求項1に記載のパケット転送装置。
- 前記送信バッファは、バッファの空き容量を前記制御部に通知する請求項1に記載のパケット転送装置。
- 前記ギャップパターンの長さは、許容されるクロック差のうち最大に偏差したクロック周波数と最小に偏差したクロック周波数に基づき定められる請求項1に記載のパケット転送装置。
- 前記装置内クロックを発生する装置内クロック発生部をさらに備えた請求項2に記載のパケット転送装置。
- バッファにフレームが書き込まれる速度と読み出される速度との差が許容され、該バッファから読み出されるフレーム間に予め定められた長さのギャップパターンを挿入して出力するシステムにおけるバッファ制御方法であって、
フレームをバッファに蓄積するステップと、
フレーム間に挿入するギャップパターンを生成するステップと、
バッファの空き容量を監視するステップと、
該空き容量が予め定められた閾値以下になると、生成されたギャップパターンの長さを前記予め定められた長さより短くし、バッファからのフレームの読み出しを速くするステップと
を含むバッファ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009004642A JP2010166138A (ja) | 2009-01-13 | 2009-01-13 | バッファ制御方法およびパケット転送装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009004642A JP2010166138A (ja) | 2009-01-13 | 2009-01-13 | バッファ制御方法およびパケット転送装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010166138A true JP2010166138A (ja) | 2010-07-29 |
Family
ID=42581993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009004642A Pending JP2010166138A (ja) | 2009-01-13 | 2009-01-13 | バッファ制御方法およびパケット転送装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010166138A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013192176A (ja) * | 2012-03-15 | 2013-09-26 | Hitachi Automotive Systems Ltd | 自動車用電子制御装置 |
CN109168083A (zh) * | 2018-10-23 | 2019-01-08 | 青岛海信电器股份有限公司 | 一种流媒体实时播放方法及装置 |
CN112235268A (zh) * | 2020-09-29 | 2021-01-15 | 北京智芯微电子科技有限公司 | 安全通信方法、系统及装置 |
CN118277317A (zh) * | 2024-03-27 | 2024-07-02 | 青芯科技(无锡)有限公司 | 一种重定时器结构及其时钟偏差补偿方法 |
-
2009
- 2009-01-13 JP JP2009004642A patent/JP2010166138A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013192176A (ja) * | 2012-03-15 | 2013-09-26 | Hitachi Automotive Systems Ltd | 自動車用電子制御装置 |
CN109168083A (zh) * | 2018-10-23 | 2019-01-08 | 青岛海信电器股份有限公司 | 一种流媒体实时播放方法及装置 |
CN109168083B (zh) * | 2018-10-23 | 2021-05-28 | 海信视像科技股份有限公司 | 一种流媒体实时播放方法及装置 |
CN112235268A (zh) * | 2020-09-29 | 2021-01-15 | 北京智芯微电子科技有限公司 | 安全通信方法、系统及装置 |
CN112235268B (zh) * | 2020-09-29 | 2023-01-24 | 北京智芯微电子科技有限公司 | 安全通信方法、系统及装置 |
CN118277317A (zh) * | 2024-03-27 | 2024-07-02 | 青芯科技(无锡)有限公司 | 一种重定时器结构及其时钟偏差补偿方法 |
CN118277317B (zh) * | 2024-03-27 | 2024-09-27 | 青芯科技(无锡)有限公司 | 一种重定时器结构及其时钟偏差补偿方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10341260B2 (en) | Early queueing network device | |
JP5203402B2 (ja) | 空−空−メモリ(SSM)Closネットワークパケットスイッチ | |
CN104641608B (zh) | 超低延时网络缓冲存储 | |
KR101921015B1 (ko) | 데이터 통신 시스템 내에서의 데이터 패킷들의 전달 방법 | |
US20100195663A1 (en) | Fabric Channel Control Apparatus and Method | |
JP5615747B2 (ja) | 光パケット送受信システム | |
WO2004066571A1 (ja) | ネットワークスイッチ装置およびネットワークスイッチ方法 | |
US9172660B2 (en) | Switch fabric with collector-based cell reordering | |
JP2008005374A (ja) | マルチストリーム対応マルチプレクサ及びデマルチプレクサシステム | |
WO1998027661A2 (en) | Cell loss balance system and method for digital network | |
JP2010166138A (ja) | バッファ制御方法およびパケット転送装置 | |
EP1735712A1 (en) | Integrated circuit and method for transaction abortion | |
EP3487132B1 (en) | Packet processing method and router | |
US7701979B2 (en) | Residential ethernet node apparatus for maintaining starting point of superframe and method for processing same | |
JP2008042504A (ja) | スイッチ装置、スイッチ方法、及びプログラム | |
JP5332430B2 (ja) | 共有メモリシステム | |
US8635389B2 (en) | Variable depth buffer | |
US8107486B1 (en) | Flexible queue controller reserve list | |
JP2008244979A (ja) | ロードバランス型セルスイッチ装置、優先制御方法 | |
GB2567149A (en) | Managing data Compression | |
JP5808261B2 (ja) | フレーム伝送システム | |
WO2011026508A1 (en) | Method for distributing data traffic over radio links | |
US8392733B2 (en) | Network apparatus | |
JP5171593B2 (ja) | 画像送信装置 | |
JPWO2019220596A1 (ja) | 転送装置、転送方法および転送プログラム |