(57)【特許請求の範囲】
【請求項１】
ａ）所定の長さの情報を受信する工程であって、前記情報は、第１の媒体アクセスプランＭＡＣプロトコルデータユニット（ＭＡＰ  ＭＰＤＵ）を含み、該第１のＭＡＰ  ＭＰＤＵは、可変の長さを有し、少なくとも一つのサブＭＰＤＵを含んでいる、工程と、
ｂ）受信した前記情報のうち最初の前記サブＭＰＤＵ及び複数の追加のサブＭＰＤＵを独立に復号する工程であって、前記最初のサブＭＰＤＵ及び前記追加のサブＭＰＤＵの各々が同じ長さを有する、工程と、
ｃ）前記最初のサブＭＰＤＵからのデータを処理する工程であって、前記最初のサブＭＰＤＵの前記データが、前記第１のＭＡＰ  ＭＰＤＵと次のＭＡＰ  ＭＰＤＵの送信間の間隔と、ＭＡＰ  ＭＰＤＵの送信間の前記間隔が変わるまでのＭＡＰ  ＭＰＤＵの数と、を特定する、工程と、
ｄ）前記追加のサブＭＰＤＵに含まれるサブＭＰＤＵの数を、処理した前記データから判断する工程と、
ｆ）前記次のＭＡＰ  ＭＰＤＵがいつ到着するかを予測する工程であって、該予測する工程は、
ｆ１）前記最初のサブＭＰＤＵの前記処理したデータから前記間隔の値を読み取る工程と、
ｆ２）前記間隔の値及び前記第１のＭＡＰ  ＭＰＤＵが到着した時間に基づいて、前記次のＭＡＰ  ＭＰＤＵの到着時間を計算する工程と、
を含む、工程と、
を含む方法。
【請求項２】
前記最初のサブＭＰＤＵのデータが、第２のサブＭＰＤＵに処理すべきデータが含まれることを示す場合にのみ、前記第２のサブＭＰＤＵのデータを処理する工程を更に含む、請求項１に記載の方法。
【請求項３】
ＭＡＰ  ＭＰＤＵの受信又は処理の失敗の前に受信したＭＡＰ  ＭＰＤＵ内で受信した情報を用いて、最後に受信したＭＡＰ  ＭＰＤＵと次のＭＡＰ  ＭＰＤＵの送信間の間隔を判断し、それにより、前記次のＭＡＰ  ＭＰＤＵが到着する時間を特定する工程を更に含む、請求項１に記載の方法。
【請求項４】
ａ）コンピュータ読み取り可能記憶媒体と、
ｂ）前記コンピュータ読み取り可能記憶媒体とデータ通信するプロセッサと
を備え、
前記プロセッサが、
ｉ）所定の長さの情報を受信する工程であって、前記情報は、第１の媒体アクセスプランＭＡＣプロトコルデータユニット（ＭＡＰ  ＭＰＤＵ）を含み、該第１のＭＡＰ  ＭＰＤＵは、可変の長さを有し、少なくとも一つのサブＭＰＤＵを含んでいる、工程と、
ｉｉ）受信した前記情報のうち最初の前記サブＭＰＤＵ及び複数の追加のサブＭＰＤＵを独立に復号する工程であって、前記最初のサブＭＰＤＵ及び前記追加のサブＭＰＤＵの各々が同じ長さを有する、工程と、
ｉｉ）前記最初のサブＭＰＤＵからのデータを処理する工程であって、前記最初のサブＭＰＤＵの前記データが、前記第１のＭＡＰ  ＭＰＤＵと次のＭＡＰ  ＭＰＤＵの送信間の間隔と、連続するＭＡＰ  ＭＰＤＵの送信間の前記間隔が変わるまでのＭＡＰ  ＭＰＤＵの数と、を特定する、工程と、
ｉｖ）前記追加のサブＭＰＤＵに含まれるサブＭＰＤＵの数を、処理した前記データから判断する工程と、
ｖ）前記次のＭＡＰ  ＭＰＤＵがいつ到着するかを予測する工程であって、該予測する工程は、
前記最初のサブＭＰＤＵの前記処理したデータから前記間隔の値を読み取る工程と、
前記間隔の値及び前記第１のＭＡＰ  ＭＰＤＵが到着した時間に基づいて、前記次のＭＡＰ  ＭＰＤＵの到着時間を計算する工程と、
を含む工程と、
を実施するように構成されている、ネットワークノード。
【請求項５】
前記プロセッサは、前記最初のサブＭＰＤＵのデータが、第２のサブＭＰＤＵに処理すべきデータが含まれていることを示す場合にのみ、前記第２のサブＭＰＤＵのデータを処理する工程を更に実行するように構成されている、請求項４に記載のネットワークノード。
【請求項６】
ＭＡＰ  ＭＰＤＵの受信又は処理の失敗の前に受信したＭＡＰ  ＭＰＤＵ内で受信した情報を用いて、最後に受信したＭＡＰ  ＭＰＤＵと次のＭＡＰ  ＭＰＤＵの送信間の間隔を判断し、それにより、前記次のＭＡＰ  ＭＰＤＵが到着する時間を特定する工程を更に実行するように前記プロセッサが構成されている、請求項４に記載のネットワークノード。
【請求項７】
プログラムコードを用いて符号化されるコンピュータ読み取り可能記憶媒体であって、前記プログラムコードがプロセッサによって実行されると、前記プロセッサは、
ａ）所定の長さの情報を受信する工程であって、前記情報は、第１の媒体アクセスプランＭＡＣプロトコルデータユニット（ＭＡＰ  ＭＰＤＵ）を含み、該第１のＭＡＰ  ＭＰＤＵは、可変の長さを有し、少なくとも一つのサブＭＰＤＵを含んでいる、工程と、
ｂ）受信した前記情報のうち最初の前記サブＭＰＤＵ及び複数の追加のサブＭＰＤＵを独立に復号する工程であって、前記最初のサブＭＰＤＵ及び前記追加のサブＭＰＤＵの各々が、同じ長さを有する、工程と、
ｃ）前記最初のサブＭＰＤＵからのデータを処理する工程であって、前記最初のサブＭＰＤＵの前記データが、前記第１のＭＡＰ  ＭＰＤＵと次のＭＡＰ  ＭＰＤＵの送信間の間隔と、連続するＭＡＰ  ＭＰＤＵの送信間の前記間隔が変わるまでのＭＡＰ  ＭＰＤＵの数と、を特定する工程と、
ｄ）前記追加のサブＭＰＤＵに含まれるサブＭＰＤＵの数を、処理した前記データから判断する工程と、
ｅ）前記次のＭＡＰ  ＭＰＤＵがいつ到着するかを予測する工程であって、該予測する工程は、ｉ）前記最初のサブＭＰＤＵの前記処理したデータから前記間隔の値を読み取る工程と、ｉｉ）前記間隔の値及び前記第１のＭＡＰ  ＭＰＤＵが到着した時間に基づいて、前記次のＭＡＰ  ＭＰＤＵの到着時間を計算する工程とを含む、工程と、
を含む方法を実施する、コンピュータ読み取り可能記憶媒体。
【請求項８】
前記方法は、前記最初のサブＭＰＤＵのデータが、第２のサブＭＰＤＵに処理すべきデータが含まれることを示す場合にのみ、前記第２のサブＭＰＤＵのデータを処理する工程を更に含む、請求項７に記載のコンピュータ読み取り可能記憶媒体。
【請求項９】
前記方法は、ＭＡＰ  ＭＰＤＵの受信又は処理の失敗の前に受信したＭＡＰ  ＭＰＤＵ内で受信した情報を用いて、最後に受信したＭＡＰ  ＭＰＤＵと次のＭＡＰ  ＭＰＤＵの送信間の間隔を判断し、それにより、前記次のＭＡＰ  ＭＰＤＵが到着する時間を特定する工程を更に含む、請求項７に記載のコンピュータ読み取り可能記憶媒体。
【請求項１０】
ａ）送信すべきデータの量に基づいて、第１の媒体アクセスプラン（ＭＡＰ）ＭＡＣプロトコルデータユニット(ＭＰＤＵ)に含まれるべきサブＭＰＤＵの数を決定する工程と、
ｂ）前記サブＭＰＤＵのうち最初のサブＭＰＤＵにヘッダを含める工程であって、前記ヘッダは、前記ＭＰＤＵに含まれるべき追加のサブＭＰＤＵの数を含み、前記最初のサブＭＰＤＵは、次のＭＡＰ  ＭＰＤＵがいつ送信されるかを予測するために使用可能な情報を更に含み、前記予測するために使用可能な情報は、（１）複数のＭＡＰ  ＭＰＤＵの送信間の時間量を示す間隔値と、（２）前記間隔値が変わるまでのＭＡＰ  ＭＰＤＵの数を含む、工程と、
ｃ）前記最初のサブＭＰＤＵを独立に符号化する工程と、
ｄ）前記追加のサブＭＰＤＵを独立に符号化する工程と、
ｅ）前記第１のＭＡＰ  ＭＰＤＵを送信する工程と
を含む方法。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は２００９年３月１７日出願の米国特許仮出願第６１／１６０，９８６号の優先権を請求しており、及び、本出願は２００９年３月３１日出願の米国特許非仮出願第１２／４１５，８７５号の優先権を請求しており、この出願はその全体が参照によって本明細書に組み込まれている。
【開示の分野】
【０００２】
本開示のシステム及び方法は、ネットワークを介したデータの伝送に関するものである。特に、本開示のシステム及び方法は、ネットワーク中のデータパケットの受信や正しい処理の失敗からのリカバリ（回復）に関する。
【背景】
【０００３】
従来の同軸ケーブルマルチメディア協会（ＭｏＣＡ）ネットワークでは、データパケットが同軸通信チャネル上で送信される。このネットワークを介した通信は、ビーコン及び媒体アクセスプラン（ＭＡＰ）パケットを送信するネットワークコーディネータノード（ＮＣ）によって管理される。ビーコンは、一定の間隔で（例えば、１０ミリ秒毎に）送信され、チャネルタイムクロック（ＣＴＣ）、ＭｏＣＡネットワークバージョン、次のアドミッション制御フレーム（ＡＣＦ）の時間、及び、ＮＣハンドオフが起こる時点（例えば、ＮＣが一つのノードから別のノードに変わる時点）を特定する。
【０００４】
ＭＡＰパケットは、ＮＣによってビーコンよりも頻繁に送信され、各ネットワークノードがネットワークを介してデータをいつ送信するかを特定するスケジューリング情報を提供する。ネットワークに接続された各ノードは、ネットワークを介してデータを送信及び受信するために、ＭＡＰに依存する。多くの要因がネットワークノードによるＭＡＰの正しい受信を妨げる可能性がある。例えば、ネットワークノードの近くで動作する携帯電話によって引き起こされるＧＳＭ干渉は、ネットワークノードとの同一チャネル干渉及び／又は隣接チャネル干渉を生成することによって、ＭＡＰを破損させる可能性がある。ＧＳＭ干渉の長さ、例えば約０．５７７ミリ秒、に起因して、ネットワークノードは、一つ以上のＭＡＰを取り逃がし、あるい誤って処理する可能性がある。
【０００５】
従来のＭｏＣＡネットワークでは、各ＭＡＰが、ＭＡＰパケット送信間隔、例えば次のＭＡＰが送信される間隔を特定するので、ネットワークノードは、ＭＡＰパケットを逃すと、続いて送信されるＭＡＰを受信できなくなる。図１は、従来のＭｏＣＡネットワークにおいて、ネットワークノードが、ＭＡＰの受信に失敗した後、この失敗からリカバリ（回復）する様子を示すタイミング図である。図１に示されるように、ノード１は、ＮＣからＭＡＰ２を受信することに失敗する。ＮＣは、ネットワーク上にＭＡＰをブロードキャストし続けるが、ノード１がＭＡＰ２の受信又は正しい処理に失敗したので、ノード１は、ＭＡＰ３からＭＡＰ６までの受信又は正しい処理に失敗する。従来のＭｏＣＡネットワークでは、ＭＡＰ送信間隔を求め、ＭＡＰパケット（例えばＭＡＰ７）を再度受信して正しく処理するために、ノード１は、次のビーコン、すなわちビーコン２を受信して処理するまで待機しなければならない。ＭＡＰはビーコンよりも頻繁に送信されるため、一つのＭＡＰパケットの受信又は正しい処理に失敗したノードは、次のビーコンを待たなければならないので、次の数個のＭＡＰを受信することはできない。このように、ノードがＭＡＰの受信に失敗すると、そのノードは、次のビーコンを受信するまで後続のＭＡＰパケットを受信せず、データがネットワークを介していつ送信されようとしているかを判断しないので、そのノードは、ある期間（図１の例に関しては、ＭＡＰ２からＭＡＰ７まで）にわたって、本質的にネットワークから切断されてしまう。更に、次のビーコンが受信されるまで、バッファ済みデータパケットの送信のためにタイムスロットをＮＣに要求することはできなくなる。
【０００６】
従って、ＭＡＰ送信の取り逃がしからリカバリするための改良方法が望まれている。
【概要】
【０００７】
いくつかの実施形態では、本方法は、所定の長さの情報を受信する工程であって、その情報は、可変の長さを有する第１のＭＡＣプロトコルデータユニット（ＭＰＤＵ）を含み、そのＭＰＤＵが少なくとも一つのサブＭＰＤＵを含む工程と、受信した情報のうち最初のサブＭＰＤＵ及び複数の追加部分を独立に復号する工程であって、各部分が所定の長さを有する工程とを含む。ある実施形態では、各追加部分は、最初のサブＭＰＤＵの長さに等しい長さを有する。本方法は、最初のサブＭＰＤＵからのデータを処理する工程と、復号した他の部分のうち受信したＭＰＤＵのサブＭＰＤＵを構成する部分の数を、処理したデータから判断する工程とを更に含み、ある実施形態では、その追加のサブＭＰＤＵの長さを、処理したデータから判断する工程を更に含む。
【０００８】
いくつかの実施形態では、ネットワークノードは、コンピュータ読み取り可能記憶媒体、及びコンピュータ読み取り可能記憶媒体とデータ通信するプロセッサを備える。プロセッサは、所定の長さの情報を受信するように構成されており、その情報は、第１のＭＡＣプロトコルデータユニット（ＭＰＤＵ）を含み、そのＭＰＤＵは、可変の長さを有し、少なくとも一つのサブＭＰＤＵを含んでいる。そのプロセッサは、受信した情報のうち最初のサブＭＰＤＵ及び複数の追加部分を独立に復号するように構成されており、ここで、各部分は、一つのサブＭＰＤＵの長さに等しい長さを有する。そのプロセッサは、最初のサブＭＰＤＵからのデータを処理し、復号した他の部分のうち受信したＭＰＤＵのサブＭＰＤＵを構成する部分の数を、処理したデータから判断するように構成されている。
【０００９】
いくつかの実施形態では、本方法は、前に受信した対象パケット内で受信した情報を用いて、最後に受信した対象パケットと次の対象パケットの送信間の間隔を判断し、それにより、次の対象パケットが到着する時間を特定する工程であって、その情報は、前に送信された対象情報パケットであって前に受信した対象パケットの後に送信されたパケットの発見及び復号の失敗の後に用いられる、工程と、次の対象パケットがいつ到着するかが判断されると、次の対象パケットを部分ごとに復号する工程であって、各部分が独立に符号化されている工程と、次の対象パケットの複数の部分のうち最初の部分からの情報を用いて、それらの復号された部分のうち実際に次の対象パケットの一部となる部分の数を判断する工程とを含む。各部分は独立に符号化されるので、各部分は独立に復号することができる。
【００１０】
プロセッサにロード可能なコンピュータプログラムコードを用いて符号化されるコンピュータ読み取り可能記憶媒体の形態に本方法を具体化し、プロセッサがそのコードを実行すると本方法を実施するようにしてもよい。
【図面の簡単な説明】
【００１１】
【図１】図１は、従来のＭｏＣＡネットワークにおける失敗リカバリのタイミング図である。
【図２】図２は、ＭＡＰ  ＭＡＣプロトコルデータユニット（ＭＰＤＵ）の一実施形態を示す。
【図３】図３は、ＭＡＰパケットを処理する方法の一実施形態を示すフローチャートである。
【図４】図４は、失敗からリカバリする方法の一実施形態を示すフローチャートである。
【図５】図５は、パケットを取り逃がした後のネットワークにおけるノードのリカバリの一実施形態のタイミング図である。
【図６】図６は、非同期データネットワークにおける固定パケット送信間隔を示す。
【図７】図７は、図３及び図４に示された方法に従ってデータパケットを処理し、パケットの受信失敗からリカバリするように構成されたネットワークノードの一実施形態を示す。
【詳細な説明】
【００１２】
ＭＡＰの受信又は正しい処理の失敗からリカバリするためのシステム及び方法をこれから説明する。本開示のシステム及び方法の一実施形態は、ＭＡＰが所定の固定間隔で送信されるネットワークで実施される。ネットワークは、ネットワークノード間のデータ送信を管理するネットワークコーディネータ（ＮＣ）を含みうる。図７は、ネットワークノードの一例を簡略化したブロック図を示す。図７に示されるように、ネットワークノード７００は、プロセッサ７０２を含んでいてもよく、このプロセッサ７０２は、コンピュータ読み取り可能記憶媒体７０４と、ノード７００がネットワークを介してデータを送受信することを可能にする物理インターフェースとに接続されている。プロセッサ７０２は、中央処理装置（ＣＰＵ）、マイクロコントローラ、又は同様のデバイスを含む任意の計算デバイスであってよいが、これに限定されるものではない。コンピュータ読み取り可能記憶媒体７０４は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ、又はプロセッサ７０２によって実行されうるデータ及び命令を記憶するように構成された同様のデバイスを含む任意のタイプのメモリであってよいが、これに限定されるものではない。
【００１３】
図２に示されるように、本開示の方法及び装置の一実施形態において、ＭＡＰ  ＭＡＣプロトコルデータユニット（ＭＰＤＵ）２０１は、互いに連続的に付加（アペンド）される複数のサブＭＰＤＵ２００を含む。最初のサブＭＰＤＵ２００のヘッダ２０２は、この一連のサブＭＰＤＵにおけるサブＭＰＤＵの正確な数を特定する。これらのサブＭＰＤＵは、それぞれが同じ長さを有し、それぞれが独立に符号化されている。この他に、各サブＭＰＤＵの長さを所定の方法で変動させることも可能である。各サブＭＰＤＵ２００は、独立に符号化されているので、それぞれを独立に復号することもできる。この他に、各サブＭＰＤＵを単一の符号化処理で一括して符号化することも可能である。しかしながら、その場合、各サブＭＰＤＵを独立に復号することは不可能になるし、ＭＰＤＵ２０１内に含まれるサブＭＰＤＵ２００の数をヘッダに運ばせるという利点も失われる。各サブＭＰＤＵ２００は、ヘッダ２０２（最初のサブＭＰＤＵについてのみ）及びペイロード２０４を含む４００バイトの長さを有していてもよい。従って、ＭＰＤＵ２０１が１６００バイトの長さを有し、各サブＭＰＤＵ２００が４００バイトの長さを有していてもよい。当業者は、ＭＰＤＵ２０１及びサブＭＰＤＵ２００について他の長さが実施可能であることを理解するであろう。
【００１４】
一実施形態において、ＮＣは、図６に示されるような非同期ネットワークでＭＡＰ  ＭＰＤＵ２０１を一定の間隔で送信する。以下により詳細に説明されるように、一定の間隔でＭＡＰを送信することで、ネットワークノード７００は、従来のＭｏＣＡネットワークでの場合よりも迅速にＭＡＰの取り逃がしからリカバリできるようになる。この一定間隔は、近く予定されている変更を各ネットワークノードに通知することによって変更することができる。その通知は、パケット送信間隔が変わるまでのＭＡＰ数を示すカウントダウン値とともに、次のパケット送信間隔値として、ＭＡＰのヘッダ２０２又はペイロード２０４に含めてもよい。カウントダウン値が、連続的に送信される各ＭＡＰ  ＭＰＤＵにおいて、ゼロに達するまで減分（デクリメント）されていき、その後、ＭＰＤＵ送信間隔が変更されてもよい。例えば、次のパケット送信値０．７５及びカウントダウン値「１」をＭＡＰ内で伝達することによって、次のＭＡＰ  ＭＰＤＵが受信された後に、ＭＰＤＵ送信間隔が１ミリ秒間隔から０．７５ミリ秒間隔に変更されてもよい。
【００１５】
ネットワークで実施されるＭＡＰのフォーマットにかかわらず、ＭＰＤＵ２０１を受信するネットワークノード７００は、中間のＭＡＰが受信されないか正しく処理されない場合、例えば失敗（障害）が生じた場合に、ＭＰＤＵ２０１からの情報を用いて次のＭＡＰ又は後のＭＡＰの到着を正確に計算してよい。一実施形態では、その情報は、図６に示されるように伝達される一定間隔の現在の値又は新しい一定間隔の値を含む。例えば、ＮＣが、図２の実施形態に示されるように、複数のサブＭＰＤＵ２００を有するＭＡＰを送信する場合、ネットワークノードは、それらのサブＭＰＤＵ２００の各々を復号して最初のサブＭＰＤＵヘッダを検査し、後続のサブＭＰＤＵ２００が存在するか否かを判断する。最初のサブＭＰＤＵヘッダ２０２が、後続のサブＭＰＤＵ２００が存在しないことを示す場合、そのノード７００は、最初のサブＭＰＤＵのみを処理して、送られたサブＭＰＤＵの全てを処理し終える。しかしながら、最初のサブＭＰＤＵヘッダ２０２が、後続の追加サブＭＰＤＵ２００が存在することを示す場合は、ノード７００は、これらのサブＭＰＤＵも同様に処理する。このようにして、ノードが各ＭＡＰを正しく識別して受信することが可能になる。
【００１６】
この他に、ＮＣが単一のサブＭＰＤＵ２００内で複数のＭＡＰを送信する場合、ノード７００は、次のＭＡＰ  ＭＰＤＵ２０１が最大可能サイズ（例えば、１６００バイト）を有すると仮定し、この仮定に基づいて、そのＭＡＰ  ＭＰＤＵ２０１の終了送信時間を計算する。ネットワークノード７００は、計算されたＭＡＰ送信間隔のためのビットを全て受信し、各サブＭＰＤＵ２００の受信したビットを一つずつ復号する。ネットワークノード７００がサブＭＰＤＵヘッダ２０２のビットを処理すると、ネットワークノード７００は、ＭＡＰ  ＭＰＤＵ２０１の実際の長さを特定し、受信したビットからＭＡＰ  ＭＰＤＵ２０１のバイトをリカバリする。ネットワークノード７００は、ＭＡＰサブＭＰＤＵヘッダ２０２によって特定されるビットを、ペイロードデータを含まないものとして無視し、処理しなくてもよい。
【００１７】
図３は、ネットワークノード７００においてＭＡＰサブＭＰＤＵ２００を処理する方法３００の一例を示すフロー図である。図３に示されるように、ブロック３０２では、ＭＡＰがネットワークノード７００にて受信される。ブロック３０４では、ネットワークノード７００がＭＡＰの各サブＭＰＤＵ２００を復号する。ブロック３０６では、ネットワークノード７００が、最初のサブＭＰＤＵ２００のヘッダ２０２及びペイロード２０４を処理する。ブロック３０８では、最初のサブＭＰＤＵ２００の処理されたデータが、後続のサブＭＰＤＵ２００に処理すべきデータが含まれることを示す場合、ネットワークノード７００は、次のサブＭＰＤＵ２００又はサブ−サブＭＰＤＵを処理する。しかしながら、最初のサブＭＰＤＵ２００の処理されたデータが、後続のサブＭＰＤＵ２００に処理すべきデータが含まれないことを示す場合、ネットワークノード７００は、ブロック３０８をスキップして、後続のサブＭＰＤＵ２００からのデータを処理しなくてもよい。
【００１８】
ブロック３１０では、パケット送信間隔値、カウントダウン値、及び次のパケット送信間隔値が、処理されたデータから読み取られる。パケット送信間隔値、カウントダウン値、次のパケット送信間隔値、及びパケットの到着時間は、より詳細に後述するように、失敗が生じたときに使用できるように、ネットワークノード７００のコンピュータ読み取り可能記憶媒体７０４内に記憶されてもよい。ネットワークノード７００は、間隔値、カウントダウン値、及び前のＭＡＰ  ＭＰＤＵ２０１の到着に基づいて、次のＭＡＰの到着を計算してもよい。このように、ネットワークノード７００が後のＭＡＰサブＭＰＤＵ２００の受信や正しい処理の失敗からリカバリできるように、ネットワークノード７００は、ＭＡＰサブＭＰＤＵの各々を処理して、間隔値、カウントダウン値、及び最後のパケットの到着時間を記憶する。
【００１９】
図４は、対象となるＭＡＰサブＭＰＤＵ２００などのパケットの受信や正しい処理の失敗からリカバリする方法４００の一例を示すフロー図である。ブロック４０２において、ネットワークノード７００は対象パケットを受信する。この対象パケットは、図３に関して上述したように復号及び処理される。この対象パケットからの情報、例えば、パケットの到着時間、現在のパケット送信間隔、カウントダウン識別子、及び次のパケット送信間隔値は、コンピュータ読み取り可能記憶媒体７０４内に保存される。
【００２０】
ブロック４０４では、ネットワークノード７００は、自らが対象パケットの受信又は正しい処理に失敗したと判断する。ネットワークノード７００が、自らが対象パケットを受信しなかったと判断すると、ノード７００は、ブロック４０６において、先に受信した対象パケットで受信された情報をコンピュータ読み取り可能記憶媒体７０４から読み取ることによって失敗リカバリを開始する。上述したように、その情報は、前に受信した対象パケットの到着、現在のパケット送信間隔、カウントダウン識別子、及び次のパケット送信間隔値を含んでいてもよい。その場合、ネットワークノード７００は、コンピュータ読み取り可能記憶媒体７０４から読み取った情報を使用して、次の対象パケットがいつ到着するかを判断してもよい。
【００２１】
例えば、連続する対象パケット間の間隔が変わらない場合、ネットワークノード７００は、前に受信したパケットの到着時間及び現在のパケット送信間隔値を用いて、次の対象パケットの到着時間を判断してもよい。当業者には理解されるように、次の対象パケットの計算された到着時間が既に経過している場合には、ネットワークノード７００は、そのパケット送信間隔値を二倍、三倍、又は他の乗数で増倍して、次の対象パケットの到着時間を特定してもよい。
【００２２】
また、ネットワークノード７００は、カウントダウン値を検査して、次のパケットの後にパケット間の間隔が変更されようとしているか否かを判断してもよい。例えば、前に受信した対象パケットがカウントダウン値「１」を有するとすれば、後続の対象パケット、例えば、ネットワークノード７００によって受信されていないパケットは、カウントダウン値「０」を有する。従って、ネットワークノード７００は、その次の対象パケットが異なるパケット送信間隔で送信されようとしていると判断する。そして、ネットワークノード７００は、新しいパケット送信間隔値を、前のパケット送信間隔値及び最後に受信したパケットの到着時間と共に用いて、次の対象パケットの到着を判断する。例えば、前に受信したパケットが時間ｔに到着し、前のパケット送信間隔値が１ミリ秒であり、新しいパケット送信間隔値が０．７ミリ秒だとすると、ネットワークノード７００は、次の対象パケットがｔ＋１．７ミリ秒に到着すると計算する。
【００２３】
ブロック４０８において、ネットワークノード７００は次の対象パケットを受信する。次の対象パケットを受信すると、上述したように、ネットワークノード７００は、ブロック４１０において、パケットの各部分を復号する。ブロック４１２では、ネットワークノード７００は、対象パケットに含まれる部分の数を判断する。最初の部分が、パケットの各部分がデータを含むことを示す場合は、ネットワークノード７００は各パケット部分を処理する。しかし、パケットの最初の部分が、一つ以上のパケット部分がデータを含まないことを示す場合には、ネットワークノード７００はパケットのこれらの部分を破棄してもよい。ブロック４１４では、ネットワークノード７００は、対象パケットに含まれる情報をコンピュータ読み取り可能記憶媒体７０４に記憶してもよい。上述したように、その情報は、現在のパケット送信間隔値、カウントダウン値、次のパケット送信間隔値、及び前に受信した対象パケットの到着時間を含んでいてもよい。当業者は、コンピュータ読み取り可能記憶媒体７０４内に他の情報を記憶してもよいことを理解するであろう。
【００２４】
上述のシステム及び方法によれば、データが従来のシステムよりも速く送信されるネットワークにおいてノードが重要なデータパケットを取り逃がす状況から、ネットワークノードがリカバリできるようになる。データパケットの取り逃がしからより速くリカバリすることで、失敗が発生したときにネットワークノードによって取り逃がされるデータ量を減らすことができるので、ネットワークの効率が向上する。
【００２５】
特定の実施形態に関して本開示の方法及び装置が説明されているが、特許請求された発明はそれに限定されない。むしろ、特許請求された発明の範囲及び均等物の範囲を逸脱しないで、当業者によって作られうる本開示の方法及び装置の他の変形や実施形態を含むように、添付の特許請求の範囲は広く解釈されるべきである。特許請求の範囲で用いられている、例えば「ａ）」や「ｉ）」などの区切り記号は、特許請求の範囲に順番を付すものとして解されるべきではなく、むしろ特許請求の範囲の文法的解析に加わる視覚的手がかりとして、及び特許請求の範囲の特定の部分が後で参照されるときの識別子としての役割を果たすためにのみ提供される。
［発明の例］
［例１］
ａ）所定の長さの情報を受信する工程であって、前記情報は、第１のＭＡＣプロトコルデータユニット（ＭＰＤＵ）を含み、該第１のＭＰＤＵは、可変の長さを有し、少なくとも一つのサブＭＰＤＵを含んでいる、工程と、
ｂ）受信した前記情報のうち最初の前記サブＭＰＤＵ及び複数の追加部分を独立に復号する工程であって、各部分が所定の長さを有する、工程と、
ｃ）前記最初のサブＭＰＤＵからのデータを処理する工程と、
ｄ）復号した他の部分のうち受信した前記ＭＰＤＵのサブＭＰＤＵを構成する部分の数を、処理した前記データから判断する工程と
を含む方法。
［例２］
次の媒体アクセスプラン（ＭＡＰ）がいつ到着するかを予測する工程を更に含み、該予測する工程は、
ａ）前記最初のサブＭＰＤＵの前記処理したデータから間隔値を読み取る工程と、
ｂ）前記間隔値及び第１のＭＡＰが到着した時間に基づいて、前記次のＭＡＰの到着時間を計算する工程とを含んでいる、例１に記載の方法。
［例３］
前記最初のサブＭＰＤＵのデータが、第２のサブＭＰＤＵに処理すべきデータが含まれることを示す場合にのみ、前記第２のサブＭＰＤＵのデータを処理する工程を更に含む、例１に記載の方法。
［例４］
前記最初のサブＭＰＤＵの前記データが、前記第１のＭＰＤＵと次のＭＰＤＵとの間の間隔を特定する、例１に記載の方法。
［例５］
前記最初のサブＭＰＤＵの前記データが、ＭＰＤＵ間の間隔が変わるまでのＭＰＤＵの数を特定する、例１に記載の方法。
［例６］
失敗の前に受信したＭＰＤＵ内で受信した情報を用いて、最後に受信したＭＰＤＵと次のＭＰＤＵの送信間の間隔を判断し、それにより、前記次のＭＰＤＵが到着する時間を特定する工程を更に含む、例１に記載の方法。
［例７］
ａ）コンピュータ読み取り可能記憶媒体と、
ｂ）前記コンピュータ読み取り可能記憶媒体とデータ通信するプロセッサと
を備え、
前記プロセッサが、
ｉ）所定の長さの情報を受信する工程であって、前記情報は、第１のＭＡＣプロトコルデータユニット（ＭＰＤＵ）を含み、該第１のＭＰＤＵは、可変の長さを有し、少なくとも一つのサブＭＰＤＵを含んでいる、工程と、
ｉｉ）受信した前記情報のうち最初の前記サブＭＰＤＵ及び複数の追加部分を独立に復号する工程であって、各部分が一のサブＭＰＤＵの長さに等しい長さを有する、工程と、
ｉｉ）前記最初のサブＭＰＤＵからのデータを処理する工程と、
ｉｖ）復号した他の部分のうち受信した前記ＭＰＤＵのサブＭＰＤＵを構成する部分の数を、処理した前記データから判断する工程と、
を実施するように構成されている、ネットワークノード。
［例８］
前記プロセッサは、次のＭＰＤＵがいつ到着するかを予測する工程を更に実行するように構成されており、前記プロセッサは、
ａ）前記最初のサブＭＰＤＵの前記処理したデータから間隔値を読み取り、
ｂ）前記間隔値及び第１のＭＡＰが到着した時間に基づいて、前記次のＭＡＰの到着時間を計算するように構成されている、例７に記載のネットワークノード。
［例９］
前記プロセッサは、前記最初のサブＭＰＤＵのデータが、第２のサブＭＰＤＵに処理すべきデータが含まれていることを示す場合にのみ、前記第２のサブＭＰＤＵのデータを処理する工程を更に実行するように構成されている、例７に記載のネットワークノード。
［例１０］
前記最初のサブＭＰＤＵの前記データが、前記第１のＭＡＰと次のＭＡＰとの間の間隔を特定する、例７に記載のネットワークノード。
［例１１］
前記最初のサブＭＰＤＵの前記データが、連続するＭＰＤＵ間の間隔が変わるまでのＭＰＤＵの数を特定する、例７に記載のネットワークノード。
［例１２］
失敗の前に受信したＭＰＤＵ内で受信した情報を用いて、最後に受信したＭＡＰと次のＭＡＰの送信間の間隔を判断し、それにより、前記次のＭＡＰが到着する時間を特定する工程を更に実行するように前記プロセッサが構成されている、例７に記載のネットワークノード。
［例１３］
プログラムコードを用いて符号化されるコンピュータ読み取り可能記憶媒体であって、前記プログラムコードがプロセッサによって実行されると、前記プロセッサは、
ａ）所定の長さの情報を受信する工程であって、前記情報は、第１のＭＡＣプロトコルデータユニット（ＭＰＤＵ）を含み、該第１のＭＰＤＵは、可変の長さを有し、少なくとも一つのサブＭＰＤＵを含んでいる、工程と、
ｂ）受信した前記情報のうち最初の前記サブＭＰＤＵ及び複数の追加部分を独立に復号する工程であって、各部分が、一つのサブＭＰＤＵの長さに等しい長さを有する、工程と、
ｃ）前記最初のサブＭＰＤＵからのデータを処理する工程と、
ｄ）復号した他の部分のうち受信した前記ＭＰＤＵのサブＭＰＤＵを構成する部分の数を、処理した前記データから判断する工程と
を含む方法を実施する、コンピュータ読み取り可能記憶媒体。
［例１４］
前記方法は、次のＭＰＤＵがいつ到着するかを予測する工程を更に含み、該予測する工程は、ｉ）前記最初のサブＭＰＤＵの前記処理したデータから間隔値を読み取る工程と、ｉｉ）前記間隔値及び第１のＭＡＰが到着した時間に基づいて、前記次のＭＡＰの到着時間を計算する工程とを含んでいる、例１３に記載のコンピュータ読み取り可能記憶媒体。
［例１５］
前記方法は、前記最初のサブＭＰＤＵのデータが、第２のサブＭＰＤＵに処理すべきデータが含まれることを示す場合にのみ、前記第２のサブＭＰＤＵのデータを処理する工程を更に含む、例１３に記載のコンピュータ読み取り可能記憶媒体。
［例１６］
前記最初のサブＭＰＤＵの前記データが、前記第１のＭＰＤＵと次のＭＰＤＵとの間の間隔を特定する、例１３に記載のコンピュータ読み取り可能記憶媒体。
［例１７］
前記最初のサブＭＰＤＵの前記データが、連続するＭＰＤＵ間の間隔が変わるまでのＭＰＤＵの数を特定する、例１３に記載のコンピュータ読み取り可能記憶媒体。
［例１８］
前記方法は、失敗の前に受信したＭＰＤＵ内で受信した情報を用いて、最後に受信したＭＡＰと次のＭＡＰの送信間の間隔を判断し、それにより、前記次のＭＡＰが到着する時間を特定する工程を更に含む、例１３に記載のコンピュータ読み取り可能記憶媒体。
［例１９］
可変長の対象情報パケットを迅速に発見して復号する方法であって、
ａ）前に送信された対象情報パケットの発見及び復号に失敗した後、前記失敗の前に受信したパケットからの情報を用いて、最後に受信した対象パケットと次の対象パケットの送信間の間隔を判断し、それにより、前記次の対象パケットが到着する時間を特定する工程と、
ｂ）前記次の対象パケットがいつ到着するかが判断されると、前記次の対象パケットを部分ごとに復号する工程であって、各部分が独立に符号化される、工程と、
ｃ）前記次の対象パケットの前記部分のうち最初の部分からの情報を用いて、前記復号された部分のうち実際に前記次の対象パケットの一部となる部分の数を判断する工程と
を含む、方法。
［例２０］
前に受信した対象パケット内で受信した情報が、連続する対象パケット間の間隔が変わるまでの対象パケットの数を特定する、例１９に記載の方法。
［例２１］
前記工程ａ）は、
ａ）メモリから間隔値を読み取る工程と、
ｂ）前記間隔値及び前に受信した対象パケットの受信時間に基づいて、前記次の対象パケットの到着時間を計算する工程と
を含む、例１９に記載の方法。
［例２２］
ａ）送信すべきデータの量に基づいて、第１のＭＰＤＵに含まれるべきサブＭＡＣプロトコルデータユニット（ＭＰＤＵ）の数を決定する工程と、
ｂ）前記サブＭＰＤＵのうち最初のサブＭＰＤＵにヘッダを含める工程であって、前記ヘッダは、前記ＭＰＤＵに含まれるべき追加のサブＭＰＤＵの数を含む、工程と、
ｃ）前記最初のサブＭＰＤＵを独立に符号化する工程と、
ｄ）前記追加のサブＭＰＤＵを独立に符号化する工程と、
ｅ）前記第１のＭＰＤＵを送信する工程と
を含む方法。
［例２３］
前記最初のサブＭＰＤＵは、次のＭＰＤＵがいつ送信されるかを予測するために使用可能な情報を更に含む、例２２に記載の方法。
［例２４］
前記予測するために使用可能な情報は、複数のＭＰＤＵの送信間の時間量を示す間隔値を含む、例２３に記載の方法。
［例２５］
前記ＭＰＤＵは、送信された媒体アクセスプラン（ＭＡＰ）内に含まれ、前記最初のサブＭＰＤＵは、次のＭＡＰがいつ送信されるかを予測するために使用可能な情報を更に含む、例２２に記載の方法。
［例２６］
前記予測するために使用可能な情報は、複数のＭＡＰの送信間の時間量を示す間隔値を含む、例２５に記載の方法。
【図１】
0005736612.tif 000002
【図２】
0005736612.tif 000003
【図３】
0005736612.tif 000004
【図４】
0005736612.tif 000005
【図５】
0005736612.tif 000006
【図７】
0005736612.tif 000007
【図６】
0005736612.tif 000008