IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オーワイ ゲームクラスター リミテッドの特許一覧

<>
  • 特表-トランスポート層パケットの配信 図1
  • 特表-トランスポート層パケットの配信 図2
  • 特表-トランスポート層パケットの配信 図3
  • 特表-トランスポート層パケットの配信 図4
  • 特表-トランスポート層パケットの配信 図5
  • 特表-トランスポート層パケットの配信 図6
  • 特表-トランスポート層パケットの配信 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-05
(54)【発明の名称】トランスポート層パケットの配信
(51)【国際特許分類】
   H04L 47/193 20220101AFI20230628BHJP
   H04L 1/00 20060101ALI20230628BHJP
   H04L 69/326 20220101ALI20230628BHJP
   H04L 1/18 20230101ALI20230628BHJP
【FI】
H04L47/193
H04L1/00 E
H04L69/326
H04L1/18
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022581436
(86)(22)【出願日】2022-05-24
(85)【翻訳文提出日】2022-12-27
(86)【国際出願番号】 FI2022050359
(87)【国際公開番号】W WO2022248769
(87)【国際公開日】2022-12-01
(31)【優先権主張番号】21175919.6
(32)【優先日】2021-05-26
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】503265603
【氏名又は名称】オーワイ ゲームクラスター リミテッド
【氏名又は名称原語表記】OY GAMECLUSTER LTD
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】サッリネン,サミ
(72)【発明者】
【氏名】コタ-ロブレス,エリク
【テーマコード(参考)】
5K014
5K030
【Fターム(参考)】
5K014DA01
5K014FA03
5K014FA11
5K030GA13
5K030LA02
5K030LC11
5K030MB02
5K030MB13
(57)【要約】
パケット交換ネットワーク(103)を介して他の装置(102-k)と通信するための装置(101)が与えられる。当該装置(101)は、トランスポートプロトコル部であって、割り当てられたそれぞれのシーケンス番号を有するデータブロックのシーケンスでユーザーデータを他の装置(102-k、102-m、102-n)へ送信することと、前記データブロックの少なくともいくつかの受信を確認する確認応答ブロックを他の装置(102-k、102-m、102-n)から受信することと、前記他の装置(102-k、102-m、102-n)により確認されなかった前記データブロックのものを、前記他の装置(102-k、102-m、102-n)に再送信することと、前記他の装置(102-k、102-m、102-n)によって確認されていない前記データブロックの予め定められた量に応答して、輻輳回避状態に移行することとを少なくとも当該装置(101)に実行させるように構成されたトランスポートプロトコル部と、補完トランスポートプロトコル部であって、それぞれの確認応答ブロックが、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの受信を指示するように、前記トランスポートプロトコル部に渡す前に、前記他の装置(102-k、102-m、102-n)から受信した前記確認応答ブロックを修正することを通じて、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの確認応答を指示する情報を前記トランスポートプロトコル部に提供し、選択的に、前記装置(101)に、第2の基準シーケンス番号よりも小さいシーケンス番号を割り当てられた任意の未受信のデータブロックを無視するように前記他の装置(102-k、102-m、102-n)に指示する制御ブロックを、前記他の装置(102-k、102-m、102-n)へ送信させるように構成された補完トランスポートプロトコル部とを備える。
【特許請求の範囲】
【請求項1】
パケット交換ネットワーク(103)を介して他の装置(102-k)と通信するための装置(101)であって、前記装置(101)が、
トランスポートプロトコル部であって、
割り当てられたそれぞれのシーケンス番号を有するデータブロックのシーケンスでユーザーデータを他の装置(102-k、102-m、102-n)へ送信することと、
前記データブロックの少なくともいくつかの受信を確認する確認応答ブロックを他の装置(102-k、102-m、102-n)から受信することと、
前記他の装置(102-k、102-m、102-n)により確認されなかった前記データブロックのものを、前記他の装置(102-k、102-m、102-n)に再送信することと、
前記他の装置(102-k、102-m、102-n)によって確認されていない前記データブロックの予め定められた量に応答して、輻輳回避状態に移行することと
を少なくとも当該装置(101)に実行させるように構成されたトランスポートプロトコル部と、
補完トランスポートプロトコル部であって、
それぞれの確認応答ブロックが、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの受信を指示するように、前記トランスポートプロトコル部に渡す前に、前記他の装置(102-k、102-m、102-n)から受信した前記確認応答ブロックを修正することを通じて、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの確認応答を指示する情報を前記トランスポートプロトコル部に提供し、
選択的に、前記装置(101)に、第2の基準シーケンス番号よりも小さいシーケンス番号を割り当てられた任意の未受信のデータブロックを無視するように前記他の装置(102-k、102-m、102-n)に指示する制御ブロックを、前記他の装置(102-k、102-m、102-n)へ送信させる
ように構成された補完トランスポートプロトコル部と
を備える装置(101)。
【請求項2】
前記確認応答ブロックは、前記他の装置(102-k、102-m、102-n)で受信された1つ以上のデータブロックに割り当てられたシーケンス番号のそれぞれの指示を含む、ことを特徴とする請求項1に記載の装置(101)。
【請求項3】
各確認応答ブロックは、前記他の装置(102-k、102-m、102-n)で受信されたデータブロックの連続したサブシーケンスの最後のデータブロックに割り当てられたシーケンス番号を示す受信済みシーケンスインジケータを含み、
前記補完トランスポートプロトコル部は、前記トランスポートプロトコル部に前記確認応答ブロックを渡す前に、前記他の装置(102-k、102-m、102-n)から受信した確認応答ブロック内の受信済みシーケンスインジケータを、前記第1の参照シーケンス番号を示す情報に置き換えるように構成される
ことを特徴とする請求項2に記載の装置(101)。
【請求項4】
各確認応答ブロックが、データブロックの連続したサブシーケンスと前記1つ以上のさらなるシーケンス番号によって識別される1つ以上のデータブロックとの間に少なくとも1つのギャップを有する前記連続したサブシーケンスに続く、それぞれの1つ以上のデータブロックに割り当てられる1つ以上のさらなるシーケンス番号のそれぞれの指示をさらに含み、
前記補完トランスポートプロトコル部が、前記トランスポートプロトコル部に前記確認応答ブロックを渡す前に、前記他の装置(102-k、102-m、102-n)から受信した前記確認応答ブロックから前記1つ以上のさらなるシーケンス番号の前記指示を除去するように構成されている、
ことを特徴とする請求項3に記載の装置(101)。
【請求項5】
前記第1の参照シーケンス番号は、前記データブロックのうち最も新しく送信されたものに割り当てられたシーケンス番号からなる、ことを特徴とする請求項1から4のいずれか一項に記載の装置(101)。
【請求項6】
前記第2の参照シーケンス番号は、前記データブロックのうち最も新しく送信されたものに割り当てられたシーケンス番号からなる、請求項1から5のいずれか一項に記載の装置(101)。
【請求項7】
前記補完トランスポートプロトコル部は、前記他の装置(102-k、102-m、102-n)によって確認されたデータブロックの連続したサブシーケンスの最後のデータブロックに割り当てられたシーケンス番号が、前記第2の参照シーケンス番号より小さいことに応答して、前記制御ブロックを前記装置(101)に送信させるよう構成されている、ことを特徴とする請求項1から6のいずれか一項に記載の装置(101)。
【請求項8】
前記補完トランスポートプロトコル部は、前記制御ブロックの最も新しい送信から少なくとも予め定められた時間が経過していることを条件として、前記他の装置(102-k、102-m、102-n)によって確認されたデータブロックの連続するサブシーケンスの最後のデータブロックに割り当てられた前記シーケンス番号が前記第2の基準シーケンス番号より小さいことに応答して、前記装置(101)に、前記制御ブロックを送信させるよう構成されている、ことを特徴とする請求項1から6のいずれか一項に記載の装置(101)。
【請求項9】
前記予め定められた時間は、2ミリ秒から100ミリ秒の範囲内である、ことを特徴とする請求項8に記載の装置(101)。
【請求項10】
前記補完トランスポートプロトコル部は、前記装置(101)に、予め定められた時間間隔で前記制御ブロックを送信させるように構成されている、ことを特徴とする請求項1から9のいずれか一項に記載の装置(101)。
【請求項11】
前記時間間隔が、2ミリ秒から100ミリ秒までの範囲内の予め定められた時間を有する、ことを特徴とする請求項10に記載の装置(101)。
【請求項12】
前記トランスポートプロトコル部は、ストリーム制御伝送プロトコル(SCTP)を適用するように構成されている、ことを特徴とする請求項1から11のいずれか一項に記載の装置(101)。
【請求項13】
トランスポートプロトコルに従ってパケット交換ネットワーク(103)を介して他の装置(102-k、102-m、102-n)と通信するための装置(101)における方法(300)であって、前記トランスポートプロトコルに従う通信は、
それに割り当てられたそれぞれのシーケンス番号を有するデータブロックのシーケンスでユーザーデータを、前記他の装置(102-k、102-m、102-n)に送信すること(302)と、
前記データブロックの少なくともいくつかの受信を確認する確認応答ブロックを、他の装置(102-k、102-m、102-n)から受信すること(304)と、
前記データブロックのうち前記他の装置(102-k、102-m、102-n)により確認されなかったものを、前記他の装置(102-k、102-m、102-n)に再送すること(306)と、
前記他の装置(102-k、102-m、102-n)によって確認されていない前記データブロックの予め定められた量に応答して、輻輳回避状態に移行すること(308)と
を有し、
前記方法(300)は、
それぞれの確認応答ブロックが、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの受信を示すように、前記トランスポートプロトコル部にそれを渡す前に、前記他の装置(102-k、102-m、102-n)から受信した確認応答ブロックを修正することによって、それに割り当てられた前記第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの前記確認応答を示す情報を、前記トランスポートプロトコル部に提供すること(310)と、
第2の基準シーケンス番号よりも小さいシーケンス番号を割り当てられた任意の未受信のデータブロックを無視するよう前記他の装置(102-k、102-m、102-n)に指示する制御ブロックを、選択的に前記他の装置(102-k、102-m、102-n)に送信すること(312)と
を備える方法(300)。
【請求項14】
前記プログラムコード(425)がコンピューティング装置(400)上で実行されるとき、少なくとも請求項13に記載の方法(300)を実行させるように構成されたコンピュータ可読プログラムコード(425)からなるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケット交換通信ネットワークを介したトランスポート層パケットの配信に関するものである。
【背景技術】
【0002】
インターネットのようなパケット交換ネットワーク上のデータ伝送は、通常、インターネットプロトコル(IP)の上にある伝送制御プロトコル(TCP)に依存している。TCP/IPは、データの伝送のために実績があり広く適用されているプロトコルスイートを構成するが、データパケットの厳密なインシーケンス配信から生じる遅延、ネットワーク内で失われたパケットのために生じる再送信、フロー制御および混雑制御機構による送信TCPホストによるパケットの内部バッファリングによって、パケット交換ネットワーク上でパケットおよびメッセージをタイムリーに配信する必要があるネットワーク型の対話的リアルタイムアプリケーションにはTCPは不向きである。このようなアプリケーションのよく知られた例としては、音声および/またはビデオテレフォニー、音声および/またはビデオ会議、ピアツーピアゲーム、クラウドベースのゲームなどがある。このようなアプリケーションでは、ネットワーク内で遅延または損失したパケットの再送信、あるいはフロー制御および/または輻輳制御機構による送信側でのパケットの大規模なバッファリングから生じる追加の遅延は、一般に、ユーザー体験の低下をもたらし、このようなアプリケーションを事実上使用できなくすることさえありうる。特に、パケット損失に応答してパケット送信に適用される帯域幅を突然減らす可能性があるTCPフロー制御機構は、ビデオストリームなどの比較的高帯域幅のデータのリアルタイム配信を必要とするネットワーク化された対話型リアルタイムアプリケーションの知覚的ユーザー体験に深刻な有害な影響を与えることがある。
【0003】
ユーザーデータグラムプロトコル(UDP)は、IPの上にパケット交換ネットワーク上でデータパケットを送信する代替方法を提供する。TCPとは異なり、UDPは、パケットバッファリング、パケットの信頼性のある配信、および任意のフロー制御および/または輻輳制御アクションなどの態様に関する制御を、上位層のプロトコルおよび/またはUDP/IPに依存するアプリケーションに対して行うようにする。このようなアプローチは、パケット交換ネットワーク上でパケットを伝送する際の不要な遅延の回避を容易にする一方で、アプリケーションがネットワーク上の往復時間とネットワークで発生する可能性のあるパケット損失を監視し、この情報を使用してアプリケーションの特定の要件を考慮したフロー制御および輻輳制御メカニズムを実装することも可能にしている。この点でビデオストリームを例にとると、アプリケーションは、ビデオストリームに適用されるビデオ解像度および/またはビデオフレームレートを低減することにより、輻輳制御を実装することができる。さらに、UDPは、アプリケーションがFEC(Forward Error Correction)などのメカニズムを使用して、ネットワークで発生する可能性のあるパケットロスに、大幅な追加遅延を発生させることなく先制的に対処することを可能にする。このような特性から、UDP はネットワーク上の対話型リアルタイムアプリケーションに適している。
【0004】
ネットワーク化された対話型リアルタイムアプリケーションの要件という観点から、TCPの欠点に少なくとも部分的に対処するプロトコルの一例として、SCTP(Stream Control Transport Protocol)がある。SCTPは、順序付きおよび順序外のパケットデータストリームの両方に対して信頼性の高いトランスポートを提供するが、一方で、TCPのような輻輳制御メカニズムを採用する。したがって、SCTPは、ネットワーク上のインタラクティブ・リアルタイム・アプリケーションの観点から、TCPと比較していくつかの有利な機能を備えているが、パフォーマンスを制限するいくつかの問題が残っている。SCTPは、信頼性の高いデータ伝送を保証するために再送方式を採用しているが、ネットワーク対話型リアルタイムアプリケーションでは、多くの場合、ネットワークで失われたパケットの再送によって生じる追加のラウンドトリップ時間は、比較的少量のデータパケットの損失によるものよりも、ユーザーが体験するサービス品質の劣化を深刻化させることになる。さらに、SCTP輻輳制御機構の動作によるネットワークでのパケット損失に対応する伝送帯域幅の減少は、ほとんどの場合、ネットワーク化されたインタラクティブリアルタイムアプリケーションが、例えば、ビデオストリームに適用されるビデオ解像度および/またはビデオフレームレートを低減することによってコンテンツアウェア方式でデータ伝送速度を縮小することを許可されているシナリオよりも厳しいユーザー体験サービス品質の低下をもたらすことになる。
【0005】
しかしながら、ウェブブラウザのような多くのオペレーティングシステム及び/又はアプリケーションプラットフォームにおいて、ネットワーク接続は、アプリケーションプログラマブルインターフェース(API)又はソケットインターフェースを介して提供されることがあり、これらは、主に、ネットワーク化された対話的リアルタイムアプリケーションには適さないTCPベースの接続を提供する。一方、例えばセキュリティ上の問題から、APIやソケットインターフェースはUDPベースの接続を提供しないか、またはネットワーク上の対話型リアルタイムアプリケーションに適さない接続となる可能性のある上位のプロトコルサポートを提供するにとどまる場合がある。しかし、例えばWebブラウザは、ネットワーク上のインタラクティブなリアルタイムアプリケーションを含む多くの種類のアプリケーションのための興味深いプラットフォームを提供する。ウェブブラウザのようなオペレーティングシステムやアプリケーションプラットフォームで適用可能なプロトコルの最近の開発により、TCPの代わりにSCTPを使用する、よりリアルタイム通信に適したネットワークインタフェースが実現されている。この点に関する例として、2つのピアのウェブブラウザ間でオーディオ、ビデオ、およびデータを使用した直接的、インタラクティブ、リッチな通信のためのプロトコルサポートを規定するWeb Real-Time Communication(WebRTC)プロトコルがあり、メディア伝送用のSecure Real-Time Transport Protocol(SRTP)を定義しながらウェブブラウザからピアへ汎用データを交換できるようにする汎用伝送サービスとしてのSCTPの使用法を規定している(例えば、RFC8331を参照のこと)。
【0006】
WebRTCなどのフレームワークは、オペレーティングシステムおよび/またはウェブブラウザなどのアプリケーションプラットフォームのフレームワークでネットワーク化されたインタラクティブリアルタイムアプリケーションを実装するための道を開くが、例えば、WebRTC(または同様のもの)などのプロトコルを実装するオペレーティングシステムまたはブラウザは通常、SCTPおよびSRTPスタックのそれぞれのインターフェースを介してネットワーク接続を提供し、それによって、そのようなフレームワークで動作するネットワーク化されたリアルタイムアプリケーションの性能は、これらのプロトコルスタックの性能に少なくとも部分的に依存するようにする。特に、このような組み込みプロトコルスタックを介した通信に関わる固有の遅延および/または機能により、ネットワーク化されたインタラクティブリアルタイムアプリケーションが、往復時間およびネットワークで発生するパケットロスの量に直接的または間接的に影響を与える態様を有意に制御することが不可能となり、その結果、ユーザーが経験するサービス品質の面で性能が低下し、これは、特にクラウドゲームおよびピアツーピアゲームなどのアプリケーションで顕著になる場合がある。
【0007】
関連技術として、Randal StewartらによるRFC 3758「Stream Control Transmission Protocol (SCTP) Partial Reliability Extension」は、SCTPエンドポイントが、累積ackポイントを前進させるべきと、ピアにシグナリングすることを可能にするSCTPの拡張を開示している。SCTPアソシエーションの両側がこの拡張に対応している場合、SCTP実装を使用して、上位レイヤープロトコルに部分的に信頼性のあるデータ送信サービスを提供することが可能である。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の目的は、アプリケーションが、通信のラウンドトリップタイムに対する制御を改善することができる方法で、予め定義されたトランスポートプロトコルに対する予め定義されたインターフェースを介してパケット交換ネットワーク上で通信することを可能にするアプローチを提供することである。
【課題を解決するための手段】
【0009】
例示的な態様によれば、パケット交換ネットワークを介して他の装置と通信するための装置が与えられる。当該装置は、トランスポートプロトコル部であって、割り当てられたそれぞれのシーケンス番号を有するデータブロックのシーケンスでユーザーデータを他の装置へ送信することと、データブロックの少なくともいくつかの受信を確認する確認応答ブロックを他の装置から受信することと、他の装置により確認されなかったデータブロックのものを、他の装置に再送信することと、他の装置によって確認されていないデータブロックの予め定められた量に応答して、輻輳回避状態に移行することとを少なくとも当該装置に実行させるように構成されたトランスポートプロトコル部と、補完トランスポートプロトコル部であって、それぞれの確認応答ブロックが、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの受信を指示するように、トランスポートプロトコル部に渡す前に、他の装置から受信した確認応答ブロックを修正することを通じて、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの確認応答を指示する情報をトランスポートプロトコル部に提供し、選択的に、当該装置に、第2の基準シーケンス番号よりも小さいシーケンス番号を割り当てられた任意の未受信のデータブロックを無視するように他の装置に指示する制御ブロックを、他の装置へ送信させるように構成された補完トランスポートプロトコル部とを備える。
【0010】
他の例示的な態様によれば、トランスポートプロトコルに従ってパケット交換ネットワークを介して他の装置と通信するための装置における方法が与えられる。ここでトランスポートプロトコルに従う通信は、それに割り当てられたそれぞれのシーケンス番号を有するデータブロックのシーケンスでユーザーデータを、他の装置に送信することと、データブロックの少なくともいくつかの受信を確認する確認応答ブロックを、他の装置から受信することと、データブロックのうち他の装置により確認されなかったものを、他の装置に再送することと、他の装置によって確認されていないデータブロックの予め定められた量に応答して、輻輳回避状態に移行することとを有し、当該方法は、それぞれの確認応答ブロックが、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの受信を示すように、トランスポートプロトコル部にそれを渡す前に、他の装置から受信した確認応答ブロックを修正することによって、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの確認応答を示す情報を、トランスポートプロトコル部に提供することと、第2の基準シーケンス番号よりも小さいシーケンス番号を割り当てられた任意の未受信のデータブロックを無視するよう他の装置に指示する制御ブロックを、選択的に他の装置に送信することとを備える。
【0011】
他の例示的な態様によれば、コンピュータプログラムが提供される。当該コンピュータプログラムは、プログラムコードがコンピューティング装置上で実行されたときに、少なくとも上述した例示的な実施形態による方法を実行させるように構成されたコンピュータ可読プログラムコードを有する。
【0012】
上述した例示的な態様によるコンピュータプログラムは、例えば、プログラムコードをその上に格納した少なくとも1つの非一時的コンピュータ可読媒体を含むコンピュータプログラムプロダクトとして、揮発性又は不揮発性のコンピュータ可読記録媒体に具現化することができ、1つ以上の計算装置によって実行すると、計算装置に少なくとも上述した例示的実施形態による方法を実行させることができる。
【0013】
本特許出願に提示された本発明の例示的な態様は、添付の請求項の適用可能性に制限をもたらすものと解釈されるべきではない。動詞「構成する」及びその派生語は、本特許出願において、同じく未記載の特徴の存在を排除しない開放的な限定として使用される。以下の実施形態に記載された特徴は、明示的に別段の記載がない限り、明示的に記載されたもの以外の組み合わせで使用することができる。
【0014】
本発明のいくつかの特徴は、添付の特許請求の範囲に記載されている。しかしながら、本発明の態様は、その構造およびその動作方法の両方に関して、その追加の目的および利点とともに、添付の図面と関連して読まれたときに、いくつかの例示的な実施形態の以下の説明から最もよく理解されるであろう。
【0015】
本発明の実施形態は、限定ではなく、例示として、添付の図面に示されている。
【図面の簡単な説明】
【0016】
図1図1は、ひとつの実施形態に従う通信システムのいくつかの要素のブロック図を示す。
図2図2は、ひとつの実施形態に従う通信モデルを示す。
図3図3は、ひとつの実施形態に従う通信モデルを示す。
図4図4は、ひとつの実施形態に従う通信モデルを示す。
図5図5は、ひとつの実施形態に従う方法を表すフローチャートを示す。
図6図6は、ひとつの実施形態に従う方法を表すフローチャートを示す。
図7図7は、ひとつの実施形態に従う装置のいくつかのコンポーネントのブロック図を示す。
【発明を実施するための形態】
【0017】
図1は、サーバ装置101とクライアント装置102-1、102-2、102-3とを含む、一例による通信システム100のいくつかの要素のブロック図である。クライアント装置102-1、102-2、102-3は、1つ以上のクライアント装置を表し、任意の単一のクライアント装置は参照番号102-kを介して参照され、1つ以上のクライアント装置は参照番号102を介して一緒に参照され得る。サーバ装置101及びクライアント装置102-kの各々は、それぞれのエンドポイント、ホスト又はノードとも呼ばれることがある。クライアント装置102-kの各々は、インターネットなどのパケット交換ネットワークからなる通信ネットワーク103を介して、サーバ装置101に通信可能に接続されている。以下では、通信システム100の使用による通信のいくつかの態様を、サーバ装置101及びクライアント装置102-kを参照して説明する。
【0018】
サーバ装置101およびクライアント装置102-kの各々は、それぞれのコンピュータ装置を含んでよく、このコンピュータ装置は、プロセッサおよびメモリを含んでよく、メモリは、プロセッサによって実行されると、装置を本開示によるサーバ装置101またはクライアント装置102-kのそれぞれの1つとして動作させるコンピュータプログラムコードを格納するように配置されている。サーバ装置101又はクライアント装置102-kを提供するためにこのようなコンピュータ装置を使用する、より詳細な例が、図7を参照して以下に提供される。
【0019】
サーバ装置101及びクライアント装置102-kの各々は、それぞれサーバアプリケーション及びクライアントアプリケーションと呼ばれることがある、それぞれのアプリケーションを実行してもよい。ひとつの実施形態によれば、サーバ装置101におけるサーバアプリケーションおよびクライアント装置102-kにおけるクライアントアプリケーションのそれぞれは、図2に示される通信モデルに従って、通信ネットワーク103を介して互いに通信するように配置されてもよい。サーバアプリケーションおよびクライアントアプリケーションのそれぞれはアプリケーション層で動作し、通信ネットワーク103上のパケット交換通信へのアクセスはインターネットプロトコル(IP)層(または別のネットワーク層プロトコル)によって提供される。この点、サーバアプリケーションおよびクライアントアプリケーション(またはアプリケーション層の他のアプリケーション)は、トランスポート層を介してIP層へのアクセスを有してよく、これはトランスポートプロトコルの動作を介して実装されてもよい。本開示の文脈で適用可能なトランスポートプロトコルの一例は、セッション制御トランスポートプロトコル(SCTP)であり、そのいくつかの態様は、以下でさらに詳細に説明される。
【0020】
この点に関して、図2に示される通信モデルは、IP層(または別のネットワーク層プロトコル)より下のプロトコル層を意図的に省略した簡略化されたものであり、アプリケーションと本開示で説明するトランスポートプロトコルとの関係を例示することを主目的としていることに留意されたい。他の例では、アプリケーションは、1つ以上の中間プロトコル層を介してトランスポート層内のトランスポートプロトコルをインターフェースしてもよく、及び/又は、トランスポート層内のトランスポートプロトコルは、1つ以上の中間プロトコル層を介してIP層(又は別のネットワーク層プロトコル)をインターフェースしてもよい。
【0021】
サーバ装置101内のサーバアプリケーションとクライアント装置102-k内のクライアントアプリケーションとの間の通信において適用されるトランスポートプロトコルは、これら2つのエンティティ間のデータの転送を規定する1つ以上のデータフォーマットおよび1つ以上のプロシージャを定義することができる。典型的には、トランスポートプロトコルは、異なるベンダから発信される2つのエンティティ間の相互運用性を可能にし、保証するために、通信規格によって規定される。ひとつの実施形態によれば、サーバアプリケーション及びクライアントアプリケーションは、サーバ装置101及びクライアント装置102-kのそれぞれの一方において実行されるオペレーティングシステムによって又はアプリケーションプラットフォームによって提供されるアプリケーションプログラマブルインターフェース(API)又はソケットインターフェースを介してトランスポート層(のみ)におけるトランスポートプロトコルへのアクセスを有してもよい。
【0022】
この点に関する例として、クライアント装置102-kは、ユーザー装置によって実行されるオペレーティングシステムの枠組みで動作するように調整されたブラウザアプリケーションを実装する、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータなどの汎用ユーザー装置から構成されてもよい。このようなシナリオでは、クライアントアプリケーションは、ブラウザアプリケーション内で動作してもよく、その結果、クライアントアプリケーションは、ブラウザアプリケーションを介して利用可能なAPI又はソケットインターフェースを介してトランスポート層のトランスポートプロトコルに(のみ)アクセスすることが可能である。一方、サーバ装置101は、多くの場合、それが実行に供するサーバアプリケーションの要件に適合するように専用または少なくとも調整された装置を介して提供され、したがって、サーバアプリケーションは、サーバ装置101のトランスポート層によって提供されるトランスポートプロトコルおよび/または他のサービスにアクセスして使用する際に(クライアントアプリケーションと比較して)何らかの追加の柔軟性を有することもできる。そのような柔軟性にかかわらず、サーバ装置101におけるトランスポートプロトコルは、クライアント装置102-kとの通信において適用されるデータフォーマットの点で、基礎となる標準規格に必然的に拘束される。
【0023】
本開示の目的のために、サーバ装置101およびクライアント装置102-kのそれぞれにおけるトランスポートプロトコルを提供する役割を果たすそれぞれのエンティティは、それぞれのトランスポートプロトコル部と呼ばれ得る。この点、サーバ装置101及びクライアント装置102-kにおけるそれぞれのトランスポートプロトコル部は、サーバ装置101におけるサーバアプリケーションからクライアント装置102-kにおけるクライアントアプリケーションへの、及びその逆の、ユーザーデータの信頼性の高いトランスポートを提供し得る。この点、ユーザーデータの伝送は、送信側エンドポイント(例えば、サーバ装置101及びクライアント装置102-kの一方から)及び受信側エンドポイント(例えば、サーバ装置101及びクライアント装置102-kの他方への)を参照して説明されてもよい。この点、送信側エンドポイントにおけるトランスポートプロトコル部は、受信側エンドポイント(におけるトランスポート部)へユーザーデータを伝送する際に、少なくとも以下のことを実行することができ、それは、
ユーザーデータをデータブロックのシーケンスで送信することであって、各データブロックは、データブロックのシーケンスにおけるその位置を示すそれぞれの割り当てられたシーケンス番号を有する、ところの送信することと、
受信側エンドポイント(のトランスポートプロトコル部)から、送信側エンドポイントから送信された1つ以上のデータブロックの受信をそれぞれ確認する確認応答ブロックを受信することと、
受信側エンドポイント(のトランスポートプロトコル部)によって確認応答されなかったデータブロックを再送信することと、
送信側エンドポイントから送信されたデータの少なくとも所定の量が、前記受信側エンドポイント(のトランスポートプロトコル部)によって確認されなかったことに応答して、輻輳回避状態に移行することと
を含む。
【0024】
ユーザーデータを送信する送信側エンドポイントに戻ると、送信側エンドポイント内のトランスポートプロトコル部は、サーバアプリケーションから発信されたユーザーデータを、予め定義された最大データブロックサイズに従ってデータブロックのシーケンスに配列してもよく、シーケンスの各データブロックは、受信側エンドポイントに順に送信される前に単調増加するシーケンス番号が割り当てられる。各データブロックは、ブロックヘッダと共にユーザーデータのそれぞれの部分を含んでもよく、ブロックヘッダは、それぞれのデータブロックに割り当てられたシーケンス番号、場合によっては、それぞれのデータブロックで運ばれるユーザーデータに関連するさらなる制御情報および/または一般的に送信側エンドポイントと受信側エンドポイントとの間のデータ転送に関連する情報を含むことができる。送信側エンドポイントは、1つ以上の(連続した)データブロックを、それらのシーケンス番号の増加順にトランスポートパケットに配置してもよい。この点に関して、トランスポートパケットは、それぞれのトランスポートパケットで運ばれるデータブロックに関連する(さらなる)制御情報、及び/又は1つ以上のデータブロックと共に一般的に送信側エンドポイントと受信側エンドポイントとの間のデータ伝送に関連する制御情報を運ぶパケットヘッダを含んでもよい。トランスポートパケットに含まれるデータブロックの数及び/又は結合サイズは、トランスポートパケットについて定義された最大許容パケットサイズを考慮して設定又は選択され得る。
【0025】
受信側エンドポイントから確認応答ブロックを受信する送信側エンドポイントを参照すると、各確認応答ブロックは、受信側エンドポイントにおいて送信側エンドポイントから送信された1つ以上のデータブロックの受信を報告することができる。データブロックと同様に、確認応答ブロックもトランスポートパケットでエンドポイント間にて送信されることがある。この点に関して、確認応答データブロックは、データブロックに割り当てられたシーケンス番号を介して、確認応答ブロックにおいて識別及び/又は指示されてもよい。その結果、確認応答ブロックは、受信側エンドポイントで受信された1つ以上のデータブロックに割り当てられたシーケンス番号のそれぞれの指示を含んでもよい。ここで、所定のデータブロックのシーケンス番号に係る指示は、所定のデータブロックに割り当てられたシーケンス番号をそのまま、及び/又は、所定のデータブロックに割り当てられたシーケンス番号の導出を可能にする1つ又は複数の情報の断片から構成されてもよい。一例では、確認応答ブロックに含まれるシーケンス番号に係る指示は、以下のもの、すなわち、
受信側エンドポイントで受信されたデータブロックの連続したサブシーケンスの最後のデータブロックに割り当てられたシーケンス番号を示す受信済みシーケンスインジケータと、
任意で、前記連続したデータブロックのサブシーケンスに、少なくとも1つのギャップで続くそれぞれの1つ以上のデータブロックに割り当てられた1つ以上のさらなるシーケンス番号のそれぞれの指示と
を含んでもよい。
【0026】
したがって、1つ以上のさらなるシーケンス番号のそれぞれの指示は、確認応答ブロックに含まれる場合、受信済みシーケンスインジケータによって示されるものより大きいそれぞれのシーケンス番号を有するデータブロックを識別し、それによって、受信側エンドポイントにおけるデータブロックの受信シーケンスにおける少なくとも1つのギャップを送信側エンドポイントに通知し得る。
【0027】
送信側エンドポイントが、そこから既に送信されたデータブロックのうち、受信側エンドポイントによって確認されないものを再送信することに戻ると、一例として、送信側エンドポイント内のトランスポートプロトコル部は、受信側エンドポイントから受信した確認応答ブロックがデータブロックの受信シーケンス内の少なくとも1つのギャップを示すことに応答して、および/またはそれぞれのデータブロックに関する再送信ウィンドウが失効することに応答して、確認応答されないデータブロックの再送信を進めることができる。ここで、再送信ウィンドウは、予め定義された又は適応可能な安全マージンで拡張された送信及び受信側エンドポイント間の推定ラウンドトリップ時間をカバーしてもよく、それによって、それぞれのデータブロックに係る確認応答が安全マージンよりも遅延することに応じて、所定のデータブロックの再送信が行われることになる。
【0028】
輻輳回避状態に移行する送信側エンドポイントに戻ると、送信側エンドポイント内のトランスポートプロトコル部は、そこから送信されたデータの少なくとも予め定められた量が受信側エンドポイントによって確認されないことに応答して、1つ以上の予め定められた規則に従って、そこからデータブロックを送信する際に適用されるデータレートを一時的に低減してもよく、予め定められた量は、送信側エンドポイントから送信されたまだ確認されていないデータブロックの数またはまだ確認されていないデータ量(例えば、バイト単位)に関連し得る。この点、データブロックの未確認は、それぞれのデータブロック又はそれに係る確認応答ブロックがトランスポートパスの輻輳により失われること、又はそれぞれのデータブロック及び/又は確認応答ブロックがトランスポートパスの輻輳により予め定められた量以上遅延することにより発生しうる。一例では、輻輳回避への移行は、単一のデータブロックの未確認によってトリガされてもよいが、別の例では、輻輳回避への移行は、予め定められた時間ウィンドウ内に送信側エンドポイントから送信されたデータブロックの所定の数及び/又は所定の割合の未確認によって、又は送信側エンドポイントから送信された所定の量のデータの未確認によって、トリガされてもよい。
【0029】
様々な例によれば、サーバ装置101及び/又はクライアント装置102-kは、サーバ装置101内のサーバアプリケーション及び/又はクライアント装置102-k内のクライアントアプリケーションのそれぞれの1つの動作を強化するために、さらなるトランスポート層サービスを提供するように配置された補完トランスポートプロトコル部をさらに含んでもよい。この点に関して、補完トランスポートプロトコル部は、少なくとも概念的には、トランスポートプロトコル部とIP層との間のトランスポート層内にサブレイヤーを提供することができる。名称が示すように、補完トランスポートプロトコル部は、サーバアプリケーション及び/又はクライアントアプリケーションのそれぞれの1つの動作を強化するために、前述したトランスポートプロトコル部の動作を補完する役割を担ってもよい。この点、補完トランスポートプロトコル部によって行われる動作は、サーバ装置101およびクライアント装置102-kにおけるそれぞれのトランスポートプロトコル部間の相互運用性を、両者間の通信において適用されるデータフォーマットの観点から妨げないようなものである。この点に関するいくつかの例として、補完トランスポートプロトコル部は、例えば、ビデオ電話アプリケーション、ビデオ会議アプリケーションまたはゲームアプリケーションの文脈において、オーディオストリームおよび/またはビデオストリームなどのリアルタイム双方向メディアのタイムリーな伝送を促進する操作を実行することができる。
【0030】
前述したラインに沿った多くの通信シナリオにおいて、クライアント装置102-kは汎用ユーザー装置からなり、サーバ装置101-kは、サーバ装置101内のサーバアプリケーションとクライアント装置102-k内のクライアントアプリケーションとの間の通信の特定の特性に合わせて、専用化されるか、または他の方法で調整されてもよい。その結果、ひとつの実施形態では、サーバ装置101におけるトランスポート層は、トランスポートプロトコル部及び補完トランスポートプロトコル部を備えてもよく、一方、クライアント装置102-kは、トランスポートプロトコル部のみを備えてもよい。別の例では、クライアント装置102-kがトランスポートプロトコル部と補完トランスポートプロトコル部の両方を備え、同時にサーバ装置101がトランスポートプロトコル部のみを備えるように、役割が変更されてもよい。またさらなる例では、サーバ装置101とクライアント装置101-kの両方がトランスポートプロトコル部および補完トランスポートプロトコル部を備えるようにされてもよい。説明を明瞭かつ簡潔にするために、以下の実施形態は、サーバ装置101がトランスポートプロトコル部と補完トランスポートプロトコル部の両方を備えると仮定するが、クライアント装置102-kはトランスポートプロトコル部のみを備えてもよい。
【0031】
ひとつの実施形態によれば、サーバ装置101内の補完トランスポートプロトコル部は、サーバ装置101内のトランスポート部に、そこからクライアント装置102-kに送信されたすべてのデータブロックのうち、それに割り当てられた第1の基準シーケンス番号を有するものまでの確認応答を示す情報を提供するように配置されてもよい。この点に関する例として、第1の参照シーケンス番号は、最も新しく送信されたデータブロック(すなわち、サーバ装置101からクライアント装置102-kに最も新しく送信されたもの)に割り当てられた参照番号から構成されてもよい。他の例では、第1の参照シーケンス番号は、他の最近送信されたデータブロック、例えば、最も新しく送信されたデータブロックの直前のものに割り当てられたシーケンス番号、または、一般的には、N:番目の最も新しく送信されたデータブロックに割り当てられたシーケンス番号から構成されてもよい。その結果、サーバ装置101内のトランスポートプロトコル部には、トランスポートプロトコル部によるデータブロックの再送および/または輻輳回避状態への移行を回避する情報が提供される。
【0032】
補完トランスポートプロトコル部が、そこから送信されたすべてのデータブロックの確認応答を示す情報をトランスポート部に提供する態様は、補完トランスポートプロトコル部が、クライアント装置102-kから受信した確認応答ブロックを、それに割り当てられた第1の参照シーケンス番号を有するデータブロックまでサーバ装置101から送信されたすべてのデータブロックの受信を示すようにトランスポートプロトコル部に渡す前に変更することから構成されてもよい。この点に関する例として、前述のラインに沿って、確認応答ブロックは、クライアント装置102-kで受信した1つ以上のデータブロックに割り当てられたシーケンス番号のそれぞれの指示を含んでもよく、一方、補完トランスポートプロトコル部は、確認応答ブロックを、サーバ装置101から、それに割り当てられた最初の基準シーケンス番号を有するものまで送信されたすべてのデータブロックの受信を示すように修正してもよい。さらにこの点で、確認応答ブロックは、前述の受信済みシーケンスインジケータを介して、そこで受信されたデータブロックに割り当てられたそれぞれのシーケンス番号を示してよく、一方、補完トランスポートプロトコル部は、確認応答ブロックの受信済みシーケンスインジケータを第1の基準シーケンス番号を示すものに置き換えてよい。任意で、確認応答ブロックは、前述の1つ以上のさらなるシーケンス番号のそれぞれの指示を含んでもよく、一方、補完トランスポートプロトコル部は、確認応答ブロックから1つ以上のさらなるシーケンス番号の指示を除去してもよい。
【0033】
補完トランスポートプロトコル部が、そこから送信されたすべてのデータブロックの確認応答を示す情報をトランスポートプロトコル部に提供する態様は、クライアント装置102-kによって確認応答されたデータブロックのシーケンスにおける可能なギャップをマスキングすることにつながり、その結果、サーバ装置101内のトランスポートプロトコル部がデータブロックのいずれかを再送することを防ぐ、および/またはサーバ装置101内のトランスポートプロトコル部が混雑回避状態に移行することを防ぐ役割を果たすことが可能である。補完トランスポートプロトコル部の動作は、トランスポートプロトコル部が可能な限り未確認のデータブロックを検出することを防止し得るので、サーバ装置101からクライアント装置102-kに送信されるユーザーデータは、クライアント装置102-kにおけるユーザーデータの可能性のある欠落部分を検出できる情報を含んでもよく、及び/又はサーバ装置101からクライアント装置102-kに送信されるユーザーデータはサーバ装置101とクライアント装置102-kとのラウンドトリップ時間を監視できる情報を含んでも良い。さらに、クライアント装置102-kからサーバ装置101に送信されるユーザーデータは、クライアント装置102-kにおいてバッファリングされたユーザーデータの量を示す情報を含んでもよく、これは、サーバアプリケーションに、クライアント装置102-kへのユーザーデータの送信を制御するための追加情報を提供し得るものである。
【0034】
この点に関する非限定的な例として、サーバアプリケーションから発信されるユーザーデータは、サーバ装置101内のトランスポートプロトコル部に(アプリケーション)データフレームのシーケンスとして提供されてもよく、これらは、それぞれのアプリケーションシーケンス番号および/または他の種類の順序付け情報とともに提供されてもよく、一方、トランスポートプロトコル部は、アプリケーションデータフレームをクライアント装置102-kへの伝送のためのデータブロックのシーケンスにアレンジしてもよい。さらに、クライアント装置102-kは、それぞれのアプリケーションシーケンス番号および/またはアプリケーションデータフレームに含まれる他の種類の順序付け情報への参照を介して、正常に受信したアプリケーションデータフレームを報告するアプリケーション層確認応答をサーバ装置101に送信することによって、それが受信するアプリケーションデータフレームに応答することができる。そのようなユーザーデータの例は、それぞれが1つ以上のメディアフレームを含み、それぞれのアプリケーションシーケンス番号および/またはそれぞれのタイムスタンプを有するメディアパケットに配置され得るメディアフレームのシーケンスを含むオーディオストリームおよび/またはビデオストリームなどのメディアストリームを含む。メディアパケットは、データブロックのシーケンスにおいて送信されるアプリケーションデータフレームとして機能してもよく、一方、クライアント装置102-kは、サーバ装置101に、それらのアプリケーションシーケンス番号および/またはそれらのタイムスタンプへの参照を介して、正常に受信したメディアパケット(またはメディアフレーム)を報告するアプリケーション層の確認応答を送信することによって、そこで受信したメディアパケットに応答することができる。
【0035】
サーバ装置101内のサーバアプリケーションおよび/またはクライアント装置102-k内のクライアントアプリケーションの特性および/または動作にさらに言及すると、サーバアプリケーションは、クライアントアプリケーションで受信したアプリケーションデータフレームのサブシーケンスのギャップおよび/または観測されたラウンドトリップタイムの増加に対して、未確認アプリケーションデータフレームを選択的に再伝送することによっておよび/または通信ネットワーク103内で失われ得るアプリケーションフレームの少なくとも一部を再構築可能にするFECメカニズムを選択的に適用して冗長データを伝達することによって対応しても良い。したがって、例えばメディアパケットの場合、通信ネットワーク103内で失われたメディアフレームまたはメディアパケットは、それぞれのメディアフレーム/パケットに係る確認応答の欠如に応答して再送信されてもよいし、FECメカニズムの動作を介して送信される冗長データに基づいて再構築されてもよい。さらに、メディアパケットがオーディオストリーム及び/又はビデオストリームを伝達するのに役立つ場合、クライアントアプリケーションは、適用されるオーディオ及び/又はビデオデコーダーに含まれるそれぞれのエラー隠蔽メカニズムの使用を通じて、知覚可能なユーザー体験メディア品質に大きな影響を与えることなく、メディアフレーム又はメディアパケットの損失をある程度、例えば、数パーセントのメディアフレーム損失レートまで許容することができる可能性がある。
【0036】
輻輳回避および/または輻輳制御に関して、サーバ装置101によって行われる任意の輻輳制御動作は、サーバ装置101において実行されるサーバアプリケーションの動作を介して実施されてもよい。この点に関して、輻輳制御および/または輻輳回避は、例えば、クライアント装置102-kにおいてクライアントアプリケーションから発信されるユーザーデータ(例えば、それぞれのアプリケーションデータフレーム)の一部として受信した情報に依存して、および/またはサーバアプリケーションにおいて観測されるラウンドトリップ時間に依存して、実施されてもよい。この点に関して、サーバ装置101においてクライアント装置102-kから受信されるアプリケーションデータフレームは、サーバ装置101からクライアント装置102-kに送信されたアプリケーションデータフレームのうち、クライアント装置102-kにおいて正常に受信されたものの確認応答を含み得る。この確認応答によってサーバアプリケーションは、サーバ装置101からクライアント装置102-kへの途中で失われたアプリケーションデータフレームを検出し、サーバ装置101およびクライアント装置102-k間のラウンドトリップ時間を推定することが可能である。その結果、サーバアプリケーションは、サーバアプリケーションで観測されたアプリケーションデータフレーム損失率および/またはサーバアプリケーションで測定されたラウンドトリップ時間が通信ネットワーク103の輻輳を示唆する場合に、そこから送信されるアプリケーションデータフレームのデータレートを低下させるようにその動作を例えば調整することができる。再びメディアストリームを例にして、サーバアプリケーションは、メディア品質の低減、例えばメディア解像度(例えばオーディオ表現の粒度及び/又は画像解像度)に関する低減を介して、及び/又はメディアフレームレートの低減を介して、メディアストリームのソースデータレートを低減することによって通信ネットワーク103における輻輳に反応してもよい。
【0037】
ひとつの実施形態によれば、サーバ装置101内の補完トランスポートプロトコル部は、サーバ装置101に、クライアント装置102-kに対して、サーバ装置101から送信されたデータブロックで、それに第2の基準シーケンス番号よりも小さいシーケンス番号が割り当てられたものを無視するようクライアント装置102-k(例えば、トランスポートプロトコル部)に指示する制御ブロックを選択的に送信させるよう配置することができる。この点で、サーバ装置101内の補完トランスポートプロトコル部の動作により、クライアント装置102-kで受信したデータブロックのサブシーケンスにおける可能なギャップに気づかない、サーバ装置101内のトランスポートプロトコル部によって再送信されたものを有するように、制御ブロックは、未確認のこれらのデータブロックを報告するクライアント装置102-k(内のトランスポートプロトコル部)を避けるように機能する。代わりに、上述のラインに沿って、ユーザーデータの任意の再送信または可能な輻輳回避動作は、アプリケーションデータフレームで交換される情報に基づいて、サーバ装置101内のサーバアプリケーションの動作を介して実施され得る。
【0038】
サーバ装置101から送信される制御ブロックは、第2の参照シーケンス番号を識別する情報、例えば、そのような第2の参照シーケンス番号及び/又は第2の参照シーケンス番号の導出を可能にする1つ又は複数の情報の断片を含んでもよい。データブロック及び確認応答ブロックについて前述したラインに沿って、制御ブロックもトランスポートパケットでサーバ装置101とクライアント装置102-kとの間で伝送されてもよい。制御ブロックの選択的な伝送は、予め定義されたスケジュールに従って発生する伝送、及び/又は、サーバ装置101から伝送されるデータブロックに割り当てられたシーケンス番号に関連する1つ以上の予め定義された基準に応答して発生する伝送を含んでもよい。一例として、第2の基準シーケンス番号は、最も新しく送信されたデータブロック(すなわち、サーバ装置101からクライアント装置102-kに最も新しく送信されたもの)に割り当てられた基準番号から構成されてもよい。他の例では、第2の参照シーケンス番号は、別の最近送信されたデータブロック、例えば、最も新しく送信されたデータブロックの直前のものに割り当てられたシーケンス番号、または、一般的には、N番目の最も新しく送信されたデータブロックに割り当てられたシーケンス番号から構成されてもよい。ひとつの実施形態では、第2参照シーケンス番号は第1参照シーケンス番号と同じであるが、別の実施形態では、第2参照シーケンス番号は第1参照シーケンス番号と異なる。
【0039】
クライアント装置102-kにおける制御ブロックの受信により、クライアント装置102-k内のトランスポートプロトコル部は、それに割り当てられた第2の参照シーケンス番号を有するものまでの全てのデータブロックが正常に受信されたか冗長であるとみなすことにより、それに割り当てられた第2の参照シーケンス番号以下のシーケンス番号を有するデータブロックの受信サブシーケンスにおけるギャップを報告せず、従って、サーバ装置101からクライアント装置102-kまでの伝送経路において損失または深刻な遅延が生じるかもしれない当該データブロックの再送信は期待しない状態に設定される。
【0040】
一例として、制御ブロックの選択的な送信は、クライアント装置(102-k)から1つ以上の確認応答ブロックにおいて受信した、第2の基準シーケンス番号よりも小さいシーケンス番号を示す受信済みシーケンスインジケータ(前述)に応答して実施されてもよい。言い換えれば、制御ブロックの送信は、クライアント装置102-kが、それが受信したデータブロックの連続シーケンスの最後のデータブロックが、第2の基準シーケンス番号よりも小さいシーケンス番号をそれに割り当てたことを示すことによってトリガされてもよい。この点で、制御ブロックの送信は、例えば、クライアント装置102-kからの確認応答ブロックの受信をトリガとしてもよい。
【0041】
別の実施形態では、制御ブロックの選択的な送信は、そのような制御ブロックの最も新しい以前の送信からの経過時間を考慮してさらに実施されてもよい。この点に関して、制御ブロックの選択的な送信は、クライアント装置(102-k)から1つ以上の確認応答ブロックで受信された受信済みシーケンスインジケータが、そのような制御ブロックの最も新しい以前の送信から少なくとも予め定められた量の時間が経過しているという条件で第2の基準シーケンス番号より小さいシーケンス番号を示すことに応答して実施されてもよい。この点に関して、予め定義された時間の量は、例えば、2ミリ秒から100ミリ秒までの範囲から選択される値、例えば、5ミリ秒であってよい。さらなる例では、制御ブロックの選択的な送信は、例えば、制御ブロックが予め定められた時間間隔で送信され得るような、予め定められたスケジュールに従ってもよい。また、このアプローチにおいて、予め定義された時間間隔は、例えば、2ミリ秒から100ミリ秒の範囲から選択される値、例えば、5ミリ秒であってよい。
【0042】
図3は、本開示で説明したトランスポートプロトコル部および補完トランスポートプロトコル部の動作を考慮して、図2の通信モデルをさらに詳細に示したものである。図3の例では、サーバアプリケーションからクライアントアプリケーションへのユーザーデータは、サーバ装置101-kにおいて、クライアント装置102-kへの送信のためにトランスポートプロトコル部および補完トランスポートプロトコル部を介してIP層へ流れ、そこでユーザーデータはIP層からトランスポートプロトコル部を介してクライアントアプリケーションに渡ってもよく、一方、その逆方向でユーザーデータは図3に示す層を通って逆向きに流れてもよい。いずれの場合も、ユーザーデータは、サーバ装置101とクライアント装置102-kにおけるそれぞれのトランスポートプロトコル部の間で、それぞれのデータブロックのシーケンスで転送されてもよい。さらに、サーバ装置101における補完トランスポートプロトコル部は、IP層を介して受信した確認応答ブロックをトランスポートプロトコル部に渡す前に、前述したアプローチに従って修正する役割を果たし、一方、補完トランスポートプロトコル部はさらに、前述したアプローチによりIP層を介して制御ブロック(前述)をクライアント装置102-kに選択的に送信する役割を果たす場合がある。サーバ装置101のトランスポートプロトコル部および補完トランスポートプロトコル部は、少なくとも概念的には、サーバ装置101におけるトランスポート層を提供するものであってよい。
【0043】
補完トランスポートプロトコル部の動作は、場合によっては、送信されたユーザーデータの特性及び/又はサーバアプリケーション及びクライアントアプリケーションの能力を利用する方法で通信ネットワーク103におけるデータの損失及び/又は輻輳を取り扱うためのアプリケーションレベルの機構と共に、トランスポートプロトコル部の再送及び/又は輻輳回避機構の使用によって得られるものと比較してユーザー体験のサービス品質を大幅に改善することを可能にする。トランスポートプロトコル部が汎用的な使用(例えば、オペレーティングシステムやブラウザアプリケーションの一部として提供され、APIやソケットインターフェースを介して利用可能なもの)を意図しているため、サーバアプリケーションの特定の要件を考慮できない場合、および/またはサーバアプリケーションがゲームアプリケーションやオーディオ/ビデオ会議アプリケーションなど、特に低遅延を必要とするものである場合、パフォーマンスの向上が特に顕著になる可能性がある。
【0044】
前述した実施形態は、通信システム100の枠組みにおけるサーバ装置101とクライアント装置102-kとの間のユーザーデータの転送に言及している。この点に関する別の例では、サーバ装置101を介して、2つのクライアント装置間でユーザーデータを転送することができる。以下では、説明の明瞭性を高めるために、これら2つのクライアント装置を、第1クライアント装置102-mおよび第2クライアント装置102-nと呼ぶことにする。このような通信配置において、サーバ装置101は、第1のクライアント装置102-mから受信したデータを第2のクライアント装置102-nに転送し、逆に、第2のクライアント装置102-nから受信したデータを第1のクライアント装置102-mに転送する中間装置として動作することができる。
【0045】
サーバ装置101を介した第1及び第2のクライアント装置102-m,102-nの間の通信において適用される通信モデルを図4に示す。このシナリオでは、第1クライアント装置102-m及び第2クライアント装置102-nの各々は、それぞれのクライアントアプリケーションを実行してもよく、クライアントアプリケーションは、トランスポートプロトコルの動作を介して実装され得るトランスポート層を介して通信ネットワーク103上のパケット交換通信を提供するIP層へのアクセスを有している。サーバ装置101は、第1のクライアント装置102-mからのトランスポートパケットを第1のトランスポートパケットストリームで受信し、一方、サーバ装置101で実行されるサーバアプリケーションは、第1のトランスポートパケットストリームのトランスポートパケットで受信したユーザーデータを第2のトランスポートパケットストリームのトランスポートパケットにアレンジし、第2のクライアント装置102-nに第2のトランスポートパケットストリームのトランスポートパケットを送信しても良い。同様にして、サーバ装置101は、第2のクライアント装置102-nから第3のトランスポートストリームでトランスポートパケットを受信し、サーバアプリケーションは、第3のトランスポートパケットストリームのトランスポートパケットで受信したユーザーデータを第4のトランスポートパケットストリームのトランスポートパケットに配置し、第4のトランスポートパケットストリームのトランスポートパケットを第1のクライアント装置102-mに伝送してもよい。この点で適用されるトランスポートプロトコルは、例えば、SCTPで構成されてもよい。この点、図2を参照して提供される本開示で説明されるアプリケーションとトランスポートプロトコルとの関係を説明するためのものとして優位に働く図示の通信モデルに関する言及は、図4に示す通信モデルにも適用される。
【0046】
中間装置として動作するサーバ装置101は、例えば、トランスポート層において、第1のクライアント装置102-mと通信するための第1のトランスポートプロトコル部と、第2のクライアント装置102-nと通信するための第2のトランスポートプロトコル部を実装してもよく、第1のトランスポートプロトコル部及び第2のプロトコル部のそれぞれは、サーバ装置101におけるサーバアプリケーションとクライアント装置102-kにおけるクライアントアプリケーションとの通信を伴う例において、前述の方法で動作することが可能である。さらに、中間装置として動作するサーバ装置101におけるトランスポート層は、例えば、図3の例に従って、第1トランスポートプロトコル部および第2トランスポートプロトコル部のそれぞれの一方とIP層との間にトランスポート層のそれぞれのサブレイヤーとして設けられた、第1トランスポートプロトコル部および第2トランスポートプロトコル部のそれぞれについて前述したそれぞれの補完トランスポートプロトコル部で構成されてもよく、準用される。
【0047】
その結果、第1のトランスポートプロトコル部のための補完トランスポートプロトコル部は、サーバ装置101における第1のトランスポートプロトコル部が第1のクライアント装置102-mにデータブロックのいずれかを再送することを防止し、第1のトランスポートプロトコル部が輻輳回避状態に移行することを防止しつつ、トランスポートプロトコル部をサーバ装置101からのデータブロックの再送を期待しない状態に設定する役割を果たすことができる。同様のラインに沿って、サーバ装置101における第2のトランスポートプロトコル部のための補完トランスポートプロトコル部は、第2のトランスポートプロトコル部が第2のクライアント装置102-nにデータブロックのいずれかを再送することを防止し、第2のトランスポートプロトコル部が輻輳回避状態に移行することを防止しながら、トランスポートプロトコル部をサーバ装置101からのデータブロックの再送信を期待しない状態にもする役割を果たすことができる。
【0048】
上述した、第1クライアント装置102-mと第2クライアント装置102-nにおけるそれぞれのクライアントアプリケーション間で、中間装置として機能するサーバ装置101を介してユーザーデータを伝送するシナリオでは、第1及び第2クライアント装置102-m,102-nは、サーバ装置101が「中間装置」として機能していることを意識せず、第1及び第2クライアント装置102-m,102-nから見ると両者の接続は直接的であると考えて良い。
【0049】
上記の説明では、例えばサーバ装置101におけるトランスポートプロトコル部及び補完トランスポート部の動作の態様に関する様々な例を説明したが、図5は、方法200によるトランスポートプロトコル部及び補完トランスポートプロトコル部の共同動作のいくつかの態様に関するさらなる非限定的例を説明するフローチャートを示すものである。この例の文脈では、クライアント装置102-kから受信した確認応答ブロックは、受信したシーケンスインジケータと、前述した1つ以上のさらなるシーケンス番号のインジケータとを含むと仮定する。方法200において、ブロック204から210を参照して説明した操作は、補完トランスポートプロトコル部によって実装される操作を表し、ブロック202及び212の操作は、トランスポートプロトコル部によって実装されるトランスポートプロトコルによる操作に係るものである。
【0050】
方法200は、ブロック202に示されるように、サーバ装置101がクライアント装置102-kから確認応答ブロックを受信することから始まり、次に、ブロック204に示されるように、確認応答ブロックに含まれる受信済みシーケンスインジケータが第1の基準シーケンス番号より小さいシーケンス番号を示すか否かを判断することに進む。前述したラインに沿って、第1の基準シーケンス番号は、最も新しく送信されたデータブロック(すなわち、サーバ装置101からクライアント装置102-kに最も新しく送信されたもの)に割り当てられたシーケンス番号から構成されてもよい。ブロック204の判定が非肯定的である場合、方法200はブロック212に進み、トランスポートプロトコル部によって実装されるトランスポートプロトコルに従って動作を継続する。ブロック204の判断が肯定的である場合、方法200は、ブロック206に示されるように、クライアント装置102-kへの(前述したタイプの)制御ブロックの最も新しい送信から少なくとも予め定められた時間量が経過したか否かを判断するために進む。
【0051】
ブロック206の判定が非肯定である場合、方法200はブロック210に進み、受信した確認応答ブロックの受信済みシーケンスインジケータを修正して第1の参照シーケンス番号を示し、確認応答ブロックに含まれ得る1以上の更なるシーケンス番号のそれぞれのインジケータを削除する。ブロック206の判断が肯定的である場合、方法200は、ブロック208で示されるように、第2の基準シーケンス番号よりも小さいシーケンス番号をそれに割り当てられた任意の未受信データブロックを無視するようにクライアント装置102-kに指示する制御ブロック(前述)の送信に進み、第2の基準シーケンス番号は、最も新しく送信したデータブロック(すなわち、サーバ装置101からクライアント装置102-kに最も新しく送信したもの)に割り当てられたシーケンス番号からなる場合がある。ブロック208を参照して説明した動作が実施されると、方法200は、ブロック210に進んで上述のそれぞれの動作を実施し、さらにブロック212に進んでトランスポートプロトコル部によって実装されたトランスポートプロトコルに従って動作を継続することができる。
【0052】
方法200に係るブロック202から212を参照して説明したそれぞれの動作は、例えば、サーバ装置101及び/又はクライアント装置102-k、102-m、102-nを参照して前述及び/又は以下で説明するように、多くの方法で変化させたり補完したりすることができる。
【0053】
上で簡単に説明したように、サーバ装置101およびクライアント装置102-k、102-m、102-nに設けられたそれぞれのトランスポートプロトコル部の文脈で実装されるトランスポートプロトコルの非限定的な例は、SCTPプロトコルからなり、これは、前述で提供した実施形態に記載したトランスポートプロトコル部および補完トランスポートプロトコル部の動作に関係する態様に関して、以下で簡単に紹介される。以下では、SCTPは、主にサーバ装置101とクライアント装置120-kとの間の通信を参照して説明されるが、一方、この説明は、任意の2つの装置間の接続に容易に一般化され、準用される。
【0054】
高レベルで、SCTPは、2つのホスト間、例えば、SCTPエンドポイントとも呼ばれ得るサーバ装置101とクライアント装置102-kとの間の関連付けを提供する。サーバ装置101とクライアント装置102-kとの間の関連付けは、サーバ装置101及びクライアント装置102-kのそれぞれにおけるそれぞれの1つ又は複数のトランスポートアドレスを含んでもよい。この点、1つのトランスポートアドレスは、IPアドレスとSCTPポート番号の組合せを含んでもよい。SCTPの最新バージョンは、RFC4960において完全に詳細に規定されているが、SCTPの様々な態様は、他の多数のRFCにおいてさらに定義または詳しく説明されている。この点に関する例として、RFC3758は、送信されたユーザーデータの一部を選択的に無視するためのサポートを定義している。本開示の目的のために、SCTP動作の関連する態様は、サーバ装置101からクライアント装置102-kへのユーザーデータの送信を、サーバ装置101からクライアント装置102-kに送信されるユーザーデータに対して適用される輻輳制御およびパケットの再送信に関する特定の態様とともに含み、これらは以下においてさらに詳細に論じられる。
【0055】
SCTPパケットは、パケットヘッダと、アプリケーション層からのユーザーデータおよび/またはSCTPセッション制御情報を1つのSCTPエンドポイントから別のSCTPエンドポイントに運ぶ可能性のある1つ以上のチャンクを含む。サーバ装置101からクライアント装置102-kへのユーザーデータは、DATAチャンクで伝送されてもよい。これに関して、SCTPエンドポイントから送信される各DATAチャンクは、送信SCTPエンドポイント(例えば、サーバ装置101)によってそこから送信される各データチャンクに対してインクリメントされるTSN(Transmission Sequence Number)を含んでいる。DATAチャンクに含まれるTSNは、受信SCTPエンドポイントが、それぞれのDATAチャンクを識別して受信を確認すること、および/または重複して受信された可能性のあるDATAチャンクを検出することを可能にする。受信側SCTPエンドポイントは、送信側SCTPエンドポイントから受信したDATAチャンクを確認し、受信側SCTPエンドポイントで受信したDATAチャンクのシーケンスにギャップがある可能性を送信側SCTPエンドポイントに知らせるために、選択的確認(SACK)チャンクを使用できる(ここで、SACKチャンクで報告された確認済みDATAチャンクは、それぞれのTSNを介して参照される)。この点に関して、SACKチャンクは、連続したDATAチャンクの最新のDATAチャンクのTSN(累積TSN Ack)と、連続したDATAチャンクの最新のDATAチャンクに続く、シーケンスにギャップのあるDATAチャンクの各TSN(Gap Ack Blocks)を示すことを可能にする。
【0056】
したがって、送信SCTPエンドポイントは、受信SCTPエンドポイントに正常に配信されたDATAチャンクに関して、および逆に、受信SCTPエンドポイントから受信したSACKチャンクを介してネットワーク103で失われる可能性があるDATAチャンクに関して、最新情報を得ることができる。この知識により、送信側SCTPエンドポイントは、受信側SCTPエンドポイントへの途中で失われたDATAチャンクを検出し、その結果、それに応じて送信側SCTPエンドポイントにおける輻輳回避および/または再送信メカニズムをトリガすることができる。
【0057】
SCTPエンドポイントは、FORWARD TSNチャンク(RFC3758で定義)を使用して、FORWARD TSNチャンクで示されたものより小さいTSNを持つ、まだ受信していないすべての(おそらく)DATAチャンクを無視するように受信側SCTPに指示することができる。その結果、FORWARD TSNチャンクを受信すると、受信側SCTPエンドポイントは、FORWARD TSNチャンクで示されるTSNよりも小さいTSNを持ち、送信側SCTPエンドポイントと受信側SCTPエンドポイント間のトランスポートパスで失われる可能性のあるDATAチャンクの再送を期待しない状態になる可能性がある。
【0058】
SCTPプロトコルの要素と、前述のトランスポートプロトコル部および補完トランスポートプロトコル部によって処理される対応する要素との間のマッピングは、ほとんどが暗黙的であるが、それでもいくつかの要素のマッピングは、本明細書で明示的に定義される。前述のデータブロックは、SCTP DATAチャンクを構成することができ、前述の確認応答ブロックは、SCTP SACKチャンクを構成することができ、前述の制御ブロックは、SCTP FORWARD TSNチャンクを構成することができる。前述のシーケンス番号はSCTP TSNを構成してもよく、前述の受信シーケンス指示はSCTP累積TSN Ackを構成してもよく、1つ以上のさらなるシーケンス番号のそれぞれの指示はSCTP Gap Ackブロックを構成してもよい。
【0059】
さらなる非限定的な例として、本開示で説明したサーバ装置101におけるトランスポートプロトコル部および補完トランスポートプロトコル部を用いた通信に係るいくつかの態様は、図6にフローチャートとして示される方法300に従って動作してもよい。方法300は、ブロック301に示されるように、ある装置(例えばサーバ装置101)が、サーバ装置101におけるトランスポート層に実装されたトランスポートプロトコルに従って、パケット交換ネットワーク103を介して他の装置(例えばクライアント装置102-k、102-m、102-n)と通信することから開始される。
【0060】
この点に関して、トランスポートプロトコルによる通信は、ブロック302で示されるように、割り当てられたそれぞれのシーケンス番号を有するデータブロックのシーケンスでユーザーデータを他の装置に送信することと、ブロック304で示されるように、他の装置から、他の装置での当該データブロックの少なくともいくつかの受信を確認する確認応答ブロックを受信することと、ブロック306で示されるように、他の装置によって確認されない当該データブロックのものを他の装置に再送信することと、ブロック308で示されるように、他の装置によって確認されていない当該データブロックの予め定められた量に応答して輻輳回避状態に移行することとを備える。ブロック302から308を参照して本明細書で説明したそれぞれの動作を実施する装置におけるトランスポートプロトコルの順序は、図6に示したものと異なっていてもよい。
【0061】
方法300は、ブロック310で示されるように、割り当てられた第1の基準シーケンス番号を有する1つに至るまで、すべてのデータブロックの確認応答を示す情報をトランスポートプロトコルに提供することと、ブロック312で示されるように、割り当てられた第2の基準シーケンス番号より小さいシーケンス番号を有する任意の未受信データブロックを無視するよう他の装置に指示する制御ブロックを選択的に他の装置に送信することとを更に含む。ブロック310及び312を参照して説明したそれぞれの動作は、ブロック302から308を参照して説明した動作と並行して行われてもよく、それらは図6に示されるものとは異なる順序で行われてもよい。さらに、方法300に係るブロック302から312を参照して説明したそれぞれの動作は、例えば、サーバ装置101及び/又はクライアント装置102-k、102-m、102-nを参照して前述及び/又は以下で説明するように、多くの方法で変化させたり補完したりすることができる。
【0062】
図7は、例示的な装置400のいくつかの構成要素のブロック図である。装置400は、図7に描かれていないさらなる構成要素、要素、または部分を含んでいてもよい。装置400は、コンピューティング装置と呼ばれてもよく、それは、例えば、サーバ装置101及び/又はクライアント装置102-k、102-m、102-nを参照して前述の操作、手順及び/又は機能の少なくともいくつかを実施する際に採用されてもよい。
【0063】
装置400は、プロセッサ410と、メモリ420とを備える。メモリ420は、データ及びコンピュータプログラムコード425を格納してもよい。装置400は、通信ネットワーク及び/又は通信リンクを介して他の装置と有線又は無線で通信するための通信部430をさらに備えてもよい。装置400は、プロセッサ410及びコンピュータプログラムコード425の一部と共に、ユーザーから入力を受け取り及び/又はユーザーに出力を提供するためのユーザーインターフェースを提供するように構成されるユーザーI/O(入力/出力)コンポーネント440を更に含んでもよい。特に、ユーザーI/Oコンポーネント440は、1つ以上のキーまたはボタン、キーボード、タッチスクリーンまたはタッチパッドなどのユーザー入力部分を含んでもよい。ユーザーI/Oコンポーネントは、ディスプレイやタッチスクリーンなどの出力部分を含んでもよい。装置400の構成要素は、構成要素間のデータ及び制御情報の転送を可能にするバス450を介して互いに通信可能に結合される。
【0064】
メモリ420及びメモリ420に格納されたコンピュータプログラムコード425の一部は、プロセッサ410と共に、装置400に、サーバ装置101及び/又はクライアント装置102-k、102-m、102-nを参照して前述の操作、手順及び/又は機能の少なくとも一部を実行させるようにさらに配置されてもよい。プロセッサ410は、メモリ420から読み出し、メモリ420に書き込むように構成される。プロセッサ410は、それぞれの単一コンポーネントとして描かれているが、それぞれの1つ以上の別個の処理コンポーネントとして実装されてもよい。同様に、メモリ420は、それぞれの単一コンポーネントとして描かれているが、それぞれの1つ以上の別個のコンポーネントとして実装されてもよく、その一部又は全部は、統合/取り外し可能であってもよく、及び/又は、永久/半永久/動的/キャッシュストレージを提供してもよい。
【0065】
コンピュータプログラムコード425は、プロセッサ410にロードされたときに、サーバ装置101及び/又はクライアント装置102-k、102-m、102-nを参照して前述した操作、手順及び/又は機能の少なくとも一部を実装するコンピュータ実行可能命令を含んでいてもよい。一例として、コンピュータプログラムコード425は、1つ以上の命令列からなるコンピュータプログラムを含んでもよい。プロセッサ410は、コンピュータプログラムに含まれる1つ又は複数の命令のシーケンスをメモリ420から読み出すことにより、コンピュータプログラムをロードして実行することができる。1つ又は複数の命令の1つ又は複数のシーケンスは、プロセッサ410によって実行されると、装置400に、サーバ装置101及び/又はクライアント装置102-k、102-m、102-nを参照して前述した操作、手順及び/又は機能の少なくとも一部を実行させるように構成されてもよい。したがって、装置400は、少なくとも1つのプロセッサ410と、1つ以上のプログラムのためのコンピュータプログラムコード425を含む少なくとも1つのメモリ420とを備え、少なくとも1つのメモリ420およびコンピュータプログラムコード425は、少なくとも1つのプロセッサ410によって、装置400に、サーバ装置101および/またはクライアント装置102-k、102-m、102-nを参照して前述した動作、手続きおよび/または機能のうちの少なくとも一部を実行させるよう構成され得る。
【0066】
コンピュータプログラムコード425は、例えば、コンピュータプログラムコード425をその上に格納した少なくとも1つの非一時的コンピュータ可読媒体を含むコンピュータプログラムプロダクトを提供してもよく、このコンピュータプログラムコード425は、プロセッサ410によって実行されると、装置400に、サーバ装置101及び/又はクライアント装置102-k、102-m、102-nを参照して前述の操作、手順及び/又は機能の少なくともいくつかを実行させる。非一時的コンピュータ可読媒体は、コンピュータプログラムを具現的に実施するメモリ装置または記録媒体で構成されてもよい。また、他の例として、コンピュータプログラムを確実に転送するように構成された信号として提供されてもよい。
【0067】
本明細書におけるプロセッサへの参照(複数可)は、プログラマブルプロセッサのみを包含するものと理解されるべきではなく、フィールドプログラマブルゲートアレイ(FPGA)、特定用途回路(ASIC)、信号プロセッサなどの専用回路も包含するものと理解されるべきである。
図1
図2
図3
図4
図5
図6
図7
【手続補正書】
【提出日】2022-12-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
パケット交換ネットワーク(103)を介して他の装置(102-k)と通信するための装置(101)であって、前記装置(101)が、
トランスポートプロトコル部であって、
割り当てられたそれぞれのシーケンス番号を有するデータブロックのシーケンスでユーザーデータを他の装置(102-k、102-m、102-n)へ送信することと、
前記データブロックの少なくともいくつかの受信を確認する確認応答ブロックを他の装置(102-k、102-m、102-n)から受信することと、
前記他の装置(102-k、102-m、102-n)により確認されなかった前記データブロックのものを、前記他の装置(102-k、102-m、102-n)に再送信することと、
前記他の装置(102-k、102-m、102-n)によって確認されていない前記データブロックの予め定められた量に応答して、輻輳回避状態に移行することと
を少なくとも当該装置(101)に実行させるように構成されたトランスポートプロトコル部と、
補完トランスポートプロトコル部であって、
それぞれの確認応答ブロックが、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの受信を指示するように、前記トランスポートプロトコル部に渡す前に、前記他の装置(102-k、102-m、102-n)から受信した前記確認応答ブロックを修正することを通じて、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの確認応答を指示する情報を前記トランスポートプロトコル部に提供し、
選択的に、前記装置(101)に、第2の基準シーケンス番号よりも小さいシーケンス番号を割り当てられた任意の未受信のデータブロックを無視するように前記他の装置(102-k、102-m、102-n)に指示する制御ブロックを、前記他の装置(102-k、102-m、102-n)へ送信させる
ように構成された補完トランスポートプロトコル部と
を備える装置(101)。
【請求項2】
前記確認応答ブロックは、前記他の装置(102-k、102-m、102-n)で受信された1つ以上のデータブロックに割り当てられたシーケンス番号のそれぞれの指示を含む、ことを特徴とする請求項1に記載の装置(101)。
【請求項3】
各確認応答ブロックは、前記他の装置(102-k、102-m、102-n)で受信されたデータブロックの連続したサブシーケンスの最後のデータブロックに割り当てられたシーケンス番号を示す受信済みシーケンスインジケータを含み、
前記補完トランスポートプロトコル部は、前記トランスポートプロトコル部に前記確認応答ブロックを渡す前に、前記他の装置(102-k、102-m、102-n)から受信した確認応答ブロック内の受信済みシーケンスインジケータを、前記第1の参照シーケンス番号を示す情報に置き換えるように構成される
ことを特徴とする請求項2に記載の装置(101)。
【請求項4】
各確認応答ブロックが、データブロックの連続したサブシーケンスと前記1つ以上のさらなるシーケンス番号によって識別される1つ以上のデータブロックとの間に少なくとも1つのギャップを有する前記連続したサブシーケンスに続く、それぞれの1つ以上のデータブロックに割り当てられる1つ以上のさらなるシーケンス番号のそれぞれの指示をさらに含み、
前記補完トランスポートプロトコル部が、前記トランスポートプロトコル部に前記確認応答ブロックを渡す前に、前記他の装置(102-k、102-m、102-n)から受信した前記確認応答ブロックから前記1つ以上のさらなるシーケンス番号の前記指示を除去するように構成されている、
ことを特徴とする請求項3に記載の装置(101)。
【請求項5】
前記第1の参照シーケンス番号は、前記データブロックのうち最も新しく送信されたものに割り当てられたシーケンス番号からなる、ことを特徴とする請求項1から4のいずれか一項に記載の装置(101)。
【請求項6】
前記第2の参照シーケンス番号は、前記データブロックのうち最も新しく送信されたものに割り当てられたシーケンス番号からなる、請求項1からのいずれか一項に記載の装置(101)。
【請求項7】
前記補完トランスポートプロトコル部は、前記他の装置(102-k、102-m、102-n)によって確認されたデータブロックの連続したサブシーケンスの最後のデータブロックに割り当てられたシーケンス番号が、前記第2の参照シーケンス番号より小さいことに応答して、前記制御ブロックを前記装置(101)に送信させるよう構成されている、ことを特徴とする請求項1からのいずれか一項に記載の装置(101)。
【請求項8】
前記補完トランスポートプロトコル部は、前記制御ブロックの最も新しい送信から少なくとも予め定められた時間が経過していることを条件として、前記他の装置(102-k、102-m、102-n)によって確認されたデータブロックの連続するサブシーケンスの最後のデータブロックに割り当てられた前記シーケンス番号が前記第2の基準シーケンス番号より小さいことに応答して、前記装置(101)に、前記制御ブロックを送信させるよう構成されている、ことを特徴とする請求項1からのいずれか一項に記載の装置(101)。
【請求項9】
前記予め定められた時間は、2ミリ秒から100ミリ秒の範囲内である、ことを特徴とする請求項8に記載の装置(101)。
【請求項10】
前記補完トランスポートプロトコル部は、前記装置(101)に、予め定められた時間間隔で前記制御ブロックを送信させるように構成されている、ことを特徴とする請求項1からのいずれか一項に記載の装置(101)。
【請求項11】
前記時間間隔が、2ミリ秒から100ミリ秒までの範囲内の予め定められた時間を有する、ことを特徴とする請求項10に記載の装置(101)。
【請求項12】
前記トランスポートプロトコル部は、ストリーム制御伝送プロトコル(SCTP)を適用するように構成されている、ことを特徴とする請求項1からのいずれか一項に記載の装置(101)。
【請求項13】
トランスポートプロトコルに従ってパケット交換ネットワーク(103)を介して他の装置(102-k、102-m、102-n)と通信するための装置(101)における方法(300)であって、前記トランスポートプロトコルに従う通信は、
それに割り当てられたそれぞれのシーケンス番号を有するデータブロックのシーケンスでユーザーデータを、前記他の装置(102-k、102-m、102-n)に送信すること(302)と、
前記データブロックの少なくともいくつかの受信を確認する確認応答ブロックを、他の装置(102-k、102-m、102-n)から受信すること(304)と、
前記データブロックのうち前記他の装置(102-k、102-m、102-n)により確認されなかったものを、前記他の装置(102-k、102-m、102-n)に再送すること(306)と、
前記他の装置(102-k、102-m、102-n)によって確認されていない前記データブロックの予め定められた量に応答して、輻輳回避状態に移行すること(308)と
を有し、
前記方法(300)は、
それぞれの確認応答ブロックが、それに割り当てられた第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの受信を示すように、前記トランスポートプロトコル部にそれを渡す前に、前記他の装置(102-k、102-m、102-n)から受信した確認応答ブロックを修正することによって、それに割り当てられた前記第1の参照シーケンス番号を有する1つに至るまで、すべてのデータブロックの前記確認応答を示す情報を、前記トランスポートプロトコル部に提供すること(310)と、
第2の基準シーケンス番号よりも小さいシーケンス番号を割り当てられた任意の未受信のデータブロックを無視するよう前記他の装置(102-k、102-m、102-n)に指示する制御ブロックを、選択的に前記他の装置(102-k、102-m、102-n)に送信すること(312)と
を備える方法(300)。
【請求項14】
前記プログラムコード(425)がコンピューティング装置(400)上で実行されるとき、少なくとも請求項13に記載の方法(300)を実行させるように構成されたコンピュータ可読プログラムコード(425)からなるコンピュータプログラム。
【国際調査報告】