(57)【要約】【課題】マルチキャストでネットワークコーディングされたフレームが送信されるとき、受信ノード側でフレームの損失による追加的なフレームのリクエストを直ちに行うことなく、他の受信ノードのリクエストを受信及び分析した後、追加的なフレームをリクエストするか否かを決定することができるノード及びその通信方法を提供する。【解決手段】ネットワーク内のノードによって行われ、ネットワーク内の他のノードからパケット受信に対する他のノードのメッセージを受信するステップと、他のノードが要求するパケット数とノードが要求するパケット数とを比較するステップと、ノードが要求するパケット数が他のノードが要求するパケット数に比べて大きい場合、ノードのメッセージを送信するステップとを有し、他のノードのメッセージは、他のノードが要求するパケット数を示す情報を含み、ノードのメッセージは、ノードが要求するパケット数を示す情報を含む。【選択図】      図１
2015100109.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内のノードによって行われ、
前記ネットワーク内の他のノードからパケット受信に対する前記他のノードのメッセージを受信するステップと、
前記他のノードが要求するパケット数と前記ノードが要求するパケット数とを比較するステップと、
前記ノードが要求するパケット数が前記他のノードが要求するパケット数に比べて大きい場合、前記ノードのメッセージを送信するステップとを有し、
前記他のノードのメッセージは、前記他のノードが要求するパケット数を示す情報を含み、
前記ノードのメッセージは、前記ノードが要求するパケット数を示す情報を含むことを特徴とする通信方法。
【請求項２】
所定の期間の間、メッセージを待機するステップと、
前記所定の期間の間に前記他のノードのメッセージが受信されなければ、前記ノードのメッセージを送信するステップとをさらに有することを特徴とする請求項１に記載の通信方法。
【請求項３】
送信ノードから送信された１つ以上のパケットを受信するステップをさらに有し、
前記ノードが要求するパケット数は、前記受信された１つ以上のパケットに対する復号化を行うために追加的に要求される最小のパケット数であることを特徴とする請求項１に記載の通信方法。
【請求項４】
前記受信された１つ以上のパケットは、マルチキャストで前記送信ノードから前記ノードに送信されることを特徴とする請求項３に記載の通信方法。
【請求項５】
前記受信された１つ以上のパケットそれぞれは、同一の識別子を含むことを特徴とする請求項３に記載の通信方法。
【請求項６】
前記受信された１つ以上のパケットは、ネットワークコーディングによって符号化され、
前記ノードによって要求されるパケット数は、前記ネットワークコーディングによって符号化された１つ以上の受信されたパケットを復号化するために追加的に要求される最小個数のパケットであることを特徴とする請求項３に記載の通信方法。
【請求項７】
前記受信された１つ以上のパケットは、ネットワークコーディングによって符号化され、
前記ノードが要求するパケット数は、前記ネットワークコーディングによって符号化された前記受信された１つ以上のパケットをデコード化するために、追加的に要求される前記ネットワークコーディングによって符号化された他の１つ以上のパケット数であることを特徴とする請求項３に記載の通信方法。
【請求項８】
前記受信された１つ以上のパケットのそれぞれは、前記受信された１つ以上のパケットを復号化するために要求される最小のパケット数を示す情報を含むことを特徴とする請求項３に記載の通信方法。
【請求項９】
請求項１乃至請求項８のいずれか一項に記載の通信方法を実行するプログラムを収録したことを特徴とするコンピュータ読出可能記録媒体。
【請求項１０】
ネットワーク内のノードであって、
前記ネットワーク内の他のノードからパケット受信に対する前記他のノードのメッセージを受信する通信部と、
前記他のノードが要求するパケット数及び前記ノードが要求するパケット数を比較する処理部とを備え、
前記他のノードのメッセージは、前記他のノードが要求するパケット数を示す情報を含み、
前記ノードのメッセージは、前記ノードが要求するパケット数を示す情報を含み、
前記通信部は、前記ノードが要求するパケット数が前記他のノードが要求するパケット数に比べて大きい場合、前記ノードのメッセージを送信することを特徴とするノード。
【請求項１１】
ネットワークでノードによって行われる通信方法であって、
ネットワーク内の他のノードから前記フィードバックメッセージを受信するステップと、
前記他のノードが要求するパケット数と最大パケット数とを比較するステップと、
前記他のノードが要求するパケット数が前記最大パケット数に比べて大きい場合、１つ以上の第１パケットを送信するステップとを有し、
前記フィードバックメッセージは、前記他のノードが要求するパケット数を示す情報を含むことを特徴とする通信方法。
【請求項１２】
所定の期間の間、フィードバックメッセージを待機するステップと、
前記所定の期間の間に前記フィードバックメッセージが受信されなければ、１つ以上の第１パケットを送信するステップとをさらに有することを特徴とする請求項１１に記載の通信方法。
【請求項１３】
前記他のノードによって要求されるパケット数が前記最大パケット数の値よりも大きい場合、前記最大パケット数の値を前記他のノードが要求するパケット数の値に更新するステップをさらに有し、
前記１つ以上の第１パケット数は、前記更新する前の他のノードが要求するパケット数と前記最大パケット数との差であることを特徴とする請求項１１に記載の通信方法。
【請求項１４】
１つ以上の受信ノードに１つ以上の第２パケットを送信するステップをさらに有し、
前記他のノードは前記１つ以上の受信ノードの内の１つのノードであり、
前記他のノードが要求するパケット数は、前記１つ以上の第２パケットに加えて、前記１つ以上の第２パケットのうち前記他のノードが受信した１つ以上の第３パケットを復号化するために追加的に要求されるパケット数であることを特徴とする請求項１１に記載の通信方法。
【請求項１５】
前記１つ以上の第２パケットは、マルチキャストによって前記ノードから前記１つ以上の受信ノードに送信されることを特徴とする請求項１４に記載の通信方法。
【請求項１６】
前記１つ以上の第１パケットそれぞれ、及び前記１つ以上の第２パケットそれぞれは、同一の識別子を含むことを特徴とする請求項１４に記載の通信方法。
【請求項１７】
前記１つ以上の第１パケット及び前記１つ以上の第２パケットは、ネットワークコーディングによって符号化されることを特徴とする請求項１４に記載の通信方法。
【請求項１８】
前記１つ以上の第１パケットのそれぞれは、前記１つ以上の第１パケットを復号化するために要求される最小のパケット数を示す情報を含み、前記１つ以上の第２パケットのそれぞれは、前記１つ以上の第３パケットを復号化するために要求される最小のパケット数を示す情報を含むことを特徴とする請求項１４に記載の通信方法。
【請求項１９】
請求項１１乃至請求項１８のいずれか一項に記載の通信方法を実行するプログラムを収録したことを特徴とするコンピュータ読出可能記録媒体。
【請求項２０】
ネットワーク内のノードであって、
前記ネットワーク内の他のノードから、前記他のノードが要求するパケット数を示す情報を含むフィードバックメッセージを受信する通信部と、
前記他のノードが要求するパケット数と最大パケット数とを比較する処理部とを備え、
前記通信部は、前記他のノードが要求するパケット数が前記最大パケット数に比べて大きい場合、１つ以上の第１パケットを送信することを特徴とするノード。
【請求項２１】
ネットワーク内のノードであって、
前記ネットワークで他のノードによって送信された追加的なパケットをリクエストする任意の第１フィードバックメッセージを受信する通信部と、
前記通信部が前記ノードによって要求される追加的なパケット数よりも大きいか又は同一の追加的なパケット数を要求する任意の第１フィードバックメッセージを受信できない場合、前記ノードによって要求される追加的なパケット数の要求をする第２フィードバックメッセージを生成するプロセッサとを備え、
前記通信部は、第２フィードバックメッセージを送信することを特徴とするノード。
【請求項２２】
前記プロセッサは、所定の期間の間、前記第１フィードバックメッセージが受信されたか否かに基づいて第２フィードバックメッセージを生成し、
前記通信部は、前記所定の期間が経過した後に、前記第２フィードバックメッセージを送信することを特徴とする請求項２１に記載のノード。
【請求項２３】
前記通信部は、前記ネットワークで送信ノードから少なくとも１つの第１パケットを受信し、
前記ノードによって追加的に要求されるパケット数は、前記少なくとも１つの第１パケットを復号化するために要求される追加的なパケット数であることを特徴とする請求項２１に記載のノード。
【請求項２４】
前記少なくとも１つの第１パケットは、オリジナルパケットの集合をネットワークコーディングして取得した第１パケットの集合の一部であり、
前記第１パケットの集合での第１パケットの数は、前記オリジナルパケットの集合でのオリジナルパケットの数よりも大きく、
前記通信部によって受信された少なくとも１つの第１パケットのうち、第１パケットの数に加えて、前記少なくとも１つの第１パケットを復号化するために要求される追加的なパケット数は、第１パケットの集合での第１パケットの数よりも小さいことを特徴とする請求項２３に記載のノード。
【請求項２５】
ネットワーク内のノードであって、
前記ネットワークで他のノードによって送信された、追加パケットを要求する所定のフィードバックメッセージを受信する通信部と、
最大パケット数を超過する前記通信部によって受信されたフィードバックメッセージによってリクエストされた追加的なパケット数に応答して送信される追加的なパケット数を決定するプロセッサとを備え、
前記通信部は、前記決定された送信される追加的なパケット数を送信することを特徴とするノード。
【請求項２６】
前記プロセッサは、所定の期間の間、前記通信部によって受信された任意のフィードバックメッセージに基づいて送信される追加的なパケット数を決定し、
前記通信部は、前記所定の期間が経過した後に前記送信される追加的なパケット数を送信することを特徴とする請求項２５に記載のノード。
【請求項２７】
前記最大パケット数は、前記通信部によって受信された少なくとも１つのフィードバックメッセージに応答して、前記通信部によって以前に送信された追加的なパケットの総個数であることを特徴とする請求項２５に記載のノード。
【請求項２８】
前記通信部によって送信される、決定された追加的なパケット数を含むように前記最大パケット数を更新することを特徴とする請求項２５に記載のノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はノード及びその通信方法に関し、より詳細には、通信で発生した損失を復旧することができるノード及びその通信方法に関する。
【背景技術】
【０００２】
無線ネットワーキング環境で、マルチキャストは基本的に再送信を含まない。
したがって、マルチキャストでパケットが送信される場合にパケットの損失が発生することがあるという問題がある。
また、コンテンツを所有する送信ノードは、コンテンツを複数のパケットとして送信してもよい。
送信ノードがマルチキャストで複数のパケットを送信する場合、送信中にコンテンツを構成するパケットが損失することがあるという問題がある。
【０００３】
パケットの損失を克服するために数個の方法が挙げられる。
第１の方法として、マルチキャストでパケットを送信する送信ノードは、受信ノードがパケットを受信したか否かを確認する方式である。
パケットを受信した受信ノードは、パケットを受信したことを示すＡＣＫ（ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）メッセージを送信ノードに伝達する。
送信ノードは、ＡＣＫメッセージが送信されない場合、受信ノードへのパケット送信は失敗し、パケットが損失されたと判断する。送信ノードは損失されたパケットを再送信することによって、受信ノードが損失されたパケットを受信可能にする。
【０００４】
第２の方法として、受信ノードがパケットを受信していないことを送信ノードに知らせる方式である。
受信ノードは、ＡＣＫメッセージの代わりにＮＡＣＫ（Ｎｅｇａｔｉｖｅ  ＡＣＫ）メッセージを送信する。
ＮＡＣＫメッセージは、受信ノードがパケットを受信できなかったことを示すメッセージであってもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は上記従来の通信で発生した損失を復旧する方法における問題点に鑑みてなされたものであって、本発明の目的は、マルチキャストによってネットワークコーディングされたフレームが送信されるとき、受信ノード側ではフレームの損失による追加的なフレームのリクエストを直ちに行うことなく、他の受信ノードのリクエストを受信及び分析した後、追加的なフレームをリクエストするか否かを決定することができるノード及びその通信方法並びにコンピュータ読出可能記録媒体を提供することにある。
【０００６】
また、マルチキャストによってネットワークコーディングされたフレームが送信されるとき、送信ノード側では、１つの受信ノードのリクエストに対して全て応答することなく、可能なリクエストを集合して最も多いフレームを要求するリクエストに対してマルチキャストで応答することができるノード及びその通信方法並びにコンピュータ読出可能記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するためになされた本発明による通信方法は、ネットワーク内のノードによって行われ、前記ネットワーク内の他のノードからパケット受信に対する前記他のノードのメッセージを受信するステップと、前記他のノードが要求するパケット数と前記ノードが要求するパケット数とを比較するステップと、前記ノードが要求するパケット数が前記他のノードが要求するパケット数に比べて大きい場合、前記ノードのメッセージを送信するステップとを有し、前記他のノードのメッセージは、前記他のノードが要求するパケット数を示す情報を含み、前記ノードのメッセージは、前記ノードが要求するパケット数を示す情報を含むことを特徴とする。
【０００８】
所定の期間の間、メッセージを待機するステップと、前記所定の期間の間に前記他のノードのメッセージが受信されなければ、前記ノードのメッセージを送信するステップとをさらに有することが好ましい。
送信ノードから送信された１つ以上のパケットを受信するステップをさらに有し、前記ノードが要求するパケット数は、前記受信された１つ以上のパケットに対する復号化を行うために追加的に要求される最小のパケット数であることが好ましい。
前記受信された１つ以上のパケットは、マルチキャストで前記送信ノードから前記ノードに送信されることが好ましい。
前記受信された１つ以上のパケットそれぞれは、同一の識別子を含むことが好ましい。
前記受信された１つ以上のパケットは、ネットワークコーディングによって符号化され、前記ノードによって要求されるパケット数は、前記ネットワークコーディングによって符号化された１つ以上の受信された第１パケットを復号化するために追加的に要求される最小個数のパケットであることが好ましい。
前記受信された１つ以上のパケットは、ネットワークコーディングによって符号化され、前記ノードが要求するパケット数は、前記ネットワークコーディングによって符号化された前記受信された１つ以上のパケットをデコード化するために、追加的に要求される前記ネットワークコーディングによって符号化された他の１つ以上のパケット数であることが好ましい。
前記受信された１つ以上のパケットのそれぞれは、前記受信された１つ以上のパケットを復号化するために要求される最小のパケット数を示す情報を含むことが好ましい。
【０００９】
上記目的を達成するためになされた本発明によるコンピュータ読出可能記録媒体は、上記通信方法を実行するプログラムを収録したことを特徴とする。
【００１０】
上記目的を達成するためになされた本発明によるノードは、ネットワーク内のノードであって、前記ネットワーク内の他のノードからパケット受信に対する前記他のノードのメッセージを受信する通信部と、前記他のノードが要求するパケット数及び前記ノードが要求するパケット数を比較する処理部とを備え、前記他のノードのメッセージは、前記他のノードが要求するパケット数を示す情報を含み、前記ノードのメッセージは、前記ノードが要求するパケット数を示す情報を含み、前記通信部は、前記ノードが要求するパケット数が前記他のノードが要求するパケット数に比べて大きい場合、前記ノードのメッセージを送信することを特徴とする。
【００１１】
また、上記目的を達成するためになされた本発明による通信方法は、ネットワークでノードによって行われる通信方法であって、ネットワーク内の他のノードから前記フィードバックメッセージを受信するステップと、前記他のノードが要求するパケット数と最大パケット数とを比較するステップと、前記他のノードが要求するパケット数が前記最大パケット数に比べて大きい場合、１つ以上の第１パケットを送信するステップとを有し、前記フィードバックメッセージは、前記他のノードが要求するパケット数を示す情報を含むことを特徴とする。
【００１２】
所定の期間の間、フィードバックメッセージを待機するステップと、前記所定の期間の間に前記フィードバックメッセージが受信されなければ、１つ以上の第１パケットを送信するステップとをさらに有することが好ましい。
前記他のノードによって要求されるパケット数が前記最大パケット数の値よりも大きい場合、前記最大パケット数の値を前記他のノードが要求するパケット数の値に更新するステップをさらに有し、前記１つ以上の第１パケット数は、前記更新する前の他のノードが要求するパケット数と前記最大パケット数との差であることが好ましい。
１つ以上の受信ノードに１つ以上の第２パケットを送信するステップをさらに有し、前記他のノードは前記１つ以上の受信ノードの内の１つのノードであり、前記他のノードが要求するパケット数は、前記１つ以上の第２パケットに加えて、前記１つ以上の第２パケットのうち前記他のノードが受信した１つ以上の第３パケットを復号化するために追加的に要求されるパケット数であることが好ましい。
前記１つ以上の第２パケットは、マルチキャストによって前記ノードから前記１つ以上の受信ノードに送信されることが好ましい。
前記１つ以上の第１パケットそれぞれ、及び前記１つ以上の第２パケットそれぞれは、同一の識別子を含むことが好ましい。
前記１つ以上の第１パケット及び前記１つ以上の第２パケットは、ネットワークコーディングによって符号化されることが好ましい。
前記１つ以上の第１パケットのそれぞれは、前記１つ以上の第１パケットを復号化するために要求される最小のパケット数を示す情報を含み、前記１つ以上の第２パケットのそれぞれは、前記１つ以上の第３パケットを復号化するために要求される最小のパケット数を示す情報を含むことが好ましい。
【００１３】
また、上記目的を達成するためになされた本発明によるコンピュータ読出可能記録媒体は、上記通信方法を実行するプログラムを収録したことを特徴とする。
【００１４】
また、上記目的を達成するためになされた本発明によるノードは、ネットワーク内のノードであって、前記ネットワーク内の他のノードから、前記他のノードが要求するパケット数を示す情報を含むフィードバックメッセージを受信する通信部と、前記他のノードが要求するパケット数と最大パケット数とを比較する処理部とを備え、前記通信部は、前記他のノードが要求するパケット数が前記最大パケット数に比べて大きい場合、１つ以上の第１パケットを送信することを特徴とする。
【００１５】
また、上記目的を達成するためになされた本発明によるノードは、ネットワーク内のノードであって、前記ネットワークで他のノードによって送信された追加的なパケットをリクエストする任意の第１フィードバックメッセージを受信する通信部と、前記通信部が前記ノードによって要求される追加的なパケット数よりも大きいか又は同一の追加的なパケット数を要求する任意の第１フィードバックメッセージを受信できない場合、前記ノードによって要求される追加的なパケット数の要求をする第２フィードバックメッセージを生成するプロセッサとを備え、前記通信部は、第２フィードバックメッセージを送信することを特徴とする。
【００１６】
前記プロセッサは、所定の期間の間、前記第１フィードバックメッセージが受信されたか否かに基づいて第２フィードバックメッセージを生成し、前記通信部は、前記所定の期間が経過した後に、前記第２フィードバックメッセージを送信することが好ましい。
前記通信部は、前記ネットワークで送信ノードから少なくとも１つの第１パケットを受信し、前記ノードによって追加的に要求されるパケット数は、前記少なくとも１つの第１パケットを復号化するために要求される追加的なパケット数であることが好ましい。
前記少なくとも１つの第１パケットは、オリジナルパケットの集合をネットワークコーディングして取得した第１パケットの集合の一部であり、前記第１パケットの集合での第１パケットの数は、前記オリジナルパケットの集合でのオリジナルパケットの数よりも大きく、前記通信部によって受信された少なくとも１つの第１パケットのうち、第１パケットの数に加えて、前記少なくとも１つの第１パケットを復号化するために要求される追加的なパケット数は、第１パケットの集合での第１パケットの数よりも小さいことが好ましい。
【００１７】
また、上記目的を達成するためになされた本発明によるノードは、ネットワーク内のノードであって、前記ネットワークで他のノードによって送信された、追加パケットを要求する所定のフィードバックメッセージを受信する通信部と、最大パケット数を超過する前記通信部によって受信されたフィードバックメッセージによってリクエストされた追加的なパケット数に応答して送信される追加的なパケット数を決定するプロセッサとを備え、前記通信部は、前記決定された送信される追加的なパケット数を送信することを特徴とする。
【００１８】
前記プロセッサは、所定の期間の間、前記通信部によって受信された任意のフィードバックメッセージに基づいて送信される追加的なパケット数を決定し、前記通信部は、前記所定の期間が経過した後に前記送信される追加的なパケット数を送信することが好ましい。
前記最大パケット数は、前記通信部によって受信された少なくとも１つのフィードバックメッセージに応答して、前記通信部によって以前に送信された追加的なパケットの総個数であることが好ましい。
前記通信部によって送信される、決定された追加的なパケット数を含むように前記最大パケット数を更新することが好ましい。
【発明の効果】
【００１９】
本発明に係るノード及びその通信方法並びにコンピュータ読出可能記録媒体によれば、マルチキャストによってネットワークコーディングされたフレームが送信されるとき、受信ノード側ではフレームの損失による追加的なフレームのリクエストを直ちに行うことなく、他の受信ノードのリクエストを受信及び分析した後、追加的なフレームをリクエストするか否かを決定することができるという効果がある。
【００２０】
また、マルチキャストによってネットワークコーディングされたフレームが送信されるとき、送信ノード側では、１つの受信ノードのリクエストに対して全て応答することなく、可能なリクエストを集合して最も多いフレームを要求するリクエストに対してマルチキャストで応答することができるという効果がある。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係るパケットの符号化及び復号化を説明するための図である。
【図２】本発明の一実施形態に係るパケット損失に対する復旧を説明するための図である。
【図３】本発明の一実施形態に係るフレーム損失に対する復旧を説明するための図である。
【図４】本発明の一実施形態に係る受信ノードのコンテンツキャッシュを説明するための図である。
【図５】本発明の一実施形態に係るコンテンツのキャッシュを用いるパケットの復号化を説明するための図である。
【図６】本発明の一実施形態に係る集合された損失情報メッセージを示す図である。
【図７】本発明の一実施形態に係るノードの構成を示すブロック図である。
【図８】本発明の一実施形態に係る受信ノードの通信方法を説明するためのフローチャートである。
【図９】本発明の一実施形態に係る送信ノードの通信方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００２２】
次に、本発明に係るノード及びその通信方法並びにコンピュータ読出可能記録媒体を実施するための形態の具体例を図面を参照しながら説明する。
各図面に提示された同一の参照符号は同一の部材を示す。
【００２３】
以下の実施形態の記載で、「フレーム」は「パケット」として送信されてもよい。したがって、「フレーム」に対する説明の一部は「パケット」にも適用されてもよい。
例えば、「フレームの送信」及び「パケットの送信」は互いに代替されてもよく、「フレームの損失」及び「パケットの損失」は互いに代替されてもよい。「コード化されたパケット」は、「コード化されたフレーム」または「コード化されたフレームのデータを含むパケット」を意味する。
【００２４】
図１は、本発明の一実施形態に係るパケットの符号化及び復号化を説明するための図である。
オリジナルコンテンツ１１０を所有する送信ノードは、オリジナルコンテンツ１１０をリクエストする受信ノードにコンテンツを送信する。送信ノードはコンテンツソースノードであってもよい。
【００２５】
図１に示すオリジナルコンテンツ１１０は、１つ以上のオリジナルフレームから構成され得る。オリジナルフレームは図１において１つの四角形である。
オリジナルコンテンツ１１０は、１つ以上のオリジナルフレームを含んでもよい。図１に示すコンテンツは、４個のオリジナルフレームを含む。
【００２６】
送信ノードは、オリジナルコンテンツ１１０に符号化を適用することによって、コード化（ｃｏｄｅ）されたコンテンツを生成する。
コード化されたコンテンツは、１つ以上のコード化されたフレーム１２０を含んでもよい。
符号化は、ネットワークコーディングであってもよい。ネットワークコーディングは、行列ネットワークコーディング（Ｍａｔｒｉｘ  Ｎｅｔｗｏｒｋｉｎｇ  Ｃｏｄｉｎｇ；ＭＮＣ）であってもよい。
【００２７】
ＭＮＣは、オリジナル入力情報及び行列情報間の線形結合を行うことによって新しい出力情報を生成するネットワークコーディング方式である。
入力情報はオリジナルフレームであり、出力情報はコード化されたフレームである。また、フレームがパケットとして送信される場合、入力情報はオリジナルパケットであり、出力情報はコード化されたパケットである。
【００２８】
生成されたコード化されたフレーム数は、オリジナルフレーム数以上であってもよい。
言い換えれば、ネットワークコーディングによってオリジナルフレームに比べて多い数のコード化されたフレームが生成されてもよい。
【００２９】
送信ノードは、線形結合の実行によってオリジナルフレームよりも多いコード化されたフレームを生成してもよい。
送信ノードは、コード化されたフレームを受信ノードに送信する。
【００３０】
受信ノードは、受信したコード化されたフレーム１２０を用いてコンテンツを生成する。
例えば、図１に示す受信ノードは、受信したコード化されたフレーム１２０を用いてオリジナルコンテンツ１３０を復元する。
受信ノードは、コード化されたフレームに対する復号化を行うことによって、オリジナルコンテンツ１３０を復元する。
【００３１】
送信及び生成は、ブロック単位からなる。
コンテンツは、１つ以上のブロックから構成されてもよい。言い換えれば、コンテンツは、１つ以上のブロックを含んでもよい。
上述したオリジナルフレームは、コンテンツの１つのブロックのフレームであってもよい。
オリジナルコンテンツ１１０及び復元されたオリジナルコンテンツ１３０は、コンテンツの１つのブロックを示し得る。コンテンツ全体のオリジナルフレームは、ブロックごとに１つ以上のオリジナルフレームに区分してもよい。
【００３２】
また、１つ以上のコード化されたフレームもコンテンツの１つのブロックに対応する。
１つ以上のコード化されたフレームは、コンテンツの１つのブロックのフレームが符号化されることによって生成されたフレームである。
【００３３】
コード化されたフレームは、ブロック単位の識別子を有してもよい。
識別子は、ブロック単位で付与されるブロック識別子であってもよい。
識別子は、コード化されたフレームが属するブロックを識別するために用いられるデータであってもよい。例えば、ネットワークコーディングによってコード化されたフレームが生成されれば、生成されたフレームは、生成されたフレームが属するブロックを識別できる識別子を含んでもよい。
【００３４】
言い換えれば、同じブロックのコード化されたフレームの識別子は同一であってもよい。
１つのブロックのコード化されたフレームの共通した識別子は、対応するブロックを示すデータを含んでもよい。
対応するブロックを示すデータは、ブロックの順番であってもよい。
【００３５】
一般に、ブロックを示すデータは順次増加する。
または、ブロックを示すデータは順次減少してもよい。例えば、特定ブロックの識別子は、特定ブロックのコンテンツ内での順序を示す。
【００３６】
受信ノードは、受信したフレームのうち同一の識別子を有するフレームを識別子が示すブロックに対応するコード化されたフレームとして識別する。
受信ノードは、ブロック単位でコード化されたフレームの内の最小に要求される個数のコード化されたフレームを受信してもよく、受信したコード化されたフレームを用いてブロックを構成するオリジナルフレームを復元する。前記最小に要求される個数はオリジナルフレーム数以上であってもよい。
【００３７】
無線ネットワーク内のノード間におけるデータ送信するために、パケットが送信及び受信される。
パケットは、コンテンツのフレームを含んでもよい。
コンテンツのフレームは、パケットとしてノード間で送信される。
【００３８】
パケットがユニキャスト（ｕｎｉｃａｓｔ）又はマルチキャストによって送信されるとき、パケットは送信中に損失することがある。
コンテンツのフレームは、送信中に損失することがある。
以下の実施形態で、パケットの損失に対する早い復旧を提供する方法について説明する。
【００３９】
例えば、パケットの損失に対する復旧は、新しい識別子に基づいたブロックごとの再送信リクエストによって行われる。
フレームが損失されたと判断した受信ノードは、送信ノードに他の対応するフレームの送信をリクエストする。
ここで、リクエストされる対応するフレームは、損失したパケットのフレームと同一の識別子を有するフレームである。パケットまたはフレーム再送信リクエストは、フレームの識別子に基づく。
【００４０】
識別子は、ネットワークコーディングで用いられる識別子又はＭＮＣで用いられる識別子であってもよい。
再送信リクエストが識別子に基づくため、オリジナルフレームを送信した送信ノードの他にも、コンテンツ又は対応するフレームを有する無線ネットワーク内の他の受信ノードについても対応するフレームを送信してもよい。
【００４１】
パケットを損失した受信ノードが複数であるか、無線ネットワークがマルチホップ（ｍｕｌｔｉ−Ｈｏｐ）無線ネットワークである場合、受信ノードの損失したパケットは互いに異なり得る。
例えば、受信ノードの損失したパケットのタイプは互いに異なってもよく、受信ノードのパケットの損失率は互いに異なってもよい。このような場合、受信ノードのそれぞれが識別子に基づいた再送信をリクエストすると、ソースノードだけではなく、周辺の受信ノードからもフレームが提供され得る。受信ノード間の相互補完が作用する。
【００４２】
本実施形態では、様々な識別子が活用され得る。
例えば、識別子は、無線ネットワークのサービスに対するデータを含んでもよい。
無線ネットワークのサービスに対するデータは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ポート又はＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）ポートを示すデータを含んでもよい。
【００４３】
無線ネットワークでインターネットプロトコル（Ｉｎｔｅｒ  Ｐｒｏｔｏｃｏｌ；ＩＰ）に基づいた通信が行われる場合、識別子はソースノードのアドレス及び／又はポート番号を含んでもよく、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス及びポート番号を含んでもよい。
無線ネットワークでコンテンツの名前ベース（ｂａｓｅ  ｏｎ  ｎａｍｅ）のネットワークプロトコルが用いられる場合、識別子はコンテンツの名前を含んでもよい。
以下の実施形態は、様々な識別子ベースネットワークプロトコルに適用され得る。
【００４４】
図２は、本発明の一実施形態に係るパケット損失に対する復旧を説明するための図である。
コンテンツブロックは、１つ以上のオリジナルフレームを含んでもよい。
図２に示すオリジナルブロック２１０は、１０個のオリジナルフレーム２２０を含んで示す。オリジナルフレーム２２０は、「ｆ１」〜「ｆ１０」で表示する。
【００４５】
送信ノードは、オリジナルフレーム２２０にネットワークコーディング（ＭＮＣ）を適用することによってオリジナルフレーム２２０よりも多いコード化されたフレームを生成する。
図２に示す送信ノードは、１０個のオリジナルフレーム２２０にネットワークコーディング（ＭＮＣ）を適用することによって、２０個のコード化されたフレーム２３０を生成するものとして示している。図２に示すコード化されたフレーム２３０は、「＃ｆ１」〜「＃ｆ２０」で示す。
【００４６】
コード化されたフレーム２３０は、送信用コード化されたフレーム及び格納用コード化されたフレームに分類される。
または、コード化されたフレーム２３０は送信用コード化されたフレーム及び格納用コード化されたフレームを含んでもよい。
図２に示す送信用コード化されたフレームは「＃ｆ１」〜「＃ｆ１５」で示し、格納用コード化されたフレームは「＃ｆ１６」〜「＃ｆ２０」で示す。図２に示す実施形態のように、送信用コード化されたフレーム及び格納用コード化されたフレームは互いに異なってもよい。
【００４７】
送信ノードは、コード化されたフレーム２３０を受信ノードに送信する。
コード化されたフレーム２３０のそれぞれはパケットとして送信される。
コード化されたフレーム２３０の生成及び送信は、ブロック単位からなり得る。受信ノードに送信するフレームは、コード化されたフレーム２３０の内の送信用コード化されたフレームに制限してもよい。
【００４８】
無線ネットワークを介してコード化されたフレーム２３０が送信されている間で、コード化されたフレーム２３０の一部又は全てが受信ノードに送信されずに損失してしまうことがある。
図２に示すように、２０個のコード化されたフレーム２３０のうち、最初のコード化されたフレーム「＃ｆ１」、２番目のコード化されたフレーム「＃ｆ２」、４番目のコード化されたフレーム「＃ｆ４」、５番目のコード化されたフレーム「＃ｆ５」、及び１５番目のコード化されたフレーム「＃ｆ１５」のみが受信ノードに受信され、「Ｘ」で表示した残りのフレームは損失したものとして示している。
【００４９】
ネットワークコーディングの特性に応じて、受信ノードはコード化されたフレーム２３０の全てを受信しなくても、コード化されたフレーム２３０の内の所定の一部のみを用いてオリジナルフレーム２２０の全て又はオリジナルフレーム２２０のブロックを復元してもよい。
例えば、図２に示す受信ノードは、コード化されたフレーム２３０のうち１０個のフレームのみを用いて１０個のオリジナルフレーム２２０を復元してもよい。
【００５０】
言い換えれば、図２に示す受信ノードがオリジナルフレーム２２０を復元するためには、コード化されたフレーム２３０のうち少なくとも１０個のフレームが求められる。
オリジナルフレーム２２０を復元するために要求される最小限のコード化されたフレーム２３０の数は「１０」である。
受信ノードは、各ブロック当たり１０個のコード化されたフレーム２３０を受信すると、受信したコード化されたフレーム２４０を用いることによって復元されたブロック２５０を生成する。
【００５１】
マルチキャストによりパケットが送信されるとき、パケット損失に対する復旧が行わなければ、送信の信頼性（ｒｅｌｉａｂｉｌｉｔｙ）が保障されない。
前述したように、ネットワークコーディングを用いることによってパケット送信の成功率が向上する。
【００５２】
無線ネットワーク内ではパケットの損失が発生することがある。
したがって、受信ノードがオリジナルフレームの復元のために要求される最小限の個数のコード化されたフレームを受信できない場合もある。
図２に示す受信ノードは、２０個のコード化されたフレーム２３０のうち５個のみを受信するものとして示している。言い換えれば、受信されたフレーム２４０は、「＃ｆ１」、「＃ｆ２」、「＃ｆ４」、「＃ｆ５」及び「＃ｆ１５」を含む。
【００５３】
受信ノードがオリジナルフレームを復元するために要求される最小限の個数のコード化されたフレームを受信できない場合、受信ノードはブロック又はオリジナルフレームを復元することができない。
ブロック又はオリジナルフレームを復元するために、受信ノードは追加的なコード化されたフレームを取得しなければならない場合がある。
追加的なコード化されたフレームの取得のために、受信ノードは送信ノードにコード化されたフレームの再送信をリクエストする。
【００５４】
再送信をリクエストするために、受信ノードは損失情報を示す損失情報メッセージを送信ノードに送信する。
「再送信リクエスト」は、「再送信リクエストのための損失情報メッセージの送信」に代替されてもよい。
損失情報メッセージは、コード化されたフレームの送信に対する受信ノードのフィードバックであってもよい。
【００５５】
損失情報メッセージは、受信ノードが実際に受信したコード化されたフレーム数を含んでもよい。
損失情報メッセージは、受信ノードがブロック又はオリジナルフレームを復元するために追加的に要求されるコード化されたフレーム数を含んでもよい。
または、損失情報メッセージは、受信ノードが損失したフレーム数を含んでもよい。
【００５６】
損失情報メッセージは、コード化されたフレームのブロックの識別子を含んでもよい。
識別子によって送信ノードは、損失情報メッセージの損失情報がどのようなブロックのコード化されたフレームに関する情報であるかを識別する。
図２に示す損失情報メッセージ２６０は、ブロックの識別子及び受信したコード化されたフレーム２４０の個数を含むものとして示している。
【００５７】
一般的なＩＰ又はＭＡＣにおいて、フレーム損失を復旧するためには、損失したフレームが再び送信されなければならない。
一方、ネットワークコーディングによって生成されたコード化されたフレームの損失を復旧するためには、損失したコード化されたフレームそのものではない他のコード化されたフレームを用いてもよい。
受信ノードは、すでに送信されたコード化されたフレーム及びさらに送信されたコード化されたフレームを用いることによって、ブロック又はオリジナルフレームを復元してもよい。
言い換えれば、他のコード化されたフレームが損失したコード化されたフレームに代替する。この代替によって、再送信のメカニズムが簡単になり、コード化されたフレームに対する再送信リクエストは減少する。
【００５８】
送信ノードは、再送信リクエストに対して応答する。
応答は、追加的なコード化されたフレームの送信であってもよい。
図２に示す応答（符号２７０）は、（ｎ＋α）個の追加的なコード化されたフレームを含むものとして示している。
前述したように、損失情報メッセージ２６０は受信ノードがブロック又はオリジナルフレーム２２０を復元するために追加的に要求されるコード化されたフレーム数を含んでもよい。
【００５９】
追加的なコード化されたフレームの送信にも損失が発生することがある。
送信ノードは、追加的に要求されるコード化されたフレーム数よりも多い個数のコード化されたフレームを受信ノードに送信してもよい。または、送信ノードは、損失したフレーム数よりも多い個数の追加的なコード化されたフレームを受信ノードに送信してもよい。
応答（符号２７０）において、「ｎ」はブロック又はオリジナルフレーム２２０を復元するために追加的に要求されるコード化されたフレーム数を示す。
「α」は、損失を考慮して送信ノードが追加したコード化されたフレーム数を示す。
【００６０】
再送信リクエストに対する応答のために、送信ノードは、コード化されたフレームを送信後に格納してもよい。
上記格納は一時的な格納であってもよい。送信ノードは、コード化されたフレームの全てを一時的に格納してもよく、格納されたコード化されたフレームを時間の経過に応じて減少させてもよい。
例えば、送信ノードは、受信ノードから損失情報メッセージを受信した後には最小のコード化されたフレームのみを格納してもよい。または、送信ノードは、受信ノードから損失情報メッセージを受信するものと予測される時点では最小のコード化されたフレームのみを格納してもよい。
【００６１】
再送信に対する応答において、受信ノードがすでに取得したコード化されたフレームは再送信の対象から除外される。
受信ノードがすでに取得したコード化されたフレームが再送信されても、ブロックの復元には影響を与えないためである。
言い換えれば、成功裏に送信されたコード化されたフレームが再送信されることを防止しなければならない。
【００６２】
送信ノードは、図２に示すように、コード化されたフレーム２３０を送信用コード化されたフレーム及び格納用コード化されたフレームに分類することによって、すでに送信されたコード化されたフレーム２３０が再送信されることを防止することができる。
送信ノードは、初めてコード化されたフレーム２３０を送信するときには送信用コード化されたフレームのみを受信ノードに送信し、再送信リクエストに応答するときには格納用コード化されたフレームを受信ノードに送信する。
したがって、再送信リクエスト時に追加的に送信されるコード化されたフレームと受信ノードがすでに受信したコード化されたフレームとが互いに異なることが保障される。
【００６３】
複数のコード化されたフレームが損失した場合のように、格納用コード化されたフレームだけでは追加的に要求されるコード化されたフレームを全て提供するには不充分である。
送信ノードは、オリジナルフレームにネットワークコーディングを適用することによって新しいコード化されたフレームを生成してもよい。
新しいコード化されたフレームは、従来のコード化されたフレームと互いに異なってもよい。図２に示すように、新しいコード化されたフレーム２３５として、コード化されたフレーム「＊ｆ１」〜「＊ｆ１５」を示す。
【００６４】
新しいコード化されたフレーム２３５は、キャッシュ用の臨時フレームであってもよい。
送信ノードは、新しいコード化されたフレーム２３５を再送信リクエストの応答のために送信される追加的なコード化されたフレーム２３０として用いてもよい。
【００６５】
前述したように、コード化されたフレーム２３０の生成及び送信は、ブロック単位からなる。
コンテンツが含む１つ以上のブロックに対して、送信ノードは１つ以上のブロックそれぞれのコード化されたフレーム２３０を格納する。
【００６６】
送信ノードは、１つ以上のブロックの各ブロックに対して、互いに異なる個数のコード化されたフレーム２３０を格納してもよい。
例えば、送信ノードは、より後で送信されたブロックに対して、さらに多い個数のコード化されたフレーム２３０を格納してもよい。
【００６７】
送信ノードは、１つ以上のブロックの各ブロックに対して最小限のコード化されたフレームのみを格納してもよい。
最小限のフレームのみを格納することによって、送信ノードは、最大限多くのブロックのコード化されたフレームを格納してもよく、最大限多くのブロックに対する損失を復旧することができる。
【００６８】
送信ノードは、パケットの損失率を考慮してコード化されたフレーム２３０のうち一部のみを受信ノードに送信してもよい。
例えば、平均的に１２個のパケットのうち２個のパケットが送信中に損失するとすれば、送信ノードは２０個のコード化されたフレームのうち１２個のみを受信ノードに送信し、残りの８個のコード化されたフレームを再送信リクエストに対する応答のために格納する。
【００６９】
言い換えれば、格納されたコード化されたフレームは、損失を復旧するために用いる。
又は、送信ノードは、２０個のコード化されたフレームのうち、１５個のみを受信ノードに送信し、残りの５個のコード化されたフレームは格納してもよい。
損失率が６０％である場合、受信ノードは６個のコード化されたフレームのみを受信し。送信ノードは、再送信リクエストに対する応答として、格納された残りの５個のコード化されたフレームを受信ノードに送信する。
【００７０】
送信ノードは、パケットの損失率に比べて多い個数のコード化されたフレームを格納してもよい。
すなわち、パケットの損失率が大きいほど、送信ノードが格納するコード化されたフレーム数は大きくなる。
【００７１】
再送信リクエストに対する応答は、遅延（ｄｅｌａｙ）してもよい。
送信ノードは、再送信リクエストに対して直ちに応答できないことがある。
送信ノードは、再送信リクエストに対する応答を所定の条件に応じて遅延させてもよい。受信ノードが１つ以上である場合、１つ以上の受信ノードから再送信リクエストが送信される。応答を遅延することによって、複数の再送信リクエストに対する集合が形成され得る。
また、送信ノードは、１つ以上の受信ノードから再送信リクエストが送信されるとき、再送信の後に一定時間の間は重複送信を行わない。
【００７２】
上述した実施形態において、パケットの損失に対する復旧のためにホップ・バイ・ホップ（ｈｏｐ−ｂｙ−ｈｏｐ）又は先端から先端への（ｅｎｄ−ｔｏ−ｅｎｄ）の再送信を使用しなくてもよい。
送信ノード又は受信ノードは、コード化されたフレームの識別子を活用することによって、パケット損失の復旧に要求する作業を行うことができる。
【００７３】
図３は、本発明の一実施形態に係るフレーム損失に対する復旧を説明するための図である。
ネックワークは、１つ以上のノードを含んでもよい。
パケットを受信する受信ノードは１つ以上であってもよい。言い換えれば、送信ノードは、コンテンツブロックのコード化されたフレームを１つ以上の受信ノードに送信してもよい。例えば、マルチキャストの対象である受信ノードは複数であってもよい。
【００７４】
図３に示すコンテンツソース３１０は、図１及び図２を参照して上述した送信ノードに対応する。
第１コンテンツ要請者３２０及び第２コンテンツ要請者３３０は、１つ以上の受信ノードに対応する。
１つ以上の受信ノードのそれぞれは、図１及び図２を参照して上述した受信ノードに対応する。
【００７５】
受信ノードが複数である場合、送信ノードは１つのブロックに対して複数の受信ノードから重複する損失情報メッセージを受信してもよい。
送信ノードは、複数の受信ノードから損失情報メッセージを受信してもよい。
図３に示すコンテンツソース３１０は、第１コンテンツ要請者３２０及び第２コンテンツ要請者３３０のそれぞれから損失情報メッセージを受信する。
【００７６】
受信ノードは、コード化されたフレーム又はパケットの損失を検出すると、送信ノードにパケット又はフレームの再送信をリクエストする。
受信ノードは、再送信リクエスト、例えば、損失情報メッセージを送信ノードに送信する。
上記送信は、マルチキャスト又はユニキャストを用いて行われ得る。再送信リクエストがマルチキャストによって送信される場合、送信ノードだけではなく、他の受信ノード、受信ノードの隣接ノードなどのようなネットワーク内の他のノードも再送信リクエストを受信する。
再送信リクエストがユニキャストを用いて送信される場合、他のノードもオーバヒアリング（ｏｖｅｒｈｅａｒｉｎｇ）によって再送信リクエストを受信する。
言い換えれば、他のノードは、再送信リクエストの指定された受信者ではなくても、ネットワーク内における送受信に対するオーバヒアリングを行うことによって再送信リクエストを受信してもよい。
【００７７】
再送信リクエストを受信した他のノードも、再送信リクエストに対する応答を行ってもよい。
言い換えれば、他のノードも追加的なコード化されたフレームを受信ノードに送信してもよい。
送信ノード及び他のノードがそれぞれ異なる行列を用いるネットワークコーディングによって生成されたコード化されたフレームを送信すると、受信ノードのオリジナルフレームの復元成功率は向上する。
【００７８】
図３において、受信ノードの第１コンテンツ要請者３２０のキャッシュ（ｃａｃｈｅ）内にはオリジナルフレームを復元するために要求されるコード化されたフレーム数に比べて、単に半分のみが格納される。
図３で、オリジナルフレームを復元するために要求されるコード化されたフレーム数は「２」であり、第１コンテンツ要請者３２０が格納するコード化されたフレーム数は「１」である。
受信ノードの第１コンテンツ要請者３２０は、送信ノードのコンテンツソース３１０に再送信リクエストを送信する。マルチキャスト又はオーバヒアリングによって再送信リクエストを受信した第２コンテンツ要請者３３０は、損失の復旧のために要求されるコード化されたフレームを第１コンテンツ要請者３２０に送信してもよい。
図３に示す損失復旧フレームは、他の受信ノードの第２コンテンツ要請者３３０から再送信リクエストを送信した第１コンテンツ要請者３２０に送信されるコード化されたフレームを示す。
【００７９】
送信ノードは、再送信リクエストに対する応答を直ちに実行しないことによって、ネットワーク内で送信されるパケット又はコード化されたフレーム数を減少させ得る。
例えば、送信ノードは、再送信リクエストが所定の時間内に送信された場合、重複する再送信を防止するために再送信リクエストに対して直ちに応答することなく、応答を所定の構成によって遅延させる。
【００８０】
受信した第１損失情報メッセージが示す損失したコード化されたフレーム数が以前に受信した第２損失情報メッセージが示す損失したコード化されたフレーム数よりも少なければ、送信ノードは、第１損失情報メッセージの再送信リクエストを無視してもよい。
受信した第１損失情報メッセージが示す損失したコード化されたフレーム数が以前に受信した第２損失情報メッセージが示す損失したコード化されたフレーム数よりも多ければ、送信ノードは、追加的なコード化されたフレームを送信してもよい。
【００８１】
ここで、送信する追加的なコード化されたフレーム数は、第１損失情報メッセージが示す追加的に要求されるコード化されたフレーム数から、第２損失情報メッセージが示す追加的に要求されるコード化されたフレーム数を引いた値であってもよい。
言い換えれば、送信ノードは、第１損失メッセージに対応して送信するコード化されたフレーム数を決定することにおいて、以前に受信した第２損失メッセージに対応してすでに送信されたコード化されたフレーム数を考慮する。送信ノードは、今回の損失情報メッセージでリクエストされたコード化されたフレーム数から、以前の損失情報メッセージに対応して送信されたコード化されたフレーム数を引いた値を、送信するコード化されたフレーム数として決定してもよい。
【００８２】
上述した応答遅延を通したコード化されたフレームの重複送信の防止は、所定の時間内で発生する再送信リクエストに対して行われる。
所定の時間は、ルーティングトリップ（ｔｒｉｐ）時間に基づいた重複送信を防止するための時間であってもよい。
【００８３】
送信ノードは、所定の時間以後に受信した再送信リクエストに対しても応答してもよい。
例えば、受信ノードがマルチキャストトラフィックを持続して受信できない場合についても、送信ノードは、損失したコード化されたフレームの復旧を提供することができる。
応答の遅延は、アプリケーション、コンテンツ、オリジナルフレーム、及びコード化されたフレームのタイプ、又は属性に応じて相違して行われてもよい。
【００８４】
例えば、コンテンツがファイルの場合、ネットワーク内ではファイルを送信するためのマルチキャストが行われてもよい。
ネットワーク内でファイルを送信するためのマルチキャストが行われる場合、送信ノードは、ファイルの全体又はファイル全てのブロックの送信が完了した後、再送信リクエストに対する応答を行う。送信ノードは、ファイルの全体又はファイル全てのブロックの送信が完了した後まで応答が遅延されるように設定される。
送信ノードは、所定の条件が満足するまで応答が遅延されるように設定される。
例えば、送信ノードは、再送信が間欠的に行われるように設定してもよい。
【００８５】
間欠的な再送信のために、送信ノードは、所定の量又は所定数のブロックの送信が完了した後まで応答を遅延させる。
送信ノードは、所定の周期により応答を遅延させる。
言い換えれば、送信ノードは、所定の周期により再送信リクエストに対する応答を行う。また、送信ノードは、ネットワーク内のトラフィックが所定の閾値以下になるまで応答を遅延させる。
上述した応答の遅延によって、送信ノードはパケット損失を復旧するための再送信を一括的に行う。一括的に実行することによって、マルチキャストの効果が向上される。
【００８６】
図４は、本発明の一実施形態に係る受信ノードのコンテンツキャッシュを説明するための図である。
図３を参照して上述したように、送信ノードの他にも１つ以上の受信ノードのそれぞれも送信されたコード化されたフレームの一部を格納してもよい。
ネットワーク内のノードは、送信されたコード化されたフレームの全て又は一部を他のノードに提供するために格納してもよい。
上記格納は、一時的なキャッシュであってもよい。
【００８７】
図４において、ネットワーク内のノードとして、コンテンツソース４１０、及び１つ以上のコンテンツ要請者などを示している。
１つ以上のコンテンツ要請者などとして、第１コンテンツ要請者４２０、第２コンテンツ要請者４３０、及び第３コンテンツ要請者４４０を示す。
また、図４に示すように、後でネットワークに追加された遅延到着者（ｌａｔｅｃｏｍｅｒ）４５０を示す。
コンテンツソース４１０は、図１〜図３を参照して上述した送信ノードに対応する。
第１コンテンツ要請者４２０、第２コンテンツ要請者４３０、第３コンテンツ要請者４４０、及び遅延到着者４５０のそれぞれは、図１〜図３を参照して上述した受信ノードに対応する。
【００８８】
ネットワーク内の１つ以上の受信ノードのうち、コンテンツ、ブロック又はコード化されたフレームを受信した受信ノードは、オリジナルフレーム、ブロック、又はコンテンツを復元した後にもコード化されたフレームを格納してもよい。
前記格納は、キャッシュであってもよい。例えば、受信ノードは、時間の流れにより格納され、長く格納されたコード化されたフレーム又はリクエストされて長く格納されたコード化されたフレームを除去し、新しいコード化されたフレームを格納してもよい。
上記格納は、ブロックごとに行われてもよい。受信ノードは、特定ブロックのコード化されたフレームの全て又は一部を格納してもよい。
【００８９】
コード化されたフレームの一部を格納することにおいて、受信ノードは、ブロックのコード化されたフレームの内からランダムに一部のコード化されたフレームを選択し、選択された一部のコード化されたフレームを格納する。
又は、１つ以上の受信ノードは、所定の条件により一部のコード化されたフレームを選択してもよい。所定の条件は、１つ以上の受信ノード間のコード化されたフレームの格納における重複を防止したり、重複を減少させるための条件であってもよい。
例えば、受信ノードは、受信ノードの識別子によりコード化されたフレームのうち一部のコード化されたフレームを選択する。又は、１つ以上の受信ノードは、プロトコルにより１つ以上の受信ノードのそれぞれが格納する一部のコード化されたフレームを選択してもよい。
【００９０】
言い換えれば、コード化されたフレームは、送信ノード及び１つ以上の受信ノードを含むネットワーク内のノード間に分散して格納されてもよい。
再送信リクエストが送信される場合、１つの受信ノードが再送信をリクエストするとき、送信ノードだけではなく、再送信リクエストを受信した隣接する他の受信ノードも格納されたコード化されたフレームを、再送信をリクエストした受信ノードに送信してもよい。
再送信リクエストは、マルチキャストによって他の受信ノードに送信されてもよい。又は、他の受信ノードは、ユニキャストによって行われる再送信リクエストをオーバヒアリングしてもよい。
コード化されたフレームの分散した格納及び分散した送信によって、送信性能を向上することができる。
【００９１】
図４に示す遅延到着者４５０は、コンテンツソース４１０と共に、１つ以上のコンテンツ要請者からもコード化されたフレームを受信する。
また、遅延到着者４５０は、コンテンツソース４１０と共に、１つ以上のコンテンツ要請者からも再送信リクエストに対する追加的なコード化されたフレームを受信する。
【００９２】
図５は、本発明の一実施形態に係るコンテンツのキャッシュを用いるパケットの復号化を説明するための図である。
図５に示すオリジナルコンテンツ５１０は、１つ以上のオリジナルフレームで構成される。
オリジナルコンテンツ５１０は、１つ以上のオリジナルフレームを含んでもよい。
【００９３】
図１を参照して上述したように、送信ノードは、オリジナルコンテンツ５１０を符号化することによって、コード化されたコンテンツ５２０を生成する。
コード化されたコンテンツ５２０は、１つ以上のコード化されたフレームを含んでもよい。
【００９４】
受信ノードは、多重ソースからのコード化されたフレームを用いてコンテンツを生成する。
言い換えれば、図５において、受信ノードは、多重ソースからのコード化されたフレーム５３０を用いてオリジナルコンテンツ５４０を復元する。
多重ソースは、送信ノードを含んでもよい。
【００９５】
図４を参照して上述したように、送信ノードが再送信リクエストをマルチキャストで送信したり、又は他のノードが再送信リクエストをオーバヒアリングする場合に送信ノードだけではなく、ネットワーク内の１つ以上の他の受信ノード又はコード化されたフレームを有する他のノードも追加的なコード化されたフレームを受信ノードに送信してもよい。
したがって、多重ソースは、ネットワーク内の１つ以上の他の受信ノードを含んでもよい。また、多重ソースは、ネットワーク内のコード化されたフレームを有する１つ以上の他のノードを含んでもよい。
【００９６】
多重ソースからのコード化されたフレーム５３０は、送信ノード、１つ以上の他の受信ノード、又は、コード化されたフレームを有する１つ以上の他のノードから送信されたコード化されたコンテンツ５２０のコード化されたフレームであってもよい。
【００９７】
受信ノードは、受信されたコード化されたフレーム及び追加的なコード化されたフレームを用いてコンテンツを生成する。
例えば、図５において、多重ソースからのコード化されたフレーム５３０を用いてオリジナルコンテンツ５４０を復元する。
受信ノードは、多重ソースからのコード化されたフレーム５３０に対する復号化を行うことによってオリジナルコンテンツ５４０を復元する。
【００９８】
図６は、本発明の一実施形態に係る集合された損失情報メッセージを示す図である。
図１から図５を参照して上述したように、再送信リクエストは、損失情報メッセージを用いて送信されてもよい。
また、損失情報メッセージは１つのブロックに対応してもよく、対応するブロックの識別子を含んでもよい。
【００９９】
また、図６に示すように、損失情報メッセージは、複数のブロックに対応する集合された損失情報メッセージであってもよい。
図６に示す集合された損失情報メッセージ６００は、「Ｓ＿ＭＡＣ」フィールド６１０、「Ｄ＿ＭＡＣ」フィールド６２０、１つ以上のブロック識別子（ＩＤ）フィールド６３０、及び１つ以上のカウントフィールド６４０を含み得る。
【０１００】
「Ｓ＿ＭＡＣ」フィールド６１０は、ソースのＭＡＣアドレスを示す。ソースは、図１〜図５を参照して上述した送信ノードであってもよい。
「Ｄ＿ＭＡＣ」フィールド６２０は、目的地のＭＡＣアドレスを示す。目的地は、図１〜図５を参照して上述した受信ノードであってもよい。
ブロック識別子（ＩＤ）フィールドは、ブロックの識別子を示す。
カウントフィールド６４０は、追加的に要求されるコード化されたフレーム数を示す。
【０１０１】
受信ノードは、１つのブロックに対して直ちに再送信リクエストを送信せず、再送信リクエストの集合を行ってもよい。
上記集合によって、ネットワーク内で発生するトラフィックが減少し得る。
【０１０２】
図６に示すように、集合された損失情報メッセージは、１つ以上のブロックの損失情報を示す。
言い換えれば、集合された損失情報メッセージは、受信ノードによって集合された１つ以上のブロックに対する損失情報を含む損失マップ（ｍａｐ）であってもよい。
【０１０３】
集合された損失情報メッセージは、１つ以上のブロックの各ブロックに対して、受信ノードが実際に受信したコード化されたフレーム数を含む。
また、集合された損失情報メッセージは、１つ以上のブロックの各ブロックに対して受信ノードがブロック又はオリジナルフレームを復元するために追加的に要求されるコード化されたフレーム数を含む。
又は、集合された損失情報メッセージは、１つ以上のブロックの各ブロックに対して受信ノードが損失したフレーム数を含んでもよい。
【０１０４】
集合された損失情報メッセージは、コード化されたフレームの１つ以上のブロックの識別子を含む。
ブロック識別子によって、送信ノードは、損失情報メッセージの損失情報がどのようなブロックのコード化されたフレームに関する情報であるかを識別する。
【０１０５】
集合された損失情報メッセージは、１つ以上のブロックの各ブロックのコード化されたフレームのカウンタを含む。
コード化されたフレームのカウンタは、（１）受信ノードが実際に受信した各ブロックのコード化されたフレーム数、（２）受信ノードが各ブロックを復元するために追加的に要求される各ブロックのコード化されたフレーム数、又は、（３）各ブロックのコード化されたフレームのうち受信ノードが損失したフレーム数であってもよい。
【０１０６】
集合の範囲は、コンテンツ、オリジナルフレーム、及びコード化されたフレームのタイプ又は属性に応じて互いに異なってもよい。
例えば、コンテンツがファイルである場合、コンテンツ全体のブロックに対して損失情報を集合されてもよい。
受信ノードは、ファイルの全てが送信された後集合された損失情報メッセージを生成及び送信する。
コード化されたフレームの送信と集合された損失情報メッセージの送信とを時間的に分離することによって、受信ノードはコード化されたフレームのマルチキャストを通した送信が、再送信リクエストの送信及び再送信リクエストによる追加的なコード化されたフレームの送信による妨害を受けないようにする。
ここで、妨害とは、競合、衝突、及び干渉の内の１つ以上であり得る。
【０１０７】
例えば、ストリーミングに送信されるコンテンツがビデオである場合、損失情報の集合の範囲は、ビデオの符号化率及びネットワークの送信速度に基づいて決定されてもよい。
集合の範囲は、集合された損失情報メッセージのブロックの送信時点に基づいて決定されてもよい。
例えば、集合された損失情報メッセージが順次的な複数のブロックに対する損失情報を含む場合、集合の範囲は所定の時間間隔内で送信される複数のブロックを含むように決定されてもよい。
【０１０８】
図７は、本発明の一実施形態に係るノードの構成を示すブロック図である。
ノード７００は、図１〜図６を参照して上述したネットワーク内のノード、送信ノード、及び受信ノードにそれぞれに対応する。
言い換えれば、図１〜図６を参照して上述したノード、送信ノード、及び受信ノードに対する説明は、ノード７００にも適用される。
【０１０９】
ノード７００は、通信部７１０、処理部７２０、及び格納部７３０を備える。
図１〜図６を参照して上述したネットワーク内のノードは、それぞれ通信部、処理部、及び格納部を含み得る。
【０１１０】
通信部７１０は、データの送受信を処理する。
例えば、通信部７１０は、他のノードにコード化されたフレーム及び再送信リクエストを送信する。
また、通信部７１０は、他のノードからコード化されたフレーム及び再送信リクエストを受信する。
【０１１１】
処理部７２０は、データの生成及び判断に関する作業を処理する。
例えば、処理部７２０は、コード化されたフレーム及び損失情報メッセージを生成し、コード化されたフレームに対する復号化を行うことによって、オリジナルコンテンツを復元する。
【０１１２】
格納部７３０は、データを格納する。
例えば、格納部７３０は、コンテンツ、オリジナルフレーム、生成されたコード化されたフレーム、受信したコード化されたフレーム、追加的なコード化されたフレーム、損失情報メッセージなどを格納する。
【０１１３】
図８は、一本発明の一実施形態に係る受信ノードの通信方法を説明するためのフローチャートである。
下記の実施形態では、受信ノードの通信方法を説明する。下記で説明される受信ノード及び他のノードは、それぞれ図７を参照して上述したノード７００に対応する。
【０１１４】
言い換えれば、ノード７００の通信部７１０、処理部７２０、及び格納部７３０は、受信ノードの通信部、処理部、及び格納部にそれぞれに対応し、ノード７００の通信部７１０、処理部７２０、及び格納部７３０は、他のノードの通信部、処理部、及び格納部にそれぞれに対応する。
【０１１５】
他のノードは、送信ノードのようなネットワーク内にある隣接ノードであってもよい。
また、他のノード及び受信ノードは、送信ノードからコード化されたフレームを受信してもよい。
以下では、他のノードからのフィードバックメッセージは第１フィードバックメッセージと示し、受信ノードからのフィードバックメッセージは第２フィードバックメッセージと示す。
【０１１６】
まず、ステップＳ８０５において、受信ノードの通信部は、送信ノードから１つ以上の第１パケットを受信する。
少なくとも１つの第１パケットは、図１〜図７を参照して上述したコード化されたフレームに対応する。
１つ以上の第１パケットは、マルチキャストで送信ノードから受信ノードに送信される。
【０１１７】
後述するステップＳ８１０〜ステップＳ８５５は、パケットを損失した受信ノードがパケットの損失に対する再送信をリクエストする工程である。
マルチキャストによって追加的なパケットが送信される場合、又は、追加的なパケットの送信がオーバヒアリングされる場合、受信ノード自身がパケットをリクエストせずにネットワーク内の他のノードがパケットをリクエストした場合にも、受信ノードは追加的なパケットを共に受信してもよい。したがって、場合に応じて受信ノードは再送信リクエストを延期してもよい。
【０１１８】
ステップＳ８１０において、受信ノードの処理部は、延期時間（ｄｅｆｅｒ  ｔｉｍｅ）が０よりも大きいか否かを判断する。
延期時間は、受信ノードがフィードバックメッセージを送信する前に待機する時間である。
【０１１９】
第２フィードバックメッセージは、図１〜図６を参照して前述した再送信リクエスト、損失情報メッセージ、または集合された損失情報メッセージであってもよい。言い換えれば、第２フィードバックメッセージは、受信ノードが要求するパケット数を示す情報を含むメッセージであってもよい。要求するパケット数を示す情報は損失情報に対応する。
受信ノードが要求するパケット数は、受信した１つ以上のパケットに対する復号化を行うために追加的に要求される最小パケット数を示す。
【０１２０】
第２フィードバックメッセージは、パケットエラー率（Ｐａｃｋｅｔ  Ｅｒｒｏｒ  Ｒａｔｅ；ＰＥＲ）を含んでもよい。
パケットエラー率（ＰＥＲ）は、送信ノードにパケット送信におけるエラー率を提供する。
送信ノードは、パケットエラー率を参照して受信ノードから要求された個数のパケット以外の追加的なパケットを送信する。
【０１２１】
図１〜図６を参照して上述したように、パケット又はコード化されたフレームは、送信ノードがオリジナルフレームにネットワークコーディングを適用することによって生成される。
したがって、復号化は、受信された１つ以上の第１パケットに適用されたネットワークコーディングに対する復号化である。
【０１２２】
受信ノードが要求するパケット数は、ネットワークコーディングによって符号化された受信した１つ以上のパケットをデコード化するために追加的に要求される、ネットワークコーディングによって符号化された他の１つ以上の第１パケット数であってもよい。
【０１２３】
延期時間は、図１〜図７を参照して再送信リクエストを直ちに送信することなく待機することに対する残った時間であってもよい。
言い換えれば、受信ノードの処理部は、延期時間が満了するまで受信ノードの第２フィードバックメッセージの送信を遅延させてもよい。
ステップＳ８１０の実行前に、延期時間は所定の値にセットされる。
【０１２４】
延期時間が０よりも大きい場合、ステップＳ８２０を実行する。
延期時間が０以下である場合、ステップＳ８５５を実行する。
【０１２５】
次に、ステップＳ８２０にて、受信ノードの処理部及び通信部は、第１フィードバックメッセージのオーバヒアリングを試みる。
第１フィードバックメッセージのオーバヒアリングは、ネットワーク内で送信される他のノードの第１フィードバックを受信する。
例えば、第１フィードバックメッセージがマルチキャストによって他のノードから送信ノードに送信される場合、又は、受信ノードが他のノードの第１フィードバックメッセージをオーバヒアリングする場合、受信ノードも第１フィードバックメッセージを取得する。
第１フィードバックメッセージは、他のノードが要求するパケット数を示す情報を含んでもよい。
要求するパケット数を示す情報は、損失情報に対応する。
【０１２６】
次に、ステップＳ８３０にて、受信ノードの処理部は、フィードバックメッセージが成功裏にオーバヒアリングしたか否か、すなわち、他のノードによって送信された第１フィードバックメッセージが受信ノードによって受信されたか否かを判断する。
【０１２７】
上記判断の結果によって、第１フィードバックメッセージが成功裏にオーバヒアリングされた場合、ステップＳ８４０を実行する。
フィードバックメッセージが成功裏にオーバヒアリングされていない場合、ステップＳ８１０に戻り、後続工程を繰り返す。
【０１２８】
次に、ステップＳ８４０にて、受信ノードの処理部は、受信ノード自身が復号化するための個数（Ｎｕｍｂｅｒ  Ｆｏｒ  Ｄｅｃｏｄｉｎｇ；ＮＦＤ）がオーバヒアリングされたＮＦＤよりも大きいかどうかを判断する。
受信ノードのＮＦＤは、受信ノードが要求するパケット数を示す。
オーバヒアリングされたＮＦＤは、オーバヒアリングされた第１フィードバックメッセージを送信した受信ノードが要求するパケット数を示す。
言い換えれば、受信ノードの処理部は、他のノードが要求するパケット数と受信ノードが要求するパケット数とを比較する。
【０１２９】
受信ノードは、受信ノード自身のＮＦＤだけのパケットを追加的に受信すると、追加的に受信したパケット及び以前に受信した１つ以上のパケットに対する復号化を行うことによって、コンテンツ、ブロック、又はオリジナルフレームを復元する。
また、他のノードは、オーバヒアリングされたＮＦＤだけのパケットを追加的に受信すると、追加的に受信したパケットに対して復号化することによって、コンテンツ、ブロック、又はオリジナルフレームを復元する。
【０１３０】
受信ノードのＮＦＤがオーバヒアリングされたＮＦＤよりも大きい場合、ステップＳ８４５を実行する。
受信ノードのＮＦＤがオーバヒアリングされたＮＦＤ以下である場合、手続を終了する。
【０１３１】
言い換えれば、受信ノードのＮＦＤがオーバヒアリングされたＮＦＤ以下である場合、受信ノードは自身のフィードバックメッセージを送信できないことがある。
受信ノードが第１フィードバックメッセージをオーバヒアリングしたことは、他のノードが送信ノードに第１フィードバックメッセージを送信したことを意味する。
他のノードから送信された第１フィードバックメッセージは、他のノードが要求するパケット数を示す情報を含み得る。したがって、送信ノードは少なくとも他のノードが要求する、受信ノードによって要求されたパケット数よりも大きいか、同じ個数だけのパケットを他のノード及び受信ノードなどに送信する。この送信は、マルチキャストによって行われ得る。したがって、受信ノードは、重複して第２フィードバックメッセージを送信する必要がない。
【０１３２】
受信ノードが要求するパケット数が他のノードが要求するパケット数に比べて多ければ、ステップＳ８４５にて、受信ノードの通信部は、受信ノードの第２フィードバックメッセージを送信ノードに送信する。
第２フィードバックメッセージは、マルチキャスティング又はオーバヒアリングによってネットワーク内の他のノードにも送信される。
上述したように、第２フィードバックメッセージは、受信ノードが要求するパケット数を示す情報を含む。
【０１３３】
図で説明したものと異なって、ステップＳ８４０で受信ノードのＮＦＤがオーバヒアリングされたＮＦＤよりも大きい場合、ステップＳ８１０に戻って工程を繰り返してもよい。
したがって、ステップＳ８２０及びステップＳ８３０における第１フィードバックメッセージのオーバヒアリングは、ＮＦＤに基づいたオーバヒアリングであってもよい。
【０１３４】
所定の期間中に第１フィードバックメッセージが受信されなければ、ステップＳ８５５にて、受信ノードの通信部は受信ノードの第２フィードバックメッセージを送信ノードに送信する。
第２フィードバックメッセージは、マルチキャスティング又はオーバヒアリングによってネットワーク内の他のノードにも送信される。
所定の時間は、ステップＳ８１０で説明した延期時間の初期値であってもよい。
【０１３５】
言い換えれば、受信ノードの処理部は、所定の期間の間、第１フィードバックメッセージを待機してもよい。
処理部は、受信した異なるノードの第１フィードバックメッセージを分析した結果、自身が最も多いパケットを要求するため自身のフィードバックメッセージを送信する必要がある場合のみ、自身の第２フィードバックメッセージを送信する。
言い換えれば、受信ノードのフィードバックは、ＮＦＤに基づいて抑制（ｓｕｐｐｒｅｓｓｉｏｎ）する。上記抑制は、ブロック単位からなる。
言い換えれば、上記抑制は、同一の識別子を有するパケット又は同一のブロック識別子を有するコード化されたフレームに対して行われる。
【０１３６】
図１〜図７を参照して上述したように、１つ以上のブロックそれぞれに対してコード化されたフレームが送信される。
コード化されたフレームは、自身がいずれかのブロックに対するフレームであるかを示すためにブロック識別子を有する。また、受信ノードが受信した１つ以上の第１パケットは、同一の識別子を含む。同一の識別子は、パケットをブロックごとに区分するブロック識別子であってもよい。
識別子によって、受信されたパケットは、ブロック単位で区分される。
前記区分によって、受信ノードの処理部は、ブロックごとに上述したフィードバックを抑制する。
【０１３７】
また、ＮＦＤを決定するために、受信された１つ以上の第１パケットのそれぞれは、受信された１つ以上の第１パケットに対する復号化を行うために要求される最小のパケット数を示す情報を含んでもよい。
処理部は、要求される最小のパケット数から実際に受信された１つ以上の第１パケット数を差し引くことによって、受信ノードが要求するパケット数を算出してもよい。
【０１３８】
ステップＳ８１０〜ステップＳ８５５の実行中、又はステップＳ８５５の実行後に、受信ノードは追加的なパケットを受信してもよく、ネットワークを介して送信される追加的なパケット数は、受信ノードが要求するパケット数の以上であってもよい。
【０１３９】
図９は、本発明の一実施形態に係る送信ノードの通信方法を説明するためのフローチャートである。
以下の実施形態では、送信ノードの通信方法を説明する。
以下で説明する送信ノード及び他のノードは、それぞれ図７を参照して前述したノード７００に対応する。
言い換えれば、ノード７００の通信部７１０、処理部７２０、及び格納部７３０は、送信ノードの通信部、処理部、及び格納部にそれぞれに対応し、ノード７００の通信部７１０、処理部７２０、及び格納部７３０は、他のノードの通信部、処理部、及び格納部にそれぞれに対応する。
【０１４０】
他のノードは、受信ノードのようなネットワーク内にある隣接ノードであり得る。
また、他のノードは、送信ノードからコード化されたフレームを受信し得る。
他のノードは、図１〜図８を参照して上述した受信ノードであってもよい。
パケットは、図１〜図８を参照して上述したコード化されたフレームに対応する。
【０１４１】
送信ノードは、受信ノードから再送信リクエストを受信すると、受信ノードが要求する個数以上の追加的なパケットを受信ノードに送信する。
追加的なパケットがマルチキャストに送信される場合、又は、追加的なパケットがオーバヒアリングされる場合、再送信リクエストを送信した受信ノード以外の他のノードも追加的なパケットを受信する。
したがって、送信ノードは、特定の時間の間に再送信リクエストに対する応答を直ちに送信せず、複数の受信ノードからの再送信リクエストを受信する。
再送信リクエストの受信後、送信ノードは、最も多い個数の追加的なパケットを要求するリクエストに応じて決定された個数のみの追加的なパケットを受信ノードに送信する。
この送信は、マルチキャストによって行われる。
【０１４２】
まず、ステップＳ９０５において、送信ノードの通信部は、１つ以上の受信ノードに１つ以上のパケットを送信する。
ステップＳ９０５で送信された１つ以上のパケットを第１パケットと命名する。
１つ以上の第１パケットは、マルチキャストによって送信ノードから１つ以上の受信ノードに送信される。
【０１４３】
後続のステップＳ９１０〜ステップＳ９７０は、送信ノードが受信ノードからフィードバックメッセージを受信し、フィードバックメッセージが示す送信ノードが要求するパケット数の以上の追加的なパケットを送信する工程である。
【０１４４】
次に、ステップＳ９１０において、送信ノードの処理部は、遅延された応答時間が「０」以上であるか否かを判断する。
遅延された応答時間は、送信ノードが追加的なパケットを最終的に送信する前の残った待機時間であってもよい。
ステップＳ９１０の実行前に、遅延された応答時間は所定の値にセットされる。
【０１４５】
遅延された応答時間が「０」よりも大きい場合、ステップＳ９２０を実行する。
遅延された応答時間が「０」よりも大きいことは、送信ノードが最終的な追加的なパケット送信前にさらに待機しなければならないことを意味する。
遅延された応答時間が「０」以下である場合、ステップＳ９７０を実行する。
【０１４６】
次に、ステップＳ９２０において、送信ノードの処理部及び通信部は、ネットワーク内の他のノードからのフィードバックメッセージの受信を待機する。
他のノードは、ステップＳ９０５の１つ以上の受信ノードのうち１つのノードであってもよい。
フィードバックメッセージは、ユニキャスト又はマルチキャストによって送信ノードに送信される。
【０１４７】
次に、ステップＳ９３０において、送信ノードの通信部は、他のノードからフィードバックメッセージを受信したか否かを判断する。
フィードバックメッセージは、他のノードが要求するパケット数を示す情報を含んでもよい。
他のノードから送信されたフィードバックメッセージが受信されていないと判断された場合、ステップＳ９１０に戻り、工程を繰り返す。
【０１４８】
つまり、ステップＳ９２０及びステップＳ９３０は、遅延された応答時間が「０」よりも大きい場合、所定の時間の間に行われる。
言い換えれば、送信ノードの処理部及び通信部は、所定の時間の間、他のノードからフィードバックメッセージを待機する。
【０１４９】
ステップＳ９３０で、他のノードから送信されたフィードバックメッセージを受信した場合、ステップＳ９４０を実行する。
そして、ステップＳ９４０において、送信ノードの処理部は、現在ＮＦＤが最大ＮＦＤよりも大きいか否かを判断する。
【０１５０】
現在ＮＦＤは、ステップＳ９３０で受信したフィードバックメッセージが示す他のノードが要求するパケット数である。
最大ＮＦＤは、所定の期間の間に以前に受信したフィードバックメッセージから他の全てのノードによって要求するパケット数の最大値である。
言い換えれば、処理部は、他のノードが要求するパケット数と最大パケット数とを比較する。
【０１５１】
ステップＳ９０５において、１つ以上のパケットのうち、他のノードは、１つ以上の第２パケットのみを受信する。
他のノードが要求するパケット数は、他のノードが受信した１つ以上の第３パケットに対する復号化を行うために、少なくとも１つの第２パケットに加えて追加的に要求されるパケット数であってもよい。
【０１５２】
ステップＳ９２０及びステップＳ９３０は繰り返して行われる。
言い換えれば、ステップＳ９２０及びステップＳ９３０の反復的な実行により、１つ以上のフィードバックメッセージを１つ以上の他のノードからそれぞれ受信する。
１つ以上のフィードバックメッセージは、フィードバックメッセージを送信した１つ以上の他のノードが要求するパケット数をそれぞれ示す。
最大ＮＦＤは、前記１つ以上の異なる全てのノードが要求するパケット数のうち最大値である。
【０１５３】
ステップＳ９１０の実行前に、最大ＮＦＤは所定の値にセットされる。
所定の値は「０」であってもよい。
最大ＮＦＤは、前記１つ以上の他のノードが要求するパケット数及び前記所定の値の内の最大値であってもよい。
【０１５４】
例えば、所定の値が「０」として設定され、２つの互いに異なるノードによって要求されるパケット数を示す２つのフィードバックメッセージ「３」及び「５」が他のノードから受信されれば、最大パケット数は「５」である。
他の一例として、所定の値が「４」として設定され、２つの互いに異なるノードによって要求されるパケット数を示す２つのフィードバックメッセージ「１」及び「３」が他のノードから受信されれば、最大パケット数は「４」である。
最大パケット数は、所定期間の間に送信ノードにすでに送信された追加的なパケット数である。又は、最大パケット数は、送信ノードが追加的なパケットを送信するか否かを決定するために用いられる閾値であってもよい。
【０１５５】
他のノードが要求するパケット数が最大パケット数よりも大きい場合、ステップＳ９５０を実行する。
他のノードが要求するパケット数が、最大パケット数以下である場合、ステップＳ９１０に戻り、工程を繰り返す。
他のノードが要求するパケット数が最大パケット数以下であることは、他のノードが要求するパケットよりも多い追加的なパケットがすでに（マルチキャストによって）１つ以上の受信ノードに送信されたことを意味する。したがって、これ以上追加的なパケットが送信される必要はない。
【０１５６】
他のノードが要求するパケット数が最大パケット数に比べて大きければ、ステップＳ９５０で、送信ノードの通信部は、１つ以上の追加的なパケットを送信する。
ステップＳ９５０で、送信される１つ以上の追加的なパケットを１つ以上の第３パケットとして命名する。
【０１５７】
送信される追加されるパケット数は、他のノードが要求するパケット数と最大パケット数との差である。
又は、送信される追加されるパケット数は、他のノードが要求するパケット数と最大パケット数との差以上であってもよい。
処理部は、（１）他のノードが要求するパケット数と最大パケット数との差、（２）ネットワークのパケット損失率、及び（３）所定の値などを考慮して追加的なパケット数を決定してもよい。
【０１５８】
次に、ステップＳ９６０において、送信ノードの処理部は、最大ＮＦＤの値を更新する。
更新された最大ＮＦＤの値は、送信ノードによって送信された追加的なパケットの総個数である。
【０１５９】
処理部は、最大パケット数の値をステップＳ９５０で送信された１つ以上の追加的なパケット数のみを増加させる。
又は、処理部は、最大パケット数の値を他のノードが要求するパケット数の値に更新してもよい。
【０１６０】
ステップＳ９６０の実行後にステップＳ９１０に戻り、工程が繰り返して行われる。
上述したステップＳ９１０〜ステップＳ９６０によって、送信ノードは所定の期間の間、他のノードのフィードバックメッセージを待機する。
【０１６１】
ステップＳ９１０にて、遅延された応答時間が「０」以下であれば、ステップＳ９７０において、送信ノードの通信部は１つ以上の追加的なパケットを送信する。
ステップＳ９７０において、送信された１つ以上の追加的なパケットを第４パケットとして命名する。
【０１６２】
所定の期間の間、言い換えれば、遅延された応答時間の間に他のノードのフィードバックメッセージが受信されなければ、通信部は１つ以上の追加的なパケットを送信する。
１つ以上の追加的なパケット数は、最大パケット数と同一であり得る。
例えば、ステップＳ９１０の実行前にすでに送信ノードの通信部が受信ノードからフィードバックメッセージを受信し、受信ノードが要求するパケット数が最大パケット数の初期値として設定されてもよい。
又は、図９で説明したものと異なって、例えば、最大パケット数の初期値が「０」である場合、ステップＳ９７０は実行されないまま手続を終了する。
【０１６３】
上述したように、送信ノードは、１つ以上の受信ノードの全てのフィードバックメッセージに対して応答できないことがある。
送信ノードは、以前に送信された追加的なパケット又は遅延された応答時間の経過後に送信される追加的なパケット数を考慮し、受信ノードのリクエストに応じて他の追加的なパケットをさらに送信する必要があるか否かを判断する。
言い換えれば、送信ノードの応答はＮＦＤに基づいて除去されてもよい。この除去は、ブロック単位からなってもよい。言い換えれば、この除去は、同一の識別子を有するパケット又は同一のブロック識別子を有するコード化されたフレームに対して行われ得る。
【０１６４】
図１〜図８を参照して上述したように、１つ以上のブロックそれぞれに対してコード化されたフレームが送信される。
コード化されたフレームは、自身があるブロックに対するフレームであるか否かを示すためにブロック識別子を有する。
また、受信ノードがステップＳ９０５で受信する１つ以上の第１パケット、ステップＳ９５０で受信する１つ以上の第３パケット、及びステップＳ９７０で受信する１つ以上の第４パケットは同一の識別子を含み得る。
同一の識別子は、ブロック識別子であってもよい。識別子によって受信されたパケットは、ブロック単位に区分される。この区分により受信ノードの処理部は、ブロックごとにオリジナルパケット又はオリジナルフレームを復元することができる。
【０１６５】
図１〜図８を参照して上述したように、１つ以上の第１パケット、１つ以上の第２パケット、１つ以上の第３パケット、及び１つ以上の第４パケットは全てネットワークコーディングによって符号化される。
また、１つ以上の第１パケットは、１つ以上の第１パケットが復号化されるため、要求される最小のパケット数を示す情報を含み得る。これは、１つ以上の第２パケット、１つ以上の第３パケット、及び１つ以上の第４パケットにも共通する。
例えば、１つ以上の第２パケットは、１つ以上の第２パケットが復号化されるため、要求される最小のパケット数を示す情報を含み得る。
【０１６６】
上記実施形態に係る通信方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータ読取可能記録媒体に記録され得る。
コンピュータ読取可能記録媒体は、プログラム命令、データファイル、データ構造などの内の１つ又はその組み合わせを含み得る。記録媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。
【０１６７】
コンピュータ読取可能記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク、及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、光ディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置などが含まれる。
プログラム命令の例には、コンパイラによって作られるような機械語コードだけでなく、インタープリタなどを用いてコンピュータによって実行できる高級言語コードも含まれる。
上記したハードウェア装置は、本発明の動作を行うために１つ以上のソフトウェアモジュールとして作動するように構成されてもよく、その逆も同様である。
【０１６８】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【産業上の利用可能性】
【０１６９】
本発明は、ネットワーク機能が搭載された端末、アクセスポイント（Ａｃｃｅｓｓ  Ｐｏｉｎｔ；ＡＰ）、ルータ、セットトップボックス（ｓｅｔ  ｔｏｐ  ｂｏｘ）などに好適に使用される。
【符号の説明】
【０１７０】
７００    ノード
７１０    通信部
７２０    処理部
７３０    格納部
【図１】
2015100109.tif 000003
【図２】
2015100109.tif 000004
【図３】
2015100109.tif 000005
【図４】
2015100109.tif 000006
【図５】
2015100109.tif 000007
【図６】
2015100109.tif 000008
【図７】
2015100109.tif 000009
【図８】
2015100109.tif 000010
【図９】
2015100109.tif 000011