JP2013175938A - Communication apparatus, communication method and program - Google Patents
Communication apparatus, communication method and program Download PDFInfo
- Publication number
- JP2013175938A JP2013175938A JP2012039250A JP2012039250A JP2013175938A JP 2013175938 A JP2013175938 A JP 2013175938A JP 2012039250 A JP2012039250 A JP 2012039250A JP 2012039250 A JP2012039250 A JP 2012039250A JP 2013175938 A JP2013175938 A JP 2013175938A
- Authority
- JP
- Japan
- Prior art keywords
- server device
- protocol stack
- user terminal
- communication
- session
- 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.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims description 7
- 230000004044 response Effects 0.000 claims abstract description 39
- 230000005540 biological transmission Effects 0.000 claims abstract description 16
- 230000006870 function Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 4
- 210000005252 bulbus oculi Anatomy 0.000 description 2
- 230000008033 biological extinction Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Abstract
Description
本発明は、IPv4とIPv6等の複数IPプロトコルスタックを使用可能な通信環境における通信技術に関するものである。 The present invention relates to a communication technology in a communication environment in which a plurality of IP protocol stacks such as IPv4 and IPv6 can be used.
IPv4とIPv6のデュアルスタック環境では、IPv6を優先してセッションの確立を試み、タイムアウト等の支障があった場合にIPv4で再度試す方式が一般的に行われてきた。しかし、IPv6に支障があった場合に、セッションの確立までに時間がかかり、ユーザの利便性が損なわれるという問題があった。それを解決するために、IPv4とIPv6の通信確立を同時に試み、先に応答のあったプロトコルスタックでセッションを確立する手法が知られている(非特許文献1参照)。 In a dual stack environment of IPv4 and IPv6, a method has been generally used in which IPv6 is prioritized and session establishment is attempted, and when there is a problem such as a timeout, it is retried with IPv4. However, when there is a problem with IPv6, there is a problem that it takes time to establish a session and the convenience of the user is impaired. In order to solve this problem, a method is known in which IPv4 and IPv6 communication establishment is attempted at the same time, and a session is established using a protocol stack that has previously responded (see Non-Patent Document 1).
しかしながら、前述のHappy Eyeballsは、エンド端末での実装を前提としており、実装していない端末やアプリケーションの場合は、IPv6のタイムアウト後にIPv4へ切り替えとなるため、依然としてユーザの利便性は悪いという問題がある。 However, the above-mentioned Happy Eyeballs are premised on implementation on end terminals, and in the case of terminals and applications that are not installed, there is a problem that user convenience is still bad because it switches to IPv4 after IPv6 timeout. is there.
本発明は上記の点に鑑みてなされたものであり、IPv4とIPv6等の複数IPプロトコルスタックを使用し得る通信環境において、あるIPプロトコルスタックによる通信に支障がある場合であっても、支障による影響をユーザに感じさせることなく通信サービスを提供するための技術を実現することを目的とする。 The present invention has been made in view of the above points, and in a communication environment in which a plurality of IP protocol stacks such as IPv4 and IPv6 can be used, even if there is a problem in communication with a certain IP protocol stack, The purpose is to realize a technology for providing a communication service without making the user feel the influence.
上記の課題を解決するために、本発明は、ユーザ端末とサーバ装置との間で通信の中継を行う通信装置であって、
前記サーバ装置に対するサービス要求を前記ユーザ端末から受信した場合に、前記サーバ装置に対する接続要求を、複数種類のIPプロトコルスタックのそれぞれを用いて送信する接続要求送信手段と、
前記接続要求に対する応答として前記サーバ装置から受信した応答に用いられたIPプロトコルスタックを用いて、前記サーバ装置との間のセッションを確立するセッション確立手段と、
前記セッションを用いて前記サービス要求を前記サーバ装置に送信し、当該サーバ装置から当該サービス要求に対する応答を受信し、当該応答を前記ユーザ端末に送信する中継手段と
を備えたことを特徴とする通信装置として構成される。
In order to solve the above problem, the present invention is a communication device that relays communication between a user terminal and a server device,
A connection request transmitting means for transmitting a connection request for the server device using each of a plurality of types of IP protocol stacks when a service request for the server device is received from the user terminal;
Session establishment means for establishing a session with the server device using the IP protocol stack used for the response received from the server device as a response to the connection request;
Relay means for transmitting the service request to the server device using the session, receiving a response to the service request from the server device, and transmitting the response to the user terminal. Configured as a device.
また、本発明は、上記通信装置が実行する通信方法、及び、通信機能を備えるコンピュータを、上記通信装置の各手段として機能させるためのプログラムとして構成することもできる。 The present invention can also be configured as a program for causing a communication method executed by the communication device and a computer having a communication function to function as each unit of the communication device.
本発明によれば、IPv4とIPv6等の複数IPプロトコルスタックを使用し得る通信環境において、あるIPプロトコルスタックによる通信に支障がある場合であっても、支障による影響をユーザに感じさせることなく通信サービスを提供するための技術が実現される。 According to the present invention, even in a communication environment in which a plurality of IP protocol stacks such as IPv4 and IPv6 can be used, even if communication by a certain IP protocol stack is hindered, communication can be performed without making the user feel the influence of the trouble Technology for providing services is realized.
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、本実施の形態では、プロトコルスタックとしてIPv4とIPv6を用いる例を示しているが、プロトコルスタックがIPv4とIPv6以外の場合でも本発明を適用することが可能である。また、通信においてTCPを用いる場合を示しているが、これも一例に過ぎず、本発明はTCP以外のプロトコルを用いた通信においても適用可能である。 Embodiments of the present invention will be described below with reference to the drawings. The embodiment described below is only an example, and the embodiment to which the present invention is applied is not limited to the following embodiment. For example, in this embodiment, an example is shown in which IPv4 and IPv6 are used as the protocol stack, but the present invention can be applied even when the protocol stack is other than IPv4 and IPv6. Although the case of using TCP in communication is shown, this is only an example, and the present invention can be applied to communication using a protocol other than TCP.
(システム構成)
図1に、本発明の実施の形態に係るシステム構成図を示す。図1に示すように、本実施の形態のシステムは、プロキシ装置10、サーバ装置20、及びユーザ端末30が図示のようにネットワークを介して接続された構成を有する。本実施の形態では、プロキシ装置10とサーバ装置20間はインターネットにより接続されている。
(System configuration)
FIG. 1 shows a system configuration diagram according to an embodiment of the present invention. As shown in FIG. 1, the system according to the present embodiment has a configuration in which a
本実施の形態において、ユーザ端末30は、ブラウザを備えるPCやスマートフォン等の一般的な端末である。サーバ装置20は、Webサーバ機能を備え、サービス要求(本例ではデータ要求)に応じて、要求されたデータを提供する機能を有する。なお、本実施の形態では、サーバ装置20が提供するサービスとしてWebサービスを想定しているが、これは一例に過ぎず、本発明の適用にあたり、サーバ装置20が提供するサービスは特定のサービスに限定されるわけではない。
In the present embodiment, the
プロキシ装置10は、ユーザ端末30からのデータ要求を、ユーザ端末30の代理として、要求先のサーバ装置20に送信し、サーバ装置20から受信したデータを、ユーザ端末10に送信する中継機能を備えた装置である。また、本実施の形態のプロキシ装置10は、ユーザ端末30からのデータ要求の送信に用いられたプロトコルスタックや、サーバ装置20からの応答の通信に用いられたプロトコルスタック等に応じて、セッション接続に用いるプロトコルスタックを決定し、当該プロトコルスタックを用いてセッション接続を行う機能等も有する。
The
図2に、本実施の形態に係るプロキシ装置10の機能構成図を示す。図2に示すように、本実施の形態に係るプロキシ装置10は、通信処理部11、セッション管理部12、プロトコルスタック決定部13を備える。なお、図2に示す構成は、本実施の形態に関わる機能部を主に示すものであり、プロキシとしての処理を行うための図示しない既存の機能を含むことは言うまでもない。
FIG. 2 shows a functional configuration diagram of the
通信処理部11は、ユーザ端末30との間、及びサーバ装置20との間のそれぞれの通信(本実施形態ではIPパケット通信)を行うための機能部である。通信処理部11は、IPv6機能部111とIPv4機能部112の両方を備えており、ユーザ端末30との間、及びサーバ装置20との間のいずれにおいてもIPv6とIPv4の通信を行うことが可能である。本実施の形態では、ユーザ端末30との間は、ユーザ端末30からの接続要求(TCP syn)に用いられたプロトコルスタックを用いて接続を行い、サーバ装置20との間は、プロトコルスタック決定部13により決定されたプロトコルスタックで接続を行う。
The
セッション管理部12は、プロキシ装置10とユーザ端末30との間のTCPセッション(以下、単に"セッション"と呼ぶ)、及びプロキシ装置10とサーバ装置20との間のセッションを管理する機能部である。セッション管理部12は、例えば、セッション生成、消滅の管理(記憶)、プロキシ装置10とユーザ端末30との間のセッションとプロキシ装置10とサーバ装置20との間のセッションの対応付け等を行う。
The
プロトコルスタック決定部13は、ユーザ端末30から受信するパケットやサーバ装置20から受信するパケットから得られる使用プロトコルスタックの情報を通信処理部11から取得して、予め定めた条件に基づいて、サーバ装置20とプロキシ装置10間の接続に使用するプロトコルスタックを決定し、決定したプロトコルスタックを通信処理部11に通知する機能を有する。上記予め定めた条件は、例えば、プロキシ装置10のメモリ等の記憶手段に予め格納される。具体的なプロトコルスタックの決定方法については、後の動作例のところで説明する。
The protocol
プロキシ装置10は、後述する動作を実現できる通信装置であり、当該通信装置は以下のように構成することもできる。
The
上記通信装置は、ユーザ端末とサーバ装置との間で通信の中継を行う通信装置であって、
前記サーバ装置に対するサービス要求を前記ユーザ端末から受信した場合に、前記サーバ装置に対する接続要求を、複数種類のIPプロトコルスタックのそれぞれを用いて送信する接続要求送信手段と、前記接続要求に対する応答として前記サーバ装置から受信した応答に用いられたIPプロトコルスタックを用いて、前記サーバ装置との間のセッションを確立するセッション確立手段と、前記セッションを用いて前記サービス要求を前記サーバ装置に送信し、当該サーバ装置から当該サービス要求に対する応答を受信し、当該応答を前記ユーザ端末に送信する中継手段とを備える。
The communication device is a communication device that relays communication between a user terminal and a server device,
When a service request for the server device is received from the user terminal, a connection request transmission means for transmitting a connection request for the server device using each of a plurality of types of IP protocol stacks, and as a response to the connection request, Session establishment means for establishing a session with the server device using the IP protocol stack used for the response received from the server device, and sending the service request to the server device using the session, Relay means for receiving a response to the service request from the server device and transmitting the response to the user terminal.
なお、接続要求送信手段とセッション確立手段は、主に前述したプロトコルスタック決定部13と通信処理部11に対応し、中継手段は主に通信処理部11とセッション管理部12に対応する。
The connection request transmission unit and the session establishment unit mainly correspond to the above-described protocol
前記接続要求送信手段は、前記ユーザ端末から受信するサービス要求の送信に用いられたIPプロトコルスタックの種類を判別し、当該種類に応じて、前記複数種類のIPプロトコルスタックにより複数回送信する前記接続要求の送信順を決定し、決定した送信順で各IPプロトコルスタックにより前記接続要求を順次前記サーバ装置に送信する。 The connection request transmitting means determines the type of IP protocol stack used for transmitting the service request received from the user terminal, and transmits the connection a plurality of times using the plurality of types of IP protocol stacks according to the type. A request transmission order is determined, and the connection requests are sequentially transmitted to the server apparatus by each IP protocol stack in the determined transmission order.
また、例えば、前記接続要求送信手段は、前記ユーザ端末から受信するサービス要求の送信に用いられたIPプロトコルスタックと同じIPプロトコルスタックを用いて最初の接続要求を前記サーバ装置に送信する。また、例えば、前記セッション確立手段は、前記サーバ装置から最初に受信した応答に用いられたIPプロトコルスタックを用いて、前記サーバ装置との間のセッションを確立する。 Further, for example, the connection request transmitting means transmits an initial connection request to the server device using the same IP protocol stack as that used for transmitting the service request received from the user terminal. Further, for example, the session establishing means establishes a session with the server device using the IP protocol stack used for the response received first from the server device.
前記セッション確立手段は、前記ユーザ端末から受信するサービス要求の送信に用いられたIPプロトコルスタックとは異なるIPプロトコルスタックにより前記接続要求に対する応答を前記サーバ装置から最初に受信した場合、当該応答を受信後、予め定めた時間以内に、前記ユーザ端末から受信するサービス要求の送信に用いられたIPプロトコルスタックと同じIPプロトコルスタックによる応答を受信した場合に、当該IPプロトコルスタックを用いて前記サーバ装置との間のセッションを確立するように構成してもよい。 The session establishing means receives the response when the response to the connection request is first received from the server device by an IP protocol stack different from the IP protocol stack used for transmitting the service request received from the user terminal. Thereafter, when a response by the same IP protocol stack as the IP protocol stack used for transmission of the service request received from the user terminal is received within a predetermined time, the server apparatus May be configured to establish a session between.
また、前記接続要求送信手段は、第1IPプロトコルスタックにより前記接続要求を前記サーバ装置に送信した後、所定時間が経過した時点で、第2IPプロトコルスタックにより前記接続要求を前記サーバ装置に送信するように構成してもよい。 Further, the connection request transmitting means transmits the connection request to the server apparatus by a second IP protocol stack when a predetermined time has elapsed after transmitting the connection request to the server apparatus by the first IP protocol stack. You may comprise.
本実施の形態に係るプロキシ装置10は、通信機能を有するコンピュータ(サーバ等)、もしくはコンピュータの機能を含む通信装置(ルータ等、通信機能を備えるコンピュータの一種である)に、本実施の形態で説明する処理に対応するプログラムを実行させることにより実現可能である。当該プログラムは、可搬メモリ等の記憶媒体に格納して配布し、上記装置にインストールして用いてもよいし、ネットワーク上のサーバからダウンロードして上記装置にインストールしてもよい。また、本実施の形態で説明する処理をハードウェア回路として実現し、当該ハードウェア回路を備える装置としてプロキシ装置10を実現してもよい。
The
(システムの動作)
以下、本実施の形態に係るシステムの動作例を図3〜図5のシーケンス図を参照して説明する。以下の各動作例において、ユーザ端末30のブラウザには、インターネット接続の際にプロキシ装置10に接続するようにプロキシ設定がなされているものとする。
(System operation)
Hereinafter, an operation example of the system according to the present embodiment will be described with reference to the sequence diagrams of FIGS. In each of the following operation examples, it is assumed that proxy settings are made in the browser of the
<動作例1>
まず、動作例1について図3のシーケンス図を参照して説明する。動作例1は、プロキシ装置10がユーザ端末30からIPv6による接続要求を受けて、ユーザ端末30との間にIPv6によるセッションを確立し、サービス要求に応じてIPv6とIPv4の双方でサーバ装置20に対して接続要求を送るが、サーバ装置20からIPv6による応答を先に受信した場合の例である。
<Operation example 1>
First, the operation example 1 will be described with reference to the sequence diagram of FIG. In the operation example 1, the
本例では、IPv6とIPv4の双方のプロトコルスタックでTCP synパケットをサーバ装置20に送り、先に受信した応答のプロトコルスタックでサーバ装置20とのセッションを確立する旨の条件が予め定められ、記憶手段に格納されており、プロトコルスタック決定部13がこの条件を参照することで使用プロトコルスタックを決定している。
In this example, a condition for sending a TCP syn packet to the
ステップ11)ユーザがWebブラウザでインターネットにアクセスする操作を行うと、ユーザ端末30はIPv6を用いてTCP synパケットをプロキシ装置10に送信し、プロキシ装置10からのTCP syn+ackパケットの応答、ユーザ端末30からのTCP ackパケットの送信を経て、ユーザ端末30とプロキシ装置10との間でIPv6を用いた3 hand shakeによるセッションの確立が行われる。
Step 11) When the user performs an operation of accessing the Internet with a Web browser, the
ステップ12)その後、ユーザ端末30から、サーバ装置20のデータを要求するget requestパケットがプロキシ装置10に送信される。
Step 12) Thereafter, a get request packet for requesting data of the
ステップ13)ユーザ端末30からget requestパケット(サービス要求)を受信したプロキシ装置10は、サーバ装置20との間にセッションを確立するために、IPv6を用いたTCP synパケットとIPv4を用いたTCP synパケットの双方をサーバ装置20に送信する。なお、このとき、get requestの宛先のIPv4アドレス及びIPv6アドレスをDNSサーバに問い合わせ、DNSサーバから取得したIPv4アドレス及びIPv6アドレスを用いてTCP synパケットの送信を行っている。本実施の形態の他の例でも同様にDNSサーバから使用するIPアドレスを取得している。DNSサーバからIPアドレスを取得する動作は、一般的な動作であり、以降の説明ではこの動作の記述を省略する。
Step 13) Upon receiving the get request packet (service request) from the
ステップ13では、IPv6を用いたTCP synパケットとIPv4を用いたTCP synパケットをほぼ同時に送信するが、実際には、どちらかが先、どちらかが後になる。そのため、例えば、ユーザ端末30との間でのセッション確立に用いたプロトコルスタックと同じプロトコルスタックであるIPv6を用いたTCP synパケットを先に送信し、その後(非常に短い時間の後)に、IPv4を用いたTCP synパケットを送るようにしてもよいし、ユーザ端末30との間でのセッション確立に用いたプロトコルスタックに関わらず、予め定めた順番でIPv6とIPv4の双方のTCP synパケットを送信するようにしてもよい。
In
ステップ14)IPv6及びIPv4の双方でTCP synパケットを受信したサーバ装置20は、応答可能なプロトコルスタックでTCP syn+ackパケットをプロキシ装置10に送信する。本例では、サーバ装置20は、IPv6及びIPv4の双方の機能を有するため、サーバ装置20は、IPv6及びIPv4の双方でTCP syn+ackパケットをプロキシ装置10に送信する。また、本例では、IPv6を用いたTCP syn+ackパケットが先にプロキシ装置10に到達し、IPv4を用いたTCP syn+ackパケットがIPv6のTCP syn+ackパケットの後にプロキシ装置10に到達するものとする。
Step 14) Upon receiving the TCP syn packet in both IPv6 and IPv4, the
ステップ15)IPv6及びIPv4の双方でTCP syn+ackパケットを受信したプロキシ装置10は、先に受信したプロトコルスタックであるIPv6を用いてTCP ackパケットをサーバ装置20に返す。これにより、プロキシ装置10とサーバ装置20間でIPv6によるセッションが確立される。その後、プロキシ装置10は、サーバ装置20に対してIPv6でget requestパケットを送信する。
Step 15) The
なお、仮に、1つプロトコルスタックのみのTCP syn+ackパケットを受信した場合は、その受信したパケットに用いられていたプロトコルスタックを用いてTCP ackパケットをサーバ装置20に返し、そのプロトコルスタックでのセッションが確立される。
If a TCP syn + ack packet for only one protocol stack is received, the TCP ack packet is returned to the
ステップ16)サーバ装置20はget requestの応答としてのデータをプロキシ装置10に送信し、プロキシ装置10は、サーバ装置20から受信したデータをユーザ端末30に転送する。以降、サーバ装置20とプロキシ装置10間、及びプロキシ装置10とユーザ端末30間の両方でIPv6による通信が行われる。
Step 16) The
上記の例は、プロキシ装置10がサーバ装置20から先にIPv6によるTCP syn+ackパケットを受信した例であるが、プロキシ装置10がサーバ装置20から先にIPv4によるTCP syn+ackパケットを受信した場合は、プロキシ装置10とサーバ装置20間では、IPv4によるセッションが確立され、プロキシ装置10とサーバ装置20間では、IPv4によるデータ通信が行われることになる。
The above example is an example in which the
<動作例2>
次に、図4を参照して動作例2を説明する。動作例2は、プロキシ装置10がユーザ端末30から受信する接続要求に用いられていたプロトコルスタックに応じて、サーバ装置20に送出するプロトコルスタックの送信順を決定する例である。本例(動作例3も同様)では、どのプロトコルスタックでユーザ端末30からデータ要求(もしくは接続要求)を受信したときにどのプロトコルスタックでサーバ装置20に対して接続要求を送るか、サーバ装置20からどのプロトコルスタックで応答を受信した場合に、どのプロトコルスタックで接続を行うか、送信を待つための所定時間、などの条件が予め定められ、記憶手段に格納されており、プロトコルスタック決定部13がこの条件を参照することで以下の動作を実現している。また、条件を含むプログラムを実行させて、動作を実現することとしてもよい。また、プロトコルスタック決定部13は、所定時間待ちを行うためのタイマー機能を備えている。
<Operation example 2>
Next, an operation example 2 will be described with reference to FIG. The operation example 2 is an example in which the transmission order of the protocol stacks to be sent to the
ステップ21)ユーザがWebブラウザでインターネットにアクセスする操作を行うと、ユーザ端末30はIPv6を用いてTCP synパケットをプロキシ装置10に送信し、プロキシ装置10からのTCP syn+ackパケットの応答、ユーザ端末30からのTCP ackパケットの送信を経て、ユーザ端末30とプロキシ装置10との間でIPv6を用いた3 hand shakeによるセッションの確立が行われる。
Step 21) When the user performs an operation of accessing the Internet with a Web browser, the
ステップ22)その後、ユーザ端末30から、サーバ装置20のデータを要求するget requestパケットがプロキシ装置10に送信される。
Step 22) Thereafter, a get request packet for requesting data of the
ステップ23)ユーザ端末30からget requestパケットを受信したプロキシ装置10は、プロトコルスタック決定部13において、ユーザ端末30から受信したデータ要求のプロトコルスタックがIPv6であることを判別し、予め定めた条件に基づいて、まず、IPv6を用いてTCP synパケットをサーバ装置20へ送信する。
Step 23) Upon receiving the get request packet from the
本動作例での上記条件は、最初に、ユーザ端末30から受信するデータ要求のプロトコルスタックと同じプロトコルスタックでTCP synパケットをサーバ装置20へ送信し、当該TCP synパケットを送信後、所定時間経過した時点(一例として、250msec後)に、別のプロトコルスタックでTCP synパケットをサーバ装置20へ送信するというものである。従って、本例では、ユーザ端末30から受信するデータ要求のプロトコルスタックがIPv6であるため、まず、IPv6を用いてTCP synパケットをサーバ装置20へ送信している。
The above conditions in this operation example are as follows. First, a TCP syn packet is transmitted to the
ステップ24)続いてプロキシ装置10は、IPv6によるTCP synパケットを送信してから250msec後に、IPv4によりTCP synパケットをサーバ装置20に送信する。なお、250msecとするのは一例に過ぎないが、最初に送信したほうのIPv6の応答が250msec程度待っても来ない場合は、障害発生の可能性が高いため、250msec程度の間隔とすることで、IPv6に障害があったとしても、従来のようにIPv4のセッション確立に時間がかからず、ユーザにストレスを感じさせることなく迅速に通信を開始できる。
Step 24) Subsequently, the
ステップ25)TCP synパケットを受信したサーバ装置20は、応答可能なプロトコルスタックでTCP syn+ackパケットをプロキシ装置10に送信する。本例では、サーバ装置20は、IPv6及びIPv4の双方の機能を有するため、サーバ装置20は、IPv6及びIPv4の双方でTCP syn+ackパケットをプロキシ装置10に送信する。また、本例では、IPv6を用いたTCP syn+ackパケットが先にプロキシ装置10に到達し、IPv4を用いたTCP syn+ackパケットがIPv6のTCP syn+ackパケットの後にプロキシ装置10に到達する。
Step 25) Upon receiving the TCP syn packet, the
ステップ26)IPv6及びIPv4の双方でTCP syn+ackパケットを受信したプロキシ装置は、予め定めた条件に基づき、先に受信したプロトコルスタック(本例ではIPv6)を用いてTCP ackパケットをサーバ装置20に返す。これにより、プロキシ装置10とサーバ装置20間でIPv6によるセッションが確立され、プロキシ装置10は、サーバ装置20に対してIPv6でget requestパケットを送信する。
Step 26) The proxy device that has received the TCP syn + ack packet in both IPv6 and IPv4 uses the previously received protocol stack (IPv6 in this example) to send the TCP ack packet to the
なお、仮に、1つプロトコルスタックのみのTCP syn+ackパケットを受信した場合は、その受信したパケットに用いられていたプロトコルスタックを用いてTCP ackパケットをサーバ装置20に返し、そのプロトコルスタックでのTCPセッションが確立されることになる。
If a TCP syn + ack packet for only one protocol stack is received, the TCP ack packet is returned to the
また、一方のプロトコルスタックでのTCP syn+ackパケットを先に受信した場合に、他のプロトコルスタックでのTCP syn+ackパケットの受信を待たずに、先に受信したほうのプロトコルスタックでTCP ackパケットを送信してもよい。例えば、IPv6でのTCP syn+ackパケットを先に受信した場合に、IPv4でのTCP syn+ackパケットを受信したしないに関わらず、IPv6でのTCP ackパケットを送信してよい。また、例えば、IPv6でのTCP syn+ackパケットを、IPv4でのTCP synパケットの送信タイミングが来る前に受信した場合には、IPv4でのTCP synパケットの送信をキャンセルして、IPv6でのTCP ackパケットを送信することとしてもよい。 Also, when a TCP syn + ack packet in one protocol stack is received first, the TCP ack is received in the protocol stack that received first without waiting for the reception of the TCP syn + ack packet in the other protocol stack. A packet may be transmitted. For example, when a TCP syn + ack packet in IPv6 is received first, a TCP ack packet in IPv6 may be transmitted regardless of whether the TCP syn + ack packet in IPv4 is received. Also, for example, if a TCP syn + ack packet in IPv6 is received before the TCP syn packet transmission timing arrives in IPv4, the TCP syn packet transmission in IPv4 is canceled and TCP in IPv6 An ack packet may be transmitted.
ステップ27)サーバ装置20はget requestの応答としてのデータをプロキシ装置10に送信し、プロキシ装置10は、サーバ装置20から受信したデータをユーザ端末30に転送する。以降、サーバ装置20とプロキシ装置10間、及びプロキシ装置10とユーザ端末30間の両方でIPv6による通信が行われる。
Step 27) The
上記の2例は、ユーザ端末30からIPv6での接続要求が送信される場合の例であるが、ユーザ端末30からIPv4での接続要求が送信される場合には、プロキシ装置10はIPv4のみの接続要求をサーバ装置20に送信することとしてもよいし、IPv4とIPv6の双方で接続要求を送信することとしてもよい。IPv4とIPv6の双方で接続要求を送信する際には、IPv4での接続要求を先に送信することとしてよい。もしくは、ユーザ端末30との間のプロトコルスイートに関わらず、IPv6での接続要求を先にサーバ装置20に送信し、所定時間後にIPv4での接続要求をサーバ装置20に送信することとしてもよい。
The above two examples are examples in the case where a connection request in IPv6 is transmitted from the
<動作例3>
上記の2例では、プロキシ装置10がサーバ装置20から先に受信したTCP syn+ackパケットのプロトコルスタックにてサーバ装置20とプロキシ装置10間のセッションを確立することとしたが、どちらかのプロトコルスタックでのセッション確立を優先させるために、サーバ装置20から片方のプロトコルスタックによるTCP syn+ackパケットを先に受信したとしても、もう一方を所定時間(例:250msec)だけ待ち、所定時間以内に当該もう一方のプロトコルスタックによるTCP syn+ackパケットを受信した場合は、このプロトコルスタックによるTCP ackパケットを送信し、所定時間以内に当該もう一方のプロトコルスタックによるTCP syn+ackパケットを受信しなかった場合に、最初に受信したTCP syn+ackパケットと同じプロトコルスタックによるTCP ackパケットを送信することとしてよい。
<Operation example 3>
In the above two examples, the
例えば、プロキシ装置10とユーザ端末30との間のプロトコルスタックがIPv6の場合にIPv6を優先することとし、仮にサーバ装置20からIPv4のTCP syn+ackパケットを先に受信したとしても、受信後所定時間(例:250msec)の間はIPv6でのTCP syn+ackパケットを待ち、250msec以内にIPv6のTCP syn+ackパケットを受信した場合には、プロキシ装置10とサーバ装置20間のセッションはIPv6を用いて確立することとする。これにより、ユーザ端末30とプロキシ装置10間、及びプロキシ装置10とサーバ装置20間のプロトコルスタックを揃えることが可能になるため、予期せぬエラー等を防ぐことが可能となる。
For example, when the protocol stack between the
図5は、IPv6を優先する場合のプロキシ装置10とサーバ装置20間の動作を示す図である。
FIG. 5 is a diagram illustrating an operation between the
ステップ31)プロキシ装置10は、動作例1、2と同様にIPv6とIPv4の双方でTCP ackパケットをサーバ装置20に送信する。
Step 31) The
ステップ32)プロキシ装置10は、IPv4でのTCP syn+ackパケットを先に受信するが、すぐにIPv4でのTCP ackパケットを返さずに、IPv6でのTCP syn+ackパケットを所定時間が経過するまで待つ。
Step 32) The
ステップ33)プロキシ装置10は、IPv4でのTCP syn+ackパケットを受信してから所定時間以内に、IPv6でのTCP syn+ackパケットを受信する。
Step 33) The
ステップ34)プロキシ装置10は、所定時間以内にIPv6でのTCP syn+ackパケットを受信したので、IPv6でのTCP ackパケットをサーバ装置20に送信し、get requestを送信する。
Step 34) Since the
ステップ35)サーバ装置20は、要求されたデータをIPv6を用いてプロキシ装置10に送信する。
Step 35) The
(その他の例)
これまでに説明した例では、プロキシ装置10とサーバ装置20間で一旦あるプロトコルスタックでセッションが確立した後は、そのセッションを用いて通信を行うこととしているが、先にあるプロトコルスタックでセッションが確立した後に、他のプロトコルスタックによるセッションに切り替えることとしてもよい。例えば、プロキシ装置10とサーバ装置20間で先にIPv4でセッションが確立した場合でも、その後に、IPv6での応答(TCP syn+ack)をプロキシ装置10が受信した場合には、ユーザ端末30とサーバ装置20間でのデータ通信に支障のないタイミングで、プロキシ装置10とサーバ装置20間のセッションをIPv6によるセッションに切り替えてもよい。
(Other examples)
In the example described so far, once a session is established with a certain protocol stack between the
また、これまでに説明した例では、基本的に、ユーザ端末30とプロキシ装置10間のプロトコルスタックと同じプロトコルスタックでプロキシ装置10とサーバ装置20間でのセッションを確立させるようにしているが、ユーザ端末30とプロキシ装置10間のプロトコルスタックに関わらず、いずれかのプロトコルスタックを優先して使用してプロキシ装置10とサーバ装置20間でのセッションを確立させるようにしてもよい。
In the examples described so far, basically, the session between the
また、本実施の形態は、ユーザ端末30がプロキシ装置10を介してWebアクセスを行う例を説明しているが、本発明のプロキシ装置10は、SIPプロキシサーバ、DNSリゾルバ、その他のリレー系アプリケーションに適用することも可能である。また、プロキシ装置10の機能を、CPE(ブロードバンドルータ等)に実装することとしてもよい。
In addition, although the present embodiment describes an example in which the
(実施の形態の効果)
上記のように、本実施の形態で説明した技術によれば、プロキシ装置10においてIPv6とIPv4の切り替えを制御することで、ユーザ端末30で使用するプロトコルスタックやサービス提供側で使用するプロトコルスタックに関わらす、ユーザにストレスのない通信環境を提供することができる。
(Effect of embodiment)
As described above, according to the technology described in the present embodiment, the
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。 The present invention is not limited to the above-described embodiments, and various modifications and applications are possible within the scope of the claims.
10 プロキシ装置
11 通信処理部
111 IPv6機能部
112 IPv4機能部
12 セッション管理部
13 プロトコルスタック決定部
20 サーバ装置
30 ユーザ端末
DESCRIPTION OF
Claims (9)
前記サーバ装置に対するサービス要求を前記ユーザ端末から受信した場合に、前記サーバ装置に対する接続要求を、複数種類のIPプロトコルスタックのそれぞれを用いて送信する接続要求送信手段と、
前記接続要求に対する応答として前記サーバ装置から受信した応答に用いられたIPプロトコルスタックを用いて、前記サーバ装置との間のセッションを確立するセッション確立手段と、
前記セッションを用いて前記サービス要求を前記サーバ装置に送信し、当該サーバ装置から当該サービス要求に対する応答を受信し、当該応答を前記ユーザ端末に送信する中継手段と
を備えたことを特徴とする通信装置。 A communication device that relays communication between a user terminal and a server device,
A connection request transmitting means for transmitting a connection request for the server device using each of a plurality of types of IP protocol stacks when a service request for the server device is received from the user terminal;
Session establishment means for establishing a session with the server device using the IP protocol stack used for the response received from the server device as a response to the connection request;
Relay means for transmitting the service request to the server device using the session, receiving a response to the service request from the server device, and transmitting the response to the user terminal. apparatus.
ことを特徴とする請求項1に記載の通信装置。 The connection request transmitting means determines the type of IP protocol stack used for transmitting the service request received from the user terminal, and transmits the connection a plurality of times using the plurality of types of IP protocol stacks according to the type. The communication apparatus according to claim 1, wherein a transmission order of requests is determined, and the connection requests are sequentially transmitted to the server apparatus by each IP protocol stack in the determined transmission order.
ことを特徴とする請求項2に記載の通信装置。 The connection request transmitting means transmits an initial connection request to the server device using the same IP protocol stack used for transmitting a service request received from the user terminal. 2. The communication device according to 2.
ことを特徴とする請求項1ないし3のうちいずれか1項に記載の通信装置。 The session establishment means establishes a session with the server device using an IP protocol stack used for a response received first from the server device. The communication apparatus according to claim 1.
ことを特徴とする請求項1ないし3のうちいずれか1項に記載の通信装置。 The session establishing means receives the response when the response to the connection request is first received from the server device by an IP protocol stack different from the IP protocol stack used for transmitting the service request received from the user terminal. Thereafter, when a response by the same IP protocol stack as the IP protocol stack used for transmission of the service request received from the user terminal is received within a predetermined time, the server apparatus The communication device according to claim 1, wherein a session between the communication devices is established.
前記接続要求送信手段は、前記第1IPプロトコルスタックにより前記接続要求を前記サーバ装置に送信した後、所定時間が経過した時点で、前記第2IPプロトコルスタックにより前記接続要求を前記サーバ装置に送信する
ことを特徴とする請求項1ないし5のうちいずれか1項に記載の通信装置。 The plurality of types of IP protocol stacks include a first IP protocol stack and a second IP protocol stack,
The connection request transmitting means transmits the connection request to the server apparatus by the second IP protocol stack when a predetermined time has elapsed after transmitting the connection request to the server apparatus by the first IP protocol stack. The communication device according to claim 1, wherein:
ことを特徴とする請求項1ないし6のうちいずれか1項に記載の通信装置。 The communication device according to any one of claims 1 to 6, wherein the plurality of types of IP protocol stacks include two types of IP protocol stacks of IPv4 and IPv6.
前記サーバ装置に対するサービス要求を前記ユーザ端末から受信した場合に、前記サーバ装置に対する接続要求を、複数種類のIPプロトコルスタックのそれぞれを用いて送信する接続要求送信ステップと、
前記接続要求に対する応答として前記サーバ装置から受信した応答に用いられたIPプロトコルスタックを用いて、前記サーバ装置との間のセッションを確立するセッション確立ステップと、
前記セッションを用いて前記サービス要求を前記サーバ装置に送信し、当該サーバ装置から当該サービス要求に対する応答を受信し、当該応答を前記ユーザ端末に送信する中継ステップと
を備えたことを特徴とする通信方法。 A communication method executed by a communication device that relays communication between a user terminal and a server device,
A connection request transmission step of transmitting a connection request for the server device using each of a plurality of types of IP protocol stacks when a service request for the server device is received from the user terminal;
A session establishment step of establishing a session with the server device using an IP protocol stack used for a response received from the server device as a response to the connection request;
A relay step of transmitting the service request to the server device using the session, receiving a response to the service request from the server device, and transmitting the response to the user terminal. Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012039250A JP5723808B2 (en) | 2012-02-24 | 2012-02-24 | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012039250A JP5723808B2 (en) | 2012-02-24 | 2012-02-24 | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013175938A true JP2013175938A (en) | 2013-09-05 |
JP5723808B2 JP5723808B2 (en) | 2015-05-27 |
Family
ID=49268472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012039250A Active JP5723808B2 (en) | 2012-02-24 | 2012-02-24 | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5723808B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014049995A (en) * | 2012-08-31 | 2014-03-17 | Toshiba Corp | Communication device, system and program |
JP2016184793A (en) * | 2015-03-25 | 2016-10-20 | パナソニックIpマネジメント株式会社 | Management device, communication control method and communication control program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090037595A1 (en) * | 2007-07-31 | 2009-02-05 | Sprint Communications Company L.P. | Selecting and applying a communication version |
JP2010062757A (en) * | 2008-09-02 | 2010-03-18 | Panasonic Corp | Dns proxy apparatus and dns relay method |
-
2012
- 2012-02-24 JP JP2012039250A patent/JP5723808B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090037595A1 (en) * | 2007-07-31 | 2009-02-05 | Sprint Communications Company L.P. | Selecting and applying a communication version |
JP2010062757A (en) * | 2008-09-02 | 2010-03-18 | Panasonic Corp | Dns proxy apparatus and dns relay method |
Non-Patent Citations (2)
Title |
---|
JPN6014053831; D. Wing, A. Yourtchenko: 'Happy Eyeballs: Trending Towards Success with Dual-Stack Hosts' Internet-Draft , 20101025 * |
JPN6014053832; Fabian Hugelshofer: 'Squid hangs waiting for AAAA record lookups that time-out' インターネット , 20110411 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014049995A (en) * | 2012-08-31 | 2014-03-17 | Toshiba Corp | Communication device, system and program |
JP2016184793A (en) * | 2015-03-25 | 2016-10-20 | パナソニックIpマネジメント株式会社 | Management device, communication control method and communication control program |
Also Published As
Publication number | Publication date |
---|---|
JP5723808B2 (en) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070233844A1 (en) | Relay device and communication system | |
US9680948B2 (en) | System and method for device failure notification | |
JP4961368B2 (en) | Terminal device, NAT traversal method, and program | |
US11388138B2 (en) | Communication system, address notification apparatus, communication control apparatus, terminal, communication method, and program | |
WO2011137809A1 (en) | Method, apparatus and system for realizing hypertext transfer protocol redirection in content delivery network | |
US10666769B2 (en) | Network system and method for establishing data link by using relay node | |
US9929942B2 (en) | Remote access to a residential multipath entity | |
US7564848B2 (en) | Method for the establishing of connections in a communication system | |
JP5797591B2 (en) | Relay device | |
JP5723808B2 (en) | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM | |
CN107483593B (en) | Bidirectional transparent proxy method and system | |
JP2015118478A (en) | Communication adapter device, communication system, tunnel communication method and program | |
KR101049549B1 (en) | GPD hole punching method using SIP, terminal management system and terminal management method using same | |
US20110235641A1 (en) | Communication apparatus, method of controlling the communication apparatus,and program | |
JP5437518B2 (en) | Virtual network system, configuration change method, tunnel termination device, tunnel connection device, and program | |
CN100393039C (en) | Network administration method for no-IP address device | |
WO2015167375A1 (en) | Method and tcp proxy for supporting communication between a client device and a server node | |
Mondal et al. | A reliable, multi-path, connection oriented and independent transport protocol for iot networks | |
Cisco | Timer and Retry Enhancements for L2TP and L2F | |
CN105407184A (en) | Initial configuration method and device in equipment | |
JP2019103118A (en) | Communication relay device, communication relay program, and communication relay method | |
JP7370066B2 (en) | Communication method | |
JP5084716B2 (en) | VPN connection apparatus, DNS packet control method, and program | |
JP6930585B2 (en) | Relay device, network system and network control method | |
JP2007166116A (en) | Home server apparatus and application server apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150223 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150330 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5723808 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |