(57)【要約】  本発明の実施形態は、デュプレックス不整合が生じているリンクの両端にデュプレックス不整合を補正させる技術を提供する。幾らかの実施形態においては、リンクのハーフデュプレックス端は、リンクの他端がフルデュプレックスモードにあることを、遅い、および／またはベリーレートコリジョンを検出することで検出することができ、フルデュプレックスモードへ切り替えることでデュプレックス不整合を補正することができる。幾らかの実施形態においては、リンクのフルデュプレックス端は、リンクの他端がハーフデュプレックスモードにあることを、巡回冗長検査（ＣＲＣ）エラーおよびフレームフラグメントの検出を含む一以上の技術により検出することができ、ハーフデュプレックスモードへ切り替えることでデュプレックス不整合を補正することができる。【選択図】  図２
2009531964.tif 000002
【特許請求の範囲】
【請求項１】
通信チャネルを介して、データの第１のフレームをハーフデュプレックスモードで送信し、前記データの第２のフレームを受信する少なくとも１つのポートを備え、
前記少なくとも１つのポートは、
前記データの前記第１のフレームと前記データの前記第２のフレームとの、前記通信チャネル上におけるコリジョンを検出するコリジョン検出回路と、
ａ）前記コリジョン検出回路が、前記データの前記第１のフレームに関わる所定の数のレートコリジョン（late collision）を検出する場合、あるいは、ｂ）前記コリジョン検出回路が、前記データの前記第１のフレームの１つに関わるベリーレートコリジョン（very late collision）を検出する場合、デュプレックス不整合を宣言するデュプレックス不整合回路と、を有し、
前記レートコリジョンの各々は、前記データの前記第１のフレームの各々において前記データの第１の所定の量が送信された後に起こり、
前記ベリーレートコリジョンは、前記データの前記第１のフレームの前記１つにおいて、前記データの前記第１の所定の量より大きい前記データの第２の所定の量が送信された後に起こり、
前記デュプレックス不整合は、前記データの前記第２のフレームに対してフルデュプレックスモードが利用されることを示す、装置。
【請求項２】
前記データの前記第１の所定の量および前記データの前記第２の所定の量のうち少なくともいずれかは、前記通信チャネルのコリジョンドメインのサイズにより選択される、請求項１に記載の装置。
【請求項３】
前記データの前記第１の所定の量および前記データの前記第２の所定の量のうち少なくともいずれかは、前記通信チャネルのコリジョンドメインのサイズの倍数により選択される、請求項１に記載の装置。
【請求項４】
前記デュプレックス不整合回路は、メモリ回路にフラグを設定する、あるいはメッセージを送信する、あるいはその両方を含む少なくとも１つのアクションを行うことで、前記デュプレックス不整合を宣言する、請求項１に記載の装置。
【請求項５】
前記少なくとも１つのポートは、前記デュプレックス不整合回路がデュプレックス不整合を宣言する場合に、前記少なくとも１つのポートをハーフデュプレックスモードからフルデュプレックスモードに切り替えるデュプレックスモード回路をさらに含む、請求項１に記載の装置。
【請求項６】
請求項１に記載の装置を含み、
ＩＥＥＥ標準８０２．３、８０２．１１、８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、８０２．１１ｎ、８０２．１６、および８０２．２０を含む複数の標準のうちの少なくとも１つに準拠している、ネットワークデバイス。
【請求項７】
請求項１に記載の装置を含み、
スイッチ、ルータ、およびネットワークインタフェースコントローラのうちいずれかを含む、ネットワークデバイス。
【請求項８】
通信チャネルを介して、データの第１のフレームをハーフデュプレックスモードで送信し、前記データの第２のフレームを受信することと、
前記データの前記第１のフレームと前記データの前記第２のフレームとの、前記通信チャネル上におけるコリジョンを検出することと、
ａ）前記データの前記第１のフレームに関わる所定の数のレートコリジョンを検出する場合、あるいは、ｂ）前記データの前記第１のフレームの１つに関わるベリーレートコリジョンを検出する場合、デュプレックス不整合を宣言することと、を備え、
前記レートコリジョンの各々は、前記データの前記第１のフレームの各々において前記データの第１の所定の量が送信された後に起こり、
前記ベリーレートコリジョンは、前記データの前記第１のフレームの前記１つにおいて、前記データの前記第１の所定の量より大きい前記データの第２の所定の量が送信された後に起こり、
前記デュプレックス不整合は、前記データの前記第２のフレームに対してフルデュプレックスモードが利用されることを示す、方法。
【請求項９】
前記データの前記第１の所定の量および前記データの前記第２の所定の量のうち少なくともいずれかは、前記通信チャネルのコリジョンドメインのサイズにより選択される、請求項８に記載の方法。
【請求項１０】
前記データの前記第１の所定の量および前記データの前記第２の所定の量のうち少なくともいずれかは、前記通信チャネルのコリジョンドメインのサイズの倍数により選択される、請求項８に記載の方法。
【請求項１１】
前記デュプレックス不整合を宣言することは、
メモリ回路にフラグを設定すること、およびメッセージを送信すること、のうち少なくともいずれかを行うことを含む、請求項８に記載の方法。
【請求項１２】
デュプレックス不整合が宣言された後で、前記データの前記第１のフレームをフルデュプレックスモードで送信することをさらに備える、請求項８に記載の方法。
【請求項１３】
通信チャネルを介して、データの第１のフレームをフルデュプレックスモードで送信し、前記データの第２のフレームを受信する少なくとも１つのポートを備え、
前記少なくとも１つのポートは、
前記データの前記第２のフレームから巡回冗長検査（ＣＲＣ）エラーを検出するＣＲＣエラー検出回路、および前記データの前記第２のフレームのフラグメントを検出するフラグメント検出回路、のいずれかあるいは両方、並びに
ａ）前記少なくとも１つのポートが前記データの前記第１のフレームの１つを送信しているときに、前記ＣＲＣエラー検出回路が、前記データの前記第２のフレームの１つからＣＲＣエラーを検出する場合、あるいは、ｂ）前記フラグメント検出回路が、前記データの前記第２のフレームの１つからのフラグメントを検出する場合、あるいはその両方の場合に、デュプレックス不整合を宣言するデュプレックス不整合回路を有し、
前記デュプレックス不整合は、前記データの前記第２のフレームに対してハーフデュプレックスモードが利用されることを示す、装置。
【請求項１４】
前記デュプレックス不整合回路は、メモリ回路にフラグを設定するあるいはメッセージを送信する、あるいはその両方を含む少なくとも１つのアクションを行うことで、前記デュプレックス不整合を宣言する、請求項１３に記載の装置。
【請求項１５】
前記少なくとも１つのポートは、前記デュプレックス不整合回路がデュプレックス不整合を宣言する場合に、前記少なくとも１つのポートをフルデュプレックスモードからハーフデュプレックスモードに切り替えるデュプレックスモード回路をさらに含む、請求項１３に記載の装置。
【請求項１６】
前記少なくとも１つのポートはコリジョン強制回路をさらに含み、
前記コリジョン強制回路は、前記デュプレックス不整合回路によるデュプレックス不整合の宣言に応じて前記データの前記第２のフレームの１つにおけるデータの所定の量を受信した後で、前記データの前記第２のフレームの前記１つを受信する間、前記データの前記第１のフレームの１つを前記少なくとも１つのポートから送信させる、請求項１３に記載の装置。
【請求項１７】
前記少なくとも１つのポートはデュプレックスモード回路をさらに含み、
前記デュプレックスモード回路は、前記コリジョン強制回路が前記データの前記第１のフレームの前記１つを前記少なくとも１つのポートに送信させた後で、前記デュプレックス不整合回路がデュプレックス不整合を宣言する場合、前記少なくとも１つのポートをフルデュプレックスモードからハーフデュプレックスモードに切り替える、請求項１６に記載の装置。
【請求項１８】
請求項１３に記載の装置を含み、
ＩＥＥＥ標準８０２．３、８０２．１１、８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、８０２．１１ｎ、８０２．１６、および８０２．２０を含む複数の標準のうちの少なくとも１つに準拠している、ネットワークデバイス。
【請求項１９】
請求項１３に記載の装置を含み、
スイッチ、ルータ、およびネットワークインタフェースコントローラのうちいずれかを含む、ネットワークデバイス。
【請求項２０】
通信チャネルを介して、データの第１のフレームをフルデュプレックスモードで送信し、前記データの第２のフレームを受信することと、
ａ）前記データの前記第１のフレームの１つを送信しているときに前記データの前記第２のフレームの１つからＣＲＣエラーを検出する場合、あるいは、ｂ）前記データの前記第２のフレームの１つからのフラグメントを検出する場合、あるいはその両方の場合に、デュプレックス不整合を宣言することと、を備え、
前記デュプレックス不整合は、前記データの前記第２のフレームに対してハーフデュプレックスモードが利用されることを示す、方法。
【請求項２１】
前記デュプレックス不整合を宣言することは、
メモリ回路にフラグを設定すること、およびメッセージを送信すること、を含む複数のアクションのうちの少なくとも１つを行うことを含む、請求項２０に記載の方法。
【請求項２２】
デュプレックス不整合が宣言された後で、前記データの前記第１のフレームをフルデュプレックスモードで送信することをさらに備える、請求項２０に記載の方法。
【請求項２３】
デュプレックス不整合が宣言された後で前記データの前記第２のフレームの１つの前記データの所定の量を受信した後で、前記データの前記第２のフレームの１つを受信する間、前記データの前記第１のフレームの１つを送信することをさらに備える、請求項２０に記載の方法。
【請求項２４】
前記フレームのうちの第一のフレームを送信した後でデュプレックス不整合が宣言される場合、前記データの前記第一のフレームをフルデュプレックスモードで送信することをさらに備える、請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２００６年３月２８日出願の米国仮出願番号第６０／７８６，４７７の恩恵を享受しており、その開示の全体をここに参照として組み込む。
【背景技術】
【０００２】
本発明は、概してデータ通信に関する。より具体的には、本発明は、データ通信チャネルのデュプレックス不整合検出に関する。
【発明の開示】
【０００３】
概して、一局面において、本発明は、通信チャネルを介して、データの第１のフレームをハーフデュプレックスモードで送信し、データの第２のフレームを受信する少なくとも１つのポートを備え、少なくとも１つのポートは、データの第１のフレームとデータの第２のフレームとの、通信チャネル上におけるコリジョン（collision）を検出するコリジョン検出回路と、ａ）コリジョン検出回路が、データの第１のフレームに関わる所定の数のレートコリジョン（late collision）を検出する際、あるいは、ｂ）コリジョン検出回路が、データの第１のフレームの１つに関わるベリーレートコリジョン（very late collision）を検出する際、デュプレックス不整合を宣言するデュプレックス不整合回路と、を有し、レートコリジョンの各々は、データの第１のフレームの各々においてデータの第１の所定の量が送信された後に起こり、
ベリーレートコリジョンは、データの第１のフレームの１つにおいて、データの第１の所定の量より大きいデータの第２の所定の量が送信された後に起こり、デュプレックス不整合は、データの第２のフレームに対してフルデュプレックスモードが利用されることを示す、装置を特徴とする。
【０００４】
幾らかの実施形態においては、データの第１の所定の量およびデータの第２の所定の量のうち少なくともいずれかは、通信チャネルのコリジョンドメインのサイズにより選択される。幾らかの実施形態においては、データの第１の所定の量およびデータの第２の所定の量のうち少なくともいずれかは、通信チャネルのコリジョンドメインのサイズの倍数により選択される。幾らかの実施形態においては、デュプレックス不整合回路は、メモリ回路にフラグを設定する、あるいはメッセージを送信する、あるいはその両方を含む少なくとも１つのアクションを行うことで、デュプレックス不整合を宣言する。幾らかの実施形態においては、少なくとも１つのポートは、デュプレックス不整合回路がデュプレックス不整合を宣言する際に、少なくとも１つのポートをハーフデュプレックスモードからフルデュプレックスモードに切り替えるデュプレックスモード回路をさらに含む。幾らかの実施形態においては、装置を含み、ＩＥＥＥ標準８０２．３、８０２．１１、８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、８０２．１１ｎ、８０２．１６、および８０２．２０を含む複数の標準のうちの少なくとも１つに準拠している、ネットワークデバイスが提供される。幾らかの実施形態においては、装置を含み、スイッチ、ルータ、およびネットワークインタフェースコントローラのうちいずれかを含む、ネットワークデバイスが提供される。
【０００５】
概して、一局面において、本発明は、通信チャネルを介して、データの第１のフレームをハーフデュプレックスモードで送信し、データの第２のフレームを受信する少なくとも１つのポート手段を備え、少なくとも１つのポート手段は、データの第１のフレームとデータの第２のフレームとの、通信チャネル上におけるコリジョンを検出するコリジョン検出手段と、ａ）コリジョン検出手段が、データの第１のフレームに関わる所定の数のレートコリジョンを検出する際、あるいは、ｂ）コリジョン検出手段が、データの第１のフレームの１つに関わるベリーレートコリジョンを検出する際、デュプレックス不整合を宣言するデュプレックス不整合手段と、を有し、レートコリジョンの各々は、データの第１のフレームの各々においてデータの第１の所定の量が送信された後に起こり、ベリーレートコリジョンは、データの第１のフレームの１つにおいて、データの第１の所定の量より大きいデータの第２の所定の量が送信された後に起こり、デュプレックス不整合は、データの第２のフレームに対してフルデュプレックスモードが利用されることを示す、装置を特徴とする。
【０００６】
幾らかの実施形態においては、データの第１の所定の量およびデータの第２の所定の量のうち少なくともいずれかは、通信チャネルのコリジョンドメインのサイズにより選択される。幾らかの実施形態においては、データの第１の所定の量およびデータの第２の所定の量のうち少なくともいずれかは、通信チャネルのコリジョンドメインのサイズの倍数により選択される。幾らかの実施形態においては、デュプレックス不整合手段は、メモリ回路にフラグを設定する、あるいはメッセージを送信する、あるいはその両方を含む少なくとも１つのアクションを行うことで、デュプレックス不整合を宣言する。幾らかの実施形態においては、少なくとも１つのポートは、デュプレックス不整合手段がデュプレックス不整合を宣言する際に、少なくとも１つのポートをハーフデュプレックスモードからフルデュプレックスモードに切り替えるデュプレックスモード手段をさらに含む。幾らかの実施形態においては、装置を含み、ＩＥＥＥ標準８０２．３、８０２．１１、８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、８０２．１１ｎ、８０２．１６、および８０２．２０を含む複数の標準のうちの少なくとも１つに準拠している、ネットワークデバイスが提供される。幾らかの実施形態においては、装置を含み、スイッチ、ルータ、およびネットワークインタフェースコントローラのうちいずれかを含む、ネットワークデバイスが提供される。
【０００７】
概して、一局面において、本発明は、通信チャネルを介して、データの第１のフレームをハーフデュプレックスモードで送信し、データの第２のフレームを受信することと、
データの第１のフレームとデータの第２のフレームとの、通信チャネル上におけるコリジョンを検出することと、ａ）データの第１のフレームに関わる所定の数のレートコリジョンを検出する際、あるいは、ｂ）データの第１のフレームの１つに関わるベリーレートコリジョンを検出する際、デュプレックス不整合を宣言することと、を備え、レートコリジョンの各々は、データの第１のフレームの各々においてデータの第１の所定の量が送信された後に起こり、ベリーレートコリジョンは、データの第１のフレームの１つにおいて、データの第１の所定の量より大きいデータの第２の所定の量が送信された後に起こり、デュプレックス不整合は、データの第２のフレームに対してフルデュプレックスモードが利用されることを示す、方法を特徴とする。
【０００８】
幾らかの実施形態においては、データの第１の所定の量およびデータの第２の所定の量のうち少なくともいずれかは、通信チャネルのコリジョンドメインのサイズにより選択される。幾らかの実施形態においては、データの第１の所定の量およびデータの第２の所定の量のうち少なくともいずれかは、通信チャネルのコリジョンドメインのサイズの倍数により選択される。幾らかの実施形態においては、デュプレックス不整合を宣言することは、メモリ回路にフラグを設定すること、およびメッセージを送信すること、のうち少なくともいずれかを行うことを含む。幾らかの実施形態は、デュプレックス不整合が宣言された後で、データの第１のフレームをフルデュプレックスモードで送信することをさらに備える。
【０００９】
概して、一局面において、本発明は、プロセッサ上で実行可能なコンピュータプログラムであって、通信チャネルを介してハーフデュプレックスモードで送信されたデータの第１のフレームと通信チャネルを介して受信されたデータの第２のフレームとの、通信チャネル上におけるコリジョンを検出する命令と、ａ）データの第１のフレームに関わる所定の数のレートコリジョンを検出する際、あるいは、ｂ）データの第１のフレームの１つに関わるベリーレートコリジョンを検出する際、デュプレックス不整合を宣言する命令と、を備え、レートコリジョンの各々は、データの第１のフレームの各々においてデータの第１の所定の量が送信された後に起こり、ベリーレートコリジョンは、データの第１のフレームの１つにおいて、データの第１の所定の量より大きいデータの第２の所定の量が送信された後に起こり、デュプレックス不整合は、データの第２のフレームに対してフルデュプレックスモードが利用されることを示す、コンピュータプログラムを特徴とする。
【００１０】
幾らかの実施形態においては、データの第１の所定の量およびデータの第２の所定の量のうち少なくともいずれかは、通信チャネルのコリジョンドメインのサイズにより選択される。幾らかの実施形態においては、データの第１の所定の量およびデータの第２の所定の量のうち少なくともいずれかは、通信チャネルのコリジョンドメインのサイズの倍数により選択される。幾らかの実施形態においては、デュプレックス不整合を宣言する命令は、メモリ回路にフラグを設定すること、およびメッセージを送信すること、のうち少なくともいずれかを行う命令を含む。
【００１１】
概して、一局面において、本発明は、通信チャネルを介して、データの第１のフレームをフルデュプレックスモードで送信し、データの第２のフレームを受信する少なくとも１つのポートを備え、少なくとも１つのポートは、データの第２のフレームからＣＲＣエラーを検出する巡回冗長検査（ＣＲＣ）エラー検出回路、およびデータの第２のフレームのフラグメントを検出するフラグメント検出回路、のいずれかあるいは両方、並びにａ）少なくとも１つのポートがデータの第１のフレームの１つを送信しているときに、ＣＲＣエラー検出回路が、データの第２のフレームの１つからＣＲＣエラーを検出する際、あるいは、ｂ）フラグメント検出回路が、データの第２のフレームの１つからのフラグメントを検出する際、あるいはその両方の際に、デュプレックス不整合を宣言するデュプレックス不整合回路を有し、デュプレックス不整合は、データの第２のフレームに対してハーフデュプレックスモードが利用されることを示す、装置を特徴とする。
【００１２】
幾らかの実施形態においては、デュプレックス不整合回路は、メモリ回路にフラグを設定するあるいはメッセージを送信する、あるいはその両方を含む少なくとも１つのアクションを行うことで、デュプレックス不整合を宣言する。幾らかの実施形態においては、少なくとも１つのポートは、デュプレックス不整合回路がデュプレックス不整合を宣言する際に、少なくとも１つのポートをフルデュプレックスモードからハーフデュプレックスモードに切り替えるデュプレックスモード回路をさらに含む。幾らかの実施形態においては、少なくとも１つのポートはコリジョン強制回路をさらに含み、コリジョン強制回路は、デュプレックス不整合回路によるデュプレックス不整合の宣言に応じてデータの第２のフレームの１つにおけるデータの所定の量を受信した後で、データの第２のフレームの１つを受信する間、データの第１のフレームの１つを少なくとも１つのポートから送信させる。幾らかの実施形態は、少なくとも１つのポートはコリジョン強制回路をさらに含み、コリジョン強制回路は、デュプレックス不整合回路によるデュプレックス不整合の宣言に応じてデータの第２のフレームの１つにおけるデータの所定の量を受信した後で、データの第２のフレームの１つを受信する間、データの第１のフレームの１つを少なくとも１つのポートから送信させる。幾らかの実施形態においては、装置を含み、ＩＥＥＥ標準８０２．３、８０２．１１、８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、８０２．１１ｎ、８０２．１６、および８０２．２０を含む複数の標準のうちの少なくとも１つに準拠している、ネットワークデバイスが提供される。幾らかの実施形態においては、装置を含み、スイッチ、ルータ、およびネットワークインタフェースコントローラのうちいずれかを含む、ネットワークデバイスが提供される。
【００１３】
概して、一局面において、本発明は、通信チャネルを介して、データの第１のフレームをフルデュプレックスモードで送信し、データの第２のフレームを受信する少なくとも１つのポート手段を備え、少なくとも１つのポート手段は、データの第２のフレームからＣＲＣエラーを検出する巡回冗長検査（ＣＲＣ）エラー検出手段、およびデータの第２のフレームのフラグメントを検出するフラグメント検出手段のいずれかあるいは両方、並びにａ）少なくとも１つのポート手段がデータの第１のフレームの１つを送信しているときに、ＣＲＣエラー検出手段が、データの第２のフレームの１つからＣＲＣエラーを検出する際、あるいは、ｂ）フラグメント検出手段が、データの第２のフレームの１つからのフラグメントを検出する際、あるいはその両方の際に、デュプレックス不整合を宣言するデュプレックス不整合手段を有し、デュプレックス不整合は、データの第２のフレームに対してハーフデュプレックスモードが利用されることを示す、装置を特徴とする。
【００１４】
幾らかの実施形態においては、デュプレックス不整合手段は、メモリ回路にフラグを設定するあるいはメッセージを送信する、あるいはその両方を含む少なくとも１つのアクションを行うことで、デュプレックス不整合を宣言する。幾らかの実施形態においては、少なくとも１つのポート手段は、デュプレックス不整合手段がデュプレックス不整合を宣言する際に、少なくとも１つのポート手段をフルデュプレックスモードからハーフデュプレックスモードに切り替えるデュプレックスモード手段をさらに含む。幾らかの実施形態においては、少なくとも１つのポート手段はコリジョン強制手段をさらに含み、コリジョン強制手段は、デュプレックス不整合手段によるデュプレックス不整合の宣言に応じてデータの第２のフレームの１つにおけるデータの所定の量を受信した後で、データの第２のフレームの１つを受信する間、データの第１のフレームの１つを少なくとも１つのポート手段から送信させる。幾らかの実施形態は、少なくとも１つのポート手段はコリジョン強制手段さらに含み、コリジョン強制手段は、デュプレックス不整合手段によるデュプレックス不整合の宣言に応じてデータの第２のフレームの１つにおけるデータの所定の量を受信した後で、データの第２のフレームの１つを受信する間、データの第１のフレームの１つを少なくとも１つのポート手段から送信させる。幾らかの実施形態においては、装置を含み、ＩＥＥＥ標準８０２．３、８０２．１１、８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、８０２．１１ｎ、８０２．１６、および８０２．２０を含む複数の標準のうちの少なくとも１つに準拠している、ネットワークデバイスが提供される。幾らかの実施形態においては、装置を含み、スイッチ、ルータ、およびネットワークインタフェースコントローラのうちいずれかを含む、ネットワークデバイスが提供される。
【００１５】
概して、一局面において、本発明は、通信チャネルを介して、データの第１のフレームをフルデュプレックスモードで送信し、データの第２のフレームを受信することと、
ａ）データの第１のフレームの１つを送信しているときにデータの第２のフレームの１つからＣＲＣエラーを検出する際、あるいは、ｂ）データの第２のフレームの１つからのフラグメントを検出する際、あるいはその両方の際に、デュプレックス不整合を宣言することと、を備え、デュプレックス不整合は、データの第２のフレームに対してハーフデュプレックスモードが利用されることを示す、方法を特徴とする。
【００１６】
幾らかの実施形態においては、デュプレックス不整合を宣言することは、メモリ回路にフラグを設定すること、およびメッセージを送信すること、を含む複数のアクションのうちの少なくとも１つを行うことを含む。幾らかの実施形態においては、デュプレックス不整合が宣言された後で、データの第１のフレームをフルデュプレックスモードで送信することをさらに備える。幾らかの実施形態においては、デュプレックス不整合が宣言された後でデータの第２のフレームの１つのデータの所定の量を受信した後で、データの第２のフレームの１つを受信する間、データの第１のフレームの１つを送信することをさらに備える。幾らかの実施形態においては、フレームのうちの第一のフレームを送信した後でデュプレックス不整合が宣言される際、データの第一のフレームをフルデュプレックスモードで送信することをさらに備える。
【００１７】
概して、一局面において、本発明は、プロセッサ上で実行可能なコンピュータプログラムであって、通信チャネルを介して、データの第１のフレームをフルデュプレックスモードで送信し、データの第２のフレームを受信する命令と、ａ）データの第１のフレームの１つを送信しているときにデータの第２のフレームの１つからＣＲＣエラーを検出する際、あるいは、ｂ）データの第２のフレームの１つからのフラグメントを検出する際、あるいはその両方の際に、デュプレックス不整合を宣言する命令と、を備え、デュプレックス不整合は、データの第２のフレームに対してハーフデュプレックスモードが利用されることを示す、コンピュータプログラムを特徴とする。
【００１８】
幾らかの実施形態においては、デュプレックス不整合を宣言する命令は、メモリ回路にフラグを設定すること、およびメッセージを送信すること、を含む複数のアクションのうちの少なくとも１つを行うことを含む。幾らかの実施形態においては、デュプレックス不整合が宣言された後で、データの第１のフレームをハーフデュプレックスモードで送信する命令をさらに備える。幾らかの実施形態においては、デュプレックス不整合が宣言された後でデータの第２のフレームの１つのデータの所定の量を受信した後で、データの第２のフレームの１つを受信する間、データの第１のフレームの１つを送信する命令をさらに備える。幾らかの実施形態においては、フレームのうちの第一のフレームを送信した後でデュプレックス不整合が宣言される際、データの第一のフレームをハーフデュプレックスモードで送信することをさらに備える。
【００１９】
一以上の実装例の詳細を添付図面、および以下の記載に述べる。他のフィーチャも記載、図面、および請求項から明らかになろう。
【図面の簡単な説明】
【００２０】
【図１】本発明の好適な実施形態によるハーフデュプレックスモードにおいてデュプレックス不整合を検出および補正することのできるネットワークデバイスを含む通信システムを示す。
【００２１】
【図２】本発明の好適な実施形態による図１のネットワークデバイスの処理を示す。
【００２２】
【図３】本発明の好適な実施形態によるフルデュプレックスモードにおいてデュプレックス不整合を検出および補正することのできるネットワークデバイスを含む通信システムを示す。
【００２３】
【図４】本発明の好適な実施形態による図３のネットワークデバイスの処理を示す。
【００２４】
本明細書で利用される各参照番号の主要なディジットは、参照番号が最初に現れる図面の番号を示す。
【発明を実施するための最良の形態】
【００２５】
本発明の発明者たちは、「デュプレックス不整合」として知られている条件が、予期されるよりもずっと普通に起こることを確認した。最もよいケースでもデュプレックス不整合を有するリンクでは性能が大幅に低減し、最悪のケースではポートが失速してしまう。
【００２６】
デュプレックス不整合は、１つのリンクパートナがフルデュプレックスモードを利用している間に同時に、同じリンク上の他のリンクパートナがハーフデュプレックスモードを利用する際に起こる。ハーフデュプレックスモードのポートは、フルデュプレックスポートが送信を行っている間データの送信が全く出来ない。それより悪い場合は、ハーフデュプレックスポートが送信中であるか否かに関わらず、フルデュプレックスリンクが送信したいときに送信するので、ハーフデュプレックスポートが送信しているフレームにコリジョンおよびフレーム受信機エラーが生じる。故に、ハーフデュプレックスポートが送信するフレームのごく僅かが送信に成功する。デュプレックス不整合リンクの実際のデータ転送レートは、ＴＣＰ／ＩＰトラフィックのリンクの可能レートの１％であると計測されている。
【００２７】
デュプレックス不整合は、カテゴリ（ＣＡＴ）３、５および５ｅのツイストペアケーブルを支援するＩＥＥＥ標準が進化したことにより、かなり容易に起こりうる。当初は、ツイストペアイーサネット標準は、ハブを利用するハーフデュプレックスだけであった１０ＢＡＳＥ‐Ｔだけであった。フルデュプレックス通信を支援することでネットワーク性能を上げる可能性が出てきたが、リンクの両面がフルデュプレックスモードを支援できると示している場合のみに、フルデュプレックスを許可する機構が必要であった。この機構はオートネゴシエーションと称される。
【００２８】
１０ＢＡＳＥ−Ｔハブはオートネゴシエーションを支援していなかったので、例えば既存の機器との互換性を保証すべく規則が作成されてきた。このような規則の１つによると、リンクパートナがオートネゴシエーションしない場合、ローカルポートはハーフデュプレックスモードでなくてはならない、と規定されている。この規則によると、元の１０ＢＡＳＥ−Ｔハブとの互換性が逆方向に保証される。
【００２９】
技術進歩により、ファストイーサネット（ＩＥＥＥ１００ＢＡＳＥ−ＴＸ）が標準になった。ここでもまた、コンピュータの相互接続に利用される最初のファストイーサネットデバイスは、ハーフデュプレックスファストイーサネットハブであった。これらハブは（フルデュプレックス可能な）スイッチよりコストが低く、ファストイーサネットが標準化された方法により、オートネゴシエーションの必要がない。オートネゴシエーションの必要性なしにこれらハブの構築を可能にした機構は、「並列検出」と称される。並列検出により、たとえリンクパートナがオートネゴシエーションしなくても、異なる速度で異なるリンク上に見られるアイドルパターンを調べることにより、ポートが正確な速度（１０あるいは１００Ｍｂｉｔ／秒）でリンクすることが可能となる。
【００３０】
オートネゴシエーションはＩＥＥＥ標準でよく定義されたが、複雑なので、全てのデバイスがオートネゴシエーションを正確に完了できないのではないかとう懸念があった。この互換性に関する懸念を払拭すべく、ＩＥＥＥ標準はさらに、ポートが特定の速度およびデュプレックスモードに強制的に入ることを可能ならしめた。この「バックドア」は、互換性の問題がオートネゴシエーションの創世記に起こったので、かなり便利であった。
【００３１】
これら規則の各々は、進化の際に理にかなったものであったが、同時に、デュプレックス不整合という問題を生じた。例えば、幾らかのより古い機器では、速度とデュプレックスモードとを強制することが必要であったが、これは多分オートネゴシエーション互換性の問題によるものであっただろう。多くのネットワーク管理者は、この要件を思い起こして、この理由から、あるいは最適な性能を得るべく、幾らかのより新しい機器にも速度とデュプレックスとを強制している。いずれの場合にも、最適な性能の達成は所望の目的であり、デュプレックスモードが強制された場合、通常フルデュプレックスモードが強制される。
【００３２】
強制されたポートがオートネゴシエーションするポートに接続される場合、リンクが生じ、リンクが適切に動作するように見えるようパケットが流れる。しかし、オートネゴシエーションするポートは、ＩＥＥＥ標準の規則によりハーフデュプレックスモードになる。実際には、ポートの性能は大幅に低減して、問題が露呈する。
【００３３】
表１は、１０／１００リンク上の６つの可能性ある速度とデュプレックスモード、およびＴＣＰ／ＩＰを利用したファイルダウンロードの効果的なビットレートの組み合わせを示す。ネットワーク管理者の殆どは、デュプレックス不整合が起こらない、表の最初の４つのエントリのみを考慮し、故に、ポートを１００Ｍｂｉｔの速度およびフルデュプレックスモードへと強制することをよい慣習であるとみなす。強制がリンクパートナのポートでも行われない場合（これは頻繁には行われないが）、リンクの効果的なビットレートは実際には適切に構成された１０Ｍｂｉｔのハーフデュプレックスリンクよりも劣ってしまう。
【００３４】
【表１】
2009531964.tif 000003
【００３５】
本発明の実施形態は、デュプレックス不整合が生じているリンクの両端にデュプレックス不整合を補正させる技術を提供する。幾らかの実施形態によると、リンクのハーフデュプレックス端は、リンクの他端がフルデュプレックスモードにあることを、遅い、および／またはベリーレートコリジョンを検出することで検出することができ、フルデュプレックスモードへ切り替えることでデュプレックス不整合を補正することができる。幾らかの実施形態においては、リンクのフルデュプレックス端は、リンクの他端がハーフデュプレックスモードにあることを、巡回冗長検査（ＣＲＣ）エラーおよびフレームフラグメントの検出を含む一以上の技術により検出することができ、ハーフデュプレックスモードへ切り替えることでデュプレックス不整合を補正することができる。幾らかの実施形態においては、デュプレックス不整合を検出するフルデュプレックスモードで動作するデバイスは、一以上のベリーレートコリジョンに、ハーフデュプレックスリンクパートナがデュプレックス不整合を検出して、フルデュプレックスモードへ切り替える機会を得るよう強制してもよく、これは例えばここに開示される技術を利用して行うことができ、これによりデュプレックス不整合が解消する。リンクパートナがフルデュプレックスモードへと切り替えない場合、デバイスは、デュプレックス不整合を解消すべくハーフデュプレックスモードへと切り替える。
【００３６】
図１は、本発明の好適な実施形態によるハーフデュプレックスモードにおいてデュプレックス不整合を検出および補正することのできるネットワークデバイス１０２を含む通信システム１００を示す。ネットワークデバイス１０２は、スイッチ、ルータ、ネットワークインタフェースコントローラ（ＮＩＣ）などとして実装されうる。ネットワークデバイス１０２は、通信チャネル１０８を介して別のネットワークデバイス１０６と通信する少なくとも１つのポート１０４を含む。ネットワークデバイス１０２はさらに、以下で詳述するように、デュプレックス不整合を宣言するデュプレックス不整合回路１１０も含む。幾らかの実施形態においては、デュプレックス不整合回路１１０の全てあるいはその一部は、ポート１０４に実装される。ポート１０４は、通信チャネル１０８ａ上のコリジョンを検出するコリジョン検出回路１１２、ポート１０４をハーフデュプレックスモードからフルデュプレックスモードへ切り替えるデュプレックスモード回路１１６、およびメモリ回路１１８を含む。
【００３７】
図２は、本発明の好適な実施形態による図１のネットワークデバイス１０２の処理２００を示す。ネットワークデバイス１０２および１０６間のリンクがオートネゴシエーションを利用して構築された場合（ステップ２０２）、何らデュプレックス不整合が起こりえないので処理２００が行われる（ステップ２０４）。さもなくば、ポート１０４は、ハーフデュプレックスモードへとリンクして（ステップ２０６）、デュプレックス不整合が存在するか否かを決定する、つまり、ネットワークデバイス１０６が以下に記すフルデュプレックスモードにあるか否か、を決定する。ネットワークデバイス１０２のポート１０４は、データのフレームをハーフデュプレックスモードで、通信チャネル１０８を介してネットワークデバイス１０６へ送信する（ステップ２０８）。ポート１０４はハーフデュプレックスモードにあるので、ネットワークデバイス１０２および１０６が同時に通信チャネル１０８上で送信すると、コリジョンが生じ、これをコリジョン検出回路１１２が例えば従来技術により検出する。
【００３８】
コリジョンが検出されない場合（ステップ２１０）、ポート１０４は、データの別のフレームを選択して（ステップ２１２）、該フレームを通信チャネル１０８を介して送信する（ステップ２０８で繰り返される）。しかしコリジョン検出回路１１２がコリジョンを検出すると（ステップ２１０）、デュプレックス不整合回路１１０は、デュプレックス不整合が起こっているか否かを決定する（ステップ２１６）。
【００３９】
幾らかの実施形態においては、デュプレックス不整合回路１１０は、例えば所定の間隔中に所定の数のレートコリジョンが生じた場合に、デュプレックス不整合が生じていると決定する。ＩＥＥＥ８０２標準によるとレートコリジョンとは、フレーム中の閾値の量のデータの送信の後に起こるコリジョンのことである。例えば、ＩＥＥＥ８０２によるレートコリジョンは、ネットワークのコリジョンドメインが大きすぎることの見極めに利用されてきた。ＩＥＥＥ標準８０２．３ではレートコリジョンとは、１フレームのバイト６４の後に起こるコリジョンとみなされる。この理由から、１イーサネットフレームの最小フレームサイズは６４バイトに設定されていた。コリジョンドメインが大きすぎる場合、該フレームを送信するネットワークデバイスは、該フレームの送信後にもコリジョンを検出できない可能性があり、該フレームが送信に成功したと誤って見なしてしまうことがありうる。故に、レートコリジョンは、過度のサイズのコリジョンドメインが検出および修正されうることであると定義されてきた。過度のサイズのコリジョンドメインにおいては、レートコリジョンは典型的にバイト６５あるいは６６において起き、各々のより高いバイト数において減少する可能性がある。実際のところ、過度のコリジョンドメインにおけるレートコリジョンは、コリジョンドメインの両端において、あるいはその付近で二以上の局が同時にフレーム送信を試みる際のみに起こるので、稀である。
【００４０】
これら実施形態においては、デュプレックス不整合回路１１０は、デュプレックス不整合が宣言されるべきか否かを、レートコリジョンの割合（つまり、所定の間隔中のレートコリジョンの数）が所定の閾値の割合を超えるか否かを決定することにより、決定する（ステップ２１６）。例えば、１０秒のスパンにおける１０００個のレートコリジョンは、特にシステム管理者が前もってネットワークデバイス１０２が大きなコリジョンドメインに接続されていないことを定義している場合、おそらくデュプレックス不整合を宣言するのに十分であろう。もちろん、他の閾値および間隔を利用することもできる。
【００４１】
幾らかの実施形態においては、デュプレックス不整合回路１１０は、「非常に遅い」コリジョンが生じた際に、デュプレックス不整合が生じていると決定する。現代のネットワークにおいては、典型的に、大きなコリジョンドメインは利用しない、というのも、大きなコリジョンドメインは概してハーフデュプレックスハブではなくてフルデュプレックススイッチで構築されているからである。本発明の実施形態では、これらレートコリジョンを、デュプレックス不整合検出という異なる目的に利用する。ベリーレートコリジョンを定義するデータの閾値量は、通信チャネル１０８のコリジョンドメインのサイズと設定することができるが、好適には、ベリーレートコリジョンを１フレームのバイト２５６の後に起こるコリジョンであると定義することで、例えばレートコリジョンの数の４倍といった（つまり、６４バイトの後に相当）それらの倍数として設定されることが望ましい。これら「非常に遅い」コリジョンはいずれも、少し大きすぎるコリジョンドメインの結果でなくてもよく、ゆえに、単にデュプレックス不整合の指標であってよい。様々な実施形態において、これら技術のいずれかあるいは両方を利用することで、つまり、遅いおよび／またはベリーレートコリジョンを利用することで、デュプレックス不整合が起こっているか否かを決定する。
【００４２】
デュプレックス不整合回路１１０が、デュプレックス不整合が起こっていないと決定する場合（ステップ２１６）、ポート１０４は、幾らかの間隔の後にデータのフレームを再送信する（ステップ２０８の繰り返し）。
【００４３】
しかし、デュプレックス不整合回路１１０がデュプレックス不整合が起こっていると決定する場合（ステップ２１６）、デュプレックス不整合回路１１０はデュプレックス不整合を宣言する（ステップ２１８）。この場合、デュプレックス不整合の宣言により、ネットワークデバイス１０６がフルデュプレックスモードにあることが示される。デュプレックス不整合回路１１０は、デュプレックス不整合を宣言するのに一以上のアクションを起こすことができる。例えば、デュプレックス不整合回路１１０は、メモリ回路１１８に記憶されている管理情報ベース（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）（ＭＩＢ）に適切なフラグを立ててよい。別の例としては、デュプレックス不整合回路１１０はシステム管理者にメッセージを送信してよい。幾らかの実施形態においては、デュプレックスモード回路１１６は、デュプレックス不整合を宣言した後で、ポート１０４をフルデュプレックスモードに切り替える（ステップ２２０）。そして、処理２００が行われる（ステップ２２２）。
【００４４】
図３は、本発明の好適な実施形態によるフルデュプレックスモードにおいてデュプレックス不整合を検出および補正することのできるネットワークデバイス３０２を含む通信システム３００を示す。ネットワークデバイス３０２は、スイッチ、ルータ、ネッワークインタフェースコントローラ（ＮＩＣ）などとして実装されうる。ネットワークデバイス３０２は、通信チャネル３０８を介して別のネットワークデバイス３０６と通信する少なくとも１つのポート３０４を含む。ネットワークデバイス３０２はさらに、以下で詳述するように、デュプレックス不整合を宣言するデュプレックス不整合回路３１０も含む。ポート３０４は、受信フレーム中のＣＲＣエラーを検出するＣＲＣエラー検出回路３１２、およびフレームのフラグメントを検出するフラグメント検出回路３１４を含む。ポート３０４は、ポート３０４をフルデュプレックスモードからハーフデュプレックスモードへ切り替えるデュプレックスモード回路３１８、メモリ回路３２０、およびコリジョンを通信チャネル３０８上に強制的に起こすコリジョン強制回路３２２を含む。
【００４５】
図４は、本発明の好適な実施形態による図３のネットワークデバイス３０２の処理４００を示す。ネットワークデバイス３０２および３０６間のリンクがオートネゴシエーションを利用して構築された場合（ステップ４０２）、何らデュプレックス不整合が起こりえないので処理４００が行われる（ステップ４０４）。ネットワークデバイス３０２および３０６間のリンクがオートネゴシエーションを利用して構築されていない場合（ステップ４０２）、ポート３０４は、フルデュプレックスモードに入るよう強制はされず（ステップ４０６）、処理４００がなされる（ステップ４０４）。さもなくば、処理４００により、デュプレックス不整合が存在しているか否か、つまり、ネットワークデバイス３０６がハーフフルデュプレックスモードにあるか否か、を決定する。
【００４６】
ネットワークデバイス３０２、３０６は、本発明の実施形態では両方動作するので、その両方が同時にデュプレックスモードのスイッチを試みることを妨げるべく、ネットワークデバイス３０２は、後述するように、自身のデュプレックスを切り替える前にネットワークデバイス３０６にデュプレックスモードスイッチを行う時間を与える。
【００４７】
ネットワークデバイス３０２のポート３０４は、その後、ネットワークデバイス３０６から通信チャネル３０８を介してデータのフレームを受信する（ステップ４０８）。ＣＲＣエラー検出回路３１２は、受信フレームからＣＲＣエラーを検出する（ステップ４１０）が、このＣＲＣエラーはポート３０４がフレーム送信を開始した際に起こり、通信チャネル３０８上のコリジョンにより受信フレームが破損していることを示している可能性もある。幾らかの実施形態においては、このようなＣＲＣエラーが検出されると、ポート３０４は、ポート３０４に入る次のフレームでバイト６４が受信される前に、１フレームのプリアンブルの送信を開始する。これにより、後述するように、ポート３０４ではフラグメントが受信および検出される。
【００４８】
フラグメント検出回路３１４は、受信フレームのフラグメントを検出する（ステップ４１２）。フラグメントはフルデュプレックスモードで利用されないので、フラグメントが通信チャネル３０８に存在するということは、ネットワークデバイス３０６がハーフデュプレックスモードで動作していることを示す。
【００４９】
デュプレックス不整合回路３１０は、ＣＲＣエラー検出回路３１２、フラグメント検出回路３１４、およびネットワーク管理者によるこのフィーチャの構成が検出する一以上の条件に基づいて、デュプレックス不整合を宣言すべきか否かを決定する（ステップ４１４）。この場合、デュプレックス不整合の宣言により、ネットワークデバイス３０６がハーフデュプレックスモードにあることが示される。
【００５０】
デュプレックス不整合を宣言すべき場合（ステップ４１４）、デュプレックス不整合回路１１０はデュプレックス不整合を宣言する（ステップ４１６）。デュプレックス不整合回路３１０は、デュプレックス不整合を宣言するのに一以上のアクションを起こしうる。例えば、デュプレックス不整合回路３１０は、メモリ回路３２０に記憶されている管理情報ベース（ＭＩＢ）に適切なフラグを立ててよい。別の例としては、デュプレックス不整合回路３１０はシステム管理者にメッセージを送信してよい。
【００５１】
デュプレックス不整合回路３１０がデュプレックス不整合を宣言しない場合（ステップ４１４）、ポート３０４はデータフレーム受信を継続する（ステップ４０８の繰り返し）。しかしデュプレックス不整合回路３１０がデュプレックス不整合を宣言すると（ステップ４１６）、幾らかの実施形態においては、デュプレックスモード回路３１８がポート３０４をハーフデュプレックスモードに切り替える（ステップ４１８）。そして、処理４００を行う（ステップ４２４）。しかし、ネットワークデバイス３０６が図２のように動作する場合、ポート３０４が自身のデュプレックスモードをハーフに切り替えている際に、ネットワークデバイス３０６は自身のデュプレックスモードをフルに切り替えてよく、これにより再度デュプレックス不整合が生じる。
【００５２】
他の実施形態においては、デュプレックス不整合回路３１０はデュプレックス不整合を宣言する場合（ステップ４１６）、コリジョン強制回路３２２は、例えば、受信フレームのデータの所定の量を受信したあとでフレームを受信しながら、フレーム送信、あるいはフレームの少なくともプリアンブルの送信を行うことで、通信チャネル３０８に一以上のベリーレートコリジョンを強制して（ステップ４２０）、これにより、例えば上述した技術によりネットワークデバイス３０６に、ベリーレートコリジョンを検出してデュプレックスモードをフルデュプレックスモードに切り替える機会を与える。
【００５３】
デュプレックス不整合回路３１０はその後、例えば上述の技術により再度通信チャネル３０８をモニターして、別のデュプレックス不整合が起こっていないかどうか決定する（ステップ４２２）。もしもデュプレックス不整合回路３１０が別のデュプレックス不整合を検出しない場合（ステップ４２２）、これはネットワークデバイス３０６がデュプレックスモードをフルデュプレックスモードに切り替えた場合によくあるであろうが、処理４００をステップ４０８で再開する。しかしもしデュプレックス不整合回路３１０が別のデュプレックス不整合を検出する場合（ステップ４２２）、デュプレックスモード回路３１８はポート３０４をハーフデュプレックスモードに切り替える（ステップ４１８）。そして処理４００を行う（ステップ４２４）。
【００５４】
本発明の実施形態は、デジタル電子回路、あるいはコンピュータハードウェア、ファームウェア、ソフトウェア、あるいはそれらの組み合わせにおいて実装されることもできる。本発明の装置は、プログラム可能なプロセッサ実行用の機械読み取り可能な記憶デバイスに明白に具現化されるコンピュータプログラム製品に実装でき、本発明の方法ステップは、入力データに動作し出力を生成することで、本発明の機能を実行する命令のプログラムを実行するプログラム可能なプロセッサにより実行できる。本発明は、データおよび命令を送受信すべく連結されている少なくとも１つのプログラム可能なプロセッサ、データ記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスを含むプログラム可能なシステムで実行可能な一以上のコンピュータプログラムに有利に実装されうる。各コンピュータプログラムは、高レベルの手順あるいはオブジェクト指向のプログラム言語、あるいは所望であればアセンブリあるいは機械言語に実装されえ、いずれの場合にも言語はコンパイルされた言語あるいは解釈された言語であってよい。適切なプロセッサは、例示としては、汎用および専用マイクロプロセッサ両方を含む。概して、プロセッサは、読み取り専用メモリ回路および／またはランダムアクセスメモリ回路から命令およびデータを受信する。概して、コンピュータは、データファイルを記憶する一以上の大容量記憶デバイスを含み、このようなデバイスは、例としては内部ハードディスクおよび取り外し可能なディスクなどの磁気ディスク、磁気光学ディスク、および光学ディスクを含む。コンピュータプログラム命令およびデータを明白に具体化するのに適した記憶デバイスは、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ回路デバイスなどの半導体メモリ回路デバイス、内部ハードディスクおよび取り外し可能なディスクなどの磁気ディスク、磁気光学ディスク、およびＣＤ−ＲＯＭディスクを含む全ての形式の不揮発性メモリ回路を含む。上述のいずれも、ＡＳＩＣ（特定用途向け集積回路）により補足、あるいはそこに組み込まれうる。
【００５５】
本発明の幾らかの実装例を記載した。しかし、本発明の精神および範囲から逸脱しない範囲で様々な変形例を作成することができることは理解されたい。故に、他の実装例も以下の請求項の範囲に含まれる。
【図１】
2009531964.tif 000004
【図２】
2009531964.tif 000005
【図３】
2009531964.tif 000006
【図４】
2009531964.tif 000007
【国際調査報告】
2009531964.tif 000008
2009531964.tif 000009
2009531964.tif 000010