JP2007527170A - 並列通信のためのシステムおよび方法 - Google Patents
並列通信のためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2007527170A JP2007527170A JP2006554278A JP2006554278A JP2007527170A JP 2007527170 A JP2007527170 A JP 2007527170A JP 2006554278 A JP2006554278 A JP 2006554278A JP 2006554278 A JP2006554278 A JP 2006554278A JP 2007527170 A JP2007527170 A JP 2007527170A
- Authority
- JP
- Japan
- Prior art keywords
- data
- path
- parallel
- parallel communication
- transmission
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/40—Flow control; Congestion control using split connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
- H04L25/14—Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1887—Scheduling and prioritising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/06—Deflection routing, e.g. hot-potato routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
複数の並列通信経路上でのデータの通信のためのシステムおよび方法が提供される。該並列通信システムと方法の実施形態は、ネットワークアプリケーションに所望される通信目的および性能のレベルを与えるために多様なネットワークエレメント内の多数のリソースを発見してよく、特徴付けてよく、または利用してよい。該システムおよび方法は、該所望される通信性能を連続的に提供するために該ネットワークリソースでの変化に動的に適応してよい。
Description
本発明は概してデータ通信のためのシステムおよび方法に関し、さらに詳細には複数の並列データ通信経路上でのデータの通信のためのシステムおよび方法に関する。
インターネット等のパケットベースのデータネットワークが将来果たすと想像されている極めて重要な役割を考えて、よりよく、より安く、そしてより速く動作するために膨大な量の研究がこれらのネットワークに向けられてきた。しかしながら、大部分のネットワークの膨大なリソースにも関わらず、大多数は2つのネットワーク間でデータをシーケンシャルに通信する。例えば、幅広く使用されているインターネットプロトコル(IP)はあらゆる2つのエンティティ間のシングルパスルーティングのみをサポートする。
したがって、一般的にはパケットデータネットワーク、および特にインターネットは、シーケンシャルデータ通信特性に勝ることによって性能、コスト、機能性および柔軟性の改善を潜在的に可能にする固有の特徴を有する。すなわち、データ通信を並列化することにより、多くのパケットデータネットワークの機能性の根本的な改善がもたらされている。
並列データ通信の形式が試みられてきたが、概して多くの欠陥に遭遇している。例えば、単純な集約演算、リンクバンドリング、およびチャネルボンディング等の並列データ通信システムの形式は暗に同質のネットワークリソースがうまく機能することを必要とする。したがって、これらの技術は、一般的には集められたリソースに一貫性があり、予測可能な性能特徴を提供すると仮定している。したがって受信端での適切なバッファリングにより複数のリソース上でデータを分割する単純なレバレッジ導入方式では動的ネットワーク環境で効果的な集約演算を達成できない。ネットワークの同質性および/または一貫性が存在しないとき、利用されている単純化した戦略は所望される性能をもたらさない可能性がある。
特許文献1は、単純な集約演算の1つの変形物を使用する通信システムを開示している。具体的には、特許文献1は単一の高帯域通信チャネルをエミュレートするために複数の並列通信チャネルを結合するためのシステムを目的としている。パケットの連続ストリームは、トラフィックが集まるにつれグループ化され、複数の並列通信チャネルと関連付けられた待ち行列に割り当てられる。トラフィックの集合体の待ち行列への割り当ておよび再割り当ては、並列通信チャネルの各々について待ち行列の長さに関連する待ち行列負荷比率を計算することに基づいて動的に実行される。トラフィックが集まるにつれ、既存のパケットおよび将来のパケットのグループ化は共通ソースアドレスと宛先IPアドレス等のパケットにより共用される共通の属性に基づいている。
しかしながら、他の集約演算技法のように、特許文献1のシステムも多くの欠陥に遭遇している。例えば、パケットは受信端で再構築されるために、集約演算の性能は最低性能の経路に左右されている。
最低の経路性能の欠陥の例は、第1の経路が第2の経路より大きい帯域幅を有する2つの経路を有する単純な集約演算システムを用いて例示されてよい。10個のパケットの内の8個が第1の経路に沿って配信され、1msの内に宛先に達する。通信全体が受信されていないため、これらの8個のパケットは残りの2個のパケットが到達するまで受信機でバッファに格納される。該残りの2個のパケットは第2の経路に沿って配信されるが、該残りの2個のパケットが宛先に到達するには500msを要する。したがって、少なくとも500msの場合、宛先は通信全体を利用できない。したがって、いくつかの場合、特に経路が類似のネットワーク特徴を有さない状況では、単純な集約演算は総合的なネットワーク性能を改善しない。
さらに、簡略な集約演算システムは、一般的には通信経路に沿って変化するネットワーク状態を適切に処理することを目的としておらず、既存のネットワーク内でシームレスに動作しない可能性がある。
したがって、必要とされることは、(個々のネットワークリソースの性能特徴の多様性を有する、あるいは有しない)同質または異質の双方のネットワークエレメントを使って作業できる、変化するネットワーク環境に適応することができる、既存のネットワークに対するオーバレイとして配備でき、利点を実現するためにネットワークアプリケーションの変更を必要としない並列通信システムである。
米国特許第6,625,161号明細書
複数の並列通信経路上でのデータの通信のためのシステムおよび方法が提供されている。
並列データ経路上でデータを通信するための方法の実施形態は、経路特性を繰り返し決定することにより複数の並列データ経路の各々を特徴付けることを含み、該複数の並列データ経路が送信側ノードと受信側ノード間の単一の仮想接続を形成し、目的関数を満たすために複数の並列データ経路全体でのデータの送信のスケジューリングを行い、該スケジューリングは該経路特性に基づいている。
並列データ経路上でデータを通信するためのシステムの1つの実施形態は、命令実行システムからの命令をフェッチし、実行するように構成されるプロセッサを含む。該実行可能な命令は、経路特性を繰り返し決定することにより複数の並列データ経路の各々を特徴付け、該複数の並列データ経路が送信側ノードと受信側ノード間の単一の仮想接続を形成してよい。該命令は目的関数を満たすために該複数の並列データ全体でデータの送信のスケジューリングを行うための命令をさらに含んでよく、該スケジューリングは該経路特性に基づいている。
データの送信のスケジューリングを行うための命令は、宛先で受信される複数の並列データ通信経路の最終的な経路に沿ってデータの第1の送信のスケジューリングを行うための命令と、該複数の並列データ通信経路の第2の経路に沿ってデータの第2の送信のスケジューリングを行うための命令とをさらに含んでよく、データの該第2の送信は第1のパケットに関して所定の順序で、受信側ノードで受信されるようにスケジューリングされている。
並列データ経路上でデータを通信するためのシステムの別の例示的な実施形態は、経路特性を繰り返し決定することによって、送信側ノードと受信側ノードとの間に単一の仮想接続を規定する複数の並列データ経路の各々を特徴付けるための手段と、目的関数を満たすために該複数の並列データ経路全体でデータの送信のスケジューリングを行うための手段とを含み、該スケジューリングは経路特性に基づいている。
他のシステム、方法、特徴および/または優位性は、添付図面および詳細な説明を検討することで当業者に明らかになるであろう。または明らかになる場合がある。すべてのこのような追加のシステム、方法、特徴、および/または優位性は本発明の中に含まれ、添付請求項によって保護されることが意図される。
図面中の構成要素は必ずしも互いに関して縮尺どおりではない。同様の参照番号は複数の図全体で対応するパーツを示す。
複数の並列通信経路上でのデータの通信のためのシステムおよび方法が開示されている。並列通信システムおよび方法は、ネットワークアプリケーションに求められる通信の目的および性能のレベルを提供するために通信システムの多様なネットワークエレメント内で多数のリソースを発見し、特徴付け、そして利用してよい。該システムおよび方法は所望される通信性能を連続的に提供するためにネットワークリソースの変化に動的に適応してよい。
システムおよび方法は、国際標準化機構の開放型システム間相互接続(ISO/OSI)の7つのネットワーク層のいずれかの上でまたは間で実現されてよいが、並列通信システムの一実施形態は多数のネットワークリソースを利用するためにIPトラフィック上で動作する第4層(トランスポート)プロトコル技術として実現されている。
図1は、例示的な並列通信システム20を描いている。並列通信システム20を通って通信されるデータはデータパケットの中でカプセル化されていると呼ばれる場合がある。しかしながら、データは特定の形式を取る必要はなく、代わりに例えばセグメント、フレーム、バイト、またはビットの形を採ってよい。
並列通信システム20の一実施形態は、送信機並列通信トランシーバ22と、受信機並列通信トランシーバ24とを含んでよい。並列通信トランシーバ22と24の各々は、その上で多数が利用されなければならないネットワーク26のセクションのいずれかの側に配備されてよい、ルータと無関係なスタンドアロン装置内に常駐してよい。
ネットワーク26は、例えばローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)またはインターネットであってよい。図1の中で中黒円として描かれているレガシーネットワークノード28は、例えばルータ等の既存のネットワーク化された演算装置であってよい。いくつかの実施形態では、レガシーネットワークノード28は並列通信トランシーバ22と24に特定の知能を提供するように修正されてよい。しかしながら、一般的にはレガシーネットワークノード28はシステムで使用するために修正を必要としない。したがって、ネットワーク26内の既存のインフラストラクチャに対する変更は必要とされていない。
図1に描かれている実施形態は、各々接続34と36を通して並列通信トランシーバ22と通信するソース演算装置30と宛先演算装置32を描いている。ソース演算装置30と宛先演算装置32は総称的に通信エンドポイントと呼ばれる場合があり、多数のネットワーク26を活用するために並列通信トランシーバ22と24を使用してよい任意の数の演算装置を表す。接続34と36は任意の数の有線接続または無線接続を表してよく、多くの他のネットワーク化された通信装置も含んでよい1つ以上のネットワークを表してよい。
本例では、送信機並列通信トランシーバ22は、ソース演算装置30から発信されるデータパケットを、ネットワーク26を横切って受信機並列通信トランシーバ24に送信する役割を担う。受信機並列通信トランシーバ24は送信機並列通信トランシーバ22によって送信されたパケットを受信し、それらを宛先演算装置32に転送する役割を担う。トランシーバ22と24は各々送信機および受信機と呼ばれているが、各トランシーバは並列通信データの送信機と受信機の両方として同等に動作するように構成されてよいことが理解されなければならない。しかしながら、簡単にするために、例1の具体的な例は、ネットワーク26を横切る単一方向(左から右へ)のデータパケットの転送を描き、反対方向(右から左へ)の肯定応答(ACK)パケットの転送を描いている。したがって、いくつかの実施形態では、データパケットと肯定応答パケットはネットワーク36を横切る反対方向で送信されてよく、トランシーバ24が送信機の機能を果たし、トランシーバ22が受信機の機能を果たす。
さらに明確にするために、並列通信トランシーバ、接続およびエンドポイントが2セットだけ描かれている。しかしながら、任意の数の通信トランシーバが関連通信エンドポイントのためにネットワーク26を活用する目的でネットワーク26に接続されてよい。
ソース演算装置30と宛先演算装置32は、装置間でパケットデータを転送するためにネットワーク26を使用する多くのアプリケーションを含んでよい。例えば、ソース演算装置30は宛先演算装置32上のクライアントアプリケーションにデータを送信するためのサーバアプリケーションを含んでよい。レガシーネットワークノード28と同様に、ソース演算装置32と宛先演算装置34に関連するアプリケーション(複数の場合がある)は、並列通信トランシーバ22と24に気付いておらず、設計または動作で変更を必要としない可能性がある。
接続は、パケットが宛先にどのようにして到達するのかに関係なく2つのネットワークエンティティ間のエンドツーエンド通信リンクとして説明されてよい。例えば、接続38は並列通信トランシーバ22と24間のエンドツーエンド通信リンクを表す。実際には、接続はエンドツーエンドリンクを形成する多くの経路を表してよいため、接続はここで「仮想」接続と呼ばれる場合がある。
したがって、経路は、データパケットが2つのエンティティの間(つまり仮想接続上で)で移動してよい多くのルートの内の1つを記述してよい。例えば経路40(実線)はデータパケットが接続38に沿って移動する第1の経路を表す。同様に、経路42(点線)と経路44(破線)は、データパケットが接続38に沿って移動してよい第2の経路と第3の経路を表す。経路40、42、および44は、それらが、パケットデータが同時にネットワーク26を通って伝播するための3つの別のルートを表すことができる点で並列経路と呼ばれる場合がある。図1には3つの経路だけしか描かれていないが、パケットが接続上で移動してよい任意の数のノードによって形成される多くの経路があってよい。さらに、経路は単一のポイントツーポイントリンクを備えてよく、単一の物理接続上で複数の仮想回線を含んでよい。いくつかの実施形態では、仮想回線は例えばポート番号またはマルチプルプロトコルラベルスイッチング(MPLS)ラベルを通してアドレス指定されてよい。
並列通信トランシーバ22と24は、1つ以上の目的関数各々のためのサービスのレベルをエンドポイントに提供するために並列経路を利用するように構成される。例示的な目的関数は帯域幅、遅延、ジッタ、損失率、セキュリティ、障害許容力、およびコストの尺度であってよい。サービスのレベルは所望される量の帯域幅、つまり許容遅延、ジッタ、損失率、セキュリティ、障害許容力、またはコストを指してよいが、これらに限定されない。
例えば、所望される量の帯域幅は、いったん並列で結合されると該所望される帯域幅を有する経路を求め、集めることによって対処されてよい。対照的に、さらに少ない帯域幅を必要としてよいアプリケーションもあるが、遅延とジッタの性能の改善を必要とする。例えばボイスオーバーインターネットプロトコル(VoIP)は主に100Kbps未満の帯域幅を有する接続を必要とするが、遅延、ジッタおよびデータ損失のさらに厳しい制御を必要とする。さらに、高価な3Gデータ経路と安価な802.11データ経路がVoIP呼に役立つ場合には、コストの最小化が優先されてよい。したがって、目的関数は、所望されるサービスのレベルを満たし、次に、選択された経路全体でのデータパケットの送信のスケジュールを適切に決めるために最も好ましい特徴を有する多くの並列経路を選択する並列通信トランシーバ22と24によって対処されてよい。
図2は、並列通信システムおよび方法を実現するために送信機並列通信トランシーバ22内で実行されてよい並列通信トランシーバ46の実施形態のアーキテクチャのブロック図を描いている。ここでは描かれていないが、受信機並列通信トランシーバ24は同じアーキテクチャ、または類似のアーキテクチャを使用してよい。
一般的には、並列通信トランシーバ22は、ラップトップコンピュータ、PDA、ハンドヘルドコンピュータ、またはペンベースコンピュータ、デスクトップコンピュータ、専用サーバコンピュータ、マルチプロセッサ演算装置、内蔵機器、ルータ、ネットワーキング装置等の種々の有線演算装置および/または無線演算装置の内の1つを備えてよい。その特殊な配列に関係なく、並列通信トランシーバは、例えばディスプレイ、メモリ、大量記憶装置、ネットワークインタフェース,処理装置および入力インタフェース/出力インタフェースを接続してよいバスを備える。
関連する処理装置は、並列通信トランシーバ、(マイクロチップの形を取る)半導体ベースのマルチプロセッサ、マクロプロセッサ、1つ以上の特定用途向け集積回路(ASIC)、複数の適切に構成されたデジタル論理ゲート、およびコンピューティングシステムの総合的な動作を調整するために個々にまたは多様な組み合わせによる場合の両方で個別のエレメントを備える他の周知の電気的構成の中に、任意のカスタムメイドのまたは市販のプロセッサ、中央演算処理装置(CPU)または補助プロセッサを含むこともできる。
入力/出力インタフェースは、データの入力と出力に任意の数のインタフェースを提供する。例えばこれらの構成要素は、キーボードまたはマウス、ボタン、タッチセンシティブスクリーン、スタイリスト等であってよいユーザ入力装置と接続してよい。ディスプレイは、例えばコンピュータモニタまたはPC用プラズマスクリーン、またはハンドヘルドデバイス上の液晶ディスプレイ(LCD)を備えることができる。
メモリは、揮発性メモリエレメント(例えば、(DRAM等のRAMおよびSRAM等)ランダムアクセスメモリ等)と不揮発性メモリエレメント(例えば、ROM、ハードドライブ、テープ、CDROM等)のいずれか1つを含むことができる。メモリはネイティブオペレーティングシステム、1つ以上のネイティブアプリケーション、エミュレーションシステム、または種々のオペレーティングシステムおよび/またはエミュレートされたハードウェアプラットホーム、エミュレートされたオペレーティングシステム等のエミュレートされたアプリケーションも備えてよい。
説明されたモジュール、およびサブモジュールの各々は、論理関数を実現するための実行可能な命令の順序付けられたリスティングを備えてよい。実行可能なモジュールがソフトウェアで実現されるとき、システムが任意のコンピュータ関連システムまたは方法による、あるいは任意のコンピュータ関連システムと関連して使用するために任意のコンピュータ読取可能媒体に記憶できることに留意しておかなければならない。本書の文脈では、コンピュータ読取可能媒体は、コンピュータ関連のシステムまたは方法によって、またはコンピュータ関連のシステムまたは方法と組み合わせて使用するためにコンピュータプログラムを含むまたは記憶することができる電子、磁気、光学または他の物理的なデバイスまたは装置である。実行可能なモジュールは、コンピュータベースのシステム、プロセッサを具備するシステム、あるいは命令実行システム、装置またはデバイスから命令をフェッチし、命令を実行できる他のシステム等の命令実行システム、装置またはデバイスによって、または命令実行システム、装置またはデバイスと組み合わせて使用するための任意のコンピュータ読取可能媒体で具現化できる。
この文書の文脈では、「コンピュータ読取可能媒体」は、基本的には、命令実行システム、装置またはデバイスによって、または命令実行システム、装置またはデバイスと関連して使用するためのプログラムを記憶、通信、伝播またはトランスポートを行うもののいずれかとすることができる。コンピュータ読取可能媒体は、例えば、電子、磁気、光学、電磁、赤外線または半導体のシステム、装置、デバイスまたは伝播媒体とする場合があるが、これらに限定されない。コンピュータ読取可能媒体のさらなる具体例(網羅的ではないリスト)は以下を含むことになる。つまり1本または複数のワイヤを有する電気的接続(電子)、携帯コンピュータディスケット(磁気)、ランダムアクセスメモリ(RAM)(電子)、読み取り専用メモリ(ROM)(電子)、消去可能PROM(EPROM、EEPROM、またはフラッシュメモリ)(電子)、光ファイバ(光学)およびデジタル多用途ディスク(DVD)またはコンパクトディスク読み取り専用メモリ(CDROM)等の光学媒体である。コンピュータ読取可能媒体は、紙または別の適切な媒体であり、プログラムが紙または他の媒体のオプティカルスキャニングを介して電子的に捕捉されると、その上でプログラムが印字され、次にコンパイルされ、翻訳される、あるいはそれ以外の場合必要な場合に適切な方法で処理され、それからコンピュータメモリに記憶される場合さえもあることに注意する。
並列通信モジュール46は2つの主要なサブモジュール、つまりコアエンジン48と経路エンジン50を含んでよい。コアエンジン48はおもに接続ごとの機能性に関与し、経路エンジン50はおもに経路ごとの機能性と状態に関与する。これらのモジュールの2分法が、経路と接続の機能性を区別しない既存の技術に優る1つの潜在的な優位性を生じさせるために役立つ。
機能性はシステムにより利用される「動作」または「アルゴリズム」を指すが、このような動作またはアルゴリズムはここでは「状態」と呼ばれる場合があるデータ構造に作用し、維持してよい。したがって、複数の接続の状態が単一の接続のために作成されてよい。同様に、輻輳制御等の経路レベルで維持される機能性の場合、複数の状態(例えば、使用可能な測度)が経路ごとに維持されてよい。
TCP等の従来の第4層技術は接続管理、輻輳制御、信頼性、フロー制御等の機能性という点で統合された設計を有している。しかしながら、このような設計は、統合された動作が経路ごとの特徴および接続ごとの特徴を区別しないために効果的な並列通信のために本質的に欠陥がある。
しかしながら、TCPとは異なり、並列通信トランシーバ22と24は多様な機能性を経路ごとの機能性および接続ごとの機能性に分断する。例えば、記述の並列通信システムはフロー制御、接続管理、および接続信頼性を接続レベルの機能性として処理してよく、経路管理、輻輳制御、スループット推定、損失推定、遅延推定、および経路機能性ごとの他のネットワークパラメータの推定を関連付けてよい。
リソースの並列使用のために、ネットワーク機能性を経路ごとの機能性および接続ごとの機能性(および関連状態)に分断することの潜在的な優位性の一例は、2つの並列経路P1とP2を有するネットワークの関連で例示されてよい。経路P1とP2は、例えば、各々50ユニットと100ユニットという使用可能なスループットを有してよい。この例で、接続は両方の経路をその最大の可用性まで使用する。したがって、接続の総レートは150ユニットで動作できる。
線形増加/乗法減少(multiplicative decrease)(LIMD)として公知のTCP輻輳管理機構を使用すると、経路P1が損失を経験する場合、(分断された状態を維持しない、あるいは分断された機能性を実行しない)TCPが、接続全体の率を2分の1、削減するように設計されている。したがって、接続の合計率は75ユニットに引き下げられる。
しかしながら、該2つの経路がベストエフォート方式のネットワーク(その場合には、率を半分削減することが「正しい」動作である)で使用されていると仮定しても、理想的な反応は接続全体よりむしろ損失のある経路でのみ率を半分にすることになる。
したがって、個々の経路の機能性(および関連状態)を接続から分断することによって、各経路は個別に維持されてよい。したがって、この例では、P1のレートは25ユニットに半減されてよく、P2に沿った率(100ユニット)を、影響を及ぼさずに残し、合計率125ユニットとしてよい。このようにして、性能の有意な改善は、接続の中の各経路から接続を分断しない従来の手法に比較して達成されてよい。別の言い方をすると、この改善は個々の経路を独立したエンティティと知覚し、このようにしてそれらを処理することによって達成される。
ここまで、接続と経路のコンセプトを全体として説明してきたので、並列通信セッションのコンセプトについて説明する。具体的には、各並列通信セッションは並列通信モジュール46と関連付けられてもよく、構成されたトリガに基づいて作成されるその関連経路エンジン50インスタンス(複数の場合がある)とともにコアエンジン48インスタンスの具体的なセットを説明する。該トリガは、例えばユーザインタフェースを通して構成されてよい。
トリガは例えば特定のアプリケーション、アプリケーションタイプ、ソースアドレス−宛先アドレス、ソース宛先アドレスおよびポートに基づいて構成されてよい。並列通信トランシーバが構成されたトリガに一致するパケットを受信し、通信セッションが一致するトリガについて設定されている場合、新しいセッションが例証されてよい。各セッションインスタンスは独自のコアエンジン48および関連するデータ構造を含んでよいため、各セッションは他のセッションのインスタンスとは無関係な固有の目的関数を有する場合がある。
トリガは、例えば、VoIPトラフィックまたはftpトラフィック等の特定のアプリケーションに基づいてよい。したがって、コアエンジン48は、部分的には、セッションインスタンスに一致する1つ以上の目的関数を満たすことに基づいて受信されるパケットのスケジューリングを行うように構成されてよい。VoIPの場合、目的関数はジッタを削減するものであってよく、ftpトラフィックの場合スループットを最大化するものであってよい。したがって、送信側通信トランシーバは、多くのコアエンジン48インスタンスによって送信のためにスケジューリングが行われるパケットを受信してよい。いくつかの場合では、たとえ宛先エンドポイントが同じであってよいとしても、経路とスケジューリングの異なるセットは各セッションの目的関数に基づいて使用されてよい。
トリガは、例えば宛先アドレスに基づいてよい。一実施形態では、トリガ構成は検出される新しい宛先IPアドレスごとに新しいセッションを作成するために設定されてよい。宛先IPアドレス「X」の付いた新しいパケットが並列通信トランシーバによって受信されると、新しい並列通信セッションは「X」に対応して作成される。宛先アドレス「X」が付いたより多くのパケットが受信される場合、これらのパケットは、それ自体のコアエンジン48と経路エンジン50のインスタンス(複数の場合がある)を含むそのセッションによってサービスを提供されてよい。
これまで並列通信セッションのコンセプトを説明してきたので、その構成要素、つまり経路エンジン50とコアエンジン58に関する詳細をさらに詳しく説明する。一般的には、経路50は、経路の特徴付けを含む経路ごとの機能性を追跡調査すること、および経路内のパケットの信頼できる配信を確実にすることに関与する。経路エンジン50と対照的に、コアエンジン48は、接続管理、接続信頼性、フロー制御およびスケジューリング等の接続ごとの動作に関与してよい。コアエンジン48は特定の接続のための並列経路についての情報も維持してよい。コアエンジン48は、ネットワークトラフィックのための一次インタフェースとして構成されてよい。例えば、図2の実施形態では、コアエンジン48は、各々パケットを送信し、受信するために、並列通信送信機モジュール64および並列通信受信機モジュール64を通して下にあるIP層62に接続する。コアエンジン48は、接続プロセッサ69、ディスパッチャモジュール68、データプロセッサモジュール70、送信バッファ61、損失公表モジュール74、並列通信ACK送信機モジュール76、LIMDエミュレータモジュール78、リソース発見モジュール79、およびスケジューラモジュール80を含む数多くのモジュールを含んでよい。これらのおよび他のモジュールの機能性は、コアエンジン48に関して、および経路エンジン50の相互作用の関連でさらに詳しく説明する。
経路エンジン48に関して、図2は、ネットワーク内で使用されるあらゆる経路について作成されてよい多くの経路エンジン50インスタンスを描いている。さらに、所与の経路のための経路エンジンインスタンスは、例えば経路を使用することになるあらゆる新しい接続(または、システムの中に構成されるトラフィック分離の細かさ(granularity)に応じてセッション、アプリケーション等)のために作成されてよい。経路エンジン50のインスタンスは、例えば接続の第1のパケットが並列通信トランシーバに到達すると作成されてよい。
経路エンジン50の各インスタンスは、経路特性を決定するために関連付けられた経路を特徴付けるために経路特徴付けモジュール52を含んでよい。より具体的には、経路特徴付けモジュール52は多くの他の機能を扱ってよいが、一般的には経路特徴付けモジュール52は、それらが経時的に変化するにつれて経路特性を繰り返し決定してよい。経路特性の例は、特定の経路上で送信されるデータについて、スループット、帯域幅、遅延、ジッタ、損失率、コスト、およびセキュリティの瞬間(値)、平均(値)、および分散(値)を含んでよい。実際には、多くのネットワーク経路は、例えば異なるスループットの期間、帯域幅、遅延、データ損失、ジッタ、データフロー、コストおよび/またはセキュリティ等を有する動的な条件を有する。したがって、経路特性は、動的経路条件が捕捉されるように、繰り返して(例えば、周期的に、動的に、連続的におよび/または無作為に等)決定される。
経路特徴付けは能動的または受動的であってよい。能動的な特徴付けは、(例えばタイムスタンプ等の)特性を演繹的に決定するために使用されてよい情報を含むパケットにヘッダを追加することを含んでよい。対照的に、受動的な特徴付けは特性を演繹的に決定するために(例えばTCPヘッダの中に等)データの中にすでに埋め込まれている情報を使用してよい、あるいはパケットの受信またはパケットの受信の欠如から経路特性を演繹してよい。例えば、TCP肯定応答を観察することによって、システムは損失の発生またはその欠如を推論してよい。
受動的特徴付けは多様な経路に沿って配信されるデータパケットの特徴をモニタすることを含んでよい。いくつかの実施形態は経路特徴付けを実行するために既存の第4層の技術プロトコル動作を再利用する能力を含んでよい。したがって、トランスポートプロトコル動作(例えばTCP)の理解を通して、システムは経路特徴付けを実行するためにトランスポートプロトコルの機構を積極的に再利用するように構成されてよい。したがって、経路特徴付けは、TCPトランスポート層等の高位の層のプロトコルに関するこの認識を利用してよい。
モジュールが、経路の特性のすべてを決定する必要はない。むしろ、特定の目的(例えば、帯域幅の量、ジッタまたはコスト)に必要とされるそれらの特性のみを収集する必要がある。例えば、図2の実施形態では、1つの目的関数は帯域幅を最大化している。したがって、本実施形態では、経路特徴付けモジュール52は一般的には経路ごとの帯域幅を特徴付けるために使用されてよい。特に、経路特徴付けモジュール52は、特定の経路を通ってどれほど多くのデータが送信されるべきかを判断する目的で対応する経路全体でどれほど多くのデータが送信されるのかを決定し、連続的に追跡調査してよい。したがって、輻輳制御(経路関連機能性)は、接続信頼性(接続関連機能性)から分断される。
経路の輻輳制御は、経路を通して送信されるデータの量を決定することに関する。いくつかの実施形態では、少なくとも、各経路が異なる帯域幅特徴を有し、各経路がそれを通って流れる異なったトラフィックを有する可能性があるという理由から、場合によっては経路ごとの機能性として輻輳制御を処理することが有利である。したがって輻輳制御を分断することによって、異質の特徴(例えば異なる帯域幅、ジッタ、コスト、セキュリティ等)をもつ経路がより効果的に利用されてよい。したがって、経路特徴付けモジュール52は、いつ特定の経路がデータの送信のために使用可能であるのかをコアエンジン48に知らせる目的でコアエンジン48と通信するように構成されてよい。
一実施形態では、各経路エンジン50インスタンスはTCPによって使用される輻輳ウィンドウベースの帯域幅推定機構を使用してよい。特に、帯域幅推定器は経路エンジンの対応する経路の帯域幅遅延積(容量)の近似値として輻輳ウィンドウを使用してよい。輻輳ウィンドウは、TCP輻輳制御機構によって使用されるように、線形増加/乗法減少(LIMD)ポリシーに基づいて維持されてよい。LIMDはレガシーインターネットフローの間の経路帯域幅の公平な共用を達成する。
経路エンジン50は、使用可能な帯域幅を探るためにTCP輻輳制御機構のスロースタートフェーズを使用してもよい。スロースタートフェーズでは、経路特徴付けモジュール52は受信されたACKパケットごとに、輻輳ウィンドウを増加してよい。輻輳ウィンドウのスレッショルド値はスロースタートから輻輳回避への遷移点を決定するために使用されてよい。スレッショルド値は、損失が発生する場合、輻輳ウィンドウ値の半分である。輻輳回避フェーズでは、経路特徴付けモジュール52は、例えば受信されたACKパケットごとに1ずつ輻輳ウィンドウサイズを増分してよい。
経路特徴付けモジュール52が第3の連続重複ACKパケットの受信を通して損失を検出すると、経路特徴付けモジュール52は輻輳ウィンドウを半分削減し、輻輳回避段階を続行するように構成されてよい。経路特徴モジュール52がACKパケットを待機するタイマの時間切れを通して損失を検出する場合は、経路特徴付けモジュール52は輻輳ウィンドウサイズを1に削減し、スロースタートフェーズを進めるように構成されてよい。
経路特徴付けモジュールは、帯域幅、損失、遅延、ジッタ等であるが、これらに限定されないパラメータを含んでよい経路特性の推定を、TCPにフレンドリなレート制御(TCP)、保証済みTCP(GTCP)、2項式輻輳制御(BCC)等の機構を明示的に使用して実行してもよい。いくつかの実施形態では、経路特徴付けモジュールは、例えばパラメータの各々の平均値および偏差値を維持してよいカスタム推定手法を使用して経路特性の推定を実行してよい。推定手法は、受信された各ACKから学習される情報を使用して適切な重み付け平均化技法を通してパラメータを更新することをさらに含んでよい。例えば、ACKが時間Ttで送信されたデータパケットについて時間Trで達すると、平均遅延値は以下のように更新されてよい。
Delayavg=k*Delayavg+(1−k)*(Tr−Tt) (式1)
この場合kは1未満で、0より大きい定数である。例えば、kは0.75と1.0の間の値に設定されてよく、ネットワーク過渡現象に対する急激な反応を回避してよい。
この場合kは1未満で、0より大きい定数である。例えば、kは0.75と1.0の間の値に設定されてよく、ネットワーク過渡現象に対する急激な反応を回避してよい。
一般的には、ヘッダジェネレータモジュール56は、コアエンジン48に送信される経路ヘッダを生成する。経路ヘッダは、最新ラウンドトリップタイム(RTT)推定値、経路レベルシーケンス番号、ポート情報、チェックサム、経路レベルACKシーケンス番号、フロー制御情報、および、前記フィールドのいずれが有効であるのかを示すためのフラグ等であるが、これらに限定されない経路情報を含んでよい。コアエンジン48は並列通信ヘッダを形成するためにこの経路ヘッダと組み合わされてよい接続ヘッダを生成する。接続ヘッダは、接続識別子、データパケットの接続シーケンス番号、接続レベルACKシーケンス番号、使用されている送信経路の数、および使用されている受信経路の数等であるが、これらに限定されない接続情報を含んでよい。並列通信ヘッダは、コアエンジン48に関してさらに詳細に説明するように、パケットとともに送信されてよい。
ヘッダジェネレータモジュール56は、経路特徴付けモジュール52から要求に応じてデータパケットのために経路ヘッダを作成するように構成されてよい。経路特徴付けモジュール52からの要求は、ヘッダジェネレータモジュール56に作成されるヘッダ内に含まれる情報を提供してよい。例えば、経路特徴付けモジュール52は経路レベルシーケンス番号および最新のラウンドトリップタイム(RTT)推定値等を提供してよい。
経路特徴付けモジュール52は、send_data()呼を介してインタフェース56を通るコアエンジン48にヘッダジェネレータモジュール56によって作成される経路ヘッダを送信するように構成されてよい。特に、send_data()呼は、データパケットが発呼する経路エンジン50インスタンスと関連する経路全体で送信されてよいことを、(コアエンジン48の)スケジューラモジュール80に示してよい。経路ヘッダ内の情報は、特定される経路全体でパケットの配信のスケジューリングを行うために(コアエンジン48内の)スケジューラモジュール80によって使用されてよい。経路全体でデータパケットの配信のスケジューリングを行うための例示的なアルゴリズムは、以下のスケジューラモジュール80に関してさらに詳細に説明する。
経路特徴付けモジュール52は、種々の条件下で新しいパケットを送信する能力を示すことによって使用可能な帯域幅を暗示的に推定してよい。例えば、一実施形態では、経路特徴付けモジュール52は、以下の条件下でスケジューラモジュール80にsend_data()呼を送信してよい。
(i)(例えば、過去に送信されたパケットからのACKの受信等)過去に送信されたパケットが無事に受信されたことの表示
(ii)(例えば帯域幅プロービングまたは通常の動作等の)経路特徴付けモジュール52のフェーズ、および/または
(iii)送信されることが決定された追加のパケットの数が端数である場合、以後の増加によりパケット全体の送信が可能になるまで、1未満の任意の値が蓄積される。
(ii)(例えば帯域幅プロービングまたは通常の動作等の)経路特徴付けモジュール52のフェーズ、および/または
(iii)送信されることが決定された追加のパケットの数が端数である場合、以後の増加によりパケット全体の送信が可能になるまで、1未満の任意の値が蓄積される。
コアエンジン48は並列通信経路40、42および44上で送信される多くの標準パケットを保持するために使用されてよい送信バッファ61を含んでよい。標準パケットは、一般的なTCPパケットまたはUDPパケット等の並列通信ヘッダを含まないパケットであってよい。例えば、標準パケットは、例えばソース演算装置30から送信機並列通信トランシーバ22に、あるいは受信機通信トランシーバ24から宛先演算装置32に送信されるものである場合がある。したがって、経路特徴付けモジュール52から経路ヘッダを受信すると、コアエンジン48は、あらゆるデータパケットが送信バッファ61内で送信される多数のデータパケットについてチェックすることにより送信される準備ができているか否かを判断してよい。
データパケットが送信バッファ61に存在する場合、コアエンジン48は次の解放されたパケット(結合性データ構造で結合性を有さないバッファ内のパケット)を選び、経路特徴付けモジュール52によって送信されるヘッダに該パケットを結合し、それを並列通信送信機64を通して送出する。
しかしながら、データパケットが送信バッファ61に存在しない場合、コアエンジン48は、送信されるデータパケットの不在の表示で(例えばインタフェース60上で)経路特徴付けモジュール52に応答してよい。この表示は、FREEZE(フリーズ)コマンドと呼ばれる場合がある。FREEZEコマンドをコアエンジン50から受信すると、経路特徴付けモジュール52は帯域幅推定を非アクティブにするように構成されてよく、コアエンジン48が送信バッファ61内にパケットを有さないことを経路ヘッダジェネレータモジュール56に知らせてもよい。経路エンジン50は、データパケットが送信バッファ61内で待ち行列に入れられる旨のコアエンジン48からの表示の受信時に、帯域幅推定とヘッダ生成の機能を再びアクティブにするように構成されてよい。この表示はコアエンジン48により送信されるRESUME(再開)コマンドと呼ばれる場合がある。
経路特徴付けモジュール52は、インタフェース58を通して帯域幅推定の変化をコアエンジン48に知らせるように構成されてもよい。例えば、経路特徴付けモジュール52は、経路特徴付けモジュール52が過去に送信されたパケットからACKパケットを受信すると帯域幅推定値を更新するように構成されてよい。このACKパケットは、例えば、さらに詳しく後述する、コアエンジン48の中に位置するディスパッチャモジュール68から渡されてよい。
一般的には、信頼性モジュール54は、経路エンジン50インスタンスと関連する、関連付けられた経路に沿ったパケットの信頼できる配信を保証してよい。経路信頼性を、各接続の信頼性から効果的に分断するために、コアエンジン50が接続信頼性を処理するように構成されてよいことを理解すべきである。したがって、接続信頼性は以下のコアエンジン48に関してさらに詳しく説明される。
経路信頼性に関して、信頼性モジュール54は、ディスパッチャ68からACKを受信し、パケットが適切に受信されたか否かを判断するために累積的で、選択的なACKを活用するように構成されてよい。例えば、累積肯定応答が使用されるとき、所定数の複製の肯定応答を受信するとパケット損失が推論される。例えば、3つの複製のACKが連続して同じシーケンス番号を提供する場合、そのシーケンス番号に対応するパケットが失われた(したがって再送信されなければならない)ことが推論される。
選択的なACKが使用されると、どのパケットが失われているのかを特定するために、さらに特定の情報が受信機によって送信機に与えられる。例えば、受信機は、パケット5〜11、13〜29、および31〜48の受信を送信機に示してよい。このようにして送信機は、パケット12と30が失われた(したがって再送信されなければならない)ことを推論してよい。
さらに、供給される接続がTCPフローである場合、信頼性モジュール54はTCPヘッダを再利用するように構成されてよい。特に、TCPヘッダ内のACKシーケンス番号は、前述のように失われたパケットについての情報を交換するためにシステムによって使用されてよい。
ここまで経路エンジン50の一般的な機能性を説明してきたので、コアエンジンについてさらに詳しく説明する。前述のように、コアエンジン48は、接続管理、接続信頼性、フロー制御およびスケジューリング等であるが、これらに限定されない接続ごとの動作に関与してよい。コアエンジン48のいくつかの実施形態がこれらの特徴のすべてを含まなくてよく、他の実施形態が種々の他の機能を含んでよいことが理解される必要がある。
いくつかの実施形態では、宛先によって維持されるバッファの量がフロー制御を実行する上での決定要因であってよいために、フロー制御が必要ではない可能性がある。したがって、宛先トランシーバはソーストランシーバに使用可能な受信バッファの量を知らせるように構成されてよい。このようにして、ソースはこの情報を使用して、宛先バッファのオーバフローを回避するためにその送信率を適応させてよい。したがって、一実施形態では、送信側並列通信トランシーバで使用されるバッファサイズは、受信側バッファのオーバフローのためのドロップ(drops)通信を回避するために宛先並列通信トランシーバで使用されるバッファサイズと同じである。
図2の実施形態では、コアエンジン48は、並列通信受信機モジュール66とのインタフェースを通してIP層62から受信される入信パケットを分類するためのディスパッチャモジュール68を含んでよい。具体的には、ディスパッチャモジュール68はコンテンツタイプ(例えば、データまたはACK)を決定するために入信パケットのヘッダを調べてよい。したがって、データパケットはデータプロセッサモジュール70に転送され、ACKパケットはACKプロセッサモジュール72に転送される。
しかしながら、接続プロセッサ69は、データプロセッサモジュール70またはACKプロセッサモジュール72のいずれかにパケットを転送する前に、パケットが公知の接続と関連しているか否かを特定するためにパケットを調べてよい。接続が公知ではない場合、接続プロセッサ69は新規に発見された接続について適切なデータ構造を作成してよい。
一般的には、データプロセッサモジュール70は、ディスパッチャモジュール68から受信されるデータパケットを処理してよい。データプロセッサモジュール70は、受信されるパケットのタイプに基づいて多くの動作を実行するように構成されてよい。特に、データプロセッサモジュール70は、受信されたパケットが並列通信ヘッダを含むか否かを検出するように構成されてよい。
例えば、図1を振り返ると、送信機並列通信トランシーバ22は、ソース演算装置30からの並列通信ヘッダを有さない標準データパケットを受信する。したがって、データプロセッサモジュール70は、ネットワーク全体26での最終的な送信のために送信バッファ61内で受信されたデータパケットをバッファに入れる。
対照的に、並列通信トランシーバ24は、並列経路40、42および44の任意の組み合わせ上で並列通信トランシーバ22から並列通信データパケット(例えば、並列通信ヘッダ内にカプセル化されているもの)を受信する。並列通信トランシーバが並列通信データパケットを受信すると、データプロセッサモジュール70は、データパケットから接続ヘッダを削除し、ヘッダから接続情報を抽出してよい。コアエンジン48は、接続ヘッダからの対応する接続変数とデータ構造を更新してよい。例えば、コアエンジン48はRTT値を更新し、ACK(肯定応答)されたパケットの送信バッファをパージし、さらに詳しく後述するランクデータ構造を更新してよい。
データプロセッサモジュール70は、データパケットから経路ヘッダを削除し、インタフェース60を通る対応する経路に関連する経路エンジン50に経路ヘッダを転送してよい。対応する経路は、例えば経路シーケンス番号および/または経路ヘッダの中のソースアドレスと宛先アドレスから決定されてよい。経路エンジン50は、次にACKを送信側並列通信トランシーバに送り返してよい。ACKは、データパケットが無事受信されたことを示してよく、データパケットからコピーされたRTT値等のデータパケット送信についての情報を含んでよい。
データプロセッサモジュール70は、宛先エンドポイント装置への最終的な配信のために受信されたデータパケットの集約演算に関与してよい。いったん並列通信ヘッダが削除されると、データプロセッサモジュール70は、並列通信送信機インタフェース64を通してIP層に、標準TCPデータパケットであってよい結果として生じる標準的なデータパケットを送信してよい。一実施形態では、データプロセッサモジュール70は、条件付きで再構築を実行するように構成されてよい。すなわち、データプロセッサモジュール70は、受信されたデータが再同期を必要とする条件を満たすときにのみ受信されたデータを順序付けし直すように構成されてよい。条件付き再構築プロセスは、例えば、スケジューリングモジュール80によってスケジューリングが行われたように、それらが受信されるべきであった所定のシーケンスに受信されたデータを順序付けし直してよい。
例えば、データプロセッサモジュール70は、以下の2つの条件の内の1つの下においてのみIP層にパケットを送信してよい。つまり(i)高位の層のプロトコルがイン−シーケンス(in−sequence)配信(例えばTCP)を必要とするプロトコルであり、データパケットがイン−シーケンスパケットである、あるいは(ii)高位の層のプロトコルがイン−シーケンス配信を必要とするプロトコルではない。標準的なデータパケットは、次にエンドツーエンド接続の最終的な宛先、ここでは宛先演算装置32に送信されてよい。条件の両方が満たされると、データパケットは、新しいデータパケットが到達するまでデータバッファの中に保持される。受信されたあらゆるデータパケットについて、コアエンジンは、前記条件に基づいて可能な限り多くのバッファ化されたパケットを使い果たしてよい。
ACKパケットの受信時に、ディスパッチャモジュール68はパケットをACKプロセッサモジュール72に転送する。一般的には、ACKプロセッサモジュール72は接続ヘッダと経路ヘッダを処理し、関連する接続ごと、および経路ごとのフィードバックを提供することにより信頼性と輻輳の制御を実現する。
より具体的には、ACKプロセッサモジュール72は、受信されたパケットのタイプに基づいて多くの動作も実行してよい。例えば、ACKプロセッサモジュール72が(例えば、並列通信ヘッダを検出することにより)受信されたACKパケットが並列通信ACKパケットであると検出すると、ACKプロセッサモジュール72はデータパケットから接続ヘッダを削除し、ヘッダから接続情報を抽出する。さらに承認信号を受信すると、送信バッファ61から対応するデータパケットを削除するように構成されてよい。
ACKプロセッサモジュール72は、並列通信ACKパケットから経路ヘッダを削除し、インタフェース60を通して経路ヘッダを経路エンジン50に転送してもよい。ACKプロセッサモジュール72は、TCP ACKパケットであってよい標準ACKパケットを損失公表モジュール74に転送してもよい。
一般的には、損失公表モジュール74は、ソース演算装置30が複数の経路の総計の帯域幅への適応を支援する。より具体的には、損失公表モジュール74はソースを経路の総計レートに適応させ、データのソースによる利用不足またはオーバーシューティングの可能性を回避することを最終目的としてデータのソース(例えばソース演算装置30)にパケットデータの損失を選択的に公表する。
LIMDエミュレータモジュール78は、線形増加/乗法減少(LIMD)送信ポリシーを順守するTCP送信機の動作をエミュレートするために損失公表モジュール74とともに使用されてよい。LIMDエミュレータモジュール78は、TCP送信機が同数のACKパケットを受信すると実行することになる同じ輻輳制御機構をエミュレートしてよい。図2の実施形態では、LIMDエミュレータモジュール78は、例えばemul_ack()呼を通して損失公表モジュール74によって受信されたACK送信について通知されてよい。さらにLIMDエミュレータモジュール78は、送信されたパケット数をゼロにリセットし、それが対応する問合せを損失公表モジュール74から受信すると、送信されたパケット数を戻すように構成されてよい。例えば、送信されたパケット数を突き止めるためのLIMDエミュレータモジュール78に対する問合せは、損失が送信側TCPに公表されるべきか否かを判断するために使用されてよい。したがって、損失が公表される場合、リセット問合せはLIMDエミュレータモジュール78の動作をリセットするために使用される。
一実施形態では、損失公表モジュール74は、損失を示すそれらのACKパケットを除きすべてのACKパケットをソースに転送してよい。損失を示すACKパケットの受信時に、損失公表モジュール74はpkts_sentとTnを比較してよい。pkts_sent変数およびTnは、各々並列通信送信機64とLIMDエミュレータ78によって送信されるパケット数に相当してよい。Tnの値は、例えばLIMDエミュレータ78のemul_num()関数を呼び出す損失公表モジュール74によって得られてよい。
Tn−pkts_sent>μであり、μが設定可能である定数スレッショルドである場合には、損失公表モジュールはIP層にACKパケットを転送し、pkts_sent変数を0にリセットし、LIMDエミュレータモジュール78のemul_reset()関数を呼び出し、LIMDエミュレータから送信されたパケット数を0にリセットしてよい。それ以外の場合、Tn−pkts_sent<μの場合、損失公表モジュール74はACKパケットを中断する(drop)ように構成されてよい。損失公表モジュール74はまた、LIMDエミュレータモジュール78に、ACKパケット各々をIP層に転送するように通知してよい。この通知は、例えばemul_ack()呼を通して発生してよい。
AKCパケットが宛先から受信され、並列通信ヘッダが欠如していることを示されると、ACKプロセッサモジュールは並列通信ACK送信機モジュール76にパケットを転送する。並列通信ACK送信機モジュール76は標準ACKパケットをACKプロセッサモジュール72から受信すると、ack_mappingデータ構造を要求し、対応する経路エンジンを決定し、対応する経路エンジン50から経路ヘッダを要求する。ack_mappingデータ構造は、例えば特定の経路に沿って到達したパケットの適切なシーケンス番号を維持してよい。シーケンス番号および関連経路を維持することによって、パケットに対応するACKが同じ経路に沿って送信されてよい。
通信経路エンジン50は、識別されたACKパケットのための対応する経路ヘッダを返す。次に、並列通信ACK送信機モジュール76は、経路ヘッダと接続ヘッダを含む並列通信ヘッダで受信されたACKパケットをカプセル化してよい。ACK送信機モジュール76は、その後、送信機並列通信トランシーバへのACKパケットの配信のために、並列通信送信機64を通して、構築された並列通信ACKパケットをIP層62に送信してよい。
リソース発見モジュール79は、ネットワーク26全体でデータを送信するために使用可能なリソースを受動的にまたは能動的に発見してよい。図1の実施形態では、例えば、リソースはノード28、および経路40、42および44を形成するために接続する他の並列通信トランシーバ22と24であってよい。トラフィックを受動的にモニタするとき、リソース配信モジュール79はIP層62からデータパケットを受信し、各ネットワークパケットのソースノードと宛先ノードを決定するために各パケットからIPヘッダを抽出する。したがって、パケット内でソースノードと宛先ノードを決定することにより、経路はこれらのノードの間に存在すると推論されてよい。
発見されたソースノードおよび/または宛先ノードは潜在的な並列通信トランシーバであってよい。例えば、リソース発見モジュールは、受信されたパケットが並列通信ヘッダを含む場合に、ソースおよび/または宛先が並列通信トランシーバであると推論してよい。
潜在的な並列通信トランシーバを発見すると、リソース発見モジュール79は、その後、例えば並列通信ヘッダを含んでよいネットワークリソースに発見パケット(例えば、「ピング」)を送信することによって、発見されたリソースを確認してよい。このピングを受信する他の並列通信トランシーバは、並列通信ヘッダでカプセル化されたACKパケットで該ピングを肯定応答することによって応答するように構成されてよい。いくつかの実施形態では、応答側並列通信トランシーバは、公知の経路、経路特徴、および他の公知の並列通信トランシーバ間の並列通信トランシーバによって供給される接続についての情報を供給するように構成されてよい。
したがって、リソース発見モジュール79は、他のネットワークリソース(例えば、並列通信トランシーバ、ルータ等)から、または(グラフィックユーザインタフェースを通して表示されてよい)構成インタフェースを通して等、外部でリソースのアイデンティティを提供されることによってリソースを「発見」してもよい。リソース発見モジュール79は、前記のように、例えば並列通信ヘッダを含んでよいネットワークリソースに発見パケット(例えば「ピング」)を送信することによって可用性発見リソースを確認してよい。
リソース「発見」モジュール79は、示されたピングに対照的に、ネットワーク内の他の並列通信トランシーバを知るために発見パケットのネットワーク全体でのブロードキャストも実行してよい。この場合、ブロードキャスト発見パケットを受信するすべての並列通信トランシーバはその存在を示すために適切なACKメッセージで応答するように構成されてよい。
さらに、リソース発見モジュールは、経路上でデータを受信し、おそらく再送信するためのノードの可用性を決定する目的で、並列通信トランシーバ等の公知のノードに発見パケットを繰り返し送信することによって発見されたリソースのステータスを維持してよい。
いったんリソースが発見されると、中間リソース間の個々のリンクは2つの並列通信トランシーバ間の1つ以上の経路を要約する(abstract)ために使用される。図1を見ると、各ノード28の間のリンクは、単一の仮想接続38を形成する経路40,42および44の各々に要約され、単一の仮想接続38を形成する。いったん経路が要約されると、コアエンジン48は接続上でデータを送信するために潜在的なリソースとして経路を記憶する。経路エンジンの新しいインスタンスは、経路を使用できる新しい接続が発見されると作成されてよい。
複数の並列通信トランシーバまたはレガシーノードを通してルーティングデータを含んでよい、経路に沿ったデータの実際の配向は、IP−in−IPカプセル化、最小IPカプセル化、またはソースルーティング等であるが、これらに限定されない幅広く採用されているルーティング規格を使用して実行されてよい。これらの技法はある特定のデータを通してデータを押し進めるために幅広く採用されているので、経路内の中間ノードは他の並列通信トランシーバであることを必要とされず、実際には単に採用されたルーティング規格をサポートするレガシールータである場合がある。しかしながら、いくつかの実施形態では、サポートされるルーティング規格を(例えば外部構成を通して)サポートするレガシールータの識別で並列通信トランシーバを供給することが必要であってよい。
一般的には、スケジューラモジュール80は、(例えば、帯域幅最大化/スループット、遅延の最小化、ジッタ削減、コスト削減、セキュリティ、信頼性の向上(および損失率)、および/または弾力性(resiliency)の)目的関数を達成する目的で送信されるパケットのスケジューリングをインテリジェントに行う。目的関数が関数の組み合わせ(例えば、帯域幅を増加することとジッタの削減)であってよいことが理解されるべきである。さらにスケジューラモジュール80は、目的関数の所望されるサービスのレベル(例えば、帯域幅の量、許容できるジッタ、コストレベル等)を満たすように構成されてよく、パケットスケジューリングは、公知の経路のアイデンティティ、経路の動的に更新された特徴、経路および/または接続についての記憶されている状態情報であるが、これらに限定されない情報に、および高位のレベル(例えばTCP)動作の認識を利用することによって基づいてよい。
例えば、言及されたように、目的関数はある特定の接続上で帯域幅を最大限にするため、あるいはジッタを削減するためであってよい。したがって、ソース演算装置30から送信機並列通信トランシーバ22に到達するパケットは各々、宛先並列通信トランシーバで必要とされる同期と実質的に同じ順序で、および/または宛先並列通信トランシーバで必要とされる同期の程度の範囲内で宛先並列通信トランシーバ24に到達するために発信経路40、42、および44に割り当てられている。
データは、スケジューリングが行われている他のデータに関連して所定のシーケンスで宛先において受信されるようにスケジューリングが行われてよい。例えば、所定のシーケンスは、データがスケジューラで受信される順序、データがソース演算装置30によって送信される順序、データシーケンス情報(例えば、データパケットヘッダの中に埋め込まれている数列等のデータ通信の中のパケットの特定の順序を表すために使用されるデータ)、あるいはデータが並列通信送信機から宛先エンドポイントに送信されなければならない順序に対応してよい。
したがって、パケットは実際には宛先トランシーバ24で順序が狂って受信されてよいが、該パケットは、順序が狂った受信が最小限に抑えられるように送信されるスケジュールとなり、このようにしてジッタを減少し、帯域幅を改善する。
他の情報の中では、スケジューラモジュール80はパケットのスケジュールを連続的に適切に決定するために経路の動的な特徴付けを使用する。例えば、経路特徴付けモジュール52は、1つの経路の使用可能な帯域幅が減少したと判断すると、スケジューラモジュール80は、適応させ、影響を受けた経路全体で送信されるより少ないパケットのスケジューリングを行うためにこの特徴付け情報を使用してよい。同様に、経路が完全に壊されると判断される場合、パケットは他の経路上で送信されるようにスケジューリングされてよい。
したがって、経路の各々で送信されるデータを効果的に同期させるために、スケジューラモジュール80は各経路上で送信される各パケットの到着時刻を予測するように構成されてよい。例えば、到着時刻は、経路特徴付けモジュール52によって提供されるRTT推測値に少なくとも部分的に基づいてよい。さらに、いくつかの実施形態では、スケジューラモジュール80は各経路上で送信されるデータの到着確率を検討するように構成されてよい。到着確率は、例えばある特定の経路の損失率のような経路特性から引き出されてよい。したがって、パケットは経路の動的特徴に基づいて再分散される。
図2を見直すと、動作中、スケジューラモジュール80は経路エンジン50のインスタンスから経路ヘッダを要求してよい。スケジューラモジュール80は、経路ヘッダを受信すると、送信バッファ61からの送信のためにデータパケットを選択してよい。スケジューラモジュール80は、経路エンジン50からの経路ヘッダと、接続情報を含む接続ヘッダとを含む並列通信ヘッダで選択されたデータパックをカプセル化する。スケジューラモジュール80は、送信機インタフェース64を通してIP層62に、並列通信ヘッダでカプセル化されたデータパケットを送信してよい。スケジューラモジュール80は該適切なデータ構造を更新してもよい。
スケジューラ80によって使用される例示的なアルゴリズムの詳細を説明する前に、スケジューラモジュール80によって使用されてよい多くのデータ構造がさらに詳しく説明する。結合性データ構造82は、対応する経路のために、経路単位で維持され、一般的には接続シーケンス番号と対応する経路シーケンス番号のマッピングを記憶するために使用されてよい。具体的にはスケジューラ80によってIP層に送信されるデータパケットごとに、コアエンジン48は、関連経路のローカルシーケンス番号と結合性データ構造82での接続シーケンス番号の間のマッピングを維持する。
同様に、コアエンジン48は、データパケットが受信されるときに同じ構造を維持する。特に、データプロセッサモジュールは、PVN送信機からのデータパケットの受信時に、対応する経路のための結合性データ構造の中に接続シーケンス番号と、対応する経路シーケンス番号とのマッピングを挿入してよい。
アクティブデータ構造84は、データの送信に使用可能な経路のアイデンティティを記憶してよい。例えば、データが関連する経路全体で送信されてよいと判断すると、特定の経路のための経路エンジン50のインスタンスが、スケジューラ80にsend_data()呼を送信することによってこの準備が完了していることを示してよい。しかしながら、データパケットが送信バッファで使用できない場合には、コアエンジン48はFREEZE(フリーズ)関数を呼び出し、スケジューラモジュールは対応する経路をアクティブデータ構造84に追加してよい。データパケットが送信バッファ61内に格納されると、スケジューラ80はアクティブデータ構造84内で識別される経路の各々に対応する経路エンジン50インスタンスに対してRESUME(再開)呼を発行してよい。
ランクデータ構造86は、送信バッファ内で送信されるデータパケットのランクを決定するために使用される情報を記憶してよい。特に、経路jを通して送信されるあらゆる送信済みデータパケットiの場合、並列通信送信機64は、Ti+2*RTTjのタイムスタンプでランクデータ構造86の中にエレメントを挿入し、この場合Tiはデータパケットが送信された時刻であり、RTTjは経路jを通って遭遇したラウンドトリップタイムである。RTT値は、例えばRTTデータ構造から取り出されてよい。
RTTデータ構造88は、特定の経路のためのラウンドトリップタイム推定値を記憶してよい。特に、スケジューラモジュール80は、経路エンジン50からsend_data()呼を介して特定の経路のRTT推定値を受信すると、RTTデータ構造の中の対応するエントリを更新(または挿入)してよい。
未決データ構造90は、送信または再送信の準備ができた接続シーケンス番号を記憶するために使用される。
ここまでスケジューラモジュール80によって使用されるデータ構造が説明してきたので、スケジューラモジュール80によって使用されるアルゴリズムについてさらに詳細に説明する。(経路エンジン50の)経路特徴付けモジュール52は、特定の経路を通って送信されるデータの量を決定してよいが、スケジューラモジュール80は、パケットを相応させて結合することにより、送信バッファ61の中の特定のパケットのいずれが経路の各々を通して送信されるべきか否かを決定することを理解すべきである。
このようにして、送信バッファ61の中の特定のパケットのいずれが経路の各々を通して送信されるべきかを判断するために、経路jに対応する経路エンジン50が時間Tで経路シーケンス番号sが付いた経路ヘッダを送信する場合を考える。スケジューラモジュール80はsend_data()呼を通して経路ヘッダを受け取り、ランクデータ構造から対応するパケットのランクを決定する。
パケットのランクは、ランクデータ構造86の中で値がT+RTTj/2未満であるエントリの数をカウントすることによって決定される。スケジューラモジュール80は未決データ構造90の中で送信するk番目のパケットとして接続シーケンス番号iの付いたパケットを検出する。
前述のように、未決データ構造90は、まだ送信または再送信されていないパケットの接続シーケンス番号を含んでよい。未決データ構造90の中の特定のパケットを検出した後に、スケジューラ80は(j,s)が付いた結合データ構造82の中のパケットiのエントリを更新し、ランクデータ構造86にエントリ(i,T+3/2*RTTj)を挿入する。最終的には、スケジューラ80は接続ヘッダからシーケンス番号iを使用し、接続ヘッダおよび受信された経路ヘッダをデータパケットに取り付け、並列通信送信機64を通してそれをIP層に送信する。ACKパケットが受信されると、ランクデータ構造86の中の対応するエントリが削除される。
接続内でのパケットの確実な配信は、スケジューラモジュール80によっても処理されてよい。特に、スケジューラモジュール80は、前述のように、スケジューリングポリシーに基づいて送信バッファからパケットを送信してよい。さらに、スケジューラモジュール80は(パケットが宛先並列通信トランシーバで無事に受信されたことを示す)ACKが到達したパケットを削除してよい。
したがって、(経路エンジン50の中の信頼性モジュール54によって処理される)経路信頼性と対照的に、接続を介したパケットの確実な配信はコアエンジン48のスケジューラモジュール80によって保証されてよい。別の言い方をすると、パケットが受信側並列通信トランシーバまで採る特定の経路には関係なく、送信側並列トランシーバのコアエンジン48は、接続上でデータパケットの確実な配信の役割を担うように構成されてよい。
ここまで経路エンジン48とコアエンジン50を説明してきたので、説明したシステムおよび方法を用いて利用されてよい多くの例示的な機能を説明する。例えば、動的再割り当て機能は、対応する経路エンジンによる任意の経路の容量の不正確な推定のためにパケットの損失を妨げるために使用されてよい。例えば、経路特徴付けモジュール52は、例えば経路の中で輻輳が発生する直前に、経路の容量を過度に見積る可能性がある。この過度の見積りは、輻輳ウィンドウが最近削減された経路内のデータの望ましくない低速化につながる場合がある。
例えば、経路piの輻輳ウィンドウはcwndiとして表現されてよい。cwndiの価値があるデータが経路piに割り当てられ、輻輳ウィンドウサイズがpiの輻輳ウィンドウの範囲外になるcwndi/2の価値があるデータまで削減されると、データの送信は、輻輳ウィンドウcwndiが開くまでブロックされる。したがって、他の経路の送信は、経路piの中のパケットの送達の遅延のために低速化する可能性がある。
しかしながら、経路輻輳制御と接続信頼性の間に存在する分断を利用することによって、この問題は緩和される可能性がある。特に経路が輻輳を経験する場合、経路エンジン50の経路特徴付けモジュール52は(例えば、それが複製肯定応答によって検出される場合には半分、およびタイムアウトがある場合には1に)輻輳ウィンドウを削減してよい。
前述のように、対応する経路のための経路特徴付けモジュール52が輻輳ウィンドウを削減する場合、経路特徴付けモジュール52は削減についてスケジューラモジュール80に知らせてよい。スケジューラモジュール80は、次に輻輳ウィンドウの範囲外になる関連する経路のシーケンス番号に結合されるデータパケットを解放してよい。
したがって、別の経路がその輻輳ウィンドウ内に空間を有し、send_data()呼を送信する場合、解放されたデータはその経路に再割り当てされてよい。オリジナルの経路が輻輳から回復後にsend_data()を呼び出すと、スケジューラモジュール80は送信バッファ内に記憶される新しいデータパケットを経路エンジン50によって送信される経路ヘッダに結合してよい。したがって、この動的な再割り当てアルゴリズムは、個々の経路の変化するネットワーク条件によって生じる問題を緩和するために並列通信の性能を改善するために使用されてよい。
説明されているシステムおよび方法と利用されてよい別の例示的な機能は、冗長なストライピングと呼ばれる場合がある。前述の動的再割り当て戦略はある特定の経路の輻輳ウィンドウの範囲外であるパケットを再割り当てするが、動的再割り当て戦略は経路の状態に関係なく輻輳ウィンドウから外れない可能性がある第1のパケットを効果的に対処することはできない。
残念なことに、経路を通って第1のパケットを配信できないと、パケットは順序付けられた配信で到着しないことになるために、潜在的に、集約接続を通るデータフローが行き詰まる可能性がある。これは、例えば関連する経路が、多くの複数のタイムアウト、あるいは各々の経路を通るデータフローの完全な停止によって影響を受ける場合に考えられる。
幸いなことに、冗長ストライピングポリシーを使用することにより、これらの問題は軽減することができる。特に、冗長ストライピングポリシーの一実施形態に従って、スケジューラモジュール80は、別の経路上に、タイムアウトを被った経路の輻輳ウィンドウ内の第1のデータパケットを冗長にストライピングするように構成されてよい。したがって、(旧い経路にも送信用のデータパケットが割り当てられているが)データパケットの結合は新しい経路に変更される。(例えば単純な再割り当ての代わりに)旧い経路の中のデータパケットのコピーを残すことによって、旧い経路は少なくとも1つのパケットをタイムアウトから回復するために送信することを必要とする。
(例えばリソースの可用性、リソースの特徴付け、目的機能性等)インテリジェンスのすべてまたはほとんどすべてが送信側並列通信トランシーバ内に常駐する実施形態が説明されてきた。しかしながら、インテリジェンスの大半の部分が、受信側並列通信トランシーバに、またはあらゆる中間ノードの中で分散されてよい。例えば、経路に沿った中間ネットワークリソース(例えば、ノード、レガシールータ、または別の並列通信トランシーバ)は、経路特性を直接的にまたは間接的に使用されてよい、ノードが認識する他のネットワークリソースについての情報を供給してよい。さらに、受信側並列通信トランシーバは、経路発見および経路特徴付けのタスクを実行してよく、送信側並列通信トランシーバは所望される目的を達成するために提供されている経路上で効果的にデータを送信するために、受信側並列通信トランシーバからの必要な情報をスケジューラモジュールに与えるために周期的に情報を要求してよい。したがって、要求されている演算能力とインプリメンテーションのための設置面積はネットワーク全体で分散されてよい。
図1は並列通信トランシーバ、接続およびエンドポイントの2つのセットを描いてきたが、関連する通信エンドポイントのためにネットワーク26を利用する目的で、任意の数の通信トランシーバをネットワーク26に組み合わせてよい。例えば、図3に描かれているように、企業WAN100のようなネットワークは、各々サンフランシスコ、アトランタ、シカゴおよびシアトルに位置する4つの遠隔オフィスサイト102、104、106および108によって代表されてよい。
該4つの遠隔オフィスサイト102、104、106および108は、各々並列通信トランシーバ110、112、114および116を含んでよい。さらに、該4つの遠隔オフィスサイト102、104、106および108の各々は、多くの通信エンドポイント(不図示)を接続するために、1つ以上のサブネットワーク118、120、122および124(例えばLANまたはWAN)を含んでよい。
各々のサイトのための並列通信トランシーバ110、112、114および116の各々は、通信リンク110、112、114、116、118および120によって表現される他のサイトへの直接的な接続を有してよい。通信リンク110から120の各々は、図1と図2に関して説明された実施形態に従って利用されてきた任意の数のネットワークリソースを備えてよい、トランシーバ110、112、114および116の各々の間のエンドツーエンド通信接続を表現してよい。
図3の例では、ネットワークリソースを集約しない既存のネットワーク管理技法は、特定のトラフィックノードに応じるためにネットワークのトポロジーを動的に改変する能力に欠けている。例えば、説明された実施形態のシステムおよび方法が使用されず、サイトの内の任意の2つの間のピーク帯域幅使用率が100Mbpsである場合を考える。並列通信トランシーバ110、112、114および116を使用しない場合は、リンク126から136にはピーク帯域幅要件を達成するために各サイト間で100Mbpsという帯域幅が与えられなければならない。
対照的に、各遠隔サイトに並列通信トランシーバ110、112、114、および116を設置することによって、サイト間で通路の各々を利用する能力が実現される。したがって、前記例では、完全に接続されたネットワークトポロジの場合、任意の2つのサイトの間に少なくとも3つの接続があるため、33.3Mbpsという帯域幅をサイトツーサイトリンクに与えるので十分である。
したがって、例示的な企業WANは、並列通信トランシーバ110、112、114および116の間に多くの経路を備える個々のリンクを、新しい単一の接続にさらに要約することによって複数の単一の仮想接続がさらに利用されてよいことを描いている。例えば、リンク126と128、132、および134と136によって形成される経路が、並列通信トランシーバ112と114の間の単一な仮想接続の中に分離されてよい3つの経路を形成する。リンク126、130、136および/または134、130、および128によって形成される経路等の他の経路も使用可能であってよいことが理解されなければならない。
例示的な企業WAN100は、リソース発見モジュール79(図2)によって発見された可能性がある中間並列通信トランシーバが、該中間並列通信トランシーバが送信側トランシーバによって公知の潜在的な要約経路のいずれかに沿ってパケットを再送信するように命令されてよいという点で特に貴重であることを描いている。これらの中間並列通信トランシーバは、要約経路に沿って「反射ポイント」として記述されてよい。例えば、トランシーバ112からトランシーバ114へデータを送信する際に、中間トランシーバ110と116は、トランシーバ114に直接的に、または他の中間トランシーバを通して(例えば経路126、130および136に沿って順次に、および中間トランシーバ110と116を通して)のいずれかでデータを通信するように命令されてよい。このルート命令は、例えば並列通信ヘッダに含まれてよい。
送信側並列通信トランシーバは(例えばIP−in−IPカプセル化、最小IPカプセル化、またはソースルーティングを使用して)中間並列通信トランシーバに、他の中間または宛先並列通信トランシーバであってよい他の公知の並列通信トランシーバにパケットを向けるように命令してよい。
並列通信の実施形態は、送信側並列通信トランシーバと受信側並列通信トランシーバの両方を有するとして概して説明されてきた。しかしながら、いくつかの実施形態では、受信側ノードに配信されるデータが並列通信トランシーバによって受信されることは必要ではない。むしろ、送信側並列通信トランシーバは目的関数を達成するために複数の経路上で受信側ノードで受信されるデータの送信のスケジューリングを行ってよく、この場合受信側ノードは宛先エンドポイント自体である。このような実施形態では、送信側並列通信トランシーバはそのリソース特徴付け方法で宛先エンドポイントと協調できない可能性があるため、経路特性は外部手段を通して(例えば外部構成を通して)送信側並列通信トランシーバによって学習されてよい。
説明されている並列通信の実施形態は並列データ経路上でデータを通信するための方法として説明されてよく、説明されたシステムの機能は並列データ経路上で効果的にデータを通信するために実行されてよい多くのステップを提供すると見なされてよい。
しかしながら、特に並列通信方法138のような方法は、ネットワーク26全体でデータを送信するために使用可能なリソースを発見するステップ140を含んでよい。例えば、リソースはノード、レガシールータ、または経路を形成してよい並列通信トランシーバ等の種々のネットワークエンティティであってよい。発見ステップ140は、受信側ノードに肯定応答パケットを送信するようにとの要求を備えるデータパケットをブロードキャストすることと、並列通信トランシーバであってよい受信側ノードから肯定応答パケットを受信することとを含んでよい。リソースは、外部ソースから提供される(例えば、ネットワークリソースから、または他の外部構成を通して送信される)リソース情報によって発見されてもよい。リソースはさらに、並列通信トランシーバであってよい送信側ノードと受信側ノードを発見するためにデータトラフィックをモニタすることによって発見されてよい。
リソースの発見時、これらの公知のリソースは該公知リソースにパケットを繰り返し送信することによって維持されてよい。したがって、公知の並列トランシーバのデータの送信を受信するための可用性が維持されてよい。該繰り返される送信は連続的に、周期的に、または任意の時間間隔で無作為に発生してよい。
ステップ142は、受信されたデータパケットからルート情報を収集することと、該抽出されたノード情報から送信側ノードと該受信側ノードの間の少なくとも1つの経路を要約することとを含んでよい。複数の要約された並列データ経路は送信側ノードと受信側ノードの単一の仮想接続を定めてよい。中間並列通信トランシーバはIP−in−IPカプセル化、最小カプセル化、またはソースルーティング等のルーティング規格を使用して経路に沿って他の公知の並列通信トランシーバにデータパケットを向けるように命令されてよい。
ステップ144は、経路ごとの機能性と接続ごとの機能性にネットワーク機能性を分断することを含んでよい。経路ごとの機能性は使用可能レート、遅延の推定、損失の推定、および輻輳制御を含んでよく、接続ごとの機能性はフロー制御、接続管理、および接続信頼性を含んでよい。分断はトリガに基づいてセッションを作成することも含んでよく、該セッションは経路ごとの機能性を維持するためのコアエンジンと、経路ごとの機能性を維持するための少なくとも1つの経路エンジンとを含む。データ構造は経路および接続ごとに維持されてよい。
ステップ146は、経路特性を繰り返し決定することによって複数の並列経路の各々を特徴付けることを含んでよい。特に、経路特性はある特定の経路で送信されるデータのために、帯域幅、遅延、ジッタ、損失率、コストおよびセキュリティの瞬間、平均、分散のいずれか1つの測定値であってよい。
ステップ148は、目的関数を達成するために複数の並列データ経路全体でデータの送信のスケジューリングを行うことを含んでよく、このスケジューリングは経路特性、高位の層のプロトコルまたは特定のアプリケーションに基づいてよい。目的関数は、帯域幅、遅延、ジッタ、損失、セキュリティ、障害許容力またはコストのレベルを接続に与えることを含んでよい。
スケジューリングステップは、複数の並列データ通信経路の各々で送信されるデータの到着時刻および/または到着確率を予測することと、次に所定の同期の程度の範囲内で受信側ノードのデータの到着時刻を同期させることも含んでよい。例えば、スケジューリングステップは、宛先で受信される複数の並列データ通信経路の第1の経路に沿ってデータの送信のスケジューリングを行うことを含んでよい。スケジューリングステップは、複数の並列データ通信経路の第2の経路に沿ってデータの第2の送信のスケジューリングを行うことも含んでよい。データの該第2の送信は、第1のパケットに関して所定のシーケンスで受信側ノードで受信されるようにスケジューリングされてよい。
ステップ150では、並列経路上で送信されるデータは、受信側ノードでは例えばオリジナルのデータ通信を形成するために集約演算され、再構築されてよい。例えば、データの受信された第1の送信と第2の送信は、所定のシーケンスから外れて第1の送信と第2の送信を受信したとき、および高位の層のプロトコルが、第1の送信と第2の送信が所定のシーケンスで配信されることを必要とすると判断したときにのみ再構築されてよい。
ステップ152では、受信された(および場合によっては再構築された)データが次に宛先エンドポイントに送信されてよい。
説明された並列通信システムおよび方法の実施形態は、多くの方法で配備されてよい。例えば、システムおよび方法は、エンドポイントクライアントとサーバ上のクライアントとサーバカーネルスペースソフトウェア上のユーザスペースライブラリとして、スタンドアロンネットワークエレメントとして、または埋め込まれたネットワークエレメントとして実現されてよい。
図1から図3の並列通信システムの実施形態はスタンドアロンネットワークエレメントを備える並列通信トランシーバの中のインプリメンテーションの例である。説明された並列通信システムのこの配備は、それが(利用されるネットワークリソースのいずれかの側でスタンドアロンネットワークエレメントを物理的に挿入するため以外)通信エンドポイントまたはレガシーネットワークインフラストラクチャに対する変更を必要としないという点で有利である場合がある。システムおよび方法は、中間並列通信トランシーバを有する通信エンドポイント間に存在する多数の経路を利用する。リソースを集める、および各エンドポイントで実行されるアプリケーションに単一のリソースの要約を実現する並列通信トランシーバの機能のために、既存のネットワークエレメントは再構成される、あるいは並列通信トランシーバの存在を認識することを必要とされない。
説明されたシステムおよび方法は、使用される特殊ネットワーク技術を選ばず、設置されている既存のネットワークアプリケーションに変更を必要としない。該システムおよび方法は、規定のネットワーク環境で可能な並列処理の程度を動的に特徴付けてよく、ネットワークを使用するアプリケーションに並列処理性能を届ける。該システムおよび方法は設定された目的関数に適応することができ、ネットワーク内のエンドシステムでの単純なソフトウェアダウンロードから、ネットワークエレメント自体と完全に統合されることに及ぶ柔軟な配備戦略を含む。
多くの変形および変型が前述の実施形態になされてよいことが強調される必要がある。すべてのこのような変型および変形は、本開示の範囲内でここに含まれ、以下の請求項によって保護されることを目的とする。
(関連出願の相互参照)
本願は、その全体として参照することにより組み込まれている、出願番号第60/546,034号を割り当てられ、2004年2月19日に出願された「通信システムの中の並列リソースを動的に発見し、特徴付けし、集約するための手法(Approaches to Dynamically Discover,Characterize,and Aggregate Parallel Resources In Communication Systems)」と題される米国仮特許出願に対する優先権およびその利点を主張する。
(関連出願の相互参照)
本願は、その全体として参照することにより組み込まれている、出願番号第60/546,034号を割り当てられ、2004年2月19日に出願された「通信システムの中の並列リソースを動的に発見し、特徴付けし、集約するための手法(Approaches to Dynamically Discover,Characterize,and Aggregate Parallel Resources In Communication Systems)」と題される米国仮特許出願に対する優先権およびその利点を主張する。
Claims (51)
- 並列データ経路上でデータを通信する方法であって、
経路特性を繰り返し決定することによって複数の並列データ経路の各々を特徴付け、前記複数の並列データ経路が送信側ノードと受信側ノードの単一の仮想接続を定めており、
目的関数を達成するために前記複数の並列データ経路のデータ送信のスケジューリングを行い、前記スケジューリングが前記経路特性に基づいている、
並列データ経路上でデータを通信する方法。 - データ送信のスケジューリングを行うことは、
前記受信側ノードで受信される前記複数の並列データ通信経路の第1の経路に沿ってデータの第1の送信のスケジューリングを行い、
前記複数の並列データ通信経路の第2の経路に沿ってデータの第2の送信のスケジューリングを行い、データの前記第2の送信が、前記第1のパケットに関連して所定のシーケンスで前記受信側ノードで受信されるようにスケジューリングされる、
ことをさらに含む、
請求項1に記載の方法。 - 前記所定のシーケンスから外れて前記第1の送信と第2の送信を受信するとき、および、
前記第1の送信と第2の送信が前記所定のシーケンスで配信されることを、高位の層のプロトコルが必要とすると判断するとき、
にのみ前記受信側ノードでデータの前記受信された第1の送信と第2の送信を再構築する、
ことをさらに含む請求項1に記載の方法。 - 前記複数の並列データ通信経路の各々で送信されるデータの到着時刻を予測する、
ことをさらに含む請求項1に記載の方法。 - 前記複数の並列データ通信経路の各々で送信されるデータの到着確率を予測する、
ことをさらに含む請求項4に記載の方法。 - 所定の同期の程度の範囲内で前記受信側ノードでデータの前記到着時刻を同期させる、
ことをさらに含む請求項4に記載の方法。 - 受信側並列通信トランシーバが肯定応答パケットを送信するための要求を備えるデータパケットをブロードキャストし
前記受信された並列通信トランシーバから肯定応答パケットを受信する、
ことをさらに含む請求項1に記載の方法。 - 前記受信側並列通信トランシーバへの少なくとも1つの経路を要約する、
ことをさらに含む請求項7に記載の方法。 - 送信側並列通信トランシーバと受信側並列通信トランシーバを発見するためにデータトラフィックをモニタし、
前記送信側並列通信トランシーバと前記受信側並列通信トランシーバの間で少なくとも1つの経路を要約する、
ことをさらに含む請求項1に記載の方法。 - ネットワーク機能性を経路ごとの機能性と接続ごとの機能性に要約する、
ことをさらに含む請求項1に記載の方法。 - トリガに基づいてセッションを作成し、前記セッションが、前記経路ごとの機能性を維持するコアエンジンと、前記経路ごとの機能性を維持する少なくとも1つの経路エンジンを含む、
ことをさらに含む請求項10に記載の方法。 - 前記複数の並列データ経路各々のためのデータ構造を維持する、
ことをさらに含む請求項10に記載の方法。 - 前記経路ごとの機能性が、使用可能レートの推定、遅延の推定、損失の推定、および輻輳制御から成るグループより選択される、
請求項10に記載の方法。 - 前記接続ごとの機能性は、フロー制御、接続管理および接続信頼性から成るグループより選択される、
請求項10に記載の方法。 - 前記目的関数は、スループット、帯域幅、遅延、ジッタ、損失率、セキュリティ、信頼性、障害許容力、またはコストの1つ以上のレベルとの仮想接続を提供している、
請求項1に記載の方法。 - 前記経路特性が、特定の経路上で送信されるデータのスループット、帯域幅、遅延、ジッタ、損失率、コスト、セキュリティ、信頼性、障害許容力、またはコストの瞬間、平均および分散の1つ以上の測定値である、
請求項1に記載の方法。 - スケジューリングを行うことが、さらに高位の層のネットワークプロトコルまたはアプリケーションの認識にさらに基づく、
請求項1に記載の方法。 - 複数の既知の並列通信トランシーバにパケットを繰り返し送信し、前記データの送信を受信するために前記既知の並列通信トランシーバの可用性を決定する、
ことをさらに含む請求項1に記載の方法。 - 中間並列通信トランシーバに、IP−in−IPカプセル化、最小IPカプセル化、およびソースルーティングから成るグループより選択されるルーティング規格を使用して他の既知の並列通信トランシーバにデータパケットを向けるように命令する、
ことをさらに含む請求項1に記載の方法。 - 前記複数の並列データ経路のデータ送信のスケジューリングを行うことは、
前記受信側ノードへの送信のためにデータのスケジューリングを行い、前記受信側ノードが並列通信トランシーバと宛先エンドポイントから成るグループより選択される、
ことをさらに含む請求項1に記載の方法。 - 並列データ経路上でデータを通信するシステムであって、
経路特性を繰り返し決定することにより複数の並列データ経路の各々を特徴付ける手段であって、前記複数の並列データ経路が、送信側ノードと受信側ノードの間の単一仮想接続を定める、手段と、
目的関数を成立させるために前記複数の並列データ経路全体でデータの前記送信のスケジューリングを行う手段であって、前記スケジューリングが前記経路特性に基づく手段と、
を備えるシステム。 - 前記送信データのスケジューリングを行う手段が、
前記受信側ノードで受信される前記複数の並列データ通信経路の第1の経路に沿ってデータの第1の送信のスケジューリングを行う手段と、
前記複数の並列データ通信経路の内の第2の経路に従ってデータの第2の送信のスケジューリングを行う手段であって、データの前記第2の送信が、前記第1のパケットに関連して所定のシーケンスで前記受信側ノードで受信されるようにスケジューリングを行う、手段と、
をさらに含む請求項21に記載のシステム。 - 前記所定のシーケンスから外れて前記第1の送信および第2の送信を受信するとき、および、
高位の層のプロトコルが、前記第1の送信と第2の送信が、前記所定のシーケンスで配送されると判断するとき、
にのみ前記受信側ノードでデータの前記受信された第1の送信と第2の送信を再構築する手段、
をさらに含む請求項21に記載のシステム。 - 前記複数の並列データ通信経路の各々で送信されるデータの到着時刻を予測する手段、
をさらに含む請求項21に記載のシステム。 - 前記複数の並列データ通信経路の各々で送信されるデータの到着確率を予測する手段、
をさらに含む請求項24に記載のシステム。 - 所定の程度の同期範囲内で前記受信側ノードの前記到着時刻を同期させる手段、
をさらに含む請求項24に記載のシステム。 - 受信側並列通信トランシーバが肯定応答パケットを送信するための要求を備えるデータパケットをブロードキャストする手段と、
前記受信側並列通信トランシーバから肯定応答パケットを受信する手段と、
をさらに含む請求項21に記載のシステム。 - 前記受信側並列通信トランシーバへの少なくとも1つの経路を要約する手段、
をさらに含む請求項27に記載のシステム。 - 送信側並列通信トランシーバと受信側並列通信トランシーバを発見するためにデータトラフィックをモニタする手段と、
前記送信側並列通信トランシーバと前記受信側並列通信トランシーバの間で少なくとも1つの経路を要約する手段と、
をさらに含む請求項21に記載のシステム。 - 経路ごとの機能性および接続ごとの機能性にネットワーク機能性を分断する手段、
をさらに含む請求項21に記載のシステム。 - トリガに基づいてセッションを作成する手段をさらに含み、
前記セッションが前記経路ごとの機能性を維持するコアエンジンと、前記経路ごとの機能性を維持する少なくとも1つの経路エンジンと、を含む、
請求項30に記載のシステム。 - 前記複数の並列データ経路の各々のためにデータ構造を維持する手段、
をさらに含む請求項30に記載のシステム。 - スケジューリングを行う手段が、さらに高位の層のネットワークプロトコルまたはアプリケーションに関する認識に基づいている請求項22に記載のシステム。
- 複数の既知の並列通信トランシーバにパケットを繰り返し送信し、前記データの前記送信を受信するために、前記既知の並列通信トランシーバの可用性を決定する手段、
をさらに含む請求項21に記載のシステム。 - 中間並列通信トランシーバに、IP−in−IPカプセル化、最小カプセル化、およびソースルーティングから成るグループより選択されるルーティング規格を使用して他の既知の並列通信トランシーバに、データパケットを向けるように命令する手段、
をさらに含む請求項21に記載のシステム。 - 前記複数の並列データ経路全体でデータの前記送信のスケジューリングを行う前記手段が、
前記受信側ノードへの送信のために前記データのスケジューリングを行う手段、
をさらに含み、
前記受信側ノードが、並列通信トランシーバと宛先エンドポイントから成る前記グループより選択される、
請求項20に記載のシステム。 - 並列データ経路上でデータを通信するシステムであって、
命令実行システムから命令をフェッチし、実行するように構成されるプロセッサを備え、
前記命令が、
経路特性を繰り返し決定することによって複数の並列データ経路の各々を特徴付ける命令であって、前記複数の並列データ経路が送信側ノードと受信側ノードの間で単一の仮想接続を定める、命令と、
目的関数を達成するために前記複数の並列データ経路全体でデータの前記送信のスケジューリングを行う命令であって、前記スケジューリングが前記経路特性に基づく、命令と、
を含み、
前記送信のスケジューリングを行う前記命令が、
前記受信側ノードで受信される前記複数の並列データ通信経路の内の第1の経路に沿ってデータの第1の送信のスケジューリングを行う命令と、
前記複数の並列データ通信経路の第2の経路に沿ってデータの第2の送信のスケジューリングを行う命令であって、データの前記第2の送信が前記第1のパケットに関連して所定のシーケンスで前記受信側ノードで受信される、命令と、
をさらに含む、
システム。 - 前記命令が、
前記所定のシーケンスから外れて前記第1の送信と第2の送信を受信するとき、および、
高位の層のプロトコルが、前記第1の送信と第2の送信が前記所定のシーケンスで送達されることを必要とすると判断するとき、
にのみ前記受信側ノードでデータの前記受信された第1の送信と第2の送信を再構築する命令、
をさらに含む、
請求項37に記載のシステム。 - 前記命令が、
前記複数の並列データ通信経路の各々で送信されるデータの到着時刻を予測する命令、
をさらに含む
請求項37に記載のシステム。 - 前記命令が、
前記複数の並列データ通信経路の各々で送信されるデータの到着確率を予測する命令、
をさらに含む、
請求項39に記載のシステム。 - 前記命令が、
所定の同期程度の範囲内で前記受信側ノードでデータの前記到着時刻を同期する命令、
をさらに含む、
請求項39に記載のシステム。 - 前記命令が、
受信側並列通信トランシーバが肯定応答パケットを送信するための要求を備えるデータパケットをブロードキャストする命令と、
前記受信側並列通信トランシーバから肯定応答パケットを受信する命令と、
をさらに含む、
請求項37に記載のシステム。 - 前記命令が、
前記受信側並列通信トランシーバへの少なくとも1つの経路を要約する命令、
をさらに含む、
請求項42に記載のシステム。 - 前記命令が、
送信側並列通信トランシーバと受信側並列通信トランシーバを発見するためにデータトラフィックをモニタする命令と、
前記送信側並列通信トランシーバと前記受信側並列通信トランシーバの間の少なくとも1つの経路を要約する命令と、
をさらに含む、
請求項37に記載のシステム。 - 前記命令が、
ネットワーク機能性を経路ごとの機能性と接続ごとの機能性に分断する命令、
をさらに含む、
請求項37に記載のシステム。 - 前記命令が、
トリガに基づいてセッションを作成する命令、
をさらに含み、
前記セッションが前記経路ごとの機能性を維持するコアエンジンと、前記経路ごとの機能性を維持する少なくとも1つの経路エンジンと、を含む、
請求項45に記載のシステム。 - 前記命令が、
前記複数の並列データ経路の各々のためのデータ構造を維持する命令、
をさらに含む、
請求項45に記載のシステム。 - 前記複数の並列データ経路全体でデータの送信のスケジューリングを行う前記命令が、高位の層のネットワークプロトコルまたはアプリケーションの認識にさらに基づく請求項37に記載のシステム。
- 前記命令が、
複数の既知の並列通信トランシーバに繰り返しパケットを送信する命令、
をさらに含み、
前記データの前記送信を受信するために前記既知の並列通信トランシーバの可用性を決定する、
請求項37に記載のシステム。 - 前記命令が、
IP−in−IPカプセル化、最小IPカプセル化、およびソースルーティングから成るグループより選択されるルーティング規格を使用して他の既知の並列通信トランシーバにデータパケットを向ける命令、
をさらに含む、
請求項37に記載のシステム。 - 前記複数のデータ経路全体でデータの前記送信のスケジューリングを行う前記命令が、
前記受信側ノードへの送信のために前記データのスケジューリングを行う命令、
をさらに含み、
前記受信側ノードが並列通信トランシーバと宛先エンドポイントとから成る前記グループより選択される、
請求項37に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US54603404P | 2004-02-19 | 2004-02-19 | |
PCT/US2005/005509 WO2005079534A2 (en) | 2004-02-19 | 2005-02-22 | Systems and methods for parallel communication |
US11/063,284 US9621384B2 (en) | 2004-02-19 | 2005-02-22 | Systems and methods for communicating data over parallel data paths |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007527170A true JP2007527170A (ja) | 2007-09-20 |
Family
ID=34864054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006554278A Withdrawn JP2007527170A (ja) | 2004-02-19 | 2005-02-22 | 並列通信のためのシステムおよび方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9621384B2 (ja) |
EP (1) | EP1738493A4 (ja) |
JP (1) | JP2007527170A (ja) |
KR (1) | KR20070011315A (ja) |
AU (1) | AU2005215043A1 (ja) |
CA (1) | CA2556420A1 (ja) |
IL (1) | IL177489A0 (ja) |
WO (1) | WO2005079534A2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2071781A2 (en) | 2007-12-06 | 2009-06-17 | Sony Corporation | Communication control method, communication apparatus and communication system |
JP2014501076A (ja) * | 2010-11-15 | 2014-01-16 | アルカテル−ルーセント | ノード間で集約された接続を用いるパケット交換ネットワークでマスタークロックとスレーブクロックを同期するための方法、および関連付けられた同期デバイス |
JP2020502948A (ja) * | 2016-12-21 | 2020-01-23 | デジェロ ラブス インコーポレイテッド | パケット伝送システムおよび方法 |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006060579A (ja) * | 2004-08-20 | 2006-03-02 | Fujitsu Ltd | アプリケーション特性に応じて複数の経路を同時に利用する通信装置 |
US8660112B2 (en) * | 2004-12-27 | 2014-02-25 | Telefonaktiebolaget L M Ericsson (Publ) | Adaptive router architecture using logical internal addressing |
US7626994B2 (en) * | 2005-11-14 | 2009-12-01 | Broadcom Corporation | Multiple node applications cooperatively managing a plurality of packet switched network pathways |
US20070110034A1 (en) * | 2005-11-14 | 2007-05-17 | Broadcom Corporation, A California Corporation | Pathways analysis and control in packet and circuit switched communication networks |
US8274970B2 (en) * | 2005-11-14 | 2012-09-25 | Broadcom Corporation | Voice communication device with PSTN and internet pathway analysis, selection and handoff |
US8483100B2 (en) * | 2005-11-14 | 2013-07-09 | Broadcom Corporation | Communication device supporting both internet and public switched telephone network telephony |
TWI425790B (zh) * | 2005-11-14 | 2014-02-01 | Broadcom Corp | 通信架構 |
US20070226347A1 (en) * | 2006-03-23 | 2007-09-27 | Chu Hsiao-Keng J | Method and apparatus for dynamically changing the TCP behavior of a network connection |
US7657782B2 (en) | 2006-06-08 | 2010-02-02 | International Business Machines Corporation | Creating and managing multiple virtualized remote mirroring session consistency groups |
JP4684201B2 (ja) * | 2006-09-28 | 2011-05-18 | 京セラ株式会社 | 通信制御装置及び方法 |
FR2926940B1 (fr) * | 2008-01-29 | 2010-06-11 | Alcatel Lucent | Procede pour controler l'etablissement d'une connexion dans un reseau optique. |
EP2101424B1 (de) * | 2008-03-10 | 2013-02-27 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zur optischen Übertragung von Daten |
US9660912B2 (en) | 2010-02-19 | 2017-05-23 | Thomson Licensing | Control of packet transfer through a multipath session comprising a single congestion window |
US9455897B2 (en) * | 2010-04-06 | 2016-09-27 | Qualcomm Incorporated | Cooperative bandwidth aggregation using multipath transport |
CA2737107C (en) * | 2010-04-13 | 2019-08-27 | Jingyuan Wang | Tcp congestion control for heterogeneous networks |
KR20120045869A (ko) * | 2010-11-01 | 2012-05-09 | 삼성테크윈 주식회사 | 데이터 통신 시스템 및 그 통신 제어 방법 |
US9225791B2 (en) * | 2011-02-28 | 2015-12-29 | Red Hat, Inc. | Staged data migration between data sources and cloud-based storage network |
TWI482501B (zh) * | 2012-01-05 | 2015-04-21 | Ambarella Taiwan Ltd | 可調性視訊多層編碼控制快速決策模式演算法 |
WO2013105978A1 (en) * | 2012-01-13 | 2013-07-18 | Intel Corporation | Allocation of flow control credits for high performance devices |
US9806835B2 (en) | 2012-02-09 | 2017-10-31 | Marvell International Ltd. | Clock synchronization using multiple network paths |
CN102595509B (zh) * | 2012-04-09 | 2014-06-18 | 西安电子科技大学 | 异构网络中基于传输控制协议的并发数据分流方法 |
EP2684398A4 (en) | 2012-05-17 | 2015-05-13 | Liveu Ltd | MULTIMODEM COMMUNICATION USING VIRTUAL IDENTITY MODULES |
WO2014040628A1 (en) * | 2012-09-13 | 2014-03-20 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for node realignment in a telecommunications network |
US9338733B1 (en) * | 2012-10-15 | 2016-05-10 | Marvell International Ltd. | Method and apparatus for determining the availability of a first device in a wireless network to provide a service to a second device within the wireless network |
US9286047B1 (en) | 2013-02-13 | 2016-03-15 | Cisco Technology, Inc. | Deployment and upgrade of network devices in a network environment |
US10833993B2 (en) | 2014-03-28 | 2020-11-10 | Weigel Broadcasting Co. | Channel bonding |
EP2945416B1 (en) * | 2014-05-13 | 2018-04-11 | Cellxion Limited | Method and apparatus for transmission of data over a plurality of networks |
US10986029B2 (en) | 2014-09-08 | 2021-04-20 | Liveu Ltd. | Device, system, and method of data transport with selective utilization of a single link or multiple links |
WO2016038611A1 (en) * | 2014-09-08 | 2016-03-17 | Liveu Ltd. | Methods and systems for managing bonded communications across multiple communication networks |
TWI559775B (zh) * | 2015-02-04 | 2016-11-21 | 林孟賢 | 網路協同演奏系統 |
TWI572237B (zh) * | 2015-03-24 | 2017-02-21 | A method of initializing and establishing a connection to the surrounding device | |
US10374904B2 (en) | 2015-05-15 | 2019-08-06 | Cisco Technology, Inc. | Diagnostic network visualization |
US9800497B2 (en) | 2015-05-27 | 2017-10-24 | Cisco Technology, Inc. | Operations, administration and management (OAM) in overlay data center environments |
US10142353B2 (en) | 2015-06-05 | 2018-11-27 | Cisco Technology, Inc. | System for monitoring and managing datacenters |
US9967158B2 (en) | 2015-06-05 | 2018-05-08 | Cisco Technology, Inc. | Interactive hierarchical network chord diagram for application dependency mapping |
US10536357B2 (en) | 2015-06-05 | 2020-01-14 | Cisco Technology, Inc. | Late data detection in data center |
CN105682150A (zh) * | 2016-02-25 | 2016-06-15 | 努比亚技术有限公司 | 多链路智能分流方法及移动终端 |
AU2017250805B2 (en) | 2016-04-15 | 2018-11-08 | BR Invention Holding, LLC | Mobile medicine communication platform and methods and uses thereof |
US10171357B2 (en) | 2016-05-27 | 2019-01-01 | Cisco Technology, Inc. | Techniques for managing software defined networking controller in-band communications in a data center network |
US10931629B2 (en) | 2016-05-27 | 2021-02-23 | Cisco Technology, Inc. | Techniques for managing software defined networking controller in-band communications in a data center network |
US10142262B2 (en) * | 2016-05-31 | 2018-11-27 | Anchorfree Inc. | System and method for improving an aggregated throughput of simultaneous connections |
US10289438B2 (en) | 2016-06-16 | 2019-05-14 | Cisco Technology, Inc. | Techniques for coordination of application components deployed on distributed virtual machines |
US10708183B2 (en) | 2016-07-21 | 2020-07-07 | Cisco Technology, Inc. | System and method of providing segment routing as a service |
KR102568436B1 (ko) * | 2016-07-28 | 2023-08-21 | 삼성전자 주식회사 | 무선 통신 시스템에서 데이터의 전송 방법 및 장치 |
US10972388B2 (en) | 2016-11-22 | 2021-04-06 | Cisco Technology, Inc. | Federated microburst detection |
US10601710B2 (en) * | 2017-03-15 | 2020-03-24 | Qualcomm Incorporated | IP level multipath protocol |
US10708152B2 (en) | 2017-03-23 | 2020-07-07 | Cisco Technology, Inc. | Predicting application and network performance |
US10523512B2 (en) | 2017-03-24 | 2019-12-31 | Cisco Technology, Inc. | Network agent for generating platform specific network policies |
US10250446B2 (en) | 2017-03-27 | 2019-04-02 | Cisco Technology, Inc. | Distributed policy store |
US10594560B2 (en) | 2017-03-27 | 2020-03-17 | Cisco Technology, Inc. | Intent driven network policy platform |
US10764141B2 (en) | 2017-03-27 | 2020-09-01 | Cisco Technology, Inc. | Network agent for reporting to a network policy system |
US10873794B2 (en) | 2017-03-28 | 2020-12-22 | Cisco Technology, Inc. | Flowlet resolution for application performance monitoring and management |
WO2018203336A1 (en) | 2017-05-04 | 2018-11-08 | Liveu Ltd. | Device, system, and method of pre-processing and data delivery for multi-link communications and for media content |
IL269277B2 (en) | 2017-05-18 | 2023-09-01 | Liveu Ltd | Device, system and method for multi-channel wireless communication for a vehicle |
KR101983088B1 (ko) * | 2017-06-23 | 2019-05-31 | (주)넷비젼텔레콤 | 다중 경로 환경에서의 udp 패킷 처리 방법 |
US10680887B2 (en) | 2017-07-21 | 2020-06-09 | Cisco Technology, Inc. | Remote device status audit and recovery |
US11310853B2 (en) * | 2017-09-29 | 2022-04-19 | Nokia Technologies Oy | Multi-path data communications |
US10554501B2 (en) | 2017-10-23 | 2020-02-04 | Cisco Technology, Inc. | Network migration assistant |
US10523541B2 (en) | 2017-10-25 | 2019-12-31 | Cisco Technology, Inc. | Federated network and application data analytics platform |
US10594542B2 (en) | 2017-10-27 | 2020-03-17 | Cisco Technology, Inc. | System and method for network root cause analysis |
US11233821B2 (en) | 2018-01-04 | 2022-01-25 | Cisco Technology, Inc. | Network intrusion counter-intelligence |
US11765046B1 (en) | 2018-01-11 | 2023-09-19 | Cisco Technology, Inc. | Endpoint cluster assignment and query generation |
US10999149B2 (en) | 2018-01-25 | 2021-05-04 | Cisco Technology, Inc. | Automatic configuration discovery based on traffic flow data |
US10917438B2 (en) | 2018-01-25 | 2021-02-09 | Cisco Technology, Inc. | Secure publishing for policy updates |
US10798015B2 (en) | 2018-01-25 | 2020-10-06 | Cisco Technology, Inc. | Discovery of middleboxes using traffic flow stitching |
US10574575B2 (en) | 2018-01-25 | 2020-02-25 | Cisco Technology, Inc. | Network flow stitching using middle box flow stitching |
US10826803B2 (en) | 2018-01-25 | 2020-11-03 | Cisco Technology, Inc. | Mechanism for facilitating efficient policy updates |
US10873593B2 (en) | 2018-01-25 | 2020-12-22 | Cisco Technology, Inc. | Mechanism for identifying differences between network snapshots |
US11128700B2 (en) | 2018-01-26 | 2021-09-21 | Cisco Technology, Inc. | Load balancing configuration based on traffic flow telemetry |
JP7053033B2 (ja) * | 2018-10-11 | 2022-04-12 | 株式会社東芝 | 無線通信装置および方法 |
KR101986154B1 (ko) | 2018-11-27 | 2019-06-05 | 주식회사 팜팜랩스 | 다수의 모듈을 구비하는 임베디드 시스템 및 모듈 관리 방법 |
US11303582B1 (en) * | 2019-06-28 | 2022-04-12 | Amazon Technologies, Inc. | Multi-layer network for metric aggregation |
US20210126854A1 (en) * | 2019-10-23 | 2021-04-29 | Arista Networks, Inc. | Tcp performance model based in-band network telemetry |
US11228528B2 (en) | 2020-03-04 | 2022-01-18 | Arista Networks, Inc. | Adaptive load balancing between routers in wan overlay networks using telemetry information |
US11665087B2 (en) | 2021-09-15 | 2023-05-30 | International Business Machines Corporation | Transparent service-aware multi-path networking with a feature of multiplexing |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US36063A (en) * | 1862-07-29 | Improvement in ventilators for railroad-cars | ||
US4247817A (en) * | 1978-05-15 | 1981-01-27 | Teradyne, Inc. | Transmitting electrical signals with a transmission time independent of distance between transmitter and receiver |
US4660197A (en) * | 1985-11-01 | 1987-04-21 | Teradyne, Inc. | Circuitry for synchronizing a multiple channel circuit tester |
US4740954A (en) * | 1986-12-31 | 1988-04-26 | Bell Communications Research, Inc. | Multicast routing algorithm |
US4816750A (en) * | 1987-01-16 | 1989-03-28 | Teradyne, Inc. | Automatic circuit tester control system |
US4875210A (en) * | 1988-01-06 | 1989-10-17 | Teradyne, Inc. | Automatic circuit tester control system |
US5065396A (en) * | 1990-01-02 | 1991-11-12 | At&T Bell Laboratories | Inverse multiplexer and demultiplexer techniques |
US5280474A (en) * | 1990-01-05 | 1994-01-18 | Maspar Computer Corporation | Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays |
KR960003505B1 (ko) * | 1992-12-29 | 1996-03-14 | 재단법인 한국전자통신연구소 | 에이티엠(atm) 다중화 처리 장치 |
US5617417A (en) * | 1994-09-07 | 1997-04-01 | Stratacom, Inc. | Asynchronous transfer mode communication in inverse multiplexing over multiple communication links |
US5608733A (en) * | 1994-11-29 | 1997-03-04 | Valle; Richard | ATM inverse multiplexing |
FR2727818B1 (fr) * | 1994-12-01 | 1997-01-10 | Cit Alcatel | Procede d'acheminement de cellules dans un reseau de commutation a multiplexage temporel asynchrone, reseau, commutateur d'entree et application correspondants |
MY123040A (en) * | 1994-12-19 | 2006-05-31 | Salbu Res And Dev Proprietary Ltd | Multi-hop packet radio networks |
DE69517604T2 (de) * | 1995-03-16 | 2001-02-22 | Teradyne Inc | Zeitgeber mit mehreren kohärenten synchronisierten takten |
US5657486A (en) * | 1995-12-07 | 1997-08-12 | Teradyne, Inc. | Automatic test equipment with pipelined sequencer |
US5717704A (en) * | 1996-04-16 | 1998-02-10 | Ltx Corporation | Test system including a local trigger signal generator for each of a plurality of test instruments |
JPH09288153A (ja) * | 1996-04-19 | 1997-11-04 | Advantest Corp | 半導体試験装置 |
US6101543A (en) * | 1996-10-25 | 2000-08-08 | Digital Equipment Corporation | Pseudo network adapter for frame capture, encapsulation and encryption |
US6335927B1 (en) * | 1996-11-18 | 2002-01-01 | Mci Communications Corporation | System and method for providing requested quality of service in a hybrid network |
US5875192A (en) * | 1996-12-12 | 1999-02-23 | Pmc-Sierra Ltd. | ATM inverse multiplexing system |
US5956341A (en) * | 1996-12-13 | 1999-09-21 | International Business Machines Corporation | Method and system for optimizing data transmission line bandwidth occupation in a multipriority data traffic environment |
US6094683A (en) * | 1997-08-29 | 2000-07-25 | Intel Corporation | Link bundling in a network |
US6134246A (en) * | 1998-01-26 | 2000-10-17 | Samsung Electronics Co., Ltd. | Inverse multiplexing within asynchronous transfer mode communication networks |
JP3581251B2 (ja) * | 1998-06-16 | 2004-10-27 | 株式会社東芝 | 通信システム、データパケット転送方法、ルータ装置及びパケット中継装置 |
US6594238B1 (en) * | 1998-06-19 | 2003-07-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for dynamically adapting a connection state in a mobile communications system |
US6188253B1 (en) * | 1998-10-07 | 2001-02-13 | Robert Bruce Gage | Analog clock module |
US6370579B1 (en) * | 1998-10-21 | 2002-04-09 | Genuity Inc. | Method and apparatus for striping packets over parallel communication links |
US6275962B1 (en) * | 1998-10-23 | 2001-08-14 | Teradyne, Inc. | Remote test module for automatic test equipment |
US6389525B1 (en) * | 1999-01-08 | 2002-05-14 | Teradyne, Inc. | Pattern generator for a packet-based memory tester |
US6553529B1 (en) * | 1999-07-23 | 2003-04-22 | Teradyne, Inc. | Low cost timing system for highly accurate multi-modal semiconductor testing |
US6404752B1 (en) * | 1999-08-27 | 2002-06-11 | International Business Machines Corporation | Network switch using network processor and methods |
WO2001020829A1 (en) * | 1999-09-14 | 2001-03-22 | Megaxess, Inc. | Method and apparatus for prevention of congestion in atm networks through atm protection switching |
US7151775B1 (en) * | 1999-09-23 | 2006-12-19 | Pluris, Inc. | Apparatus and method for forwarding data on multiple label-switched data paths |
US6625161B1 (en) * | 1999-12-14 | 2003-09-23 | Fujitsu Limited | Adaptive inverse multiplexing method and system |
WO2002005495A1 (en) * | 2000-07-06 | 2002-01-17 | British Telecommunications Public Limited Company | Packet routing |
US20050088977A1 (en) * | 2000-12-14 | 2005-04-28 | Nortel Networks Limited | Dynamic virtual private network (VPN) tunnel quality of service (QoS) treatment |
US6553030B2 (en) * | 2000-12-28 | 2003-04-22 | Maple Optical Systems Inc. | Technique for forwarding multi-cast data packets |
US7433942B2 (en) * | 2001-02-27 | 2008-10-07 | Intel Corporation | Network management |
US6625172B2 (en) * | 2001-04-26 | 2003-09-23 | Joseph P. Odenwalder | Rescheduling scheduled transmissions |
FI110464B (fi) * | 2001-04-26 | 2003-01-31 | Nokia Corp | IP-tietoturva ja liikkuvat verkkoyhteydet |
US6839862B2 (en) * | 2001-05-31 | 2005-01-04 | Koninklijke Philips Electronics N.V. | Parallel data communication having skew intolerant data groups |
US7012893B2 (en) * | 2001-06-12 | 2006-03-14 | Smartpackets, Inc. | Adaptive control of data packet size in networks |
US8000241B2 (en) * | 2001-06-26 | 2011-08-16 | Qualcomm Incorporated | Methods and apparatus for controlling access link packet flow aggregation and resource allocation in a mobile communications system |
US20030026267A1 (en) * | 2001-07-31 | 2003-02-06 | Oberman Stuart F. | Virtual channels in a network switch |
US20030048792A1 (en) * | 2001-09-04 | 2003-03-13 | Qq Technology, Inc. | Forwarding device for communication networks |
KR100464447B1 (ko) * | 2001-12-11 | 2005-01-03 | 삼성전자주식회사 | 이동통신시스템에서 서비스 품질에 따른 데이터 패킷의 스케줄링 방법 및 장치 |
US6842446B2 (en) * | 2002-04-19 | 2005-01-11 | Sprint Communications Company L.P. | Method and system for increasing data rate in wireless communications through aggregation of data sessions |
US6966019B2 (en) * | 2002-06-28 | 2005-11-15 | Teradyne, Inc. | Instrument initiated communication for automatic test equipment |
US6822498B1 (en) * | 2003-06-12 | 2004-11-23 | Teradyne, Inc. | Clock distribution system for automatic test equipment |
CN100505677C (zh) * | 2003-06-19 | 2009-06-24 | 三菱电机株式会社 | 无线基站装置和移动通信系统 |
US7064616B2 (en) * | 2003-12-29 | 2006-06-20 | Teradyne, Inc. | Multi-stage numeric counter oscillator |
US9313658B2 (en) * | 2007-09-04 | 2016-04-12 | Industrial Technology Research Institute | Methods and devices for establishing security associations and performing handoff authentication in communications systems |
-
2005
- 2005-02-22 AU AU2005215043A patent/AU2005215043A1/en not_active Abandoned
- 2005-02-22 US US11/063,284 patent/US9621384B2/en active Active
- 2005-02-22 EP EP05723439A patent/EP1738493A4/en not_active Withdrawn
- 2005-02-22 KR KR1020067019287A patent/KR20070011315A/ko not_active Application Discontinuation
- 2005-02-22 CA CA002556420A patent/CA2556420A1/en not_active Abandoned
- 2005-02-22 WO PCT/US2005/005509 patent/WO2005079534A2/en active Application Filing
- 2005-02-22 JP JP2006554278A patent/JP2007527170A/ja not_active Withdrawn
-
2006
- 2006-08-15 IL IL177489A patent/IL177489A0/en unknown
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2071781A2 (en) | 2007-12-06 | 2009-06-17 | Sony Corporation | Communication control method, communication apparatus and communication system |
US7924877B2 (en) | 2007-12-06 | 2011-04-12 | Sony Corporation | Communication control method, communication apparatus, and communication system |
US8467414B2 (en) | 2007-12-06 | 2013-06-18 | Sony Corporation | Communication control method, communication apparatus, and communication system |
JP2014501076A (ja) * | 2010-11-15 | 2014-01-16 | アルカテル−ルーセント | ノード間で集約された接続を用いるパケット交換ネットワークでマスタークロックとスレーブクロックを同期するための方法、および関連付けられた同期デバイス |
JP2020502948A (ja) * | 2016-12-21 | 2020-01-23 | デジェロ ラブス インコーポレイテッド | パケット伝送システムおよび方法 |
US11438265B2 (en) | 2016-12-21 | 2022-09-06 | Dejero Labs Inc. | Packet transmission system and method |
JP7173587B2 (ja) | 2016-12-21 | 2022-11-16 | デジェロ ラブス インコーポレイテッド | パケット伝送システムおよび方法 |
US11876711B2 (en) | 2016-12-21 | 2024-01-16 | Dejero Labs Inc. | Packet transmission system and method |
Also Published As
Publication number | Publication date |
---|---|
EP1738493A2 (en) | 2007-01-03 |
WO2005079534A3 (en) | 2007-04-26 |
US9621384B2 (en) | 2017-04-11 |
CA2556420A1 (en) | 2005-09-01 |
US20050185621A1 (en) | 2005-08-25 |
KR20070011315A (ko) | 2007-01-24 |
EP1738493A4 (en) | 2012-02-22 |
IL177489A0 (en) | 2008-03-20 |
WO2005079534A2 (en) | 2005-09-01 |
AU2005215043A1 (en) | 2005-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007527170A (ja) | 並列通信のためのシステムおよび方法 | |
US10887159B2 (en) | Methods and systems for detecting path break conditions while minimizing network overhead | |
US10341237B2 (en) | Flow-based adaptive private network with multiple WAN-paths | |
US7643427B2 (en) | Multipath routing architecture for large data transfers | |
US9660912B2 (en) | Control of packet transfer through a multipath session comprising a single congestion window | |
EP2671352B1 (en) | System and method for aggregating and estimating the bandwidth of multiple network interfaces | |
US20210297350A1 (en) | Reliable fabric control protocol extensions for data center networks with unsolicited packet spraying over multiple alternate data paths | |
JP5867188B2 (ja) | 情報処理装置、輻輳制御方法および輻輳制御プログラム | |
WO2014077905A1 (en) | Multi-hop error recovery | |
US8520520B2 (en) | System and method for per flow guaranteed throughput, multiple TCP flow bandwidth provisioning, and elimination of packet drops for transmission control protocol (TCP) and TCP-friendly protocols | |
US20210297351A1 (en) | Fabric control protocol with congestion control for data center networks | |
Natarajan et al. | Non-renegable selective acknowledgments (NR-SACKs) for SCTP | |
US20220294727A1 (en) | Systems and methods for managing data packet communications | |
US20190116000A1 (en) | Transport layer identifying failure cause and mitigation for deterministic transport across multiple deterministic data links | |
US20070291782A1 (en) | Acknowledgement filtering | |
Alipio et al. | TCP incast solutions in data center networks: A classification and survey | |
US20240098155A1 (en) | Systems and methods for push-based data communications | |
US20210297343A1 (en) | Reliable fabric control protocol extensions for data center networks with failure resilience | |
Shamszaman et al. | Feasibility considerations of multipath TCP in dealing with big data application | |
Rathnayaka et al. | Wireless sensor networks: Challenges ahead | |
WO2023093804A1 (zh) | 一种丢包管理方法及相关装置 | |
Venkataraman et al. | A priority-layered approach to transport for high bandwidth-delay product networks | |
Saka | Ethernet for the ATLAS Second Level Trigger | |
CN114760358A (zh) | 区分实时和非实时数据流的应用层自适应数据转发系统 | |
NAGESH et al. | Controlling the Packet Loss using Tokens Based Approach for Network Edge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080222 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A073 Effective date: 20080729 |
|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080805 |