1. 今回の要約
- remote.itの2つの接続方式(P2P接続とProxy接続)を理解する
- ProxyFailover機能を理解する
remote.itでは、P2P接続とProxy接続という2つの接続方式がサポートされています。また、これらの接続方式は使用するInitiater(クライアント)によって、使用できるものとできないものがあります。本稿ではこれらの接続方式の違いを理解すると共に、新しく実装されたProxyFailover機能について触れています。
2. 構成
remote.it社の資料から抜粋して絵をお借りしています。
3. P2P接続とProxy接続
remote.itでは接続先デバイスとの接続に、P2P接続とProxy接続という2つの接続方式があります。
接続方式 | 接続先例 | 説明 |
---|---|---|
P2P接続 | localhost:33000 | クライアント(Initiator)と接続先(Target)が直接通信を行う。接続先同士がudp hole punchingでの接続施行を行うため、NATなどのお互いの通信環境に依っては接続が行えない。 |
Proxy接続 | proxy72.rt3.io:32169 (*1 | クライアント(Initiator)と接続先(Target)の間に、remote.itのProxyサーバが介在する。NATなどのお互いの通信環境による影響が軽減される。 |
それぞれの接続方式の違いとしてはまず、リモート接続後の接続先アドレスが異なります。P2P接続の場合には、ローカルアドレスポートへの接続となります。WebPortalなどからのProxy接続の場合には使用されるProxyサーバが毎回異なりますので、その接続先のアドレスも毎回異なります。(*1
※1)DesktopAppなどからの接続の場合には、P2Pと同じ接続先アドレスが使用できます
次に、P2P接続ではお互いが直接接続してデータ通信を行うのに比べ、Proxy接続では接続先との間にremote.itのProxyサーバが介在してデータの通信を行います。経路や効率などの観点からはP2P接続の方が好ましく思えますが、NATなどのお互いの通信環境に依っては接続が行えないことがあります。
Proxy接続では、接続元と接続先はそれぞれInternet上にあるremote.itのProxyサーバに対する接続となりますので、先ほどP2Pで上げたような通信環境による影響は軽減されます。remote.itのProxyサーバは世界各地域に設置されています。ただし、各ユーザと共用となりますので、利用にあたってはベストエフォートとなります。
どちらかの接続方式を選んで使用することもできますし、後記するProxyFailover機能を使用すれば、接続できる方式を自動的に施行することもできます。また、使用するInitiater (クライアント)によっては使用できる接続方式が決まっている場合がありますので、各接続手段別に使用できる接続方式については接続Matrixを参照してください。
4. ProxyFailover
ProxyFailoverとは、P2PとProxyの2つの接続方式を施行し、接続ができる方を選択して自動的に接続してくれる機能です。これにより、接続元と接続先のお互いのネットワーク環境に依らずに、接続が行える可能性が高まります。例えば移動などに伴い接続元の環境が一定ではない場合にでも、自動的に接続できる方式が使われます。
ProxyFailoverは、以下の流れでそれぞれの接続を施行します。
- P2Pでの接続を施行
- P2Pで接続できなかった場合に、Proxyでの接続を施行
まず初めにP2Pでの接続を施行し、接続ができればそこで終了となります。P2Pで接続できなかった場合には、次にProxyでの接続を施行します。それぞれの接続を施行する分、Proxyで接続される場合には接続までにかかる時間が少し伸びます。
ProxyFailoverをサポートするInitiaterで接続した場合には、結果としてどちらの方式で接続したかにかかわらず、P2P方式と同じローカルのアドレス(例、localhost:33000)が接続先となります。ProxyFailoverでProxy接続した場合には、ローカルポートからProxyアドレスへの転送が内部的に行われています。
5. 接続Matrix
remote.itの各Initiaterの接続方式(P2P/Proxy)をまとめると、以下の通りとなります。
Initiater | P2P接続 | Proxy接続 | 備考 |
---|---|---|---|
DesktopApp | 〇 | 〇 | ProxyFailover可能 |
MobileApp | 〇 | 〇 | ProxyFailover可能 |
CLI | 〇 | 〇 | ProxyFailover可能 |
Web Portal | × | 〇 | |
connetd | 〇 | × | |
REST API | × | 〇 |
両方の接続方式が可能な場合には、「P2P or Proxy」もしくは「ProxyFailover」での接続を選択(設定)することができます。