Movatterモバイル変換


[0]ホーム

URL:


JP2004180003A - Communication network system and communication connection method - Google Patents

Communication network system and communication connection method
Download PDF

Info

Publication number
JP2004180003A
JP2004180003AJP2002344243AJP2002344243AJP2004180003AJP 2004180003 AJP2004180003 AJP 2004180003AJP 2002344243 AJP2002344243 AJP 2002344243AJP 2002344243 AJP2002344243 AJP 2002344243AJP 2004180003 AJP2004180003 AJP 2004180003A
Authority
JP
Japan
Prior art keywords
port number
terminal device
client
router
interconnection
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
Application number
JP2002344243A
Other languages
Japanese (ja)
Inventor
Takumi Abe
卓己 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KITT PEAK KK
Original Assignee
KITT PEAK KK
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by KITT PEAK KKfiledCriticalKITT PEAK KK
Priority to JP2002344243ApriorityCriticalpatent/JP2004180003A/en
Publication of JP2004180003ApublicationCriticalpatent/JP2004180003A/en
Pendinglegal-statusCriticalCurrent

Links

Images

Landscapes

Abstract

<P>PROBLEM TO BE SOLVED: To provide a communication network system and a communication connection method which enables P2P connection between different private address networks. <P>SOLUTION: The communication network system performs P2P connection between a client 12A having a private address and a client 12B having the other private address. The client 12B predicts and creates a transmission destination port number and sends one packet including this transmission port number to the other party, and the client 12A predicts the transmission destination port number to create a plurality of transmission source port numbers and creates and transmits a plurality of packets 20-1 to 20-n including the transmission source port numbers respectively to the other party. When the transmission source port number of one of the plurality of packets coincides with the transmission destination port number of the one packet, 1:1 mutual connection is established. <P>COPYRIGHT: (C)2004,JPO

Description

Translated fromJapanese

【0001】
【発明の属する技術分野】
本発明は、異なるプライベートアドレスネットワーク間における1対1の相互接続(P2P接続)を可能とする通信ネットワークシステム、および通信の接続方法に関する。
【0002】
【従来の技術】
従来のインターネット接続による通信について説明する。図4を参照して、最初に、現在、インターネットにおいて標準的に使われているネットワーク形式であるクライアント・サーバを例に説明をする。図4は、インターネット101を介して、クライアント102がサーバ103と通信を行い、ホームページを閲覧するための簡略化した流れ図である。図4において実際のプロトコル上の詳細な手順の図示は省かれている。
【0003】
なおインターネット101を介して通信を行うためには、TCPやUDPという下位のプロトコルを用いる。これらの下位のプロトコルでは、その際に、IPアドレスとPort番号のセットから成るインターネット上の住所情報が必要となる。IPアドレスは、32ビット(bit)の整数値から成るのもので、一般的に8ビットごとに10進数化して、例えば“203.138.209.130”と表される。またPort番号は16ビットの正の整数値である。
【0004】
図4では、一例として、クライアント102は、グローバルIPアドレス(世界に一意の住所)が“G:例えば「202.216.232.210」”であり、サーバ103は、グローバルIPアドレスが“W:例えば「203.138.209.130」”であるとする。クライアント102のPort番号は任意である。またサーバ103はhttpサーバであり、そのPort番号は“80”と決められている。
【0005】
クライアント102とサーバ103の間でインターネット101を経由して送信されるデータは「パケット」と呼ばれる形式になっている。このパケットには、送信したいデータに加えて、送信元のIPアドレス(Source IP:簡略して「SrcIP」)とPort番号(Source Port:簡略して「SrcPort」)のデータ(住所情報)、送信先のIPアドレス(Distination IP:簡略して「DstIP」)とPort番号(Distination Port:簡略して「DstPort」)のデータ(住所情報)が含まれている。
【0006】
図4に示した動作の流れを説明する。まず、クライアント102は「SrcIP(G)/SrcPort(X)/DstIP(W)/DstPort(80)」という差出人(送信元)および宛先(送信先)を含めたパケット104をインターネット101を経由してサーバ103側へ送信する(流れP501)。「SrcIP(G)/SrcPort(X)」は差出人の「IPアドレス/Port番号」に係るデータであり、「DstIP(W)/DstPort(80)」は宛先の「IPアドレス/Port番号」に係るデータである。このパケット104は「ホームページ閲覧要求」に係る通信内容を有するパケットである。クライアント102の「SrcPort」は決まった値ではなく任意の数値である。その理由は、同時にメールの送受信を行ったり、ホームページ内の画像を平行してダウンロードするなど、同時進行で様々なサーバと通信を行えるように、各タスクごとにPortを開く(新たなPort番号に随時変える)ことにある。
【0007】
サーバ103にクライアント102からのパケット104が届くと、サーバ103は当該パケット104に含まれる閲覧要求を受信することになる(ステップS601)。サーバ103は、受信したパケット104の要求を解読する。そしてその後、送信元(差出人)すなわちクライアント102を返信先にして、クライアント102へ、「SrcIP(W)/SrcPort(80)/DstIP(G)/DstPort(X)」を有するパケットを送信する(ステップS602、流れP502)。クライアント102では、サーバ103から送信されたパケットを受信する(ステップS603)。以上のような通信動作の流れに基づいて、クライアント102はサーバ103からホームページデータを得ることができ、他方、サーバ103はクライアント102へデータを送信できるのである。
【0008】
ところが、前述した図4のようなシステム構成に基づくインターネット接続は大変稀である。現実には、図5に示すように、クライアント102Aでは、上記のクライアント102とは異なり、「ルータ」と呼ばれる装置105を介してインターネット101に接続される。ルータ105の役割は、1つはグローバルIPアドレスを複数の端末機器で共有することであり、他の1つは外部からの侵入を防ぐファイアウォールという機能を有することである。前者の役割に基づいて、ルータ105では、これの内側に属する複数の端末機器のそれぞれに異なるプライベートIPアドレスが割り振られている。
【0009】
図5に示されたシステム構成における動作の流れを説明する。図5に示された要素に関し、図4で説明された要素と同一の要素には同一の符合を付している。まず、クライアント102Aは、プライベートIPアドレスA(SrcIP(A))というルータ105の内側だけで通用する住所が予め割り振られている。この例では、クライアント102Aは、「SrcIP(A)/SrcPort(X)/DstIP(W)/DstPort(80)」として、ルータ105へパケット104を送信する(流れP511)。ルータ105では、「SrcIP(A)」をインターネット101の世界で通用するグローバルIPアドレス(SrcIP(G))に変換することにより、パケット104の一部を書き換える。これは、ルータ105によるNAT(Network Address Translation)という機能に基づいている。さらに、ルータ105の内側に接続されている端末機器は前述の通り複数存在し、しかも同一のPort番号が同時に使用される危険性があるため、「SrcPort(X)」についてもルータ105が「SrcPort(P)」に変換する。これは、ルータ105によるIPマスカレードという機能に基づいている。
【0010】
上記のごとくクライアント102Aからルータ105にパケット104が届くと、ルータ105においてパケット104の含む住所情報「SrcIP(A)/SrcPort(X)/DstIP(W)/DstPort(80)」は「SrcIP(G)/SrcPort(P)/DstIP(W)/DstPort(80)」に変換される。この後、パケットはルータ105からインターネット101を介してサーバ103へ送信される(流れP512)。サーバ103でパケットが届くと、前述と同様に、サーバ103はパケットの要求を受信する(ステップS601)。その後、サーバ103は、パケットに含まれる住所情報「SrcIP(G)/SrcPort(P)/DstIP(W)/DstPort(80)」に基づいて、前述と同様に、送信元を返信先にし、「SrcIP(W)/SrcPort(80)/DstIP(G)/DstPort(P)」としてパケットをインターネット101を経由してルータ105に対して送信する(ステップS602、流れP513)する。
【0011】
サーバ103からルータ105に届いたパケットは、ルータ105が「SrcIP」と「SrcPort」はそのままにしかつ「DstIP」と「DstPort」の変換を行うことによって、「SrcIP(W)/SrcPort(80)/DstIP(G)/DstPort(P)」を「SrcIP(W)/SrcPort(80)/DstIP(A)/DstPort(X)」として、クライアント102Aに送られる(流れP514)。こうしてクライアント102Aは、サーバ103から送られてくるホームページデータを受信する(ステップS603)。このようにサーバ103は、本来的にはクライアント102Aと通信しているのであるが、実際には、間にルータ105が介在するため、クライアント102AのプライベートIPアドレス(A)やPort番号(X)を知らない状態で返信を行っている。
【0012】
上記で述べたようなクライアント・サーバ形式は、ホームページの公開などのように、不特定多数のユーザに対して、固定のデータを一方向に提供するようなネットワークサービスに適している。しかしながら、インターネットの利用はこのような形態だけでなく、様々な用途があり、さらに日々新しい利用形態のシステムが考案され続けられている。例えば、チャットと呼ばれる文字、音声、ビデオ画像などのやり取りや、対戦型のネットワークゲームのように、個人間、あるいは複数の限られた人数でのデータ送受信(データ交換)などが挙げられる。
【0013】
上記のような少人数内のデータ交換型サービスには、クライアント・サーバ形式は相応しくない。何故なら、ただでさえ、クライアント・サーバ形式は、サービスの拡大に伴いサーバの処理能力とサーバの回線容量が常に増強しなくてはならない上に、個々間内のデータ交換するために、全てのデータ転送がサーバを中継されるというは完全な無駄だからである。よってサーバを介さず、クライアント機器間で直接通信できるような形式が相応しいということになる。このようなネットワーク形式はP2P(ピァ・トゥ・ピァ)と呼ばれる。つまり、このP2P形式のネットワークを活用することで、クライアント・サーバ形式ではできなかった新しいインターネットビジネスが可能になるだけでなく、サーバ構築および維持などのコストを大きく削減することも可能になるのである。
【0014】
次にP2P接続による通信の現状と問題点を説明する。P2Pの利点は上述した通りである。しかしながら、現状ではなかなか普及していない。理由の1つは必ずしも接続できるわけでないという欠点があるからである。以下に、現状のP2Pによる接続システムを説明し、P2Pによる接続の困難さを説明する。
【0015】
前述したように、インターネット101を介した接続には住所情報である「SrcIP/SrcPort/DstIP/DstPort」のデータが必要になる。特に、宛先に係る住所情報である「DstIP」と「DstPort」が分からなければ、送信を行うことは不可能である。クライアントがサーバと通信したい場合は、例えば一般に公開されているURLからDNSサーバに使って「DstIP」を得ることができる。「DstPort」に関しては、サーバのサービスごとに規定されている(つまり固定値である)ため、必要な情報は簡単に揃えることができる。
【0016】
一方、P2P接続による通信の場合には、最初の状態ではお互いの宛先(「DstIP」と「DstPort」)が分からないため、一般的にロビーサーバと呼ばれるマッチング(待ち合わせ)のためのサーバを一時的に利用する。
【0017】
図6では、上記のクライアント102Aと、新たなクライアント106とがロビーサーバ107を介してP2P接続による通信を行う簡略化した手順を示している。
【0018】
ここで、クライアント102Aは、前述と同様にルータ105の管理内にあってそのプライベートIPアドレスがA、クライアント106はグローバルIPアドレスがB、ロビーサーバ107はグローバルIPアドレスがLでPort番号がXであるとする。
【0019】
まずクライアント102Aがロビーサーバ107にアクセス(ログイン)する場合(ステップS611)を見る。クライアント102Aのパケットは、ルータ105を介するため、ルータ105において「SrcIP(A)/SrcPort(X)/DstIP(L)/DstPort(X)」が「SrcIP(G)/SrcPort(P)/DstIP(L)/DstPort(X)」に変換され、ロビーサーバ107に届けられる(流れP515)。ロビーサーバ107は、クライアント102Aのログイン要求を受信する(ステップS612)と、クライアント102Aの住所情報として「IP(G)」と「Port(P)」をそのデータベースに記憶する(ステップS613)。
【0020】
同様にクライアント106がロビーサーバ107にアクセスする(ステップS614)と、ロビーサーバ107は、クライアント106のログイン要求を受信し(ステップS615)、クライアント106の住所情報として「IP(B)」と「Port(X)」をデータサービスに記憶する(ステップS616)。
【0021】
この後において、クライアント102Aから「クライアント106と通信したい」という要求(ステップS617)が出されるとする。この要求に係るパケットがルータ105を経由してロビーサーバ107に送信され、ロビーサーバ107が当該パケットを受信する(ステップS618)と、ロビーサーバ107は、クライアント106にクライアント102Aの住所情報である「IP(G)/Port(P)」を送信する(ステップS619)と共に、クライアント102Aにはクライアント106の住所情報である「IP(B)/ Port(X)」を送信する(ステップS620)。こうして、クライアント106はクライアント102Aの住所情報を受信し(ステップS621)、クライアント102Aはクライアント106の住所情報を受信する(ステップS622)。その後のクライアント102A,106の間の通信プロセスでは、ロビーサーバ107の機能は不要となる(ステップS623)。
【0022】
上記のようにしてクライアント102A,106はお互いの住所情報を入手できたので、その後、クライアント102Aは、「SrcIP(A)/SrcPort(X)/DstIP(B)/DstPort(X)」というデータを含むパケットをクライアント106へ送信し(ステップS624)、クライアント106は、「SrcIP(B)/SrcPort(X)/DstIP(G)/DstPort(P)」というでデータを含むパケットをクライアント102Aに送信する(ステップS626)。両者が送信したパケットが通信回線上でうまく出会えば、それぞれ直接に受信を行うことが可能である(ステップS625,S627)。しかし、通信が必ず行えるわけではない。
【0023】
前述したP2P通信に関連する従来技術として、グローバルアドレスによる管理端末とプライベートアドレスによる管理端末間の1対1の相互通信を可能にする通信ネットワークシステムが提案されている(例えば特許文献1)。
【0024】
【特許文献1】
特開2001−345841号公報
【0025】
【発明が解決しようとする課題】
図6で説明したP2P接続による通信システムの問題は、クライアント102Aからクライアント106へ送信されるパケットが、ルータ105において、その住所情報である「SrcIP(A)/SrcPort(X)」が「SrcIP(G)/SrcPort(P)」へと変換されることが原因になっている。ルータ105を介在させる限り、「SrcIP(A)/SrcPort(X)」から「SrcIP(G)/SrcPort(P)」への変換は前提であるので、P2P通信における上記問題の発生は必須となる。
【0026】
実際のルータ105におけるポート変換の方式については、「SrcPort」と「DstPort」が同一であり、「DstIP」が異なるパケットに対して、同一のDstPortに変換される場合と、「SrcPort」と「DstPort」が同一でも、DstIPが異なるパケットに対しては、異なるDstPortに変換される場合とがある。
【0027】
上記の前者のポート変換としては、例えば、SrcIP(A)/SrcPort(X)/DstIP(L)/DstPort(X)が、SrcIP(G)/SrcPort(P)/DstIP(L)/DstPort(X)となった場合、SrcIP(A)/SrcPort(X)/DstIP(B)/DstPort(X)が、SrcIP(G)/SrcPort(P)/DstIP(L)/DstPort(X)となる。
【0028】
上記の後者のポート変換としては、例えば、SrcIP(A)/SrcPort(X)/DstIP(L)/DstPort(X)が、SrcIP(G)/SrcPort(P)/DstIP(L)/DstPort(X)となった場合、SrcIP(A)/SrcPort(X)/DstIP(B)/DstPort(X)が、SrcIP(G)/SrcPort(Q)/DstIP(L)/DstPort(X)となる。
【0029】
後者の例では「SrcPort」は、XからPではなく、XからQに変換されてしまう。このため、図7に示したP631およびP632のように、ルータ105からクラアント106へ送信した「SrcIP(G)/SrcPort(Q)/DstIP(B)/DstPort(X)」には対応しない「SrcIP(B)/SrcPort(X)/DstIP(G)/DstPort(P)」というパケットが、クライアント106からルータ105に届くことになる。この場合、ルータ105は、内側のクライアント102Aへパケットを渡すことができない。何故なら、ルータ105は内側から外部へパケットを送信する時に行ったIPアドレスおよびPort番号の変換を元に、返信パケットのIPアドレスおよびPort番号の逆変換を行い、内側へパケットを渡しているからである。
【0030】
ルータ105では、実際上、上記の変換機能を有していることから、前述の通りファイアウォールとして外部からの未知のパケットの侵入を防ぐことに貢献することが可能となる。しかしながら、P2P通信の観点では、上記変換機能によって当該通信が制限され、接続が困難となる状況を作ることになる。
【0031】
本発明の目的は、上記の問題を解決することにあり、異なるプライベートアドレスネットワーク間における1対1の相互接続すなわちP2P接続を可能にする通信ネットワークシステム、および通信の接続方法を提供することにある。
【0032】
【課題を解決するための手段および作用】
本発明に係る通信ネットワークシステムおよび通信の接続方法は、上記の目的を達成するため、次のように構成される。
【0033】
本発明に係る第1の通信ネットワークシステム(請求項1に対応): プライベートアドレスを有する第1端末装置(クライアント等)と他の異なるプライベートアドレスを有する第2端末装置(クライアント等)との間の1対1の相互接続のための通信ネットワークシステムである。このシステムで、第1および第2端末装置のうち、一方の端末装置が送信先ポート番号を予測して作りかつこの送信先ポート番号を含む1つの相互接続用パケットを相手に送信する手段を有し、他方の端末装置が上記の送信先ポート番号を予測して複数の送信元ポート番号を作りかつこれらの送信元ポート番号のそれぞれを含む複数の相互接続用パケットを作って相手に送信する手段を有するように構成される。複数の相互接続用パケットのいずれかの送信元ポート番号と1つの相互接続用パケットの送信先ポート番号とが一致したときに1対1の相互接続すなわちP2P接続が確立される。
【0034】
本発明に係る第2の通信ネットワークシステム(請求項2に対応): 第1ルータの内側にあってプライベートアドレスが割り振られた第1端末装置と、第2ルータの内側にあってプライベートアドレスが割り振られた第2端末装置との間の1対1の相互接続のための通信ネットワークシステムである。相互接続を開始する第1段階において、第1端末装置による相互接続の要求に基づき第1ルータから送信された第1端末装置のグローバルアドレスとポート番号を第2端末装置に向けて送信すると共に、第2ルータから送信された第2端末装置のグローバルアドレスとポート番号を第1端末装置に向けて送信するサーバを備える。第2端末装置は、そのグローバルアドレスとポート番号を送信した直後に、受信した第1端末装置のポート番号の値に任意の数n(整数)を加えて送信先ポート番号を設定し、これを含む相互接続開始要求に係るパケットを第1ルータに対して送信する手段を有する。第1端末装置は、第2端末装置に対して相互接続開始要求に係るパケットを送信する時、送信元ポート番号を1つずつ増して成るn個のパケットを作って送信する手段を有する。第1ルータによって変換されたn個のパケットのいずれかの送信元ポート番号と、第2端末装置から送信されたパケットの送信先ポート番号が一致したときに、1対1の相互接続が確立される。
【0035】
本発明に係る第1の通信の接続方法(請求項3に対応): プライベートアドレスを有する第1端末装置と他の異なるプライベートアドレスを有する第2端末装置との間を1対1に接続する方法であって、一方の端末装置が送信先ポート番号を予測して作りかつこの送信先ポート番号を含む1つの相互接続用パケットを相手に送信し、他方の端末装置が送信先ポート番号を予測して複数の送信元ポート番号を作りかつこれらの送信元ポート番号のそれぞれを含む複数の相互接続用パケットを作って相手に送信し、複数の相互接続用パケットのいずれかの送信元ポート番号と1つの相互接続用パケットの送信先ポート番号とが一致したときに1対1の相互接続を確立される接続方法である。
【0036】
本発明に係る第2の通信の接続方法(請求項4に対応): 第1ルータの内側にあってプライベートアドレスが割り振られた第1端末装置と、第2ルータの内側にあってプライベートアドレスが割り振られた第2端末装置との間を1対1で相互に接続する方法である。相互接続を開始する第1段階で、第1端末装置による相互接続の要求に基づき第1ルータから送信された第1端末装置のグローバルアドレスとポート番号を第2端末装置に向けて送信すると共に、第2ルータから送信された第2端末装置のグローバルアドレスとポート番号を第1端末装置に向けて送信する。第2端末装置は、そのグローバルアドレスとポート番号を送信した直後に、受信した第1端末装置のポート番号の値に任意の数nを加えて送信先ポート番号を設定し、これを含む相互接続開始要求に係るパケットを第1ルータに対して送信する。第1端末装置は、第2端末装置に対して相互接続開始要求に係るパケットを送信する時、送信元ポート番号を1つずつ増して成るn個のパケットを作って送信する。上記において、第1ルータによって変換されたn個のパケットのいずれかの送信元ポート番号と、第2端末装置から送信されたパケットの送信先ポート番号が一致したときに、1対1の相互接続が確立される。
【0037】
【発明の実施の形態】
以下に、本発明の好適な実施形態を添付図面に基づいて説明する。
【0038】
図1は、本発明に係るP2P接続による通信システムの構成を概念的に示す。ルータ11Aの内側にあるクライアント12Aとルータ11Bの内側にあるクライアント12Bとがインターネット13を介してP2P接続による通信を行う構成を示している。クライアント12Aはルータ11AにおいてプライベートIPアドレスが割り振られ、クライアント12Bはルータ11BにおいてプライベートIPアドレスを割り振られている。この実施形態によるネットワークでは、これらの2つのクライアント12A,12Bの間でインターネット13を介して1対1の相互接続14が行われ、通信ネットワークが形成され、クライアント間の通信が行われる。すなわち、各ルータ11A,11Bに基づく異なるプライベートアドレスネットワーク間におけるP2P接続を行い、P2P通信が行われる。なお、ルータ11A,11Bのそれぞれの内側にあるクライアント(端末装置)は、実際には、クライアント12A、クライアント12Bに限られず、複数のクライアントが接続されている。
【0039】
図2を参照して本発明に係るP2P接続を可能にするポート(Port)変換予測について説明する。図2は一例として前述したルータ11Aの内側を簡略して示している。ルータ11Aの内側には、例えば、上記のクライアント12Aの他に、クライアント12A−1、クライアント12A−2が接続されているものとする。
【0040】
クライアント12A,12A−1,12A−2のそれぞれは、ほぼ同時刻に、外部にあるサーバのホームページを閲覧したり(ステップS11,S13,S14,S15)、外部のクライアントに対してメール送信(ステップS12)を行ったりしている。ルータ11Aは、前述したように、外向きのパケットに対しては住所情報のうちの送信元(差出人)の「SrcIP」と「SrcPort」を随時変換し、内向きのパケットに対しては送信先(宛先)の「DstIP」と「DstPort」を随時変換する機能を有している。
【0041】
図2に示すように、ルータ11Aにより差出人(各クライアント)のポート番号「SrcPort」を変換した際に使われる変換後のPort番号(ポート番号)は、時間経過と共に1つずつ加算した値が用いられる。具体的に図示された例を追ってみると、最初にクライアント12AのステップS11に係るパケットではその住所情報で「SrcPort(X1)」から「SrcPort(P)」へ変換されておリ、その後のステップS12〜S15に係るパケットでは「SrcPort」が、P+1、P+2、P+3、P+4と1つずつ増えていることが分かる。さらにクライアント12Aの「SrcPort」については、Pに変換された後は、P+4となり、連続した値にならないことも分かる。これは、その後の時間経過の中で、他のクライアント12A−1,12A−2が新たなパケットを送信したためである。
【0042】
図2に示された例から分かることは、各クライアント12A,12A−1,12A−2が新しい「SrcIP/SrcPort/DstIP/DstProt」の組み合わせでパケットを送信すると、ルータ11Aにより変換されるPort番号の値は前回変換された値より、1以上のいくつか増えた値になるということである。このことは、上記クライアント12Bが接続されるルータ11BでのPort番号の変換でも同じことである。従って、例えばルータ11Aの内側のクライアント12Aと、外部のクライアント12Bとの間でP2P接続を行って通信を可能にするためには、ルータ11Aまたはルータ11BにおけるPort番号の変換、すなわちポート変換を予測して接続を試みることが必須となる。
【0043】
なお、上記のパケットに関して、TCPパケットの中には、6つのコントロールフラグが含まれており、接続する際に最初に送信するパケットではSYN(シンクロナイズ)フラグがセットされる。ルータ(ファイアウォール)は、このSYNフラグがセットされているパケットが外側から届くと、外部からの侵入とみなしてパケットを遮断してしまう場合があるため、P2P接続ではコントロールフラグのないUDPパケットを用いる。本実施形態の説明で使用される「パケット」はUDPパケットを意味する。
【0044】
次に、図3A,3B,3Cを参照して、本実施形態に係るPort番号予測アルゴリズムを使用してクライアント12A,12Bの間のP2P接続を説明する。図3A〜3Cは一連のフローチャートを3つの部分に分けて示したものであり、横方向にクライアント12A、ロビーサーバ15、クライアント12Bの間のデータの送受関係が示され、縦方向に時間の経過に伴う各装置の処理の流れが示されている。
【0045】
まずクライアント12Aは「SrcIP(A)/SrcPort(X)/DstIP(L)/DstPort(Z)」という住所情報を含むパケットを送信し(ステップS21)、ルータ(ファイアウォール)11Aを介してロビーサーバ15へログインする(ステップS22)。上記パケットに含まれる住所情報の「SrcIP(A)/SrcPort(X)/DstIP(L)/DstPort(Z)」は、ルータ11AでそのNAT機能およびIPマスカレード機能に基づいて「SrcIP(G)/SrcPort(P)/DstIP(L)/DstPort(Z)」に変換される。ロビーサーバ15では、クライアント12Aからのログイン要求が正常であるか否かを判定する(ステップS23)。判定ステップS23で、YESであるときにはクライアント12Aの住所情報をデータベースに登録し(ステップS24)、NOであるときにはクライアント12Aに不許可を送信する(ステップS25)。ステップS24を実行した後には、ロビーサーバ15は、クライアント12Aに対してログイン許可を送信する(ステップS26)。ステップS25による送信またはステップS26による送信はルータ11Aを経由してクライアント12Aにより受信される(ステップS27)。
【0046】
同様に、クライアント12Bもロビーサーバ15に対して「SrcIP(B)/SrcPort(Y)/DstIP(L)/DstPort(Z)」という住所情報を含むパケットを送信し(ステップS28)、ルータ11Bを介して、ロビーサーバ15へログインする。ロビーサーバ15は当該パケットによるログイン要求を受信する(ステップS29)。パケットに含まれる「SrcIP(B)/SrcPort(Y)/DstIP(L)/DstPort(Z)」は、同様に、ルータ11Bで「SrcIP(H)/SrcPort(Q)/DstIP(L)/DstPort(Z)」に変換される。ロビーサーバ15では、クライアント12Bからのログイン要求が正常であるか否かを判定する(ステップS30)。判定ステップS30で、YESであるときにはクライアント12Bの住所情報をデータベースに登録し(ステップS31)、NOであるときにはクライアント12Bに不許可を送信する(ステップS32)。ステップS31を実行した後には、ロビーサーバ15は、クライアント12Aに対してログイン許可を送信する(ステップS33)。ステップS32による送信またはステップS33による送信はルータ11Bを経由してクライアント12Bにより受信される(ステップS34)。
【0047】
クライアント12A,12Bのそれぞれでは、受信したログイン結果によってログインが成功したか否かを判断する(ステップS35,S36)。ここでは、ログインが成功したものとする。
【0048】
上記の状態の下で、次に、クラアイント12Aが「SrcIP(A)/SrcPort(X+a)/DstIP(L)/DstPort(Z)」の住所情報を含むでパケットで、ロビーサーバ15に対して、クライアント12BとのP2P接続の要求を送信する(ステップS37)。ここで、上記のログイン時に使用した「SrcPort(X)」から「SrcPort(X+a)」へとPort番号を変更して送信している。このことは重要である。aは任意の整数で、このX+aという新しいポート(Port)を使うことで、ルータ11Aにおいても新しいPort番号(P+b)への変換を行わせる。bはポートマッピングで生成された不確定な増分値である。P2Pの要求は、ロビーサーバ15にログインしてから暫く時間が経過していることも考えられるため、クライアント12Aのルータ11Aに最新のPort番号を発行させる。
【0049】
クライアント12Aの要求をロビーサーバ15が受信する(ステップS38)と、ロビーサーバ15は直ちにクライアント12Bに対してクライアント12Aの要求を送信する(ステップS39)。この際に、以前の「SrcPort(X)」が変換された「Port(P)」ではなく、「SrcPort(X+a)」が変換された「Port(P+b)」というPort番号と、クライアント12AのグローバルIPアドレス(G)をクライアント12Bへ送る。
【0050】
クライアント12Bは、ロビーサーバ15からクライアント12Aの情報と要求を受信する(ステップS40)と、P2P接続を許可するか否かを判定する(ステップS41)。判定ステップS41で、YESのときにはロビーサーバ15へP2P許可を送信し(ステップS42)、NOのときにはロビーサーバ15にP2P不許可を送信する(ステップS43)。その結果、ロビーサーバ15は、クライアント12Bから要求の結果を受信する(ステップS44)。クライアント12Bからロビーサーバ15へのP2P要求の可否に関するデータの送信は、「SrcIP(B)/SrcPort(Y+c)/DstIP(L)/DstPort(Z)」という住所情報を含むパケットで行われる。クライアント12Aの場合と同様に、クライアント12Bも、ログイン時に使用した「SrcPort(Y)」から「SrcPort(Y+c)」へとPort番号を変更している。cは任意の整数である。さらにクライアント12Bは、ステップS42の直後に「SrcIP(B)/SrcPort(Y+c+1)/DstIP(G)/DstPort(P+b+n)」という住所情報を含むパケットをクライアント12Aに対して直接に送信する(ステップS45)。このとき、クライアント12AのPort番号については、先にロビーサーバ15から「IP(G)」と「Port(P+b)」という情報を受けたが、「DstPort」は「p+b+n」とする。nは任意の整数であり、このnを加算した理由は後で述べる。
【0051】
なおクライアント12Bから送信される上記の2つのパケットは短時間内に順に送信を行われることから、ルータ11BでのPort番号の変換で、最初のパケットに関して「SrcPort(Y+c)」が「SrcPort(Q+d)」となった場合、2番目の「SrcPort(Y+c+1)」は「SrcPort(Q+d+1)」に変換される。なお上記のdはポートマッピングで生成された不確定な増分である。
【0052】
ロビーサーバ15は、クライアント12BからのP2P接続の可否を受信すると、送信内容を判定し(ステップS46)、ロビーサーバ15はクライアント12Aに結果を送信する(ステップS47)。この際に、「SrcPort(Y+c)」が変換された「Port(Q+d)」と、クライアント12BのグローバルIPアドレス(H)をクライアント12Aに送信する。クライアント12Aでは、ルータ11Aを介してロビーサーバ15から送信されたクライアント12Bに関する情報と結果を受信する(ステップS48)。クライアント12Aは、クライアント12Bに関する情報と結果に基づいてP2P接続が許可されたか否かを判定する(ステップS49)。この実施形態では、クライアント12BがP2P接続を許可したという前提の下で、次のステップS50に移行する。
【0053】
クライアント12Aは、ロビーサーバ15からクライアント12Bの情報と結果を受信した後、ステップS50において、直ちにクライアント12Bへの直接送信を試みる。ステップS50によりクライアント12BとのP2P開始要求を送信する。ステップS50によるP2P開始要求では、以下のごとく、設定された期間の間、クライアント12Bから送信されるパケットに含まれるPort番号を予測し、上記nに対応するn個のパケットをクライアント12Bに対して送信することによりP2P接続を行う。
【0054】
ステップS50で送信される最初のパケットに含まれる住所情報は「SrcIP(A)/SrcPort(X+a+1)/DstIP(H)/DstPort(Q+d+1)」である。「SrcIP(A)」はクライアント12aのプライベートIPアドレス、「SrcPort(X+a+1)」は使用されるPort番号、「DstIP(H)」はクライアント12Bから送られたグローバルIPアドレス、「DstPort(Q+d+1)」はクライアント12Bで用いられると予測されるPort番号である。上記パケットの住所情報はルータ11Aによって「SrcIP(G)/SrcPort(P+b+m)/DstIP(H)/DstPort(Q+d+1)」に変換される。
【0055】
ここで、クライアント12Aがロビーサーバ15へP2P接続による通信の要求を出して、その結果がクライアント12Bからロビーサーバ15を経由して戻ってくるまでに若干の時間がかかっている。この時間内に、他のクライアントやクライアント12A内の他の通信ソフトなどが新しいパケットを送信している可能性がある。つまり、ステップS37での前回の「SrcPort(X+a)」はルータ11Aにより「Port(P+b)」に変換されたが、ステップS50によって次に送信する新しいパケットがルータ11Aにより変換されるPort番号は「P+b+1」ではなく、「P+b+m」となるように変換される。
【0056】
ここで、上記の時間差に応じて増えるであろうと考えられるPort番号の増分値(m)の最大値として、前述した「n」を考えることにする。一般的にnは10以下の小さな値で十分であるが、システムによっては最適値をカスタマイズしてもよいと予測される。ステップS45に基づきクライアント12Bがクライアント12Aに送信したパケットにおいて使用された「DstPort(P+b+n)」の「n」がこの値である。
【0057】
なお簡単な証明であるが、1≦m≦nという定義によりm≦nかつ1≦mである。よって、m≦nかつ(n−m)≦(n−1)、すなわち、m≦nかつn≦(m+n−1)となる。よって、(P+b+m)≦(P+b+n)≦(P+b+m+n−1)の関係が成立する。
【0058】
以上により、図3Cのフローチャートに示されるように、クライアント12Aはクライアント12Bに対して、以下に示すn個のパケットを送信する。
【0059】

Figure 2004180003
【0060】
図3Cに示される通り、P2P開始要求の送信ステップS50では、上記のnに対応する時間範囲21においてパケット送信に関してn個の幅で送信が行われる。つまり、クライアント12Aからクライアント12Bへ送信されるn個の複数のパケット内の「SrcPort(P+b+m)」から「SrcPort(P+b+m+n−1)」の間に、ステップS45に基づきクライアント12Bからクライアント12Aに直接に送られるパケット内の「DstPort(P+b+n)」が存在することで、P2P接続が可能になる。時間範囲21で送信されるn個のパケットのうち、ステップS45によってクライアント12Bの側からクライアント12Aに対して直接に送信されてくるパケット22との間でPort番号が一致したときには、P2P接続が行われ、P2P通信を行うことができる。
【0061】
クライアント12A,12Bのそれぞれでは、判断ステップS51,S52でP2P接続が成功したか否かが判断され、NOであるときにはステップS50およびステップS45に戻って、前述したパケットの送信が繰り返される。上記のパケットの送信によるP2P接続の試みは定期的に行われる。判断ステップS51,S52でYESと判断されたときには、Port番号が一致してP2P接続が形成され、それぞれステップS53,S54によりP2P通信が開始される。
【0062】
前述した実施形態では、クライアント・サーバシステムの変形例としてP2P接続による通信を説明したが、ハードウェア構成はこれに限定されない。本発明の要旨は、プライベートアドレスを有する2つの端末装置の間でインターネットを介してP2P通信を行う目的で相互接続を容易にかつ確実に確立させるため、ポート番号の予測手法を用いて相互接続のために送信されるパケットにおける出会いを確実にすることにある。ポート番号の予測手法としては、1対1の相互接続における一方の端末装置から送信される1つのパケットに関して予め所望の大きさの整数nを設定して送信先ポート番号を定め、他方の端末装置から送信されるパケットはそれぞれ送信元ポート番号が1ずつ異なるn個のパケットとする。これによりパケットの出会いに基づく接続の可能性を高め、P2P接続の迅速性と確実性を実現している。本発明の技術的思想を逸脱しない限り、本発明の構成は任意に変更することができる。
【0063】
【発明の効果】
以上の説明で明らかなように本発明によれば、プライベートアドレスを有する2つの端末装置の間で迅速にかつ確実にP2P接続を形成し、P2P通信を行うことができる。
【図面の簡単な説明】
【図1】本発明に係る通信ネットワークシステムを概念的に示した構成図である。
【図2】ルータに接続される複数のクライアントと、アドレス情報とポート番号の変換特性を説明するブロック図である。
【図3A】本発明に係るポート番号予測アルゴリズムを利用して構成されるP2P接続の動作の一例を示すフローチャートの前部を示す図である。
【図3B】本発明に係るポート番号予測アルゴリズムを利用して構成されるP2P接続の動作の一例を示すフローチャートの中間部を示す図である。
【図3C】本発明に係るポート番号予測アルゴリズムを利用して構成されるP2P接続の動作の一例を示すフローチャートの後部を示す図である。
【図4】従来のクライアント・サーバシステムの接続法を説明する関係および処理フロー図である。
【図5】従来のクライアント・サーバシステムでルータが介在する場合の接続法を説明する関係および処理フロー図である。
【図6】従来のP2P接続での問題点を説明する関係および処理フロー図である。
【図7】従来のP2P接続での本質的問題を示した関係および処理フロー図である。
【符合の説明】
11A,11B ルータ
12A,12B クライアント
13 インターネット
14 1対1の相互接続
15 ロビーサーバ[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a communication network system that enables one-to-one interconnection (P2P connection) between different private address networks, and a communication connection method.
[0002]
[Prior art]
A description will be given of a conventional communication through an Internet connection. Referring to FIG. 4, a description will first be given of an example of a client server which is a network format currently used as a standard in the Internet. FIG. 4 is a simplified flowchart for allowing theclient 102 to communicate with theserver 103 via the Internet 101 and browse a homepage. In FIG. 4, the detailed procedure on the actual protocol is not shown.
[0003]
To communicate via the Internet 101, lower-level protocols such as TCP and UDP are used. These lower-level protocols require address information on the Internet consisting of a set of an IP address and a port number. The IP address is composed of a 32-bit (bit) integer value, and is generally represented by a decimal number in units of 8 bits, for example, "203.138.209.130". The port number is a 16-bit positive integer value.
[0004]
In FIG. 4, as an example, theclient 102 has a global IP address (a unique address in the world) of “G: for example,“ 202.216.232.210 ””, and theserver 103 has a global IP address of “W: For example, “203.138.209.130”. ”The port number of theclient 102 is arbitrary. Theserver 103 is an http server, and its port number is determined to be“ 80 ”.
[0005]
Data transmitted between theclient 102 and theserver 103 via the Internet 101 is in a format called “packet”. In this packet, in addition to the data to be transmitted, data (address information) of the source IP address (Source IP: “SrcIP” for short) and Port number (Source Port: “SrcPort” for short) The data (address information) of the previous IP address (Distination IP: “DstIP” for short) and the port number (Distination Port: “DstPort” for short) are included.
[0006]
The operation flow shown in FIG. 4 will be described. First, theclient 102 transmits apacket 104 including the sender (source) and destination (destination) “SrcIP (G) / SrcPort (X) / DstIP (W) / DstPort (80)” via the Internet 101. The data is transmitted to the server 103 (flow P501). “SrcIP (G) / SrcPort (X)” is data related to “IP address / Port number” of the sender, and “DstIP (W) / DstPort (80)” is related to “IP address / Port number” of the destination. Data. Thispacket 104 is a packet having the communication content related to the “homepage browsing request”. “SrcPort” of theclient 102 is not a fixed value but an arbitrary numerical value. The reason is that a port is opened for each task so that communication with various servers can be performed simultaneously (for example, sending and receiving e-mails at the same time and downloading images in the homepage in parallel). Change from time to time).
[0007]
When thepacket 104 from theclient 102 reaches theserver 103, theserver 103 receives the browsing request included in the packet 104 (step S601). Theserver 103 decodes the receivedpacket 104 request. Then, after that, a packet having “SrcIP (W) / SrcPort (80) / DstIP (G) / DstPort (X)” is transmitted to theclient 102 with the transmission source (sender), that is, theclient 102 as a reply destination (step). S602, flow P502). Theclient 102 receives the packet transmitted from the server 103 (step S603). Based on the above communication operation flow, theclient 102 can obtain home page data from theserver 103, while theserver 103 can transmit data to theclient 102.
[0008]
However, the Internet connection based on the system configuration as shown in FIG. 4 is very rare. In reality, as shown in FIG. 5, unlike the above-mentionedclient 102, theclient 102A is connected to the Internet 101 via adevice 105 called a “router”. One of the roles of therouter 105 is to share a global IP address among a plurality of terminal devices, and the other is to have a function of a firewall for preventing intrusion from outside. Based on the former role, a different private IP address is assigned to each of a plurality of terminal devices inside therouter 105 based on the former role.
[0009]
An operation flow in the system configuration shown in FIG. 5 will be described. Regarding the elements shown in FIG. 5, the same elements as those described in FIG. 4 are denoted by the same reference numerals. First, theclient 102A has a private IP address A (SrcIP (A)) assigned in advance only inside therouter 105, which is assigned in advance. In this example, theclient 102A transmits thepacket 104 to therouter 105 as “SrcIP (A) / SrcPort (X) / DstIP (W) / DstPort (80)” (flow P511). Therouter 105 rewrites part of thepacket 104 by converting “SrcIP (A)” into a global IP address (SrcIP (G)) that is accepted in the world of the Internet 101. This is based on a function called NAT (Network Address Translation) by therouter 105. Further, as described above, there are a plurality of terminal devices connected inside therouter 105, and there is a risk that the same port number may be used at the same time. Therefore, therouter 105 also performs “SrcPort (X)” on the “SrcPort (X)”. (P) ". This is based on a function called IP masquerading by therouter 105.
[0010]
When thepacket 104 reaches therouter 105 from theclient 102A as described above, the address information “SrcIP (A) / SrcPort (X) / DstIP (W) / DstPort (80)” included in thepacket 104 in therouter 105 is changed to “SrcIP (G ) / SrcPort (P) / DstIP (W) / DstPort (80). Thereafter, the packet is transmitted from therouter 105 to theserver 103 via the Internet 101 (flow P512). When the packet arrives at theserver 103, theserver 103 receives the packet request as described above (step S601). After that, based on the address information “SrcIP (G) / SrcPort (P) / DstIP (W) / DstPort (80)” included in the packet, theserver 103 sets the transmission source to the reply destination in the same manner as described above, and “ The packet is transmitted to therouter 105 via the Internet 101 as "SrcIP (W) / SrcPort (80) / DstIP (G) / DstPort (P)" (step S602, flow P513).
[0011]
The packet that has arrived at therouter 105 from theserver 103 is converted into “SrcIP (W) / SrcPort (80) /” by converting “DstIP” and “DstPort” while leaving “SrcIP” and “SrcPort” unchanged. DstIP (G) / DstPort (P) ”is sent to theclient 102A as“ SrcIP (W) / SrcPort (80) / DstIP (A) / DstPort (X) ”(flow P514). In this way, theclient 102A receives the homepage data sent from the server 103 (step S603). As described above, theserver 103 originally communicates with theclient 102A. However, in practice, since therouter 105 is interposed therebetween, the private IP address (A) and the port number (X) of theclient 102A are used. Replying without knowing.
[0012]
The client-server format as described above is suitable for a network service that provides fixed data in one direction to an unspecified number of users, such as disclosure of a homepage. However, the use of the Internet has not only such a form but also various uses, and a system of a new use form is being devised every day. For example, there are exchanges of characters, voices, video images, and the like called chats, and data transmission / reception (data exchange) between individuals or with a limited number of people, as in a competitive network game.
[0013]
The client-server format is not suitable for such a data exchange type service with a small number of people. Even so, the client-server format requires that the processing power of the server and the bandwidth of the server must be constantly increased as the service expands, and that all of the data must be exchanged between individuals. Data transfer is relayed to the server because it is completely wasteful. Therefore, a format that allows direct communication between client devices without using a server is appropriate. Such a network format is called P2P (Peer to Peer). In other words, by utilizing this P2P network, not only can a new Internet business not be possible with the client-server format be made possible, but also costs for building and maintaining servers can be greatly reduced. .
[0014]
Next, a description will be given of the current state and problems of the P2P connection communication. The advantages of P2P are as described above. However, it is not widely used at present. One of the reasons is that there is a disadvantage that connection is not always possible. In the following, the current P2P connection system will be described, and the difficulty of P2P connection will be described.
[0015]
As described above, connection via theInternet 101 requires data of “SrcIP / SrcPort / DstIP / DstPort” which is address information. In particular, if the address information “DstIP” and “DstPort” related to the destination are not known, transmission is impossible. When the client wants to communicate with the server, for example, it can obtain “DstIP” from a publicly available URL by using the DNS server. Since “DstPort” is defined for each service of the server (that is, is a fixed value), necessary information can be easily prepared.
[0016]
On the other hand, in the case of communication by P2P connection, since the destinations (“DstIP” and “DstPort”) are not known in the initial state, a server for matching (queuing), which is generally called a lobby server, is temporarily set. Use for
[0017]
FIG. 6 shows a simplified procedure in which theclient 102A and thenew client 106 communicate with each other via thelobby server 107 by P2P connection.
[0018]
Here, theclient 102A is in the management of therouter 105 and has a private IP address of A, theclient 106 has a global IP address of B, thelobby server 107 has a global IP address of L, and a port number of X in the same manner as described above. Suppose there is.
[0019]
First, the case where theclient 102A accesses (logs in) the lobby server 107 (step S611) is seen. Since the packet of theclient 102A passes through therouter 105, “SrcIP (A) / SrcPort (X) / DstIP (L) / DstPort (X)” is changed to “SrcIP (G) / SrcPort (P) / DstIP ( L) / DstPort (X) ”and delivered to the lobby server 107 (flow P515). Upon receiving the login request fromclient 102A (step S612),lobby server 107 stores "IP (G)" and "Port (P)" as the address information ofclient 102A in its database (step S613).
[0020]
Similarly, when theclient 106 accesses the lobby server 107 (step S614), thelobby server 107 receives the login request of the client 106 (step S615), and “IP (B)” and “Port” as the address information of theclient 106. (X) "is stored in the data service (step S616).
[0021]
Thereafter, it is assumed that theclient 102A issues a request to "communicate with theclient 106" (step S617). When the packet related to this request is transmitted to thelobby server 107 via therouter 105, and thelobby server 107 receives the packet (step S618), thelobby server 107 notifies theclient 106 of “address information of theclient 102A”. "IP (G) / Port (P)" is transmitted (step S619), and "IP (B) / Port (X)" which is the address information of theclient 106 is transmitted to theclient 102A (step S620). Thus, theclient 106 receives the address information of theclient 102A (step S621), and theclient 102A receives the address information of the client 106 (step S622). In the subsequent communication process between theclients 102A and 106, the function of thelobby server 107 becomes unnecessary (step S623).
[0022]
Since theclients 102A and 106 can obtain the address information of each other as described above, theclient 102A thereafter transmits the data "SrcIP (A) / SrcPort (X) / DstIP (B) / DstPort (X)". Theclient 106 transmits a packet including data to theclient 102A as “SrcIP (B) / SrcPort (X) / DstIP (G) / DstPort (P)” (step S624). (Step S626). If the packets transmitted by the two successfully meet on the communication line, it is possible to directly receive each (steps S625 and S627). However, communication cannot always be performed.
[0023]
As a related art related to the above-described P2P communication, a communication network system that enables one-to-one mutual communication between a management terminal using a global address and a management terminal using a private address has been proposed (for example, Patent Document 1).
[0024]
[Patent Document 1]
JP 2001-345841 A
[0025]
[Problems to be solved by the invention]
The problem of the communication system based on the P2P connection described with reference to FIG. 6 is that the packet transmitted from theclient 102A to theclient 106 has its address information “SrcIP (A) / SrcPort (X)” changed to “SrcIP ( G) / SrcPort (P) ". As long as therouter 105 is interposed, the conversion from “SrcIP (A) / SrcPort (X)” to “SrcIP (G) / SrcPort (P)” is premised, so the occurrence of the above problem in P2P communication is essential. .
[0026]
Regarding the port conversion method in theactual router 105, “SrcPort” and “DstPort” are the same, and packets with different “DstIP” are converted into the same DstPort, and “SrcPort” and “DstPort” are converted. May be converted to a different DstPort for a packet having a different DstIP.
[0027]
As the former port conversion, for example, SrcIP (A) / SrcPort (X) / DstIP (L) / DstPort (X), SrcIP (G) / SrcPort (P) / DstIP (L) / DstPort (X) ), SrcIP (A) / SrcPort (X) / DstIP (B) / DstPort (X) become SrcIP (G) /SrcPort (P) / DstIP (L) / DstPort (X).
[0028]
As the latter port conversion, for example, SrcIP (A) / SrcPort (X) / DstIP (L) / DstPort (X), SrcIP (G) / SrcPort (P) / DstIP (L) / DstPort (X) ), SrcIP (A) / SrcPort (X) / DstIP (B) / DstPort (X) become SrcIP (G) /SrcPort (Q) / DstIP (L) / DstPort (X).
[0029]
In the latter example, “SrcPort” is converted from X to Q instead of X to P. Therefore, as in P631 and P632 shown in FIG. 7, “SrcIP (G) / SrcPort (Q) / DstIP (B) / DstPort (X)” transmitted from therouter 105 to theclient 106 does not correspond to “SrcIP”. A packet “(B) / SrcPort (X) / DstIP (G) / DstPort (P)” reaches therouter 105 from theclient 106. In this case, therouter 105 cannot pass the packet to theinside client 102A. The reason is that therouter 105 performs reverse conversion of the IP address and the port number of the return packet based on the conversion of the IP address and the port number performed when transmitting the packet from the inside to the outside, and passes the packet to the inside. It is.
[0030]
Since therouter 105 actually has the above conversion function, it can contribute to preventing the intrusion of unknown packets from outside as a firewall as described above. However, from the point of view of P2P communication, the conversion function limits the communication and creates a situation where connection becomes difficult.
[0031]
An object of the present invention is to solve the above problems, and to provide a communication network system and a communication connection method that enable one-to-one interconnection, that is, P2P connection, between different private address networks. .
[0032]
Means and action for solving the problem
A communication network system and a communication connection method according to the present invention are configured as follows to achieve the above object.
[0033]
First communication network system according to the present invention (corresponding to claim 1): Between a first terminal device (client or the like) having a private address and a second terminal device (client or the like) having another different private address. It is a communication network system for one-to-one interconnection. In this system, one of the first and second terminal devices has means for predicting a destination port number, and transmitting one interconnection packet including the destination port number to the other terminal device. Means for the other terminal to make a plurality of source port numbers by estimating the above destination port number, and to make a plurality of interconnection packets including each of these source port numbers and to transmit them to the other party It is comprised so that it may have. When one of the source port numbers of the plurality of interconnection packets matches the destination port number of one interconnection packet, a one-to-one interconnection, that is, a P2P connection is established.
[0034]
A second communication network system according to the present invention (corresponding to claim 2): a first terminal device inside a first router to which a private address is assigned, and a private terminal inside a second router to which a private address is assigned. And a communication network system for one-to-one interconnection with a second terminal device. In the first stage of starting the interconnection, the global address and the port number of the first terminal transmitted from the first router based on the interconnection request by the first terminal are transmitted to the second terminal, A server that transmits the global address and the port number of the second terminal device transmitted from the second router to the first terminal device; Immediately after transmitting the global address and the port number, the second terminal device adds an arbitrary number n (integer) to the received port number value of the first terminal device and sets a destination port number. Means for transmitting a packet relating to the interconnection start request to the first router. The first terminal device has means for, when transmitting a packet relating to the interconnection start request to the second terminal device, creating and transmitting n packets each having a source port number incremented by one. When the source port number of any of the n packets converted by the first router matches the destination port number of the packet transmitted from the second terminal device, a one-to-one interconnection is established. You.
[0035]
A first communication connection method according to the present invention (corresponding to claim 3): A method of connecting one-to-one between a first terminal device having a private address and a second terminal device having another different private address. Wherein one terminal device predicts and forms a destination port number and transmits one interconnection packet including the destination port number to the other, and the other terminal device predicts the destination port number. A plurality of source port numbers, and a plurality of interconnecting packets including each of these source port numbers is created and transmitted to the other party. This is a connection method for establishing one-to-one interconnection when the destination port numbers of two interconnection packets match.
[0036]
A second communication connection method according to the present invention (corresponding to claim 4): a first terminal device inside a first router to which a private address is allocated, and a private terminal inside a second router to which a private address is assigned. This is a method of mutually connecting the allocated second terminal devices on a one-to-one basis. In the first stage of starting the interconnection, the global address and the port number of the first terminal transmitted from the first router based on the interconnection request by the first terminal are transmitted to the second terminal, The global address and the port number of the second terminal device transmitted from the second router are transmitted to the first terminal device. Immediately after transmitting the global address and the port number, the second terminal device sets a destination port number by adding an arbitrary number n to the received port number value of the first terminal device, and The packet related to the start request is transmitted to the first router. When transmitting a packet related to an interconnection start request to the second terminal device, the first terminal device creates and transmits n packets each having a source port number incremented by one. In the above, when one of the source port numbers of the n packets converted by the first router matches the destination port number of the packet transmitted from the second terminal device, one-to-one interconnection is performed. Is established.
[0037]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.
[0038]
FIG. 1 conceptually shows a configuration of a communication system based on P2P connection according to the present invention. A configuration is shown in which aclient 12A inside therouter 11A and aclient 12B inside therouter 11B perform communication via a P2P connection via theInternet 13. Theclient 12A is assigned a private IP address in therouter 11A, and theclient 12B is assigned a private IP address in therouter 11B. In the network according to this embodiment, a one-to-one interconnection 14 is made between the twoclients 12A and 12B via theInternet 13, and a communication network is formed, and communication between the clients is performed. That is, P2P connection is performed between different private address networks based on therouters 11A and 11B, and P2P communication is performed. Note that the clients (terminal devices) inside each of therouters 11A and 11B are actually not limited to theclients 12A and 12B, and a plurality of clients are connected.
[0039]
With reference to FIG. 2, a description will be given of port (Port) conversion prediction for enabling P2P connection according to the present invention. FIG. 2 schematically shows the inside of therouter 11A described above as an example. It is assumed that, for example, aclient 12A-1 and aclient 12A-2 are connected inside therouter 11A in addition to theclient 12A.
[0040]
At approximately the same time, each of theclients 12A, 12A-1, and 12A-2 browses the homepage of the external server (steps S11, S13, S14, and S15), and sends an email to the external client (step S11). S12). As described above, therouter 11A converts “SrcIP” and “SrcPort” of the sender (sender) in the address information for outgoing packets as needed, and transmits the destination to inbound packets. It has a function of converting “DstIP” and “DstPort” of (destination) as needed.
[0041]
As shown in FIG. 2, the converted port number (port number) used when the port number “SrcPort” of the sender (each client) is converted by therouter 11A is a value obtained by adding one by one over time. Can be Following the specific example shown in the figure, first, in the packet relating to step S11 of theclient 12A, “SrcPort (X1)” is converted from the address information into “SrcPort (P)” by the address information. It can be seen that in the packets according to S12 to S15, “SrcPort” is increased by one, P + 1, P + 2, P + 3,P + 4. Furthermore, it can be seen that "SrcPort" of theclient 12A becomes P + 4 after being converted to P, and does not become a continuous value. This is because theother clients 12A-1 and 12A-2 transmitted new packets during the lapse of time thereafter.
[0042]
As can be understood from the example shown in FIG. 2, when each of theclients 12A, 12A-1, and 12A-2 transmits a packet with a new combination of “SrcIP / SrcPort / DstIP / DstProt”, the port number converted by therouter 11A. Is a value that is one or more increased from the value converted last time. The same applies to the conversion of the port number in therouter 11B to which theclient 12B is connected. Therefore, for example, in order to perform a P2P connection between theclient 12A inside therouter 11A and theexternal client 12B to enable communication, the conversion of the port number in therouter 11A or therouter 11B, that is, the port conversion is predicted. And try to connect.
[0043]
Regarding the above-mentioned packet, the TCP packet includes six control flags, and a SYN (synchronizing) flag is set in a packet transmitted first when connecting. When a packet with the SYN flag set arrives from the outside, the router (firewall) may regard the packet as an intrusion from the outside and may block the packet. Therefore, a UDP packet without a control flag is used in the P2P connection. . “Packet” used in the description of the present embodiment means a UDP packet.
[0044]
Next, a P2P connection between theclients 12A and 12B using the port number prediction algorithm according to the present embodiment will be described with reference to FIGS. 3A, 3B and 3C. 3A to 3C show a series of flowcharts divided into three parts, in which the data transmission / reception relationship between theclient 12A, thelobby server 15, and theclient 12B is shown in the horizontal direction, and the time elapses in the vertical direction. 2 shows the flow of processing of each device accompanying the above.
[0045]
First, theclient 12A transmits a packet including address information “SrcIP (A) / SrcPort (X) / DstIP (L) / DstPort (Z)” (step S21), and sends thelobby server 15 via the router (firewall) 11A. Login to (step S22). The address information “SrcIP (A) / SrcPort (X) / DstIP (L) / DstPort (Z)” included in the packet is “SrcIP (G) / SrcIP (G) / SrcPort (P) / DstIP (L) / DstPort (Z) ". Thelobby server 15 determines whether or not the login request from theclient 12A is normal (Step S23). If the determination in step S23 is YES, the address information of theclient 12A is registered in the database (step S24), and if the determination is NO, rejection is transmitted to theclient 12A (step S25). After executing Step S24, thelobby server 15 transmits a login permission to theclient 12A (Step S26). The transmission in step S25 or the transmission in step S26 is received by theclient 12A via therouter 11A (step S27).
[0046]
Similarly, theclient 12B also transmits a packet including address information “SrcIP (B) / SrcPort (Y) / DstIP (L) / DstPort (Z)” to the lobby server 15 (step S28), Then, the user logs in to thelobby server 15. Thelobby server 15 receives the login request by the packet (step S29). Similarly, “SrcIP (B) / SrcPort (Y) / DstIP (L) / DstPort (Z)” included in the packet is “SrcIP (H) / SrcPort (Q) / DstIP (L) / DstPort” in therouter 11B. (Z) ". Thelobby server 15 determines whether the login request from theclient 12B is normal (Step S30). If the determination in step S30 is YES, the address information of theclient 12B is registered in the database (step S31). If the determination is NO, a rejection is transmitted to theclient 12B (step S32). After executing step S31, thelobby server 15 transmits a login permission to theclient 12A (step S33). The transmission in step S32 or the transmission in step S33 is received by theclient 12B via therouter 11B (step S34).
[0047]
Each of theclients 12A and 12B determines whether or not the login has succeeded based on the received login result (steps S35 and S36). Here, it is assumed that the login is successful.
[0048]
Under the above conditions, theclient 12A then sends a packet containing address information of “SrcIP (A) / SrcPort (X + a) / DstIP (L) / DstPort (Z)” to thelobby server 15, A request for a P2P connection with theclient 12B is transmitted (step S37). Here, the port number is changed from "SrcPort (X)" used at the time of login to "SrcPort (X + a)" and transmitted. This is important. a is an arbitrary integer, and by using this new port (Port) of X + a, therouter 11A is also converted to a new port number (P + b). b is an indeterminate increment value generated by port mapping. It is conceivable that the P2P request may have passed for a while after logging in to thelobby server 15, so that therouter 11A of theclient 12A issues the latest Port number.
[0049]
When thelobby server 15 receives the request of theclient 12A (step S38), thelobby server 15 immediately transmits the request of theclient 12A to theclient 12B (step S39). At this time, the port number “Port (P + b)” where “SrcPort (X + a)” is converted, instead of “Port (P)” where “SrcPort (X)” is converted, and the global number of theclient 12A. The IP address (G) is sent to theclient 12B.
[0050]
Upon receiving the information and the request of theclient 12A from the lobby server 15 (step S40), theclient 12B determines whether to permit the P2P connection (step S41). In determination step S41, if YES, P2P permission is transmitted to lobby server 15 (step S42), and if NO, P2P rejection is transmitted to lobby server 15 (step S43). As a result, thelobby server 15 receives the result of the request from theclient 12B (Step S44). The transmission of the data regarding whether or not the P2P request is possible from theclient 12B to thelobby server 15 is performed by a packet including address information of “SrcIP (B) / SrcPort (Y + c) / DstIP (L) / DstPort (Z)”. Similarly to the case of theclient 12A, theclient 12B also changes the port number from “SrcPort (Y)” used at the time of login to “SrcPort (Y + c)”. c is an arbitrary integer. Further, immediately after step S42, theclient 12B directly transmits a packet including address information “SrcIP (B) / SrcPort (Y + c + 1) / DstIP (G) / DstPort (P + b + n)” to theclient 12A (step S45). ). At this time, as for the port number of theclient 12A, the information “IP (G)” and “Port (P + b)” is first received from thelobby server 15, but “DstPort” is set to “p + b + n”. n is an arbitrary integer, and the reason for adding n will be described later.
[0051]
Since the above two packets transmitted from theclient 12B are sequentially transmitted within a short period of time, the port number conversion in therouter 11B causes “SrcPort (Y + c)” to change to “SrcPort (Q + d) for the first packet. )), The second “SrcPort (Y + c + 1)” is converted to “SrcPort (Q + d + 1)”. Note that d is an indeterminate increment generated by port mapping.
[0052]
When thelobby server 15 receives the permission / inhibition of the P2P connection from theclient 12B, it determines the content of the transmission (step S46), and thelobby server 15 transmits the result to theclient 12A (step S47). At this time, “Port (Q + d)” obtained by converting “SrcPort (Y + c)” and the global IP address (H) of theclient 12B are transmitted to theclient 12A. Theclient 12A receives the information and the result regarding theclient 12B transmitted from thelobby server 15 via therouter 11A (step S48). Theclient 12A determines whether the P2P connection is permitted based on the information and the result regarding theclient 12B (Step S49). In this embodiment, the process proceeds to the next step S50 on the assumption that theclient 12B has permitted the P2P connection.
[0053]
After receiving the information and the result of theclient 12B from thelobby server 15, theclient 12A immediately tries direct transmission to theclient 12B in step S50. At step S50, a P2P start request withclient 12B is transmitted. In the P2P start request in step S50, the port number included in the packet transmitted from theclient 12B is predicted for the set period as follows, and the n packets corresponding to the above n are transmitted to theclient 12B. A P2P connection is made by transmitting.
[0054]
The address information included in the first packet transmitted in step S50 is “SrcIP (A) / SrcPort (X + a + 1) / DstIP (H) / DstPort (Q + d + 1)”. “SrcIP (A)” is the private IP address of the client 12a, “SrcPort (X + a + 1)” is the port number to be used, “DstIP (H)” is the global IP address sent from theclient 12B, and “DstPort (Q + d + 1)” Is a Port number predicted to be used by theclient 12B. The address information of the packet is converted by therouter 11A into “SrcIP (G) / SrcPort (P + b + m) / DstIP (H) / DstPort (Q + d + 1)”.
[0055]
Here, it takes some time before theclient 12A issues a request for communication via the P2P connection to thelobby server 15 and the result returns from theclient 12B via thelobby server 15. During this time, there is a possibility that another client or another communication software in theclient 12A is transmitting a new packet. That is, the previous “SrcPort (X + a)” in step S37 was converted to “Port (P + b)” by therouter 11A, but the port number to which the new packet to be transmitted next in step S50 is converted by therouter 11A is “ The conversion is performed so as to be “P + b + m” instead of “P + b + 1”.
[0056]
Here, the above-mentioned “n” is considered as the maximum value of the increment value (m) of the port number, which is considered to increase according to the time difference. Generally, a small value of 10 or less is sufficient for n, but it is expected that the optimum value may be customized depending on the system. “N” of “DstPort (P + b + n)” used in the packet transmitted from theclient 12B to theclient 12A based on step S45 is this value.
[0057]
It is a simple proof that m ≦ n and 1 ≦ m according to the definition of 1 ≦ m ≦ n. Therefore, m ≦ n and (nm) ≦ (n−1), that is, m ≦ n and n ≦ (m + n−1). Therefore, a relationship of (P + b + m) ≦ (P + b + n) ≦ (P + b + m + n−1) is established.
[0058]
As described above, as shown in the flowchart of FIG. 3C, theclient 12A transmits the following n packets to theclient 12B.
[0059]
Figure 2004180003
[0060]
As shown in FIG. 3C, in the transmission step S50 of the P2P start request, packet transmission is performed with n widths in thetime range 21 corresponding to the above n. In other words, between “SrcPort (P + b + m)” and “SrcPort (P + b + m + n−1)” in the plurality of n packets transmitted from theclient 12A to theclient 12B, theclient 12B directly transmits to theclient 12A based on step S45. The presence of “DstPort (P + b + n)” in the transmitted packet enables P2P connection. When the port number matches thepacket 22 directly transmitted from theclient 12B to theclient 12A in step S45 among the n packets transmitted in thetime range 21, the P2P connection is established. Thus, P2P communication can be performed.
[0061]
In each of theclients 12A and 12B, it is determined whether or not the P2P connection has succeeded in determination steps S51 and S52. If NO, the process returns to step S50 and step S45, and the above-described packet transmission is repeated. Attempts to establish a P2P connection by transmitting the above packets are made periodically. When YES is determined in the determination steps S51 and S52, the port numbers match and a P2P connection is formed, and P2P communication is started in steps S53 and S54, respectively.
[0062]
In the embodiment described above, the communication by the P2P connection has been described as a modification of the client-server system, but the hardware configuration is not limited to this. The gist of the present invention is to establish an interconnection easily and reliably for the purpose of performing P2P communication via the Internet between two terminal devices having private addresses, and to establish an interconnection using a port number prediction method. In order to ensure encounters in transmitted packets. As a port number prediction method, a destination port number is determined by setting an integer n of a desired size in advance for one packet transmitted from one terminal device in one-to-one interconnection, and Are n packets each having a different transmission source port number. This enhances the possibility of connection based on packet encounters, and realizes quick and reliable P2P connection. The configuration of the present invention can be arbitrarily changed without departing from the technical idea of the present invention.
[0063]
【The invention's effect】
As is apparent from the above description, according to the present invention, a P2P connection can be quickly and reliably formed between two terminal devices having private addresses, and P2P communication can be performed.
[Brief description of the drawings]
FIG. 1 is a configuration diagram conceptually showing a communication network system according to the present invention.
FIG. 2 is a block diagram illustrating a plurality of clients connected to a router and conversion characteristics of address information and port numbers.
FIG. 3A is a diagram illustrating a front part of a flowchart illustrating an example of an operation of a P2P connection configured using a port number prediction algorithm according to the present invention;
FIG. 3B is a diagram showing an intermediate part of a flowchart showing an example of an operation of a P2P connection configured using a port number prediction algorithm according to the present invention.
FIG. 3C is a diagram illustrating the rear part of the flowchart illustrating an example of the operation of the P2P connection configured using the port number prediction algorithm according to the present invention.
FIG. 4 is a relationship and processing flow diagram for explaining a conventional connection method of a client-server system.
FIG. 5 is a relationship and processing flow diagram for explaining a connection method when a router is interposed in a conventional client-server system.
FIG. 6 is a relationship and processing flow diagram for explaining a problem in a conventional P2P connection.
FIG. 7 is a relationship and processing flowchart showing an essential problem in a conventional P2P connection.
[Description of sign]
11A, 11B router
12A, 12B Client
13 Internet
14 One-to-one interconnection
15 Lobby server

Claims (4)

Translated fromJapanese
プライベートアドレスを有する第1端末装置と他の異なるプライベートアドレスを有する第2端末装置との間の1対1の相互接続のための通信ネットワークシステムであり、一方の前記端末装置が送信先ポート番号を予測して作りかつこの送信先ポート番号を含む1つの相互接続用パケットを相手に送信する手段を有し、他方の前記端末装置が前記送信先ポート番号を予測して複数の送信元ポート番号を作りかつこれらの送信元ポート番号のそれぞれを含む複数の相互接続用パケットを作って相手に送信する手段を有し、前記複数の相互接続用パケットのいずれかの送信元ポート番号と前記1つの相互接続用パケットの送信先ポート番号とが一致したときに前記1対1の相互接続を確立することを特徴とする通信ネットワークシステム。A communication network system for one-to-one interconnection between a first terminal having a private address and a second terminal having another different private address, wherein one of the terminals has a destination port number. Means for predicting and transmitting one interconnection packet including the destination port number to the other party, and the other terminal device predicts the destination port number and sets a plurality of source port numbers. Means for creating and transmitting a plurality of interconnecting packets including each of these source port numbers to a partner, wherein one of the source port numbers of the plurality of interconnecting packets and the one A communication network system, wherein the one-to-one interconnection is established when a destination port number of a connection packet matches.第1ルータの内側にあってプライベートアドレスが割り振られた第1端末装置と、第2ルータの内側にあってプライベートアドレスが割り振られた第2端末装置との間の1対1の相互接続のための通信ネットワークシステムであり、
前記相互接続を開始する第1段階で、前記第1端末装置による前記相互接続の要求に基づき前記第1ルータから送信された前記第1端末装置のグローバルアドレスとポート番号を前記第2端末装置に向けて送信すると共に、前記第2ルータから送信された前記第2端末装置のグローバルアドレスとポート番号を前記第1端末装置に向けて送信するサーバを備え、
前記第2端末装置は、そのグローバルアドレスとポート番号を送信した直後に、受信した前記第1端末装置のポート番号の値に任意の数nを加えて送信先ポート番号を設定し、これを含む相互接続開始要求に係るパケットを前記第1ルータに対して送信する手段を有し、
前記第1端末装置は、前記第2端末装置に対して相互接続開始要求に係るパケットを送信する時、送信元ポート番号を1つずつ増して成るn個のパケットを作って送信する手段を有し、
前記第1ルータによって変換された前記n個のパケットのいずれかの送信元ポート番号と、前記第2端末装置から送信された前記パケットの前記送信先ポート番号が一致したときに、前記1対1の相互接続を確立することを特徴とする通信ネットワークシステム。
For a one-to-one interconnection between a first terminal inside the first router and assigned a private address and a second terminal inside the second router and assigned a private address Communication network system,
In the first stage of starting the interconnection, the global address and the port number of the first terminal transmitted from the first router based on the interconnection request by the first terminal are transmitted to the second terminal. And a server that transmits the global address and the port number of the second terminal device transmitted from the second router to the first terminal device,
Immediately after transmitting the global address and the port number, the second terminal device sets a destination port number by adding an arbitrary number n to the received value of the port number of the first terminal device, and includes Means for transmitting a packet related to an interconnection start request to the first router,
The first terminal device has means for, when transmitting a packet relating to an interconnection start request to the second terminal device, creating and transmitting n packets each having a source port number incremented by one. And
When the source port number of any of the n packets converted by the first router and the destination port number of the packet transmitted from the second terminal device match, the one-to-one A communication network system, characterized by establishing interconnections between the communication networks.
プライベートアドレスを有する第1端末装置と他の異なるプライベートアドレスを有する第2端末装置との間を1対1に接続する方法であり、一方の前記端末装置が送信先ポート番号を予測して作りかつこの送信先ポート番号を含む1つの相互接続用パケットを相手に送信し、他方の前記端末装置が前記送信先ポート番号を予測して複数の送信元ポート番号を作りかつこれらの送信元ポート番号のそれぞれを含む複数の相互接続用パケットを作って相手に送信し、前記複数の相互接続用パケットのいずれかの送信元ポート番号と前記1つの相互接続用パケットの送信先ポート番号とが一致したときに前記1対1の相互接続を確立することを特徴とする通信の接続方法。A method of connecting one-to-one connection between a first terminal device having a private address and a second terminal device having another different private address, wherein one of the terminal devices predicts and creates a destination port number; One interconnecting packet including the transmission destination port number is transmitted to the other party, and the other terminal device predicts the transmission destination port number to create a plurality of transmission source port numbers, and When a plurality of interconnection packets including each of them is created and transmitted to the other party, and a source port number of any one of the plurality of interconnection packets matches a destination port number of the one interconnection packet Establishing said one-to-one interconnection.第1ルータの内側にあってプライベートアドレスが割り振られた第1端末装置と、第2ルータの内側にあってプライベートアドレスが割り振られた第2端末装置との間を1対1で相互に接続する方法であり、
相互接続を開始する第1段階で、前記第1端末装置による前記相互接続の要求に基づき前記第1ルータから送信された前記第1端末装置のグローバルアドレスとポート番号を前記第2端末装置に向けて送信すると共に、前記第2ルータから送信された前記第2端末装置のグローバルアドレスとポート番号を前記第1端末装置に向けて送信し、
前記第2端末装置は、そのグローバルアドレスとポート番号を送信した直後に、受信した前記第1端末装置のポート番号の値に任意の数nを加えて送信先ポート番号を設定し、これを含む相互接続開始要求に係るパケットを前記第1ルータに対して送信し、
前記第1端末装置は、前記第2端末装置に対して相互接続開始要求に係るパケットを送信する時、送信元ポート番号を1つずつ増して成るn個のパケットを作って送信し、
前記第1ルータによって変換された前記n個のパケットのいずれかの送信元ポート番号と、前記第2端末装置から送信された前記パケットの前記送信先ポート番号が一致したときに、前記1対1の相互接続を確立することを特徴とする通信の接続方法。
One-to-one connection is established between a first terminal device inside the first router to which a private address is allocated and a second terminal device inside the second router to which a private address is allocated. Method
In the first stage of starting the interconnection, the global address and the port number of the first terminal transmitted from the first router based on the interconnection request by the first terminal are directed to the second terminal. And transmitting the global address and port number of the second terminal device transmitted from the second router to the first terminal device,
Immediately after transmitting the global address and the port number, the second terminal device sets a destination port number by adding an arbitrary number n to the received value of the port number of the first terminal device, and includes Transmitting a packet relating to an interconnection start request to the first router;
The first terminal device, when transmitting a packet relating to an interconnection start request to the second terminal device, creates and transmits n packets each having a source port number incremented by one;
When the source port number of any of the n packets converted by the first router and the destination port number of the packet transmitted from the second terminal device match, the one-to-one A connection method for communication, comprising establishing mutual connection of the communication.
JP2002344243A2002-11-272002-11-27Communication network system and communication connection methodPendingJP2004180003A (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
JP2002344243AJP2004180003A (en)2002-11-272002-11-27Communication network system and communication connection method

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
JP2002344243AJP2004180003A (en)2002-11-272002-11-27Communication network system and communication connection method

Publications (1)

Publication NumberPublication Date
JP2004180003Atrue JP2004180003A (en)2004-06-24

Family

ID=32705792

Family Applications (1)

Application NumberTitlePriority DateFiling Date
JP2002344243APendingJP2004180003A (en)2002-11-272002-11-27Communication network system and communication connection method

Country Status (1)

CountryLink
JP (1)JP2004180003A (en)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
WO2006049251A1 (en)*2004-11-082006-05-11Matsushita Electric Industrial Co., Ltd.Communication terminal, and communication method
WO2006077754A1 (en)*2005-01-212006-07-27Matsushita Electric Industrial Co., Ltd.Communication system, information processing device, server, information processing method, program for executing the information processing method, and recording medium containing the program
WO2007019809A1 (en)*2005-08-182007-02-22Tencent Technology (Shenzhen) Company LimitedA method and ststem for establishing a direct p2p channel
JP2007060281A (en)*2005-08-242007-03-08Matsushita Electric Ind Co Ltd IP communication apparatus and control method thereof
WO2007037025A1 (en)2005-09-292007-04-05Matsushita Electric Industrial Co., Ltd.Information processing system, tunnel communication device, tunnel communication method, and program
WO2007037028A1 (en)2005-09-292007-04-05Matsushita Electric Industrial Co., Ltd.Information processing system, tunnel communication device, tunnel communication method, proxy response device, and proxy response method
WO2008035578A1 (en)2006-09-222008-03-27Panasonic CorporationCommunication apparatus, communication method and communication system
JP2008525132A (en)*2004-12-292008-07-17▲ホア▼▲ウェイ▼技術有限公司 Mobile online game system and communication method between mobile game terminals
CN100426769C (en)*2005-01-122008-10-15腾讯科技(深圳)有限公司Method for establishing pier-to-pier direct channels
US7522618B2 (en)2005-03-182009-04-21Panasonic CorporationCommunication apparatus, communication system and communication method
US7693160B2 (en)2005-03-162010-04-06Panasonic CorporationInformation processing device, port detecting device, information processing method, port detecting method, and program
US7716368B2 (en)2003-03-282010-05-11Sony CorporationNetwork system and communication method, information processing apparatus and method, and program
JP2010244509A (en)*2008-09-222010-10-28Sony Computer Entertainment America Llc Host selection method based on discovered NAT type
JP2010541476A (en)*2007-10-052010-12-24ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー Seamless host migration based on NAT type
US7929541B2 (en)2003-10-272011-04-19Panasonic CorporationCommunication system, information processing apparatus, server, and communication method
JP2012099945A (en)*2010-10-292012-05-24Sharp CorpNetwork system, communication method, and server
US8234383B2 (en)2003-11-072012-07-31Panasonic CorporationBubble packet port identification using detection packets
US8239541B2 (en)2003-11-072012-08-07Panasonic CorporationBidirectional connection setup between endpoints behind network address translators (NATs)
WO2015093158A1 (en)*2013-12-162015-06-25ヤマハ株式会社Communication system, terminal apparatus, and server
JP2015119217A (en)*2013-12-162015-06-25ヤマハ株式会社Communication system and terminal device
JP2015142217A (en)*2014-01-282015-08-03ヤマハ株式会社communication system and server
JP5937709B1 (en)*2015-01-292016-06-22エヌ・ティ・ティ・コミュニケーションズ株式会社 COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM
JP5937708B1 (en)*2015-01-292016-06-22エヌ・ティ・ティ・コミュニケーションズ株式会社 COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM
WO2016121881A1 (en)*2015-01-292016-08-04エヌ・ティ・ティ・コミュニケーションズ株式会社Communication control device, communication control method, and communication control program
JP2019149798A (en)*2014-09-082019-09-05ワッツアップ・インコーポレイテッドWhatsapp Inc.Establishment and support of voip call

Cited By (37)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US7716368B2 (en)2003-03-282010-05-11Sony CorporationNetwork system and communication method, information processing apparatus and method, and program
US7929541B2 (en)2003-10-272011-04-19Panasonic CorporationCommunication system, information processing apparatus, server, and communication method
US8239541B2 (en)2003-11-072012-08-07Panasonic CorporationBidirectional connection setup between endpoints behind network address translators (NATs)
US8234383B2 (en)2003-11-072012-07-31Panasonic CorporationBubble packet port identification using detection packets
WO2006049251A1 (en)*2004-11-082006-05-11Matsushita Electric Industrial Co., Ltd.Communication terminal, and communication method
CN101053218B (en)*2004-11-082011-07-20松下电器产业株式会社 Communication terminal and communication method
JP4667390B2 (en)*2004-11-082011-04-13パナソニック株式会社 Communication terminal and communication method
US7558249B2 (en)2004-11-082009-07-07Panasonic CorporationCommunication terminal, and communication method
JPWO2006049251A1 (en)*2004-11-082008-05-29松下電器産業株式会社 Communication terminal and communication method
JP2008525132A (en)*2004-12-292008-07-17▲ホア▼▲ウェイ▼技術有限公司 Mobile online game system and communication method between mobile game terminals
JP4833995B2 (en)*2004-12-292011-12-07▲ホア▼▲ウェイ▼技術有限公司 Mobile online game system and communication method between mobile game terminals
US8353771B2 (en)2004-12-292013-01-15Huawei Technologies Co., Ltd.System of mobile online game and method for communicating between mobile game terminals
CN100426769C (en)*2005-01-122008-10-15腾讯科技(深圳)有限公司Method for establishing pier-to-pier direct channels
WO2006077754A1 (en)*2005-01-212006-07-27Matsushita Electric Industrial Co., Ltd.Communication system, information processing device, server, information processing method, program for executing the information processing method, and recording medium containing the program
JP2006203610A (en)*2005-01-212006-08-03Matsushita Electric Ind Co Ltd Communication system, information processing apparatus, server, and information processing method
US7693160B2 (en)2005-03-162010-04-06Panasonic CorporationInformation processing device, port detecting device, information processing method, port detecting method, and program
US7522618B2 (en)2005-03-182009-04-21Panasonic CorporationCommunication apparatus, communication system and communication method
WO2007019809A1 (en)*2005-08-182007-02-22Tencent Technology (Shenzhen) Company LimitedA method and ststem for establishing a direct p2p channel
RU2373654C1 (en)*2005-08-182009-11-20Тенсент Текнолоджи (Шеньчжэнь) Компани ЛимитедMethod for making peer-to-peer connection and system designed for it
JP2007060281A (en)*2005-08-242007-03-08Matsushita Electric Ind Co Ltd IP communication apparatus and control method thereof
WO2007037028A1 (en)2005-09-292007-04-05Matsushita Electric Industrial Co., Ltd.Information processing system, tunnel communication device, tunnel communication method, proxy response device, and proxy response method
WO2007037025A1 (en)2005-09-292007-04-05Matsushita Electric Industrial Co., Ltd.Information processing system, tunnel communication device, tunnel communication method, and program
US7929538B2 (en)2005-09-292011-04-19Panasonic CorporationInformation processing system, tunnel communication device, tunnel communication method, proxy response device, and proxy response method
WO2008035578A1 (en)2006-09-222008-03-27Panasonic CorporationCommunication apparatus, communication method and communication system
JP2010541476A (en)*2007-10-052010-12-24ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー Seamless host migration based on NAT type
TWI491229B (en)*2007-10-052015-07-01Sony Comp Entertainment UsSeamless host migration based on nat type
JP2010244509A (en)*2008-09-222010-10-28Sony Computer Entertainment America Llc Host selection method based on discovered NAT type
JP2012099945A (en)*2010-10-292012-05-24Sharp CorpNetwork system, communication method, and server
WO2015093158A1 (en)*2013-12-162015-06-25ヤマハ株式会社Communication system, terminal apparatus, and server
JP2015119217A (en)*2013-12-162015-06-25ヤマハ株式会社Communication system and terminal device
US9923866B2 (en)2013-12-162018-03-20Yamaha CorporationCommunication system, terminal apparatus and server
JP2015142217A (en)*2014-01-282015-08-03ヤマハ株式会社communication system and server
JP2019149798A (en)*2014-09-082019-09-05ワッツアップ・インコーポレイテッドWhatsapp Inc.Establishment and support of voip call
JP5937709B1 (en)*2015-01-292016-06-22エヌ・ティ・ティ・コミュニケーションズ株式会社 COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM
JP5937708B1 (en)*2015-01-292016-06-22エヌ・ティ・ティ・コミュニケーションズ株式会社 COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM
WO2016121881A1 (en)*2015-01-292016-08-04エヌ・ティ・ティ・コミュニケーションズ株式会社Communication control device, communication control method, and communication control program
US10542082B2 (en)2015-01-292020-01-21Ntt Communications CorporationCommunication control apparatus, communication control method and communication control program

Similar Documents

PublicationPublication DateTitle
JP2004180003A (en)Communication network system and communication connection method
US7609701B2 (en)Communication using private IP addresses of local networks
US8499083B2 (en)Relay device and communication system
EP1400092B1 (en)Network address translation of incoming sip connections
KR100720307B1 (en)Protocol for instant messaging
EP1545096B1 (en)Apparatus and method for providing VoIP service
EP1712044A1 (en)Tunneling service method and system
JPH09252323A (en)Communication system and communication equipment
JP2006086800A (en) Communication device for selecting source address
US7385621B2 (en)Private sharing of computer resources over an internetwork
JP2002152269A (en) Internet communication method {AmethodforanInternetCommunication}
Rayes et al.The internet in IoT—OSI, TCP/IP, IPv4, IPv6 and internet routing
US20140337478A1 (en)Peer-to-peer network communications
EP1418733B1 (en)Method for assigning a virtual network identifier to a terminal, terminal and dynamic host configuration server for implementing this method
US20080112417A1 (en)Communication Terminal, And Communication Method
GB2391421A (en)Establishing Point to Point or Point to Multiple points internet connection(s)
Rayes et al.The internet in IoT
JP2008060747A (en)Layer 2 load balancing system, layer 2 load balancer, and layer 2 load balancing method for the same
EP1033848B1 (en)Proxy server supporting IP quality of service
JP2003504898A (en) Addressing methods and name and address servers in digital networks
JP4728933B2 (en) IP telephone communication system, IP telephone communication method, and program thereof
CiscoBGP Prefix-Based Outbound Route Filtering
JP3735168B2 (en) Simple routing method
CiscoBGP Link Bandwidth
JP3864397B2 (en) User edge router, gateway router, multihoming communication system, multihoming communication method, and multihoming communication program

[8]ページ先頭

©2009-2025 Movatter.jp