(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-02
(45)【発行日】2024-10-10
(54)【発明の名称】仮想ネットワークデバイス、仮想ネットワークデバイスの動作方法および非一時的コンピュータ可読記憶媒体
(51)【国際特許分類】
H04L 45/586 20220101AFI20241003BHJP
【FI】
H04L45/586
(21)【出願番号】P 2022563954
(86)(22)【出願日】2021-03-10
(86)【国際出願番号】 CN2021079987
(87)【国際公開番号】W WO2021223510
(87)【国際公開日】2021-11-11
【審査請求日】2023-02-20
(32)【優先日】2020-05-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】522362660
【氏名又は名称】プライムワン リミテッド
【氏名又は名称原語表記】PRIMEWAN LIMITED
(74)【代理人】
【識別番号】100107456
【氏名又は名称】池田 成人
(74)【代理人】
【識別番号】100162352
【氏名又は名称】酒巻 順一郎
(74)【代理人】
【識別番号】100123995
【氏名又は名称】野田 雅一
(72)【発明者】
【氏名】リー, ミン
(72)【発明者】
【氏名】ジア, ユアン ヤン
【審査官】中川 幸洋
(56)【参考文献】
【文献】米国特許出願公開第2012/0093034(US,A1)
【文献】特開2000-286853(JP,A)
【文献】欧州特許出願公開第01045553(EP,A2)
【文献】特表2017-508395(JP,A)
【文献】特開2015-039166(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/586
(57)【特許請求の範囲】
【請求項1】
複数の入力フレームを受信し、前記複数の入力フレームを調べて、それぞれの入力フレームに関するフレームタイプを特定し、前記フレームタイプに基づいて、それぞれの入力フレームに関連付けられている仮想出口デバイスを特定し、前記複数の入力フレームをカプセル化して、複数の第1のカプセル化されたフレームを形成するためのフレーミング回路であって、それぞれの仮想出口デバイスが、受信仮想ポートを有し、前記複数の第1のカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、前記複数の入力フレームに
それぞれ関連付けられている複数の仮想出口デバイスを識別する、フレーミング回路と、
前記フレーミング回路に結合されている複数の送信仮想ポートであって、前記複数の第1のカプセル化されたフレームの前記ヘッダにおける前記仮想出口デバイスに基づいて前記複数の第1のカプセル化されたフレームに関する仮想ネットワークにおける複数のネクストホップを特定し、前記複数の第1のカプセル化されたフレームをカプセル化して、複数の第2のカプセル化されたフレームを形成するための複数の送信仮想ポートであり、それぞれの第2のカプセル化されたフレームが、ヘッダを有し、第2のカプセル化されたフレームの前記ヘッダが、第1のカプセル化されたフレームのネクストホップに基づいて前記第2のカプセル化されたフレームのネクストホップを、そして入力フレームの前記関連付けられている仮想出口デバイスの前記受信仮想ポートを識別する、複数の送信仮想ポートと、
前記複数の送信仮想ポートに結合されている送信仮想スイッチであって、前記送信仮想ポートを
複数のネットワーク物理ポート
のいずれかに選択的に結合するための送信仮想スイッチと、
を備える仮想ネットワークデバイス。
【請求項2】
前記送信仮想スイッチが、前記複数の送信仮想ポートを循環して、それぞれの送信仮想ポートから、固定された繰り返し順序で第2のカプセル化されたフレームを順次転送して、一連の第2のカプセル化されたフレームを出力する、請求項1に記載の仮想ネットワークデバイス。
【請求項3】
前記送信仮想スイッチが、
前記複数の送信仮想ポートのうちのいずれかの送信仮想ポートからフル信号を受信し、
該フル信号は前記いずれかの送信仮想ポートにおける前記第2のカプセル化されたフレームが送信される準備ができていることを示しており、前記フル信号を出力する前記
いずれかの送信仮想ポートから前記ネットワーク物理ポートへフレームを転送する、請求項1に記載の仮想ネットワークデバイス。
【請求項4】
前記フレーミング回路が、
前記フレームタイプに基づいて送信仮想ポートへのフレームに関するルートを特定し、前記フレームを前記送信仮想ポートへ向けて出力する仮想スイッチと、
前記仮想スイッチに結合されているフレーマであって、前記入力フレームをカプセル化するためのフレーマと、
を含む、請求項1に記載の仮想ネットワークデバイス。
【請求項5】
前記フレーマが、プロバイダバックボーンブリッジトラフィックエンジニアリング(PBB-TE)プロトコル及びトランス
ポートマルチプロトコル
ラベルスイッチ
ング(T-MPLS)プロトコルを含むプロトコルのグループからのプロトコルを実行する、請求項4に記載の仮想ネットワークデバイス。
【請求項6】
前記送信仮想ポートが、共有メモリの第1の部分を含む、請求項1に記載の仮想ネットワークデバイス。
【請求項7】
複数の第3のカプセル化されたフレームを受信し、前記複数の第3のカプセル化されたフレームを調べて複数のフレーム宛先を特定し、前記複数のフレーム宛先を、格納されている宛先に比較し、前記第3のカプセル化されたフレームを、一致する宛先とともに、一致するカプセル化されたフレームとして転送する受信物理ポートであって、前記複数の第3のカプセル化されたフレーム及び一致するカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、複数の受信仮想ポート識別子を有する、受信物理ポートと、
前記受信物理ポートに結合されている受信仮想スイッチであって、前記一致するカプセル化されたフレームの前記ヘッダにおける前記受信仮想ポート識別子に基づいて前記一致するカプセル化されたフレームを切り替え可能に渡すための受信仮想スイッチと、
前記受信仮想スイッチに結合されている複数の受信仮想ポートであって、前記切り替え可能に渡された一致するカプセル化されたフレームをアンパックして、複数の一致するカプセル化された前記フレームから複数の第4のカプセル化されたフレームを抽出するための複数の受信仮想ポートであり、それによって、それぞれの受信仮想ポートが、一致するカプセル化されたフレームをアンパックして、第4のカプセル化されたフレームを抽出し、前記受信仮想ポートが、前記共有メモリの第2の部分を含む、複数の受信仮想ポートと、
前記複数の受信仮想ポートに結合されているデフレーミング回路であって、前記複数の第4のカプセル化されたフレームをアンパックして、前記複数の第4のカプセル化されたフレームから複数の出力フレームを抽出するためのデフレーミング回路であり、前記複数の出力フレームが、複数のフレームタイプを有し、それぞれの出力フレームが、宛先ルータ/スイッチを識別するヘッダを有する、デフレーミング回路と、
をさらに備える、請求項6に記載の仮想ネットワークデバイス。
【請求項8】
前記デフレーミング回路が、デフレーマを含み、前記デフレーマが、前記複数の受信仮想ポートから前記第4のカプセル化されたフレームを受信し、前記第4のカプセル化されたフレームをアンパックして、前記入力フレームを抽出する、請求項7に記載の仮想ネットワークデバイス。
【請求項9】
前記フレーミング回路が、前記入力フレームをローカルルータ/スイッチへ出力する、請求項8に記載の仮想ネットワークデバイス。
【請求項10】
仮想ネットワークデバイスの動作方法であって、
複数の入力フレームを受信するステップと、
前記複数の入力フレームを調べて、それぞれの入力フレームに関するフレームタイプを特定するステップと、
前記フレームタイプに基づいて、それぞれの入力フレームに関連付けられている仮想出口デバイスを特定するステップであり、それぞれの仮想出口デバイスが、受信仮想ポートを有する、ステップと、
前記複数の入力フレームをカプセル化して、複数の第1のカプセル化されたフレームを形成するステップであり、前記複数の第1のカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、前記複数の入力フレームに
それぞれ関連付けられている複数の仮想出口デバイスを識別する、ステップと、
前記複数の第1のカプセル化されたフレームの前記ヘッダにおける前記仮想出口デバイスに基づいて前記複数の第1のカプセル化されたフレームに関する仮想ネットワークにおける複数のネクストホップを特定するステップと、
複数の送信仮想ポートにおいて複数の第1のカプセル化されたフレームをカプセル化して、複数の第2のカプセル化されたフレームを形成するステップであり、それぞれの第2のカプセル化されたフレームが、ヘッダを有し、第2のカプセル化されたフレームの前記ヘッダが、第1のカプセル化されたフレームのネクストホップに基づいて前記第2のカプセル化されたフレームのネクストホップを、そして入力フレームの前記関連付けられている仮想出口デバイスの前記受信仮想ポートを識別する、ステップと、
前記送信仮想ポートを
複数のネットワーク物理ポート
のいずれかに選択的に結合するステップと、
を含む方法。
【請求項11】
前記複数の送信仮想ポートを循環して、それぞれの送信仮想ポートから、固定された繰り返し順序で第2のカプセル化されたフレームを順次転送して、一連の第2のカプセル化されたフレームを出力するステップをさらに含む、請求項10に記載の方法。
【請求項12】
前記複数の送信仮想ポートのうちのいずれかの送信仮想ポートからフル信号を受信し、
該フル信号は前記いずれかの送信仮想ポートにおける前記第2のカプセル化されたフレームが送信される準備ができていることを示しており、前記フル信号を出力する前記
いずれかの送信仮想ポートから前記ネットワーク物理ポートへフレームを転送するステップをさらに含む、請求項10に記載の方法。
【請求項13】
前記フレームタイプに基づいて送信仮想ポートへのフレームに関するルートを特定し、前記フレームを前記送信仮想ポートへ向けて出力するステップをさらに含む、請求項10に記載の方法。
【請求項14】
前記複数の入力フレームが、プロバイダバックボーンブリッジトラフィックエンジニアリング(PBB-TE)プロトコル及びトランス
ポートマルチプロトコル
ラベルスイッチ
ング(T-MPLS)プロトコルを含むプロトコルのグループからのプロトコルを用いてカプセル化される、請求項10に記載の方法。
【請求項15】
前記送信仮想ポートが、共有メモリの第1の部分を含む、請求項10に記載の方法。
【請求項16】
複数の第3のカプセル化されたフレームを受信するステップと、
前記複数の第3のカプセル化されたフレームを調べて、複数のフレーム宛先を特定するステップと、
前記複数のフレーム宛先を、格納されている宛先に比較するステップと、
前記第3のカプセル化されたフレームを、一致する宛先とともに、一致するカプセル化されたフレームとして転送するステップであって、前記複数の第3のカプセル化されたフレーム及び一致するカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、複数の受信仮想ポート識別子を有する、ステップと、
前記一致するカプセル化されたフレームの前記ヘッダにおける前記受信仮想ポート識別子に基づいて前記一致するカプセル化されたフレームを切り替え可能に渡すステップと、
複数の受信仮想ポートにおいて前記切り替え可能に渡された一致するカプセル化されたフレームをアンパックして、複数の一致するカプセル化された前記フレームから複数の第4のカプセル化されたフレームを抽出するステップであって、それによって、それぞれの受信仮想ポートが、一致するカプセル化されたフレームをアンパックして、第4のカプセル化されたフレームを抽出し、前記受信仮想ポートが、前記共有メモリの第2の部分を含む、ステップと、
前記複数の第4のカプセル化されたフレームをアンパックして、前記複数の第4のカプセル化されたフレームから複数の出力フレームを抽出するステップであって、前記複数の出力フレームが、複数のフレームタイプを有し、それぞれの出力フレームが、宛先ルータ/スイッチを識別するヘッダを有する、ステップと、
をさらに含む、請求項15に記載の方法。
【請求項17】
プログラム命令が埋め込まれている非一時的コンピュータ可読記憶媒体であって、前記プログラム命令が、プロセッサによって実行されたときに、仮想ネットワークデバイスの動作方法を前記プロセッサに実行させ、前記動作方法が、
複数の入力フレームを受信するステップと、
前記複数の入力フレームを調べて、それぞれの入力フレームに関するフレームタイプを特定するステップと、
前記フレームタイプに基づいて、それぞれの入力フレームに関連付けられている仮想出口デバイスを特定するステップであり、それぞれの仮想出口デバイスが、受信仮想ポートを有する、ステップと、
前記複数の入力フレームをカプセル化して、複数の第1のカプセル化されたフレームを形成するステップであり、前記複数の第1のカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、前記複数の入力フレームに
それぞれ関連付けられている複数の仮想出口デバイスを識別する、ステップと、
前記複数の第1のカプセル化されたフレームの前記ヘッダにおける前記仮想出口デバイスに基づいて前記複数の第1のカプセル化されたフレームに関する仮想ネットワークにおける複数のネクストホップを特定するステップと、
複数の送信仮想ポートにおいて複数の第1のカプセル化されたフレームをカプセル化して、複数の第2のカプセル化されたフレームを形成するステップであり、それぞれの第2のカプセル化されたフレームが、ヘッダを有し、第2のカプセル化されたフレームの前記ヘッダが、第1のカプセル化されたフレームのネクストホップに基づいて前記第2のカプセル化されたフレームのネクストホップを、そして入力フレームの前記関連付けられている仮想出口デバイスの前記受信仮想ポートを識別する、ステップと、
前記送信仮想ポートを
複数のネットワーク物理ポート
のいずれかに選択的に結合するステップと、
を含む、媒体。
【請求項18】
前記動作方法が、前記複数の送信仮想ポートを循環して、それぞれの送信仮想ポートから、固定された繰り返し順序で第2のカプセル化されたフレームを順次転送して、一連の第2のカプセル化されたフレームを出力するステップをさらに含む、請求項17に記載の媒体。
【請求項19】
前記動作方法が、
前記複数の送信仮想ポートのうちのいずれかの送信仮想ポートからフル信号を受信し、
該フル信号は前記いずれかの送信仮想ポートにおける前記第2のカプセル化されたフレームが送信される準備ができていることを示しており、前記フル信号を出力する前記
いずれかの送信仮想ポートから前記ネットワーク物理ポートへフレームを転送するステップをさらに含む、請求項17に記載の媒体。
【請求項20】
前記送信仮想ポートが、共有メモリの第1の部分を含む、請求項17に記載の媒体。
【請求項21】
前記動作方法が、
複数の第3のカプセル化されたフレームを受信するステップと、
前記複数の第3のカプセル化されたフレームを調べて、複数のフレーム宛先を特定するステップと、
前記複数のフレーム宛先を、格納されている宛先に比較するステップと、
それぞれの第3のカプセル化されたフレームを、一致する宛先とともに、一致するカプセル化されたフレームとして転送して、複数の一致するカプセル化されたフレームを転送するステップであって、前記複数の第3のカプセル化されたフレーム及び一致するカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、複数の受信仮想ポート識別子を有する、ステップと、
前記一致するカプセル化されたフレームの前記ヘッダにおける前記受信仮想ポート識別子に基づいて前記一致するカプセル化されたフレームを切り替え可能に渡すステップと、
複数の受信仮想ポートにおいて前記切り替え可能に渡された一致するカプセル化されたフレームをアンパックして、前記複数の一致するカプセル化されたフレームから複数の第4のカプセル化されたフレームを抽出するステップであって、それによって、それぞれの受信仮想ポートが、一致するカプセル化されたフレームをアンパックして、第4のカプセル化されたフレームを抽出し、前記受信仮想ポートが、前記共有メモリの第2の部分を含む、ステップと、
前記複数の第4のカプセル化されたフレームをアンパックして、前記複数の第4のカプセル化されたフレームから複数の出力フレームを抽出するステップであって、前記複数の出力フレームが、複数のフレームタイプを有し、それぞれの出力フレームが、宛先ルータ/スイッチを識別するヘッダを有する、ステップと、
をさらに含む、請求項
20に記載の媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、コンピュータネットワークの分野に関し、特に、仮想ネットワークデバイスに関する。
【背景技術】
【0002】
ワイドエリアネットワーク(WAN)は、ネットワークデバイスどうしの相互接続されているウェブであり、このウェブは典型的に、州全体にわたって、又は国全体にわたってなど、広い地理的エリアにわたってローカルエリアネットワーク又はメトロポリタンエリアネットワークを相互接続する。WANは、リモートに配置されているコンピュータどうしがネットワークデバイスを介して互いと通信することを可能にする。
【0003】
従来のネットワークデバイスは典型的に、たとえば、10/100/1000Mbps(メガビット/秒)、10Gbps(ギガビット/秒)、40Gbps、及び100Gbpsの接続など、予め定められている固定されたデータレートで動作する1つ又は複数の物理ネットワークポートを含む。ネットワークを介したコンピュータシステムどうしの間における通信を可能にすることの一環として、従来のネットワークデバイスは、ネットワークポートの転送スピードをネゴシエートし、そのプロセス中に、ネットワークポートの転送スピードは固定される。
【0004】
従来のネットワークデバイスの不利な点のうちの1つは、利用可能であるよりも多くの物理ポートに対する必要性がある場合が多いということであり、このことは、低減されたサービス又はコストのかさむアップグレードをもたらす。結果として、ポートに対する高まる必要性に対応するためのアプローチに対する必要性がある。
【発明の概要】
【0005】
本発明は、利用可能な物理ポートの数を実質的に増やす仮想ポートを有する仮想ネットワークデバイスを提供する。この仮想ネットワークデバイスは、フレーミング回路を含み、フレーミング回路は、複数の入力フレームを受信し、それらの複数の入力フレームを調べて、それぞれの入力フレームに関するフレームタイプを特定し、そのフレームタイプに基づいて、それぞれの入力フレームに関連付けられている仮想出口デバイスを特定する。フレーミング回路はまた、複数の入力フレームをカプセル化して、複数の第1のカプセル化されたフレームを形成する。それぞれの仮想出口デバイスは、受信仮想ポートを有する。複数の第1のカプセル化されたフレームは、複数のヘッダを有する。それらの複数のヘッダは、複数の入力フレームに関連付けられている複数の仮想出口デバイスを識別する。加えて、この仮想ネットワークデバイスは、フレーミング回路に結合されている複数の送信仮想ポートを含む。それらの複数の送信仮想ポートは、複数の第1のカプセル化されたフレームのヘッダにおける仮想出口デバイスに基づいて複数の第1のカプセル化されたフレームに関する仮想ネットワークにおける複数のネクストホップを特定する。複数の送信仮想ポートはさらに、複数の第1のカプセル化されたフレームをカプセル化して、複数の第2のカプセル化されたフレームを形成する。それぞれの第2のカプセル化されたフレームは、ヘッダを有する。第2のカプセル化されたフレームのヘッダは、第1のカプセル化されたフレームのネクストホップに基づいて第2のカプセル化されたフレームのネクストホップを、そして入力フレームの関連付けられている仮想出口デバイスの受信仮想ポートを識別する。送信仮想ポートは、メモリの第1の部分を含む。さらに、仮想ネットワークデバイスは、複数の送信仮想ポートに結合されている送信仮想スイッチを含む。その送信仮想スイッチは、送信仮想ポートをネットワーク物理ポートに選択的に結合する。
【0006】
本発明はまた、仮想ネットワークデバイスの動作方法を含む。この方法は、複数の入力フレームを受信するステップと、それらの複数の入力フレームを調べて、それぞれの入力フレームに関するフレームタイプを特定するステップと、そのフレームタイプに基づいて、それぞれの入力フレームに関連付けられている仮想出口デバイスを特定するステップとを含む。それぞれの仮想出口デバイスは、受信仮想ポートを有する。この方法はまた、複数の入力フレームをカプセル化して、複数の第1のカプセル化されたフレームを形成するステップを含む。複数の第1のカプセル化されたフレームは、複数のヘッダを有する。それらの複数のヘッダは、複数の入力フレームに関連付けられている複数の仮想出口デバイスを識別する。加えて、この方法は、複数の第1のカプセル化されたフレームのヘッダにおける仮想出口デバイスに基づいて複数の第1のカプセル化されたフレームに関する仮想ネットワークにおける複数のネクストホップを特定するステップを含む。さらに、この方法は、複数の送信仮想ポートにおいて複数の第1のカプセル化されたフレームをカプセル化して、複数の第2のカプセル化されたフレームを形成するステップを含む。それぞれの第2のカプセル化されたフレームは、ヘッダを有する。第2のカプセル化されたフレームのヘッダは、第1のカプセル化されたフレームのネクストホップに基づいて第2のカプセル化されたフレームのネクストホップを、そして入力フレームの関連付けられている仮想出口デバイスの受信仮想ポートを識別する。送信仮想ポートは、共有メモリの第1の部分を含む。この方法は、送信仮想ポートをネットワーク物理ポートに選択的に結合するステップをさらに含む。
【0007】
本発明はまた、プログラム命令が埋め込まれている非一時的コンピュータ可読記憶媒体を提供し、そのプログラム命令は、プロセッサによって実行されたときに、仮想ネットワークデバイスの動作方法をプロセッサに実行させる。その方法は、複数の入力フレームを受信するステップと、それらの複数の入力フレームを調べて、それぞれの入力フレームに関するフレームタイプを特定するステップと、そのフレームタイプに基づいて、それぞれの入力フレームに関連付けられている仮想出口デバイスを特定するステップとを含む。それぞれの仮想出口デバイスは、受信仮想ポートを有する。その方法はまた、複数の入力フレームをカプセル化して、複数の第1のカプセル化されたフレームを形成するステップを含む。複数の第1のカプセル化されたフレームは、複数のヘッダを有する。それらの複数のヘッダは、複数の入力フレームに関連付けられている複数の仮想出口デバイスを識別する。加えて、その方法は、複数の第1のカプセル化されたフレームのヘッダにおける仮想出口デバイスに基づいて複数の第1のカプセル化されたフレームに関する仮想ネットワークにおける複数のネクストホップを特定するステップを含む。さらに、その方法は、複数の送信仮想ポートにおいて複数の第1のカプセル化されたフレームをカプセル化して、複数の第2のカプセル化されたフレームを形成するステップを含む。それぞれの第2のカプセル化されたフレームは、ヘッダを有する。第2のカプセル化されたフレームのヘッダは、第1のカプセル化されたフレームのネクストホップに基づいて第2のカプセル化されたフレームのネクストホップを、そして入力フレームの関連付けられている仮想出口デバイスの受信仮想ポートを識別する。その方法は、送信仮想ポートをネットワーク物理ポートに選択的に結合するステップをさらに含む。
【0008】
本発明の原理が利用される例示的な実施形態を示す以降の詳細な説明及び添付の図面を参照することによって、本発明の特徴及び利点のよりよい理解が得られるであろう。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明による仮想ネットワーク100の一例を示すブロック図である。
【
図2A】
図2Aは、本発明による送信回路200の一例を示すブロック図である。
【
図2B】
図2Bは、本発明による送信回路250の一例を示すブロック図である。
【
図3A】
図3Aは、本発明による、送信回路200の動作方法300の一例を示すフローチャートである。
【
図3B】
図3Bは、本発明による、送信回路200の動作方法350の一例を示すフローチャートである。
【
図4】
図4は、本発明の代替実施形態による送信回路400の一例を示すブロック図である。
【
図5】
図5は、本発明の代替実施形態による送信回路500の一例を示すブロック図である。
【
図6】
図6は、本発明による受信回路600の一例を示すブロック図である。
【
図7】
図7は、本発明による、受信回路600の動作方法700の一例を示すフローチャートである。
【
図8】
図8は、本発明の代替実施形態による受信回路800の一例を示すブロック図である。
【
図9】
図9は、本発明の代替実施形態による受信回路900の一例を示すブロック図である。本発明の原理が利用される例示的な実施形態を示す以降の詳細な説明及び添付の図面を参照することによって、本発明の特徴及び利点のよりよい理解が得られるであろう。
【発明を実施するための最良のモード】
【0010】
図1は、本発明による仮想ネットワークデバイス100の一例を示すブロック図を示している。以降でさらに詳細に記述されているように、仮想ネットワークデバイス100におけるローカル物理ポートの実質的な数が、それらのローカル物理ポートのうちの1つ又は複数を複数の仮想ローカル物理ポートへと変換することによって増やされ、ネットワーク物理ポートの実質的な数が、それらのネットワーク物理ポートのうちの1つ又は複数を複数の仮想ネットワーク物理ポートへと変換することによって増やされる。
【0011】
仮想ネットワークデバイス100は、ローカルルータ/スイッチをリモートルータ/スイッチと相互接続する仮想ネットワークにおけるコンポーネントである。仮想ネットワークは、ローカルルータ/スイッチに結合されている、仮想ネットワークへの仮想入口デバイスとして機能する仮想ネットワークデバイス100と、リモートルータ/スイッチに結合されている、仮想ネットワークからの仮想出口デバイスとして機能する仮想ネットワークデバイス100とを含む。
【0012】
図1において示されているように、仮想ネットワークデバイス100は、送信回路110を含み、送信回路110は、ルータ/スイッチなどのローカルネットワークデバイスから、データのセットトップボックス(STB)、パーソナルコンピュータ(PC)、及びビデオフレームなど、データのフレームをそれぞれが受信するいくつかのローカル物理ポート112と、データのフレームを仮想ネットワークへそれぞれが出力するいくつかのネットワーク物理ポート114とを有する。
【0013】
図1においてさらに示されているように、仮想ネットワークデバイス100はまた、受信回路120を含み、受信回路120は、ルータ/スイッチなどのローカルネットワークデバイスへデータのフレームをそれぞれが出力するいくつかのローカル物理ポート122と、仮想ネットワークからデータのフレームをそれぞれが受信するいくつかのネットワーク物理ポート124とを有する。一実施形態においては、ローカル物理ポート112及び122のうちの1つ又は複数は、送信回路110と受信回路120との間において共有されることが可能であり、ネットワーク物理ポート114及び124のうちの1つ又は複数は、送信回路110と受信回路120との間において共有されることが可能である。
【0014】
加えて、仮想ネットワークデバイス100は、送信回路110及び受信回路120の両方に結合されている共有メモリ130を含む。共有メモリ130は、仮想ネットワークへ出力されることになるデータのフレームを一時的に格納する送信キューと、仮想ネットワークから受信されたデータのフレームを一時的に格納する受信キューとを含む。
【0015】
図2Aは、本発明による送信回路200の一例を示すブロック図を示している。
図2Aにおいて示されているように、送信回路200は、ローカル物理ポート210と、ローカル物理ポート210に結合されているフレーミング回路212と、フレーミング回路212に結合されているいくつかの送信仮想ポートvPORTa1~vPORTanとを含む。
【0016】
そしてそれぞれの送信仮想ポートvPORTaは、送信キュー及び送信フレームフォーマッティング回路を含む。加えて、送信回路200はまた、送信仮想ポートvPORTaのうちのそれぞれに結合されている送信仮想スイッチ214と、送信仮想スイッチ214に結合されているネットワーク物理ポート216とを含む。
【0017】
図3Aは、本発明による、送信回路200の動作方法300の一例を示すフローチャートを示している。
図3Aにおいて示されているように、方法300は、310においてフレーミング回路212がローカル物理ポート210から一連の入力フレームを受信することから始まる。方法300は次に312へ移って、その一連の入力フレームを調べて、それぞれの入力フレームに関するフレームタイプ(たとえば、STB、PC、ビデオ)を特定し、次いで314へ移って、そのフレームタイプに基づいて、それぞれの入力フレームに関連付けられている仮想出口デバイスを特定する。そしてそれぞれの仮想出口デバイスは、いくつかの受信仮想ポートを有する。
【0018】
これに続いて、方法300は316へ移り、316でフレーミング回路212は、一連の入力フレームをカプセル化して、いくつかの第1のカプセル化された(FE)フレームを形成する。FEフレームは、一連の入力フレームに関連付けられている仮想出口デバイスを識別するヘッダを有する。
【0019】
この後に、方法300は318へ移り、318で送信仮想ポートvPORTa1~vPORTanは、FEフレームのヘッダにおける仮想出口デバイスに基づいてFEフレームに関する仮想ネットワークにおけるネクストホップを特定する。次に、方法300は320へ移り、320で送信仮想ポートvPORTa1~vPORTanは、FEフレームをカプセル化して、第2のカプセル化された(SE)フレームを形成する。それぞれのSEフレームは、FEフレームのネクストホップに基づいてSEフレームのネクストホップを識別するヘッダを有する。そのヘッダは、入力フレームの関連付けられている仮想出口デバイスの受信仮想ポートも識別する。加えて、送信仮想ポートは、共有メモリの第1の部分を占有する。
【0020】
これに続いて、方法300は322へ移り、322で送信仮想スイッチ214は、送信仮想ポートvPORTa1~vPORTanを循環して、それぞれの送信仮想ポートvPORTaから、固定された繰り返し順序でSEフレームを順次転送して、SEフレームのシーケンスを出力する。たとえば、仮想スイッチ214は、SEフレームのシーケンスを出力することが可能であり、そのシーケンスでは、第1のSEフレームは、vPORT1からのものであり、第2のフレームは、vPORT2からのものであり、第3のフレームは、vPORT3からのものであり、そして第4のフレームは、再びvPORT1からのものである。
【0021】
送信仮想ポートvPORTaが空であるか又は部分的にいっぱいである場合には、フレームは生成されない。たとえば、送信仮想ポートvPORT2が空である場合には、ネットワーク物理ポート216は、フレーム1、フレームなし、フレーム3を含むフレームシーケンスを出力する。方法300は次に324へ移り、324でネットワーク物理ポート216は、SEフレームのシーケンスを仮想ネットワークへと送信する。
【0022】
図3Bは、本発明の代替実施形態による、送信回路200の動作方法350の一例を示すフローチャートを示している。方法350は、方法300と同様であり、結果として、両方の方法に共通する要素を示すために同じ参照番号を利用する。
【0023】
図3Bにおいて示されているように、方法350は、最初に352で方法300から分岐し、352で仮想スイッチ214は、送信仮想ポートvPORTaのうちのいずれかからフル信号が受信されたかどうかを特定する。フル信号は、送信仮想ポートvPORTaにおけるSEフレームが送信される準備ができているということを示す。仮想スイッチ214が送信仮想ポートvPORTaからフル信号を検知した場合には、方法350は354へ移り、354で仮想スイッチ214は、フル信号を出力する送信仮想ポートvPORTaからネットワーク物理ポート216へSEフレームを転送する。
【0024】
たとえば、仮想スイッチ214は、送信仮想ポートvPORTa1、送信仮想ポートvPORTa2、及び送信仮想ポートvPORTa3からフル信号を順次受信することが可能である。このケースにおいては、仮想スイッチ214は、SEフレームのシーケンスを出力し、そのシーケンスでは、第1のSEフレームは、送信仮想ポートvPORT1からのものであり、第2のフレームは、送信仮想ポートvPORT2からのものであり、第3のフレームは、送信仮想ポートvPORT3からのものである。
【0025】
代替として、ソース(たとえば、STB、PC、ビデオソース)のうちの1つが、その他のソース(たとえば、STB、PC、ビデオソース)のデータレートよりもはるかに速いデータレートを有することがあり、そしてそのことによって、1つの送信仮想ポートvPORTaが、その他の送信仮想ポートvPORTaよりもはるかに頻繁にフル信号を出力する。
【0026】
たとえば、ネットワーク物理ポート216が、5フレーム/秒のフレームレートでフレームを送信する場合には、送信仮想ポートvPORTa2は、送信仮想ポートvPORTa1及びvPORTa3のフレームレートのうちのそれぞれよりも3倍速いレートでフレームを出力し、送信仮想ポートvPORTa2は、その他のポートの前に3回フルにシグナリングを行い、送信仮想ポートvPORTa1は、vPORTa3がシグナリングを行う前にシグナリングを行い、次いで仮想スイッチ214は、送信仮想ポートvPORT2からの第1のフレームと、送信仮想ポートvPORT2からの第2のフレームと、送信仮想ポートvPORT2からの第3のフレームと、送信仮想ポートvPORT1からの第4のフレームと、送信仮想ポートvPORT3からの第5のフレームとを含むフレームのシーケンスを転送する。
【0027】
フル信号を受信する順序が、仮想スイッチ214によって送信仮想ポートvPORTaからSEフレームが出力される順序を特定する先入れ先出しアプローチに加えて、送信仮想ポートvPORTa~vPORTanは、代替として、送信仮想ポートvPORTaからネットワーク物理ポートへ任意の量及び任意の順序でフレームが転送されることを可能にする優先度スキームを含むことが可能である。
【0028】
図3Bを再び参照すると、仮想スイッチ214が、フル信号を出力する送信仮想ポートvPORTaからネットワーク物理ポート216へSEフレームを転送した後に、方法350は356へ移り、356でネットワーク物理ポート216は、SEフレームを送信する。方法300においては、出力されることになるフレームは予測可能であり、その一方で、方法350において出力されることになるフレームは予測可能ではないが、優先度スキームは、あるレベルの予測可能性を提供する。
【0029】
図2Aの例を再び参照すると、フレーミング回路212は、仮想スイッチ220と、仮想スイッチ220に結合されているフレーマ222とを含む。仮想スイッチ220は、入力フレームのタイプ(たとえば、STB、PC、ビデオ)を検知し、フレームのそのタイプに対応する仮想ポートvPORTaへのフレームに関するルートを静的転送テーブルから特定し、そのフレームをその仮想ポートvPORTaへ向けて出力する。
【0030】
この例においては、仮想スイッチ220は、ローカルソースルータ/スイッチによって送信されたSTBフレームを受信し、その受信されたフレームがSTBフレームであることをそのSTBフレームにおけるソース及び/又は宛先MACアドレスから検知する。スイッチ220は次いで、STBフレームを受信するために事前に選択された仮想ポートvPORTa1へ向けてルーティングされている第1の仮想ポートラインP1上にSTBフレームを出力する。
【0031】
同様に、仮想スイッチ220は、ローカルソースルータ/スイッチによって送信されたPCフレームを受信し、その受信されたフレームがPCフレームであることをそのPCフレームにおけるソース及び/又は宛先MACアドレスから検知する。スイッチ220は次いで、PCフレームを受信するために事前に選択された仮想ポートvPORTa2へ向けてルーティングされている第2の仮想ポートラインP2上にPCフレームを出力する。
【0032】
仮想スイッチ220はまた、ローカルルータ/スイッチによって送信されたビデオフレームを受信し、その受信されたフレームがビデオフレームであることをそのビデオフレームにおけるソース及び/又は宛先MACアドレスから検知し、次いで、ビデオフレームを受信するために事前に選択された仮想ポートvPORTa3へ向けてルーティングされている第3の仮想ポートラインP3上にビデオフレームを出力する。
【0033】
フレーマ222は、仮想ポートラインP1上でSTBフレームを受信し、そのSTBフレームをカプセル化して、第1のカプセル化された(FE)STBフレームを形成し、次いでそのFE STBフレームを仮想ポートvPORTa1の送信キューへ転送する。同様に、フレーマ222は、仮想ポートラインP2上でPCフレームを受信し、そのPCフレームをカプセル化して、第1のカプセル化された(FE)PCフレームを形成し、次いでそのFE PCフレームを仮想ポートvPORTa2の送信キューへ転送する。フレーマ222はまた、仮想ポートラインP3上でビデオフレームを受信し、そのビデオフレームをカプセル化して、第1のカプセル化された(FE)ビデオフレームを形成し、次いでそのFEビデオフレームを仮想ポートvPORTa3の送信キューへ転送する。
【0034】
フレーマ222は、プロバイダバックボーンブリッジトラフィックエンジニアリング(PBB-TE)プロトコル又はトランスポートマルチプロトコルラベルスイッチング(T-MPLS)プロトコルなどの従来のプロトコルを利用して、カプセル化されたフレームを生成することが可能である。加えて、FE STBフレーム、FE PCフレーム、及びFEビデオフレームはそれぞれ、仮想出口デバイスのIDを含むいくつかのフィールドを有するヘッダを有する。
【0035】
たとえば、FEフレームのヘッダは、仮想出口デバイスのMACアドレスに関する出口アドレスフィールド、I-Tagフィールド、又は同様のフィールドを含むことが可能である。ヘッダは、仮想入口デバイスのMACアドレスなど、その他のフィールドを含むことも可能である。この例においては、仮想出口デバイスのMACアドレスは、管理上、仮想入口デバイスに提供される。
【0036】
送信回路200の仮想ポートvPORTa1におけるフレームフォーマッティング回路は、FE STBフレームを受信し、FE STBフレームのヘッダにおける、仮想出口デバイスのMACアドレスなど、仮想出口デバイスのIDに基づいて静的転送テーブルからFE STBフレームに関する仮想ネットワークにおけるネクストホップを特定し、FE STBフレームをカプセル化して、第2のカプセル化された(SE)STBフレームを形成する。
【0037】
同様に、送信回路200の仮想ポートvPORTa2におけるフレームフォーマッティング回路は、FE PCフレームを受信し、FE PCフレームのヘッダにおける、仮想出口デバイスのMACアドレスなど、仮想出口デバイスのIDに基づいて静的転送テーブルからFE PCフレームに関する仮想ネットワークにおけるネクストホップを特定し、FE PCフレームをカプセル化して、第2のカプセル化された(SE)PCフレームを形成する。
【0038】
加えて、送信回路200の仮想ポートvPORTa3におけるフレームフォーマッティング回路は、FEビデオフレームを受信し、FEビデオフレームのヘッダにおける、仮想出口デバイスのMACアドレスなど、仮想出口デバイスのIDに基づいて静的転送テーブルからFEビデオフレームに関する仮想ネットワークにおけるネクストホップを特定し、FEビデオフレームをカプセル化して、第2のカプセル化された(SE)ビデオフレームを形成する。
【0039】
SE STBフレーム、SE PCフレーム、及びSEビデオフレームはそれぞれ、仮想ネットワークにおけるネクストホップのMACアドレスを識別するネクストホップフィールドと、仮想入口デバイスの仮想ポート番号を識別するソースフィールドSrc_vIDと、仮想入口デバイスの仮想ポート番号に対応する仮想出口デバイスの仮想ポート番号を識別する宛先フィールドDst_vIDとを有するヘッダを含む。この例においては、SE STBフレームに関するソースフィールドSrc_vIDは、仮想ポートvPORTa1である。ラストホップフィールドなど、その他のフィールドが含まれることも可能である。
【0040】
さらに、仮想スイッチ214は、仮想ポートvPORTa1~vPORTanを循環し、それぞれの仮想ポートvPORTaから第2のカプセル化された(SE)フレームを順次転送して、一連のSEフレームを物理ポート216へ出力する。この例においては、スイッチ214は、仮想ポートvPORTa1から物理ポート216へSE STBフレームを転送し、続いて仮想ポートvPORTa2から物理ポート216へSE PCフレームを転送し、続いて仮想ポートvPORTa3から物理ポート216へSEビデオフレームを転送し、続いて仮想ポートvPORTa1から物理ポート216へSE STBフレームを転送し、そして引き続き同じ様式で、物理ポート216がそれらのフレームを出力する。
図2は、送信回路200を、単一のローカルルータ/スイッチからの入力を受信してそれに伴って動作するものとして示しているが、送信回路200は、代替として、複数のルータ/スイッチからの入力を受信してそれに伴って動作することが可能である。
【0041】
図2Bは、本発明による送信回路250の一例を示すブロック図を示している。送信回路250は、送信回路200と同様であり、結果として、送信回路200及び送信回路250の両方に共通する要素を示すために同じ参照番号を利用する。
【0042】
図2Bにおいて示されているように、送信回路250は、送信回路250が第1のネットワーク物理ポート216A及び第2のネットワーク物理ポート216Bを含み、それらの両方が仮想スイッチ214に結合されているという点で送信回路200とは異なる。加えて、仮想スイッチ214は、送信仮想ポートvPORTa1とネットワーク物理ポート216Aとの間における連続接続を提供する。さらに、追加の送信仮想ポートvPORTa4が示されている。
【0043】
送信回路250は、送信回路200と実質的に同じに動作するが、ソース(たとえば、STB、PC、又はビデオソース)のうちの1つ又は複数が、ネットワーク物理ポート216A及び216Bの最大フレームレートよりも大きいフレームレートでデータのフレームを出力するという点が異なる。たとえば、ネットワーク物理ポート216A及び216Bのそれぞれは、5フレーム/秒の最大フレームレートを有することが可能である。
【0044】
図2Bの例においては、セットトップボックスは、毎秒7つのSTBフレームを出力し、パーソナルコンピュータは、毎秒2つのPCフレームを出力し、ビデオデバイスは、毎秒1つのビデオフレームを出力する。(挙げられている数は、例示の目的のためのものにすぎない。)
図2Bにおいて示されているように、7つのSTBフレームのうちの5つが、ネットワーク物理ポート216Aから送信され、その一方で、残りの2つのSTBフレーム、2つのPCフレーム、及び1つのビデオフレームが、方法300及び350によって示されている様式でネットワーク物理ポート216Bから送信される。送信回路250の利点のうちの1つは、送信回路250が、ネットワーク物理ポートの最大フレームレートよりも大きい着信フレームレートを取り扱うことが可能であるということである。
【0045】
図4は、本発明の代替実施形態による送信回路400の一例を示すブロック図を示している。送信回路400は、送信回路200と同様であり、結果として、両方の回路に共通する構造を示すために同じ参照番号を利用する。
【0046】
図4において示されているように、送信回路400は、送信回路400のフレーミング回路212が、フレーマ222が後に続く仮想スイッチ220の代わりに、仮想ポートvPORTa1~vPORTanに結合されているシリアルツーパラレル仮想スイッチ412が後に続くシリアルツーシリアルフレーマ410を利用するという点で送信回路200とは異なる。
【0047】
さらなる代替実施形態においては、送信回路400のフレーマ410及び仮想スイッチ412は、物理的に分離されることが可能であり、それに伴ってフレーマ410は、ローカルルータ/スイッチへと組み込まれる。
【0048】
図5は、本発明による送信回路500の一例を示すブロック図を示している。送信回路500は、送信回路400と同様であり、結果として、回路400及び回路500の両方に共通する構造を示すために同じ参照番号を利用する。
図5において示されている例において示されているように、STB、PC、及びビデオフレームを受信及び出力するローカルルータ/スイッチの代わりに、ローカルフレーマルータ/スイッチ510が送信回路500と共に利用されている。
【0049】
図6は、本発明による受信回路600の一例を示すブロック図を示している。
図6において示されているように、受信回路600は、ネットワーク物理ポート610と、ネットワーク物理ポート610に結合されている受信仮想スイッチ612とを含む。受信回路600はまた、スイッチ612に結合されているいくつかの受信仮想ポートvPORTb1~vPORTbnを含む。そしてそれぞれの受信仮想ポートvPORTbは、受信キュー及び受信フレームフォーマッティング回路を含む。受信回路600は、受信仮想ポートvPORTbのうちのそれぞれに結合されているデフレーミング回路614と、デフレーミング回路614に結合されているローカル物理ポート616とをさらに含む。
【0050】
図7は、本発明による、受信回路600の動作方法700の一例を示すフローチャートを示している。
図7において示されているように、方法700は、710においてネットワーク物理ポート610が仮想ネットワークから一連の第3のカプセル化された(TE)フレームを受信することから始まる。TEフレームは、ネクストホップアドレスと受信仮想ポート識別子とを含むヘッダを有する。
【0051】
次に、方法700は712へ移り、712でネットワーク物理ポート610は、SEフレームを調べてネクストホップアドレスを特定し、そのネクストホップアドレスを、格納されているアドレスに比較する。この後に、方法700は714へ移り、714でネットワーク物理ポート610は、一致するネクストホップアドレスを有するTEフレームを、一致するカプセル化された(ME)フレームとして転送する。加えて、ポート610は、ネクストホップアドレスのアイデンティティが、格納されているアドレスと一致しない場合には、受信されたTEフレームをドロップする。
【0052】
この後、方法700は716へ移り、716で受信仮想スイッチ612は、MEフレームのヘッダにおける受信仮想ポート識別子に基づいてMEフレームを切り替え可能に渡す。方法700は次いで718へ移り、718で受信仮想ポートvPORTb1~vPORTbnは、切り替え可能に渡されたMEフレームをアンパックして、切り替え可能に渡されたMEフレームから第1のカプセル化されたフレームを抽出し、それによって、それぞれの受信仮想ポートvPORTbは、MEフレームをアンパックして、第4のカプセル化されたフレームを抽出する。受信仮想ポートは、共有メモリの第2の部分を占有する。
【0053】
これに続いて、方法700は720へ移り、720でデフレーミング回路614は、第4のカプセル化されたフレームをアンパックして、第4のカプセル化されたフレームから当初のSTB、PC、及びビデオ入力フレームを抽出する。当初のSTB、PC、及びビデオ入力フレームは、リモートルータ/スイッチからのものであり、いくつかのフレームタイプを有する。さらに、それぞれの入力フレームは、宛先ルータ/スイッチを識別するヘッダを有する。方法700は次いで722へ移り、722でデフレーミング回路614は、STB、PC、及びビデオフレームをローカル物理ポート616へ転送し、ローカル物理ポート616は、当初のSTB、PC、及びビデオフレームを、ローカルルータ/スイッチへ出力する。
【0054】
この例においては、仮想スイッチ612は、ネットワーク物理ポート610からME STBフレームを受信し、ME STBフレームのヘッダにおける宛先仮想ポート番号Dst_vIDから、宛先仮想ポートが仮想ポートvPORTb1であると特定する。加えて、スイッチ612は、仮想ポートvPORTb1へのルートを静的転送テーブルから特定し、次いで仮想ポートvPORTb1へ向けてルーティングされている第1の仮想ポートライン上にME STBフレームを出力する。
【0055】
同様に、仮想スイッチ612は、ネットワーク物理ポート610からME PCフレームを受信し、ME PCフレームのヘッダにおける宛先仮想ポート番号Dst_vIDから、宛先仮想ポートが仮想ポートvPORTb2であると特定する。さらに、スイッチ612は、仮想ポートvPORTb2へのルートを静的転送テーブルから特定し、次いで仮想ポートvPORTb2へ向けてルーティングされている第2の仮想ポートライン上にME PCフレームを出力する。
【0056】
加えて、仮想スイッチ612は、ネットワーク物理ポート610からMEビデオフレームを受信し、MEビデオフレームのヘッダにおける宛先仮想ポート番号Dst_vIDから、宛先仮想ポートが仮想ポートvPORTb3であると特定する。スイッチ612は、仮想ポートvPORTb3へのルートを静的転送テーブルから特定し、次いで仮想ポートvPORTb3へ向けてルーティングされている第3の仮想ポートライン上にMEビデオフレームを出力する。
【0057】
仮想ポートvPORTb1~vPORTbnは、MEフレームを受信し、MEフレームをアンパックして、MEフレームから、第4のカプセル化されたSTBフレーム、第4のカプセル化されたPCフレーム、及び第4のカプセル化されたビデオフレームなど、第4のカプセル化されたフレームを抽出する。
図6の例においては、第1の仮想ポートvPORTb1の受信キューは、ME STBフレームを受信し、その一方で、仮想ポートvPORTb1のフレームフォーマッティング回路は、ME STBフレームをアンパックして、FE STBフレームを抽出し、第4のカプセル化されたSTBフレームは、仮想出口デバイスのアイデンティティを含むヘッダを有する。
【0058】
同様に、第2の仮想ポートvPORTb2の受信キューは、ME PCフレームを受信し、その一方で、仮想ポートvPORTb2のフレームフォーマッティング回路は、ME PCフレームをアンパックして、第4のカプセル化されたPCフレームを抽出し、その第4のカプセル化されたPCフレームは、仮想出口デバイスのアイデンティティを含むヘッダを有する。加えて、第3の仮想ポートvPORTb3の受信キューは、MEビデオフレームを受信し、その一方で、仮想ポートvPORTb3のフレームフォーマッティング回路は、MEビデオフレームをアンパックして、第4のカプセル化されたビデオフレームを抽出し、その第4のカプセル化されたビデオフレームは、仮想出口デバイスのアイデンティティを含むヘッダを有する。
【0059】
デフレーミング回路614は、複数の第4のカプセル化されたフレームを受信し、それらの第4のカプセル化されたフレームから当初のSTB、PC、及びビデオ入力フレームを抽出する。それらの入力フレームは、いくつかのフレームタイプ、たとえば、STB、PC、ビデオを有する。それぞれの入力フレームは、宛先ルータ/スイッチのアイデンティティを含むヘッダを有する。それぞれの受信された第4のカプセル化されたフレームに関して、デフレーミング回路614は、第4のカプセル化されたフレームをアンパックして入力フレームを抽出し、入力フレームのヘッダから宛先ルータ/スイッチのアイデンティティを特定し、入力フレームをローカル物理ポート616へ出力し、ローカル物理ポート616は、宛先ルータ/スイッチへ入力フレームを出力する。
【0060】
図6において示されているように、デフレーミング回路614は、デフレーマ620と、デフレーマ620に結合されている仮想スイッチ622とを含む。動作中に、デフレーマ620は、複数の受信仮想ポートvPORTb1~vPORTbnから第4のカプセル化されたフレームを受信し、第4のカプセル化されたフレームをアンパックして、当初の入力フレーム、たとえば、STBフレーム、PCフレーム、及びビデオフレームを抽出し、そのSTBフレーム、PCフレーム、及びビデオフレームを仮想スイッチ622へ転送する。
【0061】
図6の例においては、デフレーマ620は、受信仮想ポートvPORTb1から第4のカプセル化されたSTBフレームを受信し、第4のカプセル化されたフレームをアンパックしてSTBフレームを抽出し、そのSTBフレームを仮想スイッチ622へ転送する。同様に、デフレーマ620は、受信仮想ポートvPORTb2から第4のカプセル化されたPCフレームを受信し、第4のカプセル化されたフレームをアンパックしてPCフレームを抽出し、そのPCフレームを仮想スイッチ622へ転送する。加えて、デフレーマ620は、受信仮想ポートvPORTb3から第4のカプセル化されたビデオフレームを受信し、第4のカプセル化されたフレームをアンパックしてビデオフレームを抽出し、そのビデオフレームを仮想スイッチ622へ転送する。デフレーマ620は、フレーマ222と同じ又は異なるプロトコルを利用することが可能である。
【0062】
仮想スイッチ622は、デフレーマ620の出力を循環して、出力フレームを順次受信してローカル物理ポート616へ転送する。この例においては、仮想スイッチ622は、デフレーマ620からSTBフレームを受信し、宛先ルータ/スイッチのMACアドレスを検知し、STBフレームをローカル物理ポート616へ出力する。同様に、仮想スイッチ622は、デフレーマ620からPCフレームを受信し、宛先ルータ/スイッチのMACアドレスを検知し、PCフレームをローカル物理ポート616へ出力する。加えて、仮想スイッチ622は、デフレーマ620からビデオフレームを受信し、宛先ルータ/スイッチのMACアドレスを検知し、ビデオフレームをローカル物理ポート616へ出力する。そしてローカル物理ポート616は、それらのフレームをローカルルータ/スイッチへ出力する。
【0063】
図6の例は、パラレルツーパラレルデフレーマ620と、それに続くパラレルツーシリアル仮想スイッチ622とを有するデフレーミング回路614を示している。デフレーミング回路614は、代替として、その他の回路構成を用いて実現されることが可能である。たとえば、デフレーミング回路614は、仮想ポートvPORTb1~vPORTbnに結合されているシリアルツーパラレル仮想スイッチと、それに続くシリアルツーシリアルフレーマとを用いて実装されることが可能である。
【0064】
図8は、本発明の代替実施形態による受信回路800の一例を示すブロック図を示している。受信回路800は、受信回路600と同様であり、結果として、両方の回路に共通する構造を示すために同じ参照番号を利用する。
【0065】
図8において示されているように、受信回路800は、受信回路800のフレーミング回路614が、シリアルツーシリアルデフレーマ812が後に続く、仮想ポートvPORTb1~vPORTbnに結合されているパラレルツーシリアル仮想スイッチ810を含むという点で受信回路600とは異なる。フレーミング回路212及びデフレーミング回路614の実装は、入れ替えられることが可能である。たとえば、仮想ネットワークデバイス100は、仮想スイッチ220とフレーマ222とを用いて実装されているフレーミング回路212を利用することが可能であり、その一方でデフレーミング回路614は、仮想スイッチ810とデフレーマ812とを用いて実装されることが可能である。
【0066】
さらなる代替実施形態においては、仮想スイッチ810及びデフレーマ812は、物理的に分離されることが可能であり、それに伴ってデフレーマ812は、ローカルルータ/スイッチへと組み込まれる。
【0067】
図9は、本発明による受信回路900の一例を示すブロック図を示している。受信回路900は、受信回路800と同様であり、結果として、回路800及び回路900の両方に共通する構造を示すために同じ参照番号を利用する。
図9において示されている例において示されているように、ローカルルータスイッチの代わりに、ローカルデフレーマルータ/スイッチ910が受信回路900において利用されている。
【0068】
本発明の利点のうちの1つは、本発明が、STB、PC、及びビデオフレームの複数のストリームを、いくつかの仮想ポートを介して単一の仮想フレームストリームへと組み合わせ、そしてこのことが、利用可能な物理ポートの数を実質的に増やすということである。
【0069】
ここでは、本開示のさまざまな実施形態に対して詳細に言及が行われてきたが、それらの実施形態の例が、添付の図面において示されている。さまざまな実施形態に関連して記述が行われているが、これらのさまざまな実施形態は、本開示を限定することを意図されているものではないということが理解されるであろう。それどころか、本開示は、特許請求の範囲に従って解釈された際に本開示の範囲内に含まれることが可能である代替物、修正物、及び均等物をカバーすることを意図されている。
【0070】
さらに、本開示のさまざまな実施形態についての前述の詳細な説明においては、本開示の徹底的な理解を提供するために多くの具体的な詳細が示されている。しかしながら、本開示は、これらの具体的な詳細を伴わずに、又はそれらの均等物を伴って実施されることが可能であるということが当技術分野における普通のスキルを有する者によって認識されるであろう。その他の場合においては、本開示のさまざまな実施形態の態様を不必要にわかりにくくすることのないように、よく知られている方法、手順、コンポーネント、及び回路は、詳細に記述されていない。
【0071】
本明細書においては、明確さのために、番号付けされたオペレーションどうしのシーケンスとして方法が示されている場合があるが、その番号付けは、必ずしもオペレーションどうしの順序を示しているとは限らないということに留意されたい。オペレーションのうちのいくつかは、スキップされること、並列に実行されること、又はシーケンスの厳密な順序を保持する必要性を伴わずに実行されることが可能であるということを理解されたい。
【0072】
本開示によるさまざまな実施形態を示している図面は、半図式的であり、縮尺どおりではなく、特に、寸法のうちのいくつかは、提示の明確さのためのものであり、描かれている図においては誇張されて示されている。同様に、図面における眺めは、説明の容易さのために一般に同様の向きを示しているが、図におけるこの描写は、ほとんどの部分に関して任意である。一般に、本開示によるさまざまな実施形態は、任意の向きで動作されることが可能である。
【0073】
詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビット上でのオペレーションの手順、論理ブロック、処理、及びその他のシンボル表示という点から提示されている。これらの説明及び表示は、データ処理技術分野における技術者が自分の作業の実体を他の当業者たちに効果的に伝達するために使用されている。
【0074】
本開示においては、手順、論理ブロック、プロセスなどは、所望の結果へつながるオペレーション又は命令の首尾一貫したシーケンスであると考えられる。それらのオペレーションは、物理量の物理的な操作を利用するオペレーションである。通常、必須ではないが、これらの量は、コンピューティングシステムにおいて、格納されること、転送されること、組み合わされること、比較されること、及びその他の形で操作されることが可能な電気信号又は磁気信号の形態を取る。トランザクション、ビット、値、要素、シンボル、文字、サンプル、ピクセルなどとしてこれらの信号を指すことが、主として共通の使用という理由から、時として好都合であることがわかっている。
【0075】
しかしながら、これら及び類似の用語のすべては、適切な物理量に関連付けられるものであり、それらの量に適用される便宜上のラベルにすぎないということに留意されたい。特に別段の記載がない限り、以降の論考から明らかなように、本開示の全体を通じて、「生成する」、「特定する」、「割り振る」、「集約する」、「利用する」、「仮想化する」、「処理する」、「アクセスする」、「実行する」、「格納する」等などの用語を利用している論考は、コンピュータシステム、又は類似の電子コンピューティングデバイス若しくはプロセッサのアクション及びプロセスを指すということが理解される。
【0076】
コンピューティングシステム、又は類似の電子コンピューティングデバイス若しくはプロセッサは、コンピュータシステムのメモリ、レジスタ、その他のそのような情報ストレージ、及び/又はその他のコンピュータ可読媒体内の物理的な(電子的な)量として表されているデータを操作して、同様にコンピュータシステムのメモリ、又はレジスタ、又はその他のそのような情報ストレージ、送信、若しくは表示デバイス内の物理的な量として表されるその他のデータへと変換する。
【0077】
前のセクションにおいては、本出願の実施形態の図面を参照しながら、本出願の実施形態における技術的な解決策が明確に且つ完全に記述されている。本発明の説明及び特許請求の範囲における、並びに上記の図面における「第1の」、「第2の」などの用語は、類似の対象どうしを区別するために使用されており、必ずしも特定のシーケンス又は順序を記述するために使用されているとは限らないということに留意されたい。これらの数は、適切な場合には、入れ替えられることが可能であり、それによって、本明細書において記述されている本発明の実施形態は、本明細書において示されている又は記述されている順序以外の順序で実施されることが可能であるということを理解されたい。
【0078】
この実施形態の方法において記述されている機能は、ソフトウェア機能ユニットの形態で実装されて、独立した製品として販売又は使用される場合には、コンピューティングデバイス可読記憶媒体に格納されることが可能である。そのような理解に基づいて、従来技術に寄与する本出願の実施形態のうちの一部分、又は技術的な解決策の一部分は、本出願のさまざまな実施形態において記述されている方法のステップのうちのすべて又は一部をコンピューティングデバイス(これは、パーソナルコンピュータ、サーバ、モバイルコンピューティングデバイス、又はネットワークデバイスなどであることが可能である)に実行させるための複数の命令を含む、記憶媒体に格納されているソフトウェア製品の形態で具体化されることが可能である。前述の記憶媒体は、USBドライブ、ポータブルハードディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、光ディスクなどを含み、それらは、プログラムコードを格納することが可能である。
【0079】
本出願の明細書におけるさまざまな実施形態は、進展する様式で記述されており、それぞれの実施形態は、その他の実施形態からの自らの相違に焦点を合わせており、さまざまな実施形態の間における同じ又は同様の部分どうしは、別のケースに参照されることが可能である。記述されている実施形態は、本出願の実施形態のうちのすべてというよりはむしろ、実施形態のうちの一部にすぎない。本発明のスキルから逸脱することなく、本出願の実施形態に基づいて、当技術分野における普通のスキルを有する者によって得られるその他のすべての実施形態は、本出願の範囲内にある。
【0080】
開示されている実施形態についての上記の説明は、当業者が本出願を作成又は使用することを可能にする。これらの実施形態に対するさまざまな修正は、当業者にとって明らかであり、本明細書において定義されている一般的な原理は、本出願の趣旨又は範囲から逸脱することなく、その他の実施形態において実施されることが可能である。そのため、本出願は、本明細書において示されている実施形態に限定されず、本明細書において開示されている原理及び新規な特徴と整合する最も広い範囲である。
[発明の項目]
[項目1]
複数の入力フレームを受信し、前記複数の入力フレームを調べて、それぞれの入力フレームに関するフレームタイプを特定し、前記フレームタイプに基づいて、それぞれの入力フレームに関連付けられている仮想出口デバイスを特定し、前記複数の入力フレームをカプセル化して、複数の第1のカプセル化されたフレームを形成するためのフレーミング回路であって、それぞれの仮想出口デバイスが、受信仮想ポートを有し、前記複数の第1のカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、前記複数の入力フレームに関連付けられている複数の仮想出口デバイスを識別する、フレーミング回路と、
前記フレーミング回路に結合されている複数の送信仮想ポートであって、前記複数の第1のカプセル化されたフレームの前記ヘッダにおける前記仮想出口デバイスに基づいて前記複数の第1のカプセル化されたフレームに関する仮想ネットワークにおける複数のネクストホップを特定し、前記複数の第1のカプセル化されたフレームをカプセル化して、複数の第2のカプセル化されたフレームを形成するための複数の送信仮想ポートであり、それぞれの第2のカプセル化されたフレームが、ヘッダを有し、第2のカプセル化されたフレームの前記ヘッダが、第1のカプセル化されたフレームのネクストホップに基づいて前記第2のカプセル化されたフレームのネクストホップを、そして入力フレームの前記関連付けられている仮想出口デバイスの前記受信仮想ポートを識別する、複数の送信仮想ポートと、
前記複数の送信仮想ポートに結合されている送信仮想スイッチであって、前記送信仮想ポートをネットワーク物理ポートに選択的に結合するための送信仮想スイッチと、
を備える仮想ネットワークデバイス。
[項目2]
前記送信仮想スイッチが、前記複数の送信仮想ポートを循環して、それぞれの送信仮想ポートから、固定された繰り返し順序で第2のカプセル化されたフレームを順次転送して、一連の第2のカプセル化されたフレームを出力する、項目1に記載の仮想ネットワークデバイス。
[項目3]
前記送信仮想スイッチが、送信仮想ポートからフル信号を受信し、前記フル信号を出力する前記送信仮想ポートから前記ネットワーク物理ポートへフレームを転送する、項目1に記載の仮想ネットワークデバイス。
[項目4]
前記フレーミング回路が、
前記フレームタイプに基づいて送信仮想ポートへのフレームに関するルートを特定し、前記フレームを前記送信仮想ポートへ向けて出力する仮想スイッチと、
前記仮想スイッチに結合されているフレーマであって、前記入力フレームをカプセル化するためのフレーマと、
を含む、項目1に記載の仮想ネットワークデバイス。
[項目5]
前記フレーマが、プロバイダバックボーンブリッジトラフィックエンジニアリング(PBB-TE)プロトコル及びトランスファーマルチプロトコルリスティングスイッチ(T-MPLS)プロトコルを含むプロトコルのグループからのプロトコルを実行する、項目4に記載の仮想ネットワークデバイス。
[項目6]
前記送信仮想ポートが、共有メモリの第1の部分を含む、項目1に記載の仮想ネットワークデバイス。
[項目7]
複数の第3のカプセル化されたフレームを受信し、前記複数の第3のカプセル化されたフレームを調べて複数のフレーム宛先を特定し、前記複数のフレーム宛先を、格納されている宛先に比較し、前記第3のカプセル化されたフレームを、一致する宛先とともに、一致するカプセル化されたフレームとして転送する受信物理ポートであって、前記複数の第3のカプセル化されたフレーム及び一致するカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、複数の受信仮想ポート識別子を有する、受信物理ポートと、
前記受信物理ポートに結合されている受信仮想スイッチであって、前記一致するカプセル化されたフレームの前記ヘッダにおける前記受信仮想ポート識別子に基づいて前記一致するカプセル化されたフレームを切り替え可能に渡すための受信仮想スイッチと、
前記受信仮想スイッチに結合されている複数の受信仮想ポートであって、前記切り替え可能に渡された一致するカプセル化されたフレームをアンパックして、複数の一致するカプセル化された前記フレームから複数の第4のカプセル化されたフレームを抽出するための複数の受信仮想ポートであり、それによって、それぞれの受信仮想ポートが、一致するカプセル化されたフレームをアンパックして、第4のカプセル化されたフレームを抽出し、前記受信仮想ポートが、前記共有メモリの第2の部分を含む、複数の受信仮想ポートと、
前記複数の受信仮想ポートに結合されているデフレーミング回路であって、前記複数の第4のカプセル化されたフレームをアンパックして、前記複数の第4のカプセル化されたフレームから複数の出力フレームを抽出するためのデフレーミング回路であり、前記複数の出力フレームが、複数のフレームタイプを有し、それぞれの出力フレームが、宛先ルータ/スイッチを識別するヘッダを有する、デフレーミング回路と、
をさらに備える、項目6に記載の仮想ネットワークデバイス。
[項目8]
前記デフレーミング回路が、デフレーマを含み、前記デフレーマが、前記複数の受信仮想ポートから前記第4のカプセル化されたフレームを受信し、前記第4のカプセル化されたフレームをアンパックして、前記入力フレームを抽出する、項目7に記載の仮想ネットワークデバイス。
[項目9]
前記フレーミング回路が、前記入力フレームをローカルルータ/スイッチへ出力する、項目8に記載の仮想ネットワークデバイス。
[項目10]
仮想ネットワークデバイスの動作方法であって、
複数の入力フレームを受信するステップと、
前記複数の入力フレームを調べて、それぞれの入力フレームに関するフレームタイプを特定するステップと、
前記フレームタイプに基づいて、それぞれの入力フレームに関連付けられている仮想出口デバイスを特定するステップであり、それぞれの仮想出口デバイスが、受信仮想ポートを有する、ステップと、
前記複数の入力フレームをカプセル化して、複数の第1のカプセル化されたフレームを形成するステップであり、前記複数の第1のカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、前記複数の入力フレームに関連付けられている複数の仮想出口デバイスを識別する、ステップと、
前記複数の第1のカプセル化されたフレームの前記ヘッダにおける前記仮想出口デバイスに基づいて前記複数の第1のカプセル化されたフレームに関する仮想ネットワークにおける複数のネクストホップを特定するステップと、
複数の送信仮想ポートにおいて複数の第1のカプセル化されたフレームをカプセル化して、複数の第2のカプセル化されたフレームを形成するステップであり、それぞれの第2のカプセル化されたフレームが、ヘッダを有し、第2のカプセル化されたフレームの前記ヘッダが、第1のカプセル化されたフレームのネクストホップに基づいて前記第2のカプセル化されたフレームのネクストホップを、そして入力フレームの前記関連付けられている仮想出口デバイスの前記受信仮想ポートを識別する、ステップと、
前記送信仮想ポートをネットワーク物理ポートに選択的に結合するステップと、
を含む方法。
[項目11]
前記複数の送信仮想ポートを循環して、それぞれの送信仮想ポートから、固定された繰り返し順序で第2のカプセル化されたフレームを順次転送して、一連の第2のカプセル化されたフレームを出力するステップをさらに含む、項目10に記載の方法。
[項目12]
送信仮想ポートからフル信号を受信し、前記フル信号を出力する前記送信仮想ポートから前記ネットワーク物理ポートへフレームを転送するステップをさらに含む、項目10に記載の方法。
[項目13]
前記フレームタイプに基づいて送信仮想ポートへのフレームに関するルートを特定し、前記フレームを前記送信仮想ポートへ向けて出力するステップをさらに含む、項目10に記載の方法。
[項目14]
前記複数の入力フレームが、プロバイダバックボーンブリッジトラフィックエンジニアリング(PBB-TE)プロトコル及びトランスファーマルチプロトコルリスティングスイッチ(T-MPLS)プロトコルを含むプロトコルのグループからのプロトコルを用いてカプセル化される、項目10に記載の方法。
[項目15]
前記送信仮想ポートが、共有メモリの第1の部分を含む、項目10に記載の方法。
[項目16]
複数の第3のカプセル化されたフレームを受信するステップと、
前記複数の第3のカプセル化されたフレームを調べて、複数のフレーム宛先を特定するステップと、
前記複数のフレーム宛先を、格納されている宛先に比較するステップと、
前記第3のカプセル化されたフレームを、一致する宛先とともに、一致するカプセル化されたフレームとして転送するステップであって、前記複数の第3のカプセル化されたフレーム及び一致するカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、複数の受信仮想ポート識別子を有する、ステップと、
前記一致するカプセル化されたフレームの前記ヘッダにおける前記受信仮想ポート識別子に基づいて前記一致するカプセル化されたフレームを切り替え可能に渡すステップと、
複数の受信仮想ポートにおいて前記切り替え可能に渡された一致するカプセル化されたフレームをアンパックして、複数の一致するカプセル化された前記フレームから複数の第4のカプセル化されたフレームを抽出するステップであって、それによって、それぞれの受信仮想ポートが、一致するカプセル化されたフレームをアンパックして、第4のカプセル化されたフレームを抽出し、前記受信仮想ポートが、前記共有メモリの第2の部分を含む、ステップと、
前記複数の第4のカプセル化されたフレームをアンパックして、前記複数の第4のカプセル化されたフレームから複数の出力フレームを抽出するステップであって、前記複数の出力フレームが、複数のフレームタイプを有し、それぞれの出力フレームが、宛先ルータ/スイッチを識別するヘッダを有する、ステップと、
をさらに含む、項目15に記載の方法。
[項目17]
プログラム命令が埋め込まれている非一時的コンピュータ可読記憶媒体であって、前記プログラム命令が、プロセッサによって実行されたときに、仮想ネットワークデバイスの動作方法を前記プロセッサに実行させ、前記動作方法が、
複数の入力フレームを受信するステップと、
前記複数の入力フレームを調べて、それぞれの入力フレームに関するフレームタイプを特定するステップと、
前記フレームタイプに基づいて、それぞれの入力フレームに関連付けられている仮想出口デバイスを特定するステップであり、それぞれの仮想出口デバイスが、受信仮想ポートを有する、ステップと、
前記複数の入力フレームをカプセル化して、複数の第1のカプセル化されたフレームを形成するステップであり、前記複数の第1のカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、前記複数の入力フレームに関連付けられている複数の仮想出口デバイスを識別する、ステップと、
前記複数の第1のカプセル化されたフレームの前記ヘッダにおける前記仮想出口デバイスに基づいて前記複数の第1のカプセル化されたフレームに関する仮想ネットワークにおける複数のネクストホップを特定するステップと、
複数の送信仮想ポートにおいて複数の第1のカプセル化されたフレームをカプセル化して、複数の第2のカプセル化されたフレームを形成するステップであり、それぞれの第2のカプセル化されたフレームが、ヘッダを有し、第2のカプセル化されたフレームの前記ヘッダが、第1のカプセル化されたフレームのネクストホップに基づいて前記第2のカプセル化されたフレームのネクストホップを、そして入力フレームの前記関連付けられている仮想出口デバイスの前記受信仮想ポートを識別する、ステップと、
前記送信仮想ポートをネットワーク物理ポートに選択的に結合するステップと、
を含む、媒体。
[項目18]
前記動作方法が、前記複数の送信仮想ポートを循環して、それぞれの送信仮想ポートから、固定された繰り返し順序で第2のカプセル化されたフレームを順次転送して、一連の第2のカプセル化されたフレームを出力するステップをさらに含む、項目17に記載の媒体。
[項目19]
前記動作方法が、送信仮想ポートからフル信号を受信し、前記フル信号を出力する前記送信仮想ポートから前記ネットワーク物理ポートへフレームを転送するステップをさらに含む、項目17に記載の媒体。
[項目20]
前記動作方法が、
複数の第3のカプセル化されたフレームを受信するステップと、
前記複数の第3のカプセル化されたフレームを調べて、複数のフレーム宛先を特定するステップと、
前記複数のフレーム宛先を、格納されている宛先に比較するステップと、
それぞれの第3のカプセル化されたフレームを、一致する宛先とともに、一致するカプセル化されたフレームとして転送して、複数の一致するカプセル化されたフレームを転送するステップであって、前記複数の第3のカプセル化されたフレーム及び一致するカプセル化されたフレームが、複数のヘッダを有し、前記複数のヘッダが、複数の受信仮想ポート識別子を有する、ステップと、
前記一致するカプセル化されたフレームの前記ヘッダにおける前記受信仮想ポート識別子に基づいて前記一致するカプセル化されたフレームを切り替え可能に渡すステップと、
複数の受信仮想ポートにおいて前記切り替え可能に渡された一致するカプセル化されたフレームをアンパックして、前記複数の一致するカプセル化されたフレームから複数の第4のカプセル化されたフレームを抽出するステップであって、それによって、それぞれの受信仮想ポートが、一致するカプセル化されたフレームをアンパックして、第4のカプセル化されたフレームを抽出し、前記受信仮想ポートが、前記共有メモリの第2の部分を含む、ステップと、
前記複数の第4のカプセル化されたフレームをアンパックして、前記複数の第4のカプセル化されたフレームから複数の出力フレームを抽出するステップであって、前記複数の出力フレームが、複数のフレームタイプを有し、それぞれの出力フレームが、宛先ルータ/スイッチを識別するヘッダを有する、ステップと、
をさらに含む、項目19に記載の媒体。