(57)【特許請求の範囲】
【請求項１】
所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置において、
パケットを受信するパケット受信部と、
前記パケット受信部が受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定部と、
前記受信順を用いて経路数推定パケット数を算出する経路数推定パケット数算出部と、
前記受信順及び前記経路数から経路の途中で欠落したパケットを判定する第１欠落判定部と、
前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第２欠落判定部と、
前記パケット受信部が受信したパケットを保持するパケット保持部と、
前記パケット保持部に保持されているパケットと前記第１欠落判定部または前記第２欠落判定部の少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答部と、
を備えることを特徴とする、通信装置。
【請求項２】
前記経路数推定パケット数算出部は、順序番号ｎ番（ｎは自然数）までのパケットを前記パケット受信部が全て受信した後、順序番号ｍ番（ｍは２以上の整数であり、ｍ＞ｎ＋１）のパケットを前記パケット受信部が受信した場合に、その後前記パケット受信部が受信する順序番号ｎ＋１番のパケットから、順序番号ｎ＋１番からｍ番までのパケットを前記パケット受信部が受信するまでの間に受信した最大の順序番号を有するパケットまでの全ての受信パケットについて、順序番号ｍ番のパケットから数えて前記全ての受信パケットを前記パケット受信部が受信した順に並べた列で順序番号が降順に並ぶ個数が最大となるように少なくとも１つ以上の列を選び、該１つ以上の列を用いて前記経路数推定パケット数を算出することを特徴とする、請求項１に記載の通信装置。
【請求項３】
前記経路数推定パケット数算出部は、選んだ前記１つ以上の列のうち、順序番号が最小のパケットを受信するまでに前記パケット受信部が受信したパケットの個数を前記経路数推定パケット数とすることを特徴とする、請求項２に記載の通信装置。
【請求項４】
前記応答部は、順序番号ｎ番（ｎは自然数）までのパケットを前記パケット受信部が全て受信した後、前記パケット受信部がパケットを受信しても順序番号ｎ＋１番のパケットが前記パケット保持部に存在しない場合、順序番号ｎ＋１番のパケットの欠落を前記第１欠落判定部または前記第２欠落判定部の少なくともいずれか一方が判定するまでパケットの再送の要求を控えることを特徴とする、請求項１〜３のいずれかに記載の通信装置。
【請求項５】
所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置の通信制御方法において、
パケットを受信するパケット受信ステップと、
前記パケット受信ステップで受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定ステップと、
前記受信順を用いて経路数推定パケット数を算出する経路数推定パケット数算出ステップと、
前記受信順及び前記経路数から経路の途中で欠落したパケットを判定する第１欠落判定ステップと、
前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第２欠落判定ステップと、
前記パケット受信ステップで受信したパケットを保持するパケット保持ステップと、
前記パケット保持ステップで保持されているパケットと前記第１欠落判定ステップまたは前記第２欠落判定ステップの少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答ステップと、
を備えることを特徴とする、通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及び通信制御方法に関する。
【背景技術】
【０００２】
データを小分けされたパケットに変換して伝送するパケット通信においては、通常マルチパス伝送方式が採用されている。マルチパス伝送方式においては、送信元からのパケットの送信順と、受信元でのパケットの受信順とを一致させるための技術が開発されている。
【０００３】
例えば、下記の非特許文献１には、パケットベースでマルチパスにルーティングする一連のパケットフローを、複数のパスに振り分けるルータが、そのノードでのパケットの到着間隔によって振り分けるパスを決定する技術が開示されており、１フローを構成する一連のパケットをパケット単位で複数の経路に振り分けるルータが、パケットがそのルータに到着する間隔によってそのパケットを送信する経路を決定する。これにより、受信端末でのパケットの到着順序が、送信端末のパケット送信順序と同じになるよう制御することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“Ｄｙｎａｍｉｃ  Ｌｏａｄ  Ｂａｌａｎｃｉｎｇ  Ｗｉｔｈｏｕｔ  Ｐａｃｋｅｔ  Ｒｅｏｒｄｅｒｉｎｇ”，ＡＣＭ  ＳＩＧＣＯＭＭ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｒｅｖｉｅｗ，Ｊｕｎｅ  ２００７
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、非特許文献１に記載された技術のように送信側でパケットの送信を制御しても、その後の経路がさらに分岐していれば、異なる経路を通ったパケット間で伝送時間に差が生じる。その結果、受信端末は送信順序通りにそれらのパケットを受信できなくなる。送信順序通りにパケットを受信できなかった受信端末は、所望の番号のパケットを受信できなければ、例えそのパケットが、その後に到着するパケットであっても、受信端末はパケットが欠落していると判断してしまい、再送を要求してしまう。また、未達のパケットの到着を待機するにしても、どれだけ到着を待機すれば良いのか不明である。
【０００６】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、送受信端末間の経路数が不明であって、各経路へのパケットの振り分け方法も不明である場合に、パケットの欠落を判断することが可能な、新規かつ改良された通信装置及び通信制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある観点によれば、所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置において、パケットを受信するパケット受信部と、前記パケット受信部が受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定部と、前記受信順及び前記ネットワークの経路数を用いて経路数推定パケット数を算出する経路数推定パケット数算出部と、前記受信順及び前記経路数から前記経路の途中で欠落したパケットを判定する第１欠落判定部と、前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第２欠落判定部と、前記パケット受信部が受信したパケットを保持するパケット保持部と、前記パケット保持部に保持されているパケットと前記第１欠落判定部または前記第２欠落判定部の少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答部と、を備えることを特徴とする、通信装置が提供される。
【０００８】
前記経路数推定パケット数算出部は、順序番号ｎ番（ｎは自然数）までのパケットを前記パケット受信部が全て受信した後、順序番号ｍ番（ｍは２以上の整数であり、ｍ＞ｎ＋１）のパケットを前記パケット受信部が受信した場合に、その後前記パケット受信部が受信する順序番号ｎ＋１番のパケットから、順序番号ｎ＋１番からｍ番までのパケットを前記パケット受信部が受信するまでの間に受信した最大の順序番号を有するパケットまでの全ての受信パケットについて、順序番号ｍ番のパケットから数えて前記全ての受信パケットを前記パケット受信部が受信した順に並べた列で順序番号が降順に並ぶ個数が最大となるように少なくとも１つ以上の列を選び、該１つ以上の列を用いて前記経路数推定パケット数を算出してもよい。
【０００９】
前記経路数推定パケット数算出部は、選んだ前記１つ以上の列のうち、順序番号が最小のパケットを受信するまでに前記パケット受信部が受信したパケットの個数を前記経路数推定パケット数としてもよい。
【００１０】
前記応答部は、順序番号ｎ番（ｎは自然数）までのパケットを前記パケット受信部が全て受信した後、前記パケット受信部がパケットを受信しても順序番号ｎ＋１番のパケットが前記パケット保持部に存在しない場合、順序番号ｎ＋１番のパケットの欠落を前記第１欠落判定部または前記第２欠落判定部の少なくともいずれか一方が判定するまでパケットの再送の要求を控えてもよい。
【００１１】
また、上記課題を解決するために、本発明の別の観点によれば、所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置の通信制御方法において、パケットを受信するパケット受信ステップと、前記パケット受信ステップで受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定ステップと、前記受信順及び前記ネットワークの経路数を用いて経路数推定パケット数を算出する経路数推定パケット数算出ステップと、前記受信順及び前記経路数から前記経路の途中で欠落したパケットを判定する第１欠落判定ステップと、前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第２欠落判定ステップと、前記パケット受信ステップで受信したパケットを保持するパケット保持ステップと、前記パケット保持ステップで保持されているパケットと前記第１欠落判定ステップまたは前記第２欠落判定ステップの少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答ステップと、を備えることを特徴とする、通信制御方法が提供される。
【発明の効果】
【００１２】
以上説明したように本発明によれば、送受信端末間の経路数が不明であって、各経路へのパケットの振り分け方法も不明である場合に、パケットの欠落を判断することが可能な、新規かつ改良された通信装置及び通信制御方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係る通信システムの概略構成を示す説明図である。
【図２】本発明の一実施形態にかかる受信端末１００Ｂの構成を示す説明図である。
【図３】本発明の一実施形態にかかる受信端末１００Ｂに含まれる経路数推定部１３０の動作について示す流れ図である。
【図４】本発明の一実施形態にかかる経路数推定パケット数算出部１３５の動作を示す流れ図である。
【図５】本発明の一実施形態にかかる第１欠落判定部１４０の動作を示す流れ図である。
【図６】本発明の一実施形態にかかる第２欠落判定部１４０の動作を示す流れ図である。
【図７】本発明の一実施形態にかかるバッファ１５０の動作を示す流れ図である。
【図８】本発明の一実施形態にかかる応答部１７０の動作を示す流れ図である。
【図９】受信端末１００Ｂが受信するパケット列の一例を示す説明図である。
【図１０】受信端末１００Ｂが受信するパケット列の一例を示す説明図である。
【図１１】ネットワーク１０における経路の一例を示す説明図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１５】
まず、本件発明者は、送受信端末間の経路数が不明であって、各経路へのパケットの振り分け方法も不明である場合に、パケットの欠落の有無を判断するために、受信端末におけるパケットの到着順序から送受信間の経路数を推定し、この経路数の情報を用いていた。
【００１６】
しかし、当該手法を用いた場合には、ある経路においてパケットの欠落が発生した場合、当該欠落パケット以降に送信され、かつ、当該経路を通過したパケットを受信しなければ、パケットの欠落の有無を判断することが出来なかった。
【００１７】
そこで、以下で説明する本発明の好適な実施の形態では、送信端末がパケットを送信する際に、パケットに順序番号を付与し、受信端末は、受信したパケットの並びから送受信端末間の経路数を推定する。さらに、当該経路数を推定するまでに要したパケット数（経路数推定パケット数と称する）を算出する。そして、受信端末がｎ番（ｎは正の整数）までのパケットを全て受信した後に、受信したパケットがｍ番（ｍ＜ｎ＋１）であった場合に、ｎ番のパケットの次に受信したパケットから数えて経路数推定パケット数個のパケットを受信してもなおｍ番のパケットを受信しない場合には、当該パケットは欠落したものと判断する。
【００１８】
＜１．本発明の一実施形態＞
［１−１．通信システムの構成］
まず、図１を参照して、本発明の一実施形態に係る通信システムの概略構成について説明する。図１に示したように、本発明の一実施形態に係る通信システム１は、送信端末１００Ａから受信端末１００Ｂに対して、ネットワーク１０を介して、順序番号を付与したパケットの形式で送信したいデータを送信する。本実施形態においては、パケットを再送する場合を除き、原則として順序番号の昇順でパケットを送信する。
【００１９】
一方、受信端末１００Ｂは、本発明の通信装置の一例であり、送信端末１００Ａから送信されるパケットを受信すると、順序番号の最初から始めて抜けなく受信した一連のパケットの内の最大の番号や、欠落しているパケットの番号を応答パケットとして送信端末１００Ａへ送信する。この応答パケットを送信端末１００Ａが受信することで、送信端末１００Ａは次に送信するパケットの順序番号を制御する。このような通信制御は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）等の通信方式に見られるものである。本実施形態は、このような制御下における主に応答パケットの制御に関わるものである。
【００２０】
パケットが流れるネットワーク１０の内部では、経路途中のルータ（図示せず）等がパケットを複数の経路に振り分けることで、経路が分岐され得る。図１に示した分岐はその状態を表したものである。送信端末１００Ａ、受信端末１００Ｂは、ネットワーク１０の中のパケットが通る経路や分岐の数については把握していない。なお、以下の説明では、ネットワーク１０は複数の経路に分岐されているものとして説明するが、本発明は、送信端末１００Ａと受信端末１００Ｂとの間に分岐が全く無い場合であっても同様に適用できるものである。
【００２１】
以上、図１を参照して、本発明の一実施形態に係る通信システムの概略構成について説明した。次に、本発明の一実施形態にかかる受信端末１００Ｂの構成について説明する。
【００２２】
［１−２．受信端末の構成］
図２は、本発明の一実施形態にかかる受信端末１００Ｂの構成を示す説明図である。以下、図２を用いて本発明の一実施形態にかかる受信端末１００Ｂの構成について説明する。
【００２３】
図２に示したように、本発明の一実施形態にかかる受信端末１００Ｂは、パケット受信部１２０と、経路数推定部１３０と、経路数推定パケット数算出部１３５と、第１欠落判定部１４０と、第２欠落判定部１４５と、バッファ１５０と、データ受信部１６０と、応答部１７０と、情報部１８０と、を含んで構成される。
【００２４】
パケット受信部１２０は、送信端末１００Ａから送信されてくる、順序番号が付与されたパケットを受信するものであり、パケット受信部１２０は受信したパケットを送信されてきた順序通りにバッファ１５０に渡す。
【００２５】
経路数推定部１３０は、送信端末１００Ａと受信端末１００Ｂとの間の経路数を推定するものである。経路数推定部１３０は、情報部１８０から、経路数と、データ受信部１６０が受信した最後尾の順序番号とを取得する。そして経路数推定部１３０は、情報部１８０から取得した経路数と、順序番号と、パケット受信部１２０で受信されたパケットの並びとから、送信端末１００Ａと受信端末１００Ｂとの間の経路数を推定する。
【００２６】
本実施形態では、送信端末１００Ａと受信端末１００Ｂとの間の経路数は以下のように推定される。
【００２７】
パケット受信部１２０で受信しているパケットは、送信端末１００Ａが受信端末１００Ｂに対して順序番号の昇順に送信したパケットとする。これは、受信端末１００Ｂからの応答パケットによって既に送信端末１００Ａが送信した順序番号の小さいパケットを、再度送っていない状態である。このことは、受信端末１００Ｂにおいても、自身の送信する応答パケットによって判断する。
【００２８】
経路数推定部１３０は、情報部１８０から経路数の推定値ｋを取得するとともに、データ受信部１６０が受信した最後尾のパケットの順序番号を取得する。データ受信部１６０は、順序番号がｎ番目（ｎ＝０，１，２，・・・）までのパケットを全て受け取っているとすると、ｎ＝０の場合は、データ受信部１６０は未だパケットを受け取っていない。その後、順序番号がｎ番目より大きいｍ番目のパケットをパケット受信部１２０が受信したとする。ｍ−ｎ≦ｋの場合は、経路数推定部１３０は、ｋを経路数の推定値とする。一方、ｍ−ｎ＞ｋである場合、経路数推定部１３０は、先のｍ番目のパケットを含め、以降受信するｎ＋１番目よりも順序番号が大きいパケットからいくつかのパケットを選び、選んだパケットをパケット受信部１２０が受信した順に並べる。そして経路数推定部１３０は、このパケット列について、順序番号が降順に並ぶ個数を数え上げる。ただし順序番号は連続していなくても良い。またパケットが１つの場合にはその個数を１とする。例えば、順序番号が１３、１１と並んでいれば、順序番号が降順に並ぶ個数は２であり、順序番号が１３しかない場合には、順序番号が降順に並ぶ個数は１となる。
【００２９】
ｍ−ｎ＞ｋである場合、経路数推定部１３０は、この個数が最大となるようにパケット列を選び、この列の順序番号が降順に並ぶ個数を経路数の推定値とする。これは、通常であれば順序番号の昇順でパケットが到着するが、ネットワーク１０で分岐があることで、パケットの到達順序が逆になることがある。従って、本実施形態では順序番号が降順の並ぶ個数を分岐の数と推定する。
【００３０】
数え上げる対象とするパケットは、順序番号がｎ＋１番目からｍ番目までの全てのパケットをパケット受信部１２０が受信するまでの間に、パケット受信部１２０が受信した順序番号が最大の番号と、ｎ＋１番目のとの間に入る全てのパケットである。この数え上げの対象には、順序番号がｎ＋１番目のパケットも含まれる。例えば、ｎ＝１０、ｍ＝１３の場合に、図９に示したような順序で受信端末１００Ｂがパケットを受信したとする。この場合は、パケット受信部１２０が、ｎ＋１＝１１番からｍ＝１３番までの全てのパケット、すなわち１１番と１２番のパケットを受信するまでに受信したパケットの最大の番号は１６番である。このときに、１１番から１６番の間に入る全てのパケット、すなわち１１、１２、１３、１４、１５、１６番が数え上げの対象となる。そして、順序番号が降順に並ぶ個数の最大値は、１３−１２−１１や１６−１５−１４の場合の「３」となる。この値が経路数の推定値となる。本実施形態における経路数の推定方法はこの通りである。
【００３１】
経路数推定部１３０は、推定した経路数を情報部１８０へ渡す。また、上述した経路数の推定方法で説明した、数え上げの対象としたパケットをパケット受信部１２０が受信した順に並べた列（以下「受信列」と称する）を経路数推定パケット数算出部１３５に渡す。
【００３２】
本実施形態においては、図９に示したような順序で受信端末１００Ｂがパケットを受信した場合に、例えば図１１に示したような経路で転送されているとする。
【００３３】
経路数推定パケット数算出部１３５は、経路数推定パケット数を算出するものである。経路数推定パケット数の算出に際しては、経路数推定パケット数算出部１３５は経路数推定部１３０から受信列を受け取る。
【００３４】
以下、経路数推定パケット数算出部１３５による経路数推定パケット数の算出方法について説明する。
【００３５】
経路数推定パケット数算出部１３５は、経路数推定部１３０から受け取った受信列から、順序番号が降順に並ぶ個数が最大となるようにパケット列を選ぶ。ただし、順序番号は連続していなくても良い。
【００３６】
このパケット列内の順序番号が最小となるパケットをαとする。もしパケット列が複数選択出来る場合は、パケット列内で順序番号が最小であるパケット同士を比較して、順序番号が最小のパケットをαに決定する。
【００３７】
そして、経路数推定パケット数算出部１３５は、受信列について列の先頭から数えてαまでの個数を、経路数推定パケット数に決定する。
【００３８】
例えば、図９に示したような順序で受信端末１００Ｂがパケットを受信したとする。順序番号が降順に並ぶ個数が最大となるようにパケット列を選ぶと、例えば１３−１２−１１や１６−１５−１４などを選ぶことができる。この中で、順序番号が最小のパケット同士を比較すると、最小の順序番号は「１１」である。そして、受信列の先頭の順序番号「１３」のパケットから数えて、その順序番号「１１」までのパケットの数は５である。従って、経路数推定パケット数算出部１３５は、経路数推定パケット数を５と算出する。経路数推定パケット数算出部１３５による経路数推定パケット数の算出方法は以上の通りである。
【００３９】
経路数推定パケット数算出部１３５は、上述のように算出した経路数推定パケット数が、情報部１８０に格納されている経路数推定パケット数よりも大きければ、算出した経路数推定パケット数を情報部１８０に渡す。
【００４０】
第１欠落判定部１４０は、情報部１８０から、データ受信部１６０が受信した最後尾の順序番号と、経路数の推定値ｋとを取得し、パケット受信部１２０が未だ受信していないパケットが未到着なのか、経路途中で欠落しているのかを判定するものである。第１欠落判定部１４０は、パケットが欠落していると判定すると、応答部１７０へ、欠落しているパケットの順序番号を知らせる。
【００４１】
第１欠落判定部１４０による、パケット欠落判定方法について以下で説明する。
【００４２】
情報部１８０が保持している、データ受信部１６０が受信した最後尾の順序番号がｎ番目（ｎ＝０，１，２，・・・）であったとする。第１欠落判定部１４０は、パケット受信部１２０で、順序番号がｎ＋１番目より大きいｍ番目のパケットを受信した場合に、そのパケットを含め、以降受信するｎ＋１番目よりも順序番号が大きいパケットから選んだパケットを、パケット受信部１２０が受信した順に並べる。そして、このパケット列について、順序番号が降順に並ぶ個数を数える。ただし、順序番号は連続していなくても良い。この個数がｋ個以上になるパケット列があれば、第１欠落判定部１４０は、ｎ＋１番目から、これまで受信したｎ＋１番目より大きい番号の中で最小の順序番号の１つ手前までのパケットが欠落していると判定する。
【００４３】
第２欠落判定部１４５は、パケット受信部１２０が受信したパケットの並びと、情報部１８０に記録されているデータ受信部１６０が受信した最後尾の順序番号と、情報部１８０に記録されている経路数推定パケット数とから、パケット受信部１２０が未だ受信していないパケットが未到着なのか、経路途中で欠落しているのかを判定するものである。第２欠落判定部１４５は、パケットが欠落していると判定すると、応答部１７０へ、欠落しているパケットの順序番号を知らせる。
【００４４】
第２欠落判定部１４５による、パケット欠落判定方法について以下で説明する。
【００４５】
情報部１８０が保持している、データ受信部１６０が受信した最後尾の順序番号がｎ番目（ｎ＝０，１，２，・・・）であったとする。第２欠落判定部１４５は、パケット受信部１２０で、順序番号がｎ＋１番目より大きいｍ番目のパケットを受信した場合に、そのパケットから数えて以降受信するｎ＋１番目よりも順序番号が大きいパケットの個数が経路数推定パケット数以上になったときに、ｎ＋１番目のパケットは欠落していると判定する。
【００４６】
本発明では、第１欠落判定部１４０と、第２欠落判定部１４５とは、それぞれ独立して動作してもよく、第１欠落判定部１４０でパケットの欠落を判定させてから、第２欠落判定部１４５でパケットの欠落を判定させるようにしてもよく、逆に、第２欠落判定部１４５でパケットの欠落を判定させてから、第１欠落判定部１４０でパケットの欠落を判定させるようにしてもよい。第２欠落判定部１４５は、第１欠落判定部１４０のパケット欠落判定機能を補完するものであるので、第１欠落判定部１４０でパケットの欠落を判定させてから、第２欠落判定部１４５でパケットの欠落を判定させる方が、より好ましい。
【００４７】
バッファ１５０は、パケット受信部１２０からパケットを受け取るものであり、バッファ１５０が受け取ったパケットは、順序番号の昇順に、重複無くデータ受信部１６０へ送られる。また、データ受信部１６０に送られた順序番号の最後尾の番号はバッファ１５０から情報部１８０に送られる。パケット受信部１２０から受け取ったパケットがバッファ１５０に存在しているパケットと重複したり、既にデータ受信部１６０に送ったパケットと同じものであったりした場合には、そのパケットはバッファ１５０から破棄される。
【００４８】
データ受信部１６０は、バッファ１５０から渡されたパケットを受信するものである。
【００４９】
応答部１７０は、送信端末１００Ａがパケットを送る数や番号を制御するための応答パケットを生成して送信するものである。応答パケットの送信を行うために、応答部１７０は情報部１８０から、データ受信部１６０が受信した最後尾の順序番号ｎを取得する。また応答部１７０は、第１欠落判定部１４０、第２欠落判定部１４５から、欠落しているパケットの情報も取得する。
【００５０】
応答部１７０が生成する応答パケットの内容は、（１）どの順序番号のパケットまで正しい順序で受け取ったかを知らせるものであってもよく、また、（２）特定の順序番号のパケットの再送を要求するものであってもよい。いずれの内容のパケットであっても、応答パケットを受信した送信端末１００Ａは、どのパケットが受信端末１００Ｂに送られていないのかが分かり、送信端末１００Ａは受信端末１００Ｂに届けるべきパケットを再送することが出来る。
【００５１】
なお、受信端末１００Ｂからの応答パケットは、送信端末１００Ａと受信端末１００Ｂとの間で予め定められた制御のタイミングで、上記（１）または（２）の少なくともいずれかの内容が記述されて、受信端末１００Ｂから送信端末１００Ａへ送信される。
【００５２】
応答部１７０は、応答パケットを送るタイミングになった場合に、バッファ１５０にパケットが無いときは、予め定められた上記（１）または（２）の少なくともいずれかの内容で応答パケットを送信する。一方、応答部１７０は、応答パケットを送るタイミングになった場合に、バッファ１５０にパケットがあるとき、すなわち順序番号どおりにパケットが届いておらず、抜けている順序番号のパケットがあるのでバッファ１５０にパケットがあるときは、上記（１）または（２）の内容を送信する場合であっても、第１欠落判定部１４０または第２欠落判定部１４５から欠落している順序番号を受け取るまで応答パケットの送信を控える。ただし、（２）の場合には、その抜けているパケットが無いものとして、すなわちその抜けているパケットの再送を要求しない内容で、応答部１７０は応答パケットを送信しても良い。その後、第１欠落判定部１４０または第２欠落判定部１４５からパケット欠落の通知があれば、応答部１７０はそのパケットの欠落を送信端末１００Ａに通知する。
【００５３】
情報部１８０は、経路数推定部１３０が推定した経路数と、経路数推定パケット数算出部１３５が算出した経路数推定パケット数と、バッファ１５０がデータ受信部１６０に送ったパケットのうち最後尾の順序番号とを保存する。情報部１８０が保存する、経路数の推定値の初期値、及び、経路数推定パケット数の初期値は、いずれも１である。また、最後尾の順序番号は、この番号以前の順序番号のパケットを、データ受信部１６０が全て受信していることを保証するものである。
【００５４】
以上、図２を用いて本発明の一実施形態にかかる受信端末１００Ｂの構成について説明した。次に、本発明の一実施形態にかかる受信端末１００Ｂの動作について説明する。
【００５５】
［１−３．受信端末の動作］
上述したように、パケット受信部１２０は、送信端末１００Ａから送信された、順序番号が付与されたパケットを受信し、送られてきた順序通りに、バッファ１５０へ受信したパケットを渡す。
【００５６】
図３は、本発明の一実施形態にかかる受信端末１００Ｂに含まれる経路数推定部１３０の動作について示す流れ図である。以下、図３を用いて経路数推定部１３０の動作について詳細に説明する。
【００５７】
前提として、パケット受信部１２０で受信しているパケットは、送信端末１００Ａが受信端末１００Ｂに対して順序番号の昇順に送信したパケットであるとする。経路数推定部１３０は、情報部１８０から、経路数の推定値ｋを取得するとともに、データ受信部１６０が受信した最後尾のパケットの順序番号ｎを取得する（ステップＳ３０１）。
【００５８】
続いて、経路数推定部１３０は、パケット受信部１２０が新たに受信したパケットの順序番号ｍを取得する（ステップＳ３０２）。経路数推定部１３０は、ｍ−ｎ≦ｋとなるかどうかを判定し（ステップＳ３０３）、ｍ−ｎ≦ｋであれば後段のステップＳ３０８へ進むが、ｋ＜ｍ−ｎであれば、経路数推定部１３０は、パケット受信部１２０が順序番号ｍのパケットの次に受信したパケットの順序番号を取得する（ステップＳ３０４）。
【００５９】
続いて、経路数推定部１３０は、順序番号ｍのパケットを含め、これまで取得した、順序番号ｎよりも順序番号が大きいパケットから選んだパケットを、パケット受信部１２０が受信した順に整列し、このパケット列について、順序番号が降順に並ぶ個数ｄを計数する（ステップＳ３０５）。数え上げの対象とするパケットは、順序番号がｎ＋１番目からｍ番目までの全てのパケットをパケット受信部１２０が受信するまでの間に、パケット受信部１２０が受信した順序番号が最大のパケットと、順序番号がｎ＋１番のパケットとの間に入る全てのパケットである。経路数推定部１３０は、この個数が最大となるように選んだパケット列について、順序番号が降順に並ぶ個数ｄを経路数の推定値の候補とする。
【００６０】
経路数推定部１３０は、上記ステップＳ３０５で数え上げた、順序番号が降順に並ぶ個数が最大となるように選んだパケット列について、順序番号が降順に並ぶ個数ｄを経路数の推定値ｋと決定する（ステップＳ３０６）。そして経路数推定部１３０は、順序番号がｎ＋１番目からｍ番目までの全てのパケットをパケット受信部１２０が受信するまでの間に、パケット受信部１２０が受信した順序番号が最大のパケットと、順序番号がｎ＋１番のパケットとの間に入る全てのパケットを受信したかどうかを判断する（ステップＳ３０７）。全てのパケットを受信していれば、経路数推定部１３０は上記ステップＳ３０６で決定した経路数の推定値ｋを情報部１８０に渡すとともに、受信列を経路数推定パケット数算出部１３５に渡す（ステップＳ３０８）。一方、まだ全てのパケットを受信していなければ、上記ステップＳ３０４に戻って、経路数推定部１３０は、さらに次に受信したパケットの順序番号を取得する処理を実行する。
【００６１】
このように、経路数推定部１３０はネットワーク１０における経路数を推定することができる。受信端末１００Ｂは、この経路数推定部１３０が推定した経路数を用いて、パケットが欠落しているかどうかの判定を行うことができる。
【００６２】
以上、図３を用いて経路数推定部１３０の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末１００Ｂに含まれる経路数推定パケット数算出部１３５の動作について説明する。
【００６３】
図４は、本発明の一実施形態にかかる受信端末１００Ｂに含まれる経路数推定パケット数算出部１３５の動作について示す流れ図である。以下、図４を用いて経路数推定パケット数算出部１３５の動作について詳細に説明する。
【００６４】
前提として、パケット受信部１２０で受信しているパケットは、送信端末１００Ａが受信端末１００Ｂに対して順序番号の昇順に送信したパケットであるとする。経路数推定パケット数算出部１３５は、経路数推定部１３０から受信列を受け取り、また情報部１８０から経路数推定パケット数を取得する（ステップＳ４０１）。
【００６５】
続いて経路数推定パケット数算出部１３５は、受け取った受信列から、受信番号が降順に並ぶ個数が最大になるようなパケット列を選ぶ（ステップＳ４０２）。続いて経路数推定パケット数算出部１３５は、選んだパケット列の順序番号が最小となるパケットをαとし、受信列の先頭から数えてαまでの個数を経路数推定パケット数として算出する（ステップＳ４０３）。ここで、受信番号が降順に並ぶ個数が最大になるようなパケット列が複数選択可能である場合には、経路数推定パケット数算出部１３５は、パケット列内で順序番号が最小であるパケット同士を比較して、順序番号が最小のパケットをαに決定する。
【００６６】
続いて経路数推定パケット数算出部１３５は、上記ステップＳ４０３で算出した経路数推定パケット数が、上記ステップＳ４０１で情報部１８０から取得した経路数推定パケット数よりも大きければ、上記ステップＳ４０３で算出した経路数推定パケット数を情報部１８０へ渡す（ステップＳ４０４）。
【００６７】
このように、経路数推定パケット数算出部１３５は、経路数推定部１３０から受信列を受け取り、また情報部１８０から経路数推定パケット数を取得することで、経路数推定パケット数を算出することが出来る。
【００６８】
以上、図４を用いて経路数推定パケット数算出部１３５の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末１００Ｂに含まれる第１欠落判定部１４０の動作について説明する。
【００６９】
図５は、本発明の一実施形態にかかる受信端末１００Ｂに含まれる第１欠落判定部１４０の動作を示す流れ図である。以下、図５を用いて第１欠落判定部１４０の動作について詳細に説明する。
【００７０】
まず、第１欠落判定部１４０はパケットの欠落判定処理に際し、情報部１８０から、経路数の推定値ｋと、データ受信部１６０が受信した最後尾のパケットの順序番号ｎとを取得する（ステップＳ５０１）。次に、第１欠落判定部１４０はパケット受信部１２０が新たに受信したパケットの順序番号ｍを受け取り（ステップＳ５０２）、ｎ＋１＜ｍとなっているかどうかを判定する（ステップＳ５０３）。
【００７１】
上記ステップＳ５０３の判定の結果、ｎ＋１≧ｍである場合には、第１欠落判定部１４０は、受信パケットに欠落は発生していないと判断し、処理を終了する。一方、上記ステップＳ５０３の判定の結果、ｎ＋１＜ｍである場合には、続いて第１欠落判定部１４０はｋ＝１であるかどうかを判定する（ステップＳ５０４）。
【００７２】
上記ステップＳ５０４の判定の結果、情報部１８０が保持している経路数の推定値ｋの値がｋ＝１である場合には、受信パケットに欠落が発生していると判断し、第１欠落判定部１４０は応答部１７０へパケットの欠落を通知する（ステップＳ５０５）。このステップＳ４０５では、第１欠落判定部１４０は、ｎ＋１番目から、これまで受信したｎ＋１番より大きい番号の中で最小の順序番号の一つ手前までの順序番号のパケットが欠落していると判定し、応答部１７０へパケットの欠落を通知する。
【００７３】
一方、上記ステップＳ５０４の判定の結果、情報部１８０が保持している経路数の推定値ｋの値がｋ＝１でない場合には、次に、第１欠落判定部１４０はパケット受信部１２０が次に受信したパケットの順序番号を取得する（ステップＳ５０６）。
【００７４】
上記ステップＳ５０６でパケット受信部１２０が次に受信したパケットの順序番号を取得すると、続いて第１欠落判定部１４０は、上記ステップＳ５０６で取得した順序番号がｎ＋１であるかどうかを判定する（ステップＳ５０７）。
【００７５】
上記ステップＳ５０７の判定の結果、上記ステップＳ５０６で取得した順序番号がｎ＋１であるならば、第１欠落判定部１４０は処理を終了する。一方、上記ステップＳ５０７の判定の結果、上記ステップＳ５０６で取得した順序番号がｎ＋１で無いならば、続いて第１欠落判定部１４０は、順序番号ｍのパケットを含め、これまでパケット受信部１２０から受け取ったｎ＋１より大きい順序番号から選んだ順序番号を、パケット受信部１２０が受信した順に並べた列を対象に、ある番号から始めて順序番号が降順に並ぶ個数ｄを数え上げる（ステップＳ５０８）。
【００７６】
そして第１欠落判定部１４０は、上記ステップＳ５０８で数え上げた個数ｄについて、ｋ≦ｄを満たす列が存在するかどうかを判定する（ステップＳ５０９）。ｋ≦ｄを満たす列が１つでも存在すれば、受信パケットに欠落が発生していると判断し、第１欠落判定部１４０は応答部１７０へパケットの欠落を通知する（ステップＳ５０５）。一方、どの列のｄについてもｄ＜ｋであるならば、上記ステップＳ５０６に戻り、第１欠落判定部１４０はパケット受信部１２０が次に受信したパケットの順序番号を取得する。
【００７７】
以上、図５を用いて第１欠落判定部１４０の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末１００Ｂに含まれる第２欠落判定部１４０の動作について説明する。
【００７８】
図６は、本発明の一実施形態にかかる受信端末１００Ｂに含まれる第２欠落判定部１４５の動作を示す流れ図である。以下、図６を用いて第２欠落判定部１４５の動作について詳細に説明する。
【００７９】
まず、第２欠落判定部１４５はパケットの欠落判定処理に際し、情報部１８０から、データ受信部１６０が受信した最後尾のパケットの順序番号ｎと、経路数推定パケット数とを取得する（ステップＳ６０１）。次に、第２欠落判定部１４５はパケット受信部１２０が新たに受信したパケットの順序番号ｍを受け取る（ステップＳ６０２）。ここで、ｍ＝ｎ＋１であれば、第２欠落判定部１４５は動作を終了する。一方、ｍ≠ｎ＋１であれば、第２欠落判定部１４５は、パケット受信部１２０から受け取ったパケットの個数ｓと、経路数推定パケット数ｔとを比較する（ステップＳ６０３）。
【００８０】
第２欠落判定部１４５は、パケット受信部１２０から受け取ったパケットの個数ｓと、経路数推定パケット数ｔとを比較して、ｓ＜ｔであった場合には、上記ステップＳ６０２に戻って、パケット受信部１２０が新たに受信したパケットの順序番号ｍを受け取る。一方、ｔ≦ｓであった場合には、第２欠落判定部１４５はｎ＋１番目のパケットは欠落していると判定し、パケットの欠落を応答部１７０へ通知する（ステップＳ６０４）。
【００８１】
以上、図６を用いて第２欠落判定部１４５の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末１００Ｂに含まれるバッファ１５０の動作について説明する。
【００８２】
図７は、本発明の一実施形態にかかる受信端末１００Ｂに含まれるバッファ１５０の動作を説明する流れ図である。以下、図７を用いてバッファ１５０の動作について説明する。
【００８３】
まず、バッファ１５０はパケット受信部１２０からパケットを受け取ると（ステップＳ７０１）、受信したパケットに付与されている順序番号の小さい順に、受け取ったパケットをデータ受信部１６０へ渡す（ステップＳ７０２）。バッファ１５０は、欠落している順序番号のパケットがあれば、そのパケットがパケット受信部１２０から送られて来るまで待機する。また、既にデータ受信部１６０へ渡したものと重複しているパケットがあれば、バッファ１５０はそのパケットを破棄する。
【００８４】
そして、バッファ１５０は、データ受信部１６０へ渡した最後のパケットの順序番号を情報部１８０に渡す。
【００８５】
以上、図７を用いてバッファ１５０の動作について説明した。次に、本発明の一実施形態にかかる受信端末１００Ｂに含まれる応答部１７０の動作について説明する。
【００８６】
図８は、本発明の一実施形態にかかる応答部１７０の動作について示す流れ図である。以下、図８を用いて一実施形態にかかる応答部１７０の動作について説明する。
【００８７】
応答部１７０は、データ受信部１６０が受け取った最後のパケットの順序番号ｎを情報部１８０から取得する（ステップＳ８０１）。次に、応答部１７０はバッファ１５０にパケットが存在しているかどうかを確認する（ステップＳ８０２）。
【００８８】
上記ステップＳ８０２の確認の結果、バッファ１５０にパケットが無いか、または順序番号がｎ＋１であるパケットがあれば、順序番号通りにパケットが受信出来ているので、応答部１７０は、予め定められた上記（１）または（２）の少なくともいずれかの内容で応答パケットを送信し、処理を終了する。
【００８９】
一方、上記ステップＳ８０２の確認の結果、バッファ１５０に順序番号がｎ＋２以降のパケットが存在していれば、応答部１７０は第１欠落判定部１４０または第２欠落判定部１４５の少なくともいずれか一方から、パケットの欠落の通知を受けているかどうかを確認する（ステップＳ８０３）。第１欠落判定部１４０または第２欠落判定部１４５の少なくともいずれか一方からパケットの欠落の通知を受けていなければ、上記ステップＳ８０２に戻り、応答部１７０は応答パケットの送信を控える。一方、第１欠落判定部１４０または第２欠落判定部１４５の少なくともいずれか一方からパケットの欠落の通知を受けていれば、応答部１７０は、送信端末１００Ａに対して、欠落しているパケットの番号を応答パケットにより通知する（ステップＳ８０４）。この通知は、予め定められた上記（１）または（２）の少なくともいずれかの内容によって行われる。
【００９０】
以上、図８を用いて本発明の一実施形態にかかる応答部１７０の動作について説明した。このように、応答部１７０は第１欠落判定部１４０または第２欠落判定部１４５の少なくともいずれか一方からパケットの欠落の通知を受けるまで応答パケットの送信を控えることで、ネットワーク１０への無駄なトラフィックの発生を抑えることができる。
【００９１】
ここで、経路数推定部１３０、経路数推定パケット数算出部１３５、第１欠落判定部１４０、第２欠落判定部１４５、バッファ１５０、応答部１７０の具体的な動作例を説明する。送信端末１００Ａは、受信端末１００Ｂに対して、１、２、３、・・・と続く順序番号を付与したデータパケットを番号の昇順に送信している。以降、パケットの番号についての記述がある場合には、特に断らない限りこの順序番号を指す。受信端末１００Ｂは、送信端末１００Ａが送信したデータパケットを受け取り、１パケットを受け取る度に１応答パケットを送信端末１００Ａに送信しているとする。
【００９２】
送信端末１００Ａから送信されるデータパケット、受信端末１００Ｂから送信される応答パケット共に、経路途中のネットワーク１０の中で、ルータ（図示せず）等によってパケットが複数の経路に分配されている可能性があるが、送信端末１００Ａ、受信端末１００Ｂとも、いくつの経路に分配されているかは分からない。
【００９３】
ここで、受信端末１００Ｂが、１０番まで順序通りにデータパケットを受信しており、データ受信部１６０が受信したパケットを全て受け取っているとする。これ以降、送信端末１００Ａから受信するパケットについての受信端末１００Ｂの動作を、図面を参照しながら具体的に説明する。このとき、情報部１８０にはデータ受信部１６０が受信した最後の順序番号１０番と、経路数の推定値ｋ＝１と、経路数推定パケット数ｔ＝１とが保存されている。
【００９４】
このとき、パケット受信部１２０が１３番のパケットを受信したとする。パケット受信部１２０が受信した１３番のパケットはバッファ１５０に渡される。そして、その１３番のパケットも含め、図９に示した順序でパケット受信部１２０がパケットを受信した場合に、経路数推定部１３０の動作を、図３に示した流れ図に沿って説明する。
【００９５】
まず、経路数推定部１３０は、情報部１８０から、分岐数の推定値ｋ＝１を取得するとともに、データ受信部１６０が受信した最後尾のパケットの順序番号ｎ＝１０を取得する（ステップＳ３０１）。続いて、経路数推定部１３０は、パケット受信部１２０が新たに受信したパケットの順序番号ｍ＝１３を取得する（ステップＳ３０２）。経路数推定部１３０は、ｍ−ｎ≦ｋとなるかどうかを判定し（ステップＳ３０３）、ｋ＜ｍ−ｎであるので、経路数推定部１３０は、パケット受信部１２０が順序番号ｍ＝１３のパケットの次に受信したパケットの順序番号（１２）を取得する（ステップＳ３０４）。
【００９６】
１２番のパケットを受信した時点で、降順に並ぶ個数は１３番、１２番であるから２つである。よって、順序番号が降順に並ぶ個数ｄはｄ＝２である（ステップＳ３０５）。そして、経路数推定部１３０は、順序番号が降順に並ぶ個数ｄ＝２を経路数の推定値ｋの候補とする（ステップＳ３０６）。
【００９７】
１２番のパケットを受信した時点での最大の順序番号は１３である。そしてパケット受信部１２０は１１番のパケットを受信していないので、経路数推定部１３０は、パケット受信部１２０が受信した順序番号が最大のパケット（１３番のパケット）と、順序番号がｎ＋１番のパケット（１１番の）との間に入る全てのパケットを受信したかどうかを判断し（ステップＳ３０７）、全てのパケットを受信していないので、ステップＳ３０４に戻って、経路数推定部１３０は、さらに次に受信したパケットの順序番号を取得する処理を実行する。
【００９８】
その後、パケット受信部１２０が１４番のパケットを受信すると、１４番のパケットを受信した時点で、降順に並ぶ個数は１３番、１２番、１１番または１６番、１５番、１４番であるから３つである。従って、順序番号が降順に並ぶ個数ｄはｄ＝３である（ステップＳ３０５）。そして、経路数推定部１３０は、順序番号が降順に並ぶ個数ｄ＝３を経路数の推定値ｋの候補とする（ステップＳ３０６）。
【００９９】
１４番のパケットを受信した時点での最大の順序番号は１６である。経路数推定部１３０は、パケット受信部１２０が受信した順序番号が最大のパケット（１６番のパケット）と、順序番号がｎ＋１番のパケット（１１番の）との間に入る全てのパケットを受信したかどうかを判断する（ステップＳ３０７）。１４番のパケットを受信した時点で、１１番から１６番までの全てのパケットを受信しているので、経路数推定部１３０は上記ステップＳ３０６で候補とした経路数の推定値ｋ＝３を情報部１８０に保存する（ステップＳ３０８）。また経路数推定部１３０は、経路数推定パケット数算出部１３５に受信列を送る。
【０１００】
次に、経路数推定パケット数算出部１３５の動作を、図４に示した流れ図に沿って説明する。
【０１０１】
経路数推定パケット数算出部１３５は、経路数推定部１３０から図９に示す受信列を受け取り、また情報部１８０から経路数推定パケット数＝１を取得する（ステップＳ４０１）。
【０１０２】
続いて経路数推定パケット数算出部１３５は、受け取った受信列から、受信番号が降順に並ぶ個数が最大になるようなパケット列を選ぶが、ここでは、そのようなパケット列として、１３−１２−１１や、１６−１５−１４を選ぶ（ステップＳ４０２）。
【０１０３】
続いて経路数推定パケット数算出部１３５は、上記ステップＳ４０２でパケット列を２つ選んでいるので、その２つのパケット列におけるパケットの最小の順序番号を比較し、最小の順序番号α＝１１を決定する。これにより、図９に示す受信列において、先頭のパケットから順序番号１１番のパケットまでのパケット数は５となるから、経路数推定パケット数算出部１３５は経路数推定パケット数を５と決定する（ステップＳ４０３）。
【０１０４】
続いて経路数推定パケット数算出部１３５は、決定した経路数推定パケット数と、情報部１８０から取得した経路数推定パケット数を比較する。ここでは、上記ステップＳ４０３で決定した経路数推定パケット数の方が大きいので、経路数推定パケット数算出部１３５は上記ステップＳ４０３で算出した経路数推定パケット数＝５を情報部１８０へ渡す（ステップＳ４０４）。
【０１０５】
次に、経路数推定部１３０が推定した経路数の推定値が３、経路数推定パケット数算出部１３５が算出した経路数推定パケット数が５の場合における、受信端末１００Ｂでのパケットの欠落判断処理について、図１０に示すような受信列でパケットを受信した場合を例にあげて説明する。なおパケットの欠落判断処理に際し、情報部１８０には、データ受信部１６０が受信したパケットの最後尾の順序番号２０番と、経路数の推定値ｋ＝３と、経路数推定パケット数ｔ＝５が保存されているものとする。
【０１０６】
図１０に示した順序番号２１番のパケットは、送信端末１００Ａから受信端末１００Ｂへの経路の途中で欠落し、実際には受信端末１００Ｂは当該順序番号２１番のパケットは受信出来ていないものとする。すなわち、受信端末１００Ｂは、順序番号２６番のパケットの次は順序番号２７番のパケットを受信することになる。
【０１０７】
受信端末１００Ｂは、順序番号２７番のパケットを受信するまで以下のような動作を実行する。まず、第１欠落判定部１４０の動作を図５に示した流れ図に即して説明する。
【０１０８】
第１欠落判定部１４０はパケットの欠落判定処理に際し、情報部１８０から、データ受信部１６０が受信したパケットの最後尾の順序番号ｎ＝２０番と、経路数の推定値ｋ＝３とを取得する（ステップＳ５０１）。次に、第１欠落判定部１４０はパケット受信部１２０が新たに受信したパケットの順序番号ｍ＝２５を受け取り（ステップＳ５０２）、ｎ＋１＜ｍとなっているかどうかを判定する（ステップＳ５０３）。ｎ＋１（＝２１）＜ｍ（＝２５）となるので、続いて第１欠落判定部１４０はｋ＝１であるかどうかを判定する（ステップＳ５０４）。ｋ＝１ではないので、次に、第１欠落判定部１４０はパケット受信部１２０が次に受信したパケットの順序番号（２２）を取得する（ステップＳ５０６）。
【０１０９】
上記ステップＳ５０６でパケット受信部１２０が次に受信したパケットの順序番号（２２）を取得すると、続いて第１欠落判定部１４０は、上記ステップＳ５０６で取得した順序番号号（２２）がｎ＋１であるかどうかを判定する（ステップＳ５０７）。ステップＳ５０６で取得した順序番号は２２であり、ｎ＋１＝２１ではないので、第１欠落判定部１４０は、これまでパケット受信部１２０から受け取ったｎ＋１（＝２１）より大きい順序番号から選んだ順序番号を、パケット受信部１２０が受信した順に並べた列を対象に、ある番号から始めて順序番号が降順に並ぶ個数ｄを数え上げる（ステップＳ５０８）。ここでは、降順に並ぶ個数の最大値ｄは、ｄ＝１となる。
【０１１０】
続いて第１欠落判定部１４０は、上記ステップＳ５０８で数え上げた個数ｄについて、ｋ≦ｄを満たす列が存在するかどうかを判定する（ステップＳ５０９）。どの列のｄについてもｄ＜ｋであるので、上記ステップＳ５０６に戻り、第１欠落判定部１４０はパケット受信部１２０が次に受信したパケットの順序番号（２４）を取得する。続いて第１欠落判定部１４０はステップＳ５０６で取得した順序番号（２４）がｎ＋１であるかどうかを判定する（ステップＳ５０７）。ステップＳ５０６で取得した順序番号は２４であり、ｎ＋１＝２１ではないので、第１欠落判定部１４０は、同様に順序番号が降順に並ぶ個数ｄを数え上げる（ステップＳ５０８）。ここでは、降順に並ぶ個数の最大値ｄは、ｄ＝２となる。
【０１１１】
このように、第１欠落判定部１４０は上記ステップＳ５０６からステップＳ５０９までの処理を繰り返す。その後、ステップＳ５０６で、第１欠落判定部１４０は順序番号２７番を受け取った後、第１欠落判定部１４０はパケット受信部１２０が次に受信したパケットの順序番号を受け取る。すると、順序番号２３番までのパケットを受信したとき、パケットが降順に並ぶ個数の最大値ｄは、順序番号２５−２４−２３の並びから、ｄ＝３となる。従って、第１欠落判定部１４０は、順序番号２３番までのパケットを受信したときに、初めて順序番号２１番のパケットが欠落していると判定することができる。
【０１１２】
以上、第１欠落判定部１４０の動作を説明した。続いて、第２欠落判定部１４５の動作を図６に示した流れ図に即して説明する。
【０１１３】
まず第２欠落判定部１４５は、パケットの欠落判定処理に際し、情報部１８０から、データ受信部１６０が受信した最後尾のパケットの順序番号ｎ＝２０と、経路数推定パケット数ｔ＝５とを取得する（ステップＳ６０１）。次に、第２欠落判定部１４５はパケット受信部１２０が新たに受信したパケットの順序番号ｍ＝２５を受け取る（ステップＳ６０２）。ｍ≠ｎ＋１であるので、第２欠落判定部１４５は、パケット受信部１２０から受け取ったパケットの個数ｓ＝１と、経路数推定パケット数ｔ＝５とを比較する（ステップＳ６０３）。ｓ＜ｔであるので、第２欠落判定部１４５はステップＳ６０２に戻って、パケット受信部１２０が新たに受信したパケットの順序番号ｍ＝２２を受け取る。
【０１１４】
ｍ≠ｎ＋１であるので、第２欠落判定部１４５は、パケット受信部１２０から受け取ったパケットの個数ｓ＝２と、経路数推定パケット数ｔ＝５とを比較する（ステップＳ６０３）。ｓ＜ｔであるので、第２欠落判定部１４５はステップＳ６０２に戻って、パケット受信部１２０が新たに受信したパケットの順序番号を受け取る。同様に、第２欠落判定部１４５はステップＳ６０２とステップＳ６０３の処理を繰り返す。
【０１１５】
その後、ステップＳ６０２で、第２欠落判定部１４５はパケット受信部１２０が新たに受信したパケットの順序番号ｍ＝２７を受け取ったとする。ｍ≠ｎ＋１であるので、第２欠落判定部１４５は、パケット受信部１２０から受け取ったパケットの個数ｓ＝５と、経路数推定パケット数ｔ＝５とを比較する（ステップＳ６０３）。ｔ≦ｓであるので、第２欠落判定部１４５はｎ＋１（２１）番目のパケットは欠落していると判定し、パケットの欠落を応答部１７０へ通知する（ステップＳ６０４）。
【０１１６】
以上、第２欠落判定部１４５の動作を説明した。続いて、バッファ１５０の動作を図７に示した流れ図に即して説明する。
【０１１７】
バッファ１５０は、パケット受信部１２０から２１番のパケットを受け取ると（ステップＳ７０１）、受け取った２１番のパケットをデータ受信部１６０へ渡す（ステップＳ７０２）とともに、バッファ１５０は、データ受信部１６０へ渡した最後のパケットの順序番号（２１）を情報部１８０に渡す。
【０１１８】
以上、バッファ１５０の動作を説明した。続いて、応答部１７０の動作を図８に示した流れ図に即して説明する。
【０１１９】
応答部１７０は、データ受信部１６０が受け取った最後のパケットの順序番号ｎ＝２０を情報部１８０から取得する（ステップＳ８０１）。ここで、バッファ１５０が、順序番号２５、２２、２４、２６、２７のパケットを受け取っていたとすると、順序番号ｎ＋１以降のパケットしか無いので（ステップＳ８０２）、応答部１７０は第１欠落判定部１４０または第２欠落判定部１４５の少なくともいずれか一方から、パケットの欠落の通知を受けているかどうかを確認する（ステップＳ８０３）。ここで、順序番号２７番のパケットを受信した時点で、第２欠落判定部１４５は順序番号２１番のパケットは欠落していると判定し、パケットの欠落を応答部１７０へ通知するので、応答部１７０は、予め定められた上記（１）または（２）の少なくともいずれかの内容で応答パケットを送信端末１００Ａへ送信し、処理を終了する。
【０１２０】
以上、経路数推定部１３０、経路数推定パケット数算出部１３５、第１欠落判定部１４０、第２欠落判定部１４５、バッファ１５０、応答部１７０の具体的な動作例について説明した。
【０１２１】
以上説明したように本発明の一実施形態によれば、送信端末１００Ａと受信端末１００Ｂとの間の経路数が不明な状況で、受信端末１００Ｂで受信したパケットの順序が、送信端末１００Ａで送信された順序と異なっている場合に、経路数推定パケット数を用いることで、受信端末１００Ｂはパケットの欠落の有無を検出することが出来る。
【０１２２】
パケットの欠落の有無の検出に経路数の情報を用いた場合、受信パケットが経路数以上降順に並ばない限り、すなわち、すべての経路からのパケットが少なくとも１つ以上到達しない限り、欠落パケットの再送を要求することが出来ない。上述した実施形態では、図１０のようにパケットが受信端末１００Ｂに到達した場合には、２３番のパケットを受信した時点で初めて２１番のパケットが欠落しているものと判定することが出来る。
【０１２３】
一方、パケットの欠落の有無の検出に経路数推定パケット数の情報を用いた場合、経路数推定パケット数個のパケットを受信した時点でパケットの欠落の有無を判定して、パケットの再送を要求することができる。上述した実施形態では、図１０のようにパケットが受信端末１００Ｂに到達した場合には、２７番のパケットを受信した時点で２１番のパケットが欠落しているものと判定することが出来る。これにより、本発明の一実施形態にかかる受信端末１００Ｂは、すべての経路を経由するパケットを受信する前に、素早くパケットの欠落の有無を検出することが出来る。
【０１２４】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【０１２５】
本発明は、通信装置及び通信制御方法に適用可能であり、特にある一恋のデーを送信する場合にそのデータの到着を保証する通信、例えばＴＣＰやＳＣＴＰに適用可能である。
【符号の説明】
【０１２６】
１００Ａ    送信端末
１００Ｂ    受信端末
１２０    パケット受信部
１３０    経路数推定部
１３５    経路数推定パケット数算出部
１４０    第１欠落判定部
１４５    第２欠落判定部
１５０    バッファ
１６０    データ受信部
１７０    応答部
１８０    情報部
【図１】
0005299459.tif 000002
【図２】
0005299459.tif 000003
【図３】
0005299459.tif 000004
【図４】
0005299459.tif 000005
【図５】
0005299459.tif 000006
【図６】
0005299459.tif 000007
【図７】
0005299459.tif 000008
【図８】
0005299459.tif 000009
【図９】
0005299459.tif 000010
【図１０】
0005299459.tif 000011
【図１１】
0005299459.tif 000012