JP2005117587A - Communication method - Google Patents

Communication method Download PDF

Info

Publication number
JP2005117587A
JP2005117587A JP2003352950A JP2003352950A JP2005117587A JP 2005117587 A JP2005117587 A JP 2005117587A JP 2003352950 A JP2003352950 A JP 2003352950A JP 2003352950 A JP2003352950 A JP 2003352950A JP 2005117587 A JP2005117587 A JP 2005117587A
Authority
JP
Japan
Prior art keywords
packet
network device
computer
communication
port number
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
JP2003352950A
Other languages
Japanese (ja)
Inventor
Ikuya Yamada
育矢 山田
Daisuke Sato
大介 佐藤
Yuji Sunochi
雄司 須之内
Eiji Araki
英士 荒木
Tomoyuki Konose
友之 木野瀬
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.)
NEWRONG Inc
Original Assignee
NEWRONG Inc
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 NEWRONG Inc filed Critical NEWRONG Inc
Priority to JP2003352950A priority Critical patent/JP2005117587A/en
Publication of JP2005117587A publication Critical patent/JP2005117587A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To certainly realize P2P application even in connection environment using NAT function. <P>SOLUTION: The method is provided with a 1st step for transmitting two or more echo packets 51 from a host computer 11 to a router 13 in which setting value of TTL increases one by one from one, a 2nd step for responding to one out of a plurality of echo packets, receiving an echo packet 52 returned from the router 13, and extracting the setting value of the TTL for the returned echo packet 51, and a 3rd step for transmitting a port setting packet 53 making the TTL setting value to be α by adding 1 to the extracted setting value from the host computer 11 to the router 13. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、通信方法に関し、より詳細には、NAT機能を有するネットワーク機器に接続されたコンピュータからP2P型通信を行うための通信方法に関する。   The present invention relates to a communication method, and more particularly to a communication method for performing P2P communication from a computer connected to a network device having a NAT function.

近年、インターネットに接続するホストコンピュータの増大により、IPアドレスの不足という問題が顕著化している。そこで、IPアドレスの不足を解消するための一つの方法として、NAT(Network Address Translator)機能が利用されている。NAT機能は、閉域網であるLAN内のプライベートアドレスを有するホストコンピュータと、インターネット内のグローバルアドレスを有するホストコンピュータとの間で通信を行うために、アドレス変換を行う。   In recent years, due to the increase in the number of host computers connected to the Internet, the problem of insufficient IP addresses has become prominent. Therefore, a NAT (Network Address Translator) function is used as one method for solving the shortage of IP addresses. The NAT function performs address conversion in order to perform communication between a host computer having a private address in a LAN, which is a closed network, and a host computer having a global address in the Internet.

図1に、NAT機能を説明するためのネットワーク接続図を示す。ホスト11には、プライベートアドレスAとグローバルアドレスMとが割り当てられている。ルータ13には、NAT機能が実装されており、プライベートアドレスをグローバルアドレスに変換するための変換テーブルが格納されている。ここでホスト11からインターネット内のホスト12(グローバルアドレスN)へ、ルータ13,14を介してIPパケットを送信する。ホスト11から送信されるIPパケットのヘッダには、宛先アドレス21として「N」、送信元アドレス22として「A」が書き込まれ、TCPヘッダまたはUDPヘッダには、宛先ポート番号23として「200」、送信元ポート番号24として「100」が書き込まれている。ルータ13は、変換テーブルを参照して、送信元アドレス22のプライベートアドレスAをグローバルアドレスMに変換し、ルータ14に向けてパケットを送信する。   FIG. 1 shows a network connection diagram for explaining the NAT function. A private address A and a global address M are assigned to the host 11. The router 13 has a NAT function and stores a conversion table for converting a private address to a global address. Here, the IP packet is transmitted from the host 11 to the host 12 (global address N) in the Internet via the routers 13 and 14. In the header of the IP packet transmitted from the host 11, “N” is written as the destination address 21 and “A” is written as the source address 22, and “200” as the destination port number 23 is written in the TCP header or UDP header. “100” is written as the source port number 24. The router 13 refers to the conversion table, converts the private address A of the source address 22 to the global address M, and transmits the packet to the router 14.

次に、ホスト12からホスト11へ、ルータ14,13を介してIPパケットを送信する。ホスト12から送信されるIPパケットのヘッダには、宛先アドレス31として「M」、送信元アドレス32として「N」が書き込まれ、TCPヘッダまたはUDPヘッダには、宛先ポート番号33として「100」、送信元ポート番号34として「200」が書き込まれている。ルータ13は、変換テーブルを参照して、宛先アドレス31のグローバルアドレスMをプライベートアドレスAに変換し、LAN内のホスト11に向けてパケットを送信する。   Next, an IP packet is transmitted from the host 12 to the host 11 via the routers 14 and 13. In the header of the IP packet transmitted from the host 12, "M" is written as the destination address 31, and "N" is written as the source address 32. In the TCP header or UDP header, "100" is set as the destination port number 33. “200” is written as the source port number 34. The router 13 refers to the conversion table, converts the global address M of the destination address 31 to the private address A, and transmits the packet toward the host 11 in the LAN.

一方、オンラインゲームやビデオチャットなどのP2P(peer to peer)型通信を利用したアプリケーション(以下、P2Pアプリケーションという)の利用が増えている。P2P型通信は、サーバを介さずに、端末間で直接通信をおこなう。NAT機能を利用した接続環境において、P2Pアプリケーションを利用するために、IETF(Internet Engineering Task Force)の規格であるSTUN(例えば、非特許文献1参照)技術が知られている。   On the other hand, applications using P2P (peer to peer) type communication such as online games and video chat (hereinafter referred to as P2P applications) are increasing. P2P type communication directly communicates between terminals without going through a server. In order to use a P2P application in a connection environment using the NAT function, STUN (see Non-Patent Document 1, for example) technology that is a standard of IETF (Internet Engineering Task Force) is known.

REC3489 “STUN-Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)” March 2003REC3489 “STUN-Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)” March 2003

しかしながら、STUN技術によっても端末間で通信ができない場合があるという問題があった。規格が詳細な部分まで規定されていなかったり、ルータによって実装する部分が異なるためである。具体的な例を以下に説明する。   However, there is a problem that communication between terminals may not be possible even with the STUN technology. This is because the standard is not stipulated to the details, or the parts to be implemented differ depending on the router. A specific example will be described below.

図2に、ICMPパケットによりブロックを行う場合を示す。ホスト11が、ホスト12に向け、ルータ14のポート番号「200」を宛先ポート番号としてパケット41を送信する。このとき、ルータ14が、ポート番号「200」を使用していない場合には、ICMPパケット(宛先到達不能メッセージ)42をルータ13に返送する。ルータ13は、ICMPパケット42を受信すると、送信元ポート番号「100」のポートを閉じるようになっている。従って、以後ホスト11が、ホスト12に向けてパケット43を送信しても、ルータ13はパケット43を受け付けない。   FIG. 2 shows a case where the block is performed by the ICMP packet. The host 11 sends a packet 41 to the host 12 with the port number “200” of the router 14 as the destination port number. At this time, if the router 14 does not use the port number “200”, an ICMP packet (destination unreachable message) 42 is returned to the router 13. When the router 13 receives the ICMP packet 42, the router 13 closes the port of the transmission source port number “100”. Therefore, even if the host 11 subsequently transmits the packet 43 toward the host 12, the router 13 does not accept the packet 43.

また、ルータ内に格納されている変換テーブルの内容は、通信が中断してから一定時間が経過すると、削除されてしまう。すなわち、宛先アドレス、送信元アドレス、宛先ポート番号、および送信元ポート番号の関係がクリアされてしまい、ルータ13は、同一のアドレス、同一のポート番号を設定したパケットを受け付けない。   In addition, the contents of the conversion table stored in the router are deleted when a certain time elapses after communication is interrupted. That is, the relationship between the destination address, the source address, the destination port number, and the source port number is cleared, and the router 13 does not accept packets with the same address and the same port number.

さらに、シンメトリックルータと呼ばれるルータは、宛先ポート番号、宛先アドレスが変わるごとに、自身のポート番号、すなわち送信元ポート番号を変えてしまう。従って、同一のセッションで異なる宛先ポート番号にパケットを送信すると、以後同一の送信元ポート番号を使用してパケットを送信することができない。   Further, a router called a symmetric router changes its own port number, that is, the source port number every time the destination port number and the destination address change. Therefore, if a packet is transmitted to a different destination port number in the same session, the packet cannot be transmitted thereafter using the same source port number.

本発明は、このような問題に鑑みてなされたもので、その目的とするところは、NAT機能を利用した接続環境においても、確実にP2Pアプリケーションを実現するための通信方法を提供することにある。   The present invention has been made in view of such problems, and an object of the present invention is to provide a communication method for reliably realizing a P2P application even in a connection environment using the NAT function. .

本発明は、このような目的を達成するために、請求項1に記載の発明は、NAT機能を有するネットワーク機器に接続されたコンピュータからP2P型通信を行うための通信方法において、前記コンピュータから前記ネットワーク機器へ、TTLの設定値を1から1ずつ増やした複数のエコーパケットを送信する第1ステップと、前記複数のエコーパケットのうちの1つに応答して、前記ネットワーク機器から返送されたエコーパケットを受信し、前記コンピュータが前記返送されたエコーパケットのTTLの設定値を抽出する第2ステップと、前記コンピュータから前記ネットワーク機器へ、TTLの設定値を前記抽出された設定値に1を加えた値としたポート設定パケットを送信する第3ステップとを備えたことを特徴とする。   In order to achieve such an object, the present invention provides a communication method for performing P2P type communication from a computer connected to a network device having a NAT function. A first step of transmitting a plurality of echo packets in which the TTL setting value is incremented by 1 to 1 to the network device; and an echo returned from the network device in response to one of the plurality of echo packets A second step of receiving a packet and the computer extracting a TTL setting value of the returned echo packet; and adding 1 to the extracted setting value from the computer to the network device. And a third step of transmitting a port setting packet with the determined value.

請求項2に記載の発明は、請求項1に記載の通信方法において、前記コンピュータから前記ネットワーク機器へ、TTLの設定値を前記抽出された設定値に1を加えた値としたキープアライブパケットを、通信が中断している間、一定時間間隔で送信する第4ステップをさらに備えたことを特徴とする。   According to a second aspect of the present invention, in the communication method according to the first aspect, a keep-alive packet in which a TTL setting value is added to the extracted setting value by 1 from the computer to the network device. The method further includes a fourth step of transmitting at regular intervals while communication is interrupted.

請求項3に記載の発明は、NAT機能を有するネットワーク機器に接続されたコンピュータからP2P型通信を行うための通信方法において、前記コンピュータから前記ネットワーク機器へエコーパケットを送信して、前記コンピュータから前記ネットワーク機器までのホップ数を取得する第1ステップと、前記コンピュータから前記ネットワーク機器へ、前記取得されたホップ数に1を加えた値をTTLの設定値としたキープアライブパケットを、通信が中断している間、一定時間間隔で送信する第2ステップとを備えたことを特徴とする。   According to a third aspect of the present invention, in a communication method for performing P2P communication from a computer connected to a network device having a NAT function, an echo packet is transmitted from the computer to the network device. Communication is interrupted in a first step of acquiring the number of hops to the network device, and a keep-alive packet having a value obtained by adding 1 to the acquired number of hops from the computer to the network device as a TTL setting value. And a second step of transmitting at regular time intervals.

請求項4に記載の発明は、請求項1、2または3に記載の前記パケットは、パケットの種別を示すフラグを有し、前記コンピュータおよび前記ネットワーク機器は、前記ポート設定パケットおよび前記キープアライブパケットとその他のパケットとを、前記フラグにより識別することを特徴とする。   According to a fourth aspect of the present invention, the packet according to the first, second, or third aspect includes a flag indicating a packet type, and the computer and the network device include the port setting packet and the keep alive packet. And other packets are identified by the flag.

請求項5に記載の発明は、NAT機能を有するネットワーク機器に接続されたコンピュータからP2P型通信を行うための通信方法において、前記コンピュータから前記ネットワーク機器を介してセッション管理サーバへ、異なるソケットペアの複数のパケットを送信する第1ステップと、前記セッション管理サーバが前記パケットから抽出した送信元ポート番号を含む応答パケットを、前記セッション管理サーバから受信し、前記コンピュータが前記応答パケットの前記送信元ポート番号を抽出する第2ステップと、前記コンピュータが、抽出された複数の前記送信元ポート番号から、インクリメント数を算出する第3ステップとを備えたことを特徴とする。   According to a fifth aspect of the present invention, in a communication method for performing P2P communication from a computer connected to a network device having a NAT function, different socket pairs are transmitted from the computer to a session management server via the network device. A first step of transmitting a plurality of packets; and a response packet including a transmission source port number extracted from the packet by the session management server from the session management server, wherein the computer transmits the transmission source port of the response packet A second step of extracting a number and a third step of calculating an increment number from the plurality of extracted source port numbers are provided by the computer.

請求項6に記載の発明は、請求項5に記載の通信方法において、前記コンピュータから前記ネットワーク機器を介して前記セッション管理サーバへパケットを送信し、該パケットの応答パケットから、前記ネットワーク機器のポート番号を取得する第4ステップと、前記コンピュータから前記セッション管理サーバへ、前記第4ステップで取得した前記ポート番号に前記インクリメント数を加えた値を送信元ポート番号に設定したパケットを送信し、該パケットの応答パケットから、前記P2P型通信の相手先のネットワーク機器のポート番号を取得する第5ステップと、前記インクリメント数を加えた値を送信元ポート番号として設定し、前記第5ステップで取得した前記ポート番号を宛先ポート番号として設定したパケットを送信する第6ステップとをさらに備えたことを特徴とする。   According to a sixth aspect of the present invention, in the communication method according to the fifth aspect, a packet is transmitted from the computer to the session management server via the network device, and a port of the network device is transmitted from a response packet of the packet. A fourth step of acquiring a number, and transmitting a packet in which a value obtained by adding the increment number to the port number acquired in the fourth step is set as a transmission source port number from the computer to the session management server, Fifth step of acquiring the port number of the network device of the other party of the P2P communication from the response packet of the packet, and a value obtained by adding the increment number is set as a transmission source port number, and acquired in the fifth step Send a packet with the port number set as the destination port number. Characterized in that it further includes a step.

請求項7に記載の発明は、P2P型通信を行うために、NAT機能を有するネットワーク機器に接続されたコンピュータに、請求項1ないし6のいずれかに記載の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であることを特徴とする。   According to a seventh aspect of the present invention, there is provided a program for causing a computer connected to a network device having a NAT function to execute each step according to any one of the first to sixth aspects in order to perform P2P communication. It is a recorded computer-readable recording medium.

請求項8に記載の発明は、P2P型通信を行うために、NAT機能を有するネットワーク機器に接続されたコンピュータに、請求項1ないし6のいずれかに記載の各ステップを実行させるためのプログラムであることを特徴とする。   The invention according to claim 8 is a program for causing a computer connected to a network device having a NAT function to execute each step according to any one of claims 1 to 6 in order to perform P2P communication. It is characterized by being.

以上説明したように、本発明によれば、通信の開始から終了まで、ネットワーク機器における所定のポートを常に開いておくことができるので、NAT機能を利用した接続環境においても、確実にP2Pアプリケーションを実現することが可能となる。   As described above, according to the present invention, since a predetermined port in a network device can always be opened from the start to the end of communication, a P2P application can be reliably used even in a connection environment using the NAT function. It can be realized.

以下、図面を参照しながら本発明の実施形態について詳細に説明する。上述したように、NAT機能を利用した接続環境において、P2Pアプリケーションを実現するためには、通信の開始から終了まで、ルータにおける所定のポートを常に開いておく必要がある。そこで、通信の最初にボートを開いておく方法、いったん開いたポートを維持する方法、通信中のポート番号の変更に対応する方法を順次説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. As described above, in order to realize a P2P application in a connection environment using the NAT function, it is necessary to always open a predetermined port in the router from the start to the end of communication. Therefore, a method of opening a boat at the beginning of communication, a method of maintaining a port that has been opened once, and a method corresponding to a change in port number during communication will be described in order.

図3に、本発明の第1の実施形態にかかるP2P通信方法を示す。端末間でP2P通信を行う場合には、ICMPパケットによるブロックを避けて、最初に、セッションで使用するルータのポートを開いておく必要がある。そこで、ルータ13までのホップ数を調べ、ポートを開けるためのUDPパケットを送信する。   FIG. 3 shows a P2P communication method according to the first embodiment of the present invention. When performing P2P communication between terminals, it is necessary to first open a router port to be used in a session, avoiding blocking by ICMP packets. Therefore, the number of hops to the router 13 is checked, and a UDP packet for opening a port is transmitted.

具体的には、ホスト11でICMPのエコーパケットを生成し、TTL(Time To Live)=1で送信する。順次、TTL=2.3…と増やして、複数のエコーパケットを送信する。TTLの数値がルータ13のホップ数と等しいエコーパケット51を送信すると、ルータ13よりエコーパケット52がホスト11に返送される。ホスト11は、返送されたエコーパケット52により、ルータ13までのホップ数を知ることができる。   Specifically, the host 11 generates an ICMP echo packet and transmits it with TTL (Time To Live) = 1. Sequentially increasing TTL = 2.3... And transmitting a plurality of echo packets. When an echo packet 51 having a TTL value equal to the number of hops of the router 13 is transmitted, the echo packet 52 is returned from the router 13 to the host 11. The host 11 can know the number of hops to the router 13 from the returned echo packet 52.

次に、ホスト11は、ルータ13のホップ数に1を加えた値αをTTLに設定し、送信元ポート番号「100」のポート設定パケット53を送信する。これによって、ルータ13の送信元ポート番号「100」のポートが開かれる。ポート設定パケット53は、ルータ13の次のホップで削除されるので、他の通信に影響を与えることはない。   Next, the host 11 sets a value α obtained by adding 1 to the number of hops of the router 13 to the TTL, and transmits the port setting packet 53 of the transmission source port number “100”. As a result, the port of the transmission source port number “100” of the router 13 is opened. Since the port setting packet 53 is deleted at the next hop of the router 13, it does not affect other communications.

このような構成により、ルータ13の送信元ポート番号「100」のポートを開けておくことにより、パケット54,55による端末間の通信を行うことができる。このとき、ルータ14もICMPパケットによりブロックを行う機能を有している場合には、ホスト12においても、同様の処理を行う。   With such a configuration, communication between terminals using the packets 54 and 55 can be performed by opening the port of the transmission source port number “100” of the router 13. At this time, if the router 14 also has a function of blocking by the ICMP packet, the host 12 performs the same processing.

図4に、本発明の第2の実施形態にかかるP2P通信方法を示す。同一のセッションにおいて、パケットの送受信が途絶えている間は、ルータが変換テーブルをクリアしないように、いったん開いたポートを維持しておく必要がある。そこで、パケットの送受信が途絶えている間は、キープアライブパケットを一定時間間隔で送信する。例えば、上述したICMPエコーパケットを利用して、ルータ13までのホップ数を予め調べておく。ホスト11は、ルータ13のホップ数に1を加えた値αをTTLに設定し、送信元ポート番号「100」のUDPパケット61を送信する。これによって、ルータ13に格納されている変換テーブルの内容は削除されず、以後、同一のポート番号を設定したパケットを送信することができる。   FIG. 4 shows a P2P communication method according to the second embodiment of the present invention. In the same session, while the packet transmission / reception is interrupted, it is necessary to maintain the port once opened so that the router does not clear the conversion table. Therefore, keep-alive packets are transmitted at regular time intervals while packet transmission / reception is interrupted. For example, the number of hops to the router 13 is checked in advance using the ICMP echo packet described above. The host 11 sets a value α obtained by adding 1 to the number of hops of the router 13 to the TTL, and transmits the UDP packet 61 of the transmission source port number “100”. As a result, the contents of the conversion table stored in the router 13 are not deleted, and packets with the same port number set can be transmitted thereafter.

なお、第1および第2の実施形態においては、ICMPパケットによりブロックを行う機能を有しているルータにのみ送信するようにしてもよい。ルータによっては、TTLの設定値がαの場合に、パケットを破棄してポートを閉じてしまう機能を有する場合があるからである。   In the first and second embodiments, transmission may be made only to a router having a function of blocking by an ICMP packet. This is because some routers have a function of discarding a packet and closing a port when the TTL setting value is α.

ポート設定パケットおよびキープアライブパケットが他のホストに到達した場合に、通信の混乱が起こらないようにする。例えば、図4に示したように、全てのパケットの先頭に、フラグ63,64を付加し、キープアライブパケットの場合は「1」を、通常のパケットの場合は「0」を設定する。このようにして、ホストがキープアライブパケットを受信した場合でも、これを識別して破棄することができる。   When the port setting packet and the keep alive packet reach other hosts, communication disruption is prevented. For example, as shown in FIG. 4, flags 63 and 64 are added to the head of all packets, and “1” is set for a keep-alive packet and “0” is set for a normal packet. In this way, even when the host receives a keep-alive packet, it can be identified and discarded.

図5に、本発明の第3の実施形態にかかるP2P通信方法を示す。シンメトリックルータなど通信中のポート番号の変更に対応する方法を説明する。ルータ13は、シンメトリックルータであり、宛先ポート番号、宛先アドレスが変わるごとに、自身のポート番号を2ずつインクリメントする。ルータ14も、シンメトリックルータであり、自身のポート番号を5ずつインクリメントする。このような場合に、ホスト11,12は、セッション管理サーバ15を介して、ポート番号を予測しながら通信を行う。   FIG. 5 shows a P2P communication method according to the third embodiment of the present invention. A method for dealing with a change in port number during communication such as a symmetric router will be described. The router 13 is a symmetric router and increments its own port number by 2 each time the destination port number and the destination address change. The router 14 is also a symmetric router and increments its own port number by 5. In such a case, the hosts 11 and 12 communicate via the session management server 15 while predicting the port number.

図6に、本発明の一実施形態にかかるポート番号の予測方法を示す。ホスト11,12における予測方法の処理の流れを示している。最初に、ホスト11,12は、セッション管理サーバ15からポートチェック1パケットを受信する(S102)。ポートチェック1パケットは、ホスト11,12において、ルータ13,14のポート番号のインクリメント数を調べさせるための指示パケットである。ポートチェック1パケットを受信したホスト11,12は、新しいソケットペア、すなわち宛先ポート番号、宛先アドレスの少なくともいずれかを変えたUDPパケットを、セッション管理サーバ15に送信する(S104)。   FIG. 6 shows a port number prediction method according to an embodiment of the present invention. The flow of the process of the prediction method in the hosts 11 and 12 is shown. First, the hosts 11 and 12 receive a port check 1 packet from the session management server 15 (S102). The port check 1 packet is an instruction packet for causing the hosts 11 and 12 to check the increment number of the port numbers of the routers 13 and 14. Receiving the port check 1 packet, the hosts 11 and 12 transmit a new socket pair, that is, a UDP packet in which at least one of the destination port number and the destination address is changed, to the session management server 15 (S104).

セッション管理サーバ15は、受信したUDPパケットから送信元ポート番号、すなわち変更されたルータ13,14のポート番号を抽出して、ホスト11,12に応答パケットを送信する(S106)。ホスト11,12は、さらに、新しいソケットペアでn回繰り返してUDPパケットを、セッション管理サーバ15に送信する(S108)。   The session management server 15 extracts the transmission source port number, that is, the changed port number of the routers 13 and 14 from the received UDP packet, and transmits a response packet to the hosts 11 and 12 (S106). Further, the hosts 11 and 12 repeat the n times with the new socket pair and transmit the UDP packet to the session management server 15 (S108).

ホスト11,12は、UDPパケットをn回送信した後、受信した応答パケットから、ルータ13,14のn個のポート番号を取得する。ホスト11,12は、得られたポート番号からインクリメント数を算出する(S110)。算出の方法は、例えば、取得したポート番号の差分の平均値とする。差分の最大値と最小値を除いて、平均を算出するなどの計算方法を用いることもできる。   After sending the UDP packet n times, the hosts 11 and 12 obtain n port numbers of the routers 13 and 14 from the received response packet. The hosts 11 and 12 calculate the increment number from the obtained port number (S110). The calculation method is, for example, the average value of the differences between the acquired port numbers. It is also possible to use a calculation method such as calculating an average by removing the maximum value and the minimum value of the difference.

図7に、予測されたポート番号に基づいたP2P通信方法を示す。最初に、ホスト11,12は、セッション管理サーバ15にポートチェック2パケットを送信する(S202)。ポートチェック2パケットは、ルータ13,14のポート番号を調べるための指示パケットである。ポートチェック2パケットを受信したセッション管理サーバ15は、受信したUDPパケットから送信元ポート番号を抽出して、ホスト11,12に送信する(S204)。   FIG. 7 shows a P2P communication method based on the predicted port number. First, the hosts 11 and 12 transmit a port check 2 packet to the session management server 15 (S202). The port check 2 packet is an instruction packet for checking the port numbers of the routers 13 and 14. The session management server 15 that has received the port check 2 packet extracts the transmission source port number from the received UDP packet and transmits it to the hosts 11 and 12 (S204).

ホスト11,12は、受信した送信元ポート番号に、図6に示した予測方法により取得したインクリメント数を加算して、セッション管理サーバ15にポートチェック3パケットを送信する(S206)。ポートチェック3パケットを受信したセッション管理サーバ15は、通信の相手先として各々対応するルータのポート番号を抽出して、ホスト11,12に送信する(S208)。ホスト11,12は、ステップS206で使用した送信元ポート番号と、ステップS208で受信したポート番号を宛先ポート番号として設定して、通常のパケットの送受信を行う。   The hosts 11 and 12 add the increment number acquired by the prediction method shown in FIG. 6 to the received transmission source port number, and transmit the port check 3 packet to the session management server 15 (S206). Receiving the port check 3 packet, the session management server 15 extracts the port number of the corresponding router as the communication partner and transmits it to the hosts 11 and 12 (S208). The hosts 11 and 12 set the source port number used in step S206 and the port number received in step S208 as destination port numbers, and perform normal packet transmission / reception.

この構成によれば、通信を行うホスト11,12は、セッション管理サーバ15を介して、常に正確なポート番号を予測することができるので、シンメトリックルータを介したP2Pアプリケーションを実現することができる。   According to this configuration, the hosts 11 and 12 that perform communication can always predict an accurate port number via the session management server 15, so that a P2P application via a symmetric router can be realized. .

本実施形態によれば、通信の開始から終了まで、ルータにおける所定のポートを常に開いておくために、ICMPパケットによるブロックを避けて、通信の最初にボートを開いておくことができ、いったん開いたポートを維持して、通信中のポート番号の変更にも対応することができる。   According to this embodiment, since a predetermined port in the router is always opened from the start to the end of communication, it is possible to avoid blocking by an ICMP packet and open a boat at the beginning of communication. It is also possible to maintain a new port and cope with changes in the port number during communication.

本発明は、NAT機能を利用した接続環境においても、確実にP2Pアプリケーションを実現することができるルータ、ゲートウェイなどのネットワーク機器に適用することができる。   The present invention can be applied to network devices such as routers and gateways that can reliably realize a P2P application even in a connection environment using the NAT function.

NAT機能を説明するためのネットワーク接続図である。It is a network connection diagram for demonstrating a NAT function. ICMPパケットによりブロックを行う機能を説明するためのネットワーク接続図である。It is a network connection diagram for demonstrating the function to perform a block by an ICMP packet. 本発明の第1の実施形態にかかるP2P通信方法を示すネットワーク接続図である。It is a network connection figure which shows the P2P communication method concerning the 1st Embodiment of this invention. 本発明の第2の実施形態にかかるP2P通信方法を示すネットワーク接続図である。It is a network connection figure which shows the P2P communication method concerning the 2nd Embodiment of this invention. 本発明の第3の実施形態にかかるP2P通信方法を示すネットワーク接続図である。It is a network connection figure which shows the P2P communication method concerning the 3rd Embodiment of this invention. 本発明の一実施形態にかかるポート番号の予測方法を示すフローチャートである。It is a flowchart which shows the prediction method of the port number concerning one Embodiment of this invention. 予測されたポート番号に基づいたP2P通信方法を示すフローチャートである。It is a flowchart which shows the P2P communication method based on the estimated port number.

符号の説明Explanation of symbols

11,12 ホスト
13,14 ルータ
15 セッション管理サーバ
11, 12 Host 13, 14 Router 15 Session management server

Claims (8)

NAT機能を有するネットワーク機器に接続されたコンピュータからP2P型通信を行うための通信方法において、
前記コンピュータから前記ネットワーク機器へ、TTLの設定値を1から1ずつ増やした複数のエコーパケットを送信する第1ステップと、
前記複数のエコーパケットのうちの1つに応答して、前記ネットワーク機器から返送されたエコーパケットを受信し、前記コンピュータが前記返送されたエコーパケットのTTLの設定値を抽出する第2ステップと、
前記コンピュータから前記ネットワーク機器へ、TTLの設定値を前記抽出された設定値に1を加えた値としたポート設定パケットを送信する第3ステップと
を備えたことを特徴とする通信方法。
In a communication method for performing P2P communication from a computer connected to a network device having a NAT function,
A first step of transmitting a plurality of echo packets in which a TTL setting value is increased by 1 from 1 to the network device;
A second step of receiving an echo packet returned from the network device in response to one of the plurality of echo packets, and wherein the computer extracts a TTL setting value of the returned echo packet;
And a third step of transmitting a port setting packet having a TTL setting value obtained by adding 1 to the extracted setting value to the network device from the computer.
前記コンピュータから前記ネットワーク機器へ、TTLの設定値を前記抽出された設定値に1を加えた値としたキープアライブパケットを、通信が中断している間、一定時間間隔で送信する第4ステップをさらに備えたことを特徴とする請求項1に記載の通信方法。   A fourth step of transmitting a keep-alive packet having a TTL setting value obtained by adding 1 to the extracted setting value from the computer to the network device at regular intervals while communication is interrupted; The communication method according to claim 1, further comprising: NAT機能を有するネットワーク機器に接続されたコンピュータからP2P型通信を行うための通信方法において、
前記コンピュータから前記ネットワーク機器へエコーパケットを送信して、前記コンピュータから前記ネットワーク機器までのホップ数を取得する第1ステップと、
前記コンピュータから前記ネットワーク機器へ、前記取得されたホップ数に1を加えた値をTTLの設定値としたキープアライブパケットを、通信が中断している間、一定時間間隔で送信する第2ステップと
を備えたことを特徴とする通信方法。
In a communication method for performing P2P communication from a computer connected to a network device having a NAT function,
A first step of transmitting an echo packet from the computer to the network device to obtain a hop number from the computer to the network device;
A second step of transmitting a keep-alive packet having a value obtained by adding 1 to the acquired number of hops from the computer to the network device at a predetermined time interval while communication is interrupted; A communication method comprising:
前記パケットは、パケットの種別を示すフラグを有し、前記コンピュータおよび前記ネットワーク機器は、前記ポート設定パケットおよび前記キープアライブパケットとその他のパケットとを、前記フラグにより識別することを特徴とする請求項1、2または3に記載の通信方法。   The packet includes a flag indicating a packet type, and the computer and the network device identify the port setting packet, the keep-alive packet, and other packets by the flag. The communication method according to 1, 2, or 3. NAT機能を有するネットワーク機器に接続されたコンピュータからP2P型通信を行うための通信方法において、
前記コンピュータから前記ネットワーク機器を介してセッション管理サーバへ、異なるソケットペアの複数のパケットを送信する第1ステップと、
前記セッション管理サーバが前記パケットから抽出した送信元ポート番号を含む応答パケットを、前記セッション管理サーバから受信し、前記コンピュータが前記応答パケットの前記送信元ポート番号を抽出する第2ステップと、
前記コンピュータが、抽出された複数の前記送信元ポート番号から、インクリメント数を算出する第3ステップと
を備えたことを特徴とする通信方法。
In a communication method for performing P2P communication from a computer connected to a network device having a NAT function,
A first step of transmitting a plurality of packets of different socket pairs from the computer to the session management server via the network device;
A second step in which the session management server receives a response packet including the source port number extracted from the packet from the session management server, and the computer extracts the source port number of the response packet;
And a third step of calculating an increment number from the plurality of extracted source port numbers.
前記コンピュータから前記ネットワーク機器を介して前記セッション管理サーバへパケットを送信し、該パケットの応答パケットから、前記ネットワーク機器のポート番号を取得する第4ステップと、
前記コンピュータから前記セッション管理サーバへ、前記第4ステップで取得した前記ポート番号に前記インクリメント数を加えた値を送信元ポート番号に設定したパケットを送信し、該パケットの応答パケットから、前記P2P型通信の相手先のネットワーク機器のポート番号を取得する第5ステップと、
前記インクリメント数を加えた値を送信元ポート番号として設定し、前記第5ステップで取得した前記ポート番号を宛先ポート番号として設定したパケットを送信する第6ステップと
をさらに備えたことを特徴とする請求項5に記載の通信方法。
A fourth step of transmitting a packet from the computer to the session management server via the network device, and obtaining a port number of the network device from a response packet of the packet;
A packet in which a value obtained by adding the increment number to the port number acquired in the fourth step is set as a transmission source port number is transmitted from the computer to the session management server. From the response packet of the packet, the P2P type A fifth step of acquiring a port number of a network device of a communication partner;
And a sixth step of transmitting a packet in which the value obtained by adding the increment number is set as a transmission source port number and the port number acquired in the fifth step is set as a destination port number. The communication method according to claim 5.
P2P型通信を行うために、NAT機能を有するネットワーク機器に接続されたコンピュータに、請求項1ないし6のいずれかに記載の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium storing a program for causing a computer connected to a network device having a NAT function to execute each step according to any one of claims 1 to 6 in order to perform P2P communication. P2P型通信を行うために、NAT機能を有するネットワーク機器に接続されたコンピュータに、請求項1ないし6のいずれかに記載の各ステップを実行させるためのプログラム。
A program for causing a computer connected to a network device having a NAT function to execute each step according to any one of claims 1 to 6 in order to perform P2P type communication.
JP2003352950A 2003-10-10 2003-10-10 Communication method Pending JP2005117587A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003352950A JP2005117587A (en) 2003-10-10 2003-10-10 Communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003352950A JP2005117587A (en) 2003-10-10 2003-10-10 Communication method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007038605A Division JP2007208999A (en) 2007-02-19 2007-02-19 Communication method

Publications (1)

Publication Number Publication Date
JP2005117587A true JP2005117587A (en) 2005-04-28

Family

ID=34543674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003352950A Pending JP2005117587A (en) 2003-10-10 2003-10-10 Communication method

Country Status (1)

Country Link
JP (1) JP2005117587A (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006003874A1 (en) * 2004-06-30 2006-01-12 Matsushita Electric Industrial Co., Ltd. Communication device, communication setting method, communication setting program, and recording medium containing the communication setting program
WO2006098045A1 (en) * 2005-03-16 2006-09-21 Matsushita Electric Industrial Co., Ltd. Information processing device, port detection device, information processing method, and port detection method
JP2007528677A (en) * 2004-03-09 2007-10-11 クリーク コミュニケーションズ エルエルシー System and method for peer-to-peer connection of clients behind a symmetric firewall
JP2007274535A (en) * 2006-03-31 2007-10-18 Fujitsu Ltd Loop specifying apparatus and loop specifying method in layer 3 network
US7542466B2 (en) 2003-11-14 2009-06-02 Sony Corporation System and method of information communication, information processing apparatus and information processing method, program and recording medium
JP2010521883A (en) * 2007-03-12 2010-06-24 マイクロソフト コーポレーション NAT connection status keep alive cost reduction
US8144704B2 (en) 2007-03-20 2012-03-27 Panasonic Corporation IP communication apparatus and IP communication method of such apparatus
JP2015119217A (en) * 2013-12-16 2015-06-25 ヤマハ株式会社 Communication system and terminal device
WO2015093158A1 (en) * 2013-12-16 2015-06-25 ヤマハ株式会社 Communication system, terminal apparatus, and server
JP2015142217A (en) * 2014-01-28 2015-08-03 ヤマハ株式会社 communication system and server
CN104821909A (en) * 2015-04-22 2015-08-05 北京云艾科技有限公司 Peer-to-peer data transmission method and system
JP2021516488A (en) * 2018-02-28 2021-07-01 テレフオンアクチーボラゲット エルエム エリクソン(パブル) How to determine passive round trip time (RTT) delay in a communication system

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7542466B2 (en) 2003-11-14 2009-06-02 Sony Corporation System and method of information communication, information processing apparatus and information processing method, program and recording medium
JP2007528677A (en) * 2004-03-09 2007-10-11 クリーク コミュニケーションズ エルエルシー System and method for peer-to-peer connection of clients behind a symmetric firewall
WO2006003874A1 (en) * 2004-06-30 2006-01-12 Matsushita Electric Industrial Co., Ltd. Communication device, communication setting method, communication setting program, and recording medium containing the communication setting program
WO2006098045A1 (en) * 2005-03-16 2006-09-21 Matsushita Electric Industrial Co., Ltd. Information processing device, port detection device, information processing method, and port detection method
US7693160B2 (en) 2005-03-16 2010-04-06 Panasonic Corporation Information processing device, port detecting device, information processing method, port detecting method, and program
JP2007274535A (en) * 2006-03-31 2007-10-18 Fujitsu Ltd Loop specifying apparatus and loop specifying method in layer 3 network
JP2010521883A (en) * 2007-03-12 2010-06-24 マイクロソフト コーポレーション NAT connection status keep alive cost reduction
JP4800424B2 (en) * 2007-03-12 2011-10-26 マイクロソフト コーポレーション NAT connection status keep alive cost reduction
US8144704B2 (en) 2007-03-20 2012-03-27 Panasonic Corporation IP communication apparatus and IP communication method of such apparatus
JP2015119217A (en) * 2013-12-16 2015-06-25 ヤマハ株式会社 Communication system and terminal device
WO2015093158A1 (en) * 2013-12-16 2015-06-25 ヤマハ株式会社 Communication system, terminal apparatus, and server
US9923866B2 (en) 2013-12-16 2018-03-20 Yamaha Corporation Communication system, terminal apparatus and server
JP2015142217A (en) * 2014-01-28 2015-08-03 ヤマハ株式会社 communication system and server
CN104821909A (en) * 2015-04-22 2015-08-05 北京云艾科技有限公司 Peer-to-peer data transmission method and system
CN104821909B (en) * 2015-04-22 2018-02-06 北京云艾科技有限公司 End-to-end data transmission method and system
JP2021516488A (en) * 2018-02-28 2021-07-01 テレフオンアクチーボラゲット エルエム エリクソン(パブル) How to determine passive round trip time (RTT) delay in a communication system
JP7054737B2 (en) 2018-02-28 2022-04-14 テレフオンアクチーボラゲット エルエム エリクソン(パブル) How to determine passive round-trip time (RTT) delay in a communication system
US11943147B2 (en) 2018-02-28 2024-03-26 Telefonaktiebolaget Lm Ericsson (Publ) Method of determining passive round trip time, RTT, delay in a telecommunications system

Similar Documents

Publication Publication Date Title
Rosenberg Interactive connectivity establishment (ICE): A protocol for network address translator (NAT) traversal for offer/answer protocols
US8224985B2 (en) Peer-to-peer communication traversing symmetric network address translators
EP2230822B1 (en) Establishing a connection traversing a network address translation gateway
US8185660B2 (en) Inter-working between network address type (ANAT) endpoints and interactive connectivity establishment (ICE) endpoints
KR101139675B1 (en) Traversal of symmetric network address translator for multiple simultaneous connections
US8194566B2 (en) Information processing device, and bubble packet transmission method and program
US20040153858A1 (en) Direct peer-to-peer transmission protocol between two virtual networks
US20130308628A1 (en) Nat traversal for voip
EP2890092A1 (en) Cooperative nat behavior discovery
US9049122B2 (en) Bandwidth probing messages
JP2008306726A (en) Determining connectivity between endpoints in network
JP2005117587A (en) Communication method
JP4712481B2 (en) Communication method and apparatus
JP3999785B2 (en) Communication method
JP2008147738A (en) Communication method, communication system, apparatus and terminal
JP2007208999A (en) Communication method
JP2014131261A (en) Communication system and communication method
Phuoc et al. NAT traversal techniques in peer-to-peer networks
JP4602247B2 (en) Communication method
JP4722615B2 (en) Communication method and communication apparatus
CN108337331B (en) Network penetration method, device and system and network connectivity checking method
KR100899440B1 (en) Method for providing VoIP service in private network and terminal unit thereof
KR100932570B1 (en) Method for maintaining large session information between application server and client in NAT equipment without burdening server and server side network
Duarte Jr et al. Transparent communications for applications behind NAT/firewall over any transport protocol
Daigle et al. NAT traversal in peer-to-peer architecture

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20060123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061219

A521 Written amendment

Effective date: 20070219

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070316