通信装置及び通信制御方法
【課題】送受信端末間の経路数が不明であって、各経路へのパケットの振り分け方法も不明である場合に、パケットの欠落を判断することが可能な通信装置を提供する。
【解決手段】パケット受信部と、受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定部と、経路数推定パケット数を算出する経路数推定パケット数算出部と、経路の途中で欠落したパケットを判定する第1欠落判定部と、前記経路の途中で欠落したパケットを判定する第2欠落判定部と、前記パケット受信部が受信したパケットを保持するパケット保持部と、前記パケット保持部に保持されているパケット及び前記第1欠落判定部または前記第2欠落判定部の少なくとも一方で欠落と判定されたパケットの順序番号とから、欠落したパケットの再送を前記送信端末へ要求する応答部と、を備えることを特徴とする、通信装置が提供される。
【解決手段】パケット受信部と、受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定部と、経路数推定パケット数を算出する経路数推定パケット数算出部と、経路の途中で欠落したパケットを判定する第1欠落判定部と、前記経路の途中で欠落したパケットを判定する第2欠落判定部と、前記パケット受信部が受信したパケットを保持するパケット保持部と、前記パケット保持部に保持されているパケット及び前記第1欠落判定部または前記第2欠落判定部の少なくとも一方で欠落と判定されたパケットの順序番号とから、欠落したパケットの再送を前記送信端末へ要求する応答部と、を備えることを特徴とする、通信装置が提供される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置及び通信制御方法に関する。
【背景技術】
【0002】
データを小分けされたパケットに変換して伝送するパケット通信においては、通常マルチパス伝送方式が採用されている。マルチパス伝送方式においては、送信元からのパケットの送信順と、受信元でのパケットの受信順とを一致させるための技術が開発されている。
【0003】
例えば、下記の非特許文献1には、パケットベースでマルチパスにルーティングする一連のパケットフローを、複数のパスに振り分けるルータが、そのノードでのパケットの到着間隔によって振り分けるパスを決定する技術が開示されており、1フローを構成する一連のパケットをパケット単位で複数の経路に振り分けるルータが、パケットがそのルータに到着する間隔によってそのパケットを送信する経路を決定する。これにより、受信端末でのパケットの到着順序が、送信端末のパケット送信順序と同じになるよう制御することができる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】“Dynamic Load Balancing Without Packet Reordering”,ACM SIGCOMM Computer Communication Review,June 2007
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、非特許文献1に記載された技術のように送信側でパケットの送信を制御しても、その後の経路がさらに分岐していれば、異なる経路を通ったパケット間で伝送時間に差が生じる。その結果、受信端末は送信順序通りにそれらのパケットを受信できなくなる。送信順序通りにパケットを受信できなかった受信端末は、所望の番号のパケットを受信できなければ、例えそのパケットが、その後に到着するパケットであっても、受信端末はパケットが欠落していると判断してしまい、再送を要求してしまう。また、未達のパケットの到着を待機するにしても、どれだけ到着を待機すれば良いのか不明である。
【0006】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、送受信端末間の経路数が不明であって、各経路へのパケットの振り分け方法も不明である場合に、パケットの欠落を判断することが可能な、新規かつ改良された通信装置及び通信制御方法を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある観点によれば、所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置において、パケットを受信するパケット受信部と、前記パケット受信部が受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定部と、前記受信順及び前記ネットワークの経路数を用いて経路数推定パケット数を算出する経路数推定パケット数算出部と、前記受信順及び前記経路数から前記経路の途中で欠落したパケットを判定する第1欠落判定部と、前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第2欠落判定部と、前記パケット受信部が受信したパケットを保持するパケット保持部と、前記パケット保持部に保持されているパケットと前記第1欠落判定部または前記第2欠落判定部の少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答部と、を備えることを特徴とする、通信装置が提供される。
【0008】
前記経路数推定パケット数算出部は、順序番号n番(nは自然数)までのパケットを前記パケット受信部が全て受信した後、順序番号m番(mは2以上の整数であり、m>n+1)のパケットを前記パケット受信部が受信した場合に、その後前記パケット受信部が受信する順序番号n+1番のパケットから、順序番号n+1番からm番までのパケットを前記パケット受信部が受信するまでの間に受信した最大の順序番号を有するパケットまでの全ての受信パケットについて、順序番号m番のパケットから数えて前記全ての受信パケットを前記パケット受信部が受信した順に並べた列で順序番号が降順に並ぶ個数が最大となるように少なくとも1つ以上の列を選び、該1つ以上の列を用いて前記経路数推定パケット数を算出してもよい。
【0009】
前記経路数推定パケット数算出部は、選んだ前記1つ以上の列のうち、順序番号が最小のパケットを受信するまでに前記パケット受信部が受信したパケットの個数を前記経路数推定パケット数としてもよい。
【0010】
前記応答部は、順序番号n番(nは自然数)までのパケットを前記パケット受信部が全て受信した後、前記パケット受信部がパケットを受信しても順序番号n+1番のパケットが前記パケット保持部に存在しない場合、順序番号n+1番のパケットの欠落を前記第1欠落判定部または前記第2欠落判定部の少なくともいずれか一方が判定するまでパケットの再送の要求を控えてもよい。
【0011】
また、上記課題を解決するために、本発明の別の観点によれば、所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置の通信制御方法において、パケットを受信するパケット受信ステップと、前記パケット受信ステップで受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定ステップと、前記受信順及び前記ネットワークの経路数を用いて経路数推定パケット数を算出する経路数推定パケット数算出ステップと、前記受信順及び前記経路数から前記経路の途中で欠落したパケットを判定する第1欠落判定ステップと、前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第2欠落判定ステップと、前記パケット受信ステップで受信したパケットを保持するパケット保持ステップと、前記パケット保持ステップで保持されているパケットと前記第1欠落判定ステップまたは前記第2欠落判定ステップの少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答ステップと、を備えることを特徴とする、通信制御方法が提供される。
【発明の効果】
【0012】
以上説明したように本発明によれば、送受信端末間の経路数が不明であって、各経路へのパケットの振り分け方法も不明である場合に、パケットの欠落を判断することが可能な、新規かつ改良された通信装置及び通信制御方法を提供することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の一実施形態に係る通信システムの概略構成を示す説明図である。
【図2】本発明の一実施形態にかかる受信端末100Bの構成を示す説明図である。
【図3】本発明の一実施形態にかかる受信端末100Bに含まれる経路数推定部130の動作について示す流れ図である。
【図4】本発明の一実施形態にかかる経路数推定パケット数算出部135の動作を示す流れ図である。
【図5】本発明の一実施形態にかかる第1欠落判定部140の動作を示す流れ図である。
【図6】本発明の一実施形態にかかる第2欠落判定部140の動作を示す流れ図である。
【図7】本発明の一実施形態にかかるバッファ150の動作を示す流れ図である。
【図8】本発明の一実施形態にかかる応答部170の動作を示す流れ図である。
【図9】受信端末100Bが受信するパケット列の一例を示す説明図である。
【図10】受信端末100Bが受信するパケット列の一例を示す説明図である。
【図11】ネットワーク10における経路の一例を示す説明図である。
【発明を実施するための形態】
【0014】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0015】
まず、本件発明者は、送受信端末間の経路数が不明であって、各経路へのパケットの振り分け方法も不明である場合に、パケットの欠落の有無を判断するために、受信端末におけるパケットの到着順序から送受信間の経路数を推定し、この経路数の情報を用いていた。
【0016】
しかし、当該手法を用いた場合には、ある経路においてパケットの欠落が発生した場合、当該欠落パケット以降に送信され、かつ、当該経路を通過したパケットを受信しなければ、パケットの欠落の有無を判断することが出来なかった。
【0017】
そこで、以下で説明する本発明の好適な実施の形態では、送信端末がパケットを送信する際に、パケットに順序番号を付与し、受信端末は、受信したパケットの並びから送受信端末間の経路数を推定する。さらに、当該経路数を推定するまでに要したパケット数(経路数推定パケット数と称する)を算出する。そして、受信端末がn番(nは正の整数)までのパケットを全て受信した後に、受信したパケットがm番(m<n+1)であった場合に、n番のパケットの次に受信したパケットから数えて経路数推定パケット数個のパケットを受信してもなおm番のパケットを受信しない場合には、当該パケットは欠落したものと判断する。
【0018】
<1.本発明の一実施形態>
[1−1.通信システムの構成]
まず、図1を参照して、本発明の一実施形態に係る通信システムの概略構成について説明する。図1に示したように、本発明の一実施形態に係る通信システム1は、送信端末100Aから受信端末100Bに対して、ネットワーク10を介して、順序番号を付与したパケットの形式で送信したいデータを送信する。本実施形態においては、パケットを再送する場合を除き、原則として順序番号の昇順でパケットを送信する。
【0019】
一方、受信端末100Bは、本発明の通信装置の一例であり、送信端末100Aから送信されるパケットを受信すると、順序番号の最初から始めて抜けなく受信した一連のパケットの内の最大の番号や、欠落しているパケットの番号を応答パケットとして送信端末100Aへ送信する。この応答パケットを送信端末100Aが受信することで、送信端末100Aは次に送信するパケットの順序番号を制御する。このような通信制御は、TCP(Transmission Control Protocol)等の通信方式に見られるものである。本実施形態は、このような制御下における主に応答パケットの制御に関わるものである。
【0020】
パケットが流れるネットワーク10の内部では、経路途中のルータ(図示せず)等がパケットを複数の経路に振り分けることで、経路が分岐され得る。図1に示した分岐はその状態を表したものである。送信端末100A、受信端末100Bは、ネットワーク10の中のパケットが通る経路や分岐の数については把握していない。なお、以下の説明では、ネットワーク10は複数の経路に分岐されているものとして説明するが、本発明は、送信端末100Aと受信端末100Bとの間に分岐が全く無い場合であっても同様に適用できるものである。
【0021】
以上、図1を参照して、本発明の一実施形態に係る通信システムの概略構成について説明した。次に、本発明の一実施形態にかかる受信端末100Bの構成について説明する。
【0022】
[1−2.受信端末の構成]
図2は、本発明の一実施形態にかかる受信端末100Bの構成を示す説明図である。以下、図2を用いて本発明の一実施形態にかかる受信端末100Bの構成について説明する。
【0023】
図2に示したように、本発明の一実施形態にかかる受信端末100Bは、パケット受信部120と、経路数推定部130と、経路数推定パケット数算出部135と、第1欠落判定部140と、第2欠落判定部145と、バッファ150と、データ受信部160と、応答部170と、情報部180と、を含んで構成される。
【0024】
パケット受信部120は、送信端末100Aから送信されてくる、順序番号が付与されたパケットを受信するものであり、パケット受信部120は受信したパケットを送信されてきた順序通りにバッファ150に渡す。
【0025】
経路数推定部130は、送信端末100Aと受信端末100Bとの間の経路数を推定するものである。経路数推定部130は、情報部180から、経路数と、データ受信部160が受信した最後尾の順序番号とを取得する。そして経路数推定部130は、情報部180から取得した経路数と、順序番号と、パケット受信部120で受信されたパケットの並びとから、送信端末100Aと受信端末100Bとの間の経路数を推定する。
【0026】
本実施形態では、送信端末100Aと受信端末100Bとの間の経路数は以下のように推定される。
【0027】
パケット受信部120で受信しているパケットは、送信端末100Aが受信端末100Bに対して順序番号の昇順に送信したパケットとする。これは、受信端末100Bからの応答パケットによって既に送信端末100Aが送信した順序番号の小さいパケットを、再度送っていない状態である。このことは、受信端末100Bにおいても、自身の送信する応答パケットによって判断する。
【0028】
経路数推定部130は、情報部180から経路数の推定値kを取得するとともに、データ受信部160が受信した最後尾のパケットの順序番号を取得する。データ受信部160は、順序番号がn番目(n=0,1,2,・・・)までのパケットを全て受け取っているとすると、n=0の場合は、データ受信部160は未だパケットを受け取っていない。その後、順序番号がn番目より大きいm番目のパケットをパケット受信部120が受信したとする。m−n≦kの場合は、経路数推定部130は、kを経路数の推定値とする。一方、m−n>kである場合、経路数推定部130は、先のm番目のパケットを含め、以降受信するn+1番目よりも順序番号が大きいパケットからいくつかのパケットを選び、選んだパケットをパケット受信部120が受信した順に並べる。そして経路数推定部130は、このパケット列について、順序番号が降順に並ぶ個数を数え上げる。ただし順序番号は連続していなくても良い。またパケットが1つの場合にはその個数を1とする。例えば、順序番号が13、11と並んでいれば、順序番号が降順に並ぶ個数は2であり、順序番号が13しかない場合には、順序番号が降順に並ぶ個数は1となる。
【0029】
m−n>kである場合、経路数推定部130は、この個数が最大となるようにパケット列を選び、この列の順序番号が降順に並ぶ個数を経路数の推定値とする。これは、通常であれば順序番号の昇順でパケットが到着するが、ネットワーク10で分岐があることで、パケットの到達順序が逆になることがある。従って、本実施形態では順序番号が降順の並ぶ個数を分岐の数と推定する。
【0030】
数え上げる対象とするパケットは、順序番号がn+1番目からm番目までの全てのパケットをパケット受信部120が受信するまでの間に、パケット受信部120が受信した順序番号が最大の番号と、n+1番目のとの間に入る全てのパケットである。この数え上げの対象には、順序番号がn+1番目のパケットも含まれる。例えば、n=10、m=13の場合に、図9に示したような順序で受信端末100Bがパケットを受信したとする。この場合は、パケット受信部120が、n+1=11番からm=13番までの全てのパケット、すなわち11番と12番のパケットを受信するまでに受信したパケットの最大の番号は16番である。このときに、11番から16番の間に入る全てのパケット、すなわち11、12、13、14、15、16番が数え上げの対象となる。そして、順序番号が降順に並ぶ個数の最大値は、13−12−11や16−15−14の場合の「3」となる。この値が経路数の推定値となる。本実施形態における経路数の推定方法はこの通りである。
【0031】
経路数推定部130は、推定した経路数を情報部180へ渡す。また、上述した経路数の推定方法で説明した、数え上げの対象としたパケットをパケット受信部120が受信した順に並べた列(以下「受信列」と称する)を経路数推定パケット数算出部135に渡す。
【0032】
本実施形態においては、図9に示したような順序で受信端末100Bがパケットを受信した場合に、例えば図11に示したような経路で転送されているとする。
【0033】
経路数推定パケット数算出部135は、経路数推定パケット数を算出するものである。経路数推定パケット数の算出に際しては、経路数推定パケット数算出部135は経路数推定部130から受信列を受け取る。
【0034】
以下、経路数推定パケット数算出部135による経路数推定パケット数の算出方法について説明する。
【0035】
経路数推定パケット数算出部135は、経路数推定部130から受け取った受信列から、順序番号が降順に並ぶ個数が最大となるようにパケット列を選ぶ。ただし、順序番号は連続していなくても良い。
【0036】
このパケット列内の順序番号が最小となるパケットをαとする。もしパケット列が複数選択出来る場合は、パケット列内で順序番号が最小であるパケット同士を比較して、順序番号が最小のパケットをαに決定する。
【0037】
そして、経路数推定パケット数算出部135は、受信列について列の先頭から数えてαまでの個数を、経路数推定パケット数に決定する。
【0038】
例えば、図9に示したような順序で受信端末100Bがパケットを受信したとする。順序番号が降順に並ぶ個数が最大となるようにパケット列を選ぶと、例えば13−12−11や16−15−14などを選ぶことができる。この中で、順序番号が最小のパケット同士を比較すると、最小の順序番号は「11」である。そして、受信列の先頭の順序番号「13」のパケットから数えて、その順序番号「11」までのパケットの数は5である。従って、経路数推定パケット数算出部135は、経路数推定パケット数を5と算出する。経路数推定パケット数算出部135による経路数推定パケット数の算出方法は以上の通りである。
【0039】
経路数推定パケット数算出部135は、上述のように算出した経路数推定パケット数が、情報部180に格納されている経路数推定パケット数よりも大きければ、算出した経路数推定パケット数を情報部180に渡す。
【0040】
第1欠落判定部140は、情報部180から、データ受信部160が受信した最後尾の順序番号と、経路数の推定値kとを取得し、パケット受信部120が未だ受信していないパケットが未到着なのか、経路途中で欠落しているのかを判定するものである。第1欠落判定部140は、パケットが欠落していると判定すると、応答部170へ、欠落しているパケットの順序番号を知らせる。
【0041】
第1欠落判定部140による、パケット欠落判定方法について以下で説明する。
【0042】
情報部180が保持している、データ受信部160が受信した最後尾の順序番号がn番目(n=0,1,2,・・・)であったとする。第1欠落判定部140は、パケット受信部120で、順序番号がn+1番目より大きいm番目のパケットを受信した場合に、そのパケットを含め、以降受信するn+1番目よりも順序番号が大きいパケットから選んだパケットを、パケット受信部120が受信した順に並べる。そして、このパケット列について、順序番号が降順に並ぶ個数を数える。ただし、順序番号は連続していなくても良い。この個数がk個以上になるパケット列があれば、第1欠落判定部140は、n+1番目から、これまで受信したn+1番目より大きい番号の中で最小の順序番号の1つ手前までのパケットが欠落していると判定する。
【0043】
第2欠落判定部145は、パケット受信部120が受信したパケットの並びと、情報部180に記録されているデータ受信部160が受信した最後尾の順序番号と、情報部180に記録されている経路数推定パケット数とから、パケット受信部120が未だ受信していないパケットが未到着なのか、経路途中で欠落しているのかを判定するものである。第2欠落判定部145は、パケットが欠落していると判定すると、応答部170へ、欠落しているパケットの順序番号を知らせる。
【0044】
第2欠落判定部145による、パケット欠落判定方法について以下で説明する。
【0045】
情報部180が保持している、データ受信部160が受信した最後尾の順序番号がn番目(n=0,1,2,・・・)であったとする。第1欠落判定部140は、パケット受信部120で、順序番号がn+1番目より大きいm番目のパケットを受信した場合に、そのパケットから数えて以降受信するn+1番目よりも順序番号が大きいパケットの個数が経路数推定パケット数以上になったときに、n+1番目のパケットは欠落していると判定する。
【0046】
本発明では、第1欠落判定部140と、第2欠落判定部145とは、それぞれ独立して動作してもよく、第1欠落判定部140でパケットの欠落を判定させてから、第2欠落判定部145でパケットの欠落を判定させるようにしてもよく、逆に、第2欠落判定部145でパケットの欠落を判定させてから、第1欠落判定部140でパケットの欠落を判定させるようにしてもよい。第2欠落判定部145は、第1欠落判定部140のパケット欠落判定機能を補完するものであるので、第1欠落判定部140でパケットの欠落を判定させてから、第2欠落判定部145でパケットの欠落を判定させる方が、より好ましい。
【0047】
バッファ150は、パケット受信部120からパケットを受け取るものであり、バッファ150が受け取ったパケットは、順序番号の昇順に、重複無くデータ受信部160へ送られる。また、データ受信部160に送られた順序番号の最後尾の番号はバッファ150から情報部180に送られる。パケット受信部120から受け取ったパケットがバッファ150に存在しているパケットと重複したり、既にデータ受信部160に送ったパケットと同じものであったりした場合には、そのパケットはバッファ150から破棄される。
【0048】
データ受信部160は、バッファ150から渡されたパケットを受信するものである。
【0049】
応答部170は、送信端末100Aがパケットを送る数や番号を制御するための応答パケットを生成して送信するものである。応答パケットの送信を行うために、応答部170は情報部180から、データ受信部160が受信した最後尾の順序番号nを取得する。また応答部170は、第1欠落判定部140、第2欠落判定部145から、欠落しているパケットの情報も取得する。
【0050】
応答部170が生成する応答パケットの内容は、(1)どの順序番号のパケットまで正しい順序で受け取ったかを知らせるものであってもよく、また、(2)特定の順序番号のパケットの再送を要求するものであってもよい。いずれの内容のパケットであっても、応答パケットを受信した送信端末100Aは、どのパケットが受信端末100Bに送られていないのかが分かり、送信端末100Aは受信端末100Bに届けるべきパケットを再送することが出来る。
【0051】
なお、受信端末100Bからの応答パケットは、送信端末100Aと受信端末100Bとの間で予め定められた制御のタイミングで、上記(1)または(2)の少なくともいずれかの内容が記述されて、受信端末100Bから送信端末100Aへ送信される。
【0052】
応答部170は、応答パケットを送るタイミングになった場合に、バッファ150にパケットが無いときは、予め定められた上記(1)または(2)の少なくともいずれかの内容で応答パケットを送信する。一方、応答部170は、応答パケットを送るタイミングになった場合に、バッファ150にパケットがあるとき、すなわち順序番号どおりにパケットが届いておらず、抜けている順序番号のパケットがあるのでバッファ150にパケットがあるときは、上記(1)または(2)の内容を送信する場合であっても、第1欠落判定部140または第2欠落判定部145から欠落している順序番号を受け取るまで応答パケットの送信を控える。ただし、(2)の場合には、その抜けているパケットが無いものとして、すなわちその抜けているパケットの再送を要求しない内容で、応答部170は応答パケットを送信しても良い。その後、第1欠落判定部140または第2欠落判定部145からパケット欠落の通知があれば、応答部170はそのパケットの欠落を送信端末100Aに通知する。
【0053】
情報部180は、経路数推定部130が推定した経路数と、経路数推定パケット数算出部135が算出した経路数推定パケット数と、バッファ150がデータ受信部160に送ったパケットのうち最後尾の順序番号とを保存する。情報部180が保存する、経路数の推定値の初期値、及び、経路数推定パケット数の初期値は、いずれも1である。また、最後尾の順序番号は、この番号以前の順序番号のパケットを、データ受信部160が全て受信していることを保証するものである。
【0054】
以上、図2を用いて本発明の一実施形態にかかる受信端末100Bの構成について説明した。次に、本発明の一実施形態にかかる受信端末100Bの動作について説明する。
【0055】
[1−3.受信端末の動作]
上述したように、パケット受信部120は、送信端末100Aから送信された、順序番号が付与されたパケットを受信し、送られてきた順序通りに、バッファ150へ受信したパケットを渡す。
【0056】
図3は、本発明の一実施形態にかかる受信端末100Bに含まれる経路数推定部130の動作について示す流れ図である。以下、図3を用いて経路数推定部130の動作について詳細に説明する。
【0057】
前提として、パケット受信部120で受信しているパケットは、送信端末100Aが受信端末100Bに対して順序番号の昇順に送信したパケットであるとする。経路数推定部130は、情報部180から、経路数の推定値kを取得するとともに、データ受信部160が受信した最後尾のパケットの順序番号nを取得する(ステップS301)。
【0058】
続いて、経路数推定部130は、パケット受信部120が新たに受信したパケットの順序番号mを取得する(ステップS302)。経路数推定部130は、m−n≦kとなるかどうかを判定し(ステップS303)、m−n≦kであれば後段のステップS308へ進むが、k<m−nであれば、経路数推定部130は、パケット受信部120が順序番号mのパケットの次に受信したパケットの順序番号を取得する(ステップS304)。
【0059】
続いて、経路数推定部130は、順序番号mのパケットを含め、これまで取得した、順序番号nよりも順序番号が大きいパケットから選んだパケットを、パケット受信部120が受信した順に整列し、このパケット列について、順序番号が降順に並ぶ個数dを計数する(ステップS305)。数え上げの対象とするパケットは、順序番号がn+1番目からm番目までの全てのパケットをパケット受信部120が受信するまでの間に、パケット受信部120が受信した順序番号が最大のパケットと、順序番号がn+1番のパケットとの間に入る全てのパケットである。経路数推定部130は、この個数が最大となるように選んだパケット列について、順序番号が降順に並ぶ個数dを経路数の推定値の候補とする。
【0060】
経路数推定部130は、上記ステップS305で数え上げた、順序番号が降順に並ぶ個数が最大となるように選んだパケット列について、順序番号が降順に並ぶ個数dを経路数の推定値kと決定する(ステップS306)。そして経路数推定部130は、順序番号がn+1番目からm番目までの全てのパケットをパケット受信部120が受信するまでの間に、パケット受信部120が受信した順序番号が最大のパケットと、順序番号がn+1番のパケットとの間に入る全てのパケットを受信したかどうかを判断する(ステップS307)。全てのパケットを受信していれば、経路数推定部130は上記ステップS306で決定した経路数の推定値kを情報部180に渡すとともに、受信列を経路数推定パケット数算出部135に渡す(ステップS308)。一方、まだ全てのパケットを受信していなければ、上記ステップS304に戻って、経路数推定部130は、さらに次に受信したパケットの順序番号を取得する処理を実行する。
【0061】
このように、経路数推定部130はネットワーク10における経路数を推定することができる。受信端末100Bは、この経路数推定部130が推定した経路数を用いて、パケットが欠落しているかどうかの判定を行うことができる。
【0062】
以上、図3を用いて経路数推定部130の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末100Bに含まれる経路数推定パケット数算出部135の動作について説明する。
【0063】
図4は、本発明の一実施形態にかかる受信端末100Bに含まれる経路数推定パケット数算出部135の動作について示す流れ図である。以下、図4を用いて経路数推定パケット数算出部135の動作について詳細に説明する。
【0064】
前提として、パケット受信部120で受信しているパケットは、送信端末100Aが受信端末100Bに対して順序番号の昇順に送信したパケットであるとする。経路数推定パケット数算出部135は、経路数推定部130から受信列を受け取り、また情報部180から経路数推定パケット数を取得する(ステップS401)。
【0065】
続いて経路数推定パケット数算出部135は、受け取った受信列から、受信番号が降順に並ぶ個数が最大になるようなパケット列を選ぶ(ステップS402)。続いて経路数推定パケット数算出部135は、選んだパケット列の順序番号が最小となるパケットをαとし、受信列の先頭から数えてαまでの個数を経路数推定パケット数として算出する(ステップS403)。ここで、受信番号が降順に並ぶ個数が最大になるようなパケット列が複数選択可能である場合には、経路数推定パケット数算出部135は、パケット列内で順序番号が最小であるパケット同士を比較して、順序番号が最小のパケットをαに決定する。
【0066】
続いて経路数推定パケット数算出部135は、上記ステップS403で算出した経路数推定パケット数が、上記ステップS401で情報部180から取得した経路数推定パケット数よりも大きければ、上記ステップS403で算出した経路数推定パケット数を情報部180へ渡す(ステップS404)。
【0067】
このように、経路数推定パケット数算出部135は、経路数推定部130から受信列を受け取り、また情報部180から経路数推定パケット数を取得することで、経路数推定パケット数を算出することが出来る。
【0068】
以上、図4を用いて経路数推定パケット数算出部135の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末100Bに含まれる第1欠落判定部140の動作について説明する。
【0069】
図5は、本発明の一実施形態にかかる受信端末100Bに含まれる第1欠落判定部140の動作を示す流れ図である。以下、図5を用いて第1欠落判定部140の動作について詳細に説明する。
【0070】
まず、第1欠落判定部140はパケットの欠落判定処理に際し、情報部180から、経路数の推定値kと、データ受信部160が受信した最後尾のパケットの順序番号nとを取得する(ステップS501)。次に、第1欠落判定部140はパケット受信部120が新たに受信したパケットの順序番号mを受け取り(ステップS502)、n+1<mとなっているかどうかを判定する(ステップS503)。
【0071】
上記ステップS503の判定の結果、n+1≧mである場合には、第1欠落判定部140は、受信パケットに欠落は発生していないと判断し、処理を終了する。一方、上記ステップS503の判定の結果、n+1<mである場合には、続いて第1欠落判定部140はk=1であるかどうかを判定する(ステップS504)。
【0072】
上記ステップS504の判定の結果、情報部180が保持している経路数の推定値kの値がk=1である場合には、受信パケットに欠落が発生していると判断し、第1欠落判定部140は応答部170へパケットの欠落を通知する(ステップS505)。このステップS405では、第1欠落判定部140は、n+1番目から、これまで受信したn+1番より大きい番号の中で最小の順序番号の一つ手前までの順序番号のパケットが欠落していると判定し、応答部170へパケットの欠落を通知する。
【0073】
一方、上記ステップS504の判定の結果、情報部180が保持している経路数の推定値kの値がk=1でない場合には、次に、第1欠落判定部140はパケット受信部120が次に受信したパケットの順序番号を取得する(ステップS506)。
【0074】
上記ステップS506でパケット受信部120が次に受信したパケットの順序番号を取得すると、続いて第1欠落判定部140は、上記ステップS506で取得した順序番号がn+1であるかどうかを判定する(ステップS507)。
【0075】
上記ステップS507の判定の結果、上記ステップS506で取得した順序番号がn+1であるならば、第1欠落判定部140は処理を終了する。一方、上記ステップS507の判定の結果、上記ステップS506で取得した順序番号がn+1で無いならば、続いて第1欠落判定部140は、順序番号mのパケットを含め、これまでパケット受信部120から受け取ったn+1より大きい順序番号から選んだ順序番号を、パケット受信部120が受信した順に並べた列を対象に、ある番号から始めて順序番号が降順に並ぶ個数dを数え上げる(ステップS508)。
【0076】
そして第1欠落判定部140は、上記ステップS508で数え上げた個数dについて、k≦dを満たす列が存在するかどうかを判定する(ステップS509)。k≦dを満たす列が1つでも存在すれば、受信パケットに欠落が発生していると判断し、第1欠落判定部140は応答部170へパケットの欠落を通知する(ステップS505)。一方、どの列のdについてもd<kであるならば、上記ステップS506に戻り、第1欠落判定部140はパケット受信部120が次に受信したパケットの順序番号を取得する。
【0077】
以上、図5を用いて第1欠落判定部140の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末100Bに含まれる第2欠落判定部140の動作について説明する。
【0078】
図6は、本発明の一実施形態にかかる受信端末100Bに含まれる第2欠落判定部145の動作を示す流れ図である。以下、図6を用いて第2欠落判定部145の動作について詳細に説明する。
【0079】
まず、第2欠落判定部145はパケットの欠落判定処理に際し、情報部180から、データ受信部160が受信した最後尾のパケットの順序番号nと、経路数推定パケット数とを取得する(ステップS601)。次に、第2欠落判定部145はパケット受信部120が新たに受信したパケットの順序番号mを受け取る(ステップS602)。ここで、m=n+1であれば、第2欠落判定部145は動作を終了する。一方、m≠n+1であれば、第2欠落判定部145は、パケット受信部120から受け取ったパケットの個数sと、経路数推定パケット数tとを比較する(ステップS603)。
【0080】
第2欠落判定部145は、パケット受信部120から受け取ったパケットの個数sと、経路数推定パケット数tとを比較して、s<tであった場合には、上記ステップS602に戻って、パケット受信部120が新たに受信したパケットの順序番号mを受け取る。一方、t≦sであった場合には、第2欠落判定部145はn+1番目のパケットは欠落していると判定し、パケットの欠落を応答部170へ通知する(ステップS604)。
【0081】
以上、図6を用いて第2欠落判定部145の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末100Bに含まれるバッファ150の動作について説明する。
【0082】
図7は、本発明の一実施形態にかかる受信端末100Bに含まれるバッファ150の動作を説明する流れ図である。以下、図7を用いてバッファ150の動作について説明する。
【0083】
まず、バッファ150はパケット受信部120からパケットを受け取ると(ステップS701)、受信したパケットに付与されている順序番号の小さい順に、受け取ったパケットをデータ受信部160へ渡す(ステップS702)。バッファ150は、欠落している順序番号のパケットがあれば、そのパケットがパケット受信部120から送られて来るまで待機する。また、既にデータ受信部160へ渡したものと重複しているパケットがあれば、バッファ150はそのパケットを破棄する。
【0084】
そして、バッファ150は、データ受信部160へ渡した最後のパケットの順序番号を情報部180に渡す。
【0085】
以上、図7を用いてバッファ150の動作について説明した。次に、本発明の一実施形態にかかる受信端末100Bに含まれる応答部170の動作について説明する。
【0086】
図8は、本発明の一実施形態にかかる応答部170の動作について示す流れ図である。以下、図8を用いて一実施形態にかかる応答部170の動作について説明する。
【0087】
応答部170は、データ受信部160が受け取った最後のパケットの順序番号nを情報部180から取得する(ステップS801)。次に、応答部170はバッファ150にパケットが存在しているかどうかを確認する(ステップS802)。
【0088】
上記ステップS802の確認の結果、バッファ150にパケットが無いか、または順序番号がn+1であるパケットがあれば、順序番号通りにパケットが受信出来ているので、応答部170は、予め定められた上記(1)または(2)の少なくともいずれかの内容で応答パケットを送信し、処理を終了する。
【0089】
一方、上記ステップS802の確認の結果、バッファ150に順序番号がn+2以降のパケットが存在していれば、応答部170は第1欠落判定部140または第2欠落判定部145の少なくともいずれか一方から、パケットの欠落の通知を受けているかどうかを確認する(ステップS803)。第1欠落判定部140または第2欠落判定部145の少なくともいずれか一方からパケットの欠落の通知を受けていなければ、上記ステップS802に戻り、応答部170は応答パケットの送信を控える。一方、第1欠落判定部140または第2欠落判定部145の少なくともいずれか一方からパケットの欠落の通知を受けていれば、応答部170は、送信端末100Aに対して、欠落しているパケットの番号を応答パケットにより通知する(ステップS804)。この通知は、予め定められた上記(1)または(2)の少なくともいずれかの内容によって行われる。
【0090】
以上、図8を用いて本発明の一実施形態にかかる応答部170の動作について説明した。このように、応答部170は第1欠落判定部140または第2欠落判定部145の少なくともいずれか一方からパケットの欠落の通知を受けるまで応答パケットの送信を控えることで、ネットワーク10への無駄なトラフィックの発生を抑えることができる。
【0091】
ここで、経路数推定部130、経路数推定パケット数算出部135、第1欠落判定部140、第2欠落判定部145、バッファ150、応答部170の具体的な動作例を説明する。送信端末100Aは、受信端末100Bに対して、1、2、3、・・・と続く順序番号を付与したデータパケットを番号の昇順に送信している。以降、パケットの番号についての記述がある場合には、特に断らない限りこの順序番号を指す。受信端末100Bは、送信端末100Aが送信したデータパケットを受け取り、1パケットを受け取る度に1応答パケットを送信端末100Aに送信しているとする。
【0092】
送信端末100Aから送信されるデータパケット、受信端末100Bから送信される応答パケット共に、経路途中のネットワーク10の中で、ルータ(図示せず)等によってパケットが複数の経路に分配されている可能性があるが、送信端末100A、受信端末100Bとも、いくつの経路に分配されているかは分からない。
【0093】
ここで、受信端末100Bが、10番まで順序通りにデータパケットを受信しており、データ受信部160が受信したパケットを全て受け取っているとする。これ以降、送信端末100Aから受信するパケットについての受信端末100Bの動作を、図面を参照しながら具体的に説明する。このとき、情報部180にはデータ受信部160が受信した最後の順序番号10番と、経路数の推定値k=1と、経路数推定パケット数t=1とが保存されている。
【0094】
このとき、パケット受信部120が13番のパケットを受信したとする。パケット受信部120が受信した13番のパケットはバッファ150に渡される。そして、その13番のパケットも含め、図9に示した順序でパケット受信部120がパケットを受信した場合に、経路数推定部130の動作を、図3に示した流れ図に沿って説明する。
【0095】
まず、経路数推定部130は、情報部180から、分岐数の推定値k=1を取得するとともに、データ受信部160が受信した最後尾のパケットの順序番号n=10を取得する(ステップS301)。続いて、経路数推定部130は、パケット受信部120が新たに受信したパケットの順序番号m=13を取得する(ステップS302)。経路数推定部130は、m−n≦kとなるかどうかを判定し(ステップS303)、k<m−nであるので、経路数推定部130は、パケット受信部120が順序番号m=13のパケットの次に受信したパケットの順序番号(12)を取得する(ステップS304)。
【0096】
12番のパケットを受信した時点で、降順に並ぶ個数は13番、12番であるから2つである。よって、順序番号が降順に並ぶ個数dはd=2である(ステップS305)。そして、経路数推定部130は、順序番号が降順に並ぶ個数d=2を経路数の推定値kの候補とする(ステップS306)。
【0097】
12番のパケットを受信した時点での最大の順序番号は13である。そしてパケット受信部120は11番のパケットを受信していないので、経路数推定部130は、パケット受信部120が受信した順序番号が最大のパケット(13番のパケット)と、順序番号がn+1番のパケット(11番の)との間に入る全てのパケットを受信したかどうかを判断し(ステップS307)、全てのパケットを受信していないので、ステップS304に戻って、経路数推定部130は、さらに次に受信したパケットの順序番号を取得する処理を実行する。
【0098】
その後、パケット受信部120が14番のパケットを受信すると、14番のパケットを受信した時点で、降順に並ぶ個数は13番、12番、11番または16番、15番、14番であるから3つである。従って、順序番号が降順に並ぶ個数dはd=3である(ステップS305)。そして、経路数推定部130は、順序番号が降順に並ぶ個数d=3を経路数の推定値kの候補とする(ステップS306)。
【0099】
14番のパケットを受信した時点での最大の順序番号は16である。経路数推定部130は、パケット受信部120が受信した順序番号が最大のパケット(16番のパケット)と、順序番号がn+1番のパケット(11番の)との間に入る全てのパケットを受信したかどうかを判断する(ステップS307)。14番のパケットを受信した時点で、11番から16番までの全てのパケットを受信しているので、経路数推定部130は上記ステップS306で候補とした経路数の推定値k=3を情報部180に保存する(ステップS308)。また経路数推定部130は、経路数推定パケット数算出部135に受信列を送る。
【0100】
次に、経路数推定パケット数算出部135の動作を、図4に示した流れ図に沿って説明する。
【0101】
経路数推定パケット数算出部135は、経路数推定部130から図9に示す受信列を受け取り、また情報部180から経路数推定パケット数=1を取得する(ステップS401)。
【0102】
続いて経路数推定パケット数算出部135は、受け取った受信列から、受信番号が降順に並ぶ個数が最大になるようなパケット列を選ぶが、ここでは、そのようなパケット列として、13−12−11や、16−15−14を選ぶ(ステップS402)。
【0103】
続いて経路数推定パケット数算出部135は、上記ステップS402でパケット列を2つ選んでいるので、その2つのパケット列におけるパケットの最小の順序番号を比較し、最小の順序番号α=11を決定する。これにより、図9に示す受信列において、先頭のパケットから順序番号11番のパケットまでのパケット数は5となるから、経路数推定パケット数算出部135は経路数推定パケット数を5と決定する(ステップS403)。
【0104】
続いて経路数推定パケット数算出部135は、決定した経路数推定パケット数と、情報部180から取得した経路数推定パケット数を比較する。ここでは、上記ステップS403で決定した経路数推定パケット数の方が大きいので、経路数推定パケット数算出部135は上記ステップS403で算出した経路数推定パケット数=5を情報部180へ渡す(ステップS404)。
【0105】
次に、経路数推定部130が推定した経路数の推定値が3、経路数推定パケット数算出部135が算出した経路数推定パケット数が5の場合における、受信端末100Bでのパケットの欠落判断処理について、図10に示すような受信列でパケットを受信した場合を例にあげて説明する。なおパケットの欠落判断処理に際し、情報部180には、データ受信部160が受信したパケットの最後尾の順序番号20番と、経路数の推定値k=3と、経路数推定パケット数t=5が保存されているものとする。
【0106】
図10に示した順序番号21番のパケットは、送信端末100Aから受信端末100Bへの経路の途中で欠落し、実際には受信端末100Bは当該順序番号21番のパケットは受信出来ていないものとする。すなわち、受信端末100Bは、順序番号26番のパケットの次は順序番号27番のパケットを受信することになる。
【0107】
受信端末100Bは、順序番号27番のパケットを受信するまで以下のような動作を実行する。まず、第1欠落判定部140の動作を図5に示した流れ図に即して説明する。
【0108】
第1欠落判定部140はパケットの欠落判定処理に際し、情報部180から、データ受信部160が受信したパケットの最後尾の順序番号n=20番と、経路数の推定値k=3とを取得する(ステップS501)。次に、第1欠落判定部140はパケット受信部120が新たに受信したパケットの順序番号m=25を受け取り(ステップS502)、n+1<mとなっているかどうかを判定する(ステップS503)。n+1(=21)<m(=25)となるので、続いて第1欠落判定部140はk=1であるかどうかを判定する(ステップS504)。k=1ではないので、次に、第1欠落判定部140はパケット受信部120が次に受信したパケットの順序番号(22)を取得する(ステップS506)。
【0109】
上記ステップS506でパケット受信部120が次に受信したパケットの順序番号(22)を取得すると、続いて第1欠落判定部140は、上記ステップS506で取得した順序番号号(22)がn+1であるかどうかを判定する(ステップS507)。ステップS506で取得した順序番号は22であり、n+1=21ではないので、第1欠落判定部140は、これまでパケット受信部120から受け取ったn+1(=21)より大きい順序番号から選んだ順序番号を、パケット受信部120が受信した順に並べた列を対象に、ある番号から始めて順序番号が降順に並ぶ個数dを数え上げる(ステップS508)。ここでは、降順に並ぶ個数の最大値dは、d=1となる。
【0110】
続いて第1欠落判定部140は、上記ステップS508で数え上げた個数dについて、k≦dを満たす列が存在するかどうかを判定する(ステップS509)。どの列のdについてもd<kであるので、上記ステップS506に戻り、第1欠落判定部140はパケット受信部120が次に受信したパケットの順序番号(24)を取得する。続いて第1欠落判定部140はステップS506で取得した順序番号(24)がn+1であるかどうかを判定する(ステップS507)。ステップS506で取得した順序番号は24であり、n+1=21ではないので、第1欠落判定部140は、同様に順序番号が降順に並ぶ個数dを数え上げる(ステップS508)。ここでは、降順に並ぶ個数の最大値dは、d=2となる。
【0111】
このように、第1欠落判定部140は上記ステップS506からステップS509までの処理を繰り返す。その後、ステップS506で、第1欠落判定部140は順序番号27番を受け取った後、第1欠落判定部140はパケット受信部120が次に受信したパケットの順序番号を受け取る。すると、順序番号23番までのパケットを受信したとき、パケットが降順に並ぶ個数の最大値dは、順序番号25−24−23の並びから、d=3となる。従って、第1欠落判定部140は、順序番号23番までのパケットを受信したときに、初めて順序番号21番のパケットが欠落していると判定することができる。
【0112】
以上、第1欠落判定部140の動作を説明した。続いて、第2欠落判定部145の動作を図6に示した流れ図に即して説明する。
【0113】
まず第2欠落判定部145は、パケットの欠落判定処理に際し、情報部180から、データ受信部160が受信した最後尾のパケットの順序番号n=20と、経路数推定パケット数t=5とを取得する(ステップS601)。次に、第2欠落判定部145はパケット受信部120が新たに受信したパケットの順序番号m=25を受け取る(ステップS602)。m≠n+1であるので、第2欠落判定部145は、パケット受信部120から受け取ったパケットの個数s=1と、経路数推定パケット数t=5とを比較する(ステップS603)。s<tであるので、第2欠落判定部145はステップS602に戻って、パケット受信部120が新たに受信したパケットの順序番号m=22を受け取る。
【0114】
m≠n+1であるので、第2欠落判定部145は、パケット受信部120から受け取ったパケットの個数s=2と、経路数推定パケット数t=5とを比較する(ステップS603)。s<tであるので、第2欠落判定部145はステップS602に戻って、パケット受信部120が新たに受信したパケットの順序番号を受け取る。同様に、第2欠落判定部145はステップS602とステップS603の処理を繰り返す。
【0115】
その後、ステップS602で、第2欠落判定部145はパケット受信部120が新たに受信したパケットの順序番号m=27を受け取ったとする。m≠n+1であるので、第2欠落判定部145は、パケット受信部120から受け取ったパケットの個数s=5と、経路数推定パケット数t=5とを比較する(ステップS603)。t≦sであるので、第2欠落判定部145はn+1(21)番目のパケットは欠落していると判定し、パケットの欠落を応答部170へ通知する(ステップS604)。
【0116】
以上、第2欠落判定部145の動作を説明した。続いて、バッファ150の動作を図7に示した流れ図に即して説明する。
【0117】
バッファ150は、パケット受信部120から21番のパケットを受け取ると(ステップS701)、受け取った21番のパケットをデータ受信部160へ渡す(ステップS702)とともに、バッファ150は、データ受信部160へ渡した最後のパケットの順序番号(21)を情報部180に渡す。
【0118】
以上、バッファ150の動作を説明した。続いて、応答部170の動作を図8に示した流れ図に即して説明する。
【0119】
応答部170は、データ受信部160が受け取った最後のパケットの順序番号n=20を情報部180から取得する(ステップS801)。ここで、バッファ150が、順序番号25、22、24、26、27のパケットを受け取っていたとすると、順序番号n+1以降のパケットしか無いので(ステップS802)、応答部170は第1欠落判定部140または第2欠落判定部145の少なくともいずれか一方から、パケットの欠落の通知を受けているかどうかを確認する(ステップS803)。ここで、順序番号27番のパケットを受信した時点で、第2欠落判定部145は順序番号21番のパケットは欠落していると判定し、パケットの欠落を応答部170へ通知するので、応答部170は、予め定められた上記(1)または(2)の少なくともいずれかの内容で応答パケットを送信端末100Aへ送信し、処理を終了する。
【0120】
以上、経路数推定部130、経路数推定パケット数算出部135、第1欠落判定部140、第2欠落判定部145、バッファ150、応答部170の具体的な動作例について説明した。
【0121】
以上説明したように本発明の一実施形態によれば、送信端末100Aと受信端末100Bとの間の経路数が不明な状況で、受信端末100Bで受信したパケットの順序が、送信端末100Aで送信された順序と異なっている場合に、経路数推定パケット数を用いることで、受信端末100Bはパケットの欠落の有無を検出することが出来る。
【0122】
パケットの欠落の有無の検出に経路数の情報を用いた場合、受信パケットが経路数以上降順に並ばない限り、すなわち、すべての経路からのパケットが少なくとも1つ以上到達しない限り、欠落パケットの再送を要求することが出来ない。上述した実施形態では、図10のようにパケットが受信端末100Bに到達した場合には、23番のパケットを受信した時点で初めて21番のパケットが欠落しているものと判定することが出来る。
【0123】
一方、パケットの欠落の有無の検出に経路数推定パケット数の情報を用いた場合、経路数推定パケット数個のパケットを受信した時点でパケットの欠落の有無を判定して、パケットの再送を要求することができる。上述した実施形態では、図10のようにパケットが受信端末100Bに到達した場合には、27番のパケットを受信した時点で21番のパケットが欠落しているものと判定することが出来る。これにより、本発明の一実施形態にかかる受信端末100Bは、すべての経路を経由するパケットを受信する前に、素早くパケットの欠落の有無を検出することが出来る。
【0124】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【0125】
本発明は、通信装置及び通信制御方法に適用可能であり、特にある一恋のデーを送信する場合にそのデータの到着を保証する通信、例えばTCPやSCTPに適用可能である。
【符号の説明】
【0126】
100A 送信端末
100B 受信端末
120 パケット受信部
130 経路数推定部
135 経路数推定パケット数算出部
140 第1欠落判定部
145 第2欠落判定部
150 バッファ
160 データ受信部
170 応答部
180 情報部
【技術分野】
【0001】
本発明は、通信装置及び通信制御方法に関する。
【背景技術】
【0002】
データを小分けされたパケットに変換して伝送するパケット通信においては、通常マルチパス伝送方式が採用されている。マルチパス伝送方式においては、送信元からのパケットの送信順と、受信元でのパケットの受信順とを一致させるための技術が開発されている。
【0003】
例えば、下記の非特許文献1には、パケットベースでマルチパスにルーティングする一連のパケットフローを、複数のパスに振り分けるルータが、そのノードでのパケットの到着間隔によって振り分けるパスを決定する技術が開示されており、1フローを構成する一連のパケットをパケット単位で複数の経路に振り分けるルータが、パケットがそのルータに到着する間隔によってそのパケットを送信する経路を決定する。これにより、受信端末でのパケットの到着順序が、送信端末のパケット送信順序と同じになるよう制御することができる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】“Dynamic Load Balancing Without Packet Reordering”,ACM SIGCOMM Computer Communication Review,June 2007
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、非特許文献1に記載された技術のように送信側でパケットの送信を制御しても、その後の経路がさらに分岐していれば、異なる経路を通ったパケット間で伝送時間に差が生じる。その結果、受信端末は送信順序通りにそれらのパケットを受信できなくなる。送信順序通りにパケットを受信できなかった受信端末は、所望の番号のパケットを受信できなければ、例えそのパケットが、その後に到着するパケットであっても、受信端末はパケットが欠落していると判断してしまい、再送を要求してしまう。また、未達のパケットの到着を待機するにしても、どれだけ到着を待機すれば良いのか不明である。
【0006】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、送受信端末間の経路数が不明であって、各経路へのパケットの振り分け方法も不明である場合に、パケットの欠落を判断することが可能な、新規かつ改良された通信装置及び通信制御方法を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある観点によれば、所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置において、パケットを受信するパケット受信部と、前記パケット受信部が受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定部と、前記受信順及び前記ネットワークの経路数を用いて経路数推定パケット数を算出する経路数推定パケット数算出部と、前記受信順及び前記経路数から前記経路の途中で欠落したパケットを判定する第1欠落判定部と、前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第2欠落判定部と、前記パケット受信部が受信したパケットを保持するパケット保持部と、前記パケット保持部に保持されているパケットと前記第1欠落判定部または前記第2欠落判定部の少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答部と、を備えることを特徴とする、通信装置が提供される。
【0008】
前記経路数推定パケット数算出部は、順序番号n番(nは自然数)までのパケットを前記パケット受信部が全て受信した後、順序番号m番(mは2以上の整数であり、m>n+1)のパケットを前記パケット受信部が受信した場合に、その後前記パケット受信部が受信する順序番号n+1番のパケットから、順序番号n+1番からm番までのパケットを前記パケット受信部が受信するまでの間に受信した最大の順序番号を有するパケットまでの全ての受信パケットについて、順序番号m番のパケットから数えて前記全ての受信パケットを前記パケット受信部が受信した順に並べた列で順序番号が降順に並ぶ個数が最大となるように少なくとも1つ以上の列を選び、該1つ以上の列を用いて前記経路数推定パケット数を算出してもよい。
【0009】
前記経路数推定パケット数算出部は、選んだ前記1つ以上の列のうち、順序番号が最小のパケットを受信するまでに前記パケット受信部が受信したパケットの個数を前記経路数推定パケット数としてもよい。
【0010】
前記応答部は、順序番号n番(nは自然数)までのパケットを前記パケット受信部が全て受信した後、前記パケット受信部がパケットを受信しても順序番号n+1番のパケットが前記パケット保持部に存在しない場合、順序番号n+1番のパケットの欠落を前記第1欠落判定部または前記第2欠落判定部の少なくともいずれか一方が判定するまでパケットの再送の要求を控えてもよい。
【0011】
また、上記課題を解決するために、本発明の別の観点によれば、所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置の通信制御方法において、パケットを受信するパケット受信ステップと、前記パケット受信ステップで受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定ステップと、前記受信順及び前記ネットワークの経路数を用いて経路数推定パケット数を算出する経路数推定パケット数算出ステップと、前記受信順及び前記経路数から前記経路の途中で欠落したパケットを判定する第1欠落判定ステップと、前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第2欠落判定ステップと、前記パケット受信ステップで受信したパケットを保持するパケット保持ステップと、前記パケット保持ステップで保持されているパケットと前記第1欠落判定ステップまたは前記第2欠落判定ステップの少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答ステップと、を備えることを特徴とする、通信制御方法が提供される。
【発明の効果】
【0012】
以上説明したように本発明によれば、送受信端末間の経路数が不明であって、各経路へのパケットの振り分け方法も不明である場合に、パケットの欠落を判断することが可能な、新規かつ改良された通信装置及び通信制御方法を提供することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の一実施形態に係る通信システムの概略構成を示す説明図である。
【図2】本発明の一実施形態にかかる受信端末100Bの構成を示す説明図である。
【図3】本発明の一実施形態にかかる受信端末100Bに含まれる経路数推定部130の動作について示す流れ図である。
【図4】本発明の一実施形態にかかる経路数推定パケット数算出部135の動作を示す流れ図である。
【図5】本発明の一実施形態にかかる第1欠落判定部140の動作を示す流れ図である。
【図6】本発明の一実施形態にかかる第2欠落判定部140の動作を示す流れ図である。
【図7】本発明の一実施形態にかかるバッファ150の動作を示す流れ図である。
【図8】本発明の一実施形態にかかる応答部170の動作を示す流れ図である。
【図9】受信端末100Bが受信するパケット列の一例を示す説明図である。
【図10】受信端末100Bが受信するパケット列の一例を示す説明図である。
【図11】ネットワーク10における経路の一例を示す説明図である。
【発明を実施するための形態】
【0014】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0015】
まず、本件発明者は、送受信端末間の経路数が不明であって、各経路へのパケットの振り分け方法も不明である場合に、パケットの欠落の有無を判断するために、受信端末におけるパケットの到着順序から送受信間の経路数を推定し、この経路数の情報を用いていた。
【0016】
しかし、当該手法を用いた場合には、ある経路においてパケットの欠落が発生した場合、当該欠落パケット以降に送信され、かつ、当該経路を通過したパケットを受信しなければ、パケットの欠落の有無を判断することが出来なかった。
【0017】
そこで、以下で説明する本発明の好適な実施の形態では、送信端末がパケットを送信する際に、パケットに順序番号を付与し、受信端末は、受信したパケットの並びから送受信端末間の経路数を推定する。さらに、当該経路数を推定するまでに要したパケット数(経路数推定パケット数と称する)を算出する。そして、受信端末がn番(nは正の整数)までのパケットを全て受信した後に、受信したパケットがm番(m<n+1)であった場合に、n番のパケットの次に受信したパケットから数えて経路数推定パケット数個のパケットを受信してもなおm番のパケットを受信しない場合には、当該パケットは欠落したものと判断する。
【0018】
<1.本発明の一実施形態>
[1−1.通信システムの構成]
まず、図1を参照して、本発明の一実施形態に係る通信システムの概略構成について説明する。図1に示したように、本発明の一実施形態に係る通信システム1は、送信端末100Aから受信端末100Bに対して、ネットワーク10を介して、順序番号を付与したパケットの形式で送信したいデータを送信する。本実施形態においては、パケットを再送する場合を除き、原則として順序番号の昇順でパケットを送信する。
【0019】
一方、受信端末100Bは、本発明の通信装置の一例であり、送信端末100Aから送信されるパケットを受信すると、順序番号の最初から始めて抜けなく受信した一連のパケットの内の最大の番号や、欠落しているパケットの番号を応答パケットとして送信端末100Aへ送信する。この応答パケットを送信端末100Aが受信することで、送信端末100Aは次に送信するパケットの順序番号を制御する。このような通信制御は、TCP(Transmission Control Protocol)等の通信方式に見られるものである。本実施形態は、このような制御下における主に応答パケットの制御に関わるものである。
【0020】
パケットが流れるネットワーク10の内部では、経路途中のルータ(図示せず)等がパケットを複数の経路に振り分けることで、経路が分岐され得る。図1に示した分岐はその状態を表したものである。送信端末100A、受信端末100Bは、ネットワーク10の中のパケットが通る経路や分岐の数については把握していない。なお、以下の説明では、ネットワーク10は複数の経路に分岐されているものとして説明するが、本発明は、送信端末100Aと受信端末100Bとの間に分岐が全く無い場合であっても同様に適用できるものである。
【0021】
以上、図1を参照して、本発明の一実施形態に係る通信システムの概略構成について説明した。次に、本発明の一実施形態にかかる受信端末100Bの構成について説明する。
【0022】
[1−2.受信端末の構成]
図2は、本発明の一実施形態にかかる受信端末100Bの構成を示す説明図である。以下、図2を用いて本発明の一実施形態にかかる受信端末100Bの構成について説明する。
【0023】
図2に示したように、本発明の一実施形態にかかる受信端末100Bは、パケット受信部120と、経路数推定部130と、経路数推定パケット数算出部135と、第1欠落判定部140と、第2欠落判定部145と、バッファ150と、データ受信部160と、応答部170と、情報部180と、を含んで構成される。
【0024】
パケット受信部120は、送信端末100Aから送信されてくる、順序番号が付与されたパケットを受信するものであり、パケット受信部120は受信したパケットを送信されてきた順序通りにバッファ150に渡す。
【0025】
経路数推定部130は、送信端末100Aと受信端末100Bとの間の経路数を推定するものである。経路数推定部130は、情報部180から、経路数と、データ受信部160が受信した最後尾の順序番号とを取得する。そして経路数推定部130は、情報部180から取得した経路数と、順序番号と、パケット受信部120で受信されたパケットの並びとから、送信端末100Aと受信端末100Bとの間の経路数を推定する。
【0026】
本実施形態では、送信端末100Aと受信端末100Bとの間の経路数は以下のように推定される。
【0027】
パケット受信部120で受信しているパケットは、送信端末100Aが受信端末100Bに対して順序番号の昇順に送信したパケットとする。これは、受信端末100Bからの応答パケットによって既に送信端末100Aが送信した順序番号の小さいパケットを、再度送っていない状態である。このことは、受信端末100Bにおいても、自身の送信する応答パケットによって判断する。
【0028】
経路数推定部130は、情報部180から経路数の推定値kを取得するとともに、データ受信部160が受信した最後尾のパケットの順序番号を取得する。データ受信部160は、順序番号がn番目(n=0,1,2,・・・)までのパケットを全て受け取っているとすると、n=0の場合は、データ受信部160は未だパケットを受け取っていない。その後、順序番号がn番目より大きいm番目のパケットをパケット受信部120が受信したとする。m−n≦kの場合は、経路数推定部130は、kを経路数の推定値とする。一方、m−n>kである場合、経路数推定部130は、先のm番目のパケットを含め、以降受信するn+1番目よりも順序番号が大きいパケットからいくつかのパケットを選び、選んだパケットをパケット受信部120が受信した順に並べる。そして経路数推定部130は、このパケット列について、順序番号が降順に並ぶ個数を数え上げる。ただし順序番号は連続していなくても良い。またパケットが1つの場合にはその個数を1とする。例えば、順序番号が13、11と並んでいれば、順序番号が降順に並ぶ個数は2であり、順序番号が13しかない場合には、順序番号が降順に並ぶ個数は1となる。
【0029】
m−n>kである場合、経路数推定部130は、この個数が最大となるようにパケット列を選び、この列の順序番号が降順に並ぶ個数を経路数の推定値とする。これは、通常であれば順序番号の昇順でパケットが到着するが、ネットワーク10で分岐があることで、パケットの到達順序が逆になることがある。従って、本実施形態では順序番号が降順の並ぶ個数を分岐の数と推定する。
【0030】
数え上げる対象とするパケットは、順序番号がn+1番目からm番目までの全てのパケットをパケット受信部120が受信するまでの間に、パケット受信部120が受信した順序番号が最大の番号と、n+1番目のとの間に入る全てのパケットである。この数え上げの対象には、順序番号がn+1番目のパケットも含まれる。例えば、n=10、m=13の場合に、図9に示したような順序で受信端末100Bがパケットを受信したとする。この場合は、パケット受信部120が、n+1=11番からm=13番までの全てのパケット、すなわち11番と12番のパケットを受信するまでに受信したパケットの最大の番号は16番である。このときに、11番から16番の間に入る全てのパケット、すなわち11、12、13、14、15、16番が数え上げの対象となる。そして、順序番号が降順に並ぶ個数の最大値は、13−12−11や16−15−14の場合の「3」となる。この値が経路数の推定値となる。本実施形態における経路数の推定方法はこの通りである。
【0031】
経路数推定部130は、推定した経路数を情報部180へ渡す。また、上述した経路数の推定方法で説明した、数え上げの対象としたパケットをパケット受信部120が受信した順に並べた列(以下「受信列」と称する)を経路数推定パケット数算出部135に渡す。
【0032】
本実施形態においては、図9に示したような順序で受信端末100Bがパケットを受信した場合に、例えば図11に示したような経路で転送されているとする。
【0033】
経路数推定パケット数算出部135は、経路数推定パケット数を算出するものである。経路数推定パケット数の算出に際しては、経路数推定パケット数算出部135は経路数推定部130から受信列を受け取る。
【0034】
以下、経路数推定パケット数算出部135による経路数推定パケット数の算出方法について説明する。
【0035】
経路数推定パケット数算出部135は、経路数推定部130から受け取った受信列から、順序番号が降順に並ぶ個数が最大となるようにパケット列を選ぶ。ただし、順序番号は連続していなくても良い。
【0036】
このパケット列内の順序番号が最小となるパケットをαとする。もしパケット列が複数選択出来る場合は、パケット列内で順序番号が最小であるパケット同士を比較して、順序番号が最小のパケットをαに決定する。
【0037】
そして、経路数推定パケット数算出部135は、受信列について列の先頭から数えてαまでの個数を、経路数推定パケット数に決定する。
【0038】
例えば、図9に示したような順序で受信端末100Bがパケットを受信したとする。順序番号が降順に並ぶ個数が最大となるようにパケット列を選ぶと、例えば13−12−11や16−15−14などを選ぶことができる。この中で、順序番号が最小のパケット同士を比較すると、最小の順序番号は「11」である。そして、受信列の先頭の順序番号「13」のパケットから数えて、その順序番号「11」までのパケットの数は5である。従って、経路数推定パケット数算出部135は、経路数推定パケット数を5と算出する。経路数推定パケット数算出部135による経路数推定パケット数の算出方法は以上の通りである。
【0039】
経路数推定パケット数算出部135は、上述のように算出した経路数推定パケット数が、情報部180に格納されている経路数推定パケット数よりも大きければ、算出した経路数推定パケット数を情報部180に渡す。
【0040】
第1欠落判定部140は、情報部180から、データ受信部160が受信した最後尾の順序番号と、経路数の推定値kとを取得し、パケット受信部120が未だ受信していないパケットが未到着なのか、経路途中で欠落しているのかを判定するものである。第1欠落判定部140は、パケットが欠落していると判定すると、応答部170へ、欠落しているパケットの順序番号を知らせる。
【0041】
第1欠落判定部140による、パケット欠落判定方法について以下で説明する。
【0042】
情報部180が保持している、データ受信部160が受信した最後尾の順序番号がn番目(n=0,1,2,・・・)であったとする。第1欠落判定部140は、パケット受信部120で、順序番号がn+1番目より大きいm番目のパケットを受信した場合に、そのパケットを含め、以降受信するn+1番目よりも順序番号が大きいパケットから選んだパケットを、パケット受信部120が受信した順に並べる。そして、このパケット列について、順序番号が降順に並ぶ個数を数える。ただし、順序番号は連続していなくても良い。この個数がk個以上になるパケット列があれば、第1欠落判定部140は、n+1番目から、これまで受信したn+1番目より大きい番号の中で最小の順序番号の1つ手前までのパケットが欠落していると判定する。
【0043】
第2欠落判定部145は、パケット受信部120が受信したパケットの並びと、情報部180に記録されているデータ受信部160が受信した最後尾の順序番号と、情報部180に記録されている経路数推定パケット数とから、パケット受信部120が未だ受信していないパケットが未到着なのか、経路途中で欠落しているのかを判定するものである。第2欠落判定部145は、パケットが欠落していると判定すると、応答部170へ、欠落しているパケットの順序番号を知らせる。
【0044】
第2欠落判定部145による、パケット欠落判定方法について以下で説明する。
【0045】
情報部180が保持している、データ受信部160が受信した最後尾の順序番号がn番目(n=0,1,2,・・・)であったとする。第1欠落判定部140は、パケット受信部120で、順序番号がn+1番目より大きいm番目のパケットを受信した場合に、そのパケットから数えて以降受信するn+1番目よりも順序番号が大きいパケットの個数が経路数推定パケット数以上になったときに、n+1番目のパケットは欠落していると判定する。
【0046】
本発明では、第1欠落判定部140と、第2欠落判定部145とは、それぞれ独立して動作してもよく、第1欠落判定部140でパケットの欠落を判定させてから、第2欠落判定部145でパケットの欠落を判定させるようにしてもよく、逆に、第2欠落判定部145でパケットの欠落を判定させてから、第1欠落判定部140でパケットの欠落を判定させるようにしてもよい。第2欠落判定部145は、第1欠落判定部140のパケット欠落判定機能を補完するものであるので、第1欠落判定部140でパケットの欠落を判定させてから、第2欠落判定部145でパケットの欠落を判定させる方が、より好ましい。
【0047】
バッファ150は、パケット受信部120からパケットを受け取るものであり、バッファ150が受け取ったパケットは、順序番号の昇順に、重複無くデータ受信部160へ送られる。また、データ受信部160に送られた順序番号の最後尾の番号はバッファ150から情報部180に送られる。パケット受信部120から受け取ったパケットがバッファ150に存在しているパケットと重複したり、既にデータ受信部160に送ったパケットと同じものであったりした場合には、そのパケットはバッファ150から破棄される。
【0048】
データ受信部160は、バッファ150から渡されたパケットを受信するものである。
【0049】
応答部170は、送信端末100Aがパケットを送る数や番号を制御するための応答パケットを生成して送信するものである。応答パケットの送信を行うために、応答部170は情報部180から、データ受信部160が受信した最後尾の順序番号nを取得する。また応答部170は、第1欠落判定部140、第2欠落判定部145から、欠落しているパケットの情報も取得する。
【0050】
応答部170が生成する応答パケットの内容は、(1)どの順序番号のパケットまで正しい順序で受け取ったかを知らせるものであってもよく、また、(2)特定の順序番号のパケットの再送を要求するものであってもよい。いずれの内容のパケットであっても、応答パケットを受信した送信端末100Aは、どのパケットが受信端末100Bに送られていないのかが分かり、送信端末100Aは受信端末100Bに届けるべきパケットを再送することが出来る。
【0051】
なお、受信端末100Bからの応答パケットは、送信端末100Aと受信端末100Bとの間で予め定められた制御のタイミングで、上記(1)または(2)の少なくともいずれかの内容が記述されて、受信端末100Bから送信端末100Aへ送信される。
【0052】
応答部170は、応答パケットを送るタイミングになった場合に、バッファ150にパケットが無いときは、予め定められた上記(1)または(2)の少なくともいずれかの内容で応答パケットを送信する。一方、応答部170は、応答パケットを送るタイミングになった場合に、バッファ150にパケットがあるとき、すなわち順序番号どおりにパケットが届いておらず、抜けている順序番号のパケットがあるのでバッファ150にパケットがあるときは、上記(1)または(2)の内容を送信する場合であっても、第1欠落判定部140または第2欠落判定部145から欠落している順序番号を受け取るまで応答パケットの送信を控える。ただし、(2)の場合には、その抜けているパケットが無いものとして、すなわちその抜けているパケットの再送を要求しない内容で、応答部170は応答パケットを送信しても良い。その後、第1欠落判定部140または第2欠落判定部145からパケット欠落の通知があれば、応答部170はそのパケットの欠落を送信端末100Aに通知する。
【0053】
情報部180は、経路数推定部130が推定した経路数と、経路数推定パケット数算出部135が算出した経路数推定パケット数と、バッファ150がデータ受信部160に送ったパケットのうち最後尾の順序番号とを保存する。情報部180が保存する、経路数の推定値の初期値、及び、経路数推定パケット数の初期値は、いずれも1である。また、最後尾の順序番号は、この番号以前の順序番号のパケットを、データ受信部160が全て受信していることを保証するものである。
【0054】
以上、図2を用いて本発明の一実施形態にかかる受信端末100Bの構成について説明した。次に、本発明の一実施形態にかかる受信端末100Bの動作について説明する。
【0055】
[1−3.受信端末の動作]
上述したように、パケット受信部120は、送信端末100Aから送信された、順序番号が付与されたパケットを受信し、送られてきた順序通りに、バッファ150へ受信したパケットを渡す。
【0056】
図3は、本発明の一実施形態にかかる受信端末100Bに含まれる経路数推定部130の動作について示す流れ図である。以下、図3を用いて経路数推定部130の動作について詳細に説明する。
【0057】
前提として、パケット受信部120で受信しているパケットは、送信端末100Aが受信端末100Bに対して順序番号の昇順に送信したパケットであるとする。経路数推定部130は、情報部180から、経路数の推定値kを取得するとともに、データ受信部160が受信した最後尾のパケットの順序番号nを取得する(ステップS301)。
【0058】
続いて、経路数推定部130は、パケット受信部120が新たに受信したパケットの順序番号mを取得する(ステップS302)。経路数推定部130は、m−n≦kとなるかどうかを判定し(ステップS303)、m−n≦kであれば後段のステップS308へ進むが、k<m−nであれば、経路数推定部130は、パケット受信部120が順序番号mのパケットの次に受信したパケットの順序番号を取得する(ステップS304)。
【0059】
続いて、経路数推定部130は、順序番号mのパケットを含め、これまで取得した、順序番号nよりも順序番号が大きいパケットから選んだパケットを、パケット受信部120が受信した順に整列し、このパケット列について、順序番号が降順に並ぶ個数dを計数する(ステップS305)。数え上げの対象とするパケットは、順序番号がn+1番目からm番目までの全てのパケットをパケット受信部120が受信するまでの間に、パケット受信部120が受信した順序番号が最大のパケットと、順序番号がn+1番のパケットとの間に入る全てのパケットである。経路数推定部130は、この個数が最大となるように選んだパケット列について、順序番号が降順に並ぶ個数dを経路数の推定値の候補とする。
【0060】
経路数推定部130は、上記ステップS305で数え上げた、順序番号が降順に並ぶ個数が最大となるように選んだパケット列について、順序番号が降順に並ぶ個数dを経路数の推定値kと決定する(ステップS306)。そして経路数推定部130は、順序番号がn+1番目からm番目までの全てのパケットをパケット受信部120が受信するまでの間に、パケット受信部120が受信した順序番号が最大のパケットと、順序番号がn+1番のパケットとの間に入る全てのパケットを受信したかどうかを判断する(ステップS307)。全てのパケットを受信していれば、経路数推定部130は上記ステップS306で決定した経路数の推定値kを情報部180に渡すとともに、受信列を経路数推定パケット数算出部135に渡す(ステップS308)。一方、まだ全てのパケットを受信していなければ、上記ステップS304に戻って、経路数推定部130は、さらに次に受信したパケットの順序番号を取得する処理を実行する。
【0061】
このように、経路数推定部130はネットワーク10における経路数を推定することができる。受信端末100Bは、この経路数推定部130が推定した経路数を用いて、パケットが欠落しているかどうかの判定を行うことができる。
【0062】
以上、図3を用いて経路数推定部130の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末100Bに含まれる経路数推定パケット数算出部135の動作について説明する。
【0063】
図4は、本発明の一実施形態にかかる受信端末100Bに含まれる経路数推定パケット数算出部135の動作について示す流れ図である。以下、図4を用いて経路数推定パケット数算出部135の動作について詳細に説明する。
【0064】
前提として、パケット受信部120で受信しているパケットは、送信端末100Aが受信端末100Bに対して順序番号の昇順に送信したパケットであるとする。経路数推定パケット数算出部135は、経路数推定部130から受信列を受け取り、また情報部180から経路数推定パケット数を取得する(ステップS401)。
【0065】
続いて経路数推定パケット数算出部135は、受け取った受信列から、受信番号が降順に並ぶ個数が最大になるようなパケット列を選ぶ(ステップS402)。続いて経路数推定パケット数算出部135は、選んだパケット列の順序番号が最小となるパケットをαとし、受信列の先頭から数えてαまでの個数を経路数推定パケット数として算出する(ステップS403)。ここで、受信番号が降順に並ぶ個数が最大になるようなパケット列が複数選択可能である場合には、経路数推定パケット数算出部135は、パケット列内で順序番号が最小であるパケット同士を比較して、順序番号が最小のパケットをαに決定する。
【0066】
続いて経路数推定パケット数算出部135は、上記ステップS403で算出した経路数推定パケット数が、上記ステップS401で情報部180から取得した経路数推定パケット数よりも大きければ、上記ステップS403で算出した経路数推定パケット数を情報部180へ渡す(ステップS404)。
【0067】
このように、経路数推定パケット数算出部135は、経路数推定部130から受信列を受け取り、また情報部180から経路数推定パケット数を取得することで、経路数推定パケット数を算出することが出来る。
【0068】
以上、図4を用いて経路数推定パケット数算出部135の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末100Bに含まれる第1欠落判定部140の動作について説明する。
【0069】
図5は、本発明の一実施形態にかかる受信端末100Bに含まれる第1欠落判定部140の動作を示す流れ図である。以下、図5を用いて第1欠落判定部140の動作について詳細に説明する。
【0070】
まず、第1欠落判定部140はパケットの欠落判定処理に際し、情報部180から、経路数の推定値kと、データ受信部160が受信した最後尾のパケットの順序番号nとを取得する(ステップS501)。次に、第1欠落判定部140はパケット受信部120が新たに受信したパケットの順序番号mを受け取り(ステップS502)、n+1<mとなっているかどうかを判定する(ステップS503)。
【0071】
上記ステップS503の判定の結果、n+1≧mである場合には、第1欠落判定部140は、受信パケットに欠落は発生していないと判断し、処理を終了する。一方、上記ステップS503の判定の結果、n+1<mである場合には、続いて第1欠落判定部140はk=1であるかどうかを判定する(ステップS504)。
【0072】
上記ステップS504の判定の結果、情報部180が保持している経路数の推定値kの値がk=1である場合には、受信パケットに欠落が発生していると判断し、第1欠落判定部140は応答部170へパケットの欠落を通知する(ステップS505)。このステップS405では、第1欠落判定部140は、n+1番目から、これまで受信したn+1番より大きい番号の中で最小の順序番号の一つ手前までの順序番号のパケットが欠落していると判定し、応答部170へパケットの欠落を通知する。
【0073】
一方、上記ステップS504の判定の結果、情報部180が保持している経路数の推定値kの値がk=1でない場合には、次に、第1欠落判定部140はパケット受信部120が次に受信したパケットの順序番号を取得する(ステップS506)。
【0074】
上記ステップS506でパケット受信部120が次に受信したパケットの順序番号を取得すると、続いて第1欠落判定部140は、上記ステップS506で取得した順序番号がn+1であるかどうかを判定する(ステップS507)。
【0075】
上記ステップS507の判定の結果、上記ステップS506で取得した順序番号がn+1であるならば、第1欠落判定部140は処理を終了する。一方、上記ステップS507の判定の結果、上記ステップS506で取得した順序番号がn+1で無いならば、続いて第1欠落判定部140は、順序番号mのパケットを含め、これまでパケット受信部120から受け取ったn+1より大きい順序番号から選んだ順序番号を、パケット受信部120が受信した順に並べた列を対象に、ある番号から始めて順序番号が降順に並ぶ個数dを数え上げる(ステップS508)。
【0076】
そして第1欠落判定部140は、上記ステップS508で数え上げた個数dについて、k≦dを満たす列が存在するかどうかを判定する(ステップS509)。k≦dを満たす列が1つでも存在すれば、受信パケットに欠落が発生していると判断し、第1欠落判定部140は応答部170へパケットの欠落を通知する(ステップS505)。一方、どの列のdについてもd<kであるならば、上記ステップS506に戻り、第1欠落判定部140はパケット受信部120が次に受信したパケットの順序番号を取得する。
【0077】
以上、図5を用いて第1欠落判定部140の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末100Bに含まれる第2欠落判定部140の動作について説明する。
【0078】
図6は、本発明の一実施形態にかかる受信端末100Bに含まれる第2欠落判定部145の動作を示す流れ図である。以下、図6を用いて第2欠落判定部145の動作について詳細に説明する。
【0079】
まず、第2欠落判定部145はパケットの欠落判定処理に際し、情報部180から、データ受信部160が受信した最後尾のパケットの順序番号nと、経路数推定パケット数とを取得する(ステップS601)。次に、第2欠落判定部145はパケット受信部120が新たに受信したパケットの順序番号mを受け取る(ステップS602)。ここで、m=n+1であれば、第2欠落判定部145は動作を終了する。一方、m≠n+1であれば、第2欠落判定部145は、パケット受信部120から受け取ったパケットの個数sと、経路数推定パケット数tとを比較する(ステップS603)。
【0080】
第2欠落判定部145は、パケット受信部120から受け取ったパケットの個数sと、経路数推定パケット数tとを比較して、s<tであった場合には、上記ステップS602に戻って、パケット受信部120が新たに受信したパケットの順序番号mを受け取る。一方、t≦sであった場合には、第2欠落判定部145はn+1番目のパケットは欠落していると判定し、パケットの欠落を応答部170へ通知する(ステップS604)。
【0081】
以上、図6を用いて第2欠落判定部145の動作について詳細に説明した。次に、本発明の一実施形態にかかる受信端末100Bに含まれるバッファ150の動作について説明する。
【0082】
図7は、本発明の一実施形態にかかる受信端末100Bに含まれるバッファ150の動作を説明する流れ図である。以下、図7を用いてバッファ150の動作について説明する。
【0083】
まず、バッファ150はパケット受信部120からパケットを受け取ると(ステップS701)、受信したパケットに付与されている順序番号の小さい順に、受け取ったパケットをデータ受信部160へ渡す(ステップS702)。バッファ150は、欠落している順序番号のパケットがあれば、そのパケットがパケット受信部120から送られて来るまで待機する。また、既にデータ受信部160へ渡したものと重複しているパケットがあれば、バッファ150はそのパケットを破棄する。
【0084】
そして、バッファ150は、データ受信部160へ渡した最後のパケットの順序番号を情報部180に渡す。
【0085】
以上、図7を用いてバッファ150の動作について説明した。次に、本発明の一実施形態にかかる受信端末100Bに含まれる応答部170の動作について説明する。
【0086】
図8は、本発明の一実施形態にかかる応答部170の動作について示す流れ図である。以下、図8を用いて一実施形態にかかる応答部170の動作について説明する。
【0087】
応答部170は、データ受信部160が受け取った最後のパケットの順序番号nを情報部180から取得する(ステップS801)。次に、応答部170はバッファ150にパケットが存在しているかどうかを確認する(ステップS802)。
【0088】
上記ステップS802の確認の結果、バッファ150にパケットが無いか、または順序番号がn+1であるパケットがあれば、順序番号通りにパケットが受信出来ているので、応答部170は、予め定められた上記(1)または(2)の少なくともいずれかの内容で応答パケットを送信し、処理を終了する。
【0089】
一方、上記ステップS802の確認の結果、バッファ150に順序番号がn+2以降のパケットが存在していれば、応答部170は第1欠落判定部140または第2欠落判定部145の少なくともいずれか一方から、パケットの欠落の通知を受けているかどうかを確認する(ステップS803)。第1欠落判定部140または第2欠落判定部145の少なくともいずれか一方からパケットの欠落の通知を受けていなければ、上記ステップS802に戻り、応答部170は応答パケットの送信を控える。一方、第1欠落判定部140または第2欠落判定部145の少なくともいずれか一方からパケットの欠落の通知を受けていれば、応答部170は、送信端末100Aに対して、欠落しているパケットの番号を応答パケットにより通知する(ステップS804)。この通知は、予め定められた上記(1)または(2)の少なくともいずれかの内容によって行われる。
【0090】
以上、図8を用いて本発明の一実施形態にかかる応答部170の動作について説明した。このように、応答部170は第1欠落判定部140または第2欠落判定部145の少なくともいずれか一方からパケットの欠落の通知を受けるまで応答パケットの送信を控えることで、ネットワーク10への無駄なトラフィックの発生を抑えることができる。
【0091】
ここで、経路数推定部130、経路数推定パケット数算出部135、第1欠落判定部140、第2欠落判定部145、バッファ150、応答部170の具体的な動作例を説明する。送信端末100Aは、受信端末100Bに対して、1、2、3、・・・と続く順序番号を付与したデータパケットを番号の昇順に送信している。以降、パケットの番号についての記述がある場合には、特に断らない限りこの順序番号を指す。受信端末100Bは、送信端末100Aが送信したデータパケットを受け取り、1パケットを受け取る度に1応答パケットを送信端末100Aに送信しているとする。
【0092】
送信端末100Aから送信されるデータパケット、受信端末100Bから送信される応答パケット共に、経路途中のネットワーク10の中で、ルータ(図示せず)等によってパケットが複数の経路に分配されている可能性があるが、送信端末100A、受信端末100Bとも、いくつの経路に分配されているかは分からない。
【0093】
ここで、受信端末100Bが、10番まで順序通りにデータパケットを受信しており、データ受信部160が受信したパケットを全て受け取っているとする。これ以降、送信端末100Aから受信するパケットについての受信端末100Bの動作を、図面を参照しながら具体的に説明する。このとき、情報部180にはデータ受信部160が受信した最後の順序番号10番と、経路数の推定値k=1と、経路数推定パケット数t=1とが保存されている。
【0094】
このとき、パケット受信部120が13番のパケットを受信したとする。パケット受信部120が受信した13番のパケットはバッファ150に渡される。そして、その13番のパケットも含め、図9に示した順序でパケット受信部120がパケットを受信した場合に、経路数推定部130の動作を、図3に示した流れ図に沿って説明する。
【0095】
まず、経路数推定部130は、情報部180から、分岐数の推定値k=1を取得するとともに、データ受信部160が受信した最後尾のパケットの順序番号n=10を取得する(ステップS301)。続いて、経路数推定部130は、パケット受信部120が新たに受信したパケットの順序番号m=13を取得する(ステップS302)。経路数推定部130は、m−n≦kとなるかどうかを判定し(ステップS303)、k<m−nであるので、経路数推定部130は、パケット受信部120が順序番号m=13のパケットの次に受信したパケットの順序番号(12)を取得する(ステップS304)。
【0096】
12番のパケットを受信した時点で、降順に並ぶ個数は13番、12番であるから2つである。よって、順序番号が降順に並ぶ個数dはd=2である(ステップS305)。そして、経路数推定部130は、順序番号が降順に並ぶ個数d=2を経路数の推定値kの候補とする(ステップS306)。
【0097】
12番のパケットを受信した時点での最大の順序番号は13である。そしてパケット受信部120は11番のパケットを受信していないので、経路数推定部130は、パケット受信部120が受信した順序番号が最大のパケット(13番のパケット)と、順序番号がn+1番のパケット(11番の)との間に入る全てのパケットを受信したかどうかを判断し(ステップS307)、全てのパケットを受信していないので、ステップS304に戻って、経路数推定部130は、さらに次に受信したパケットの順序番号を取得する処理を実行する。
【0098】
その後、パケット受信部120が14番のパケットを受信すると、14番のパケットを受信した時点で、降順に並ぶ個数は13番、12番、11番または16番、15番、14番であるから3つである。従って、順序番号が降順に並ぶ個数dはd=3である(ステップS305)。そして、経路数推定部130は、順序番号が降順に並ぶ個数d=3を経路数の推定値kの候補とする(ステップS306)。
【0099】
14番のパケットを受信した時点での最大の順序番号は16である。経路数推定部130は、パケット受信部120が受信した順序番号が最大のパケット(16番のパケット)と、順序番号がn+1番のパケット(11番の)との間に入る全てのパケットを受信したかどうかを判断する(ステップS307)。14番のパケットを受信した時点で、11番から16番までの全てのパケットを受信しているので、経路数推定部130は上記ステップS306で候補とした経路数の推定値k=3を情報部180に保存する(ステップS308)。また経路数推定部130は、経路数推定パケット数算出部135に受信列を送る。
【0100】
次に、経路数推定パケット数算出部135の動作を、図4に示した流れ図に沿って説明する。
【0101】
経路数推定パケット数算出部135は、経路数推定部130から図9に示す受信列を受け取り、また情報部180から経路数推定パケット数=1を取得する(ステップS401)。
【0102】
続いて経路数推定パケット数算出部135は、受け取った受信列から、受信番号が降順に並ぶ個数が最大になるようなパケット列を選ぶが、ここでは、そのようなパケット列として、13−12−11や、16−15−14を選ぶ(ステップS402)。
【0103】
続いて経路数推定パケット数算出部135は、上記ステップS402でパケット列を2つ選んでいるので、その2つのパケット列におけるパケットの最小の順序番号を比較し、最小の順序番号α=11を決定する。これにより、図9に示す受信列において、先頭のパケットから順序番号11番のパケットまでのパケット数は5となるから、経路数推定パケット数算出部135は経路数推定パケット数を5と決定する(ステップS403)。
【0104】
続いて経路数推定パケット数算出部135は、決定した経路数推定パケット数と、情報部180から取得した経路数推定パケット数を比較する。ここでは、上記ステップS403で決定した経路数推定パケット数の方が大きいので、経路数推定パケット数算出部135は上記ステップS403で算出した経路数推定パケット数=5を情報部180へ渡す(ステップS404)。
【0105】
次に、経路数推定部130が推定した経路数の推定値が3、経路数推定パケット数算出部135が算出した経路数推定パケット数が5の場合における、受信端末100Bでのパケットの欠落判断処理について、図10に示すような受信列でパケットを受信した場合を例にあげて説明する。なおパケットの欠落判断処理に際し、情報部180には、データ受信部160が受信したパケットの最後尾の順序番号20番と、経路数の推定値k=3と、経路数推定パケット数t=5が保存されているものとする。
【0106】
図10に示した順序番号21番のパケットは、送信端末100Aから受信端末100Bへの経路の途中で欠落し、実際には受信端末100Bは当該順序番号21番のパケットは受信出来ていないものとする。すなわち、受信端末100Bは、順序番号26番のパケットの次は順序番号27番のパケットを受信することになる。
【0107】
受信端末100Bは、順序番号27番のパケットを受信するまで以下のような動作を実行する。まず、第1欠落判定部140の動作を図5に示した流れ図に即して説明する。
【0108】
第1欠落判定部140はパケットの欠落判定処理に際し、情報部180から、データ受信部160が受信したパケットの最後尾の順序番号n=20番と、経路数の推定値k=3とを取得する(ステップS501)。次に、第1欠落判定部140はパケット受信部120が新たに受信したパケットの順序番号m=25を受け取り(ステップS502)、n+1<mとなっているかどうかを判定する(ステップS503)。n+1(=21)<m(=25)となるので、続いて第1欠落判定部140はk=1であるかどうかを判定する(ステップS504)。k=1ではないので、次に、第1欠落判定部140はパケット受信部120が次に受信したパケットの順序番号(22)を取得する(ステップS506)。
【0109】
上記ステップS506でパケット受信部120が次に受信したパケットの順序番号(22)を取得すると、続いて第1欠落判定部140は、上記ステップS506で取得した順序番号号(22)がn+1であるかどうかを判定する(ステップS507)。ステップS506で取得した順序番号は22であり、n+1=21ではないので、第1欠落判定部140は、これまでパケット受信部120から受け取ったn+1(=21)より大きい順序番号から選んだ順序番号を、パケット受信部120が受信した順に並べた列を対象に、ある番号から始めて順序番号が降順に並ぶ個数dを数え上げる(ステップS508)。ここでは、降順に並ぶ個数の最大値dは、d=1となる。
【0110】
続いて第1欠落判定部140は、上記ステップS508で数え上げた個数dについて、k≦dを満たす列が存在するかどうかを判定する(ステップS509)。どの列のdについてもd<kであるので、上記ステップS506に戻り、第1欠落判定部140はパケット受信部120が次に受信したパケットの順序番号(24)を取得する。続いて第1欠落判定部140はステップS506で取得した順序番号(24)がn+1であるかどうかを判定する(ステップS507)。ステップS506で取得した順序番号は24であり、n+1=21ではないので、第1欠落判定部140は、同様に順序番号が降順に並ぶ個数dを数え上げる(ステップS508)。ここでは、降順に並ぶ個数の最大値dは、d=2となる。
【0111】
このように、第1欠落判定部140は上記ステップS506からステップS509までの処理を繰り返す。その後、ステップS506で、第1欠落判定部140は順序番号27番を受け取った後、第1欠落判定部140はパケット受信部120が次に受信したパケットの順序番号を受け取る。すると、順序番号23番までのパケットを受信したとき、パケットが降順に並ぶ個数の最大値dは、順序番号25−24−23の並びから、d=3となる。従って、第1欠落判定部140は、順序番号23番までのパケットを受信したときに、初めて順序番号21番のパケットが欠落していると判定することができる。
【0112】
以上、第1欠落判定部140の動作を説明した。続いて、第2欠落判定部145の動作を図6に示した流れ図に即して説明する。
【0113】
まず第2欠落判定部145は、パケットの欠落判定処理に際し、情報部180から、データ受信部160が受信した最後尾のパケットの順序番号n=20と、経路数推定パケット数t=5とを取得する(ステップS601)。次に、第2欠落判定部145はパケット受信部120が新たに受信したパケットの順序番号m=25を受け取る(ステップS602)。m≠n+1であるので、第2欠落判定部145は、パケット受信部120から受け取ったパケットの個数s=1と、経路数推定パケット数t=5とを比較する(ステップS603)。s<tであるので、第2欠落判定部145はステップS602に戻って、パケット受信部120が新たに受信したパケットの順序番号m=22を受け取る。
【0114】
m≠n+1であるので、第2欠落判定部145は、パケット受信部120から受け取ったパケットの個数s=2と、経路数推定パケット数t=5とを比較する(ステップS603)。s<tであるので、第2欠落判定部145はステップS602に戻って、パケット受信部120が新たに受信したパケットの順序番号を受け取る。同様に、第2欠落判定部145はステップS602とステップS603の処理を繰り返す。
【0115】
その後、ステップS602で、第2欠落判定部145はパケット受信部120が新たに受信したパケットの順序番号m=27を受け取ったとする。m≠n+1であるので、第2欠落判定部145は、パケット受信部120から受け取ったパケットの個数s=5と、経路数推定パケット数t=5とを比較する(ステップS603)。t≦sであるので、第2欠落判定部145はn+1(21)番目のパケットは欠落していると判定し、パケットの欠落を応答部170へ通知する(ステップS604)。
【0116】
以上、第2欠落判定部145の動作を説明した。続いて、バッファ150の動作を図7に示した流れ図に即して説明する。
【0117】
バッファ150は、パケット受信部120から21番のパケットを受け取ると(ステップS701)、受け取った21番のパケットをデータ受信部160へ渡す(ステップS702)とともに、バッファ150は、データ受信部160へ渡した最後のパケットの順序番号(21)を情報部180に渡す。
【0118】
以上、バッファ150の動作を説明した。続いて、応答部170の動作を図8に示した流れ図に即して説明する。
【0119】
応答部170は、データ受信部160が受け取った最後のパケットの順序番号n=20を情報部180から取得する(ステップS801)。ここで、バッファ150が、順序番号25、22、24、26、27のパケットを受け取っていたとすると、順序番号n+1以降のパケットしか無いので(ステップS802)、応答部170は第1欠落判定部140または第2欠落判定部145の少なくともいずれか一方から、パケットの欠落の通知を受けているかどうかを確認する(ステップS803)。ここで、順序番号27番のパケットを受信した時点で、第2欠落判定部145は順序番号21番のパケットは欠落していると判定し、パケットの欠落を応答部170へ通知するので、応答部170は、予め定められた上記(1)または(2)の少なくともいずれかの内容で応答パケットを送信端末100Aへ送信し、処理を終了する。
【0120】
以上、経路数推定部130、経路数推定パケット数算出部135、第1欠落判定部140、第2欠落判定部145、バッファ150、応答部170の具体的な動作例について説明した。
【0121】
以上説明したように本発明の一実施形態によれば、送信端末100Aと受信端末100Bとの間の経路数が不明な状況で、受信端末100Bで受信したパケットの順序が、送信端末100Aで送信された順序と異なっている場合に、経路数推定パケット数を用いることで、受信端末100Bはパケットの欠落の有無を検出することが出来る。
【0122】
パケットの欠落の有無の検出に経路数の情報を用いた場合、受信パケットが経路数以上降順に並ばない限り、すなわち、すべての経路からのパケットが少なくとも1つ以上到達しない限り、欠落パケットの再送を要求することが出来ない。上述した実施形態では、図10のようにパケットが受信端末100Bに到達した場合には、23番のパケットを受信した時点で初めて21番のパケットが欠落しているものと判定することが出来る。
【0123】
一方、パケットの欠落の有無の検出に経路数推定パケット数の情報を用いた場合、経路数推定パケット数個のパケットを受信した時点でパケットの欠落の有無を判定して、パケットの再送を要求することができる。上述した実施形態では、図10のようにパケットが受信端末100Bに到達した場合には、27番のパケットを受信した時点で21番のパケットが欠落しているものと判定することが出来る。これにより、本発明の一実施形態にかかる受信端末100Bは、すべての経路を経由するパケットを受信する前に、素早くパケットの欠落の有無を検出することが出来る。
【0124】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【0125】
本発明は、通信装置及び通信制御方法に適用可能であり、特にある一恋のデーを送信する場合にそのデータの到着を保証する通信、例えばTCPやSCTPに適用可能である。
【符号の説明】
【0126】
100A 送信端末
100B 受信端末
120 パケット受信部
130 経路数推定部
135 経路数推定パケット数算出部
140 第1欠落判定部
145 第2欠落判定部
150 バッファ
160 データ受信部
170 応答部
180 情報部
【特許請求の範囲】
【請求項1】
所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置において、
パケットを受信するパケット受信部と、
前記パケット受信部が受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定部と、
前記受信順及び前記ネットワークの経路数を用いて経路数推定パケット数を算出する経路数推定パケット数算出部と、
前記受信順及び前記経路数から前記経路の途中で欠落したパケットを判定する第1欠落判定部と、
前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第2欠落判定部と、
前記パケット受信部が受信したパケットを保持するパケット保持部と、
前記パケット保持部に保持されているパケットと前記第1欠落判定部または前記第2欠落判定部の少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答部と、
を備えることを特徴とする、通信装置。
【請求項2】
前記経路数推定パケット数算出部は、順序番号n番(nは自然数)までのパケットを前記パケット受信部が全て受信した後、順序番号m番(mは2以上の整数であり、m>n+1)のパケットを前記パケット受信部が受信した場合に、その後前記パケット受信部が受信する順序番号n+1番のパケットから、順序番号n+1番からm番までのパケットを前記パケット受信部が受信するまでの間に受信した最大の順序番号を有するパケットまでの全ての受信パケットについて、順序番号m番のパケットから数えて前記全ての受信パケットを前記パケット受信部が受信した順に並べた列で順序番号が降順に並ぶ個数が最大となるように少なくとも1つ以上の列を選び、該1つ以上の列を用いて前記経路数推定パケット数を算出することを特徴とする、請求項1に記載の通信装置。
【請求項3】
前記経路数推定パケット数算出部は、選んだ前記1つ以上の列のうち、順序番号が最小のパケットを受信するまでに前記パケット受信部が受信したパケットの個数を前記経路数推定パケット数とすることを特徴とする、請求項2に記載の通信装置。
【請求項4】
前記応答部は、順序番号n番(nは自然数)までのパケットを前記パケット受信部が全て受信した後、前記パケット受信部がパケットを受信しても順序番号n+1番のパケットが前記パケット保持部に存在しない場合、順序番号n+1番のパケットの欠落を前記第1欠落判定部または前記第2欠落判定部の少なくともいずれか一方が判定するまでパケットの再送の要求を控えることを特徴とする、請求項1〜3のいずれかに記載の通信装置。
【請求項5】
所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置の通信制御方法において、
パケットを受信するパケット受信ステップと、
前記パケット受信ステップで受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定ステップと、
前記受信順及び前記ネットワークの経路数を用いて経路数推定パケット数を算出する経路数推定パケット数算出ステップと、
前記受信順及び前記経路数から前記経路の途中で欠落したパケットを判定する第1欠落判定ステップと、
前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第2欠落判定ステップと、
前記パケット受信ステップで受信したパケットを保持するパケット保持ステップと、
前記パケット保持ステップで保持されているパケットと前記第1欠落判定ステップまたは前記第2欠落判定ステップの少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答ステップと、
を備えることを特徴とする、通信制御方法。
【請求項1】
所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置において、
パケットを受信するパケット受信部と、
前記パケット受信部が受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定部と、
前記受信順及び前記ネットワークの経路数を用いて経路数推定パケット数を算出する経路数推定パケット数算出部と、
前記受信順及び前記経路数から前記経路の途中で欠落したパケットを判定する第1欠落判定部と、
前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第2欠落判定部と、
前記パケット受信部が受信したパケットを保持するパケット保持部と、
前記パケット保持部に保持されているパケットと前記第1欠落判定部または前記第2欠落判定部の少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答部と、
を備えることを特徴とする、通信装置。
【請求項2】
前記経路数推定パケット数算出部は、順序番号n番(nは自然数)までのパケットを前記パケット受信部が全て受信した後、順序番号m番(mは2以上の整数であり、m>n+1)のパケットを前記パケット受信部が受信した場合に、その後前記パケット受信部が受信する順序番号n+1番のパケットから、順序番号n+1番からm番までのパケットを前記パケット受信部が受信するまでの間に受信した最大の順序番号を有するパケットまでの全ての受信パケットについて、順序番号m番のパケットから数えて前記全ての受信パケットを前記パケット受信部が受信した順に並べた列で順序番号が降順に並ぶ個数が最大となるように少なくとも1つ以上の列を選び、該1つ以上の列を用いて前記経路数推定パケット数を算出することを特徴とする、請求項1に記載の通信装置。
【請求項3】
前記経路数推定パケット数算出部は、選んだ前記1つ以上の列のうち、順序番号が最小のパケットを受信するまでに前記パケット受信部が受信したパケットの個数を前記経路数推定パケット数とすることを特徴とする、請求項2に記載の通信装置。
【請求項4】
前記応答部は、順序番号n番(nは自然数)までのパケットを前記パケット受信部が全て受信した後、前記パケット受信部がパケットを受信しても順序番号n+1番のパケットが前記パケット保持部に存在しない場合、順序番号n+1番のパケットの欠落を前記第1欠落判定部または前記第2欠落判定部の少なくともいずれか一方が判定するまでパケットの再送の要求を控えることを特徴とする、請求項1〜3のいずれかに記載の通信装置。
【請求項5】
所定区切りの一連のパケットがネットワークを介して送信端末から順序番号が付与されて送信されたパケットを受信する通信装置の通信制御方法において、
パケットを受信するパケット受信ステップと、
前記パケット受信ステップで受信したパケットの受信順から前記ネットワークの経路数を推定して計算する経路数推定ステップと、
前記受信順及び前記ネットワークの経路数を用いて経路数推定パケット数を算出する経路数推定パケット数算出ステップと、
前記受信順及び前記経路数から前記経路の途中で欠落したパケットを判定する第1欠落判定ステップと、
前記受信順及び前記経路数推定パケット数から前記経路の途中で欠落したパケットを判定する第2欠落判定ステップと、
前記パケット受信ステップで受信したパケットを保持するパケット保持ステップと、
前記パケット保持ステップで保持されているパケットと前記第1欠落判定ステップまたは前記第2欠落判定ステップの少なくとも一方で欠落と判定されたパケットとの順序番号から、欠落したパケットの再送を前記送信端末へ要求する応答ステップと、
を備えることを特徴とする、通信制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−204969(P2012−204969A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−66015(P2011−66015)
【出願日】平成23年3月24日(2011.3.24)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成21年度独立行政法人情報通信研究機構「高度通信・放送研究開発委託研究/ダイナミックネットワーク技術の研究開発 課題ア スケラーブルネットワーク構造最適化に関する技術」、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願日】平成23年3月24日(2011.3.24)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成21年度独立行政法人情報通信研究機構「高度通信・放送研究開発委託研究/ダイナミックネットワーク技術の研究開発 課題ア スケラーブルネットワーク構造最適化に関する技術」、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】
[ Back to top ]