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

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

▶ カーサシステムズ インコーポレイテッドの特許一覧

特許7335966ネットワーク関連付け情報を回復するための方法及び装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-22
(45)【発行日】2023-08-30
(54)【発明の名称】ネットワーク関連付け情報を回復するための方法及び装置
(51)【国際特許分類】
   H04L 65/1069 20220101AFI20230823BHJP
   H04L 47/34 20220101ALI20230823BHJP
   H04L 67/145 20220101ALI20230823BHJP
【FI】
H04L65/1069
H04L47/34
H04L67/145
【請求項の数】 20
(21)【出願番号】P 2021545478
(86)(22)【出願日】2020-02-04
(65)【公表番号】
(43)【公表日】2022-03-24
(86)【国際出願番号】 US2020016548
(87)【国際公開番号】W WO2020163305
(87)【国際公開日】2020-08-13
【審査請求日】2021-10-30
(31)【優先権主張番号】62/801,365
(32)【優先日】2019-02-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519299315
【氏名又は名称】カーサシステムズ インコーポレイテッド
【氏名又は名称原語表記】CASA SYSTEMS,INC.
(74)【代理人】
【識別番号】100119378
【弁理士】
【氏名又は名称】栗原 弘幸
(72)【発明者】
【氏名】フッカー,シェイン
(72)【発明者】
【氏名】モ,ビン
(72)【発明者】
【氏名】エイペ,ジェイコブ
(72)【発明者】
【氏名】パリワル,ガウラブ
【審査官】大石 博見
(56)【参考文献】
【文献】特表2018-535582(JP,A)
【文献】特開2006-101428(JP,A)
【文献】特開2010-045760(JP,A)
【文献】米国特許出願公開第2017/0237838(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 65/1069
H04L 47/34
H04L 67/145
(57)【特許請求の範囲】
【請求項1】
リモートコンピューティングデバイスとの通信セッションにおける次のパケットに対する最新のデータ送信シーケンス番号を決定するためのコンピュータ化された方法であって:
上記方法は、通信セッションの中断を決定することを有し;
上記方法はさらに、前記通信セッションに対するチェックポイント済みデータを決定することを有し、ここで、チェックポイント済みデータは、リモートコンピューティングデバイスに送信された前のパケットに使用された前のシーケンス番号を示しており;
上記方法はさらに、前記通信セッションにおける前記次のパケットに対する前記最新のデータ送信シーケンス番号を決定するための解決手順を実行することを有し;
前記解決手順は、前記チェックポイント済みデータに基づいて、前記通信セッションでのデータ送信のための推定された次のシーケンス番号を決定することを有し;
前記解決手順はさらに、第1のパケットをリモートコンピューティングデバイスに送信することを有し、ここで、第1のパケットは前記推定された次のシーケンス番号を含むダミーパケットであり;
前記解決手順はさらに、前記リモートコンピューティングデバイスから第2のパケットを受信することを有し、ここで、第2のパケットは関連付けられたシーケンス番号を含んでおり;
前記解決手順はさらに、前記推定された次のシーケンス番号、前記第2のパケット、前記第2のパケットの関連付けられたシーケンス番号、又はそれらのいずれかの組合せに基づいて、前記通信セッションにおける前記次のパケットに対する前記最新のシーケンス番号を決定することを含む;
上記方法。
【請求項2】
前記第1のパケットは、受信デバイスによって予想されたシーケンス番号に対する推定されたシーケンス番号の順序に関係なく、前記受信デバイスによって処理されるように構成されており、
前記第2のパケットの関連付けられたシーケンス番号は、リモートコンピューティングデバイスによって受信された最後のパケットに対する最後に受信されたシーケンス番号の確認応答を表し、
最新のシーケンス番号を決定することは:
第2のパケットの関連付けられたシーケンス番号が、推定されたシーケンス番号に等しいと判定することと;
前記最新のシーケンス番号は、前記関連付けられたシーケンス番号、前記推定されたシーケンス番号、又はその両方の値の後の次の順序付けられた番号に等しいと判定することと;を含む、
請求項1に記載の方法。
【請求項3】
前記通信セッションは、ストリーム制御伝送プロトコル(SCTP)接続であり、
最新のシーケンス番号は、最新の送信シーケンス番号(TSN)を含む、請求項2に記載の方法。
【請求項4】
最新のシーケンス番号を決定することは、前記第2のパケットに基づいて、リモートコンピューティングデバイスによって受信されない欠落パケットのギャップを決定することを有し、ここで、欠落パケットのギャップは少なくとも第1の欠落パケットに対する第1のシーケンス番号を含んでおり;
最新のシーケンス番号を決定することはさらに、第3のパケットをリモートデバイスに送信することを有し、ここで、第3のパケットは前記第1のシーケンス番号を含むダミーパケットであり;
最新のシーケンス番号を決定することはさらに、リモートコンピューティングデバイスから第4のパケットを受信することを有し、ここで、第4のパケットは、前記第3のパケットを受信するリモートコンピューティングデバイスを示す確認応答シーケンス番号を含んでおり;
最新のシーケンス番号を決定することはさらに、前記確認応答シーケンス番号が前記推定されたシーケンス番号に等しいと判定することを有し;かつ
最新のシーケンス番号を決定することはさらに、前記最新のシーケンス番号が、前記確認応答シーケンス番号、前記推定されたシーケンス番号、又はそれら両方の値の後の次の順序付けられた番号に等しいと判定することを有する;
請求項1に記載の方法。
【請求項5】
最新のシーケンス番号を決定することは、前記第2のパケットに基づいて、少なくとも第1の複製シーケンス番号を決定することを有し;
最新のシーケンス番号を決定することはさらに、第3のパケットをリモートデバイスに送信することを有し、ここで、第3のパケットは前記推定されたシーケンス番号及び前記関連付けられたシーケンス番号に基づいて決定された更新された推定されたシーケンス番号を含んでおり;
最新のシーケンス番号を決定することはさらに、リモートデバイスから第4のパケットを受信することを有し、ここで、第4のパケットは第2の確認応答シーケンス番号を含んでおり;かつ
最新のシーケンス番号を決定することはさらに、前記更新された推定されたシーケンス番号、前記第4のパケット、前記第2の確認応答シーケンス番号、又はそれらのいずれかの組み合わせに基づいて、通信セッションにおける次のパケットに対する最新のシーケンス番号を決定することを有する;
請求項1に記載の方法。
【請求項6】
前記第1のパケットは、受信デバイスによって予想されたシーケンス番号に対する前記推定されたシーケンス番号の順序に関係なく、受信デバイスによって処理されるように構成されており、
前記第2のパケットは、データパケットを含んでおり、
最新のシーケンス番号を決定することは:
前記第2のパケットの決定が前記第1のパケットへの応答であると判定することと;及び
リモートコンピューティングデバイスに対する前記最新のシーケンス番号が、前記関連付けられたシーケンス番号と等しいと判定することと;を含む、
請求項1に記載の方法。
【請求項7】
前記通信セッションは、ストリーム制御伝送プロトコル(SCTP)接続であり、
前記最新のシーケンス番号は、最新の送信シーケンス番号(TSN)を含む、
請求項6に記載の方法。
【請求項8】
第1のパケットは、第1のストリームに対するものであり、受信デバイスによって予想されたシーケンス番号に基づく順序で受信デバイスによって処理されるように構成されており、
前記第1のパケットの前記推定されたシーケンス番号は、前記第1のストリームに対する推定されたシーケンス番号であり、
最新のシーケンス番号を決定することは:
前記第2のパケットが前記第1のパケットに応答して送信されたデータパケットであると判定することと;
前記第1のストリームに対する最新のシーケンス番号が前記推定されたシーケンス番号の値の後の次の順序付けられた番号に等しいと判定することと;を含む、
請求項1に記載の方法。
【請求項9】
前記通信セッションは、ストリーム制御伝送プロトコル(SCTP)接続であり、
前記最新のシーケンス番号は、前記第1のストリームに対する最新のストリームシーケンス番号(SSN)を含む、
請求項8に記載の方法。
【請求項10】
上記方法はさらに、前記第1のストリームとは異なる第2のストリームに対する第3のパケットを送信することを有し、ここで、第3のパケットは、受信デバイスによって順序正しく処理されるように構成され、第2のストリームに対する推定されたシーケンス番号を含んでおり;
上記方法はさらに、リモートコンピューティングデバイスから第4のパケットを受信することを有し;
上記方法はさらに、第4のパケットが第3のパケットに応答して送信されたデータパケットであると判定することを有し;かつ
上記方法はさらに、第2のストリームに対する最新のシーケンス番号は、第2のストリームに対する推定されたシーケンス番号の値の後の次の順序付けられた番号に等しいと判定することを有する;
請求項8に記載の方法。
【請求項11】
リモートコンピューティングデバイスとの通信セッションにおける次のパケットに対する最新のデータ送信シーケンス番号を決定するように構成された装置であって、当該装置は、メモリと通信するプロセッサを含み、前記プロセッサは、メモリに格納された命令を実行するように構成されており、前記命令は:
プロセッサに通信セッションの中断を決定させ;
プロセッサに前記通信セッションに対するチェックポイント済みデータを決定させ、ここで、チェックポイント済みデータは、リモートコンピューティングデバイスに送信された前のパケットに対して使用された前のシーケンス番号を示しており;かつ
プロセッサに前記通信セッションにおける次のパケットに対する最新のデータ送信シーケンス番号を決定するための解決手順を実行させ、ここで:
前記解決手順は、前記チェックポイント済みデータに基づいて、前記通信セッションでデータを送信するための推定された次のシーケンス番号を決定することを有し;
前記解決手順はさらに、第1のパケットをリモートコンピューティングデバイスに送信することを有し、ここで、前記第1のパケットは前記推定された次のシーケンス番号を含むダミーパケットであり;
前記解決手順はさらに、リモートコンピューティングデバイスから第2のパケットを受信することを有し、ここで、第2のパケットは関連付けられたシーケンス番号を含んでおり;
前記解決手順はさらに、前記推定された次のシーケンス番号、前記第2のパケット、前記第2のパケットの関連付けられたシーケンス番号、又はそれらのいずれかの組合せに基づいて、前記通信セッションにおける次のパケットに対する最新のシーケンス番号を決定することを有する、
ものである、上記装置。
【請求項12】
前記第1のパケットは、受信デバイスによって予想されたシーケンス番号に対する推定されたシーケンス番号の順序に関係なく、受信デバイスによって処理されるように構成されており;かつ
前記第2のパケットの前記関連付けられたシーケンス番号は、リモートコンピューティングデバイスによって受信された最後のパケットに対する最後に受信されたシーケンス番号の確認応答を表しており;さらに、
最新のシーケンス番号を決定することは:
前記第2のパケットの前記関連付けられたシーケンス番号が前記推定されたシーケンス番号に等しいと判定することと;
前記最新のシーケンス番号が、前記関連付けられたシーケンス番号、前記推定されたシーケンス番号、又はその両方の値の後の次の順序付けられた番号に等しいと判定することと;を有している
請求項11に記載の装置。
【請求項13】
前記通信セッションは、ストリーム制御伝送プロトコル(SCTP)接続であり、
前記最新のシーケンス番号は、最新の送信シーケンス番号(TSN)を含む、
請求項12に記載の装置。
【請求項14】
最新のシーケンス番号を決定することは、前記第2のパケットに基づいて、リモートコンピューティングデバイスによって受信されない欠落パケットのギャップを決定することを有し、ここで、欠落パケットのギャップは少なくとも第1の欠落パケットに対する第1のシーケンス番号を含んでおり;
最新のシーケンス番号を決定することはさらに、第3のパケットをリモートデバイスに送信することを有し、ここで、第3のパケットは前記第1のシーケンス番号を含むダミーパケットであり;
最新のシーケンス番号を決定することはさらに、リモートコンピューティングデバイスから第4のパケットを受信することを有し、ここで、第4のパケットは、前記第3のパケットを受信するリモートコンピューティングデバイスを示す確認応答シーケンス番号を含んでおり;
最新のシーケンス番号を決定することはさらに、前記確認応答シーケンス番号が、前記推定されたシーケンス番号に等しいと判定することを有し;かつ
最新のシーケンス番号を決定することはさらに、前記最新のシーケンス番号が、前記確認応答シーケンス番号、前記推定されたシーケンス番号、又はその両方の値の後の次の順序付けられた番号に等しいと判定することを有する;
請求項11に記載の装置。
【請求項15】
最新のシーケンス番号を決定することは、前記第2のパケットに基づいて、少なくとも第1の複製シーケンス番号を決定すること;
最新のシーケンス番号を決定することはさらに、第3のパケットをリモートデバイスに送信することを有し、ここで、第3のパケットは前記推定されたシーケンス番号及び前記関連付けられたシーケンス番号に基づいて決定された更新された推定されたシーケンス番号を含んでおり;
最新のシーケンス番号を決定することはさらに、リモートデバイスから第4のパケットを受信することを有し、ここで、第4のパケットは第2の確認応答シーケンス番号を含んでおり;かつ
最新のシーケンス番号を決定することはさらに、前記更新された推定されたシーケンス番号、前記第4のパケット、前記第2の確認応答シーケンス番号、又はそれらのいずれかの組み合わせに基づいて、通信セッションにおける次のパケットに対する最新のシーケンス番号を決定することを有する;
請求項11に記載の装置。
【請求項16】
前記第1のパケットは、受信デバイスによって予想されたシーケンス番号に対する前記推定されたシーケンス番号の順序に関係なく、受信デバイスによって処理されるように構成されており;
前記第2のパケットは、データパケットを含んでおり;
最新のシーケンス番号を決定することは、前記第2のパケットの決定が前記第1のパケットへの応答であると判定することを有し;かつ
最新のシーケンス番号を決定することはさらに、リモートコンピューティングデバイスに対する最新のシーケンス番号が、前記関連付けられたシーケンス番号と等しいと判定することを有する;
請求項11に記載の装置。
【請求項17】
前記通信セッションは、ストリーム制御伝送プロトコル(SCTP)接続であり、
前記最新のシーケンス番号は、最新の送信シーケンス番号(TSN)を含む、
請求項16に記載の装置。
【請求項18】
前記第1のパケットは、第1のストリームに対するものであり、受信デバイスによって予想されたシーケンス番号に基づく順序で受信デバイスによって処理されるように構成されており、
前記第1のパケットの前記推定されたシーケンス番号は、前記第1のストリームに対する推定されたシーケンス番号であり、
最新のシーケンス番号を決定することは:
前記第2のパケットが、前記第1のパケットに応答して送信されたデータパケットであると判定することと;
前記第1のストリームに対する最新のシーケンス番号が、前記推定されたシーケンス番号の値の後の次の順序付けられた番号に等しいと判定することと:を含む、
請求項11に記載の装置。
【請求項19】
前記通信セッションは、ストリーム制御伝送プロトコル(SCTP)接続であり、
前記最新のシーケンス番号は、前記第1のストリームに対する最新のストリームシーケンス番号(SSN)を含む、
請求項18に記載の装置。
【請求項20】
前記プロセッサは、メモリに格納された前記命令を実行するように構成されており、前記命令はさらに:
プロセッサに、前記第1のストリームとは異なる第2のストリームに対する第3のパケットを送信させ、ここで、第3のパケットは、受信デバイスによって順序正しく処理されるように構成され、前記第2のストリームに対する推定されたシーケンス番号を含んでおり;
プロセッサに、リモートコンピューティングデバイスから第4のパケットを受信させ;
プロセッサに、前記第4のパケットが前記第3のパケットに応答して送信されたデータパケットであると判定させ;かつ
プロセッサに、前記第2のストリームに対する最新のシーケンス番号が、前記第2のストリームに対する前記推定されたシーケンス番号の値の後の次の順序付けられた番号に等しいと判定させる;
ものである、請求項18に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は米国特許法第119条(e)の下で、2019年2月5日に出願された「ネットワーク関連付け情報を回復するための方法及び装置」と題する米国仮特許出願第62/801365号に基づく優先権を主張する。なお、同仮出願は参照によりその全体が本明細書に組み込まれる。
【0002】
技術分野
本明細書に記載された技術は、一般に通信セッションのためのネットワーク関連付け情報の回復に関し、具体的には通信セッションの中断の場合のネットワーク関連付けのためのシーケンス番号の回復に関する。
【背景技術】
【0003】
様々なネットワーク通信プロトコルを使用して、有線及び/又は無線接続又はデバイスを接続するネットワークなどの媒体を介して、1つのネットワークデバイスから別のネットワークデバイスにデータを送信することができる。送信されたデータを追跡するために、ネットワーク通信プロトコルはしばしば送信された各パケットに、ユニークな及び/又はパケット毎に増分されるシーケンス番号などの番号を割り当てる。シーケンス番号は送信デバイスにより、送信デバイスが送ったパケットや、受信デバイスが受信した確認応答などを追跡するために使用できる。シーケンス番号は受信デバイスにより、送信デバイスから受信したパケットや、受信デバイスが送信デバイスからの次のパケットであると予想するパケットなどを追跡するために使用できる。
【0004】
ネットワーク通信プロトコルはしばしば通信セッション全体を通して様々なデータを追跡及び維持する必要がある。例えばネットワーク通信プロトコルは、通信セッションの諸条件を設定するために、デバイス間で制御パケットの初期シーケンスを交換することがよくある。加えて又は代替的に、通信セッション中にデバイスは、パケットの最新のシーケンス番号及び/又は通信セッションを維持するために必要なその他の情報など様々な情報を維持する。しかしながら、通信セッションはデバイス間の媒体の問題、及び/又はデバイスそのものの問題(例えばクラッシュ、処理中にデバイスの遅れを惹き起こす限られたリソース)などに起因して中断することがある。このような中断は、通信セッションを継続するために必要な情報を維持するデバイスの能力を危険にさらす可能性がある。デバイスがそのような情報を回復できない場合、しばしば通信セッションを再起動しなければならないが、これは望ましくない。
【発明の概要】
【0005】
開示された主題に従って、通信セッションを再開する必要性を回避するために、中断後にネットワーク関連付け情報を回復するための装置、システム及び方法が提供される。
【0006】
いくつかの実施形態は、リモートコンピューティングデバイスとの通信セッションにおける次のパケットのために最新のデータ送信シーケンス番号を決定するためのコンピュータ化された方法に関するものである。この方法は、通信セッションの中断を決定すること、通信セッションに対するチェックポイント済みデータを決定すること、ここで、チェックポイント済みデータは、リモートコンピューティングデバイスに送信された前のパケットに使用された前のシーケンス番号を示し、及び通信セッションにおける次のパケットに対する最新のデータ送信シーケンス番号を決定するための解決手順を実行することを含む。解決手順は、チェックポイント済みデータに基づいて、通信セッションでデータを送信するための推定された次のシーケンス番号を決定し、第1のパケットをリモートコンピューティングデバイスに送信し、ここで、第1のパケットは推定された次のシーケンス番号を含むダミーパケットであり、リモートコンピューティングデバイスから第2のパケットを受信し、ここで、第2のパケットは関連付けられたシーケンス番号を含んでおり、及び推定された次のシーケンス番号、第2のパケット、第2のパケットの関連付けられたシーケンス番号、又はそれらの何らかの組合せに基づいて、通信セッションにおける次のパケットに対する最新のシーケンス番号を決定することを含む。
【0007】
いくつかの実施形態は、リモートコンピューティングデバイスとの通信セッションにおける次のパケットに対する最新のデータ送信シーケンス番号を決定するように構成された装置に関するものである。この装置は、メモリと通信するプロセッサを含む。このプロセッサは、メモリに格納された命令を実行するように構成されており、これらのメモリはプロセッサに通信セッションの中断を決定させ、通信セッションに対するチェックポイント済みデータを決定させ、ここで、チェックポイント済みデータは、リモートコンピューティングデバイスに送信された前のパケットに対して使用された前のシーケンス番号を示しており、及び通信セッションにおける次のパケットに対する最新のデータ送信シーケンス番号を決定するための解決手順を実行させる。この解決手順は、チェックポイント済みデータに基づいて、通信セッションでデータを送信するための推定された次のシーケンス番号を決定し、第1のパケットをリモートコンピューティングデバイスに送信し、ここで、第1のパケットは推定された次のシーケンス番号を含むダミーパケットであり、及びリモートコンピューティングデバイスから第2のパケットを受信し、ここで、第2のパケットは関連付けられたシーケンス番号を含んでおり、及び推定された次のシーケンス番号、第2のパケット、第2のパケットの関連付けられたシーケンス番号、又はそれらの何らかの組み合わせに基づいて、通信セッションにおける次のパケットに対する最新のシーケンス番号を決定することを含む。
【0008】
以上、開示の主題の特徴をややおおまかに述べたのは、以下に続く詳細な説明においてそれらがより良く理解されるように、また本発明の技術への寄与がより適切に評価されるようにするためである。言うまでもなく開示された主題の追加の特徴があり、それらは以下に説明されるとともに、本明細書に付属する特許請求の範囲の主題をなす。本明細書で使用される表現及び用語は、説明を目的とするものであり、限定的なものと見なされるべきではないことを理解されたい。
【0009】
図面では、様々な図に示されている同一又はほぼ同一の各構成要素は同じ参照符号で表されている。見やすさのため、各図面にはすべての構成要素が表示されているわけではない。図面は必ずしも縮尺通りではなく、本明細書に記載する技術及び装置の様々な態様を示すことに重点が置かれている。
【図面の簡単な説明】
【0010】
図1A】いくつかの例による、ストリーム制御送信プロトコルを使用するローカルエンドポイントとピアエンドポイントとの間の接続の例を示している。
図1B】いくつかの例による、LTE無線アクセスネットワークの例示的な部分を示している。
図1C】いくつかの実施形態による、ネットワーク関連付け情報を解決するためにローカルエンドポイントによって実行される高レベルの手順を示している。
図2】いくつかの実施形態による、ローカルTSNを解決するためのコンピュータ化された方法の例示的な流れ図である。
図3】いくつかの実施形態による、ピアTSNを解決するためのコンピュータ化された方法の例示的な流れ図である。
図4】いくつかの実施形態による、ローカルSSNを解決するためのコンピュータ化された方法の例示的な流れ図である。
図5-1】いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続に対する例示的なパケットフローを示すグラフである(図5-2に続く)。
図5-2】(図5-1からの続き)いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続に対する例示的なパケットフローを示すグラフである。
図6-1】いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続に対する別の例示的なパケットフローを示すグラフである(図6-2に続く)。
図6-2】(図6-1からの続き)いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続に対する別の例示的なパケットフローを示すグラフである。
図7-1】いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続に対する別の例示的なパケットフローを示すグラフである(図7-2に続く)。
図7-2】(図7-1からの続き)いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続に対する別の例示的なパケットフローを示すグラフである。
図8-1】いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続に対する別の例示的なパケットフローを示すグラフである(図8-2に続く)。
図8-2】(図8-1からの続き)いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続に対する別の例示的なパケットフローを示すグラフである。
図9】いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続のための別の例示的なパケットフローを示すグラフである。
【発明を実施するための形態】
【0011】
本明細書に記載された技術は、障害が発生した場合に、シーケンス番号情報の回復を含め、ネットワーク関連付け情報を回復するために使用できる。この技術は、通信セッション全体に無害なダミーパケットを活用して、ピアに独自のデータチャンク、確認応答及び/又はその他の応答で応答させることができる。この技術は、これらの応答を使用して、ピアにとって透過的な方法でネットワーク関連付け情報を検出し、ネットワーク関連付けの中止及び/又は再起動を回避できる。これらの技術及び他の技術は、以下でさらに論述される。
【0012】
以下の記述において、開示された主題を完全に理解するために、開示された主題のシステム及び方法、並びにそのようなシステム及び方法が動作し得る環境などに関して、多くの具体的な詳細が説明される。加えて、以下に提供される例は例示的なものであり、開示された主題の範囲内にある他のシステム及び方法が存在することが想定されていることを理解されたい。
【0013】
本明細書に記載された技術は、様々なタイプの通信プロトコルのためのネットワーク関連付け情報を回復するために使用することができる。そのようなプロトコルの1つの非限定的な例は、ストリーム制御伝送プロトコル(SCTP)である。SCTPは、伝送制御プロトコル(TCP)及び/又はユーザーデータグラムプロトコル(UDP)の代わりに、又はそれらと組み合わせて、トランスポート層プロトコルとして使用できる。図1Aは、いくつかの実施形態による、SCTPプロトコルを使用するローカルエンドポイント102とピアエンドポイント104との間の接続100の例を示している。SCTPは、エンドポイント間で複数のストリームを使用できるため、1つのストリームがブロックされた場合でも他のストリームを使用してデータを配信できる。図1Aに示す例示的な接続100は、2つのストリーム、即ちストリーム0106及びストリーム1108を含む。
【0014】
ローカルエンドポイント102とピアエンドポイント104は、SCTP関連付け及び状態を確立するために一連の制御メッセージを交換する。送信シーケンス番号(TSN)とストリームシーケンス番号(SSN)は、パケットが確実かつ順序正しく配信されるようにするために、SCTPデータチャンクに適用される値である。TSNは、データストリーム全体に対するシーケンス番号として使用できる(例えば再構成のための断片化で使用される)。SSNは特定のストリームにおけるチャンクを定義できる。SCTP関連付けが確立されると、各エンドポイントはTSNとSSNに使用される初期値を識別し、SCTPデータチャンクを予想値とともに送信して、これらをSCTPデータチャンクごとに増分する。各エンドポイントは独自の関連付けられたTSN及びSSN値を使用できるので、ローカルエンドポイント102はそれが送信するパケットのためにローカルTSN及びSSNを持ち、ピアエンドポイント104はそれが送信するパケットのために独自のピアTSN及びSSNを持つ。
【0015】
図1Bは、いくつかの例による、LTE無線アクセスネットワーク(RAN)150の例示的な部分を示している。図1BでUE152A~152B(総称してUE152と呼ぶ)として示されている1以上のUEは、ホームeNodeB(HeNB)154として示されている小さいセルと通信する。ホームeNodeBゲートウェイ(HeNB-GW)156は、HeNB154からコアネットワークへのトラフィックを集約する。この説明例では、HeNB-GW156はHeNBと、LTEアクセスネットワークの制御ノードであるモバイル管理エンティティ(MME)158との間のトランスポートプロトコルとしてSCTPを使用する。)。単純化するためにLTE RAN150の他の側面は省略されているが、当業者は、LTE RAN150に含めることができる様々なコンポーネントを理解するであろう。
【0016】
1つのSCTPエンドポイントで高可用性(HA)スイッチオーバーやプロセス再起動などの障害が発生した場合、SCTP関連付けは、予想される次のTSN及びSSN値を引き続き使用しなければならない。そうしないと、不適切なTSN及び/又はSSN値により、ピアがエラーを検出し、それにより関連付けが中止され(例えば他のエンドポイントへのABORTパケットを介して)及び/又はデータパケットが処理されない可能性がある。SCTP再起動手順は、関連付けのTSN及びSSN値を再初期化するためのRFC-4960で規定されており、これはその全体が参照により本明細書に組み込まれる。SCTP再起動手順は、ローカルエンドポイント102とピアエンドポイント104が最初に関連付けを確立したときに使用されるのと同じ制御メッセージ(例えばINIT、INIT-ACK、COOKIE-ECHO及びCOOKE--ACKパケットを含む)の交換に依存している。この手順は、例えばRFC-4960のセクション5.2.4.1で説明されている。SCTP再起動手順は典型的には、ピアエンドポイント104が参加すること及び/又はローカルエンドポイント102が再起動していることを認識することを要求する。例えばピアエンドポイント104は、再起動しているエンドポイントからのINITパケットに渡された情報を使用する関連付けのために、既存のトランスポート制御ブロック(TCB)を見つけることができなければならない。TCBは、SCTP接続のいずれかの側の接続情報を含むデータ構造である。SCTP再起動の間、エンドポイント間のハートビートメッセージは典型的には交換され続けるが、SCTPデータチャンクは典型的にはTSN/SSN値が交渉中にリセットする必要があるので廃棄される。いくつかの実装では、MMEは既存の関連付けを見つけられないことがあり、その結果MMEは代わりに新しい関連付けを作成することがある(例えばそれは既に関連付けを使用しているUEにそれらのトランスポート及び経験データを失わせることがある)。いくつかの実装では、ピアは再起動に参加する必要があるので、SCTP再起動が起きているとピアが決定したら、ピアはSCTP関連付けの前に関連付けられた任意の状態が確実に移行されるように構成することがあり、これは任意のUEコンテキストを含み得る。加えて又は代替的に、アラーム及び/又は他のイベントなどのSCTP関連付けが再起動されたことをピアが検出したら、ピアによって実行されるいくつかの望ましくないアクションがあり得る。
【0017】
出願人は、HAをサポートするために(例えばHeNB-GWとHeNB及び/又はMMEとの間の)ネットワーク内のSCTP関連付けは、関連付けの破棄を引き起こすことなく、プロセス再起動又はスイッチオーバーなどのエンドポイント障害を乗り切るべきであることを発見及び理解した。出願人は、SCTP関連付けを回復し、ピア間でSCTPストリームのTSNとSSNの値を解決するための独自の技術を、ピアにとって透過的でピアがローカルエンドポイントの再起動を認識する必要のない方法で開発した。本明細書で説明するように、この技術は、サポートされているSCTP/S1AP基本メッセージ及び/又は手順を独自の方法で使用して、SCTP関連付けが障害を乗り切ることを可能にすることができる。この技術は、サードパーティのデバイスと互換性があり、及び/又はSCTP関連付けのピアによる特別な動作を必要としないことも可能である。
【0018】
いくつかの実施形態では、この技術は(例えばRFC-4960によって規定された)SCTP再起動メカニズムをサポートしないエンドポイントで使用することができる。出願人は、SCTP再起動メカニズムをサポートしなければ、障害が発生した場合に、SCTP関連付けが影響を受ける(例えば中止される)可能性があり、それは顧客の確立されたUE接続に悪影響を与える得ることを発見及び理解した。本明細書で提供される技術は、SCTP関連付けの維持、状態の回復、及び/又はフェイルオーバー後のSCTPストリームのTSN及びSSN値の解決のうちの1つ以上を実行する代替方法として使用することができる。このようなアクションを実行することにより、データトラフィックは、エンドポイント(例えばSCTP再起動メカニズムをサポートしないMME)による変更や特別な動作を必要とせずに再開できる。
【0019】
本発明者らはまた、TSN及びSSN値をチェックポイントすることができるが(例えば関連付け中にTSN及びSSN値が変化すると保存及び維持される)、個々のTSN及びSSNの変化をすべてチェックポイントして状態を回復することは通常実用的ではなく、代わりに実際のネットワーク及び交通条件下では問題があることが判明し得ることを発見及び理解した。例えばこのような継続的なチェックポイントは大量のリソースを消費する可能性があり、エンドポイントのパフォーマンスに悪影響を与える可能性がある。本明細書で説明する技術は、ローカルSCTPエンドポイントによるSCTP関連付けの初期状態のチェックポイントを提供する。上述したように、チェックポイント値は、例えばトラフィックレート、データ処理の遅延、及び/又は同様の者が原因で、通常は最新の状態に保たれない。本明細書に記載された技術は、予想されるTSN及びSSN値を、ピアのSCTP確認応答(例えばSACKメッセージ)及び障害後のデータチャンクから学習してチェックポイント済みデータを活用することによって透過的に解決できる。この技術を使用して、例えばSCTP再起動を実行し及び/又はSCTPピア上の任意の状態を再初期化する必要なく、確立されたSCTP関連付けを介してデータの送信を再開することができる。
【0020】
いくつかの実施形態では、確認された最大TSNのチェックポイント値を使用して、フェイルオーバー直後に初期ダミーSCTPデータパケット(例えばSCTP関連付けに無害であるパケット)を、ピアによって複製として報告されることが予想されるTSNでピアエンドポイントに送ることができる。例えばこの技術は、既知の複製の送信を試行するために確認された最大TSNよりも小さいTSN値を持つダミーパケットを送信できる。既知の複製により、例えばローカルノードはSACKを、ダミーパケットの受信を確認しているピアと、何らかの(送信された)インフライトデータを確認するために送信されるSACKから区別することができる。インフライトデータは、チェックポイントされていないTSN/SSN値を使用してローカルノードによって送信されたデータを含むことができる(例えばローカルノードがそのデータを送信する前に最後のチェックポイントが発生した場合)。受信時に複製がある場合、ピアは受信した最大TSNを示し、初期ダミーデータパケットを複製として示すSCTP SACKを送信する。初期ダミーデータパケットが複製として識別されると、ローカルエンドポイントはSACKで報告されたcumtsnを最大TSNとして使用し始め、後続のダミーデータパケットを送信できる。
【0021】
いくつかの実施形態では、ダミーパケットは、ピアからの応答を促すダミーパケットであり得る。例えばいくつかの実施形態では、要素を含んでいないS1AP ENB構成更新を使用できる。なぜならパケットはピアによって対応するS1AP ENB構成更新確認又は失敗で応答されるからである。それゆえ、ピアにダミーデータチャンクに対してデータ応答及び/又はSACKで応答させるダミーパケットを使用することができる。
【0022】
いくつかの実施形態では、ダミーパケットは、ピアによる受信時に変更が発生しないように設計されたデータを含むことができる。したがって、例えばパケットは通信セッション全体に対して無害であるが、TSN及び/又はSSN値を解決するために使用できる。例えばENB構成更新を新しい又は変更された情報なしに使用することができ、パケットはピアで状態変化しない。いくつかの実施形態では、ダミーデータパケットを順序付けられていないSCTPパケットとして送信することができるので、ダミーパケットに含まれているSSN値は無関係でありピアによってチェックされない。いくつかの実施形態では、この技術はすべてのデータが1つのSCTPストリームを介して送信されることを制限することができる。データトラフィックを単一のストリームに制限すると、例えばピアはインフライトデータによって使用されるSSNを正確に計算し、TSNとSSNを解決した後に新しいデータのSSNを調整できる。
【0023】
いくつかの実施形態では、ピアからの初期ダミーデータパケットに応答して送信される情報は、ローカルに格納されたTSN及び/又はSSN値を調整するかどうかを決定するために使用される。例えばピアのSACKからの情報(例えば累積TSN、ギャップ及び/又は複製)を使用でき、ローカルに保存された最後に送信された値と比較してローカルTSN及び/又はSSNが調整の必要があるか決定できる。ギャップ又は複製が報告された場合、この技術は必要とされるTSNとSSNの調整を計算することができ、必要に応じて追加のダミーSCTPデータパケットをピアに送信することができる。ギャップの場合、ダミーデータパケットは、TSNを解決するためにピアによって報告されたギャップのTSNを使用する。ピアが複製を報告する場合(これは初期ダミーデータパケットが意図的な複製であり得るため予想できる)、この技術は次のダミーパケットに対する次のTSNを、ピアが最後に確認応答したTSNとして報告する値より1だけ大きく調整することができる。
【0024】
ダミーパケット送信手順は、TSN及び/又はSSN値の解決を示すエンドポイントからの所望の応答を達成するまで続けることができる。例えば回復しているローカルノードは、ギャップ又は複製がないことを報告するSACKをピアから受信し、最後に送信されたダミーパケット(例えばピアのTSN値を解決する)を確認応答するまで、送信手順を実行するように構成できる。別の例として、ローカルノードは、回復しているローカルノードがSACKを送信するときに使用する累積TSNの解決を示す応答(例えばENB構成更新確認)を受信するまで送信手順を実行するように構成できる。回復しているローカルノードは、確認応答の前のすべてのパケットが受信されていると仮定するように構成できる。したがっていくつかの実施形態では、この技術は回復中のデータ損失を最小限に抑えることができる。
【0025】
この技術は、新しいデータを送信するために使用するSSN値を適切に計算するために、ローカルノードがいくつのパケットがインフライトであり、いくつのパケットがピアによって処理されたかを発見できるように設計することができる。いくつかの実施形態では、TSN値(例えばローカルTSN及び/又はピアTSN)とは異なり、SSNはSACから直接学習することができない。この技術は、SSNを決定するために最後に送信されたTSN、SSNペアのチェックポイント済みデータセットを使用できる。例えばピアは、最後に送信されたチェックポイント済みデータをピアによって報告された累積TSNと比較して、インフライトであった(例えば送信されたがチェックポイントされていない)SCTPデータパケットの数を決定することができる。計算されたデルタを使用して、次の実際のSCTPデータパケットに対する適切なSSNを決定できる。この技術は、ピアからの特定の応答、例えばピアからのS1AP ENB構成更新確認の受信を使用して、TSNとSSNを解決するプロセスをいつ終了するかを決定できる。
【0026】
図1Cは、いくつかの実施形態による、ネットワーク関連付け情報を解決するためにローカルエンドポイント102によって実行される高レベルの手順を示している。ステップ172で、ローカルエンドポイントは、ピアエンドポイント104との通信セッションの中断を決定する。ステップ174で、ローカルエンドポイント102は、通信セッションに対するチェックポイント済みデータを決定する。本明細書で論じられるように、一般にチェックポイント済みデータは少なくとも、ローカルエンドポイント102によってピアエンドポイント104に送信された前のパケットに使用された前のシーケンス番号に関係する情報を含む。次に、ローカルエンドポイントは解決手順を実行して、通信セッションにおける次のパケットに対する最新のデータ送信シーケンス番号を決定する。ステップ176で、ローカルエンドポイント102は、チェックポイント済みデータ(例えば意図的に複製するシーケンス番号)に基づいて通信セッションでデータを送信するための推定された次のシーケンス番号を決定し、推定された次のシーケンス番号を含むピアエンドポイント104にダミーパケットを送信する。ステップ178で、ピアエンドポイント104は、応答するシーケンス番号を含むピアエンドポイント104から応答を受信する。ステップ180で、ローカルエンドポイント102は、内部に格納された情報(例えばチェックポイント済みデータ及び/又は推定された次のシーケンス番号)と応答(例えば応答の関連付けられたシーケンス番号を含む)に基づいて、通信セッションにおける次のパケットの最新のシーケンス番号を決定する。図1Cは単純な説明例であることが意図されており、本明細書でさらに説明するように、実際には所望の情報を解決するために、ローカルエンドポイント102は複数のダミーパケットを送信し、複数の応答を分析する必要がある。例えば応答178がギャップ及び/又は複製があることを示している場合、ローカルエンドポイント102は、関連付けのTSN及び/又はSSNを解決するために、追加のダミーパケットを送信することがある。
【0027】
図2図5は、ネットワーク関連付け解決プロセスの詳細な例を示している。図2は、いくつかの実施形態による、ローカルTSNを解決するためのコンピュータ化された方法の例示的な流れ図である。ステップ202で、ローカルエンドポイントは、スイッチオーバー又は他の中断/エラーがあると判定し、これによりローカルデバイスはローカルTSNの解決を開始する。解決状態に入ると、ローカルエンドポイントは、エンドポイントがピアに送信する必要のあるすべてのデータを、ブロックできる(例えば解決手順が完了するまで)。ステップ204で、ローカルエンドポイントはチェックポイント済みデータを回復する。チェックポイント済みデータは、本明細書でさらに説明するように、例えばピアエンドポイントに送信された最大TSN及び/又はSSN、ピアエンドポイントによって確認された最大TSN、及び/又は他のTSN又はSSNデータを含むことができる。チェックポイント済みデータは、最新のものである場合とそうでない場合がある。例えば上述したように、いくつかのエンドポイントは、送信又は受信されたすべてのパケットに対するチェックポイントではないことがある。なぜなら、そのようにすると、あまりにも多くのリソースを消費することになるからである(これは例えばパフォーマンス問題を引き起こす可能性がある)。したがって、例えばひどい渋滞下では、ピアは送信された古いデータに対するTSN及び/又はSSN情報をチェックポイントしている場合がある。チェックポイント済みデータは古くなっている可能性があるが、以下にさらに説明するように、依然として最新のローカルTSN情報を学習するのに十分な情報をローカルエンドポイントに提供できる。
【0028】
ステップ206で、ローカルエンドポイントは任意選択で、ローカルエンドポイントがローカルTSNを解決していることを記録するために、内部変数及び/又はメタデータを設定することができる。
【0029】
ステップ208で、ローカルエンドポイントは初期ダミーデータパケットを送信する。ダミーパケットは、例えば通信セッションに無害なパケットであってよく、例えばダミーパケットはローカルエンドポイントとピアとの間の通信に影響を及ぼさない。ダミーパケットは、例えばピアがネガティブな確認応答(例えばNAC)を送信するのを回避することができ、その結果ダミーパケットは、ピアがダミーパケットに応答してローカルエンドポイントにポジティブな確認応答及び/又はデータを送信するようにできる。ダミーパケットは、例えばSCTPデータパケット、例えばENBCfgUpdパケット及び/又はピアで状態変化を引き起こさず、ピアが応答して同様にローカルエンドポイントで状態変化を引き起こさないメッセージを送信するようになる他の任意のパケットであってよい。ローカルエンドポイントは、チェックポイント済みデータに基づいて、ダミーパケットの1以上のフィールドを決定できる。例えば初期ダミーパケットは、チェックポイント済みデータに基づいて決定されたTSN及び/又はSSN値を含むことができる。いくつかの実施形態では、ダミーパケットに対してチェックポイント済みデータ(例えばTSN及び/又はSSN)が使用される。いくつかの実施形態では、初期ダミーデータパケットに対してチェックポイント済みデータよりも低い値を使用することができる(例えば意図的に複製パケットを送信するため)。例えばダミーパケットで使用するために、チェックポイント済みデータから所定の値(例えば2、5、10など)を差し引くことができる。いくつかの実施形態では、ダミーパケットはピアに対して順序付けられていないパケットであり、その結果ピアはSSNを無視し、これは処理のために送信されない。
【0030】
ステップ210で、ローカルエンドポイントは、ダミーパケットを送信したピアエンドポイントからの応答を待機する。ステップ212で、ローカルエンドポイントは1以上のタイマーを開始する。タイマーは再送信タイマーを含むことができ、これは例えばローカルエンドポイントが特定のダミーパケットに対するピアエンドポイントからの応答を待機する期間を設定し、その期間の満了後にダミーパケットを再送信する。ローカルエンドポイントは、ダミーパケットが送信されるたびに再送信タイマーを開始することができる。別の例として、タイマーはTSN解決タイマーを含むことができ、これは一定期間、又は再送信の数、又はその両方を設定し、それが満たされるとローカルエンドポイントがローカルTSNの解決を中止する(例えばピアエンドポイントが利用できなくなった場合にローカルエンドポイントがデッドロックになるのを防ぐため)。TSN解決タイマーは、スイッチオーバー時に開始できる。例えばTSN解決タイマーは、ピアからの応答を待機する最大期間、ダミーパケットを送信するための最大再試行回数などを指定できる。例えば期間は、関連付け全体で5秒の期間にすることができる。再送信及び/又はTSN解決タイマーは、SCTP関連付けごとに維持できる。
【0031】
ステップ212でローカルエンドポイントがタイマーを設定すると、ローカルエンドポイントはステップ214で応答を受信するか、又はステップ216でタイマーはタイムアウトする。ステップ216でタイマーが(例えばピアから応答を受信する前に)タイムアウトしたら、ローカルエンドポイントはステップ220に進み、最大タイムアウト条件が満たされているか及び/又は満了しているかどうかを決定する。最大タイムアウト条件が満たされたら方法はステップ222に進み、プロセスを中止する。最大タイムアウト条件が満たされなければ、方法はステップ224に進み、ステップ208で送信されたダミーパケットを再送信してステップ210に戻る。
【0032】
ローカルエンドポイントがステップ214でピアエンドポイントから応答を受信した場合、方法はステップ218に進む。ステップ214で受信される応答はSACKパケットであることができ、それによってピアエンドポイントは指定されたTSN値までのパケットの受信を確認する。この確認応答のTSNは、ダミーパケットのTSN、前に送信されたパケットのTSN(例えばピアが後にある場合)、及び/又はダミーパケットで送信されたTSNより大きいTSN(例えばローカルエンドポイントがチェックポイントしたものと比較してより多くのデータをピアが受信した場合)であることができる。応答は、ピアエンドポイントがTSN値のギャップを検出したかどうか、ピアエンドポイントが複製したTSN値を検出したかどうかなどの情報を含むことができる。ローカルエンドポイントがステップ218に進むと、ローカルエンドポイントは、送信及び/又は確認されたパケットを記録するデータを更新する。いくつかの実施形態では、ローカルエンドポイントは、確認された最大TSNをステップ214で受信された応答のTSNに更新する。いくつかの実施形態では、ローカルエンドポイントは、送信された最大TSNをステップ208で送信されたダミーパケットのTSN値に更新する。いくつかの実施形態では、ステップ218で送信された最大TSNを更新するよりも、ピアエンドポイントはステップ208でダミーパケットを送信するときに送信された最大TSNを更新することができる。
【0033】
上述したように、ピアからのパケットは様々なデータを含む場合がある。図2に示される技術は、パケット中のデータを分析して、ローカルエンドポイントの適切な応答を決定する。ステップ226で、ピアエンドポイントは、ステップ210で受信された応答に基づいてギャップがあるかどうかを決定する。ギャップがない場合、ピアエンドポイントはステップ228に進む。ステップ228で、ピアエンドポイントはステップ210で受信された応答に基づいて、複製があるかどうかを決定する。複製がない場合、ピアエンドポイントはステップ230に進み、ピアTSNが解決されるかどうかを決定する。ステップ230で、ピアTSNが解決されない場合、ピアエンドポイントはステップ210に戻り、SACKを待機する。ステップ230でピアTSNが解決される場合、ピアエンドポイントはステップ242に進み、確認された最大TSNが送信された最大ダミーTSNと一致するかどうかをチェックする。これらの値が一致しなければ、ピアエンドポイントはステップ210に戻り、SACKを待機する。値が一致したら、ピアエンドポイントはステップ232に進み、ここでローカルTSNが解決されたと宣言される。本明細書で説明するように、ローカルTSNは、ローカルエンドポイントがピアに送信された最後のTSMを受信し、かつピアが何らかのギャップ又は複製があることを示さない場合に解決できる。例えばピアエンドポイントは、ピアによって確認された最大TSNが、ローカルエンドポイントがダミーパケットで送信された最大TSNとして格納した値に等しいかどうかを判定することができる。ステップ232で、例えばピアエンドポイントは、ローカルTSNが解決されたことを示すデータを設定することができる。例えばローカルエンドポイントは、ステップ206で設定した変数又は他のデータを変更して、ピアTSNを完全に解決していることを記録することができる。ピアTSNの解決が完了すると、ローカルエンドポイントはSSNの解決に進むことができ、これについては図4と関連してさらに説明する。ステップ230を参照して、ピアエンドポイントがまだピアTSNを解決していないと判定したら、ピアエンドポイントはステップ210/212に戻る(例えば初期ダミーパケットに対するピアエンドポイントからの応答を待機するため)。
【0034】
ステップ226を参照して、ローカルエンドポイントが1以上の欠落パケットのギャップがあると判定した場合、ローカルエンドポイントはステップ234に進み、ギャップを埋めるために1以上のダミーパケットを送信する。ローカルエンドポイントは、例えばギャップ内で欠落しているTSNごとに、欠落しているTSNを含むダミーパケットを作成し、ギャップを埋めるためにダミーパケットをピアエンドポイントに送信する。いくつかの実施形態では、ローカルエンドポイントは、ギャップを埋めるために使用されているパケットに加えて、既知の複製を含むオリジナルダミーパケットを送信することができる。例えばオリジナルダミーパケットは、ギャップを含んだSACKメッセージの処理に含めることができ、それは初期ダミーデータパケットが複製であることを示すことが可能であろう。SSNを計算するために、ピアエンドポイントは、初期ダミーを複製として示すSACKを受信する必要がある場合がある。例えばステップ226でローカルエンドポイントはギャップをチェックし、次に示されたTSNに対する別のダミーパケットを生成することにより、これらのギャップを処理するので、ピアエンドポイントは加えて再度初期ダミーパケットを送信する。この例を続けると、すべてのギャップが満たされると、ステップ226で、ピアエンドポイントはギャップがないと判定して228に進み、ここでピアエンドポイントは報告された複製を発見し、初期ダミーが複製であったことを発見して、次にSSNを計算する。ローカルエンドポイントはステップ234からステップ210/212に戻って、ダミーパケットに対するピアエンドポイントからの応答を待機する。したがって、いくつかの実施形態において、ギャップが検出されるとピアエンドポイントは、示されたギャップの最小TSNを用いてダミーパケットを送信してSACKを待機する。ピアエンドポイントは各ギャップダミーパケットで初期ダミーパケットを再送信することもできる。
【0035】
ステップ228を参照して、ローカルエンドポイントが複製があると判定した場合、ローカルエンドポイントはステップ236に進む。ステップ236で、ローカルエンドポイントは、初期ダミーデータパケットが複製として報告されたかどうかを判定する。初期ダミーパケットが複製である場合、ピアエンドポイントはステップ238に進む。いくつかの実施形態では、ピアエンドポイントは、スイッチオーバーイベント202の後に送信されたダミーパケットを他のインフライトデータパケットから区別するために、初期ダミーパケットを複製として識別する必要がある場合がある。ステップ238で、ローカルエンドポイントはローカルSSNを計算する。本明細書で説明するように、SSN値はピアエンドポイントから返送されない場合がある。例えばSSN値はピアエンドポイントからのSACK応答に含まれていない。ローカルエンドポイントは、図2と関連して説明されるローカルTSN解決プロセス中にSSN値を計算できる。いくつかの実施形態では、ローカルエンドポイントは意図的により多くの複製パケットを送信することができ、そのためローカルエンドポイントはSACKを受信し続けることができる。ローカルエンドポイントはこれらを使用して複製を識別し、またSSNを最新になるまで増分するために使用できる。いくつかの実施形態では、ローカルエンドポイントは、ローカルエンドポイントが初期ダミーパケットを複製として識別するギャップのないSACKを受信したらSSNを計算するように構成できる。ローカルエンドポイントは、当該SACKによって報告されたcumtsnを使用して、チェックポイント済みの確認された最大TSNと比較することによってインフライトパケットの数を決定でき、次いでローカルエンドポイントはSSNを相応に調整することができる。ローカルエンドポイントはステップ238から240に進む。ステップ240で、ローカルエンドポイントはダミーパケットを、ピアエンドポイントによって確認された最大TSNプラス1に設定されたTSNで送信する。次に、ローカルエンドポイントはステップ210に戻る。再びステップ236を参照すると、初期ダミーデータパケットが複製として報告されなかった場合、ローカルエンドポイントはステップ210に戻る(例えば初期ダミーデータパケットへの応答のため)。
【0036】
図3は、いくつかの実施形態による、ピアTSNを解決するためのコンピュータ化された方法の例示的な流れ図である。ステップ302で、ローカルエンドポイントは、ローカルデバイスにピアTSNの解決を開始させるスイッチオーバーがあると判定する。ステップ304で、ローカルエンドポイントはチェックポイント済みデータを回復し、それらは最新である場合もそうでない場合もある。チェックポイント済みデータは、ローカルエンドポイントと通信しているピアエンドポイントから最後に受信したTSN及びSSNを含むことができる。いくつかの実施形態では、ローカルエンドポイントは、(例えば図2に記載のプロセスを使用して)ローカルTSNを解決した後など、他の情報を解決した後で、ピアTSN解決プロセス300を実行することができる。このような場合、初期ダミーデータパケットは、前の解決プロセス中にすでに送信されている可能性がある。ダミーパケットがまだ送信されていない場合、ローカルエンドポイントは(例えばチェックポイント済みデータに基づいて決定されたTSN及び/又はSSNを使用して)ダミーパケットを送信できる。ステップ306で、ローカルエンドポイントは、任意選択で、ローカルエンドポイントがピアTSNを解決していることを示すために内部変数を設定することができる。
【0037】
ローカルエンドポイントはステップ308に進み、ピアからのデータを待機する。ローカルエンドポイントはまた、ステップ310でTSN解決タイマーを開始する。TSN解決タイマーが満了したら、ピアエンドポイントはステップ312に進んで、最大タイムアウトが満たされているかどうかを決定する。最大タイムアウトに達していない場合、ローカルエンドポイントはステップ308/310に戻る。最大タイムアウトに達した場合、ローカルエンドポイントはステップ314に進み、解決プロセスを中止する(例えばピアエンドポイントが利用できない場合のデッドロックを回避するためなど)。
【0038】
ステップ308及び310を参照して、ローカルエンドポイントがピアエンドポイントからデータを受信すると、ローカルエンドポイントはステップ316に進む。ステップ316で、ローカルエンドポイントは受信したTSN及びSSNをピアエンドポイントからのデータに基づいて更新する。例えばローカルエンドポイントは、ピアから最後に受信したTSNやSSNを保存できる。ローカルエンドポイントはステップ318に進み、受信したデータがダミーパケットに応答したかどうかをチェックする。受信したデータがダミーパケットに応答しなかった場合、ピアエンドポイントはステップ308に戻ってデータを待機する(例えばダミーパケットに応答するピアからのデータを待機する)。受信したデータがダミーパケットに応答した場合、ピアエンドポイントはステップ320に進み、ピアTSNが解決されたと判定する。ステップ322で、ローカルエンドポイントは、別のダミーパケットを次のTSNで送信する。ローカルエンドポイントはステップ324に進み、図2に関連して説明したように、ローカルTSNの解決を継続する。例えばピアTSN解決プロセス300は、(例えば図2と関連して説明したように)ローカルTSNの解決と組み合わせて実行できる。
【0039】
さらにステップ322を参照すると、この次のダミーが送信されてローカルTSNを解決するために使用される。例えば図2を参照すると、ステップ218でローカルエンドポイントはSACKを受信する。SACKが初期ダミーデータを複製として報告すると仮定すると、ローカルエンドポイントはステップ238に進んでSSNを計算し、次いでステップ240に進み、確認された最大TSN+1に設定されたTSNでダミーを送信する。これによりローカルエンドポイントは最大TSNのローカル変数を更新する。次に、ローカルエンドポイント、再びSACKを待機する。ピアがダミーEnbCfgUpdを受信したため、ローカルエンドポイントは応答(EnbCfgUpdAck)ではなくSACKを受信したが、SACKは複製であったため上位層によって処理されなかった。したがって図2において、ステップ240でローカルエンドポイントは、ピアからの複製又はギャップのないSACKと応答(EnbCfgUpdAck)の両方を生成するようなダミーを送信するであろう。それが起きたら、図2においてローカルエンドポイントはステップ230でSACKを処理する(そして例えばローカルエンドポイントが引き続きピアの解決を待機することを決定し、従ってステップ210へ戻る)。一方、EnbCfgUpdAckは図3で処理され、ステップ318でローカルエンドポイントはピアが応答したことをチェックして発見することができ、そしてステップ322に進み、次のTSN値を使用して別のダミーを送信する(最大TSNを保存するローカル変数)。図2を参照して、図3のステップ322で送信されたダミーパケットは、ピアからのSACKとEnbCfgUpdAckをトリガーする。図2に続いて、SACKは複製又はギャップがないものとして処理され、ステップ230でローカルエンドポイントはピアTSNが解決されたと判定して、ステップ232に進んでローカルTSNを解決する。
【0040】
図4は、いくつかの実施形態による、ローカルSSNを解決するためのコンピュータ化された方法の例示的な流れ図である。ステップ402で、ローカルエンドポイントは、ローカルデバイスにローカルSSNの解決を開始させるスイッチオーバーがあると判定する。ステップ404で、ローカルエンドポイントはチェックポイント済みデータを回復し、それらは最新である場合もそうでない場合もある。本明細書で説明するように、チェックポイント済みデータはSSNデータを含むことができる。最大SSNピアエンドポイントにローカルエンドポイントによって送信される。ステップ406で、ローカルエンドポイントは、任意選択で、ローカルエンドポイントがローカルSSNを解決していることを示すために、内部変数を設定することができる。いくつかの実施形態で、ローカルエンドポイントは、(例えば図2に記載のプロセスを用いて)他の情報を解決した後、例えばローカルTSNを解決した後などに、ローカルSSN解決プロセスを実行することができる。そのような場合、ピアは、ステップ406からステップ408に進む前に(例えばローカルTSNが解決されたという通知に基づいて)前の解決プロセスを完了するまで待機することができる。
【0041】
ステップ408で、ローカルエンドポイントは、調整されたSSNを使用して順序付けられたダミーパケットをストリーム1で送信する。本明細書でさらに説明するように、ローカルエンドポイントはcumtsnを使用して、ローカルSSNの初期調整を決定できる。ローカルエンドポイントは、引き続きストリーム1で送信されたパケットごとにローカルSSNを増分できる。ローカルエンドポイントはステップ410に進み、ピアエンドポイントからのパケットを待機する。いくつかの実施形態では、ローカルエンドポイントは、ダミーパケットへの確認応答とピアエンドポイントからのダミーパケットへの応答の両方を待機する。ステップ412で、ローカルエンドポイントは、順序付けられたダミーパケットを送信するときに再送信タイマーを設定する。TSN解決タイマー(例えば図2のステップ212又は図3のステップ310で設定されたTSN解決タイマー)が満了すると、ローカルピアはステップ414に進み、タイムアウトの最大数に達したかどうかを決定する。タイムアウトの最大数に達した場合、ローカルエンドポイントはステップ416に進み、解決プロセスを中止する。例えばローカルエンドポイントはABORTメッセージをピアに送信して、通信セッションを中止できる。タイムアウトの最大数に達していない場合、ピアエンドポイントはステップ410/412に戻る。ステップ410/412を参照すると、再送信タイマーが満了した場合、ローカルエンドポイントはステップ418に進み、ダミーパケットを再送信する。次に、ローカルエンドポイントはステップ410及び412に戻り、再送信されたダミーパケットへの応答を待機する。
【0042】
ステップ410/412から、ローカルエンドポイントがダミーパケット(例えばSACK)を受信すると、ピアエンドポイントはステップ420に進み、ピアエンドポイントによって確認された最大TSNを確認応答に基づいて更新する(例えばピアエンドポイントは確認された最大TSNを応答中のTSN値に設定する)。ローカルエンドポイントは、ステップ410/412に戻る。
【0043】
ステップ410/412から、ローカルエンドポイントがピアエンドポイントからデータを受信すると、ローカルエンドポイントはステップ422に進み、データがステップ408で送信されたダミーに応答しているかどうかを決定する。データがダミーパケットに応答していない場合、ローカルエンドポイントはステップ410/412に戻る。データがダミーパケットに応答している場合、ローカルエンドポイントはステップ424に進み、データがストリーム0又は1の順序付けられたダミーに応答しているかどうかを決定する。データがストリーム1上の順序付けられたダミーに応答している場合、ピアエンドポイントはステップ426に進み、チェックポイントSSNを使用して順序付けられたダミーをストリーム0で送信する。次に、ピアエンドポイントはステップ410/412に戻る。データがストリーム0上の順序付けられたダミーに応答している場合、ピアエンドポイントはステップ428に進み、ローカルSSNの解決を完了し、ステップ430で解決プロセスを終了する。
【0044】
図5は、いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続のための例示的なパケットフローを示すグラフである。上記のように、ローカルエンドポイントによって送信された最大TSN、ローカルエンドポイントによって(例えばチャネルごとに)送信された最大SSN、ピアによって確認された最大TSNなど、様々なTSN及び/又はSSN情報をチェックポイントできる。列1は送信された最大TSNを示している。列2は、ストリーム0とストリーム1の両方に対する送信された最大SSNを示している。列3は、確認された最大TSNを示している。列4は、送信されたベースTSNを示している。列5は、ピアTSNが解決されているかどうかを示している。列6は、ローカルTSNが解決されているかどうかを示している。列7は、ローカルSSNが解決されているかどうかを示している。列8は、ローカルSCTPエンドポイントのアクションを示している。列9は、ローカルSCTPエンドポイントとピアSCTPエンドポイント間で送信されるパケットの方向を示している。列10は、ピアSCTPエンドポイントのアクションを示している。列8及び列10を参照すると、例示的なパケット/メッセージが、TSN、ストリームID、及びSSNの形式で示されている。
【0045】
行1で、ローカルエンドポイントからピアエンドポイントに送信された最大TSNは99であり、送信された最大SSNはストリーム0の場合は0、ストリーム1の場合は1である。列8に示されているように、ローカルエンドポイントはTSN100及びSSN1のデータパケットをストリーム1でピアエンドポイントに送信する。この時点で、ストリーム1に対する予想される次のTSNは101であり、SSNは2である。
【0046】
行2では、列1のエントリは、これがチェックポイントが実行された時点であることを示すために網掛けされている。チェックポイントは、例えば最後に送信されたTSN100とSSN[0,1]を含むことができる。列10に示されているように、ピアは、ピアがSN100まですべてのパケットを受信したことを確認応答するSACKを送信する。
【0047】
行3では、列10に示されているように、ピアはTSN200及びSSN10のデータをストリーム1でローカルエンドポイントに送信する。TSN200は、ピアからローカルエンドポイントに送信されるパケットに使用され、したがってローカルエンドポイントからピアに送信されるTSN100とは関係ない。
【0048】
行4では、ローカルエンドポイントがSACK確認応答をTSN200まで送信することによってデータを確認する。
【0049】
行5では、スイッチオーバー(又はその他の障害)が発生し、それによりローカルエンドポイントは、本明細書で説明する技術を使用してピアエンドポイントとTSN及びSSNの解決を開始する。
【0050】
行6では、列4に示されているように、ローカルエンドポイントは送信されたチェックポイント済み最大TSNを送信されたベースTSNとして保存する(この例ではTSN100)。この時点で、列5~7に示されているように、ローカルエンドポイントはピアTSN又はローカルTSN又はSSNを解決していない(すべて誤りの場合は「F」で示されている)。ローカルエンドポイントは、意図的に複製を送るために確認された最大TSNを使用して初期ダミーパケットに対するTSNを計算する。この例では、ローカルエンドポイントは最大TSN-10を計算して(100-10=90)、TSN100の順序付けられていないSCTPデータパケットENBCfgUpdをピアに送信し、その結果ピアはSSNを無視する。列3に示されているように、ローカルエンドポイントは確認された最大TSNを90に設定する。
【0051】
行7では、ピアが(スイッチオーバーの前に送信された)TSN100を確認するSACKを送信し、TSN90を使用した初期ダミーパケットを複製として報告する。受信すると、列3によって示されているように、ローカルエンドポイントは確認された最大TSNを報告された累積TSN(cumtsn)(この例では100)に基づいて90から100に更新する。複製は初期ダミーTSNで送信されたTSN90に対して報告されているので、ローカルエンドポイントはSSNデルタを、cumtsn(100)-送信されたベースTSN(列4から100)、即ち100-100=0と計算する。ローカルエンドポイントはこのSSNデルタをストリーム1に対する送信された最大SSNに加算し、その結果は1+0=1で変化をもたらさない。
【0052】
行8では、ローカルエンドポイントは次のTSN101を使用して別のダミーパケットENBCfgUpdをピアに送信する。列1に示されているように、ローカルエンドポイントは送信された最大TSNを100から101に更新する。
【0053】
行9では、列10に示されているように、ピアはローカルエンドポイントにSACKを送信し、ローカルエンドポイントは、SSN101を応答確認し、したがって複製又はギャップを報告しない。
【0054】
行10では、列10に示されているように、ピアはTSNが201でSSNが11のenbCfgUpdateAckをローカルエンドポイントに送信する。受信すると、ローカルエンドポイントは以前のすべてのパケットを受信したと仮定する。上述したように、この仮定は、この技術がある程度のデータ損失を許容できるために行うことができる。したがってこれは、真であることを表す「T」を表示する列5に示されているように、ピアTSNを解決する。
【0055】
行11では、列8に示されているように、ローカルエンドポイントは、TSN201のSACKを送信して受信を確認する。ピアTSNが解決されている今、ローカルエンドポイントは次のTSN102を使用して別のダミーENBCfgUpdパケットも送信する。列1に示されているように、ローカルエンドポイントは送信された最大TSNを101から102に更新する。
【0056】
行12では、列10で示されるように、ピアがギャップも複製も報告しないTSN102に対するSACKを送信する。それに応じて、列3に示されているように、ローカルエンドポイントは確認された最大TSNを101から102に更新するTSNは解決されており、確認された最大TSN(102)は送信された最大TSN(送信された最大ダミーである102)に等しいので、これは列6に示されているように、ローカルTSNを解決する。ピアはenbCfgUpdAckもTSN202及びSSN12で送信する。
【0057】
行13で、列8に示されているように、ローカルエンドポイントはTSN202のSACKを送信して受信を確認する。ローカルエンドポイントは、以前に計算されていた次のTSN103及び次のSSN2を使用して、順序付けられたダミーパケットENBCfgUpdをストリーム1で送信する。
【0058】
列1に示されているように、ローカルエンドポイントは送信された最大TSNを102から103に更新する。ローカルエンドポイントは、ストリーム1に対する送信された最大SSNも1から2に更新する。
【0059】
行14では、列10で示されるように、ピアはTSN103とSSN2を持つダミーを処理する。ピアはTSN103を持つ最後のダミーに対してSACKを送信する。それに応じて、ローカルエンドポイントは、列3に示されているように、確認された最大TSNを102から103に更新する。ピアはまたenbCfgUpdAckをTSN203及びSSN13で送信する。
【0060】
行15では、列8に示されているように、ローカルエンドポイントはTSN203のSACKを送信して受信を確認する。ローカルエンドポイントはまた、TSN104の順序付けられたダミーENBCfgUpdを、ストリーム0に対する次のSSN(1)を使用してストリーム0で送信する。列2に示されているように、ローカルエンドポイントはストリーム0に対する送信された最大SSNを1に更新する。
【0061】
行16では、ピアがTSN104のSACKを送信して最後のダミーを確認し、TSN202及びSSN14のenbCfgUpdAckを送信し、ローカルエンドポイントはSSNがストリーム0に対して正しいと見なす。例えばローカルエンドポイントは、ピアによって送信されたTSNとSSNの両方を正しいと見なすことができ、したがって失われた可能性のあるデータをすべて許容する。列7に示されているように、これによりTSNとSSNの解決は完了する。
【0062】
行17では、ローカルエンドポイントによって送信される次の実際のデータは、チャネル1について正しいTSN(105)及びSSN3を持つであろう。
【0063】
図6は、いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続のための別の例示的パケットフローを示すグラフである。以下で説明するように、この例ではスイッチオーバー中にデータがインフライトである。図5と同様に、列1は送信された最大TSNを示している。列2は、ストリーム0とストリーム1の両方に対する送信された最大SSNを示している。列3は、確認された最大TSNを示している。列4は、送信されたベースTSNを示している。列5は、ピアTSNが解決されているかどうかを示している。列6は、ローカルTSNが解決されているかどうかを示している。列7は、ローカルSSNが解決されているかどうかを示している。列8は、ローカルSCTPエンドポイントのアクションを示している。列9は、ローカルSCTPエンドポイントとピアSCTPエンドポイント間で送信されるパケットの方向を示している。列10は、ピアSCTPエンドポイントのアクションを示している。
【0064】
行1で、ローカルエンドポイントはピアにデータをTSN100及びSSN1で送信する。確認された最大TSNは、列3に示されているように99である。ローカルエンドポイントはストリーム1に対する送信された最大TSNを99から100(列1)に増分し、送信された最大SSNを0から1に増分する(列2)。
【0065】
行2では、ピアの予想される次のTSNは100であり、予想される次のSSNは1である。列10に示されているように、ピアはTSN100のSACKを送信して、TSN100までのすべてのパケットを受信したことを確認する。列3に示されているように、ローカルエンドポイントは確認された最大TSNを99から100に更新する。列1のエントリは、チェックポイント済みの送信された最大TSNが100であることを示すために網掛けされている。
【0066】
行3では、ローカルエンドポイントは、101~200の範囲のTSN及び2~101の範囲のSSNを使用した100個のデータパケットのバーストを送信する。ローカルエンドポイントはストリーム1に対する送信された最大TSNを100から200に更新し(列1)、送信された最大SSNを1から101に更新する(列2)。
【0067】
行4では、スイッチオーバーが発生し、このときローカルエンドポイントは本明細書で説明する技術を使用してピアエンドポイントとTSN及びSSNの解決を開始する。
【0068】
行5では、ローカルエンドポイントは列4に示されているように、チェックポイント済みの送信された最大TSN(100)をベースTSNとして送信する。この例では、この値は100である。なぜならこれは最後にチェックポイントされたものであったからである(例えば最後のチェックポイント以降に100個のデータパケットのバーストが送信された場合でも)。ローカルエンドポイントは、ダミーパケットのTSNを決定することによって手順を開始する。一例として上述したように、意図的に複製を送るために、ローカルエンドポイントは確認された最大TSN-10を計算し(この例では100-10=90)、列9に示されているように順序付けられていないSCTPダミーデータパケットENBCfgUpdをTSN90で送信し、SSNは無視されて送信されない。ローカルエンドポイントは送信された最大TSNを列1に示されているように90に調整し、確認された最大TSNを列3に示されているように90に調整する。ローカルエンドポイントは、ストリーム1に対するチェックポイント済みの送信された最大SSNも使用し、これはTSN100に対応して1であった。実際に送信された最後のSSNは101であったため、ピアエンドポイントは次の順序付けされたデータパケットに対してSSN102を予想する。
【0069】
行6で、ピアは(スイッチオーバーの前に送信された)TSN110を確認するSACKパケットを送信する。SACKは、複製又はギャップがあることを示していない。具体的には、100個のデータパケットのバーストが送信されたが、データはインフライトであり、まだピアによって処理されている。ローカルエンドポイントは確認された最大TSNと送信された最大TSNを90から110(列1及び3に示す)に更新し、引き続き初期ダミーパケットに応答してTSNが90の複製が報告されるのを待機する。
【0070】
行7では、ピアエンドポイントは引き続きインフライトデータを処理して、SACKをTSN150で送り返す。ローカルエンドポイントは引き続き送信された最大TSNと確認された最大TSNを(列1及び3に示されているように110から150に)更新して待機する。
【0071】
行8で、列10に示されているように、ピアエンドポイントは(スイッチオーバーの前に送信された)TSN200を確認するSACKを送信し、TSN90を使用した初期ダミーパケットを複製として報告する。ローカルエンドポイントは、報告されたcumtsnに基づいて送信された最大TSNと確認された最大TSNを更新する(200)。複製TSN90が報告され、それは初期ダミーTSNであるので、ローカルエンドポイントはcumtsnとなるべきSSNデルタ-送信されたベースTSNを計算する(200-100=100)。ローカルエンドポイントは、列2に示されているように、ストリーム1に対する送信された最大SSNに計算されたSSNデルタを加算する(1+100=101)。この時点で、送信された最大TSNと送信された最大SSNは今、行3に示されているように、ローカルエンドポイントがスイッチオーバーの前に送信していた値と一致する。
【0072】
行9では、列8に示されているように、ローカルエンドポイントは次のTSN201を使用して別のダミーパケットを送信する。列1に示されているように、ローカルエンドポイントは送信された最大TSNを200から201に更新する。
【0073】
行10では、列10に示されているように、ローカルエンドポイントは、複製又はギャップがないことを報告するSSN201のSACKを受信する。ローカルエンドポイントは、列3に示されているように、確認された最大TSNを200から201に更新する。
【0074】
行11で、ピアエンドポイントはenbCfgUpdateAckをTSN201及びSSN11で送信し、ローカルエンドポイントは前にすべてのパケットを受信したと見なす。これにより、列5に示されているように、ピアTSNが解決される。
【0075】
行12で、ローカルエンドポイントはTSN201のSACKを送信して受信を確認する。このときピアTSNは解決されており、ローカルエンドポイントは別のダミーENDBCfgUpdを次のTSN202を使用して送信する。列1に示されているように、ローカルエンドポイントは送信された最大TSNを201から202に更新する。
【0076】
行13で、ローカルエンドポイントはTSN202についてギャップ又は複製がないことを報告するSACKを受信する。ピアTSNが解決され、確認された最大TSN=送信された最大TSN(送信された最大ダミー)であるから、これは列6に示されているように、ローカルTSNを解決する。ローカルエンドポイントは、確認された最大TSNを201から202に更新する。
【0077】
行14では、列8に示されているように、ローカルエンドポイントはTSN202のSACKを送信して受信を確認する。ローカルエンドポイントはまた次の計算されたSSN102を使用して順序付けられたダミーENBCfgUpdをストリーム1で送信する。ローカルエンドポイントは、ストリーム1に対する送信された最大TSNを202から203(列1)に更新し、設定された最大SSNを102に更新する(列2)。
【0078】
行15で、ピアエンドポイントは最後のダミーパケットに対してTSN203のSACKを送信する。ピアエンドポイントはまた、TSN203及びDSSN13のenbCfgUpdAckを送信し、ローカルエンドポイントはSSNがストリーム1に対して正しいと見なす(例えばいくつかのデータ損失を許容する)。ローカルエンドポイントは、確認された最大TSNDを202から203に更新する。
【0079】
行16では、列8に示すように、ローカルエンドポイントはTSN203のSACKを送信して受信を確認する。ローカルエンドポイントはまた、TSN204の順序付けられたダミーパケットENBCfgUpdをストリーム0に対する次のSSN1を使用してストリーム0で送信する。ローカルエンドポイントは、送信された最大SSNを0から1に更新する。
【0080】
行17では、列10に示されているように、ピアエンドポイントは最後のダミーに対してTSN204のSACKと、TSN202及びSSN14のenbCfgUpdAckを送信し、ローカルエンドポイントはSSNがストリーム0に対して正しいと見なす。これにより、列7に示されているように、TSNとSSNの解決が完了する。
【0081】
行18で、ローカルエンドポイントによって送信される次の実際のデータは正しいTSNとSSN、すなわちこの例ではTSN205及びSSN103を持つであろう。
【0082】
図7は、いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続に対する別の例示的なパケットフローを示すグラフである。以下でさらに説明するように、この例では、スイッチオーバー中にデータがインフライトであり、再送信が発生している。図5図6と同様に、列1は送信された最大TSNを示している。列2は、ストリーム0とストリーム1の両方に対する送信された最大SSNを示している。列3は、確認された最大TSNを示している。列4は、送信されたベースTSNを示している。列5は、ピアTSNが解決されているかどうかを示している。列6は、ローカルTSNが解決されているかどうかを示している。列7は、ローカルSSNが解決されているかどうかを示している。列8は、ローカルSCTPエンドポイントのアクションを示している。列9は、ローカルSCTPエンドポイントとピアSCTPエンドポイント間で送信されるパケットの方向を示している。列10は、ピアSCTPエンドポイントのアクションを示している。
【0083】
行1では、列8に示されているように、ローカルエンドポイントはデータをピアにTSN100及びSSN1で送信する。確認された最大TSNは、列3に示されているように、99である。ローカルエンドポイントはストリーム1に対する送信された最大TSNを99から100に増分し(列1)、送信された最大SSNを0から1に増分する(列2)。予想される次のTSN及びSSNは(101、2)である。
【0084】
行2では、列10に示されているように、ピアエンドポイントは、TSN100までのすべてのパケットを受信したことをTSN100のSACKで確認する。ローカルエンドポイントは、確認された最大TSNを99から100に更新する。列1のエントリは、ストリーム1に対するチェックポイント済みTSNが100で、チェックポイント済みSSNが1であることを示すために強調表示されている。
【0085】
行3では、列8に示されているように、ローカルエンドポイントは、101~200の範囲のTSN及び2~101の範囲のSSNを使用した100個のデータパケットのバーストを送信する。ローカルエンドポイントはストリーム1に対する送信された最大TSNを100から200に更新し(列1)と、送信された最大SSNを1から101に更新する(列2)。
【0086】
行4で、列10に示されているように、ピアはTSN150までのすべてのパケットを受信したことを確認するが、ピアエンドポイントはそれ以外のパケットをゆっくり処理するか、又はそれらは捨てられる。ローカルエンドポイントは、確認された最大TSNを100から150に更新する。
【0087】
行5で、列8に示されているように、ローカルエンドポイントの再送信タイマーが満了し、ローカルエンドポイントは確認されなかったデータパケット、即ちTSN151~200のデータパケットを再送信する。上述したように、これらはピアによって受信されたがまだ適時に処理されていないか、及び/又はピアによって受信されていない。
【0088】
列6では、スイッチオーバーが発生し、このときローカルエンドポイントは、本明細書で説明する技術を用いてピアエンドポイントとTSNとSSNの解決を開始する。
【0089】
行7では、ローカルエンドポイントはチェックポイント済みの送信された最大TSN(100)を送信されたベースTSNとして保存する(列4)。例えばこの値は行2で上述したように最後にチェックポイントされたので100であり、この例ではチェックポイントが遅れている。意図的に複製を送る技術の一例として、ピアは確認された最大TSN-10を確認し(100-10=90)、順序付けられていないSCTPデータパケットENBCfgUpdをTSN90で送信し、その結果SSNは無視されて送信されない。ローカルエンドポイントは送信された最大TSNを90に調整し(列1)、確認された最大TSNを90に調整する(列3)。ローカルエンドポイントはまた、チェックポイント済みデータからストリーム1に対して1である送信された最大SSNを回復する。
【0090】
行8では、十分な時間が経過してピアエンドポイントは処理に追いつくことができる。列10に示されているように、ピアはSACKを送信する。SACKは(スイッチオーバーの前に送信された)TSN200を確認し、再送信されたすべてのパケット151~200を複製として報告する。ピアはまた、TSNが90のダミーパケットを複製として報告する。ピアは確認された最大TSNを90から200に更新し(列3)、送信された最大TSNを90から200に更新する(列1)。ピアデバイスは、SSNデルタをcumtsn-ベースTSN、200-100=100として計算し、ストリーム1に対するSSNを1から101に調整する。
【0091】
行9で、列8に示されているように、ローカルエンドポイントは次のTSN201を使用して、別のダミーパケットENBCfgUpdを送信する。ローカルエンドポイントは送信された最大TSNを200から201に更新する。
【0092】
行10で、列10に示されているように、ピアエンドポイントはTSN201のSACKを送信する。これにより、複製又はギャップは報告されない。ピアは確認された最大TSNを200から201に更新する。
【0093】
行11では、列10に示されているように、ピアはenbCfgUpdateAckをTSN201及びSSN11で送信し、ローカルエンドポイントはすべてのパケットが前に受信されていると見なす。これにより、列5に示されているように、ピアTSNが解決される。
【0094】
行12で、ローカルエンドポイントはTSN201のSACKを送信して受信を確認する。このときピアTSNは解決されており、ローカルエンドポイントはまた、NTの送信の次のTSN202を使用して別のダミーENBCfgUpdを送る。ローカルエンドポイントは送信された最大TSNを201から202に更新する(列1)。
【0095】
行13で、ピアエンドポイントはTSN202についてギャップ又は複製がないことを報告するSACKを送信する。ローカルエンドポイントは確認された最大TSNを201から202に更新する。ピアTSNは解決されており、確認された最大TSN(202)は送信された最大TSN(送信された最大ダミーに対して202)に等しいので、これにより列6に示されているようにローカルTSNは解決される。
【0096】
行14では、列8に示されているように、ローカルエンドポイントはSACKを送信してTSN202の受信を確認する。エンドポイントはまた、次の計算されたSSNを使用してTSN203、SSN102の順序付けられたダミーENBCfgUpdをストリーム1で送信する。ローカルエンドポイントはストリーム1に対する送信された最大TSNを202から203に更新し、送信された最大SSNを102に更新する。
【0097】
行15で、列10に示されているように、ピアエンドポイントはTSN203の最後のダミーに対するSACKを送信する。ピアはまた、enbCfgUpdAckをTSN203及びSSN102で送信し、ピアはSSNがストリーム1に対して正しいと見なす。ローカルエンドポイントは確認されたTSNを202から203に更新する。
【0098】
行16で、列8に示されているように、ローカルエンドポイントはSACKを送信してTSN203の受領を確認する。ローカルエンドポイントはまただ順序付けられたダミーENBCfgUpdをストリーム0に対する次のSSN1を使用してストリーム0で送信する。
【0099】
行17で、列10に示されているように、ピアはTSN204の最後のダミーに対するSACKと、TSNが202でSSNが14のenbCfgUpdAckを送信する。ローカルエンドポイントは確認された最大TSNを203から204に更新する。これにより、列7に示されているように、TSNとSSNの解決は完了する。
【0100】
行18で、ローカルエンドポイントによって送信される次の実際のデータは、正しいTSNとSSN、この例ではそれぞれ205と103を持つであろう。
【0101】
図8は、いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続に対する別の例示的なパケットフローを示すグラフである。以下でさらに説明するように、この例では、スイッチオーバー中にデータが欠落したためギャップが報告される。図5図7と同様に、列1は送信された最大TSNを示している。列2は、ストリーム0とストリーム1の両方に送信された最大SSNを示している。列3は、確認された最大TSNを示している。列4は、送信されたベースTSNを示している。列5は、ピアTSNが解決されているかどうかを示している。列6は、ローカルTSNが解決されているかどうかを示している。列7は、ローカルSSNが解決されるかどうかを示している。列8は、ローカルSCTPエンドポイントのアクションを示している。列9は、ローカルSCTPエンドポイントとピアSCTPエンドポイント間で送信されるパケットの方向を示している。列10は、ピアSCTPエンドポイントのアクションを示している。
【0102】
行1で、列8に示されているように、ローカルエンドポイントはピアにデータをTSN100及びSSN1で送信する。確認された最大TSNは、列3に示されているように、99である。ローカルエンドポイントはストリーム1に対する送信された最大TSNを99から100に増分し(列1)、送信された最大SSNを0から1に増分する(列2)。予想される次のTSN及びSSNは(101、2)である。
【0103】
行2で、列10に示されているように、ピアはTSN100までのすべてのパケットを受信したことを確認する。ローカルエンドポイントは、確認された最大TSNを99から100に増分する(列3)。TSN100とSSN1がチェックポイント済みであることを示すために列1のエントリが強調表示されている。
【0104】
行3で、ローカルエンドポイントはピアにデータをTSN101、SSN2で送信する。ローカルエンドポイントはストリーム1に対する送信された最大TSNを100から101に増分し(列1)、送信された最大SSNを1から2に増分する(列2)。この例では、このパケットが何らかの方法で捨てられ、及び/又はピアによって受信されなかったと仮定する。
【0105】
行4で、ローカルエンドポイントはTSN102、SSN3でピアにデータを送信する。ローカルエンドポイントは、ストリーム1に対する送信された最大TSNを101から102に更新し(列1)、送信された最大SSNを2から3に更新する(列2)。
【0106】
行5で、スイッチオーバーが発生し、このときローカルエンドポイントは、本明細書で説明する技術を用いてピアエンドポイントとTSNとSSNの解決を開始する。
【0107】
行6で、ローカルエンドポイントはチェックポイント済みの送信された最大TSN(100)を送信されたベースTSNとして保存する(列4)。ローカルエンドポイントは確認された最大TSN-10を計算し(100-10=90)、SSN90を使用して順序付けられていないSCTPダミーパケットENBCfgUpdを送信し、その結果SSNは無視されて送信されない。ローカルエンドポイントは送信された最大TSN(列1)と、確認された最大TSN(列3)を90の値に調整する。ローカルエンドポイントはまた、ストリーム1に対してチェックポイント済みデータから1に設定された送信された最大SSNを回復する。
【0108】
行7で、ピアは、TSN102を受信したが、TSN101は決して受信せず、TSNが90のダミー複製も受信しなかった。列10に示されているように、ピアは、TSN102とTSN100までのすべてのデータを確認するが、1パケット、TSN101が欠落したギャップを示すSACKを送り、また90を複製として報告する。ローカルエンドポイントは送信された最大TSNを90から100に更新し(列1)、確認された最大TSNをcumtsnに基づいて100に更新し(列3)、ギャップを埋めるためにダミーを送信する。TSNが90の初期ダミーのギャップがあるので、ローカルエンドポイントは、SSNデルタをcumtsn-ベースとして計算し、これはこの例では100-100=0であるので、SSNの調整は行われない。
【0109】
行8で、列8に示されているように、ローカルエンドポイントは番SACKからTSN101が欠落していたと判定し、別のダミーパケットを作成してTSN101を使用して送信する。ローカルエンドポイントはまた、既知の複製TSN90で初期ダミーパケットを送信する。本明細書で説明するように、ローカルエンドポイントは初期ダミーパケットを送信できるため、次に受信されるSACKもそれを複製として報告するように(例えばローカルエンドポイントがSACKを初期ダミーパケットの報告として識別できるように)送信することができる。ピアは、送信された最大TSNを100から101に更新する。
【0110】
行9で、列10に示されているように、ピアは送信TSN102までのすべてのパケットを確認するSACKを送信して、今はギャップがないことを報告する。ピアは再び初期ダミーデータパケット90を複製として受信したことを報告する。ローカルエンドピントは、送信された最大TSNを101から102に更新する(列1)。ローカルエンドポイントは複製を初期ダミーパケットとして認識し、SSNデルタをcumtsn-ベースTSN=102-100=2として計算する。ローカルエンドポイントは2を加算してストリーム1に対するSSNを調整し、したがってそれを1から3に変更する(列2)。
【0111】
行10で、ピアはギャップを埋めるために送信されたダミーTSN101に応答してenbCfgUpdateAckを送信する。列5に示されているように、これによりピアTSNが解決される。
【0112】
行11で、ローカルエンドポイントはSACKを送信してTSN202を確認する。ピアTSNを受信すると、ローカルエンドポイントは次のTSN103を使用して別のダミーENBCfgUpdを送信する。ローカルエンドポイントは送信された最大TSN103を102から103に更新する(列1)。
【0113】
行12で、列10に示されているように、ピアはSACKを送信してTSN103までのすべてのパケットを確認し、複製又はギャップは報告されない。列6に示されているように、これによりローカルTSNは解決される。ピアはまた、ダミーパケットに対する確認応答をTSN103で送信する。
【0114】
行13で、列8に示されているように、ローカルエンドポイントはSACKを送信してTSN203の受信を確認する。ローカルエンドポイントはまた、TSN104を使用して順序付けられたダミーENBCfgUpdと次の計算されたSSN4をストリーム1で送信する。ローカルエンドポイントはストリーム1に対する送信された最大TSNを103から104に更新し(列1)、送信された最大SSNを3から4に更新する(列2)。
【0115】
行14で、列10に示されているように、ピアエンドポイントは、最後のダミーTSN104に対してSACKを送信し、また送信enbCfgUpdAckをTSN204及びSSN14で送信する。ピアはSSNがストリーム1対して正しいと見なす。
【0116】
行15で、ピアはTSN204の受信を確認するためにSACKを送信し、また順序付けられたダミーENBCfgUpdをTSN105と、ストリーム0に対する次のSSN1を使用してストリーム0で送信する。ローカルエンドポイントは送信された最大TSNを104から105に更新し(列1)、ストリーム0に対する送信された最大SSNを0から1に更新する(列2)。
【0117】
行16で、ピアは最後のダミーTSN105に対してSACKと、TSN205及びSSN15のenbCfgUpdAckを送信する。ローカルエンドポイントは、SSNがストリーム0に対して正しいと見なす。これにより、列7に示されているようにTSN及びSSNは解決される。
【0118】
行17で、ローカルエンドポイントによって送信される次の実際のデータは、ストリーム1に対して正しいTSNとSSN、この例ではそれぞれ106と5を持つであろう。
【0119】
図9は、いくつかの実施形態による、ローカルエンドポイントとピアエンドポイントとの間の接続のための別の例示的なパケットフローを示すグラフである。以下でさらに説明するように、この例では、TSNの解決中にタイムアウトが発生する。図5図8と同様に、列1は送信された最大TSNを示している。列2は、ストリーム0とストリーム1の両方に送信された最大SSNを示している。列3は、確認された最大TSNを示している。列4は、送信されたベースTSNを示している。列5は、ピアTSNが解決されているかどうかを示している。列6は、ローカルTSNが解決されているかどうかを示している。列7は、ローカルSSNが解決されているかどうかを示している。列8は、ローカルSCTPエンドポイントのアクションを示している。列9は、ローカルSCTPエンドポイントとピアSCTPエンドポイント間で送信されるパケットの方向を示している。列10は、ピアSCTPエンドポイントのアクションを示している。
【0120】
行1で、列8に示されているように、ローカルエンドポイントはデータをTSN100及びSSN1でピアに送信する。列3に示されているように、確認された最大TSNは99である。ローカルエンドポイントはストリーム1に対する送信された最大TSNを99から100に増分し(列1)、送信された最大SSNを0から1に増分する(列2)。予想される次のTSN及びSSNは(101、2)である。
【0121】
行2で、列10に示されているように、ピアはTSN100までのすべてのパケットを受信したことを確認する。ローカルエンドポイントは、確認された最大TSNを99から100に増分する(列3)。列1のエントリは、TSN100がチェックポイント済みであることを示すために強調表示されている。
【0122】
行3で、スイッチオーバーが発生し、このときローカルエンドポイントはピアエンドポイントとTSN及びSSNの解決を開始する。
【0123】
行4で、ローカルエンドポイントはチェックポイント済みの送信された最大TSN(100)を送信されたベースTSNとして保存する。列8に示されているように、ローカルエンドポイントは確認された最大TSN-10(100-10=90)を計算し、初期ダミーパケットとして順序付けられていないSCTPデータENBCfgUpdをTSN90で送り、SSNは無視されて送信されない。ローカルエンドポイントは送信された最大TSNと確認された最大TSNを90に調整する(列1及び3)。ローカルエンドポイントは、SACKを所定の秒数待機する再送信タイマー(例えば再送信タイムアウト(RTO))を開始する。ローカルエンドポイントはまた、5秒ごとに満了する関連付けのためのアイドルタイマーも開始する。アイドルタイマーは、例えば手順を中止するかどうかを決定するために使用される。
【0124】
行5で、RTO後に関連付けのための再送信タイマーが満了する。ローカルエンドポイントは初期ダミーデータパケット(TSN90の順序付けられていないENBCfgUpd)を再送信する。
【0125】
行6で、RTO後に関連付けのための再送信タイマーが第2の時間で満了する。ローカルエンドポイントは再び初期ダミーデータパケット(TSN90の順序付けられていないENBCfgUpd)を再送信する。
【0126】
行7で、RTO後に関連付けのための再送信タイマーが第3の時間で満了する。ローカルエンドポイントは初期ダミーデータパケット(TSN90の順序付けられていないENBCfgUpd)を再送信する。
【0127】
各RTOの満了は示されていないが、RTOタイマーの満了が10回繰り返されると、ローカルエンドポイントは関連付けを中止する。
【0128】
本明細書に記載した原理に従って動作する技術は、任意の適当なやり方で実装できる。上記のフローチャートの処理ブロック及び決定ブロックは、これらの様々なプロセスを実行するアルゴリズムに含めることができるステップと動作を表している。これらのプロセスから導出されるアルゴリズムは、1以上の専用プロセッサ又は多目的プロセッサと統合されて、その動作を指示するソフトウェアとして実装され、デジタル信号処理(DSP)回路又は特定用途向け集積回路(ASIC)などの機能的に等価な回路として実装され、或いはその他の適当なやり方で実装されてよい。本明細書に含まれるフローチャートは、何らかの特定の回路又は何らかの特定のプログラミング言語又はプログラミング言語の種類の構文や動作を示していないことを理解されたい。むしろ、これらのフローチャートは、当業者が本明細書に記載するタイプの技術を実行する特定の装置の処理を行うための回路を製造し、又はコンピュータソフトウェアアルゴリズムを実装するために使用できる機能情報を例示するものである。本明細書で別途明記しない限り、各フローチャートに記載されたステップ及び/又は動作の特定のシーケンスは、実装できるアルゴリズムの例示にすぎず、本明細書に記載された原理の実装及び実施形態において変更できるものであることも理解されたい。
【0129】
したがっていくつかの実施形態において本明細書に記載する技術は、アプリケーションソフトウェア、システムソフトウェア、ファームウェア、ミドルウェア、埋め込みコード、又は他の任意の適切なタイプのコンピュータコードを含むソフトウェアとして実装されるコンピュータ実行可能命令において具体化できる。そのようなコンピュータ実行可能命令は、いくつかの適切なプログラミング言語及び/又はプログラミングツール若しくはスクリプトツールのいずれかを使用して記述でき、フレームワーク又は仮想マシンで実行される実行可能なマシン言語コード又は中間コードとしてコンパイルすることもできる。
【0130】
本明細書に記載された技術がコンピュータ実行可能命令として具体化される場合、これらのコンピュータ実行可能命令は、多くの利便機能を含む任意の適当なやり方で実装されてよく、それぞれがこれらの技術に従って動作するアルゴリズムの実行を完了するための1以上の動作を提供する。しかしながらインスタンス化された「利便機能」はコンピュータシステムの構造的要素であり、1以上のコンピュータと統合されて実行されると1以上のコンピュータに特定の操作上の役割を実行させる。利便機能は、ソフトウェア要素の一部又は全体であることができる。例えば利便機能はプロセスの機能として、又は個別のプロセスとして、又は他の処理の適当な単位として実装されてよい。本明細書に記載された技術が複数の利便機能として実装される場合、各利便機能は独自の方法で実装されてよく、すべて同じ方法で実装する必要はない。さらに、これらの利便機能は必要に応じてパラレル及び/又はシリアルに実行されてよく、及びそれらが実行されているコンピュータの共有メモリを使用して、メッセージ受け渡しプロトコルを用いるか又はその他の適当な方法で互いの間で情報を受け渡すことができる。
【0131】
一般に、利便機能は、特定のタスクを実行し、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。通常、利便機能の機能性は、それらが動作するシステムにおいて所望する通りに組み合わせたり配分したりできる。いくつかの実装形態では、本明細書の技術を実行する1以上の利便機能が一緒になって完全なソフトウェアパッケージを形成できる。これらの利便機能は、代替実施形態ではソフトウェアプログラムアプリケーションを実装するために、他の無関係な利便機能及び/又はプロセスと相互作用するように適合されてよい。
【0132】
本明細書では、1以上のタスクを実行するために、幾つかの例示的な利便機能が記載された。しかしながら記載された利便機能及びタスクの分割は、本明細書で説明された例示的な技術を実装できる利便機能のタイプを例示するものにすぎず、実施形態は特定の数、分割又はタイプの利便機能に限定されないことを理解されたい。いくつかの実装においては、すべての機能性が単一の利便機能に実装されてよい。また、いくつかの実装では本明細書に記載された利便機能の一部を他の利便機能と一緒に又は別個に(即ち単一のユニット又は別個のユニットとして)実装でき、或いはこれらの利便機能の一部が実装されないこともあることも理解されたい。
【0133】
本明細書に記載した技術を実装するコンピュータ実行可能命令は(1以上の利便機能として又は他のやり方で実装される場合)、いくつかの実施形態では1以上のコンピュータ可読媒体にエンコードされて媒体に機能性を提供できる。コンピュータ可読媒体は、ハードディスクドライブなどの磁気媒体、コンパクトディスク(CD)やデジタル多用途ディスク(DVD)などの光学媒体、永続的又は非永続的なソリッドステートメモリ(フラッシュメモリ、磁気RAMなど)、又はその他の適当な記憶媒体を含む。そのようなコンピュータ可読媒体は、任意の適当なやり方で実装されてよい。本明細書で用いる「コンピュータ可読媒体」(「コンピュータ可読記憶媒体」とも呼ばれる)は、有形の記憶媒体を指す。有形の記憶媒体は非一時的であり、少なくとも1つの物理的構造的要素を有する。本明細書で用いる「コンピュータ可読媒体」では、少なくとも1つの物理的構造的要素は、情報が埋め込まれた媒体を作り出すプロセス、その媒体に情報を記録するプロセス、又は情報を含んだ媒体をエンコードするプロセス中に何らかの方法で変更できる少なくとも1つの物理的特性を有する。例えば記録プロセス中に、コンピュータ可読媒体の物理的構造の一部の磁化状態を変更できる。
【0134】
さらに、上述したいくつかの技術は、これらの技術によって使用するために何らかの方法で情報(例えばデータ及び/又は命令)を保存する動作を含む。これらの技術のいくつかの実装-技術がコンピュータ実行可能命令として実現される実装など-では、情報はコンピュータ可読記憶媒体にエンコードされる。本明細書で特定の構造がこの情報を保存するための有利なフォーマットとして記載されている場合、記憶媒体にエンコードされるときにこれらの構造を使用して情報の物理的編成を与えることができる。次にこれらの有利な構造は、情報と相互作用する1以上のプロセッサの動作に影響を与えることにより、例えばプロセッサによって実行されるコンピュータ操作の効率を上げることによって記憶媒体に機能性を付与できる。
【0135】
技術をコンピュータ実行可能命令として具体化できるいくつかの実装(すべての実装ではない)において、これらの命令は任意の適当なコンピュータシステムで動作する1以上の適当なコンピューティングデバイスで実行でき、又は1以上のコンピューティングデバイス(又は1以上のコンピューティングデバイスの1以上のプロセッサ)はコンピュータ実行可能命令を実行するようにプログラムできる。コンピューティングデバイス又はプロセッサは、命令がコンピューティングデバイス又はプロセッサにアクセス可能なやり方でデータストアなど(例えばオンチップキャッシュ又は命令レジスタ、バスを介してアクセス可能なコンピュータ可読記憶媒体、1以上のネットワークを介してアクセス可能な及びデバイス/プロセッサによってアクセス可能なコンピュータ可読記憶媒体など)に保存された場合に命令を実行するようにプログラムできる。これらのコンピュータ実行可能命令を含む利便機能は、単一の多目的プログラム可能なデジタルコンピューティングデバイス、処理能力を共有して本明細書に記載した技術を共同で実行する2以上の多目的コンピューティングデバイスの協調システム、本明細書に記載された技術を実行するためだけの単一のコンピューティングデバイス又はコンピューティングデバイスの協調システム(共同設置又は地理的に分散)、本明細書に記載した技術を実行するための1以上のフィールドプログラマブルゲートアレイ(FPGA)、或いはその他の任意の適当なシステムと統合されてその動作を指示することができる。
【0136】
コンピューティングデバイスは、少なくとも1つのプロセッサ、ネットワークアダプタ、及びコンピュータ可読記憶媒体を含むことができる。コンピューティングデバイスは、例えばデスクトップ又はラップトップパーソナルコンピュータ、パーソナルデジタルアシスタント(PDA)、スマートフォン、携帯電話、サーバ、又は他の任意の適当なコンピューティングデバイスであってよい。ネットワークアダプタは、任意の適当なコンピューティングネットワークを介して他の任意の適当なコンピューティングデバイスと有線及び/又は無線で通信するために、コンピューティングデバイスを有効にする任意の適当なハードウェア及び/又はソフトウェアであってよい。コンピューティングネットワークは、ワイヤレスアクセスポイント、スイッチ、ルータ、ゲートウェイ、及び/又はその他のネットワーク機器、並びにインターネットを含め2以上のコンピュータ間でデータを交換するための適当な有線及び/又は無線通信媒体を含んでよい。コンピュータ可読媒体は、処理されるデータ及び/又はプロセッサによって実行される命令を保存するように適合できる。プロセッサは、データの処理や命令の実行を可能にする。データ及び命令は、コンピュータ可読記憶媒体に保存されてよい。
【0137】
コンピューティングデバイスは、入力デバイス及び出力デバイスを含む、1以上のコンポーネント及び周辺機器をさらに備え得る。これらのデバイスは、とりわけ、ユーザーインターフェースを表示するために使用できる。ユーザーインターフェースを提供するために使用できる出力デバイスの例には、出力及びスピーカーの視覚的提示のためのプリンター又は表示画面、又は出力の可聴提示のための他の音声生成デバイスが含まれる。ユーザーインターフェースに使用ユーザーインターフェースは、キーボード、マウス、タッチパッド、デジタル化タブレットなどのポインティングデバイスが含まれます。別の例として、コンピューティングデバイスは、音声認識又は他の可聴形式で入力情報を受信することができる。
【0138】
技術が回路及び/又はコンピュータ実行可能命令で実装された実施形態が説明された。いくつかの実施形態は、少なくとも1つの例が提供されている方法の形態であってもよいことを理解されたい。方法の一部として実行される動作は、任意の適切なやり方で順序付けることができる。したがって例示の実施形態では連続した動作として示されているが、実施形態は幾つかの動作を同時に実行することも含めて、動作が例示されたものとは異なる順序で実行されるように構成されてもよい。
【0139】
上記の実施形態の様々な態様は、単独で、組み合わせて、又は前述の実施形態で具体的に論じられていない様々な構成で使用することができ、したがって、その適用において、以下に記載の構成要素の詳細及び配置に限定されない。前述の説明又は図面に示されている。例えば一実施形態で説明されている態様は、他の実施形態で説明されている態様と任意の方法で組み合わせることができる。
【0140】
特許請求の範囲でクレーム要素を変化させるために「第1」、「第2」、「第3」などの序数詞を使用することは、それ自体はあるクレーム要素の別のクレーム要素に対する優先、優位若しくは順位、又は方法の動作が実行される時間的順序を意味するものではなく、単にクレーム要素を区別するために特定の名前を持つクレーム要素を(序数詞の使用を除いて)同じ名前を持つ別の要素と区別するためのラベルとしてのみ使用される。
【0141】
また、本明細書で使用される語法及び用語は説明を目的とするものであり、限定するもの見なされるべきではない。本明細書における「含む」、「有する」、「持つ」、「包含する」、「伴う」、及びそれらの変形の使用は、その後に列挙される事項、及びそれらの同等物、並びに追加事項を網羅することを意味する。
【0142】
本明細書では、「例示的」という言葉は、例、事例又は例示としての役割を果たすことを意味するものとして使用される。それゆえ本明細書に例示として記載される実施形態、実装、プロセス、特徴などは、例示的な例として理解されるべきであり、特に明記しない限り選好される例若しくは有利な例として理解されるべきではない。
【0143】
以上、少なくとも1つの実施形態のいくつかの態様を説明したが、当業者には様々な変更、修正及び改善が容易に想到し得るものであることを理解されたい。そのような変更、修正及び改善は本開示の一部であることが意図されており、本明細書に記載する原理の精神及び範囲内にあることが意図されている。したがって上記の説明及び図面は例示にすぎない。
図1A
図1B
図1C
図2
図3
図4
図5-1】
図5-2】
図6-1】
図6-2】
図7-1】
図7-2】
図8-1】
図8-2】
図9