JP2010022001A - トンネルのトランスポートチャネル上のデータストリームの送信を管理する方法、対応するトンネル終点及びコンピュータ読み取り可能な記憶媒体 - Google Patents

トンネルのトランスポートチャネル上のデータストリームの送信を管理する方法、対応するトンネル終点及びコンピュータ読み取り可能な記憶媒体 Download PDF

Info

Publication number
JP2010022001A
JP2010022001A JP2009162185A JP2009162185A JP2010022001A JP 2010022001 A JP2010022001 A JP 2010022001A JP 2009162185 A JP2009162185 A JP 2009162185A JP 2009162185 A JP2009162185 A JP 2009162185A JP 2010022001 A JP2010022001 A JP 2010022001A
Authority
JP
Japan
Prior art keywords
tunnel
acknowledgment
stream
packet
loss
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
JP2009162185A
Other languages
English (en)
Other versions
JP5005003B2 (ja
Inventor
Pascal Viger
ヴィジェ パスカル
Stephane Baron
バロン ステファン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Publication of JP2010022001A publication Critical patent/JP2010022001A/ja
Application granted granted Critical
Publication of JP5005003B2 publication Critical patent/JP5005003B2/ja
Expired - Fee Related 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】トンネルの輻輳検出時、伝送ビットレートの管理を制御できるトランスポートチャネル上のデータストリームの送信を管理する方法を提供する。
【解決手段】送信側デバイスから受信側デバイスに送信される各ストリームの送信は、トランスポートプロトコルに従って確認応答と共にトランスポートチャネル上に実行され、送信側デバイス及び受信側デバイスのうち、一方のデバイスに接続される第1のサブネットワーク及び、他方のデバイスに接続される第2のサブネットワークにそれぞれ接続される第1のトンネル終点と第2のトンネル終点との間に実現され、第1のトンネル終点により、トンネルのトランスポートチャネル上のパケットの損失を検出し、損失によりブロックされたパケットを有するストリームを識別し、識別されたストリームに対して、損失によりブロックされたパケットを送信した送信側デバイスに、トンネル上に確認応答を生成及び送信する。
【選択図】図6

Description

本発明は、通信ネットワークの分野に関する。
特に、本発明は、主通信ネットワークによりサポートされるトンネルのトランスポートチャネル上のデータストリームの送信を管理する技術に関する。
一方では高ビットレートのインターネットの大衆化が、他方ではネットワーク接続性を有する消費者向け音声映像機器の出現が、ユーザ行動の新しい形態を作り出すであろう。これらの新しい形態の行動は、「永続リンク」グループと呼ぶ共通の関心を有するグループ(即ち、余暇、家族等の共通の関心)に属する個人の登場に確実に関係する。これらのグループは、同一の関心分野を有する他の個人とのほぼ永続的な接続をセットアップすることにより、少なくとも音声及び映像通信の何れかをセットアップし、全ての種類の情報(音声、映像、写真、テキスト等)を共有する。
仮想プライベートネットワーク(VPN)の技術は、この要望に対する価値ある解決策を提供している。この技術により、同一の関心分野を共有する個人間でリアルタイムの透過的なセキュリティ保護された通信が可能になるが、それと同時に、信頼性は低いが安価なインターネットインフラストラクチャを使用する。
透過的に通信し且つ転送不可能なアドレスの必要性を克服するために、VPNは、トンネルと呼ばれるものを作成するトンネリングとして周知の特定の種類のカプセル化を使用する。これは、カプセル化プロトコルCを使用してBレベルのプロトコル(転送又は搬送プロトコル)にAレベルのプロトコル(組み込み又は搬送又はパッセンジャープロトコル)をカプセル化することからなる。従って、トランスポートプロトコルBは、パッセンジャープロトコルAをペイロードデータであるかのように処理する。
以下に詳細に説明する図3は、レベル2のVPNにおけるパケットカプセル化、即ち、レベル2トンネル(レベル2トンネルは、パッセンジャープロトコルが各レイヤ及びそれらのレイヤの対話により提供されるサービスを記述するISOモデルのレイヤ2のプロトコルであることを意味する)におけるカプセル化の一例を示す図である。
トンネリングは、ネットワークプロトコルをサポートしないネットワーク上でネットワークプロトコルを転送するために使用される。また、トンネリングは、プライベートアドレス指定等の種々のVPN機能を提供するために使用される。
トンネリング技術は、リモートクライアントアクセスを伴う機能、及びホームローカルエリアネットワーク(LAN)により益々使用されるようになってきている。
本明細書の以下の説明において、OSIモデルのトランスポートプロトコルBのレベルがトランスポート層のレベル(ISOモデルのレベル4のトランスポート層)に等しいレベル2、又はレベル3トンネルを単なる一例として考慮する。本発明の説明は限定的なものではなく、OSIモデルのトランスポートプロトコルBのレベルがより低くても良く(イーサネットキャリアを有するトンネルの場合)又はより高くても良い(時間及びHTTPキャリアを有する場合)ことは明らかである。
2つの独自のLANの結合により形成される仮想プライベートネットワーク(VPN)を作成するために、トンネリング技術は、2つのLANを相互接続するために頻繁に使用される。セキュリティ保護されたVPNは、転送データの秘密性を保証するための暗号化/認証アルゴリズムを含む。トンネリング技術に基づく一般的なVPN構成を図1(以下に詳細に説明する)に示す。この例において、トンネル終点(TEP)はゲートウェイに組み込まれない。トンネルは、2つのトンネル終点間にセットアップされ、リモートLANに接続される装置に送出される各パケット(フレームとも呼ぶ)は、ローカルトンネル終点によりカプセル化され、リモートトンネル終点に送出される。リモートトンネル終点はそれを非カプセル化し、リモートLANに送出する。トンネルにより相互に接続されるLANの装置から見て、それらの装置は仮想的に同一のLANに接続される。トンネルの使用は接続されたLANの装置に対して透過的であるため、トンネルを介する2つの装置間の通信は終点間通信と呼ばれる。
従来技術において、使用されるのは、主にIP又はインターネットプロトコル(レイヤ3)又はTCP(伝送制御プロトコル)/UDP(ユーザデータグラムプロトコル)(レイヤ4)である。IPを使用するトンネリング技術がネットワークアドレス変換(NAT)機構を考慮できず、それらの技術が図1の一般的なトンネリング構成に完全に準拠しないため、以下の説明においては、レイヤ4(トランスポート層)、即ち、TCP又はUDPに基づく解決策を考慮する(単なる一例として)。
TCPプロトコルの動作の原理を提示する付録において説明するように、TCPプロトコル(IETF規格RFC793により規定される)は、輻輳制御及び再送機構に基づくARQ(自動再送要求)プロトコルであるため、各パケットをその宛先に配信することを保証する。
UDPプロトコルは、フレームの順番を考慮せず且つ確認応答を管理しない非常に単純で高速なプロトコルである。
ここで規定されているように、TCPプロトコルは、待ち時間が長い、低速リンク及び高速リンク、或いは変動する誤差率を持つリンクを含む広範囲なネットワーク通信環境において動作し且つ融通性があるように設計された。TCPプロトコルは種々の環境で動作するが、それらの性能レベル(特に帯域幅)は使用される各通信リンクの特性により影響を受ける。帯域幅に関するTCPプロトコルの性能は、ルーティング時間が非常に長く、少なくとも誤差率が高くなる環境において悪影響を受ける。
拡張プロキシ概念又はRFC3135規格に基づくPEP(プロキシ拡張プロトコル)タイプの概念は、インフラストラクチャの性能を向上するために使用される。RFC3135規格は、サーバとクライアントとの間のTCPストリームのルーティング経路上のネットワーク装置に埋め込まれるデータストリーム送信を向上するための種々の機構(以下においてPEP機構と呼ばれる)を記述する。以下に説明するように、PEPシステムは、TCPストリーム輻輳の制御に作用するように各環境に特殊化される。
インターネットの場合、接続は一般に「ベストエフォート」型である。即ち、これらの接続は宛先まで情報を搬送するために可能な全てのことを行うが、ある特定のレベルのサービス品質(QoS)を保証しない。従って、VPN通信の環境において、トンネルのトランスポート層は送信容量の大きな変動の影響を受ける。
従来、このトンネルのパッセンジャーTCPストリームは、終点間輻輳制御を実行する。即ち、2つの通信デバイスは、データがサーバデバイス(以下では、送信デバイスとも呼ぶ)からクライアントデバイス(以下では、受信デバイスとも呼ぶ)に送出される時のビットレートを判定する際に、共に動作する。しかし、送信デバイスは、トンネルのストリームの転送の条件下で利用可能な情報を有し、このトンネルは送信デバイスと受信デバイスから見て透過的である。受信デバイスにセットアップされた終点間輻輳制御を介して取得される情報により、送信デバイスはトンネルにおける転送の条件に不適切であり且つ不必要な再送又は利用可能な帯域幅の不十分な活用により帯域幅の消費を増加させるような判定を行う。
PEP機構は、既定の時点でトンネルの本質的な制限に応じてトンネルからのパッセンジャーTCPストリームに対する輻輳制御に影響を及ぼすためにセットアップされる。
米国特許出願公開第2006/0002301A1号明細書
Elaoud,M及びRamanathan,Pの「TCP-SMART: a technique for improving TCP performance in a spotty wide band environment」(IEEE Communications, 2000. ICC 2000;1783〜1787ページ第3巻;Digital Object Identifier 10.1109/ICC.2000.853814)
例えば、インターネットなどのワイドエリアネットワーク(以下、WANと呼ぶ)におけるVPNトンネルの一時的な輻輳の間、高信頼確認応答に基づく通信プロトコルを使用するこのトンネルのキャリア(即ち、例えばTCPプロトコルに従うこのトンネルのトランスポートチャネル)は自動再送に入る。これは、トンネルのトランスポートチャネルで搬送される全てのストリーム(トンネルキャリアのカプセル化パケット、即ち、埋め込みパケットの損失に直接関係しないストリームであっても)を保留する効果がある。実際には、いくつかのパッセンジャーストリームは、トンネルの同一トランスポートチャネル(即ち、同一通信セッション)により搬送される。更に構成上、TCPプロトコルはパケットの到着順を保証し、このトンネルの損失パケットに後続するトンネルのパケットを受信側エンティティ(この場合はリモートトンネル終点)に先に提供しない。換言すると、キャリアのデータシーケンス番号がトンネルの損失パケットに対応する番号より大きい受信パッセンジャーパケットのリモートLANへの転送は行われない。それらの格納されたパケットのブロック解除は損失パケットが送信側トンネル終点により再送され且つ受信側トンネル終点により受信された場合にのみ行われる。
損失パケットの再送フェーズは、トンネルでのラウンドトリップ時間(又はRTT)を必要とし、パケットに対する従来のデータ/確認応答(DATA/ACK)転送フェーズを補足することが分かる。
インターネットトンネルにおけるRTTは非常に長いため(LANの10〜100倍)、このRTTがリモートクライアントとサーバとの間のトンネルにより搬送される接続(即ち、トンネルのパッセンジャーである接続)の挙動を大きく左右することは明らかである。
従って、VPNの一時的な輻輳の間、全てのパッセンジャー接続は、トンネルのRTTの2倍の遅延、即ち、それらの接続に対する再送タイムアウト(以下では、RTOと呼ぶ)の臨界値に近い遅延の影響を受ける。
WANの変動に依存し、VPNトンネルセクションで同報通信するTCPサーバでは、伝送ビットレートの低下を招くRTOが満了になることが分かる。尚、遅延が長くなると、低下前に初期の伝送ビットレートに回復するのにかかる時間が長くなるため、それらのサーバのビットレートの増加は受信者への搬送時間(RTT)に直接依存する。更に、損失カプセル化パケットに対するトンネルでの再送が引き継がれるにもかかわらず、再送はTCPサーバがトンネルのパッセンジャーストリームを送出することにより行われる。
その結果、TCPトンネルにおける最小損失は、このトンネルの埋め込みTCP接続の終点間性能に悪影響を及ぼす。
PEP機構は、主に輻輳制御に適用され、またTCP接続により利用される種々のネットワークセグメントにおける再送の問題に適用される。トンネルのキャリア(TCPトランスポートチャネル)におけるカプセル化パケット(WANパケット)の損失の上記問題を克服するために、パケットの一時的な記憶又はバッファリングに基づいてPEP機構はキャッシュメモリに更なるデータを格納できる。しかし、これの効果は時間的に制限される。
PEP機構は、トンネルにより搬送される接続に対するタイムアウト現象を遅延できるだけであり、これでは不十分である。
従って、一時的に輻輳するTCPトンネルで搬送されるその接続のRTOタイムアウトの問題を克服し、ローカルLANからリモートLANへ、このトンネルを通して移動するデジタルコンテンツを搬送するTCPサーバの伝送ビットレートを制御する効率的な方法を提案する必要があり、これは本発明の重要な目的である。
不安定な環境(インターネット又は無線リンク等)においてTCP性能を向上する2つのカテゴリの原理が存在する。即ち、終点間プロトコル及び分割接続プロトコルである。後者のカテゴリは、そのプロトコルが終点間クライアントTCP接続をサポートするトンネリングの本質的な原理に違反するため、本発明の問題に対して考慮されない。後者のカテゴリのプロトコルの原理は、異機種ネットワークの部分毎に特徴付けられた独自の接続を有することである。
殆どの終点間接続プロトコル原理は、異機種ネットワーク間(一般に、WANの場合はトンネル終点間又は無線ネットワークの場合は基地局間)のインフラストラクチャ機器へのPEP(性能拡張プロキシ)タイプの専用エージェントの追加に依存する。
次に、TCPトンネリングのTCPの特定の影響を克服することを可能にする2つの従来技術を説明する。
米国特許出願公開第2006/0002301A1号明細書(INTEL CORP. USの「Transferring TCP Packets」)において、第1の従来技術が説明される。この特許文献は、TCPトンネルを介して2つのリモートLANの装置間にセットアップされるTCP接続とそれらの2つのLANとを接続するTCPトンネルに関する。
トンネルにおいて損失がある場合にデータの二重の再送(トンネルキャリアによる再送及びパッセンジャーTCPストリームによる再送に対応する)を回避するために、各トンネル終点にPEP一時記憶機構を実現し、いずれかのトンネル終点で有効に受信されたパケットに関する情報の2つのトンネル終点間における交換を更に可能にすることが提案される。第1の従来の交換処理において、トンネルにおける損失は以下の効果の組合せによりLANの装置から隠蔽される。第1に、自動再送が損失データに対してトンネルにおいて実行され、第2に、一時記憶がその再送に必要な遅延を部分的に隠す。
これにより、終点間の再送(パッセンジャーTCPストリーム)をなくし、トンネルキャリアにより単一の再送を行うという利点を得る。利用可能なキャッシュメモリは、再送の各ネットワークセグメント(ローカルLAN、WAN、リモートLAN)におけるローカル管理を提供する。この機構は、このトンネルにおいて損失があり(必要な再送時のみのトンネルの帯域幅の効率的な使用)且つリモートネットワークにおいて損失がある(ローカルな再送)場合、トンネルにおける性能の問題に対処する。
しかし、提案された機構は、リモートクライアント(リモートLANに接続される)によるデータの確認応答を待つローカルLANのRTOタイムアウトの影響の問題を解決しない。
第1の従来技術において実現されるように、一時記憶ゾーンが送信時間に関してWANにおける損失を隠すことを望むことは無益である。一時記憶ゾーン(各トンネル終点における)からパケットを搬送するのにかかる時間の変動は、TCPサーバがRTOを認識するのにかかる時間を長くできるだけである(上述の特許文献には記載されていない)。
IEEEの文献であるElaoud,M及びRamanathan,Pの「TCP-SMART: a technique for improving TCP performance in a spotty wide band environment」(IEEE Communications, 2000. ICC 2000;1783〜1787ページ第3巻;Digital Object Identifier 10.1109/ICC.2000.853814)において、第2の従来技術が説明される。
この文献は、不安定な環境(リンクの切断が頻繁にある無線リンクにおける)を移動する終点間TCP接続の性能を向上するために、ローカル再送及び重複確認応答又は重複ACKのフィルタリングを実行する役割を果たすスヌープ機構を説明する。
この第2の従来技術の目的は、無線リンクの切断中のサーバのRTOの満了の回数を低減することである。これらの切断は、リモートTCPクライアントからの確認応答の到着を防止する。
無線基地局のPEPエージェントは、各TCP接続を解析し、無線リンクで送出されるデータを一時的に格納する。このデータの確認応答がリモートTCPクライアントからエージェントにより受信される場合、それらのパケットはキャッシュから削除される。ある特定の期間中に確認応答が受信されない場合又は誤りの指示が受信された(重複確認応答又は重複ACK)場合、それらのデータはクライアントに再送される。これが従来のPEP記憶機構の挙動である。
この第2の従来技術は、TCPからの送信を停止するために0の「確認応答ウィンドウ」又は「広告ウィンドウ」フィールドを有する有線ネットワークのTCPサーバ用の重複確認応答(重複ACK)を生成する機能を更に追加する。TCPサーバは中断モードであり、このモードから解放するためにクライアントからの新しい確認応答(厳密に0より大きい広告ウィンドウフィールドを有する)を保留にする。
この第2の従来技術の目的は、RTTが非常に大きいWAN環境に適応されない不連続な無線リンクにおける通信呼び出しに関して本発明と同様の問題を解決すること(即ち、TCPサーバのRTOの満了の現象を防止すること)である。実際には、無線キャリアのある程度長い物理的切断中のバッファの輻輳を防止するために送信中サーバを停止する原理は、不連続な無線リンクにおける通信の場合には価値があるが、1つのパケットに制限される損失がこのトンネルの停止を全く示さない(更に、トンネルが損失データを再送するためにアクティブなままである)VPNトンネルの場合には価値がない。尚、WAN(WAN上でトンネルがセットアップされる)における搬送の速度は、LAN又はWLAN(無線LAN)より非常に遅く、WANの能力の不十分な活用は、搬送時間に関する損害が大きい。
上述のように、従来のPEP機構は、主に一時データ記憶の原理に基づいて準備される。これは、データが少なくとも2サイクルのRTTの期間格納される必要があるため、WAN(WANにおいてトンネルがセットアップされる)における送信に関係する実質的なメモリリソースを示す。これは、TCP VPNトンネルがセットアップされたWANにおいてトンネルのキャリアが浮遊パケットを再送する役割を自動的に果たすことが確実であるため、そのトンネルに更に大きな損害を与えるだけである。第2の従来技術により提案されたデバイスは更に複雑であるが、インターネットにおけるTCPトンネルの送信能力から最良の可能な利点を引き出すように適応されない。
従って、従来技術は、リソースに関して低コストである技術を有さず、サーバ及びクライアントに対して透過的であり(終点間TCP接続の上述の原理に準拠する)且つVPNトンネルにおける突発的な損失に適応されるTCPサーバの内部TCP管理制御の習得を可能にする。
本発明は、少なくとも1つの実施形態において、特に従来技術の種々の欠点を克服することである。
更に詳細には、本発明の少なくとも1つの実施形態の目的は、TCPサーバから送信ストリームの最小限の帯域幅を使用可能にするトンネルの輻輳の検出時(データの損失後に且つ/又はこのトンネルの待ち時間が1回のみ増加している間に再送フェーズへトンネルが推移する時)、1つ以上の送信機デバイス(例えば、TCPサーバ)の伝送ビットレートの管理を制御できるトンネルのトランスポートチャネルにおけるデータストリーム送信を管理する技術を提供することである。
更に、本発明の少なくとも1つの実施形態の目的は、例えば送信側(サーバ)デバイス及び受信側(クライアント)デバイスのTCP/IPスタックの任意の変更を必要としないこの種の技術を提供することである。
本発明の少なくとも1つの実施形態の更に別の目的は、送信側(サーバ)デバイス及び受信側(クライアント)デバイスに対して完全に透過的であるこの種の技術を提供することである。
本発明の少なくとも1つの実施形態の更に別の目的は、制限されたメモリリソースを必要とするこの種の技術を提供することである。
本発明の少なくとも1つの実施形態の追加の目的は、実現するのに単純であり且つコストが安いこの種の技術を提供することである。
本発明の特定の一実施形態は、トンネルのトランスポートチャネル上のデータストリームの送信を管理する方法であって、各ストリームの送信はパケットによりスケジュールされるトランスポートプロトコルに従って確認応答と共に前記トランスポートチャネル上で実行され、前記トンネルは第1のサブネットワーク及び第2のサブネットワークにそれぞれ接続される第1のトンネル終点と第2のトンネル終点との間に実現され、各ストリームは送信側デバイスから受信側デバイスに送信され、前記送信側デバイス及び前記受信側デバイスのうち、一方のデバイスは第1のサブネットワークに接続され、他方のデバイスは第2のサブネットワークに接続され、前記第1のトンネル終点により実行され、前記方法は、
前記トンネルのトランスポートチャネル上のパケットの損失を検出する工程と、
前記損失によりトンネルのトランスポートチャネル上でブロックされた少なくとも1つのパケットを有する少なくとも1つのストリームを識別する工程と、
前記少なくとも1つの識別されたストリームに対して、前記損失によりブロックされたパケットを送信した送信側デバイスに、前記トンネル上に少なくとも1つの確認応答を生成及び送信する工程とを有する。
従って、この特定の実施形態において、本発明は、送信側デバイス(サーバ)のRTOの満了の現象を防止するために予防修正(トンネル入力トンネル終点による「偽の」確認応答の生成)が適用される斬新な発明の方法に依存する。
第2の従来技術のように送信側デバイスを停止するのではなく、送信側デバイスは送出されたデータの搬送が制御され且つ残りのデータを送信し続けられると確信できる。
トンネルの帯域幅は、ペイロードデータ、即ち、トンネルのパッセンジャーストリーム(更に、バーストである場合が多い)の自動再送の取消しのために節約される。
この技術は、送信側デバイス(サーバ)及び受信側デバイス(クライアント)に対して完全に透過的である。送信側デバイス(サーバ)及び受信側デバイス(クライアント)のTCP/IPプロトコルスタック等のプロトコルスタックの変更はない。
この技術は、メモリのオーバーフローの可能性がないため(PEP格納機構のため)、制限されたメモリリソースを必要とする。
少なくとも1つの既定の識別されたストリームに対して、前記少なくとも1つの生成された確認応答は、前記損失によりブロックされた前記識別されたストリームの第1のパケットに先行するパケットの確認応答であるのが有利である。損失が検出されたパケットが属する識別されたストリームに対して、前記損失によりブロックされた第1のパケットは、損失の検出に続いて前記トンネルのトランスポートチャネルに上に再送されるパケットであると見なされる。
従って、第1のトンネル終点により生成される確認応答の送信により、接続が依然として有効であり且つ考慮される各ストリームに対してパケットの搬送の遅延以外に特定の問題が存在しないことを、確認応答を受信する送信側デバイスに通知する。
少なくとも1つの既定の識別されたストリームに対して、少なくとも1つの確認応答を生成及び送信する前記工程は、
前記既定の識別されたストリームを送信する送信側デバイスと関連付けられる再送タイムアウトの期間を推定する関数及び前記損失によりブロックされる前記識別されたストリームの第1のパケットに先行する前記パケットのトンネル終点による処理の処理瞬間の関数として第1の確認応答を送出する第1の送出瞬間t1を判定する工程と、
前記第1の送出瞬間t1に前記第1の確認応答を送信する工程とを有するのが有利である。
従って、修正は送信側デバイス別に行われる。実際には、これはトンネルのアクティビティ及び考慮されるストリームの特性に依存する。
前記第1の送出瞬間t1は、t1 = t0 + RTO' - Δにより定義されるのが有利である。式中、
t0は、前記損失によりブロックされる前記識別されたストリームの第1のパケットに先行する前記パケットの前記第1のトンネル終点における処理の前記処理瞬間であり、
RTO’は、前記既定の識別されたストリームを送信する送信側デバイスと関連付けられる再送タイムアウトの期間の前記推定であり、
Δは、予め定められた安全余裕度である。
このように、第1の送出瞬間t1の判定は単純である。
少なくとも1つの既定の識別されたストリームに対して、少なくとも1つの確認応答の生成及び送信の前記工程は、
t1が1回目の繰り返しの場合に前記第1の送出瞬間であり又は2回目以降の各繰り返しの場合に先行する繰り返しにおいて判定される新しい送出瞬間t2である時、t2 = t1 + RTO' - Δにより定義される新しい確認応答を送出する新しい送出瞬間t2を判定する工程と、
前記新しい送出瞬間t2において前記新しい確認応答を送信する工程との少なくとも1回の繰り返しを有するのが有利である。
従って、予防策として、既定の識別されたストリームに対して第1のトンネル終点において別の確認応答を生成しようとする。第1のトンネル終点により生成される第1の確認応答はトンネルにおけるパケットの単純な損失の影響を軽減するが、トンネルが復元されるために必要な1サイクルのRTTより長い期間を必要とする場合を考慮しなければならない。
このように、新しい各送出瞬間t2は容易に判定される。この場合も、修正は送信側デバイス別に行われる。
RTO' = 2.RTTであるのが有利であり、RTTはトンネルにおけるラウンドトリップ時間の測定値である。
従って、計算は単純化される。尚、トンネルのRTTがLANのRTTより非常に長いため、送信側デバイスと受信側デバイスとのRTTの期間はトンネルのRTTの期間により近似される。
少なくとも1つの既定の識別されたストリームに対して、少なくとも1つの確認応答を生成及び送信する前記工程において、トンネルのトランスポートチャネルを通過中であり且つ前記損失によりブロックされる前記既定の識別されたストリームのパケット数が前記既定の識別されたストリームに対して前記第1のトンネル終点により生成及び送信される確認応答の数より多いという第1の条件が検証される場合にのみ、確認応答は生成及び送信されるのが有利である。
送信側デバイスが送信したパケットより多くの確認応答を受信しないため(例えばTCPにおいて、確認応答はサーバにより送信されるパケットに応答してのみクライアントにより生成される)、この第1の条件は、パケットにより命令されるトランスポートプロトコル及び確認応答(例えば、TCPプロトコル)に準拠することを保証する際に送信側デバイス(サーバ)に対する透過性を保証する。
少なくとも1つの既定の識別されたストリームに対して、少なくとも1つの確認応答を生成及び送信する前記工程において、前記既定の識別されたストリームに対して前記第1のトンネル終点により生成及び送信される確認応答の数が前記既定の識別されたストリームを送信する送信側デバイスに対してパケット損失を示す予め定められた閾値以下であるという第2の条件が検証される場合にのみ、確認応答は生成及び送信されるのが有利である。
従って、本発明は、送信側デバイス(サーバ)が第1のトンネル終点により生成される連続する確認応答の生成をパケット損失と解釈しないようにし、従って、送信側デバイスが損失されると考えられるパケットを再送しないようにする。
有利な特徴によると、少なくとも1つの既定の識別されたストリームに対して、方法は、前記第1のトンネル終点が確認応答を既に生成及び送信した前記既定の識別されたストリームの受信側デバイスからトンネルを介して到達する確認応答をフィルタリングする工程を有する。
従って、第1のトンネル終点による偽の確認応答の生成により及ぼされる副次的影響は、送信側デバイス(サーバ)において接続中の状態遷移機械を妨害しないように管理される。例えば、リモート受信側デバイス(クライアント)がリモートLANにおける容易な非順序付けのために「真の」重複確認応答(重複ACK)を送出し且つ第1のトンネル終点が1つ又は2つの「偽の」重複確認応答を既に生成及び送出している場合、送信側デバイス(サーバ)が再送モードにされる(回避されるTCP送信側ウィンドウ関数の低下を伴う)原因となる第3の重複確認応答を受信しないように「真の」重複確認応答をフィルタリング(即ち、検出及び破棄)する必要がある。
別の実施形態において、本発明は、通信ネットワークからダウンロード可能であり且つ/又はコンピュータ読み取り可能な媒体に記録され且つ/又はプロセッサにより実行可能であるコンピュータプログラム製品に関する。このコンピュータプログラム製品は、前記プログラムがコンピュータにおいて実行される場合に上述の方法(種々の実施形態のうちの1つにおける)を実現するためのプログラムコード命令を含む。
別の実施形態において、本発明は、上述の方法(種々の実施形態のうちの任意の1つにおける)を実現するために、コンピュータにより実行可能な命令の集合を含むコンピュータプログラムを格納するコンピュータ可読記憶媒体に関する。
特定の一実施形態において、本発明は、トンネルのトランスポートチャネルに上のデータストリームの送信の管理を可能にする第1のトンネル終点であって、各ストリームの送信はパケットによりスケジュールされるトランスポートプロトコルに従って確認応答を使用して前記トランスポートチャネルに対して実行され、トンネルは第1のサブネットワーク及び第2のサブネットワークにそれぞれ接続される第1のトンネル終点と第2のトンネル終点との間に実現され、各ストリームは送信側デバイスから受信側デバイスに送信され、前記送信側デバイス及び前記受信側デバイスのうち、一方のデバイスは第1のサブネットワークに接続され、他方のデバイスは第2のサブネットワークに接続され、前記第1のトンネル終点は、
前記トンネルのトランスポートチャネル上のパケットの損失を検出する手段と、
前記損失によりトンネルのトランスポートチャネル上でブロックされた少なくとも1つのパケットを有する少なくとも1つのストリームを識別する手段と、
前記少なくとも1つの識別されたストリームに対して、前記損失によりブロックされたパケットを送信した送信側デバイスに、前記トンネル上に少なくとも1つの確認応答を生成及び送信する手段とを有する。
少なくとも1つの既定の識別されたストリームに対して、前記少なくとも1つの生成された確認応答は、前記損失によりブロックされた前記識別されたストリームの第1のパケットに先行するパケットの確認応答であるのが有利である。損失が検出されたパケットが属する識別されたストリームに対して、前記損失によりブロックされた第1のパケットは、損失の検出に続いて前記トンネルのトランスポートチャネル上で再送されるパケットであると見なされる。
少なくとも1つの確認応答を生成及び送信する前記手段は、
少なくとも1つの既定の識別されたストリームに対して、前記既定の識別されたストリームを送信する送信側デバイスと関連付けられる再送タイムアウトの期間を推定する関数及び前記損失によりブロックされる前記識別されたストリームの第1のパケットに先行する前記パケットの前記トンネル終点による処理の処理瞬間の関数として第1の確認応答を送出する第1の送出瞬間t1を判定する手段と、
前記第1の送出日時t1に前記第1の確認応答を送信する手段とを有するのが有利である。
従って、修正は送信側デバイス別に行われる。実際には、これはトンネルのアクティビティ及び考慮されるストリームの特性に依存する。
前記第1の送出瞬間t1は、t1 = t0 + RTO' - Δにより定義されるのが有利である。式中、
t0は、前記損失によりブロックされる前記識別されたストリームの第1のパケットに先行する前記パケットの前記第1のトンネル終点における処理の前記処理瞬間であり、
RTO’は、前記既定の識別されたストリームを送信する送信側デバイスと関連付けられる再送タイムアウトの期間の前記推定であり、
Δは、予め定められた安全余裕度である。
少なくとも1つの確認応答を生成及び送信する前記手段は、
t1が1回目の繰り返しの場合に前記第1の送出瞬間であり又は2回目以降の各繰り返しの場合に先行する繰り返しにおいて判定される新しい送出瞬間t2である時、少なくとも1つの識別されたストリームに対して、t2 = t1 + RTO' - Δにより定義される新しい確認応答を送出する新しい送出瞬間t2を判定する手段と、
前記新しい送出瞬間t2に前記新しい確認応答を送信する手段とを有し、それらの手段は少なくとも1回起動されるのが有利である。
RTO' = 2.RTTであるのが有利であり、RTTはトンネルにおけるラウンドトリップ時間の測定値である。
第1のトンネル終点は、
少なくとも1つの既定の識別されたストリームに対して、トンネルのトランスポートチャネルを通過中であり且つ前記損失によりブロックされる前記既定の識別されたストリームのパケット数が前記既定の識別されたストリームに対して前記第1のトンネル終点により生成及び送信される確認応答の数より多いという第1の条件を検証する第1の検証手段と、
前記第1の検証手段が肯定の検証を行った場合に前記少なくとも1つの既定の識別されたストリームに対して少なくとも1つの確認応答を生成及び送信する前記手段を起動する手段とを更に有するのが有利である。
第1のトンネル終点は、
少なくとも1つの既定の識別されたストリームに対して、前記既定の識別されたストリームに対して前記第1のトンネル終点により生成及び送信される確認応答の数が前記既定の識別されたストリームを送信する送信側デバイスに対してパケット損失を示す予め定められた閾値以下であるという第2の条件を検証する第2の検証手段と、
前記第2の検証手段が肯定の検証を行った場合に前記少なくとも1つの既定の識別されたストリームに対して少なくとも1つの確認応答を生成及び送信する前記手段を起動する手段とを更に有するのが有利である。
有利な特徴によると、第1のトンネル終点は、少なくとも1つの既定の識別されたストリームに対して、前記第1のトンネル終点が確認応答を既に生成及び送信した前記既定の識別されたストリームの受信側デバイスからトンネルを介して到達する確認応答をフィルタリングする手段を更に有する。
本発明の実施形態の他の特徴及び利点は、示される制限しない例として与えられる以下の説明及び添付の図面から明らかとなる。
トンネルを実現する仮想プライベートネットワーク(VPN)の一般的な構成を示す図である。 本発明の方法が実現されるトンネル終点の従来の階層モデルの一例を示す図である。 レベル2トンネルパケットを搬送するイーサネットフレームの従来の形式の一例を示す図である。 図1で説明される環境を参照して、本発明の特定の一実施形態の応用例を示す概略図である。 本発明の特定の一実施形態に係るデータ構造の種々のテーブルを示す図である。 本発明の修正方法の特定の一実施形態に含まれ且つトンネルの送信誤りの検出時に実行されるアルゴリズムを示すフローチャートである。 本発明の修正方法の特定の一実施形態に含まれ且つトンネルのパッセンジャーTCPストリームに対してトンネルから到着する確認応答の受信時に実行されるアルゴリズムを示すフローチャートである。 本発明の修正方法の特定の一実施形態に含まれ且つ確認応答メッセージを生成してサーバに送出するアルゴリズムを示すフローチャートである。 本発明の特定の一実施形態のアルゴリズムを実現するトンネル終点101のPEPシステムの機能的アーキテクチャを示す概略図である。 本発明の特定の一実施形態を実現するように適応される汎用通信デバイスの概略構成を示す図である。
本発明の全ての図面において、同一の要素及びステップは同一の図中符号により示される。
図1に、通信ネットワーク107(例えば、インターネット)を経由してローカルトンネル終点101とリモートトンネル終点102との間にトンネル100を実現する仮想プライベートネットワーク(VPN)の一般的な構成を示す。このトンネル100は、2つのローカルネットワークであるAN A103及びLAN B104を接続する。LAN103及び104の各々は、高ビットレートインターネットアクセス装置(ファイアウォールを組み込み可能なホームゲートウェイ)105及び106、PC型装置109及び111、デジタルメディア(音声、映像及び写真のデジタルメディア)を格納及び配信するためのサーバ110及び113、並びにデジタルメディアレンダリング装置108及び112を有する。トンネル終点は、デジタルテレビ受信機等の音声映像装置に組み込まれても良い。また、トンネル終点は、関連する機能を実行するプログラムの形式でPC型装置に提供されても良い。
トンネル100がセットアップされると、LAN A103に接続された装置108、109及び110は、LAN B104に接続された装置111、112及び113と通信できる。例えば、LAN A103に接続されたクライアント108は、ネットワークLAN B104に接続されたサーバ113と通信できる。
図1は、1つのトンネルのみ有する単純な通信ネットワークを示すが、同一のトンネル終点が第1のLANをいくつかの他のLANに相互接続するようにいくつかのトンネル(同数のトンネル終点につながる)を管理してもよいことが理解される。更に、簡潔にするために、図にはインターネットルータ等のインターネットにおけるインフラストラクチャ装置を示していない。
装置108、109、110(LAN B103に接続される)の1つから到着し且つトンネル100に入るイーサネットフレームのルーティングについて、図2を参照して説明する。その目的のために、階層モデルが使用される。この階層モデルは、トンネル100の実現に必要とされるプロトコル層を記述する。このモデルには、トンネルの使用以外の機能に必要なプロトコル要素は表さない。例えば、トンネル終点101がUPnP装置に組み込まれる場合、UPnPアーキテクチャと関連するプロトコル要素は示さない。
トンネル終点101は、装置108、109、110から到着するイーサネットフレームをルーティングするためにリンク層207に渡すイーサネット物理インタフェース208を有する。このルーティングは、トンネル終点を含む装置用のイーサネットフレームの場合にはネットワーク層206に向けて行われ、他のイーサネットフレームの場合にはブリッジ層209に向けて行われる。ブリッジ層209は、イーサネットフレームのフィルタリング及び1つ又は複数の適切なイーサネット出力ポートへのそれらフレームの中継等のイーサネットブリッジの従来の動作を実行する。ブリッジは、イーサネットインタフェース207及び少なくとも1つの仮想インタフェース210を有し、接続されたイーサネット制御器をシミュレートする。仮想インタフェース210は、インスタンス化された各トンネルを通過中に移動する必要のあるイーサネットフレームを与えられるアプリケーション200によりインスタンス化されたトンネル毎に作成される。一般に、アプリケーション200により表されるトンネルのカプセル化のプロトコルは、各トンネルを実現するのに必要な動作、その中でも特に構成、フィルタリング及びカプセル化(トンネルパケットの形成)の動作、並びにフレームの抽出を実行する。
仮想インタフェース210から受信されたフレームは、アプリケーション200により処理された後、SSLプロトコル202及びDTLSプロトコル204によりそれぞれセキュリティ保護される高信頼TCPトランスポートプロトコル203又は低信頼UDPトランスポートプロトコル205にアプリケーションインタフェース又はソケット201を介してパケットの形式で渡される。
用語「高信頼転送モード」又は「高信頼トランスポートプロトコル」は、フレーム又はデータパケットを送出するデバイスが受信側デバイスへのフレーム又はデータパケットの配信に関する1つの情報を取得する転送モード又はプロトコルを意味すると理解される。そのようなモードの主な特徴は、フレーム又は1つのデータの配信の保証であり、送信側デバイスと受信側デバイスとの間の転送の待ち時間がないことである。以下において、用語「高信頼チャネル」は、データトランスポートプロトコル(このデータ自体は、判定されたトランスポートプロトコルに従うパケット又はフレームの形式をとることができる)を使用する2つのサブネットワーク(ローカルLANとも呼ばれる)間のトンネルのデータの転送のためのチャネルを意味すると理解される。
トンネルパケット250(図3)を形成するためのトランスポートプロトコルによる処理の後、このパケットはネットワーク層206に渡される。このように現在のパケットにより形成されるIPデータグラムは、リンク層207及び物理層208を介してLANに送信される。
トンネル100から到着するフレームの受信は、上述で提示された経路とは逆のトンネル終点の経路に従う。
図3は、例えば図1のLAN A103を通過中のイーサネットフレーム(図中符号260)の従来の形式の一例を示し、これは以下を含む。
−イーサネットヘッダフィールド(図中符号261)
−レベル2トンネルパケット(図中符号250)を転送する第1のIPデータグラム(図中符号262)自体
−FCS(フレームチェックシーケンス)フィールド(図中符号263)
トンネルパケット250は以下の4つの部分を有する。
−トランスポートプロトコルヘッダフィールド251(即ち、この例においてはTCP又はUDPフィールド)
−カプセル化プロトコルのヘッダフィールド252(即ち、この例においてはL2TP又はTLSであり、特にJ. Lau他の文献"IETF RFC3931「Layer two tunneling protocol - version 3 (L2TPv3)」2005年3月及び文献"IETF RFC2246「The TLS Protocol Version 1.0」において説明される)
−パッセンジャープロトコルのヘッダフィールド253(即ち、この例においてはイーサネット)
−送信元装置からの通過中に断片化が起こらなかった場合に、完全な第2のIPデータグラムを含むユーザデータフィールド254。
図4は、図1に説明した環境を参照して本発明の特定の一実施形態の応用例を示す概略図である。
トンネル終点101での位置付けに従って、本発明の特定の本実施形態のアルゴリズムを以下に説明する。実際には、任意のトンネル終点が本発明を実行できる。しかし、発明のアルゴリズムをセットアップするトンネルエントリトンネル終点は、TCPトンネルを介して、リモートLANを対象としたローカルLANから受信されるTCPデータのみに焦点を合わせる。
図4に示す例では、トンネル終点TEP101は、(リモート)LAN104を対象としたトンネルに入るためにLAN(ローカルLAN)103から送出されるTCPデータを解析し、このTCPデータに対してLAN104から受信される確認応答も解析する。
この例では、2つのメディアサーバ110−A及び110−BがLAN103に位置し、それらのサーバの2つのクライアントデバイス112−A及び112−Bがローカルエリアネットワーク104に位置する。尚、この例の説明を理解し易いように、パケットの指標の概念は、パケットの送出順序に対応し(パケットの指標iは、パケットがi番目のパケットであることを示す)、通信プロトコルの実体を有していない(各TCPパケットに組み込まれるシーケンス番号と異なる)。
TCPパケットに対して以下の表記法が使用される:
−「i」で参照されるパケット410:指標iのデータセグメントTCP(即ち、データシーケンス番号nに対してLAN103のサーバ110−A、110−Bのうち、一方により送出されるi番目のパケット);
−「Ri」で示されるパケット413:同一の指標「i」を有するが同一のデータシーケンス番号nで再送されたパケット410と同一のTCPデータセグメント;
−「Ai」で示されるパケット411:データシーケンス番号nに対するパケット「i」又は「Ri」のTCP確認応答(従って、TCPプロトコルによると、このパケット411は確認応答シーケンス番号n+1を含む)。即ち、この確認応答411はLAN104のクライアントからLAN103のサーバに送出される;
−「Di」で示されるパケット412:データシーケンス番号nに対するパケット「i」又は「Ri」のTCP確認応答(従って、TCPプロトコルによると、このパケット412は確認応答シーケンス番号n+1を含む)。即ち、この確認応答412はトンネル終点TEP101(本発明の機構に従う)(図6及び図8を参照)からLAN103のサーバに送出される。確認応答412は、従来の確認応答(重複するため、サーバにより「重複ACK」と考えられる)又は選択的確認応答SACKである(これらの2種類の確認応答は付録において詳細に説明する)。
従来のTCP接続は、パケット「Ai」411により確認応答されるパケット「i」410により形成される。
従って図4の例において、トンネルは、以下の2つの別個のTCP接続に対してLAN103からLAN104へデータパケット410を送出し、LAN104からLAN103へ確認応答パケット411を送出する。
−サーバ110−Aと受信機112−Aとの間にセットアップされる接続A(この接続Aのパケットは、上述の表記法「i」、「Ri」、「Ai」及び「Di」を含む正方形により表される);
−サーバ110−Bと受信機112−Bとの間にセットアップされる接続B(この接続Bのパケットは、上述の表記法「i」、「Ri」、「Ai」及び「Di」を含む円により表される)。
トンネル終点TEP101は、トンネル上の送信の日時とスケジューリングを知るために使用される時間指示と共に、トンネル上を通過中のパケット410及び411のシーケンス番号を保存できる(実際には、指標iのセグメント410の記録はそれに対応する確認応答411の受信まで保存される)と仮定する。更に、トンネルキャリアの各パケット(キャリアパケット)の内容を容易に識別するために、データシーケンス番号の関連付けは、トンネルのキャリアのパケットとパッセンジャーストリームのパケットとの間で行われる(以下において指定される)。
情報に対して、トンネル終点TEP101は、トンネル上に送出されるTCPセグメントのテーブル501を管理する(図5を参照してこのテーブル501を以下に説明する)。
フェーズ4−1:トンネル上の誤り(エラー)の検出
このフェーズは、トンネル上の誤りの検出時間に対応する。例えば、3つの重複確認応答(重複ACK)420は、トンネルのパケットの損失を示すためにトンネル終点TEP102により送出される。同一のデータシーケンス番号kに対する3つの重複ACKの受信後(確認応答シーケンス番号k+1のTCPプロトコルに従って)、トンネルのTCPプロトコル層は失われたキャリアパケットを自動的に再送する。同時に、データシーケンス番号kのキャリアパケットにより転送されるデータの特性を判定するために、トンネル終点TEP101において警告がトリガされる。
図4の例において、データシーケンス番号kのキャリアパケットは、110−Aから112−A(接続A)へのストリームの指標3のパケット410に対応する。従って、トンネルはこのデータ(パケット「R3」)を搬送するための再送に入る。
トンネル終点TEP101は、リモートトンネル終点102のTCPプロトコル層においてブロックされるデータセグメント410を判定する。接続Aの指標3のパケット410の後にトンネルに送出されたのは、ローカルエリアネットワーク103の全てのパケット410である。
この例において、判定されたパケット410は以下の通りである。
−接続Aの場合、3より大きい指標を有する全てのパケット;
−接続Bの場合、2より大きい指標を有する全てのパケット(接続Bの指標2は、接続Aの指標3のパケットの送出に先行する)。
トンネルにおける誤りの検出は、3つの重複ACKの受信後、即ち、1トンネルラウンドトリップ時間(RTT)後、トンネル終点TEP101とトンネル終点102との間で行われる。従って、トンネルにおける指標R3のパケット413の送信(損失したデータの再送)がリモートクライアントにより受信されるブロックされないパケットに対する確認応答411のLAN103への逆方向の送信とほぼ同時であることが図4において分かる。
従って、これは、サーバとクライアントとの間の1ラウンドトリップ時間(トンネルのRTTがLAN103及び104の各々のRTTより非常に長いため、トンネルにおける別のラウンドトリップ時間に近似される)の後にのみ、接続A及びBの後続シーケンスに対するその後の確認応答がLAN103において受信されることを意味する。
従って、次のフェーズ4−2はサーバTCP110−A及び110−BのタイムアウトRTOの満了の現象を防止するために予防修正(トンネル終点TEP101による確認応答412の生成)を適用することを目的とし、この修正はLAN103の各サーバ110−A及び110−B別に行われる。
フェーズ4−2:タイムアウトRTOの満了の問題に対する修正の適用
このフェーズは、2つのステップ4−2a及び4−2bに細分化される。一方のフェーズ(4−2a)は、確認応答メッセージ412を送出するためのタイムアウトの計算であり、他方のフェーズ(4−2b)は、このタイムアウト期間の満了時に確認応答メッセージ412の送出を行う。
従って、方法は、トンネルのパッセンジャーストリーム毎に第1のブロックされたパケット410のトンネル終点TEP101による処理の日時T0を判定する(チャネルでの再送により考慮されるストリームの場合、第1のブロックされたパケットは再送中のパケット410であると考えられる)。
トンネルのRTTの連続測定の後、方法は、ストリーム毎に確認応答メッセージ412の送信がプログラムされる日時t1を判定する。この日時t1は(t0 + 2.RTT - Δ)に対応する。ここで、Δは数ミリ秒の安全余裕度である。尚、各サーバ110−A、110−BのRTOに対応する期間はトンネルの2.RTTにほぼ等しく、発明の予防修正は、各サーバのRTOをゼロに再設定して満了にならないようにRTOの満了前に確認応答メッセージ412を各サーバに送出することからなる。
この目的のために、入力はサーバ110−A及び110−Bに対する確認応答メッセージ412の生成に必要な情報を含むタイムアウトテーブル510(図5を参照)に記録される。
ブロックがトンネルにおいて継続する場合、1つ以上の第2のタイムアウト期間を判定し、他の確認応答メッセージ412を考慮されるサーバTCP110−A、110−Bに送出するための1つ以上の日時t2を判定するのが好ましい。リモートLAN104から到着し且つトンネルにより搬送されるクライアント112−A、112−Bにより起動される真の確認応答411を受信すると、後続するタイムアウト期間は削除される(トンネル終点TEP101により生成される確認応答メッセージ412の後続の送出がない)。
更に、生成される確認応答412に対応するクライアント112−A、112−Bにより起動される真の確認応答411は、確認応答メッセージを過度に送出しないようにフィルタリングされる。実際には、例えば3つの重複確認応答(「重複ACK」)の蓄積により、サーバは回避される誤りがネットワークにおいて発生したと解析により判断する。
次に図5を参照すると、データ構造の種々のテーブル550、501、510及び520が提示される。各データストリームは、送信元IPアドレス、送信元TCPポート、並びに宛先IPアドレス及び宛先TCPポートにより特徴付けられる。尚、TCP通信が双方向通信であるため、同一のTCPセッションは2つのデータストリームを搬送できる。以下において、限定しない例として各テーブルを説明する。
テーブル550は、トンネル終点における有効なストリームのテーブルである。用語「有効なストリーム」は、終了していない確立したTCPセッションと関連するストリームを意味すると理解される。このテーブル550は以下を含む。
−ストリーム毎にそのストリームに割り当てられ且つストリームに対する他のデータ構造の参照としての役割を果たす固有の識別子を表すフィールド551;
−TCPセッションの送信元IPアドレス及び宛先IPアドレスをそれぞれ表すフィールド552及び554;
−TCPセッションの送信元ポート及び宛先ポートをそれぞれ表すフィールド553及び555;
−接続によりサポートされる確認応答メッセージの種類に対応するフィールド556。例えば、従来の種類の確認応答(ACK)又は選択的確認応答(SACK)。
テーブル501は、トンネルで転送されるテーブル550の有効な各ストリームに対するTCPパケット410に関する複数のデータを表す。トンネルで転送され且つまだ確認されていないパッセンジャーストリームの各TCPパケットに対するテーブルへの入力が1つ存在する。このテーブル501は以下を含む。
−TCPセグメント/パケットがトンネルに送出される日時等のトンネル終点101によるTCPセグメント/パケットの処理の日時t0を表すフィールド502(パケット401をカプセル化するのに必要な時間を監視するために、殆どの場合、この値はローカルLANから到着するトンネル終点によるパケット410の受信の日時により識別される);
−ストリーム識別子551を表すフィールド503;
−パッセンジャーストリームパケットのデータシーケンス番号n、即ち、考慮されるストリーム551に対してLANから到着するトンネル終点101により受信されるTCPデータシーケンス番号(TCPパケット410、即ち、パッセンジャーセグメント)を表すフィールド504;
−トンネルのキャリアのキャリアパケットのデータシーケンス番号k、即ち、フィールド504で示されるパッセンジャーセグメント(TCPパケット410)を搬送するパケットのキャリア(キャリアパケット)のTCPデータシーケンス番号を表すフィールド505。
テーブル510は、確認応答メッセージ412の後続の生成のためのタイムアウト値格納テーブルを表す。プログラムされた各送信に対してテーブルへの入力が1つ存在する。このテーブル510は以下を含む。
−確認応答メッセージ412が生成される必要がある有効期限の日時(例えば、t1)を表すフィールド512;
−ストリーム識別子551を表すフィールド513;
−同一のストリーム識別子(フィールド503(テーブル501)及びフィールド551(テーブル550))に対してテーブル501(フィールド504)に記録されるデータシーケンス番号「n」(n = j - 1)を確認する確認応答シーケンス番号「j」を表すフィールド514。従って、TCPプロトコルによると、フィールド514は確認応答シーケンス番号「j」(これは、データシーケンス番号「j−1」が適切に受信され且つデータシーケンス番号「j」を待つことを示す)を含む。
テーブル520は、ストリーム毎に生成される確認応答メッセージ412をカウントするためのテーブルである。このテーブル520は以下を含む。
−ストリーム識別子513を表すフィールド522;
−確認応答シーケンス番号514を表すフィールド523。実際には、テーブル520は、生成された最後の確認応答412に対応するストリーム513毎に1つのエントリのみを保持する(先行するセグメントに対して先行して生成された確認応答412がより小さなデータシーケンス番号を確認し且つ生成された現在の最後の確認応答がTCPプロトコルのスケジュールされた確認応答プロトコルに従って全ての先行セグメントを本質的に確認するため、それらの確認応答412には重要性がない);
−考慮されるストリーム522の上述の確認応答シーケンス番号523に対してトンネル終点により生成された確認応答メッセージ412の数を表すフィールド524;
−考慮されるストリーム522の上述の確認応答シーケンス番号523に対して、トンネルを介してトンネル終点により受信され且つリモートクライアント112−A又は112−Bから到着する確認応答メッセージ411の数を表すフィールド525。
図6に、トンネルの送信誤りの検出時に実行されるアルゴリムを示す。このアルゴリズムは、本発明の修正方法の特定の一実施形態に含まれ、トンネル終点TEP(例えば、101)において実現される。
トンネル終点TEP101は、トンネルを移動する有効な接続のデータストリームを監視する。
説明は、トンネル100のパッセンジャーTCPストリームのルーティングを管理するトンネル終点TEPに関するのが好ましい。即ち、トンネル終点TEP101はトンネルを移動する入力ポートにおけるTCPストリームを識別できる。例えば、主な(及び特に継続する)転送に対応するTCPストリーム及び制御ストリーム(いくつかのラウンドトリップメッセージ)の2種類のTCPストリームを適切に考慮できる。従って、第1のカテゴリのTCPストリームのみが本発明の特定の一実施形態により考慮される。これはストリームに対する帯域幅の割当てを可能にし、それにより利益が得られる。例えば、そのようなストリームは、UPnP、QoS又はSBMクエリなどのサービス品質QoSクエリ、或いは1つのLAN上で有効な任意の他のQoSプロトコルに関連するクエリのトンネル終点TEPによる受信により検出可能である。ストリームに対する優先度クエリにより、それらのストリームの特性を認識できる。IEEE802.1Q規格において、優先度4〜6はストリーミング、映像転送及び音声転送にそれぞれ対応する。それらのQoSクエリは、TCPストリームの識別に後で必要とされる全ての参照(送信元アドレス、宛先アドレス、ポート、プロトコル)を搬送する。提案される例において、TCPトランスポートプロトコルストリームのみが考慮されることが明らかである。
更に、TCP接続の開始(SNYフラグを含むTCPパケット、付録を参照)の検出時、応用プロトコルの更に綿密な解析により、転送特性の知識が得られる。例えば、http応用プロトコル(253)を搬送するTCPストリームは、要求された媒体の種類を表す情報を含む(MIMEタイプ「video/mpeg」の映像の場合はhttp GETメッセージ)。これらの例は、限定しない例として与えられる。
本発明の特定の一実施形態において、上述のように識別されない任意の他のTCPストリームがトンネル終点TEP101による管理制御なしでトンネルに搬送される例を考慮する。これには、非常に重要なストリームに対してトンネル終点TEP101の利用可能なプロセッサ及びメモリリソースを保持する利点がある。一変形例において、本発明の方法がトンネルを移動する全てのTCPストリームに適用可能であることは明らかである。
特定の別の実施形態において、各TCP接続により使用される確認応答の種類が更に判定される。SACK拡張(文献RFC2018に準拠する)は、TCPメッセージの2つのオプションのフィールドを使用する。第1のフィールドは、接続が開始された時にTCP SYNセグメントにおいて検査されるか又は検査されない「SACK許可」起動オプションであり、SACK機構を後で使用する可能性を示す。第2のオプションは、TCP接続のセットアップ時に許可される場合に選択的確認応答の送信中に検査されるSACKオプションである。
ストリームのテーブル550(図5を参照)は、新しいTCP接続の開始/終了毎に定期的に更新される。更に、テーブル501(図5を参照)は、図1を参照して説明される環境においてTCPクライアント/サーバの対(110−A及び112−A)等により受信されるデータセグメント及び確認応答を管理する。
本発明は、テーブル550を埋める方法を特許請求することを目的としない。この目的のためにいくつかの従来技術が存在する。
考慮されるストリームに対して、トンネル終点TEP101は、トンネル終点TEP101を通過するデータ(DATA)のデータセグメント(パケット)のTCPシーケンス番号を保持する(テーブル501)。これは、トンネル終点TEP101がトンネルに送出されたが確認されていないパケットの数(flightsize)を随時認識することを意味する。
更に、トンネル終点は、トンネルのTCPチャネルに対して開かれたネットワークコネクタ又はソケットの特性を取得する(例えば、トンネルの誤りを認識することを可能にするAPI「Unix(登録商標) Socket Interface」を使用して)。APIは「Application Programming Interface」を意味する。
変更TCPプロトコルスタックは、テーブル501を埋めるためにトンネル終点TEP101により使用されるのが好ましい。プロトコルスタックはトンネルのパッセンジャーストリームのデータを送出するコマンドをトンネル終点TEP101のルーティング機能を介して受信中にテーブル501を直接更新するか、或いはAPI「Unix(登録商標) Socket Interface」を介してデータを送出するコマンドに応答してトンネルのTCPデータシーケンス番号に関する追加の情報が示され且つテーブル501を更新するのがトンネル終点TEP自体である。
トンネルにおいて誤りが検出された時、API「Unix(登録商標) Socket Interface」は、本発明のアルゴリズムに警告でき、特に図6のステップ600を再開できる。尚、トンネルTCP自体が損失パケットの再送を管理する。
ステップ601は、テーブル501と考慮されるパッセンジャーストリーム(識別子503)のトンネルのTCPキャリアの損失パケットのデータシーケンス番号(識別子505)及びTCPキャリアの損失パケットにより転送された搬送されたパケット410のデータシーケンス番号(図中符号504)の知識とから判定することからなる。
ステップ602において、本発明は、テーブル501に基づいて、トンネルで搬送される他の各ストリームに対して、ステップ601で判定されたパケット410の後に送出される第1のデータシーケンス番号を判定する。これらは、相関的なTCPサーバに対する本発明のメッセージの生成の原理が適用されるデータシーケンス番号である。
ステップ603において、上記規定されているように、適切なパッセンジャーTCPストリームのうちの一部の選択的スケジューリングが行われても良い。ステップ604及び605を実行するために、選択されたストリームのみが1つずつ考慮される。選択的スケジューリングが行われない場合、先に判定された全てのストリームがステップ604及び605を実行するために1つずつ考慮される。
スケジューリングに対していくつかのオプションが可能である。
−スロースタートフェーズ(付録を参照)のTCPストリームは、制限(SSTHRESH)が演繹的に認識されないこのフェーズにおける輻輳ウィンドウの更なる実質的な増加の結果として優先度を有すると考えられる;
−本発明は、安定化フェーズ(これは輻輳回避フェーズであり、付録を参照)においてTCPストリームのウィンドウサイズの縮小を回避するのが好ましい。しかし、ウィンドウのサイズ縮小は殆ど影響を及ぼさない;
−クライアントにより送出される機器ウィンドウ(又は広告ウィンドウ、付録を参照)の値は、ビットレートの増加に対する最大の余裕を提案するストリームを認識するために使用される;
−優先度を有すると考えられるストリームは、601で判定されたパッセンジャーストリームに非常に近接する時間にデータを送出した(即ち、トンネルでの再送が行われた)ストリームである。尚、601で判定されたストリームは、本発明の修正アルゴリズムが適用される最初のストリームである。
ステップ604は、本発明に従って生成された確認応答メッセージ412をTCPサーバに向けて送出する第1の日時(第1のタイムアウト)t1を判定するために使用される。
ステップ605において、確認応答メッセージ412の送出はプログラムされたディスパッチのテーブル510にプログラムされる。
第1の送信日時t1の判定の特定の面を示しても良い。図8のステップ807を参照して詳細に説明するように、第2の送信日時t2(第2のタイムアウト)は後でプログラムされる可能性が高い。
ステップ604及び605が適用されるトンネルのパッセンジャーストリーム毎の確認応答メッセージ412の第1の送信日時t1は、トンネルのRTTの連続測定の値(全てのパッセンジャーストリームに共通のパラメータ)及び考慮されるパッセンジャーストリームの第1のブロックされたパケットのトンネル終点101による処理の日時t0(1つの日時t0はストリーム毎に特有である)に大きく依存する。第1のタイムアウトの起動はストリーム別に行われ、可能な限り割り込まないようにストリームのアクティビティと連携される。
尚、確認応答メッセージ412の生成(図8のアルゴリズムの起動)のためにプログラムされる第1の送信日時t1は、t1 = t0 + 2.RTT - Δにより取得される。式中、Δは数ミリ秒の安全余裕度(例えば、トンネルRTTの10%)である。
図7は、トンネルのパッセンジャーTCPストリームに対するトンネルから到着する確認応答の受信時に実行されるアルゴリズムを示す。このアルゴリズムは、本発明の修正方法の特定の一実施形態に含まれ、例えばトンネル終点TEP(101)において実現される。
ステップ700において、トンネル終点TEP101は、パッセンジャー接続からのTCP確認応答メッセージ(例えば、図4に関しては、サーバ110−Aによるセグメント410のディスパッチ後にクライアント112−Aから到着する確認応答411)の受信に対して警告される。
ステップ701において、トンネルを介して送出された1つ以上のセグメントデータシーケンス番号(パケット)410に対応して、クライアント112−Aから到着する確認応答411を受信後、その確認応答411の解析が行われる。この確認応答411は従来の確認応答であっても良く(文献RFC793に準拠する)、SACKタイプであっても良い(文献RFC2018に準拠する)。何れの場合においても、考慮されるストリームに対して、データシーケンス番号504が確認応答411で示される確認応答シーケンス番号以下の値を有するテーブル501において入力が判定される。このように判定される全てのエントリは、テーブル501から削除される。確認応答411がSACKタイプであり、送信誤りがある特定のシーケンス番号に対して起こったことを示す場合であっても、SACKタイプのメッセージにより報告される確認応答シーケンス番号が考慮される。これは、この(最大)確認応答シーケンス番号までの全てのパケット410がローカルネットワークにおいてトンネル終点TEP102により送信されたが明らかに損失があることを意味する。
ステップ702において、考慮されるストリームに対して、本発明の修正手順が行われたか(即ち、図6のステップ605が実行されたか)を示すテーブル510の探索が行われる。これは、確認応答411を搬送する現在の接続の識別子に対応するフィールド513を有するこのテーブルのエントリを判定する場合の例である。
テスト702が否定の場合、ステップ705に直接進む。テスト702が肯定の場合、確認応答411の確認応答シーケンス番号が適用される修正測定値に対する比率を有することを検証する際に、ステップ703における探索は修正される。確認応答411により確認されたシーケンスに対応するフィールド基準514を満たすテーブル510のエントリが存在する場合、ステップ704を実行する。SACKオプションが使用される場合、フィールド514は確認応答411の確認されたシーケンスのSACKメッセージのリスト(肯定応答は、SACKオプションが使用されない従来の例に対応する)又は異常なシーケンスの(SACKメッセージの)リスト(この場合、セグメントは損失され、サーバは通知される必要がある)に同様に含まれる必要がある。
ステップ704は、トンネルにおける損失の検出後に修正測定を停止するために、タイムアウトのリスト510にプログラムされたエントリを消去することからなる。その後、ステップ705に進む。
ステップ705のテストは、修正測定が確認応答メッセージ412の生成(生成については図8を参照)後にTCP接続を不安定にしないように現在のパッセンジャーストリームに対して過去に行われたかを見つけるために使用される。ストリームが本発明により生成される確認応答メッセージ412をカウントするためのテーブル520において識別されるかを調査するために探索が行われる。
テスト705が否定の場合、通常、LAN103に送出される(ステップ708)確認応答411に対するフィルタリングは行われない。
テスト705が肯定の場合、ステップ706のテストは、確認応答412がLAN103で生成されたセグメントを確認応答411が確認するかを調査するために実行される。
テスト706の結果が否定の場合、確認応答メッセージ411がテーブル520に記録される確認応答シーケンス番号により確認されるデータシーケンス番号より大きいデータシーケンス番号を確認するかを調査する(ステップ707のテスト)。換言すると、確認応答411がテーブル520の考慮されるセグメントを含むいくつかのデータセグメント410を確認するかを調査する。テスト707の結果が肯定の場合、テーブル520の現在の入力は削除され(ステップ711)、通常、確認応答411はLAN103に送出される(ステップ708)。ステップ707が否定の場合、ステップ708に直接進む。
テスト706の結果が肯定の場合、現在の確認応答411は、本発明により生成される確認応答412(図8を参照)に完全に対応する。確認応答411の受信の統計データは更新され(ステップ709において、フィールド525が増分される)、現在の確認応答411が問題なくLAN103に中継されるかを調査する(ステップ710のテスト)。
従って、生成された確認応答412より多くの確認応答411を受信していない限り(テスト710が否定)、確認応答411は破棄される(ステップ712のフィルタリングにより)。より多くの確認応答411が受信された場合(テスト710の結果が肯定の場合)、本発明がTCPサーバ110が受信する確認応答の数の平衡を回復し、「偽の」確認応答412の生成により及ぼされる副次的影響の削除の判断基準が利用されることを意味する。即ち、上述したステップ711に進む。
確認応答411がSACKタイプの確認応答である場合、確認応答411(確認応答は肯定又は否定である)において参照されるデータシーケンス毎に上述した残りのステップ705〜708に繰り返し進むのが好ましい(図7はこれを示さない)。
図8は、確認応答メッセージ412の生成及びローカルTCPサーバへの送出に対する第1の日時t1(図6のステップ604及び605を参照)を示すタイムアウトの満了時に実行されるアルゴリズムを示す。このアルゴリズムは、本発明の修正方法の特定の一実施形態に含まれ、トンネル終点TEP(例えば、101)において実現される。
ステップ801において、確認応答412の生成動作を必要とするプログラミングテーブル510のエントリを判定する。
判定されたエントリ(ステップ802のテスト)毎に、ステップ803〜809のシーケンスを実行する。
ステップ803において、確認応答メッセージ412を作成するのに必要なパラメータを種々のテーブルから検索する。
−テーブル510は、考慮されるストリーム(フィールド513)及び確認応答412が生成される必要のある確認応答シーケンス番号(フィールド514)を示す;
−ストリームの識別子513から開始し且つテーブル550を使用し、フィールド552〜555はメッセージのIPヘッダの形成を可能にし、フィールド556はサポートされる確認応答の種類を示す。デフォルトでは、規格RFC793に従う従来の種類が常に使用されても良いが、サーバによりサポートされる場合はSACKサポートの使用が好ましいことが推奨される。
ステップ804は、確認応答メッセージ412(従来技術に従う)を作成し、それをローカルネットワーク103に送出する。
現在のエントリをテーブル510から削除し(ステップ805)、確認応答メッセージ生成統計データ412をテーブル520で増分する(ステップ806)。必要に応じて、新しいエントリを、テーブル510のフィールド524を1、及びフィールド525を0にして作成する。
予防対策として、確認応答メッセージ412の新たな生成を引き続き行おうとすることが重要である。実際には、ステップ804の現在の生成は、トンネルにおける単純な損失を克服するが、トンネルが回復されるのに1サイクルのRTTより長くかかる例を考慮するのが望ましい。従って、ステップ807のテストは確認応答メッセージ412の新たな生成の可能性を検証し、ステップ808は新しい確認応答メッセージ412をLAN103に送出するのに推奨される日時t2を計算する。
まず、メッセージが以下の2つの条件を組み合わせることにより生成されるかを調査する。
条件1:Nは1以上である必要があり、N = Nb_packet_410 - Nb_packet_412である。式中:
「Nb_packet_410」は、トンネルを通過中のパケット410の数(フィールド520の現在のエントリのフィールド523の確認応答シーケンス番号により確認されるデータシーケンス番号より大きいデータシーケンス番号)であり、ここではテーブル501において参照される;
「Nb_packet_412」は、生成される確認応答パケット412の数である(テーブル520の現在のエントリのフィールド524の値)。
換言すると、条件1は以下のようにも表すことができる。
Nb_packet_410 > Nb_packet_412
条件2:「Nb_packet_412」は3以下である必要がある。
実際には、4つ以上の同一の確認応答メッセージ412が生成される場合、それらの同一の確認応答メッセージのうち第4の確認応答メッセージは第3の重複確認応答メッセージ(「重複ACK」)であると考えられ、サーバはこれを送信誤り(これは回避される)と解釈する。
上述の2つの条件が検証されない場合、現在のエントリに対して手順は完了する(ステップ802に戻る)。
上述の2つの条件が検証された場合、ステップ808が実行される。確認応答メッセージ412の生成に対してプログラムされる新しい日時t2は以下のように取得される。
t2 = current_date + 2.RTT - Δ
式中、Δは数ミリ秒の安全余裕度であり(例えば、トンネルRTTの10%)、「current_date」は先行する確認応答生成日時412(即ち、t1)である。
送出日時t2が判定されると、ステップ809において新しい送出動作がプログラムされる。
第1の送出日時t1と同様に、ステップ808及び809が適用されるトンネルのパッセンジャーストリーム毎に確認応答メッセージ412を送出する第2の日時t2は、トンネルのRTTの連続測定の値(全てのパッセンジャーストリームに共通のパラメータ)及び日時t1(各ストリームに特有)に大きく依存する。従って、第2のタイムアウトの起動(t2の判定)はストリーム別に行われ、可能な限り割り込まないようにストリームのアクティビティと連携される。
本発明のアルゴリズムにより選択されるストリームのためのサーバ110−A、110−Bとクライアント112−A、112−Bとの間のTCP接続に対する送信を停止すること(検出されるTCP SYN−ENDメッセージ、付録を参照)により、図8のアルゴリズムのセットアップが自動的に停止することは明らかである。この目的のために、TCP接続が停止するとすぐに、終了したTCP接続を参照するエントリはテーブル550、501、510及び520から除去される(図8には示さない)。
図9は、本発明のアルゴリズムを実現するトンネル終点101のPEPシステムの関数型アーキテクチャを示す概略図である。
トンネル終点TEP101は、LAN103に対する2つの通信ポート、即ち、入力ポート910及び出力ポート920により主に形成される。実際には、それらの2つのポートは、同一のイーサネットタイプの双方向物理インタフェースを有する(図10によると、ネットワークポート1020)。
それらの2つのポートは、2つのLAN103及び104を接続するトンネルのTCPチャネル930に接続される。そのトンネルは、トンネルフレームのパッセンジャーストリームをカプセル化するタスクを有するマルチプレクサ931及びトンネルのTCPキャリアにより搬送されるフレームを非カプセル化するタスクを有するデマルチプレクサ932を介して通信する。
LAN103からイーサネットフレームが到着した時、ストリームセレクタTCP911は図6のステップ600を参照して詳細が説明される選択手段を適用する役割を果たす。
エントリフレームが選択されなかったTCPストリームに関係する場合、このイーサネットフレームは、カプセル化されてトンネルに送出されるためにマルチプレクサ931に提供される。
エントリフレームが選択されたTCPストリームに関係する場合、エージェント912は、搬送されるTCPセグメントの種類(DATA又はACK)を解析し、テーブル550及び501の統計データを更新する。
トンネルのコントローラ940から送信誤り警告を受信すると、確認応答メッセージ412の生成のためのPEPシステム913は図6で説明されるアルゴリズムを実行する。このPEPシステム913の内部のタイムアウト機構(テーブル510)の設定により、適切な瞬間に図8のアルゴリズムの手順が再開される。
逆に、トンネルからフレームを受信すると、デマルチプレクサ932は元のイーサネットフレームをストリームスイッチ933に与える。ストリームスイッチ933は、フレームがTCP接続に関係するかを確認するための調査を行う役割を果たす。調査の結果が肯定の場合、そのTCP接続が監視されるかを調査する(TCPストリームセレクタ911と同一の基準を探索する)役割を果たす。TCP接続が監視されない場合、イーサネットフレームは出力インタフェースモジュール936を介してローカルエリアネットワーク103に送信される。
TCP接続が監視される場合、イーサネットフレームは接続の統計データを更新する(図7のアルゴリズムのステップ701)役割を果たすモジュール934に送信される。モジュール935は、特にメッセージ411をフィルタリング(削除)する能力を有する図7のアルゴリズムを実行する。確認応答メッセージ412が既に送信された確認応答メッセージ411に対応しない任意のイーサネットフレームは、出力インタフェースモジュール936を介してLAN103に送出される。モジュール935は、受信される(図7を参照して説明したように)確認応答メッセージ411に対するタイムアウト機構の起動/停止に関してPEPシステム913に通知する。
図10は、本発明の技術の特定の一実施形態を実現するように適応された汎用通信デバイス1000の概略構成を示す。例えば、図1を参照して上述したトンネル終点101又は102は汎用デバイス1000と同一である。
この汎用デバイス1000は、グラフィックカードに接続され且つ汎用デバイス1000にマルチメディア情報を配信する画像、映像又は音声を格納する任意の手段に特に接続されてもよい。
汎用デバイス1000は通信バス1002を有し、通信バス1002には以下のものが接続される。
−中央処理装置1003(例えば、CPUと呼ばれるマイクロプロセッサ);
−上述の1つ又は複数のソフトウェアプログラムを含むことができるROMと呼ばれる読み出し専用メモリ1004;
−上述の1つ又は複数のソフトウェアプログラムにより実行中に作成及び変更される変数及びパラメータを記録するのに適するレジスタを含むランダムアクセスメモリ1006(RAMと呼ばれるキャッシュメモリ);
−例えば(図1の場合)LAN103/104及びインターネット107である少なくとも2つの分散型通信ネットワーク1020にリンクされる通信インタフェース1018。インタフェースは、それらのネットワークに対してデータを送受信できる。
汎用デバイス1000は、以下を更に有する(しかし、これはオプションである)。
−キーボード1010、或いは例えばマウス1011又は光ペンシルであるポインティングデバイス等の任意の他の手段を使用して、本発明に従って1つ又は複数のプログラムと対話できるネットワーク管理者に対するグラフィカルユーザインタフェースとして動作し且つ/又はデータを見るのに使用される画面1008;
−上述のプログラムを含むことができるハードディスクドライブ1012;
−USBメモリスティックの読み出しを可能にする外部ディスクドライブ1014。
通信バス1002は、汎用デバイス1000に含まれるか又はこのデバイスに接続される種々の手段の間の通信及び相互運用を可能にする。更に一般的には、中央処理装置1003は、通信バス1002を介して、汎用デバイス1000に含まれる任意のデバイスに命令を直接通信できるか又は別の汎用デバイスを使用して通信できる。
汎用デバイス1000が本発明の一実施形態に係る方法を実現することを可能にする上述の各プログラムの実行可能コード(PEP機構を管理する方法)は、ハードディスクドライブ1012、読み出し専用メモリ1004又はUSBスティック1016等の不揮発性メモリに格納される。
中央処理装置1003は、本発明の一実施形態に係る1つ又は複数のプログラムのソフトウェアコードの命令又は部分の実行(PEP機構を管理する方法)を制御及び指示する。機器の電源が投入されると、上述の不揮発性メモリ(1012、1004又は1016)に格納される1つ又は複数のプログラムは、本発明の1つ又は複数のプログラムの実行可能コードを含むランダムアクセスメモリ1006、並びに本発明の方法の本実施形態を実現するのに必要な変数及びパラメータを記憶するレジスタに転送される。
尚、本発明に係るデバイスを含む通信装置は、プログラムされた装置であってもよい。この装置は、例えば特定用途向け集積回路(ASIC)にハードワイヤードされる1つ又は複数のコンピュータプログラムのコードを含む。

付録:TCPプロトコルに関する注意
TCPプロトコル(RFC793規格により規定されるような伝送制御プロトコル)は、速度及び品質の主な判断基準に従ってインターネットでデータを転送するために作成されたARQプロトコルである。受信機に到着する過度なトラフィックを管理するために、少なくとも2つの機構が使用される。即ち、第1の機構はバッファ受信メモリを使用し、第2の機構はストリームの制御をセットアップする。
TCPプロトコルは、データグラム配信の制御を組み込まないIPプロトコルを使用するが、データを確実に転送するために使用される。実際には、TCPプロトコルはクライアント(クライアントデバイス又は受信側マシンとも呼ぶ)及びサーバ(サーバデバイス又は送信側マシンとも呼ぶ)により使用される確認応答システム又はACKとも呼ぶ受信確認応答システムを有し、データの効率的な相互受信を確実にする。データセグメント(データパケットとも呼ぶ)が送出される場合、順序番号(データシーケンス番号とも呼ぶ)はそのデータセグメントと関連付けられる。データセグメントを受信すると、受信側マシンは、1増分された受信セグメントのデータシーケンス番号に等しい受信番号(確認応答シーケンス番号とも呼ぶ)の確認応答が付随するフラグACKが1(これが受信の確認応答であることを報告するため)のデータセグメントを返す。実際には、確認応答シーケンス番号は、待っている次のセグメントのデータシーケンス番号(受信された最後のセグメントのデータシーケンス番号ではなく)に対応する。
データ送信及び受信の確認応答により実行される通信処理がデータ順序番号(又はシーケンス番号)に基づくため、送信側マシン(サーバ)及び受信側マシン(クライアント)は、他方のマシンの初期順序番号(初期シーケンス番号又はISNと呼ばれる)を認識する必要がある。
接続のセットアップ
TCP接続は、以下の3段階でセットアップされる。
−第1段階において、クライアントは、SYNフラグ(又はSYNメッセージ)を含むデータセグメントを送出し、これが初期データシーケンス番号(ISN = x)を有する同期セグメントであることを報告する;
−第2段階において、サーバはクライアントから到着する同期セグメントを受信し、受信の確認応答、即ち、フラグACKが1であり、フラグSYNが1であり且つ自身のシーケンス番号(ISN = y)を含むデータセグメントを送出する。しかし、サーバは先行パケットを確認する必要もあり、これは1増分されたクライアントの初期順序番号(ack = x + 1)を含む受信番号(確認応答シーケンス番号)の確認応答により行われる;
−第3段階において、クライアントは受信の確認応答、即ち、同期セグメントではないためにフラグACKが1であり且つフラグSYNが0であるセグメントをサーバに送出する。その順序番号(データシーケンス番号)は増分され(seq = x + 1)、確認応答受信番号(確認応答シーケンス番号)は1増分されたサーバの初期順序番号(データシーケンス番号)(ack = y + 1)を表す。
「3ウェイハンドシェーク」と呼ばれるこのフェーズを完了すると、2つのアプリケーションは、接続のセットアップを保証するバイトを交換できる。
ストリーム制御は、指定受信者のレベルでメモリ及びプロセス等のリソースの割当てを管理する。一般に、ストリーム制御に従って、宛先は、宛先にデータを送出する全ての送信元により実現される送信処理量の制限を設定する。送信元及び宛先は、クエリ及び受信の確認応答を含むメッセージを交換することによりデータの転送を連携して行う。送信元は、パケットの送出を開始する前に、送信開始の許可を取得することを目的とする要求を宛先に送出する。このクエリに応答して、宛先は、送信元が追加の許可なしでその宛先に送信できるパケット数の識別を含むメッセージを送出する。一般に、この数は「ウィンドウサイズ」と呼ばれる。その後、送信元は、許可されたパケット数を宛先に送出し、宛先がそれらのパケットの受信を検証するのを待つ。宛先は、パケットを正常に受信した後、パケットが正常に受信されたことを示し且つある特定の場合には送信元が別のパケットを送出することを許可する受信の確認応答(確認応答)を含むリターンメッセージを送信元に送出する。従って、送信元から宛先に移動するネットワーク上のパケット数は許可されたウィンドウサイズを超えることはない。
以下において、TCPウィンドウの種々の名前を示す。
−TCPウィンドウ:接続のセットアップ中に検証される初期値であり、接続期間中に許可される最大値である;
−輻輳ウィンドウ(CWND):クライアントに対してアドレス指定されたTCPパケットにおいてサーバから送出される現在のウィンドウの値;
−確認応答ウィンドウ(肯定応答ウィンドウ又は広告ウィンドウ):クライアントの一部におけるメモリ占有を示すACK TCPパケットでサーバに送出されるウィンドウの値;
−スライディングウィンドウ:最後の確認応答TCPセグメントが到着してから送信されるデータ数を認識することを可能にするサーバ内部のウィンドウの値。
TCPウィンドウサイズが大きいことにより送出が促進される。ウィンドウが示す数より受信されるデータ数が多い場合、ウィンドウ外のデータは拒否される。この損失により、再送の数は多くなり、ネットワーク及びTCPに無駄に過度な負担をかけることになる。小さなサイズのウィンドウの使用は、ラウンドトリップ時間又はRTTにある特定の追加の遅延を加えることにより処理量を分割するが、再送に起因するネットワークの過度な負荷を制限する際に処理量を分割する。更に、非常に小さなウィンドウを開くことは、データに対するヘッダの重みを増加することにより性能を低減する。
それらの機構のセットアップを行った場合でも、使用中のネットワークにおいて、いくつかの送信元はネットワークにおいて2つ以上の宛先にストリームを同時に送出する。そのような多すぎるストリームが非常に短時間に単一のルータに集中した場合、そのルータのバッファメモリの制限される容量はストリームのそのボリュームを処理できなくしてしまい、そのルータは一部のパケットを拒否又は破棄してしまう。そのような状況が発生した場合、ネットワークは輻輳していると言う。そのような状況が発生した場合、ネットワークにおける転送は非常に遅くなり、ネットワークの処理量は低下する。ネットワークの特定のリソースが再送に使用されるため、ネットワークが過負荷状態になった場合、ネットワーク全体のブロッキング及び輻輳の伝播が発生する危険性は高い。
TCP MSS(最大セグメントサイズ)フィールドの値は、ローカルシステムが受け入れ可能なIPデータグラム毎のTCPデータの最大量を示す。IPデータグラムは、送出されると、いくつかのパケットに分割される。理論上、この値は値65495に到達可能である。しかし、そのような大きな値が実現されることはない。一般に、端末システムは、MTUインタフェース(出力インタフェース最大転送単位)を使用する。値40は、MTUインタフェースからTCP MSSフィールド値として演繹される。例えば、イーサネットプロトコルのTCP MSSフィールド値は1460(1500 - 40 = 1460)である。
TCP MSSフィールドの値は、接続をセットアップするのに使用され且つ信号SYNを含むパケットに入力される。各側が自身のTCP MSSフィールド値を送出する。各側が同一のTCP MSSフィールド値を使用する必要はないが、各側はリモート局により許可されたデータより多くのデータを送出できない。TCP MSSフィールドの値は、TCPヘッダオプションの最大セグメントサイズ(MSS)で送出される。
尚、接続インタフェースのバッファメモリのサイズのデフォルト値は実現例の機能によって非常に異なる。Berkeleyから得られる古い実現例は、TCP受信/送出バッファメモリに対して4Kbのデフォルト値を要求するが、より最近のシステムは更に大きな値(例えば、最大64Kb)を実現する。例えばWindows(登録商標) XP(登録商標)において、受信時のウィンドウサイズの現在の値は、TCP接続がセットアップされた時に交渉された最大セグメントサイズ(MSS)単位で自動的に調整される。
ストリームの制御
TCPプロトコルは、輻輳を管理するためにいくつかのアルゴリズムを使用する。更に詳細には、スロースタート及び輻輳回避アルゴリズムを使用する。それらのアルゴリズムの各々は、既定の時点において通過中の未確認のバイト数を制限する輻輳ウィンドウ(CWND)を操作することによりサーバの送出処理量を管理する。既定の輻輳ウィンドウ値に対する可能なTCP処理量は、確認応答が受信される際の速度により判定される。1つのデータを送出してから確認応答を受信するまでにかかる時間は、TCPラウンドトリップ時間(RTT)と呼ばれる。
接続が開始されると、可能な限り迅速に帯域幅の値を得るために、スロースタートアルゴリズムは輻輳ウィンドウ(CWND)を迅速に増加するためにセットアップされる。可変SSTHRESH(定常閾値)は、2つのフェーズを区別するためにサーバにより維持される。セグメントの損失があると送信機が判断した場合、送信機はネットワーク過負荷の暗黙信号としてその情報を処理し、輻輳ウィンドウを迅速に低減する。大よその輻輳閾値SSTHRESHを演繹した後、TCPは、利用可能な追加の帯域幅を占有するために輻輳ウィンドウの値を更にゆっくり増加する輻輳回避アルゴリズムをセットアップする。
スロースタートフェーズ中(接続を開始する時又はタイムアウトを超えた後)、始動器は1MSSのCWNDウィンドウ設定動作から開始し、CWNDは確認応答を受信する毎に1*MSSだけ増加する。輻輳ウィンドウCWNDはRTT毎に約2倍になる(指数関数的増加)。輻輳回避フェーズ中(輻輳回避中)、CWNDの増加はRTT毎に1*MSSに制限される(加法的増加)。
性能の低下は、伝播時間が長時間であるインターネットにおいて示される。これは、送信ウィンドウが新しいセグメントを迅速に送出することを防止する(確認応答は送信ウィンドウのサイズの増加を判定し、確認応答は長時間後に到着する)。
輻輳及び重複確認応答(重複ACK)の検出
TCP接続に対して、サーバ装置が同一の確認応答シーケンス番号を有するいくつかのACKを受信する場合、用語「重複確認応答」(又は重複ACK)が使用される。サーバは、指定されたデータシーケンス番号に対応するデータセグメントを再送する。サーバが重複ACKを受信しない場合又はサーバがデータセグメント送出後の判定された期間中に他のACK(別の確認応答シーケンス番号を有する)を受信しない場合であっても、サーバはその未確認のデータセグメントを再送する。
一般に、TCPクライアントは、順序が違うデータセグメントの受信時に(即ち、TCPクライアントが予想したデータシーケンス番号より大きいデータシーケンス番号のデータセグメントを受信した場合に)重複確認応答又は重複ACKを送出する。重複ACKの目的は、データセグメントが順序を間違って受信されたことをサーバに通知し、予想されたデータシーケンス番号を知らせることである。重複ACKのバーストは、伝送経路における損失データセグメント及び/又はデータセグメントの再スケジューリングの結果である。
高速再送アルゴリズム及び高速回復アルゴリズム
TCPプロトコルは、重複ACKの受信により識別されるパケット損失を迅速に検出してそれに反応するためにIETF RFC2581インターネット規格に記述される高速再送アルゴリズム(機構)を使用する。高速再送アルゴリズムは、3つの重複ACK(実際には、4つの同一の確認応答又はACKであり、想定される問題が正常に戻されたことを示す他の確認応答を含まない)の到着をデータセグメントが損失されたことの指示と考える。2つ以下の重複ACKが受信される場合、考慮されるセグメントに対する確認応答により解決され追従されるパケットの非スケジューリングの短時間の問題であったと考えられる。これらの3つの重複ACKを受信すると、サーバはRTOの満了又は再送タイムアウトを待たずに失われたデータセグメントを再送する。
その後、高速回復アルゴリズムは開始され、非重複ACKを受信するまで新しいデータの送信を管理する。TCPクライアントが別のデータセグメントの到着時にのみ重複ACKを送出できるため、これは、1つのデータセグメント(しかし、予想されたデータセグメントではない)が受信され、ネットワークのリソースをそれ以上使用しないことを意味する。従って、常にネットワーク上にアクティビティが存在し、TCPサーバは新しいデータセグメントを送信し続けられる(送信は低減された輻輳ウィンドウCWNDで継続する)。
上述の2つのアルゴリズム(高速再送アルゴリズム及び高速回復アルゴリズム)は、TCPサーバにおいて以下のように共にセットアップされる。
1.第3の重複ACKの受信時、値SSTHRESHは以下の最大値を超えないように変更される:
SSTHRESH = max(FlightSize/2, 2*MSS)
式中:
−値「flightsize」は、サーバがクライアントから確認応答をまだ受信していない通過中のパケットの推定を与える;
−値MSSは、ローカルシステムが伝送経路において受け入れ可能なIPデータグラム毎のTCPデータの最大量を示す。
2.損失されたと考えられるセグメントの再送及び輻輳ウィンドウCWNDの(SSTHRESH + 3*MSS)への更新。これにより、輻輳ウィンドウは、ネットワークに出力され且つクライアントにより正確に受信されているセグメント数(3)だけ増加する。
3.サーバにより受信される新しい各重複ACKに対して、輻輳ウィンドウCWNDは1*MSSだけ増加する。
4.輻輳ウィンドウCWNDの新しい値及びクライアントにより示される確認応答ウィンドウ(「広告ウィンドウ」)の値により許可される場合、データセグメントを送信する。
5.再送元においてデータセグメントのクライアントによる受信を確認する次のACKの受信時、輻輳ウィンドウCWNDはステップ1で計算された値SSTHRESHに低下する。このACKメッセージは、再送の後、当然1サイクルのRTTより前に到着している(或いは、問題の原因がデータセグメントのクライアントへの間違った順序の配信であった場合には更に早い)。TCPビットレートは、損失が発生した時のビットレートの半分に低下するため、輻輳回避のフェーズが存在する。
最も一般的なTCPオプション
選択的確認応答(SACK)
SACKオプションは、選択的再送[RFC2018]のポリシーを実現するために使用されるTCPプロトコルオプションである。このオプションは、損失の回復のために更に詳細な情報を供給することを目的とする。実際には、累積肯定ACKは制限された情報を与え、TCP送信元はRTT毎に1つのパケット損失の存在のみを知る。SACK拡張は、この制限を超えるTCPプロトコル手段を与える。
SACK機構は、受信機(クライアント)がTCPストリームにおいてシーケンスの中断を認識するとすぐに実現される。受信機は、シーケンスにおいて受信した最後のバイト番号(TCPエントリの従来のACKフィールド)及び現在のウィンドウで観察されるシーケンスにおける最後の中断の位置を示すために使用される現在正確に受信されているバイトの連続範囲のリストを含む選択的確認応答(選択的ACK)を送信機に送出する。
選択的確認応答[RFC2018に従う]は、損失毎に1つ以上のラウンドトリップを実行する必要なくウィンドウ毎にいくつかのセグメントの損失を克服するために使用される。
「送信制限」アルゴリズム
上述したように、既定のセグメントの再送は、3つの重複ACKの受信後に実行される。後続するセグメントに対する他の損失がある場合、これは、受信される最後の連続するシーケンス番号の正確なACKを受信するまでに更に1サイクルのRTTを必要とする。識別されたセグメントが損失されたことを理解するのに3つの他の重複ACKが必要とされる。
現在のCWNDウィンドウによっては、サーバは、必要な全ての重複ACKを生成するのに十分な数のデータセグメントを送出できない可能性がある。
従って、RTOは満了になり、サーバはスロースタートモードになる。
規格RFC3042(Enhancing TCP's Loss Recovery Using Limited Transmit(送信制限を使用する拡張TCPの損失回復))は、タイムアウトの回数を減少することを目的とする。従って、送信制限アルゴリズムは、受信された最後の2つの重複ACKの各々に対してサーバがデータセグメントを送出することを推奨する。この方法により、クライアントが誤りを通知するのに必要な3つの重複ACKを送出できる確率は増加する。
送信制限機構は、SACK機構と共に又はSACK機構とは関係なく使用できる。

Claims (19)

  1. トンネルのトランスポートチャネル上のデータストリームの送信を管理する方法であって、各ストリームの送信はパケットによりスケジュールされるトランスポートプロトコルに従って確認応答と共に前記トランスポートチャネル上に実行され、前記トンネルは第1のサブネットワーク及び第2のサブネットワークにそれぞれ接続される第1のトンネル終点と第2のトンネル終点との間に実現され、各ストリームは送信側デバイスから受信側デバイスに送信され、前記送信側デバイス及び前記受信側デバイスのうち、一方のデバイスは第1のサブネットワークに接続され、他方のデバイスは第2のサブネットワークに接続され、前記第1のトンネル終点により実行され、前記方法は、
    前記トンネルのトランスポートチャネル上のパケットの損失を検出する工程と、
    前記損失によりトンネルのトランスポートチャネル上でブロックされた少なくとも1つのパケットを有する少なくとも1つのストリームを識別する工程と、
    前記少なくとも1つの識別されたストリームに対して、前記損失によりブロックされたパケットを送信した送信側デバイスに、前記トンネル上に少なくとも1つの確認応答を生成及び送信する工程とを有することを特徴とする方法。
  2. 少なくとも1つの既定の識別されたストリームに対して、前記少なくとも1つの生成された確認応答は、前記損失によりブロックされた前記識別されたストリームの第1のパケットに先行するパケットの確認応答であり、損失が検出されたパケットが属する識別されたストリームに対して、前記損失によりブロックされた第1のパケットは、損失の検出に続いて前記トンネルのトランスポートチャネル上で再送されるパケットであると見なされることを特徴とする請求項1に記載の方法。
  3. 少なくとも1つの既定の識別されたストリームに対して、少なくとも1つの確認応答を生成及び送信する前記工程は、
    前記既定の識別されたストリームを送信する送信側デバイスと関連付けられる再送タイムアウトの期間を推定する関数及び前記損失によりブロックされる前記識別されたストリームの第1のパケットに先行する前記パケットのトンネル終点による処理の処理瞬間の関数として第1の確認応答を送出する第1の送出瞬間t1を判定する工程と、
    前記第1の送出瞬間t1に前記第1の確認応答を送信する工程とを有することを特徴とする請求項1に記載の方法。
  4. 前記第1の送出瞬間t1は、t1 = t0 + RTO' - Δにより定義され、式中、
    t0は、前記損失によりブロックされる前記識別されたストリームの第1のパケットに先行する前記パケットの前記第1のトンネル終点における処理の前記処理瞬間であり、
    RTO’は、前記既定の識別されたストリームを送信する送信側デバイスと関連付けられる再送タイムアウトの期間の前記推定であり、
    Δは、予め定められた安全余裕度であることを特徴とする請求項1に記載の方法。
  5. 少なくとも1つの既定の識別されたストリームに対して、少なくとも1つの確認応答の生成及び送信の前記工程は、
    t1が1回目の繰り返しの場合に前記第1の送出瞬間であり又は2回目以降の各繰り返しの場合に先行する繰り返しにおいて判定される新しい送出瞬間t2である時、t2 = t1 + RTO' - Δにより定義される新しい確認応答を送出する新しい送出瞬間t2を判定する工程と、
    前記新しい送出瞬間t2において前記新しい確認応答を送信する工程との少なくとも1回の繰り返しを有することを特徴とする請求項4に記載の方法。
  6. RTO' = 2.RTTであり、RTTはトンネルにおけるラウンドトリップ時間の測定値であることを特徴とする請求項4に記載の方法。
  7. 少なくとも1つの既定の識別されたストリームに対して、少なくとも1つの確認応答を生成及び送信する前記工程において、トンネルのトランスポートチャネルを通過中であり且つ前記損失によりブロックされる前記既定の識別されたストリームのパケット数が前記既定の識別されたストリームに対して前記第1のトンネル終点により生成及び送信される確認応答の数より多いという第1の条件が検証される場合にのみ、確認応答は生成及び送信されることを特徴とする請求項1に記載の方法。
  8. 少なくとも1つの既定の識別されたストリームに対して、少なくとも1つの確認応答を生成及び送信する前記工程において、前記既定の識別されたストリームに対して前記第1のトンネル終点により生成及び送信される確認応答の数が前記既定の識別されたストリームを送信する送信側デバイスに対してパケット損失を示す予め定められた閾値以下であるという第2の条件が検証される場合にのみ、確認応答は生成及び送信されることを特徴とする請求項1に記載の方法。
  9. 少なくとも1つの既定の識別されたストリームに対して、前記第1のトンネル終点が確認応答を既に生成及び送信した前記既定の識別されたストリームの受信側デバイスからトンネルを介して到達する確認応答をフィルタリングする工程を有することを特徴とする請求項1に記載の方法。
  10. コンピュータ読み取り可能な記憶媒体であって、トンネルのトランスポートチャネル上のデータストリームの送信を管理する方法をコンピュータに実行させるためのプログラムを記憶し、各ストリームの送信はパケットによりスケジュールされるトランスポートプロトコルに従って確認応答と共に前記トランスポートチャネル上に実行され、前記トンネルは第1のサブネットワーク及び第2のサブネットワークにそれぞれ接続される第1のトンネル終点と第2のトンネル終点との間に実現され、各ストリームは送信側デバイスから受信側デバイスに送信され、前記送信側デバイス及び前記受信側デバイスのうち、一方のデバイスは第1のサブネットワークに接続され、他方のデバイスは第2のサブネットワークに接続され、前記第1のトンネル終点により実行され、前記方法は、
    前記トンネルのトランスポートチャネル上のパケットの損失を検出する工程と、
    前記損失によりトンネルのトランスポートチャネル上でブロックされた少なくとも1つのパケットを有する少なくとも1つのストリームを識別する工程と、
    前記少なくとも1つの識別されたストリームに対して、前記損失によりブロックされたパケットを送信した送信側デバイスに、前記トンネル上に少なくとも1つの確認応答を生成及び送信する工程とを有することを特徴とする記憶媒体。
  11. トンネルのトランスポートチャネル上のデータストリームの送信の管理を可能にする第1のトンネル終点であって、各ストリームの送信はパケットによりスケジュールされるトランスポートプロトコルに従って確認応答を使用して前記トランスポートチャネルに対して実行され、トンネルは第1のサブネットワーク及び第2のサブネットワークにそれぞれ接続される第1のトンネル終点と第2のトンネル終点との間に実現され、各ストリームは送信側デバイスから受信側デバイスに送信され、前記送信側デバイス及び前記受信側デバイスのうち、一方のデバイスは第1のサブネットワークに接続され、他方のデバイスは第2のサブネットワークに接続され、前記第1のトンネル終点は、
    前記トンネルのトランスポートチャネル上のパケットの損失を検出する手段と、
    前記損失によりトンネルのトランスポートチャネル上でブロックされた少なくとも1つのパケットを有する少なくとも1つのストリームを識別する手段と、
    前記少なくとも1つの識別されたストリームに対して、前記損失によりブロックされたパケットを送信した送信側デバイスに、前記トンネル上に少なくとも1つの確認応答を生成及び送信する手段とを有することを特徴とする第1のトンネル終点。
  12. 少なくとも1つの既定の識別されたストリームに対して、前記少なくとも1つの生成された確認応答は、前記損失によりブロックされた前記識別されたストリームの第1のパケットに先行するパケットの確認応答であり、損失が検出されたパケットが属する識別されたストリームに対して、前記損失によりブロックされた第1のパケットは、損失の検出に続いて前記トンネルのトランスポートチャネル上に再送されるパケットであると見なされることを特徴とする請求項11に記載の第1のトンネル終点。
  13. 少なくとも1つの確認応答を生成及び送信する前記手段は、
    少なくとも1つの既定の識別されたストリームに対して、前記既定の識別されたストリームを送信する送信側デバイスと関連付けられる再送タイムアウトの期間の推定の関数及び前記損失によりブロックされる前記識別されたストリームの第1のパケットに先行する前記パケットの前記トンネル終点による処理の処理瞬間の関数として第1の確認応答を送出する第1の送出瞬間t1を判定する手段と、
    前記第1の送出瞬間t1に前記第1の確認応答を送信する手段とを有することを特徴とする請求項11に記載の第1のトンネル終点。
  14. 前記第1の送出瞬間t1は、t1 = t0 + RTO' - Δにより定義され、式中、
    t0は、前記損失によりブロックされる前記識別されたストリームの第1のパケットに先行する前記パケットの前記第1のトンネル終点における処理の前記処理瞬間であり、
    RTO’は、前記既定の識別されたストリームを送信する送信側デバイスと関連付けられる再送タイムアウトの期間の前記推定であり、
    Δは、予め定められた安全余裕度であることを特徴とする請求項11に記載の第1のトンネル終点。
  15. 少なくとも1つの確認応答を生成及び送信する前記手段は、
    t1が1回目の繰り返しの場合に前記第1の送出瞬間であり又は2回目以降の各繰り返しの場合に先行する繰り返しにおいて判定される新しい送出瞬間t2である時、少なくとも1つの識別されたストリームに対して、t2 = t1 + RTO' - Δにより定義される新しい確認応答を送出する新しい送出瞬間t2を判定する手段と、
    前記新しい送出瞬間t2に前記新しい確認応答を送信する手段とを有し、それらの手段は少なくとも1回起動されることを特徴とする請求項14に記載の第1のトンネル終点。
  16. RTO' = 2.RTTであるのが有利であり、RTTはトンネルにおけるラウンドトリップ時間の測定値であることを特徴とする請求項14に記載の第1のトンネル終点。
  17. 少なくとも1つの既定の識別されたストリームに対して、トンネルのトランスポートチャネルを通過中であり且つ前記損失によりブロックされる前記既定の識別されたストリームのパケット数が前記既定の識別されたストリームに対して前記第1のトンネル終点により生成及び送信される確認応答の数より多いという第1の条件を検証する第1の検証手段と、
    前記第1の検証手段が肯定の検証を行った場合に前記少なくとも1つの既定の識別されたストリームに対して少なくとも1つの確認応答を生成及び送信する前記手段を起動する手段とを更に有することを特徴とする請求項11に記載の第1のトンネル終点。
  18. 少なくとも1つの既定の識別されたストリームに対して、前記既定の識別されたストリームに対して前記第1のトンネル終点により生成及び送信される確認応答の数が前記既定の識別されたストリームを送信する送信側デバイスに対してパケット損失を示す予め定められた閾値以下であるという第2の条件を検証する第2の検証手段と、
    前記第2の検証手段が肯定の検証を行った場合に前記少なくとも1つの既定の識別されたストリームに対して少なくとも1つの確認応答を生成及び送信する前記手段を起動する手段とを更に有することを特徴とする請求項11に記載の第1のトンネル終点。
  19. 少なくとも1つの既定の識別されたストリームに対して、前記第1のトンネル終点が確認応答を既に生成及び送信した前記既定の識別されたストリームの受信側デバイスからトンネルを介して到達する確認応答をフィルタリングする手段を更に有することを特徴とする請求項11に記載の第1のトンネル終点。
JP2009162185A 2008-07-11 2009-07-08 トンネルのトランスポートチャネル上のデータストリームの送信を管理する方法、対応するトンネル終点及びコンピュータ読み取り可能な記憶媒体 Expired - Fee Related JP5005003B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0854784 2008-07-11
FR0854784A FR2933834A1 (fr) 2008-07-11 2008-07-11 Procede de gestion d'une transmission de flux de donnees sur un canal de transport d'un tunnel, tete de tunnel, produit programme d'ordinateur et moyen de stockage correspondants.

Publications (2)

Publication Number Publication Date
JP2010022001A true JP2010022001A (ja) 2010-01-28
JP5005003B2 JP5005003B2 (ja) 2012-08-22

Family

ID=40030273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009162185A Expired - Fee Related JP5005003B2 (ja) 2008-07-11 2009-07-08 トンネルのトランスポートチャネル上のデータストリームの送信を管理する方法、対応するトンネル終点及びコンピュータ読み取り可能な記憶媒体

Country Status (7)

Country Link
US (1) US8072898B2 (ja)
EP (1) EP2144403B1 (ja)
JP (1) JP5005003B2 (ja)
CN (1) CN101635665B (ja)
AT (1) ATE507636T1 (ja)
DE (1) DE602009001149D1 (ja)
FR (1) FR2933834A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4692355B2 (ja) * 2006-03-30 2011-06-01 ブラザー工業株式会社 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム
JP5318111B2 (ja) * 2007-10-24 2013-10-16 ラントロニクス・インコーポレイテツド リモートデバイスに構成情報を自動配布するための中央管理ステーションのための種々の方法および装置
FR2939993B1 (fr) * 2008-12-12 2010-12-17 Canon Kk Procede de transmission d'un flux de donnees multi-canal sur un tunnel multi-transport, produit programme d'ordinateur, moyen de stockage et tetes de tunnel correspondantes
US9756468B2 (en) 2009-07-08 2017-09-05 Dejero Labs Inc. System and method for providing data services on vehicles
US10033779B2 (en) 2009-07-08 2018-07-24 Dejero Labs Inc. Multipath data streaming over multiple wireless networks
US10117055B2 (en) 2009-07-08 2018-10-30 Dejero Labs Inc. System and method for providing data services on vehicles
US8625622B2 (en) * 2009-12-25 2014-01-07 Cisco Technology, Inc. Increasing transmission rate to a remote device in response to attributing information loss as not being a result of network congestion
KR101413295B1 (ko) * 2010-11-04 2014-06-30 한국전자통신연구원 확장성과 적응성을 가지는 dds 구조 및 dds를 구성하는 노드
KR101741003B1 (ko) * 2011-01-28 2017-05-30 삼성전자주식회사 중복된 애크를 이용한 통신 방법
JP5963540B2 (ja) * 2012-05-30 2016-08-03 キヤノン株式会社 情報処理装置、プログラム及び制御方法
US20150046558A1 (en) * 2013-03-15 2015-02-12 Google Inc. System and method for choosing lowest latency path
CN107196834B (zh) 2013-07-12 2021-08-13 华为技术有限公司 报文处理方法及设备
US20150095196A1 (en) * 2013-09-30 2015-04-02 Jewel Burks Method for Identifying Replacement Parts and Extracting Features Via a Sequence of Images
EP3068163B1 (en) * 2013-11-06 2020-07-22 Nec Corporation Mobile communication system, gateway device and communication method
WO2015069164A1 (en) 2013-11-08 2015-05-14 Telefonaktiebolaget L M Ericsson (Publ) Handling of transport conditions
EP3101821B1 (en) * 2014-01-28 2021-07-07 Mitsubishi Electric Corporation Satellite communication system, satellite repeater, and satellite communication method
JP5970489B2 (ja) * 2014-01-30 2016-08-17 株式会社Nttドコモ 移動通信システム及び移動局装置
US9742587B2 (en) * 2015-07-29 2017-08-22 Oracle International Corporation Negative acknowledgment of tunneled encapsulated media
US10805420B2 (en) * 2017-11-29 2020-10-13 Forcepoint Llc Proxy-less wide area network acceleration
CN108833063B (zh) * 2018-08-29 2021-04-27 新华三技术有限公司 一种报文重传方法及装置
CN112585910B (zh) * 2020-09-15 2022-03-08 香港应用科技研究院有限公司 在广域网中建立安全、低延迟、优化路径的方法和装置
US11743193B2 (en) 2021-11-01 2023-08-29 Seagate Technology Llc Sliding window protocol for communication among more than two participants

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001036586A (ja) * 1999-07-21 2001-02-09 Oki Electric Ind Co Ltd ゲートウェイ装置
JP2008078966A (ja) * 2006-09-21 2008-04-03 Nec Corp 通信システム、トンネリング装置、通信方法、およびプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208620B1 (en) * 1999-08-02 2001-03-27 Nortel Networks Corporation TCP-aware agent sublayer (TAS) for robust TCP over wireless
US7219158B2 (en) * 2000-07-21 2007-05-15 Hughes Network Systems Llc Method and system for improving network performance using a performance enhancing proxy
US6934257B2 (en) * 2001-04-04 2005-08-23 Intel Corporation Transferring transmission control protocol packets
US7089312B2 (en) * 2001-09-20 2006-08-08 Intel Corporation System and method for reducing retransmissions due to tunneled TCP-in-TCP communication in a network
US20030172264A1 (en) * 2002-01-28 2003-09-11 Hughes Electronics Method and system for providing security in performance enhanced network
US20030219022A1 (en) * 2002-01-28 2003-11-27 Hughes Electronics Method and system for utilizing virtual private network (VPN) connections in a performance enhanced network
US7398552B2 (en) * 2002-01-28 2008-07-08 Hughes Network Systems, Llc Method and system for integrating performance enhancing functions in a virtual private network (VPN)
US7656799B2 (en) * 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
FR2863127A1 (fr) 2003-12-02 2005-06-03 Canon Kk Procedes et dispositifs pour la delivrance asynchrone de donnees numeriques
CN1956353B (zh) * 2005-10-28 2011-07-20 华为技术有限公司 基于隧道进行流管理的方法和无线接入中转系统
EP1850531B1 (en) * 2006-04-26 2013-06-12 Alcatel Lucent Method and architecture for interworking of standardised networks
US7760642B2 (en) * 2007-03-12 2010-07-20 Citrix Systems, Inc. Systems and methods for providing quality of service precedence in TCP congestion control
FR2919778A1 (fr) 2007-07-30 2009-02-06 Canon Kk Procede de transmission de paquets de donnees dans un tunnel, produit programme d'ordinateur, moyen de stockage et tete de tunnel correspondants
FR2926939A1 (fr) 2008-01-30 2009-07-31 Canon Kk Procede de transmission de donnees avec anticipation des acquittements, dispositif d'entree, produit programme d'ordinateur et moyen de stockage correspondants

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001036586A (ja) * 1999-07-21 2001-02-09 Oki Electric Ind Co Ltd ゲートウェイ装置
JP2008078966A (ja) * 2006-09-21 2008-04-03 Nec Corp 通信システム、トンネリング装置、通信方法、およびプログラム

Also Published As

Publication number Publication date
US20100008245A1 (en) 2010-01-14
CN101635665B (zh) 2012-03-21
CN101635665A (zh) 2010-01-27
EP2144403B1 (en) 2011-04-27
US8072898B2 (en) 2011-12-06
EP2144403A1 (en) 2010-01-13
FR2933834A1 (fr) 2010-01-15
JP5005003B2 (ja) 2012-08-22
DE602009001149D1 (de) 2011-06-09
ATE507636T1 (de) 2011-05-15

Similar Documents

Publication Publication Date Title
JP5005003B2 (ja) トンネルのトランスポートチャネル上のデータストリームの送信を管理する方法、対応するトンネル終点及びコンピュータ読み取り可能な記憶媒体
US8169911B2 (en) Method for transmitting a data stream with anticipation of acknowledgments, correspondence input device and computer-readable storage medium
US10237153B2 (en) Packet retransmission method and apparatus
US8605590B2 (en) Systems and methods of improving performance of transport protocols
Fairhurst et al. Advice to link designers on link Automatic Repeat reQuest (ARQ)
JP4829896B2 (ja) データ破壊を避けることによる改善されたネットワーク性能のための方法、システム及び物品
US8717900B2 (en) Mechanisms to improve the transmission control protocol performance in wireless networks
TWI530123B (zh) Communication devices and communication methods
US20090316719A1 (en) Method for managing mechanisms to enhance transmission of data streams in a tunnel, corresponding computer program product, storage medium and tunnel end-point
US11956099B2 (en) Multi-part TCP connection over VPN
US11671377B2 (en) System and method for reducing bandwidth usage of a network
US20110141904A1 (en) Method and apparatus for transmitting packets of a two-way passenger data stream
JP2008078966A (ja) 通信システム、トンネリング装置、通信方法、およびプログラム
CN113424578B (zh) 一种传输控制协议加速方法和装置
JP2006148727A (ja) アプリケーションモニタ装置
JP2008199431A (ja) 通信装置
KR101396785B1 (ko) 네트워크 장치에서 tcp 기능을 수행하는 방법
Callegari et al. A Friendliness Study of TCP Linux Variants

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110825

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: 20120423

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120522

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees