(57)【要約】【課題】カットスルー方式にＡＣＬ機能を適用する。【解決手段】本レイテンシ短縮方法は、ネットワーク接続機器の受信パケットに対するアクセスコントロール処理が完了する前に、当該受信パケットの出力を開始するステップと、アクセスコントロール処理により受信パケットの廃棄が決定されると、受信パケットを不正なパケットに変化させる出力ステップとを含む。アクセスコントロール処理により受信パケットを破棄しないと決定されれば、そのまま通常どおりパケットを出力すれば、遅延時間を短縮することができる。【選択図】図１０
2011010065.tif 000002
【特許請求の範囲】
【請求項１】
受信パケットに対するアクセスコントロール処理を実施するアクセスコントロール処理部を各々有する複数の入力ポートと、
不正パケット化機構を各々有する複数の出力ポートと、
を有し、
特定の入力ポートが特定のパケットを受信すると、前記特定の入力ポートの前記アクセスコントロール処理部が当該特定のパケットに対するアクセスコントロール処理を開始し、当該特定のパケットに対するアクセスコントロール処理完了前に、前記特定のパケットを出力すべき特定の出力ポートからの、前記特定のパケットの出力を開始させ、
前記アクセスコントロール処理部が前記特定のパケットの廃棄を決定すると、前記特定の出力ポートの前記不正パケット化機構に、前記特定のパケットを不正パケットへ変化させる
ネットワーク接続機器。
【請求項２】
前記不正パケット化機構が、前記特定のパケットの出力済みのデータに対して誤ったフレームチェックシーケンスを生成して出力する
請求項１記載のネットワーク接続機器。
【請求項３】
受信パケットに対するアクセスコントロール処理が完了する前に、当該受信パケットの出力を開始するステップと、
前記アクセスコントロール処理により前記受信パケットの廃棄が決定されると、前記受信パケットを不正なパケットに変化させる出力ステップと、
を含み、ネットワーク接続機器により実行されるレイテンシ短縮方法。
【請求項４】
前記出力ステップが、
前記受信パケットの廃棄決定に応じて、前記受信パケットの出力を停止し、当該受信パケットの出力済みのデータの後に、誤ったフレームチェックシーケンスを出力するステップ
を含む請求項３記載のレイテンシ短縮方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、スイッチやルータなどのネットワーク接続装置についての技術に関する。
【背景技術】
【０００２】
スイッチやルータにおいて、あるパケットをユーザの指定によって選び出し、当該パケットに何らかの処理を行いたい場合がある。こうした要件を満たす機能として、ＡＣＬ（Access Control List）機能がある。ＡＣＬ機能で行われる処理の例としては、ドロップ（Drop）／パス（Pass）などがある。また、パケットの指定の例としては、ＭＡＣアドレス（ＳＡ（Source address）、ＤＡ（Destination address）又は両方）や、ＩＰアドレス（ＳＡ、ＤＡ又は両方）、ＴＣＰポート番号（Source Port、Destination Port又は両方）などを指定する例がある。
【０００３】
一般的に、ＡＣＬの処理では、指定に該当するパケットであるかを判定するための時間が必要である。例えば、ＴＣＰのポート番号を参照するためには、ＴＣＰのポート番号までのパケットデータがＡＣＬ機能のための回路に入ってくるまでの時間が必要である。また、判定の結果該当するパケットを廃棄する処理を実施する場合には、パケットがＡＣＬの処理によって廃棄されるものかどうかが判定されるまで当該パケットの中継を開始できない。これは、パケットを廃棄すべきという判定がなされた場合に、すでに当該パケットを送り始めていては困るためである。したがって、ＡＣＬ機能における判定がなされるまで、パケットは蓄積されることになる。
【０００４】
一方、スイッチのパケット転送方式にはパケットの全体がスイッチの中に蓄積されてから初めて出力するストアアンドフォワード方式と、中継のための遅延時間（すなわちレイテンシ）を短縮するために蓄積をせずに中継するカットスルー方式とがある。ここで、カットスルー方式にＡＣＬ機能を併用することを考えると、ＡＣＬの判定に必要なデータの蓄積が行われるために、カットスルー方式を使用しているにもかかわらずレイテンシの値が悪くなってしまう。
【０００５】
なお、第１部分と第２部分とを含むパケットを入力ポートで受信すると、第２部分の全体が受信される前に第１部分のカットスルースイッチングを開始し、当該パケットに付随するタグデータを用いて誤り検出するような技術が存在している。しかしながら、パケットを破棄しなければならないような事態にどのように対処するかについては、上記のようなカットスルー方式にＡＣＬ機能を併用する際に用いることができるような工夫は開始されていない。
【０００６】
また、ＡＴＭ交換機において、ヘッダの正常性を確認した後に宛先情報を解析するために、上位層ＰＤＵ（Protocol Data Unit）のヘッダの後のヘッダＣＲＣ（Cyclic Redundancy Check）符号に基づいて当該上位層ＰＤＵのヘッダの正常性を確認するヘッダＣＲＣ符号確認手段を設ける技術が開示されている。しかしながら、セルを廃棄すべきという判断をした場合の処理については、上記のようなカットスルー方式にＡＣＬ機能を併用する際に用いることができるような工夫は開始されていない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−２７８１７５号公報
【特許文献２】特開２００１−２５７６８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上で述べたように、カットスルー方式にＡＣＬ機能を適用する場合には、レイテンシの値の悪化を抑制する必要がある。
【０００９】
従って、本技術の目的は、カットスルー方式にＡＣＬ機能を適用する場合にレイテンシの値の悪化を抑制するための技術を提供することである。
【課題を解決するための手段】
【００１０】
本レイテンシ短縮方法は、ネットワーク接続機器の受信パケットに対するアクセスコントロール処理が完了する前に、当該受信パケットの出力を開始するステップと、アクセスコントロール処理により受信パケットの廃棄が決定されると、受信パケットを不正なパケットに変化させる不正パケット化ステップとを含む。
【発明の効果】
【００１１】
カットスルー方式にＡＣＬ機能を適用する場合にレイテンシの値の悪化を抑制できるようになる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本技術の実施の形態の前提となるネットワーク接続機器の機能ブロック図である。
【図２】図２は、本技術の実施の形態の前提となるネットワーク接続機器の通常時の動作を示すシーケンス図である。
【図３】図３は、本技術の実施の形態の前提となるネットワーク接続機器のパケット廃棄時の動作を示すシーケンス図である。
【図４】図４は、本技術の実施の形態におけるネットワーク接続機器の機能ブロック図である。
【図５】図５は、本技術の実施の形態におけるネットワーク接続機器の通常時の動作を示すシーケンス図である。
【図６】図６は、ＦＤＢに格納されるデータの一例を示す図である。
【図７】図７は、制御領域に格納されるデータの一例を示す図である。
【図８】図８は、本技術の実施の形態におけるネットワーク接続機器のパケット廃棄時の動作を示すシーケンス図である。
【図９Ａ】図９Ａは、通常のパケットフォーマットを示す図である。
【図９Ｂ】図９Ｂは、不正パケットのパケットフォーマットを示す図である。
【図１０】図１０は、入力ポートにおける処理の処理フローを示す図である。
【図１１】図１１は、転送制御回路の処理フローを示す図である。
【図１２】図１２は、転送制御回路の処理フローを示す図である。
【図１３】図１３は、出力ポートの処理フローを示す図である。
【図１４】図１４は、レイテンシ短縮方法の処理フローを示す図である。
【図１５】図１５は、ネットワーク接続機器の概念図である。
【発明を実施するための形態】
【００１３】
［本技術の実施の形態の前提技術］
まず、カットスルー方式にＡＣＬ機能を単純に適用する場合における、スイッチなどのネットワーク接続機器の構成及び当該ネットワーク接続機器の動作について説明する。図１は、このような場合におけるネットワーク接続機器の機能ブロック図を示す。このネットワーク接続機器は、複数の入力ポート１１００と、中央スイッチ１０００と、複数の出力ポート１２００とを含む。各入力ポート１１００は、入力制御回路１１１０を含み、入力制御回路１１１０は、アクセスコントロール処理を実施するＡＣＬ部１１１１と、ＤＡ、ＳＡ及びＶＬＡＮＩＤ（Virtual LAN(Local Area Network) ID）をパケット（フレームとも呼ぶ）から抽出するアドレス抽出部１１１２とを含む。また、中央スイッチ１０００は、共有メモリ１０１０と、転送制御回路１０２０とを含み、転送制御回路１０２０は、ＦＤＢ（Forwarding DataBase）１０２１と、空きバッファポインタキュー１０２２とを含む。各出力ポート１２００は、出力制御回路１２１０を含み、出力制御回路１２１０は、ＦＣＳ（Frame Check Sequence）計算部１２１１を有する。各入力ポート１１００の入力制御回路１１１０と、各出力ポート１２００の出力制御回路１２１０とは、共有メモリ１０１０と転送制御回路１０２０とに接続されている。
【００１４】
次に図２及び図３を用いて、図１のネットワーク接続機器の動作について説明する。まず、入力ポート１１００の入力制御回路１１１０は、転送制御回路１０２０から空きバッファポインタキュー１０２２に登録されており且つ共有メモリ１０１０内の空き領域を指し示す空きバッファポインタを取得しておく（ステップ（１））。そして、入力ポート１１００の１つにパケットが到着すると、その入力ポート１１００は、当該パケットの受信を行うと共に（ステップ（２））、当該パケットのデータを、共有メモリ１０１０において空きバッファポインタが指し示す領域に書き込み始める（ステップ（３））。さらに、同時に、入力制御回路１１１０のアドレス抽出部１１１２は、受信パケットからＤＡ、ＳＡ及びＶＬＡＮＩＤを抽出し（ステップ（４））、ＡＣＬ部１１１１は受信パケットの解析を開始する（ステップ（５））。但し、中央スイッチ１０００及び出力ポート１２００では、ＡＣＬ部１１１１の解析が終了するまで特に何もしない。このためレイテンシ（すなわち遅延時間）が長くなってしまう。
【００１５】
その後ＡＣＬ部１１１１は受信パケットの解析を終了して例えばパケットを廃棄しないと判定した場合には（ステップ（６））、転送制御回路１０２０に、受信パケットのデータを格納している共有メモリ１０１０内の領域のバッファポインタとＤＡとＳＡとＶＬＡＮＩＤとを含む転送指示を出力する（ステップ（７））。なお、ステップ（７）の段階では、受信パケットを全て受信し終わっていないので、その後も継続してパケットのデータの受信と共有メモリ１０１０への書き込みとが行われる。なお、このパケットの受信及び共有メモリ１０１０への書き込みが完了すると、ステップ（１）のように空きバッファポインタを転送制御回路１０２０から取得する（ステップ（１６））。
【００１６】
転送制御回路１０２０は、特定の入力ポートから転送指示を受け取ると、当該転送指示に含まれるＳＡ及びＶＬＡＮＩＤと転送指示の出力元入力ポートのポート番号とをＦＤＢ１０２１に登録すると共に（ステップ（８））、ＦＤＢ１０２１をＤＡ及びＶＬＡＮＩＤで検索して今回受信したパケットを出力すべき出力ポート１２００を特定する（ステップ（９））。そして、転送制御回路１０２０は、特定された出力ポート１２００に対して、バッファポインタを含む転送指示を出力する（ステップ（１０））。
【００１７】
転送指示を受け取った出力ポート１２００の出力制御回路１２１０は、共有メモリ１０１０のバッファポインタが指し示す領域からパケットのデータを読み出すと共に（ステップ（１１））、またＦＣＳ計算部１２１１は、読み出したパケットのデータについてＦＣＳを計算する（ステップ（１２））。さらに出力制御回路１２１０は、読み出したパケットのデータの出力を開始する（ステップ（１３））。そして、パケットのデータの出力が完了すると、出力制御回路１２１０は、ＦＣＳ計算部１２１１により算出されたＦＣＳを出力し、転送処理を完了させる（ステップ（１４））。そして、出力制御回路１２１０は、今回用いたバッファポインタを転送制御回路１０２０に返却し、転送制御回路１０２０はバッファポインタを空きバッファポインタキュー１０２２に登録する（ステップ（１５））。
【００１８】
図２で「遅延時間」として示したように、単純にカットスルー方式にＡＣＬ機能を適用すると、パケット受信からパケット出力までの時間はかなり長くなる。
【００１９】
次に、図３を用いて、ＡＣＬ部１１１１によるアクセスコントロール処理においてパケットを廃棄すべきと判断される場合の動作について説明する。
【００２０】
入力ポート１１００の入力制御回路１１１０は、転送制御回路１０２０から空きバッファポインタキュー１０２２に登録されており且つ共有メモリ１０１０内の空き領域を指し示す空きバッファポインタを取得しておく（ステップ（２１））。そして、入力ポート１１００の１つにパケットが到着すると、その入力ポート１１００は、当該パケットの受信を行うと共に（ステップ（２２））、当該パケットのデータを、共有メモリ１０１０において空きバッファポインタが指し示す領域に書き込み始める（ステップ（２３））。さらに、同時に、入力制御回路１１１０のアドレス抽出部１１１２は、受信パケットからＤＡ、ＳＡ及びＶＬＡＮＩＤを抽出し（ステップ（２４））、ＡＣＬ部１１１１は受信パケットの解析を開始する（ステップ（２５））。
【００２１】
その後ＡＣＬ部１１１１は、受信パケットの解析を終了して例えばパケットを廃棄すると判定した場合には（ステップ（２６））、ＡＣＬ部１１１１は、転送制御回路１０２０に、バッファポインタを返却すると共に（ステップ（２７））、受信パケットの後続のデータを廃棄する（ステップ（２８））。さらに、ステップ（２１）のように、入力ポート１１１０の入力制御回路１１００は、転送制御回路１０２０から空きバッファポインタを取得する（ステップ（２９））。
【００２２】
このようにＡＣＬ部１１１１によりパケットを廃棄すると判断された場合には、転送制御回路１０２０及び出力ポート１２００は動作しないので効率的で且つ廃棄すべきパケットが本ネットワーク接続機器から漏れ出す恐れもないので問題も発生しない。但し、上で述べたように、カットスルー方式にしては遅延時間が長くなってしまい問題である。
【００２３】
［本実施の形態における構成］
本実施の形態に係るネットワーク接続機器２０００の機能ブロック図を図４に示す。ネットワーク接続機器２０００は、複数の入力ポート２１００と、中央スイッチ２２００と、複数の出力ポート２３００とを含む。
【００２４】
各入力ポート２１００は、入力制御回路２１１０を含み、入力制御回路２１１０は、ＡＣＬ部２１１１と、アドレス抽出部２１２１とを有する。また、ＡＣＬ部２１１１は、転送キャンセル部２１１３と、ＡＣＬ２１１５とを有する。また、アドレス抽出部２１２１は、転送指示出力部２１２３を含む。
【００２５】
また、中央スイッチ２２００の共有メモリ２２１０は、パケットのデータを格納する領域に加え、制御情報を格納する制御領域２２１１を含む。転送制御回路２２２０は、ＦＤＢ２２２１と、学習制御部２２２２と、空きバッファポインタキュー２２２３とを有する。
【００２６】
さらに、各出力ポート２３００の出力制御回路２３１０は、ＦＣＳ計算部２３１１を含み、ＦＣＳ計算部２３１１は、誤ったＦＣＳ（以下、エラーＦＣＳと呼ぶ。）を計算するエラーＦＣＳ計算部２３１３を含む。
【００２７】
次に、図５及び図６を用いて、本実施の形態に係るネットワーク接続機器２０００の動作を説明する。
【００２８】
入力ポート１１００の入力制御回路２１１０は、転送制御回路２２２０から空きバッファポインタキュー２２２３に登録されており且つ共有メモリ２２１０内の空き領域を指し示す空きバッファポインタを取得しておく（図５：ステップ（５１））。そして、入力ポート２１００の１つにパケットが到着すると、その入力ポート２１００は、当該パケットの受信を行うと共に（ステップ（５２））、当該パケットのデータを、共有メモリ２２１０において空きバッファポインタが指し示す領域に書き込み始める（ステップ（５３））。さらに、同時に、入力制御回路２１１０のアドレス抽出部２１２１は、受信パケットからＤＡ、ＳＡ及びＶＬＡＮＩＤを抽出し（ステップ（５４））、ＡＣＬ部１１１１はＡＣＬ２１１５を用いて受信パケットの解析を開始する（ステップ（５５））。ＡＣＬは、従来技術の欄で述べたようにＭＡＣアドレス、ＩＰアドレス、ＴＣＰのポート番号など、廃棄すべきパケットを特定するためのデータである。図２の例では、アドレス抽出部がＤＡ等を抽出した後でもＡＣＬ部が解析を終了するまで転送指示を出力していなかった。このため遅延時間が長くなっていた。
【００２９】
これに対して本実施の形態では、アドレス抽出部２１２１がＤＡ等の抽出を完了すると、アドレス抽出部２１２１の転送指示出力部２１２３は、ＤＡとＳＡとＶＬＡＮＩＤとバッファポインタとを含む転送指示を転送制御回路２２２０に出力する（ステップ（５６））。但し、図５に示すように、この段階ではＡＣＬ部２１１１では解析が終わっていない。
【００３０】
転送指示を受け取った転送制御回路２２２０の学習制御部２２２２は、ＦＤＢ２２２１に対して、転送指示に含まれるＳＡとＶＬＡＮＩＤと転送指示を出力した入力ポート２１００のポート番号とを登録するための学習処理を実施する（ステップ（５８））。例えば、図６に示すように、ＦＤＢ２２２１には、ＳＡ（ここではＭＡＣアドレス）とＶＬＡＮＩＤとポート番号とが対応付けて格納される。
【００３１】
さらに、学習制御部２２２２は、制御情報として、バッファポインタに対応付けてＤＡとＳＡとＶＬＡＮＩＤと転送指示を出力した入力ポート２１００のポート番号とを、制御領域２２１１に登録する。制御情報は、この後転送キャンセルが指示された場合に用いるために保持しておく。
【００３２】
また、学習制御部２２２２は、ＦＤＢ２２２１をＤＡ及びＶＬＡＮＩＤで検索して受信パケットを出力すべき出力ポート２３００を特定する（ステップ（５９））。さらに、制御情報として、特定された出力ポート２３００のポート番号を、バッファポインタに対応付けて制御領域２２１１に登録する。このような処理によって、図７に示すように、例えば制御領域２２１１には、バッファポインタに対応付けて、ＳＡと、ＤＡと、ＶＬＡＮＩＤと、入力ポートのポート番号と、出力ポートのポート番号とが登録される。
【００３３】
そして、転送制御回路２２２０は、特定された出力ポート２３００に、バッファポインタを含む転送指示を出力する（ステップ（６０））。転送指示を受信した出力ポート２３００の出力制御回路２３１０は、受信したバッファポインタに従って共有メモリ２２１０から読み出し始める（ステップ（６１））。また、ＦＣＳ計算部２３１１は、読み出したパケットのデータからＦＣＳを計算し始める（ステップ（６２））。さらに、エラーＦＣＳ計算部２３１３は、ＦＣＳ計算部２３１１の計算結果に対して所定の値（例えば「１」）を加えるなど本来のＦＣＳとは異なり且つ誤った値のエラーＦＣＳを計算する。また、出力制御回路２３１０は、読み出したパケットのデータの出力を開始する（ステップ（６３））。
【００３４】
このように、ＡＣＬ部２１１１の解析が完了する前に転送指示が出力ポート２３００まで伝播して、受信パケットを出力し始めるため、遅延時間が短縮される。
【００３５】
なお、ステップ（６１）乃至（６３）の処理が継続している間に、ＡＣＬ部２１１１の解析が完了して、パケット廃棄をしないことが決定される（ステップ（５７））。そうすると、ステップ（６１）乃至（６３）の処理は、そのまま受信パケットのデータを全て出力し終わるまで行われ、出力ポート２３００の出力制御回路２３１０は、ＦＣＳ計算部２３１１により計算されたＦＣＳを最後に出力する（ステップ（６４））。エラーＦＣＳ計算部２３１３により算出されたエラーＦＣＳは破棄される。さらに、出力制御回路２３１０は、今回のバッファポインタを転送制御回路２２２０に返却する（ステップ（６５））。転送制御回路２２２０は、空きバッファポインタキュー２２２３に格納する。
【００３６】
また、ステップ（５１）のように、入力ポート２１００の入力制御回路２１１０は、パケットの受信及びパケットの書き込みが完了すると、転送制御回路２２２０から空きバッファポインタを取得する（ステップ（６６））。
【００３７】
以上述べたように、ＡＣＬ部２１１１においてパケットの廃棄が決定されない場合には、パケットの出力が早期に開始されるので、遅延時間が短縮される。但し、ＡＣＬにおいてパケットを廃棄すると判定されると、既に転送指示を出力してしまっているので、当該転送指示をキャンセルする必要がある。
【００３８】
次に、図８を用いてＡＣＬ部２１１１でパケットを廃棄すると判定する場合の動作を説明する。入力ポート１１００の入力制御回路２１１０は、転送制御回路２２２０から空きバッファポインタキュー２２２３に登録されており且つ共有メモリ２２１０内の空き領域を指し示す空きバッファポインタを取得しておく（図８：ステップ（７１））。そして、入力ポート２１００の１つにパケットが到着すると、その入力ポート２１００は、当該パケットの受信を行うと共に（ステップ（７２））、当該パケットのデータを、共有メモリ２２１０において空きバッファポインタが指し示す領域に書き込み始める（ステップ（７３））。さらに、同時に、入力制御回路２１１０のアドレス抽出部２１２１は、受信パケットからＤＡ、ＳＡ及びＶＬＡＮＩＤを抽出し（ステップ（７４））、ＡＣＬ部１１１１はＡＣＬ２１１５を用いて受信パケットの解析を開始する（ステップ（７５））。
【００３９】
これに対して本実施の形態では、アドレス抽出部２１２１がＤＡ等の抽出を完了すると、アドレス抽出部２１２１の転送指示出力部２１２３は、ＤＡとＳＡとＶＬＡＮＩＤとバッファポインタとを含む転送指示を転送制御回路２２２０に出力する（ステップ（７６））。
【００４０】
転送指示を受け取った転送制御回路２２２０の学習制御部２２２２は、ＦＤＢ２２２１に対して、転送指示に含まれるＳＡとＶＬＡＮＩＤと転送指示を出力した入力ポート２１００のポート番号とを登録するための学習処理を実施する（ステップ（７７））。
【００４１】
さらに、学習制御部２２２２は、制御情報として、バッファポインタに対応付けてＤＡとＳＡとＶＬＡＮＩＤと転送指示を出力した入力ポート２１００のポート番号とを、制御領域２２１１に登録する。
【００４２】
また、学習制御部２２２２は、ＦＤＢ２２２１をＤＡ及びＶＬＡＮＩＤで検索して受信パケットを出力すべき出力ポート２３００を特定する（ステップ（７８））。さらに、制御情報として、特定された出力ポート２３００のポート番号を、バッファポインタに対応付けて制御領域２２１１に登録する。
【００４３】
そして、転送制御回路２２２０は、特定された出力ポート２３００に、バッファポインタを含む転送指示を出力する（ステップ（７９））。転送指示を受信した出力ポート２３００の出力制御回路２３１０は、受信したバッファポインタに従って共有メモリ２２１０から読み出し始める（ステップ（８０））。また、ＦＣＳ計算部２３１１は、読み出したパケットのデータからＦＣＳを計算し始める（ステップ（８１））。さらに、エラーＦＣＳ計算部２３１３は、ＦＣＳ計算部２３１１の計算結果に対して所定の値（例えば「１」）を加えるなどしてエラーＦＣＳを計算する。また、出力制御回路２３１０は、読み出したパケットのデータの出力を開始する（ステップ（８２））。ここまでは図５と同じである。
【００４４】
そして、ＡＣＬ部２１１１の解析が完了して、パケットを廃棄することが決定される（ステップ（８３））。そうすると、これまでの処理をキャンセルすると共に、既に出力してしまったパケットのデータを廃棄されるようにしなければならない。
【００４５】
そこで、入力制御回路２１１０は、受信しているパケットの後続データを破棄し（ステップ（８４））、バッファポインタを含む転送キャンセル指示を転送制御回路２２２０に出力する（ステップ（８５））。
【００４６】
転送制御回路２２２０は、転送キャンセル指示を受信すると、バッファポインタに対応付けて制御領域２２１１に格納されている制御情報を共有メモリ２２１０から読み出し、制御情報に含まれるＳＡとＶＬＡＮＩＤと入力ポート２１００のポート番号とを用いてＦＤＢ２２２１における登録をキャンセルする（ステップ（８６））。例えば、ＳＡとＶＬＡＮＩＤと入力ポート２１００のポート番号とを含むレコードをＦＤＢ２２２１から削除する。そして、転送制御回路２２２０は、バッファポインタを含む転送キャンセル指示を、制御情報に含まれている出力ポートのポート番号で特定される出力ポート２３００の出力制御回路２３１０に出力する（ステップ（８７））。
【００４７】
出力ポート２３００の出力制御回路２３１０は、転送キャンセル指示を受信すると、共有メモリ２２１０からのパケットデータの読み出し及び出力を停止し、ＦＣＳ計算部２３１１はＦＣＳの計算を停止し、エラーＦＣＳ計算部２３１３もエラーＦＣＳの計算を終了する。そして、出力制御回路２３１０は、エラーＦＣＳを最後に出力して転送処理を終了する（ステップ（８８））。そして、出力制御回路２３１０は、バッファポインタを転送制御回路２２２０に返却する（ステップ（８９））。転送制御回路２２２０は、バッファポインタを出力制御回路２３１０から受信すると、空きバッファポインタキュー２２２３に登録する。
【００４８】
なお、入力ポート２１００の入力制御回路２１１０は、パケットの受信が完了すると、転送制御回路２２２０から空きバッファポインタを取得する（ステップ（９０））。
【００４９】
このような処理を実施することによって、転送指示を速やかに出力することによって生ずるパケットの漏れ出しを、パケットを不正パケット化することによって、実質的に防止することができるようになる。
【００５０】
なお、通常のパケット（フレームとも呼ぶ）は、図９Ａに示すようにプリアンブルとヘッダ（ＳＡ、ＤＡ及びＶＬＡＮＩＤなどを含む）とデータと正常なＦＣＳとを含む。一方、不正なパケットは、図９Ｂに示すようにプリアンブルとヘッダとは通常のままであるが、データは途中で出力が打ち切られており、さらにエラーＦＣＳが付加される。このため、受信側のネットワーク接続機器の入力ポートを変更することなく、自動的に破棄されるようになる。
【００５１】
但し、パケットの不正パケット化は、別の手段を採用することも可能である。例えば、データの後ろに不正パケットであることを表すビット列及び正常なＦＣＳを付加するようにしても良い。このような場合には、受信側のネットワーク接続機器の入力ポートが、この不正パケットであることを表すビット列を判別できるようになっていなければならない。また、出力してしまったパケットのデータを受け手に破棄させることができればよいので、イーサネット（登録商標）であれば、転送キャンセル指示を受信した段階で出力ポート２３００が、衝突していないが衝突したものとしてＪＡＭ信号を出力して破棄させるようにしても良い。このような方法でも不正パケットに変化させたと言うこととする。
【００５２】
次に、入力ポート２１００、中央スイッチ２２００、出力ポート２３００のそれぞれについて処理をまとめておく。最初に、入力ポート２１００の処理について図１０に示す。入力ポート２１００の入力制御回路２１１０は、事前に転送制御回路２２２０から、空きバッファポインタキュー２２２３に登録されている空きバッファポインタを取得しておく（ステップＳ１）。複数のポインタを一度に取得して保持しておくようにしても良い。
【００５３】
そして、入力ポート２１００にパケットが到着すると、当該パケットの受信を開始し、入力ポート２１００のＡＣＬ部２１１１で受信パケットの解析を行いつつ、共有メモリ２２１０における空きバッファポインタの指す領域に受信パケットのデータを書き込み始め、さらにアドレス抽出部２１２１で受信パケットのデータからＤＡ、ＳＡ及びＶＬＡＮＩＤを抽出する（ステップＳ３）。
【００５４】
さらに、入力制御回路２１１０は、パケットの受信及び共有メモリ２２１０に対する当該受信パケットの書き込みを行いつつ、アドレス抽出部２１２１によるＤＡ、ＳＡ及びＶＬＡＮＩＤの抽出が完了すると、転送指示出力部２１２３は、当該ＤＡ、ＳＡ及びＶＬＡＮＩＤ並びにバッファポインタを含む転送指示を転送制御回路２２２０に出力する（ステップＳ５）。このようにして、ＡＣＬによる解析が完了する前に転送指示を出力してしまうことによって遅延時間を短縮する。
【００５５】
そして、ＡＣＬ解析が未了であれば（ステップＳ７：Ｎｏルート）、入力制御回路２１１０は、パケットの受信及び共有メモリ２２１０に対する当該受信パケットの書き込みを継続する（ステップＳ９）。一方、ＡＣＬ解析が完了すると（ステップＳ７：Ｙｅｓルート）、ＡＣＬ部２１１１が受信パケットを廃棄すると判定した場合には（ステップＳ１１：Ｙｅｓルート）、入力制御回路２１１０は、受信しているパケットの後続データを廃棄すると共に、転送キャンセル部２１１３は、バッファポインタを含む転送キャンセル指示を転送制御回路２２２０に出力する（ステップＳ１３）。そしてステップＳ１９に移行する。
【００５６】
一方、ＡＣＬ部２１１１がパケットを廃棄しないと判定した場合には（ステップＳ１１：Ｎｏルート）、パケットの受信及び共有メモリ２２１０に対する当該受信パケットの書き込みが完了しない間は（ステップＳ１５：Ｎｏルート）、入力制御回路２１１０は、パケットの受信及び共有メモリ２２１０に対する当該受信パケットの書き込みを継続する（ステップＳ１７）。パケットの受信及び共有メモリ２２１０に対する当該受信パケットの書き込みが完了すると（ステップＳ１５：Ｙｅｓルート）、電源が切られるなど処理終了となるまで（ステップＳ１９）、ステップＳ１に戻る。
【００５７】
以上のような処理を実施することにより、上でも述べたようにレイテンシの値を短縮することができる。さらに、パケットの廃棄が必要となれば転送キャンセル指示を即座に指示できるようになっている。
【００５８】
次に、中央スイッチの転送制御回路２２２０の処理を転送指示を受信した場合と転送キャンセル指示を受信した場合とに分けて説明する。まず、転送指示を受信した場合について図１１を用いて説明する。転送制御回路２２２０がある入力ポート２１００の入力制御回路２１１０から転送指示を受信すると（ステップＳ２１）、学習制御部２２２２は、転送指示に含まれるＳＡ及びＶＬＡＮＩＤと転送指示出力元入力ポートのポート番号とをＦＤＢ２２２１に登録するための学習処理を実施する。また、転送制御回路２２２０は、ＤＡ及びＶＬＡＮＩＤでＦＤＢ２２２１を検索して、該当する出力ポートを特定する、さらに、転送制御回路２２２０は、転送指示に含まれるＳＡ、ＤＡ、ＶＬＡＮＩＤ、入力ポートのポート番号及び出力ポートのポート番号を制御情報として、バッファポインタに対応付けて共有メモリ２２１０の制御領域２２１１に書き込む。また、特定された出力ポート２３００に、バッファポインタを含む転送指示を出力する（ステップＳ２３）。制御領域２２１１への書き込みは、この後に転送キャンセル指示を受信した場合に、ＦＤＢ２２２１に対する学習のキャンセルと転送キャンセル指示の転送先出力ポートを特定するために行われる。なお、図１１の処理は転送キャンセル指示を受信しなければ、そのまま完了する。そして、制御領域２２１１に格納された制御情報は、バッファポインタの再利用に応じて上書きされて破棄される。
【００５９】
また、転送キャンセル指示を受信した場合について図１２を用いて説明する。転送制御回路２２２０は、ある入力ポート２１００の入力制御回路２１１０から転送キャンセル指示を受信すると（ステップＳ２５）、転送キャンセル指示に含まれるバッファポインタに対応付けられている制御情報を、共有メモリ２２１０の制御領域２２１１から読み出し、学習制御部２２２２は、ＳＡとＶＬＡＮＩＤと入力ポートのポート番号との組み合わせに係る登録をＦＤＢ２２２１においてキャンセルする。さらに、転送制御回路２２２０は、制御情報に含まれる出力ポート２３００のポート番号から転送キャンセル指示の出力先の出力ポート２３００を特定し、当該出力ポート２３００にバッファポインタを含む転送キャンセル指示を出力する（ステップＳ２７）。
【００６０】
このようにすれば、ＦＤＢ２２２１を元の状態に戻すことができ、さらに適切な出力ポート２３００に対して転送キャンセル指示を出力することができるようになる。
【００６１】
次に、出力ポート２３００の処理について図１３を用いて説明する。出力ポート２３００の出力制御回路２３１０は、転送指示を受信すると（ステップＳ３１）、共有メモリ２２１０において転送指示に含まれるバッファポインタが指し示す領域からパケットのデータを読み出し始める。さらに、ＦＣＳ計算部２３１１（エラーＦＣＳ計算部２３１３を含む）は、読み出したパケットのデータから通常のＦＣＳとエラーＦＣＳの計算を開始する（ステップＳ３３）。上でも述べたがエラーＦＣＳは、通常のＦＣＳに所定値を加算するようなものでよい。そして、転送制御回路２２２０は、読み出したパケットのデータの出力を開始する（ステップＳ３５）。
【００６２】
その後、出力制御回路２３１０は、転送キャンセル指示を転送制御回路２２２０から受け取ると（ステップＳ３７：Ｙｅｓルート）、パケットのデータの出力を打ち切り、エラーＦＣＳ計算部２３１３が算出したエラーＦＣＳをパケットのデータの後に出力する（ステップＳ３９）。このようにすれば、出力してしまったパケットが不正パケットになるので、受け手側のネットワーク接続機器の入力ポートで破棄され、実質的に出力せずに破棄したのと同じになる。そして、出力制御回路２３１０は、転送キャンセル指示に含まれるバッファポインタを転送制御回路２２２０に返却する（ステップＳ４１）。転送制御回路２２２０は、バッファポインタが返却されると、空きバッファポインタキュー２２２３に登録する。処理はステップＳ５１に移行する。
【００６３】
一方、転送キャンセル指示を受信していなければ（ステップＳ３７：Ｎｏルート）、出力制御回路２３１０は、ＦＣＳ以外のパケット全体のデータを出力するまで（ステップＳ４３：Ｎｏルート）、共有メモリ２２１０からパケットのデータの読み出し及び当該パケットのデータの出力を継続する（ステップＳ４５）。ステップＳ４５の後にはステップＳ３７に戻る。
【００６４】
一方、ＦＣＳ以外のパケット全体のデータを出力してしまい、それまでに転送キャンセル指示を受信しなかった場合には（ステップＳ４３：Ｙｅｓルート）、出力制御回路２３１０は、ＦＣＳ計算部２３１１が計算したＦＣＳを出力し（ステップＳ４７）、転送キャンセル指示に含まれるバッファポインタを転送制御回路２２２０に返却する（ステップＳ４９）。
【００６５】
このような処理を電源断などの処理終了となるまで（ステップＳ５１：Ｎｏルート）、繰り返す。処理終了となれば（ステップＳ５１：Ｙｅｓルート）、そのまま処理を終了する。
【００６６】
以上のようにすれば、転送キャンセル指示に従って、それまでに出力されたパケットのデータは不正パケットに変換されて、結果的に破棄されるようになる。
【００６７】
以上述べた本技術の実施の形態は一例であって、本技術はこれに限定されるものではない。例えば、図４に示したネットワーク接続機器の機能ブロック図は一例であって、必ずしも実際の機能構成と一致しない場合もある。また、図４の機能ブロック図には、本実施の形態における主要部に関係する機能しか示していないので、他の機能を付加することも可能である。
【００６８】
以上本実施の形態をまとめると以下のようになる。
【００６９】
本実施の形態の第１の側面に係るレイテンシ短縮方法は、ネットワーク接続機器の受信パケットに対するアクセスコントロール処理が完了する前に、当該受信パケットの出力を開始するステップ（図１４：ステップＳ１０１及びＳ１０３）と、アクセスコントロール処理により受信パケットの廃棄が決定されると（ステップＳ１０５：Ｙｅｓルート）、受信パケットを不正なパケットに変化させる出力ステップ（ステップＳ１０７）とを含む。
【００７０】
このようにすれば、不正なパケットであれば当該パケットの受け手で破棄されることになる。そして、ＡＣＬ機能とカットスルー方式とを併用する場合においても、廃棄しない場合にはアクセスコントロール処理の完了前に受信パケットを出力することになるので、レイテンシの悪化を抑えることができるようになる。なお、受信パケットを廃棄する必要がなければ（ステップＳ１０５：Ｎｏルート）、通常どおりパケット全体を出力すればよい（ステップＳ１０９）。
【００７１】
なお、上で述べた出力ステップが、受信パケットの廃棄決定に応じて、受信パケットの出力を停止し、当該受信パケットの出力済みのデータの後に、誤ったフレームチェックシーケンスを出力するステップを含むようにしても良い。このようにすればネットワーク接続機器からのデータ漏れを最小限にし、且つ既存の機構を用いて自然に破棄される不正なパケットを生成することができるようになる。なお、パケットの構成を変更することができれば、最後尾に不正ビットシーケンスを付加するような構成であっても良い。また、受信パケットの廃棄決定に応じて、アドレス学習をキャンセルするような処理を実施しても良い。
【００７２】
本実施の形態の第２の態様に係るネットワーク接続機器（図１５：ネットワーク接続機器５０００）は、受信パケットに対するアクセスコントロール処理を実施するアクセスコントロール処理部（図１５：アクセスコントロール処理部５１１０）を各々有する複数の入力ポート（図１５：入力ポート５１００）と、不正パケット化機構（図１５：不正パケット化機構５３１０）を各々有する複数の出力ポート（図１５：出力ポート５３００）とを有する。そして、特定の入力ポートが特定のパケットを受信すると、特定の入力ポートのアクセスコントロール処理部が当該特定のパケットに対するアクセスコントロール処理を開始し、当該特定のパケットに対するアクセスコントロール処理完了前に、特定のパケットを出力すべき特定の出力ポートからの、特定のパケットの出力を開始させる。また、アクセスコントロール処理部が特定のパケットの廃棄を決定すると、特定の出力ポートの不正パケット化機構に、特定のパケットを不正パケットへ変化させる。
【００７３】
また、上で述べた不正パケット化機構が、特定のパケットの出力済みのデータに対して誤ったフレームチェックシーケンスを生成して出力するようにしてもよい。
【００７４】
さらに、第２の側面に係るネットワーク接続機器は、共有メモリと、受信したパケットを出力すべき出力ポートを特定する転送制御部とをさらに有するようにしてもよい。そして、この場合、特定のパケットに対するアクセスコントロール処理完了前に、特定の入力ポートは、特定のパケットのデータを共有メモリに格納し始めると共に、転送制御部に転送指示を出力するようにしてもよい。また、転送制御部は、転送指示に応じて特定のパケットを出力すべき特定の出力ポートを特定し、当該特定の出力ポートに転送指示を出力するようにしてもよい。さらに、転送指示を受信した出力ポートは、共有メモリから特定のパケットのデータを読み出して出力を開始するようにしてもよい。また、アクセスコントロール処理部が特定のパケットの廃棄を決定すると、特定の入力ポートは、転送制御部に特定のパケットの廃棄指示を出力し、転送制御部は、特定のパケットの廃棄指示を、特定の出力ポートに出力するようにしてもよい。そして、特定の出力ポートは、特定のパケットの廃棄指示に応じて、特定のパケットのデータの出力を停止すると共に、不正パケット化機構により生成され且つ特定のパケットを不正なパケットに変更するデータを出力するようにしてもよい。なお、共有メモリにおいて特定のパケットが格納されている領域を指し示すバッファポインタを転送指示及び廃棄指示で受け渡して、特定のパケットのデータを特定するようにしても良い。また、転送制御部は、バッファポインタを用いて特定の出力ポートなどのデータを管理するようにしても良い。
【００７５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７６】
（付記１）
受信パケットに対するアクセスコントロール処理が完了する前に、当該受信パケットの出力を開始するステップと、
前記アクセスコントロール処理により前記受信パケットの廃棄が決定されると、前記受信パケットを不正なパケットに変化させる出力ステップと、
を含み、ネットワーク接続機器により実行されるレイテンシ短縮方法。
【００７７】
（付記２）
前記出力ステップが、
前記受信パケットの廃棄決定に応じて、前記受信パケットの出力を停止し、当該受信パケットの出力済みのデータの後に、誤ったフレームチェックシーケンスを出力するステップ
を含む付記１記載のレイテンシ短縮方法。
【００７８】
（付記３）
受信パケットに対するアクセスコントロール処理を実施するアクセスコントロール処理部を各々有する複数の入力ポートと、
不正パケット化機構を各々有する複数の出力ポートと、
を有し、
特定の入力ポートが特定のパケットを受信すると、前記特定の入力ポートの前記アクセスコントロール処理部が当該特定のパケットに対するアクセスコントロール処理を開始し、当該特定のパケットに対するアクセスコントロール処理完了前に、前記特定のパケットを出力すべき特定の出力ポートからの、前記特定のパケットの出力を開始させ、
前記アクセスコントロール処理部が前記特定のパケットの廃棄を決定すると、前記特定の出力ポートの前記不正パケット化機構に、前記特定のパケットを不正パケットへ変化させる
ネットワーク接続機器。
【００７９】
（付記４）
前記不正パケット化機構が、前記特定のパケットの出力済みのデータに対して誤ったフレームチェックシーケンスを生成して出力する
付記３記載のネットワーク接続機器。
【００８０】
（付記５）
共有メモリと、
受信したパケットを出力すべき出力ポートを特定する転送制御部と、
をさらに有し、
前記特定のパケットに対するアクセスコントロール処理完了前に、前記特定の入力ポートは、前記特定のパケットのデータを前記共有メモリに格納し始めると共に、前記転送制御部に転送指示を出力し、
前記転送制御部は、前記転送指示に応じて前記特定のパケットを出力すべき前記特定の出力ポートを特定し、当該特定の出力ポートに転送指示を出力し、
前記転送指示を受信した出力ポートは、前記共有メモリから前記特定のパケットのデータを読み出して出力を開始し、
前記アクセスコントロール処理部が前記特定のパケットの廃棄を決定すると、前記特定の入力ポートは、前記転送制御部に前記特定のパケットの廃棄指示を出力し、
前記転送制御部は、前記特定のパケットの廃棄指示を、前記特定の出力ポートに出力し、
前記特定の出力ポートは、前記特定のパケットの廃棄指示に応じて、前記特定のパケットのデータの出力を停止すると共に、前記不正パケット化機構により生成され且つ前記特定のパケットを不正なパケットに変更するデータを出力する
付記３又は４記載のネットワーク接続機器。
【符号の説明】
【００８１】
２０００  ネットワーク接続機器    ２１００  入力ポート
２２００  中央スイッチ    ２３００  出力ポート
２１１０  入力制御回路    ２１１１  ＡＣＬ部
２１１３  転送キャンセル部    ２１１５  ＡＣＬ
２１２１  アドレス抽出部    ２１２３  転送指示出力部
２２１０  共有メモリ    ２２１１  制御領域
２２２０  転送制御回路    ２２２１  ＦＤＢ
２２２２  学習制御部    ２２２３  空きバッファポインタキュー
２３１０  出力制御回路    ２３１１  ＦＣＳ計算部
２３１３  エラーＦＣＳ計算部
【図１】
2011010065.tif 000003
【図２】
2011010065.tif 000004
【図３】
2011010065.tif 000005
【図４】
2011010065.tif 000006
【図５】
2011010065.tif 000007
【図６】
2011010065.tif 000008
【図７】
2011010065.tif 000009
【図８】
2011010065.tif 000010
【図９Ａ】
2011010065.tif 000011
【図９Ｂ】
2011010065.tif 000012
【図１０】
2011010065.tif 000013
【図１１】
2011010065.tif 000014
【図１２】
2011010065.tif 000015
【図１３】
2011010065.tif 000016
【図１４】
2011010065.tif 000017
【図１５】
2011010065.tif 000018