以上のことに鑑みて、本出願の実施形態は、パケット転送方法、デバイス、およびシステムを提供する。第1のネットワークデバイスが、第2のネットワークデバイスから受信された測定情報に基づいて位相差を決定し、位相差は、リンク遅延が考慮された、第1のネットワークデバイスの第1の出口ポートの複数の第1のバッファのうちの1つのバッファのスイッチング時刻と、第2のネットワークデバイスの第2の出口ポートの複数の第2のバッファのうちの1つのバッファのスイッチング時刻の間の位相差である。第1のネットワークデバイスが、その位相差に基づいて、第1の出口ポート経由で送信される必要のあるデータパケットをスケジュールする。このようにして、第1のネットワークデバイスと第2のネットワークデバイスとは、時間同期なしにデータパケットのキューイングおよび転送を実施する。
本出願の実施形態において提供される技術的解決策は、以下のとおりである。
第1の態様によれば、パケット転送方法が提供され、方法は、第1のネットワークデバイスによる、第2のネットワークデバイスの第2の出口ポート経由で第2のネットワークデバイスによって送信された第1のメッセージを受信することであって、第1のメッセージが、位相差を測定するのに使用され、かつ位相差が、リンク遅延が考慮された、第1のネットワークデバイスの第1の出口ポートの複数の第1のバッファのうちの1つのバッファのスイッチング時刻と、第2のネットワークデバイスの第2の出口ポートの複数の第2のバッファのうちの1つのバッファのスイッチング時刻の間の位相差であること、および第1のネットワークデバイスによる、第1のメッセージに基づいて位相差を決定することであって、複数の第1のバッファに関するスイッチングサイクルが、複数の第2のバッファに関するスイッチングサイクルと同一であること、および、次に、第1のネットワークデバイスによる、その位相差に基づいて、第1の出口ポート経由で送信される第2のデータパケットをスケジュールすることを含む。
この実施形態において提供される解決策に基づいて、第1のネットワークデバイスと第2のネットワークデバイスとは、時間同期なしにデータパケットのキューイングおよび転送を実施する。
第1の態様の可能な実装において、第1のネットワークデバイスによる、第1のメッセージに基づいて位相差を決定することの前に、方法は、第1のネットワークデバイスによる、第2のネットワークデバイスによって送信された第2のメッセージを受信することであって、第2のメッセージが、第1の時刻と、第2の時刻とを含み、第1の時刻が、第2のネットワークデバイスが第1のメッセージを送信する時刻であり、第2の時刻が、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、かつ第1のスイッチング時刻が第1の時刻より早期であることをさらに含み、第1のネットワークデバイスによる、第1のメッセージに基づいて位相差を決定することが、第1のネットワークデバイスによる、第1のメッセージおよび第2のメッセージに基づいて位相差を決定することを特に含む。
この実施形態において提供される解決策に基づいて、第1のネットワークデバイスと第2のネットワークデバイスとは、第1のメッセージおよび第2のメッセージの転送を介して位相差の計算精度を向上させる。
第1の態様の別の可能な実装において、第1のネットワークデバイスによる、第1のメッセージに基づいて位相差を決定することの前に、方法は、第1のネットワークデバイスによる、第2のネットワークデバイスによって送信された第2のメッセージを受信することであって、第2のメッセージが、第1の時間差を含み、第1の時間差が、第1の時刻と第2の時刻の間の差であり、第1の時刻が、第2のネットワークデバイスが第1のメッセージを送信する時刻であり、第2の時刻が、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、かつ第1のスイッチング時刻が第1の時刻より早期であることをさらに含み、第1のネットワークデバイスによる、第1のメッセージに基づいて位相差を決定することが、第1のネットワークデバイスによる、第1のメッセージおよび第2のメッセージに基づいて位相差を決定することを特に含む。
この実施形態において提供される解決策に基づいて、第1のネットワークデバイスおよび第2のネットワークデバイスが、第1のメッセージおよび第2のメッセージの転送を介して位相差の計算精度を向上させる。
第1の態様のさらに別の実装において、第1のネットワークデバイスによる、第1のメッセージおよび第2のメッセージに基づいて位相差を決定することは、第1のネットワークデバイスによる、第1のメッセージが受信される第3の時刻を決定すること、第1のネットワークデバイスによる、第3の時刻に基づいて第4の時刻を決定することであって、第4の時刻が、第1のメッセージが受信されるときにスケジュールされた複数の第1のバッファのなかの対応する第1のバッファの第2のスイッチング時刻であり、かつ第2のスイッチング時刻が、第3の時刻より後期であること、および第1のネットワークデバイスによる、位相差を決定することであって、位相差の値が、複数の第1のバッファに関するスイッチングサイクルと第1の値の間の差と等しく、第1の値が、複数の第1のバッファに関するスイッチングサイクルに対する第2の値のモジュロ演算によって戻される値と等しく、かつ第2の値が、第1の時刻と第2の時刻の間の差と第4の時刻と第3の時刻の間の差の合計と等しいことを含む。
任意選択で、第1のメッセージは、第1の時刻と、第2の時刻とを含み、第1の時刻が、第2のネットワークデバイスが第1のメッセージを送信する時刻であり、第2の時刻が、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、かつ第1のスイッチング時刻が、第1の時刻より早期である。
任意選択で、第1のメッセージは、第1の時間差を含み、第1の時間差が、第1の時刻と第2の時刻の間の差であり、第1の時刻が、第2のネットワークデバイスが第1のメッセージを送信する時刻であり、第2の時刻が、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、かつ第1のスイッチング時刻が、第1の時刻より早期である。
第1の態様のさらに別の実装において、第1のネットワークデバイスによる、第1のメッセージに基づいて位相差を決定することは、第1のネットワークデバイスによる、第1のメッセージが受信される第3の時刻を決定すること、第1のネットワークデバイスによる、第3の時刻に基づいて第4の時刻を決定することであって、第4の時刻が、第1のメッセージが受信されるときにスケジュールされた複数の第1のバッファのなかの対応する第1のバッファの第2のスイッチング時刻であり、かつ第2のスイッチング時刻が、第3の時刻より後期であること、および第1のネットワークデバイスによる、位相差を決定することであって、位相差の値が、複数の第1のバッファに関するスイッチングサイクルと第1の値の間の差と等しく、第1の値が、複数の第1のバッファに関するスイッチングサイクルに対する第2の値のモジュロ演算によって戻される値と等しく、かつ第2の値が、第1の時刻と第2の時刻の間の差と第4の時刻と第3の時刻の間の差の合計と等しいことを含む。
第1の態様のさらに別の実装において、第1のネットワークデバイスによる、位相差に基づいて、第1の出口ポート経由で送信される第2のデータパケットをスケジュールすることは、第1のネットワークデバイスによる、位相差および処理遅延に基づいて、第2のデータパケットに関する対応する第1のバッファを決定することであって、複数の第1のバッファが、対応する第1のバッファを含み、かつ処理遅延が、第1のネットワークデバイスによる、第1のデータパケットに基づいて第2のデータパケットを決定するプロセスにおいて生じる遅延であること、第1のネットワークデバイスによる、対応する第1のバッファに第2のデータパケットを記憶すること、および第2のデータパケットが記憶された後の、対応する第1のバッファが第1のネットワークデバイスによってスケジュールされる第1のサイクル内で、第1のネットワークデバイスによる、第1の出口ポート経由で第2のデータパケットを送信することを含む。
第2の態様によれば、パケット転送方法が提供され、方法は、第2のネットワークデバイスによる、第1のメッセージを生成することであって、第1のメッセージが、位相差を決定すべく第1のネットワークデバイスをトリガするのに使用され、かつ位相差が、リンク遅延が考慮された、第1のネットワークデバイスの第1の出口ポートの複数の第1のバッファのうちの1つのバッファのスイッチング時刻と、第2のネットワークデバイスの第2の出口ポートの複数の第2のバッファのうちの1つのバッファのスイッチング時刻の間の位相差であること、および、その後、第2のネットワークデバイスによる、第2のネットワークデバイスの第2の出口ポート経由で第1のネットワークデバイスに第1のメッセージを送信することであって、複数の第1のバッファに関するスイッチングサイクルが、複数の第2のバッファに関するスイッチングサイクルと同一であることを含む。
この実施形態において提供される解決策に基づいて、第1のネットワークデバイスおよび第2のネットワークデバイスが、時間同期なしにデータパケットのキューイングおよび転送を実施する。
第2の態様の可能な実装において、方法は、第2のネットワークデバイスによる、第2のメッセージを生成することであって、第2のメッセージが、第1の時刻と、第2の時刻とを含み、第1の時刻が、第2のネットワークデバイスが第1のメッセージを送信する時刻であり、第2の時刻が、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、かつ第1のスイッチング時刻が、第1の時刻より早期であること、および第2のネットワークデバイスによる、第2のネットワークデバイスの第2の出口ポート経由で第1のネットワークデバイスに第2のメッセージを送信することをさらに含む。
この実施形態において提供される解決策に基づいて、第1のネットワークデバイスおよび第2のネットワークデバイスが、第1のメッセージおよび第2のメッセージの転送を介して位相差の計算精度を向上させる。
第2の態様の別の可能な実装において、方法は、第2のネットワークデバイスによる、第2のメッセージを生成することであって、第2のメッセージが、第1の時間差を含み、第1の時間差が、第1の時刻と第2の時刻の間の差であり、第1の時刻が、第2のネットワークデバイスが第1のメッセージを送信する時刻であり、第2の時刻が、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、かつ第1のスイッチング時刻が、第1の時刻より早期であること、および第2のネットワークデバイスによる、第2のネットワークデバイスの第2の出口ポート経由で第1のネットワークデバイスに第2のメッセージを送信することをさらに含む。
この実施形態において提供される解決策に基づいて、第1のネットワークデバイスおよび第2のネットワークデバイスが、第1のメッセージおよび第2のメッセージの転送を介して位相差の計算精度を向上させる。
前述の第1の態様または第2の態様において、任意選択で、第1のメッセージは、第1のメッセージを識別するための第1の識別子を含み、第2のメッセージは、第2のメッセージを識別するための第2の識別子を含み、第1の識別子は、第2の識別子に対応する。
前述の第1の態様または第2の態様において、任意選択で、第1のメッセージは、巡回オフセット測定メッセージCOMMである。
前述の第1の態様または第2の態様において、任意選択で、第2のメッセージは、巡回オフセットフォローアップメッセージCOFMである。
第3の態様によれば、第1のネットワークデバイスが提供される。第1のネットワークデバイスは、前述の方法において第1のネットワークデバイスの挙動を実施する機能を有する。機能は、ハードウェアに基づいて実施されてよく、または対応するソフトウェアを実行するハードウェアに基づいて実施されてよい。ハードウェアまたはソフトウェアは、前述の機能に対応する1つまたは複数のモジュールを含む。
可能な設計において、第1のネットワークデバイスの構造は、プロセッサと、インタフェースとを含み、かつプロセッサは、第1のネットワークデバイスが前述の方法における対応する機能を実行するのをサポートするように構成される。インタフェースは、第1のネットワークデバイスと第2のネットワークデバイスの間の通信をサポートし、かつ第2のネットワークデバイスから前述の方法において情報または命令を受信するように構成される。第1のネットワークデバイスは、メモリをさらに含んでよい。メモリは、プロセッサに結合され、かつ第1のネットワークデバイスのために必要なプログラム命令およびデータを記憶するように構成される。
別の可能な設計において、第1のネットワークデバイスは、プロセッサと、送信機と、受信機と、ランダムアクセスメモリと、読取り専用メモリと、バスとを含む。プロセッサは、バスを介して送信機、受信機、ランダムアクセスメモリ、および読取り専用メモリに別々に結合される。第1のネットワークデバイスが実行される必要があるとき、基本入出力システムにおけるブートローダ、または読取り専用メモリに組み込まれた埋め込み型システムが、システムを開始させるように起動し、かつ第1のネットワークデバイスを通常の実行状態に入れるように起動するのに使用される。通常の実行状態に入った後、第1のネットワークデバイスは、プロセッサが、第1の態様、または第1の態様の可能な実装のうちのいずれか1つにおける方法を実行するように、ランダムアクセスメモリにおいてアプリケーションプログラムおよびオペレーティングシステムを実行する。
第4の態様によれば、第1のネットワークデバイスが提供される。第1のネットワークデバイスは、メイン制御ボードと、インタフェースボードとを含み、スイッチングボードをさらに含んでよい。第1のネットワークデバイスは、第1の態様、または第1の態様の可能な実装のうちのいずれか1つにおける方法を実行するように構成される。具体的には、第1のネットワークデバイスは、第1の態様、または第1の態様の可能な実装のうちのいずれか1つにおける方法を実行するように構成されたモジュールを含む。
第5の態様によれば、第1のネットワークデバイスが提供される。第1のネットワークデバイスは、コントローラと、第1の転送サブデバイスとを含む。第1の転送サブデバイスは、インタフェースボードを含み、スイッチングボードをさらに含んでよい。第1の転送サブデバイスは、第4の態様においてインタフェースボードの機能を実行するように構成され、第4の態様においてスイッチングボードの機能をさらに実行してよい。コントローラは、受信機と、プロセッサと、送信機と、ランダムアクセスメモリと、読取り専用メモリと、バスとを含む。プロセッサは、バスを介して受信機、送信機、ランダムアクセスメモリ、および読取り専用メモリに別々に結合される。コントローラが実行される必要があるとき、基本入出力システムにおけるブートローダ、または読取り専用メモリに組み込まれた埋め込み型システムが、システムを開始させるように起動し、かつコントローラを通常の実行状態に入れるように起動するのに使用される。通常の実行状態に入った後、コントローラは、プロセッサが、第4の態様におけるメイン制御ボードの機能を実行するように、ランダムアクセスメモリにおいてアプリケーションプログラムおよびオペレーティングシステムを実行する。
第6の態様によれば、コンピュータ記憶媒体が提供される。コンピュータ記憶媒体は、前述の第1のネットワークデバイスによって使用されるプログラム、コード、または命令を記憶するように構成される。プログラム、コード、または命令を実行するとき、プロセッサまたはハードウェアデバイスは、第1の態様における第1のネットワークデバイスの機能またはステップを完了してよい。
第7の態様によれば、第2のネットワークデバイスが提供される。第2のネットワークデバイスは、前述の方法における第2のネットワークデバイスの挙動を実施する機能を有する。機能は、ハードウェアに基づいて実施されてよく、または対応するソフトウェアを実行するハードウェアに基づいて実施されてよい。ハードウェアまたはソフトウェアは、前述の機能に対応する1つまたは複数のモジュールを含む。
可能な設計において、第2のネットワークデバイスの構造は、プロセッサと、インタフェースとを含む。プロセッサは、第2のネットワークデバイスが前述の方法における対応する機能を実行するのをサポートするように構成される。インタフェースは、第2のネットワークデバイスと第1のネットワークデバイスの間の通信をサポートし、かつ前述の方法において第1のネットワークデバイスに情報または命令を送信するように構成される。第2のネットワークデバイスは、メモリをさらに含んでよい。メモリは、プロセッサに結合されるように構成され、かつメモリは、第2のネットワークデバイスのために必要なプログラム命令およびデータを記憶する。
別の可能な設計において、第2のネットワークデバイスは、プロセッサと、送信機と、受信機と、ランダムアクセスメモリと、読取り専用メモリと、バスとを含む。プロセッサは、バスを介して送信機、受信機、ランダムアクセスメモリ、および読取り専用メモリに別々に結合される。第2のネットワークデバイスが実行される必要があるとき、基本入出力システムにおけるブートローダ、または読取り専用メモリに組み込まれた埋め込み型システムが、システムを開始させるように起動し、かつ第2のネットワークデバイスを通常の実行状態に入れるように起動するのに使用される。通常の実行状態に入った後、第2のネットワークデバイスは、プロセッサが、第2の態様、または第2の態様の可能な実装のうちのいずれか1つにおける方法を実行するように、ランダムアクセスメモリにおいてアプリケーションプログラムおよびオペレーティングシステムを実行する。
第8の態様によれば、第2のネットワークデバイスが提供される。第2のネットワークデバイスは、メイン制御ボードと、インタフェースボードとを含み、スイッチングボードをさらに含んでよい。第2のネットワークデバイスは、第2の態様、または第2の態様の可能な実装のうちのいずれか1つにおける方法を実行するように構成される。具体的には、第2のネットワークデバイスは、第2の態様、または第2の態様の可能な実装のうちのいずれか1つにおける方法を実行するように構成されたモジュールを含む。
第9の態様によれば、第2のネットワークデバイスが提供される。第2のネットワークデバイスは、コントローラと、第2の転送サブデバイスとを含む。第2の転送サブデバイスは、インタフェースボードを含み、スイッチングボードをさらに含んでよい。第2の転送サブデバイスは、第8の態様におけるインタフェースボードの機能を実行するように構成され、第8の態様におけるスイッチングボードの機能をさらに実行してよい。コントローラは、受信機と、プロセッサと、送信機と、ランダムアクセスメモリと、読取り専用メモリと、バスとを含む。プロセッサは、バスを介して受信機、送信機、ランダムアクセスメモリ、および読取り専用メモリに別々に結合される。コントローラが実行される必要があるとき、基本入出力システムにおけるブートローダ、または読取り専用メモリに組み込まれた埋め込み型システムが、システムを開始させるように起動し、かつコントローラを通常の実行状態に入れるように起動するのに使用される。通常の実行状態に入った後、コントローラは、プロセッサが、第8の態様におけるメイン制御ボードの機能を実行するように、ランダムアクセスメモリにおいてアプリケーションプログラムおよびオペレーティングシステムを実行する。
第10の態様によれば、コンピュータ記憶媒体が提供される。コンピュータ記憶媒体は、前述の第2のネットワークデバイスによって使用されるプログラム、コード、または命令を記憶するように構成される。プログラム、コード、または命令を実行するとき、プロセッサまたはハードウェアデバイスは、前述の第2の態様における第2のネットワークデバイスの機能またはステップを完了してよい。
第11の態様によれば、ネットワークシステムが提供される。ネットワークシステムは、第1のネットワークデバイスと、第2のネットワークデバイスとを含む。第1のネットワークデバイスは、第3の態様、第4の態様、または第5の態様における第1のネットワークデバイスであり、第2のネットワークデバイスは、第7の態様、第8の態様、または第9の態様における第2のネットワークデバイスである。
前述の解決策によれば、通信ネットワークにおいて、第1のネットワークデバイスが、第2のネットワークデバイスから受信されたメッセージに基づいて位相差を決定し、第1のネットワークデバイスが、位相差を決定するとき、第2のネットワークデバイスから第1のネットワークデバイスまでのリンク遅延を考慮する。さらに、第1のネットワークデバイスは、位相差に基づいて、第1のネットワークデバイスの第1の出口ポート経由で送信されるデータパケットをスケジュールしてよい。このようにして、第1のネットワークデバイスと第2のネットワークデバイスとは、時間同期なしにデータパケットのキューイングおよび転送を実施する。
以下では、特定の実施形態を使用することによって詳細な説明を別々に提供する。
図1は、本出願の実施形態による通信ネットワークの構造の概略図である。図1に示されるとおり、通信ネットワークは、第1のネットワークデバイスと、第2のネットワークデバイスとを含む。可能な実装において、通信ネットワークは、完全に分散されたモデルにおけるタイムセンシティブネットワーキング(time-sensitive networking,TSN)である。完全に分散されたモデルにおけるTSNのネットワークアーキテクチャに関しては、IEEE 802.1Qcc-2018の「Clause 46. Time-Sensitive Networking (TSN) Configuration」における関連する説明を参照されたい。本出願のこの実装において、パケット転送方向は、第2のネットワークデバイスから第1のネットワークデバイスにパケットを送信することである。第2のネットワークデバイスは、第2の出口ポートを含む。第1のネットワークデバイスは、第1の入口ポートと、第1の出口ポートとを含む。第2のネットワークデバイスの第2の出口ポートと第1のネットワークデバイスの第1の出口ポートとは、通信リンク経由で接続される。第2のネットワークデバイスは、第2の出口ポート経由で第1のネットワークデバイスに第1のパケットを送信してよい。通信リンク経由で送信された後、第1のパケットは、第1のネットワークデバイスの第1の入口ポートに達する。第1のネットワークデバイスは、第1の入口ポート経由で第1のパケットを受信してよい。第1のパケットを受信した後、第1のネットワークデバイスは、第1のパケットを処理してよい。その後、第1のネットワークデバイスは、処理された第1のパケットを、第1の出口ポート経由で第1のネットワークデバイスの次のホップのネットワークデバイスに送信してよい。任意選択で、第2のネットワークデバイスは、第2の入口ポートを含んでよい。第2のネットワークデバイスが第2の入口ポートを含む場合、第2のネットワークデバイスは、第2の入口ポート経由で、第2のネットワークデバイスの以前のホップのネットワークデバイスによって送信された第2のパケットを受信してよい。その後、第2のネットワークデバイスは、対応する第1のパケットを獲得すべく第2のパケットを処理する。第1のネットワークデバイスおよび第2のネットワークデバイスは、具体的には、ルータまたはスイッチであってよい。本出願のこの実施形態において、1つの通信リンクが、説明のために例として使用される。第1のネットワークデバイスと第2のネットワークデバイスの間に複数の通信リンクが存在してよいことを理解されたい。言い換えると、第1のネットワークデバイスは、複数の第1の入口ポートを含んでよく、第2のネットワークデバイスは、複数の第2の出口ポートを含んでよい。
図2は、図1に示されるネットワーク構造に基づいて、第2のネットワークデバイスから第1のネットワークデバイスにパケットを送信するプロセスを示す。図2に示されるとおり、上から下まで、合計で4つの水平の長い実線、すなわち、L1、L2、L3、およびL4が示される。L1は、第2のネットワークデバイスの第2の出口ポートにおけるパケットキューイング解除プロセスを示し、L2は、第1のネットワークデバイスの第1の入口ポートにおけるパケットキューイングプロセスを示し、L3は、第1のネットワークデバイス内部のパケット処理プロセスを示し、L4は、第1のネットワークデバイスの第1の出口ポートにおけるパケットキューイング解除プロセスを示す。
第2のネットワークデバイスは、第2の出口ポートのために複数のバッファを設定してよく、複数のバッファの各々が、第2の出口ポートのキューイング解除されたパケットをバッファリングするように構成される。したがって、複数のバッファの各々が、出口ポートバッファと呼ばれてよい。複数のバッファは、第2のネットワークデバイスによって巡回でスケジュールされる。例えば、図2におけるL1によって示されるとおり、第2のネットワークデバイスは、第2の出口ポートのために3つのバッファ、すなわち、バッファa2、バッファb2、およびバッファc2を設定する。各バッファが第2のネットワークデバイスによってスケジュールされるサイクルは、同一であり、Tcである。したがって、Tcは、バッファa2、バッファb2、およびバッファc2に関するスイッチングサイクルと呼ばれてよい。具体的には、T1=0からT1=1までのサイクル内で、第2のネットワークデバイスは、バッファa2をスケジュールし、第2の出口ポートからバッファa2内のパケットを送出し、T1=1より前にバッファa2内のすべてのパケットを送出する(すなわち、バッファa2内のパケットキューを空にする)。T1=0からT1=1までの時間長は、Tcである。T1=1において、第2のネットワークデバイスは、スケジュールされるバッファをバッファa2からバッファb2に切り換える。その後、T1=1からT1=2までのサイクル内で、第2のネットワークデバイスは、バッファb2をスケジュールし、第2の出口ポートからバッファb2内のパケットを送出し、T1=2より前にバッファb2内のすべてのパケットを送出する(すなわち、バッファb2内のパケットキューを空にする)。T1=1からT1=2までの時間長は、Tcである。T1=2において、第2のネットワークデバイスは、スケジュールされるバッファをバッファb2からバッファc2に切り換える。その後、T1=2からT1=3までのサイクル内で、第2のネットワークデバイスは、バッファc2をスケジュールし、第2の出口ポートからバッファc2内のパケットを送出し、T1=3より前にバッファc2内のすべてのパケットを送出する(すなわち、バッファc2内のパケットキューを空にする)。T1=2からT1=3までの時間長は、Tcである。前述の説明によれば、第2のネットワークデバイスによって設定されるバッファは、巡回でスケジュールされる。したがって、T1=3において、第2のネットワークデバイスは、スケジュールされるバッファをバッファc2からバッファa2に切り換える。その後、T1=3からT1=4までのサイクル内で、第2のネットワークデバイスは、バッファa2をスケジュールし、第2の出口ポートからバッファa2内のパケットを送出し、T1=4より前にバッファa2内のすべてのパケットを送出する(すなわち、バッファa2内のパケットキューを空にする)。T1=3からT1=4までの時間長は、Tcである。類比により、バッファa2、バッファb2、およびバッファc2は、巡回でスケジュールされることが可能である。バッファが第2のネットワークデバイスによってサイクル内でスケジュールされないとき、そのことは、そのバッファが第2のネットワークデバイスによって使用されていないことを意味するわけではないことを理解されたい。例えば、T1=1からT1=3までのサイクル内で、バッファa2は、第2のネットワークデバイスによってスケジュールされないが、この時間中、バッファa2は、次回にバッファa2が第2のネットワークデバイスによってスケジュールされるときにバッファa2内のパケットが放出されるようにパケットをバッファリングしてよい。詳細に関しては、後続の実装の説明を参照されたい。本出願のこの実装において、T1の単位は、本出願において限定されない、ミリ秒、マイクロ秒、またはナノ秒を含んでよい。さらに、以上の説明におけるT1の特定の値は、例示的な値である。以上の説明によれば、時点T1に達するといつでも、第2のネットワークデバイスによってスケジュールされるバッファは、切り換えられる。したがって、T1は、バッファa2、バッファb2、およびバッファc2のスイッチング時刻として理解されてよい。言い換えると、スイッチング時刻として、T1は、バッファ(a2、b2、またはc2)のスケジューリングの開始時点と見なされてよく、またはバッファ(a2、b2、またはc2)のスケジューリングの終了時点と見なされてよい。
第2のネットワークデバイスは、第2の出口ポート経由で第1のネットワークデバイスにパケットを送信する。例えば、第2のネットワークデバイスがバッファa2をスケジュールするTc(T1=0からT1=1)内で、第2のネットワークデバイスが、第2の出口ポート経由で第1のネットワークデバイスに第1のデータパケットを送信する。図2に示されるとおり、L1とL2の間の2つの斜めの接続する線によって形成された区域が、第1のデータパケットが送信されることが可能である間隔を示す。具体的には、この区域内で、第1のデータパケットが、第2の出口ポート経由で第2のネットワークデバイスによって送出され、第1の入口ポート経由で第1のネットワークデバイスによって受信される。例えば、T1=0において、第2のネットワークデバイスが、第2の出口ポート経由で第1のデータパケットを送信することを開始する。対応して、T2=1.3において、第1のネットワークデバイスが、第1の入口ポート経由で第1のデータパケットのデータの第1のビットを受信することができる。実際のアプリケーションシナリオにおいて、異なるバッファがスケジュールされるサイクル間の干渉およびジッタを防止すべく、かつデータパケットがサイクル内で送信され、受信されることを確実にすべく、各バッファがスケジュールされる各サイクルは、第1のアイドルサイクルと、第2のアイドルサイクルとをさらに含んでよい。第1のアイドルサイクルの開始時点は、各バッファがスケジュールされるサイクルの開始時点であり、第2のアイドルサイクルの終了時点は、各バッファがスケジュールされるサイクルの終了時点である。第1のアイドルサイクル内、および第2のアイドルサイクル内で、第2のネットワークデバイスは、バッファ内のパケットを送信しない。2つの斜めの接続する線は、第2のネットワークデバイスと第1のネットワークデバイスの間の通信リンクが、図2に示される「最小リンク遅延=1.3Tc」などのリンク遅延を有するために形成される。通信リンクのリンク遅延は、複数の方法を使用することによって獲得されてよい。例えば、第2のネットワークデバイスおよび第1のネットワークデバイスが、PTPに基づいて通信リンクのリンク遅延を測定する。最小リンク遅延は、リンク遅延の複数の測定の後に獲得される最小値として理解されてよい。本出願のこの実装において、リンク遅延は、最小リンク遅延に限定されない。例えば、平均リンク遅延が、リンク遅延として使用されてよく、または特定の測定を介して獲得されるリンク遅延が、リンク遅延として使用されてよい。最小リンク遅延の値(1.3Tc)は、説明の便宜のための例である。
図2のL2は、第1のネットワークデバイスの第1の入口ポートにおけるパケットキューイングの事例を示す。例えば、第2のネットワークデバイスが、第2の出口ポート経由で第1のデータパケットを送信する。第1のネットワークデバイスが、第1の入口ポート経由で第1のデータパケットを受信する。第1のデータパケットが、第1のネットワークデバイスが第1のデータパケットを処理するように、第1のネットワークデバイスのパケットキューに入る。図2のL2において、T2=0.3、T2=1.3、T2=2.3、およびT2=3.3が、T1および最小リンク遅延に基づいて決定される。例えば、最初に、以下の式が存在する。すなわち、T2,offset=最小リンク遅延 mod Tc=1.3Tc mod Tc=0.3である。第1のネットワークデバイスは、第1の出口ポートに対応するスイッチング時刻、すなわち、T4の特定の時点を知る。さらに、第2のネットワークデバイスと第1のネットワークデバイスが、時間に関して同期されるため、第1のネットワークデバイスは、第2のネットワークデバイスの第2の出口ポートに対応するスイッチング時刻、すなわち、T1の特定の時点を決定することができる。第1のネットワークデバイスは、T1およびT2,offsetに基づいて、T2の各時点、例えば、T2=T1+T2,offsetを決定する。ここで、modは、モジュロ演算を表すのに使用される。前述の説明に関して、T2は、T1および最小リンク遅延に基づいて決定される。本出願のこの実装において、T2は、第2のネットワークデバイスと第1のネットワークデバイスの間のデータパケットの転送プロセスについて説明する便宜のために導入される。実際のシナリオにおいて、第1のネットワークデバイスは、T2の存在に関心がない、すなわち、第1のネットワークデバイスは、T2を制御することも、使用する必要もなくてよい。
図2のL3は、第1のネットワークデバイス内部のパケット処理プロセスを示す。例えば、第1のネットワークデバイスが、第1の入口ポート経由で第1のデータパケットを受信した後、第1のネットワークデバイスは、第1のデータパケットを処理する。本出願のこの実装において、処理の具体的な動作は、限定されず、任意の形態の動作を含んでよい。例えば、第1のネットワークデバイスは、第1のデータパケットのヘッダを更新する、または第1のネットワークデバイスは、第1のデータパケットのデータペイロードを更新する、または第1のネットワークデバイスは、第1のデータパケットを、新たなデータパケットを生成する条件として使用する、または第1のネットワークデバイスは、第1のデータパケットを変更されないままに保ち、第1のデータパケットを単にトランスペアレントに送信する。第1のネットワークデバイスによる処理の後、第2のデータパケットが、獲得される。第2のデータパケットは、第1のデータパケットと同一であっても、異なってもよいことを理解されたい。図2のL3において、T3=0.5、T3=1.5、T3=2.5、およびT3=3.5が、T2および最大処理遅延、FMAXに基づいて決定される。例えば、以下の式が存在する。すなわち、T3=T2+FMAXである。最大処理遅延は、処理遅延の複数の測定の後に獲得される最大値として理解されてよい。本出願のこの実装において、処理遅延は、最大リンク遅延に限定されない。例えば、平均処理遅延が、処理遅延として使用されてよく、または特定の測定を介して獲得される処理遅延が、処理遅延として使用されてよい。本出願のこの実装において、T3は、第1のネットワークデバイスにおけるデータパケットの処理プロセスについて説明する便宜のために導入される。実際のシナリオにおいて、T3の存在に関心がない、すなわち、第1のネットワークデバイスは、T3を制御することも、使用することも必要なくてよい。
図2に示されるとおり、L2とL3の間の2つの斜めの接続する線によって形成される区域が、第1のデータパケットが処理されることが可能なサイクルを示す。具体的には、データパケットが、T2=1.3からT2=2.3までの間隔内で第1の入口ポート経由で受信され、対応して、第1のネットワークデバイスが、T3=1.5からT3=2.5までの間隔内で対応する処理を完了し、処理されたデータパケットを第1のネットワークデバイスのバッファ(例えば、バッファa1)に記憶する。例えば、第1のデータパケットは、T2=1.3において第1の入口ポート経由で受信される。第1のデータパケットを受信した後、第1のネットワークデバイスは、第1のデータパケットを処理する。FMAXに基づいて、第1のネットワークデバイスは、T3=1.5において第1のデータパケットの処理を完了して、第2のデータパケットを獲得する。その後、第1のネットワークデバイスは、第1のネットワークデバイのバッファ(例えば、バッファa1)に第2のデータパケットを記憶する。
図2のL4は、第1のネットワークデバイスの第1の出口ポートにおけるパケットキューイング解除のプロセスを示す。第1のネットワークデバイスは、第1の出口ポートのために複数のバッファを設定してよく、複数のバッファの各々が、第1の出口ポートのキューイング解除されたパケットをバッファリングするように構成される。したがって、複数のバッファの各々が、出口ポートバッファと呼ばれてよい。複数のバッファは、第1のネットワークデバイスによって巡回でスケジュールされる。図2のL4において示されるとおり、第1のネットワークデバイスは、第1の出口ポートのために3つのバッファ、すなわち、バッファa1、バッファb1、およびバッファc1を設定する。各バッファが第1のネットワークデバイスによってスケジュールされるサイクルは、同一であり、Tcである。したがって、Tcは、バッファa1、バッファb1、およびバッファc1に関するスイッチングサイクルと呼ばれてよい。具体的には、T4=0からT4=1までのサイクル内で、第1のネットワークデバイスは、バッファa1をスケジュールし、第1の出口ポートからバッファa1内のパケットを送出し、T4=1より前にバッファa1内のすべてのパケットを送出する(すなわち、バッファa1内のパケットキューを空にする)。T4=0からT4=1までの時間長は、Tcである。T4=1において、第1のネットワークデバイスは、スケジュールされるバッファをバッファa1からバッファb1に切り換える。その後、T4=1からT4=2までのサイクル内で、第1のネットワークデバイスは、バッファb1をスケジュールし、第1の出口ポートからバッファb1内のパケットを送出し、T4=2より前にバッファb1内のすべてのパケットを送出する(すなわち、バッファb1内のパケットキューを空にする)。T4=1からT4=2までの時間長は、Tcである。T4=2において、第1のネットワークデバイスは、スケジュールされるバッファをバッファb1からバッファc1に切り換える。その後、T4=2からT4=3までのサイクル内で、第1のネットワークデバイスは、バッファc1をスケジュールし、第1の出口ポートからバッファc1内のパケットを送出し、T4=3より前にバッファc1内のすべてのパケットを送出する(すなわち、バッファc1内のパケットキューを空にする)。T4=2からT4=3までの時間長は、Tcである。前述の説明によれば、第1のネットワークデバイスによって設定されるバッファは、巡回でスケジュールされる。したがって、T4=3において、第1のネットワークデバイスは、スケジュールされるバッファをバッファc1からバッファa1に切り換える。その後、T4=3からT4=4までのサイクル内で、第1のネットワークデバイスは、バッファa1をスケジュールし、第1の出口ポートからバッファa1内のパケットを送出し、T4=4より前にバッファa1内のすべてのパケットを送出する(すなわち、バッファa1内のパケットキューを空にする)。T4=3からT4=4までの時間長は、Tcである。類比により、バッファa1、バッファb1、およびバッファc1は、巡回でスケジュールされることが可能である。本出願のこの実装において、T4の単位は、本出願において限定されない、ミリ秒、マイクロ秒、またはナノ秒を含んでよい。さらに、以上の説明におけるT4の特定の値は、例示的な値である。以上の説明によれば、特定の時点T4に達するといつでも、第1のネットワークデバイスによってスケジュールされるバッファは、切り換えられる。したがって、T4は、バッファa1、バッファb1、およびバッファc1のスイッチング時刻として理解されてよい。言い換えると、スイッチング時刻として、T4は、バッファ(a 1 、b 1 、またはc 1 )のスケジューリングの開始時点と見なされてよく、またはバッファ(a 1 、b 1 、またはc 1 )のスケジューリングの終了時点と見なされてよい。図2におけるL1の前述の説明を参照すると、第2のネットワークデバイスの第2の出口ポートの複数のバッファに関するスイッチングサイクルと第1のネットワークデバイスの第1の出口ポートの複数のバッファに関するスイッチングサイクルとは、同一であり、ともにTcである。さらに、第2のネットワークデバイスの第2の出口ポートのための複数のバッファのスイッチング時刻と第1のネットワークデバイス第1の出口ポートのための複数のバッファのスイッチング時刻とは、同期される、すなわち、T1とT4とは、同期される。
前述の説明に関して、第1のネットワークデバイスが、第1のデータパケットの処理を完了して、第2のデータパケットを獲得した後、第1のネットワークデバイスは、第1のネットワークデバイスのバッファに第2のデータパケットを記憶する。例えば、図2を参照すると、T4=0からT4=1までのサイクル内で、第1のネットワークデバイスは、バッファa1をスケジュールする。このため、T4=1において、バッファa1に記憶されたすべてのパケットが、第1の出口ポート経由で送出されており、すなわち、バッファa1内のパケットキューは、空にされている。バッファb1およびバッファc1が、それぞれ、T4=1からT4=2まで、およびT4=2からT4=3までの2つのサイクル内で第1のネットワークデバイスによってスケジュールされ、バッファa1は、第1のネットワークデバイスによってスケジュールされない。したがって、T4=1からT4=3まで、バッファa1は、バッファa1を再スケジュールするとき、第1のネットワークデバイスがバッファa1内のパケットを送信するように、第1のネットワークデバイスによって処理されるパケットを記憶するのに使用されることが可能である。実際のアプリケーションシナリオにおいて、T1とT4とは同期され、かつ第1のネットワークデバイスと第2のネットワークデバイスとは同一のTcを有するものの、図2におけるL4におけるTABによって示されるとおり、第1のネットワークデバイスと第2のネットワークデバイスの間に位相差が存在する。したがって、TABのサイクル内で、バッファa1は、パケットをバッファリングせず、バッファa1のストレージスペースは、空のままである。TABのサイクルの終了(TABの終了時点は、TAB間隔の右側の長い破線である)後、バッファa1が、パケットをバッファリングすることを開始してよい。図2をさらに参照すると、L3によれば、第1のデータパケットは、T3=1.5からT3=2.5までに第1のネットワークデバイスによって必然的に処理され、第2のデータパケットが、生成される。明らかに、T3=1.5からT3=2.5までのサイクルは、T4=1からT4=3までのサイクルに入り、したがって、第2のデータパケットは、バッファa1によって受信され、記憶される。さらに、第2のデータパケットがバッファa1によって記憶される最終時点は、T3=2.5である。前述の説明に関して、T1=0からT1=1までのサイクル内で第2のネットワークデバイスによって送信されるデータパケットは、T3=1.5からT3=2.5までのサイクル内で(またはT3=2.5より前に)バッファa1に入ってよい。T4=2からT4=3までのサイクル内で、バッファc1が、第1のネットワークデバイスによってスケジュールされている。したがって、T4=3より前に、バッファa1が、T1=0からT1=1までのサイクル内で第2のネットワークデバイスによって送信されたすべてのデータパケットをバッファリングしている場合でさえ、これらのデータパケットは、第1の出口ポート経由で送信されない。したがって、T4=2からT4=3までのサイクル内で、バッファa1内のすべてのデータパケット(第2のデータパケット)が、第1の出口ポートの出口キューに到達し、送信されるべく待機している。その後、時点T4=3において、第1のネットワークデバイスのバッファが、切り換えられる。T4=3からT4=4までのサイクル内で、バッファa1が、第1のネットワークデバイスによって再スケジュールされ、バッファa1内のデータパケット(第2のデータパケット)が、第1の出口ポート経由で送出される。
図2に示される実装を参照すると、第1のネットワークデバイスと第2のネットワークデバイスとが、正確な時間同期を実行する必要がある。例えば、第2のネットワークデバイスのバッファa2がスケジュールされる対応するサイクルは、T1=0からT1=1までであり、バッファb2がスケジュールされる対応するサイクルは、T1=1からT1=2までであり、バッファc2がスケジュールされる対応するサイクルは、T1=2からT1=3までである。対応して、第1のネットワークデバイスのバッファa1がスケジュールされる対応するサイクルは、T4=0からT4=1までであり、バッファb1がスケジュールされる対応するサイクルは、T4=1からT4=2までであり、バッファc1がスケジュールされる対応するサイクルは、T4=2からT4=3までである。したがって、正確な時間同期が、ネットワーク展開の困難および費用を増大させる。さらに、通信ネットワークの伝送パス上のクロックジッタが存在する。伝送パス上に複数のネットワークデバイスが存在することがある。例えば、伝送パス上にネットワークデバイス1、ネットワークデバイス2、ネットワークデバイス3、ネットワークデバイス4、およびネットワークデバイス5が存在する。図2において説明される方法によれば、ネットワークデバイス1、ネットワークデバイス2、ネットワークデバイス3、ネットワークデバイス4、およびネットワークデバイス5は、正確な時間同期を実行する必要がある。クロックジッタは、伝送パス上のすべてのネットワークデバイス上で生じ、データパケットが伝送パス上で送信されるにつれて蓄積する。例えば、データパケットがネットワークデバイス5に到達したとき、ネットワークデバイス1からネットワークデバイス4までのクロックジッタが蓄積されている。したがって、通信ネットワークにおける正確な時間同期中、クロックジッタの蓄積もまた、考慮される必要があり、このことが、正確な時間同期を実施することの困難を不可避に増大させる。
図3は、図1に示されるネットワーク構造に基づいて、第2のネットワークデバイスから第1のネットワークデバイスにパケットを送信するプロセスを示す。図3に示される実装プロセスから、L1における各バッファのスイッチング時刻が、L4における対応する各バッファのスイッチング時刻とは異なることが見てとられることが可能である。したがって、第1のネットワークデバイスと第2のネットワークデバイスとは、時間に関して同期されない、すなわち、第1のネットワークデバイスと第2のネットワークデバイスとは、時間同期なしにデータパケットのキューイングおよび転送を実施することができる。図2と同様に、図3において、上から下まで、合計で4つの水平の長い実線、すなわち、L1、L2、L3、およびL4が示される。L1は、第2のネットワークデバイスの第2の出口ポートにおけるパケットキューイング解除プロセスを示し、L2は、第1のネットワークデバイスの第1の入口ポートにおけるパケットキューイングプロセスを示し、L3は、第1のネットワークデバイス内部のパケット処理プロセスを示し、L4は、第1のネットワークデバイスの第1の出口ポートにおけるパケットキューイング解除プロセスを示す。
図3に示されるとおり、第2のネットワークデバイスが、第2の出口ポートのために3つのバッファ、すなわち、バッファa2、バッファb2、およびバッファc2を設定する。各バッファが第2のネットワークデバイスによってスケジュールされるサイクルは、同一であり、Tcである。対応して、第1のネットワークデバイスが、第1の出口ポートのために3つのバッファ、すなわち、バッファa1、バッファb1、およびバッファc1を設定する。各バッファが第1のネットワークデバイスによってスケジュールされるサイクルは、同一であり、Tcである。図3において、バッファa2、バッファb2、バッファc2、バッファa1、バッファb1、およびバッファc1をスケジュールすることの実装に関しては、図2に関する前述の説明を参照されたく、詳細がここで再び説明されることはない。図2と図3の間の違いは、第1のネットワークデバイスと第2のネットワークデバイスとが時間に関して同期されないことにある。具体的には、図3におけるL4を参照すると、T4=0.1からT4=1.1までのサイクル内で、第1のネットワークデバイスが、バッファa1をスケジュールし、T4=1.1からT4=2.1のサイクル内で、第1のネットワークデバイスが、バッファb1をスケジュールし、T4=2.1からT4=3.1のサイクル内で、第1のネットワークデバイスが、バッファc1をスケジュールし、T4=3.1からT4=4.1のサイクル内で、第1のネットワークデバイスが、バッファa1を再スケジュールする。以下では、図3および図4を参照して、第1のネットワークデバイスと第2のネットワークデバイスとが、時間同期なしにデータパケットのキューイングおよび転送を実施することができる特定の実装について具体的に説明する。
図4は、本出願の実施形態によるパケット転送方法のフローチャートである。図4における方法は、図3に示されるパケット転送プロセスを実施すべく図1に示されるネットワーク構造に適用されることが可能である。具体的には、方法は、以下のステップを含む。
S101:第2のネットワークデバイスが、第1のメッセージを生成する。
S102:第2のネットワークデバイスが、第2のネットワークデバイスの第2の出口ポート経由で第1のネットワークデバイスに第1のメッセージを送信する。
S103:第1のネットワークデバイスが、第2のネットワークデバイスの第2の出口ポート経由で第2のネットワークデバイスによって送信された第1のメッセージを受信し、第1のメッセージが、位相差を測定するのに使用され、かつ位相差が、リンク遅延が考慮された、第1のネットワークデバイスの第1の出口ポートの複数の第1のバッファのうちの1つのバッファのスイッチング時刻と、第2のネットワークデバイスの第2の出口ポートの複数の第2のバッファのうちの1つのバッファのスイッチング時刻の間の位相差であり、リンク遅延が、第2のネットワークデバイスから第1のネットワークデバイスまでのリンク遅延である。
図3に示される実装において、各バッファによるリソースの使用が限度を超えないようにすべく、通信ネットワークは、通信ネットワークにおける通信リンクを通るデータトラフィックフローを計画する必要がある。例えば、バッファa2をスケジュールするサイクル内で、第2のネットワークデバイスが、第2の出口ポート経由で第1のデータパケットを送出する。第1のネットワークデバイスが、第1のデータパケットに基づいて対応する第2のデータパケットを獲得する。その後、第1のネットワークデバイスは、いずれのバッファ(バッファa1、b1、またはc1)が第2のデータパケットが送信されるサイクル内でスケジュールされるかを決定する必要がある。複数の第1のデータパケットが存在する場合、また、複数の対応する第2のデータパケットも存在する。第1のネットワークデバイスのバッファ(例えば、バッファa1)が第2のデータパケットをバッファリングするのに使用されるとき、バッファa1がすべての第2のデータパケットをバッファリングした後、バッファリングされた第2のデータパケットは、バッファa1をスケジュールするサイクルが到来したときに送信されることを開始する。例えば、バッファa2をスケジュールするサイクル内で、第2のネットワークデバイスが、第2の出口ポート経由で10の第1のデータパケットを送出する(10の第1のデータパケットは、バッファa2をスケジュールするサイクル内で送信されるすべてのデータパケットである)。第1のネットワークデバイスが、10の第1のデータパケットに基づいて対応する10の第2のデータパケットを獲得する。その後、第1のネットワークデバイスは、バッファ(例えば、バッファa1)に10の第2のデータパケットをバッファリングする。第1のネットワークデバイスが、すべての10の第2のデータパケットがバッファa1にバッファリングされたことを決定したとき、バッファリングされた10の第2のデータパケットは、バッファa1をスケジュールするサイクルが到来したとき、送信されることを開始する。前述の方法を実施すべく、第1のネットワークデバイスは、位相差T AB に基づいて、第2のネットワークデバイスによってスケジュールされたバッファa 2 から送信された第1のデータパケットを受信することを決定する必要があり、かつ第1のネットワークデバイスは、位相差TABに基づいて、第2のデータパケットをバッファリングするため、および送信するための対応するバッファを決定する必要がある。図3の実装によれば、本出願のこの実装は、位相差TABを決定し、その結果、第1のネットワークデバイスと第2のネットワークデバイスとが、時間同期なしにデータパケットのキューイングおよび転送を実施することを確実にする実装を提案する。言い換えると、第1のネットワークデバイスと第2のネットワークデバイスとが時間同期のために構成されるかどうかにかかわらず、データパケットのキューイングおよび転送は、影響を受けることがない。
図3に示される実装において、以下の2つのタイプのメッセージ、すなわち、第1のメッセージおよび第2のメッセージが、定義されてよい。第1のメッセージと第2のメッセージとはともに、位相差TABを決定するのに使用される。位相差TABは、リンク遅延が考慮された、第1のネットワークデバイスの第1の出口ポートの複数の第1のバッファのうちの1つのバッファのスイッチング時刻と、第2のネットワークデバイスの第2の出口ポートの複数の第2のバッファのうちの1つのバッファのスイッチング時刻の間の位相差であり、リンク遅延が、第2のネットワークデバイスから第1のネットワークデバイスまでのリンクの遅延である。複数の第1のバッファは、図3におけるバッファa1、バッファb1、およびバッファc1であってよく、複数の第2のバッファは、図3におけるバッファa2、バッファb2、およびバッファc2であってよい。第1のネットワークデバイスの第1の出口ポートの複数の第1のバッファのスイッチング時刻は、図3におけるT4であってよく、第2のネットワークデバイスの第2の出口ポートの複数の第2のバッファのスイッチング時刻は、図3におけるT1であってよい。対応して、位相差TABは、リンク遅延が考慮された、T4とT1の間の位相差と見なされてよい。図3によれば、スイッチング時刻T4は、T4=0.1、T4=1.1、T4=2.1、T4=3.1、およびT4=4.1を含み、スイッチング時刻T1は、T1=0、T1=1、T1=2、T1=3、およびT1=4を含む。前述の説明によれば、T4のスイッチングサイクルとT1のスイッチングサイクルとはともにTcであるため、T4の値が以上の5つの値のいずれとして指定されるか、およびT1の値が以上の5つの値のいずれとして指定されるかにかかわらず、最終的に計算される位相差TABは、同一である。例えば、T4=1.1とT1=1の間の位相差は、T4=3.1とT1=1の間の位相差と同一である。本出願のこの実装において決定される位相差TABは、リンク遅延が考慮された位相差である。具体的には、リンク遅延は、位相差TABを計算するプロセスにおいて考慮される。リンク遅延は、第2のネットワークデバイスから第1のネットワークデバイスまでのリンクの遅延、すなわち、第2のネットワークデバイスが第1のネットワークデバイスにパケットを送信するときに、パケットが第2のネットワークデバイスと第1のネットワークデバイスの間のリンクを通過するにつれて生じる遅延である。
具体的には、第1のメッセージは、例えば、サイクルオフセット測定メッセージ(cycle offset measurement message,COMM)であり、第2のメッセージは、例えば、サイクルオフセットフォローアップメッセージ(cycle offset follow-up message,COFM)である。可能な実装において、第2のネットワークデバイスは、第1のネットワークデバイスに第1のメッセージおよび第2のメッセージを送信する。別の可能な実装において、第2のネットワークデバイスは、第1のネットワークデバイスに第1のメッセージを送信するが、第1のネットワークデバイスに第2のメッセージを送信することはしない。以下では、その2つの実装について別々に説明し、後続の説明において、COMMおよびCOFMは、説明のための例として使用される。
可能な実装において、第2のネットワークデバイスは、第1のネットワークデバイスにCOMMおよびCOFMを送信する。具体的には、第2のネットワークデバイスは、COMMを生成し、COMMは、位相差TABを測定するのに使用される。任意選択で、COMMは、第1の識別子を含み、第1の識別子は、COMMを別のCOMMから区別するように、COMMを識別するのに使用される。COMMを生成した後、第2のネットワークデバイスは、第2のネットワークデバイスの第2の出口ポート経由で第1のネットワークデバイスにCOMMを送信する。図3に示される「第1のメッセージ」を参照すると、第2のネットワークデバイスが、T1=0からT1=1までのサイクル内でバッファa2をスケジュールする。対応して、第2のネットワークデバイスは、T1=0からT1=1のサイクル内でCOMMを送信する。COMMは、第2のネットワークデバイスが第1のデータパケットを送信するようにバッファa2をスケジュールする一方で、第1のデータパケットと一緒に第1のネットワークデバイスに送信されてよい。無論、COMMは、第1のデータパケットと一緒に送信されなくてよく、別々に送信されてよい。例えば、COMMは、第2のネットワークデバイスが第1のネットワークデバイスにデータパケットを送信するより前に送信される。COMMを送信した後、第2のネットワークデバイスは、第1の時刻および第2の時刻を記録する。第1の時刻は、図3におけるTTmによって示されるとおり、第2のネットワークデバイスがCOMMを送信する時刻である。第2の時刻は、COMMが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、第1のスイッチング時刻は、第1の時刻より早期である。図3に示されるとおり、第2のネットワークデバイスは、バッファa2のスケジューリング中にCOMMを送信し、したがって、第2の時刻は、図3におけるTSa、すなわち、T1=0である。
COMMを送信した後、第2のネットワークデバイスは、COFMを生成する。任意選択で、COFMは、第2の識別子を含み、第2の識別子は、COFMを識別するのに使用され、かつ第2の識別子は、第1の識別子に対応する。第2の識別子が第1の識別子に対応することは、第2の識別子が第1の識別子と同一であること、または第2の識別子と第1の識別子の間に対応関係が存在することを意味する。第2の識別子および第1の識別子に基づいて、第1のネットワークデバイスは、COMMとCOFMとが関連付けられたメッセージのペアであることを決定してよい。無論、COMMおよびCOFMは、それぞれ、第1の識別子および第2の識別子を含まなくてよい。このため、第1のネットワークデバイスがCOFMを受信した後、COFMと、COFMが受信される前に受信された最新のCOMMとは、デフォルトで、関連付けられたメッセージのペアを形成する。さらに、COFMは、第1の時刻TTmと、第2の時刻TSaとを含む、またはCOFMは、第1の時刻TTmと第2の時刻TSaの間の差、すなわち、TTm-TSaに対応する値を含む。
対応して、第1のネットワークデバイスは、第2のネットワークデバイスの第2の出口ポート経由で第2のネットワークデバイスによって送信されるCOMMおよびCOFMを受信する。具体的には、COMMを受信した後、第1のネットワークデバイスは、COMMに基づいて第3の時刻を決定し、第3の時刻は、図3におけるTRmによって示されるとおり、第1のネットワークデバイスがCOMMを受信する時刻である。TRmは、第1のネットワークデバイスがCOMMのデータの第1のビット(bit)を受信する時刻であってよく、またはTRmは、第1のネットワークデバイスがCOMMのすべての内容を受信する時刻であってよい。第3の時刻を決定した後、第1のネットワークデバイスは、第3の時刻に基づいて第4の時刻を決定する。第4の時刻は、COMMが受信されるときにスケジュールされた複数の第1のバッファのなかの対応する第1のバッファの第2のスイッチング時刻であり、第2のスイッチング時刻は、第3の時刻より後期である。図3に示されるとおり、第1のネットワークデバイスは、デバイス自らのT4の各スイッチング時刻を知り、第1のネットワークデバイスは、COMMが受信されるときにスケジュールされた第1のネットワークデバイスのバッファb1を決定することができる。したがって、第1のネットワークデバイスは、第3の時刻に基づいて、T4=2.1を第4の時刻、すなわち、図3におけるTSbとして決定する。したがって、第1のネットワークデバイスは、第3の時刻TRmおよび第4の時刻TSbを獲得する。さらに、COFMを受信した後、第1のネットワークデバイスは、COFM内でTTmおよびTSaを獲得することができ、またはCOFM内でTTm-TSaに対応する値を獲得することができる。
別の可能な実装において、第2のネットワークデバイスは、第1のネットワークデバイスにCOMMを送信するが、第1のネットワークデバイスにCOFMを送信することはしない。前述の実装から区別するべく、この実装におけるCOMMは、COMM_1によって表される。COMM_1を生成して、送信するのに第2のネットワークデバイスによって使用される機構に関しては、前述の実装を参照されたく、詳細がここで再び説明されることはない。この実装においてCOMM_1によって搬送される内容は、前述の実装においてCOMMによって搬送される内容とは異なる。COFMは、この実装において送信されないため、COFM内の情報は、COMM_1内で搬送されてよい。言い換えると、COMM_1は、第1の時刻TTmと、第2の時刻TSaとを含む、またはCOMM_1は、TTm-TSaに対応する値を含む。第1の時刻TTmおよび第2の時刻TSaの説明に関しては、前述の実装を参照されたい。この実装において、第1の時刻TTmは、第2のネットワークデバイスによって記録されるCOMM_1の実際の送信時刻ではなく、パケット処理に関する第2のネットワークデバイスのハードウェア条件に基づいて第2のネットワークデバイスによって計算される推定された値であることに留意されたい。
第1のネットワークデバイスが、COMM_1を受信する。第1のネットワークデバイスによってCOMM_1を受信することの実装に関しては、第1のネットワークデバイスによってCOMMを受信することの前述の実装を参照されたく、詳細がここで説明されることはない。COMM_1を受信した後、第1のネットワークデバイスは、COMM_1に基づいて第3の時刻TRmおよび第4の時刻TSbを決定してよい。第1のネットワークデバイスによって第3の時刻TRmおよび第4の時刻TSbを決定する実装に関しては、前述の実装を参照されたい。さらに、COMM_1を受信した後、第1のネットワークデバイスは、COMM_1内でTTmおよびTSaを獲得することができ、またはCOMM_1内でTTm-TSaに対応する値を獲得することができる。
本出願のこの実装において、第1のメッセージが第2のネットワークデバイスから第1のネットワークデバイスにリンク上で送信されるときに生じる遅延は、第1のデータパケットがリンク上で送信されるときに生じる遅延と同一である。
S104:第1のネットワークデバイスが、第1のメッセージに基づいて位相差を決定し、複数の第1のバッファに関するスイッチングサイクルが、複数の第2のバッファに関するスイッチングサイクルと同一であり、複数の第1のバッファが、第1のネットワークデバイスによって巡回でスケジュールされ、かつ複数の第2のバッファが、第2のネットワークデバイスによって巡回でスケジュールされる。
前述の説明に関して、第1のネットワークデバイスが、前述の実装のCOMM_1を受信した場合、第1のネットワークデバイスは、COMM_1に基づいて位相差TABを決定する。第1のネットワークデバイスが、前述の実装のCOMMおよびCOFMを受信した場合、第1のネットワークデバイスは、COMMおよびCOFMに基づいて位相差TABを決定する。さらに、前述の説明に関して、第2のネットワークデバイスがバッファa2、b2、およびc2をスケジュールするスイッチングサイクルは、Tcであり、第1のネットワークデバイスがバッファa1、b1、およびc1をスケジュールするスイッチングサイクルもまた、Tcである。したがって、第1のネットワークデバイスのバッファに関するスイッチングサイクルは、第2のネットワークデバイスのバッファに関するスイッチングサイクルと同一である。言い換えると、第1のネットワークデバイスのバッファのスイッチング周波数は、第2のネットワークデバイスのバッファのスイッチング周波数と同一である。さらに、バッファa1、b1、およびc1は、第1のネットワークデバイスによって巡回でスケジュールされ、バッファa2、b2、およびc2は、第2のネットワークデバイスによって巡回でスケジュールされる。
例えば、第1のネットワークデバイスが、位相差TABを決定し、位相差TABの値が、複数の第1のバッファに関するスイッチングサイクルと第1の値の間の差と等しく、第1の値が、複数の第1のバッファに関するスイッチングサイクルに対する第2の値のモジュロ演算によって戻される値と等しく、第2の値が、第1の時刻と第2の時刻の間の差と第4の時刻と第3の時刻の間の差の合計と等しい。具体的には、このことは、式1において示される。
TAB=Tc-(((TTm-TSa)+(TSb-TRm)) mod Tc) 式1
ここで、複数の第1のバッファに関するスイッチングサイクルは、Tcであり、第1の値は、((TTm-TSa)+(TSb-TRm)) mod Tcであり、第2の値は、(TTm-TSa)+(TSb-TRm)であり、modは、モジュロ演算を表す。
第1のネットワークデバイスが、位相差TABを使用することによって、第2のネットワークデバイスから受信されるデータトラフィックをスケジュールすることができ、その結果、第1のネットワークデバイスと第2のネットワークデバイスの間で時間同期なしにデータトラフィックのキューイングおよび転送を実施する。第2のネットワークデバイスと第1のネットワークデバイスの間に複数のリンクが存在してよいことに留意されたい。例えば、第2のネットワークデバイスの出口ポート21が、リンク1経由で第1のネットワークデバイスの入口ポート11と通信し、第2のネットワークデバイスの出口ポート22が、リンク2経由で第1のネットワークデバイスの入口ポート12と通信し、第2のネットワークデバイスの出口ポート23が、リンク3経由で第1のネットワークデバイスの入口ポート13と通信する。第2のネットワークデバイスおよび第1のネットワークデバイスは、前述の実装により、それぞれ、リンク1、リンク2、およびリンク3に関する位相差を決定してよい。具体的には、位相差TAB1が、リンク1に関して決定され、位相差TAB2が、リンク2に関して決定され、位相差TAB3が、リンク3に関して決定される。
S105:第1のネットワークデバイスが、位相差に基づいて、第1の出口ポート経由で送信される必要のある第2のデータパケットをスケジュールし、第2のデータパケットが、第1のデータパケットに基づいて第1のネットワークデバイスによって獲得されるデータパケットであり、第1のデータパケットが、第2のネットワークデバイスの第2の出口ポートから第1のネットワークデバイスによって受信されるデータパケットである。
前述の説明を参照して、図3を参照すると、第2のネットワークデバイスと第1のネットワークデバイスとは、時間に関して同期されない、すなわち、T4とT1とは、同期されない。例えば、第2のネットワークデバイスが、バッファa2をスケジュールするサイクル(T1=0からT1=1)内で第1のデータパケットを送信する。複数の第1のデータパケットが存在する。図3に示されるとおり、L1とL2の間の2つの斜めの接続する線(T1=0からT2=1.3までの斜めの線、およびT1=1からT2=2.3までの斜めの線)によって形成される区域が、第1のデータパケットが送信されることが可能な間隔を示す。具体的には、この区域内で、第1のデータパケットは、第2の出口ポート経由で第2のネットワークデバイスによって送信され、第1の入口ポート経由で第1のネットワークデバイスによって受信される。図3におけるL2を参照すると、第1のネットワークデバイスが、T2=1.3からT2=2.3のサイクル内で第1の入口ポート経由で第1のデータパケットを受信する。このようにして、第1のデータパケットは、第1のネットワークデバイスが第1のデータパケットを処理するように第1のネットワークデバイスのパケットキューに入る。
図3におけるL2の値T2は、図2におけるものとは異なる方法で決定される。具体的には、図3を参照すると、第2のネットワークデバイスと第1のネットワークデバイスとは、時間に関して同期されない、すなわち、T1とT4とは、同期されない。したがって、第1のネットワークデバイスは、T1の各時点の値を決定するのにT4の各時点の値に依拠することができない。しかし、前述の説明を参照して、第1のネットワークデバイスは、位相差TABを計算することができる。さらに、図3において、位相差TABの計算において、第2のネットワークデバイスから第1のネットワークデバイスまでのリンクの遅延は、考慮されている。したがって、L2におけるT2は、T4および位相差TABに基づいて決定されてよく、すなわち、T2=T4+TABである。均等なこととして、L2におけるT2は、代替として、T4、(1)、および(2)に基づいて決定されてよく、すなわち、T2=T4-(TTm-TSa)+(TSb-TRm)である。さらに、図3におけるL3におけるT3を決定する方法に関しては、図2におけるL3におけるT3を決定する方法を参照されたく、詳細がここで説明されることはない。同様に、本出願のこの実装において、T2およびT3は、第2のネットワークデバイスと第1のネットワークデバイスの間のデータパケットの転送プロセスを説明する便宜のために導入される。実際のシナリオにおいて、第1のネットワークデバイスは、T2およびT3の存在に関心がない、すなわち、第1のネットワークデバイスは、T2およびT3を制御することも、使用することもしなくてよい。
第1のネットワークデバイスが、第1の入口ポート経由で第1のデータパケットを受信した後、第1のネットワークデバイスは、第1のデータパケットを処理する。図3のL3は、第1のデータパケットを処理するサイクルを示し、最大処理遅延FMAXの説明については、図2における実施形態における説明を参照されたく、詳細がここで説明されることはない。L2とL3の間の2つの斜めの接続する線によって形成された区域が、第1のデータパケットが処理されることが可能なサイクルを示す。具体的には、データパケットが、T2=1.3からT2=2.3までの間隔内で第1の入口ポート経由で受信され、対応して、第1のネットワークデバイスが、対応する第2のデータパケットを獲得するようにT3=1.5からT3=2.5までの間隔内で対応する処理を完了し、第1のネットワークデバイスのバッファに第2のデータパケットを記憶する。複数の第2のデータパケットが存在する。
図3におけるL4を参照して、前述の説明に関し、第2のネットワークデバイスが、T1=0からT1=1までのサイクル内で、位相差TABの計算と関係する第1のメッセージおよび第2のメッセージを送信する。式1によれば、TTm-TSaの結果がマップされるL4上の位置が、図における(1)によって示され、TSb-TRmの結果がマップされるL4の位置が、図における(2)によって示される。対応して、計算された位相差TABがマップされるL4上の位置が、図における「TAB」、すなわち、T4=1.1からT2=1.3までの対応する時間の長さによって示される。L4上に示されるTABの位置は、単に例示のためであり、第1のメッセージおよび第2のメッセージに基づいてTABが計算されたとき、TABのもたらされる位置は、TABがT4=1.1からT2=1.3までの間隔内に必然的に入ることを示さないことを理解されたい。
前述の説明によれば、第1のネットワークデバイスは、T3=1.5からT3=2.5までの間隔内で第1のデータパケットの対応する処理を完了し、対応する第2のデータパケットを獲得する。第1のネットワークデバイスは、すべての第2のデータパケットを獲得した後に初めて、すべての第2のデータパケットを第1のネットワークデバイスのバッファにバッファリングするということではないことを理解されたい。第1のネットワークデバイスが第2のデータパケットを獲得するたびに、第1のネットワークデバイスは、第2のデータパケットが送信されるべく待機する第1のネットワークデバイスのバッファキューに第2のデータパケットをバッファリングする。したがって、第1のネットワークデバイスによる第1のデータパケットの処理、および第1のネットワークデバイスによる第2のデータパケットのバッファリングは、並行に実行される。したがって、第1のネットワークデバイスによる第2のデータパケットをバッファリングするサイクルもまた、T3=1.5からT3=2.5までの間隔に入る。バッファリングするアクションの期間が考慮される場合、第2のデータパケットをバッファリングするサイクルの終了時刻は、T3=2.5よりわずかに後期であってよい。しかし、そのような誤差は、本出願の技術的解決策の実装に影響を及ぼさない。したがって、本出願のこの実装の説明は、バッファリングするアクションによってもたらされる遅延を無視する。
図3におけるL4を参照すると、T4=0.1からT4=1.1までのサイクル内で、第1のネットワークデバイスが、バッファa1をスケジュールする。バッファa1が、送信されるべきデータパケットを記憶する場合、第1のネットワークデバイスは、T4=0.1からT4=1.1までのサイクル内で第1の出口ポート経由でこれらのデータパケットを送信する。さらに、T4=1.1において、バッファa1に記憶されたすべてのデータパケットが、第1の出口ポート経由で送出されている、すなわち、バッファa1内のパケットキューは、空にされている。バッファb1およびバッファc1が、それぞれ、T4=1.1からT4=2.1まで、およびT4=2.1からT4=3.1までの2つのサイクル内で第1のネットワークデバイスによってスケジュールされ、バッファa1は、2つのサイクル内で第1のネットワークデバイスによってスケジュールされない。図3に示される実装において、第1のネットワークデバイスが、位相差TAB、および第1のネットワークデバイスの内部最大処理遅延FMAXに基づいて、第2のデータパケットがバッファリングされるべきバッファを決定してよい。具体的には、第1のネットワークデバイスは、TAB+FMAXに対応するサイクルを決定し、すなわち、TAB+FMAXに対応するサイクルは、T4=1.1からT3=1.5までのサイクルである。第1のネットワークデバイスは、T4=1.1からT4=2.1までのサイクル内でバッファb1をスケジュールすべきことを知ることができる。したがって、第1のネットワークデバイスは、TAB+FMAXに対応するサイクルがバッファb1がスケジュールされる開始時刻(T4=1.1)を超えていることを決定し、第1のネットワークデバイスは、第2のデータパケットをバッファリングするのにバッファb1を使用しない。さらに、第1のデータパケットは、バッファa2をスケジュールするサイクル(T1=0からT1=1まで)内で第2のネットワークデバイスによって送信され、このサイクルの長さは、Tcである。言い換えると、第2のネットワークデバイスが第1のデータパケットを送信する最も早期の限度時刻および最も後期の限度時刻は、それぞれ、T1=0およびT1=1である。対応して、第1のネットワークデバイスが第1のデータパケットを処理するサイクルの長さもまた、Tc(T3=1.5からT3=2.5までの間隔)である。言い換えると、第1のネットワークデバイスがすべての第1のデータパケットを処理する最も後期の限度時刻は、T3=2.5である。第1のネットワークデバイスは、TAB+FMAX+Tcに対応するサイクル(T4=1.1からT3=2.5までのサイクル)を決定してよい。第1のネットワークデバイスは、T4=2.1からT4=3.1までのサイクル内でバッファc1をスケジュールすべきことを知ることができる。TAB+FMAX+Tcに対応するサイクルの最も後期の時刻(T3=2.5)は、バッファc1がスケジュールされる開始時刻(T4=2.1)を超えている。第1のネットワークデバイスが、第2のデータパケットをバッファリングするのにバッファc1を使用する場合、バッファc1は、すべての第2のデータパケットがバッファリングされるより前に、データパケットを送信するように第1のネットワークデバイスによってスケジュールされていることが可能である。したがって、第1のネットワークデバイスは、第2のデータパケットをバッファリングするのにバッファc1を使用しない。したがって、第1のネットワークデバイスは、第2のデータパケットをバッファリングするのにバッファa1を使用することを決定してよい。したがって、図3から、T3=1.5からT3=2.5までのサイクルが、すべての第2のデータパケットをキューにバッファリングするのにバッファa1が使用されることを確実にするように、第1のネットワークデバイスがバッファc1をスケジュールするL4におけるサイクルにマップされることが見てとられることが可能である。言い換えると、T4=2.1からT4=3.1までのサイクル内で、バッファa1内のすべてのデータパケット(第2のデータパケット)が、第1の出口ポートの出口キューに到達して、送信されるべき待機している。その後、時点T4=3.1において、第1のネットワークデバイスのバッファが、切り換えられる。T4=3.1からT4=4.1までのサイクル内で、バッファa1が、第1のネットワークデバイスによって再スケジュールされ、バッファa1内のデータパケット(第2のデータパケット)が、第1の出口ポート経由で送出される。前述の実装において、最大処理遅延FMAXが、使用される。実際のアプリケーションにおいて、FMAXの使用には限定されず、平均処理遅延などの、遅延を処理する別の形態が使用されてよい。
任意選択で、第1のネットワークデバイスにおいて、スケジュールされることが可能な4つバッファ、すなわち、バッファa1、b1、c1、およびd1が存在する。前述の実装によれば、第1のネットワークデバイスは、バッファa1、b1、c1、およびd1を巡回でスケジュールする。前述の方法によれば、第1のネットワークデバイスは、位相差TABに基づいて、バッファb1もc1も第2のデータパケットをバッファリングするのに使用されないことを決定する。したがって、第1のネットワークデバイスは、第2のデータパケットをバッファリングするのにバッファa1またはd1を使用することを決定してよい。その後、第1のネットワークデバイスは、バッファd1がバッファa1よりも早期にスケジュールされることを決定してよい。したがって、第1のネットワークデバイスは、好ましくは、第2のデータパケットをバッファd1にバッファリングし、バッファd1が再スケジュールされるときに第2のデータパケットを送信する。
任意選択で、本出願のこの実装において、第1のメッセージおよび第2のメッセージが、第1のネットワークデバイスと第2のネットワークデバイスの間で転送されるプロトコルパケット内で搬送されてよい(例えば、インターネットプロトコル(Internet Protocol,IP)パケットが第1のネットワークデバイスと第2のネットワークデバイスの間で転送されるとき、第1のメッセージおよび第2のメッセージが、IPパケット内で搬送されてよい)。代替として、新たなプロトコルパケットが、第1のメッセージおよび第2のメッセージを搬送すべく第1のネットワークデバイスおよび第2のネットワークデバイスにおいて作成されてよい。
例えば、IEEE 1588プロトコルが、第1のネットワークデバイスおよび第2のネットワークデバイスにおいて実行される。その後、第1のメッセージが、IEEE 1588によって定義されるSyncおよびDelay_Reqメッセージ内で搬送されてよい。例えば、タイプ-長さ-値(type-length-value,TLV)フィードが、第1のメッセージの内容を搬送すべくSyncおよびDelay_Reqメッセージに追加される。SyncおよびDelay_Reqメッセージの定義および説明に関しては、IEEE 1588-2008における対応する説明、例えば、IEEE 1588-2008における表-26を参照されたい。第2のメッセージが、IEEE 1588によって定義されるFollow_Upメッセージ内で搬送されてよい。例えば、TLVフィードが、第2のメッセージの内容を搬送すべくFollow_Upメッセージに追加される。Follow_Upメッセージの定義および説明に関しては、IEEE 1588-2008における対応する説明、例えば、IEEE 1588-2008における表-27を参照されたい。
前述の実装によれば、第1のネットワークデバイスが、第2のネットワークデバイスから受信されるメッセージに基づいて位相差を決定し、第1のネットワークデバイスが、位相差を決定するとき、第2のネットワークデバイスから第1のネットワークデバイスまでのリンク遅延を考慮する。さらに、第1のネットワークデバイスは、位相差に基づいて、第1のネットワークデバイスの第1の出口ポート経由で送信されるデータパケットをスケジュールしてよい。このようにして、第1のネットワークデバイスと第2のネットワークデバイスとは、時間同期なしにデータパケットのキューイングおよび転送を実施する。
図5は、本出願の実施形態による第1のネットワークデバイス1000の構造の概略図である。図5に示される第1のネットワークデバイス1000は、前述の実施形態の方法において第1のネットワークデバイスによって実行される対応するステップを実行してよい。第1のネットワークデバイスは、通信ネットワークにおいて展開され、通信ネットワークは、第2のネットワークデバイスをさらに含む。図5に示されるとおり、第1のネットワークデバイス1000は、受信ユニット1002と、処理ユニット1004と、送信ユニット1006とを含む。
受信ユニット1002は、第2のネットワークデバイスの第2の出口ポート経由で第2のネットワークデバイスによって送信される第1のメッセージを受信するように構成され、第1のメッセージが、位相差を測定するのに使用され、位相差が、リンク遅延が考慮された、第1のネットワークデバイスの送信ユニット1006の複数の第1のバッファのうちの1つのバッファのスイッチング時刻と、第2のネットワークデバイスの第2の出口ポートの複数の第2のバッファのうちの1つのバッファのスイッチング時刻の間の位相差であり、リンク遅延が、第2のネットワークデバイスから第1のネットワークデバイスまでのリンク遅延である。
処理ユニット1004は、第1のメッセージに基づいて位相差を決定するように構成され、複数の第1のバッファに関するスイッチングサイクルが、複数の第2のバッファに関するスイッチングサイクルと同一であり、複数の第1のバッファが、処理ユニット1004によって巡回でスケジュールされ、複数の第2のバッファが、第2のネットワークデバイスによって巡回でスケジュールされる。
処理ユニット1004は、位相差に基づいて、送信ユニット1006経由で送信される第2のデータパケットをスケジュールするようにさらに構成され、第2のデータパケットが、第1のデータパケットに基づいて処理ユニット1004によって獲得されるデータパケットであり、第1のデータパケットが、第2のネットワークデバイスの第2の出口ポートから受信ユニット1002によって受信されるデータパケットである。
任意選択で、処理ユニット1004が第1のメッセージに基づいて位相差を決定する前に、受信ユニット1002が、第2のネットワークデバイスによって送信される第2のメッセージを受信するようにさらに構成され、第2のメッセージが、第1の時刻と、第2の時刻とを含み、第1の時刻が、第2のネットワークデバイスが第1のメッセージを送信する時刻であり、第2の時刻が、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、第1のスイッチング時刻が、第1の時刻より早期であり、処理ユニット1004により、第1のメッセージに基づいて位相差を決定することに関して、処理ユニット1004が、第1のメッセージおよび第2のメッセージに基づいて位相差を決定するように特に構成される。
任意選択で、処理ユニット1004が第1のメッセージに基づいて位相差を決定する前に、受信ユニット1002が、第2のネットワークデバイスによって送信される第2のメッセージを受信するようにさらに構成され、第2のメッセージが、第1の時間差を含み、第1の時間差が、第1の時刻と第2の時刻の間の差であり、第1の時刻が、第2のネットワークデバイスが第1のメッセージを送信する時刻であり、第2の時刻が、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、第1のスイッチング時刻が、第1の時刻より早期であり、処理ユニット1004による、第1のメッセージに基づいて位相差を決定することに関して、処理ユニット1004が、第1のメッセージおよび第2のメッセージに基づいて位相差を決定するように特に構成される。
任意選択で、処理ユニット1004による、第1のメッセージおよび第2のメッセージに基づいて位相差を決定することに関して、処理ユニット1004は、第1のメッセージが受信される第3の時刻を決定すること、第3の時刻に基づいて第4の時刻を決定することであって、第4の時刻が、第1のメッセージが受信されるときにスケジュールされた複数の第1のバッファのなかの対応する第1のバッファの第2のスイッチング時刻であり、かつ第2のスイッチング時刻が、第3の時刻より後期である、決定すること、および位相差を決定することであって、位相差の値が、複数の第1のバッファに関するスイッチングサイクルと第1の値の間の差と等しく、第1の値が、複数の第1のバッファに関するスイッチングサイクルに対する第2の値のモジュロ演算によって戻される値と等しく、かつ第2の値が、第1の時刻と第2の時刻の間の差と第4の時刻と第3の時刻の間の差の合計と等しい、決定することを行うように特に構成される。
任意選択で、第1のメッセージは、第1のメッセージを識別するための第1の識別子を含み、第2のメッセージは、第2のメッセージを識別するための第2の識別子を含み、第1の識別子は、第2の識別子に対応する。
任意選択で、第1のメッセージは、第1の時刻と、第2の時刻とを含み、第1の時刻は、第2のネットワークデバイスが第1のメッセージを送信する時刻であり、第2の時刻は、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、第1のスイッチング時刻は、第1の時刻より早期である。
任意選択で、第1のメッセージは、第1の時間差を含み、第1の時間差は、第1の時刻と第2の時刻の間の差であり、第1の時刻は、第2のネットワークデバイスが第1のメッセージを送信する時刻であり、第2の時刻は、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、第1のスイッチング時刻は、第1の時刻より早期である。
任意選択で、処理ユニット1004による、第1のメッセージに基づいて位相差を決定することに関して、処理ユニット1004は、第1のメッセージが受信される第3の時刻を決定すること、第3の時刻に基づいて第4の時刻を決定することであって、第4の時刻が、第1のメッセージが受信されるときにスケジュールされた複数の第1のバッファのなかの対応する第1のバッファの第2のスイッチング時刻であり、かつ第2のスイッチング時刻が第3の時刻より後期である、決定すること、および位相差を決定することであって、位相差の値が、複数の第1のバッファに関するスイッチングサイクルと第1の値の間の差と等しく、第1の値が、複数の第1のバッファに関するスイッチングサイクルに対する第2の値のモジュロ演算によって戻される値と等しく、かつ第2の値が、第1の時刻と第2の時刻の間の差と第4の時刻と第3の時刻の間の差の合計と等しい、決定することを行うように特に構成される。
任意選択で、処理ユニット1004による、位相差に基づいて、送信ユニット1006経由で送信される第2のデータパケットをスケジュールすることに関して、処理ユニット1004は、位相差および処理遅延に基づいて第2のデータパケットに関する対応する第1のバッファを決定することであって、複数の第1のバッファが、対応する第1のバッファを含み、かつ処理遅延が、処理ユニット1004による、第1のデータパケットに基づいて第2のデータパケットを決定するプロセスにおいて生じる遅延である、決定すること、および対応する第1のバッファに第2のデータパケットを記憶することを行うように特に構成される。
第2のデータパケットが記憶された後の、対応する第1のバッファが処理ユニット1004によってスケジュールされる第1のサイクル内で、送信ユニット1006が、第2のデータパケットを送信する。
図5に示される第1のネットワークデバイスが、前述の実施形態における方法において第1のネットワークデバイスによって実行される対応するステップを実行してよい。第1のネットワークデバイスは、第2のネットワークデバイスから受信されるメッセージに基づいて位相差を決定し、第1のネットワークデバイスは、位相差を決定するとき、第2のネットワークデバイスから第1のネットワークデバイスまでのリンク遅延を考慮する。さらに、第1のネットワークデバイスは、位相差に基づいて、第1のネットワークデバイスの第1の出口ポート経由で送信されるデータパケットをスケジュールしてよい。このようにして、第1のネットワークデバイスと第2のネットワークデバイスとは、時間同期なしにデータパケットのキューイングおよび転送を実施する。
図6は、本出願の実施形態による第1のネットワークデバイス1100のハードウェア構造の概略図である。図6に示される第1のネットワークデバイス1100は、前述の実施形態における方法において第1のネットワークデバイスによって実行される対応するステップを実行してよい。
図6に示されるとおり、第1のネットワークデバイス1100は、プロセッサ1101と、メモリ1102と、インタフェース1103と、バス1104とを含む。インタフェース1103は、有線方法で実施されても、無線方法で実施されてもよく、具体的には、ネットワークアダプタであってよい。プロセッサ1101、メモリ1102、およびインタフェース1103は、バス1104を介して接続される。
インタフェース1103は、前述の実施形態における第1のネットワークデバイスと第2のネットワークデバイスの間、および第1のネットワークデバイスと第1のネットワークデバイスの次のホップのデバイスの間で情報を送信すること、および受信することを行うように構成された、送信機と、受信機とを特に含んでよい。例えば、インタフェース1103は、第2のネットワークデバイスによって送信される第1のメッセージ、または第1のメッセージおよび第2のメッセージを受信することをサポートするように構成される。別の実施例として、インタフェース1103は、第2のネットワークデバイスによって送信されたデータパケットを受信することをサポートするように構成される。別の実施例として、インタフェース1103は、第1のネットワークデバイスがデータパケットを送信するのをサポートするように構成される。実施例として、インタフェース1103は、図4におけるプロセスS103およびS105をサポートするように構成される。プロセッサ1101は、前述の実施形態において第1のネットワークデバイスによって実行される処理を実行するように構成される。例えば、プロセッサ1101は、位相差を決定するように構成され、かつ/または本明細書において説明される技術の他のプロセスにおいて使用される。実施例として、プロセッサ1101は、図4におけるプロセスS104をサポートするように構成される。メモリ1102は、オペレーティングシステム11021と、アプリケーションプログラム11022とを含み、プログラム、コード、または命令を記憶するように構成される。プログラム、コード、または命令を実行するとき、プロセッサまたはハードウェアデバイスは、方法実施形態における第1のネットワークデバイスの処理プロセスを完了してよい。任意選択で、メモリ1102は、読取り専用メモリ(英語で、Read-only Memory,略して、ROM)と、ランダムアクセスメモリ(英語で、Random Access Memory,略して、RAM)とを含む。ROMは、基本入出力システム(英語で、Basic Input/Output System,略して、BIOS)または埋め込み型システムを含む。RAMは、アプリケーションプログラムと、オペレーティングシステムとを含む。第1のネットワークデバイス1100が実行される必要があるとき、BIOSにおけるブートローダ、またはROMに組み込まれた埋め込み型システムが、システムを開始させるように起動し、かつ第1のネットワークデバイス1100を通常の実行状態に入れるように起動するのに使用される。通常の実行状態に入った後、第1のネットワークデバイス1100は、方法実施形態における第1のネットワークデバイスの処理プロセスを完了するようにRAMにおけるアプリケーションプログラムおよびオペレーティングシステムを実行する。
図6は、第1のネットワークデバイス1100の簡略化された設計を示すに過ぎないものと理解されてよい。実際のアプリケーションにおいて、第1のネットワークデバイスは、任意の数量のインタフェース、プロセッサ、またはメモリを含んでよい。
図7は、本出願の実施形態による別の第1のネットワークデバイス1200のハードウェア構造の概略図である。図7に示される第1のネットワークデバイス1200は、前述の実施形態の方法において第1のネットワークデバイスによって実行される対応するステップを実行してよい。
図7に示されるとおり、第1のネットワークデバイス1200は、メイン制御ボード1210と、インタフェースボード1230と、スイッチングボード1220と、インタフェースボード1240とを含む。メイン制御ボード1210、インタフェースボード1230および1240、ならびにスイッチングボード1220は、通信のためにシステムバスを介してシステムバックボードに接続される。メイン制御ボード1210は、システム管理、デバイスメンテナンス、およびプロトコル処理などの機能を完了するように構成される。スイッチングボード1220は、インタフェースボード(インタフェースボードは、ラインカードまたはサービスボードとも呼ばれる)間でデータを交換するように構成される。インタフェースボード1230および1240は、様々なサービスインタフェース(例えば、POSインタフェース、GEインタフェース、およびATMインタフェース)を提供すること、およびデータパケットを転送することを行うように構成される。
インタフェースボード1230は、中央処理ユニット1231と、転送エントリメモリ1234と、物理インタフェースカード1233と、ネットワークプロセッサ1232とを含んでよい。中央処理ユニット1231は、インタフェースボードを制御し、管理すること、およびメイン制御ボード上の中央処理ユニットと通信することを行うように構成される。転送エントリメモリ1234は、転送エントリを記憶するように構成される。物理インタフェースカード1233は、トラフィックを受信すること、および送信することを行うように構成される。ネットワークメモリ1232は、転送エントリに基づいて、トラフィックを受信すること、および送信することを行うよう物理インタフェースカード1233を制御するように構成される。
具体的には、物理インタフェースカード1233は、第2のネットワークデバイスによって送信される第1のメッセージ(または第1のメッセージおよび第2のメッセージ)を受信すること、および第2のネットワークデバイスによって送信されるデータパケットを受信することを行うように構成される。物理インタフェースカード1233は、第1のネットワークデバイスの次のホップのネットワークデバイスにデータパケットを転送するようにさらに構成される。
第1のメッセージ(または第1のメッセージおよび第2のメッセージ)およびデータパケットを受信した後、物理インタフェースカード1233は、第1のメッセージ(または第1のメッセージおよび第2のメッセージ)およびデータパケットを、中央処理ユニット1231経由で中央処理ユニット1211に送信する。中央処理ユニット1211は、第1のメッセージ(または第1のメッセージおよび第2のメッセージ)およびデータパケットを処理する。
中央処理ユニット1211は、位相差を決定するようにさらに構成される。
中央処理ユニット1231は、転送エントリメモリ1234内の転送エントリを獲得するようネットワークメモリ1232を制御するようにさらに構成され、中央処理ユニット1231は、物理インタフェースカード1233経由で伝送パス上の次のホップのネットワークデバイスにデータパケットを転送するようネットワークメモリ1232を制御するようにさらに構成される。
インタフェースボード1240上の動作は、本発明のこの実施形態におけるインタフェースボード1230上の動作と同一であることを理解されたい。簡潔のため、詳細が説明されることはない。この実施形態における第1のネットワークデバイス1200は、前述の方法実施形態における機能および/または様々な実施されるステップに対応してよいことを理解されたい。詳細がここで説明されることはない。
さらに、1つまたは複数のメイン制御ボードが存在してよいことに留意されたい。複数のメイン制御ボードが存在する場合、メイン制御ボードは、活性のメイン制御ボードと、バックアップメイン制御ボードとを含んでよい。1つまたは複数のインタフェースボードが存在してよい。より強力なデータ処理能力を有する第1のネットワークデバイスは、より多くのインタフェースボードを提供する。また、インタフェースボード上に1つまたは複数の物理インタフェースカードが存在してもよい。スイッチングボードも、1つまたは複数のスイッチングボードも存在しなくてよい。複数のスイッチングボードが存在する場合、負荷分散と冗長性バックアップとが、スイッチングボードによって一緒に実施されてよい。集中型転送アーキテクチャにおいて、第1のネットワークデバイスは、スイッチングボードを必要としないことがあり、インタフェースボードが、システム全体のサービスデータ処理機能を引き受ける。分散型転送アーキテクチャにおいて、第1のネットワークデバイスは、少なくとも1つのスイッチングボードを有してよい。複数のインタフェースボード間のデータは、大容量データ交換および処理能力を提供するようにスイッチングボードを介して交換される。したがって、分散型アーキテクチャにおける第1のネットワークデバイスのデータアクセスおよび処理能力は、集中型アーキテクチャにおけるデバイスのものより大きい。使用されるべき特定のアーキテクチャは、特定のネットワーキング展開シナリオに依存し、本明細書において限定されることはない。
さらに、本出願の実施形態は、前述の第1のネットワークデバイスによって使用されるコンピュータソフトウェア命令を記憶するように構成されたコンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、前述の方法実施形態を実行するために設計されたプログラムを含む。
図8は、本出願の実施形態による第2のネットワークデバイス2000の構造の概略図である。図8に示される第2のネットワークデバイス2000は、前述の実施形態における方法において第2のネットワークデバイスによって実行される対応するステップを実行してよい。第2のネットワークデバイスは、通信ネットワークにおいて展開され、通信ネットワークは、第1のネットワークデバイスをさらに含む。図8に示されるとおり、第1のネットワークデバイス2000は、処理ユニット2004と、送信ユニット2006とを含む。
処理ユニット2004は、第1のメッセージを生成するように構成され、第1のメッセージが、位相差を決定するよう第1のネットワークデバイスをトリガするのに使用され、位相差が、リンク遅延が考慮された、第1のネットワークデバイスの第1の出口ポートの複数の第1のバッファのうちの1つのバッファのスイッチング時刻と、第2のネットワークデバイスの送信ユニット2006の複数の第2のバッファのうちの1つのバッファのスイッチング時刻との間の位相差であり、リンク遅延が、第2のネットワークデバイスから第1のネットワークデバイスまでのリンク遅延である。
送信ユニット2006が、第1のネットワークデバイスに第1のメッセージを送信するように構成され、複数の第1のバッファに関するスイッチングサイクルが、複数の第2のバッファに関するスイッチングサイクルと同一であり、複数の第1のバッファが、第1のネットワークデバイスによって巡回でスケジュールされ、複数の第2のバッファが、処理ユニット2004によって巡回でスケジュールされる。
任意選択で、処理ユニット2004は、第2のメッセージを生成するようにさらに構成され、第2のメッセージが、第1の時刻と、第2の時刻とを含み、第1の時刻が、送信ユニット2006が第1のメッセージを送信する時刻であり、第2の時刻が、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファのなかの第2のバッファの第1のスイッチング時刻であり、第1のスイッチング時刻が、第1の時刻より早期であり、送信ユニット2006が、第1のネットワークデバイスに第2のメッセージを送信するようにさらに構成される。
任意選択で、処理ユニット2004は、第2のメッセージを生成するようにさらに構成され、第2のメッセージが、第1の時間差を含み、第1の時間差が、第1の時刻と第2の時刻の間の差であり、第1の時刻が、送信ユニット2006が第1のメッセージを送信する時刻であり、第2の時刻が、第1のメッセージが送信されるときにスケジュールされた複数の第2のバッファにおける第2のバッファの第1のスイッチング時刻であり、第1のスイッチング時刻が、第1の時刻より早期であり、送信ユニット2006が、第1のネットワークデバイスに第2のメッセージを送信するようにさらに構成される。
任意選択で、第1のメッセージは、第1のメッセージを識別するための第1の識別子を含み、第2のメッセージは、第2のメッセージを識別するための第2の識別子を含み、第1の識別子は、第2の識別子に対応する。
図8に示される第2のネットワークデバイスは、前述の実施形態の方法において第2のネットワークデバイスによって実行される対応するステップを実行してよい。第1のネットワークデバイスは、第2のネットワークデバイスから受信されるメッセージに基づいて位相差を決定し、第1のネットワークデバイスが、位相差を決定するとき、第2のネットワークデバイスから第1のネットワークデバイスまでのリンク遅延を考慮する。さらに、第1のネットワークデバイスは、位相差に基づいて、第1のネットワークデバイスの第1の出口ポート経由で送信されるデータパケットをスケジュールしてよい。このようにして、第1のネットワークデバイスと第2のネットワークデバイスとは、時間同期なしにデータパケットのキューイングおよび転送を実施する。
図9は、本出願の実施形態による第2のネットワークデバイス2100のハードウェア構造の概略図である。図9に示される第2のネットワークデバイス2100は、前述の実施形態における方法において第2のネットワークデバイスによって実行される対応するステップを実行してよい。
図9に示されるとおり、第2のネットワークデバイス2100は、プロセッサ2101と、メモリ2102と、インタフェース2103と、バス2104とを含む。インタフェース2103は、有線方法で実施されても、無線方法で実施されてもよく、具体的には、ネットワークアダプタであってよい。プロセッサ2101、メモリ2102、およびインタフェース2103は、バス2104を介して接続される。
インタフェース2103は、具体的には、前述の実施形態における第2のネットワークデバイスと第1のネットワークデバイスの間で情報またはデータを送信すること、および受信することを行うように構成された、送信機と、受信機とを特に含んでよい。例えば、インタフェース2103は、第1のネットワークデバイスに第1のメッセージ(または第1のメッセージおよび第2のメッセージ)を送信することをサポートするように構成される。別の実施例として、インタフェース2103は、第1のネットワークデバイスにデータパケットを送信することをサポートするように構成される。実施例として、インタフェース2103は、図4におけるプロセスS102をサポートするように構成される。プロセッサ2101は、前述の実施形態において第2のネットワークデバイスによって実行される処理を実行するように構成される。例えば、プロセッサ2101は、第1のメッセージ(または第1のメッセージおよび第2のメッセージ)を生成するように構成され、かつ/または本明細書において説明される技術の他のプロセスにおいて使用される。実施例として、プロセッサ2101は、図4におけるプロセスS101をサポートするように構成される。メモリ2102は、オペレーティングシステム21021と、アプリケーションプログラム21022とを含み、プログラム、コード、または命令を記憶するように構成される。プログラム、コード、または命令を実行するとき、プロセッサまたはハードウェアデバイスは、方法実施形態における第2のネットワークデバイスの処理プロセスを完了してよい。任意選択で、メモリ2102は、読取り専用メモリ(英語で、Read-only Memory,略して、ROM)と、ランダムアクセスメモリ(英語で、Random Access Memory,略して、RAM)とを含んでよい。ROMは、基本入出力システム(英語で、Basic Input/Output System,略して、BIOS)または埋め込み型システムを含む。RAMは、アプリケーションプログラムと、オペレーティングシステムとを含む。第2のネットワークデバイス2100が実行される必要があるとき、BIOSにおけるブートローダ、またはROMに組み込まれた埋め込み型システムが、システムを開始させるように起動し、かつ第2のネットワークデバイス2100を通常の実行状態に入れるように起動するのに使用される。通常の実行状態に入った後、第2のネットワークデバイス2100は、方法実施形態における第2のネットワークデバイスの処理プロセスを完了するようにRAMにおけるアプリケーションプログラムおよびオペレーティングシステムを実行する。
図9は、第2のネットワークデバイス2100の簡略化された設計を示すに過ぎないものと理解されてよい。実際のアプリケーションにおいて、第2のネットワークデバイスは、任意の数量のインタフェース、プロセッサ、またはメモリを含んでよい。
図10は、本出願の実施形態による別の第2のネットワークデバイス2200のハードウェア構造の概略図である。図10に示される第2のネットワークデバイス2200は、前述の実施形態の方法において第2のネットワークデバイスによって実行される対応するステップを実行してよい。
図10に示されるとおり、第2のネットワークデバイス2200は、メイン制御ボード2210と、インタフェースボード2230と、スイッチングボード2220と、インタフェースボード2240とを含む。メイン制御ボード2210、インタフェースボード2230および2240、ならびにスイッチングボード2220は、通信のためにシステムバスを介してシステムバックボードに接続される。メイン制御ボード2210は、システム管理、デバイスメンテナンス、およびプロトコル処理などの機能を完了するように構成される。スイッチングボード2220は、インタフェースボード(インタフェースボードは、ラインカードまたはサービスボードとも呼ばれる)間でデータを交換するように構成される。インタフェースボード2230および2240は、様々なサービスインタフェース(例えば、POSインタフェース、GEインタフェース、およびATMインタフェース)を提供すること、およびデータパケットを転送することを行うように構成される。
インタフェースボード2230は、中央処理ユニット2231と、転送エントリメモリ2234と、物理インタフェースカード2233と、ネットワークプロセッサ2232とを含んでよい。中央処理ユニット2231は、インタフェースボードを制御し、管理すること、およびメイン制御ボード上の中央処理ユニットと通信することを行うように構成される。転送エントリメモリ2234は、転送エントリを記憶するように構成される。物理インタフェースカード2233は、トラフィックを受信すること、および送信することを行うように構成される。ネットワークメモリ2232は、転送エントリに基づいて、トラフィックを受信すること、および送信することを行うよう物理インタフェースカード2233を制御するように構成される。
具体的には、物理インタフェースカード2233は、第1のネットワークデバイスに第1のメッセージ(または第1のメッセージおよび第2のメッセージ)を送信するように構成される。物理インタフェースカード2233は、第1のネットワークデバイスにデータパケットを送信するようにさらに構成される。さらに、物理インタフェースカード2233は、第2のネットワークデバイスの以前のホップのネットワークデバイスによって送信されるデータパケットを受信するようにさらに構成される。
第2のネットワークデバイスの以前のホップのネットワークデバイスによって送信されるデータパケットを受信した後、物理インタフェースカード2233は、中央処理ユニット2231経由で中央処理ユニット2211にデータパケットを送信する。中央処理ユニット2211は、データパケットを処理する。
中央処理ユニット2211は、第1のメッセージ(または第1のメッセージおよび第2のメッセージ)を生成するように構成される。
中央処理ユニット2231は、転送エントリメモリ2234内の転送エントリを獲得するようネットワークメモリ2232を制御するようにさらにさらに構成され、中央処理ユニット2231は、物理インタフェースカード2233経由でトラフィックを受信すること、および送信することを行うようネットワークメモリ2232を制御するようにさらに構成される。
インタフェースボード2240上の動作は、本発明のこの実施形態におけるインタフェースボード2230上の動作と同一であることを理解されたい。簡潔のため、詳細が説明されることはない。この実施形態における第2のネットワークデバイス2200は、前述の方法実施形態における機能および/または様々な実施されるステップに対応してよいことを理解されたい。詳細がここで説明されることはない。
さらに、1つまたは複数のメイン制御ボードが存在してよいことに留意されたい。複数のメイン制御ボードが存在する場合、メイン制御ボードは、活性のメイン制御ボードと、バックアップメイン制御ボードとを含んでよい。1つまたは複数のインタフェースボードが存在してよい。より強力なデータ処理能力を有する第2のネットワークデバイスは、より多くのインタフェースボードを提供する。また、インタフェースボード上に1つまたは複数の物理インタフェースカードが存在してもよい。スイッチングボードも、1つまたは複数のスイッチングボードも存在しなくてよい。複数のスイッチングボードが存在する場合、負荷分散と冗長性バックアップとが、スイッチングボードによって一緒に実施されてよい。集中型転送アーキテクチャにおいて、第2のネットワークデバイスは、スイッチングボードを必要としないことがあり、インタフェースボードが、システム全体のサービスデータ処理機能を引き受ける。分散型転送アーキテクチャにおいて、第2のネットワークデバイスは、少なくとも1つのスイッチングボードを有してよい。複数のインタフェースボード間のデータは、大容量データ交換および処理能力を提供するようにスイッチングボードを介して交換される。したがって、分散型アーキテクチャにおける第2のネットワークデバイスのデータアクセスおよび処理能力は、集中型アーキテクチャにおけるデバイスのものより優れている。使用されるべき特定のアーキテクチャは、特定のネットワーキング展開シナリオに依存し、本明細書において限定されることはない。
さらに、本出願の実施形態は、前述の第2のネットワークデバイスによって使用されるコンピュータソフトウェア命令を記憶するように構成されたコンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、前述の方法実施形態を実行するために設計されたプログラムを含む。
本出願の実施形態は、ネットワークシステムをさらに含む。ネットワークシステムは、第1のネットワークデバイスと、第2のネットワークデバイスとを含む。第1のネットワークデバイスは、図5、図6、または図7における第1のネットワークデバイスであり、第2のネットワークデバイスは、図8、図9、または図10における第2のネットワークデバイスである。
本出願において開示される内容と組み合わせて説明される方法ステップまたはアルゴリズムステップは、ハードウェアによって実施されてよく、またはソフトウェア命令を実行することによってプロセッサによって実施されてよい。ソフトウェア命令は、対応するソフトウェアモジュールによって形成されてよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、着脱可能の磁気ディスク、CD-ROM、または当技術分野において知られる他の任意の形態の記憶媒体に配置されてよい。例えば、記憶媒体は、プロセッサが、記憶媒体から情報を読み取ること、または記憶媒体に情報を書き込むことができるようにプロセッサに結合される。無論、記憶媒体は、プロセッサの構成要素であってよい。プロセッサおよび記憶媒体は、ASICに配置されてよい。さらに、ASICは、ユーザ機器に配置されてよい。無論、プロセッサおよび記憶媒体は、ユーザ機器内にディスクリートの構成要素として存在してよい。
前述の1つまたは複数の実施例において、本出願において説明される機能は、ハードウェアによって実施されても、ソフトウェアによって実施されてもよいことが、当業者は認識されよう。本発明がソフトウェアによって実施される場合、前述の機能は、コンピュータ可読媒体に記憶されても、コンピュータ可読媒体において1つもしくは複数の命令またはコードとして送信されてもよい。コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含み、通信媒体が、1つの場所から別の場所へのコンピュータプログラムの転送を容易化する任意の媒体を含む。記憶媒体は、汎用コンピュータまたは専用コンピュータがアクセス可能な任意の利用可能な媒体であってよい。
本出願の目的、技術的解決策、および有益な効果は、前述の特定の実装において詳細にさらに説明される。前述の説明は、本出願の特定の実装に過ぎないことを理解されたい。