(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-29
(45)【発行日】2023-10-10
(54)【発明の名称】パケットを転送するための方法およびネットワークデバイス
(51)【国際特許分類】
H04L 45/243 20220101AFI20231002BHJP
【FI】
H04L45/243
【外国語出願】
(21)【出願番号】P 2022035193
(22)【出願日】2022-03-08
(62)【分割の表示】P 2020517186の分割
【原出願日】2018-09-25
【審査請求日】2022-04-07
(31)【優先権主張番号】201710873391.1
(32)【優先日】2017-09-25
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【氏名又は名称】野村 進
(72)【発明者】
【氏名】耿 雪松
(72)【発明者】
【氏名】▲陳▼ 国▲義▼
【審査官】安藤 一道
(56)【参考文献】
【文献】特表2020-535712(JP,A)
【文献】特表2017-521965(JP,A)
【文献】特開2004-201032(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/243
(57)【特許請求の範囲】
【請求項1】
セグメントルーティングマルチプロトコルラベルスイッチング(SR MPLS)ネットワーク内のパケットを転送するための方法であって、前記方法が、
第1のネットワークデバイスにより、第1のパケットを取得するステップであって、前記第1のパケットが、第1の指示情報およびペイロードデータを備え、前記第1の指示情報が、前記第1のパケッ
トにしたがって複数のパケットを生成することを示すために使用され、前記第1の指示情報が、1つのマルチプロトコルラベルスイッチング(MPLS)ラベルであり、前記SR MPLSネットワークが、前記第1のネットワークデバイスを含む、ステップと、
前記第1のパケット内の前記MPLSラベル
にしたがって複数の第2のパケットを生成するステップであって、前記複数の第2のパケットの各々が、前記ペイロードデータおよび前記MPLSラベルを備える、ステップと、
前記第1のネットワークデバイスにより、異なる転送経路を介して複数の第2のネットワークデバイスに前記複数の第2のパケットを別々に送信するステップであって、前記第2のネットワークデバイスの各々が、前記SR MPLSネットワーク内の転送ネットワークデバイスであり、前記異なる転送経路の各々が、1つの第2のパケットを転送するために使用される、ステップと
を備える、方法。
【請求項2】
前記MPLSラベルが、コントローラから受信される、請求項1に記載の方法。
【請求項3】
前記MPLSラベルが、第1の機能に対応し、前記第1の機能が、前記MPLSラベルを含む前記パケットを受信すると、前記第1のネットワークデバイスに前記複数の第2のパケットを生成するように指示するように構成される、請求項1に記載の方法。
【請求項4】
前記第1のネットワークデバイスにより、前記第1のパケット内の前記MPLSラベル
にしたがって前記複数の第2のパケットを生成するステップの前に、前記方法が、
前記第1のネットワークデバイスにより、前記MPLSラベルに対応する動作タイプを判断するステップであって、前記MPLSラベルに対応する前記動作タイプが、前記第1のネットワークデバイスに、前記複数の第2のパケットを生成するために前記第1のパケットを複製するように指示するために使用される、ステップ
をさらに備える、請求項1に記載の方法。
【請求項5】
前記第1のネットワークデバイスにより、前記第1のパケットを取得するステップが、
前記第1のネットワークデバイスにより、前記第1のパケットを受信するステッ
プを備える、請求項1に記載の方法。
【請求項6】
前記複数の第2のパケットの各パケットが、同じパケットシーケンス番号をさらに備える、請求項1に記載の方法。
【請求項7】
前記第1のパケットのMPLSラベルスタックが、前記MPLSラベルを備える、請求項1に記載の方法。
【請求項8】
セグメントルーティングマルチプロトコルラベルスイッチング(SR MPLS)ネットワーク内の第1のネットワークデバイスであって、前記第1のネットワークデバイスが、
プロセッサと、
プロセッサに結合され、前記プロセッサが実行するための命令を記憶するメモリであって、前記命令が、前記プロセッサに、前記第1のネットワークデバイスに、
第1のパケットを取得することであって、前記第1のパケットが、第1の指示情報およびペイロードデータを備え、前記第1の指示情報が、前記第1のパケット
にしたがって複数のパケットを生成することを示すために使用され、前記第1の指示情報が、1つのマルチプロトコルラベルスイッチング(MPLS)ラベルである、ことと、
前記第1のパケット内の前記MPLSラベル
にしたがって複数の第2のパケットを生成することであって、前記複数の第2のパケットの各々が、前記ペイロードデータおよび前記MPLSラベルを備える、ことと、
異なる転送経路を介して複数の第2のネットワークデバイスに前記複数の第2のパケットを別々に送信することであって、前記第2のネットワークデバイスの各々が、前記SR MPLSネットワーク内の転送ネットワークデバイスであり、前記異なる転送経路の各々が、1つの第2のパケットを転送するために使用される、ことと
を行わせるように指示する、メモリと
を備える、第1のネットワークデバイス。
【請求項9】
前記MPLSラベルが、コントローラから受信される、請求項8に記載の第1のネットワークデバイス。
【請求項10】
前記MPLSラベルが、第1の機能に対応し、前記第1の機能が、前記第1のネットワークデバイスに前記複数の第2のパケットを生成するように指示するように構成される、請求項8に記載の第1のネットワークデバイス。
【請求項11】
前記命令が、前記プロセッサに、前記第1のネットワークデバイスに
前記MPLSラベルに対応する動作タイプを判断することであって、
前記動作タイプが、前記第1のネットワークデバイスに、前記複数の第2のパケットを生成するために前記第1のパケットを複製するように指示するために使用される、こと
を行わせるようにさらに指示する、請求項8に記載の第1のネットワークデバイス。
【請求項12】
前記命令が、前記プロセッサに、前記第1のネットワークデバイスに
前記第1のパケットを受信するこ
とを行わせるようにさらに指示する、請求項8に記載の第1のネットワークデバイス。
【請求項13】
前記複数の第2のパケットの各パケットが、同じパケットシーケンス番号を備える、請求項8に記載の第1のネットワークデバイス。
【請求項14】
前記第1のパケットのMPLSラベルスタックが、前記MPLSラベルを備える、請求項8に記載の第1のネットワークデバイス。
【請求項15】
ネットワーク内でパケットを転送するためのシステムであって、前記ネットワークが、セグメントルーティングマルチプロトコルラベルスイッチング(SR MPLS)ネットワークであり、前記システムが、
第1のネットワークデバイスおよび複数の第2のネットワークデバイスであって、前記第1のネットワークデバイスが、
第1のパケットを取得することであって、前記第1のパケットが、第1の指示情報およびペイロードデータを備え、前記第1の指示情報が、前記第1のパケット
にしたがって複数のパケットを生成することを示すために使用され、前記第1の指示情報が、1つのマルチプロトコルラベルスイッチング(MPLS)ラベルである、ことと、
前記第1のパケット内の前記MPLSラベル
にしたがって複数の第2のパケットを生成することであって、前記複数の第2のパケットの各々が、前記ペイロードデータおよび前記MPLSラベルを備える、ことと、
異なる転送経路を介して前記複数の第2のネットワークデバイスに前記複数の第2のパケットを別々に送信することであって、前記複数の第2のネットワークデバイスの各々が、前記SR MPLSネットワーク内の転送ネットワークデバイスであり、前記異なる転送経路の各々が、異なる1つの第2のパケットを転送するために使用される、ことと
を行うように構成され、
前記複数の第2のネットワークデバイスの各々が、
前記複数の第2のパケットのうちの1つを受信するこ
とを行うように構成される、第1のネットワークデバイスおよび複数の第2のネットワークデバイス
を備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、参照によりその全体が本明細書に組み込まれる、2017年9月25日に中国国家知識産権局に出願され、「METHOD FOR FORWARDING PACKET AND NETWORK DEVICE」と題する、中国特許出願第201710873391.1号の優先権を主張する。
【0002】
本発明は、通信技術の分野に関し、より詳細には、パケットを転送するための方法およびネットワークデバイスに関する。
【背景技術】
【0003】
様々なネットワーク技術の急速な発展に伴い、ユーザデータは、通常、ネットワーク内の送信用にパケットにカプセル化される。ネットワーク内のネットワークデバイスは、ネットワーク内のユーザデータの送信を実現するために、カプセル化されたパケットを転送する。パケットの転送中、ネットワークデバイスは、パケットのヘッダ内の経路情報に基づいてパケットを転送する。たとえば、経路情報は、マルチプロトコルラベルスイッチング(Multi-Protocol Label Switching、MPLS)であってよい。ネットワークデバイスは、複数のパケットを受信し、ポイントツーマルチポイントモードでのパケット送信を実現するために、パケットの経路情報に基づいて異なるネットワークデバイスに複数のパケットを別々に送信する。たとえば、パケットA1は経路1を通ってネットワークデバイスB1に送信され、パケットA2は経路2を通ってネットワークデバイスB2に送信され、パケットA3は経路3を通ってネットワークデバイスB3に送信される。ネットワークデバイス間のネットワークリンクの様々な予期せぬケース、たとえば、不安定なネットワーク、または突然中断されたネットワークに起因して、パケット損失が発生する可能性がある。したがって、このパケット送信モードの信頼性は比較的不十分である。
【発明の概要】
【0004】
本発明の実施形態は、パケットを転送するための方法およびネットワークデバイスを提供する。これにより、パケット転送の信頼性を向上させることができる。
【課題を解決するための手段】
【0005】
第1の態様によれば、本発明の一実施形態は、ネットワーク内でパケットを転送するための方法を提供する。ネットワークは、第1のネットワークデバイスおよび第2のネットワークデバイスを含み、第1のネットワークデバイスと第2のネットワークデバイスとの間に複数の転送経路が存在する。第1のネットワークデバイスおよび第2のネットワークデバイスは、ルータ、スイッチなどであってよい。このことは本発明のこの実施形態では限定されない。
【0006】
第1のネットワークデバイスは第1のパケットを受信し、第1のパケットは、第1の指示情報、ペイロードデータ、およびパケットシーケンス番号を含む。パケットシーケンス番号は、第1のパケットに対応するデータフロー内の第1のパケットのパケットシーケンス番号であってよい。たとえば、第1のパケットに対応するデータフローは複数のパケットを含む。パケットの各々は、複数のパケットを送信する順番に基づいてパケットシーケンス番号を割り当てられ、パケットシーケンス番号はパケットの各々に固有である。第1のパケットが転送経路上の各ネットワークデバイスによって転送されるとき、パケットシーケンス番号は変化しないことに留意されたい。
【0007】
第1の指示情報は、第1のパケットに基づいて複数の第2のパケットを生成するように、第1のネットワークデバイスに指示するために使用される指示情報であってよい。
【0008】
第1のパケットが第1の指示情報を含むと判断すると、第1のネットワークデバイスは、第1のパケットに基づいて複数の第2のパケットを生成し、複数の第2のパケットの各々は、第1のパケット内で搬送されたペイロードデータ、パケットシーケンス番号、および第2の指示情報を含む。
【0009】
第1のネットワークデバイスが第1のパケットに基づいて複数の第2のパケットを生成する方式は、以下の通りであってよい。第1のネットワークデバイスは、複数の複製パケットを取得するために第1のパケットを複製し、複製パケットの各々から(第1の指示情報などの)不必要な情報をポップアウトし、次いで、複数の第2のパケットを取得するために第2の指示情報をプッシュする。あるいは、第1のネットワークデバイスが第1のパケットに基づいて複数の第2のパケットを生成する方式は、以下の通りであってよい。第1のネットワークデバイスは、第1のパケットから(第1の指示情報などの)不必要な情報をポップアウトし、複数の複製パケットを取得するためにポップ処理の後に取得されたパケットを複製し、複数の第2のパケットを取得するために複製パケットの各々に第2の指示情報をプッシュする。本発明のこの実施形態では、複数の第2のパケットを生成する方式は限定されず、上記は説明のための一例にすぎない。
【0010】
第1のネットワークデバイスは、第1のネットワークデバイスと第2のネットワークデバイスとの間の複数の転送経路の中の異なる転送経路を介して、第2のネットワークデバイスに複数の第2のパケットを別々に転送する。たとえば、1つの第2のパケットを転送するために1つの転送経路が使用される。複数の第2のパケットの各々に含まれる第2の指示情報は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。
【0011】
前述の技術的解決策では、第1のネットワークデバイスと第2のネットワークデバイスとの間に複数の転送経路が存在し、第1のネットワークデバイスは、第1のパケットに基づいて複数の第2のパケットを生成し、複数の転送経路を介して第2のネットワークデバイスに複数の第2のパケットを転送する。複数の転送経路のうちの1つのネットワークリンクが故障した場合でも、第2のネットワークデバイスは、別の転送経路上で転送された第2のパケットを受信することができる。したがって、これにより、パケット送信の信頼性が向上する。
【0012】
可能な設計では、第2のパケットは、第2のパケットに対応する転送経路の経路情報をさらに含み、転送経路の経路情報は、転送経路上で第2のパケットを転送するように指示するために使用されてよい。場合によっては、複数の第2のパケットの各々が異なる転送経路を有する場合、各パケットに含まれる転送経路の経路情報は異なる。転送経路の経路情報は、マルチセグメントネットワークリンク上の第2のパケットの送信を示すために、第2のパケットにカプセル化される。
【0013】
可能な設計では、第1のパケットは、第1のパケットに対応するデータフローのフロー識別子をさらに含む。この場合、複数の第2のパケットを生成する前に、第1のネットワークデバイスは、転送経路の経路情報を第2のパケットにカプセル化するために、フロー識別子に関連付けられた複数の転送経路の各々の経路情報を検索し、1つの第2のパケットは複数の転送経路のうちの1つに対応する。
【0014】
前述の方式では、転送経路の経路情報は、マルチセグメントネットワークリンク上の第2のパケットの送信を示すために、第2のパケットにカプセル化される。
【0015】
可能な設計では、第1の指示情報は第1のラベルを含み、第2の指示情報は第2のラベルを含む。第1のラベルは第1の機能に対応し、第2のラベルは第2の機能に対応する。第1の機能は、複数の第2のパケットを生成するように、第1のネットワークデバイスに指示するために使用される。たとえば、第1のラベルは複製ラベルであり、第1の機能はパケットを複製する機能である。第2の機能は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。たとえば、第2のラベルは冗長ラベルであり、第2の機能は冗長パケットを削除する機能である。転送経路の経路情報は、転送経路のMPLSラベルスタックを含んでよい。
【0016】
前述の方式では、異なる機能に対応するラベルが第2のパケットにカプセル化されるので、ネットワークデバイスはラベルを識別し、対応する動作を実行することができる。これにより、動作効率が向上する。
【0017】
可能な設計では、第1の指示情報は第3のラベルを含み、第2の指示情報は第3のラベルを含む。言い換えれば、第1の指示情報は第2の指示情報と同じである。第3のラベルは、第1のパケットに対応するデータフローを識別するために使用される。複数の第2のパケットを生成する前に、第1のネットワークデバイスは、第3のラベルに対応する動作タイプを検索する。第3のラベルに対応する動作タイプがターゲット動作タイプである場合、第1のネットワークデバイスは、第1のパケットに基づいて複数の第2のパケットを生成する。ターゲット動作タイプは、複数の第2のパケットを生成するように、第1のネットワークデバイスに指示するために使用される。たとえば、ターゲット動作タイプは複製動作である。転送経路の経路情報は、転送経路のMPLSラベルスタックを含んでよい。
【0018】
前述の方式では、第3のラベルは、第1のパケットに対応するデータフローを識別するために使用されるだけでなく、異なる指示情報としても使用されてよい。これにより、パケットのオーバーヘッドが減少する。
【0019】
可能な実装形態では、第1の指示情報は、第1のパケットのインターネットプロトコルバージョン6(Internet Protocol version 6、IPv6)ヘッダ内の宛先アドレスフィールド内の第1のアドレスに対応する第1の機能情報を含み、第1のアドレスは第1のネットワークデバイスのネットワークアドレスと一致する。第1の機能情報は、複数の第2のパケットを生成するように、第1のネットワークデバイスに指示するために使用される。たとえば、第1の機能情報はパケットを複製する機能情報である。
【0020】
第2のパケットはセグメントルーティングヘッダ(Segment Routing Header、SRH)を含み、SRHは、第2の指示情報、および第2のパケットに対応する転送経路の経路情報を含む。第2のパケットに対応する転送経路の経路情報は、SRH内の複数のセグメントリスト内の複数のアドレスを指してよく、複数のアドレスは転送経路を示す。第2の指示情報は、SRH内のターゲットセグメントリストの第2のアドレスに対応する第2の機能情報を含み、第2のアドレスは第2のネットワークデバイスのネットワークアドレスと一致する。ターゲットセグメントリストは、SRHに含まれる複数のセグメントリストのうちの1つである。第2の機能情報は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。たとえば、第2の機能情報は冗長パケットを削除する機能情報である。
【0021】
前述の方式では、第1の機能情報および第2の機能情報は、SRv6プロトコルをサポートするネットワーク内で前述のパケットを転送する方法を使用することができるように、SRH内のセグメントリスト内で拡張される。これにより、パケット転送の信頼性が向上する。
【0022】
可能な設計では、第2のパケットに含まれるフロー識別子およびパケットシーケンス番号は、SRH内のセグメントリストにカプセル化されてよく、たとえば、第2のネットワークデバイスのネットワークアドレスに対応するセグメントリストにカプセル化されてよい。あるいは、フロー識別子およびパケットシーケンスは、各セグメントリストにカプセル化されてよい。このことは本発明のこの実施形態では限定されない。この方式により、パケットヘッダのオーバーヘッドが減少する。
【0023】
あるいは、第2のパケットはIPv6ベースのセグメントルーティングプロトコル(Segment Routing IPv6、SRv6)ヘッダをさらに含み、フロー識別子およびパケットシーケンス番号はSRv6ヘッダにカプセル化される。
【0024】
第2の態様によれば、本発明の一実施形態は、ネットワーク内でパケットを転送するための方法を提供する。ネットワークは、第1のネットワークデバイスおよび第2のネットワークデバイスを含み、第1のネットワークデバイスと第2のネットワークデバイスとの間に複数の転送経路が存在する。第1のネットワークデバイスおよび第2のネットワークデバイスは、ルータ、スイッチなどであってよい。このことは本発明のこの実施形態では限定されない。
【0025】
第2のネットワークデバイスは第2のパケットを受信し、第2のパケットは、第1のパケットに基づいて第1のネットワークデバイスによって生成された複数の第2のパケットのうちのいずれか1つである。第2のパケットは、指示情報、第1のパケット内で搬送されたペイロードデータ、およびパケットシーケンス番号を含み、パケットシーケンス番号は、第1のパケットに対応するデータフロー内の第1のパケットのパケットシーケンス番号である。指示情報は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。
【0026】
第2のパケットは、転送経路上のネットワークデバイスにより、第1のネットワークデバイスによって生成された第2のパケットに対して処理が実行された後に取得されるパケットであってよい。たとえば、転送経路上のネットワークデバイスは、第2のパケットを再カプセル化する。
【0027】
第2のパケットが指示情報を含むと判断すると、第2のネットワークデバイスは、第2のパケット内で搬送されたパケットシーケンス番号が存在するかどうかを判定するためにパケット受信テーブルを検索し、パケット受信テーブルは、複数の第2のパケットの中にあって第2のネットワークデバイスに最初に到達した第2のパケットに含まれるパケットシーケンス番号を記録するために使用される。
【0028】
パケットシーケンス番号がパケット受信テーブル内にない場合、それは、第2のネットワークデバイスが、第1のネットワークデバイスによって送信された複数の第2のパケットのいずれも受信していないことを示す。第2のネットワークデバイスは第2のパケットを記憶する。パケットシーケンス番号がパケット受信テーブル内にある場合、それは、第2のパケットが、複数の第2のパケットの中にあって第2のネットワークデバイスに最初に到達したパケットではないことを示す。記憶の繰返しを回避するために、第2のネットワークデバイスは第2のパケットを廃棄する。
【0029】
前述の技術的解決策によれば、第1のネットワークデバイスと第2のネットワークデバイスとの間に複数の転送経路が存在する。第1のネットワークデバイスは、複数の転送経路を介して第2のネットワークデバイスに複数の第2のパケットを転送し、第2のネットワークデバイスは、第2のネットワークデバイスに最初に到達した第2のパケットのみを記憶し、別の第2のパケットを廃棄する。これにより、同じパケットを繰り返し送信することを回避できるだけでなく、パケット送信の信頼性も向上する。
【0030】
可能な設計では、指示情報はターゲット機能に対応するラベルを含んでよく、ターゲット機能は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。たとえば、ターゲット機能は冗長パケットを削除する機能である。
【0031】
前述の方式では、指示情報はターゲット機能に対応するラベルなので、ネットワークデバイスはラベルを識別し、対応する動作を実行することができる。これにより、動作効率が向上する。
【0032】
可能な実装形態では、指示情報はラベルを含み、ラベルは、第1のパケットに対応するデータフローを識別するために使用される。第2のネットワークデバイスが、パケットシーケンス番号が存在するかどうかを判定するためにパケット受信テーブルを検索する前に、第2のネットワークデバイスは、ラベルに対応する動作タイプを検索する必要がある。ラベルに対応する動作タイプがターゲット動作タイプである場合、第2のネットワークデバイスは、パケットシーケンス番号が存在するかどうかを判定するためにパケット受信テーブルを検索する。ターゲット動作タイプは、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。
【0033】
前述の方式では、ラベルは、データフローを識別するために使用されるだけでなく、指示情報としても使用されてよい。これにより、パケットのオーバーヘッドが減少する。
【0034】
可能な実装形態では、指示情報は、第2のパケットのIPv6ヘッダ内の宛先アドレスフィールド内の宛先アドレスに対応するターゲット機能情報を含んでよく、宛先アドレスは第2のネットワークデバイスのネットワークアドレスと一致する。
【0035】
前述の方式では、ターゲット機能情報はSRv6プロトコル内で拡張されるので、パケットはSRv6プロトコル内で確実に送信することができる。
【0036】
可能な設計では、ネットワークは第3のネットワークデバイスをさらに含んでよい。第2のパケットを記憶した後、第2のネットワークデバイスは、第2のパケットに基づいて第3のパケットをさらに生成することができる。たとえば、第3のパケットの転送経路の経路情報が第3のパケットに追加される。第2のネットワークデバイスは第3のネットワークデバイスに第3のパケットを転送する。
【0037】
第3の態様によれば、本発明の一実施形態は、ネットワーク内のパケット転送用の第1のネットワークデバイスを提供する。第1のネットワークデバイスは、第1の態様による方法において第1のネットワークデバイスの動作を実現する機能を有する。機能は、ハードウェアによって実現されてもよく、ハードウェアが対応するソフトウェアを実行することによって実現されてもよい。ハードウェアまたはソフトウェアは、前述の機能に対応する1つまたは複数のモジュールを含む。
【0038】
可能な実装形態では、第1のネットワークデバイスは、受信ユニット、生成ユニット、および転送ユニットを含む。受信ユニットは第1のパケットを受信するように構成され、第1のパケットは、第1の指示情報、ペイロードデータ、および第1のパケットに対応するデータフロー内の第1のパケットのパケットシーケンス番号を含む。生成ユニットは、第1のパケットが第1の指示情報を備えると第1のネットワークデバイスが判断すると、第1のパケットに基づいて複数の第2のパケットを生成するように構成され、複数の第2のパケットの各々は、ペイロードデータ、パケットシーケンス番号、および第2の指示情報を含む。転送ユニットは、複数の転送経路の中の異なる転送経路を介して第2のネットワークデバイスに複数の第2のパケットを別々に転送するように構成され、第2の指示情報は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。
【0039】
別の可能な実装形態では、第1のネットワークデバイスは、ネットワークインターフェース、メモリ、およびプロセッサを含み、ネットワークインターフェースは、パケットを受信するか、またはパケットを送信するように構成される。メモリはプログラムコードのセットを記憶し、プロセッサは、メモリに記憶されたプログラムコードを呼び出して、以下の動作:ネットワークインターフェースを介して第1のパケットを受信することであって、第1のパケットが、第1の指示情報、ペイロードデータ、および第1のパケットに対応するデータフロー内の第1のパケットのパケットシーケンス番号を含む、受信することと、第1のパケットが第1の指示情報を含むと判断すると、第1のパケットに基づいて複数の第2のパケットを生成することであって、複数の第2のパケットの各々が、ペイロードデータ、パケットシーケンス番号、および第2の指示情報を含む、生成することと、複数の転送経路の中の異なる転送経路を介して第2のネットワークデバイスに複数の第2のパケットを別々に転送することであって、第2の指示情報が、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される、転送することとを実行するように構成される。
【0040】
別の可能な実装形態では、ネットワークデバイスは、主制御基板およびインターフェース基板を含む。主制御基板は、第1のプロセッサおよび第1のメモリを含む。インターフェース基板は、第2のプロセッサ、第2のメモリ、およびインターフェースカードを含む。主制御基板はインターフェース基板に結合される。第2のメモリはプログラムコードを記憶するように構成されてよく、第2のプロセッサは、第2のメモリ内のプログラムコードを呼び出して、以下の動作:
第1のパケットを受信するようにインターフェースカードをトリガすることであって、第1のパケットが、第1の指示情報、ペイロードデータ、および第1のパケットに対応するデータフロー内の第1のパケットのパケットシーケンス番号を含む、トリガすること
を実行するように構成される。
【0041】
第1のメモリはプログラムコードを記憶するように構成されてよく、第1のプロセッサは、第1のメモリ内のプログラムコードを呼び出して、以下の動作:
第1のパケットが第1の指示情報を含むと判断すると、第1のパケットに基づいて複数の第2のパケットを生成することであって、複数の第2のパケットの各々が、第1のパケット内で搬送されたペイロードデータ、パケットシーケンス番号、および第2の指示情報を含む、生成すること
を実行するように構成される。
【0042】
第2のプロセッサは、第2のメモリ内のプログラムコードを呼び出して、以下の動作:複数の転送経路の中の異なる転送経路を介して第2のネットワークデバイスに複数の第2のパケットを別々に転送するようにインターフェースカードをトリガすることであって、第2の指示情報が、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される、トリガすることをさらに実行するように構成される。
【0043】
場合によっては、主制御基板とインターフェース基板との間に、プロセス間通信(inter-process communication、IPC)制御チャネルが確立される。
【0044】
同じ発明概念に基づいて、第1のネットワークデバイスの問題解決原理および有益な効果については、第1の態様における方法および方法によってもたらされる有益な効果を参照されたい。したがって、第1のネットワークデバイスの実装形態については、方法の実装形態を参照されたい。繰返し部分は再び記載されない。
【0045】
第4の態様によれば、本発明の一実施形態は、ネットワーク内のパケット転送用の第2のネットワークデバイスを提供する。第2のネットワークデバイスは、第2の態様による方法において第2のネットワークデバイスの動作を実現する機能を有する。機能は、ハードウェアによって実現されてもよく、ハードウェアが対応するソフトウェアを実行することによって実現されてもよい。ハードウェアまたはソフトウェアは、前述の機能に対応する1つまたは複数のモジュールを含む。
【0046】
可能な実装形態では、第2のネットワークデバイスは、受信ユニット、検索ユニット、記憶ユニット、および廃棄ユニットを含み、受信ユニットは第2のパケットを受信するように構成され、第2のパケットは、第1のパケットに基づいて第1のネットワークデバイスによって生成された複数の第2のパケットのうちのいずれか1つであり、第2のパケットは、指示情報、第1のパケット内で搬送されたペイロードデータ、および第1のパケットに対応するデータフロー内の第1のパケットのパケットシーケンス番号を含み、検索ユニットは、第2のパケットが指示情報を含むと第2のネットワークデバイスが判断すると、パケットシーケンス番号が存在するかどうかを判定するためにパケット受信テーブルを検索するように構成され、パケット受信テーブルは、複数の第2のパケットの中にあって第2のネットワークデバイスに最初に到達したパケットに含まれるパケットシーケンス番号を記録するために使用され、記憶ユニットは、パケットシーケンス番号がパケット受信テーブル内にない場合、第2のパケットを記憶するように構成され、廃棄ユニットは、パケットシーケンス番号がパケット受信テーブル内にある場合、第2のパケットを廃棄するように構成される。
【0047】
別の可能な実装形態では、第2のネットワークデバイスは、ネットワークインターフェース、メモリ、およびプロセッサを含み、ネットワークインターフェースはパケットを受信し送信するように構成され、メモリはプログラムコードのセットを記憶し、プロセッサは、メモリに記憶されたプログラムコードを呼び出して、以下の動作:ネットワークインターフェースを介して第2のパケットを受信することであって、第2のパケットが、第1のパケットに基づいて第1のネットワークデバイスによって生成された複数の第2のパケットのうちのいずれか1つであり、第2のパケットが、指示情報、第1のパケット内で搬送されたペイロードデータ、および第1のパケットに対応するデータストリーム内の第1のパケットのパケットシーケンス番号を含む、受信することと、第2のパケットが指示情報を含むと判断すると、パケットシーケンス番号が存在するかどうかを判定するためにパケット受信テーブルを検索することであって、パケット受信テーブルが、複数の第2のパケットの中にあって第2のネットワークデバイスに最初に到達したパケットに含まれるパケットシーケンス番号を記録するために使用される、検索することと、パケットシーケンス番号がパケット受信テーブル内にない場合、第2のパケットを記憶することと、パケットシーケンス番号がパケット受信テーブル内にある場合、第2のパケットを廃棄することとを実行するように構成される。
【0048】
別の可能な実装形態では、第2のネットワークデバイスは、主制御基板およびインターフェース基板を含む。主制御基板は、第1のプロセッサおよび第1のメモリを含む。インターフェース基板は、第2のプロセッサ、第2のメモリ、およびインターフェースカードを含む。主制御基板はインターフェース基板に結合される。
【0049】
第2のメモリはプログラムコードを記憶するように構成されてよく、第2のプロセッサは、第2のメモリ内のプログラムコードを呼び出して、以下の動作:
第2のパケットを受信するようにインターフェースカードをトリガすることであって、第2のパケットが、第1のパケットに基づいて第1のネットワークデバイスによって生成された複数の第2のパケットのうちのいずれか1つであり、第2のパケットが、指示情報、第1のパケット内で搬送されたペイロードデータ、および第1のパケットに対応するデータストリーム内の第1のパケットのパケットシーケンス番号を含む、トリガすること
を実行するように構成される。
【0050】
第1のメモリはプログラムコードを記憶するように構成されてよく、第1のプロセッサは、第1のメモリ内のプログラムコードを呼び出して、以下の動作:
第2のパケットが指示情報を含むと判断すると、パケットシーケンス番号が存在するかどうかを判定するためにパケット受信テーブルを検索することであって、パケット受信テーブルが、複数の第2のパケットの中にあって第2のネットワークデバイスに最初に到達したパケットに含まれるパケットシーケンス番号を記録するために使用される、検索することと、パケットシーケンス番号がパケット受信テーブル内にない場合、第2のパケットを記憶することと、パケットシーケンス番号がパケット受信テーブル内にある場合、第2のパケットを廃棄することと
を実行するように構成される。
【0051】
場合によっては、主制御基板とインターフェース基板との間に、IPC制御チャネルが確立される。
【0052】
第5の態様によれば、本発明の一実施形態は、前述の第1のネットワークデバイスおよび/または前述の第2のネットワークデバイスによって使用されるコンピュータソフトウェア命令を記憶するように構成された、コンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、前述の態様を実現するように設計されたプログラムを含む。
【0053】
第6の態様によれば、本発明の一実施形態は、命令を含むコンピュータプログラム製品を提供する。命令がコンピュータ上で実行されると、コンピュータは前述の態様の方法を実行することが可能になる。
【0054】
本発明の実施形態における技術的解決策をより明確に記載するために、以下で、本発明の実施形態において例示に必要とされる添付図面を示す。
【図面の簡単な説明】
【0055】
【
図1】本発明の一実施形態による、アプリケーションシナリオの概略図である。
【
図2】本発明の一実施形態による、情報を転送するための方法の概略フローチャートである。
【
図3a】本発明の一実施形態による、SIDの構造の概略図である。
【
図3b】本発明の一実施形態による、IPv6ヘッダの概略図である。
【
図3c】本発明の一実施形態による、SRHの構造の概略図である。
【
図3d】本発明の一実施形態による、SIDの構造の概略図である。
【
図4】本発明の一実施形態による、パケットが転送されるシナリオの図である。
【
図5】本発明の一実施形態による、パケットが転送される別のシナリオの図である。
【
図6A】本発明の一実施形態による、パケットが転送されるさらに別のシナリオの図である。
【
図6B】本発明の一実施形態による、パケットが転送されるさらに別のシナリオの図である。
【
図7A】本発明の一実施形態による、パケットが転送されるさらに別のシナリオの図である。
【
図7B】本発明の一実施形態による、パケットが転送されるさらに別のシナリオの図である。
【
図8】本発明の一実施形態による、第1のネットワークデバイスの構造の概略図である。
【
図9】本発明の一実施形態による、第2のネットワークデバイスの構造の概略図である。
【
図10】本発明の一実施形態による、ネットワークデバイスの構造の概略図である。
【
図11】本発明の一実施形態による、別のネットワークデバイスの構造の概略図である。
【発明を実施するための形態】
【0056】
以下で、本発明の実施形態における添付図面を参照して、本発明の実施形態を記載する。
【0057】
本発明の実施形態は、ネットワーク内でパケットを転送するための方法、および、方法に基づいて、ネットワーク内で第1のパケットを複製し、複数の第2のパケットを取得し、複数の異なる並列転送経路を介して同じネットワークデバイスに複数の第2のパケットを転送するネットワークデバイスを提供する。ネットワークデバイスは、ネットワークデバイスに最初に到達した第2のパケットのみを記憶し、ネットワークデバイスに最初に到達した第2のパケットを除く複数の第2のパケットの中の第2のパケットを廃棄する。これにより、パケット転送の信頼性が向上する。方法およびネットワークデバイスは同じ発明概念に基づく。方法およびネットワークデバイスは同様の原理を使用して問題を解決するので、ネットワークデバイスおよび方法の実装形態間で相互参照が行われてよい。繰返し部分は再び記載されない。
【0058】
図1は、本発明の一実施形態による、可能なアプリケーションシナリオを示す。アプリケーションシナリオでは、ネットワークデバイスR1、ネットワークデバイスR2、ネットワークデバイスR3、ネットワークデバイスR4、ネットワークデバイスR5、およびネットワークデバイスR6が物理ネットワークを構成する。あるいは、本発明のこの実施形態における物理ネットワークは、ネットワークデバイスR2、ネットワークデバイスR3、ネットワークデバイスR4、ネットワークデバイスR5などのみを含んでよい。本発明のこの実施形態では、物理ネットワークの存在形態は限定されない。場合によっては、物理ネットワークは、データセンタネットワーク、ワイヤレスネットワーク、決定論的ネットワーク(DetNet)、セグメントルーティング(segment routing、SR)ネットワークなどであってよい。
【0059】
本発明の実施形態における第1のネットワークデバイスは、
図1のネットワークデバイスR2であってよく、第2のネットワークデバイスは、
図1のネットワークデバイスR5であってよく、第1のネットワークデバイスと第2のネットワークデバイスとの間に複数の転送経路が存在する。たとえば、
図1のネットワークアーキテクチャでは、ネットワークデバイスR2は、ネットワークデバイスR3を通ってネットワークデバイスR5に到達することができる。加えて、ネットワークデバイスR2は、ネットワークデバイスR4を通ってネットワークデバイスR5に到達することができる。言い換えれば、ネットワークデバイスR2とネットワークデバイスR5との間に2つの転送経路が存在する。ネットワークデバイスR2とネットワークデバイスR5との間に別の転送経路が存在してよいことが理解されよう。本発明のこの実施形態では、2つの転送経路のみが存在する例が説明に使用される。
【0060】
場合によっては、転送経路のうちの1つ、たとえば転送経路R2-R3-R5の場合、ネットワークデバイスR2は、転送に使用される中間ネットワークデバイス(すなわち、
図1のネットワークデバイスR3)を通ってネットワークデバイスR5に到達することができる。あるいは、ネットワークデバイスR2は、転送に使用される2つ以上の中間ネットワークデバイスを通ってネットワークデバイスR5に到達することができる。たとえば、パケットがネットワークデバイスR3に到達した後、ネットワークデバイスR3はネットワークデバイスR7にパケットを転送し、ネットワークデバイスR7はネットワークデバイスR5にパケットを転送する。
【0061】
ネットワークデバイスR1~R6は、各々ソフトウェア定義ネットワーキング(Software Defined Network、SDN)のネットワークアーキテクチャにおけるルータもしくはスイッチ、またはフォワーダであってよい。本発明のこの実施形態では、第1のパケットを受信した後、第1のネットワークデバイス(たとえば、R2)は、複数の第2のパケットを生成するように第1のネットワークデバイスに指示するために使用される第1の指示情報を第1のパケットが含むと判断すると、複数の第2のパケットを生成し、異なる転送経路を介して第2のネットワークデバイス(たとえば、R5)に複数の第2のパケットを別々に転送する。第2のネットワークデバイスは、複数の第2のパケットの中にあって第2のネットワークデバイスに最初に到達した第2のパケットを記憶し、第2のネットワークデバイスに最初に到達した第2のパケットを除く複数の第2のパケットの中の第2のパケットを廃棄する。前述のパケット転送モードでは、複数の転送経路のうちのいくつかのネットワークリンクに障害がある場合でも、第2のネットワークデバイスによる第2のパケットの受信は影響を受けない。したがって、これにより、パケット転送の信頼性が向上する。
【0062】
図1に示されたアプリケーションシナリオを参照して、
図2を参照すると、本発明の一実施形態は、パケットを転送するための方法の概略フローチャートを提供する。方法は以下のステップを含む。
【0063】
S10:第1のネットワークデバイスが第1のパケットを受信し、第1のパケットは、第1の指示情報、ペイロードデータ、および第1のパケットに対応するデータフロー内の第1のパケットのパケットシーケンス番号を含む。
【0064】
一実施形態では、第1の指示情報は、第1のパケットに基づいて複数の第2のパケットを生成するように、第1のネットワークデバイスに指示するために使用される。ペイロードデータは、送信される必要があるユーザデータである。パケットシーケンス番号は、対応するデータフロー内の第1のパケットの番号である。たとえば、第1のパケットに対応するデータフローは複数のパケットを含み、複数のパケットの各々は、送信する順番で番号付けされる。番号はパケットシーケンス番号であってよい。パケットが転送され再カプセル化されるプロセスでは、パケットのパケットシーケンス番号は変更されない。たとえば、第2のパケットを取得するために第1のパケットが再カプセル化されるとき、パケットシーケンス番号は変更されない。言い換えれば、第2のパケットに含まれるパケットシーケンス番号は、第1のパケットに含まれるパケットシーケンス番号と同じである。別の例として、第2のパケットが別のネットワークデバイスによって受信され、第3のパケットを取得するために再カプセル化されるとき、パケットシーケンス番号は依然変更されない。言い換えれば、第3のパケットに含まれるパケットシーケンス番号は、第1のパケットに含まれるパケットシーケンス番号と同じである。
【0065】
S11:第1のパケットが第1の指示情報を含むと判断すると、第1のネットワークデバイスが、第1のパケットに基づいて複数の第2のパケットを生成し、複数の第2のパケットの各々は、ペイロードデータ、パケットシーケンス番号、および第2の指示情報を含む。
【0066】
S12:第1のネットワークデバイスが、複数の転送経路の中の異なる転送経路を介して第2のネットワークデバイスに複数の第2のパケットを別々に転送し、第2の指示情報は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。
【0067】
S13:第2のネットワークデバイスが第2のパケットを受信し、第2のパケットは、第1のパケットに基づいて第1のネットワークデバイスによって生成された複数の第2のパケットのうちのいずれか1つである。
【0068】
S14:第2のパケットが第2の指示情報を含むと判断すると、第2のネットワークデバイスが、パケットシーケンス番号が存在するかどうかを判定するためにパケット受信テーブルを検索し、パケット受信テーブルは、複数の第2のパケットの中にあって第2のネットワークデバイスに最初に到達した第2のパケットに含まれるパケットシーケンス番号を記録するために使用される。
【0069】
S15:パケットシーケンス番号がパケット受信テーブル内にない場合、第2のネットワークデバイスが第2のパケットを記憶する。
【0070】
S16:パケットシーケンス番号がパケット受信テーブル内にある場合、第2のネットワークデバイスが第2のパケットを廃棄する。
【0071】
場合によっては、第1のネットワークデバイスが第1のパケットに基づいて複数の第2のパケットを生成する方式は、以下の通りであってよい。第1のネットワークデバイスは、複数の複製パケットを取得するために第1のパケットを複製し、複製パケットの各々から第2のパケットに不必要な(第1のパケット内で搬送された経路情報および第1の指示情報などの)情報をポップアウトし、次いで、第2のパケットに必要な(第2の指示情報および第2のパケットに対応する経路情報などの)情報をプッシュする。あるいは、第1のネットワークデバイスは、第1のパケットから第2のパケットに不必要な(第1のパケット内で搬送された経路情報および第1の指示情報などの)情報をポップアウトし、ポップ処理の後に取得されたパケットを複製し、複製パケットの各々に第2のパケットに必要な(第2の指示情報および第2のパケットに対応する経路情報などの)情報をプッシュする。あるいは、第1のネットワークデバイスは、第1のパケットから第2のパケットに不必要な(第1のパケット内で搬送された経路情報および第1の指示情報などの)情報をポップアウトし、第2のパケットのすべてに共通の(第2の指示情報などの)情報をプッシュし、複数の複製パケットを取得するために、プッシュ処理の後に取得されたパケットを複製し、複製パケットに複製パケットの各々に一意の(第2のパケットに対応する経路情報などの)情報をプッシュする。第1のパケットに基づいて第1のネットワークデバイスによって複数の第2のパケットを生成する方式は、前述の3つの方式に限定されないことに留意されたい。前述の3つの方式は説明のための例にすぎない。
【0072】
第2のパケットに対応する経路情報は、第2のパケットの転送に対応する転送経路の経路情報を指し、各パケットは異なる転送経路を介して転送されることに留意されたい。したがって、各パケットの転送経路の経路情報は異なる。たとえば、1つの第2のパケットは転送経路1を介して転送され、別の第2のパケットは転送経路2を介して転送される。この場合、1つの第2のパケットに含まれる転送経路の経路情報は、転送経路1の経路情報であり、別の第2のパケットに含まれる転送経路の経路情報は、転送経路2の経路情報である。
【0073】
場合によっては、各パケットに対応する転送経路の経路情報は、第1のネットワークデバイスにおいて事前構成されてよい。複数の第2のパケットを生成した後、第1のネットワークデバイスは、各第2のパケットに対応する転送経路の経路情報を求めてローカルストレージデバイスを検索する。たとえば、第1のネットワークデバイスは、第1のパケットに対応するデータフローのフロー識別子に関連付けられた複数の転送経路の各々の経路情報を記憶する。第1のパケットは、第1のパケットに対応するデータフローのフロー識別子をさらに含んでよい。構文解析を介して第1のパケットからフロー識別子を取得すると、第1のネットワークデバイスは、フロー識別子に関連付けられた複数の転送経路の経路情報を見出し、複数の転送経路の各々の経路情報を対応する第2のパケットにカプセル化することができる。第2のパケットはまたフロー識別子を含んでよいので、第2のネットワークデバイスは、フロー識別子に基づいて、第2のパケットを再カプセル化することによって取得された第3のパケットに対応する転送経路の経路情報を検索する。
【0074】
第1のオプションの実装形態では、第1の指示情報は第1のラベルを含んでよく、第2の指示情報は第2のラベルを含んでよい。第1のラベルは第1の機能に対応し、第1の機能は、複数の第2のパケットを生成するように第1のネットワークデバイスに指示するために使用される。たとえば、第1のラベルは複製ラベルである。第2のラベルは第2の機能に対応し、第2の機能は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。たとえば、第2のラベルは冗長ラベルである。
【0075】
第1のパケットの先頭に含まれる第1のラベルを識別すると、第1のネットワークデバイスは、第1のパケットに基づいて複数の第2のパケットを生成し、異なる転送経路を介して第2のネットワークデバイスに複数の第2のパケットを転送する。
【0076】
様々な機能に対応するラベルがパケットにカプセル化されるので、ネットワークデバイスはラベルを識別し、ラベルに対応する動作を実行する。これにより、動作効率が向上する。
【0077】
第2のオプションの実装形態では、第1の指示情報と第2の指示情報の両方は第3のラベルを含んでよく、第3のラベルは、第1のパケットに対応するデータフローを一意に識別するために使用される。第3のラベルは第1のパケットに対応するデータフローを識別するために使用されてよいので、フロー識別子は、パケットオーバーヘッドを減らすために、第1のパケットおよび第2のパケットにカプセル化される必要がなくてよい。
【0078】
第3のラベルと動作タイプとの間の対応関係は、第1のネットワークデバイスおよび第2のネットワークデバイスにおいて事前構成される必要がある。たとえば、第3のラベルに対応する動作タイプは、第1のネットワークデバイスにおけるターゲット動作タイプとして構成され、ターゲット動作タイプは、第1のパケットに基づいて複数の第2のパケットを生成するように、第1のネットワークデバイスに指示するために使用される。場合によっては、ターゲット動作タイプは複製動作タイプである。第1のパケットを受信すると、第1のネットワークデバイスは、構文解析を介して第1のパケットの先頭が第3のラベルであることを取得し、第3のラベルに対応するターゲット動作タイプが複製動作タイプであることを見出す。したがって、第1のネットワークデバイスは、第1のパケットに基づいて複数の第2のパケットを生成する。第3のラベルに対応するターゲット動作タイプは、第2のネットワークデバイスにおいて構成される。ターゲット動作タイプは、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される削除動作タイプである。
【0079】
前述の方式では、第3のラベルは、パケットに対応するデータフローを識別するために使用されてよく、異なる指示情報としても使用されてよい。したがって、フロー識別子はパケットにさらにカプセル化される必要がない。これにより、パケットのオーバーヘッドが減少する。
【0080】
場合によっては、第1のラベル、第2のラベル、および第3のラベルは、SRネットワーク内で使用されるラベルである。
【0081】
第3のオプションの実装形態では、本発明のこの実施形態におけるパケットを転送するための方法は、SRv6ネットワークに適用されてよい。第1の指示情報は、第1のパケットのIPv6ヘッダ内の宛先アドレスフィールド内の第1のアドレスに対応する第1の機能情報を含んでよい。第1の機能情報は拡張機能情報であってよく、複数の第2のパケットを生成するように第1のネットワークデバイスに指示するために使用される。たとえば、第1の機能情報は複製機能である。第1のアドレスは第1のネットワークデバイスのネットワークアドレスと一致する。
【0082】
第1のネットワークデバイスは、第1のパケットに基づいて複数の第2のパケットを生成し、パケットの各々は、第2の指示情報、パケットに対応する転送経路の経路情報、パケットシーケンス番号、およびペイロードデータを含む。第2の指示情報は、第2のパケットのSRH内の第2のアドレスに対応する第2の機能情報であってよく、第2のアドレスは第2のネットワークデバイスのネットワークアドレスと一致する。第2の機能情報は他の拡張機能情報であってよく、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中の別のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。たとえば、第2の機能情報は冗長削除機能情報である。
【0083】
図3aに示されたように、SRv6 Programmingの主なアイデアは、SRv6ローカルセグメント識別情報(local segment identification、local SID)をLOC(Local)およびFUNCT(Function)の2つの部分に分割することである。2つの部分の各々は64ビットを占有する。LOCは、通常、現在のネットワークデバイスをルーティングすることができるネットワークセグメントアドレスであり、FUNCTは、通常、SIDの特定の機能に対応する。たとえば、FUNCTの現在利用可能な機能はEndpoint Functionである。
【0084】
場合によっては、SRv6パケットの構造は、
図3bに示されたIPv6ヘッダおよび
図3cに示されたSRHを含む。パケットのIPv6ヘッダ内の宛先アドレスフィールド内で搬送された情報がネットワークデバイスのSRv6 local SIDと一致し、FUNCTの機能がEndpointであるとき、ネットワークデバイスは、パケットの構造のSRH内の対応するセグメントリストを使用してIPv6ヘッダ内の宛先アドレスフィールド内の情報を更新し、更新された宛先アドレスを求めて転送テーブルをさらに検索し、検索結果に基づいてパケットを転送し、そうでない場合、ネットワークデバイスはパケットを廃棄する。IPv6ヘッダ内の宛先アドレスフィールドのフォーマットは、
図3aのSRv6 local SIDのフォーマットと同じであり、SRH内の各セグメントリストのフォーマットは、
図3aのSRv6 local SIDのフォーマットと同じであることに留意されたい。
【0085】
本発明のこの実施形態では、Endpoint Functionとは異なる2つのタイプの新しい機能情報、すなわち、第1の機能情報および第2の機能情報が拡張される。第1の機能情報は、複数の第2のパケットを生成するように、第1のネットワークデバイスに指示するために使用される。たとえば、第1の機能情報は複製機能情報である。第2の機能情報は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。たとえば、第2の機能情報は冗長削除機能情報である。
【0086】
場合によっては、第1のネットワークデバイスが第1のパケットを受信し、第1のパケットのパケットヘッダ内の宛先アドレスフィールド内のアドレスが第1のネットワークデバイスのネットワークアドレスと一致し、宛先アドレスフィールド内の第1の機能情報が複製機能情報であるとき、第1のネットワークデバイスは第1のパケットを複製する。加えて、第1のネットワークデバイスは、第1のパケットに対応するデータフローのフロー識別子を取得し、フロー識別子に対応するSRHを検索する。SRHは、第2のアドレス、および第2のアドレスに対応する第2の機能情報を含み、第2のアドレスは第2のネットワークデバイスのネットワークアドレスと一致する。加えて、SRHは、第2のパケットの転送経路の経路情報(すなわち、転送経路上のすべてのネットワークデバイスのネットワークアドレス)を含む。SRH内の第2のアドレスとは異なる別のアドレス(すなわち、転送経路上の中間ネットワークデバイスのネットワークアドレス)に対応する機能情報は、Endpointである。言い換えれば、中間ネットワークデバイスは、第2のパケットのSRH内の宛先アドレスフィールドのみを更新し、転送のために転送テーブルを検索する。第1のネットワークデバイスは、複製パケットのSRHを、検索を介して取得されたSRHと置き換え、IPv6ヘッダ内の宛先アドレスフィールドを更新して第2のパケットを取得する。
【0087】
場合によっては、SIDが
図3aの方式でカプセル化される場合、第1のパケットおよび第2のパケットは、DetNet SRv6ヘッダをさらに含んでよく、DetNet SRv6ヘッダは、フロー識別子およびパケットシーケンス番号を含む。場合によっては、SIDが
図3dの方式でカプセル化される場合、具体的には、フロー識別子およびパケットシーケンス番号が機能情報のパラメータとして使用され、SIDにカプセル化される場合、第1のパケットおよび第2のパケットは、DetNet SRv6ヘッダを含まなくてよい。これにより、パケットのオーバーヘッドが減少する。FUNは4bitを占有し、Flow IDは28bitを占有し、パケットシーケンス番号SNは32bitを占有する。
【0088】
第1の機能情報および第2の機能情報は、SRv6プロトコルをサポートするネットワーク内で前述のパケットを転送する方法を使用することができるように拡張される。これにより、パケット転送の信頼性が向上する。
【0089】
第1のネットワークデバイスは、第1のネットワークデバイスと第2のネットワークデバイスとの間の複数の転送経路の中の異なる転送経路を介して、第2のネットワークデバイスに複数の第2のパケットを転送する。
【0090】
第2のネットワークデバイスは第2のパケットを受信する。第2のネットワークデバイスによって受信された第2のパケットは、第1のネットワークデバイスによって送信された第2のパケットとは異なる場合があることに留意されたい。たとえば、第1のネットワークデバイスと第2のネットワークデバイスとの間の転送経路上に少なくとも1つの中間ネットワークデバイスが存在する。中間ネットワークデバイスは、受信されたパケットを再カプセル化(たとえば、対応するMPLSラベルをポップアウト)し、再カプセル化されたパケットを転送する。しかしながら、中間ネットワークデバイスによって再カプセル化されたパケットは、依然として、第2の指示情報、パケットシーケンス番号、ペイロードデータなどを含む。本質的に、パケットは、第1のネットワークデバイスによって送信された第2のパケットと同じである。したがって、パケットは、本発明のこの実施形態では、第2のパケットと総称される。
【0091】
図1は、本明細書における説明のための例としてまだ使用されている。ネットワークデバイスR2とネットワークデバイスR5との間に2つの転送経路が存在し、転送経路R2-R4-R5が説明のための例として使用される。ネットワークデバイスR2が第2のパケットを送信し、第2のパケットがネットワークデバイスR4に到達する。ネットワークデバイスR4は、第2のパケットに対して対応するカプセル化処理を実行し(たとえば、対応するMPLSラベルをポップアウトするか、またはIPv6ヘッダ内の宛先アドレスフィールド内の情報を更新し)、カプセル化処理の後に取得されたパケットをネットワークデバイスR5に送信する。本発明のこの実施形態では、ネットワークデバイスR5によって受信されたパケットは、依然として第2のパケットと呼ばれ、第2のパケットは、ネットワークデバイスR2によって送信された第2のパケットと本質的に同じである。しかしながら、中間ネットワークデバイスR4によって実行された処理のために、ネットワークデバイスR5によって受信されたパケットにおいていくつかの変更が発生する可能性がある。
【0092】
第2のネットワークデバイスは第2のパケットを構文解析し、第2のパケットが指示情報を含むと判断すると、第2のパケットに含まれるパケットシーケンス番号が存在するかどうかを判定するために、パケット受信テーブルを検索する。場合によっては、指示情報は、第2のネットワークデバイスに最初に到達したパケットを除く、第1のネットワークデバイスによって送信された複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。指示情報は、第1のネットワークデバイスによって送信された第2のパケットに含まれる第2の指示情報と同じである。パケット受信テーブルは、第2のネットワークデバイスに最初に到達した第2のパケットに含まれるパケットシーケンス番号を記録するために使用される。たとえば、第2のネットワークデバイスがパケットを受信するたびに、第2のネットワークデバイスは、パケットに含まれるパケットシーケンス番号を求めてパケット受信テーブルを検索する。パケットシーケンス番号がパケット受信テーブル内にある場合、それは、第2のネットワークデバイスがそのパケットシーケンス番号を含むパケットを受信していることを示し、第2のネットワークデバイスはパケットを廃棄する。パケットシーケンス番号がパケット受信テーブル内にない場合、それは、第2のネットワークデバイスがそのパケットシーケンス番号を含むパケットを受信していないことを示し、第2のネットワークデバイスはパケットを記憶する。場合によっては、第2のネットワークデバイスはパケットをさらに転送することができる。
【0093】
オプションの実装形態では、指示情報はターゲット機能に対応するラベルを含み、ターゲット機能は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。ここでのラベルは、上述された第1のオプションの実装形態において第1のネットワークデバイスによって送信された第2のパケットに含まれる第2のラベルと同じである。ここでのラベルに対応するターゲット機能は、第2のラベルに対応する第2の機能と同じであり、詳細はここでは記載されない。第2のパケットの先頭に含まれるラベルを識別すると、第2のネットワークデバイスは、第2のネットワークデバイスに最初に到達した第2のパケットを記憶し、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄する。
【0094】
ターゲット機能に対応するラベルは第2のパケットにカプセル化されるので、第2のネットワークデバイスは、ラベルを識別し、ラベルに対応する動作を実行する。これにより、動作効率が向上する。
【0095】
別のオプションの実装形態では、指示情報はラベルを含んでよく、ラベルは、第1のパケットに対応するデータフローを識別するために使用される。ここでのラベルは、上述された第2のオプションの実装形態において第1のネットワークデバイスによって送信された第2のパケットに含まれる第3のラベルと同じであり、詳細はここでは記載されない。第2のネットワークデバイスにおいてラベルと動作種別との間の対応関係が構成される必要があることに留意されたい。ラベルに対応する動作タイプがターゲット動作タイプであることを見出すと、第2のネットワークデバイスは、第2のパケットに含まれるパケットシーケンス番号が存在するかどうかを判定するために、パケット受信テーブルを検索する。ターゲット動作タイプは、第2のネットワークデバイスに最初に到達したパケットを除く、第1のネットワークデバイスによって送信された複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。
【0096】
前述の方式では、ラベルは、パケットに対応するデータフローを識別するために使用されるだけでなく、異なる指示情報としても使用されてよい。したがって、フロー識別子はパケットにさらにカプセル化される必要がない。これにより、パケットのオーバーヘッドが減少する。
【0097】
さらに別のオプションの実装形態では、指示情報は、第2のパケットのIPv6ヘッダ内の宛先アドレスフィールド内の宛先アドレスに対応するターゲット機能情報を含んでよく、宛先アドレスは、第2のネットワークデバイスのネットワークアドレスと一致する。ターゲット機能情報は、第2のネットワークデバイスに最初に到達したパケットを除く、第1のネットワークデバイスによって送信された複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。第2のパケットのIPv6ヘッダのフォーマットについては、前述の第3のオプションの実装形態を参照されたい。詳細は本明細書では記載されない。
【0098】
第1のネットワークデバイスと第2のネットワークデバイスとの間の転送に使用される中間ネットワークデバイスが存在する場合があることに留意されたい。転送プロセスでは、中間ネットワークデバイスは、第1ネットワークデバイスによって送信された第2のパケットに含まれるSRHに基づいて、第1ネットワークデバイスによって送信された第2のパケットのIPv6ヘッダを更新する。したがって、第2のネットワークデバイスによって受信された第2のパケットは、IPv6ヘッダ内で第1のネットワークデバイスによって送信された第2のパケットとは異なる。第2のパケット内のIPv6ヘッダ内の情報は、第1のネットワークデバイスによって送信された第2のパケットのSRHに含まれる第2の指示情報と同じである。
【0099】
場合によっては、ネットワークは第3のネットワークデバイスをさらに含み、第2のネットワークデバイスと第3のネットワークデバイスとの間に少なくとも1つの転送経路が存在する。パケット受信テーブル内で、受信された第2のパケットに含まれるパケットシーケンス番号を見出さないとき、第2のネットワークデバイスは、第2のパケットに含まれるフロー識別子に対応する転送経路の経路情報を検索し、第2のパケット内の経路情報をカプセル化して第3のパケットを取得し、再カプセル化の後に取得された第3のパケットを第3のネットワークデバイスに転送する。経路情報は、前述の実施形態に記載されたMPLSラベルスタックおよびSRHを含んでよい。
【0100】
SRv6プロトコルをサポートするネットワーク内で前述のパケットを転送する転送方法を使用することができるように、ターゲット機能情報が拡張される。これにより、パケット転送の信頼性が向上する。
【0101】
以下で、
図4~
図7Aおよび
図7Bを参照して、例を使用して上記の実施形態を記載する。
図4~
図7Aおよび
図7Bでは、フロー識別子はFlow IDと略称され、パケットシーケンス番号はSNと略称される。
【0102】
場合によっては、
図4のシナリオを参照して、第1の指示情報が第1のラベルを含むことを記載するために例が使用され、前述の説明では前述の第2の指示情報は第2のラベルを含む。
図4に示されたように、シナリオは、MPLSセグメントルーティング(segment routing、SR)ネットワーク内のパケット転送シナリオであってよく、ペイロードデータはDetNetペイロードデータであってよい。DetNetヘッダ(DetNet MPLS Segment Routing Encapsulation Header)を形成するために、SRラベルスタックの下部に2つのフィールドが拡張される。2つのフィールドは、フロー識別子(flow identifier、Flow ID)およびパケットシーケンス番号(sequence number、SN)を含む。加えて、特別な意味を持つ3つのSRラベル、すなわち、複製ラベル、冗長ラベル、DetNetラベルが定義される。
【0103】
複製ラベルは、パケットを複製するための指示として使用される。ネットワークデバイスによって受信されたDetNetパケットの先頭が複製ラベルであるとき、ネットワークデバイスはパケットを複製し、対応するラベルスタック(たとえば、冗長ラベルおよびMPLSラベルスタック)をパケットにプッシュする。DetNet冗長ラベルは、冗長パケットを削除するための指示として使用される。受信されたDetNetパケットの先頭が冗長ラベルであるとき、パケットのFlow IDおよびSequence Numが検索され、最初に受信されたパケットが記憶され、冗長パケットが廃棄される。パケットがさらに転送される必要がある場合、パケットが転送される前に、対応するラベルスタック(たとえば、DetNetラベルおよびMPLSラベルスタックなど)がパケットに追加される。次いで、転送が実行される。DetNetラベルは、送信されたパケットがDetNetデータフローに属することを記すために使用される。DetNetラベルはDetNetヘッダを有する。本発明のこの実施形態で言及される第1のラベルは、前述の複製ラベルであってよく、第2のラベルは、前述の冗長ラベルであってよい。
【0104】
複製ラベルスタックテーブルは、第1のネットワークデバイスにおいて構成される。複製ラベルスタックテーブルは、Flow IDと、複数の第2のパケットに対応する複数の転送経路の経路情報(MPLSラベルスタック)との間の関連付け関係を記述するために使用され、新しいMPLSラベルスタックを第2のパケットにプッシュするために使用される。新しいMPLSラベルスタックは、第2のパケットの転送経路を示すために使用される。収束ラベルスタックテーブルおよびパケット受信テーブルは、第2のネットワークデバイスにおいて構成される。収束ラベルスタックテーブルは、Flow IDと第3のパケットに対応する転送経路の経路情報との間の関連付け関係を記述するために使用され、第3のパケットは、第2のネットワークデバイスに最初に到達した第2のパケットに対して再カプセル化が実行された後に取得される。収束ラベルスタックテーブルは、第3のパケットに新しいMPLSラベルスタックをプッシュするために使用され、新しいMPLSラベルスタックは第3のパケットの転送経路を示すために使用される。第2のネットワークデバイスがこれ以上別のネットワークデバイスに第2のパケットを転送しない場合、収束ラベルスタックテーブルは、第2のネットワークデバイスにおいて構成される必要がないことに留意されたい。パケット受信テーブルは、Flow IDおよびSequence Numを記録するために使用される。特定のシーケンス番号に対応するパケットが第2のネットワークデバイスによって受信されている場合、第2のネットワークデバイスはパケット受信テーブルにシーケンス番号を記録する。シーケンス番号に対応するパケットが再び第2のネットワークデバイスに到達した場合、第2のネットワークデバイスはそのパケットを廃棄する。第2のネットワークデバイスは、パケット受信テーブルに基づいて、第1のネットワークデバイスによって送信された複数の第2のパケットをフィルタリングし、第2のネットワークデバイスに最初に到達した第2のパケットのみを記憶または転送することができる。
【0105】
具体的には、
図4を参照すると、第1のネットワークデバイスはR2であり、第2のネットワークデバイスはR5である。ネットワークデバイスR1は、DetNetパケットを受信し、DetNetパケットをカプセル化し、具体的には、入力ストリームID1、SN10、および複製ラベル1001をDetNetパケットにカプセル化して第1のパケットを取得する。ネットワークデバイスR1とネットワークデバイスR2との間にマルチホップルートが存在する場合、第1のパケットの転送経路を示すために使用されるMPLSラベルスタックは、パケットにさらにカプセル化される必要がある。ネットワークデバイスR2は、ネットワークデバイスR1によって送信された第1のパケットを受信し、第1のパケットを構文解析し、第1のパケットのラベルスタックの先頭が複製ラベル1001であると判断する。したがって、ネットワークデバイスR2は、第1のパケットを複製し、複製ラベル1001をポップアウトし、新しいラベルスタックをプッシュして2つの第2のパケットを取得する。新しいラベルスタックは、冗長ラベル1002、および第2のパケットの転送経路を示すために使用されるMPLSラベルスタックを含み、冗長ラベル1002はMPLSラベルスタックの下部に位置する。
【0106】
ネットワークデバイスR2は、取得された2つの第2のパケットをネットワークデバイスR3およびネットワークデバイスR4に別々に送信する。第2のパケットを受信した後、ネットワークデバイスR3およびネットワークデバイスR4は、第2のパケットのラベルスタックの先頭にあるMPLSラベルに基づいて第2のパケットを転送する。ネットワークデバイスR5は、10のSequence Numを有し、ネットワークデバイスR4およびネットワークデバイスR3から別々に送信されたパケットを受信する。たとえば、ネットワークデバイスR4からのパケットが最初に到着した場合、ネットワークデバイスR5はパケット受信テーブルを更新し、DetNetラベルおよび後続の転送経路を示すMPLSラベルスタックを含む新しいラベルスタックをプッシュする。次いで、ネットワークデバイスR3からのパケットが到着すると、R5は検索し、パケットシーケンス番号SN10がパケット受信テーブル内にあると判断し、したがって、ネットワークデバイスR3によって転送されたパケットを廃棄する。ネットワークデバイスR5によって送信されたパケットは、最終的にネットワークデバイスR7に送信され、ネットワークデバイスR7は、脱カプセル化を実行し、ペイロードデータを取得する。
【0107】
場合によっては、
図5のシナリオを参照して、前述の第1の指示情報と前述の第2の指示情報の両方が第3のラベルであることを記載するために例が使用される。
図5に示されたように、シナリオは、MPLS SRプロトコルによるパケット転送シナリオであってよい。ペイロードデータはDetNetペイロードデータであってよい。パケットシーケンス番号(SN)のフィールドは、SRラベルスタックの下部に拡張される。加えて、DetNet SRラベル(すなわち、第3のラベル)が定義され、DetNet SRラベルはデータフローと1対1の対応関係にある。第1のネットワークデバイスおよび第2のネットワークデバイスは、DetNet SRラベルを識別することにより、パケットに対して実行された動作の動作タイプを特定する。第1のネットワークデバイスは
図5のネットワークデバイスR2であってよく、第2のネットワークデバイスは
図5のネットワークデバイスR5であってよい。
【0108】
DetNet SRラベル動作テーブルは、第1のネットワークデバイスおよび第2のネットワークデバイスにおいて構成される。ラベル動作テーブルは、DetNet SRラベルに対応する動作タイプを記述するために使用される。たとえば、第1のネットワークデバイスでは、DetNet SRラベルに対応し、ラベル動作テーブルに記述されている動作タイプは、複製動作である。第2のネットワークデバイスでは、DetNet SRラベルに対応し、ラベル動作テーブルに記述されている動作タイプは、冗長削除動作である。加えて、第2のネットワークデバイスはパケット受信テーブルを構成する。パケット受信テーブルの説明については、
図4の説明を参照されたい。
図5は、DetNet SRラベルを使用して
図4のFlow IDを置き換え、詳細はここでは記載されない。
【0109】
具体的には、
図5を参照すると、ネットワークデバイスR1は、DetNetパケットを受信し、DetNetパケットをカプセル化し、具体的には、SN10およびDetNet12(すなわち、DetNet SRラベル)をDetNetパケットにカプセル化して第1のパケットを取得する。ネットワークデバイスR1とネットワークデバイスR2との間にマルチホップルートが存在する場合、第1のパケットの転送経路を示すために使用されるMPLSラベルスタックは、パケットにさらにカプセル化される必要がある。ネットワークデバイスR2は、ネットワークデバイスR1によって送信された第1のパケットを受信し、第1のパケットを構文解析し、第1のパケットに含まれるDetNet12ラベルを取得し、DetNet12に対応するターゲット動作タイプを求めてラベル動作テーブルを検索する。ターゲット動作タイプが第1のパケットに対して複製動作を実行するように指示する場合、ネットワークデバイスR2は第1のパケットを複製し、新しいラベルスタックをプッシュして2つの第2のパケットを取得する。新しいラベルスタックは、第2のパケットの転送経路を示すために使用されるMPLSラベルスタックを含む。
【0110】
ネットワークデバイスR2は、取得された2つの第2のパケットをネットワークデバイスR3およびネットワークデバイスR4に別々に送信する。第2のパケットを受信した後、ネットワークデバイスR3およびネットワークデバイスR4は、第2のパケットのラベルスタックの先頭にあるMPLSラベルに基づいて第2のパケットを転送する。ネットワークデバイスR5は、ネットワークデバイスR4およびネットワークデバイスR3から別々に送信されたパケットを受信し、DetNetラベル動作テーブルを検索し、DetNet12ラベルに対応するターゲット動作タイプが冗長削除であることを見出す。したがって、ネットワークデバイスR5は、最初に受信されたパケットを転送し、繰り返し受信されたパケットを廃棄する。ネットワークデバイスR5の具体的な動作プロセスについては、
図4の説明を参照されたい。詳細は本明細書では記載されない。
【0111】
場合によっては、
図6Aおよび
図6Bならびに
図7Aおよび
図7Bのシナリオを参照して、前述の第1の指示情報が第1のパケットのIPv6ヘッダ内の宛先アドレスフィールド内の第1の機能情報を含み、前述の第2の指示情報が第2のパケットのSRH内の第2の機能情報を含むことを記載するために例が使用される。
図6Aおよび
図6Bならびに
図7Aおよび
図7Bに示されたように、シナリオはSRv6プロトコルによるパケット転送シナリオであってよく、ペイロードデータはDetNetペイロードデータであってよい。第1のネットワークデバイスはネットワークデバイスR2であってよく、第2のネットワークデバイスはネットワークデバイスR5であってよい。
【0112】
パケットSRH複製テーブルは、第1のネットワークデバイスにおいて構成される。パケットSRH複製テーブルは、フロー識別子と複数のSRHとの間の対応関係を記述するために使用され、複製パケットに新しいSRHをカプセル化して第2のパケットを取得するために使用される。冗長パケットSRH削除テーブルは、第2のネットワークデバイスにおいて構成される。冗長パケットSRH削除テーブルは、フロー識別子と複数のSRHの間の対応関係を記述するために使用され、第2のネットワークデバイスによって最初に受信された第2のパケットに新しいSRHをカプセル化するために使用される。さらに、パケット受信テーブルは、第2のネットワークデバイスにおいて構成され、第2のネットワークデバイスに最初に到達した第2のパケットに含まれるパケットシーケンス番号を記録するために使用される。
【0113】
加えて、2つのタイプの機能情報、すなわち、複製機能情報および冗長削除機能情報が拡張される。複製機能情報:ネットワークデバイスがSRv6パケットを受信し、パケットのIPv6ヘッダ内の宛先アドレスがネットワークデバイスのネットワークアドレスと一致し、宛先アドレスに対応する機能情報が複製機能情報であるとき、ネットワークデバイスはパケットを複製し、フロー識別子を取得し、フロー識別子に対応するSRHを求めてパケットSRH複製テーブルで検索する。次いで、ネットワークデバイスは、複製パケットのSRHを、フロー識別子に対応し、テーブル内にあるSRHと置き換え、IPv6ヘッダ内の宛先アドレスフィールドを更新して第2のパケットを取得し、第2のパケットのIPv6ヘッダ内の宛先アドレスフィールド内の情報に基づいてパケットを転送する。
【0114】
冗長削除機能情報:ネットワークデバイスがSRv6パケットを受信し、パケットのIPv6ヘッダ内の宛先アドレスがネットワークデバイスのネットワークアドレスと一致し、宛先アドレスに対応する機能情報が冗長削除機能情報であるとき、ネットワークデバイスはフロー識別子およびパケットシーケンス番号を取得し、パケットシーケンス番号が存在するかどうかを判定するためにパケット受信テーブルを検索し、パケットのシーケンス番号がパケット受信テーブル内にある場合パケットを廃棄する。パケットシーケンス番号がパケット受信テーブル内にない場合、ネットワークデバイスは冗長パケットSRH削除テーブルを検索し、受信されたパケットのSRHを、フロー識別子に対応し、冗長パケットSRH削除テーブル内にあるSRHと置き換え、IPv6ヘッダ内の宛先アドレスフィールドを更新し、宛先アドレスフィールド内の情報に基づいてパケットを転送する。
【0115】
フロー識別子およびパケットシーケンス番号は、パケットのDetNet SRv6ヘッダにカプセル化されてよい。言い換えれば、DetNet SRv6ヘッダは、フロー識別子およびパケットシーケンス番号を含む。
図6Aおよび
図6Bを参照すると、ネットワークデバイスR1は、パケットをカプセル化し、DetNet SRv6ヘッダ、SRH、およびIPv6ヘッダを追加して第1のパケットを取得する。ネットワークデバイスR2は第1のパケットを受信し、第1のパケットを構文解析し、第1のパケットのIPv6ヘッダ内の宛先アドレスがネットワークデバイスR2のネットワークアドレスと一致し、IPv6ヘッダ内の宛先アドレスに対応する機能情報が複製機能であると判断する。この場合、ネットワークデバイスR2はパケットを複製する。ネットワークデバイスR2は、DetNet SRv6ヘッダからフロー識別子およびパケットシーケンス番号を取得し、対応するSRHを求めてパケットSRH複製テーブルを検索し、複製パケットのSRHを検索されたSRHと置き換え、複製パケットのIPv6ヘッダを更新して第2のパケットを取得する。
【0116】
ネットワークデバイスR2は、取得された2つの第2のパケットをネットワークデバイスR3およびネットワークデバイスR4に別々に送信する。ネットワークデバイスR3およびネットワークデバイスR4に対応する機能情報はEndpointなので、ネットワークデバイスR3およびネットワークデバイスR4は、各々パケットのSRHに基づいてパケットのIPv6ヘッダ内の宛先アドレスフィールドのみを更新し、パケットを転送する。場合によっては、パケットのSRHに基づいてパケットの宛先アドレスフィールドを更新する方式は、具体的に、宛先アドレスフィールド内の情報をSRH内の対応するセグメントリストと置き換えることであってよい。
【0117】
ネットワークデバイスR5は、10のSequence Numを有し、ネットワークデバイスR4およびネットワークデバイスR3から別々に送信されたパケットを受信する。たとえば、ネットワークデバイスR4からのパケットが最初に到着し、パケットの宛先アドレスフィールド内の宛先アドレスがネットワークデバイスR5のネットワークアドレスと一致し、宛先アドレスに対応する機能情報が冗長削除機能情報であるとネットワークデバイスR5が判断した場合、ネットワークデバイスR5は検索し、パケットシーケンス番号がパケット受信テーブルに内にないと判断する。この場合、ネットワークデバイスR5はパケット受信テーブルを更新し、冗長パケットSRH削除テーブルに基づいて受信パケットのSRHを置き換え、パケットのIPv6ヘッダを更新し、パケットを転送する。次いで、ネットワークデバイスR3からのパケットが到着すると、R5は検索し、パケットシーケンス番号SN10がパケット受信テーブル内にあると判断し、したがって、ネットワークデバイスR3によって転送されたパケットを廃棄する。最後に、ネットワークデバイスR5によって送信されたパケットは、ネットワークデバイスR7に送信され、ネットワークデバイスR7は、脱カプセル化を実行し、ペイロードデータを取得する。
【0118】
フロー識別子およびパケットシーケンス番号は、SRHにさらにカプセル化されてよい。言い換えれば、セグメントリストは
図3dに示されたフォーマットでカプセル化される。
図7Aおよび
図7Bに示されたように、各パケットのカプセル化構造と
図6Aおよび
図6Bのカプセル化構造との間の違いは、DetNet SRv6ヘッダが追加される必要がないことにある。各ネットワークデバイスの動作方式は、
図6Aおよび
図6Bの実施形態における動作方式と同じである。詳細は本明細書では記載されない。
【0119】
図8を参照すると、本発明の一実施形態は、ネットワーク内でパケットを転送するための第1のネットワークデバイス800を提供する。ネットワークは、第1のネットワークデバイスおよび第2のネットワークデバイスを含み、第1のネットワークデバイスと第2のネットワークデバイスとの間に複数の転送経路が存在する。第1のネットワークデバイスは、受信ユニット801、生成ユニット802、転送ユニット803、および検索ユニット804を含む。
【0120】
受信ユニット801は第1のパケットを受信するように構成され、第1のパケットは、第1の指示情報、ペイロードデータ、および第1のパケットに対応するデータフロー内の第1のパケットのパケットシーケンス番号を含む。
【0121】
生成ユニット802は、第1のパケットが第1の指示情報を備えると第1のネットワークデバイスが判断すると、第1のパケットに基づいて複数の第2のパケットを生成するように構成され、複数の第2のパケットの各々は、ペイロードデータ、パケットシーケンス番号、および第2の指示情報を含む。
【0122】
転送ユニット803は、複数の転送経路の中の異なる転送経路を介して第2のネットワークデバイスに複数の第2のパケットを別々に転送するように構成され、第2の指示情報は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。
【0123】
可能な実装形態では、第1のパケットは、第1のパケットに対応するデータフローのフロー識別子をさらに含み、第1のネットワークデバイスは検索ユニット804をさらに含む。
【0124】
検索ユニット804は、フロー識別子に関連付けられた複数の転送経路の各々の経路情報を検索するように構成され、1つの第2のパケットは複数の転送経路のうちの1つに対応する。
【0125】
可能な実装形態では、第1の指示情報は第1のラベルを含み、第2の指示情報は第2のラベルを含み、第1のラベルは第1の機能に対応し、第2のラベルは第2の機能に対応し、第1の機能は、複数の第2のパケットを生成するように第1のネットワークデバイスに指示するために使用され、第2の機能は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように第2のネットワークデバイスに指示するために使用される。
【0126】
転送経路の経路情報は、転送経路のマルチプロトコルラベルスイッチングMPLSラベルスタックを含む。
【0127】
可能な実装形態では、第1の指示情報は第3のラベルを含み、第2の指示情報は第3のラベルを含み、第3のラベルは第1のパケットに対応するデータフローを識別するために使用される。
【0128】
転送経路の経路情報は、転送経路のMPLSラベルスタックを含む。
【0129】
検索ユニット804は、第3のラベルに対応する動作タイプを検索するようにさらに構成される。
【0130】
生成ユニット802は、具体的に、第3のラベルに対応する動作タイプがターゲット動作タイプである場合、第1のパケットに基づいて複数の第2のパケットを生成するように構成され、ターゲット動作タイプは、複数の第2のパケットを生成するように第1のネットワークデバイスに指示するために使用される。
【0131】
可能な実装形態では、第1の指示情報は、第1のパケットのインターネットプロトコルバージョン6 IPv6ヘッダ内の宛先アドレスフィールド内の第1のアドレスに対応する第1の機能情報を含み、第1のアドレスは第1のネットワークデバイスのネットワークアドレスと一致する。
【0132】
第2のパケットはセグメントルーティングヘッダSRHを含み、SRHは、第2の指示情報および第2のパケットに対応する転送経路の経路情報を含み、第2の指示情報は、SRH内のターゲットセグメントリストの第2のアドレスに対応する第2の機能情報を含み、第2のアドレスは第2のネットワークデバイスのネットワークアドレスと一致する。
【0133】
可能な実装形態では、フロー識別子およびパケットシーケンス番号は、SRH内のセグメントリストにカプセル化される。
【0134】
あるいは、第2のパケットはIPv6ベースのセグメントルーティングプロトコルSRv6ヘッダをさらに含み、フロー識別子およびパケットシーケンス番号はSRv6ヘッダにカプセル化される。
【0135】
第1のネットワークデバイス800は、ルータ、スイッチ、または転送機能を有するネットワークデバイスであってよい。第1のネットワークデバイス800は、前述の実施形態における第1のネットワークデバイスの機能を実装することができる。具体的な実行ステップについては、前述の方法実施形態を参照されたい。詳細は本明細書では記載されない。
【0136】
図9を参照すると、本発明の一実施形態は、ネットワーク内でパケットを転送するための第2のネットワークデバイス900を提供する。ネットワークは、第1のネットワークデバイスおよび第2のネットワークデバイスを含み、第1のネットワークデバイスと第2のネットワークデバイスとの間に複数の転送経路が存在する。第2のネットワークデバイスは、受信ユニット901、検索ユニット902、記憶ユニット903、および廃棄ユニット904を含む。
【0137】
受信ユニット901は第2のパケットを受信するように構成され、第2のパケットは、第1のパケットに基づいて第1のネットワークデバイスによって生成された複数の第2のパケットのうちのいずれか1つであり、第2のパケットは、指示情報、第1のパケット内で搬送されたペイロードデータ、および第1のパケットに対応するデータフロー内の第1のパケットのパケットシーケンス番号を含む。
【0138】
検索ユニット902は、第2のパケットが指示情報を含むと第2のネットワークデバイスが判断すると、パケットシーケンス番号が存在するかどうかを判定するためにパケット受信テーブルを検索するように構成され、パケット受信テーブルは、複数の第2のパケットの中にあって第2のネットワークデバイスに最初に到達した第2のパケットに含まれるパケットシーケンス番号を記録するために使用される。
【0139】
記憶ユニット903は、パケットシーケンス番号がパケット受信テーブル内にない場合、第2のパケットを記憶するように構成される。
【0140】
廃棄ユニット904は、パケットシーケンス番号がパケット受信テーブル内にある場合、第2のパケットを廃棄するように構成される。
【0141】
可能な実装形態では、指示情報はターゲット機能に対応するラベルを含み、ターゲット機能は、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。
【0142】
可能な実装形態では、指示情報はラベルを含み、ラベルは、第1のパケットに対応するデータフローを識別するために使用される。
【0143】
検索ユニット902は、具体的に、ラベルに対応する動作タイプがターゲット動作タイプである場合、パケットシーケンス番号が存在するかどうかを判定するためにパケット受信テーブルを検索するように構成され、ターゲット動作タイプは、第2のネットワークデバイスに最初に到達したパケットを除く複数の第2のパケットの中のパケットを廃棄するように、第2のネットワークデバイスに指示するために使用される。
【0144】
可能な実装形態では、指示情報は、第2のパケットのインターネットプロトコルバージョン6 IPv6ヘッダ内の宛先アドレスフィールド内の宛先アドレスに対応するターゲット機能情報を含み、宛先アドレスは第2のネットワークデバイスのネットワークアドレスと一致する。
【0145】
可能な実装形態では、ネットワークは第3のネットワークデバイスをさらに含み、第2のネットワークデバイスは、生成ユニット905および転送ユニット906をさらに含む。
【0146】
生成ユニット905は、第2のパケットに基づいて第3のパケットを生成するように構成され、第3のパケットはペイロードデータおよびパケットシーケンス番号を含む。
【0147】
転送ユニット906は、第3のネットワークデバイスに第3のパケットを転送するように構成される。
【0148】
第2のネットワークデバイス900は、ルータ、スイッチ、または転送機能を有するネットワークデバイスであってよい。第2のネットワークデバイスは、前述の実施形態における第2のネットワークデバイスの機能を実装することができる。具体的な実行ステップについては、前述の方法実施形態を参照されたい。詳細は本明細書では記載されない。
【0149】
図10を参照すると、本発明の一実施形態はネットワークデバイス1000を提供する。ネットワークデバイス1000は、ルータ、スイッチ、または転送機能を有するネットワークデバイスであってよい。ネットワークデバイス1000は、前述の方法実施形態における第1のネットワークデバイスまたは第2のネットワークデバイスの機能を実装することができる。ネットワークデバイス1000は、プロセッサ1003、ネットワークインターフェース1002、およびメモリ1001を含む。メモリは、ネットワークデバイスのプログラムコードおよびデータを記憶するように構成されてよく、プロセッサ1003は、メモリ1001内のプログラム命令を呼び出して、前述の実施形態に示された方法を実行するように構成される。具体的な実行ステップについては、前述の実施形態を参照されたい。詳細は本明細書では記載されない。
【0150】
図11を参照すると、本発明の一実施形態はネットワークデバイス1100を提供する。ネットワークデバイス1100は、ルータ、スイッチ、または転送機能を有するネットワークデバイスであってよい。ネットワークデバイス1000は、前述の方法実施形態における第1のネットワークデバイスまたは第2のネットワークデバイスの機能を実装することができる。ネットワークデバイス1100は、主制御基板1101およびインターフェース基板1102を含む。主制御基板1101は、プロセッサ1103およびメモリ1104を含む。インターフェース基板1102は、プロセッサ1105、メモリ1106、およびインターフェースカード1107を含む。主制御基板1101はインターフェース基板1102に結合される。
【0151】
メモリ1104は、主制御基板1101のプログラムコードを記憶するように構成されてよく、プロセッサ1103は、メモリ1104内のプログラムコードを呼び出して、パケット処理の対応する動作を実行するように構成される。
【0152】
メモリ1106は、インターフェース基板1102のプログラムコードを記憶するように構成されてよく、プロセッサ1105は、メモリ1106内のプログラムコードを呼び出して、パケットの受信または送信の対応する動作を実行するように構成される。
【0153】
可能な実装形態では、主制御基板1101とインターフェース基板1102の間に、プロセス間通信IPC制御チャネルが確立される。
【0154】
本発明の一実施形態は、
図2に示された実施形態において第1のネットワークデバイスまたは第2のネットワークデバイスによって使用されるコンピュータソフトウェア命令を記憶するように構成された、コンピュータ記憶媒体をさらに提供し、コンピュータソフトウェア命令は、前述の方法実施形態における方法を実行するために使用されるプログラムを含む。
【0155】
本発明の実施形態における第1のネットワークデバイスにおける「第1の」は、名前識別子として使用されるにすぎず、順番における1番目を表すものではない。「第2の」および「第3の」という単語についても、このルールが適用される。
【0156】
本発明に開示された内容と組み合わせて記載された方法またはアルゴリズムのステップは、ハードウェアによって実施されてもよく、プロセッサがソフトウェア命令を実行することによって実施されてもよい。ソフトウェア命令は対応するソフトウェアモジュールを含んでよい。ソフトウェアモジュールは、ランダムアクセスメモリ(random access memory、RAM)、フラッシュメモリ、読取り専用メモリ(read only memory、ROM)、消去可能プログラマブル読取り専用メモリ(erasable programmable ROM、EPROM)、電気的消去可能プログラマブル読取り専用メモリ(Electrically EPROM、EEPROM)、ハードディスク、リムーバルハードディスク、コンパクトディスク、または当技術分野でよく知られた任意の他の形態の記憶媒体に記憶されてよい。たとえば、記憶媒体はプロセッサに結合されるので、プロセッサは、記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができる。確かに、記憶媒体は、代替としてプロセッサの構成要素であってよい。プロセッサおよび記憶媒体はASIC内に配置されてよい。加えて、ASICは、コアネットワークインターフェースデバイス内に配置されてよい。確かに、プロセッサおよび記憶媒体は、個別の構成要素としてコアネットワークインターフェースデバイス内に存在してよい。
【0157】
前述の1つまたは複数の例では、本発明に記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せによって実装されてよいことに当業者は気付くべきである。機能がソフトウェアによって実装されると、機能は、コンピュータ可読媒体内に記憶されるか、またはコンピュータ可読媒体内で1つもしくは複数の命令もしくはコードとして送信されてよい。コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体が含まれ、通信媒体には、1つの場所から別の場所へのコンピュータプログラムの送信を容易にする任意の媒体が含まれる。記憶媒体は、汎用コンピュータまたは専用コンピュータにアクセス可能な任意の利用可能な媒体であってよい。
【0158】
前述の具体的な実装形態では、本発明の目的、技術的解決策、および有益な効果がさらに詳細に記載された。前述の説明は、本発明の具体的な実装形態にすぎず、本発明の保護範囲を限定するものではないことを理解されたい。本発明の趣旨および原理内で行われるいかなる修正、均等な置換、または改善も、本発明の保護範囲内に入るべきである。
【符号の説明】
【0159】
800 第1のネットワークデバイス
801 受信ユニット
802 生成ユニット
803 転送ユニット
804 検索ユニット
900 第2のネットワークデバイス
901 受信ユニット
902 検索ユニット
903 記憶ユニット
904 廃棄ユニット
905 生成ユニット
906 転送ユニット
1000 ネットワークデバイス
1001 メモリ、複製ラベル
1002 ネットワークインターフェース、冗長ラベル
1003 プロセッサ
1100 ネットワークデバイス
1101 主制御基板
1102 インターフェース基板
1103 プロセッサ
1104 メモリ
1105 プロセッサ
1106 メモリ
1107 インターフェースカード