(57)【要約】【課題】  データパケットの送信に失敗した場合でも、応答時間の遅延を小さくする。【解決手段】  上記課題を解決するため、以下の通信装置を提供する。データ及びヘッダを有するデータパケットを他の通信装置に送信する送信部と、前記送信部が送信したデータバケットに応じて、前記他の通信装置から送信された到着確認パケットを受信する受信部と、前記他の通信装置へのデータパケットの送信の成否に関係なく、当該データパケットを前記送信部が再送するよう制御する制御部と、を備える通信装置。【選択図】図５
2008199431.tif 000002
【特許請求の範囲】
【請求項１】
データ及びヘッダを有するデータパケットを他の通信装置に送信する送信部と、
前記送信部が送信したデータバケットに応じて、前記他の通信装置から送信された到着確認パケットを受信する受信部と、
前記他の通信装置へのデータパケットの送信の成否に関係なく、当該データパケットを前記送信部が再送するよう制御する制御部と、を備える
ことを特徴とする通信装置。
【請求項２】
請求項１に記載の通信端末であって、
前記制御部は、
前記データが文字情報の場合、前記他の通信装置へのデータパケットの送信の成否に関係なく、当該データパケットを前記送信部が再送し、
前記データが画像情報の場合、前記他の通信装置へのデータパケットの送信が失敗したときに、当該データパケットを前記送信部が再送するよう制御する
ことを特徴とする通信装置。
【請求項３】
請求項１に記載の通信端末であって、
サーバ装置の通信ポートと前記他の通信装置の通信ポートの間でデータを転送するための仮想的な通信路であるデータ転送コネクションが形成されており、
前記制御部は、
前記サーバ装置の通信ポートから送信されたデータを有するデータパケットを前記受信部で受信し、前記送信部が送信したデータパケットの前記データを有するデータパケットを、前記他の通信装置の通信ポートへ送信するよう前記送信部を制御し、
前記他の通信装置の通信ポートから送信された１つのデータパケットに対して、前記サーバ装置の通信ポートから１つのデータパケットが送信されている場合、前記他の通信装置へのデータパケットの送信の成否に関係なく、当該データパケットを前記送信部が再送し、
前記他の通信装置の通信ポートから送信された１つのデータパケットに対して、前記サーバ装置の通信ポートから複数のデータパケットが送信されている場合、前記他の通信装置へのデータパケットの送信が失敗したときに、当該データパケットを前記送信部が再送するよう制御する
ことを特徴とする通信装置。
【請求項４】
請求項３に記載の通信端末であって、
前記データ転送コネクションにおける前記サーバ装置の通信ポートからのデータパケットの到着間隔が所定値よりも大きい場合を、前記他の通信装置の通信ポートから送信された１つのデータパケットに対して、前記サーバ装置の通信ポートから１つのデータパケットが送信されている場合とし、
前記データ転送コネクションにおける前記サーバ装置の通信ポートからのデータパケットの到着間隔が所定値よりも小さい場合を、前記他の通信装置の通信ポートから送信された１つのデータパケットに対して、前記サーバ装置の通信ポートから複数のデータパケットが送信されている場合とする
ことを特徴とする通信装置。
【請求項５】
請求項１に記載の通信端末であって、
前記制御部は、
前記送信部が前記データパケットを送信してから、前記到着確認パケットを受信するまでの時間が、所定値より大きい場合、前記他の通信装置へのデータパケットの送信の成否に関係なく、当該データパケットを前記送信部が再送し、
前記送信部が前記データパケットを送信してから、前記到着確認パケットを受信するまでの時間が、所定値より小さい場合、前記他の通信装置へのデータパケットの送信が失敗したときに、当該データパケットを前記送信部が再送するよう制御する
ことを特徴とする通信装置。
【請求項６】
請求項１乃至５のいずれかに記載の通信端末であって、
前記他の通信装置は、入力を行うキーを備え、
前記キーで入力が行われる毎に、前記他の通信装置から当該キーで入力されたデータを有するデータパケットを前記受信部で受信し、
前記キーで入力されたデータに応じて処理された出力情報のデータを有するデータパケットを前記送信部で送信する
ことを特徴とする通信装置。
【請求項７】
請求項１乃至５のいずれかに記載の通信端末であって、
前記データパケットは、前記データ、並びに、前記他の通信装置のアドレス及びポート番号を含むヘッダを有し、
前記制御部は、
前記ヘッダの情報が利用サービス条件を満たすことを前提として、前記他の通信装置へのデータパケットの送信の成否に関係なく、当該データパケットを前記送信部が再送するよう制御する
ことを特徴とする通信装置。
【請求項８】
請求項１乃至５のいずれかに記載の通信端末であって、
前記制御部は、
前記他の通信装置との間のネットワークが、インターネットであることを前提として、前記他の通信装置へのデータパケットの送信の成否に関係なく、当該データパケットを前記送信部が再送するよう制御する
ことを特徴とする通信装置。
【請求項９】
請求項1乃至８のいずれかに記載の通信装置であって、
前記他の通信装置とのデータパケットの送受信は、ＴＣＰで行われることを特徴とする通信装置。
【請求項１０】
請求項１乃至８のいずれかに記載の通信装置であって、
前記他の通信装置へのデータパケットの送信の成否は、前記他の通信装置へデータパケットが到着したか否かであり、
前記他の通信装置へのデータパケットの送信が失敗は、前記他の通信装置へデータパケットが到着しなかったことである
ことを特徴とする通信装置。
【請求項１１】
データ及びヘッダを有するデータパケットを他の通信装置に送信する送信部と、
前記送信部が送信したデータバケットに応じて、前記他の通信装置から送信された到着確認パケットを受信する受信部と、
所定時間を経過しても、前記到着確認パケットを受信しなかった場合、前記送信部が送信したデータパケットの前記データを有するデータパケットを前記送信部が送信するよう制御する制御部と、を有し、
前記制御部は、所定条件下、前記所定時間以内に、前記到着確認パケットを前記受信部で受信した場合であっても、当該到着確認パケットの受信前に、前記送信部が送信したデータパケットの前記データを有するデータパケットを前記送信部が送信するよう制御する
ことを特徴とする通信装置。
【請求項１２】
請求項１１に記載の通信端末であって、
前記制御部は、
前記データが文字情報の場合、前記所定時間以内に、前記到着確認パケットを前記受信部で受信した場合であっても、当該到着確認パケットの受信前に、前記送信部が送信したデータパケットの前記データを有するデータパケットを前記送信部が送信し、
前記データが画像情報の場合、前記所定時間を経過しても、前記到着確認パケットを受信しなかったとき、前記送信部が送信したデータパケットの前記データを有するデータパケットを前記送信部が送信するよう制御する
ことを特徴とする通信装置。
【請求項１３】
請求項１１に記載の通信端末であって、
サーバ装置の通信ポートと前記他の通信装置の通信ポートの間でデータを転送するための仮想的な通信路であるデータ転送コネクションが形成されており、
前記制御部は、
前記サーバ装置の通信ポートから送信されたデータを有するデータパケットを前記受信部で受信し、前記送信部が送信したデータパケットの前記データを有するデータパケットを、前記他の通信装置の通信ポートへ送信するよう前記送信部を制御し、
前記他の通信装置の通信ポートから送信された１つのデータパケットに対して、前記サーバ装置の通信ポートから１つのデータパケットが送信されている場合、前記所定時間以内に、前記到着確認パケットを前記受信部で受信した場合であっても、当該到着確認パケットの受信前に、前記送信部が送信したデータパケットの前記データを有するデータパケットを前記送信部が送信し、
前記他の通信装置の通信ポートから送信された１つのデータパケットに対して、前記サーバ装置の通信ポートから複数のデータパケットが送信されている場合、前記所定時間を経過しても、前記到着確認パケットを受信しなかったとき、前記送信部が送信したデータパケットの前記データを有するデータパケットを前記送信部が送信するよう制御する
ことを特徴とする通信装置。
【請求項１４】
請求項１３に記載の通信端末であって、
前記データ転送コネクションにおける前記サーバ装置の通信ポートからのデータパケットの到着間隔が所定値よりも大きい場合を、前記他の通信装置の通信ポートから送信された１つのデータパケットに対して、前記サーバ装置の通信ポートから１つのデータパケットが送信されている場合とし、
前記データ転送コネクションにおける前記サーバ装置の通信ポートからのデータパケットの到着間隔が所定値よりも小さい場合を、前記他の通信装置の通信ポートから送信された１つのデータパケットに対して、前記サーバ装置の通信ポートから複数のデータパケットが送信されている場合とする
ことを特徴とする通信装置。
【請求項１５】
請求項１１に記載の通信端末であって、
前記制御部は、
前記送信部が前記データパケットを送信してから、前記到着確認パケットを受信するまでの時間が、所定値より大きい場合、前記所定時間以内に、前記到着確認パケットを前記受信部で受信した場合であっても、当該到着確認パケットの受信前に、前記送信部が送信したデータパケットの前記データを有するデータパケットを前記送信部が送信し、
前記送信部が前記データパケットを送信してから、前記到着確認パケットを受信するまでの時間が、所定値より小さい場合、前記所定時間を経過しても、前記到着確認パケットを受信しなかったとき、前記送信部が送信したデータパケットの前記データを有するデータパケットを前記送信部が送信するよう制御する
ことを特徴とする通信装置。
【請求項１６】
請求項１１乃至１５のいずれかに記載の通信端末であって、
前記他の通信装置は、入力を行うキーを備え、
前記キーで入力が行われる毎に、前記他の通信装置から当該キーで入力されたデータを有するデータパケットを前記受信部で受信し、
前記キーで入力されたデータに応じて処理された出力情報のデータを有するデータパケットを前記送信部で送信する
ことを特徴とする通信装置。
【請求項１７】
請求項１１乃至１５のいずれかに記載の通信端末であって、
前記データパケットは、前記データ、並びに、前記他の通信装置のアドレス及びポート番号を含むヘッダを有し、
前記制御部は、
前記ヘッダの情報が利用サービス条件を満たすことを前提として、前記所定時間以内に、前記到着確認パケットを前記受信部で受信した場合であっても、当該到着確認パケットの受信前に、前記送信部が送信したデータパケットの前記データを有するデータパケットを前記送信部が送信するよう制御する
ことを特徴とする通信装置。
【請求項１８】
請求項１１乃至１５のいずれかに記載の通信端末であって、
前記制御部は、
前記他の通信装置との間のネットワークが、インターネットであることを前提として、前記所定時間以内に、前記到着確認パケットを前記受信部で受信した場合であっても、当該到着確認パケットの受信前に、前記送信部が送信したデータパケットの前記データを有するデータパケットを前記送信部が送信するよう制御する
ことを特徴とする通信装置。
【請求項１９】
請求項１１乃至１８のいずれかに記載の通信装置であって、
前記他の通信装置とのデータパケットの送受信は、ＴＣＰで行われることを特徴とする通信装置。
【請求項２０】
請求項１１乃至１８のいずれかに記載の通信装置であって、
前記送信部がデータパケットを送信してから、当該データパケットに応じた前記到着確認パケットを受信するまでの時間が最短であっても、前記到着確認パケットの受信より前に、前記送信部が送信したデータパケットの前記データを有するデータパケットを前記送信部が送信するよう制御する
ことを特徴とする通信装置。
【請求項２１】
データセグメントを有するデータパケットを送受信する通信装置であって、
データパケットを端末装置に送信する送信部と、
前記端末装置から送信されたデータパケットを受信する受信部と、
前記送信部及び前記受信部を制御する制御部と、を備え
サーバ装置の１つの通信ポートと端末装置の１つの通信ポートの間でデータパケットを転送するための仮想的な通信路である１つのデータ転送コネクションが形成されており、
前記制御部は、前記サーバ装置の１つの通信ポートから送信されたデータセグメントを有するデータパケットを受信する受信部で受信し、当該データセグメントと同一のデータセグメントを有するデータパケットを、前記端末装置の１つの通信ポートへ送信するよう前記送信部を制御し、
前記端末装置の通信ポートから送信された１つのデータパケットに対して、前記サーバ装置の通信ポートから１つのデータパケットが送信されている場合、前記端末装置へのデータパケットの送信の成否に関係なく、同一のデータセグメントを有するデータパケットを、複数回、前記端末装置に送信し、
前記端末装置の通信ポートから送信された１つのデータパケットに対して、前記サーバ装置の通信ポートから複数のデータパケットが送信されている場合、前記端末装置へのデータパケットの送信が失敗したときに、同一のデータセグメントを有するデータパケットを、複数回、前記端末装置に送信するよう前記送信部を制御する
ことを特徴とする通信装置。
【請求項２２】
請求項２１に記載の通信装置であって、
前記端末装置は、入力を行うキーを備え、
前記キーで入力が行われる毎に、前記端末装置から当該キーで入力された入力情報のデータセグメントを有するデータパケットを前記受信部で受信し、
当該キーで入力された入力情報に応じて処理結果を示す出力情報のデータセグメントを有するデータパケットを前記送信部で送信する
ことを特徴とする通信装置。
【請求項２３】
請求項２１又は２２に記載の通信装置であって、
前記制御部は、
前記端末装置へデータパケットを送信してから、当該データバケットに対する到着確認パケットを受信するまでの時間である往復遅延時間（ＲＴＴ）の平均値よりも、前記端末装置へデータバケットを送信してからの経過時間が短い場合であっても、当該送信したデータパケットと同一のデータセグメントを有するデータパケットを送信するよう制御する
ことを特徴とする通信装置。
【請求項２４】
請求項２１乃至２３のいずれかに記載の通信装置であって、
前記通信プロトコルは、TCP又はUDPであることを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置間におけるデータパケットの送信を行うものに関し、特に、端末装置とサーバ装置との間における中継装置の転送処理に関する。
【背景技術】
【０００２】
従来技術として、「ネットワークの輻輳状態に即応した冗長度に従ってデータ通信を実現するデータ通信方法及び装置を提供する」（特許文献１の要約）ことを目的とし、「パケットデータネットワークを介して情報データを一連の複数のパケットの形態にて送受信するデータ通信方法であり、送信情報データの送信の開始にあたって、相手方からの受信情報データを受信することによって該相手方のトラヒック状態を推定し、該トラヒック状態が高トラヒック状態であると推定した場合に、該送信情報データの送信を繰り返して送信する。本発明によるデータ通信装置は、かかる方法を実行する」（特許文献１の要約）ことが開示されている。
【０００３】
また、「ＴＣＰ／ＩＰ通信プロトコルでは、ＵＤＰ／ＩＰ通信プロトコルよりも確実で大容量のデータが受信可能であるが、接続手順が複雑であるため、リソース消費量が多く、また伝送処理にオーバーヘッドが発生し時間がかかるという欠点があり、かつ、切断されると再接続までに遅延時間が必要となるため、高速性を要求されるプラント監視制御システムでのデータの送受信処理には不向きであった。そこで、従来のプラント監視制御システムにおいて、ＵＤＰ／ＩＰ通信プロトコルを用い」（特許文献２の段落０００７、０００８）ていることを従来の技術とし、「ＵＤＰ／ＩＰ通信プロトコルを用いた場合でもデータの衝突や消滅の影響を可能な限り回避し、高速性と信頼性を確保した通信処理機能を有するプラント監視制御システムを提供することを目的」（特許文献２の段落００１１）とし、「制御装置、監視装置、及びデータ収集装置がネットワークを介して接続され、所定の通信プロトコルにより制御装置、監視装置、及びデータ収集装置の相互間のデータ伝送を行なうプラント監視制御システムにおいて、１伝送周期に同一の送信パケットを複数回送信するとともに、送信パケットにデータ通番を付加してデータ伝送を行なう」（特許文献２の段落００１２）ことが開示されている。
【０００４】
また、各データ転送コネクションを、インタラクティブ、リアルタイム、バルク転送的等の特性に動的に分類し、それぞれに特性に応じた調整を行い、データパケットを転送することが特許文献３に開示されている。
【０００５】
【特許文献１】特開2005-86397号公報
【特許文献２】特開2004-134927号公報
【特許文献３】特表2000-508145号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１及び特許文献２には、ＵＤＰを通信プロトコルとして用いた上で、データパケットを複数回送信することが開示されているが、ＴＣＰを通信プロトコルとして用いてデータパケットを複数回送信することの記載はない。
【０００７】
ＴＣＰなどのように送信したデータパケットに対して到着確認パケットをうけるような通信プロトコルを用いた通信においては、データパケットの送信が失敗した場合、失敗と判断してから、データパケットの再送を行っているため、応答時間の遅れが大きくなってしまうという課題がある。
【０００８】
また、特許文献３に開示の従来の動的なトラフィック調整は、一つのデータ転送コネクションを、一つの通信特性に分類し、調整を行う。従って、一つのデータ転送コネクションにおけるデータパケットが複数の特性を持つような通信に対して、複数の調整を適用できないという課題がある。例えば、一つのデータ転送コネクションにおいて、インタラクティブ的なデータパケットとバルク転送的なデータパケットが交互に繰り返し送信された場合に、調整を適用できない。
【課題を解決するための手段】
【０００９】
上記課題の少なくとも１つは、特許請求の範囲に記載の発明により解決される。
【発明の効果】
【００１０】
本発明によれば、下記のいずれか１つの効果を少なくとも有する装置を提供できる。
データパケットの送信が失敗した場合でも、応答時間の遅れを小さくできる。
１つのデータ転送コネクションにおいても、応答時間とトラフィックを考慮した通信ができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態を、図面を参照して説明する。
【００１２】
図１は本発明の実施形態が適用された通信システムの概略構成図である。図示するように、本実施形態の通信システムは、通信端末の1例であるサーバ装置101、通信端末の1例である中継装置103、通信端末の1例である端末装置105を備える。
【００１３】
サーバ装置101は、例えば会社内に構築されたイントラネット102に接続されている。
中継装置103は、例えば、会社内のイントラネット102とインターネット104の境界部分のDMZ（DeMilitarized Zone）に設置されている。DMZは、イントラネット102、および、インターネット104に接続されている。イントラネット102とインターネット104の境として、例えば、１つのルータ内がイントラネット102であり、そのルータより外がインターネット104であるが、これに限らず、複数のルータが接続されていても、その複数のルータ内がイントラネット102であってもよい。
【００１４】
端末装置105は、例えば会社の支社や自宅に設置されて、インターネット104に接続されている。
【００１５】
インターネット104は、イントラネット102とは、別ネットワークの社内ネットワークであってもよい。
【００１６】
サーバ装置101は、端末装置105にターミナルサービスや、telnetサービスを提供する。ターミナルサービスとは、専用の通信プロトコルによって、端末装置105から送信された入力情報（キーボードやマウス等の入力装置の操作イベント情報）を受信し処理すると共に、処理結果を示す出力情報（表示装置のデスクトップ画面情報）を送信するサービスであり、リモートデスクトップサービスと呼ばれることもある。例えば、キーボードにより、キーＡ、キーＢ、キーＣと連続して入力した場合、キーボードで入力が行われる毎に、端末装置105からサーバ装置101に送信されるものがある。
【００１７】
端末装置105は、利用者がサーバ装置101のターミナルサービスやtelnetサービスを利用する場合に操作される計算機である。
【００１８】
利用者がサーバ装置101のサービス利用する場合、端末装置105は、専用の通信プロトコルを用い、サーバ装置101とデータ転送コネクションを確立した後、データ転送コネクションを利用して入力情報を送信し、サーバ装置101の処理結果を示す出力情報を受信する。
【００１９】
なお、データ転送コネクションとは、端末装置105の通信ポートとサーバ装置101の通信ポートの間におけるデータパケットを転送するための仮想的な通信路のことであり、一つのデータ転送コネクションとは、一つの端末装置105の通信ポートと、対応する一つのサーバ装置101の通信ポートの間のデータ転送コネクションのことである。例えば、TCP（Transmission Control Protocol）におけるデータ転送コネクションとは、端末装置105上のアプリケーションプログラムが使用するIPアドレス、通信ポート番号の組と、サーバ装置101上のサービスアプリケーションプログラムが使用するIPアドレス、通信ポート番号の組の間で形成される仮想的な通信路のことである。TCPにおいては、データ転送コネクションは、
・端末装置105は、サーバ装置101へSYNフラグをセットしたパケットを送信
・SYNパケットを受け取ったサーバ装置101は、端末装置105へSYN/ACKフラグをセットしたパケットを送信
・端末装置105は、サーバ装置101からACKフラグがセットされたパケットを受信
といった通信シーケンスを経て確立される。
【００２０】
中継装置103は、プロキシ機能を端末装置105に提供する。プロキシ機能とは、端末装置105に対してサーバ装置101の代理として通信を行う機能である。端末装置105と中継装置103、中継装置103とサーバ装置101は、TCP等の通信プロトコルを用いて通信する。
【００２１】
プロキシ機能を有する中継装置103の例としてVPN装置がある。VPN装置は、VPN装置と端末装置105の間に仮想トンネルを作る。端末装置105は、仮想トンネルを通じてVPN装置までデータパケットを送信し、VPN装置は、端末装置105から受信したデータパケットをサーバ装置101に転送する。さらに、VPN装置はサーバ装置101から受信したデータパケットを、仮想トンネルを通じて端末装置105に転送する。なお、仮想トンネルとは、暗号化などが施された安全な通信路のことであり、暗号化には、SOCKS、SSL（Secure Socket Layer）等のプロトコルが用いられる。
【００２２】
図２は、本発明の実施の形態の中継装置103の機能構成図である。中継装置103のハードウェア構成は、通常の計算機と同一の構成でよい。具体的には、中継装置103は、CPU202、メモリ203、二次記憶装置204、内部信号線205、通信インタフェース206を備える。また、表示装置207及び入力装置208を備えていてもよい。なお、CPU202、メモリ203、二次記憶装置204及び内部信号線205は、筐体内201に備わる。
【００２３】
CPU202は、メモリ203に記憶されるプログラムを実行することによって、各種処理を行う。メモリ203は、CPU202によって実行されるプログラム、及び、CPU202によって必要とされる情報等を記憶する。CPU202によって実行されるプログラムは、図5に後述する処理を行うデータパケット受信プログラム211、利用サービス判定プログラム212、特性識別プログラム213、データパケット処理プログラム217（インタラクティブ特性用処理プログラム214とバルク転送特性用処理プログラム215を含む）、データパケット送信プログラム216を含む。
【００２４】
図５で後述する各種処理は、データパケット受信プログラム211、利用サービス判定プログラム212、特性識別プログラム213、データパケット処理プログラム217（インタラクティブ特性用処理プログラム214とバルク転送特性用処理プログラム215を含む）、データパケット送信プログラム216を、CPU202で実行することにより実現するが、これらは、図１０に示すように、データパケット受信部211、利用サービス判定部212、特性識別部213、データパケット処理部217（インタラクティブ特性用処理部214とバルク転送特性用処理部215を含む）、データパケット送信部216など、各処理を行う処理部として集積回路化するなどしてハードウェアで実現することもできる。
【００２５】
また、通信インタフェース206は、データパケットの送信を行う送信部と、データパケットの受信を行う受信部とを有する。
【００２６】
二次記憶装置204は、例えばハードディスクである。二次記憶装置204は、各種情報を記憶する。
【００２７】
内部信号線205は、例えばバスである。内部信号線205は、CPU202、メモリ203、二次記憶装置204、通信インタフェース206、表示装置207、及び、入力装置208を相互に接続する。
【００２８】
通信インタフェース206は、イントラネット102を介してサーバ装置101に、かつ、インターネット104を介して端末装置105に接続される。
【００２９】
表示装置207は、各種情報を表示する。表示装置は、例えば、ディスプレイである。
入力装置208は、利用者が各種情報を入力するために利用する。入力装置は、例えば、キーボード又はマウスである。
【００３０】
サーバ装置101のハードウェア構成も、中継装置103と同様、通常の計算機でよい。サーバ装置101は、CPU202、メモリ203、及び、通信インタフェース206を備える。また、サーバ装置101は、二次記憶装置204、表示装置207、及び、入力装置208を備えてもよいし、備えなくてもよい。サーバ装置101は、CPU202、メモリ203、及び、通信インタフェース206を一つの筐体201に含むコンピュータ基盤であってもよい。
【００３１】
端末装置105のハードウェア構成も、中継装置103と同様、通常の計算機でよい。端末装置105は、CPU202、メモリ203、及び、通信インタフェース206を備える。端末装置105は、二次記憶装置204、表示装置207、及び、入力装置208を備えていてもよい。
【００３２】
図３は、端末装置105が、中継装置103のプロキシ機能（サーバ装置101の代理通信機能）を利用してサーバ装置101からのデータパケットを転送するときの通信シーケンスの説明図である。後述の図５の利用サービス判定502にて非処理対象となった場合には、図３のようなシーケンスとなるときがある。端末装置105とサーバ装置101間のデータパケットの入出力は、
・端末装置105は、中継装置103とデータ転送コネクションを確立して、中継装置103に入力データパケット301を送信する。中継装置103は、端末装置105から入力データパケット301を受信する。
・中継装置103は、入力データパケット301に対応する到着確認パケット302を端末装置105に送信する。端末装置105は、中継装置103から到着確認パケット302を受信する。
・中継装置103は、サーバ装置101とデータ転送コネクションを確立して、サーバ装置101に入力データパケット301と同一のデータセグメントを含む入力データパケット301(2)を送信する。サーバ装置101は、中継装置103から入力データパケット301(2)を受信する。
・サーバ装置101は、入力データパケット301(2)に対応する到着確認パケット303を中継装置103に送信する。中継装置103は、サーバ装置101から到着確認パケット303を受信する。
・サーバ装置101は、中継装置103とのデータ転送コネクションを通じて、中継装置103に、入力データパケット301(2)に対応する処理内容を含む出力データパケット304を送信する。中継装置103は、サーバ装置101から出力データパケット304を受信する。
・中継装置103は、出力データパケット304に対応する到着確認パケット305をサーバ装置101に送信する。サーバ装置101は、中継装置103から到着確認パケット305を受信する。
・中継装置103は、端末装置105とのデータ転送コネクションを通じて、端末装置105に出力データパケット304と同一のデータセグメントを含む出力データパケット304(2)を送信する。端末装置105は、中継装置103から出力データパケット304(2)を受信する。
・端末装置105は、出力データパケット304(2)に対応する到着確認パケット306を中継装置103に送信する。中継装置103は、端末装置105から到着確認パケット306を受信する。
・中継装置103は、サーバ装置101からの出力データパケット309と同一のデータセグメントを含む出力データパケット309(2)を端末装置105に出力する。この際、端末装置105にデータパケット309(2)が到着しなかった場合、すなわち、端末装置105へのデータパケット309(2)の送信が失敗した場合、再送タイマーの終了後、出力データパケット309(2)と同一のデータセグメントを含む出力データパケット309(3)を端末装置105に再送し、端末装置105へのデータパケット309(3)の送信が成功した場合、到着確認パケット310を受信する。
となる。
【００３３】
なお、サーバ装置101は、入力データパケット301(2)に対する応答である出力データパケット304を、中継装置103に送信するが、入力データパケット301(2)に対する応答を、複数の出力データパケット304、307、308に分割して送信してもよい。また、到着確認パケット302は後続するデータパケット304(2)に、到着確認パケット303は後続するデータパケット304に、それぞれ含まれていても良い。
【００３４】
次に、図４を用いて、データパケットの特性について説明する。データパケットの特性として、インタラクティブな特性とバルク転送的な特性を定義する。後述の図５の利用サービス判定502にて非処理対象となった場合には、図４のようなシーケンスになるときがある。なお、図示していないが、端末装置105とサーバ装置101の間で、データ転送コネクションが形成されており、その後の流れが図示されている。到着確認パケットは、図３と同様にデータパケットに対応して送信されるものであり、図示はしているが説明は省略する。
【００３５】
インタラクティブな特性のデータパケットとは、端末装置105とサーバ装置101が、一データパケット送信、一データパケット受信というような双方向のデーパケット送受信を繰り返す場合のデータパケットとする。
【００３６】
図４の囲み401にインタラクティブな特性のデータパケットの例を示す。端末装置105から一つのデータパケット402を受信したサーバ装置101は、対応する一つの出力データパケット403を端末装置105に送信する。さらに、次の入力データパケット404を受信した後、対応する一つの出力データパケット405を端末装置105に送信する。以下、一つのデータパケット406を受信して一つのデータパケット407を送信するというような通信パターンを、端末装置105とサーバ装置103の間で繰り返す。この場合の出力データパケット403を、入力データパケット402に対するインタラクティブな特性のデータパケット、出力データパケット405を、入力データパケット404に対するインタラクティブな特性のデータパケット、出力データパケット407を、入力データパケット406に対するインタラクティブな特性のデータパケットとする。
【００３７】
ターミナルサービスやtelnetサービスの例では、端末装置105がキーボードの操作イベント情報を送信し、サーバ装置101から、対応する文字情報を受信する、といった処理を繰り返す場合のデータパケットに相当する。
【００３８】
一方、バルク転送的な特性のデータパケットとは、端末装置105から一つの入力データパケットを受信したサーバ装置101が、一度に複数の出力データパケットを送信する場合の出力データパケットとする。
【００３９】
図４の囲み408にバルク転送的な特性のデータパケットの例を示す。端末装置105から一つのデータパケット409を受信したサーバ装置101は、対応する応答を複数の出力データパケット410〜414に分割し、一度に端末装置105に送信する。この場合の出力データパケット401〜414を、入力データパケット409に対するバルク転送的な特性のデータパケットとする。
【００４０】
ターミナルサービスの例では、端末装置105からキーボードの操作イベント情報を受信したサーバ装置101が、対応するプレゼンテーション用スライド画像情報を送信する、といった処理におけるデータパケットに相当する。また、telnetサービスの例では、端末装置105からキーボードの操作イベント情報を受信したサーバ装置101が、対応する大量のファイル内容情報を送信する、といった通信における出力データパケットに相当する。
【００４１】
図５は、本発明の実施の形態の中継装置103の処理のフローチャートである。各処理は、図2に示した中継装置103内のメモリ203上の対応するプログラムをCPU202が実行することによって実現される処理部が行う。また、図１０のような各処理部501〜507により行われてもよい。以下、図１０の各処理部501〜507が行う例で説明を行う。
【００４２】
中継装置103のデータパケット受信部501は、端末装置105、および、サーバ装置101と間でデータ転送コネクションを確立しており、サーバ装置101からデータパケットを受信する。
【００４３】
中継装置103の利用サービス判定部502は、受信したデータパケットのヘッダ部分を解析し、宛先アドレスやポート番号から、利用しているサーバ装置101のサービスを判定する。サービスが処理対象のサービスであれば、データパケット特性識別処理（503）に進み、処理対象のサービスでなければ、データパケット送信処理（506）に進む。このように、全ての場合に後述するようなデータパケットの複数回の送信を行うわけではないので、ネットワークに必要以上の負荷をかけることはない。
【００４４】
中継装置103の特性識別部503は、サーバ装置101から受信したデータパケットの特性が、インタラクティブな特性であるか、バルク転送的な特性であるか、識別する。データパケットの特性は、データ転送コネクションにおけるデータパケットの到着間隔によって判断する。中継装置103の特性識別部503は、データ転送コネクション毎にデータパケット到着時刻を記録したテーブルを保持しており、
（データパケットの到着時刻）-（一つ前のデータパケットの到着時刻）≧（閾値）
である場合に、インタラクティブな特性を持つデータパケットであると判断し、
（データパケットの到着時刻）-（一つ前のデータパケットの到着時刻）＜（閾値）
である場合に、バルク転送的な特性のデータパケットであると判断する。このように判断すれば、データセグメントの情報の内容を調べることなく、インタラクティブな特性であるかバルク転送的な特性であるかを判断できる。
【００４５】
中継装置103のインタラクティブ特定用処理部504は、インタラクティブな特性であると判断されたデータパケットに対して制御処理を行う。インタラクティブな特性を持つデータパケットは、文字情報を保持することが多く、文字情報を持つデータパケットに対しては、利用者がその応答時間に対して敏感である。従って、インタラクティブな特性を持つデータパケットに対しては、応答時間を劣化させないための処理を行う。
【００４６】
処理の内容を、図６を用いて説明する。
サーバ装置101は、入力データパケット602に対する応答である出力データパケット603を送信する。中継装置103は、データパケット603を受信し、一つ前のデータパケット601との到着間隔からインタラクティブ的なデータパケットであると判定する。
【００４７】
中継装置103は、インタラクティブ的なデータパケット603と同一のデータセグメントを持つデータパケット603(2)を端末装置105に送信する。そして、一定間隔をおいて、再度、データパケット603(2)と同一のヘッダおよびデータセグメントを持つデータパケット603(3)を端末装置105に送信する。
【００４８】
このような処理により、中継装置103と端末装置105間のインターネット104の通信品質が悪く、データパケット605(2)がロストした場合でも、同一のデータパケット605(3)を端末装置105に応答時間の遅れを小さくして到着させることができる。
【００４９】
中継装置103から端末装置105へTCPを用いてデータパケットの転送をしている場合、ロストしたデータパケットは、再送タイマーの終了後に、或いは、端末装置105からの到着確認パケットによるロスト通知を受けた後に、中継装置103から端末装置105へ自動的に再送される。しかしながら、本実施例のように、再送タイマーの終了よりも早い時刻に、また、端末装置105からの到着確認パケットの受信に関係なく、ロストしたパケットと同一のパケットを端末装置105に到着させることができる。すなわち、データパケットの端末装置への送信の成否に関わらず、同じデータを持つデータパケットを、複数回、送信するようにしているので、データパケットの1回目の送信が失敗した場合でも、2回目に送信されたデータパケットが端末装置105にすぐに到着させることができ、従来に比べて、応答時間の遅れを小さくして到着させることができる。
【００５０】
また、データパケットを送信してからそれに対する到着確認パケットを受信するまでの時間である往復遅延時間（RTT）の平均値より長い時間を再生タイマーとして設定している。本実施例では、その平均値より、データパケットを送信してから経過時間が短い場合であっても、ロストしたパケットと同一のパケットを端末装置105に送信している。データパケット605(2)から605(3)の間の時間を短くすればするほど、利用者が感じる応答時間を劣化させないことが可能となる。
【００５１】
なお、例えば、データパケット603(2)とデータパケット603(3)が共に端末装置105に受信された場合には、データパケット603(3)は自動的に廃棄される。
【００５２】
中継装置103が、インタラクティブな特性のデータパケットに対して再送を行う回数は、中継装置103と端末装置105間のインターネット104の通信品質に応じて決定することも可能である。例えば、中継装置103と端末装置105間のデータパケットの送受信からパケットロスト率を求め、それに応じて、再送回数を決定しても良い。
【００５３】
図５の中継装置103の処理のフローチャートに戻る。
中継装置103のバルク転送処理用部505は、バルク転送的な特性であると判断されたデータパケットに対して制御処理を行う。
【００５４】
バルク転送的な特性を持つデータパケットに関しては、一入力データパケット当たりの出力データパケット数が多いので、データパケットの転送効率を向上させるための処理を行う。処理の内容を、図７を用いて説明する。
【００５５】
サーバ装置101は、入力データパケット701に対する応答である出力データパケット702〜709を送信する。
【００５６】
中継装置103は、データパケット702を受信し、同一のデータセグメントを含むデータパケット702(2)を端末装置105に送信する。
【００５７】
中継装置103は、次のデータパケット703を受信し、一つ前のデータパケット702との到着間隔からバルク転送的なデータパケットであると判定する。
【００５８】
中継装置103は、バルク転送的なデータパケット703のデータセグメントのサイズが送信可能な最大セグメントサイズに満たないときは、データパケット703のデータセグメントをバッファ内に格納しタイマーをスタートさせる（710）
中継装置103は、タイマーが終了するまでに次のデータパケット704を受信すると、データパケット704が含むデータセグメントをバッファ内に保持しているデータセグメントとマージする。マージの際には、データセグメントの到着順序が維持されるようにする。マージしたデータセグメントのサイズが最大セグメントサイズを超える場合は、データセグメントの到着順に、最大セグメントサイズ分をデータパケット711として端末装置105に送信する。中継装置103は、さらに、未送信の最大セグメントサイズ未満のデータセグメントを、バッファ内に保持し、タイマーをスタートさせる（712）。
【００５９】
以下、受信したデータパケット705〜709に対して同様の処理を繰り返す。タイマーが終了するまでに、サーバ装置101から次のデータパケットを受信しない場合は、タイマーが終了した時点で、バッファ内に格納しているデータセグメントをデータパケット714として端末装置105に送信する（713）。
【００６０】
このような処理により、中継装置103が端末装置105に送信するデータパケットの数を減らすことが可能であり、端末装置105へのデータ転送を効率化することができる。
【００６１】
また、バルク転送的な特性であると判断されたデータパケットの場合、中継装置103から端末装置105へのデータパケット714の送信が失敗した場合には、従来のTCP制御と同様に、再送タイマーが終了したあと、同一のデータセグメントのデータパケット714(2)を再送する。このように、バルク転送的な特性の場合には、データパケットの送信回数を必要以上に増やさないようにしているので、ネットワークに対して必要以上に負荷を与えることもない。
【００６２】
また、中継装置103は、バルク転送的な特性であると判断されたデータパケットに対する制御処理として、転送レートの調整を行っても良い。
【００６３】
中継装置103のバルク転送処理用部505は、バルク転送的な特性を持つデータに対して、単位時間に送信するデータパケットの数を設定し、送信レートをあげて転送する。或いは、データパケットを一時的にバッファに保持し、単位時間に送信するデータパケットの数が設定値以上にならないように、或いは、単位時間当たりの送信データパケット数が設定値になるようにして送信する。
【００６４】
中継装置103は、さらに、データパケット転送先のネットワークの輻輳を検知した時には、複数のデータ転送コネクション間での優先制御処理を行う。図８を用いて制御処理を説明する。
【００６５】
中継装置103は、複数組の端末装置105とサーバ装置101間のデータ転送コネクションを中継しており、データパケット受信部501は複数のサーバ装置101から送信したデータパケットを受信する。
【００６６】
中継装置103のデータパケット処理部507は、転送先のネットワークの輻輳状態を調査する。輻輳状態は、各データ転送コネクションにおいて、中継装置103が端末装置105にデータパケットを送信してから到着確認パケットを受信するまでの時間や、パケットロスに起因する端末装置105へのデータ再送数を基準として判断する。
【００６７】
中継装置103の利用サービス判定部502は、受信したデータパケットのヘッダ部分を解析し、宛先アドレスやポート番号から、利用するサーバ装置101のサービスを判定する。処理対象のサービスであれば、さらに、特性識別部503は受信したデータパケットの特性が、インタラクティブな特性であるか、バルク転送的な特性であるかを識別する。
【００６８】
中継装置103のデータパケット処理部507は、インタラクティブな特性であると判断されたデータパケットに対して優先処理を行う。
【００６９】
中継装置103において、各データパケットは、データパケット受信部501における各データ転送コネクションのデータパケット受信キュー802〜804から、データパケット送信部506におけるデータパケット送信キュー805に転送される。中継装置103のデータパケット処理部507は、輻輳を検知していない通常時には、例えば、到着順に「バルク転送的なデータパケット」806、「バルク転送的なデータパケット」811、「バルク転送的なデータパケット」807、「インタラクティブなデータパケット」809、「バルク転送的なデータパケット」812、「バルク転送的なデータパケット」808、「バルク転送的なデータパケット」812、とデータパケット送信キュー805に転送する。
【００７０】
一方、中継装置103のデータパケット処理部507は、輻輳を検知した時には、インタラクティブなデータパケットを優先し、「インタラクティブなデータパケット」809(2)、「インタラクティブなデータパケット」810(2)、「バルク転送的なデータパケット」811(2)、「バルク転送的なデータパケット」812(2)、「インタラクティブなデータパケット」813(2)、とデータパケット送信部805に入力する。インタラクティブなデータパケットを優先する際には、「インタラクティブなデータパケット」809(2)と「インタラクティブなデータパケット」810(2)のように、データパケット間の到着間隔を維持することとする。また、「バルク転送的なデータパケット」811(2)、「バルク転送的なデータパケット」812(2)、「インタラクティブなデータパケット」813(2)のように、一つのデータ転送コネクションにおいては、データパケットの特性に関わらずデータパケットの順序を変えないこととする。
【００７１】
中継装置103は、バルク転送的な特性であると判断されたデータパケットに対して非優先処理を行ってもよい。
【００７２】
中継装置103のデータパケット処理部507は、「バルク転送的なデータパケット」806を、データ受信キュー802からデータパケット送信キュー805に送らずにドロップさせる（806(2)）。これにより、「バルク転送的なデータパケット」806の属するデータ転送コネクションのデータ転送レートを一時的に下げることが可能である。
【００７３】
このような中継装置103の処理の結果、輻輳時においてもインタラクティブなデータパケットの転送効率を保つことが可能である。
【００７４】
以上は、中継装置103が、サーバ装置101や端末装置105から独立した装置である場合を説明したが、図９に示すように、サーバ装置101の内部に中継部901を設置し、この中継部901が中継装置103と同様の機能を有し、図５に示すフローチャートのような処理を実行してもよい。また、端末装置105の内部に中継部901を設置し、この中継部901が中継装置103と同様の機能を有し、図５に示すフローチャートのような処理を実行してもよい。
【００７５】
以上のように、本発明の実施の形態の中継装置103、或いは、中継部901は、サーバ装置101と端末装置105間のデータ転送コネクションにおいて、サーバ装置101が送信したデータパケットを受信し、受信したパケットの到着間隔に基づいてインタラクティブな特性を持つデータパケットであるか、バルク転送的な特性を持つデータパケットであるかを識別し、インタラクティブな特性を持つデータパケットを、複数回、端末装置105に転送し、バルク転送的な持つデータパケットを、最大転送サイズになるようデータパケットを再構成したり、データパケットの転送レートを調整したりして、端末装置105に転送する。また、インタラクティブな特性を持つデータパケットを優先的に転送し、バルク転送的な持つデータパケットについてはドロップさせる。
【００７６】
これによって、中継装置103、或いは、中継部901は、一つのデータ転送コネクションにおいて、インタラクティブな特性のデータパケットと、バルク転送的な特定のデータパケットが共に転送される場合においても、それぞれの特性のデータパケットに制御を適用することによって、データパケットの応答時間の劣化を防ぎ、転送効率を向上させる。
【００７７】
以上の実施例では、TCPによる通信プロトコルを行っている例で説明しているが、これに限定されず、データ転送コネクションが形成されている通信プロトコルを行っている例にも適用できる。例えば、UDPなどの到着確認パケットを送信しない通信プロトコルに適用した場合でも、応答時間とトラフィックを考慮したデータパケットの送信を行うことができる。特に、リモートデスクトップサービスで行われているように、キーボードにより、キーＡ、キーＢ、キーＣと連続して入力した場合、キーボードで入力が行われる毎に、端末装置105からサーバ装置101に送信され、サーバ装置101がそのキー入力に対応した処理を行って処理情報を端末装置105に送信するようなシステムに有効である。このようなシステムでは、通常、１つのデータ転送コネクションを形成して、データパケットのやり取りを行っているが、以上の実施例を適用することで、文字情報のように迅速な応答性が要求されるものには、データパケットの送信が失敗した場合に応答時間の遅れを少なくすることができ、かつ、画像情報のようにデータ量が多いものに対する不必要なデータトラフィックの増量を防ぐことができる。
【００７８】
また、データパケットを送信してからそれに対する到着確認パケットを受信するまでの時間である往復遅延時間（RTT）の平均値が小さい場合には、再送タイマー終了後に再送しても、応答時間の遅延は小さいため、利用者にとって気にはならない。従って、応答時間及びトラフィックを考慮して、RTTが大きい場合に、データパケット送信の成否に関係なく、複数回、データパケットを送信し、RTTが小さい場合には、従来通りに再送タイマー終了後に再送するようにしてもよい。
【００７９】
また、イントラネットの場合、RTTの平均値が小さいことが多く、再送タイマー終了後に再送しても、応答時間の遅延は小さいため、利用者にとって気にはならない。一方、インターネットの場合、RTTの平均値が大きいことが多く、再送タイマー終了後に再送したら、応答時間の遅延は大きい。従って、応答時間及びトラフィックを考慮して、インターネットの場合に、データパケット送信の成否に関係なく、複数回、データパケットを送信し、イントラネット場合には、従来通りに再送タイマー終了後に再送するようにしてもよい。
【００８０】
以上の実施例では、データパケットと同一のヘッダおよびデータセグメントを持つデータパケットを端末装置105に送信するようにしている（603(3)、605(3)）。しかしながら、これに限定されず、データセグメントは同一であっても、そのヘッダは同一でなくても良い。例えば、シーケンス番号が異なるようにしていても、以上の実施例を適用できることは言うまでもない。
【００８１】
また、本願発明は、実施例の具体的な記載のみに限定さないことは言うまでもない。例えば、図５のフローチャートにおいて、利用サービス判定502、特性識別503、バルク転送的特性処理505のいずれか一つ又は複数の処理を省略してもよい。また、上位概念化を行い、例えば、インタラクティブ特性用処理かどうかに関係なく、実施例に記載した複数回のデータパケット送信を行うようにしてもよい。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態の通信システムの概略構成図である。
【図２】本発明の実施の形態の中継装置の構成図である。
【図３】本発明の実施の形態の通信シーケンスの説明図である。
【図４】本発明の実施の形態のデータパケットの特性の説明図である。
【図５】本発明の実施の形態の中継装置の処理のフローチャートである。
【図６】本発明の実施の形態の中継装置がインタラクティブな特性のデータパケットに対して行う制御処理の説明図である。
【図７】本発明の実施の形態の中継装置がバルク転送的な特性のデータパケットに対して行う制御処理の説明図である。
【図８】本発明の実施の形態の中継装置がネットワークの輻輳検知時に行う制御処理の説明図である。
【図９】本発明の実施の別形態の通信システムの概略構成図である。
【図１０】本発明の実施の形態の中継装置の構成図である。
【符号の説明】
【００８３】
５０１  データパケット受信
５０２  利用サービス判定
５０３  特性識別
５０４  インタラクティブ特性用処理
５０５  バルク転送的特性用処理
５０６  データパケット送信
【図１】
2008199431.tif 000003
【図２】
2008199431.tif 000004
【図３】
2008199431.tif 000005
【図４】
2008199431.tif 000006
【図５】
2008199431.tif 000007
【図６】
2008199431.tif 000008
【図７】
2008199431.tif 000009
【図８】
2008199431.tif 000010
【図９】
2008199431.tif 000011
【図１０】
2008199431.tif 000012