JP2018504064A - ネットワーク内のデータパケットを転送するための方法ならびにそのためのプログラム可能なイングレスおよびエグレスノード - Google Patents

ネットワーク内のデータパケットを転送するための方法ならびにそのためのプログラム可能なイングレスおよびエグレスノード Download PDF

Info

Publication number
JP2018504064A
JP2018504064A JP2017540575A JP2017540575A JP2018504064A JP 2018504064 A JP2018504064 A JP 2018504064A JP 2017540575 A JP2017540575 A JP 2017540575A JP 2017540575 A JP2017540575 A JP 2017540575A JP 2018504064 A JP2018504064 A JP 2018504064A
Authority
JP
Japan
Prior art keywords
data
network
destination
data packet
programmable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017540575A
Other languages
English (en)
Other versions
JP6471238B2 (ja
Inventor
ウィリアム・マコーミック
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2018504064A publication Critical patent/JP2018504064A/ja
Application granted granted Critical
Publication of JP6471238B2 publication Critical patent/JP6471238B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5691Access to open networks; Ingress point selection, e.g. ISP selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ネットワーク内のデータパケットを転送するための方法は、概して、データパケットの少なくともペイロードデータ、シーケンスデータ、および宛先データを複製するステップを含む、少なくとも2つのトランジットデータパケットを形成するステップと、異なるネットワークパスに沿って少なくとも2つのトランジットデータパケットを転送するステップとを有する。異なるネットワークパスは、宛先データに基づいてエグレスノードへ導くことができる。エグレスノードでは、受信したデータパケットが格納データと比較されて、同じシーケンスデータを有するトランジットデータパケットが両方とも受信されたかどうかを決定することができる。次いで、受信したデータパケットは、それらが受信されるべきトランジットデータパケットの対のうちの1つ目であると決定されるときにのみ、データ宛先に伝送され得る。

Description

関連出願の相互参照
本出願は、2015年1月30日に出願された表題「METHOD FOR FORWARDING DATA PACKETS IN A NETWORK AND PROGRAMMABLE INGRESS AND EGRESS NODES THEREFORE」の米国特許出願第14/610,673号の優先権の利益を主張するものであり、その内容は参照により本明細書に組み込まれる。
分野
本改善は、概して、ネットワーク通信の分野、ならびにより具体的には、ネットワーク内のデータパケットをストリーミングするためのシステム、デバイス、および方法に関する。
データストリーミングは、例えば、サービスプロバイダによってネットワークを通じて提供されているデジタルコンテンツをそのままエンドユーザが消費することを望むときに使用される。そのようなデータストリーミングは、典型的には、エンドユーザがデジタルコンテンツを消費できるようにする前に、デジタルコンテンツの十分な部分をダウンロードすることに関連付けられる時間遅延を管理する。
デジタルコンテンツは、典型的には、データパケットのシーケンスの形態でネットワークを通じて伝送される。データパケットのうちの1つまたは複数の損失、損傷、または遅延は、エンドユーザに提供されるデータストリーミングの品質に影響を与え得ることが理解されよう。
データストリーミングに関与する既存のシステム、デバイス、および方法は、ある程度は満足のいくものであったが、特にデータストリーミングの品質に関連する問題を解決することに関しては、未だ改善の余地がある。
一態様に従って、ネットワーク内のデータパケットを転送するための方法が提供される。本方法は、データパケットの少なくともペイロードデータ、シーケンスデータ、および宛先データを複製するステップを含む、少なくとも2つのトランジットデータパケットを形成するステップと、少なくとも2つのトランジットデータパケットのうちの1つ目を、第1の定義されたネットワークパスに沿って、宛先データに従って選択されるエグレスノードに伝送するステップと、少なくとも2つのトランジットデータパケットのうちの2つ目を、第1の定義されたネットワークパスと異なる第2の定義されたネットワークパスに沿って、エグレスノードに伝送するステップと、を含み得る。
別の態様に従って、ネットワーク外のデータ宛先に連結されるエグレスノードを含む複数のノードを有するネットワーク内のデータパケットを転送するためのプログラム可能なイングレスノードが提供され、プログラム可能なイングレスノードは、データソースへの動作接続のためおよびネットワークを介したエグレスノードへの接続のためのものである。プログラム可能なイングレスノードは、処理デバイスと、処理デバイスに動作可能に連結され、かつ転送命令を格納したメモリとを備え得、転送命令は、処理デバイスによって実行されるとき、プログラム可能なイングレスノードに、データパケットの少なくともペイロードデータ、シーケンスデータ、および宛先データを複製することを含む、少なくとも2つのトランジットデータパケットを形成させ、少なくとも2つのトランジットデータパケットのうちの1つ目を、第1の定義されたネットワークパスに沿って、宛先データに従って選択されるエグレスノードに伝送させ、かつ少なくとも2つのトランジットデータパケットのうちの2つ目を、第1の定義されたネットワークパスと異なる第2の定義されたネットワークパスに沿ってエグレスノードに伝送させる。
別の態様に従って、データソースに連結されるイングレスノードを含む複数のノードを有するネットワークへの接続のためのプログラム可能なエグレスノードが提供され、プログラム可能なエグレスノードはさらに、ネットワークを介してイングレスノードへの動作接続のためおよびデータパケットをネットワーク外のデータ宛先に転送するためのものである。プログラム可能なエグレスノードは、処理デバイスと、処理デバイスに動作可能に連結され、かつ転送命令を格納したメモリとを備え得、転送命令は、処理デバイスによって実行されるとき、プログラム可能なイングレスノードに、受信したデータパケットのシーケンスデータを少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと比較させ、かつ受信したデータパケットのシーケンスデータが以前に伝送されたデータパケットに対応する格納シーケンスデータと一致しないと決定すると、受信したデータパケットをデータ宛先に転送させる。
別の態様に従って、ネットワーク内のデータパケットを転送するための方法が提供される。本方法は、データパケットの少なくともペイロードデータ、シーケンスデータ、および宛先データを複製するステップを含む、少なくとも2つのトランジットデータパケットを形成するステップと、少なくとも2つのトランジットデータパケットを異なるネットワークパスに沿って転送するステップとを含み、エグレスノードへ導く異なるネットワークパスは、宛先データに基づく。
別の態様に従って、ネットワーク内のデータパケットを転送するためのプログラム可能なイングレスノードが提供される。プログラム可能なイングレスノードは、ネットワークに動作可能に連結される処理デバイスであって、ネットワークが、データソースに連結される少なくともプログラム可能なイングレスノードおよびデータ宛先に連結されるエグレスノードを含む少なくとも複数のノードを有する、処理デバイスと、処理デバイスによって実行可能である第1の転送命令を格納したメモリとを備える。第1の転送命令は、データパケットの少なくともペイロードデータ、シーケンスデータ、および宛先データを複製することを含む、少なくとも2つのトランジットデータパケットを形成すること、および少なくとも2つのトランジットデータパケットを異なるネットワークパスに沿って転送することを含み得、エグレスノードへ導く異なるネットワークパスは、宛先データに基づく。
別の態様に従って、ネットワーク内のデータパケットを転送するためのプログラム可能なエグレスノードが提供される。プログラム可能なエグレスノードは、ネットワークに動作可能に連結される処理デバイスであって、ネットワークが、少なくともデータソースに連結されるイングレスノードおよびデータ宛先に連結されるプログラム可能なエグレスノードを含む少なくとも複数のノードを有する、処理デバイスと、処理デバイスによって実行可能な第2の転送命令を格納したメモリとを備える。第2の転送命令は、受信したデータパケットのシーケンスデータを少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと比較すること、および受信したデータパケットのシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致しないと決定されると、受信したデータパケットをデータ宛先に転送することを含み得る。
別の態様に従って、ネットワーク内のメインフローと関連付けられる複数のデータパケットを転送するためのネットワークコントローラが提供される。ネットワークコントローラは、ネットワークに動作可能に連結される処理デバイスを含み、さらにこのネットワークが、データソースに連結されるイングレスノードおよびデータ宛先に連結されるエグレスノードを含む少なくとも複数のプログラム可能なネットワークノードを有する。ネットワークコントローラはまた、処理デバイスによって実行可能なコンピュータソフトウェア製品を格納するメモリを有する。コンピュータソフトウェア製品は、イングレスノードのメモリに第1の転送命令をインストールするように適合されるコンピュータコードを含む。第1の転送命令は、イングレスノードの処理デバイスによって実行可能であり、メインフローの複数のデータパケットの1つ1つについて少なくともペイロードデータ、シーケンスデータ、および宛先データを複製することによって少なくとも2つのトランジットフローを形成すること、および少なくとも2つのトランジットフローをネットワークの異なるネットワークパスに沿って転送することを含み、ここで異なるネットワークパスは、宛先データに基づいてエグレスノードへ導く。
依然としてこの後者の態様に従って、第1の転送命令は、前記形成および転送することの前に、複数のデータパケットの1つ1つをシーケンスデータおよび宛先データのうちの少なくとも1つを用いて識別することを含み得る。
依然としてこの後者の態様に従って、前記転送することは、異なるネットワークパスデータを少なくとも2つのトランジットフローの1つ1つのデータパケットの1つ1つに組み込むことを含み得、ここで少なくとも2つのトランジットフローの1つ1つのネットワークパスデータは、異なるネットワークパスと関連付けられ得る。
依然としてこの後者の態様に従って、コンピュータソフトウェア製品は、エグレスノードのメモリに第2の転送命令をインストールするためのコンピュータコードを含み得、ここで第2の転送命令は、エグレスノードの処理デバイスによって実行可能であり得る。第2の転送命令は、受信したデータパケットのシーケンスデータをトラッキングすること、および前記トラッキングに基づいて、受信したデータパケットをデータ宛先に転送することを含み得る。
依然としてこの後者の態様に従って、前記トラッキングすることは、受信したデータパケットのシーケンスデータを少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと比較することを含み得、前記転送するステップは、受信したデータパケットのシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致しないと決定されると実施され得る。
依然としてこの後者の態様に従って、ネットワークコントローラは、ソフトウェア定義ネットワーク(SDN)コントローラであり得、複数のプログラム可能なネットワークノードは、SDNノードであり得る。
依然としてこの後者の態様に従って、複数のプログラム可能なネットワークノードは、プロトコル忘却型フォワーディング(Protocol-Oblivious Forwarding、POF)スイッチであり得る。
依然としてこの後者の態様に従って、宛先データは、カスタムプロトコル、リアルタイム転送プロトコル(Real-time Transport Protocol、RTP)、および伝送制御プロトコル(Transmission Control Protocol、TCP)のうちの少なくとも1つを伴い得る。
依然としてこの後者の態様に従って、第2の転送命令は、受信したデータパケットの所与のシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致すると決定すると、所与のシーケンスデータと関連付けられる格納シーケンスデータを消去することを含み得る。
依然としてこの後者の態様に従って、第2の転送命令は、受信したデータパケットのシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致しないと決定すると、シーケンスデータをエグレスノードのメモリおよびネットワークコントローラのメモリのうちの少なくとも1つに格納することを含み得る。
依然としてこの後者の態様に従って、コンピュータソフトウェア製品は、エグレスノードのメモリ上に第2の転送命令をインストールするためのコンピュータコードを含み得、ここで第2の転送命令は、データ宛先からのトラフィックフローデータの受信時に、その処理デバイスによって実行可能であり得る。第2の転送命令は、トラフィックフローデータを、データ宛先からのその受信時に、イングレスノードに転送することを含み得、ここでトラフィックフローデータを前記転送するステップは、異なるネットワークパスに沿って実施され得る。
依然としてこの後者の態様に従って、第1の転送命令は、トラフィックフローデータを、エグレスノードからの受信時に、データソースに転送することを含み得る。
依然としてこの後者の態様に従って、第2の転送命令は、トラフィックフローデータを、データ宛先からの受信時に、イングレスノードに転送することを含み得、ここでトラフィックフローデータを前記転送することは、異なるネットワークパスに沿って実施され得る。
依然としてこの後者の態様に従って、第1の転送命令は、異なるネットワークパスの1つ1つからのトラフィックフローデータをデータソースに転送することを含み得る。
依然としてこの後者の態様に従って、異なるネットワークパスの1つ1つからのトラフィックフローデータは、データソースに転送する前に、互いに組み合わされ得る。
別の態様に従って、ネットワーク内のメインフローと関連付けられる複数のデータパケットを転送するための方法が提供される。本方法は、メインフローの複数のデータパケットの1つ1つについて少なくともペイロードデータ、シーケンスデータ、および宛先データを複製するステップによって、少なくとも2つのトランジットフローを形成するステップと、少なくとも2つのトランジットフローを異なるネットワークパスに沿って転送するステップとを含み、ここで異なるネットワークパスは、宛先データに基づいてエグレスノードへ導く。
依然としてこの後者の態様に従って、本方法は、前記形成および転送するステップの前に、複数のデータパケットの1つ1つを少なくともシーケンスデータおよび宛先データを用いて識別するステップを含み得る。
依然としてこの後者の態様に従って、前記転送するステップは、異なるネットワークパスデータを少なくとも2つのトランジットフローの1つ1つのデータパケットの1つ1つに組み込むステップを含み得、ここで少なくとも2つのトランジットフローの1つ1つのネットワークパスデータは、異なるネットワークパスと関連付けられ得る。
依然としてこの後者の態様に従って、本方法は、受信したデータパケットのシーケンスデータをトラッキングするステップ、および前記トラッキングに基づいて、受信したデータパケットをデータ宛先に転送するステップを含み得る。
依然としてこの後者の態様に従って、本方法は、受信したデータパケットのシーケンスデータを少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと比較するステップを含むトラッキングするステップを含み得、ここで前記転送するステップは、受信したデータパケットのシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致しないと決定されると実施され得る。
依然としてこの後者の態様に従って、ネットワークは、複数のプログラム可能なネットワークノードを備えるソフトウェア定義ネットワーク(SDN)であり得る。
依然としてこの後者の態様に従って、複数のプログラム可能なネットワークノードは、プロトコル忘却型フォワーディング(POF)スイッチであり得る。
依然としてこの後者の態様に従って、宛先データは、カスタムプロトコル、リアルタイム転送プロトコル(RTP)、および伝送制御プロトコル(TCP)のうちの少なくとも1つを伴い得る。
依然としてこの後者の態様に従って、本方法は、受信したデータパケットの所与のシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致すると決定すると、所与のシーケンスデータと関連付けられる格納シーケンスデータを消去するステップを含み得る。
依然としてこの後者の態様に従って、本方法は、受信したデータパケットのシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致しないと決定すると、シーケンスデータをエグレスノードのメモリおよびネットワークコントローラのメモリのうちの少なくとも1つに格納するステップを含み得る。
依然としてこの後者の態様に従って、本方法は、トラフィックフローデータを、データ宛先からのその受信時に、イングレスノードに転送するステップを含み得、ここでトラフィックフローデータを前記転送するステップは、異なるネットワークパスに沿って実施され得る。
依然としてこの後者の態様に従って、本方法は、トラフィックフローデータを、エグレスノードからの受信時に、データソースに転送するステップを含み得る。
依然としてこの後者の態様に従って、本方法は、トラフィックフローデータを、データ宛先からの受信時に、イングレスノードに転送するステップを含み得、ここでトラフィックフローデータを前記転送するステップは、異なるネットワークパスに沿って実施され得る。
依然としてこの後者の態様に従って、本方法は、異なるネットワークパスの1つ1つからのトラフィックフローデータをデータソースに転送するステップを含み得る。
依然としてこの後者の態様に従って、異なるネットワークパスの1つ1つからのトラフィックフローデータは、データソースへ転送する前に、互いに組み合わされ得る。
別の態様に従って、ネットワーク内のメインフローと関連付けられる複数のデータパケットを転送するために使用され得るコンピュータソフトウェア製品が提供される。コンピュータソフトウェア製品は、ネットワークと関連付けられるネットワークコントローラのメモリに格納可能であり得、かつネットワークのイングレスノードのメモリにインストールされたときに、第1の転送命令を実施するように適合され得る。第1の転送命令は、イングレスノードの処理デバイスによって実行可能であり、メインフローの複数のデータパケットの1つ1つについて少なくともペイロードデータ、シーケンスデータ、および宛先データを複製することによって少なくとも2つのトランジットフローを形成すること、ならびに少なくとも2つのトランジットフローを異なるネットワークパスに沿って転送することを含み、ここで異なるネットワークパスは、宛先データに基づいてエグレスノードへ導く。
依然としてこの後者の態様に従って、第1の転送命令は、前記形成および転送することの前に、複数のデータパケットの1つ1つを少なくともシーケンスデータおよび宛先データを用いて識別することを含み得る。
依然としてこの後者の態様に従って、前記転送することは、異なるネットワークパスデータを少なくとも2つのトランジットフローの1つ1つのデータパケットの1つ1つに組み込むことを含み得、ここで少なくとも2つのトランジットフローの1つ1つのネットワークパスデータは、異なるネットワークパスと関連付けられ得る。
依然としてこの後者の態様に従って、コンピュータソフトウェア製品は、ネットワークのエグレスノードのメモリにインストールされる第2の転送命令を含み得、ここで第2の転送命令は、エグレスノードの処理デバイスによって実行可能であり得る。第2の転送命令は、受信したデータパケットのシーケンスデータをトラッキングすること、および前記トラッキングに基づいて、受信したデータパケットをデータ宛先に転送することを含み得る。
依然としてこの後者の態様に従って、トラッキングすることは、受信したデータパケットのシーケンスデータを少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと比較することを含み得、前記転送することは、受信したデータパケットのシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致しないと決定されると実施され得る。
依然としてこの後者の態様に従って、ネットワークコントローラは、ソフトウェア定義ネットワーク(SDN)コントローラであり得、複数のプログラム可能なネットワークノードは、SDNノードであり得る。
依然としてこの後者の態様に従って、複数のプログラム可能なネットワークノードは、プロトコル忘却型フォワーディング(POF)スイッチであり得る。
依然としてこの後者の態様に従って、宛先データは、カスタムプロトコル、リアルタイム転送プロトコル(RTP)、および伝送制御プロトコル(TCP)のうちの少なくとも1つを伴い得る。
依然としてこの後者の態様に従って、第2の転送命令は、受信したデータパケットの所与のシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致すると決定すると、所与のシーケンスデータと関連付けられる格納シーケンスデータを消去することを含み得る。
依然としてこの後者の態様に従って、シーケンスデータは、エグレスノードのメモリおよびネットワークコントローラのメモリのうちの少なくとも1つに格納され得る。
依然としてこの後者の態様に従って、コンピュータソフトウェア製品は、エグレスノードのメモリに第2の転送命令をインストールするためのコンピュータコードを含み得、第2の転送命令は、データ宛先からのトラフィックフローデータの受信時に、その処理デバイスによって実行可能であり得る。第2の転送命令は、トラフィックフローデータを、データ宛先からのその受信時に、イングレスノードに転送することを含み得、ここでトラフィックフローデータを前記転送することは、異なるネットワークパスに沿って実施され得る。
依然としてこの後者の態様に従って、第1の転送命令は、トラフィックフローデータを、エグレスノードからの受信時に、データソースに転送することを含み得る。
依然としてこの後者の態様に従って、第2の転送命令は、トラフィックフローデータを、データ宛先からの受信時に、イングレスノードに転送することを含み得、ここでトラフィックフローデータを前記転送することは、異なるネットワークパスに沿って実施され得る。
依然としてこの後者の態様に従って、第1の転送命令は、異なるネットワークパスの1つ1つからのトラフィックフローデータをデータソースに転送することを含み得る。
依然としてこの後者の態様に従って、異なるネットワークパスの1つ1つからのトラフィックフローデータは、データソースへ転送する前に、互いに組み合わされ得る。
別の態様に従って、ネットワーク内のメインフローと関連付けられる複数のデータパケットを転送するためのプログラム可能なイングレスノードが提供される。プログラム可能なイングレスノードは、ネットワークに動作可能に連結される処理デバイスを含み、さらにこのネットワークが、データソースに連結されるプログラム可能なイングレスノードおよびデータ宛先に連結されるエグレスノードを少なくとも含む少なくとも複数のノードを有する。プログラム可能なイングレスノードはまた、処理デバイスによって実行可能である第1の転送命令を格納したメモリを有する。第1の転送命令は、メインフローの複数のデータパケットの1つ1つについて少なくともペイロードデータ、シーケンスデータ、および宛先データを複製することによって、少なくとも2つのトランジットフローを形成することと、少なくとも2つのトランジットフローを異なるネットワークパスに沿って転送することとを含み、ここで異なるネットワークパスは、宛先データに基づいてエグレスノードへ導く。
依然としてこの後者の態様に従って、第1の転送命令は、前記形成および転送することの前に、複数のデータパケットの1つ1つを少なくともシーケンスデータおよび宛先データを用いて識別することを含み得る。
依然としてこの後者の態様に従って、前記転送することは、異なるネットワークパスデータを少なくとも2つのトランジットフローの1つ1つのデータパケットの1つ1つに組み込むことを含み得、ここで少なくとも2つのトランジットフローの1つ1つのネットワークパスデータは、異なるネットワークパスと関連付けられ得る。
依然としてこの後者の態様に従って、ネットワークは、ソフトウェア定義ネットワーク(SDN)であり得る。
依然としてこの後者の態様に従って、プログラム可能なイングレスノードは、SDNスイッチであり得る。
依然としてこの後者の態様に従って、SDNスイッチは、OpenFlowスイッチおよびプロトコル忘却型フォワーディング(POF)スイッチのうちの少なくとも1つである。
依然としてこの後者の態様に従って、宛先データは、カスタムプロトコル、リアルタイム転送プロトコル(RTP)、および伝送制御プロトコル(TCP)のうちの少なくとも1つを伴い得る。
依然としてこの後者の態様に従って、プログラム可能なイングレスノードは、エグレスノードのメモリに第2の転送命令をインストールするためのコンピュータコードを含むことを含み得、ここで第2の転送命令は、データ宛先からのトラフィックフローデータの受信時に、その処理デバイスによって実行可能であり得る。第2の転送命令は、トラフィックフローデータを、データ宛先からのその受信時に、イングレスノードに転送することを含み得、ここでトラフィックフローデータを前記転送することは、異なるネットワークパスに沿って実施され得る。
依然としてこの後者の態様に従って、第1の転送命令は、トラフィックフローデータを、エグレスノードからの受信時に、データソースに転送することを含み得る。
別の態様に従って、ネットワーク内のメインフローと関連付けられる複数のデータパケットを転送するためのプログラム可能なエグレスノードが提供される。プログラム可能なエグレスノードは、ネットワークに動作可能に連結される処理デバイスを含み、さらにこのネットワークが、データソースに連結されるイングレスノードおよびデータ宛先に連結されるプログラム可能なエグレスノードを少なくとも含む少なくとも複数のノードを有する。プログラム可能なエグレスノードはまた、処理デバイスによって実行可能な第2の転送命令を格納したメモリを有する。第2の転送命令は、受信したデータパケットのシーケンスデータを少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと比較すること、および受信したデータパケットのシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致しないと決定されると、受信したデータパケットをデータ宛先に転送することを含む。
依然としてこの後者の態様に従って、第2の転送命令は、受信したデータパケットの所与のシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致すると決定すると、所与のシーケンスデータと関連付けられる格納シーケンスデータを消去することを含み得る。
依然としてこの後者の態様に従って、シーケンスデータは、エグレスノードのメモリおよびネットワークコントローラのメモリのうちの少なくとも1つに格納され得る。
依然としてこの後者の態様に従って、ネットワークは、ソフトウェア定義ネットワーク(SDN)であり得る。
依然としてこの後者の態様に従って、プログラム可能なイングレスノードは、SDNスイッチであり得る。
依然としてこの後者の態様に従って、SDNスイッチは、OpenFlowスイッチおよびプロトコル忘却型フォワーディング(POF)スイッチのうちの少なくとも1つであり得る。
依然としてこの後者の態様に従って、第2の転送命令は、トラフィックフローデータを、データ宛先からの受信時に、イングレスノードに転送することを含み得、ここでトラフィックフローデータを前記転送することは、異なるネットワークパスに沿って実施され得る。
依然としてこの後者の態様に従って、第1の転送命令は、異なるネットワークパスの1つ1つからのトラフィックフローデータをデータソースに転送することを含み得る。
依然としてこの後者の態様に従って、異なるネットワークパスの1つ1つからのトラフィックフローデータは、データソースに転送する前に、互いに組み合わされ得る。
別の態様に従って、ネットワーク内のメインフローと関連付けられる複数のデータパケットを転送するためのネットワーク通信システムが提供される。ネットワーク通信システムは、データソースおよびネットワークに動作可能に連結されるプログラム可能なイングレスノードを有する。プログラム可能なイングレスノードは、複数のデータパケットを有するメインフローをデータソースからデータ宛先に転送するための要求を受信するように構成され、ここで前記メインフローを転送することは、メインフローの複数のデータパケットの1つ1つについて少なくともペイロードデータ、シーケンスデータ、および宛先データを複製することによって、少なくとも2つのトランジットフローを形成すること、および少なくとも2つのトランジットフローを異なるネットワークパスに沿って転送することを含む。ここで、異なるネットワークパスは、宛先データに基づいてエグレスノードへ導く。ネットワーク通信システムはまた、データ宛先およびネットワークに動作可能に連結されるプログラム可能なエグレスノードを有する。プログラム可能なエグレスノードは、少なくとも2つのトランジットフローを受信するように構成され、ここで前記受信は、受信したデータパケットのシーケンスデータをトラッキングすること、および受信したデータパケットを前記トラッキングに基づいてデータ宛先に転送することを含む。
依然としてこの後者の態様に従って、第1の転送命令は、前記形成および転送することの前に、複数のデータパケットの1つ1つを少なくともシーケンスデータおよび宛先データを用いて識別することを含み得る。
依然としてこの後者の態様に従って、前記転送することは、異なるネットワークパスデータを少なくとも2つのトランジットフローの1つ1つのデータパケットの1つ1つに組み込むことを含み得、ここで少なくとも2つのトランジットフローの1つ1つのネットワークパスデータは、異なるネットワークパスと関連付けられ得る。
依然としてこの後者の態様に従って、前記トラッキングすることは、受信したデータパケットのシーケンスデータを少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと比較することを含み得、前記受信したデータパケットを転送することは、受信したデータパケットのシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致しないと決定されると実施され得る。
依然としてこの後者の態様に従って、ネットワークコントローラは、ソフトウェア定義ネットワーク(SDN)コントローラであり得、複数のプログラム可能なネットワークノードは、SDNノードであり得る。
依然としてこの後者の態様に従って、複数のプログラム可能なネットワークノードは、プロトコル忘却型フォワーディング(POF)スイッチであり得る。
依然としてこの後者の態様に従って、宛先データは、カスタムプロトコル、リアルタイム転送プロトコル(RTP)、および伝送制御プロトコル(TCP)のうちの少なくとも1つを伴い得る。
依然としてこの後者の態様に従って、第2の転送命令は、受信したデータパケットの所与のシーケンスデータが少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致すると決定すると、所与のシーケンスデータと関連付けられる格納シーケンスデータを消去することを含み得る。
依然としてこの後者の態様に従って、シーケンスデータは、エグレスノードのメモリおよびネットワークコントローラのメモリのうちの少なくとも1つに格納され得る。
依然としてこの後者の態様に従って、コンピュータソフトウェア製品は、エグレスノードのメモリに第2の転送命令をインストールするためのコンピュータコードを含み得、ここで第2の転送命令は、データ宛先からのトラフィックフローデータの受信時に、その処理デバイスによって実行可能であり得る。第2の転送命令は、トラフィックフローデータを、データ宛先からのその受信時に、イングレスノードに転送することを含み得、ここで前記トラフィックフローデータを転送することは、異なるネットワークパスに沿って実施され得る。
依然としてこの後者の態様に従って、第1の転送命令は、トラフィックフローデータを、エグレスノードからの受信時に、データソースに転送することを含み得る。
依然としてこの後者の態様に従って、第2の転送命令は、トラフィックフローデータを、データ宛先からの受信時に、イングレスノードに転送することを含み得、ここで前記トラフィックフローデータを転送することは、異なるネットワークパスに沿って実施され得る。
依然としてこの後者の態様に従って、第1の転送命令は、異なるネットワークパスの1つ1つからのトラフィックフローデータをデータソースに転送することを含み得る。
依然としてこの後者の態様に従って、異なるネットワークパスの1つ1つからのトラフィックフローデータは、データソースに転送する前に、互いに組み合わされ得る。
本改善に関する多くのさらなる機能およびその組み合わせは、本開示を読むことにより当業者にとっては明らかである。
実施形態に従う、ネットワーク通信システムの例のネットワーク図である。 実施形態に従う、図1のネットワーク通信システム内のデータパケットのメインフローの第1の例を示す概念図である。 実施形態に従う、データパケットの第1の例を示すハイレベル概念図である。 実施形態に従う、データパケットの第2の例を示すハイレベル概念図である。 実施形態に従う、イングレスノード内のデータパケットのメインフローの例を示す概念図である。 実施形態に従う、エグレスノード内のデータパケットのフロー例を示す概念図である。 実施形態に従う、図1のネットワーク通信システムのネットワークコントローラの例のハイレベル概念図である。 実施形態に従う、図1のネットワーク通信システムのノードの例のハイレベル概念図である。 実施形態に従う、図1のネットワーク通信システム内のデータパケットのメインフローの第1の例を示す概念図である。 実施形態に従う、図1のネットワーク通信システム内のデータパケットのメインフローの第2の例を示す概念図である。 実施形態に従う、図1のネットワーク通信システム内のメインフローに関連付けられる複数のデータパケットを転送するための方法の例のフローチャートである。 実施形態に従う、図1のネットワーク通信システム内のメインフローに関連付けられる複数のデータパケットを転送するための方法の例のフローチャートである。
これらの図面は、例証を目的として実施形態を例示的に描写するものであり、変形形態、代替構成、代替コンポーネント、および修正がこれらの例示的実施形態になされてもよい。
図1は、ネットワーク通信システム100の例を例証する。描写されるように、システム100は、パケット交換ネットワーク140によって相互接続される、ネットワークコントローラ110、データソースまたはストリームソース120、およびデータ宛先またはストリーム処理設備130を含む。パケット交換ネットワーク140は、イングレスノード150、中間ノード160、およびエグレスノード170などのノードを含む。
この実施形態では、ネットワーク通信システム100は、部分的または完全にソフトウェア定義されたアーキテクチャを有する。ネットワークコントローラ110は、好適なアプリケーションプログラムインターフェース(API)と連結され得るソフトウェア定義ネットワーク(SDN)コントローラである。SDNコントローラ110は、パケット交換ネットワーク140のための制御プレーン機能を実施するように、およびネットワーク140のためのトラフィックエンジニアリング機能を実施するように構成される。例えば、ネットワークコントローラ110は、ネットワーク140内を伝送されるデータパケットのフローのための最適ネットワークパスを決定し、システム110のノードでのデータパケットの出発時間をスケジューリングする。さらには、この実施形態では、ノード150、160、および170は、SDNノード、SDNスイッチなどのプログラム可能なネットワークノードである。ノード150、160、および170は、ネットワークコントローラ110を介して、またはサードパーティデバイスを介して、プログラム可能および/または制御可能であるように構成される。ネットワークコントローラ110、ならびにノード150、160、および170のそのようなプログラマビリティが、SDNシステム100の制御プレーンおよび転送プレーン両方のカスタマイゼーションを可能にする。
本明細書に提示される方法およびシステム例は、ネットワーク140を通じて情報をストリーミングすることを伴うSDNシステム100において具現化される。SDNシステム100、ネットワークコントローラ110、ならびにノード150、160、および170と関連付けられる利点を生かしながら、本明細書に開示される実施形態は、データパケットの損失、損傷、および/または遅延をもたらし得る問題などのデータストリーミングの品質問題を解決するために、データのストリームを複製することを伴う。非SDN通信システムにおけるそのような課題に取り組むことは、イングレスノードおよびエグレスノードで物理的に統合されるハードウェアを伴い、そのようなことには、追加の物理装置、保守、および人的資源に関してコストがかかっていたが、そのような懸念のうちの少なくとも一部は、本明細書に開示されるようにSDN実施形態を使用して解決され得る。
図2は、ネットワーク通信システム100内のデータパケットPiのメインフローFの第1の例を示す概念図を例証する。上に簡単に説明されるように、データストリーミングにおいて、デジタルコンテンツは、複数のデータパケットPiのシーケンスを有するメインフローFの形態で、ネットワーク140を通じて伝送される(また“転送される"とも称される)。メインフローFは、例えば、データソース120から伝送される。この実施形態は、イングレスノード150およびエグレスノード170でのソフトウェアの使用、ならびに/またはイングレスノード150およびエグレスノード170のネットワーク制御を伴う。イングレスノード150では、メインフローFのデータパケットPiは、複製されたデータパケットPiの2つのトランジットフローF'およびF''に複製される。次いで、トランジットフローF'、F''は、ネットワーク140を通じて、異なるネットワークパスに沿って伝送され、より具体的には、第1の定義されたネットワークパス210に沿ってエグレスノードに転送される場合には少なくとも2つのトランジットデータパケットのうちの1つ目、および少なくとも2つのトランジットデータパケットのうちの2つ目は、第1の定義されたネットワークパス210とは異なる第2の定義されたネットワークパス220に沿ってエグレスノードに転送される。さらに、エグレスノード170では、トランジットフローF'、F''の受信時に、データパケットPiがトラッキングされ、データ宛先130に転送される。単一のトランジットフローを送信することと比べて、この実施形態は、同じデータパケットPiのうちの任意の所与の1つが損失、損傷、および/または遅延される可能性を著しく減少させ得る。受信したデータパケットPiのトラッキングは、受信するデータパケットの1つ1つのシーケンスデータに基づき得る。ある実施形態において、本明細書に記載される方法およびシステムは、前記トラッキング中に、そのシーケンスのデータパケットのうちのどの1つがすでにデータ宛先130に転送されたかを示す格納シーケンスデータの記録を維持することを可能にする。本明細書に詳細に説明されるように、少なくとも2つの異なるネットワークパスは、宛先データに従って選択され、宛先データに基づいてエグレスノードへ導き得る。
図2に提示される単純化された例示的概略において、ネットワーク140は、離れて配置されたデータソース120およびデータ宛先130を連結する複数のネットワークパスを有する。トランジットフローF'は、トランジットフローF'のデータパケットが第1のネットワークリンク212に沿って中間ノード160'に、次いで第2のネットワークリンク242を介してエグレスノード170に伝送されるように、ネットワーク140を通じてネットワークパス210を介して伝送される。この実施形態においてさらに示されるように、トランジットフローF''は、中間ノード160''および160'''、ならびにネットワークリンク222、224、および226を有するネットワークパス220を介してエグレスノード170に伝送される。
図2に概略的に例証されるように、いくつかのデータパケットPiは、損失、損傷、および/または遅延される。例えば、トランジットフローF'のデータパケットP4およびトランジットフローF''のデータパケットP8は、損失および/または欠落し、トランジットフローF'のデータパケットP9は、データパケットP8と比較して一時的に遅延される。本明細書に開示される方法およびシステムは、データストリーミングの品質の劣化を少なくして、メインフローFをデータ宛先130において提供することができる。実際、図2に例証される時点においては、メインフローFのデータパケットP1、P2、およびP3がちょうどトラッキングされ、エグレスノード170によって比較されたところであり、データ宛先130に転送されようとしている。この実施形態では、データパケットP1およびP2はフローF''から選択され、データパケットP3はフローF'から選択された。次にエグレスノード170に向かうのは、トランジットフローF''からのデータパケットP4であり、データパケットP4がトランジットフローF'に不在であることから、それはデータ宛先130に転送されることになる。トランジットフローのうちのいずれか1つのデータパケットPiが、データ宛先130に伝送されるメインフローF上で使用され得る状況では、両方のトランジットフローがアクティブであると言われ得、本実施形態は、アクティブ-アクティブデータストリーミングの例と称され得る。
図3Aは、データパケットPiの第1の例を示すハイレベル概念図である。この実施形態では、データパケットPiは、ペイロードデータ310、宛先データ320、およびシーケンスデータ330を含む(追加データが代替実施形態には存在し得る)。ペイロードデータ310は、ネットワーク140を通じてストリーミングされるセグメント化されたデジタルコンテンツと関連付けられる。ある実施形態において、ペイロードデータ310に含まれる情報の量は、フローのデータパケット間で均等に共有されるが、別の実施形態においては、ペイロード310に含まれる情報の量は、データパケットごとに様々であり得る。宛先データ320は、メインフローFが最終的に転送されるデータ宛先130と関連付けられる。この実施形態では、詳細なネットワークパスは、イングレスノードで完全に決定されるわけではないが、中間ノードで少なくとも部分的に決定され、故に現在のネットワーク状況および/または任意の他の関連検討事項に依存し得る。データパケットPiに関連したシーケンスデータ330は、メインフローF内でのその順序を示す。例えば、図2の実施形態では、データパケットP1は、メインフローFの第1のデータパケットであるが、データパケットPiは、メインフローFのi番目のデータパケットである。
図3Bは、データパケットPiの第2の例を示すハイレベル概念図である。この実施形態では、データパケットPiは、追加で、最終的にエグレスノードへ導くパスに沿った中間宛先に関連するより詳細なネットワークパスデータ340を含む。一実施形態において、例えば、パス全体が既定され、例えば、イングレスノードの段階でネットワークパスデータ340内に示され得る。ネットワークパスは、ネットワーク140内で辿るためのノードおよび/またはリンクの特定のシーケンスを含み得る。別の実施形態において、ネットワークパスデータは、データパケットPiが転送されるべき次の中間ノード160を示し得る。
データパケットPiに組み込まれるデータ320、330(および340または任意の他の追加データ)は、所与の通信プロトコルによって読まれ得るヘッダの形態で提供され得る。宛先データ320は、例えば、インターネットプロトコル(IP)ヘッダ、ユーザデータグラムプロトコル(User Datagram Protocol、UDP)ヘッダ、リアルタイム転送プロトコル(Real-time Transport Protocol、RTP)ヘッダなどであり得る。シーケンスデータは、メインフローF内のデータパケットPiのシーケンス順を示す数値、またはシーケンシング機能を満たすことができる任意の他のヘッダであり得る。さらに、SDN環境においては、既知の通信プロトコルと関連付けられる代わりにカスタマイズされる宛先データ320を提供することが有用であることが分かった。確かに、標準プロトコルを順守する必要性は、ノード150、160、および170がプログラム可能であるために減少される。
図4は、本明細書に開示される方法およびシステムの実施形態に従う、イングレスノード150によって処理されるデータパケットPiのメインフローFの例400を示す概念図である。この実施形態では、イングレスノード150は、入力データを受信し、かつ出力データを経時的に順次伝送するように構成される。入力データは、ペイロードデータ310を有するデータパケットPiのメインフローFであり、出力データは、例えば、2つのトランジットフローF'およびF''である。本明細書に開示される方法およびシステムに従って、イングレスノード150は、出力データを出力する前に、命令に基づいたアクションを実施するように構成される。図4の実施形態では、イングレスノード150は第1の転送命令を実施するように構成される。ある実施形態において、そのような第1の転送命令は、イングレスノード150のメモリに格納され得る。別の実施形態において、第1の転送命令は、適切に適合されるコンピュータソフトウェア製品を使用して、ネットワークコントローラ110によってイングレスノード150のメモリにインストールされる。
第1の転送命令は、例えば、識別アクション410、複製アクション420、および転送アクション430を含み得る。代替の実施形態において、シーケンスデータは、データパケットがイングレスノードに到着したとき、ペイロードデータと共にすでに存在し得、故に識別のステップは回避され得る。いくつかの実施形態において、データは、安定したデータストリームの形態でイングレスノードに到着し得、および/またはイングレスノードと共に完全にまたは部分的に格納され得、イングレスノードは、データパケットの形態でデータの送信を準備するために分離機能および/またはバッファリング機能を追加で実施し得る。図4の実施形態では、メインフローFのデータパケットPiの1つ1つを識別する識別アクション410を実施するように構成されるのはイングレスノード150である。この実施形態に従って、識別は、宛先データ320およびシーケンスデータ330をデータパケットPiのペイロードデータ310に組み込むことを含み得る。別の実施形態において、識別アクション410は随意であり、メインフローFのデータパケットPiの1つ1つは、イングレスノード150に伝送される前に、宛先データ320およびシーケンスデータ330を用いて識別される。別の実施形態において、イングレスノード150は、ネットワークパスデータ340を、2つのトランジットフローF'およびF'のうちの所与の1つのデータパケットの1つ1つに組み込むように構成される。この特定の実施形態において、2つのトランジットフローF'およびF''は2つの異なるネットワークパスに沿って転送されることになるため、ネットワークパスデータ340は、トランジットフローF'およびトランジットフローF''では異なる。図4に示されるように、イングレスノード150は、メインフローFのデータパケットPiを経時的に順次複製して宛先データ320およびシーケンスデータ330を有するデータパケットPiの2つのトランジットフローF'およびF''を形成する複製アクション420を実施するように構成される。図4に示されるように、イングレスノード150は、トランジットフローF'およびF''を、パケット交換ネットワーク140の中間ノード160に沿って(少なくとも図2に示される)、例えば、2つの異なるネットワークパス210および220を介して転送するように構成される。依然として図4を参照すると、データパケットP2は、この実施形態では、連続するアクション410、420、および430の際にイングレスノード150によって処理されているが、1つを超えるデータパケットPiは、例えば、イングレスノード150によって実施される連続するアクション410、420、および430の1つ1つによって継続して処理され得ることに留意されたい。
別の実施形態において、識別アクション410は、イングレスノード150によって実施される代わりにデータソース120によって実施される。この特定の実施形態において、宛先データ320およびシーケンスデータ330は、データパケットPiのメインフローFのイングレスノード150への伝送前に、データソース120によってデータパケットPiのペイロード310に組み込まれる。依然としてこの実施形態では、イングレスノード150は、例えば、トランジットフローF'およびF''を形成するために、データパケットPiの1つ1つに対して複製アクション420および転送アクション430のみを実施する。
図5は、本明細書に開示される方法およびシステムの実施形態に従う、エグレスノード170によって処理されるデータパケットPiのメインフローFの例500を示す概念図である。この実施形態では、エグレスノード170は、入力データを受信し、かつ出力データを経時的に順次伝送するように構成される。入力データは、イングレスノード150から、2つの異なるネットワークパス210および220に沿って伝送される2つのトランジットフローF'およびF''である。エグレスノード170の出力データは、ペイロードデータ310を有するデータパケットPiのメインフローFである。図5の実施形態では、エグレスノード170は第2の転送命令を実施するように構成される。ある実施形態において、そのような第2の転送命令は、エグレスノード170のメモリに格納され得る。別の実施形態において、第2の転送命令は、適切に適合されるコンピュータソフトウェア製品を使用して、ネットワークコントローラ110によってエグレスノード170のメモリにインストールされる。
第2の転送命令は、例えば、少なくともトラッキングアクション510、転送アクション520、消去アクション530、および格納アクション540を含み得る。図5に描写されるように、エグレスノード170は、トランジットフローF'およびF''のデータパケットPiの1つ1つを識別およびトラッキングするトラッキングアクション510を実施するように構成される。一実施形態において、エグレスノード170は、2つのトランジットフローF'およびF''からの受信したデータパケットPiをトラッキングし、受信したデータパケットPiの1つ1つに時点tiを関連させる。この実施形態に従って、エグレスノード170は、トランジットフローF'およびF''の受信したデータパケットPiのそれぞれに関連した時点tiに基づいて転送アクション520を実施するように適合される。例えば、トランジットフローF'のデータパケットP3が時点t3'で受信され、かつトランジットフローF''のそのデータパケットP3が、たまたま時点t3'の前である時点t3''で受信されるとき、エグレスノード170は、トランジットフローF''のデータパケットP3をデータ宛先130に転送するように構成される。トランジットフローF'のデータパケットP3については、エグレスノード170は、トランジットフローのいずれかのデータパケットP3のいずれかがデータ宛先130に一旦転送されると、消去アクション530下で後に受信したデータパケットP3を消去するように構成される。
別の実施形態において、エグレスノード170は、トランジットフローF'およびF''からの受信したデータパケットPiをトラッキングし、データパケットPiをデータ宛先130に転送する前に、データパケットPiのシーケンスデータ330を比較する。この実施形態では、エグレスノード170は、格納アクション540を実施し、受信したデータパケットの1つ1つの格納シーケンスデータを格納する。比較は、受信したデータパケットPiのシーケンスデータ330が少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと一致しないと決定すると決定すると、データパケットPiを転送する前に、受信したデータパケットのシーケンスデータ330を格納シーケンスデータと比較することを含む。言い換えると、所与のデータパケットがすでに受信されたシーケンスデータを有するとき、例えば、シーケンスデータが格納シーケンスデータにすでに格納されている場合、エグレスノード170が所与のデータパケットを消去するように適合されるように、エグレスノード170は、受信したデータパケットPiと関連付けられる受信したシーケンスデータ330の記録を維持する。代替的に、所与のデータパケットが格納シーケンスデータに従って以前に受信されていないシーケンスデータを有するとき、エグレスノード170は、所与のデータパケットをデータ宛先130に転送するように適合される。依然としてこの実施形態では、エグレスノード170は、受信したデータパケットの所与のシーケンスデータが以前に受信したデータパケットのうちのいずれか1つの格納シーケンスデータと一致することが決定されたとき、所与のシーケンスデータと関連付けられる格納シーケンスデータを消去するように適合される。異なる言い方をすると、エグレスノード170によって格納される格納シーケンスデータは、例えば、システム要件を制限するためにリアルタイムで更新され得る。
ある実施形態において、格納アクション540は、エグレスノード170のメモリ内にトランジットフローF'およびF''のデータパケットのシーケンスデータ330を格納する。図5に描写される実施形態では、トランジットフローF''のデータパケットP3のシーケンスデータ330は、時点3''で格納され、その結果、後の時点t3'でのトランジットフローF'のデータパケットP3の受信時に、トランジットフローF'の後に受信したデータパケットP3は消去アクション530の下で消去されるべきであるということがエグレスノード170によって決定される。さらに、この実施形態では、転送アクション520は、データパケットPiのペイロード310をデータ宛先130に転送する前に、シーケンスデータ330および宛先データ320をデータパケットPiから除去する。別の実施形態において、データパケットPiは、例えば、その宛先データ320およびそのシーケンスデータ330に従って転送される。別の実施形態において、エグレスノード170は、データパケットPiをある時間にわたって格納するように構成される。この格納は、データパケットPiの再順序付けのとき、即ち、次のデータパケットが前のデータパケットの前に受信されるときに有用であり得る。この状況では、エグレスノード170は、データパケットPiのメインフローFのシーケンスデータのシーケンスに従って次のデータパケットをデータ宛先130に転送するために、次のデータパケットを格納するように適合される。
別の実施形態において、転送アクション520は、転送されたデータパケットPiの1つ1つから宛先データ320およびシーケンスデータ330を除去しない。この特定の実施形態において、転送されたデータパケットPiは、ペイロード310、宛先データ320、およびシーケンスデータ330を含む。依然としてこの実施形態では、データ宛先130は、例えば、「再構築された」メインフローFのデータパケットPiの1つ1つのペイロード310をそれらのそれぞれのシーケンスデータ330に基づいて処理するように構成される。
図6は、ネットワークコントローラ110の例のハイレベル概念図を例証する。示されるように、ネットワークコントローラ110は、メモリ620に接続される処理デバイス610を含む。
図7は、イングレスノード150およびエグレスノード170のいずれかの例のハイレベル概念図を例証する。描写されるように、ノード150および170は、処理デバイス710および処理デバイス710に動作可能に接続されるメモリ720を含む。
ある実施形態において、ネットワークコントローラ110は、第1の転送命令および第2の転送命令を、それぞれイングレスノード150およびエグレスノード170を使用して実施することができる。この特定の実施形態において、データパケットPiのメインフローFのストリーミングは、ネットワークコントローラ110のメモリ620に格納されたコンピュータソフトウェア製品によって管理される。別の実施形態において、コンピュータソフトウェア製品は、イングレスノード150のメモリ720に第1の転送命令をインストールするため、およびイングレスノード170のメモリ720に第2の転送命令をインストールするためのコンピュータコードを含む。第1および第2の転送命令がノード150および170のうちのいずれか1つのメモリ720にインストールされると、処理デバイス710は、本明細書に開示される方法に従って転送命令の1つ1つを実施するように適合される。ある実施形態において、ネットワークコントローラ110は、メモリ620上にコンピュータソフトウェア製品がプログラムされた状態で販売され、イングレスノード150は、イングレスノード150のメモリ720上に第1の転送命令を有するスタンドアローンデバイスとして販売され、エグレスノード170は、エグレスノード170のメモリ720上に第2の転送命令を有するスタンドアローンデバイスとして販売される。
ある実施形態において、ネットワークコントローラ110は、ネットワーク140を介してイングレスノード150およびエグレスノード170に動作可能に連結される。ある実施形態において、SDNコントローラ110は、イングレスノード150によって使用され得るネットワークパスを生成するようにさらに構成される。ネットワークコントローラ110のメモリ620には、ネットワーク通信システム100の、およびより具体的にはパケット交換ネットワーク140のトポロジおよび動作特性に関するデータが取り込まれ得る。例えば、メモリ620は、データソース120のそれぞれ、ノード150、160、および170のそれぞれ、ならびにデータ宛先130のそれぞれを識別する記録、ノードを相互接続するリンクのそれぞれを識別する記録、パケット交換ネットワーク140間において可能性のあるソースルートのそれぞれを識別する記録、ならびに可能性のあるソースルートと関連付けられる伝送遅延のそれぞれを識別する記録を含み得る。
別の実施形態において、ネットワークコントローラ110のメモリ620に格納されるデータの少なくとも一部は、ネットワークコントローラ110の動作の前にアクセスされ得る。ネットワークコントローラ110のメモリ620は、新しいノードもしくはリンクが追加されるか、もしくは更新される、またはノードもしくはリンクが除去されるか、もしくは失敗すると、ネットワーク140のトポロジおよび動作特性の変化によって更新され得る。ネットワーク状態の変化に関する更新は、ノードから、またはネットワーク140に接続される専用モニタ(図示されず)から受信され得る。ある実施形態において、ネットワークデータベース400は、リアルタイムまたはリアルタイム近くで更新され得る。
ネットワークコントローラ110は、例えば、OpenDaylight SDNコントローラ、Open Network Operating System(ONOS)SDNコントローラなどであってもよい。ネットワークコントローラ110は、OpenFlowTMプロトコルおよび/またはプロトコル忘却型フォワーディング(POF)プロトコルに従ってシステム100のノード、例えば、データソース120、ならびにノード150、160および170と通信し得る。ネットワークコントローラ110はまた、ネットワーク構成、ネットワークモニタリングなどを含む、ネットワーク140のための様々な他の制御プレーン機能を実施することができる。
描写された実施形態において、ノード150および170は、それらがパケット交換ネットワーク140を通じて情報を伝送、受信、および/または転送するように構成され得るように、ネットワークコントローラ110によってプログラム可能である。例えば、ノード150、160、および170は、スイッチ、モデム、ハブ、もしくはブリッジなどのSDNデータ通信装置(DCE)、ルータ、ワークステーション、もしくはサーバなどのSDNデータ端末装置(DTE)、および/またはそれらの組み合わせであり得る。
図8は、TCP転送を伴う実施形態に従う、ネットワーク通信システム100内のデータパケットPiのメインフローFの第1の例800を示す概念図である。TCPストリームは、データソース120からデータ宛先130だけでなく、データ宛先130からデータソース120へも情報が流れるように双方向であることが知られている。この実施形態では、メインフローFは、データソース120からデータ宛先130へ伝送されるが、トラフィックデータ810は、データ宛先130からデータソース120へ伝送される。ある実施形態において、フロートラフィックデータ810は、例えば、メインフローFのデータパケットPiがデータ宛先130へきちんと伝送されたことを示す承認データを少なくとも含む。図8に描写される実施形態では、トラフィックフローデータ810は、データ宛先130からエグレスノード170へ伝送され、ここでトラフィックフローデータ810は、トランジットトラフィックフローデータ810'および810''を形成するために複製される。トラフィックフローデータ810'および810'のそれぞれは、それぞれトランジットフローF'およびF''のネットワークパスに沿って逆向きに伝送される。ある実施形態において、トラフィックフローデータ810のそのような伝送は、エグレスノード170によって実施される第2の転送命令に含まれる。さらに、別の実施形態において、トランジットトラフィックフローデータ810'および810''は、トラフィックフローデータ820の形態でデータソース120に伝送される前に、イングレスノード150によって受信され、組み合わされることになる。いずれにせよ、トラフィックフローデータ820は、データソース120にメインフローFのデータパケットPiのいずれかを再伝送させることができる。
図9は、TCPを伴う実施形態に従う、ネットワーク通信システム100内のデータパケットPiのメインフローFの第2の例900を示す概念図である。この描写された実施形態では、データ宛先130は、上記の方法およびシステムに従う第2の転送命令のアクションを実施するように構成される。実際、この実施形態では、2つのトランジットフローF'およびF''は、エグレスノード170から、データ処理宛先であり得るデータ宛先130へ直接伝送される。図9に描写される別の実施形態では、イングレスノード150は、トランジットトラフィックフローデータ810'および810''を、それらの組み合わせなしに、データソース120へ直接転送する。別の実施形態において、トラフィックフローデータは、トランジットフローF'およびF''のネットワークパスのいずれか1つにおけるトラフィックを示す。この特定の実施形態において、トラフィックフローデータ810は、ネットワーク140に関する管理的および/または動作的理由に基づいてトランジットフローのいずれか1つをリルートするために使用される。
図10Aおよび図10Bは、実施形態に従う、ネットワーク通信システム100内のメインフローFと関連付けられる複数のデータパケットを転送するための方法1000の例のフローチャートである。図10Aを参照すると、例示的な方法1000は、複数のデータパケットPiを有するメインフローFをデータ宛先120から転送するための要求を受信するステップ1002を含む。メインフローFのストリーミングが開始されると、本方法は、データパケットPiの1つ1つを少なくともシーケンスデータ330および宛先データ320を用いて識別するステップ1004を含む。次いで、本方法は、メインフローFのデータパケットPiの1つ1つについて少なくともペイロードデータ310、シーケンスデータ330、および宛先データ330を複製することによって、少なくとも2つのトランジットフローを形成するステップ1006、続いて少なくとも2つのトランジットフローを、宛先データ320に基づいてエグレスノードへそれぞれ導く異なるネットワークパスに沿って転送するステップ1008を含む。方法1000は、イングレスノード150の処理デバイス710またはネットワークコントローラ110の処理デバイス610によって実施され得る。先述のとおり、ステップ1004、1006、および1008は、第1の転送命令と称され、それは、例えば、ネットワーク140内のメインフローFの伝送の前に実施されることになる。
さらには、図10Bは、実施形態に従う、ネットワーク通信システム100内のメインフローFと関連付けられる複数のデータパケットPiを転送するための方法1000の例示のフローチャートである。ステップ1010、1012、および1014は、第2の転送命令と称され、それは、データパケットPiの少なくとも2つのトランジットフローの受信時かつ再構築されたメインフローFのデータ宛先120への伝送前に実施されることになる。より具体的には、本方法は、少なくとも2つのトランジットフローを異なるネットワークパスに沿って受信するステップ1010、受信したデータパケットのシーケンスデータ330をトラッキングするステップ1012、および前記トラッキングに基づいて受信したデータパケットをデータ宛先120に転送するステップ1014を含む。
ある実施形態において、第1の転送命令は、第1の識別表および複製表の形態で提供され、第2の転送命令は、第2の識別表およびトランジットフロー組み合わせ表の形態で提供される。そのような表は、ノード150および170のメモリ720にインストールされるとき、本明細書に記載される方法に従って転送命令を実施するために、処理デバイス710によって素早くアクセスされ得る。
描写された実施形態において、ネットワーク140は、複数の有線リンクを含むイーサネット(登録商標)ネットワークである。しかしながら、別の実施形態において、ネットワーク140は、フレーム中継ネットワーク、非同期転送モード(Asynchronous Transfer Mode、ATM)ネットワーク、汎用パケット無線サービス(GPRS)ネットワークなどの別の種類のパケット交換ネットワーク140であり得、複数の有線リンク、ワイヤレスリンク、またはそれらの組み合わせを含んでもよい。
本明細書に開示される実施形態は、ハードウェアを使用して、ソフトウェアを使用して、およびそれらの組み合わせによって実装され得る。そのような理解に基づいて、技術的解決策はソフトウェア製品の形態で具現化され得る。ソフトウェア製品は、コンパクトディスク読み出し専用メモリ(CD-ROM)、USBフラッシュディスク、またはリムーバブルハードディスクなどであり得る非揮発性または非一時的記憶媒体に格納されてもよい。ソフトウェア製品は、コンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイス)が実施形態に提供される方法を実行することを可能にするいくつかの命令を含む。
プログラムコードは、本明細書に記載される機能を実施し、かつ出力情報を生成するために入力データに適用される。出力情報は、1つまたは複数の出力デバイスに適用される。いくつかの実施形態において、通信インターフェースは、ネットワーク通信インターフェースであり得る。要素が組み合わされる実施形態において、通信インターフェースは、プロセス間通信のためのものなど、ソフトウェア通信インターフェースであり得る。依然として他の実施形態では、ハードウェア、ソフトウェア、およびそれらの組み合わせとして実装される通信インターフェースの組み合わせが存在し得る。
各コンピュータプログラムは、汎用または専用のプログラム可能なコンピュータによって読むことができる記憶媒体またはデバイス(例えば、ROM、磁気ディスク、光学ディスク)に格納され得、それらは、記憶媒体またはデバイスがコンピュータによって読まれて本明細書に記載される手順を実施するときにコンピュータを構成する、および動作させるためのものである。本システムの実施形態はまた、コンピュータプログラムで構成される非一時的コンピュータ可読記憶媒体として実装されると考えられ得、ここでそのように構成される記憶媒体は、本明細書に記載される機能を実施するために特定および既定の様式でコンピュータを動作させる。
さらには、記載された実施形態のシステムおよび方法は、1つまたは複数のプロセッサに対するコンピュータが使用可能な命令を有する物理的な非一時的コンピュータ可読媒体を含むコンピュータプログラム製品に分散され得る。媒体は、1つまたは複数のディスケット、コンパクトディスク、テープ、チップ、磁気および電子記憶媒体、揮発性メモリ、非揮発性メモリなどを含む、様々な形態で提供され得る。非一時的コンピュータ可読媒体は、一時的な伝搬信号であるのは除き、すべてのコンピュータ可読媒体を含み得る。非一時的という用語は、一次メモリ、揮発性メモリ、RAMなどのコンピュータ可読媒体を除外することを意図せず、ここではそこに格納されるデータは、一時的にのみ格納され得る。コンピュータが使用可能な命令はまた、コンパイル済みコードおよびコンパイルされていないコードを含め、様々な形態にあり得る。
サーバ、サービス、インターフェース、ポータル、プラットフォーム、またはハードウェアデバイスから形成される他のシステムに関して多くの言及がなされる。そのような用語の使用は、コンピュータ可読の有形の非一時的媒体に格納されたソフトウェア命令を実行するように構成される少なくとも1つのプロセッサを有する1つまたは複数のデバイスを表すと見なされることを理解されたい。当業者は、開示されたコンピュータに基づくアルゴリズム、プロセス、方法、または他の種類の命令のセットが、開示されたステップをプロセッサに実行させる命令を格納する非一時的な有形のコンピュータ可読媒体を備えるコンピュータプログラム製品として具現化され得ることをさらに理解すべきである。
本明細書で使用される場合、および別途文脈により指示されない限り、「に連結される」という用語は、直接連結(互いに連結される2つの要素が互いに接触する)および非直接連結(少なくとも1つの追加要素が2つの要素の間に置かれる)の両方を含むことが意図される。したがって、「に連結される」および「と連結される」という用語は、同義的に使用される。
本明細書に記載される実施形態は、物理的なコンピュータハードウェア実施形態によって実装される。本明細書に記載される実施形態は、有用な物理マシン、および、例えば、コンピューティングデバイス、サーバ、プロセッサ、メモリ、ネットワークの特別に構成されたコンピュータハードウェア配置を提供する。本明細書に記載れる実施形態は、例えば、コンピュータ装置、ならびに電子データ信号の処理および変換を通じてコンピュータによって実装される方法を対象にする。
本明細書に記載される実施形態は、様々な動作を実装するように特別に構成されるコンピューティングデバイス、サーバ、受信機、送信機、プロセッサ、メモリ、ディスプレイ、ネットワークを伴い得る。本明細書に記載される実施形態は、様々な種類の情報を表す電磁信号を処理および変換するために適合される電子機械を対象にする。本明細書に記載される実施形態は、機械およびそれらの使用に広くかつ全体的に関係し、本明細書に記載される実施形態は、コンピュータハードウェア、機械、様々なハードウェアコンポーネントとのそれらの使用以外では、意味または実用的な利用可能性を有しない。
理解され得るように、上に説明されかつ例証される例は、例示的のみであることが意図される。例えば、異なるネットワークパスは、データソースで暗号化および/または多重化され、ネットワークの同じネットワークパスに沿って転送され得る一方、復号および/または逆多重化はデータ宛先で実施され得る。範囲は、添付の特許請求の範囲によって示される。
100 ネットワーク通信システム
110 ネットワークコントローラ
120 データソース
130 データ宛先またはストリーム処理設備
140 パケット交換ネットワーク
150 イングレスノード
160 中間ノード
160' 中間ノード
160'' 中間ノード
160''' 中間ノード
170 エグレスノード
210 ネットワークパス
212 第1のネットワークリンク
220 ネットワークパス
222 ネットワークリンク
224 ネットワークリンク
226 ネットワークリンク
242 第2のネットワークリンク
310 ペイロードデータ
320 宛先データ
330 シーケンスデータ
340 ネットワークパスデータ
400 データパケットPiのメインフローFの例
410 識別アクション
420 複製アクション
430 転送アクション
500 データパケットPiのメインフローFの例、ネットワークデータベース
510 トラッキングアクション
520 転送アクション
530 消去アクション
540 格納アクション
610 処理デバイス
620 メモリ
710 処理デバイス
720 メモリ
800 データパケットPiのメインフローFの第1の例
810 フロートラフィックデータ
810' トランジットトラフィックフローデータ
810'' トランジットトラフィックフローデータ
820 トラフィックフローデータ
900 データパケットPiのメインフローFの第2の例
1000 例示的な方法

Claims (22)

  1. ネットワーク内のデータパケットを転送する方法であって、
    前記データパケットの少なくともペイロードデータ、シーケンスデータ、および宛先データを複製するステップを含む、少なくとも2つのトランジットデータパケットを形成するステップと、
    前記少なくとも2つのトランジットデータパケットのうちの1つ目を、第1の定義されたネットワークパスに沿って、前記宛先データに従って選択されるエグレスノードに伝送するステップと、
    前記少なくとも2つのトランジットデータパケットのうちの2つ目を、前記第1の定義されたネットワークパスとは異なる第2の定義されたネットワークパスに沿って、前記エグレスノードに伝送するステップと、
    を含む、方法。
  2. 前記形成および転送するステップの前に、前記データパケットを少なくとも前記シーケンスデータおよび前記宛先データを用いて識別するステップをさらに含む、請求項1に記載の方法。
  3. 前記転送するステップが、異なるネットワークパスデータを前記少なくとも2つのトランジットデータパケットの1つ1つに組み入れるステップを含み、前記少なくとも2つのトランジットデータパケットの1つ1つの前記ネットワークパスデータが前記異なるネットワークパスと関連付けられている、請求項1に記載の方法。
  4. 受信したデータパケットの前記シーケンスデータをトラッキングするステップと、
    前記トラッキングに基づいて、前記受信したデータパケットをデータ宛先に転送するステップと、をさらに含む、請求項1に記載の方法。
  5. 前記受信したデータパケットの前記シーケンスデータを、少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと比較するステップを含む、トラッキングするステップをさらに含み、
    前記受信したデータパケットの前記シーケンスデータが前記少なくとも1つの以前に受信したデータパケットの前記格納シーケンスデータと一致しないと決定すると、前記転送するステップが実施される、請求項4に記載の方法。
  6. 前記受信したデータパケットの所与のシーケンスデータが前記少なくとも1つの以前に受信したデータパケットの前記格納シーケンスデータと一致すると決定すると、前記所与のシーケンスデータと関連付けられる前記格納シーケンスデータを消去するステップをさらに含む、請求項5に記載の方法。
  7. 前記受信したデータパケットの前記シーケンスデータが前記少なくとも1つの以前に受信したデータパケットの前記格納シーケンスデータと一致しないと決定すると、前記シーケンスデータを前記エグレスノードのメモリおよびネットワークコントローラのメモリのうちの少なくとも1つに格納するステップをさらに含む、請求項5に記載の方法。
  8. 前記ネットワークが、複数のプログラム可能なネットワークノードを備えるソフトウェア定義ネットワーク(SDN)である、請求項1に記載の方法。
  9. 形成するステップ、前記第1のパケットを伝送するステップ、および前記第2のパケットを伝送するステップが、SDNコントローラから受信される命令に従って実施される、請求項8に記載の方法。
  10. 前記第1のパスおよび前記第2のパスが前記SDNコントローラによって指定される、請求項9に記載の方法。
  11. 前記複数のプログラム可能なネットワークノードが、プロトコル忘却型フォワーディング(POF)スイッチである、請求項8に記載の方法。
  12. 前記宛先データが、カスタムプロトコル、リアルタイム転送プロトコル(RTP)、および伝送制御プロトコル(TCP)のうちの少なくとも1つを伴う、請求項1に記載の方法。
  13. ネットワーク外のデータ宛先に連結されるエグレスノードを含む複数のノードを有する前記ネットワーク内のデータパケットを転送するためのプログラム可能なイングレスノードであって、前記プログラム可能なイングレスノードが、データソースへの動作接続のためおよび前記ネットワークを介した前記エグレスノードへの接続のためのものであり、
    処理デバイスと、
    前記処理デバイスに動作可能に連結され、かつ転送命令を格納したメモリであって、前記転送命令が、前記処理デバイスによって実行されるとき、前記プログラム可能なイングレスノードに、
    前記データパケットの少なくともペイロードデータ、シーケンスデータ、および宛先データを複製することを含む、少なくとも2つのトランジットデータパケットを形成させ、
    前記少なくとも2つのトランジットデータパケットのうちの1つ目を、第1の定義されたネットワークパスに沿って、前記宛先データに従って選択されるエグレスノードに伝送させ、かつ
    前記少なくとも2つのトランジットデータパケットのうちの2つ目を、前記第1の定義されたネットワークパスとは異なる第2の定義されたネットワークパスに沿って、前記エグレスノードに伝送させる、メモリと、
    を備える、プログラム可能なイングレスノード。
  14. 前記転送することが、異なるネットワークパスデータを前記トランジットデータパケットの1つ1つに組み入れることを含み、前記少なくとも2つのトランジットデータパケットの1つ1つの前記ネットワークパスデータが、前記異なるネットワークパスと関連付けられている、請求項13に記載のプログラム可能なイングレスノード。
  15. 前記ネットワークがソフトウェア定義ネットワーク(SDN)である、請求項13に記載のプログラム可能なイングレスノード。
  16. 前記プログラム可能なイングレスノードがSDNスイッチである、請求項15に記載のプログラム可能なイングレスノード。
  17. 前記SDNスイッチが、OpenFlowスイッチおよびプロトコル忘却型フォワーディング(POF)スイッチのうちの少なくとも1つである、請求項16に記載のプログラム可能なイングレスノード。
  18. 前記宛先データが、カスタムプロトコル、リアルタイム転送プロトコル(RTP)、および伝送制御プロトコル(TCP)のうちの少なくとも1つを伴う、請求項13に記載のプログラム可能なイングレスノード。
  19. データソースに連結されるイングレスノードを含む複数のノードを有するネットワークへの接続のためのプログラム可能なエグレスノードであって、前記プログラム可能なエグレスノードがさらに、前記ネットワークを介して前記イングレスノードへの動作接続のためおよびデータパケットを前記ネットワーク外のデータ宛先に転送するためのものであり、
    処理デバイスと、
    前記処理デバイスに動作可能に連結され、かつ転送命令を格納したメモリであって、前記転送命令が、前記処理デバイスによって実行されるとき、前記プログラム可能なイングレスノードに、
    受信したデータパケットのシーケンスデータを少なくとも1つの以前に受信したデータパケットの格納シーケンスデータと比較させ、かつ
    前記受信したデータパケットの前記シーケンスデータが以前に伝送されたデータパケットに対応する格納シーケンスデータと一致しないと決定すると、前記受信したデータパケットを前記データ宛先に転送させる、メモリと、
    を備える、プログラム可能なエグレスノード。
  20. 前記第2の転送命令が、前記受信したデータパケットの所与のシーケンスデータが前記少なくとも1つの以前に受信したデータパケットの前記格納シーケンスデータと一致すると決定すると、前記所与のシーケンスデータに関連付けられる前記格納シーケンスデータを消去することをさらに含む、請求項19に記載のプログラム可能なエグレスノード。
  21. 前記シーケンスデータが、前記エグレスノードのメモリおよびネットワークコントローラのメモリのうちの少なくとも1つに格納される、請求項19に記載のプログラム可能なエグレスノード。
  22. 前記ネットワークがソフトウェア定義ネットワーク(SDN)である、請求項19に記載のプログラム可能なエグレスノード。
JP2017540575A 2015-01-30 2016-01-20 ネットワーク内のデータパケットを転送するための方法ならびにそのためのプログラム可能なイングレスおよびエグレスノード Active JP6471238B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/610,673 2015-01-30
US14/610,673 US9894000B2 (en) 2015-01-30 2015-01-30 Method for forwarding data packets in a network and programmable ingress and egress nodes therefore
PCT/CN2016/071494 WO2016119620A1 (en) 2015-01-30 2016-01-20 Method for forwarding data packets in a network and programmable ingress and egress nodes therefore

Publications (2)

Publication Number Publication Date
JP2018504064A true JP2018504064A (ja) 2018-02-08
JP6471238B2 JP6471238B2 (ja) 2019-02-13

Family

ID=56542396

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017540575A Active JP6471238B2 (ja) 2015-01-30 2016-01-20 ネットワーク内のデータパケットを転送するための方法ならびにそのためのプログラム可能なイングレスおよびエグレスノード

Country Status (6)

Country Link
US (1) US9894000B2 (ja)
EP (1) EP3243306A4 (ja)
JP (1) JP6471238B2 (ja)
KR (1) KR102063737B1 (ja)
CN (1) CN107210976B (ja)
WO (1) WO2016119620A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201605198A (zh) 2014-07-31 2016-02-01 萬國商業機器公司 智慧網路管理裝置以及管理網路的方法
WO2017118875A1 (en) * 2016-01-05 2017-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Mechanism to detect control plane loops in a software defined networking (sdn) network
JP2019096989A (ja) * 2017-11-21 2019-06-20 池上通信機株式会社 フロー制御装置、フロー制御方法及びフロー制御プログラム
WO2019239190A1 (en) * 2018-06-13 2019-12-19 Telefonaktiebolaget Lm Ericsson (Publ) Apparatus and method to trace packets in a packet processing pipeline of a software defined networking switch
CN113114564A (zh) * 2018-10-31 2021-07-13 华为技术有限公司 一种业务流处理方法及装置
US12034633B2 (en) 2019-05-23 2024-07-09 Hewlett Packard Enterprise Development Lp System and method for facilitating tracer packets in a data-driven intelligent network
US11218381B2 (en) 2019-10-04 2022-01-04 Cisco Technology, Inc. Service tagging optimization for intent-based networking
US11201799B2 (en) 2019-10-15 2021-12-14 Cisco Technology, Inc. Intelligent selection of vantage points for monitoring subservices based on potential impact to services
US11088928B2 (en) * 2019-10-15 2021-08-10 Cisco Technology, Inc. Service aware conditional path monitoring
US11228507B2 (en) 2019-12-05 2022-01-18 Cisco Technology, Inc. Baselining service-tagged data from subservices of a service for service assurance
CN111050339B (zh) * 2019-12-19 2021-01-01 中国科学院信息工程研究所 一种基于协议无感知转发的高速数据更新系统及方法
EP3860064A1 (en) * 2020-01-31 2021-08-04 Robert Bosch GmbH Method for operating a first network device, first network device, and method for operating a communications network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000022752A (ja) * 1998-06-05 2000-01-21 Internatl Business Mach Corp <Ibm> コンピュ―タ、通信方法及びシステム
WO2011062120A1 (ja) * 2009-11-18 2011-05-26 日本電気株式会社 動的経路分岐システム、動的経路分岐方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1571301A (zh) 2003-07-16 2005-01-26 深圳市中兴通讯股份有限公司 光网络中通过显示路由实现信令并发优收的装置及方法
CN102118434A (zh) 2010-12-28 2011-07-06 华为技术有限公司 数据包传输方法和设备
US9608901B2 (en) * 2012-07-24 2017-03-28 Telefonaktiebolaget Lm Ericsson (Publ) System and method for enabling services chaining in a provider network
US9215093B2 (en) * 2012-10-30 2015-12-15 Futurewei Technologies, Inc. Encoding packets for transport over SDN networks
US8711855B1 (en) 2012-12-18 2014-04-29 Juniper Networks, Inc. Topology discovery, control channel establishment, and datapath provisioning within an aggregation network with centralized control
US9450874B2 (en) * 2013-01-04 2016-09-20 Futurewei Technologies, Inc. Method for internet traffic management using a central traffic controller
US9450864B2 (en) * 2013-10-11 2016-09-20 Futurewei Technologies, Inc. Using PCE as SDN controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000022752A (ja) * 1998-06-05 2000-01-21 Internatl Business Mach Corp <Ibm> コンピュ―タ、通信方法及びシステム
WO2011062120A1 (ja) * 2009-11-18 2011-05-26 日本電気株式会社 動的経路分岐システム、動的経路分岐方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ELIAS MOLINA ET AL: "Availability Improvement of Layer 2 Seamless Networks Using OpenFlow", THE SCIENTIFIC WORLD JOURNAL, VOL. 2015, ARTICLE ID 283165, 14 PAGES, JPN6018035512, 1 January 2015 (2015-01-01), KR, pages 1 - 14, XP055239668, ISSN: 0003876366, DOI: 10.1155/2015/283165 *

Also Published As

Publication number Publication date
WO2016119620A1 (en) 2016-08-04
KR20170110106A (ko) 2017-10-10
CN107210976B (zh) 2020-11-10
EP3243306A4 (en) 2018-01-10
US20160226769A1 (en) 2016-08-04
US9894000B2 (en) 2018-02-13
JP6471238B2 (ja) 2019-02-13
CN107210976A (zh) 2017-09-26
EP3243306A1 (en) 2017-11-15
KR102063737B1 (ko) 2020-01-08

Similar Documents

Publication Publication Date Title
JP6471238B2 (ja) ネットワーク内のデータパケットを転送するための方法ならびにそのためのプログラム可能なイングレスおよびエグレスノード
US9729348B2 (en) Tunnel-in-tunnel source address correction
RU2643475C2 (ru) Многодоменная ретрансляция с маршрутизацией от источника на основе взаимодействующих сетевых контроллеров
US8812726B2 (en) Service insertion in a computer network using internet protocol version 6 techniques
CN107113204B (zh) 用于在网络中路由数据包的节点、网络控制器和相关方法
CN114285794B (zh) 报文转发控制方法、报文传输网络、电子设备及存储介质
US20150341261A1 (en) SKIPPING AND PARSING INTERNET PROTOCOL VERSION 6 (IPv6) EXTENSION HEADERS TO REACH UPPER LAYER HEADERS
JP6096795B2 (ja) 中間プライマリバックアップ複製のための方法及び装置
JP6801409B2 (ja) 経路探索システム、経路探索方法及び経路探索プログラム
WO2016013139A1 (ja) Delay-Tolerant network(DTN)内でのデータ配送のための装置及び方法
US9882772B2 (en) Network element and a controller for managing the network element
US9961014B2 (en) Network communication method based on software-defined networking and server using the method
CN105978699B (zh) 用于跨网络进行特征追踪的方法和系统
JP4040045B2 (ja) データ転送装置
US20180013667A1 (en) A network element of a software-defined network
CN112653610B (zh) 多层虚拟交换机升级方法、装置、电子设备及存储介质
TW201251387A (en) Domain gateway control system and method thereof
JP2007013511A (ja) パケット通信システムおよびパケット中継装置
CN109792444B (zh) 实况内容分发系统中的播出缓冲
JP6179141B2 (ja) データ転送システムおよびネットワーク負荷軽減方法
JP6875474B2 (ja) 通信システムおよび通信方法
JP6612727B2 (ja) 送信装置、中継装置、通信システム、送信方法、中継方法、およびプログラム
Raad Protocol architecture and algorithms for distributed data center networks
JP5478684B2 (ja) エッジノード装置、パス制御方法、及びプログラム
JP2019524011A (ja) Mmtpパケットを送受信する方法及びその装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190121

R150 Certificate of patent or registration of utility model

Ref document number: 6471238

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250