JPWO2015177924A1 - 通信装置及び通信方法及びプログラム - Google Patents
通信装置及び通信方法及びプログラム Download PDFInfo
- Publication number
- JPWO2015177924A1 JPWO2015177924A1 JP2016520891A JP2016520891A JPWO2015177924A1 JP WO2015177924 A1 JPWO2015177924 A1 JP WO2015177924A1 JP 2016520891 A JP2016520891 A JP 2016520891A JP 2016520891 A JP2016520891 A JP 2016520891A JP WO2015177924 A1 JPWO2015177924 A1 JP WO2015177924A1
- Authority
- JP
- Japan
- Prior art keywords
- communication
- maintenance packet
- connection
- packet
- maintenance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
クライアント装置(103)の通信部(111)は、サーバ装置(101)との接続を確立する。通信制御部(112)は、サーバ装置(101)へのリクエストパケットとは別に、通信部(111)により確立されたサーバ装置(101)との接続を維持するための維持パケットを送信する。
Description
本発明は、パケットを通信する技術に関する。
通常、クライアントサーバシステムでは、複数のクライアント装置が1つのサーバ装置に接続し、クライアント装置はリクエストを送信し、サーバ装置はリクエストに対するレスポンスを返信する。
しかし近年、リアルタイムチャットアプリケーションやM2M(Machine To Machine)など、クライアント装置からサーバ装置だけでなくサーバ装置からクライアント装置へリクエストを送信するシステムが求められている。
そのため、クライアント装置からサーバ装置へリクエストを送信した後、サーバ装置からクライアント装置へのレスポンスをサーバ装置にて一定時間保留しておき、保留しておいたレスポンスにリクエストを載せることによりサーバ装置からクライアント装置へリクエストを送信する方法が用いられてきた(例えば、特許文献1、特許文献2)。
しかし近年、リアルタイムチャットアプリケーションやM2M(Machine To Machine)など、クライアント装置からサーバ装置だけでなくサーバ装置からクライアント装置へリクエストを送信するシステムが求められている。
そのため、クライアント装置からサーバ装置へリクエストを送信した後、サーバ装置からクライアント装置へのレスポンスをサーバ装置にて一定時間保留しておき、保留しておいたレスポンスにリクエストを載せることによりサーバ装置からクライアント装置へリクエストを送信する方法が用いられてきた(例えば、特許文献1、特許文献2)。
特許文献1及び特許文献2では、サーバ装置からクライアント装置へのレスポンスを一定時間保留する方法と、保留時間を調整する方法に関する記載がある。
しかし、レスポンスを長時間保留すると、サーバ装置とクライアント装置との間の機器によりサーバ装置とクライアント装置との間の接続を強制切断される(タイムアウトする)可能性がある。
サーバ装置とクライアント装置との間の機器とは、例えばNAT(Network Address Translation)ルータである。
NATルータは、通信を中継するために必要な情報をメモリ上に保持しているが、一般的に一定時間サーバ装置とクライアント装置との間に通信がない場合に、NATルータはこの情報を消去する。
このため、サーバ装置とクライアント装置との間で以後同じ接続を使用した通信が行えなくなる。
従って、サーバ装置からクライアント装置へのリクエストの有無に関わらず前記一定時間が経過する前にサーバ装置はクライアント装置にレスポンスを返信し、再度クライアント装置からのリクエストを受信し、クライアント装置へのレスポンスを保留するという処理によりタイムアウトを防止する必要があった。
しかし、レスポンスを長時間保留すると、サーバ装置とクライアント装置との間の機器によりサーバ装置とクライアント装置との間の接続を強制切断される(タイムアウトする)可能性がある。
サーバ装置とクライアント装置との間の機器とは、例えばNAT(Network Address Translation)ルータである。
NATルータは、通信を中継するために必要な情報をメモリ上に保持しているが、一般的に一定時間サーバ装置とクライアント装置との間に通信がない場合に、NATルータはこの情報を消去する。
このため、サーバ装置とクライアント装置との間で以後同じ接続を使用した通信が行えなくなる。
従って、サーバ装置からクライアント装置へのリクエストの有無に関わらず前記一定時間が経過する前にサーバ装置はクライアント装置にレスポンスを返信し、再度クライアント装置からのリクエストを受信し、クライアント装置へのレスポンスを保留するという処理によりタイムアウトを防止する必要があった。
このように、特許文献1及び特許文献2の技術では、サーバ装置とクライアント装置との間の接続を維持するためにサーバ装置は周期的にクライアント装置へレスポンスを行う必要があり、サーバ装置に負荷がかかるという課題がある。
本発明は、この課題を解決することを主な目的としており、通信先装置(例えば、サーバ装置)に負荷をかけずに、通信装置(例えば、クライアント装置)と通信先装置との間の接続を維持することを主な目的とする。
本発明に係る通信装置は、
通信先装置との接続を確立する通信部と、
前記通信先装置へのリクエストパケットとは別に、前記通信部により確立された前記通信先装置との接続を維持するための維持パケットを送信する維持パケット送信部とを有することを特徴とする。
通信先装置との接続を確立する通信部と、
前記通信先装置へのリクエストパケットとは別に、前記通信部により確立された前記通信先装置との接続を維持するための維持パケットを送信する維持パケット送信部とを有することを特徴とする。
本発明によれば、通信装置が、リクエストパケットとは別に、通信先装置との接続を維持するための維持パケットを送信するため、通信先装置は、接続を維持するための処理を行う必要がなく、通信先装置に負荷をかけることなく、通信装置と通信先装置との接続を維持することができる。
実施の形態1.
本実施の形態では、サーバ装置に負荷をかけることなくサーバ装置とクライアント装置との間の接続を長時間維持することを可能にする方式を説明する。
本実施の形態では、サーバ装置に負荷をかけることなくサーバ装置とクライアント装置との間の接続を長時間維持することを可能にする方式を説明する。
また、特許文献1及び特許文献2の技術では、クライアント装置へのレスポンスの返信からクライアント装置からのリクエストの受信までの時間は、サーバ装置はクライアント装置へリクエストを送信することができないという課題がある。
本実施の形態では、このような課題を解決し、サーバ装置からクライアント装置にリクエストを送信できない時間をなくす方式を説明する。
本実施の形態では、このような課題を解決し、サーバ装置からクライアント装置にリクエストを送信できない時間をなくす方式を説明する。
図1は、実施の形態1における全体システムの構成例を示す図である。
サーバ装置101は、クライアント装置103からのリクエストパケットを受信し、リクエストパケットに対するレスポンスパケットをクライアント装置103に送信する。
本実施の形態に係るサーバ装置101は、どのようなサーバ装置でもよく、本実施の形態のために既存のサーバ装置に処理の追加、変更、削除を行う必要はない。
サーバ装置101には、例えば、Apache HTTP(Hypertext Transfer Protocol)サーバ装置などのHTTPサーバ装置が挙げられるが、HTTPサーバ装置以外でもよい。
なお、サーバ装置101は、通信先装置の例に相当する。
本実施の形態に係るサーバ装置101は、どのようなサーバ装置でもよく、本実施の形態のために既存のサーバ装置に処理の追加、変更、削除を行う必要はない。
サーバ装置101には、例えば、Apache HTTP(Hypertext Transfer Protocol)サーバ装置などのHTTPサーバ装置が挙げられるが、HTTPサーバ装置以外でもよい。
なお、サーバ装置101は、通信先装置の例に相当する。
NATルータ102は、IP(Internet Protocol)アドレスの変換を行うルータである。
一般的にNATルータは、家庭内や企業内で利用するプライベートIPアドレスとインターネットで利用するグローバルIPアドレスとを変換することで、複数台のクライアントが1つのグローバルIPアドレスでインターネットに接続できるようにする。
サーバ装置101とクライアント装置103との間で接続が確立されると、IPアドレスの変換関係が示される変換関係情報がNATルータ102のメモリ上に保存される。
しかしながら、サーバ装置101とクライアント装置103の間で一定時間通信がないと、変換関係情報が消去され、以後は同じ接続を使用した通信が行えなくなる。
一般的に、1台のサーバ装置101に対し複数台のNATルータ102が存在する。
なお、NATルータ102は、中継装置の例に相当する。
一般的にNATルータは、家庭内や企業内で利用するプライベートIPアドレスとインターネットで利用するグローバルIPアドレスとを変換することで、複数台のクライアントが1つのグローバルIPアドレスでインターネットに接続できるようにする。
サーバ装置101とクライアント装置103との間で接続が確立されると、IPアドレスの変換関係が示される変換関係情報がNATルータ102のメモリ上に保存される。
しかしながら、サーバ装置101とクライアント装置103の間で一定時間通信がないと、変換関係情報が消去され、以後は同じ接続を使用した通信が行えなくなる。
一般的に、1台のサーバ装置101に対し複数台のNATルータ102が存在する。
なお、NATルータ102は、中継装置の例に相当する。
クライアント装置103は、サーバ装置101にリクエストパケットを送信し、サーバ装置101からレスポンスパケットを受信する。
また、クライアント装置103は、リクエストパケットとは別に、サーバ装置101との接続を維持するための維持パケットを送信する。
一般的に、1台のNATルータ102に対し複数台のクライアント装置103が接続する。
なお、クライアント装置103は、通信装置の例に相当する。
また、クライアント装置103は、リクエストパケットとは別に、サーバ装置101との接続を維持するための維持パケットを送信する。
一般的に、1台のNATルータ102に対し複数台のクライアント装置103が接続する。
なお、クライアント装置103は、通信装置の例に相当する。
次に、クライアント装置103の内部構成例を説明する。
通信部111は、サーバ装置101との間の接続を確立し、また、サーバ装置101との間の接続を切断する。
通信部111は、図1に示すように、NATルータ102を介して、サーバ装置101との間に接続を確立する。
通信部111は、複数のNATルータ102を介して、サーバ装置101との接続を確立してもよい。
また、通信部111は、サーバ装置101との接続が確立している間、サーバ装置101へリクエストパケットを送信し、サーバ装置101からレスポンスパケットを受信する。
例えば、サーバ装置101がHTTPサーバ装置の場合、通信部111はHTTPリクエストパケットを送信し、サーバ装置101からHTTPレスポンスパケットを受信する。
通信部111は、図1に示すように、NATルータ102を介して、サーバ装置101との間に接続を確立する。
通信部111は、複数のNATルータ102を介して、サーバ装置101との接続を確立してもよい。
また、通信部111は、サーバ装置101との接続が確立している間、サーバ装置101へリクエストパケットを送信し、サーバ装置101からレスポンスパケットを受信する。
例えば、サーバ装置101がHTTPサーバ装置の場合、通信部111はHTTPリクエストパケットを送信し、サーバ装置101からHTTPレスポンスパケットを受信する。
通信制御部112は、通信部111から接続開始イベント又は接続終了イベントを受け取り、サーバ装置101とクライアント装置103との間の接続を維持するために維持パケットを送信する。
接続開始イベントは、通信部111がサーバ装置101との間の接続を確立したことを通知するイベントである。
接続終了イベントは、通信部111がサーバ装置101との間の接続を切断したことを通知するイベントである。
接続開始イベント及び接続終了イベントには、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号が含まれる。
接続開始イベントは、通信部111がサーバ装置101との間の接続を確立したことを通知するイベントである。
接続終了イベントは、通信部111がサーバ装置101との間の接続を切断したことを通知するイベントである。
接続開始イベント及び接続終了イベントには、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号が含まれる。
図2は、図1に示した通信制御部112の構成例を示す。
接続管理部121は、通信部111から接続開始イベントを受け取り、維持パケット送信部122の起動を行う。
また、接続管理部121は、通信部111から接続終了イベントを受け取り、維持パケット送信部122の停止を行う。
また、接続管理部121は、維持パケット送信部122の起動の際に、維持パケット送信部122の起動に用いる接続情報を、接続情報保管部123に追加する。
更に、維持パケット送信部122の停止の際に、接続情報保管部123から接続情報を削除する。
また、接続管理部121は、通信部111から接続終了イベントを受け取り、維持パケット送信部122の停止を行う。
また、接続管理部121は、維持パケット送信部122の起動の際に、維持パケット送信部122の起動に用いる接続情報を、接続情報保管部123に追加する。
更に、維持パケット送信部122の停止の際に、接続情報保管部123から接続情報を削除する。
維持パケット送信部122は、維持パケットを送信する。
維持パケットは、図5に示す情報を含む。
図5に示す各項目は、後述する。
維持パケットは、図5に示す情報を含む。
図5に示す各項目は、後述する。
接続情報保管部123は、接続情報を保持する。
接続情報には、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号と維持パケット送信スレッドIDが記述される。
維持パケット送信スレッドIDとは、維持パケット送信部122が動作するスレッドの識別子である。
接続情報には、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号と維持パケット送信スレッドIDが記述される。
維持パケット送信スレッドIDとは、維持パケット送信部122が動作するスレッドの識別子である。
図3は、実施の形態1における接続管理部121の処理例を示すフローチャートである。
処理301では、接続管理部121が、通信部111から接続開始イベント又は接続終了イベントを受け取る。
接続開始イベント及び接続終了イベントのそれぞれには、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号が含まれる。
処理302では、接続管理部121は、通信部111から受け取ったイベントの種別を判断する。
受け取ったイベントが接続開始イベントである場合は、接続管理部121は、処理303に進む。
受け取ったイベントが接続終了イベントである場合は、接続管理部121は、処理305に進む。
接続開始イベント及び接続終了イベントのそれぞれには、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号が含まれる。
処理302では、接続管理部121は、通信部111から受け取ったイベントの種別を判断する。
受け取ったイベントが接続開始イベントである場合は、接続管理部121は、処理303に進む。
受け取ったイベントが接続終了イベントである場合は、接続管理部121は、処理305に進む。
処理303では、接続管理部121が維持パケット送信部122を別スレッドで起動する。
このとき、接続管理部121は、維持パケット送信部122に、接続開始イベントに含まれる情報を渡す。
また、接続管理部121は、維持パケット送信部122を起動したスレッドのスレッドIDである維持パケット送信スレッドIDを取得しておく。
このとき、接続管理部121は、維持パケット送信部122に、接続開始イベントに含まれる情報を渡す。
また、接続管理部121は、維持パケット送信部122を起動したスレッドのスレッドIDである維持パケット送信スレッドIDを取得しておく。
処理304では、接続管理部121が接続情報保管部123に接続情報を保管する。
接続情報保管部123に保管する接続情報には、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、維持パケット送信スレッドIDが含まれる。
処理304の終了後は、処理301に戻る。
接続情報保管部123に保管する接続情報には、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、維持パケット送信スレッドIDが含まれる。
処理304の終了後は、処理301に戻る。
処理305では、接続管理部121は、接続情報保管部123から、接続情報に含まれる維持パケット送信スレッドIDを取得する。
また、接続管理部121が接続情報保管部123から、維持パケット送信スレッドIDを含む接続情報を削除する。
また、接続管理部121が接続情報保管部123から、維持パケット送信スレッドIDを含む接続情報を削除する。
処理306では、接続管理部121が維持パケット送信部122にスレッド停止命令を送信する。
これにより、維持パケット送信部122は動作を停止する。
なお、停止対象のスレッドは、処理305で取得した維持パケット送信スレッドIDに対応するスレッドである。
処理306の終了後は、処理301に戻る。
これにより、維持パケット送信部122は動作を停止する。
なお、停止対象のスレッドは、処理305で取得した維持パケット送信スレッドIDに対応するスレッドである。
処理306の終了後は、処理301に戻る。
図4は、実施の形態1における維持パケット送信部122の処理例を示すフローチャートである。
処理311では、維持パケット送信部122が接続管理部121から接続開始イベントに含まれる情報を受け取り、別スレッドとして処理を開始する。
処理312では、維持パケット送信部122は一定時間待機する。
待機時間は、クライアント装置103ごとに定める固定値であり、設定ファイルからの読出しやユーザからの入力により設定される。
待機時間は、クライアント装置103ごとに定める固定値であり、設定ファイルからの読出しやユーザからの入力により設定される。
処理313では、維持パケット送信部122は、接続管理部121からスレッド停止命令を受信したかどうかを判断する。
スレッド停止命令を受信した場合は、維持パケット送信部122は、処理を終了する。
スレッド停止命令を受信していない場合は、維持パケット送信部122は、処理314へ進む。
スレッド停止命令を受信した場合は、維持パケット送信部122は、処理を終了する。
スレッド停止命令を受信していない場合は、維持パケット送信部122は、処理314へ進む。
処理314では、維持パケット送信部122がTTL(Time To Live)値を指定し、サーバ装置101を宛先とする維持パケットを生成し、維持パケットを送信する。
ここでTTL値は、クライアント装置103ごとに定める固定値であり、設定ファイルからの読出しやユーザからの入力により設定される。
このとき、TTL値は維持パケットがサーバ装置101へ到達するために不十分な値(例えば1〜10程度)とする。
つまり、維持パケット送信部122は、維持パケットがサーバ装置101に到達せずに、いずれかのNATルータ102において維持パケットが破棄されることになるTTL値を維持パケットに設定する。
なお、維持パケット送信部122は、処理314の時点ですでに維持パケットが生成されている場合は、新たに維持パケットを生成する必要はなく、生成済みの維持パケットを送信する。
処理314の終了後は、処理312に戻る。
ここでTTL値は、クライアント装置103ごとに定める固定値であり、設定ファイルからの読出しやユーザからの入力により設定される。
このとき、TTL値は維持パケットがサーバ装置101へ到達するために不十分な値(例えば1〜10程度)とする。
つまり、維持パケット送信部122は、維持パケットがサーバ装置101に到達せずに、いずれかのNATルータ102において維持パケットが破棄されることになるTTL値を維持パケットに設定する。
なお、維持パケット送信部122は、処理314の時点ですでに維持パケットが生成されている場合は、新たに維持パケットを生成する必要はなく、生成済みの維持パケットを送信する。
処理314の終了後は、処理312に戻る。
図5は、実施の形態1に係る維持パケットに含まれる情報を示す。
維持パケットは、TCP(Transmission Control Protocol)パケットまたはUDP(User Datagram Protocol)パケットまたはこれらに準ずるパケットであり、図5に示す情報を含んでいる。
TTL値401は、IPv4パケットのヘッダに含まれるパケットの生存時間を表す値であり、0−255の範囲で指定する。
TTL値は、パケットがルータにより転送されるごとに1ずつ減少する。
TTL値が0になったパケットは破棄される。
IPv6パケットのヘッダには、同様の意味及び機能を持つHop Limitがある。
通信部111では、確実にリクエストパケットをサーバ装置101へ到達させるため、TTL値を128など十分大きな値に設定する。
一方、維持パケット送信部122は、維持パケットがサーバ装置101へ到達しないようにするため、TTL値を維持パケットをサーバ装置101に到達させるためには不十分な値に設定する。
送信元IPアドレス402は、クライアント装置103のIPアドレスである。
送信元IPアドレス402は、通信部111が送信するリクエストパケット、維持パケット送信部122が送信する維持パケットともに同じ値である。
送信先IPアドレス403は、通信先のサーバ装置101のIPアドレスである。
送信先IPアドレス403は、通信部111が送信するリクエストパケット、維持パケット送信部122が送信する維持パケットともに同じ値である。
送信元ポート番号404は、クライアント装置103がパケット送信に使用するポート番号である。
送信元ポート番号404は、通信部111が送信するリクエストパケット、維持パケット送信部122が送信する維持パケットともに同じ値である。
送信先ポート番号405は、サーバ装置101がパケット受信に使用するポート番号である。
送信先ポート番号405は、通信部111が送信するリクエストパケット、維持パケット送信部122が送信する維持パケットともに同じ値である。
TTL値401は、IPv4パケットのヘッダに含まれるパケットの生存時間を表す値であり、0−255の範囲で指定する。
TTL値は、パケットがルータにより転送されるごとに1ずつ減少する。
TTL値が0になったパケットは破棄される。
IPv6パケットのヘッダには、同様の意味及び機能を持つHop Limitがある。
通信部111では、確実にリクエストパケットをサーバ装置101へ到達させるため、TTL値を128など十分大きな値に設定する。
一方、維持パケット送信部122は、維持パケットがサーバ装置101へ到達しないようにするため、TTL値を維持パケットをサーバ装置101に到達させるためには不十分な値に設定する。
送信元IPアドレス402は、クライアント装置103のIPアドレスである。
送信元IPアドレス402は、通信部111が送信するリクエストパケット、維持パケット送信部122が送信する維持パケットともに同じ値である。
送信先IPアドレス403は、通信先のサーバ装置101のIPアドレスである。
送信先IPアドレス403は、通信部111が送信するリクエストパケット、維持パケット送信部122が送信する維持パケットともに同じ値である。
送信元ポート番号404は、クライアント装置103がパケット送信に使用するポート番号である。
送信元ポート番号404は、通信部111が送信するリクエストパケット、維持パケット送信部122が送信する維持パケットともに同じ値である。
送信先ポート番号405は、サーバ装置101がパケット受信に使用するポート番号である。
送信先ポート番号405は、通信部111が送信するリクエストパケット、維持パケット送信部122が送信する維持パケットともに同じ値である。
図5の内容をもつ維持パケットは、クライアント装置103から、クライアント装置103に直結しているNATルータ102に送信され、以降、NATルータ102間をサーバ装置101に向けて転送されるが、サーバ装置101に到達する前にTTL値が0になり、いずれかのNATルータ102で破棄される。
各NATルータ102では、定期的に維持パケットを受信するため、サーバ装置101とクライアント装置103との間のパケットを中継するための変換関係情報は消去されず、このため、サーバ装置101とクライアント装置103との間の接続は維持される。
このように、本実施の形態では、サーバ装置101は、接続を維持する目的で定期的にレスポンスパケットをクライアント装置103に送信する必要がない。
このため、本実施の形態によれば、サーバ装置101からクライアント装置103へのリクエストが無い場合には、サーバ装置101は、レスポンスパケットの送信を保留することができ、サーバ装置101の負荷が軽減されるという効果が得られる。
また、サーバ装置101は、接続を維持する目的で定期的にレスポンスパケットをクライアント装置103に送信する必要がないので、クライアント装置103へのリクエストが発生した際にレスポンスパケットを送信することができる。
このため、本実施の形態によれば、サーバ装置101からクライアント装置103へリクエストを送信することができない時間が0になるという効果が得られる。
また、本実施の形態では、維持パケットのTTL値を調整することで、維持パケットをサーバ装置101まで到達させないようにしているため、サーバ装置101が維持パケットを処理することがなく、サーバ装置101に負荷をかけないという効果が得られる。
各NATルータ102では、定期的に維持パケットを受信するため、サーバ装置101とクライアント装置103との間のパケットを中継するための変換関係情報は消去されず、このため、サーバ装置101とクライアント装置103との間の接続は維持される。
このように、本実施の形態では、サーバ装置101は、接続を維持する目的で定期的にレスポンスパケットをクライアント装置103に送信する必要がない。
このため、本実施の形態によれば、サーバ装置101からクライアント装置103へのリクエストが無い場合には、サーバ装置101は、レスポンスパケットの送信を保留することができ、サーバ装置101の負荷が軽減されるという効果が得られる。
また、サーバ装置101は、接続を維持する目的で定期的にレスポンスパケットをクライアント装置103に送信する必要がないので、クライアント装置103へのリクエストが発生した際にレスポンスパケットを送信することができる。
このため、本実施の形態によれば、サーバ装置101からクライアント装置103へリクエストを送信することができない時間が0になるという効果が得られる。
また、本実施の形態では、維持パケットのTTL値を調整することで、維持パケットをサーバ装置101まで到達させないようにしているため、サーバ装置101が維持パケットを処理することがなく、サーバ装置101に負荷をかけないという効果が得られる。
実施の形態2.
実施の形態2について、図1、図5、図6〜図8を用いて説明する。
本実施の形態でも、システム構成は図1に示す通りである。
また、維持パケットに含まれる情報も、図5に示す通りである。
以下では、実施の形態1との違いを説明する。
実施の形態2について、図1、図5、図6〜図8を用いて説明する。
本実施の形態でも、システム構成は図1に示す通りである。
また、維持パケットに含まれる情報も、図5に示す通りである。
以下では、実施の形態1との違いを説明する。
図6は、実施の形態2における通信制御部112の構成例を示す。
図6では、図2に示す構成と比べて、維持パケットTTL調整部124が追加されている。
維持パケットTTL調整部124は、図8に示す処理を実行し、維持パケットに設定するTTL値を特定する。
維持パケットTTL調整部124は、TTL値特定部の例に相当する。
また、本実施の形態では、維持パケット送信部122は、接続管理部121から接続情報を受け取り、維持パケットTTL調整部124からTTL値を受け取り、図5に示す情報を含む維持パケットをサーバ装置101に対し送信する。
接続管理部121、接続情報保管部123は、実施の形態1で説明したものと同様であり、説明を省略する。
維持パケットTTL調整部124は、図8に示す処理を実行し、維持パケットに設定するTTL値を特定する。
維持パケットTTL調整部124は、TTL値特定部の例に相当する。
また、本実施の形態では、維持パケット送信部122は、接続管理部121から接続情報を受け取り、維持パケットTTL調整部124からTTL値を受け取り、図5に示す情報を含む維持パケットをサーバ装置101に対し送信する。
接続管理部121、接続情報保管部123は、実施の形態1で説明したものと同様であり、説明を省略する。
図7は、実施の形態2における維持パケット送信部122の処理例を示すフローチャートである。
処理321では、維持パケット送信部122が接続管理部121から接続開始イベントを受け取り、別スレッドとして動作を開始する。
処理322では、維持パケット送信部122が維持パケットTTL調整部124からTTL値を取得する。
処理323では、維持パケット送信部122は一定時間待機する。
待機時間は、クライアント装置103ごとに定める固定値であり、設定ファイルからの読出しやユーザからの入力により設定される。
待機時間は、クライアント装置103ごとに定める固定値であり、設定ファイルからの読出しやユーザからの入力により設定される。
処理324では、維持パケット送信部122は、接続管理部121からスレッド停止命令を受信したかどうかを判断する。
スレッド停止命令を受信した場合は、維持パケット送信部122は、処理を終了する。
スレッド停止命令を受信していない場合は、維持パケット送信部122は、処理325へ進む。
スレッド停止命令を受信した場合は、維持パケット送信部122は、処理を終了する。
スレッド停止命令を受信していない場合は、維持パケット送信部122は、処理325へ進む。
処理325では、維持パケット送信部122がTTL値を指定し、サーバ装置101を宛先とする維持パケットを生成し、維持パケットを送信する。
ここでTTL値は、処理322で取得したTTL値である。
なお、維持パケット送信部122は、処理325の時点ですでに維持パケットが生成されている場合は、新たに維持パケットを生成する必要はなく、生成済みの維持パケットを送信する。
処理325の終了後は、処理323に戻る。
ここでTTL値は、処理322で取得したTTL値である。
なお、維持パケット送信部122は、処理325の時点ですでに維持パケットが生成されている場合は、新たに維持パケットを生成する必要はなく、生成済みの維持パケットを送信する。
処理325の終了後は、処理323に戻る。
図8は、実施の形態2における維持パケットTTL調整部124の処理例を示すフローチャートである。
処理701では、維持パケットTTL調整部124は、維持パケットTTL調整部124に含まれるTTL値取得機能によりクライアント装置103からサーバ装置101までのTTL値の取得を試行する。
TTL値取得機能としては、例えばLinux(登録商標)のtracerouteコマンドやWindows(登録商標)のtracertコマンドやその他同等の機能が考えられる。
tracerouteコマンドでは、プロトコルにUDPやICMP(Internet Control Message Protocol)を用いるため、通信部111が用いるプロトコルと異なる場合がある。
そのため、tracerouteコマンドが失敗しTTL値を取得できない場合がある。
TTL値取得機能としては、例えばLinux(登録商標)のtracerouteコマンドやWindows(登録商標)のtracertコマンドやその他同等の機能が考えられる。
tracerouteコマンドでは、プロトコルにUDPやICMP(Internet Control Message Protocol)を用いるため、通信部111が用いるプロトコルと異なる場合がある。
そのため、tracerouteコマンドが失敗しTTL値を取得できない場合がある。
処理702では、維持パケットTTL調整部124は、処理701によりTTL値を取得できたかどうかを判断する。
TTL値を取得できた場合は、維持パケットTTL調整部124は、処理707へ進む。
TTL値を取得できなかった場合は、維持パケットTTL調整部124は、処理703へ進む。
TTL値を取得できた場合は、維持パケットTTL調整部124は、処理707へ進む。
TTL値を取得できなかった場合は、維持パケットTTL調整部124は、処理703へ進む。
処理703から処理706は、処理701においてTTL値取得機能がTTL値を取得できなかった場合にTTL値を取得するための処理である。
処理703では、維持パケットTTL調整部124は、処理704で送信する維持パケットの初期TTL値として1を設定する。
処理704では、維持パケットTTL調整部124は、処理703または処理706で設定されたTTL値を指定した維持パケットをサーバ装置101に向けて送信する。
ここで送信する維持パケットには、通信部111が使用するプロトコルと同じプロトコルを使用する。
判断705では、維持パケットTTL調整部124は、サーバ装置101から維持パケットに対するレスポンスパケットを受信したかどうかを判断する。
レスポンスパケットを受信した場合は、維持パケットTTL調整部124は、処理707へ進む。
レスポンスパケットを受信しなかった場合は、維持パケットTTL調整部124は、処理706へ進む。
処理706では、維持パケットTTL調整部124は、処理704で送信するパケットのTTL値を1増加させる。
処理703では、維持パケットTTL調整部124は、処理704で送信する維持パケットの初期TTL値として1を設定する。
処理704では、維持パケットTTL調整部124は、処理703または処理706で設定されたTTL値を指定した維持パケットをサーバ装置101に向けて送信する。
ここで送信する維持パケットには、通信部111が使用するプロトコルと同じプロトコルを使用する。
判断705では、維持パケットTTL調整部124は、サーバ装置101から維持パケットに対するレスポンスパケットを受信したかどうかを判断する。
レスポンスパケットを受信した場合は、維持パケットTTL調整部124は、処理707へ進む。
レスポンスパケットを受信しなかった場合は、維持パケットTTL調整部124は、処理706へ進む。
処理706では、維持パケットTTL調整部124は、処理704で送信するパケットのTTL値を1増加させる。
処理707では、処理702または、処理703から処理706で取得したTTL値を1減少させる。
これは、TTL値を、サーバ装置101までの経路上のNATルータ102には維持パケットが到達するがサーバ装置101へは到達しない値とするためである。
つまり、維持パケットTTL調整部124は、処理701から処理707を行うことで、サーバ装置101の直前のNATルータ102までは維持パケットを到達させることができるTTL値を特定する。
これは、TTL値を、サーバ装置101までの経路上のNATルータ102には維持パケットが到達するがサーバ装置101へは到達しない値とするためである。
つまり、維持パケットTTL調整部124は、処理701から処理707を行うことで、サーバ装置101の直前のNATルータ102までは維持パケットを到達させることができるTTL値を特定する。
このように、TTL値を維持パケットがサーバ装置101へ到達しない値とすることで、サーバ装置101に負荷をかけることなく、サーバ装置101とクライアント装置103との間の接続がタイムアウトすることを防止する。
以上、本発明の実施の形態について説明したが、これらの実施の形態を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
最後に、実施の形態1及び実施の形態2に示したクライアント装置103のハードウェア構成例を図9を参照して説明する。
クライアント装置103はコンピュータであり、クライアント装置103の各要素をプログラムで実現することができる。
クライアント装置103のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
クライアント装置103はコンピュータであり、クライアント装置103の各要素をプログラムで実現することができる。
クライアント装置103のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
演算装置901は、プログラムを実行するCPU(Central Processing Unit)である。
外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
通信装置904は、通信部111の物理層に対応する。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
通信装置904は、通信部111の物理層に対応する。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、図1、図2及び図6に示す「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図1、図2及び図6に示す「〜部」の機能を実現するプログラムを実行する。
また、実施の形態1及び実施の形態2の説明において、「〜の判断」、「〜の判定」、「〜の特定」、「〜の設定」、「〜の指定」、「〜の選択」、「〜の生成」、「〜の受信」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
プログラムは、図1、図2及び図6に示す「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図1、図2及び図6に示す「〜部」の機能を実現するプログラムを実行する。
また、実施の形態1及び実施の形態2の説明において、「〜の判断」、「〜の判定」、「〜の特定」、「〜の設定」、「〜の指定」、「〜の選択」、「〜の生成」、「〜の受信」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
なお、図9の構成は、あくまでもクライアント装置103のハードウェア構成の一例を示すものであり、クライアント装置103のハードウェア構成は図9に記載の構成に限らず、他の構成であってもよい。
また、実施の形態1及び実施の形態2に示したサーバ装置101も、図9のハードウェア構成をしていてもよいし、他のハードウェア構成であってもよい。
また、実施の形態1及び実施の形態2に示したサーバ装置101も、図9のハードウェア構成をしていてもよいし、他のハードウェア構成であってもよい。
また、実施の形態1及び実施の形態2に示す手順により、本発明に係る通信方法を実現可能である。
101 サーバ装置、102 NATルータ、103 クライアント装置、111 通信部、112 通信制御部、121 接続管理部、122 維持パケット送信部、123 接続情報保管部、124 維持パケットTTL調整部。
Claims (9)
- 通信先装置との接続を確立する通信部と、
前記通信先装置へのリクエストパケットとは別に、前記通信部により確立された前記通信先装置との接続を維持するための維持パケットを送信する維持パケット送信部とを有することを特徴とする通信装置。 - 前記通信部は、
1つ以上の中継装置を介して前記通信先装置との接続を確立し、
前記維持パケット送信部は、
前記通信先装置を宛先とするが、いずれかの中継装置で破棄される維持パケットを送信することを特徴とする請求項1に記載の通信装置。 - 前記維持パケット送信部は、
前記通信先装置の直前の中継装置で破棄される維持パケットを送信することを特徴とする請求項2に記載の通信装置。 - 前記維持パケット送信部は、
前記通信先装置の直前の中継装置までのTTL(Time To Live)値が設定された維持パケットを送信することを特徴とする請求項3に記載の通信装置。 - 前記通信装置は、更に、
前記通信先装置の直前の中継装置までのTTL値を特定するTTL値特定部とを有し、
前記維持パケット送信部は、
前記TTL値特定部により特定されたTTL値が設定された維持パケットを送信することを特徴とする請求項4に記載の通信装置。 - 前記維持パケット送信部は、
一定の時間間隔ごとに、維持パケットを送信することを特徴とする請求項1に記載の通信装置。 - 前記通信部は、
1つ以上のNAT(Network Address Translation)ルータを介して前記通信先装置との接続を確立し、
前記維持パケット送信部は、
前記通信先装置を宛先とするが、いずれかのNATルータで破棄される維持パケットを送信することを特徴とする請求項1に記載の通信装置。 - コンピュータが、通信先装置との接続を確立し、
前記コンピュータが、前記通信先装置へのリクエストパケットとは別に、前記通信先装置との接続を維持するための維持パケットを送信することを特徴とする通信方法。 - 通信先装置との接続を確立する通信処理と、
前記通信先装置へのリクエストパケットとは別に、前記通信処理により確立された前記通信先装置との接続を維持するための維持パケットを送信する維持パケット送信処理とをコンピュータに実行させることを特徴とするプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/063704 WO2015177924A1 (ja) | 2014-05-23 | 2014-05-23 | 通信装置及び通信方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2015177924A1 true JPWO2015177924A1 (ja) | 2017-04-20 |
Family
ID=54553615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016520891A Pending JPWO2015177924A1 (ja) | 2014-05-23 | 2014-05-23 | 通信装置及び通信方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPWO2015177924A1 (ja) |
TW (1) | TWI554057B (ja) |
WO (1) | WO2015177924A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007208999A (ja) * | 2007-02-19 | 2007-08-16 | Fractalist Inc | 通信方法 |
JP2010521883A (ja) * | 2007-03-12 | 2010-06-24 | マイクロソフト コーポレーション | Nat接続状態キープアライブのコスト削減 |
JP2013211842A (ja) * | 2012-03-02 | 2013-10-10 | Canon Inc | 通信システム、クライアント装置、サーバ装置、通信方法、及びプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4533170B2 (ja) * | 2004-02-09 | 2010-09-01 | キヤノン株式会社 | 情報処理装置および制御方法ならびにプログラム |
US20050268151A1 (en) * | 2004-04-28 | 2005-12-01 | Nokia, Inc. | System and method for maximizing connectivity during network failures in a cluster system |
US20070022198A1 (en) * | 2005-07-19 | 2007-01-25 | Samsung Electronics Co., Ltd. | Method and system for pushing asynchronous notifications to networked devices |
-
2014
- 2014-05-23 WO PCT/JP2014/063704 patent/WO2015177924A1/ja active Application Filing
- 2014-05-23 JP JP2016520891A patent/JPWO2015177924A1/ja active Pending
- 2014-06-23 TW TW103121506A patent/TWI554057B/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007208999A (ja) * | 2007-02-19 | 2007-08-16 | Fractalist Inc | 通信方法 |
JP2010521883A (ja) * | 2007-03-12 | 2010-06-24 | マイクロソフト コーポレーション | Nat接続状態キープアライブのコスト削減 |
JP2013211842A (ja) * | 2012-03-02 | 2013-10-10 | Canon Inc | 通信システム、クライアント装置、サーバ装置、通信方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2015177924A1 (ja) | 2015-11-26 |
TWI554057B (zh) | 2016-10-11 |
TW201545509A (zh) | 2015-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10187284B2 (en) | Communication device, server device, communication method, and non-transitory computer readable medium | |
CN109889618B (zh) | 用于处理dns请求的方法和系统 | |
US10027781B2 (en) | TCP link configuration method, apparatus, and device | |
US8650326B2 (en) | Smart client routing | |
EP2991319B1 (en) | Method and device for router-based networking control | |
US9049122B2 (en) | Bandwidth probing messages | |
JP6290053B2 (ja) | 通信装置、通信システムおよび通信方法 | |
JP2018533872A (ja) | リソース取得方法および装置 | |
CN109076022B (zh) | 网络地址转换装置、设置请求装置、通信系统、通信方法和存储程序的存储介质 | |
CN105743852B (zh) | 通过http实现跨越网闸进行Socket保持连接通信的方法及系统 | |
EP4181436B1 (en) | Data processing method and apparatus, related device and storage medium | |
JP5850046B2 (ja) | 通信装置、通信システム及び通信方法 | |
US20150215277A1 (en) | Network address translation apparatus with cookie proxy function and method for nat supporting cookie proxy function | |
US10044590B2 (en) | Method of effective retaining of NAT channel service | |
WO2015096734A1 (zh) | 一种业务数据的下行传输方法及分组数据网关 | |
US20160182357A1 (en) | Internet Control Message Protocol For Completing A Secondary Protocol Transaction | |
JPWO2011117959A1 (ja) | 通信装置、通信装置の制御方法、プログラム | |
WO2017219777A1 (zh) | 一种报文处理方法及装置 | |
WO2015177924A1 (ja) | 通信装置及び通信方法及びプログラム | |
US20120047271A1 (en) | Network address translation device and method of passing data packets through the network address translation device | |
JP2014146876A (ja) | メッセージ配信システムおよびメッセージ配信方法 | |
US9455911B1 (en) | In-band centralized control with connection-oriented control protocols | |
EP3273666A1 (en) | Method and apparatus for configuring network parameters of local area network | |
JP5987832B2 (ja) | エージェント装置及び通信中継方法 | |
JP5992348B2 (ja) | 負荷分散システム、負荷分散方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170207 |