(57)【要約】【課題】輻輳が原因でパケットのロスが発生したか否かを判断することができる通信装置および通信システムを得ること。【解決手段】複数の異なる通信経路が混在したネットワークを介してデータの送受信を行う通信装置１において、パケットを送信したときの送信時刻と、送信したパケットの確認応答を受信したときの受信時刻との差である往復遅延時間を算出する処理部１３を備え、処理部１３は、パケットのロスが生じた場合、ロスしたパケットよりも前の１または複数のパケットの往復遅延時間に基づいて、輻輳によるパケットのロスであるか否かを判断する。【選択図】図１
2017022520.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なる通信経路が混在したネットワークを介してデータの送受信を行う通信装置において、
パケットを送信したときの送信時刻と、送信したパケットの確認応答を受信したときの受信時刻との差である往復遅延時間を算出する処理部を備え、
前記処理部は、パケットのロスが発生した場合、ロスしたパケットよりも前の１または複数のパケットの往復遅延時間に基づいて、輻輳によるパケットのロスであるか否かを判断することを特徴とする通信装置。
【請求項２】
前記処理部は、前記往復遅延時間に基づいて、輻輳によるパケットのロスであると判断した場合、輻輳ウィンドウサイズを小さくし、輻輳によるパケットのロスではないと判断した場合、輻輳ウィンドウサイズを変更しないことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記処理部は、
あらかじめ設定されたパケットの大きさにペイロードデータを細分化し、細分化したペイロードデータにシーケンスナンバーを付加する処理と、送信されてきたペイロードデータに付加されているシーケンスナンバーを取り出す処理とを行う通信制御部と、
シーケンスナンバーが付加されているペイロードデータに情報を付加して送信パケットを生成する処理と、受信パケットを解釈して、ペイロードデータを取り出す処理とを行うパケット処理部と
前記送信パケットを前記ネットワークに送信する処理と、前記ネットワークを介して送信されてきた受信パケットを受信する処理とを行うパケット送受信部と、
前記送信パケットを送信した送信時刻と前記受信パケットを受信した受信時刻を、共通するシーケンスナンバーごとに関連付けて記録する時刻記録部と、
シーケンスナンバーごとに関連付けられて記録されている送信時刻と受信時刻との差から往復遅延時間を算出する遅延時間算出部とを備え、
前記通信制御部は、パケットのロスが発生した場合、ロスしたパケットよりも前の１または複数のパケットの往復遅延時間に基づいて、輻輳によるパケットのロスであるか否かを判断することを特徴とする請求項１に記載の通信装置。
【請求項４】
前記通信制御部は、パケットのロスが発生した場合、ロスしたパケットよりも前のパケットの往復遅延時間の履歴を参照して許容閾値を算出し、ロスしたパケットの直前のパケットの往復遅延時間が当該許容閾値よりも大きい場合には、輻輳によるパケットのロスであると判断し、ロスしたパケットの直前のパケットの往復遅延時間が当該許容閾値よりも小さい場合には、輻輳によるパケットのロスではないと判断することを特徴とする請求項３に記載の通信装置。
【請求項５】
前記複数の異なる通信経路が混在したネットワークとは、有線通信による経路と光空間通信による経路とが混在したネットワークであることを特徴とする請求項１に記載の通信装置。
【請求項６】
請求項１から５いずれか一項に記載の通信装置を備えることを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを送信する通信装置および通信システムに関する。
【背景技術】
【０００２】
近年、人体および精密機器に影響がないとされるなど利点が多いことから光空間通信が注目されている。光空間通信の適用例は、インターネットを介した情報の送受信を携帯端末などで行う場合に、光空間通信を利用する形態が考えられる。また、当該形態において、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのトランスポート層のプロトコルにおいて、例えば、インターネット上で一般的に用いられるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）を使用する場合、端末と端末との間のエンドツーエンドでＴＣＰセッションが張られることになる（非特許文献１を参照）。
【０００３】
また、端末間は、有線通信による経路と光空間通信による経路とが混在したネットワークに対してＴＣＰの制御を行うことが考えられる。ＴＣＰは、インターネットで広く用いられているプロトコルであるが、信頼性の高い通信を実現すると共に、ネットワークの輻輳を回避するための輻輳制御を行っている。例えば、パケットを低帯域で流すようにすれば、輻輳を回避することができるが、高速通信を実現することができない。そこで、輻輳を回避しながら高速通信を実現するための輻輳制御の研究が行われている。輻輳制御のアルゴリズムにおいて、パケットのロスを検出した場合、ネットワークに輻輳が起こったことを検知し、パケットを送信する帯域を小さくする、すなわち、輻輳ウィンドウサイズを小さくするアルゴリズムがある。
【０００４】
また、光空間通信は、気象および障害物によってパケットのロスが発生することがある。光空間通信を利用する場合において、パケットのロスが発生したときに、輻輳ウィンドウサイズを小さくしてしまうと、輻輳ウィンドウサイズをもとの大きさまで戻すのに時間がかかり、効率のよい通信ができない可能性がある。特許文献１では、端末間の通信経路をあらかじめ設定する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１４／１３３０６６号
【非特許文献】
【０００６】
【非特許文献１】ＴＲＡＮＳＭＩＳＳＩＯＮ  ＣＯＮＴＲＯＬ  ＰＲＯＴＯＣＯＬ、［ｏｎｌｉｎｅ］、［平成２７年６月２日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｉｅｔｆ．ｏｒｇ／ｒｆｃ／ｒｆｃ７９３．ｔｘｔ＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１は、単一の経路で通信することを前提にしている。そのため、有線通信による経路と光空間通信による経路とが混在したネットワークで通信を行う場合、パケットのロスが発生したときに、輻輳が生じていないのに輻輳が生じていると判断し、輻輳ウィンドウサイズを小さくしてしまう可能性がある。
【０００８】
本発明は、上記に鑑みてなされたものであって、複数の異なる通信経路が混在したネットワークで通信を行う場合において、輻輳が原因でパケットのロスが発生したか否かを判断することができる通信装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、複数の異なる通信経路が混在したネットワークを介してデータの送受信を行う通信装置において、パケットを送信したときの送信時刻と、送信したパケットの確認応答を受信したときの受信時刻との差である往復遅延時間を算出する処理部を備え、処理部は、パケットのロスが発生した場合、ロスしたパケットよりも前の１または複数のパケットの往復遅延時間に基づいて、輻輳によるパケットのロスであるか否かを判断することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、複数の異なる通信経路が混在したネットワークで通信を行う場合において、輻輳が原因でパケットのロスが発生したか否かを判断することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかる通信システム構成を示す図
【図２】シーケンスナンバーと、送信パケットの送信時刻とが関連付けられたテーブルを模式的に示す図
【図３】シーケンスナンバーと、送信パケットの送信時刻と、ＡＣＫパケットの受信時刻とが関連付けられたテーブルを模式的に示す図
【図４】実施の形態１にかかる処理部によるパケットの送受信の動作についての説明に供するフローチャート
【図５】実施の形態１にかかるＴＣＰ制御部によるパケットのロスの検出処理の動作についての説明に供するフローチャート
【図６】実施の形態１にかかるＴＣＰ制御部の動作であって、ＳＡＣＫオプションが有効ではない場合についての説明に供するフローチャート
【図７】実施の形態１にかかるＴＣＰ制御部の動作であって、ＳＡＣＫオプションが有効である場合についての説明に供するフローチャート
【図８】実施の形態１にかかる第１通信装置の処理部のハードウェア構成の例を示す図
【図９】実施の形態１にかかる第１通信装置の処理部のハードウェア構成の例を示す図
【図１０】実施の形態２にかかる通信システム構成を示す図
【図１１】実施の形態３にかかる通信システム構成を示す図
【図１２】実施の形態４にかかる通信システム構成を示す図
【発明を実施するための形態】
【００１２】
以下に、本発明の実施の形態にかかる通信装置および通信システムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態１．
図１は、本発明の実施の形態１にかかる通信システム１００の構成を示す図である。通信システム１００では、第１通信装置１と第２通信装置２とが複数の異なる通信経路が混在したネットワークを介してデータの送受信を行う。複数の異なる通信経路が混在したネットワークとは、例えば、有線通信による経路と光空間通信による経路とが混在したネットワークである。以下では、有線通信による経路を第１ネットワークＮ１と称し、光空間通信による経路を第２ネットワークＮ２と称し、第１ネットワークＮ１と第２ネットワークＮ２とをネットワークＮと総称する。また、第１ネットワークＮ１と第２ネットワークＮ２との間には、第１ネットワークＮ１から送信されてきた電気信号を光信号に変換し、変換後の光信号を第２ネットワークＮ２に送信し、第２ネットワークＮ２から送信されてきた光信号を電気信号に変換し、変換後の電気信号を第１ネットワークＮ１に送信する変換器３が備えられている。
【００１４】
また、実施の形態１では、第１通信装置１から第２通信装置２にネットワークＮを介してパケット化されたデータを送信し、第２通信装置２から第１通信装置１にネットワークＮを介して確認応答であるＡＣＫパケットを送信し、第１通信装置１がＡＣＫパケットを受信する場合を想定して説明する。
【００１５】
第１通信装置１は、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルにおけるトランスポート層より上位の層の機能を提供するサービス部１１と、時刻を出力する時刻出力部１２と、パケットを送信したときの送信時刻と、送信したパケットの確認応答を受信したときの受信時刻との差である往復遅延時間を算出する処理部１３と、パケットをネットワークＮに送信する処理と、ネットワークＮから送信されてきたパケットを受信する処理を行うパケット送受信部１４とを備える。
【００１６】
時刻出力部１２は、処理部１３に時刻を出力する構成であればよく、例えば、時刻情報配信装置であるＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）受信器と接続されて、ＧＰＳ衛星から送信された電波により時刻同期を行う構成でもよい。なお、時刻情報は、第１通信装置１内で時間間隔の測定に使用するため、内部で取り扱う時刻が第１通信装置１の外部で認識される時刻と異なっていてもよい。
【００１７】
処理部１３は、パケットのロスが発生した場合、ロスしたパケットよりも前の１または複数のパケットの往復遅延時間に基づいて、輻輳によるパケットのロスであるか否かを判断する。
【００１８】
また、処理部１３は、往復遅延時間に基づいて、輻輳によるパケットのロスであると判断した場合、輻輳ウィンドウサイズを小さくし、輻輳によるパケットのロスではないと判断した場合、輻輳ウィンドウサイズを変更しない。
【００１９】
ここで、処理部１３の構成について説明する。処理部１３は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）の制御を行う通信制御部であるＴＣＰ制御部１５と、パケットの生成処理とパケットの解釈処理とを行うパケット処理部である生成および解釈部１６と、パケットの送受信した時刻を記録する時刻記録部１７と、パケットの遅延を判断する遅延時間算出部である遅延判断部１８とを備える。
【００２０】
ＴＣＰ制御部１５は、あらかじめ設定されたパケットの大きさにペイロードデータを細分化し、細分化したペイロードデータにシーケンスナンバーを付加する処理と、送信されてきたペイロードデータに付加されているシーケンスナンバーを取り出す処理とを行う。
【００２１】
また、ＴＣＰ制御部１５は、パケットのロスが発生した場合、ロスしたパケットよりも前の１または複数のパケットの往復遅延時間に基づいて、輻輳によるパケットのロスであるか否かを判断する。
【００２２】
生成および解釈部１６は、シーケンスナンバーが付加されているペイロードデータに情報を付加して送信パケットを生成する処理と、受信パケットを解釈して、ペイロードデータを取り出す処理とを行う。パケット送受信部１４は、生成および解釈部１６により生成された送信パケットをネットワークＮに送信する。また、パケット送受信部１４は、ネットワークＮを介して送信されてきた受信パケットを受信し、生成および解釈部１６に出力する。
【００２３】
時刻記録部１７は、送信パケットを送信した送信時刻と受信パケットを受信した受信時刻を、共通するシーケンスナンバーごとに関連付けて記録する。
【００２４】
遅延判断部１８は、シーケンスナンバーごとに関連付けられて記録されている送信時刻と受信時刻との差から往復遅延時間を算出する。
【００２５】
つぎに、第２通信装置２の構成について説明する。第２通信装置２は、光信号を電気信号に変換する処理を行い、電気信号を光信号に変換する処理を行う光送受信部２１と、パケットの生成処理とパケットの解釈処理とを行うパケット処理部である生成および解釈部２２と、ＴＣＰの制御を行う通信制御部であるＴＣＰ制御部２３と、ＯＳＩ参照モデルにおけるトランスポート層より上位の層の機能を提供するサービス部２４とを備える。なお、生成および解釈部２２は、第１通信装置１の生成および解釈部１６と同一の構成であり、ＴＣＰ制御部２３は、第１通信装置１のＴＣＰ制御部１５と同一の構成であり、サービス部２４は、第１通信装置１のサービス部１１と同一の構成であるので、詳細な説明を省略する。
【００２６】
光送受信部２１は、第２ネットワークＮ２を介して入力される光信号を電気信号に変換し、変換後の電気信号を生成および解釈部２２に出力する。光送受信部２１は、生成および解釈部２２から出力された電気信号を光信号に変換し、変換後の光信号を第２ネットワークＮ２に出力する。
【００２７】
ここで、第１通信装置１から第２通信装置２にネットワークＮを介してパケット化されたデータを送信する場合について説明する。なお、第１通信装置１と第２通信装置２とは、スリーウェイハンドシェイクなどのＴＣＰに定められている手続きによって、ＴＣＰセッションがすでに確立されているものとする。
【００２８】
第１通信装置１のサービス部１１は、第２通信装置２に送信したいデータであるペイロードデータをＴＣＰ制御部１５に出力する。
【００２９】
ＴＣＰ制御部１５は、送信するパケットのサイズに収まるようにペイロードデータを細分化し、細分化された先頭のペイロードデータ１個にシーケンスナンバーを付加し、生成および解釈部１６に出力する。また、ＴＣＰ制御部１５は、時刻記録部１７にシーケンスナンバーを出力する。
【００３０】
時刻記録部１７は、時刻出力部１２から時刻が出力されているので、ＴＣＰ制御部１５からシーケンスナンバーが送信されてきた時刻をシーケンスナンバーに関連付けて記録する。なお、実施の形態１では、ＴＣＰ制御部１５から時刻記録部１７にシーケンスナンバーが送信されてきた時刻を送信パケットの送信時刻であるとみなしている。時刻記録部１７は、テーブルによって送信パケットの送信時刻とシーケンスナンバーとを管理する。図２は、シーケンスナンバーと、送信パケットの送信時刻とが関連付けられたテーブルを示す。図２では、シーケンスナンバー「１００」は、送信パケットの送信時刻が「２０１５／０４／０１  １０：０１：３０．３４２」である例を示している。
【００３１】
生成および解釈部１６は、ペイロードデータとシーケンスナンバーに、ＭＡＣ  ＤＡ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、ＭＡＣ  ＳＡ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、Ｔｙｐｅ、ＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）、ＩＰ  ＳＡ、ＩＰ  ＤＡなどのパケットに必要な要素を付加し、パケット送受信部１４に出力する。
【００３２】
パケット送受信部１４は、生成および解釈部１６から出力されてきたペイロードデータについて、物理層処理などの操作を行ってパケットを生成し、生成したパケットである送信パケットをネットワークＮを介して第２通信装置２に送信する。
【００３３】
なお、ＴＣＰ制御部１５は、サービス部１１から出力された残りのペイロードデータについても上述したように処理する。また、第２通信装置２からＡＣＫパケットが返信されるまでに処理できるパケットの数は、フロー制御用の広告ウィンドウサイズと輻輳制御用の輻輳ウィンドウサイズのうち、小さい方のサイズによって決定される。実施の形態１では、ＴＣＰ制御部１５は、第２通信装置２からＡＣＫパケットが返信されるまでに、３つのパケットを処理できるものとする。
【００３４】
つぎに、第２通信装置２が第１通信装置１から送信パケットを受信し、ネットワークＮを介して確認応答であるＡＣＫパケットを送信する場合について説明する。
【００３５】
第１通信装置１から送信されてきた送信パケットは、第１ネットワークＮ１を経由して、変換器３により光信号に変換され、第２ネットワークＮ２を経由して、第２通信装置２の光送受信部２１に到達する。
【００３６】
光送受信部２１は、物理層処理などの操作を行って送信パケットを生成および解釈部２２に出力する。
【００３７】
生成および解釈部２２は、送信パケットについて、ペイロードを取り出し、ＴＣＰ制御部２３に出力する。
【００３８】
ＴＣＰ制御部２３は、ペイロードについてポート番号、シーケンスナンバーを確認し、サービス部２４にペイロードを出力する。また、ＴＣＰ制御部２３は、生成および解釈部２２にＴＣＰに定められているＡＣＫパケット用のペイロードを出力する。
【００３９】
生成および解釈部２２は、ＴＣＰ制御部２３から出力されてきたＡＣＫパケット用のペイロードにＭＡＣ  ＤＡ、ＭＡＣ  ＳＡ、Ｔｙｐｅ、ＦＣＳ、ＩＰ  ＳＡ、ＩＰ  ＤＡなどのパケットに必要な要素を付加し、光送受信部２１に出力する。
【００４０】
光送受信部２１は、生成および解釈部２２から出力されてきたペイロードデータについて、物理層処理などの操作を行ってパケットを生成し、生成したパケットであるＡＣＫパケットをネットワークＮを介して第１通信装置１に送信する。
【００４１】
つぎに、第１通信装置１がＡＣＫパケットを受信する場合について説明する。ＡＣＫパケットは、変換器３で光信号から電気信号に変換され、第１ネットワークＮ１を経由して第１通信装置１のパケット送受信部１４に到達する。
【００４２】
パケット送受信部１４は、物理層処理などの操作を行ってＡＣＫパケットを生成および解釈部１６に出力する。
【００４３】
生成および解釈部１６は、ＡＣＫパケットについて、ペイロードを取り出し、ＴＣＰ制御部１５に出力する。ＴＣＰ制御部１５は、生成および解釈部１６から出力されてきたペイロードについてポート番号およびシーケンスナンバーから、送信パケットについてのＡＣＫパケットであることを確認する。また、ＴＣＰ制御部１５は、時刻記録部１７にＡＣＫパケットのシーケンスナンバーを出力する。
【００４４】
時刻記録部１７は、時刻出力部１２から時刻が出力されているので、ＴＣＰ制御部１５からＡＣＫパケットのシーケンスナンバーが送信されてきた時刻を同一のシーケンスナンバーに関連付けて記録する。なお、実施の形態１では、ＴＣＰ制御部１５から時刻記録部１７にＡＣＫパケットのシーケンスナンバーが送信されてきた時刻をＡＣＫパケットの受信時刻であるとみなしている。時刻記録部１７は、テーブルによって、送信パケットの送信時刻と、ＡＣＫパケットの受信時刻と、シーケンスナンバーとを管理する。図３は、シーケンスナンバーと、送信パケットの送信時刻と、ＡＣＫパケットの受信時刻とが関連付けられたテーブルを示す。図３では、シーケンスナンバー「１００」は、送信パケットの送信時刻が「２０１５／０４／０１  １０：０１：３０．３４２」であり、ＡＣＫパケットの受信時刻が「２０１５／０４／０１  １０：０１：３０．６４３」である例を示している。
【００４５】
遅延判断部１８は、テーブルを参照し、（１）式により、第１通信装置１から第２通信装置２に送信パケットが送信されてから、第２通信装置２から第１通信装置１にＡＣＫパケットが受信されるまでのパケットの往復遅延時間ＲＴＴを求める。図３に示す例では、往復遅延時間ＲＴＴは、３０１ｍｓである。
ＲＴＴ＝「ＡＣＫパケットの受信時刻」−「送信パケットの送信時刻」・・・（１）
【００４６】
往復遅延時間ＲＴＴは、第１ネットワークＮ１と第２ネットワークＮ２をパケットが通過するときの遅延時間とみなすことができる。往復遅延時間ＲＴＴの傾向を調べることにより、パケットのロスが発生した原因を推測することができる。
【００４７】
また、第１ネットワークＮ１と第２ネットワークＮ２をパケットが通過するときに、パケットのロスが発生する原因は、輻輳によるロスと障害物などによるロスとが考えられる。輻輳によるロスは、例えば、第１ネットワークＮ１において、パケットが混み合っていたり、ルータの処理能力に余裕がない場合に発生する可能性がある。障害物などによるロスは、例えば、第２ネットワークＮ２において、鳥および塵などが通信経路を遮ることにより発生する可能性がある。輻輳によるロスが発生した場合には、輻輳が悪化するのを回避するため、輻輳ウィンドウサイズを小さくする必要がある。障害物などによるロスが発生した場合には、一時的なものであるため、輻輳によるロスが発生した場合に比べて、輻輳ウィンドウサイズを小さくする必要はない。
【００４８】
なお、輻輳によるロスは、第１ネットワークＮ１で発生する可能性が高いが、第２ネットワークＮ２で発生する可能性もある。また、障害物などによるロスは、第２ネットワークＮ２で発生する可能性が高いが、第１ネットワークＮ１で発生する可能性もある。
【００４９】
また、パケットのロスの原因が障害物などであったのに、輻輳であると決めて処理を行ってしまった場合には、輻輳ウィンドウサイズを小さくしてしまうため、スループットが大きく低下してしまう可能性がある。
【００５０】
また、パケットのロスの原因が輻輳であったのに、障害物などであると決めて、輻輳ウィンドウサイズの調整を行わなかった場合には、輻輳が悪化し、スループットが低下してしまう可能性がある。
【００５１】
実施の形態１にかかる通信システム１００の第１通信装置１は、パケットのロスが発生した場合に、輻輳が原因であるか、障害物などが原因であるかを判断し、判断結果に基づいて輻輳ウィンドウサイズの調整を行う。
【００５２】
ここで、ＳＡＣＫ（Ｓｅｌｅｃｔｉｖｅ  Ａｃｋｎｏｗｌｅｄｇｍｅｎｔ）オプションに対応しておらず、輻輳が原因でパケットのロスが発生した場合、ＳＡＣＫオプションに対応しておらず、障害物などが原因でパケットのロスが発生した場合、ＳＡＣＫ（Ｓｅｌｅｃｔｉｖｅ  Ａｃｋｎｏｗｌｅｄｇｍｅｎｔ）オプションが有効であって、輻輳が原因でパケットのロスが発生した場合、および、ＳＡＣＫオプションが有効であって、障害物などが原因でパケットのロスが発生した場合における通信システム１００の動作について説明する。なお、第１通信装置１は、上述した処理によって、シーケンスナンバーＳＮ１のパケットと、シーケンスナンバーＳＮ２のパケットと、シーケンスナンバーＳＮ３のパケットをネットワークＮを介して第２通信装置２に送信する場合を想定する。
【００５３】
＜ＳＡＣＫオプションに対応しておらず、輻輳が原因でパケットのロスが発生した場合＞
輻輳が生じている場合、第１ネットワークＮ１内に配置されているルータ内部のキューは、他のパケットで溜まっている。よって、第１通信装置１から送信されてきたパケットは、ルータに到達した後、キューに入ることなく破棄されることになる。
【００５４】
以下では、シーケンスナンバーＳＮ１のパケットは、ルータ内部のキューに入り、シーケンスナンバーＳＮ２のパケットは、ルータ内部のキューに入れずに破棄され、シーケンスナンバーＳＮ３のパケットは、ルータ内部のキューに入れた場合を想定して説明する。
【００５５】
シーケンスナンバーＳＮ１のパケットは、第２通信装置２の光送受信部２１、生成および解釈部２２を介して、ＴＣＰ制御部２３に送信される。シーケンスナンバーＳＮ３のパケットも同様に、第２通信装置２のＴＣＰ制御部２３に送信される。
【００５６】
ＴＣＰ制御部２３は、シーケンスナンバーＳＮ１のパケットを生成および解釈部２２から受け取り、シーケンスナンバーＳＮ２のパケットを生成および解釈部２２から受け取らず、シーケンスナンバーＳＮ３のパケットを生成および解釈部２２から受け取ったため、ＴＣＰプロトコルで定められている重複ＡＣＫ確認応答のＡＣＫパケットを生成する。具体的には、ＴＣＰ制御部２３は、シーケンスナンバーＳＮ１のパケットのＡＣＫパケットを３個生成する。以下では、シーケンスナンバーＳＮ１のパケットのＡＣＫパケットは、シーケンスナンバーＳＮ１のＡＣＫパケットと称する。
【００５７】
生成および解釈部２２は、ＴＣＰ制御部２３から転送されてきたシーケンスナンバーＳＮ１のＡＣＫパケットのペイロードにＭＡＣ  ＤＡ、ＭＡＣ  ＳＡ、Ｔｙｐｅ、ＦＣＳ、ＩＰ  ＳＡ、ＩＰ  ＤＡなどのパケットに必要な要素を付加し、光送受信部２１に送信する。
【００５８】
光送受信部２１は、生成および解釈部２２から転送されたペイロードデータについて、物理層処理などの操作を行ってパケットを生成し、生成したシーケンスナンバーＳＮ１のＡＣＫパケットを第２ネットワークＮ２に送信する。具体的には、光送受信部２１は、３個のシーケンスナンバーＳＮ１のＡＣＫパケットを第２ネットワークＮ２に送信する。
【００５９】
第１通信装置１のパケット送受信部１４は、物理層処理などの操作を行って３個のシーケンスナンバーＳＮ１のＡＣＫパケットを生成および解釈部１６に出力する。
【００６０】
生成および解釈部１６は、３個のシーケンスナンバーＳＮ１のＡＣＫパケットについて、ペイロードを取り出し、ＴＣＰ制御部１５に出力する。
【００６１】
ＴＣＰ制御部１５は、生成および解釈部１６から出力されてきたペイロードについてポート番号およびシーケンスナンバーから、送信パケットについてのＡＣＫパケットであることを確認する。また、ＴＣＰ制御部１５は、時刻記録部１７にＡＣＫパケットのシーケンスナンバーを出力する。
【００６２】
時刻記録部１７は、ＴＣＰ制御部１５からＡＣＫパケットのシーケンスナンバーが送信されてきた時刻を同一のシーケンスナンバーに関連付けて記録する。
【００６３】
ここで、ＴＣＰ制御部１５は、シーケンスナンバーＳＮ１のＡＣＫパケットが３個連続していることを検出し、シーケンスナンバーＳＮ２のパケットがロスしていることを判断する。
【００６４】
ＴＣＰ制御部１５は、パケットのロスが生じた場合、テーブルを参照し、ロスしたパケットよりも前のパケットの往復遅延時間ＲＴＴの履歴に基づいて許容閾値を算出する。例えば、ＴＣＰ制御部１５は、ロスが発生したパケットの２個前のパケットから過去１０００回の往復遅延時間ＲＴＴの平均値を算出し、当該平均値を１．５倍することにより許容閾値を算出する。また、許容閾値は、上述以外の方法で算出してもよく、例えば、現在時刻に近い往復遅延時間ＲＴＴに重みを付けて、加重平均にして許容閾値を算出してもよい。
【００６５】
ＴＣＰ制御部１５は、ロスしたパケットの直前のパケットの往復遅延時間ＲＴＴが当該許容閾値よりも大きい場合には、輻輳によるパケットのロスであると判断し、ロスしたパケットの直前のパケットの往復遅延時間ＲＴＴが当該許容閾値よりも小さい場合には、輻輳によるパケットのロスではないと判断する。今回の例では、ロスしたパケットの直前のパケットの往復遅延時間ＲＴＴが当該許容閾値よりも大きいので、ＴＣＰ制御部１５は、輻輳によるパケットのロスであると判断する。
【００６６】
また、ＴＣＰ制御部１５は、輻輳によるパケットのロスであると判断したので、輻輳ウィンドウサイズを小さくする。例えば、ＴＣＰ制御部１５は、輻輳ウィンドウサイズを現在のサイズの０．５倍にする。
【００６７】
よって、通信システム１００は、パケットのロスが発生した場合に、輻輳が原因であると正しく判断することができ、輻輳ウィンドウサイズを調整することにより輻輳を回避することができる。
【００６８】
なお、上述では、許容閾値を用いてパケットのロスの原因を判断したが、他の方法でもよい。輻輳による原因でパケットがロスする場合には、往復遅延時間ＲＴＴが徐々に大きくなる傾向がある。一方、障害物などが原因でパケットがロスする場合には、輻輳による場合の往復遅延時間ＲＴＴに比べて、往復遅延時間ＲＴＴが急激に大きくなる傾向がある。そこで、ＴＣＰ制御部１５は、パケットのロスが発生した場合、ロスしたパケットよりも前の複数のパケットの往復遅延時間ＲＴＴの傾向を分析し、輻輳が原因か否かを判断してもよい。
【００６９】
＜ＳＡＣＫオプションに対応しておらず、障害物などが原因でパケットのロスが発生した場合＞
第２ネットワークＮ２が空気中の障害物により途切れた場合には、第１通信装置１から送信されてきたパケットは、第２通信装置２に到達せずに消失することになる。
【００７０】
以下では、シーケンスナンバーＳＮ１のパケットは、消失せずに第２通信装置２に到達し、シーケンスナンバーＳＮ２のパケットは、消失して第２通信装置２に到達せず、シーケンスナンバーＳＮ３のパケットは、消失せずに第２通信装置２に到達した場合を想定して説明する。
【００７１】
シーケンスナンバーＳＮ１のパケットは、第２通信装置２の光送受信部２１、生成および解釈部２２を介して、ＴＣＰ制御部２３に送信される。シーケンスナンバーＳＮ３のパケットも同様に、第２通信装置２のＴＣＰ制御部２３に送信される。ＴＣＰ制御部２３は、シーケンスナンバーＳＮ１のパケットを生成および解釈部２２から受け取り、シーケンスナンバーＳＮ２のパケットを生成および解釈部２２から受け取らず、シーケンスナンバーＳＮ３のパケットを生成および解釈部２２から受け取ったため、ＴＣＰプロトコルで定められている重複ＡＣＫ確認応答のＡＣＫパケットを生成する。具体的には、ＴＣＰ制御部２３は、シーケンスナンバーＳＮ１のパケットのＡＣＫパケットを３個生成する。以下では、シーケンスナンバーＳＮ１のパケットのＡＣＫパケットは、シーケンスナンバーＳＮ１のＡＣＫパケットと称する。
【００７２】
生成および解釈部２２は、ＴＣＰ制御部２３から転送されてきたシーケンスナンバーＳＮ１のＡＣＫパケットのペイロードにＭＡＣ  ＤＡ、ＭＡＣ  ＳＡ、Ｔｙｐｅ、ＦＣＳ、ＩＰ  ＳＡ、ＩＰ  ＤＡなどのパケットに必要な要素を付加し、光送受信部２１に送信する。
【００７３】
光送受信部２１は、生成および解釈部２２から転送されたペイロードデータについて、物理層処理などの操作を行ってパケットを生成し、生成したシーケンスナンバーＳＮ１のＡＣＫパケットを第２ネットワークＮ２に送信する。具体的には、光送受信部２１は、３個のシーケンスナンバーＳＮ１のＡＣＫパケットを第２ネットワークＮ２に送信する。
【００７４】
第１通信装置１のパケット送受信部１４は、物理層処理などの操作を行って３個のシーケンスナンバーＳＮ１のＡＣＫパケットを生成および解釈部１６に出力する。
【００７５】
生成および解釈部１６は、３個のシーケンスナンバーＳＮ１のＡＣＫパケットについて、ペイロードを取り出し、ＴＣＰ制御部１５に出力する。
【００７６】
ＴＣＰ制御部１５は、生成および解釈部１６から出力されてきたペイロードについてポート番号およびシーケンスナンバーから、送信パケットについてのＡＣＫパケットであることを確認する。また、ＴＣＰ制御部１５は、時刻記録部１７にＡＣＫパケットのシーケンスナンバーを出力する。
【００７７】
時刻記録部１７は、ＴＣＰ制御部１５からＡＣＫパケットのシーケンスナンバーが送信されてきた時刻を同一のシーケンスナンバーに関連付けて記録する。
【００７８】
ここで、ＴＣＰ制御部１５は、シーケンスナンバーＳＮ１のＡＣＫパケットが３個連続していることを検出し、シーケンスナンバーＳＮ２のパケットがロスしていることを判断する。
【００７９】
ＴＣＰ制御部１５は、パケットのロスが生じた場合、テーブルを参照し、ロスしたパケットよりも前のパケットの往復遅延時間ＲＴＴの履歴に基づいて許容閾値を算出する。
【００８０】
ＴＣＰ制御部１５は、ロスしたパケットの直前のパケットの往復遅延時間ＲＴＴが当該許容閾値よりも小さいので、輻輳によるパケットのロスではなく、障害物などによるロスであると判断する。
【００８１】
例えば、ＴＣＰ制御部１５は、障害物などによるロスであると判断した場合、輻輳ウィンドウサイズを変更しない。なお、ＴＣＰ制御部１５は、障害物などによるロスであると判断した場合にも、輻輳ウィンドウサイズを調整してもよい。輻輳によるロスであると判断した場合に、輻輳ウィンドウサイズを現在のサイズの０．５倍に調整する場合には、０．５倍よりも大きく調整する。ＴＣＰ制御部１５は、障害物などによるロスであると判断した場合には、例えば、輻輳ウィンドウサイズを現在のサイズの０．７５倍にする。
【００８２】
よって、通信システム１００は、パケットのロスが発生した場合に、障害物などが原因であると正しく判断することができ、輻輳によるロスが発生した場合に比べて、輻輳ウィンドウサイズを小さく調整せずに、スループットの低下を回避することができる。
【００８３】
＜ＳＡＣＫオプションが有効であって、輻輳が原因でパケットのロスが発生した場合＞
ＳＡＣＫオプションが有効であると、途中のパケットが抜けている場合、受信側である第２通信装置２が送信側である第１通信装置１に抜けたパケットを通知することができる。なお、ＳＡＣＫオプションが有効か否かは、ＴＣＰセッションを確立するときに、第１通信装置１と第２通信装置２との間で確認が行われる。
【００８４】
以下では、シーケンスナンバーＳＮ１のパケットは、ルータ内部のキューに入り、シーケンスナンバーＳＮ２のパケットは、ルータ内部のキューに入れずに破棄され、シーケンスナンバーＳＮ３のパケットは、ルータ内部のキューに入れた場合を想定して説明する。
【００８５】
シーケンスナンバーＳＮ１のパケットは、第２通信装置２の光送受信部２１、生成および解釈部２２を介して、ＴＣＰ制御部２３に送信される。シーケンスナンバーＳＮ３のパケットも同様に、第２通信装置２のＴＣＰ制御部２３に送信される。
【００８６】
ＴＣＰ制御部２３は、シーケンスナンバーＳＮ１のパケットを生成および解釈部２２から受け取り、シーケンスナンバーＳＮ２のパケットを生成および解釈部２２から受け取らず、シーケンスナンバーＳＮ３のパケットを生成および解釈部２２から受け取る。ＴＣＰ制御部２３は、ＳＡＣＫオプションが有効なので、シーケンスナンバーＳＮ１のパケットとシーケンスナンバーＳＮ３のパケットが届いたことをＡＣＫパケットによって応答する。具体的には、ＴＣＰ制御部２３は、シーケンスナンバーＳＮ１のパケットのＡＣＫパケットと、シーケンスナンバーＳＮ３のパケットのＡＣＫパケットとを生成する。以下では、シーケンスナンバーＳＮ１のパケットのＡＣＫパケットは、シーケンスナンバーＳＮ１のＡＣＫパケットと称し、シーケンスナンバーＳＮ３のパケットのＡＣＫパケットは、シーケンスナンバーＳＮ３のＡＣＫパケットと称する。
【００８７】
生成および解釈部２２は、ＴＣＰ制御部２３から転送されてきたシーケンスナンバーＳＮ１のＡＣＫパケットとシーケンスナンバーＳＮ３のＡＣＫパケットのペイロードにＭＡＣ  ＤＡ、ＭＡＣ  ＳＡ、Ｔｙｐｅ、ＦＣＳ、ＩＰ  ＳＡ、ＩＰ  ＤＡなどのパケットに必要な要素を付加し、光送受信部２１に送信する。
【００８８】
光送受信部２１は、生成および解釈部２２から転送されたペイロードデータについて、物理層処理などの操作を行ってパケットを生成し、生成したシーケンスナンバーＳＮ１のＡＣＫパケットとシーケンスナンバーＳＮ３のＡＣＫパケットを第２ネットワークＮ２に送信する。
【００８９】
第１通信装置１のパケット送受信部１４は、物理層処理などの操作を行って、シーケンスナンバーＳＮ１のＡＣＫパケットとシーケンスナンバーＳＮ３のＡＣＫパケットとを生成および解釈部１６に出力する。
【００９０】
生成および解釈部１６は、シーケンスナンバーＳＮ１のＡＣＫパケットとシーケンスナンバーＳＮ３のＡＣＫパケットとについて、ペイロードを取り出し、ＴＣＰ制御部１５に出力する。
【００９１】
ＴＣＰ制御部１５は、生成および解釈部１６から出力されてきたペイロードについてポート番号およびシーケンスナンバーから、送信パケットについてのＡＣＫパケットであることを確認する。また、ＴＣＰ制御部１５は、時刻記録部１７にＡＣＫパケットのシーケンスナンバーを出力する。
【００９２】
時刻記録部１７は、ＴＣＰ制御部１５からＡＣＫパケットのシーケンスナンバーが送信されてきた時刻を同一のシーケンスナンバーに関連付けて記録する。
【００９３】
ここで、ＴＣＰ制御部１５は、シーケンスナンバーＳＮ１のＡＣＫパケットとシーケンスナンバーＳＮ３のＡＣＫパケットを検出し、シーケンスナンバーＳＮ２のパケットがロスしていることを判断する。
【００９４】
ＴＣＰ制御部１５は、パケットのロスが生じた場合、テーブルを参照し、ロスしたパケットよりも前のパケットの往復遅延時間ＲＴＴの履歴に基づいて許容閾値を算出する。
【００９５】
ＴＣＰ制御部１５は、ロスしたパケットの直前のパケットの往復遅延時間ＲＴＴが当該許容閾値よりも大きいので、輻輳によるパケットのロスであると判断する。
【００９６】
また、ＴＣＰ制御部１５は、輻輳によるパケットのロスであると判断したので、輻輳ウィンドウサイズを小さくする。ＴＣＰ制御部１５は、例えば、輻輳ウィンドウサイズを現在のサイズの０．５倍にする。
【００９７】
よって、通信システム１００は、パケットのロスが発生した場合に、輻輳が原因であると正しく判断することができ、輻輳ウィンドウサイズを調整することにより輻輳を回避することができる。
【００９８】
なお、上述では、許容閾値を用いてパケットのロスの原因を判断したが、他の方法でもよい。輻輳による原因でパケットがロスする場合には、往復遅延時間ＲＴＴが徐々に大きくなる傾向がある。一方、障害物などが原因でパケットがロスする場合には、輻輳による場合の往復遅延時間ＲＴＴに比べて、往復遅延時間ＲＴＴが急激に大きくなる傾向がある。そこで、ＴＣＰ制御部１５は、パケットのロスが発生した場合、ロスしたパケットよりも前の複数のパケットの往復遅延時間ＲＴＴの傾向を分析し、輻輳が原因か否かを判断してもよい。
【００９９】
＜ＳＡＣＫオプションが有効であって、障害物などが原因でパケットのロスが発生した場合＞
以下では、シーケンスナンバーＳＮ１のパケットは、消失せずに第２通信装置２に到達し、シーケンスナンバーＳＮ２のパケットは、消失して第２通信装置２に到達せず、シーケンスナンバーＳＮ３のパケットは、消失せずに第２通信装置２に到達した場合を想定して説明する。
【０１００】
シーケンスナンバーＳＮ１のパケットは、第２通信装置２の光送受信部２１、生成および解釈部２２を介して、ＴＣＰ制御部２３に送信される。シーケンスナンバーＳＮ３のパケットも同様に、第２通信装置２のＴＣＰ制御部２３に送信される。
【０１０１】
ＴＣＰ制御部２３は、シーケンスナンバーＳＮ１のパケットを生成および解釈部２２から受け取り、シーケンスナンバーＳＮ２のパケットを生成および解釈部２２から受け取らず、シーケンスナンバーＳＮ３のパケットを生成および解釈部２２から受け取る。ＴＣＰ制御部２３は、ＳＡＣＫオプションが有効なので、シーケンスナンバーＳＮ１のパケットとシーケンスナンバーＳＮ３のパケットが届いたことをＡＣＫパケットによって応答する。具体的には、ＴＣＰ制御部２３は、シーケンスナンバーＳＮ１のパケットのＡＣＫパケットと、シーケンスナンバーＳＮ３のパケットのＡＣＫパケットとを生成する。以下では、シーケンスナンバーＳＮ１のパケットのＡＣＫパケットは、シーケンスナンバーＳＮ１のＡＣＫパケットと称し、シーケンスナンバーＳＮ３のパケットのＡＣＫパケットは、シーケンスナンバーＳＮ３のＡＣＫパケットと称する。
【０１０２】
生成および解釈部２２は、ＴＣＰ制御部２３から転送されてきたシーケンスナンバーＳＮ１のＡＣＫパケットとシーケンスナンバーＳＮ３のＡＣＫパケットのペイロードにＭＡＣ  ＤＡ、ＭＡＣ  ＳＡ、Ｔｙｐｅ、ＦＣＳ、ＩＰ  ＳＡ、ＩＰ  ＤＡなどのパケットに必要な要素を付加し、光送受信部２１に送信する。
【０１０３】
光送受信部２１は、生成および解釈部２２から転送されたペイロードデータについて、物理層処理などの操作を行ってパケットを生成し、生成したシーケンスナンバーＳＮ１のＡＣＫパケットとシーケンスナンバーＳＮ３のＡＣＫパケットを第２ネットワークＮ２に送信する。
【０１０４】
第１通信装置１のパケット送受信部１４は、物理層処理などの操作を行って、シーケンスナンバーＳＮ１のＡＣＫパケットとシーケンスナンバーＳＮ３のＡＣＫパケットとを生成および解釈部１６に出力する。
【０１０５】
生成および解釈部１６は、シーケンスナンバーＳＮ１のＡＣＫパケットとシーケンスナンバーＳＮ３のＡＣＫパケットとについて、ペイロードを取り出し、ＴＣＰ制御部１５に出力する。
【０１０６】
ＴＣＰ制御部１５は、生成および解釈部１６から出力されてきたペイロードについてポート番号およびシーケンスナンバーから、送信パケットについてのＡＣＫパケットであることを確認する。また、ＴＣＰ制御部１５は、時刻記録部１７にＡＣＫパケットのシーケンスナンバーを出力する。
【０１０７】
時刻記録部１７は、ＴＣＰ制御部１５からＡＣＫパケットのシーケンスナンバーが送信されてきた時刻を同一のシーケンスナンバーに関連付けて記録する。
【０１０８】
ここで、ＴＣＰ制御部１５は、シーケンスナンバーＳＮ１のＡＣＫパケットとシーケンスナンバーＳＮ３のＡＣＫパケットを検出し、シーケンスナンバーＳＮ２のパケットがロスしていることを判断する。
【０１０９】
ＴＣＰ制御部１５は、パケットのロスが生じた場合、テーブルを参照し、ロスしたパケットよりも前のパケットの往復遅延時間ＲＴＴの履歴に基づいて許容閾値を算出する。
【０１１０】
ＴＣＰ制御部１５は、ロスしたパケットの直前のパケットの往復遅延時間ＲＴＴが当該許容閾値よりも小さいので、輻輳によるパケットのロスではなく、障害物などによるロスであると判断する。
【０１１１】
例えば、ＴＣＰ制御部１５は、障害物などによるロスであると判断した場合、輻輳ウィンドウサイズを変更しない。なお、ＴＣＰ制御部１５は、障害物などによるロスであると判断した場合にも、輻輳ウィンドウサイズを調整してもよい。輻輳によるロスであると判断した場合に、輻輳ウィンドウサイズを現在のサイズの０．５倍に調整する場合には、０．５倍よりも大きく調整する。ＴＣＰ制御部１５は、障害物などによるロスであると判断した場合には、例えば、輻輳ウィンドウサイズを現在のサイズの０．７５倍にする。
【０１１２】
よって、通信システム１００は、パケットのロスが発生した場合に、障害物などが原因であると正しく判断することができ、輻輳によるロスが発生した場合に比べて、輻輳ウィンドウサイズを小さく調整せずに、スループットの低下を回避することができる。
【０１１３】
ここで、処理部１３によるパケットの送受信の動作について、図４に示すフローチャートを参照しながら説明する。
【０１１４】
ステップＳＴ１において、ＴＣＰ制御部１５は、サービス部１１で生成されたペイロードデータを送信するパケットのサイズに収まるように細分化し、細分化された先頭のペイロードデータにシーケンスナンバーを付加し、生成および解釈部１６に出力する。また、ＴＣＰ制御部１５は、時刻記録部１７にシーケンスナンバーを出力する。
【０１１５】
ステップＳＴ２において、時刻記録部１７は、ＴＣＰ制御部１５からシーケンスナンバーが送信されてきた時刻をシーケンスナンバーに関連付けて記録する。
【０１１６】
ステップＳＴ３において、生成および解釈部１６は、ペイロードデータとシーケンスナンバーに、ＭＡＣ  ＤＡなどのパケットに必要な要素を付加し、パケット送受信部１４に出力する。
【０１１７】
ステップＳＴ４において、生成および解釈部１６は、パケット送受信部１４により受信されたＡＣＫパケットについて、ペイロードを取り出し、ＴＣＰ制御部１５に出力する。
【０１１８】
ステップＳＴ５において、ＴＣＰ制御部１５は、生成および解釈部１６から出力されてきたペイロードについてポート番号およびシーケンスナンバーから、送信パケットについてのＡＣＫパケットであることを確認する。
【０１１９】
ステップＳＴ６において、ＴＣＰ制御部１５は、時刻記録部１７にＡＣＫパケットのシーケンスナンバーを出力する。
【０１２０】
ステップＳＴ７において、時刻記録部１７は、ＴＣＰ制御部１５からＡＣＫパケットのシーケンスナンバーが送信されてきた時刻を同一のシーケンスナンバーに関連付けて記録する。
【０１２１】
ステップＳＴ８において、遅延判断部１８は、往復遅延時間ＲＴＴを求める。
【０１２２】
つぎに、ＴＣＰ制御部１５によるパケットのロスの検出処理の動作について、図５に示すフローチャートを参照しながら説明する。
【０１２３】
ステップＳＴ１１において、ＴＣＰ制御部１５は、パケットのロスの検出処理を行う。
【０１２４】
ステップＳＴ１２において、ＴＣＰ制御部１５は、ステップＳＴ１１の工程によりパケットのロスを検出した場合には、テーブルを参照し、ロスしたパケットよりも前のパケットの往復遅延時間ＲＴＴの履歴に基づいて許容閾値を算出する。
【０１２５】
ステップＳＴ１３において、ＴＣＰ制御部１５は、ロスしたパケットの直前のパケットの往復遅延時間ＲＴＴが許容閾値よりも大きいか否かを判断する。ロスしたパケットの直前のパケットの往復遅延時間ＲＴＴが許容閾値よりも大きい場合（Ｙｅｓ）には、ステップＳＴ１４に進み、ロスしたパケットの直前のパケットの往復遅延時間ＲＴＴが許容閾値よりも大きくない場合（Ｎｏ）には、ステップＳＴ１５に進む。
【０１２６】
ステップＳＴ１４において、ＴＣＰ制御部１５は、輻輳によるパケットのロスであると判断し、輻輳ウィンドウサイズを小さくする。具体的には、例えば、ＴＣＰ制御部１５は、輻輳ウィンドウサイズを現在のサイズの０．５倍にする。
【０１２７】
ステップＳＴ１５において、ＴＣＰ制御部１５は、輻輳によるパケットのロスではない、すなわち障害物などによるパケットのロスである判断し、輻輳ウィンドウサイズを変更しない。なお、ＴＣＰ制御部１５は、障害物などによるパケットのロスであると判断した場合にも、輻輳ウィンドウサイズを小さくしてもよい。ステップＳＴ１４の工程で輻輳ウィンドウサイズを現在のサイズの０．５倍にする場合には、ＴＣＰ制御部１５は、０．５倍よりも大きく、例えば、輻輳ウィンドウサイズを現在のサイズの０．７５倍にする。
【０１２８】
ここで、ステップＳＴ１１の工程の処理について詳述する。ステップＳＴ１１の工程では、ＳＡＣＫオプションが有効であるか否かによって処理が異なる。ＳＡＣＫオプションが有効ではない場合のＴＣＰ制御部１５の動作について、図６に示すフローチャートを参照しながら説明する。
【０１２９】
ステップＳＴ２１において、ＴＣＰ制御部１５は、同じシーケンスナンバーＳＮのＡＣＫパケットが連続しているか否かを判断する。同じシーケンスナンバーＳＮのＡＣＫパケットが連続していると判断した場合（Ｙｅｓ）には、パケットのロスが発生しているのでステップＳＴ１２に進み、同じシーケンスナンバーＳＮのＡＣＫパケットが連続していないと判断した場合（Ｎｏ）には、パケットのロスが発生していないのでステップＳＴ２１の工程の処理を繰り返す。
【０１３０】
つぎに、ＳＡＣＫオプションが有効である場合のＴＣＰ制御部１５の動作について、図７に示すフローチャートを参照しながら説明する。
【０１３１】
ステップＳＴ３１において、ＴＣＰ制御部１５は、ＡＣＫパケットに抜けがあるか否かを判断する。ＡＣＫパケットに抜けがあると判断した場合（Ｙｅｓ）には、パケットのロスが発生しているので、ステップＳＴ１２に進み、ＡＣＫパケットに抜けがないと判断した場合（Ｎｏ）には、パケットのロスが発生していないのでステップＳＴ３１の工程の処理を繰り返す。
【０１３２】
つぎに、図１に示す第１通信装置１の処理部１３の各構成を実現するハードウェア構成について説明する。図８および図９は、実施の形態１にかかる第１通信装置１の処理部１３のハードウェア構成の例を示す図である。
【０１３３】
第１通信装置１において、処理部１３を構成するＴＣＰ制御部１５と、生成および解釈部１６と、時刻記録部１７と、遅延判断部１８の各機能は、処理回路２０１およびインターフェイス２０２により実現される。
【０１３４】
処理回路２０１は、パケットを送信したときの送信時刻と、送信したパケットの確認応答を受信したときの受信時刻との差である往復遅延時間ＲＴＴを算出し、パケットのロスが生じた場合、ロスしたパケットよりも前の１または複数のパケットの往復遅延時間ＲＴＴに基づいて、輻輳によるパケットのロスであるか否かを判断する。処理回路２０１は、輻輳によるパケットのロスであると判断した場合、輻輳ウィンドウサイズを小さくし、輻輳によるパケットのロスではない、すなわち、障害物などによるパケットのロスであると判断した場合、輻輳ウィンドウサイズを変更しない。
【０１３５】
また、処理回路２０１は、専用のハードウェアであっても、メモリ２０４に格納されるプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０３、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などであってもよい。
【０１３６】
処理回路２０１が専用のハードウェアである場合、処理回路２０１は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、またはこれらを組み合わせたものが該当する。
【０１３７】
また、処理回路２０１がＣＰＵ２０３およびメモリ２０４で構成される場合、処理回路２０１で実現される機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアやファームウェアはプログラムとして記述され、メモリ２０４に格納される。処理回路２０１は、メモリ２０４に記憶されたプログラムをＣＰＵ２０３が読み出して実行することにより、各部の機能を実現する。
【０１３８】
ここで、メモリ２０４とは、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの、不揮発性または揮発性の半導体メモリや、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などが該当する。
【０１３９】
なお、処理回路２０１で実現される機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【０１４０】
このように、処理回路２０１は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現することができる。
【０１４１】
実施の形態２．
つぎに、実施の形態２について説明する。図１０は、実施の形態２にかかる通信システム１０１の構成を示す図である。実施の形態２にかかる通信システム１０１と、実施の形態１にかかる通信システム１００の構成とは、ネットワークの構成が異なる。以下では、実施の形態１にかかる通信システム１００の構成と同一の構成には同一の符号を付し、説明を省略する。
【０１４２】
通信システム１０１は、第１通信装置４と第２通信装置５とが複数の異なる通信経路が混在したネットワークを介してデータの送受信を行う。ネットワークは、光空間通信による経路および有線通信による経路である。図１０では、光空間通信による経路を第３ネットワークＮ３で示し、有線通信による経路を第４ネットワークＮ４で示す。
【０１４３】
また、第１通信装置４は、パケット送受信部１４を備えず、光信号を電気信号に変換する処理を行い、電気信号を光信号に変換する処理を行う光送受信部３１を備える構成が、実施の形態１にかかる通信システム１００の第１通信装置１と異なる。
【０１４４】
また、第２通信装置５は、光送受信部２１を備えず、パケットをネットワークに送信する処理と、ネットワークから送信されてきたパケットを受信する処理を行うパケット送受信部４１を備える構成が、実施の形態１にかかる通信システム１００の第２通信装置２と異なる。
【０１４５】
通信システム１０１は、パケットのロスが発生した場合に、輻輳が原因であると正しく判断することができ、輻輳ウィンドウサイズを調整することにより輻輳を回避することができる。また、通信システム１０１は、パケットのロスが発生した場合に、障害物などが原因であると正しく判断することができ、輻輳によるロスが発生した場合に比べて、輻輳ウィンドウサイズを小さく調整せずに、スループットの低下を回避することができる。
【０１４６】
実施の形態３．
つぎに、実施の形態３について説明する。図１１は、実施の形態３にかかる通信システム１０２の構成を示す図である。実施の形態３にかかる通信システム１０２と、実施の形態１にかかる通信システム１００の構成、および実施の形態２にかかる通信システム１０１の構成とは、ネットワークの構成が異なる。以下では、実施の形態１にかかる通信システム１００の構成、および実施の形態２にかかる通信システム１０１の構成と同一の構成には、同一の符号を付し、説明を省略する。
【０１４７】
通信システム１０２は、第１通信装置１と第２通信装置５とが複数の異なる通信経路が混在したネットワークを介してデータの送受信を行う。ネットワークは、有線通信による経路、光空間通信による経路、および有線通信による経路である。図１１では、有線通信による経路を第５のネットワークＮ５で示し、光空間通信による経路を第６ネットワークＮ６で示し、有線通信による経路を第７ネットワークＮ７で示す。
【０１４８】
また、第１通信装置１は、実施の形態１にかかる通信システム１００の第１通信装置１と同じ構成である。
【０１４９】
また、第２通信装置５は、実施の形態２にかかる通信システム１０１の第２通信装置５と同じ構成である。
【０１５０】
通信システム１０２は、パケットのロスが発生した場合に、輻輳が原因であると正しく判断することができ、輻輳ウィンドウサイズを調整することにより輻輳を回避することができる。また、通信システム１０２は、パケットのロスが発生した場合に、障害物などが原因であると正しく判断することができ、輻輳によるロスが発生した場合に比べて、輻輳ウィンドウサイズを小さく調整せずに、スループットの低下を回避することができる。
【０１５１】
実施の形態４．
つぎに、実施の形態４について説明する。図１２は、実施の形態４にかかる通信システム１０３の構成を示す図である。実施の形態４にかかる通信システム１０３と、実施の形態１にかかる通信システム１００の構成および実施の形態２にかかる通信システム１０１の構成とは、ネットワークの構成が異なる。以下では、実施の形態１にかかる通信システム１００の構成、および実施の形態２にかかる通信システム１０１の構成と同一の構成には、同一の符号を付し、説明を省略する。
【０１５２】
通信システム１０３は、第１通信装置４と第２通信装置２とが複数の異なる通信経路が混在したネットワークを介してデータの送受信を行う。ネットワークは、光空間通信による経路、有線通信による経路および光空間通信による経路である。図１２では、光空間通信による経路を第８のネットワークＮ８で示し、有線通信による経路を第９のネットワークＮ９で示し、光空間通信による経路を第１０のネットワークＮ１０で示す。
【０１５３】
また、第１通信装置４は、実施の形態２にかかる通信システム１０１の第１通信装置４と同じ構成である。
【０１５４】
また、第２通信装置２は、実施の形態１にかかる通信システム１００の第２通信装置２と同じ構成である。
【０１５５】
通信システム１０３は、パケットのロスが発生した場合に、輻輳が原因であると正しく判断することができ、輻輳ウィンドウサイズを調整することにより輻輳を回避することができる。また、通信システム１０３は、パケットのロスが発生した場合に、障害物などが原因であると正しく判断することができ、輻輳によるロスが発生した場合に比べて、輻輳ウィンドウサイズを小さく調整せずに、スループットの低下を回避することができる。
【０１５６】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０１５７】
１，４  第１通信装置（通信装置）、２，５  第２通信装置、３  変換器、１１，２４  サービス部、１２  時刻出力部、１３  処理部、１４，４１  パケット送受信部、１５，２３  ＴＣＰ制御部（通信制御部）、１６，２２  生成および解釈部（パケット処理部）、１７  時刻記録部、１８  遅延判断部（遅延時間算出部）、２１，３１  光送受信部、１００，１０１，１０２，１０３  通信システム、２０１  処理回路、２０２  インターフェイス、２０３  ＣＰＵ、２０４  メモリ。
【図１】
2017022520.tif 000003
【図２】
2017022520.tif 000004
【図３】
2017022520.tif 000005
【図４】
2017022520.tif 000006
【図５】
2017022520.tif 000007
【図６】
2017022520.tif 000008
【図７】
2017022520.tif 000009
【図８】
2017022520.tif 000010
【図９】
2017022520.tif 000011
【図１０】
2017022520.tif 000012
【図１１】
2017022520.tif 000013
【図１２】
2017022520.tif 000014