WO2005041500A1 - 通信システム、情報処理装置、サーバ、および通信方法 - Google Patents

通信システム、情報処理装置、サーバ、および通信方法 Download PDF

Info

Publication number
WO2005041500A1
WO2005041500A1 PCT/JP2004/015721 JP2004015721W WO2005041500A1 WO 2005041500 A1 WO2005041500 A1 WO 2005041500A1 JP 2004015721 W JP2004015721 W JP 2004015721W WO 2005041500 A1 WO2005041500 A1 WO 2005041500A1
Authority
WO
WIPO (PCT)
Prior art keywords
port
packet
information processing
range
communication control
Prior art date
Application number
PCT/JP2004/015721
Other languages
English (en)
French (fr)
Inventor
Kunio Gobara
Hajime Maekawa
Original Assignee
Matsushita Electric Industrial Co., Ltd.
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 Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to EP04792863.5A priority Critical patent/EP1681811B1/en
Priority to US10/576,065 priority patent/US7623513B2/en
Priority to JP2005514980A priority patent/JP3933182B2/ja
Publication of WO2005041500A1 publication Critical patent/WO2005041500A1/ja
Priority to US12/574,774 priority patent/US7929541B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal

Definitions

  • the present invention relates to a communication system or the like for establishing communication between a plurality of information processing devices.
  • NAT Network Address Translation
  • the transmission port assignment rule does not depend on the destination (IP address and port) of the packet. If the port and IP address of the information processing device on the local side (for example, LAN side) of the NAT are the same, the NAT The Cone type, which has the same port on the global side (for example, the WAN side of the Internet) that is assigned, the Address Sensitive type, which assigns a new port for each packet destination address, and the new Cone type, which assigns a new port for each packet destination port There is a Port Sensitive type to which ports are assigned.
  • the local side of NAT The reception filter rule that determines the acceptability of a packet from the global side to the port to which the packet was sent includes a packet that is received only from the address that sent the packet from that port. There is a Sensitive filter, a Port Sensitive filter that receives packets only from the port that sent packets from that port, and a No filter that has no filter.
  • Full Cone NAT A transmission port assignment rule of the Cone type and a reception port filter rule of the No filter.
  • Restricted Cone NAT The outgoing port assignment rule is Cone type and the incoming port filter rule is Address Sensitive filter.
  • Port Sensitive Symmetric NAT An outgoing port allocation rule of the port sensitive type and a receiving port filter rule of the port sensitive filter.
  • Non-Patent Document 2 Ietf.org/internet-dra ftsZdraft—takeda—symmetric—nat—traversal—00 txt>
  • Non-Patent Document 3 Ietf.org/internet-dra ftsZdraft—takeda—symmetric—nat—traversal—00 txt>
  • FIG. 40 when communication is performed from PC1, which is an information processing device connected to the local side of NAT1, to PC2, NAT1 is referred to as NAT on the transmitting side, and NAT2 is referred to as NAT on the receiving side. Then, the combination of NATs that can establish communication between PC1 and PC2 is as shown in FIG.
  • the abbreviations of NAT in FIG. 41 are as described in the following embodiment.
  • connection of “* 1” in FIG. 41 is conventionally known, and the connection of “* 2” is described in Non-Patent Document 1 above, and the connection of “* 3” Is described in Non-Patent Document 2 above. Yes. Also, even with a combination of NATs that can establish communication, in the connection of “* 3”, the port width of the NAT can be reliably understood, and the position of the latest port of the NAT on the receiving side can be reliably determined. Unless you know, communication cannot be established, and uncertainty remains.
  • a NAT port that has passed a bubble packet (a packet transmitted to leave a transmission history in the NAT) transmitted from one information processing device is assumed. Range detected! / ,.
  • One object of the present invention is to provide a communication system and the like that can more reliably establish communication between a plurality of information processing devices that perform communication via a communication control device that controls communication. It is.
  • Another object of the present invention is to provide a communication system or the like that can detect a range of ports in a communication control device through which a transmitted bubble packet has passed through an information processing device.
  • a communication system comprises a first information processing device, a second information processing device, and a first communication control for controlling communication between the first information processing device.
  • a communication comprising: a device; a second communication control device that controls communication between the second information processing device; and a server that establishes communication between the first information processing device and the second information processing device.
  • the first information processing device sends a bubble packet for leaving a transmission history in the first communication control device to the second communication control device via the first communication control device.
  • the second information processing device transmits a bubble packet transmitting unit, which transmits a bubble packet, and a bubble packet transmission port, which is a port of the first communication control device, used for transmitting the bubble packet.
  • Sent via control unit A reply packet receiving unit that receives a reply packet, wherein the second information processing device includes a reply packet transmitting unit that transmits the reply packet to one or more ports including at least the bubble packet transmitting port. It is provided.
  • the first information processing device is transmitted by transmitting a reply packet to the port of the first communication control device assigned by transmitting the bubble packet. It may be possible to establish communication between the information processing apparatus and the second information processing apparatus.
  • the first information processing device includes a first communication control device that controls communication of the first information processing device, and a second communication control that controls communication of the second information processing device.
  • the first information processing device communicating with the second information processing device via a control device, and transmitting a transmission history to the first communication control device via the first communication control device.
  • a bubble packet transmitting unit that transmits a bubble packet to be retained to the second communication control device;
  • a reply packet receiving unit that receives a reply packet transmitted from the second information processing device via the second communication control device.
  • a bubble packet transmission port used for establishing communication with the second information processing device is assigned to the first communication control device by transmitting a bubble packet.
  • the reply packet transmitted to the bubble packet transmission port communication between the first information processing device and the second information processing device can be established.
  • the first information processing device and the second information processing device may include a first communication control device that controls communication of the first information processing device, and a second information processing device.
  • a server that establishes communication via a second communication control device that controls communication of the first information processing device, wherein the first information processing device and the second information processing device are communicated with each other.
  • An information transmitting / receiving unit for transmitting / receiving, a characteristic determining unit for determining characteristics of the first communication control device and the second communication control device, and the first information processing unit according to a determination result by the characteristic determining unit
  • a transmission / reception determination unit that determines one of the second information processing apparatuses as a transmission side (transmission side information processing apparatus) and the other as a reception side (reception side information processing apparatus). Things.
  • the first information processing device and the second information processing device may include a first communication control device that controls communication of the first information processing device, and a second communication control device that controls communication of the first information processing device.
  • a server that establishes communication via a second communication control device that controls communication of the second information processing device, wherein the first information processing device transmits the second communication control device to the second communication control device.
  • Range detection for detecting a range of a port including a bubble packet transmission port, which is a port of the first communication control device, used for transmitting a bubble packet for leaving a transmission history in the first communication control device. For detecting a port position of the first communication control device through which the range detection packet has passed, and a detection port indicating the position of the port detected by the detection port detection unit.
  • port A detecting port data transmitter for transmitting broadcast before Symbol first information processing apparatus, those equipped with.
  • the first information processing device can transmit detection port information used for detecting a port range including the bubble packet transmission port to the first information processing device. it can.
  • the first information processing device and the second information processing device may include a first communication control device that controls communication of the first information processing device, and A server that establishes communication via a second communication control device that controls communication of the first information processing device, wherein the first information processing device leaves a transmission history in the first communication control device.
  • Packet information indicating a position of a bubble packet transmission target port which is a port in the second communication control device to which a bubble packet to be transmitted, is transmitted to the first information processing device. It has a packet transmission target port transmission unit.
  • the position of the target port for transmitting a bubble packet can be notified to the first information processing apparatus by using the port information for transmitting a bubble packet.
  • a communication system is a communication system including an information processing device, a communication control device that controls communication of the information processing device, and a server.
  • a bubble packet transmitting unit for transmitting one or more bubble packets for leaving a transmission history in the communication control device via the control device; and a port of the communication control device used for transmitting one or more of the bubble packets.
  • There is one or more bubble bucket A range detection packet transmitting unit that transmits a range detection packet used to detect a range of ports including a port transmission port to the server, wherein the server receives the range detection packet, and A range detection unit that detects a range of ports including one or more of the bubble packet transmission ports based on the detection packet.
  • the range of the port including the bubble packet transmission port can be detected in the server by the range detection packet transmitted from the information processing device.
  • the packet can be accepted by the information processing device.
  • a communication system is a communication system including an information processing device, a communication control device that controls communication of the information processing device, and a server, wherein the information processing device includes the communication device.
  • a bubble packet transmitting unit for transmitting one or more bubble packets for leaving a transmission history in the communication control device via the control device; and a port of the communication control device used for transmitting one or more of the bubble packets.
  • a range detection packet transmitting unit that transmits a range detection packet used to detect a range of a port including one or more bubble bucket transmission ports to the server, and the communication through which the range detection packet passes
  • a detection port information receiving unit that receives detection port information indicating a port position of the control device; and a detection port information reception unit that receives the detection port information reception unit.
  • a range detection unit that detects a range of a port including one or more of the bubble packet transmission ports based on the port information.
  • the server receives the range detection packet, and receives the range detection packet.
  • a port detection unit for detecting a position of a port of the communication control device through which the communication has passed, and a detection port for transmitting detection port information indicating the position of the port detected by the detection port detection unit to the information processing device. And a communication port information transmission unit.
  • the range of the port including the bubble packet transmission port can be detected in the information processing device by the range detection packet transmitted by the information processing device.
  • Other devices within the port range including the detected bubble packet transmission port By transmitting a packet, the packet can be accepted by the information processing device.
  • FIG. 1 is a block diagram showing a configuration of a communication system according to a first embodiment of the present invention.
  • FIG. 2 is a block diagram showing a configuration of a first information processing apparatus according to the embodiment.
  • FIG. 3 is a block diagram showing a configuration of a second information processing apparatus according to the embodiment.
  • FIG. 4 is a block diagram showing a configuration of first and second servers according to the embodiment.
  • FIG. 5 is a flowchart showing an operation of the communication system according to the embodiment.
  • FIG. 6 is a flowchart showing processing related to transmission / reception determination in the embodiment.
  • FIG. 7 is a diagram for describing determination of characteristics of the communication control device according to the embodiment.
  • FIG. 8 is a diagram for explaining determination of characteristics of the communication control device according to the embodiment.
  • FIG. 9 is a diagram for explaining determination of characteristics of the communication control device according to the embodiment.
  • FIG. 10 is a flowchart showing a process related to the establishment of communication in the embodiment.
  • FIG. 11 is a diagram for describing detection of a port width in the embodiment.
  • FIG. 12 is a diagram for describing a specific example in the embodiment.
  • FIG. 13 is a view for explaining a specific example in the embodiment.
  • FIG. 14 is a view for explaining a specific example in the embodiment.
  • FIG. 15 is a diagram for describing a specific example according to the embodiment.
  • FIG. 16 is a diagram for describing a specific example in the same embodiment.
  • FIG. 17 is a diagram showing combinations of characteristics of connectable communication control devices according to the embodiment.
  • FIG. 18 is a block diagram showing a configuration of a first information processing apparatus according to Embodiment 2 of the present invention.
  • FIG. 19 is a block diagram showing a configuration of a second information processing apparatus according to the embodiment.
  • FIG. 20 is a block diagram showing a configuration of first and second servers according to the embodiment.
  • FIG. 21 is a flowchart showing a process related to the establishment of communication in the embodiment.
  • FIG. 22 is a flowchart showing a process related to the establishment of communication in the embodiment.
  • FIG. 23 is a flowchart showing a process related to the establishment of communication in the embodiment.
  • FIG. 24 is a block diagram showing a configuration of a communication system according to a third embodiment of the present invention.
  • FIG. 25 is a block diagram showing a configuration of a communication system according to Embodiment 4 of the present invention.
  • FIG. 26 is a block diagram showing a configuration of a first information processing apparatus according to the embodiment.
  • FIG. 27 is a block diagram showing a configuration of a second information processing apparatus according to the embodiment.
  • FIG. 28 is a block diagram showing a configuration of a server according to the embodiment.
  • FIG. 29 is a flowchart showing processing related to transmission / reception determination in the embodiment.
  • FIG. 30 is a diagram for describing determination of characteristics of the communication control device according to the embodiment.
  • FIG. 31 is a flowchart showing a process related to establishing communication in the embodiment.
  • FIG. 32 is a flowchart showing a process related to the establishment of communication in the embodiment.
  • FIG. 33 is a flowchart showing processing related to the establishment of communication in the embodiment.
  • FIG. 34 is a diagram for describing a specific example in the same embodiment.
  • FIG. 35 is a diagram for describing a specific example in the same embodiment.
  • FIG. 36 is a diagram for describing a specific example in the same embodiment.
  • FIG. 37 is a diagram for describing a specific example in the same embodiment.
  • FIG. 38 is a diagram for describing a specific example in the same embodiment.
  • FIG. 39 is a diagram showing combinations of characteristics of connectable communication control devices according to the embodiment.
  • FIG. 40 is a diagram illustrating an example of a communication system.
  • FIG. 41 is a diagram showing a conventional combination of connectable NATs.
  • FIG. 1 is a block diagram showing a configuration of a communication system according to the present embodiment.
  • a communication system according to the present embodiment includes a first information processing device 1, a second information processing device 2, a first communication control device 3, and a second communication control device 4. And a first server 6 and a second server 7.
  • the first communication control device 3, the second communication control device 4, the first server 6, and the second server 7 are connected via a wired or wireless communication line 5.
  • the communication line 5 is, for example, the Internet.
  • first information processing device 1 and the second information processing device 2 are connected to the first communication control device 3 and the second communication control device 4, respectively. Although the case is shown, other devices may be connected to the first communication control device 3 and the second communication control device 4.
  • FIG. 2 is a block diagram showing a configuration of the first information processing apparatus 1.
  • a first information processing apparatus 1 includes a communication unit 11, a bubble packet transmission unit 12, a range detection packet Transmission unit 13, reply packet reception unit 14, port detection packet transmission unit 15, bubble packet transmission target port reception unit 16, range reception unit 17, port width reception unit 18, reply packet transmission unit 19
  • a communication unit 11 includes a communication unit 11, a bubble packet transmission unit 12, a range detection packet Transmission unit 13, reply packet reception unit 14, port detection packet transmission unit 15, bubble packet transmission target port reception unit 16, range reception unit 17, port width reception unit 18, reply packet transmission unit 19
  • a communication unit 11 includes a communication unit 11, a bubble packet transmission unit 12, a range detection packet Transmission unit 13, reply packet reception unit 14, port detection packet transmission unit 15, bubble packet transmission target port reception unit 16, range reception unit 17, port width reception unit 18, reply packet transmission unit 19
  • a communication unit 11 includes a communication unit 11, a bubble packet transmission unit 12, a range detection packet Transmission unit 13, reply packet reception unit 14, port detection packet transmission unit 15, bubble packet transmission target port reception unit 16, range reception unit
  • the communication unit 11 performs communication between each component inside the first information processing device 1 such as the bubble packet transmission unit 12 and the first communication control device 3.
  • the bubble packet transmitting unit 12 transmits a public packet to the second communication control device 4 via the communication unit 11 and the first communication control device 3.
  • a bubble packet is a packet for leaving a transmission history in the first communication control device 3 in order to establish communication between the first information processing device 1 and the second information processing device 2.
  • Establishing communication means starting peer-to-peer communication between the first information processing device 1 and the second information processing device 2 without using a server.
  • Retaining the transmission history means that the first communication control device 3 allocates a port (opens a port) for receiving a reply packet described later.
  • a bubble packet is transmitted for the purpose of retaining the transmission history.
  • the transmission history for accepting a reply packet is stored in the first communication control device 3.
  • a predetermined packet that has left its transmission history is called a bubble packet.
  • This bubble packet may contain any information, or may not contain any information.
  • This bubble packet is transmitted by a connectionless protocol such as UDP (User Datagram Protocol).
  • Range detection packet transmitting section 13 transmits the range detection packet to first server 6 or second server 7.
  • This range detection packet is used to detect the range of the port including the bubble packet transmission port.
  • the bubble packet transmission port is a port of the first communication control device 3 used for transmitting a bubble packet.
  • This range detection packet is transmitted before the bubble packet is transmitted and after the Z or bubble packet is transmitted.
  • the range detection packet may be transmitted to different addresses (IP addresses) before and after the transmission.
  • This range detection bucket is transmitted by, for example, UDP or Transmission Control Protocol (TCP). It is.
  • This range detection packet may contain any information or may not contain any information.
  • the reply packet receiving unit 14 receives a reply packet transmitted from the second information processing device 2 via the second communication control device 4. This reply packet has been transmitted to the port assigned by transmitting the bubble packet in the first communication control device 3, ie, the bubble bucket transmission port. By accepting this reply packet, communication between the first information processing device 1 and the second information processing device 2 is established.
  • This reply packet is transmitted by, for example, UDP.
  • This reply packet may or may not contain any information, and may or may not contain any information.
  • the port number detection packet transmitting unit 15 transmits a port number detection packet for detecting the port number in the first communication control device 3 to the first server via the first communication control device 3.
  • the port width is the width (interval) of ports used (allocated) continuously. For example, when the port width is “1”, the port used next to the port with the port number “20000” is the port with the port number “20001”. On the other hand, when the port width is “2”, the port used after the port with the port number “20000” is the port with the port number “20002”.
  • the port number detection packet is transmitted by, for example, UDP or TCP. This port number detection packet may contain any information or may not contain any information.
  • Bubble packet transmission target port receiving unit 16 receives bubble packet transmission target port information.
  • the bubble packet transmission target port information is information indicating a position of a bubble packet transmission target port which is a target port for transmitting a bubble packet in the second communication control device 4.
  • the first information processing apparatus 1 can know the position of the bubble packet transmission target port.
  • the bubble packet transmission target port for example, there is a port where the second information processing device 2 transmits and receives information to and from the first server 6.
  • the information processing apparatus on the transmission side is a side that transmits a bubble packet when establishing communication between the first information processing apparatus 1 and the second information processing apparatus 2.
  • the side that transmits a bubble packet and the side that issues a request for communication (connection) are the same, so It is also the side that issues a request for communication.
  • the information processing device on the opposite side that is, the information processing device that transmits a reply packet to a bubble packet, is referred to as a receiving information processing device.
  • the side transmitting the return packet and the side receiving the communication request are the same, so the receiving side Is also the recipient.
  • Each unit from the range receiving unit 17 to the reply packet transmitting unit 19 described below is used when the first information processing device 1 operates as an information processing device on the receiving side.
  • Range receiving unit 17 receives range information.
  • the range information is information indicating the range of ports through which the reply packet transmitting unit 19 transmits a reply packet to the second communication control device 4.
  • the range of the port including the bubble packet transmission port in the second communication control device 4 (the port used for transmitting the bubble packet from the second information processing device 2 to the first communication control device 3) is indicated. , For example, by a port number.
  • the port range may be indicated by indicating only the upper limit of the port or only the lower limit of the port, or the range of the port may be indicated by the upper and lower limits of the port.
  • the upper limit of the port indicates the port with the larger port number
  • the lower limit of the port indicates the port with the smaller port number.
  • the port width receiving unit 18 receives port width information, which is information indicating a port width in the second communication control device 4.
  • the reply packet transmitting unit 19 transmits a reply packet to one or more ports including at least a bubble packet transmission port in the second communication control device 4. At this time, the reply packet is transmitted to the port including the bubble packet transmission port in the second communication control device 4 by transmitting the reply packet to the port in the range indicated by the range information received by the range receiving unit 17. can do.
  • the reply packet is transmitted for each port width indicated by the port width information. As a result, when the port width indicated by the port width information is 2 or more, a reply packet can be transmitted efficiently.
  • the reply packet may be transmitted from, for example, a port where the first information processing device 1 communicates with the first server 6.
  • FIG. 3 is a block diagram showing a configuration of the second information processing device 2.
  • the second information processing apparatus 2 includes a communication unit 21, a bubble packet transmission unit 22, a range detection packet transmission unit 23, a reply packet reception unit 24, and a port width detection packet transmission unit 25.
  • each unit from the communication unit 21 to the reply packet transmission unit 29 in the second information processing device 2 includes the first information processing device 1, the first communication control device 3, and the second information processing device 2, Except that the second communication control device 4 is replaced, the configuration is the same as that of the first information processing device 1 from the communication unit 11 to the reply packet transmission unit 19, and the description is omitted.
  • the portion from the bubble packet transmitting section 22 to the bubble packet transmission target port receiving section 26 in the second information processing apparatus 2 is used when the second information processing apparatus 2 operates as a transmitting side.
  • the range from the range receiving unit 27 to the reply packet transmitting unit 29 is used when the second information processing device 2 operates as a receiving side.
  • the first communication control device 3 controls communication of the first information processing device 1, and uses a so-called nut (NAT) to control the local side (the first information processing device 1 side). ) And communication with the global side (communication line 5 side).
  • the NAT includes a full cone NAT, a restricted cone nut (Restricted Cone NAT, hereinafter abbreviated as “R NAT”), a port restricted cone nut (Port Restricted Cone NAT). , "PR NAT”), Address Sensitive Symmetric NAT (hereinafter abbreviated as "AS NAT”), Port Sensitive Symmetric NAT (hereinafter abbreviated as "PS NAT”). ).
  • the second communication control device 4 controls communication of the second information processing device 2, and uses a nut similarly to the first communication control device 3.
  • the combination of the first communication control device 3 and the second communication control device 4 includes a combination of PS NATs. Except for the matching, communication between the first information processing device 1 and the second information processing device 2 can be established.
  • the port assignment is performed such that the port number increases or decreases for each predetermined port width. . In the following description, a case will be described where the port numbers are assigned so as to increase.
  • FIG. 4 is a block diagram showing a configuration of the first server 6 and the second server 7.
  • the first server 6 includes a communication unit 61, an information transmission / reception unit 62, a characteristic determination unit 63, a transmission / reception determination unit 64, a bubble packet transmission target port transmission unit 65, a range detection unit 66, A range transmitting unit 67, a port width detecting unit 68, and a port width transmitting unit 69 are provided.
  • the second server 7 includes a communication unit 71.
  • the communication units 61 and 71 communicate each unit of the first server 6, such as the information transmission / reception unit 62, with the first information processing device 1, the second information processing device 2, and the like.
  • the communication unit 61 and the communication unit 71 exchange information between servers. Although only the communication unit 71 is specifically shown in the second server 7, other components may be provided in addition to the communication unit 71.
  • the information transmitting and receiving unit 62 transmits and receives information to and from the first information processing device 1 and the second information processing device 2.
  • the information transmission / reception by the information transmission / reception unit 62 is performed via the communication unit 61 and the communication unit 71.
  • the characteristic determining section 63 determines the characteristics of the first communication control device 3 and the second communication control device 4.
  • the characteristics of the first communication control device 3 and the second communication control device 4 refer to the type of NAT used in the first communication control device 3 and the like. Therefore, the characteristics of the first communication control device 3 are determined to be, for example, Full Cone NAT or AS NAT.
  • the transmission / reception determining unit 64 sends one of the first information processing device 1 and the second information processing device 2 to the transmitting side (transmitting side information processing device) according to the determination result by the characteristic determining unit 63. And the other is determined to be the receiving side (receiving side information processing device).
  • the communication control device that controls the communication of the transmitting information processing device becomes the transmitting communication control device, and the receiving information processing device
  • the communication control device that controls the communication of the receiver becomes the communication control device on the receiving side.
  • the bubble packet transmission target port transmitting section 65 transmits bubble packet transmission target port information indicating the position of the bubble packet transmission target port in the reception side communication control device to the transmission side information processing device.
  • the range detecting unit 66 receives the range detecting packet to which the transmitting-side information processing device has also been transmitted, and detects the range of the port including the bubble packet transmitting port based on the received range detecting packet.
  • the port range may be detected by acquiring a port number included in the header of the range detection packet and recording the port number in a predetermined memory or the like.
  • the range detection packet may be transmitted from the transmission-side information processing device to the communication unit 61, or may be transmitted to the communication unit 71 of the second server 7 by the communication unit 61. It may have been received via 61. In the latter case, the first server 6 and the second server 7 have different IP addresses! /.
  • the range transmitting unit 67 transmits range information, which is information indicating a port range including the bubble packet transmission port detected by the range detecting unit 66, to the receiving-side information processing device.
  • Port width detection section 68 receives a port number detection packet transmitted from the transmission side information processing device via the transmission side communication control device.
  • the port number detection packet is a packet used for detecting the port number in the transmission-side communication control device.
  • the port width detection unit 68 detects the port width in the transmission-side communication control device based on the received port width detection packet.
  • the port-width transmitting unit 69 transmits port-width information, which is information indicating the port width detected by the port-width detecting unit 68, to the receiving-side information processing device.
  • Step S101 The characteristic determination unit 63 in the first server 6 determines the characteristics of the first communication control device 3 and the second communication control device 4 so that the first information processing device 1, It decides which of the second information processing device 2 and the second information processing device 2 will be the transmitting side and the receiving side.
  • Step S102 A bubble packet is transmitted from the transmitting information processing apparatus to the receiving communication control apparatus, and a reply packet is transmitted from the receiving information processing apparatus to at least one port including at least a bubble packet transmitting port. This establishes communication.
  • the detailed processing in steps S101 and S102 will be described later.
  • FIG. 6 is a flowchart showing a process in which the first server 6 determines transmission / reception in step S101.
  • the first information processing device 1 and the first communication control device 3 are devices on the transmitting side
  • the second information processing device 2 and the second communication control device 4 are devices on the receiving side.
  • the description is the same as that in the following flowchart.
  • Step S201 The characteristic determining unit 63 of the first server 6 determines the characteristic of the first communication control device 3 on the transmitting side. The method for determining the characteristics will be described later.
  • Step S202 The transmission / reception determining unit 64 determines whether the first communication control device 3 uses PS NAT. Then, if PS NAT is used, the process proceeds to step S205. If not, the process proceeds to step S203.
  • Step S203 The transmission / reception determining unit 64 determines whether the first communication control device 3 uses PR NAT. Then, if PR NAT is used, the process proceeds to step S204, and if not, the transmission / reception determination process ends. That is, the first information processing device 1 and the first communication control device 3 are regarded as transmitting devices, and the second information processing device 2 and the second communication control device 4 are regarded as receiving devices. Of 102 communications Perform establishment processing.
  • Step S204 The transmission / reception determining unit 64 switches the transmission / reception, and the transmission / reception determining process ends. That is, the first information processing device 1 and the first communication control device 3 are regarded as devices on the receiving side, and the second information processing device 2 and the second communication control device 4 are regarded as devices on the transmitting side.
  • the communication establishment processing of 102 is performed.
  • Step S205 The characteristic determining unit 63 determines the characteristic of the second communication control device 4 on the receiving side.
  • Step S206 The transmission / reception determining unit 64 determines whether or not the second communication control device 4 uses PS NAT. If PS NAT is used, both the transmitting side and the receiving side use PS NAT, and communication cannot be established, resulting in an error. On the other hand, if PS NAT is not used, the process proceeds to step S207.
  • Step S207 The transmission / reception determining unit 64 determines whether or not the second communication control device 4 uses AS NAT. Then, if AS NAT is used, the process proceeds to step S204, otherwise, the transmission / reception determination process ends.
  • the first information processing device 1 and the first communication control device 3 are regarded as transmission-side devices
  • the second information processing device 2 and the second communication control device 4 are regarded as reception-side devices.
  • the communication establishment processing of 102 is performed.
  • this flowchart is an example of processing for determining transmission and reception, and transmission and reception may be determined by other methods.
  • the transmitting side uses PR NAT
  • the transmission and reception are switched without discriminating the type of NAT used on the receiving side. If the number of times of judgment processing can be large, after it is determined that the sending side uses PR NAT, it is determined whether the receiving side uses PS NAT or AS NAT, and that judgment is made. As a result, transmission and reception may be switched only when it is determined that one of them is used.
  • the first information processing device 1 transmits a predetermined packet to the port P of the first server 6. Send to 101.
  • the transmitted packet is received by the characteristic determination unit 63 via the communication unit 61.
  • the characteristic determining unit 63 sends an instruction to transmit a packet to the port P100 of the first communication control device 3 detected by accepting the packet, via the communication unit 61 to the second server 7.
  • the packet is transmitted from the communication unit 71 to the port P100.
  • the characteristic determination unit 63 determines that the first communication control device 3 uses Full Cone NAT. Judge. On the other hand, when the first information processing device 1 cannot receive the packet from the communication unit 71 to the port P100, the determination is performed by the method described in FIG.
  • the first information processing apparatus 1 transmits a predetermined packet to the ports P 101 and P 103 of the first server 6 and the port P 102 of the second server 7.
  • the characteristic determining unit 63 receives the packet transmitted to the ports P101 and P103, and receives the packet transmitted to the port P102 via the communication unit 71. Then, it is determined whether or not the ports Pa and Pb in the first communication control device 3 through which the packet has passed are the same. If the port Pa and the port Pb are different, it is determined that the first communication control device 3 uses PS NAT.
  • the port Pa is equal to the port Pb, it is determined whether the port Pb is equal to the port Pc. Then, when the port Pb is different from the port Pc, it is determined that the first communication control device 3 uses AS NAT.
  • the determination is performed by the method described in FIG.
  • the first information processing device 1 transmits a predetermined packet to the port P 101 of the first server 6.
  • the characteristic determining unit 63 receives the packet, and transmits the packet to a port P100 of the first communication control device 3 through which the packet has passed from a port P103 different from the port P101. If the first information processing device 1 can receive the packet from the port P103, the characteristic determining unit 63 determines that the first communication control device 3 uses R NAT, and If the device 1 cannot receive the packet from the port P103, the characteristic determining unit 63 determines that the first communication control device 3 uses the PR NAT. I refuse.
  • the characteristic determination unit 63 can determine the characteristic of the first communication control device 3 by the method described with reference to FIGS. 7 to 9. Although the detailed description is omitted in the above description, transmission of a packet from the first information processing device 1 and the like are performed according to an instruction of the characteristic determination unit 63.
  • FIG. 10 is a diagram for explaining information exchange and processing among the information processing device on the transmission side, the server, and the information processing device on the reception side with respect to the establishment of communication.
  • the servers in FIG. 10 indicate both the first server 6 and the second server 7. Further, for convenience of explanation, it is assumed that first information processing device 1 and first communication control device 3 are a transmitting side, and second information processing device 2 and second communication control device 4 are a receiving side. And
  • Step S301 The information transmitting / receiving unit 62 in the first server 6 transmits address information indicating the IP address of the second communication control device 4 to the first information processing device 1.
  • the transmitted address information is received by the communication unit 11 of the first information processing device 1 and passed to the bubble packet transmission unit 12.
  • Step S302 The bubble packet transmission target port transmitting section 65 transmits bubble packet transmission target port information to the first information processing apparatus 1.
  • the transmitted bubble packet transmission target port information is received by the bubble packet transmission target port receiving unit 16 via the communication unit 11, and is passed to the bubble packet transmitting unit 12.
  • the port number differential detection packet transmitting unit 15 in the first information processing device 1 transmits the port number differential detection packet to the first server 6.
  • the ports of the first communication control device 3 through which the plurality of port width detection packets pass are different from each other.
  • the port number differential detection packet is transmitted from, for example, a plurality of ports having different port numbers in the first information processing device 1.
  • FIG. 11 is a diagram for explaining transmission of a port width detection packet.
  • the port-width detection bucket transmitting unit 15 transmits port-width detection packets to the port P200 of the first server 6 sequentially from different ports P205 to P208. Then, the first communication control device 3 Therefore, those packets pass through different ports P201 to P204, respectively.
  • FIG. 11 is a diagram for explaining transmission of a port width detection packet.
  • the first information processing apparatus 1 uses the ports P205 and P208 for communication with the first server 6 before transmitting the port number differential detection packet, and it is assumed that the first information processing apparatus 1 is! / ⁇ .
  • the port width detection unit 68 in the first server 6 receives the port number detection packet transmitted from the first information processing device 1, and based on the port number detection packet, Detect port width. A method for detecting the port width will be described.
  • the port width detection unit 68 can detect the ports P201 to P204 of the first communication control device 3 used for transmitting each port number detection packet by receiving the port number detection packet. For example, if the port interval between port P202 and port P201 is 12, the port interval between port P203 and port P202 is 6, and the port interval between port P204 and port P203 is 18, The small port interval “6” may be detected as the port width. On the other hand, the greatest common divisor of those port intervals may be detected as the port width.
  • the port interval between port P202 and port P201 is 12, the port interval between port P203 and port P202 is 6, and the port interval between port P204 and port P203 is 9, the maximum of them is The common divisor “3” may be detected as the port width.
  • the port width detected in this way is passed to the port number transmitting section 69.
  • the port width detection method is not limited to these, and the port width may be detected by other methods.
  • the number of port number detection packets transmitted when detecting the port number is not limited to four, and can be set arbitrarily within a range in which the port number can be detected.
  • Range detecting packet transmitting section 13 transmits the range detecting packet to first server 6 via first communication control device 3.
  • the packet is transmitted such that the range detection packet passes through the port that is most recently allocated in the first communication control device 3. This is so that the range of ports including the bubble packet transmission port can be appropriately limited.
  • the range detection packet transmission unit 13 uses the port of the first information processing device 1 that has not been used so far in the communication between the first information processing device 1 and the first server 6, and Send the detection packet. This The range detection packet transmitted in this manner is accepted by range detection section 66 of first server 6.
  • the range detecting unit 66 knows the position of the port of the first communication control device 3 used for transmitting the range detecting packet by referring to the port number included in the header of the received range detecting packet. Can be.
  • Step S 306 The bubble packet transmitting unit 12 transmits the IP address of the second communication control device 4 indicated by the address information transmitted in step S 301 and the bubble packet transmission target port information transmitted in step S 302 Based on this, the bubble packet is transmitted to the public packet transmission target port of the second communication control device 4.
  • the second communication control device 4 uses Full Cone NAT to explain the following steps.
  • the port for transmitting the noble packet is the second information processing device 2 such as a port used for transmitting and receiving information between the second information processing device 2 and the first server 6. If the port is used by the second information processing device 2, the second information processing device 2 receives the bubble packet, and the communication is established.
  • Step S 307 Range detection packet transmitting section 13 transmits the range detection packet to second server 7 via first communication control device 3.
  • the range detection packet is received by range detection section 66 via communication section 71 and communication section 61.
  • the first communication control device 3 may use AS NAT
  • the range detection packet after the transmission of the bubble packet may be transmitted to the first server 6.
  • a port of the first information processing device 1 that has not been used in the communication with the first server 6 is used to transmit the range detection packet. Transmission shall be performed.
  • the range detection packet transmitted in this manner is accepted by the range detection unit 66 of the first Sano 6.
  • the range detection unit 66 can know the position of the port of the first communication control device 3 used in transmitting the range detection packet.
  • Step S308 The range detection unit 66 determines the range of the port including the bubble packet transmission port based on the range detection packet transmitted in step S305 and step S307. Is detected. Specifically, the first communication control device 3 used in transmitting the range detection packet in step S307 is transmitted from the port of the first communication control device 3 used in transmitting the range detection packet in step S305. Up to the port is detected as a range of ports including the bubble packet transmission port.
  • Range transmitting section 67 transmits range information indicating the range of the port including the bubble packet transmission port, detected by range detecting section 66, to second information processing device 2.
  • the range information is received by the range receiving unit 27 in the second information processing device 2 and passed to the reply packet transmitting unit 29.
  • Step S310 The information transmitting / receiving unit 62 transmits address information indicating the IP address of the first communication control device 3 to the second information processing device 2.
  • the transmitted address information is accepted by the communication unit 21 and passed to the reply packet transmission unit 29.
  • Port width transmitting section 69 transmits port width information indicating the port width detected by port width detecting section 68 to second information processing device 2.
  • the port width information is received by the port width receiving unit 28 of the second information processing device 2 and is passed to the reply packet transmitting unit 29.
  • Step S 312 Reply packet transmitter 29 transmits a reply packet to first communication control device 3 specified by the IP address indicated by the address information received in step S 310. This reply packet is transmitted to the port in the range indicated by the range information received from the range receiving unit 27 for each port width indicated by the port width information.
  • Step S313 The reply packet receiving unit 14 of the first information processing device 1 receives the reply packet transmitted from the second information processing device 2. By receiving this reply packet, communication between the first information processing device 1 and the second information processing device 2 is established. Thereafter, transmission and reception of information (for example, tunnel communication) between the first information processing device 1 and the second information processing device 2 without passing through the first server 6 or the second server 7 is performed. Is
  • the port width detection may be performed before transmission of the port width information (step S311).
  • the port width detection (step S311) may be performed.
  • the port width information may be transmitted to the receiving side.
  • the sender's key The transmission of the dress (step S310) may be performed simultaneously with, for example, the transmission of the address on the receiving side (step S301).
  • the reply packet is not accepted (that is, the reply packet is sent). If the second information processing device 2 cannot receive from the first information processing device 1 the fact that the second information processing device 2 has accepted the return packet even after a predetermined time elapses, the detected port width differs. Therefore, the second information processing device 2 may set the port width to 1 and transmit the reply packet again. Alternatively, when the port width is calculated using the greatest common divisor, the common divisor from the greatest common divisor to 1 may be sequentially set as the port width, and the return packet may be transmitted again.
  • the greatest common divisor "4" is set as the port width and a reply packet is transmitted, whereby communication can be established. If this is not the case, set [2] as the port width and send the reply packet. If communication cannot be established even by that, the port width is set to “1”.
  • the IP addresses of the first communication control device 3, the second communication control device 4, the first server 6, and the second server 7 (for the first and second communication control devices 3, 4). Is the address on the communication line 5 side), respectively.
  • First communication control device 3 202. 132. 10. 6
  • Second communication control device 4 131.206.10.240
  • FIG. 12 and FIG. 13 are diagrams for explaining the first specific example.
  • the first information processing device 1 has an IP address “155.32.10.10” of the first server 6 and an IP address “155.32.10.20” of the second server 7.
  • the device ID “1234567890123456” of the first information processing device 1 is transmitted to the first server 6 in advance.
  • the device ID for example, a GUID (Global Unique ID) such as a MAC address or an EUI64-based address can be used. This transmission of the device ID is performed to the port P3 of the first server 6 via the port P1 of the first communication control device 3.
  • GUID Global Unique ID
  • the information transmitting / receiving unit 62 of the first server 6 sends the device ID of the first information processing device 1, the IP address of the first communication control device 3 "202.132.10.6", The port number “10130” of the port P1 in the first communication control device 3 can be known. These pieces of information are stored in the information transmitting / receiving section 62.
  • the first information processing device 1 transmits the device ID "9876543210123456" of the second information processing device 2 requesting the connection to the first sano 6, so that the second information processing device 1 Requests connection to processing device 2. Then, the information transmitting / receiving unit 62 of the first server 6 receives the connection request, and determines whether or not the second information processing device 2 has already accessed the first server 6. The access by the second information processing device 2 is also performed by transmitting the device ID of the second information processing device 2 in the same manner as in the first information processing device 1 described above.
  • the first server 6 sends the device ID “9876543210123456” of the second information processing device 2 to the second communication device.
  • the IP address “131. 206. 10. 240” of the control device 4 and the port P2 of the second communication control device 4 used for transmitting and receiving information between the second information processing device 2 and the first server 6 of The user knows the port number “21000”, and these are stored in the information transmitting / receiving unit 62. If the second information processing device 2 has already accessed the first server 6, the information transmitting / receiving unit 62 instructs the characteristic determining unit 63 to make a transmission / reception decision (step S101). By passing the information, the transmission / reception determination process is started. On the other hand, if the second information processing device 2 does not access the first server 6, the connection request from the first information processing device 1 results in an error, and the first information processing device 1 and the first information processing device 1 Communication between the two information processing devices 2 cannot be established.
  • the characteristic determination unit 63 determines the characteristics of the first communication control device 3 that is the communication control device on the transmission side (step S201). Then, it is determined that the first communication control device 3 uses AS NAT. Then, the fact is passed to the transmission / reception determining unit 64.
  • the transmission / reception determining unit 64 determines that the communication control device on the transmitting side does not use PS NAT and does not use PR NAT (steps S202 and S203). As a result, the transmission and reception are not switched, the first information processing device 1 and the first communication control device 3 are on the transmission side, and the second information processing device 2 and the second communication control device 4 are on the reception side.
  • the fact is passed to the information transmitting / receiving section 62, the bubble packet transmission target port transmitting section 65, the range transmitting section 67, and the port width transmitting section 69.
  • the information transmitting / receiving unit 62 When the information transmitting / receiving unit 62 receives that the first information processing device 1 is on the transmitting side, it indicates the IP address "131.206.10.240" of the second communication control device 4 on the receiving side. The address information is transmitted to the first information processing device 1 via the port P1 (step S301). Further, the target packet transmitting port transmitting section 65 transmits the target port information for transmitting the bubble packet, which is the information indicating the port number “21000” of the port P2 of the second communication control device 4, to the first information processing device 1. Transmission via P1 (step S302).
  • the information is received by the communication unit 11 of the first information processing device 1, and the address information indicating the IP address "131. 206. 10. 240" of the second communication control device 4 is a bubble packet.
  • the bubble packet transmission target port information is passed to the transmission unit 12 and passed to the bubble packet transmission target port reception unit 16.
  • the bubble packet transmission target port information is received by the bubble packet transmission target port receiving unit 16 and passed to the bubble packet transmitting unit 12. In this way, the bubble packet transmitting unit 12 Obtain the IP address of the second communication control device 4.
  • the communication unit 11 informs the port number detection packet transmitting unit 15 that it has received the bubble packet transmission target port information, etc.
  • the port number detection packet transmitting unit 15 The packet is transmitted as shown in FIG. 11 (step S303). Note that the transmission of the port number detection packet is not explicitly shown in FIGS.
  • the port width detection packet is received by the port width detection unit 68, and the port width is detected. In this case, it is assumed that the port width is detected as "1" (step S304).
  • the detected port width is passed to the port width transmitting section 69.
  • bubble packet transmitting section 12 Before transmitting the bubble packet, bubble packet transmitting section 12 passes an instruction to transmit range detecting packet to range detecting packet transmitting section 13. Then, the range detection packet transmitting unit 13 transmits the range detection packet to the first server 6 using a port different from the port used for communication with the first server 6. (Step S305). It is assumed that the port P6, which is the destination port of the range detection packet, is the one indicated to the first server 6 and the first information processing device 1. This range detection bucket is assumed to have been transmitted using the port P5 of the first communication control device 3. Then, the range detection unit 66 that has received the range detection packet detects the port number “10135” of the port P5 of the first communication control device 3. The range detection unit 66 holds the port number “10135” of the port P5.
  • range detecting packet transmitting section 13 After transmitting the range detecting packet, range detecting packet transmitting section 13 notifies bubble packet transmitting section 12 that the range detecting packet has been transmitted. Then, the bubble packet transmitting unit 12 transmits the bubble packet to the second communication control device 4 having the IP address “131.206.10.240” indicated by the address information received from the communication unit 11 and having the port number “21000”. A bubble packet is transmitted to the port (step S306). Here, it is assumed that the bubble packet has been transmitted using the port P7 (port number “10142”) of the first communication control device 3.
  • bubble packet transmitting section 12 After transmitting the bubble packet, bubble packet transmitting section 12 passes to range detecting packet transmitting section 13 an instruction to transmit the range detecting packet. Then, the range detecting bucket transmitter 13 sends the range to the second server 7 having the IP address “155.32.20”. An enclosure detection packet is transmitted (step S307). Note that the bubble packet and the second range detection packet are transmitted from the port of the first information processing device 1 to which the first range detection packet has been transmitted.
  • the range detection unit 66 receives the range detection packet via the communication unit 71 of the second server 7 and the communication unit 61 of the first server 6, and detects the port number “10145” of the port P8. . Then, the range detection unit 66 detects a range in which the held port number “10135” of the port P5 and the detected port number “1 0145” of the port P8 are set as the lower limit and the upper limit, respectively (step S308). .
  • the range transmitting unit 67 transmits range information indicating the range to the second information processing device 2 via the port P2 of the second communication control device 4. Yes (step S309).
  • the range information is received by the range receiving unit 27 of the second information processing device 2 and passed to the reply packet transmitting unit 29.
  • Ports P5, P7, and P8 are not consecutive port numbers. However, this is because devices other than the first information processing device 1 (not shown) are located on the local side of the first communication control device 3. ) Is connected, and the transmission power of the range detection packet and the transmission power of the bubble packet or the transmission power of the bubble packet until the transmission power of the range detection packet are transmitted to the first communication control device 3. Is caused by the assignment of the port of
  • range transmitting section 67 When range transmitting section 67 notifies range transmitting section 67 to information transmitting / receiving section 62 and port width transmitting section 69 that range information has been transmitted, information transmitting / receiving section 62 transmits the IP address of first communication control device 3 to “202. 132 . 10.6 ”is transmitted to the second information processing device 2 (step S310). Further, the port-width transmitting unit 69 transmits port-width information indicating the port width detected by the port-width detecting unit 68 to the second information processing device 2 (Step S311).
  • the address information indicating the IP address of the first communication control device 3 is passed from the communication unit 21 to the reply packet transmission unit 29, and the port width information is passed to the port width reception unit 28, where the reply packet transmission Handed over to part 29.
  • the reply packet transmitting unit 29 obtains the IP address of the first communication control device 3, which is the destination of the reply packet.
  • the reply packet transmitting unit 29 is an IP address indicated by the address information received from the communication unit 21.
  • a reply packet is transmitted to the first communication control device 3 of “202. 132. 10. 6”. This reply packet is transmitted for each port width “1” indicated by the port width information to the port number “10135” and the port “10145” indicated by the range information, as shown in FIG. .
  • the second communication control device 4 is a PS NAT, a reply packet transmitted from the second information processing device 2 is transmitted using 11 ports from port P10 to port P11. (Step S312).
  • the return packet transmitted to the port P7 (port number “10142”) is the first packet. Is passed to the information processing device 1 and is received by the reply packet receiving unit 14 via the communication unit 11 (step S313). In this way, the first information processing device 1 can know the position of the port of the second communication control device 4 used for transmitting the reply packet. Thereafter, the first information processing device 1 transmits information to the port via the port P7 of the first communication control device 3 so that the first information processing device 1 and the second information processing device 1 communicate with each other. Communication with the device 2 is established, and UDP communication can be performed directly without going through a server.
  • the second information processing device 2 transmits a reply packet from the port (the port of the second information processing device 2) that communicates with the first server 6
  • a reply packet may be transmitted from another port.
  • the first server 6 in order for the first server 6 to detect the position of the target packet transmission target port, the second information processing apparatus from which the packet transmitted from the second information processing apparatus 2 to the first server 6 was transmitted.
  • the return packet may be transmitted from the port 2.
  • the port of the second communication control device 4 through which the packet has passed becomes a bubble packet transmission target port.
  • the bubble packet, the second range detection packet, and the first range detection packet are transmitted from the port of the first information processing device 1 to which the packet is transmitted.
  • the bubble packet and the two range detection packets are the first information.
  • the information may be transmitted from different ports newly allocated to the information processing device 1.
  • the characteristic determining unit 63 determines the characteristic of the first communication control device 3 that is the communication control on the transmitting side (step S201). Then, it is determined that the first communication control device 3 uses the PS NAT, and the fact is passed to the transmission / reception determining unit 64.
  • the transmission / reception determining unit 64 determines that the communication control device on the transmission side uses PS NAT (step S202), and instructs the characteristic determination unit 63 to determine the characteristics of the second communication control device 4 on the reception side. give. Then, the characteristic determining unit 63 determines the characteristics of the second communication control device 4 (Step S205).
  • the transmission / reception determining unit 64 determines that the communication control device on the receiving side uses AS NAT (steps S206, S207), and switches transmission / reception (step S204). Therefore, the first information processing device 1 and the first communication control device 3 are set on the receiving side, and the second information processing device 2 and the second communication control device 4 are set on the transmitting side. Then, the information that the first information processing device 1 and the first communication control device 3 are set on the receiving side and the second information processing device 2 and the second communication control device 4 are set on the transmitting side is indicated by the information.
  • the data is passed to the transmission / reception unit 62, the bubble packet transmission target port transmission unit 65, the range transmission unit 67, and the port width transmission unit 69. Subsequent operations are the same as those of the first example except that the first information processing device 1 and the second information processing device are exchanged, and the first communication control device 3 and the second communication control device 4 are exchanged. The same is true, and the description is omitted.
  • first information processing device 1 and the first communication control device 3 are on the receiving side
  • second information processing device 2 and the second communication control device 4 are on the transmitting side.
  • the notification may be sent to the first information processing device 1 or the second information processing device 2 or the first information processing device 1 or the second information processing device 2 may send the bubble packet transmission target port information.
  • Sent when received Side may be detected, and when the range information is received, the receiver may be detected.
  • the characteristic determining unit 63 determines the characteristic of the first communication control device 3 that is the communication control on the transmitting side (step S201). Then, it is determined that the first communication control device 3 uses the PS NAT, and the fact is passed to the transmission / reception determining unit 64.
  • the transmission / reception determining unit 64 determines that the communication control device on the transmission side uses PS NAT (step S202), and instructs the characteristic determination unit 63 to determine the characteristics of the second communication control device 4 on the reception side. give. Then, the characteristic determining unit 63 determines the characteristics of the second communication control device 4 (Step S205).
  • second communication control device 4 uses PR NAT, and that fact is passed to transmission / reception determining unit 64.
  • the transmission / reception determining unit 64 determines that the communication control device on the receiving side does not use PS NAT and does not use AS NAT (steps S206 and S207). As a result, the transmission and reception are not switched, the first information processing device 1 and the first communication control device 3 are on the transmission side, and the second information processing device 2 and the second communication control device 4 are on the reception side. Is passed to the information transmitting / receiving unit 62, the bubble packet transmission target port transmitting unit 65, the range transmitting unit 67, and the port width transmitting unit 69.
  • a bubble packet or a range detection packet is transmitted from the first information processing device 1, and the range information, the IP address, the port width information, and the like of the first communication control device 3 are subjected to the second information processing.
  • the operation received by device 2 is the same as that in specific example 1, and the description thereof is omitted.
  • FIG. 14 is a diagram for explaining transmission of a reply packet from the second information processing device 2.
  • the reply packet transmitting unit 29 of the second information processing device 2 sends the IP address “202.132.10.6” based on the range information received by the range receiving unit 27 from the first server 6. From port P5 of port number "10135" in the first communication control device 3 Then, a reply packet is transmitted to port P8 of port number "10145" (step S312). The transmission of the reply packet is performed for each port width “1” indicated by the port width information received by the port width receiving unit 28. Since the second communication control device 4 uses PR NAT, the reply packet is transmitted to the first communication control device 3 via the port P2. That is, the reply packet is transmitted from the port of the second information processing device 2 that communicates with the first server 6. The other operations are the same as those in the first embodiment, and the description thereof will not be repeated.
  • the first communication control device 3 on the transmitting side is not an AS NAT. Accordingly, the range detecting packet transmitting unit 13 receives the fact as well as the characteristic determining unit 63, and sends the range detecting packet after transmitting the bubble packet to the first server 6 instead of the second server 7. You may make it transmit.
  • the first communication control device 3 on the transmitting side uses PS NAT, when transmitting the range detection packet to the first server 6,
  • the port on the first information processing device 1 for transmitting the packet may be the same port as the port used for communication with the first server 6 via the port 1.
  • range detection is performed for the port P3, which is a different port in the first server 6, and the port P6. It is necessary to send a packet for use.
  • Example 4 a case will be described in which the first communication control device 3 and the second communication control device 4 use Full Cone NAT. In this case, only the characteristic portions will be described, and the description of the same points as those in the above specific example will be omitted.
  • the first communication control device 3 is Full Cone NAT
  • the range detection The packet and the bubble packet are transmitted using the same port P5. Therefore, one bubble packet transmission port is specified by the range information. Therefore, as shown in FIG. 16, the reply packet transmitted from the second information processing device 2 is transmitted to the port P5 via the port P2, and thus, the first information processing device 1 Communication with the second information processing device 2 can be established.
  • the destination of the bubble packet is set to port P2 (the port used by the second information processing device 2 for communication with the first server 6).
  • port P2 the port used by the second information processing device 2 for communication with the first server 6.
  • a range detection packet to be transmitted to the second server 7 is transmitted to the first server 6. Is also good.
  • range detection packets transmitted before and after transmission of a bubble packet may be transmitted to the first server 6 using the newly allocated ports in the first information processing device 1, respectively. .
  • a new port is allocated in the first communication control device 3 every time the range detection packet is transmitted, and the range of the port including the bubble packet transmission port can be detected. Therefore, even when the first communication control device 3 on the transmitting side uses AS NAT, it is possible to detect the range of the port including the bubble packet transmission packet without using the second server 7. .
  • the bubble packet and the range detection packet are transmitted from different ports in the first information processing device 1. When transmitting, the port of the first communication control device 3 through which the range detection packet has passed is different from the port of the first communication control device 3 through which the bubble packet has passed.
  • the port (the port in the first information processing device 1) different from the port to which the bubble packet was transmitted is the port through which the transmitted range detection packet has passed (the first port).
  • the port position closer to the bubble packet transmission port by one port width than the port in the communication control device 3) may be set as the end of the range for transmitting the return packet.
  • the port for transmitting one of the range detection packets (the port in the first information processing device 1) and the port for transmitting the bubble packet are set to the same port. Is also good.
  • the same port (port in the first information processing apparatus 1) as the port transmitting the bubble packet is also transmitted by the range detection packet within the port range including the bubble packet transmission port.
  • the port of the first communication control device 3 is included.
  • the range is detected only before or after transmitting the bubble packet. May be transmitted. Even when the first communication control device 3 uses either R NAT or PR NAT, since the bubble packet and the range detection packet are transmitted from the same port of the first information processing device 1, If there is, as shown in FIG. 15, the port P5, the port P7, and the port P8 are the same port, and the bubble packet transmission port can be specified by one of the range detection packets. Further, when the first communication control device 3 on the transmitting side transmits a bubble packet through a port for communicating with the first server 6 (for example, port P1 in FIG. 15), a range detection is performed. I don't need to send a packet for use.
  • FIG. 17 is a table showing whether or not a connection is possible regarding the type of NAT used in the communication control device.
  • the first information processing device 1 and the second The connection with the information processing device 2 can be made.
  • the exceptional handling according to the type of NAT used in the communication control device is also described.
  • the bubble bucket is used regardless of the type of NAT used in the communication control device.
  • the packet for range detection before transmission of the packet and the packet for range detection after transmission of the bubble packet are transmitted to different addresses, and the destination port of the bubble packet is transmitted to the information processing device on the receiving side by transmitting and receiving information from the server.
  • the combination of “ ⁇ ⁇ ⁇ ⁇ ⁇ ” in FIG. can be connected. Also, for the combination of “ ⁇ ” in FIG. 17, the connection between the information processing apparatuses can be performed by exchanging the transmission and reception.
  • the first communication control device 3 uses PS NAT, if the bubble bucket is transmitted to the port P2, the first information processing device 1 is transmitted from the port P2. Only reply packets can be accepted.
  • the second communication control device 4 uses PS NAT or AS NAT, and the second communication control device 4 uses the port P2 for communication with the first server 6, the second communication control device 4 The information processing device 2 cannot transmit a reply packet to the first communication control device 3 via the port P2 (ie, cannot transmit a reply packet as shown in FIG. 14). Therefore, in this case, communication cannot be established. However, unless both the sender and the receiver are PS NAT, communication can be established by swapping the sender and the receiver.
  • the first communication control device 3 since the first communication control device 3 uses PR NAT, if the bubble packet is transmitted on port P2, the first information processing device 1 G Only the reply packet from P2 can be accepted. On the other hand, since the second communication control device uses AS NAT or PS NAT, it is not possible to return a reply packet via port P2. Therefore, in this case, communication cannot be established.
  • the ports P5, P7, and P8 in the first communication control device 3 are the same port. Also in this case, communication can be established by exchanging the transmitting side and the receiving side.
  • the first communication control device 3 and the second communication control device 4 are the first communication control devices except for the case where both are PS NAT. Communication between the information processing device 1 and the second information processing device 2 can be established.
  • the communication system according to the present embodiment reduces the processing load on the server by detecting the range of ports including the bubble packet transmission port, detecting the port width, and the like in the information processing device that is not a server. is there.
  • the configuration of the communication system according to the present embodiment includes first information processing apparatus 10, second information processing apparatus 2, and first server 6, instead of first information processing apparatus 10, second information processing apparatus 10, and first server 6, respectively.
  • the configuration is the same as that of FIG. 1 except that the second information processing device 20 and the first server 60 are provided, and the description thereof is omitted.
  • FIG. 18 is a block diagram showing a configuration of the first information processing device 10 according to the present embodiment.
  • a first information processing apparatus 10 includes a communication unit 11, a bubble packet transmission unit 12, a range detection packet transmission unit 13, a reply packet reception unit 14, and a port width detection packet transmission.
  • Unit 15 bubble packet transmission target port reception unit 16, range reception unit 17, port width reception unit 18, reply packet transmission unit 19, detection port information reception unit 71, and range detection unit 72.
  • the configuration and operation other than the detection port information reception unit 71, the range detection unit 72, the range transmission unit 73, the port width detection port information reception unit 74, the port width detection unit 75, and the port width transmission unit 76 The configuration is the same as that of the first embodiment except that the width receiving unit 18 receives the port width information transmitted from the second information processing device 20 via the first server 60, and the description thereof is omitted.
  • the detection port information reception unit 71 receives the detection port information transmitted from the first server 60 via the communication unit 11.
  • the detection port information is the first communication control device through which the range detection packet transmitted by the range detection packet transmitting unit 13 has passed. This is information indicating the position of the port of device 3.
  • Range detection section 72 detects the range of ports including the bubble packet transmission port based on the detection port information received by detection port information receiving section 71.
  • the port range may be detected by acquiring the port number included in the payload of the packet of the port information for detection and recording the acquired port number in a predetermined memory or the like.
  • the range transmitting unit 73 transmits range information, which is information indicating a port range including the bubble packet transmission port detected by the range detecting unit 72, to the second information processing device via the first server 60. Send to 20.
  • Port width detection port information reception unit 74 receives port width detection port information.
  • the port number detection port information is information indicating the position of the port of the first communication control device 3 through which the port number detection packet transmitted by the port number detection packet transmitting unit 15 has passed. This port number detection port information is transmitted from the first Sano 60.
  • the port width detection unit 75 detects the port width in the first communication control device 3 based on the port width detection port information received by the port width detection port information reception unit 74. This port width detection is performed in the same manner as the port width detection unit 68 in the first embodiment, and the description thereof is omitted.
  • the port-width transmitting unit 76 transmits port-width information, which is information indicating the port width of the first communication control device 3 detected by the port-width detecting unit 75, to the second server via the first server 60. The information is transmitted to the information processing device 20.
  • the first information processing device 10 includes the first information from the bubble packet transmission unit 12 to the bubble packet transmission target port reception unit 16 and the detection port information reception unit 71 to the port width transmission unit 76. Used when the processing device 10 operates as a transmission side. On the other hand, the range from the range receiving unit 17 to the reply packet transmitting unit 19 is used when the first information processing device 10 operates as a receiving side.
  • FIG. 19 is a block diagram showing a configuration of the second information processing device 20 according to the present embodiment.
  • the second information processing device 20 includes a communication unit 21, a bubble packet transmission unit 22, a range detection packet transmission unit 23, a reply packet reception unit 24, and a port width detection packet.
  • Packet transmission unit 25 bubble packet transmission target port reception unit 26, range reception unit 27, port width reception unit 28, reply packet transmission unit 29, detection port information reception unit 81, range detection A port information detection unit 84; a port width detection unit 85; and a port width transmission unit 86.
  • each unit from the communication unit 21 to the port width transmission unit 86 in the second information processing device 20 includes the first information processing device 10, the first communication control device 3, and the second information processing device 20. Except that the second communication control device 4 is replaced, the configuration is the same as that of the first information processing device 10 from the communication unit 11 to the port width transmission unit 76, and the description is omitted.
  • the second information processing device 20 from the bubble packet transmission unit 22 to the bubble packet transmission target port reception unit 26, and the detection port information reception unit 81 to the port width transmission unit 86 have the second information It is used when the processing device 20 operates as a transmission side.
  • the range from the range receiving unit 27 to the reply packet transmitting unit 29 is used when the second information processing device 20 operates as a receiving side.
  • FIG. 20 is a block diagram showing a configuration of the first server 60 according to the present embodiment.
  • the first server 60 includes a communication unit 61, an information transmission / reception unit 62, a characteristic determination unit 63, a transmission / reception determination unit 64, a bubble packet transmission target port transmission unit 65, and a detection port detection.
  • Configurations and operations other than the detection port detection unit 91, the detection port information transmission unit 92, the port width detection port detection unit 93, and the port width detection port information transmission unit 94 are the same as those of the first embodiment. Same as above, and the description is omitted.
  • the detection port detection unit 91 receives the range detection packet transmitted by the transmission-side information processing device, and, based on the range detection packet, transmits the range detection packet of the transmission-side communication control device. Detect the position of the port. The port position is detected by acquiring the position of the port of the communication controller on the transmitting side through which the range detection packet included in the range detection packet (for example, included in the header of the range detection packet) has passed. Be done.
  • the range detection packet may be a packet transmitted from the information processing device on the transmission side to the communication unit 61, or may be a packet transmitted to the communication unit 71 of the second server 7. May be received via the communication unit 61. In the latter case, the first server 60 and the second server 7 have different IP addresses! /.
  • the detection port information transmission unit 92 transmits detection port information indicating the position of the port detected by the detection port detection unit 91 to the transmission-side information processing device.
  • the port number detection port detection unit 93 receives a port number detection packet transmitted from the transmission side information processing device via the transmission side communication control device, and based on the port number detection packet. Then, the port position of the transmission-side communication control device through which the port number detection packet has passed is detected.
  • the port number detection port information transmission unit 94 is a port number detection port information indicating the position of the port of the transmission-side communication control device through which the port number detection packet has been detected, detected by the port number detection port detection unit 93.
  • the port information is transmitted to the transmitting information processing device.
  • the operation of the communication system according to the present embodiment differs from the first embodiment in that the first information processing device 10 and the second information processing device 20 detect a port range including a bubble packet transmission port and detect a port width.
  • the operation is the same as that shown in FIG. 5 in the first embodiment, and the description thereof is omitted.
  • FIG. 21 to FIG. 23 are diagrams for explaining the exchange and processing of information between the transmitting side, the server, and the receiving side.
  • the servers in FIGS. 21 to 23 indicate both the first server 60 and the second server 7. Further, for convenience of explanation, it is assumed that first information processing device 10 and first communication control device 3 are transmission sides, and second information processing device 20 and second communication control device 4 are reception side. Side. Further, the processing in steps S301-S303, S305-S307, S310, S312, and S313 is the same as that described with reference to FIG. 10 in the first embodiment, and a description thereof will not be repeated.
  • Step S401 The port number detection port detection unit 93 of the first server 60 receives the port number detection packet transmitted from the first information processing device 10. Then, the port-width detection port detection unit 93 detects the position of the port of the first communication control device 3 which is included in the header of the port-width detection packet and has passed the port-width detection packet. [0157] (Step S402) The port number detection port information transmitting unit 94 transmits the port number of the first communication control device 3 through which the port number detection packet detected by the port number detection port detecting unit 93 has passed. The port information for port width detection, which is information indicating the position, is transmitted to the first information processing device 10. The port width detection port information is received by the port width detection port information receiving unit 74 in the first information processing apparatus 10.
  • the port width detection unit 75 determines the port width of the first communication control device 3 based on the port width detection port information received by the port width detection port information reception unit 74. To detect. The detection of the port width is performed in the same manner as in the first embodiment, and a description thereof will be omitted.
  • Step S404 The detection port detection unit 91 of the first server 60 receives the range detection packet transmitted from the first information processing device 10. Then, the detection port detection section 91 detects the position of the port of the first communication control device 3 through which the port detection packet has passed, which is included in the header of the range detection packet.
  • the detection port information transmission unit 92 is a detection port indicating the position of the port of the first communication control device 3 through which the range detection packet has been detected, detected by the detection port detection unit 91.
  • the information is transmitted to the first information processing device 10.
  • the detection port information is received by the detection port information receiving unit 71 of the first information processing device 10.
  • Step S 406 Detection port detection section 91 of first server 60 accepts a range detection packet transmitted from first information processing device 10. Then, the detection port detection section 91 detects the position of the port of the first communication control device 3 through which the port detection packet has passed, which is included in the header of the range detection packet.
  • the detection port information transmission unit 92 is a detection port indicating the position of the port of the first communication control device 3 through which the range detection packet has been detected, detected by the detection port detection unit 91.
  • the information is transmitted to the first information processing device 10.
  • the detection port information is received by the detection port information receiving unit 71 of the first information processing device 10.
  • Step S408 The range detecting unit 72 of the first information processing device 10 performs the processing in steps S305 and S30.
  • the position of the port of the first communication control device 3 through which the range detection packet transmitted in 7 has passed is obtained from the detection port information received by the detection port information reception unit 71, and the positions of the two ports are obtained. Detect the range of ports at both ends.
  • Step S409 The range transmitting unit 73 of the first information processing device 10 processes range information, which is information indicating the range of the port detected in step S408, into the second information processing.
  • the data is transmitted to the first server 60 together with an instruction to transmit the data to the device 20.
  • Step S 410 The communication section 61 of the first server 60 receives the range information, and transmits the range information to the second information processing device 20.
  • the range information is received by the range receiving unit 27 of the second information processing device 20.
  • the port width transmitting unit 76 transmits the port width information indicating the port width of the first communication control device 3 detected in step S403, and transmits the port width information to the second information processing device 20. Is transmitted to the first server 60 together with an instruction to transmit to the first server 60.
  • Step S 412 The communication unit 61 of the first server 60 receives the port width information and transmits the port width information to the second information processing device 20.
  • the range information is received by the port width receiving unit 28 of the second information processing device 20.
  • the transmitting side address transmission may be performed at the same timing as the receiving side address transmission (step S301).
  • transmission of the range detection packet and transmission of the bubble packet may be performed without waiting for reception of the detection port information.
  • range detection is performed after the detection port information is received.
  • the port width detection in the transmission-side communication control device is performed by the transmission-side information processing device, and the bubble bucket transmission port is set.
  • the transmitting side information processing device detects the range of the port including the port, and performs processing accompanying the detection (for example, transmission of range information from the first information processing device 10 to the second information processing device 20). ) Is the same as the specific example in Embodiment 1 except for the above, and the description is omitted.
  • the communication system according to the present embodiment has the same effects as those of the first embodiment.
  • the detection of the port width in the first communication control device 3 or the second communication control device 4 and the detection of the range of the port including the bubble packet transmission port are performed by the first information processing device 10 or the second information processing device.
  • the processing load on the first server 60 can be reduced.
  • processing that requires waiting for example, processing of waiting for the transmission of the second range detection packet after the transmission of the first range detection packet
  • the processing load on the first server 60 is greatly reduced by not performing the processing that requires the standby on the server.
  • the information processing apparatus detects the port width of the communication control apparatus and the port range including the bubble packet transmission port has been described. As in the first embodiment, it may be performed in the server.
  • the determination of the characteristics of the communication control device is performed only before the server, but the characteristic determination of the communication control device may be performed in the information processing device. Also in this case, the information indicating the position of the port of the communication control device through which the packet transmitted from the information processing device has passed is transmitted from the server to the information processing device. Can be determined in the same manner as in the first embodiment.
  • a communication system according to a third embodiment of the present invention will be described with reference to the drawings.
  • one information processing device performs direct communication without using a communication control device.
  • FIG. 24 is a block diagram showing a configuration of the communication system according to the present embodiment.
  • the communication system according to the present embodiment includes a first information processing device 1, a second information processing device 2, a first communication control device 3, a first server 6, Server 7.
  • the communication system according to the present embodiment shown in FIG. 24 is the same as the communication system according to the first embodiment except that it does not include the second communication control device.
  • the configurations and operations of the first information processing device 1, the second information processing device 2, the first server 6, and the second server 7 are the same as those in the first embodiment, and a description thereof will be omitted.
  • the second information processing device 2 since the second information processing device 2 performs communication without passing through the communication control device, the second information processing device 2 is also required to use a communication control device of Full Cone NAT. It is determined that communication is performed via. Therefore, the operation in the present embodiment is the same as that in the first embodiment when the second communication control device 4 is a Full Cone NAT, and the first information processing device 1 and the second information processing device 2 Establish communication with
  • first information processing device 1 Communication between the second information processing device 2 and the second information processing device 2 can be established.
  • the communication system according to the first embodiment has the same configuration as that of the communication system according to the first embodiment except that the second communication control device is not provided.
  • the configuration may not include the second communication control device. Even in such a case where the second information processing device does not pass through the communication control device, communication between the first information processing device and the second information processing device can be established.
  • second information processing device 2 performs communication without passing through the communication control device.
  • second information processing device 2 uses a communication control device. Communication between the first information processing apparatus 1 and the second information processing apparatus 2 even when the first information processing apparatus 1 performs communication without passing through the communication control apparatus. Communication can be established.
  • FIG. 25 is a block diagram showing a configuration of the communication system according to the present embodiment.
  • the communication system according to the present embodiment includes a first information processing device 30, a second information processing device 40, a first communication control device 3, a second communication control device 4, The server 50 is provided.
  • the first communication control device 3 and the second communication control device 4 are the same as in the first embodiment, and a description thereof will be omitted.
  • FIG. 26 is a block diagram showing a configuration of the first information processing device 30 according to the present embodiment.
  • the first information processing device 30 includes a communication unit 11 and a bubble packet transmitting unit 1
  • a range detection packet transmission unit 13 a reply packet reception unit 14
  • a port width detection packet transmission unit 15 a bubble packet transmission target port reception unit 16
  • a range reception unit 17 a port width Receiving section 18
  • reply packet transmitting section 19 detecting port information receiving section 71, range detecting section 72, range transmitting section 73, port width detecting port information receiving section 74, and port width detecting section 75.
  • a port width transmission unit 76 a port assignment packet transmission unit 31, a bubble packet transmission target port transmission unit 32, a characteristic determination unit 33, and a characteristic transmission unit 34. Note that the port allocation packet transmitting unit 31 , the bubble packet transmitting target port transmitting unit 32 , the characteristic determining unit 3
  • the configuration and operation other than the characteristic transmission unit 34 are as follows.
  • the bubble packet transmission unit 12 transmits one or more bubble packets, and the detection port information reception unit 71 and the range detection unit 72 determine the range of the bubble packet transmission port.
  • This is the same as the second embodiment, except that the process of detecting the range of the port allocation packet transmitted by the port allocation packet transmitting unit 31 described later is performed together with the detection process, and the description thereof is omitted.
  • Port allocation packet transmitting section 31 transmits a port allocation packet for allocating a port for transmitting a reply packet to first communication control device 3. This port assignment packet is transmitted to the second communication control device 4. Port Assignment The port in the second communication control device 4 to which the packet is transmitted is arbitrary. For example, a port assignment packet is transmitted to a port of the second communication control device 4 used by the second information processing device 40 for communication with the server 50. Note that the reply packet transmission unit 19 It is assumed that when transmitting a return packet, the port allocation packet transmitting unit 31 transmits the return packet from the port of the second information processing device 30 to which the port allocation packet has been transmitted.
  • the bubble packet transmission target port transmission unit 32 detects the port of the first communication control device 3 ("port allocation packet transmission port") detected by the range detection unit 72 and passed by the port allocation packet transmission unit 31. Is transmitted to the second information processing device 40 via the server 50 as bubble packet transmission target port information.
  • the characteristic determining unit 33 determines the characteristic of the first communication control device 3. Specifically, the packet for characteristic determination is transmitted to the server 50, and the packet for characteristic determination, which is information indicating the position of the port of the first communication control device 3 through which the packet for characteristic determination has passed, is received. Thus, the characteristics of the first communication control device 3 are determined.
  • the characteristic transmitting unit 34 transmits characteristic information, which is information indicating the characteristic of the first communication control device 3 determined by the characteristic determining unit 33, to the second information processing device 40 via the server 50. .
  • FIG. 27 is a block diagram showing a configuration of the second information processing device 40 according to the present embodiment.
  • the second information processing device 40 includes a communication unit 21, a bubble packet transmission unit 22, a range detection packet transmission unit 23, a reply packet reception unit 24, and a port width detection packet transmission.
  • Unit 25 bubble packet transmission target port reception unit 26, range reception unit 27, port width reception unit 28, reply packet transmission unit 29, detection port information reception unit 81, and range detection unit 82.
  • a characteristic determining unit 43 and a characteristic transmitting unit 44 are examples of the third party.
  • each unit from the communication unit 21 to the port width transmission unit 86 in the second information processing device 40 includes the first information processing device 30, the first communication control device 3, and the second information processing device 40, Except that the second communication control device 4 is replaced, the configuration is the same as that of the first information processing device 30 from the communication unit 11 to the port width transmission unit 76, and the description is omitted.
  • the second information processing apparatus 40 from the bubble packet transmission unit 22 to the bubble packet transmission target port reception unit 26, and from the detection port information reception unit 81 to the port width transmission unit 86 Are used when the second information processing device 40 operates as a transmission side.
  • the range receiving unit 27 to the reply packet transmitting unit 29 from the range detecting packet transmitting unit 23, the port allocation packet transmitting unit 41, the bubble packet transmitting target port transmitting unit 42, and the detecting port information receiving unit 81 Up to the width transmitting unit 86 is used when the second information processing device 40 operates as a receiving side.
  • the second information processing device 40 operates as a transmitting side, with each component from the range detecting packet transmitting unit 23 and the detecting port information receiving unit 81 to the port width transmitting unit 86.
  • the second information processing apparatus 40 operates as the transmitting side, and in the case where the second information processing apparatus 40 operates as the transmitting side, at least one of these configurations will be described. For the case of operating as a side, it may be provided separately.
  • FIG. 28 is a block diagram showing a configuration of server 50 according to the present embodiment.
  • the server 50 includes a communication unit 61, an information transmitting and receiving unit 62, a bubble packet transmission target port transmitting unit 65, a detecting port detecting unit 91, a detecting port information transmitting unit 92, and a port width detecting unit. It includes a port detection unit 93, a port information detection port information transmission unit 94, a characteristic determination port detection unit 95, a characteristic determination port information transmission unit 96, and a bubble packet transmission target port reception unit 97.
  • the configuration and operation of the server 50 other than the characteristic determination port detection unit 95, the characteristic determination port information transmission unit 96, and the bubble packet transmission target port reception unit 97 are the same as those of the detection port detection unit 91 and the detection port information. Same as the second embodiment, except that the transmission unit 92, the port width detection port detection unit 93, and the port width detection port information transmission unit 94 perform processing for both the transmission side information processing device and the reception side information processing device. Therefore, the description is omitted.
  • the bubble packet transmission target port transmitting unit 65 transmits the bubble packet target port information received by the bubble packet transmission target port receiving unit 97.
  • the characteristic determination port detection unit 95 receives the characteristic determination packet transmitted from the first information processing device 30 or the second information processing device 40, and performs the characteristic determination based on the characteristic determination packet.
  • the position of the port of the first communication control device 3 or the second communication control device 4 through which the communication packet has passed is detected.
  • the detection of the port position is performed by the first communication control device 3 or the second communication control device that has passed the characteristic determination packet included in the characteristic determination packet (for example, included in the header of the characteristic determination packet). This is performed by acquiring the position of the port of the control device 4.
  • the characteristic determination port information transmitting unit 96 transmits the characteristic determination port information indicating the position of the port detected by the characteristic determination port detection unit 95 to the information processing apparatus that transmitted the characteristic determination packet.
  • Bubble packet transmission target port receiving section 97 receives bubble packet transmission target port information that is information indicating a bubble packet transmission target port.
  • the bubble packet transmission target port indicated by the bubble packet transmission target port information is one or more ports.
  • FIG. 29 is a flowchart illustrating a process of determining the transmission side and the reception side of the information processing apparatus.
  • the first information processing device 30 and the first communication control device 3 are called devices
  • the second information processing device 40 and the second communication control device 4 are called devices. It becomes.
  • the calling side is a side that requests communication with the other party's device
  • the called side is a side that receives a request for device communication from the calling side.
  • Step S501 The characteristic determining unit 43 of the second information processing device 40 determines the characteristics of the second communication control device 4, which is the communication control device on the calling side. The method for determining the characteristics will be described later.
  • Step S502 The characteristic determining unit 43 determines whether the second communication control device 4 uses PS NAT. When PS NAT is used, the characteristic transmitting unit 44 transmits the characteristic information indicating that the second communication control device 4 uses PS NAT via the server 50 to the first information processing device 30. And the process proceeds to step S504. Otherwise, the process proceeds to step S503.
  • Step S503 The characteristic determining unit 43 determines whether the device on the calling side, that is, the second information processing device
  • the receiving device 40 is determined as the receiving device, that is, the device receiving the bubble packet. Then, the process of determining transmission / reception ends.
  • Step S504 The characteristic determining unit 33 of the first information processing device 30 determines the characteristics of the first communication control device 3, which is the communication control device on the called side. The method of determining the characteristics will be described later.
  • Step S505 The characteristic determining unit 33 determines whether the first communication control device 3 uses PS NAT. If PS NAT is used, the sender and receiver Side uses PS NAT, which results in an error. On the other hand, if PS NAT is not used, the process proceeds to step S506.
  • Step S506 The characteristic determining unit 33 determines the called device, that is, the first information processing device 30, as the receiving device, that is, the device that receives the bubble packet. Then, the process of determining transmission / reception ends.
  • the characteristic determining unit 33 of the first information processing device 30 transmits two characteristic determining packets from the same port P100 to the port P300 and the port P301 of the server 50, respectively.
  • the port P300 and the port P301 are different ports.
  • the characteristic determination port detection unit 95 of the server 50 detects the position (P200, P201) of the port of the first communication control device 3 through which each characteristic determination packet transmitted to the ports P300, P301 has passed. Then, the port information for characteristic determination, which is information indicating the position of the port, is transmitted from the port information transmitter for characteristic determination 96 to the first information processing device 30.
  • the characteristic determination unit 33 receives the port information for characteristic determination, and determines the characteristic of the first communication control device 3 based on whether the port P200 is equal to the port P201. Specifically, when port P200 is equal to port P201, it is determined that first communication control device 3 does not use PS NAT. On the other hand, when the port P200 is different from the port P201, it is determined that the first communication control device 3 uses PS NAT.
  • FIG. 31 to FIG. 33 are diagrams for explaining information exchange and processing between the information processing device on the transmission side, the server, and the information processing device on the reception side with respect to the establishment of communication. Further, for convenience of explanation, it is assumed that the first information processing device 30 and the first communication control device 3 are transmission sides, and the second information processing device 40 and the second communication control device 4 are reception side. Side.
  • Step S601 The information transmitting / receiving unit 62 in the server 50 transmits address information indicating the IP address of the first communication control device 3 to the second information processing device 40.
  • the transmitted address information is received by the communication unit 21 of the second information processing device 40, and the port assignment is performed.
  • the packet is sent to the packet transmission unit 41.
  • Step S602 The port number differential detection packet transmitting unit 25 in the second information processing device 40 transmits the port number differential detection packet to the server 50.
  • the ports of the second communication control device 4 through which the plurality of port width detection packets pass are different from each other.
  • the port number differential detection packet is transmitted from, for example, a plurality of ports having different port numbers in the second information processing device 40.
  • Step S603 The port number differential detection port detector 93 of the server 50 receives the port number differential detection packet transmitted from the second information processing device 40. Then, the port number detection port detection unit 93 detects the position of the port of the second communication control device 4 through which the port number detection packet has passed, included in the header of the port number detection packet.
  • Step S604 The port number detection port information transmission unit 94 checks the port number of the port of the second communication control device 4 through which the port number detection packet detected by the port number detection port detection unit 93 has passed.
  • the port information for port width detection which is information indicating the position, is transmitted to the second information processing device 40.
  • the port width detection port information is received by the port width detection port information receiving unit 84 in the second information processing device 40.
  • the port width detecting unit 85 determines the port width of the second communication control device 4 based on the port width detecting port information received by the port width detecting port information receiving unit 84. To detect. The detection of the port width is performed in the same manner as in the first embodiment, and a description thereof will be omitted.
  • the range detection packet transmitting unit 23 transmits the range detection packet to the server 50 via the second communication control device 4. In this transmission, it is assumed that the range detection packet is transmitted to the second communication control device 4 so as to pass through the port that is most recently allocated. This is to allow the range of ports including the bubble packet transmission port to be appropriately limited. For example, the range detection packet transmitting unit 23 transmits the range detection packet using a port of the second information processing device 40 that has not been used in the communication.
  • Step S607 The detection port detection unit 91 of the server 50 receives the range detection packet transmitted from the second information processing device 40. Then, the detection port detection unit 91 The position of the port of the second communication control device 4 included in the header of the range detection packet and through which the port detection packet has passed is detected.
  • the detection port information transmission unit 92 is a detection port indicating the position of the port of the second communication control device 4 through which the range detection packet has been detected, detected by the detection port detection unit 91.
  • the information is transmitted to the second information processing device 40.
  • the detection port information is received by the detection port information receiving unit 81 of the second information processing device 40.
  • Step S609 The port assignment packet transmitting section 41 sends the port assignment packet to the first communication control device 3. As the address of the first communication control device 3, the address transmitted in step S601 is used.
  • Step S610 The range detecting packet transmitting unit 23 transmits the range detecting packet to the server 50 via the second communication control device 4.
  • Step S611 The detection port detection unit 91 of the server 50 receives the range detection packet transmitted from the second information processing device 40. Then, the detection port detection unit 91 detects the position of the port of the second communication control device 4 through which the port detection packet has passed, which is included in the header of the range detection packet.
  • the detection port information transmitting unit 92 is a detection port indicating the position of the port of the second communication control device 4 through which the range detection packet has been detected, detected by the detection port detection unit 91.
  • the information is transmitted to the second information processing device 40.
  • the detection port information is received by the detection port information receiving unit 81 of the second information processing device 40.
  • Step S613 The range detection unit 82 of the second information processing device 40 detects the position of the port of the second communication control device 4 through which the range detection packet transmitted in steps S606 and S610 has passed.
  • the port information receiving unit 81 also acquires the detection port information received, and detects the range of ports including the port allocation packet transmission port (the target port for transmitting the bubble packet) based on the positions of the two ports. It should be noted that this bubble packet transmission target port may be a single port, or may include two or more ports.
  • Step S614 The port width transmission unit 86 of the second information processing device 40 determines in step S605
  • the port width information which is the information indicating the detected port width of the second communication control device 4 is transmitted to the server 50 together with an instruction to transmit the port width information to the first information processing device 30.
  • the bubble packet transmission target port transmitting unit 42 of the second information processing device 40 transmits bubble packet transmission target port information indicating the bubble packet transmission target port detected in step S613, and transmits the bubble packet transmission target port information.
  • the information is transmitted to the server 50 together with an instruction to transmit to the first information processing device 30. These pieces of information may be transmitted in the same packet or may be transmitted in separate packets.
  • Step S615 The communication unit 61 of the server 50 receives the port width information and the bubble packet transmission target port information, and transmits the information to the first information processing device 30.
  • the bubble packet transmission target port is received by the bubble packet transmission target port receiving unit 97, and transmitted to the first information processing device 30 by the bubble packet transmission target port transmitting unit 65.
  • the port width information is received by the port width receiving unit 18 of the first information processing apparatus 30, and the bubble packet transmission target port information is received by the bubble packet transmission target port receiving unit 16.
  • Step S616 The information transmitting and receiving unit 62 in the server 50 transmits address information indicating the IP address of the second communication control device 4 to the first information processing device 30.
  • the transmitted address information is received by the communication unit 11 of the first information processing device 30 and passed to the bubble bucket transmission unit 12.
  • Step S617) The port number differential detection packet transmitting unit 15 in the first information processing device 30 transmits the port number differential detection packet to the server 50.
  • the ports of the first communication control device 3 through which the plurality of port width detection packets pass are different from each other.
  • the port number detection packet is transmitted from, for example, a plurality of ports having different port numbers in the first information processing device 30.
  • Step S618 The port number detection port detection unit 93 of the server 50 receives the port number detection packet transmitted from the first information processing device 30. Then, the port number detection port detection unit 93 detects the position of the port of the first communication control device 3 through which the port number detection packet has passed, included in the header of the port number detection packet.
  • the port information detection unit 94 for port width detection performs port detection for port width detection.
  • the port number detection port information which is the information indicating the position of the port of the first communication control device 3 through which the port number detection packet has passed, detected by the output unit 93, is transmitted to the first information processing device 30.
  • the port number detection port information reception unit 74 of the first information processing device 30 receives the port number detection port information.
  • the port width detection unit 75 determines the port width of the first communication control device 3 based on the port width detection port information received by the port width detection port information reception unit 74. To detect. The detection of the port width is performed in the same manner as in the first embodiment, and a description thereof will be omitted.
  • Step S621 The range detecting packet transmitting unit 13 transmits the range detecting packet to the server 50 via the first communication control device 3.
  • Step S622 The detection port detection unit 91 of the server 50 receives the range detection packet transmitted from the first information processing device 30. Then, the detection port detection unit 91 detects the position of the port of the first communication control device 3 through which the port detection packet has passed, which is included in the header of the range detection packet.
  • the detection port information transmission unit 92 is a detection port indicating the position of the port of the first communication control device 3 through which the range detection packet has been detected, detected by the detection port detection unit 91.
  • the information is transmitted to the first information processing device 30.
  • the detection port information is received by the detection port information receiving unit 71 in the first information processing device 30.
  • Step S624 The bubble packet transmitting unit 12 transmits the IP address of the second communication control device 4 indicated by the address information transmitted in step S616 and the bubble packet transmission target port transmitted in steps S614 and S615. Based on the information, the bubble packet is transmitted to the bubble packet transmission target port of the second communication control device 4.
  • the target port for bubble packet transmission includes two or more ports
  • the bubble packet transmitting unit 12 transmits a bubble packet for each port width indicated by the port width information received by the port width receiving unit 18.
  • Step S625 The range detecting packet transmitting unit 13 transmits the range detecting packet to the server 50 via the first communication control device 3.
  • Step S626 The detection port detection unit 91 of the server 50 receives the range detection packet transmitted from the first information processing device 30. Then, the detection port detection unit 91 detects the position of the port of the first communication control device 3 through which the port detection packet has passed, which is included in the header of the range detection packet.
  • the detection port information transmission unit 92 is a detection port indicating the position of the port of the first communication control device 3 through which the range detection packet has been detected, detected by the detection port detection unit 91.
  • the information is transmitted to the first information processing device 30.
  • the detection port information is received by the detection port information receiving unit 71 in the first information processing device 30.
  • Step S628 The range detection unit 72 of the first information processing device 30 detects the position of the port of the first communication control device 3 through which the range detection packet transmitted in steps S621 and S625 has passed.
  • the port information receiving unit 71 acquires the detection port information received and detects the range of ports including the bubble packet transmission port based on the positions of the two ports. Note that this port range may be a single port or may include two or more ports.
  • Step S629) The range transmitting unit 73 of the first information processing device 30 processes range information, which is information indicating the range of the port detected in step S628, into second information processing.
  • the data is transmitted to the server 50 together with the instruction to transmit the data to the device 40.
  • the port width transmitting unit 76 transmits the port width information, which is information indicating the port width of the first communication control device 3 detected in step S620, to the second information processing device 40. Is sent to the server 50 together with the instruction to do so.
  • the range information and the port width information may be transmitted in the same packet, or may be transmitted in separate packets.
  • Step S630 The communication unit 61 of the server 50 receives the range information and the port width information, and transmits the range information and the like to the second information processing device 40.
  • the range information is received by the range receiving unit 27 of the second information processing device 40.
  • the port width information is received by the port width receiving unit 28.
  • Step S631 The reply packet transmitting unit 29 sends a reply packet to the first communication control device 3 specified by the IP address indicated by the address information received in step S601. Send This reply packet is transmitted to the port in the range indicated by the range information received from the range receiving unit 27 for each port width indicated by the port width information.
  • Step S632 The reply packet receiving unit 14 of the first information processing device 30 receives the reply packet transmitted from the second information processing device 40. By receiving this reply packet, communication between the first information processing device 30 and the second information processing device 40 is established. Then, after this, information transmission / reception (for example, tunnel communication) without passing through the server 50 is performed between the first information processing device 30 and the second information processing device 40.
  • information transmission / reception for example, tunnel communication
  • the port width detection may be performed before transmission of the port width information. For example, immediately after the port width detection, the port width information is transmitted to the receiving side. May be sent. Also, the transmission of the address on the transmission side (step S601) may be transmitted, for example, simultaneously with the transmission of the port information for detection (step S608). As described above, in FIG. 31 to FIG. 33, there is a certain degree of arbitrariness in the order of processing. In FIG.
  • transmission of a range detection packet and transmission of a port assignment packet (steps S606, S609, and S610), transmission of a range detection packet, and transmission of a bubble packet (steps S621, S624, and S625) May be performed without waiting for reception of the detection port information.
  • the operation of the communication system according to the present embodiment will be described using a specific example.
  • the IP addresses of the first communication control device 3 and the like are the same as those of the specific example of the first embodiment except that the first server 6 becomes the server 50.
  • second information processing device 40 is the calling side.
  • the case where the second communication control device 4 in the specific example 1 is other than the PS NAT will be described.
  • the case where the second communication control device 4 is a PS NAT and the first communication control device 3 is other than the PS NAT will be described.
  • step S101 in order to efficiently transmit and receive packets between the server 50 and the first information processing device 30, or between the server 50 and the second information processing device 40, A case will be described in which part of the process of determining transmission and reception (step S101) and establishing communication (step S102) are performed in parallel.
  • FIG. 34 to FIG. 38 are diagrams for explaining a specific example.
  • the first information processing The device 30 and the second information processing device 40 are accessing the server 50, and the server 50 has already accessed the IP address of the first communication control device 3 and the port of the first communication control device 3. It is assumed that the port number of P1 and the device ID of the first information processing device 30 are held. Similarly, the server 50 holds the IP address of the second communication control device 4, the port number of the port P2 of the second communication control device 4, and the device ID of the second information processing device 40. And shall be.
  • the second information processing device 40 transmits the device ID of the first information processing device 30 and a connection request to the server 50. Then, the server 50 transmits the IP address of the first communication control device 3 and the port number of the port P1 to the second information processing device 40 (Step S601). This transmission is performed via port P2.
  • the port-width detection packet transmitting unit 25 of the second information processing device 40 transmits the three port-width detection packets (assumed to be UDP packets) to the port of the second information processing device 40, respectively. Send from LPO, LP1, LP2.
  • the ports LPO, LP1, and LP2 are different ports newly allocated in the second information processing device 40. Therefore, regardless of the characteristics of the second communication control device 4, each port width detection packet is transmitted to the server 50 via the separate port P5, P6, and P7 in the second communication control device 4. (Step S602).
  • Each port number detection packet is received by the port number detection port detection unit 93 via the communication unit 61 of the server 50, and the ports P5, P6, P7 of the second communication control device 4 included in the header of each packet. Is detected (step S603).
  • the port number detection port information transmitting unit 94 transmits the port number detection port information, which is a packet including each port number in the payload, to the port of the second communication control device 4 through which each port number detection packet has passed. (Step S604). Specifically, for the port number differential detection packet transmitted via the port P5, port number differential detection port information including the port number of the port P5 in the payload is transmitted to the port P5.
  • the port information for port width detection is subjected to address conversion in the second communication control device 4 and transmitted to the port LPO of the second information processing device 40.
  • the port number detection port information is received by the port number detection port information receiving unit 84 via the communication unit 21.
  • port number detection port information is transmitted to the second information processing device 40 via the ports P6 and P7.
  • the port width is also detected by using the range detection packet. Therefore, at this stage, the port width is not detected.
  • the port number detection packet transmitted via the port P7 also serves as a characteristic determination packet for determining the characteristics of the second communication control device 4, so that the second communication control device 4
  • the port width detection port information transmitted via the port P7 is passed from the communication unit 21 to the characteristic determination unit 43.
  • the range detection packet transmitting unit 23 of the second information processing device 40 transmits the range detection packet (assumed to be a UDP packet) from the port LP2 to the port P3 of the Sano 50 (Step S606).
  • the range detection packet also serves as a port width detection packet.
  • the port P3 is different from the port P4 to which the port number differential detection packet is transmitted. Therefore, when the port assignment rule of the second communication control device 4 is the Port Sensitive type, that is, when the second communication control device 4 is the PS NAT, the second packet through which the range detection packet passes is the second.
  • the port P8 in the communication control device 4 of the second port is different from the port P7 through which the port width detection packet transmitted by the port LP2 is transmitted. In this case, port P7 is equal to port P8.
  • the detection port detection unit 91 of the server 50 receives the range detection packet transmitted to the port P3 via the communication unit 61.
  • the detecting port detecting unit 91 detects the port number of the port P8 of the second communication control device 4 included in the header of the packet (Step S607).
  • the detection port information transmitting unit 92 transmits detection port information including the detected port number of the port P8 in the pay port to the port P8 of the second communication control device 4 (step S608). .
  • the port information for detection is converted into an address by the second communication control device 4, transmitted to the port LP 2 of the second information processing device 40, and received by the port information receiving portion for detection 81.
  • the detection port information is transmitted from the communication unit 21 to the communication unit 21.
  • Port information reception unit for port width detection 84, characteristic It is also passed to section 43.
  • the characteristic determination packet is also used as a port width detection packet and a range detection packet, the characteristic determination port detector 95 and the characteristic determination port information transmitter 96 of the server 50 It will not be used.
  • the port width detection unit 85 performs the second communication based on the port numbers of the ports P5, P6, P7, and P8 of the second communication control device 4 received by the port number detection port information reception unit 84.
  • the port width of the control device 4 is detected (step S605). Specifically, if the difference between port P8 and port P7 is not ⁇ , the smallest value among the difference between port P6 and port P5, the difference between port P7 and port P6, and the difference between port P8 and port P7 Is detected as the port width of the second communication control device 4.
  • the difference between the port P8 and the port P7 is 0, the smaller of the difference between the port P6 and the port P5 and the difference between the port P7 and the port P6 is used as the port width of the second communication control device 4.
  • the difference between the port P8 and the port P7 is 0 because the second communication control device 4 is not a PS NAT.
  • the port width is detected as “1”.
  • the characteristic determining unit 43 determines the characteristics of the second communication control device 4 based on the port numbers of the ports P7 and P8 (Step S501). More specifically, when the port P7 is equal to the port P8, the characteristics of the second communication control device 4 such as Full Cone NAT, R NAT, and PR NAT If the port P7 is different from the port P8, it is determined that the port NAT rule is Cone type or Address Sensitive type (that is, the port assignment rule is Cone type or Address Sensitive type). Is determined to be the characteristic power PS NAT of the second communication control device 4 (that is, the port assignment rule is of the Port Seisitive type).
  • the port P7 is equal to the port P8, and the characteristic determination unit 43 determines that the second communication control device 4 is not a PS NAT. Is determined (step S502).
  • the second information processing device 40 on the calling side operates as the information processing device on the receiving side (step S503).
  • the port assignment packet transmitting unit 41 of the second information processing device 40 uses the address of the first communication control device 3 transmitted from the server 50 to make the first communication control device 3
  • a port assignment packet which is a UDP packet, is transmitted to the port PI (step S609).
  • This port assignment packet is also transmitted from the port LP2 of the second information processing device 40.
  • This port assignment packet is transmitted via the port P9 of the second communication control device 4. If the second communication control device 4 is AS NAT, port P8 and port P9 will be different.If the second communication control device 4 is Cone-based NAT, port P8 and port P9 will be equal. Become. By setting the lifetime of the port assignment packet (for example, the TTL set for the packet), the port assignment packet may disappear before reaching the port P1.
  • the port assignment packet is transmitted in order to leave a transmission history in the second communication control device 4, and the port assignment packet does not have to reach the first communication control device 3.
  • the range detection packet transmitter 23 transmits a range detection packet, which is a UDP packet, from the port LP3 of the second information processing device 40 to the port P4 of the server 50 (step S610).
  • the port LP3 is a port newly assigned in the second information processing device 40, which is different from any of the ports LP0, LP1, and LP2.
  • the range detection packet is transmitted via the port P10 of the second communication control device 4.
  • the port P10 is a port different from any of the ports P7, P8, and P9.
  • the range detection packet is received by the detection port detection unit 91 of the server 50, and the port number of the port P10 included in the header is detected (step S611).
  • the port information for detection including the port number is transmitted from the port information for detection transmission unit 92 to the second information processing apparatus 40 via the port P10 (step S612).
  • the detection port information is received by the detection port information receiving unit 81 of the second information processing device 40.
  • the target port for transmitting the bubble packet is detected by the range detecting unit 82 (step S613).
  • the portion from the port position of port P8 to the port position that should be allocated immediately before port P10 is detected as a bubble packet transmission target port.
  • the port P8 may be equal to the port P9. The force may be different between the port P9 and the port P10 regardless of the characteristics of the second communication control device 4. .
  • the port position that should be allocated immediately before port P10 is the port width of the second communication control device 4 detected by the port width detection unit 85 from the port number of port P10 (in this specific example, "1 )) This is the position indicated by the port number.
  • the bubble packet transmission target port transmission unit 42 transmits the bubble packet transmission target port information indicating the bubble packet transmission target port detected by the range detection unit 82 to the first information processing device 30 together with the server 50. (Step S614).
  • the port number transmission unit 86 also transmits the port number information indicating the port number of the second communication control device 4 to the server 50 together with the instruction to transmit to the first information processing device 30 (step S614).
  • the characteristic transmitting unit 44 also transmits to the first information processing device 30 information indicating characteristics of the second communication control device 4, that is, characteristic information indicating that the second communication control device 4 is not PS NAT. It is transmitted to the server 50 together with the instruction.
  • the information is relayed in the server 50, and transmitted to the first information processing device 30 via the port P1 of the first communication control device 3 (step S615).
  • the bubble packet transmission target port information is received by the bubble packet transmission target port reception unit 16.
  • the port width information is received by the port width receiving unit 18 and passed to the bubble packet transmitting unit 12 via a path (not shown).
  • the characteristic information is passed to the port number detection packet transmission unit 15, the range detection packet transmission unit 13, the bubble packet transmission unit 12, etc., and the second communication control device 4 is not a PS NAT. It is determined that the processing device 30 performs a processing sequence as a transmitting device.
  • the server 50 transmits the IP address of the second communication control device 4 on the receiving side to the first information processing device 30 (Step S616).
  • the port-width detection packet transmission unit 15 of the first information processing device 30 sends a port-width detection packet, which is a UDP packet, from each of the different ports LP4 and LP5 of the first information processing device 30 to the server. It sends to port P3 of 50 (step S617).
  • These port number differential detection packets are transmitted to the server 50 via different ports Pll and P12 of the first communication control device 3, and are received by the port number differential detection port detection unit 93.
  • the port number detection unit 93 detects the port numbers of the ports Pll and P12 in the same manner as in the case of the port number detection packet transmitted from the second information processing device 40 (step S618). .
  • the port number detection port information transmitting unit 94 transmits port number detection port information, which is a packet including the detected port numbers of the ports Pl l and P 12 in the payload, to the first port P l l and P 12 respectively.
  • the information is transmitted to the information processing device 30 (step S619).
  • Port information for port width detection The information is received by the port information detecting unit 74 for port width detection. In this example, the port width is also detected by using the range detection packet. Therefore, the port width is not detected at this stage.
  • Range detection packet transmitter 13 transmits a range detection packet, which is a UDP packet, from port LP6 of first information processing device 30 (step S621). This range detection packet is transmitted to the port P3 of the server 50 via the port P13 of the first communication control device 3. Here, this range detection packet also serves as a port width detection packet. Further, it is assumed that the port LP6 is a port different from each of the ports LP4 and LP5 and newly assigned to the first information processing device 30 by V.
  • the range detection packet is received by the detection port detection unit 91 of the server 50, and the port number of the port P13 is detected (step S622).
  • the detection port information transmission unit 92 transmits the detection port information, which is a packet including the detected port number of the port P13 in the payload, to the first information processing device 30 via the port P13 (Step S62 3 ).
  • the detection port information is received by the detection port information receiving unit 71. Further, since the range detection packet also serves as a port width detection packet, the communication unit 11 passes the detection port information to the port width detection port information receiving unit 74.
  • the port width detecting unit 75 performs the first communication control based on the port numbers of the ports Pll, P12, and P13 of the first communication control device 3 received by the port number detecting port information receiving unit 84.
  • the port width of the device 3 is detected (step S620). Specifically, the smaller of the difference between the port P12 and the port P11 and the difference between the port P13 and the port P12 is detected as the port width of the first communication control device 3. In this specific example, it is assumed that the port width is detected as “1”.
  • the bubble packet transmitting unit 12 transmits the bubble packet to the bubble packet transmission target ports in the range indicated by the bubble packet transmission target port information (step S624).
  • This bubble packet is transmitted from port LP6 of first information processing device 30.
  • the bubble packet indicates the port width indicated by the port width information of the second communication control device 4 received by the port width receiving unit 18. (“1” in this specific example).
  • the bubble packet is transmitted from the port P14 of the first communication control device 3 to the port P15.
  • the message is transmitted through the port of Note that, depending on the characteristics of the second communication control device 4, there is a case where a bubble packet can be accepted at the port LP2.
  • the first information processing device 30 and the second information processing device 40 Further processing will be performed to ensure that communication between them can be established.
  • Range detection packet transmitter 13 transmits the range detection packet from port LP7 of first information processing device 30 to port P3 of server 50 (step S625).
  • the port LP7 is a port different from the port LP6, and is a port newly assigned in the first information processing device 30. Since port LP7 is a new port, port P16 through which the range detection packet passes is different from port P15.
  • the range detection packet transmitted via port P16 is accepted by detection port detection section 91 of server 50, and the port number of port P16 is detected (step S626).
  • the detection port information transmitting unit 92 transmits the detection port information, which is a packet including the detected port number in the payload, to the first information processing device 30 via the port P16 of the first communication control device 3.
  • Step S627 The detection port information transmitted from the server 50 is received by the detection port information receiving unit 71. Then, the range detection unit 72 detects the range of the port including the bubble packet transmission port based on the port positions of the port P13 and the port P16 (Step S628). In this detection, the range from the port position of the port P13 to the port position that should be allocated immediately before the port P16 is detected as a range including the bubble packet transmission port. Regardless of the characteristics of the first communication control device 3, since port P15 and port P16 are different, the range does not include port P16.
  • the port position that should be allocated immediately before port P16 is the port width of the first communication control device 3 detected by the port width detection unit 75 from the port number of port P16 ("1" in this specific example). ) Is the position indicated by the port number.
  • the range transmitting unit 73 transmits the range information indicating the range of the port detected by the range detecting unit 72 to the server 50 together with the instruction to transmit to the second information processing device 40 (Step S629). Further, the port number transmission unit 76 also transmits the port number information indicating the port number of the first communication control device 3 to the server 50 together with the instruction to transmit the port number information to the second information processing device 40 (step S629).
  • the information is relayed in the server 50, and the port P2 of the second communication control device 4 is Is transmitted to the second information processing device 40 through the communication (step S630).
  • the range information is received by the range receiving unit 27.
  • the port width information is received by the port width receiving unit 28.
  • the reply packet transmitting unit 29 transmits the reply packet to the port in the range indicated by the range information received by the range receiving unit 27 (Step S631).
  • This reply packet is transmitted from port LP6 of first information processing device 30. If the range information is a range including a plurality of ports, the reply packet is the port width indicated by the port width information of the first communication control device 3 received by the port width receiving unit 28 (this specific example). Then, it is transmitted every "1"). In this specific example, as shown in FIG. 38, the return packet is transmitted via the port P9 of the second communication control device 4. Since the second communication control device 4 is not a PS NAT, all return packets transmitted to the first communication control device 3 are transmitted via the port P9. In this way, the second information processing device 40 transmits the port allocation packet to the first communication control device 3 from the port LP2 so that all return packets are transmitted from the port P9. did.
  • the return packet transmitted to the bubble packet transmission port through which the bubble packet transmitted to the port P9 has passed is the first communication control device.
  • the address is converted in step 3, and is received by the reply bucket receiving unit 24 of the first information processing device 30 (step S632).
  • a plurality of return packets may be accepted by the first information processing device 30.
  • the reason for transmitting the port assignment packet in the communication system according to the present embodiment will be briefly described.
  • the port P9 is allocated in the second communication control device 4. Since the device on the receiving side is not a PS NAT (see Fig. 29), the second communication control device 4 is not a PS NAT (ie, the port assignment rule is not a Port Sensitive type). Therefore, by transmitting a reply packet from the port LP2 that has transmitted this port assignment packet to the first communication control device 3, The reply packet is transmitted via the port P9 of the second communication control device 4 assigned by transmitting the port assignment packet.
  • the port P9 By detecting a range including the port P9 and transmitting a bubble packet to the range, at least one bubble packet can be transmitted to the port P9. Then, by sending a reply packet from port LP2 to the port range including the bubble packet sending port, the port of the first communication control device 3 through which the bubble packet sent to port P9 has passed is Reply packets can be sent via port P9. As a result, even if the first communication control device 3 uses the PR NAT and the PS NAT, the reply packet is accepted by the first information processing device 30, and the first information processing device 30 Communication with the second information processing device 40 can be established. As described above, the port assignment packet is used to assign the port through which the reply packet passes through to the second communication control device 4 (in other words, to determine the range of ports to which the bubble packet is to be transmitted). What is sent.
  • Example 2 a case will be described where the second communication control device 4 uses PS NAT and the first communication control device 3 uses something other than PS NAT. It is assumed that the second information processing device 40 is the calling side, as in the first embodiment.
  • a port width detection packet, a range detection packet, and a port assignment packet are transmitted from the second information processing device 40, the port width of the second communication control device 4 is detected, and the bubble packet transmission target is transmitted.
  • the operation of detecting the position of the port and determining the characteristics of the second communication control device 4 is performed in the same manner as in the first embodiment.
  • the first information processing device 30 Will know that the second communication control device 4 is PS NAT. Then, the first information processing device 30 performs the processing from step S601 to step S614 and the first communication control device 3 on the called side (the first information processing device 30 side) in step S504.
  • the process of determining the characteristics (the process described with reference to FIGS. 34 and 35 in the specific example 1) is executed. These processes are the same as described in the first embodiment except that the receiving side and the transmitting side are switched. And the description is omitted.
  • the first communication control device 3 since the first communication control device 3 does not use PA NAT, it is determined that the called side is the receiving side (step S506). Then, according to the mode in which the receiving side and the transmitting side are switched in the specific example 1, transmission of a bubble packet, detection of a range including a bubble packet transmission port, transmission of a reply packet, and the like are performed, and the first information is transmitted. Communication between the processing device 30 and the second information processing device 40 will be established. The detailed description thereof is the same as that of the specific example 1, and the description is omitted.
  • the port allocation packet is also transmitted with the same port (port LP2) as the port that transmitted the first range detection packet.
  • the same port (port LP3) that transmitted the range detection packet may also be transmitted.
  • the target port for transmitting bubble packets is from the port assigned next to port P8 to port P10.
  • the port allocation packet and the two range detection packets are transmitted from different ports (each of which is a port newly allocated to the second information processing device 40). You may do it.
  • the bubble packet transmission target port starts from the port assigned next to the port of the second communication control device 4 that has passed the first range detection packet and has received the second range detection packet that has passed the second range detection packet. Up to the port assigned just before the port of the communication control device 4.
  • these bubble packet transmission target ports are described as the minimum ports, and a wider V and port range including these bubble packet transmission target ports may be used as bubble packet transmission target ports. .
  • transmission of a bubble packet may be performed from port PL7 instead of port PL6.
  • the transmission range of the reply packet is from the port assigned after port P13 to port P16.
  • the bubble packet and the two range detection packets may also be transmitted at different ports (assuming that the ports are newly assigned ports in the first information processing device 30).
  • the range of the port including the bubble packet transmission port is changed from the port assigned next to the port of the first communication control device 3 through which the first range detection packet has passed, to the second range detection packet. Up to the port assigned immediately before the port of the first communication control device 3 that has passed through.
  • the range of ports including these bubble packet transmission ports should be the minimum range. A wider port range including these port ranges may be set as the port range including the bubble packet transmission port.
  • one packet has a plurality of roles in order to reduce the number of communications between the server 50 and the information processing device, and the packet communication is performed efficiently. Force described in the case Packet transmission may be performed so that one packet has one role. Further, in each of the specific examples described above, the case where the characteristic determination of the communication control device and the establishment of communication between the information processing devices are performed in parallel has been described, but these processes may be performed separately. In such a case, the characteristic determination port detection unit 95 and the characteristic determination port information transmission unit 96 may be used in the characteristic determination.
  • the first communication control device 3 and the second communication control device 4 are the first communication control devices except when both are PS NATs. Communication between the information processing device 30 and the second information processing device 40 can be established. Furthermore, the establishment of the communication can be executed without making detailed judgments only by judging whether the communication control device uses PS NAT.
  • port width detection, port range detection including a bubble packet transmission port, and bubble packet transmission target port detection are performed in the information processing apparatus. Any one or more of these processes may be performed on the server 50 in the same manner as in the first embodiment!
  • the bubble packet may be transmitted to all ports in the communication control device on the receiving side. By doing so, a bubble packet can be transmitted to the port used in transmitting the port assignment packet.
  • a return packet may be transmitted to a port other than the well-known port, excluding the port of the well-known port, for which the usage is predetermined in advance.
  • the position of the port serving as the base point may be notified to the information processing apparatus on the transmission side.
  • the communication system includes an information processing device that transmits a bubble packet and a server that performs a process for detecting a port range including a bubble packet transmission port.
  • This server may be two or more servers), and may be a system for detecting a port range including the bubble packet transmission port. That is, the communication system according to the present invention may be the following communication system.
  • This communication system is a communication system including an information processing device, a communication control device for controlling communication of the information processing device, and a server. The information processing device is connected to the communication control device via the communication control device.
  • a bubble packet transmitting unit that transmits one or more bubble packets for keeping a transmission history, and a port including one or more bubble packet transmitting ports that are ports of a communication control device used for transmitting one or more bubble packets.
  • a range detection packet transmitting unit that transmits a range detection packet used for detecting the range to the server, wherein the server receives the range detection packet, and A range detection unit that detects a range of ports including one or more bubble packet transmission ports based on the surrounding detection packet.
  • the transmission destination of the bubble packet is, for example, a communication control device that controls communication of another information processing device that is a communication partner that may be another communication control device that is a communication partner of the information processing device. And so on.
  • the range of the port detected by the server may be transmitted to the information processing device by the transmission unit, or may be passed to the information processing device by another method.
  • information indicating the port range may be recorded on a recording medium, and the information processing apparatus may read out the recording medium power information.
  • the information may be displayed, and the user may input information indicating the range of the port to the information processing apparatus by looking at the display.
  • one or more bubble packets may be transmitted in the communication system.
  • Another communication system is a communication system including an information processing device, a communication control device that controls communication of the information processing device, and a server, and the information processing device is connected to the communication control device via the communication control device.
  • a bubble packet transmitting unit that transmits one or more bubble packets for leaving a transmission history in the communication control device, and one or more bubble packet transmission ports that are ports of the communication control device used for transmitting one or more bubble packets.
  • a range detection bucket transmitting unit that transmits a range detection packet used to detect a range of ports including a packet to the server, and a detection unit that indicates the position of the port of the communication control device through which the range detection packet has passed.
  • a detection port information receiving unit for receiving port information; and one or more bubble packet transmission ports based on the detection port information received by the detection port information receiving unit.
  • a range detection unit that detects a range of a port including the port, wherein the server receives the range detection packet, and detects a position of a port of the communication control device through which the range detection packet has passed.
  • a detection unit, and a detection port information transmission unit that transmits detection port information indicating the position of the port detected by the detection port detection unit to the information processing device.
  • the range may be detected by the information processing device other than the server.
  • the destination of the bubble packet may be, for example, another communication control device that is a communication partner of the information processing device.
  • a communication control device that controls communication of the processing device may be used.
  • the range of the port detected by the information processing device may be transmitted to another information processing device by the transmission unit, or may be passed to another information processing device by another method. Is also good.
  • information indicating the port range may be recorded on a recording medium, and another information processing apparatus may read out the recording medium power information. May be displayed, and by looking at the display, the user may input information indicating the range of ports to another information processing apparatus.
  • one or more bubble packets may be transmitted in the communication system.
  • the case where the first server 6, 60, and the server 50 have a function of notifying the information processing device of the IP address of the communication control device of the other party has been described.
  • the function may be realized on a server different from the first server 6 or the like. That is, a server that notifies one information processing device of the address of the other communication control device and a server that performs a process related to a range detection packet and the like may be different servers.
  • processing for notifying one information processing apparatus of the address of the other information processing apparatus processing for calling information processing apparatus to call information processing apparatus of the other party (called side), SIP ( Session Initiation Protocol) may be used.
  • a return packet is transmitted for each port width indicated by the port width information.
  • a return packet may be transmitted at a port interval "1" related to the port width. .
  • a reply packet to transmit a reply packet to the port range indicated by the range information is transmitted to all ports in the communication control device on the transmitting side. Is also good. By doing so, a reply packet can be transmitted to the bubble packet transmission port used for transmitting the bubble packet.
  • the reply packet may be transmitted to all ports in the range. In this case, if all ports are used, and if they are used, even if the purpose of use is determined, a reply packet is sent to a port other than the well-known port, excluding the well-known port. May be. Ma
  • the position of the base port may be notified to the information processing apparatus on the receiving side.
  • the type of NAT used in the communication control device is determined by the first Sano 6 or the like or by the information processing device.
  • the characteristics (NAT type) of the communication control device input from the information processing device by manual input or the like by the user may be held in the first server 6 or the like, or the communication control
  • the characteristics are stored in storage means (for example, a non-volatile memory) held by the device, and the first server 6 or the like reads the stored characteristics to obtain the characteristics of the communication control device. May be determined.
  • the characteristics of the communication control device may be stored in a device other than the communication control device. For example, a predetermined database server may store the characteristics in association with the ID or model number of the communication control device.
  • the timing of the detection is not limited. That is, even after a request to establish communication from any of the information processing devices can be made, or when the information processing device is connected to the first server 6 or the like, the characteristics can be determined in advance. You can! / ,.
  • the first server 6 may not be transmitted, and may be passed to the information processing device by manual input by the user. Alternatively, obtain the port width or the like stored in the communication control device or the like.
  • the port for transmitting a bubble packet is notified from the first server 6 or the like or the information processing apparatus on the receiving side to the information processing apparatus on the transmitting side
  • the port to be transmitted with the bubble packet described above is used.
  • the information processing apparatus on the transmitting side may be set in advance, or the information processing apparatus on the transmitting side may determine the position of the bubble packet transmission target port by manual input by the user or by accessing a predetermined server. You may try to detect it.
  • Embodiments 13 to 13 the case has been described where the first server and the second server directly communicate with each other.
  • the first server and the second server may Information between servers (for example, the port number of port P8 in FIG. 12) via a predetermined shared recording medium May be shared.
  • bubble packet transmission target port information is transmitted in order to limit the bubble packet transmission target port to a predetermined port.
  • the target port information may be transmitted merely for specifying the destination port of the bubble packet, not for limiting the bubble packet transmission target port.
  • each information processing apparatus is connected to communication line 5 via only one communication control device.
  • communication lines are connected via a plurality of communication control devices. Even if it is connected to 5 (that is, multi-stage NAT), communication between information processing devices can be established.
  • the first communication control device 3 and the second communication control device 4 are described as having NAT functions.
  • the second communication control device 4 may have a function of a packet filtering firewall in place of the NAT function or together with the NAT function.
  • the packet filtering is, for example, for selecting a received packet based on the above-described reception filter rule.
  • the local side the side of the first information processing device 1 and the like
  • the communication line 5 the communication line 5
  • the second communication control device 4 has a firewall function based on such a reception filter rule, the role on the local side (the side of the second information processing device 2 etc.) and the global side By transmitting a reply packet via the target port for transmitting bubble packets, communication between the first information processing device 1 and the like and the second information processing device 2 and the like can be established.
  • the first information processing device 1 and the like, and the second information processing device 2 and the like may or may not implement a function of a firewall as an application.
  • the first server 6 and the like described in the case where the first server 6 and the like are specified by the IP address have the domain name (for example, server, pana. Net). Etc.).
  • the first server 6 or the like can be specified by converting the domain name into an IP address using a DNS server.
  • IPv4 Internet
  • IPv6 Internet Protocol version 6
  • each process may be realized by centralized processing by a single device (system), or a plurality of devices. It may be realized by distributed processing by.
  • each component may be configured by dedicated hardware, or a component that can be realized by software may be configured by software under program control.
  • the software for realizing the information processing device in each of the above embodiments is a program as described below. That is, the program is transmitted to the computer via the first communication control device that controls the communication of the first information processing device and the second communication control device that controls the communication of the second information processing device. Is a program for executing a process in a first information processing device communicating with a second information processing device, and stores a transmission history in the first communication control device via the first communication control device.
  • Packet transmitting step for transmitting a bubble packet to the second communication control device for transmitting a bubble packet to the second communication control device; and transmitting the second information to a bubble packet transmission port, which is a port of the first communication control device, used for transmitting the bubble packet.
  • a reply packet receiving step of receiving a reply packet transmitted from the processing device via the second communication control device.
  • the program may further cause the computer to further execute a range detecting packet transmitting step of transmitting a range detecting packet used to detect a range of a port including a bubble packet transmitting port. ⁇ .
  • the range detecting buckets may be transmitted before and after the bubble packet transmission in the bubble packet transmitting step.
  • the transmission of bubble packets is performed. Before and after the transmission, the range detection packet may be transmitted to different addresses.
  • a bubble packet transmission target port information indicating a position of a bubble packet transmission target port, which is a target port for transmitting a bubble packet in the second communication control device is transmitted to the computer.
  • the target port reception step may be further executed, and in the bubble packet transmission step, the bubble packet may be transmitted to the bubble packet transmission target port indicated by the bubble packet transmission target port information.
  • the target port for transmitting the bubble packet transmits the information between the second information processing device and the server that establishes the communication between the first information processing device and the second information processing device.
  • the port may be a port for transmitting and receiving data.
  • a port width detection packet for detecting a port width in the first communication control device is transmitted to the computer via the first communication control device.
  • the packet transmission step may be further executed.
  • the first communication control device transmits a bubble packet from the second information processing device to the second communication control device via the second communication control device.
  • the program causes the computer to further execute a range receiving step of receiving range information that is information indicating a range of a port to which a reply packet is transmitted. You may send a reply packet to the port.
  • the program causes the computer to further execute a port width receiving step of receiving port width information that is information indicating a port width in the second communication control device. Send a reply packet for each port width shown.
  • the software that implements the information processing device according to each of the above embodiments is a program as described below.
  • this program stores the first information processing device in the computer.
  • a first information processing device that communicates with a second information processing device via a first communication control device that controls communication of the second information processing device and a second communication control device that controls communication of the second information processing device
  • the first communication control device transmits a transmission history from the second information processing device to the second communication control device via the second communication control device.
  • a bubble packet to be left is transmitted, and one or more ports including at least the port of the second communication control device used for transmitting the bubble packet from the second information processing device are transmitted. This is for executing a reply packet transmitting step of transmitting a reply packet.
  • the program causes the computer to further execute a range accepting step of accepting range information that is information indicating a range of a port to which a reply packet is to be transmitted. You may send a reply packet to the port.
  • the program causes the computer to further execute a port width receiving step of receiving port width information which is information indicating a port width in the second communication control device.
  • a reply packet may be sent for each port width indicated by the information.
  • the software that implements the server in each of the above embodiments is the following program.
  • the program includes, on the computer, the first information processing device and the second information processing device, the first information processing device controlling the communication of the first information processing device, and the second information processing device.
  • a program for executing processing in a server that establishes communication performed through a second communication control device that controls device communication the program comprising a first information processing device and a second information processing device;
  • An information transmission / reception step for transmitting / receiving information, a characteristic determination step for determining characteristics of the first communication control device and the second communication control device, and a first A transmission / reception determining step of determining one of the information processing apparatus and the second information processing apparatus as a transmission side (transmission side information processing apparatus) and determining the other side as a reception side (reception side information processing apparatus).
  • the computer controls the communication of the receiving side information processing apparatus.
  • the transmission-side information processing device sends a bubble packet for leaving a transmission history to the communication control device (transmission-side communication control device) that controls the communication of the transmission-side information processing device.
  • a bubble packet transmission target port transmitting step of transmitting bubble packet transmission target port information indicating a position of a bubble packet transmission target port, which is a transmission target port, to the transmission side information processing apparatus may be further executed.
  • the bubble packet transmission target port indicated by the bubble packet transmission target port information is the port of the receiving communication control device used for communication between the information transmitting / receiving unit and the receiving information processing device. You can.
  • the computer is a port of the transmission-side communication control device that is used by the transmission-side information processing device to transmit a bubble packet to a bubble packet transmission target port in the reception-side communication control device.
  • the range detection step of detecting the range of the port including the bubble packet transmission port, and the bubble packet detected in the range detection step A range transmitting step of transmitting range information that is information indicating a range of a port including a transmission port.
  • detection may be performed based on range detection packets transmitted to a plurality of addresses.
  • a port width detection packet transmitted from the transmission side information processing device via the transmission side communication control device for detecting the port width in the transmission side communication control device is transmitted to the computer.
  • a port width transmission step of transmitting the width information is transmitted to the computer.
  • the detection port information receiving step for receiving detection port information indicating the position of the port of the first communication control device through which the range detection packet has passed, the detection port information Based on the detection port information received in the reception step, a range detection step for detecting a range of ports including the bubble packet transmission port and a range of ports including the bubble packet transmission port detected in the range detection step are indicated.
  • a range transmission step of transmitting range information which is the information that is to be transmitted.
  • the port width detection port information receiving step of receiving port width detection port information indicating the position of the port of the first communication control device through which the port width detection packet has passed A port width detection step of detecting a port width in the first communication control device based on the port width detection port information received in the port width detection port information reception step; A port width transmission step of transmitting the port width information, which is information indicating the port width of the first communication control device, to the second information processing device via the server.
  • a bubble packet transmission target port information indicating a position of a bubble packet transmission target port, which is a target port for transmitting a bubble packet in the second communication control device is transmitted to the computer.
  • the target port reception step may be further executed, and in the bubble packet transmission step, the bubble packet may be transmitted to the bubble packet transmission target port indicated by the bubble packet transmission target port information.
  • the bubble packet transmission target port information is information indicating the position of one or more bubble packet transmission target ports.
  • the bubble packet may be transmitted to one or more of the indicated bubble packet transmission target ports.
  • the program further executes a port assignment packet transmission step of transmitting a port assignment packet for assigning a port for transmitting a reply packet to the computer to the first communication control device. Then, in the reply packet transmitting step, a reply bucket may be transmitted from the port of the first information processing device to which the port assignment packet has been transmitted.
  • the above program is used by the computer to detect a range of ports including a port assignment packet transmission port, which is a port of the first communication control device, used for transmitting a port assignment packet. And transmitting a range detection packet to be transmitted.
  • the software that implements the information processing device in each of the above embodiments is a program as described below.
  • this program provides the computer with an information processing device and information.
  • the detection port information reception step of receiving the detection port information indicating the position of the port of the communication control device through which the range detection packet has passed, and the detection port information reception step are performed by the computer.
  • the computer may further execute a range transmission step of transmitting range information that is information indicating a port range including one or more bubble packet transmission ports detected in the range detection step.
  • the software that implements the server device in each of the above embodiments is a program as described below.
  • this program is a program for causing a computer to execute processing in a server constituting a communication system including an information processing device, a communication control device that controls communication of the information processing device, and a server.
  • Used to detect the range of ports including one or more bubble packet transmission ports which are ports of the communication control device, used for transmitting one or more bubble packets transmitted to leave a transmission history on the device.
  • the information processing device receives the transmitted range detection packet and detects the range of the port including one or more bubble packet transmission ports based on the range detection packet, and the range detection step detects the range. Transmit range information, which is information indicating the range of ports including one or more of the bubble packet transmission ports A circumference transmission step is for to run.
  • the other programs are stored in a computer in an information processing device, a communication control device that controls communication of the information processing device, and a server that constitutes a communication system including the server.
  • Transmission of one or more bubble packets which is a port of the communication control device and is used to transmit one or more bubble packets transmitted to leave a transmission history in the communication control device.
  • a detection port used to detect a range of ports including ports which receives a range detection packet transmitted from the information processing device and detects a position of a port of the communication control device through which the range detection packet has passed.
  • a detection step and a detection port information transmission step of transmitting detection port information indicating the position of the port detected in the detection port detection step to the information processing apparatus are executed.
  • this program is recorded on a predetermined recording medium (for example, an optical disk such as a CD-ROM, a magnetic disk, or a semiconductor memory) which can be distributed by being downloaded by a server or the like. May also be distributed.
  • a predetermined recording medium for example, an optical disk such as a CD-ROM, a magnetic disk, or a semiconductor memory
  • the computer that executes this program may be a single computer or a plurality of computers. That is, centralized processing may be performed or distributed processing may be performed. Industrial applicability
  • the communication system or the like according to the present invention can establish communication between a plurality of information processing devices via a communication control device, and is useful as a device for performing communication between information processing devices. It is.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

 第1の情報処理装置(1)は、第1の通信制御装置(3)を介して、第1の通信制御装置(3)に送信履歴を残すためのバブルパケットを第2の通信制御装置(4)に送信し、第2の情報処理装置(2)は、バブルパケットの送信で用いられる、第1の通信制御装置(3)のポートであるバブルパケット送信ポートを少なくとも含む1以上のポートに対して返信パケットを送信し、第1の情報処理装置(1)は、バブルパケット送信ポートに対して、第2の情報処理装置(2)から第2の通信制御装置(4)を介して送信される返信パケットを受け付ける。このような構成により、通信制御装置(NAT)を介して通信を行う複数の情報処理装置間における通信の確立を、より確実に行うことができる通信システムを提供する。

Description

明 細 書
通信システム、情報処理装置、サーバ、および通信方法
技術分野
[0001] 本発明は、複数の情報処理装置間における通信を確立させる通信システム等に関 するものである。
背景技術
[0002] まず、 NAT (Network Address Translation)の分類について説明する。 NAT には、送信ポート割り当てルールと受信フィルタルールがあり、その組み合わせにより NATの分類がなされる。送信ポート割り当てルールには、パケットの宛先(IPアドレス 、ポート)に依存せず、 NATのローカル側(たとえば、 LAN側)の情報処理装置のポ ートと IPアドレスが同じであれば、 NATに割り当てられるグローバル側(たとえば、ィ ンターネットなどの WAN側)のポートが同一となる Coneタイプと、パケットの宛先アド レスごとに新しいポートが割り当てられる Address Sensitiveタイプと、パケットの宛 先ポートごとに新しいポートが割り当てられる Port Sensitiveタイプがある。 NATの ローカル側力 パケットが送信されたポートに対してグローバル側からのパケットの受 信可能性を判断する受信フィルタルールには、そのポートからパケットを送信したアド レスからのみしかパケットを受信しない Address Sensitiveフィルタと、そのポートか らパケットを送信したポートからのみしかパケットを受信しな 、Port Sensitiveフィル タと、フィルタが存在しない Noフィルタがある。これらの送信ポート割り当てルールと、 受信フィルタルールとを組み合わせることにより、 NATを下記の 5種類に分類するこ とがでさる。
[0003] Full Cone NAT:送信ポート割り当てルールが Coneタイプであり、受信ポートフ ィルタルールが Noフィルタであるもの。
[0004] Restricted Cone NAT:送信ポート割り当てルールが Coneタイプであり、受信 ポートフィルタルールが Address Sensitiveフィルタであるもの。
[0005] Port Restricted Cone NAT:送信ポート割り当てルールが Coneタイプであり
、受信ポートフィルタルールが Port Sensitiveフィルタであるもの。 [0006] Address Sensitive Symmetric NAT:送信ポート割り当てルールが Address Sensitiveタイプであり、受信ポートフィルタルールが Address Sensitiveフィルタ であるもの。
[0007] Port Sensitive Symmetric NAT:送信ポート割り当てルールが Port Sensit iveタイプであり、受信ポートフィルタルールが Port Sensitiveフィルタであるもの。
[0008] このような NATを用いた通信において、図 40で示されるような PC1と PC2との間で のサーバを介さな 、通信を確立する場合につ!、て考えられてきて!/、る。
[0009] 上記の技術内容は、例えば、 D. Yon、「Connection— Oriented Media Trans port in SDP」、 [Online]、 2003年 3月、 [2003年 9月 29曰検索]、インターネット < URL: http: / / www. ietf. org/ internet— drafts/ draft— ietf—mmusic—s dp— comedia— 05. txt> (以下、「非特許文献 1」という。)、または Y. Takeda、「Sy mmetric NAT Traversal using STUN」、 [Online]、 2003年 6月、 [2003年 9月 29日検索]、インターネット < URL: http : ZZwww. ietf. org/internet-dra ftsZdraft—takeda— symmetric— nat— traversal— 00. txt> (以下、「非特許文献 2」という。)に記載されている。さらに、】. Rosenberg, J. Weinberger, C. Huitem a、 R. Mahy、「S fUN ― ; simple Traversal oi User Datagram Protocol (UDP) Through Network Address Translators (NATs)」、 [Online]、 2003年 3月、 Network Working Group Request for Comments: 3489、 [2003年 9月 29日検索]、インターネットく URL : http : ZZwww. ietf. org/rfc /rfc3489. txt> (以下、「非特許文献 3」という。)に記載されている。
[0010] しかしながら、この場合においても、通信を確立することのできない NATの組み合 わせがあり得る。図 40において、 NAT1のローカル側に接続された情報処理装置で ある PC1から PC2に対して通信を行う場合に、 NAT1を送信側の NAT、 NAT2を受 信側の NATと呼ぶこととする。すると、 PC 1と PC2との間で通信を確立することがで きる NATの組み合わせは、図 41で示されるようになる。なお、図 41における NATの 略称については、下記の実施の形態において説明するとおりである。
[0011] ここで、図 41における「* 1」の接続は、従来力も知られており、「* 2」の接続は、上 記非特許文献 1に記載されており、「* 3」の接続は、上記非特許文献 2に記載されて いる。また、通信を確立することができる NATの組み合わせであっても、「* 3」の接 続においては、 NATのポート幅が確実にわかり、かつ、受信側の NATの最新ポート の位置を確実に知ることができない限り、通信を確立することができず、不確実性が 残るという問題もある。
[0012] また、情報処理装置間の通信を確立する前提として、一方の情報処理装置から送 信されたバブルパケット (NATに送信履歴を残すために送信されるパケット)の通過 した NATのポートの範囲を検出した!/、。
発明の開示
[0013] 本発明の目的のひとつは、通信を制御する通信制御装置を介して通信を行う複数 の情報処理装置間における通信の確立を、より確実に行うことができる通信システム 等を提供することである。
[0014] 本発明の他の目的は、情報処理装置力 送信されたバブルパケットの通過した通 信制御装置におけるポートの範囲を検出することができる通信システム等を提供する ことである。
[0015] 上記目的を達成するため、本発明による通信システムは、第 1の情報処理装置と、 第 2の情報処理装置と、前記第 1の情報処理装置の通信を制御する第 1の通信制御 装置と、前記第 2の情報処理装置の通信を制御する第 2の通信制御装置と、前記第 1の情報処理装置と前記第 2の情報処理装置間の通信を確立させるサーバとを備え た通信システムであって、前記第 1の情報処理装置は、前記第 1の通信制御装置を 介して、前記第 1の通信制御装置に送信履歴を残すためのバブルパケットを前記第 2の通信制御装置に送信するバブルパケット送信部と、前記バブルパケットの送信で 用いられる、前記第 1の通信制御装置のポートであるバブルパケット送信ポートに対 して、前記第 2の情報処理装置から前記第 2の通信制御装置を介して送信される返 信パケットを受け付ける返信パケット受付部と、を備え、前記第 2の情報処理装置は、 前記バブルパケット送信ポートを少なくとも含む 1以上のポートに対して前記返信パ ケットを送信する返信パケット送信部を備えたものである。
[0016] このような構成により、バブルパケットの送信によって割り当てられた第 1の通信制 御装置のポートに対して、返信パケットを送信することによって、第 1の情報処理装置 と第 2の情報処理装置間における通信を確立することができ得る。
[0017] また、本発明による第 1の情報処理装置は、第 1の情報処理装置の通信を制御する 第 1の通信制御装置と、第 2の情報処理装置の通信を制御する第 2の通信制御装置 とを介して、前記第 2の情報処理装置と通信する前記第 1の情報処理装置であって、 前記第 1の通信制御装置を介して、前記第 1の通信制御装置に送信履歴を残すた めのバブルパケットを前記第 2の通信制御装置に送信するバブルパケット送信部と、 前記バブルパケットの送信で用いられる、前記第 1の通信制御装置のポートであるバ ブルパケット送信ポートに対して、前記第 2の情報処理装置から前記第 2の通信制御 装置を介して送信される返信パケットを受け付ける返信パケット受付部と、を備えたも のである。
[0018] このような構成により、第 2の情報処理装置との間で通信を確立させるために用いら れるバブルパケット送信ポートを、バブルパケットを送信することによって第 1の通信 制御装置に割り当てることができ、そのバブルパケット送信ポートに送信された返信 パケットを受け付けることによって、第 1の情報処理装置と第 2の情報処理装置との間 の通信を確立することができ得る。
[0019] また、本発明によるサーバは、第 1の情報処理装置、および第 2の情報処理装置が 、前記第 1の情報処理装置の通信を制御する第 1の通信制御装置、および前記第 2 の情報処理装置の通信を制御する第 2の通信制御装置を介して行う通信を確立させ るサーバであって、前記第 1の情報処理装置、および前記第 2の情報処理装置と、情 報を送受信する情報送受信部と、前記第 1の通信制御装置、および前記第 2の通信 制御装置の特性を判断する特性判断部と、前記特性判断部による判断結果に応じ て、前記第 1の情報処理装置、および前記第 2の情報処理装置のいずれかを送信側 (送信側情報処理装置)に決定し、他方を受信側 (受信側情報処理装置)に決定す る送受信決定部と、を備えたものである。
[0020] このような構成により、第 1の通信制御装置、および第 2の通信制御装置の特性に 応じて、第 1の情報処理装置と第 2の情報処理装置との間での通信を確立できるよう に、第 1の情報処理装置、および第 2の情報処理装置の一方を送信側に決定し、他 方を受信側に決定することができる。 [0021] また、本発明によるサーバは、第 1の情報処理装置、および第 2の情報処理装置が 、前記第 1の情報処理装置の通信を制御する第 1の通信制御装置、および前記第 2 の情報処理装置の通信を制御する第 2の通信制御装置を介して行う通信を確立させ るサーバであって、前記第 1の情報処理装置から、前記第 2の通信制御装置に対す る前記第 1の通信制御装置に送信履歴を残すためのバブルパケットの送信で用 ヽら れる、前記第 1の通信制御装置のポートであるバブルパケット送信ポートを含むポー トの範囲を検出するための範囲検出用パケットを受け付け、当該範囲検出用パケット が通過した前記第 1の通信制御装置のポートの位置を検出する検出用ポート検出部 と、前記検出用ポート検出部が検出したポートの位置を示す検出用ポート情報を前 記第 1の情報処理装置に送信する検出用ポート情報送信部と、を備えたものである。
[0022] このような構成により、第 1の情報処理装置においてバブルパケット送信ポートを含 むポートの範囲を検出するために用いられる検出用ポート情報を第 1の情報処理装 置に送信することができる。
[0023] また、本発明によるサーバは、第 1の情報処理装置、および第 2の情報処理装置が 、前記第 1の情報処理装置の通信を制御する第 1の通信制御装置、および前記第 2 の情報処理装置の通信を制御する第 2の通信制御装置を介して行う通信を確立させ るサーバであって、前記第 1の情報処理装置が前記第 1の通信制御装置に送信履 歴を残すためのバブルパケットを送信する対象の前記第 2の通信制御装置における ポートであるバブルパケット送信対象ポートの位置を示すバブルパケット送信対象ポ ート情報を、前記第 1の情報処理装置に送信するバブルパケット送信対象ポート送 信部を備えたものである。
[0024] このような構成により、バブルパケット送信対象ポートの位置を、バブルパケット送信 対象ポート情報によって第 1の情報処理装置に知らせることができる。
[0025] また、本発明による通信システムは、情報処理装置と、前記情報処理装置の通信を 制御する通信制御装置と、サーバとを備えた通信システムであって、前記情報処理 装置は、前記通信制御装置を介して、前記通信制御装置に送信履歴を残すための 1以上のバブルパケットを送信するバブルパケット送信部と、 1以上の前記バブルパ ケットの送信で用いられる、前記通信制御装置のポートである 1以上のバブルバケツ ト送信ポートを含むポートの範囲を検出するために用いられる範囲検出用パケットを 前記サーバに送信する範囲検出用パケット送信部と、を備え、前記サーバは、前記 範囲検出用パケットを受け付け、当該範囲検出用パケットに基づいて 1以上の前記 バブルパケット送信ポートを含むポートの範囲を検出する範囲検出部を備えた、もの である。
[0026] このような構成により、情報処理装置力 送信された範囲検出用パケットによって、 サーバにおいてバブルパケット送信ポートを含むポートの範囲を検出することができ る。その検出されたバブルパケット送信ポートを含むポートの範囲に他の装置からパ ケットを送信することによって、そのパケットが情報処理装置で受け付けられ得ること になる。
[0027] また、本発明による通信システムは、情報処理装置と、前記情報処理装置の通信を 制御する通信制御装置と、サーバとを備えた通信システムであって、前記情報処理 装置は、前記通信制御装置を介して、前記通信制御装置に送信履歴を残すための 1以上のバブルパケットを送信するバブルパケット送信部と、 1以上の前記バブルパ ケットの送信で用いられる、前記通信制御装置のポートである 1以上のバブルバケツ ト送信ポートを含むポートの範囲を検出するために用いられる範囲検出用パケットを 前記サーバに送信する範囲検出用パケット送信部と、前記範囲検出用パケットが通 過した前記通信制御装置のポートの位置を示す検出用ポート情報を受け付ける検出 用ポート情報受付部と、前記検出用ポート情報受付部が受け付けた検出用ポート情 報に基づいて、 1以上の前記バブルパケット送信ポートを含むポートの範囲を検出す る範囲検出部と、を備え、前記サーバは、前記範囲検出用パケットを受け付け、当該 範囲検出用パケットが通過した前記通信制御装置のポートの位置を検出する検出用 ポート検出部と、前記検出用ポート検出部が検出したポートの位置を示す検出用ポ ート情報を前記情報処理装置に送信する検出用ポート情報送信部と、を備えた、も のである。
[0028] このような構成により、情報処理装置力 送信された範囲検出用パケットによって、 情報処理装置においてバブルパケット送信ポートを含むポートの範囲を検出すること ができる。その検出されたバブルパケット送信ポートを含むポートの範囲に他の装置 力もパケットを送信することによって、そのパケットが情報処理装置で受け付けられ得 ることになる。
図面の簡単な説明
[図 1]図 1は本発明の実施の形態 1による通信システムの構成を示すブロック図である
[図 2]図 2は同実施の形態による第 1の情報処理装置の構成を示すブロック図である
[図 3]図 3は同実施の形態による第 2の情報処理装置の構成を示すブロック図である
[図 4]図 4は同実施の形態による第 1および第 2のサーバの構成を示すブロック図で ある。
[図 5]図 5は同実施の形態による通信システムの動作を示すフローチャートである。
[図 6]図 6は同実施の形態における送受信の決定に関する処理を示すフローチャート である。
[図 7]図 7は同実施の形態における通信制御装置の特性の判断について説明するた めの図である。
[図 8]図 8は同実施の形態における通信制御装置の特性の判断について説明するた めの図である。
[図 9]図 9は同実施の形態における通信制御装置の特性の判断について説明するた めの図である。
[図 10]図 10は同実施の形態における通信の確立に関する処理を示すフローチヤ一 トである。
[図 11]図 11は同実施の形態におけるポート幅の検出について説明するための図で ある。
[図 12]図 12は同実施の形態における具体例について説明するための図である。
[図 13]図 13は同実施の形態における具体例について説明するための図である。
[図 14]図 14は同実施の形態における具体例について説明するための図である。
[図 15]図 15は同実施の形態における具体例について説明するための図である。 [図 16]図 16は同実施の形態における具体例について説明するための図である。 圆 17]図 17は同実施の形態における接続可能な通信制御装置の特性の組み合わ せを示す図である。
圆 18]図 18は本発明の実施の形態 2による第 1の情報処理装置の構成を示すブロッ ク図である。
圆 19]図 19は同実施の形態による第 2の情報処理装置の構成を示すブロック図であ る。
圆 20]図 20は同実施の形態による第 1および第 2のサーバの構成を示すブロック図 である。
[図 21]図 21は同実施の形態における通信の確立に関する処理を示すフローチヤ一 トである。
[図 22]図 22は同実施の形態における通信の確立に関する処理を示すフローチヤ一 トである。
[図 23]図 23は同実施の形態における通信の確立に関する処理を示すフローチヤ一 トである。
[図 24]図 24は本発明の実施の形態 3による通信システムの構成を示すブロック図で ある。
[図 25]図 25は本発明の実施の形態 4による通信システムの構成を示すブロック図で ある。
圆 26]図 26は同実施の形態による第 1の情報処理装置の構成を示すブロック図であ る。
圆 27]図 27は同実施の形態による第 2の情報処理装置の構成を示すブロック図であ る。
[図 28]図 28は同実施の形態によるサーバの構成を示すブロック図である。
[図 29]図 29は同実施の形態における送受信の決定に関する処理を示すフローチヤ ートである。
圆 30]図 30は同実施の形態における通信制御装置の特性の判断について説明す るための図である。 [図 31]図 31は同実施の形態における通信の確立に関する処理を示すフローチヤ一 トである。
[図 32]図 32は同実施の形態における通信の確立に関する処理を示すフローチヤ一 トである。
[図 33]図 33は同実施の形態における通信の確立に関する処理を示すフローチヤ一 トである。
[図 34]図 34は同実施の形態における具体例について説明するための図である。
[図 35]図 35は同実施の形態における具体例について説明するための図である。
[図 36]図 36は同実施の形態における具体例について説明するための図である。
[図 37]図 37は同実施の形態における具体例について説明するための図である。
[図 38]図 38は同実施の形態における具体例について説明するための図である。
[図 39]図 39は同実施の形態における接続可能な通信制御装置の特性の組み合わ せを示す図である。
[図 40]図 40は通信システムの一例を示す図である。
[図 41]図 41は従来の接続可能な NATの組み合わせを示す図である。
符号の説明
1 第 1の情報処理装置
2 第 2の情報処理装置
3 第 1の通信制御装置
4 第 2の通信制御装置
5 通信回線
6 第 1のサーバ
7 第 2のサーバ
11, 21, 61, 71 通信部
12, 22 バブルパケット送信部
13, 23 範囲検出用パケット送信部
14, 24 返信パケット送信部
15, 25 ポート幅検出用パケット送信部 16, 26 バブルパケット送信対象ポート受付部
17, 27 範囲受付部
18, 28 ポート幅受付部
19, 29 返信パケット送信部
62 情報送信部
63 特性判断部
64 送受信決定部
65 バブルパケット送信対象ポート送信部
66 範囲検出部
67 範囲送信部
68 ポート幅検出部
69 ポート幅送信部
発明を実施するための最良の形態
[0031] (実施の形態 1)
本発明の実施の形態 1による通信システムについて、図面を参照しながら説明する
[0032] 図 1は、本実施の形態による通信システムの構成を示すブロック図である。図 1にお いて、本実施の形態による通信システムは、第 1の情報処理装置 1と、第 2の情報処 理装置 2と、第 1の通信制御装置 3と、第 2の通信制御装置 4と、第 1のサーバ 6と、第 2のサーバ 7とを備える。第 1の通信制御装置 3、第 2の通信制御装置 4、第 1のサー バ 6、および第 2のサーバ 7は、有線または無線の通信回線 5を介して接続されてい る。この通信回線 5は、例えば、インターネットである。
[0033] なお、図 1では、第 1の通信制御装置 3、および第 2の通信制御装置 4にそれぞれ、 第 1の情報処理装置 1、および第 2の情報処理装置 2のみが接続されている場合に ついて示しているが、これ以外の装置が、第 1の通信制御装置 3、および第 2の通信 制御装置 4に接続されて 、てもよ 、。
[0034] 図 2は、第 1の情報処理装置 1の構成を示すブロック図である。図 2において、第 1 の情報処理装置 1は、通信部 11と、バブルパケット送信部 12と、範囲検出用パケット 送信部 13と、返信パケット受付部 14と、ポート幅検出用パケット送信部 15と、バブル パケット送信対象ポート受付部 16と、範囲受付部 17と、ポート幅受付部 18と、返信 パケット送信部 19とを備える。
[0035] 通信部 11は、バブルパケット送信部 12等の第 1の情報処理装置 1の内部の各構成 要素と、第 1の通信制御装置 3との間における通信を行う。
[0036] バブルパケット送信部 12は、通信部 11および第 1の通信制御装置 3を介して、パブ ルパケットを第 2の通信制御装置 4に送信する。ここで、バブルパケットとは、第 1の情 報処理装置 1と第 2の情報処理装置 2との間における通信を確立するために、第 1の 通信制御装置 3に送信履歴を残すためのパケットである。また、通信を確立するとは 、第 1の情報処理装置 1と、第 2の情報処理装置 2との間において、サーバを介さない ピアー ·ツー ·ピアー(Peer to Peer)の通信を開始することを 、う。また、送信履歴 を残すとは、第 1の通信制御装置 3において、後述する返信パケットを受け付けるた めのポートを割り当てる(ポートを開く)ことをいう。なお、一般に、その送信履歴を残 すことを目的としてバブルパケットが送信されるものであるが、所定のパケットが送信 された結果、返信パケットを受け付けるための送信履歴が第 1の通信制御装置 3に残 されてもよい (この場合、その送信履歴を残した所定のパケットが、バブルパケットとい うことになる)。このバブルパケットには、何らかの情報が含まれていてもよぐ何も情 報が含まれていなくてもよい。このバブルパケットは、例えば、 UDP (User Datagra m Protocol)のようなコネクションレス型のプロトコルによって送信される。
[0037] 範囲検出用パケット送信部 13は、範囲検出用パケットを第 1のサーバ 6または第 2 のサーバ 7に送信する。この範囲検出用パケットは、バブルパケット送信ポートを含む ポートの範囲を検出するために用いられるものである。ここで、バブルパケット送信ポ ートとは、バブルパケットの送信で用いられる、第 1の通信制御装置 3のポートのこと である。この範囲検出用パケットは、バブルパケットが送信される前に、および Zまた はバブルパケットが送信された後に、送信される。バブルパケットの送信の前後にお いて範囲検出用パケットを送信する場合には、その前後において、それぞれ異なる アドレス (IPアドレス)に範囲検出用パケットを送信してもよい。この範囲検出用バケツ トは、例えば、 UDPや、 TCP (Transmission Control Protocol)によって送信さ れる。この範囲検出用パケットには、何らかの情報が含まれていてもよぐ何も情報が 含まれていなくてもよい。
[0038] 返信パケット受付部 14は、第 2の情報処理装置 2から第 2の通信制御装置 4を介し て送信された返信パケットを受け付ける。この返信パケットは、第 1の通信制御装置 3 におけるバブルパケットの送信によって割り当てられたポート、すなわちバブルバケツ ト送信ポートに対して、送信されたものである。この返信パケットを受け付けることによ り、第 1の情報処理装置 1と第 2の情報処理装置 2との間での通信が確立することとな る。この返信パケットは、例えば、 UDPによって送信される。この返信パケットには、 何らかの情報が含まれて 、てもよく、何も情報が含まれて 、なくてもょ 、。
[0039] ポート幅検出用パケット送信部 15は、第 1の通信制御装置 3におけるポート幅を検 出するためのポート幅検出用パケットを、第 1の通信制御装置 3を介して第 1のサー バ 6に送信する。ここで、ポート幅とは、連続して使用される (割り当てられる)ポートの 幅(間隔)のことである。例えば、ポート幅が「1」の場合には、ポート番号「20000」の ポートの次に使用されるポートは、ポート番号「20001」のポートである。一方、ポート 幅力「2」の場合には、ポート番号「20000」のポートの次に使用されるポートは、ポー ト番号「20002」のポートとなる。このポート幅検出用パケットは、例えば、 UDPや、 T CPによって送信される。このポート幅検出用パケットには、何らかの情報が含まれて いてもよぐ何も情報が含まれていなくてもよい。
[0040] バブルパケット送信対象ポート受付部 16は、バブルパケット送信対象ポート情報を 受け付ける。ここで、バブルパケット送信対象ポート情報とは、第 2の通信制御装置 4 におけるバブルパケットを送信する対象のポートであるバブルパケット送信対象ポー トの位置を示す情報である。例えば、バブルパケット送信対象ポートのポート番号力 バブルパケット送信対象ポート情報に含まれることにより、バブルパケット送信対象ポ ートの位置を第 1の情報処理装置 1が知ることができる。このバブルパケット送信対象 ポートとしては、例えば、第 2の情報処理装置 2が、第 1のサーバ 6との間で情報の送 受信を行うポートがある。
[0041] 以上のバブルパケット送信部 12からバブルパケット送信対象ポート受付部 16まで の各部は、第 1の情報処理装置 1が送信側の情報処理装置として動作する場合に用 いられる。ここで、送信側の情報処理装置とは、第 1の情報処理装置 1と第 2の情報 処理装置 2との間の通信を確立する際における、バブルパケットを送信する側のこと である。本実施の形態では、後述する送受信の入れ替えが行われない限り、バブル パケットを送信する側と、通信 (コネクション)の要求を出す側 (発呼側)とが同じである ため、送信側とは、通信の要求を出す側でもある。一方、その反対側の情報処理装 置、すなわちバブルパケットに対する返信パケット送信する側の情報処理装置を、受 信側の情報処理装置という。本実施の形態では、送受信の入れ替えが行われない 限り、返信パケットを送信する側と、通信の要求を受け取る側 (着呼側)とが同じであ るため、受信側とは、通信の要求を受け取る側でもある。以下に説明する範囲受付部 17から返信パケット送信部 19までの各部は、第 1の情報処理装置 1が受信側の情報 処理装置として動作する場合に用いられる。
[0042] 範囲受付部 17は、範囲情報を受け付ける。ここで、範囲情報とは、返信パケット送 信部 19が返信パケットを第 2の通信制御装置 4に送信するポートの範囲を示す情報 である。範囲情報では、第 2の通信制御装置 4におけるバブルパケット送信ポート (第 2の情報処理装置 2から第 1の通信制御装置 3へのバブルパケットの送信で用いられ たポート)を含むポートの範囲が、例えば、ポート番号によって示される。なお、範囲 情報では、ポートの上限のみ、もしくはポートの下限のみが示されることによりポート の範囲が示されてもよぐまたはポートの上限と下限とによってポートの範囲が示され てもよい。ここで、ポートの上限とは、ポート番号の大きい方のポートを指すものとし、 ポートの下限とは、ポート番号の小さい方のポートを指すものとする。
[0043] ポート幅受付部 18は、第 2の通信制御装置 4におけるポート幅を示す情報であるポ ート幅情報を受け付ける。
[0044] 返信パケット送信部 19は、第 2の通信制御装置 4におけるバブルパケット送信ポー トを少なくとも含む 1以上のポートに対して返信パケットを送信する。このときに、範囲 受付部 17が受け付けた範囲情報の示す範囲のポートに返信パケットを送信すること によって、第 2の通信制御装置 4におけるバブルパケット送信ポートを含むポートに対 して返信パケットを送信することができる。また、 2以上のポートに対して返信パケット を送信する場合には、ポート幅情報の示すポート幅ごとに返信パケットを送信する。 その結果、ポート幅情報の示すポート幅が 2以上の場合には、効率よく返信パケット を送信することができる。また、返信パケットは、例えば、第 1の情報処理装置 1が第 1 のサーバ 6と通信を行うポートから送信してもよ 、。
[0045] 図 3は、第 2の情報処理装置 2の構成を示すブロック図である。図 3において、第 2 の情報処理装置 2は、通信部 21と、バブルパケット送信部 22と、範囲検出用パケット 送信部 23と、返信パケット受付部 24と、ポート幅検出用パケット送信部 25と、バブル パケット送信対象ポート受付部 26と、範囲受付部 27と、ポート幅受付部 28と、返信 パケット送信部 29とを備える。ここで、第 2の情報処理装置 2における通信部 21から 返信パケット送信部 29までの各部は、第 1の情報処理装置 1、第 1の通信制御装置 3 と、第 2の情報処理装置 2、第 2の通信制御装置 4が入れ替わる以外、第 1の情報処 理装置 1における通信部 11から返信パケット送信部 19までの構成と同様であり、そ の説明を省略する。
[0046] なお、第 2の情報処理装置 2におけるバブルパケット送信部 22からバブルパケット 送信対象ポート受付部 26までは、第 2の情報処理装置 2が送信側として動作する場 合に用いられる。一方、範囲受付部 27から返信パケット送信部 29までは、第 2の情 報処理装置 2が受信側として動作する場合に用いられる。
[0047] 第 1の通信制御装置 3は、第 1の情報処理装置 1の通信を制御するものであり、い わゆるナット (NAT)を用いて、ローカル側(第 1の情報処理装置 1側)と、グロ一ノ レ 側(通信回線 5側)との通信を制御する。この NATには、フルコーンナット(Full Co ne NAT)や、レストリクティッドコーンナット(Restricted Cone NAT。以下、「R NAT」と略す)、ポートレストリクティッドコーンナット(Port Restricted Cone NA T。以下、「PR NAT」と略す)、アドレスセンシティブシンメトリックナット(Address S ensitive Symmetric NAT。以下、「 AS NAT」と略す)、ポートセンシティブシン メトリックナット(Port Sensitive Symmetric NAT。以下、「PS NAT」と略す) がある。
[0048] また、第 2の通信制御装置 4は、第 2の情報処理装置 2の通信を制御するものであり 、第 1の通信制御装置 3と同様に、ナットを用いている。後述するように、第 1の通信 制御装置 3と、第 2の通信制御装置 4の組み合わせとしては、 PS NAT同士の組み 合わせ以外で、第 1の情報処理装置 1と第 2の情報処理装置 2との間の通信を確立 することができ得る。なお、第 1の通信制御装置 3、および第 2の通信制御装置 4では 、ポートの割り当ては、所定のポート幅ごとに、ポート番号が増大するよう、あるいは減 少するように行われるものとする。以下の説明では、ポート番号が増大するように割り 当てられる場合について説明する。
[0049] 図 4は、第 1のサーバ 6、および第 2のサーバ 7の構成を示すブロック図である。図 4 において、第 1のサーバ 6は、通信部 61と、情報送受信部 62と、特性判断部 63と、 送受信決定部 64と、バブルパケット送信対象ポート送信部 65と、範囲検出部 66と、 範囲送信部 67と、ポート幅検出部 68と、ポート幅送信部 69とを備える。また、第 2の サーバ 7は、通信部 71を備える。
[0050] 通信部 61, 71は、情報送受信部 62などの第 1のサーバ 6の各部と、第 1の情報処 理装置 1や第 2の情報処理装置 2などとの通信を行う。また、通信部 61と通信部 71と はサーバ間での情報のやり取りを行う。なお、第 2のサーバ 7には、通信部 71しか明 示していないが、この通信部 71以外にも、その他の構成要素を備えていてもよい。
[0051] 情報送受信部 62は、第 1の情報処理装置 1、および第 2の情報処理装置 2と、情報 を送受信する。この情報送受信部 62による情報の送受信は、通信部 61や、通信部 7 1を介して行われる。
[0052] 特性判断部 63は、第 1の通信制御装置 3、および第 2の通信制御装置 4の特性を 判断する。ここで、第 1の通信制御装置 3、および第 2の通信制御装置 4の特性とは、 第 1の通信制御装置 3等で用いられている NATの種類のことである。したがって、第 1の通信制御装置 3の特性は、例えば、 Full Cone NATや、 AS NATであるとい うように判断される。
[0053] 送受信決定部 64は、特性判断部 63による判断結果に応じて、第 1の情報処理装 置 1、および第 2の情報処理装置 2のいずれかを送信側 (送信側情報処理装置)に決 定し、他方を受信側 (受信側情報処理装置)に決定する。この決定により、第 1の通 信制御装置 3、および第 2の通信制御装置 4のうち、送信側情報処理装置の通信を 制御する通信制御装置が送信側通信制御装置となり、受信側情報処理装置の通信 を制御する通信制御装置が受信側通信制御装置となる。 [0054] バブルパケット送信対象ポート送信部 65は、受信側通信制御装置におけるバブル パケット送信対象ポートの位置を示すバブルパケット送信対象ポート情報を送信側情 報処理装置に送信する。
[0055] 範囲検出部 66は、送信側情報処理装置力も送信された範囲検出用パケットを受け 付け、その受け付けた範囲検出用パケットに基づいて、バブルパケット送信ポートを 含むポートの範囲を検出する。このポートの範囲の検出は、範囲検出用パケットのへ ッダに含まれるポート番号を取得し、所定のメモリ等に記録することなどであってもよ い。なお、範囲検出用パケットは、送信側情報処理装置から通信部 61に対して送信 されたものであってもよぐあるいは、第 2のサーバ 7の通信部 71に送信されたものを 、通信部 61を介して受け取ったものであってもよい。後者の場合、第 1のサーバ 6と 第 2のサーバ 7では、 IPアドレスが異なって!/、るものとする。
[0056] 範囲送信部 67は、範囲検出部 66が検出したバブルパケット送信ポートを含むポー トの範囲を示す情報である範囲情報を受信側情報処理装置に対して送信する。
[0057] ポート幅検出部 68は、送信側情報処理装置から送信側通信制御装置を介して送 信されたポート幅検出用パケットを受け付ける。ここで、ポート幅検出用パケットとは、 送信側通信制御装置におけるポート幅を検出するために用いられるパケットである。 ポート幅検出部 68は、その受け付けたポート幅検出用パケットに基づいて、送信側 通信制御装置におけるポート幅を検出する。
[0058] ポート幅送信部 69は、ポート幅検出部 68が検出したポート幅を示す情報であるポ ート幅情報を受信側情報処理装置に送信する。
[0059] 次に、本実施の形態による通信システムの動作について説明する。特に、図 5のフ ローチャートを用いて、第 1の情報処理装置 1と第 2の情報処理装置 2とが通信を開 始するまでの通信方法にっ 、て説明する。
[0060] (ステップ S101)第 1のサーバ 6における特性判断部 63によって第 1の通信制御装 置 3や第 2の通信制御装置 4の特性を判断することにより、第 1の情報処理装置 1、お よび第 2の情報処理装置 2のいずれが送信側となり、受信側となるのかを決定する。
[0061] ここで、送信側で PS NATが用いられ、受信側で AS NATが用いられる場合、ま たは、送信側で PR NATが用いられ、受信側で AS NAT、もしくは PS NATが用 いられる場合には、情報処理装置間における通信を確立することができないために、 この送信側と受信側の決定が行われる。なお、送信側と受信側とが PS NATを用い ている場合には、本実施の形態による方法では、情報処理装置間の通信を確立する ことはできない。上記の場合に通信を確立することができない理由については、後述 することとする。
[0062] (ステップ S102)送信側情報処理装置から受信側通信制御装置に対してバブルパ ケットを送信し、バブルパケット送信ポートを少なくとも含む 1以上のポートに受信側 情報処理装置から返信パケットを送信することによって通信が確立される。なお、ステ ップ S101、 S102の詳細な処理については、後述する。
[0063] 図 6は、ステップ S 101における第 1のサーバ 6が送受信を決定する処理について 示すフローチャートである。ここで、このフローチャートの説明では、第 1の情報処理 装置 1から第 2の情報処理装置 2に対して通信を行おうとしているとする。したがって 、第 1の情報処理装置 1、および第 1の通信制御装置 3が送信側の装置となり、第 2の 情報処理装置 2、および第 2の通信制御装置 4が受信側の装置となる。なお、第 2の 情報処理装置 2から第 1の情報処理装置 1に対して通信を行うとした場合には、第 1 の情報処理装置 1、および第 1の通信制御装置 3と、第 2の情報処理装置 2、および 第 2の通信制御装置 4が入れ替わる以外は、以下のフローチャートの説明と同様であ る。
[0064] (ステップ S201)第 1のサーバ 6の特性判断部 63は、送信側の第 1の通信制御装 置 3の特性を判断する。特性の判断方法については、後述する。
[0065] (ステップ S202)送受信決定部 64は、第 1の通信制御装置 3が PS NATを用いて いるかどうか判断する。そして、 PS NATを用いている場合には、ステップ S205に 進み、用いていない場合には、ステップ S203に進む。
[0066] (ステップ S203)送受信決定部 64は、第 1の通信制御装置 3が、 PR NATを用い ているかどうか判断する。そして、 PR NATを用いている場合には、ステップ S204 に進み、用いていない場合には、送受信の決定処理は終了となる。すなわち、第 1の 情報処理装置 1、および第 1の通信制御装置 3を送信側の装置とし、第 2の情報処理 装置 2、および第 2の通信制御装置 4を受信側の装置として、ステップ S 102の通信の 確立の処理を行う。
[0067] (ステップ S204)送受信決定部 64は、送受信の入れ替えを行!、、送受信の決定処 理は終了となる。すなわち、第 1の情報処理装置 1、および第 1の通信制御装置 3を 受信側の装置とし、第 2の情報処理装置 2、および第 2の通信制御装置 4を送信側の 装置として、ステップ S 102の通信の確立の処理を行う。
[0068] (ステップ S205)特性判断部 63は、受信側の第 2の通信制御装置 4の特性を判断 する。
[0069] (ステップ S206)送受信決定部 64は、第 2の通信制御装置 4が PS NATを用いて いるかどうか判断する。そして、 PS NATを用いている場合には、送信側、受信側の 双方が PS NATを用いていることとなり、通信を確立することができず、エラーとなる 。一方、 PS NATを用いていない場合には、ステップ S207に進む。
[0070] (ステップ S207)送受信決定部 64は、第 2の通信制御装置 4が AS NATを用いて いるかどうか判断する。そして、 AS NATを用いている場合には、ステップ S 204に 進み、そうでない場合には、送受信の決定処理は終了となる。すなわち、第 1の情報 処理装置 1、および第 1の通信制御装置 3を送信側の装置とし、第 2の情報処理装置 2、および第 2の通信制御装置 4を受信側の装置として、ステップ S 102の通信の確立 の処理を行う。
[0071] なお、このフローチャートは、送受信の決定を行う処理の一例であって、これ以外の 方法によって送受信の決定を行ってもよい。例えば、このフローチャートにおいて、送 信側が PR NATを用いている場合には、判断処理の回数を少なくするために、受 信側で用いられて ヽる NATの種類を判別することなく送受信の入れ替えを行って ヽ る力 判断処理の回数が多くてもよい場合には、送信側が PR NATを用いていると 判断された後に、受信側が PS NATか、 AS NATを用いているかどうか判断し、そ の結果、いずれかを用いていると判断された場合にのみ、送受信の入れ替えを行うよ うにしてもよい。
[0072] 次に、図 7—図 9を用いて、第 1の通信制御装置 3の特性の判断方法について説明 する。なお、第 2の通信制御装置 4の特性も、同様にして判断することができる。
[0073] 図 7において、第 1の情報処理装置 1は、所定のパケットを第 1のサーバ 6のポート P 101に送信する。ここで、そのパケットは、第 1の通信制御装置 3のポート P100を通 過したとする。その送信されたパケットは、通信部 61を介して特性判断部 63が受け 付ける。そして、特性判断部 63は、そのパケットを受け付けることによって検知した第 1の通信制御装置 3のポート P100に対してパケットを送信する旨の指示を、通信部 6 1を介して第 2のサーバ 7の通信部 71に渡す。このようにして、通信部 71からポート P 100に対して、パケットが送信される。その通信部 71からのポート P100に対するパケ ットを第 1の情報処理装置 1が受け付けることができる場合には、特性判断部 63は、 第 1の通信制御装置 3が Full Cone NATを用いていると判断する。一方、通信部 71からのポート P100に対するパケットを第 1の情報処理装置 1が受け付けることがで きない場合には、図 8で説明する方法により判断を行う。
[0074] 図 8において、第 1の情報処理装置 1は、所定のパケットを第 1のサーバ 6のポート P 101、ポート P103と、第 2のサーバ 7のポート P102に送信する。特性判断部 63は、 そのポート P101、 P103に送信されたパケットを受け付け、また、ポート P102に送信 されたパケットを、通信部 71を介して受け付ける。そして、パケットの通過した第 1の 通信制御装置 3におけるポート Pa、 Pbが同一であるかどうか判断する。そして、ポー ト Paとポート Pbが異なっている場合には、第 1の通信制御装置 3が PS NATを用い ていると判断する。
[0075] ポート Paとポート Pbとが等しい場合には、ポート Pbとポート Pcが等しいかどうか判 断する。そして、ポート Pbとポート Pcが異なっている場合には、第 1の通信制御装置 3が AS NATを用いていると判断する。ポート Pa、ポート Pb、ポート Pcが同じである 場合には、図 9で説明する方法により判断を行う。
[0076] 図 9において、第 1の情報処理装置 1は、所定のパケットを第 1のサーバ 6のポート P 101に送信する。特性判断部 63は、そのパケットを受け付け、そのパケットの通過し た第 1の通信制御装置 3におけるポート P100に対して、ポート P101とは異なるポー ト P103からパケットを送信する。第 1の情報処理装置 1がポート P103からのパケット を受信できる場合には、特性判断部 63は、第 1の通信制御装置 3が R NATを用い て 、ると判断し、第 1の情報処理装置 1がポート P 103からのパケットを受信できな ヽ 場合には、特性判断部 63は、第 1の通信制御装置 3が PR NATを用いていると判 断する。
[0077] このように、図 7—図 9を用いて説明した方法によって、特性判断部 63は、第 1の通 信制御装置 3の特性を判断することができる。なお、上記説明では、細かい説明を省 略しているが、第 1の情報処理装置 1からのパケットの送信等は、特性判断部 63の指 示によってなされるものである。
[0078] 次に、図 5のフローチャートにおけるステップ S 102の処理について、図 10を用いて 説明する。図 10は、通信の確立に関する、送信側の情報処理装置、サーバ、受信側 の情報処理装置の間における情報のやり取りや処理を説明するための図である。な お、図 10におけるサーバとは、第 1のサーバ 6と、第 2のサーバ 7の両方を示すもので ある。また、説明の便宜のため、第 1の情報処理装置 1、および第 1の通信制御装置 3が送信側であるとし、第 2の情報処理装置 2、および第 2の通信制御装置 4が受信 側であるとする。
[0079] (ステップ S301)第 1のサーバ 6における情報送受信部 62は、第 2の通信制御装置 4の IPアドレスを示すアドレス情報を第 1の情報処理装置 1に送信する。その送信さ れたアドレス情報は、第 1の情報処理装置 1の通信部 11で受け付けられ、バブルパ ケット送信部 12に渡される。
[0080] (ステップ S302)バブルパケット送信対象ポート送信部 65は、バブルパケット送信 対象ポート情報を第 1の情報処理装置 1に送信する。その送信されたバブルパケット 送信対象ポート情報は、通信部 11を介してバブルパケット送信対象ポート受付部 16 で受け付けられ、バブルパケット送信部 12に渡される。
[0081] (ステップ S303)第 1の情報処理装置 1におけるポート幅検出用パケット送信部 15 は、ポート幅検出用パケットを第 1のサーバ 6に送信する。ここで、この送信において は、複数のポート幅検出用パケットの通過する第 1の通信制御装置 3のポートがそれ ぞれ異なるようにする。このポート幅検出用パケットは、例えば、第 1の情報処理装置 1におけるポート番号がそれぞれ異なる複数のポートから送信される。図 11は、ポー ト幅検出用パケットの送信について説明するための図である。ポート幅検出用バケツ ト送信部 15は、それぞれ異なるポート P205— P208から順次、第 1のサーバ 6のポ ート P200にポート幅検出用パケットを送信する。すると、第 1の通信制御装置 3にお いて、それらのパケットは、それぞれ異なるポート P201— P204を通過することとなる 。なお、図 11では、ポート P205から P208の順番でパケットが送信されたとする。また 、第 1の情報処理装置 1は、ポート幅検出用パケットを送信する以前に、ポート P205 一 P208を第 1のサーバ 6との通信で用いて!/ヽな 、ものとする。
[0082] (ステップ S304)第 1のサーバ 6におけるポート幅検出部 68は、第 1の情報処理装 置 1から送信されたポート幅検出用パケットを受け付け、そのポート幅検出用パケット に基づいて、ポート幅を検出する。このポート幅の検出方法について説明する。ポー ト幅検出部 68は、ポート幅検出用パケットを受け付けることにより、各ポート幅検出用 パケットの送信で用いられた第 1の通信制御装置 3のポート P201— P204を検知す ることができる。そして、例えばポート P202と、ポート P201のポート間隔が 12であり、 ポート P203と、ポート P202のポート間隔が 6であり、ポート P204と、ポート P203の ポート間隔が 18である場合には、一番小さいポート間隔である「6」をポート幅として 検出してもよい。一方、それらのポート間隔の最大公約数をポート幅として検出しても よい。例えば、ポート P202と、ポート P201のポート間隔が 12であり、ポート P203と、 ポート P202のポート間隔が 6であり、ポート P204と、ポート P203のポート間隔が 9で ある場合には、それらの最大公約数である「3」をポート幅として検出してもよい。その ようにして検出されたポート幅は、ポート幅送信部 69に渡される。また、ポート幅の検 出方法は、これらに限定されるものではなぐその他の方法によってポート幅を検出し てもよい。さらに、ポート幅を検出するときに送信されるポート幅検出用パケットの数も 、 4個に限定されるものではなぐポート幅を検出できる範囲において任意に設定す ることがでさる。
[0083] (ステップ S305)範囲検出用パケット送信部 13は、範囲検出用パケットを第 1の通 信制御装置 3を介して、第 1のサーバ 6に送信する。この送信において、範囲検出用 パケットが第 1の通信制御装置 3において最新に割り当てられるポートを通過するよう にパケットの送信を行うものとする。バブルパケット送信ポートを含むポートの範囲を 適切に限定することができるようにするためである。例えば、範囲検出用パケット送信 部 13は、第 1の情報処理装置 1と第 1のサーバ 6との間の通信でそれまでに用いてい ない第 1の情報処理装置 1のポートを用いて、範囲検出用パケットを送信する。このよ うにして送信された範囲検出用パケットは、第 1のサーバ 6の範囲検出部 66において 受け付けられる。この範囲検出部 66は、受け付けた範囲検出用パケットのヘッダに 含まれるポート番号を参照することにより、範囲検出用パケットの送信で用いられた第 1の通信制御装置 3のポートの位置を知ることができる。
[0084] (ステップ S306)バブルパケット送信部 12は、ステップ S301で送信されたアドレス 情報によって示される第 2の通信制御装置 4の IPアドレスと、ステップ S302で送信さ れたバブルパケット送信対象ポート情報とに基づ 、て、第 2の通信制御装置 4のパブ ルパケット送信対象ポートにバブルパケットを送信する。なお、ここでは、そのバブル パケットの送信によって通信が確立しな ヽと 、う前提の基に、以下のステップにつ ヽ て説明する力 仮に、第 2の通信制御装置 4が Full Cone NATを用いており、ノ ブルパケット送信対象ポートが第 2の情報処理装置 2と第 1のサーバ 6との間で情報 の送受信を行うために用いられるポート等のように、すでに第 2の情報処理装置 2に よって使用されているポートである場合には、第 2の情報処理装置 2がバブルパケット を受け取ることとなり、通信が確立することになる。
[0085] (ステップ S307)範囲検出用パケット送信部 13は、範囲検出用パケットを第 1の通 信制御装置 3を介して、第 2のサーバ 7に送信する。その範囲検出用パケットは、通 信部 71、および通信部 61を介して範囲検出部 66で受け付けられる。なお、第 1の通 信制御装置 3が AS NATを用いている可能性がある場には、このように第 2のサー ノ 7に範囲検出用パケットを送信する必要があるが、第 1の通信制御装置 3が AS N ATを用いている可能性がない場合には、バブルパケット送信後の範囲検出用パケ ットも、第 1のサーバ 6に送信してもよい。この場合には、ステップ S305と同様に、例 えば、第 1のサーバ 6との間の通信でそれまでに用いていない第 1の情報処理装置 1 のポートを用いて、その範囲検出用パケットの送信を行うものとする。このようにして送 信された範囲検出用パケットは、第 1のサーノ 6の範囲検出部 66において受け付け られる。この範囲検出部 66は、範囲検出用パケットの送信で用いられた第 1の通信 制御装置 3のポートの位置を知ることができる。
[0086] (ステップ S308)範囲検出部 66は、ステップ S305、およびステップ S307で送信さ れた範囲検出用パケットに基づいて、バブルパケット送信ポートを含むポートの範囲 を検出する。具体的には、ステップ S305における範囲検出用パケットの送信で用い られた第 1の通信制御装置 3のポートから、ステップ S307における範囲検出用バケツ トの送信で用いられた第 1の通信制御装置 3のポートまでを、バブルパケット送信ポ ートを含むポートの範囲として検出する。
[0087] (ステップ S309)範囲送信部 67は、範囲検出部 66で検出された、バブルパケット 送信ポートを含むポートの範囲を示す範囲情報を第 2の情報処理装置 2に送信する 。その範囲情報は、第 2の情報処理装置 2における範囲受付部 27で受け付けられ、 返信パケット送信部 29に渡される。
[0088] (ステップ S310)情報送受信部 62は、第 1の通信制御装置 3の IPアドレスを示すァ ドレス情報を、第 2の情報処理装置 2に送信する。その送信されたアドレス情報は、通 信部 21で受け付けられ、返信パケット送信部 29に渡される。
[0089] (ステップ S311)ポート幅送信部 69は、ポート幅検出部 68によって検出されたポー ト幅を示すポート幅情報を第 2の情報処理装置 2に送信する。そのポート幅情報は、 第 2の情報処理装置 2におけるポート幅受付部 28で受け付けられ、返信パケット送 信部 29に渡される。
[0090] (ステップ S312)返信パケット送信部 29は、ステップ S310で受け取ったアドレス情 報の示す IPアドレスによって特定される第 1の通信制御装置 3に対して返信パケット を送信する。この返信パケットは、範囲受付部 27から受け取った範囲情報の示す範 囲のポートに対して、ポート幅情報の示すポート幅ごとに送信される。
[0091] (ステップ S313)第 1の情報処理装置 1の返信パケット受付部 14は、第 2の情報処 理装置 2から送信された返信パケットを受け付ける。この返信パケットを受け付けるこ とにより、第 1の情報処理装置 1と、第 2の情報処理装置 2との間の通信が確立するこ ととなる。そして、この後、第 1の情報処理装置 1と第 2の情報処理装置 2との間で、第 1のサーバ 6や第 2のサーバ 7を介さない情報の送受信 (例えば、トンネル通信)が行 われる。
[0092] なお、図 10において、ポート幅の検出(ステップ S303、 S304)は、ポート幅情報の 送信 (ステップ S311)より以前に行われていればよぐ例えば、ポート幅の検出 (ステ ップ S304)の直後に、ポート幅情報が受信側に送信されてもよい。また、送信側のァ ドレスの送信 (ステップ S310)も、例えば、受信側のアドレスの送信 (ステップ S301) と同時に送信してもよい。このように、図 10においては、処理の順序に関して、ある程 度の任意性がある。
[0093] また、返信パケットの送信にお!、て、ポート幅情報の示すポート幅ごとに返信バケツ トを送信していたとしても、返信パケットが受け付けられない場合 (すなわち、返信パ ケットを送信して力も所定時間が経過しても、第 2の情報処理装置 2が返信パケット受 け付けた旨を第 1の情報処理装置 1から受け取れない場合)には、検出されたポート 幅が異なっている場合も考えられるため、第 2の情報処理装置 2は、ポート幅を 1に設 定して、再度、返信パケットの送信を行ってもよい。あるいは、ポート幅を最大公約数 により算出している場合には、最大公約数から 1までの公約数を順次ポート幅に設定 し、再度、返信パケットの送信を行ってもよい。例えば、検出されたポート幅が「8」、 「 4」である場合には、最大公約数である「4」をポート幅として設定して返信パケットの 送信を行い、それによつて通信を確立できなカゝつた場合には、 [2]をポート幅として 設定して返信パケットの送信を行ってもょ ヽ。それによつても通信を確立できなカゝつた 場合には、ポート幅は「1」に設定される。
[0094] 次に、本実施の形態による通信システムの動作について、具体例を用いて説明す る。この具体例において、第 1の通信制御装置 3、第 2の通信制御装置 4、第 1のサー バ 6、第 2のサーバ 7の IPアドレス(第 1および第 2の通信制御装置 3, 4については、 通信回線 5側のアドレス)は、それぞれ以下のとおりであるとする。
[0095] 第 1の通信制御装置 3 : 202. 132. 10. 6
第 2の通信制御装置 4 : 131. 206. 10. 240
第 1のサーノ 6 : 155. 32. 10. 10
第 2のサーノ 7 : 155. 32. 10. 20
また、第 1の情報処理装置 1から第 2の情報処理装置 2への接続要求を行うものと する。すなわち、第 1の情報処理装置 1が送信側であるとして処理を開始するものと する。
[0096] 以下の具体例においては、具体例 1において、第 1の通信制御装置 3が AS NAT であり、第 2の通信制御装置 4が PS NATである場合について説明する。また、具体 例 2において、第 1の通信制御装置 3が PS NATであり、第 2の通信制御装置 4が A S NATである場合について説明する。また、具体例 3において、第 1の通信制御装 置 3が PS NATであり、第 2の通信制御装置 4が PR NATである場合について説 明する。さらに、具体例 4において、第 1の通信制御装置 3、および第 2の通信制御装 置 4が Full Cone NATである場合について説明する。
[0097] [具体例 1]
図 12、図 13は、具体例 1について説明するための図である。まず、第 1の情報処理 装置 1から接続要求が行われる動作について説明する。図 12において、第 1の情報 処理装置 1は、第 1のサーバ 6の IPアドレス「155. 32. 10. 10」、および第 2のサー ノ 7の IPアドレス「155. 32. 10. 20」をあらかじめ知っており、その第 1のサーバ 6に 対して、第 1の情報処理装置 1の機器 ID「1234567890123456」を送信する。ここ で、この機器 IDとしては、例えば、 MACアドレスや、 EUI64ベースのアドレスなどの GUID (Global Unique ID)を用いることができる。この機器 IDの送信は、第 1の 通信制御装置 3のポート P1を介して、第 1のサーバ 6のポート P3に対して行われる。 この送信によって、第 1のサーバ 6の情報送受信部 62は、第 1の情報処理装置 1の機 器 IDと、第 1の通信制御装置 3の IPアドレス「202. 132. 10. 6」と、第 1の通信制御 装置 3におけるポート P1のポート番号「10130」とを知ることができる。これらの情報 は、情報送受信部 62において保持される。
[0098] 次に、第 1の情報処理装置 1は、接続を要求する第 2の情報処理装置 2の機器 ID「 9876543210123456」を第 1のサーノ 6に送信することにより、第 2の†青報処理装 置 2への接続要求を行う。すると、第 1のサーバ 6の情報送受信部 62が、その接続要 求を受け取り、第 2の情報処理装置 2が第 1のサーバ 6にすでにアクセスしているかど うか判断する。この第 2の情報処理装置 2によるアクセスも、上述の第 1の情報処理装 置 1と同様にして、第 2の情報処理装置 2の機器 IDを送信することによってなされる。 したがって、第 2の情報処理装置 2が第 1のサーバ 6にアクセスしていた場合には、第 1のサーバ 6は、第 2の情報処理装置 2の機器 ID「9876543210123456」と、第 2の 通信制御装置 4の IPアドレス「131. 206. 10. 240」と、第 2の情報処理装置 2と第 1 のサーバ 6の間での情報の送受信で用いられる第 2の通信制御装置 4のポート P2の ポート番号「21000」とを知っており、それらが情報送受信部 62において保持されて いることとなる。第 2の情報処理装置 2が第 1のサーバ 6にすでにアクセスしている場 合には、情報送受信部 62が、特性判断部 63に対して送受信の決定 (ステップ S101 )を行う旨の指示を渡すことにより、送受信の決定の処理を開始させる。一方、第 2の 情報処理装置 2が第 1のサーバ 6にアクセスしていない場合には、第 1の情報処理装 置 1からの接続要求は、エラーとなり、第 1の情報処理装置 1と第 2の情報処理装置 2 の間の通信は確立できな 、。
[0099] 送受信の決定において、特性判断部 63が送信側の通信制御装置である第 1の通 信制御装置 3の特性を判断する (ステップ S 201)。そして、第 1の通信制御装置 3が、 AS NATを用いていると判断される。そして、その旨が送受信決定部 64に渡される 。送受信決定部 64は、送信側の通信制御装置が PS NATを用いておらず、また、 PR NATを用いていないと判断する(ステップ S202、 S203)。その結果、送受信の 入れ替えは行われず、第 1の情報処理装置 1、第 1の通信制御装置 3が送信側であり 、第 2の情報処理装置 2、第 2の通信制御装置 4が受信側である旨が、情報送受信部 62、バブルパケット送信対象ポート送信部 65、範囲送信部 67、ポート幅送信部 69 に渡される。
[0100] 情報送受信部 62が、第 1の情報処理装置 1が送信側である旨を受け取ると、受信 側の第 2の通信制御装置 4の IPアドレス「131. 206. 10. 240」を示すアドレス情報 を第 1の情報処理装置 1にポート P1を介して送信する (ステップ S301)。また、パブ ルパケット送信対象ポート送信部 65は、第 2の通信制御装置 4のポート P2のポート番 号「21000」を示す情報であるバブルパケット送信対象ポート情報を第 1の情報処理 装置 1にポート P 1を介して送信する (ステップ S 302)。
[0101] すると、それらの情報は第 1の情報処理装置 1の通信部 11で受信され、第 2の通信 制御装置 4の IPアドレス「131. 206. 10. 240」を示すアドレス情報はバブルパケット 送信部 12に渡され、バブルパケット送信対象ポート情報は、バブルパケット送信対象 ポート受付部 16に渡される。そして、バブルパケット送信対象ポート情報は、バブル パケット送信対象ポート受付部 16で受け付けられ、バブルパケット送信部 12に渡さ れる。このようにして、バブルパケット送信部 12は、バブルパケットの送信先である第 2の通信制御装置 4の IPアドレスを取得する。
[0102] 通信部 11が、バブルパケット送信対象ポート情報等を受け付けた旨をポート幅検 出用パケット送信部 15に伝えると、ポート幅検出用パケット送信部 15は、複数のポー ト幅検出用パケットを図 11で示すようにして送信する (ステップ S303)。なお、図 12、 図 13では、ポート幅検出用パケットの送信については明示していない。そのポート幅 検出用パケットは、ポート幅検出部 68で受け付けられ、ポート幅が検出される。この 場合、ポート幅は「1」と検出されたとする (ステップ S304)。検出されたポート幅は、ポ ート幅送信部 69に渡される。
[0103] バブルパケット送信部 12は、バブルパケットを送信する前に、範囲検出用パケット 送信部 13に対して範囲検出用パケットを送信する旨の指示を渡す。すると、範囲検 出用パケット送信部 13は、第 1のサーノ 6との通信で用いているポートとは異なるポ ートを用いて、第 1のサーバ 6に対して範囲検出用パケットを送信する (ステップ S30 5)。なお、この範囲検出用パケットの送信先ポートであるポート P6は、第 1のサーバ 6 力 第 1の情報処理装置 1に対して示されたものであるとする。この範囲検出用バケツ トは、第 1の通信制御装置 3のポート P5を用いて送信されたとする。すると、その範囲 検出用パケットを受け付けた範囲検出部 66は、その第 1の通信制御装置 3のポート P 5のポート番号「10135」を検出する。範囲検出部 66は、そのポート P5のポート番号 「10135」を保持しておく。
[0104] 範囲検出用パケット送信部 13は、範囲検出用パケットの送信後に、範囲検出用パ ケットを送信した旨をバブルパケット送信部 12に伝える。すると、バブルパケット送信 部 12は、通信部 11から受け取ったアドレス情報の示す IPアドレス「131. 206. 10. 240」の第 2の通信制御装置 4におけるポート番号が「21000」のバブルパケット送信 対象ポートに対してバブルパケットを送信する(ステップ S306)。ここで、そのバブル パケットは、第 1の通信制御装置 3のポート P7 (ポート番号「10142」)を用いて送信さ れたとする。
[0105] バブルパケット送信部 12は、バブルパケットの送信後に、範囲検出用パケットを送 信する旨の指示を範囲検出用パケット送信部 13に渡す。すると、範囲検出用バケツ ト送信部 13は、 IPアドレスが「155. 32. 10. 20」である第 2のサーバ 7に対して、範 囲検出用パケットを送信する (ステップ S307)。なお、バブルパケットと 2回目の範囲 検出用パケットとは、 1回目の範囲検出用パケットの送信された第 1の情報処理装置 1のポートから送信されるものとする。
[0106] バブルパケットの送信後に送信された範囲検出用パケットは、第 1の通信制御装置 3のポート P8を用いて送信されたとする。すると、範囲検出部 66は、第 2のサーバ 7 の通信部 71、および第 1のサーノ 6の通信部 61を介してその範囲検出用パケットを 受け付け、ポート P8のポート番号「10145」を検出する。そして、範囲検出部 66は、 保持していたポート P5のポート番号「10135」と、検出したポート P8のポート番号「1 0145」とを、それぞれ下限と上限とする範囲を検出する (ステップ S308)。そして、そ の範囲を範囲送信部 67に渡すと、範囲送信部 67は、第 2の通信制御装置 4のポート P2を介して第 2の情報処理装置 2に、その範囲を示す範囲情報を送信する (ステップ S309)。その範囲情報は、第 2の情報処理装置 2の範囲受付部 27で受け付けられ、 返信パケット送信部 29に渡される。
[0107] なお、ポート P5, P7, P8が連続したポート番号となっていないが、これは、第 1の通 信制御装置 3のローカル側に第 1の情報処理装置 1以外の装置(図示せず)が接続 されており、範囲検出用パケットの送信力もバブルパケットの送信まで、またはバブル パケットの送信力も範囲検出用パケットの送信までに、その装置に対して、第 1の通 信制御装置 3のポートが割り当てられることによって生じるものである。
[0108] 範囲情報を送信した旨を、範囲送信部 67が情報送受信部 62とポート幅送信部 69 に伝えると、情報送受信部 62は、第 1の通信制御装置 3の IPアドレス「202. 132. 1 0. 6」を示すアドレス情報を第 2の情報処理装置 2に送信する (ステップ S310)。また 、ポート幅送信部 69は、第 2の情報処理装置 2に、ポート幅検出部 68によって検出さ れたポート幅を示すポート幅情報を送信する (ステップ S311)。すると、第 1の通信制 御装置 3の IPアドレスを示すアドレス情報は、通信部 21から返信パケット送信部 29に 渡され、ポート幅情報は、ポート幅受付部 28に渡されて、返信パケット送信部 29に渡 される。このようにして、返信パケット送信部 29は、返信パケットの送信先である第 1の 通信制御装置 3の IPアドレスを取得する。
[0109] 返信パケット送信部 29は、通信部 21から受け取ったアドレス情報の示す IPアドレス 「202. 132. 10. 6」の第 1の通信制御装置 3に対して返信パケットを送信する。この 返信パケットは、図 13で示されるように、範囲情報によって示されるポート番号「101 35」力ら「10145」のポートに対して、ポート幅情報の示すポート幅「1」ごとに送信さ れる。ここで、第 2の通信制御装置 4は、 PS NATであるため、第 2の情報処理装置 2から送信される返信パケットは、ポート P10からポート P11までの 11個のポートを用 いて送信される (ステップ S312)。第 1の通信制御装置 3では、バブルパケットの送信 により、ポート P7に送信履歴が残っているため、返信パケットのうち、ポート P7 (ポート 番号「10142」)に送信された返信パケットは、第 1の情報処理装置 1に渡され、通信 部 11を介して返信パケット受付部 14で受け付けられる (ステップ S 313)。このようにし て、第 1の情報処理装置 1は、返信パケットの送信で用いられた第 2の通信制御装置 4のポートの位置を知ることができる。その後、第 1の情報処理装置 1が、そのポートに 対して、第 1の通信制御装置 3におけるポート P7を介して情報を送信することにより、 第 1の情報処理装置 1と第 2の情報処理装置 2との間の通信が確立され、サーバを介 さないで直接、 UDPによる通信を行うことができる。
[0110] なお、この具体例 1において、バブルパケット送信ポート(ポート P7)のポート番号が 「10140」であり、第 1の通信制御装置 3のポート幅が「5」である場合には、返信パケ ットは、 3つのポート、すなわちポート P5, P7, P8にのみ送信されることとなり、返信 パケットの送信を効率よく行うことができる。
[0111] また、この具体例 1において、第 2の情報処理装置 2が第 1のサーバ 6と通信を行う ポート (第 2の情報処理装置 2のポート)から返信パケットを送信する場合につ!、て説 明したが、他のポートから返信パケットを送信してもよい。例えば、第 1のサーバ 6がバ ブルパケット送信対象ポートの位置を検出するために、第 2の情報処理装置 2から第 1のサーバ 6に送信されたパケットが送信された第 2の情報処理装置 2のポートから返 信パケットを送信してもよい。なお、この場合には、そのパケットの通過した第 2の通 信制御装置 4のポートがバブルパケット送信対象ポートとなる。
[0112] また、この具体例 1では、バブルパケットと 2回目の範囲検出用パケットと力 1回目 の範囲検出用パケットの送信された第 1の情報処理装置 1のポートから送信される場 合について説明したが、バブルパケットと、 2個の範囲検出用パケットとは、第 1の情 報処理装置 1にお ヽて新たに割り当てられたそれぞれ異なるポートから送信されても よい。
[0113] [具体例 2]
具体例 2では、第 1の通信制御装置 3が PS NATを用いており、第 2の通信制御 装置 4が AS NATを用いて 、る場合にっ 、て説明する。
[0114] 第 1の情報処理装置 1から接続要求が行われる動作については、具体例 1と同様で あり、その説明を省略する。
[0115] 次に、送受信の決定を行う動作について説明する。特性判断部 63が送信側の通 信制御である第 1の通信制御装置 3の特性を判断する (ステップ S201)。そして、第 1 の通信制御装置 3が PS NATを用いていると判断され、その旨が送受信決定部 64 に渡される。送受信決定部 64は、送信側の通信制御装置が PS NATを用いている と判断し (ステップ S202)、特性判断部 63に受信側の第 2の通信制御装置 4の特性 を判断する旨の指示を渡す。すると、特性判断部 63は、第 2の通信制御装置 4の特 性を判断する (ステップ S205)。そして、第 2の通信制御装置 4が AS NATを用いて いると判断され、その旨が送受信決定部 64に渡される。送受信決定部 64は、受信側 の通信制御装置が AS NATを用いていると判断し (ステップ S 206、 S207)、送受 信の入れ替えを行う(ステップ S204)。したがって、第 1の情報処理装置 1、第 1の通 信制御装置 3が受信側に設定され、第 2の情報処理装置 2、第 2の通信制御装置 4が 送信側に設定される。そして、第 1の情報処理装置 1、第 1の通信制御装置 3が受信 側に設定され、第 2の情報処理装置 2、第 2の通信制御装置 4が送信側に設定された 旨が、情報送受信部 62、バブルパケット送信対象ポート送信部 65、範囲送信部 67、 ポート幅送信部 69に渡される。この後の動作については、第 1の情報処理装置 1と第 2の情報処理装置とが入れ替わり、第 1の通信制御装置 3と第 2の通信制御装置 4と が入れ替わった以外、具体例 1と同様であり、その説明を省略する。
[0116] なお、第 1の情報処理装置 1、第 1の通信制御装置 3が受信側であり、第 2の情報処 理装置 2、第 2の通信制御装置 4が送信側である旨は、第 1の情報処理装置 1や第 2 の情報処理装置 2に対して通知されてもよぐあるいは、第 1の情報処理装置 1や第 2 の情報処理装置 2は、バブルパケット送信対象ポート情報を受け取った場合に送信 側であることを検知し、一方、範囲情報を受け取った場合に受信側であることを検知 してちよい。
[0117] [具体例 3]
具体例 3では、第 1の通信制御装置 3が PS NATを用いており、第 2の通信制御 装置 4が PR NATを用いて 、る場合にっ 、て説明する。
[0118] 第 1の情報処理装置 1から接続要求が行われる動作については、具体例 1と同様で あり、その説明を省略する。
[0119] 次に、送受信の決定を行う動作について説明する。特性判断部 63が送信側の通 信制御である第 1の通信制御装置 3の特性を判断する (ステップ S201)。そして、第 1 の通信制御装置 3が PS NATを用いていると判断され、その旨が送受信決定部 64 に渡される。送受信決定部 64は、送信側の通信制御装置が PS NATを用いている と判断し (ステップ S202)、特性判断部 63に受信側の第 2の通信制御装置 4の特性 を判断する旨の指示を渡す。すると、特性判断部 63は、第 2の通信制御装置 4の特 性を判断する (ステップ S205)。そして、第 2の通信制御装置 4が PR NATを用いて いると判断され、その旨が送受信決定部 64に渡される。送受信決定部 64は、受信側 の通信制御装置が PS NATを用いておらず、また AS NATを用いていない判断 する (ステップ S206、 S207)。その結果、送受信の入れ替えは行われず、第 1の情 報処理装置 1、第 1の通信制御装置 3が送信側であり、第 2の情報処理装置 2、第 2 の通信制御装置 4が受信側である旨が、情報送受信部 62、バブルパケット送信対象 ポート送信部 65、範囲送信部 67、ポート幅送信部 69に渡される。
[0120] この後、第 1の情報処理装置 1からバブルパケットや範囲検出用パケットが送信され 、範囲情報や、第 1の通信制御装置 3の IPアドレス、ポート幅情報などが第 2の情報 処理装置 2で受信される動作については、具体例 1と同様であり、その説明を省略す る。
[0121] 図 14は、第 2の情報処理装置 2からの返信パケットの送信について説明するための 図である。図 14において、第 2の情報処理装置 2の返信パケット送信部 29は、範囲 受付部 27が第 1のサーバ 6から受け付けた範囲情報に基づいて、 IPアドレス「202. 132. 10. 6」の第 1の通信制御装置 3におけるポート番号「10135」のポート P5から 、ポート番号「10145」のポート P8までに対して返信パケットを送信する(ステップ S3 12)。この返信パケットの送信は、ポート幅受付部 28が受け付けたポート幅情報の示 すポート幅「1」ごとになされる。なお、第 2の通信制御装置 4が PR NATを用いてい るため、返信パケットは、ポート P2を介して第 1の通信制御装置 3に送信される。すな わち、返信パケットは、第 1のサーバ 6と通信を行う第 2の情報処理装置 2のポートか ら送信される。これ以外の動作は、具体例 1と同様であり、その説明を省略する。
[0122] なお、この具体例 3では、送信側の第 1の通信制御装置 3が AS NATではない。し たがって、範囲検出用パケット送信部 13が、その旨を特性判断部 63等力も受け取り 、バブルパケット送信後の範囲検出用パケットを、第 2のサーバ 7ではなぐ第 1のサ ーバ 6に送信するようにしてもよい。ここで、この具体例 3の場合には、送信側の第 1 の通信制御装置 3が PS NATを用いているため、範囲検出用パケットを第 1のサー バ 6に送信するときにも、そのパケットを送信する第 1の情報処理装置 1におけるポー トを、第 1のサーバ 6とのポート 1を介した通信で用いるポートと同一のポートとしてもよ い。ただし、この場合にも、第 1の通信制御装置 3において新たなポートが割り当てら れるようにするため、第 1のサーバ 6における異なるポートであるポート P3と、ポート P 6とに対して範囲検出用パケットを送信する必要がある。
[0123] [具体例 4]
具体例 4では、第 1の通信制御装置 3、および第 2の通信制御装置 4が Full Cone NATを用いている場合について説明する。なお、この場合に特徴的な部分のみ説 明することとし、上記の具体例と同様な点については、説明を省略することとする。
[0124] 第 1の情報処理装置 1から接続要求が行われる動作については、具体例 1と同様で あり、その説明を省略する。
[0125] 次に、送受信の決定においては、両方の通信制御装置が Full Cone NATであ るために、送受信の入れ替えは行われず、第 1の情報処理装置 1、第 1の通信制御 装置 3が送信側であり、第 2の情報処理装置 2、第 2の通信制御装置 4が受信側に決 定される。
[0126] 次に、バブルパケットの送信等について図 15、図 16を用いて簡単に説明する。図 15において、第 1の通信制御装置 3が Full Cone NATであれば、範囲検出用パ ケットと、バブルパケットとは、同一のポート P5を用いて送信されることとなる。したが つて、バブルパケット送信ポートは、範囲情報によって、 1つに特定されることとなる。 そのため、図 16で示されるように、第 2の情報処理装置 2から送信される返信パケット は、ポート P2を介して、ポート P5に送信され、このようにして、第 1の情報処理装置 1 と第 2の情報処理装置 2との間の通信を確立することができる。
[0127] この説明では、図 10での処理の流れに沿うように説明したが、第 2の通信制御装置 4が Full Cone NATである場合には、送信されたバブルパケットを第 2の情報処 理装置 2で受け取ることができるため、その時点において、通信が確立されることとな る。したがって、範囲検出用パケットの送信や、返信パケットの送信を行わなくてもよ い。
[0128] なお、上記各具体例にお!、てバブルパケットの送信先をポート P2 (第 2の情報処理 装置 2が第 1のサーバ 6との通信で用いているポート)としているのは、送信側の第 1 の通信制御装置 3が PR NAT,あるいは PS NATを用いており、かつ、受信側の 第 2の通信制御装置 4が Full Cone NAT, R NAT,あるいは PR NATを用い ている場合にも通信を確立することができるようにするためである。したがって、それ 以外の場合 (例えば、具体例 4の場合)であれば、ポート P2以外にバブルパケット送 信してもよい。特に、第 1の通信制御装置 3が Full Cone NATである場合には、バ ブルパケットは第 2の通信制御装置 4でな ヽ装置に送信されてもよ!ヽ。
[0129] また、送信側の第 1の通信制御装置 3が AS NAT以外を用いている場合には、第 2のサーバ 7に送信する範囲検出用パケットを、第 1のサーバ 6に送信してもよい。
[0130] また、バブルパケットの送信の前後で送信する範囲検出用パケットを、それぞれ第 1 の情報処理装置 1において新たに割り当てられたポートを用いて第 1のサーバ 6に送 信してもよい。このようにすることで、範囲検出用パケットの送信ごとに第 1の通信制 御装置 3において新たなポートが割り当てられることとなり、バブルパケット送信ポート を含むポートの範囲を検出することができる。したがって、送信側の第 1の通信制御 装置 3が AS NATを用いている場合であっても、第 2のサーバ 7を用いることなぐバ ブルパケット送信パケットを含むポートの範囲を検出することができる。なお、バブル パケットと、範囲検出用パケットとを、第 1の情報処理装置 1において異なるポートから 送信した場合には、その範囲検出用パケットの通過した第 1の通信制御装置 3のポ ートと、バブルパケットの通過した第 1の通信制御装置 3のポートは異なる。したがつ て、このような場合には、バブルパケットの送信されたポートとは異なるポート(第 1の 情報処理装置 1におけるポート)力 送信された範囲検出用パケットの通過したポー ト(第 1の通信制御装置 3におけるポート)よりも、 1ポート幅だけバブルパケット送信ポ ートに近いポートの位置を、返信パケットを送信する範囲の端としてもよい。範囲検出 用パケットを 2回送信する場合には、一方の範囲検出用パケットを送信するポート (第 1の情報処理装置 1におけるポート)と、バブルパケットを送信するポートとを同一のポ ートとしてもよい。このような場合には、バブルパケット送信ポートを含むポートの範囲 に、バブルパケットを送信するポートと同じポート (第 1の情報処理装置 1におけるポ ート)力も送信した範囲検出用パケットの通過した第 1の通信制御装置 3のポートを含 めるようにする。
[0131] さらに、送信側の第 1の通信制御装置 3が Full Cone NAT, R NAT, PR NA Tのいずれかである場合には、バブルパケットを送信する前後のいずれかのみに、範 囲検出用パケットを送信するだけでもよい。第 1の通信制御装置 3が R NAT, PR NATのいずれかを用いている場合にも、バブルパケットと範囲検出用パケットとを第 1の情報処理装置 1の同一のポートから送信しているのであれば、図 15で示されるよ うに、ポート P5、ポート P7、ポート P8は同一のポートとなり、その 1つの範囲検出用パ ケットによってバブルパケット送信ポートを特定できるからである。また、送信側の第 1 の通信制御装置 3が、例えば、第 1のサーバ 6との通信を行うポート(例えば、図 15の ポート P1)を介してバブルパケットを送信する場合には、範囲検出用パケットを送信 しなくてちょい。
[0132] 図 17は、通信制御装置で用いる NATの種類に関し、接続可能力どうかを示す表 である。本実施の形態による通信システムでは、第 1の通信制御装置 3と、第 2の通信 制御装置 4との両方が PS NATを用いている場合以外は、第 1の情報処理装置 1と 第 2の情報処理装置 2との接続を行うことが可能である。上記各具体例における説明 では、通信制御装置で用いて 、る NATの種類に応じた例外的な取り扱いに関する 記載も行った力 通信制御装置で用いている NATの種類に関わらず、バブルバケツ ト送信前の範囲検出用パケットと、バブルパケット送信後の範囲検出用パケットを異 なるアドレスに送信し、バブルパケットの送信先のポートを、受信側の情報処理装置 がサーバとの情報の送受信で用いているポートとし、範囲検出用パケットを用いて検 出されたバブルパケット送信ポートを含むポートの範囲に返信パケットを送信すること で、図 17の「〇」の組み合わせについては、情報処理装置間の接続を行うことができ る。また、図 17の「△」の組み合わせについても、送受信の入れ替えを行うことによつ て、情報処理装置間の接続を行うことができる。
[0133] ここで、送信側で PS NATが用いられ、受信側で PS NAT, AS NATが用いら れる場合、送信側で PR NATが用いられ、受信側で AS NAT、あるいは PS NA Tが用いられる場合に、情報処理装置間における通信をなぜ確立することができな V、のかにつ 、て、図 12—図 14を用いて簡単に説明しておく。
[0134] (1)送信側が PS NAT、受信側が PS NAT, AS NATの場合
この場合には、第 1の通信制御装置 3が PS NATを用いているため、バブルバケツ トをポート P2に送信したとすると、第 1の情報処理装置 1は、そのポート P2から送信さ れた返信パケットのみを受け付けることができる。一方、第 2の通信制御装置 4が PS NAT、あるいは AS NATを用いており、第 2の通信制御装置 4は、ポート P2を第 1 のサーバ 6との通信で用いているため、第 2の情報処理装置 2はポート P2を介して第 1の通信制御装置 3に返信パケットを送信することができない(すなわち、図 14のよう に、返信パケットを送信することはできない)。したがって、この場合には、通信を確立 することができないこととなる。ただし、送信側と受信側の両方が PS NATである場 合以外は、送信側と受信側とを入れ替えることにより、通信を確立することができ得る
[0135] (2)送信側が PR NAT、受信側が PS NAT, AS NATの場合
この場合も、上記(1)と同様に、第 1の通信制御装置 3が PR NATを用いているた め、バブルパケットをポート P2送信したとすると、第 1の情報処理装置 1は、そのポー ト P2からの返信パケットのみを受け付けることができる。一方、第 2の通信制御装置が 、AS NAT,あるいは PS NATを用いているため、ポート P2を介して返信パケット を返信することはできない。したがって、この場合には通信を確立できないこととなる。 なお、この場合には、第 1の通信制御装置 3におけるポート P5, P7, P8が同一のポ ートとなることは前述のとおりである。この場合にも、送信側と受信側とを入れ替えるこ とにより、通信を確立することができ得る。
[0136] 以上のように、本実施の形態による通信システムによれば、第 1の通信制御装置 3、 および第 2の通信制御装置 4が両方とも、 PS NATである場合を除いて、第 1の情 報処理装置 1と第 2の情報処理装置 2との間の通信を確立することができる。
[0137] (実施の形態 2)
本発明の実施の形態 2による通信システムについて、図面を参照しながら説明する 。本実施の形態による通信システムは、バブルパケット送信ポートを含むポートの範 囲の検出や、ポート幅の検出等をサーバではなぐ情報処理装置において行うことに よって、サーバの処理負荷を軽減するものである。
[0138] 本実施の形態による通信システムの構成は、第 1の情報処理装置 1、第 2の情報処 理装置 2、第 1のサーバ 6に代えて、それぞれ第 1の情報処理装置 10、第 2の情報処 理装置 20、第 1のサーバ 60を備える以外、図 1と同様であり、その説明を省略する。
[0139] 図 18は、本実施の形態による第 1の情報処理装置 10の構成を示すブロック図であ る。図 18において、第 1の情報処理装置 10は、通信部 11と、バブルパケット送信部 1 2と、範囲検出用パケット送信部 13と、返信パケット受付部 14と、ポート幅検出用パケ ット送信部 15と、バブルパケット送信対象ポート受付部 16と、範囲受付部 17と、ポー ト幅受付部 18と、返信パケット送信部 19と、検出用ポート情報受付部 71と、範囲検 出部 72と、範囲送信部 73と、ポート幅検出用ポート情報受付部 74と、ポート幅検出 部 75と、ポート幅送信部 76とを備える。なお、検出用ポート情報受付部 71、範囲検 出部 72、範囲送信部 73、ポート幅検出用ポート情報受付部 74、ポート幅検出部 75 、ポート幅送信部 76以外の構成および動作は、ポート幅受付部 18が第 2の情報処 理装置 20から第 1のサーバ 60を介して送信されたポート幅情報を受け付ける以外、 実施の形態 1と同様であり、その説明を省略する。
[0140] 検出用ポート情報受付部 71は、第 1のサーバ 60から送信された検出用ポート情報 を、通信部 11を介して受け付ける。ここで、検出用ポート情報とは、範囲検出用パケ ット送信部 13によって送信された範囲検出用パケットが通過した第 1の通信制御装 置 3のポートの位置を示す情報である。
[0141] 範囲検出部 72は、検出用ポート情報受付部 71が受け付けた検出用ポート情報に 基づいて、バブルパケット送信ポートを含むポートの範囲を検出する。このポートの範 囲の検出は、検出用ポート情報のパケットのペイロードに含まれるポート番号を取得 し、所定のメモリ等に記録することなどであってもよい。
[0142] 範囲送信部 73は、範囲検出部 72が検出したバブルパケット送信ポートを含むポー トの範囲を示す情報である範囲情報を、第 1のサーバ 60を介して第 2の情報処理装 置 20に送信する。
[0143] ポート幅検出用ポート情報受付部 74は、ポート幅検出用ポート情報を受け付ける。
ここで、ポート幅検出用ポート情報とは、ポート幅検出用パケット送信部 15によって送 信されたポート幅検出用パケットが通過した第 1の通信制御装置 3のポートの位置を 示す情報である。このポート幅検出用ポート情報は、第 1のサーノ 60から送信された ものである。
[0144] ポート幅検出部 75は、ポート幅検出用ポート情報受付部 74が受け付けたポート幅 検出用ポート情報に基づいて、第 1の通信制御装置 3におけるポート幅を検出する。 このポート幅の検出は、実施の形態 1におけるポート幅検出部 68と同様に行われるも のであり、その説明を省略する。
[0145] ポート幅送信部 76は、ポート幅検出部 75が検出した第 1の通信制御装置 3のポー ト幅を示す情報であるポート幅情報を、第 1のサーバ 60を介して第 2の情報処理装置 20に送信する。
[0146] なお、第 1の情報処理装置 10におけるバブルパケット送信部 12からバブルパケット 送信対象ポート受付部 16まで、および検出用ポート情報受付部 71からポート幅送信 部 76までは、第 1の情報処理装置 10が送信側として動作する場合に用いられる。一 方、範囲受付部 17から返信パケット送信部 19までは、第 1の情報処理装置 10が受 信側として動作する場合に用いられる。
[0147] 図 19は、本実施の形態による第 2の情報処理装置 20の構成を示すブロック図であ る。図 19において、第 2の情報処理装置 20は、通信部 21と、バブルパケット送信部 2 2と、範囲検出用パケット送信部 23と、返信パケット受付部 24と、ポート幅検出用パケ ット送信部 25と、バブルパケット送信対象ポート受付部 26と、範囲受付部 27と、ポー ト幅受付部 28と、返信パケット送信部 29と、検出用ポート情報受付部 81と、範囲検 出部 82と、範囲送信部 83と、ポート幅検出用ポート情報受付部 84と、ポート幅検出 部 85と、ポート幅送信部 86とを備える。ここで、第 2の情報処理装置 20における通信 部 21からポート幅送信部 86までの各部は、第 1の情報処理装置 10、第 1の通信制 御装置 3と、第 2の情報処理装置 20、第 2の通信制御装置 4が入れ替わる以外、第 1 の情報処理装置 10における通信部 11からポート幅送信部 76までの構成と同様であ り、その説明を省略する。
[0148] なお、第 2の情報処理装置 20におけるバブルパケット送信部 22からバブルパケット 送信対象ポート受付部 26まで、および検出用ポート情報受付部 81からポート幅送信 部 86までは、第 2の情報処理装置 20が送信側として動作する場合に用いられる。一 方、範囲受付部 27から返信パケット送信部 29までは、第 2の情報処理装置 20が受 信側として動作する場合に用いられる。
[0149] 図 20は、本実施の形態による第 1のサーバ 60の構成を示すブロック図である。図 2 0において、第 1のサーバ 60は、通信部 61と、情報送受信部 62と、特性判断部 63と 、送受信決定部 64と、バブルパケット送信対象ポート送信部 65と、検出用ポート検 出部 91と、検出用ポート情報送信部 92と、ポート幅検出用ポート検出部 93と、ポート 幅検出用ポート情報送信部 94とを備える。なお、検出用ポート検出部 91、検出用ポ ート情報送信部 92、ポート幅検出用ポート検出部 93、ポート幅検出用ポート情報送 信部 94以外の構成および動作は、実施の形態 1と同様であり、その説明を省略する
[0150] 検出用ポート検出部 91は、送信側情報処理装置力 送信された範囲検出用パケ ットを受け付け、その範囲検出用パケットに基づいて範囲検出用パケットが通過した 送信側通信制御装置のポートの位置を検出する。そのポート位置の検出は、範囲検 出用パケットに含まれる(例えば、範囲検出用パケットのヘッダに含まれる)範囲検出 用パケットが通過した送信側通信制御装置のポートの位置を取得することによって行 われる。なお、範囲検出用パケットは、送信側情報処理装置力も通信部 61に対して 送信されたものであってもよぐあるいは、第 2のサーバ 7の通信部 71に送信されたも のを、通信部 61を介して受け取ったものであってもよい。後者の場合、第 1のサーバ 60と第 2のサーバ 7では、 IPアドレスが異なって!/、るものとする。
[0151] 検出用ポート情報送信部 92は、検出用ポート検出部 91が検出したポートの位置を 示す検出用ポート情報を送信側情報処理装置に送信する。
[0152] ポート幅検出用ポート検出部 93は、送信側情報処理装置から送信側通信制御装 置を介して送信されたポート幅検出用パケットを受け付け、そのポート幅検出用パケ ットに基づいて、そのポート幅検出用パケットが通過した送信側通信制御装置のポー トの位置を検出する。
[0153] ポート幅検出用ポート情報送信部 94は、ポート幅検出用ポート検出部 93が検出し た、ポート幅検出用パケットが通過した送信側通信制御装置のポートの位置を示す ポート幅検出用ポート情報を送信側情報処理装置に送信する。
[0154] 次に、本実施の形態による通信システムの動作について説明する。なお、本実施 の形態による通信システムの動作は、バブルパケット送信ポートを含むポートの範囲 の検出や、ポート幅の検出を第 1の情報処理装置 10、第 2の情報処理装置 20で行う 以外、実施の形態 1における図 5で示される動作と同様であり、その説明を省略する
[0155] 次に、図 5のフローチャートにおけるステップ S102の処理について、図 21—図 23 を用いて説明する。図 21—図 23は、送信側、サーバ、受信側の間における情報の やり取りや処理を説明するための図である。なお、図 21—図 23におけるサーバとは 、第 1のサーバ 60と、第 2のサーバ 7の両方を示すものである。また、説明の便宜のた め、第 1の情報処理装置 10、および第 1の通信制御装置 3が送信側であるとし、第 2 の情報処理装置 20、および第 2の通信制御装置 4が受信側であるとする。また、ステ ップ S301— S303、 S305— S307、 S310、 S312、 S313の処理は、実施の形態 1 における図 10に関する説明と同様であり、その説明を省略する。
[0156] (ステップ S401)第 1のサーバ 60のポート幅検出用ポート検出部 93は、第 1の情報 処理装置 10から送信されたポート幅検出用パケットを受け付ける。そして、ポート幅 検出用ポート検出部 93は、ポート幅検出用パケットのヘッダに含まれる、そのポート 幅検出用パケットの通過した第 1の通信制御装置 3のポートの位置を検出する。 [0157] (ステップ S402)ポート幅検出用ポート情報送信部 94は、ポート幅検出用ポート検 出部 93によって検出された、ポート幅検出用パケットの通過した第 1の通信制御装置 3のポートの位置を示す情報であるポート幅検出用ポート情報を第 1の情報処理装置 10に送信する。そのポート幅検出用ポート情報は、第 1の情報処理装置 10における ポート幅検出用ポート情報受付部 74で受け付けられる。
[0158] (ステップ S403)ポート幅検出部 75は、ポート幅検出用ポート情報受付部 74で受 け付けられたポート幅検出用ポート情報に基づいて、第 1の通信制御装置 3のポート 幅を検出する。なお、このポート幅の検出は、実施の形態 1と同様に行われるもので あり、その説明を省略する。
[0159] (ステップ S404)第 1のサーバ 60の検出用ポート検出部 91は、第 1の情報処理装 置 10から送信された範囲検出用パケットを受け付ける。そして、検出用ポート検出部 91は、範囲検出用パケットのヘッダに含まれる、そのポート検出用パケットの通過し た第 1の通信制御装置 3のポートの位置を検出する。
[0160] (ステップ S405)検出用ポート情報送信部 92は、検出用ポート検出部 91によって 検出された、範囲検出用パケットの通過した第 1の通信制御装置 3のポートの位置を 示す検出用ポート情報を第 1の情報処理装置 10に送信する。その検出用ポート情 報は、第 1の情報処理装置 10における検出用ポート情報受付部 71で受け付けられ る。
[0161] (ステップ S406)第 1のサーバ 60の検出用ポート検出部 91は、第 1の情報処理装 置 10から送信された範囲検出用パケットを受け付ける。そして、検出用ポート検出部 91は、範囲検出用パケットのヘッダに含まれる、そのポート検出用パケットの通過し た第 1の通信制御装置 3のポートの位置を検出する。
[0162] (ステップ S407)検出用ポート情報送信部 92は、検出用ポート検出部 91によって 検出された、範囲検出用パケットの通過した第 1の通信制御装置 3のポートの位置を 示す検出用ポート情報を第 1の情報処理装置 10に送信する。その検出用ポート情 報は、第 1の情報処理装置 10における検出用ポート情報受付部 71で受け付けられ る。
[0163] (ステップ S408)第 1の情報処理装置 10の範囲検出部 72は、ステップ S305、 S30 7で送信した範囲検出用パケットの通過した第 1の通信制御装置 3のポートの位置を 、検出用ポート情報受付部 71が受け付けた検出用ポート情報力 取得し、その 2つ のポートの位置を両端とするポートの範囲を検出する。
[0164] (ステップ S409)第 1の情報処理装置 10の範囲送信部 73は、ステップ S408で検 出されたポートの範囲を示す情報である範囲情報を、その範囲情報を第 2の情報処 理装置 20に送信する旨の指示と共に第 1のサーバ 60に送信する。
[0165] (ステップ S410)第 1のサーバ 60の通信部 61は、範囲情報を受信し、その範囲情 報を第 2の情報処理装置 20に送信する。その範囲情報は、第 2の情報処理装置 20 の範囲受付部 27で受け付けられる。
[0166] (ステップ S411)ポート幅送信部 76は、ステップ S403で検出された第 1の通信制 御装置 3のポート幅を示すポート幅情報を、そのポート幅情報を第 2の情報処理装置 20に送信する旨の指示と共に第 1のサーバ 60に送信する。
[0167] (ステップ S412)第 1のサーバ 60の通信部 61は、ポート幅情報を受信し、そのポー ト幅情報を第 2の情報処理装置 20に送信する。その範囲情報は、第 2の情報処理装 置 20のポート幅受付部 28で受け付けられる。
[0168] なお、図 21—図 23において、図 10と同様に処理の順序に関して、ある程度の任意 性がある。例えば、送信側のアドレス送信 (ステップ S310)は、受信側のアドレス送信 (ステップ S301)と同じタイミングで行ってもよい。特に、図 22において、範囲検出用 パケットの送信と、バブルパケットの送信 (ステップ S305— S307)は、検出用ポート 情報の受信を待つことなく行ってもよい。ただし、検出用ポート情報の受信が行われ てから、範囲検出(ステップ S408)が行われることになる。
[0169] また、本実施の形態における通信システムの動作の具体例にっ 、ては、送信側通 信制御装置におけるポート幅の検出を、送信側情報処理装置で行い、バブルバケツ ト送信ポートを含むポートの範囲の検出を送信側情報処理装置で行い、それらに付 随して行われる処理 (例えば、範囲情報の第 1の情報処理装置 10から第 2の情報処 理装置 20までの送信など)を行う以外、実施の形態 1における具体例と同様であり、 その説明を省略する。
[0170] 以上から、本実施の形態による通信システムでは、実施の形態 1と同様の効果に加 え、第 1の通信制御装置 3、あるいは第 2の通信制御装置 4におけるポート幅の検出 や、バブルパケット送信ポートを含むポートの範囲の検出等を第 1の情報処理装置 1 0、あるいは第 2の情報処理装置 20において行うことによって、第 1のサーバ 60にお ける処理負担を軽減することができる。特に、待ち受けの必要な処理 (例えば、 1回目 の範囲検出用パケットが送信された後に、 2回目の範囲検出用パケットが送信される のを待つ処理など)は処理負担が大きいため、そのような待ち受けの必要な処理をサ ーバで行わないことにより、第 1のサーバ 60における処理負担が大幅に軽減される。
[0171] なお、本実施の形態では、通信制御装置のポート幅の検出、バブルパケット送信ポ ートを含むポートの範囲の検出を情報処理装置において行う場合について説明した 力 そのどちらかの処理を実施の形態 1と同様に、サーバにおいて行うようにしてもよ い。
[0172] また、本実施の形態では、通信制御装置の特性の判断はサーバにぉ 、て行う場合 について説明したが、通信制御装置の特性判断も、情報処理装置において行うよう にしてもよい。この場合にも、情報処理装置から送信したパケットの通過した通信制 御装置のポートの位置を示す情報を、サーバから情報処理装置に送信することによ つて、情報処理装置において通信制御装置の特性の判断を実施の形態 1と同様に 行うことができる。
[0173] (実施の形態 3)
本発明の実施の形態 3による通信システムについて、図面を参照しながら説明する 。本実施の形態による通信システムは、片方の情報処理装置が、通信制御装置を介 さな 、で直接通信を行うものである。
[0174] 図 24は、本実施の形態による通信システムの構成を示すブロック図である。図 24 において、本実施の形態による通信システムは、第 1の情報処理装置 1と、第 2の情 報処理装置 2と、第 1の通信制御装置 3と、第 1のサーバ 6と、第 2のサーバ 7とを備え る。なお、この図 24で示される本実施の形態による通信システムは、第 2の通信制御 装置を備えない以外、実施の形態 1による通信システムと同様のものである。また、第 1の情報処理装置 1、第 2の情報処理装置 2、第 1のサーバ 6、第 2のサーバ 7の構成 および動作は、実施の形態 1と同様であり、その説明を省略する。 [0175] ここで、第 2の情報処理装置 2は、通信制御装置を介さないで通信を行うものである ため、第 2の情報処理装置 2は、あた力も Full Cone NATの通信制御装置を介し て通信を行っているように判断される。したがって、本実施の形態における動作は、 実施の形態 1において第 2の通信制御装置 4が Full Cone NATである場合と同様 の処理となり、第 1の情報処理装置 1と第 2の情報処理装置 2との間の通信を確立す ることがでさる。
[0176] 以上のように、本実施の形態による通信システムによれば、第 2の情報処理装置 2 が通信制御装置を介さないで通信を行う場合であっても、第 1の情報処理装置 1と第 2の情報処理装置 2との間の通信を確立することができる。
[0177] なお、本実施の形態では、実施の形態 1の通信システムにお 、て、第 2の通信制御 装置を備えな 、構成にっ 、て説明した力 実施の形態 2の通信システムにお 、て、 第 2の通信制御装置を備えない構成であってもよい。このような、第 2の情報処理装 置が通信制御装置を介さない場合であっても、第 1の情報処理装置と第 2の情報処 理装置との間の通信を確立することができる。
[0178] また、本実施の形態では、第 2の情報処理装置 2が通信制御装置を介さな 、で通 信を行う場合について説明したが、第 2の情報処理装置 2は、通信制御装置を介して 通信を行い、第 1の情報処理装置 1が通信制御装置を介さないで通信を行う場合で あっても、同様に第 1の情報処理装置 1と第 2の情報処理装置 2との間の通信を確立 することができる。
[0179] また、上記各実施の形態における説明では、情報処理装置および通信制御装置 の送信側、受信側を決めるときに、まず一方の情報処理装置等を送信側と暫定的に 決定してから、通信制御装置の特性に応じて、それを入れ替える場合について説明 したが、情報処理装置から、他の情報処理装置と通信を確立したい旨を第 1のサー バ 6等が受け取ったときに、第 1の通信制御装置 3および第 2の通信制御装置 4の特 性を判断し、その判断結果に応じて、送信側の情報処理装置や、受信側の情報処 理装置等の決定を行うようにしてもよ!、(この場合には、「送受信の入れ替え」 t 、ぅ概 念はないこととなる)。
[0180] (実施の形態 4) 本発明の実施の形態 4による通信システムについて、図面を参照しながら説明する 。本実施の形態による通信システムは、 1以上のバブルパケットを送信するものである
[0181] 図 25は、本実施の形態による通信システムの構成を示すブロック図である。図 25 において、本実施の形態による通信システムは、第 1の情報処理装置 30と、第 2の情 報処理装置 40と、第 1の通信制御装置 3と、第 2の通信制御装置 4と、サーバ 50とを 備える。第 1の通信制御装置 3、第 2の通信制御装置 4は、実施の形態 1と同様であり 、その説明を省略する。
[0182] 図 26は、本実施の形態による第 1の情報処理装置 30の構成を示すブロック図であ る。図 26において、第 1の情報処理装置 30は、通信部 11と、バブルパケット送信部 1
2と、範囲検出用パケット送信部 13と、返信パケット受付部 14と、ポート幅検出用パケ ット送信部 15と、バブルパケット送信対象ポート受付部 16と、範囲受付部 17と、ポー ト幅受付部 18と、返信パケット送信部 19と、検出用ポート情報受付部 71と、範囲検 出部 72と、範囲送信部 73と、ポート幅検出用ポート情報受付部 74と、ポート幅検出 部 75と、ポート幅送信部 76と、ポート割り当てパケット送信部 31と、バブルパケット送 信対象ポート送信部 32と、特性判断部 33と、特性送信部 34とを備える。なお、ポート 割り当てパケット送信部 31、バブルパケット送信対象ポート送信部 32、特性判断部 3
3、特性送信部 34以外の構成および動作は、バブルパケット送信部 12が 1以上のバ ブルパケットを送信し、検出用ポート情報受付部 71および範囲検出部 72が、バブル パケット送信ポートに関する範囲の検出の処理と共に、後述するポート割り当てパケ ット送信部 31が送信したポート割り当てパケットに関する範囲の検出の処理をも行う 以外、実施の形態 2と同様であり、その説明を省略する。
[0183] ポート割り当てパケット送信部 31は、返信パケットを送信するためのポートを第 1の 通信制御装置 3にお 、て割り当てるためのポート割り当てパケットを送信する。このポ ート割り当てパケットは、第 2の通信制御装置 4に対して送信される。ポート割り当て パケットの送信される第 2の通信制御装置 4におけるポートは、任意である。例えば、 第 2の情報処理装置 40がサーバ 50との通信で用いられる第 2の通信制御装置 4の ポートに対して、ポート割り当てパケットが送信される。なお、返信パケット送信部 19 は、返信パケットを送信する場合に、このポート割り当てパケット送信部 31がポート割 り当てパケットを送信した第丄の情報処理装置 30のポートから、返信パケットを送信す るちのとする。
[0184] バブルパケット送信対象ポート送信部 32は、範囲検出部 72によって検出された、 ポート割り当てパケット送信部 31の通過した第 1の通信制御装置 3のポート(「ポート 割り当てパケット送信ポート」とする)を含む 1以上のポートの範囲を、バブルパケット 送信対象ポート情報として、サーバ 50を介して第 2の情報処理装置 40に送信する。
[0185] 特性判断部 33は、第 1の通信制御装置 3の特性を判断する。具体的には、特性判 断用パケットをサーバ 50に送信し、その特性判断用パケットの通過した第 1の通信制 御装置 3のポートの位置を示す情報である特性判断用パケット情報を受け付けること により、第 1の通信制御装置 3の特性を判断する。
[0186] 特性送信部 34は、特性判断部 33が判断した第 1の通信制御装置 3の特性を示す 情報である特性情報を、サーバ 50を介して、第 2の情報処理装置 40に送信する。
[0187] なお、本実施の形態では、第 1の情報処理装置 30におけるバブルパケット送信部 1 2からバブルパケット送信対象ポート受付部 16まで、および検出用ポート情報受付部 71からポート幅送信部 76までは、第 1の情報処理装置 30が送信側として動作する 場合に用いられる。一方、範囲受付部 17から返信パケット送信部 19まで、範囲検出 用パケット送信部 13、ポート割り当てパケット送信部 31、バブルパケット送信対象ポ ート送信部 32、および検出用ポート情報受付部 71からポート幅送信部 76までは、第 1の情報処理装置 30が受信側として動作する場合に用いられる。すなわち、範囲検 出用パケット送信部 13、および検出用ポート情報受付部 71からポート幅送信部 76ま では、第 1の情報処理装置 30が送信側として動作する場合にも、受信側として動作 する場合にも用いられる。本実施の形態では、範囲検出用パケット送信部 13、およ び検出用ポート情報受付部 71からポート幅送信部 76までの各構成を、第 1の情報 処理装置 30が送信側として動作する場合、および受信側として動作する場合の両者 において用いる形態について説明する力 それらの各構成のうち、 1以上の構成に ついて、第 1の情報処理装置 30が送信側として動作する場合、および受信側として 動作する場合のそれぞれについて、別々に備えるようにしてもよい。 [0188] 図 27は、本実施の形態による第 2の情報処理装置 40の構成を示すブロック図であ る。図 27において、第 2の情報処理装置 40は、通信部 21と、バブルパケット送信部 2 2と、範囲検出用パケット送信部 23と、返信パケット受付部 24と、ポート幅検出用パケ ット送信部 25と、バブルパケット送信対象ポート受付部 26と、範囲受付部 27と、ポー ト幅受付部 28と、返信パケット送信部 29と、検出用ポート情報受付部 81と、範囲検 出部 82と、範囲送信部 83と、ポート幅検出用ポート情報受付部 84と、ポート幅検出 部 85と、ポート幅送信部 86と、ポート割り当てパケット送信部 41と、バブルパケット送 信対象ポート送信部 42と、特性判断部 43と、特性送信部 44とを備える。ここで、第 2 の情報処理装置 40における通信部 21からポート幅送信部 86までの各部は、第 1の 情報処理装置 30、第 1の通信制御装置 3と、第 2の情報処理装置 40、第 2の通信制 御装置 4が入れ替わる以外、第 1の情報処理装置 30における通信部 11からポート幅 送信部 76までの構成と同様であり、その説明を省略する。
[0189] なお、本実施の形態では、第 2の情報処理装置 40におけるバブルパケット送信部 2 2からバブルパケット送信対象ポート受付部 26まで、および検出用ポート情報受付部 81からポート幅送信部 86までは、第 2の情報処理装置 40が送信側として動作する 場合に用いられる。一方、範囲受付部 27から返信パケット送信部 29まで、範囲検出 用パケット送信部 23、ポート割り当てパケット送信部 41、バブルパケット送信対象ポ ート送信部 42、および検出用ポート情報受付部 81からポート幅送信部 86までは、第 2の情報処理装置 40が受信側として動作する場合に用いられる。すなわち、範囲検 出用パケット送信部 23、および検出用ポート情報受付部 81からポート幅送信部 86ま では、第 2の情報処理装置 40が送信側として動作する場合にも、受信側として動作 する場合にも用いられる。また、本実施の形態では、範囲検出用パケット送信部 23、 および検出用ポート情報受付部 81からポート幅送信部 86までの各構成を、第 2の情 報処理装置 40が送信側として動作する場合、および受信側として動作する場合の両 者において用いる形態について説明するが、それらの各構成のうち、 1以上の構成 について、第 2の情報処理装置 40が送信側として動作する場合、および受信側とし て動作する場合のそれぞれについて、別々に備えるようにしてもよい。
[0190] 図 28は、本実施の形態によるサーバ 50の構成を示すブロック図である。図 28にお いて、サーバ 50は、通信部 61と、情報送受信部 62と、バブルパケット送信対象ポー ト送信部 65と、検出用ポート検出部 91と、検出用ポート情報送信部 92と、ポート幅検 出用ポート検出部 93と、ポート幅検出用ポート情報送信部 94と、特性判断用ポート 検出部 95と、特性判断用ポート情報送信部 96と、バブルパケット送信対象ポート受 付部 97とを備える。なお、サーバ 50における特性判断用ポート検出部 95、特性判 断用ポート情報送信部 96、バブルパケット送信対象ポート受付部 97以外の構成お よび動作は、検出用ポート検出部 91、検出用ポート情報送信部 92、ポート幅検出用 ポート検出部 93、ポート幅検出用ポート情報送信部 94が送信側の情報処理装置、 受信側の情報処理装置の両方について処理を行う以外、実施の形態 2と同様であり 、その説明を省略する。ここで、本実施の形態によるバブルパケット送信対象ポート 送信部 65は、バブルパケット送信対象ポート受付部 97が受け付けたバブルパケット 対象ポート情報を送信するものである。
[0191] 特性判断用ポート検出部 95は、第 1の情報処理装置 30、あるいは第 2の情報処理 装置 40から送信された特性判断用パケットを受け付け、その特性判断用パケットに 基づいて、特性判断用パケットが通過した第 1の通信制御装置 3、あるいは第 2の通 信制御装置 4のポートの位置を検出する。そのポート位置の検出は、特性判断用パ ケットに含まれる(例えば、特性判断用パケットのヘッダに含まれる)特性判断用パケ ットが通過した第 1の通信制御装置 3、あるいは第 2の通信制御装置 4のポートの位 置を取得することによって行われる。
[0192] 特性判断用ポート情報送信部 96は、特性判断用ポート検出部 95が検出したポート の位置を示す特性判断用ポート情報を、特性判断用パケットを送信した情報処理装 置に送信する。
[0193] バブルパケット送信対象ポート受付部 97は、バブルパケット送信対象ポートを示す 情報であるバブルパケット送信対象ポート情報を受け付ける。このバブルパケット送 信対象ポート情報によって示されるバブルパケット送信対象ポートは、 1以上のポート である。
[0194] 次に、本実施の形態による通信システムの動作について説明する。なお、本実施 の形態による通信システムの動作は、実施の形態 1における図 5で示される動作と同 様であり、その説明を省略する。
[0195] 次に、図 5のフローチャートにおけるステップ S101の処理について、図 29を用いて 説明する。図 29は、情報処理装置の送信側、および受信側を決定する処理につい て示すフローチャートである。ここで、このフローチャートの説明では、第 2の情報処 理装置 40から第 1の情報処理装置 30に対して通信を行おうとしているとする。したが つて、第 1の情報処理装置 30、および第 1の通信制御装置 3が着呼側の装置となり、 第 2の情報処理装置 40、および第 2の通信制御装置 4が発呼側の装置となる。なお 、第 1の情報処理装置 30から第 2の情報処理装置 40に対して通信を行うとした場合 には、第 1の情報処理装置 30、および第 1の通信制御装置 3と、第 2の情報処理装 置 40、および第 2の通信制御装置 4が入れ替わる以外は、以下のフローチャートの 説明と同様である。なお、発呼側とは、相手方の装置との通信を要求する側のことで あり、着呼側とは、発呼側の装置力 通信の要求を受ける側のことである。
[0196] (ステップ S501)第 2の情報処理装置 40の特性判断部 43は、発呼側の通信制御 装置である第 2の通信制御装置 4の特性を判断する。特性の判断方法につ!、ては、 後述する。
[0197] (ステップ S502)特性判断部 43は、第 2の通信制御装置 4が PS NATを用いてい るかどうか判断する。そして、 PS NATを用いている場合には、特性送信部 44が、 第 2の通信制御装置 4が PS NATを用いている旨の特性情報を、サーバ 50を介し て第 1の情報処理装置 30に送信し、ステップ S504に進み、そうでない場合には、ス テツプ S503に進む。
[0198] (ステップ S503)特性判断部 43は、発呼側の装置、すなわち第 2の情報処理装置
40を、受信側の装置、すなわちバブルパケットを受信する側の装置に決定する。そし て、送受信の決定の処理は終了となる。
[0199] (ステップ S504)第 1の情報処理装置 30の特性判断部 33は、着呼側の通信制御 装置である第 1の通信制御装置 3の特性を判断する。特性の判断方法については、 後述する。
[0200] (ステップ S505)特性判断部 33は、第 1の通信制御装置 3が PS NATを用いてい るかどうか判断する。そして、 PS NATを用いている場合には、送信側、受信側の双 方が PS NATを用いていることとなり、エラーとなる。一方、 PS NATを用いていな ヽ場合に【ま、ステップ S506に進む。
[0201] (ステップ S506)特性判断部 33は、着呼側の装置、すなわち第 1の情報処理装置 30を、受信側の装置、すなわちバブルパケットを受信する側の装置に決定する。そし て、送受信の決定の処理は終了となる。
[0202] 次に、図 30を用いて、第 1の通信制御装置 3の特性の判断方法について説明する 。なお、第 2の通信制御装置 4の特性も、同様にして判断することができる。
[0203] 図 30において、第 1の情報処理装置 30の特性判断部 33は、 2つの特性判断用パ ケットを、同一のポート P100から、それぞれサーバ 50のポート P300と、ポート P301 とに送信する。ここで、ポート P300と、ポート P301とは異なるポートである。サーバ 5 0の特性判断用ポート検出部 95は、ポート P300, P301に送信された各特性判断用 パケットの通過した第 1の通信制御装置 3のポートの位置(P200, P201)を検出する 。そして、そのポートの位置を示す情報である特性判断用ポート情報が特性判断用 ポート情報送信部 96から第 1の情報処理装置 30に送信される。特性判断部 33は、 その特性判断用ポート情報を受け付け、ポート P200と、ポート P201とが等しいかど うかによって第 1の通信制御装置 3の特性を判断する。具体的には、ポート P200が ポート P201と等しい場合には、第 1の通信制御装置 3が PS NATを用いていないと 判断する。一方、ポート P200とポート P201が異なる場合には、第 1の通信制御装置 3力 PS NATを用いていると判断する。
[0204] 次に、図 5のフローチャートにおけるステップ S102の処理について、図 31—図 33 を用いて説明する。図 31—図 33は、通信の確立に関する、送信側の情報処理装置 、サーバ、受信側の情報処理装置の間における情報のやり取りや処理を説明するた めの図である。また、説明の便宜のため、第 1の情報処理装置 30、および第 1の通信 制御装置 3が送信側であるとし、第 2の情報処理装置 40、および第 2の通信制御装 置 4が受信側であるとする。
[0205] (ステップ S601)サーバ 50における情報送受信部 62は、第 1の通信制御装置 3の I Pアドレスを示すアドレス情報を第 2の情報処理装置 40に送信する。その送信された アドレス情報は、第 2の情報処理装置 40の通信部 21で受け付けられ、ポート割り当 てパケット送信部 41に渡される。
[0206] (ステップ S602)第 2の情報処理装置 40におけるポート幅検出用パケット送信部 2 5は、ポート幅検出用パケットをサーバ 50に送信する。ここで、この送信においては、 複数のポート幅検出用パケットの通過する第 2の通信制御装置 4のポートがそれぞれ 異なるようにする。このポート幅検出用パケットは、例えば、第 2の情報処理装置 40に おけるポート番号がそれぞれ異なる複数のポートから送信される。
[0207] (ステップ S603)サーバ 50のポート幅検出用ポート検出部 93は、第 2の情報処理 装置 40から送信されたポート幅検出用パケットを受け付ける。そして、ポート幅検出 用ポート検出部 93は、ポート幅検出用パケットのヘッダに含まれる、そのポート幅検 出用パケットの通過した第 2の通信制御装置 4のポートの位置を検出する。
[0208] (ステップ S604)ポート幅検出用ポート情報送信部 94は、ポート幅検出用ポート検 出部 93によって検出された、ポート幅検出用パケットの通過した第 2の通信制御装置 4のポートの位置を示す情報であるポート幅検出用ポート情報を第 2の情報処理装置 40に送信する。そのポート幅検出用ポート情報は、第 2の情報処理装置 40における ポート幅検出用ポート情報受付部 84で受け付けられる。
[0209] (ステップ S605)ポート幅検出部 85は、ポート幅検出用ポート情報受付部 84で受 け付けられたポート幅検出用ポート情報に基づいて、第 2の通信制御装置 4のポート 幅を検出する。なお、このポート幅の検出は、実施の形態 1と同様に行われるもので あり、その説明を省略する。
[0210] (ステップ S606)範囲検出用パケット送信部 23は、範囲検出用パケットを第 2の通 信制御装置 4を介して、サーバ 50に送信する。この送信において、範囲検出用パケ ットが第 2の通信制御装置 4にお 、て最新に割り当てられるポートを通過するようにパ ケットの送信を行うものとする。バブルパケット送信ポートを含むポートの範囲を適切 に限定することができるようにするためである。例えば、範囲検出用パケット送信部 23 は、通信でそれまでに用いていない第 2の情報処理装置 40のポートを用いて、範囲 検出用パケットを送信する。
[0211] (ステップ S607)サーバ 50の検出用ポート検出部 91は、第 2の情報処理装置 40か ら送信された範囲検出用パケットを受け付ける。そして、検出用ポート検出部 91は、 範囲検出用パケットのヘッダに含まれる、そのポート検出用パケットの通過した第 2の 通信制御装置 4のポートの位置を検出する。
[0212] (ステップ S608)検出用ポート情報送信部 92は、検出用ポート検出部 91によって 検出された、範囲検出用パケットの通過した第 2の通信制御装置 4のポートの位置を 示す検出用ポート情報を第 2の情報処理装置 40に送信する。その検出用ポート情 報は、第 2の情報処理装置 40における検出用ポート情報受付部 81で受け付けられ る。
[0213] (ステップ S609)ポート割り当てパケット送信部 41は、ポート割り当てパケットを第 1 の通信制御装置 3に送信する。第 1の通信制御装置 3のアドレスは、ステップ S601で 送信されたものを用いる。
[0214] (ステップ S610)範囲検出用パケット送信部 23は、範囲検出用パケットを第 2の通 信制御装置 4を介して、サーバ 50に送信する。
[0215] (ステップ S611)サーバ 50の検出用ポート検出部 91は、第 2の情報処理装置 40か ら送信された範囲検出用パケットを受け付ける。そして、検出用ポート検出部 91は、 範囲検出用パケットのヘッダに含まれる、そのポート検出用パケットの通過した第 2の 通信制御装置 4のポートの位置を検出する。
[0216] (ステップ S612)検出用ポート情報送信部 92は、検出用ポート検出部 91によって 検出された、範囲検出用パケットの通過した第 2の通信制御装置 4のポートの位置を 示す検出用ポート情報を第 2の情報処理装置 40に送信する。その検出用ポート情 報は、第 2の情報処理装置 40における検出用ポート情報受付部 81で受け付けられ る。
[0217] (ステップ S613)第 2の情報処理装置 40の範囲検出部 82は、ステップ S606、 S61 0で送信した範囲検出用パケットの通過した第 2の通信制御装置 4のポートの位置を 、検出用ポート情報受付部 81が受け付けた検出用ポート情報力も取得し、その 2つ のポートの位置に基づいて、ポート割り当てパケット送信ポートを含むポートの範囲( バブルパケット送信対象ポート)を検出する。なお、このバブルパケット送信対象ポー トは、 1つのポートである場合もあり、あるいは、 2以上のポートを含む場合もある。
[0218] (ステップ S614)第 2の情報処理装置 40のポート幅送信部 86は、ステップ S605で 検出された第 2の通信制御装置 4のポート幅を示す情報であるポート幅情報を、その ポート幅情報を第 1の情報処理装置 30に送信する旨の指示と共にサーバ 50に送信 する。また、第 2の情報処理装置 40のバブルパケット送信対象ポート送信部 42は、ス テツプ S613で検出されたバブルパケット送信対象ポートを示すバブルパケット送信 対象ポート情報を、そのバブルパケット送信対象ポート情報を第 1の情報処理装置 3 0に送信する旨の指示と共にサーバ 50に送信する。これらの情報は、同一のパケット で送信されてもよぐあるいは、別々のパケットで送信されてもよい。
[0219] (ステップ S615)サーバ 50の通信部 61は、ポート幅情報とバブルパケット送信対象 ポート情報を受信し、それらの情報を第 1の情報処理装置 30に送信する。バブルパ ケット送信対象ポートは、バブルパケット送信対象ポート受付部 97にお 、て受け付け られ、バブルパケット送信対象ポート送信部 65によって第 1の情報処理装置 30に送 信される。そのポート幅情報は、第 1の情報処理装置 30のポート幅受付部 18で受け 付けられ、バブルパケット送信対象ポート情報は、バブルパケット送信対象ポート受 付部 16で受け付けられる。
[0220] (ステップ S616)サーバ 50における情報送受信部 62は、第 2の通信制御装置 4の I Pアドレスを示すアドレス情報を第 1の情報処理装置 30に送信する。その送信された アドレス情報は、第 1の情報処理装置 30の通信部 11で受け付けられ、バブルバケツ ト送信部 12に渡される。
[0221] (ステップ S617)第 1の情報処理装置 30におけるポート幅検出用パケット送信部 1 5は、ポート幅検出用パケットをサーバ 50に送信する。ここで、この送信においては、 複数のポート幅検出用パケットの通過する第 1の通信制御装置 3のポートがそれぞれ 異なるようにする。このポート幅検出用パケットは、例えば、第 1の情報処理装置 30に おけるポート番号がそれぞれ異なる複数のポートから送信される。
[0222] (ステップ S618)サーバ 50のポート幅検出用ポート検出部 93は、第 1の情報処理 装置 30から送信されたポート幅検出用パケットを受け付ける。そして、ポート幅検出 用ポート検出部 93は、ポート幅検出用パケットのヘッダに含まれる、そのポート幅検 出用パケットの通過した第 1の通信制御装置 3のポートの位置を検出する。
[0223] (ステップ S619)ポート幅検出用ポート情報送信部 94は、ポート幅検出用ポート検 出部 93によって検出された、ポート幅検出用パケットの通過した第 1の通信制御装置 3のポートの位置を示す情報であるポート幅検出用ポート情報を第 1の情報処理装置 30に送信する。そのポート幅検出用ポート情報は、第 1の情報処理装置 30における ポート幅検出用ポート情報受付部 74で受け付けられる。
[0224] (ステップ S620)ポート幅検出部 75は、ポート幅検出用ポート情報受付部 74で受 け付けられたポート幅検出用ポート情報に基づいて、第 1の通信制御装置 3のポート 幅を検出する。なお、このポート幅の検出は、実施の形態 1と同様に行われるもので あり、その説明を省略する。
[0225] (ステップ S621)範囲検出用パケット送信部 13は、範囲検出用パケットを第 1の通 信制御装置 3を介して、サーバ 50に送信する。
[0226] (ステップ S622)サーバ 50の検出用ポート検出部 91は、第 1の情報処理装置 30か ら送信された範囲検出用パケットを受け付ける。そして、検出用ポート検出部 91は、 範囲検出用パケットのヘッダに含まれる、そのポート検出用パケットの通過した第 1の 通信制御装置 3のポートの位置を検出する。
[0227] (ステップ S623)検出用ポート情報送信部 92は、検出用ポート検出部 91によって 検出された、範囲検出用パケットの通過した第 1の通信制御装置 3のポートの位置を 示す検出用ポート情報を第 1の情報処理装置 30に送信する。その検出用ポート情 報は、第 1の情報処理装置 30における検出用ポート情報受付部 71で受け付けられ る。
[0228] (ステップ S624)バブルパケット送信部 12は、ステップ S616で送信されたアドレス 情報によって示される第 2の通信制御装置 4の IPアドレスと、ステップ S614、 S615で 送信されたバブルパケット送信対象ポート情報とに基づ!/、て、第 2の通信制御装置 4 のバブルパケット送信対象ポートにバブルパケットを送信する。バブルパケット送信 対象ポートが 2以上のポートを含む場合には、バブルパケット送信部 12は、ポート幅 受付部 18で受け付けられたポート幅情報の示すポート幅ごとに、バブルパケットを送 信する。
[0229] (ステップ S625)範囲検出用パケット送信部 13は、範囲検出用パケットを第 1の通 信制御装置 3を介して、サーバ 50に送信する。 [0230] (ステップ S626)サーバ 50の検出用ポート検出部 91は、第 1の情報処理装置 30か ら送信された範囲検出用パケットを受け付ける。そして、検出用ポート検出部 91は、 範囲検出用パケットのヘッダに含まれる、そのポート検出用パケットの通過した第 1の 通信制御装置 3のポートの位置を検出する。
[0231] (ステップ S627)検出用ポート情報送信部 92は、検出用ポート検出部 91によって 検出された、範囲検出用パケットの通過した第 1の通信制御装置 3のポートの位置を 示す検出用ポート情報を第 1の情報処理装置 30に送信する。その検出用ポート情 報は、第 1の情報処理装置 30における検出用ポート情報受付部 71で受け付けられ る。
[0232] (ステップ S628)第 1の情報処理装置 30の範囲検出部 72は、ステップ S621、 S62 5で送信した範囲検出用パケットの通過した第 1の通信制御装置 3のポートの位置を 、検出用ポート情報受付部 71が受け付けた検出用ポート情報力 取得し、その 2つ のポートの位置に基づいて、バブルパケット送信ポートを含むポートの範囲を検出す る。なお、このポートの範囲は、 1つのポートである場合もあり、あるいは、 2以上のポ ートを含む場合もある。
[0233] (ステップ S629)第 1の情報処理装置 30の範囲送信部 73は、ステップ S628で検 出されたポートの範囲を示す情報である範囲情報を、その範囲情報を第 2の情報処 理装置 40に送信する旨の指示と共にサーバ 50に送信する。また、ポート幅送信部 7 6は、ステップ S620で検出された第 1の通信制御装置 3のポート幅を示す情報である ポート幅情報を、そのポート幅情報を第 2の情報処理装置 40に送信する旨の指示と 共にサーバ 50に送信する。この範囲情報とポート幅情報とは、同一のパケットで送信 されてもよく、あるいは、別々のパケットで送信されてもよい。
[0234] (ステップ S630)サーバ 50の通信部 61は、範囲情報、ポート幅情報を受信し、その 範囲情報等を第 2の情報処理装置 40に送信する。その範囲情報は、第 2の情報処 理装置 40の範囲受付部 27で受け付けられる。ポート幅情報は、ポート幅受付部 28 で受け付けられる。
[0235] (ステップ S631)返信パケット送信部 29は、ステップ S601で受け取ったアドレス情 報の示す IPアドレスによって特定される第 1の通信制御装置 3に対して返信パケット を送信する。この返信パケットは、範囲受付部 27から受け取った範囲情報の示す範 囲のポートに対して、ポート幅情報の示すポート幅ごとに送信される。
[0236] (ステップ S632)第 1の情報処理装置 30の返信パケット受付部 14は、第 2の情報 処理装置 40から送信された返信パケットを受け付ける。この返信パケットを受け付け ることにより、第 1の情報処理装置 30と、第 2の情報処理装置 40との間の通信が確立 することとなる。そして、この後、第 1の情報処理装置 30と第 2の情報処理装置 40との 間で、サーバ 50を介さない情報の送受信 (例えば、トンネル通信)が行われる。
[0237] なお、図 31—図 33において、ポート幅の検出は、ポート幅情報の送信より以前に 行われていればよぐ例えば、ポート幅の検出の直後に、ポート幅情報が受信側に送 信されてもよい。また、送信側のアドレスの送信 (ステップ S601)も、例えば、検出用 ポート情報の送信 (ステップ S608)と同時に送信してもよい。このように、図 31—図 3 3においては、処理の順序に関して、ある程度の任意性がある。また、図 32において 、範囲検出用パケットの送信と、ポート割り当てパケットの送信 (ステップ S606、 S60 9、 S610)や、範囲検出用パケットの送信と、バブルパケットの送信(ステップ S621、 S624、 S625)は、検出用ポート情報の受信を待つことなく行ってもよい。
[0238] 次に、本実施の形態による通信システムの動作について、具体例を用いて説明す る。この具体例において、第 1の通信制御装置 3等の IPアドレスは、第 1のサーバ 6が サーバ 50となった以外、実施の形態 1の具体例と同様であるとする。
[0239] また、第 2の情報処理装置 40が発呼側であるとする。以下の具体例においては、 具体例 1において、第 2の通信制御装置 4が PS NAT以外である場合について説 明する。また、具体例 2において、第 2の通信制御装置 4が PS NATであり、第 1の 通信制御装置 3が PS NAT以外である場合にっ 、て説明する。
[0240] なお、この具体例では、サーバ 50と第 1の情報処理装置 30との間、あるいはサー バ 50と第 2の情報処理装置 40との間でのパケットの送受信を効率よく行うために、送 受信の決定 (ステップ S 101)と、通信の確立 (ステップ S 102)との処理の一部を並行 して行う場合について説明する。
[0241] [具体例 1]
図 34—図 38は、具体例について説明するための図である。なお、第 1の情報処理 装置 30、および第 2の情報処理装置 40から、サーバ 50に対するアクセスが行われ ており、サーバ 50においてすでに、第 1の通信制御装置 3の IPアドレスと、第 1の通 信制御装置 3のポート P1のポート番号と、第 1の情報処理装置 30の機器 IDとが保持 されているものとする。また同様に、サーバ 50において、第 2の通信制御装置 4の IP アドレスと、第 2の通信制御装置 4のポート P2のポート番号と、第 2の情報処理装置 4 0の機器 IDとが保持されて 、るものとする。
[0242] まず、第 2の情報処理装置 40から接続要求が行われる動作にっ 、て説明する。図 34において、第 2の情報処理装置 40は、サーバ 50に対して、第 1の情報処理装置 3 0の機器 IDと、接続要求とを送信する。すると、サーバ 50は、第 1の通信制御装置 3 の IPアドレスと、ポート P1のポート番号とを第 2の情報処理装置 40に送信する(ステツ プ S601)。この送信は、ポート P2を介して行われる。
[0243] 第 2の情報処理装置 40のポート幅検出用パケット送信部 25は、 3つのポート幅検 出用パケット (UDPのパケットであるとする)を、それぞれ第 2の情報処理装置 40のポ ート LPO、 LP1、 LP2から送信する。ここで、ポート LPO、 LP1、 LP2は、第 2の情報 処理装置 40において新たに割り当てられた異なるポートであるとする。したがって、 第 2の通信制御装置 4の特性にかかわらず、各ポート幅検出用パケットは第 2の通信 制御装置 4において別々のポート P5、 P6、 P7を介してサーバ 50に送信されることに なる (ステップ S602)。各ポート幅検出用パケットは、サーバ 50の通信部 61を介して ポート幅検出用ポート検出部 93で受け付けられ、各パケットのヘッダに含まれる第 2 の通信制御装置 4のポート P5、 P6、 P7のポート番号が検出される(ステップ S603)。 ポート幅検出用ポート情報送信部 94は、各ポート番号をペイロードに含むパケットで あるポート幅検出用ポート情報を、それぞれのポート幅検出用パケットの通過した第 2 の通信制御装置 4のポートに対して送信する (ステップ S604)。具体的には、ポート P 5を介して送信されたポート幅検出用パケットに対しては、そのポート P5のポート番号 をペイロードに含むポート幅検出用ポート情報がポート P5に対して送信される。その ポート幅検出用ポート情報は、第 2の通信制御装置 4においてアドレス変換され、第 2 の情報処理装置 40のポート LPOに送信される。そのポート幅検出用ポート情報は、 通信部 21を介してポート幅検出用ポート情報受付部 84で受け付けられる。同様にし て、ポート P6, P7を介して、ポート幅検出用ポート情報が第 2の情報処理装置 40に 送信される。なお、この具体例では、範囲検出用パケットをも利用してポート幅の検 出を行うため、この段階では、ポート幅の検出は行われない。また、ポート P7を介して 送信されたポート幅検出用パケットは、第 2の通信制御装置 4の特性を判断するため のパケットである特性判断用パケットをかねているため、第 2の通信制御装置 4のポー ト P7を介して送信されたポート幅検出用ポート情報は、通信部 21から特性判断部 43 にち渡される。
[0244] 第 2の情報処理装置 40の範囲検出用パケット送信部 23は、範囲検出用パケット( UDPのパケットであるとする)をポート LP2からサーノ 50のポート P3に送信する(ス テツプ S606)。なお、この具体例では、この範囲検出用パケットは、ポート幅検出用 パケットもかねている。
[0245] ポート P3は、ポート幅検出用パケットの送信先であるポート P4とは異なるポートであ る。したがって、第 2の通信制御装置 4のポート割り当てルールが Port Sensitiveタ イブの場合、すなわち、第 2の通信制御装置 4が PS NATである場合には、その範 囲検出用パケットが通過する第 2の通信制御装置 4におけるポート P8は、ポート LP2 力も送信されたポート幅検出用パケットの通過したポート P7と異なるポートとなるが、 第 2の通信制御装置 4のポート割り当てルールが Port Sensitiveタイプ以外の場合 には、ポート P7と、ポート P8とは等しいポートとなる。
[0246] サーバ 50の検出用ポート検出部 91は、ポート P3に送信された範囲検出用パケット を、通信部 61を介して受け付ける。検出用ポート検出部 91は、そのパケットのヘッダ に含まれる第 2の通信制御装置 4のポート P8のポート番号を検出する (ステップ S60 7)。検出用ポート情報送信部 92は、その検出されたポート P8のポート番号をペイ口 ードに含む検出用ポート情報を、第 2の通信制御装置 4のポート P8に送信する (ステ ップ S608)。その検出用ポート情報は第 2の通信制御装置 4でアドレス変換され、第 2の情報処理装置 40のポート LP2に送信され、検出用ポート情報受付部 81で受け 付けられる。なお、この具体例では、サーバ 50のポート P3に対して送信された範囲 検出用パケットは、ポート幅検出用パケット、特性判断用パケットをかねているため、 検出用ポート情報は、通信部 21から、ポート幅検出用ポート情報受付部 84、特性判 断部 43にも渡される。
[0247] この具体例では、特性判断用パケットをポート幅検出用パケット、および範囲検出 用パケットとかねているため、サーバ 50の特性判断用ポート検出部 95、および特性 判断用ポート情報送信部 96は用いられないことになる。
[0248] ポート幅検出部 85は、ポート幅検出用ポート情報受付部 84において受け付けられ た第 2の通信制御装置 4のポート P5、 P6、 P7、 P8のポート番号に基づいて、第 2の 通信制御装置 4のポート幅の検出を行う(ステップ S605)。具体的には、ポート P8と ポート P7との差力 ^でない場合には、ポート P6とポート P5の差、ポート P7とポート P6 の差、ポート P8とポート P7の差のうち、一番小さい値を第 2の通信制御装置 4のポー ト幅として検出する。一方、ポート P8とポート P7との差が 0である場合には、ポート P6 とポート P5の差、ポート P7とポート P6の差のうち、小さい方を第 2の通信制御装置 4 のポート幅として検出する。この具体例では、第 2の通信制御装置 4が PS NATで はないため、ポート P8とポート P7との差は 0となる。また、この具体例では、ポート幅 が「1」と検出されたとする。
[0249] 特性判断部 43は、ポート P7、 P8のポート番号に基づいて、第 2の通信制御装置 4 の特性を判断する (ステップ S501)。具体的には、ポート P7とポート P8が等しい場合 には、第 2の通信制御装置 4の特性力Full Cone NAT, R NAT, PR NAT (こ れら 3つのアドレス割り当てタイプが Coneの NATを Cone系の NATと呼ぶことにする )、 AS NATの!、ずれかである(すなわち、ポート割り当てルールが Coneタイプ、あ るいは Address Sensitiveタイプである)と判断され、ポート P7とポート P8が異なる 場合には、第 2の通信制御装置 4の特性力PS NATである(すなわち、ポート割り当 てルールが Port Seisitiveタイプである)と判断される。この具体例では、第 2の通 信制御装置 4が PS NATではないため、前述のように、ポート P7とポート P8力等しく 、特性判断部 43は、第 2の通信制御装置 4が PS NATでないと判断する (ステップ S 502)。その結果、発呼側である第 2の情報処理装置 40が受信側の情報処理装置と して動作することになる (ステップ S 503)。
[0250] 第 2の情報処理装置 40のポート割り当てパケット送信部 41は、サーバ 50から送信 された第 1の通信制御装置 3のアドレスを用いることにより、第 1の通信制御装置 3の ポート PIに UDPのパケットであるポート割り当てパケットを送信する(ステップ S609) 。このポート割り当てパケットも、第 2の情報処理装置 40のポート LP2から送信される 。このポート割り当てパケットは、第 2の通信制御装置 4のポート P9を介して送信され る。第 2の通信制御装置 4が AS NATであればポート P8とポート P9が異なることに なり、第 2の通信制御装置 4が Cone系の NATであればポート P8とポート P9は等し いことになる。なお、このポート割り当てパケットの寿命 (例えば、そのパケットに設定 される TTLなど)を設定することにより、ポート割り当てパケットがポート P1に到達する 前に消滅するようにしてもよい。ポート割り当てパケットを送信するのは、第 2の通信 制御装置 4において送信履歴を残すためであり、ポート割り当てパケットが第 1の通 信制御装置 3に到達しなくてもよいからである。
範囲検出用パケット送信部 23は、 UDPのパケットである範囲検出用パケットを第 2 の情報処理装置 40のポート LP3からサーバ 50のポート P4に送信する(ステップ S61 0)。ポート LP3は、ポート LP0、 LP1、 LP2のいずれとも異なる、第 2の情報処理装置 40において新たに割り当てられたポートである。その範囲検出用パケットは、第 2の 通信制御装置 4のポート P10を介して送信される。ここで、ポート P10は、ポート P7、 P8、 P9のいずれとも異なるポートである。その範囲検出用パケットは、サーバ 50の検 出用ポート検出部 91で受け付けられ、ヘッダに含まれるポート P10のポート番号が 検出される (ステップ S611)。そのポート番号を含む検出用ポート情報は、検出用ポ ート情報送信部 92からポート P10を介して第 2の情報処理装置 40に送信される (ス テツプ S612)。その検出用ポート情報は、第 2の情報処理装置 40の検出用ポート情 報受付部 81で受け付けられる。そして、範囲検出部 82によって、バブルパケット送信 対象ポートの検出が行われる(ステップ S613)。この検出では、ポート P8のポート位 置から、ポート P10のひとつ手前に割り当てられるはずのポート位置までがバブルパ ケット送信対象ポートとして検出される。第 2の通信制御装置 4の特性によっては、ポ ート P8とポート P9が等しい場合もありうる力 第 2の通信制御装置 4の特性にかかわ らず、ポート P9とポート P10は異なる力もである。ポート P10のひとつ手前に割り当て られるはずのポート位置は、ポート P10のポート番号から、ポート幅検出部 85によつ て検出された第 2の通信制御装置 4のポート幅 (この具体例では「1」)だけ引いたポ ート番号によって示される位置である。バブルパケット送信対象ポート送信部 42は、 範囲検出部 82によって検出されたバブルパケット送信対象ポートを示すバブルパケ ット送信対象ポート情報を、第 1の情報処理装置 30に送信する指示と共に、サーバ 5 0に送信する (ステップ S614)。また、ポート幅送信部 86も、第 2の通信制御装置 4の ポート幅を示すポート幅情報を、第 1の情報処理装置 30に送信する指示と共に、サ ーバ 50に送信する (ステップ S614)。また、特性送信部 44も、第 2の通信制御装置 4 の特性を示す情報、すなわち第 2の通信制御装置 4が PS NATではない旨の特性 情報を、第 1の情報処理装置 30に送信する指示と共に、サーバ 50に送信する。
[0252] それらの情報は、サーバ 50において中継され、第 1の通信制御装置 3のポート P1 を介して、第 1の情報処理装置 30に送信される (ステップ S615)。バブルパケット送 信対象ポート情報は、バブルパケット送信対象ポート受付部 16で受け付けられる。ポ ート幅情報は、ポート幅受付部 18で受け付けられると共に、図示しない経路によって バブルパケット送信部 12に渡される。特性情報はポート幅検出用パケット送信部 15 、範囲検出用パケット送信部 13、バブルパケット送信部 12等に渡され、第 2の通信 制御装置 4が PS NATではな力つたため、第 1の情報処理装置 30が送信側の装置 としての処理シーケンスを行うと判断される。
[0253] サーバ 50は、受信側の第 2の通信制御装置 4の IPアドレスを第 1の情報処理装置 3 0に送信する(ステップ S616)。
[0254] 第 1の情報処理装置 30のポート幅検出用パケット送信部 15は、第 1の情報処理装 置 30の異なるポート LP4、 LP5から、それぞれ UDPパケットであるポート幅検出用パ ケットをサーバ 50のポート P3に送信する(ステップ S617)。それらのポート幅検出用 パケットは、第 1の通信制御装置 3の異なるポート Pl l, P12を介してサーバ 50に送 信され、ポート幅検出用ポート検出部 93で受け付けられる。ポート幅検出用ポート検 出部 93で、第 2の情報処理装置 40から送信されたポート幅検出パケットの場合と同 様にして、ポート Pl l, P12のポート番号が検出される(ステップ S618)。ポート幅検 出用ポート情報送信部 94は、ポート Pl l, P12の検出されたポート番号をペイロード に含むパケットであるポート幅検出用ポート情報を、それぞれポート Pl l, P12を介し て第 1の情報処理装置 30に送信する (ステップ S619)。そのポート幅検出用ポート情 報は、ポート幅検出用ポート情報受付部 74において受け付けられる。なお、この具 体例では、範囲検出用パケットをも利用してポート幅の検出を行うため、この段階で は、ポート幅の検出は行われない。
[0255] 範囲検出用パケット送信部 13は、 UDPパケットである範囲検出用パケットを第 1の 情報処理装置 30のポート LP6から送信する (ステップ S621)。この範囲検出用パケ ットは、第 1の通信制御装置 3のポート P13を介して、サーバ 50のポート P3に送信さ れる。ここで、この範囲検出用パケットは、ポート幅検出用パケットをかねている。また 、ポート LP6は、ポート LP4, LP5のそれぞれと異なる、第 1の情報処理装置 30にお V、て新たに割り当てられたポートであるとする。
[0256] その範囲検出用パケットは、サーバ 50の検出用ポート検出部 91で受け付けられ、 ポート P13のポート番号が検出される (ステップ S622)。検出用ポート情報送信部 92 は、その検出されたポート P13のポート番号をペイロードに含むパケットである検出用 ポート情報を、ポート P13を介して第 1の情報処理装置 30に送信する (ステップ S62 3)。その検出用ポート情報は、検出用ポート情報受付部 71で受け付けられる。また、 その範囲検出用パケットはポート幅検出用パケットをかねているため、通信部 11は、 その検出用ポート情報をポート幅検出用ポート情報受付部 74にも渡す。
[0257] ポート幅検出部 75は、ポート幅検出用ポート情報受付部 84において受け付けられ た第 1の通信制御装置 3のポート Pl l、 P12、 P13のポート番号に基づいて、第 1の 通信制御装置 3のポート幅の検出を行う(ステップ S620)。具体的には、ポート P12と ポート P11の差、ポート P13とポート P12の差のうち、小さい方を第 1の通信制御装置 3のポート幅として検出する。この具体例では、ポート幅が「1」と検出されたとする。
[0258] バブルパケット送信部 12は、バブルパケット送信対象ポート情報が示す範囲のバ ブルパケット送信対象ポートに対して、バブルパケットを送信する(ステップ S624)。 このバブルパケットは、第 1の情報処理装置 30のポート LP6から送信される。また、バ ブルパケット送信対象ポートが複数のポートを含む範囲である場合には、バブルパケ ットは、ポート幅受付部 18で受け付けられた第 2の通信制御装置 4のポート幅情報の 示すポート幅 (この具体例では「1」)ごとに送信される。この具体例では、図 37で示さ れるように、バブルパケットが第 1の通信制御装置 3のポート P14力もポート P15まで のポートを介して送信されたものとする。なお、第 2の通信制御装置 4の特性によって は、バブルパケットをポート LP2において受け付けることができる場合もある力 この 具体例では、第 1の情報処理装置 30と第 2の情報処理装置 40との間の通信の確立 を確実に行うことができるように、さらに処理を進める。
[0259] 範囲検出用パケット送信部 13は、範囲検出用パケットを第 1の情報処理装置 30の ポート LP7からサーバ 50のポート P3に送信する(ステップ S625)。ポート LP7は、ポ ート LP6とは異なるポートであり、第 1の情報処理装置 30において新たに割り当てら れたポートである。ポート LP7が新たなポートであるため、その範囲検出用パケットの 通過するポート P16は、ポート P15と異なるポートである。ポート P16を介して送信さ れた範囲検出用パケットは、サーバ 50の検出用ポート検出部 91で受け付けられ、ポ ート P16のポート番号が検出される (ステップ S626)。検出用ポート情報送信部 92は 、その検出されたポート番号をペイロードに含むパケットである検出用ポート情報を第 1の通信制御装置 3のポート P16を介して第 1の情報処理装置 30に送信する (ステツ プ S627)。サーバ 50から送信された検出用ポート情報は、検出用ポート情報受付部 71で受け付けられる。そして、範囲検出部 72は、ポート P13と、ポート P16のポート 位置に基づいて、バブルパケット送信ポートを含むポートの範囲を検出する(ステップ S628)。この検出では、ポート P13のポート位置から、ポート P16のひとつ手前に割り 当てられるはずのポート位置までがバブルパケット送信ポートを含む範囲として検出 される。第 1の通信制御装置 3の特性にかかわらず、ポート P15とポート P16は異なる ため、その範囲にポート P16は含まれない。ポート P16のひとつ手前に割り当てられ るはずのポート位置は、ポート P16のポート番号から、ポート幅検出部 75によって検 出された第 1の通信制御装置 3のポート幅 (この具体例では「1」)だけ引いたポート番 号によって示される位置である。範囲送信部 73は、範囲検出部 72によって検出され たポートの範囲を示す範囲情報を、第 2の情報処理装置 40に送信する指示と共に、 サーバ 50に送信する (ステップ S629)。また、ポート幅送信部 76も、第 1の通信制御 装置 3のポート幅を示すポート幅情報を、第 2の情報処理装置 40に送信する指示と 共に、サーバ 50に送信する(ステップ S629)。
[0260] それらの情報は、サーバ 50において中継され、第 2の通信制御装置 4のポート P2 を介して、第 2の情報処理装置 40に送信される (ステップ S630)。範囲情報は、範囲 受付部 27で受け付けられる。ポート幅情報は、ポート幅受付部 28で受け付けられる 。返信パケット送信部 29は、範囲受付部 27が受け付けた範囲情報の示す範囲のポ ートに、返信パケットを送信する (ステップ S631)。
[0261] この返信パケットは、第 1の情報処理装置 30のポート LP6から送信される。また、範 囲情報が複数のポートを含む範囲である場合には、返信パケットは、ポート幅受付部 28で受け付けられた第 1の通信制御装置 3のポート幅情報の示すポート幅 (この具 体例では「1」)ごとに送信される。この具体例では、図 38で示されるように、返信パケ ットが第 2の通信制御装置 4のポート P9を介して送信される。第 2の通信制御装置 4 は、 PS NATではないため、第 1の通信制御装置 3に対して送信される返信パケット は、すべてポート P9を介して送信されることになる。このように、すべての返信パケット がポート P9から送信されるように、第 2の情報処理装置 40は、あら力じめポート割り当 てパケットを、ポート LP2から第 1の通信制御装置 3に送信した。
[0262] 第 2の情報処理装置 40から送信された返信パケットのうち、ポート P9に向けて送信 されたバブルパケットの通過したバブルパケット送信ポートに送信された返信パケット は、第 1の通信制御装置 3でアドレス変換され、第 1の情報処理装置 30の返信バケツ ト受付部 24で受け付けられることになる (ステップ S632)。第 1の通信制御装置 3の 特性によっては、複数の返信パケットが第 1の情報処理装置 30によって受け付けら れることちある。
[0263] このようにして、第 1の情報処理装置 30と第 2の情報処理装置 40との間の通信が確 立すること〖こなる。
[0264] ここで、本実施の形態による通信システムにお 、て、ポート割り当てパケットを送信 する理由について簡単に説明する。バブルパケットを送信する以前に、ポート割り当 てパケットを第 1の通信制御装置 3に送信することによって、第 2の通信制御装置 4に おいてポート P9が割り当てられる。受信側の装置は PS NATではないため(図 29 参照)、第 2の通信制御装置 4は、 PS NATではな ヽ(すなわち、ポート割り当てル ールが Port Sensitiveタイプではない)。したがって、このポート割り当てパケットを 送信したポート LP2から返信パケットを第 1の通信制御装置 3に送信することにより、 その返信パケットがポート割り当てパケットの送信によって割り当てられた第 2の通信 制御装置 4のポート P9を介して送信されることになる。
[0265] そのポート P9を含む範囲を検出し、その範囲にバブルパケットを送信することによ つて、少なくともひとつのバブルパケットをポート P9に対して送信することができる。そ の後、バブルパケット送信ポートを含むポートの範囲に、ポート LP2から返信パケット を送信することによって、ポート P9に送信されたバブルパケットの通過した第 1の通信 制御装置 3のポートに対して、ポート P9を介して返信パケットを送信することができる 。その結果、たとえ第 1の通信制御装置 3が PR NAT, PS NATを用いていた場合 であっても、返信パケットが第 1の情報処理装置 30で受け付けられることとなり、第 1 の情報処理装置 30と第 2の情報処理装置 40との間の通信を確立することができる。 このように、ポート割り当てパケットは、返信パケットの通過するポートをあら力じめ第 2 の通信制御装置 4において割り当てておくため(換言すると、バブルパケット送信対 象ポートの範囲を決定するため)に送信されるものである。
[0266] [具体例 2]
具体例 2では、第 2の通信制御装置 4が PS NATを用いており、第 1の通信制御 装置 3が PS NAT以外を用いている場合について説明する。なお、第 2の情報処理 装置 40が発呼側であるのは、具体例 1と同様であるとする。
[0267] 第 2の情報処理装置 40からポート幅検出用パケット、範囲検出用パケット、ポート割 り当てパケットが送信され、第 2の通信制御装置 4のポート幅が検出され、バブルパケ ット送信対象ポートの位置が検出され、第 2の通信制御装置 4の特性が判断される動 作は、具体例 1と同様に行われるものとする。
[0268] 第 2の情報処理装置 40からサーバ 50を介してポート幅情報、バブルパケット送信 対象ポート情報、特性情報が送信されることにより (ステップ S614、 S615)、第 1の情 報処理装置 30は、第 2の通信制御装置 4が PS NATであることを知ることになる。す ると、第 1の情報処理装置 30は、ステップ S601からステップ S614までの処理、およ びステップ S504の着呼側(第 1の情報処理装置 30側)の第 1の通信制御装置 3の特 性を判断する処理 (具体例 1において、図 34、図 35を用いて説明した処理)を実行 する。これらの処理は、受信側と送信側とが入れ替わる以外、具体例 1の説明と同様 であり、その説明を省略する。この具体例では、第 1の通信制御装置 3が PA NAT を用いていないため、着呼側が受信側であると判断される (ステップ S506)。そして、 具体例 1における受信側と送信側とが入れ替わった形態にぉ 、て、バブルパケットの 送信や、バブルパケット送信ポートを含む範囲の検出、返信パケットの送信等が行わ れ、第 1の情報処理装置 30と第 2の情報処理装置 40との間の通信が確立することに なる。これらの詳細な説明については、具体例 1と同様であり、省略する。
[0269] なお、上記各具体例では、ポート割り当てパケットを、 1回目の範囲検出用パケット を送信したポートと同じポート(ポート LP2)力も送信する場合について説明したが、 ポート割り当てパケットを、 2回目の範囲検出用パケットを送信したポートと同じポート (ポート LP3)力も送信してもよい。この場合には、バブルパケット送信対象ポートは、 ポート P8の次に割り当てられるポートから、ポート P10までとなる。あるいは、ポート割 り当てパケットと、 2回の範囲検出用パケットとを、それぞれ別のポート (それぞれ、第 2の情報処理装置 40にお 、て新たに割り当てられたポートであるとする)から送信し てもよい。この場合には、バブルパケット送信対象ポートは、 1回目の範囲検出バケツ トの通過した第 2の通信制御装置 4のポートの次に割り当てられるポートから、 2回目 の範囲検出パケットの通過した第 2の通信制御装置 4のポートのひとつ手前に割り当 てられるポートまでとなる。なお、これらのバブルパケット送信対象ポートは最低限の ポートとして説明したものであり、これらのバブルパケット送信対象ポートを含むより広 V、ポートの範囲を、バブルパケット送信対象ポートとしてもよ!/、。
[0270] 同様に、バブルパケットの送信も、ポート PL6からではなぐポート PL7から行っても よい。この場合にも、返信パケットを送信する範囲は、ポート P13の次に割り当てられ るポートから、ポート P16までとなる。あるいは、バブルパケットと、 2回の範囲検出用 パケットとを、それぞれ別のポート (それぞれ、第 1の情報処理装置 30において新た に割り当てられたポートであるとする)力も送信してもよい。この場合には、バブルパケ ット送信ポートを含むポートの範囲は、 1回目の範囲検出パケットの通過した第 1の通 信制御装置 3のポートの次に割り当てられるポートから、 2回目の範囲検出パケットの 通過した第 1の通信制御装置 3のポートのひとつ手前に割り当てられるポートまでとな る。なお、これらのバブルパケット送信ポートを含むポートの範囲は最低限の範囲とし て説明したものであり、これらのポートの範囲を含むより広いポートの範囲を、バブル パケット送信ポートを含むポートの範囲としてもよい。
[0271] また、上記各具体例では、サーバ 50と情報処理装置との間の通信回数を少なくす るために、ひとつのパケットが複数の役割を有しており、効率よくパケットの通信を行う 場合について説明した力 ひとつのパケットがひとつの役割を有するようにパケットの 送信を行ってもよい。また、上記各具体例では、通信制御装置の特性判断と、情報 処理装置間の通信の確立とを並行して行う場合について説明したが、それらの処理 を別々に行ってもよい。そのような場合に、特性の判断において、特性判断用ポート 検出部 95、特性判断用ポート情報送信部 96を用いてもよい。
[0272] 以上のように、本実施の形態による通信システムによれば、第 1の通信制御装置 3、 および第 2の通信制御装置 4が両方とも、 PS NATである場合を除いて、第 1の情 報処理装置 30と第 2の情報処理装置 40との間の通信を確立することができる。さら に、その通信の確立を、通信制御装置が PS NATを用いているかどうかを判断する だけで、細かい判断をすることなぐ実行することができる。
[0273] また、実施の形態 1の方法であれば、送信側の装置が PR NATである場合には、 送受信の入れ替えを行う必要があつたが(図 17参照)、本実施の形態の方法であれ ば、送信側、受信側の情報処理装置のいずれかが PR NATであったとしても、送受 信の入れ替えを行う必要がない。したがって、 Cone系の NATが通信システムにおい て用いられている場合には、送受信の入れ替えを行うことなぐ情報処理装置間での 通信を確立することができる(図 39参照)。
[0274] また、本実施の形態では、通信制御装置が AS NATを用いているかどうかの判断 を行わなくてよいため(PS NATを用いているの力、そうでないのかについての判断 のみを行えばよい)、 2以上のサーバを用いた通信制御装置の特定の判断を行わな くてよいことになり、通信システムを簡易な構成とすることができる。
[0275] なお、本実施の形態では、ポート幅の検出、バブルパケット送信ポートを含むポート の範囲の検出、バブルパケット送信対象ポートの検出を情報処理装置にお 、て行う 場合について説明したが、それらの処理のうち任意の 1以上の処理を、実施の形態 1 と同様にサーバ 50にお!/、て行ってもよ!、。 [0276] また、本実施の形態では、バブルパケット送信対象ポートの検出を行うために、ポ ート割り当てパケットの送信の前後に、 2個の範囲検出用パケットを送信する場合に ついて説明したが、一方の範囲検出用パケットのみを送信し、バブルパケット送信対 象ポート情報は、バブルパケット送信対象ポートの上限ある 、は下限のみを示すもの であってもよい。この場合には、その範囲に含まれうるすべてのポートに対して、パブ ルパケットを送信してもよ 、。
[0277] また、バブルパケットを、受信側の通信制御装置におけるすべてのポートに送信す るようにしてもよい。そのようにすることで、ポート割り当てパケットの送信で用いられた ポートに対してバブルパケットを送信することができる。ここで、すべてのポートといつ た場合にぉ 、ても、あらかじめ用途の決まって 、るゥエルノーン(Well— known)ポー トを除外し、 Well— knownポート以外に返信パケットを送信してもよい。また、所定の ポート幅ごとにバブルパケットを送信する場合には、その基点となるポートの位置が 送信側の情報処理装置に対して知らされるようにしてもょ 、。
[0278] また、本実施の形態にお!、ても、片方の通信制御装置が存在しな!、通信システム であっても、実施の形態 3の場合と同様に、情報処理装置間の通信を確立することが できることは、いうまでもない。
[0279] また、上記各実施の形態にお!、て、通信システムは、バブルパケットを送信する情 報処理装置と、バブルパケット送信ポートを含むポートの範囲を検出するための処理 を行うサーバ(このサーバは、 2以上のサーバであってもよい)とを備えた通信システ ムであって、そのバブルパケット送信ポートを含むポートの範囲を検出するためのも のであってもよい。すなわち、本発明における通信システムは、以下のような通信シス テムであってもよい。この通信システムは、情報処理装置と、情報処理装置の通信を 制御する通信制御装置と、サーバとを備えた通信システムであって、情報処理装置 は、通信制御装置を介して、通信制御装置に送信履歴を残すための 1以上のバブル パケットを送信するバブルパケット送信部と、 1以上のバブルパケットの送信で用いら れる、通信制御装置のポートである 1以上のバブルパケット送信ポートを含むポート の範囲を検出するために用いられる範囲検出用パケットをサーバに送信する範囲検 出用パケット送信部と、を備え、サーバは、範囲検出用パケットを受け付け、当該範 囲検出用パケットに基づいて 1以上のバブルパケット送信ポートを含むポートの範囲 を検出する範囲検出部を備えた、ものである。この通信システムにおいて、バブルパ ケットの送信先は、例えば、情報処理装置の通信相手である他の通信制御装置であ つてもよぐ通信相手である他の情報処理装置の通信を制御する通信制御装置など であってもよい。また、この通信システムにおいて、サーバにおいて検出されたポート の範囲は、送信部によって情報処理装置に送信されてもよぐあるいは、その他の方 法によって情報処理装置に渡されてもよい。その他の方法としては、例えば、ポート の範囲を示す情報を記録媒体に記録し、情報処理装置がその記録媒体力 情報を 読み出すことであってもよぐあるいは、サーバにおいてポートの範囲を示す情報が 表示され、その表示を見ることによって、ユーザが情報処理装置にポートの範囲を示 す情報を入力することであってもよい。また、実施の形態 4のように、その通信システ ムにおいて 1以上のバブルパケットを送信してもよい。
また、他の通信システムは、情報処理装置と、情報処理装置の通信を制御する通 信制御装置と、サーバとを備えた通信システムであって、情報処理装置は、通信制 御装置を介して、通信制御装置に送信履歴を残すための 1以上のバブルパケットを 送信するバブルパケット送信部と、 1以上のバブルパケットの送信で用いられる、通信 制御装置のポートである 1以上のバブルパケット送信ポートを含むポートの範囲を検 出するために用いられる範囲検出用パケットをサーバに送信する範囲検出用バケツ ト送信部と、範囲検出用パケットが通過した通信制御装置のポートの位置を示す検 出用ポート情報を受け付ける検出用ポート情報受付部と、検出用ポート情報受付部 が受け付けた検出用ポート情報に基づいて、 1以上のバブルパケット送信ポートを含 むポートの範囲を検出する範囲検出部と、を備え、サーバは、範囲検出用パケットを 受け付け、当該範囲検出用パケットが通過した通信制御装置のポートの位置を検出 する検出用ポート検出部と、検出用ポート検出部が検出したポートの位置を示す検 出用ポート情報を情報処理装置に送信する検出用ポート情報送信部と、を備えた、 ものである。このように、範囲の検出をサーバではなぐ情報処理装置において行つ てもよい。この通信システムにおいて、バブルパケットの送信先は、例えば、情報処理 装置の通信相手である他の通信制御装置であってもよぐ通信相手である他の情報 処理装置の通信を制御する通信制御装置などであってもよい。また、この通信システ ムにおいて、情報処理装置において検出されたポートの範囲は、送信部によって他 の情報処理装置に送信されてもよぐあるいは、その他の方法によって他の情報処理 装置に渡されてもよい。その他の方法としては、例えば、ポートの範囲を示す情報を 記録媒体に記録し、他の情報処理装置がその記録媒体力 情報を読み出すことで あってもよぐあるいは、情報処理装置においてポートの範囲を示す情報が表示され 、その表示を見ることによって、ユーザが他の情報処理装置にポートの範囲を示す情 報を入力することであってもよい。また、実施の形態 4のように、その通信システムに おいて 1以上のバブルパケットを送信してもよい。
[0281] また、上記各実施の形態において、第 1のサーバ 6, 60、サーバ 50が情報処理装 置に相手方の通信制御装置の IPアドレスを通知する機能を有する場合について説 明したが、この機能は、第 1のサーバ 6等とは別のサーバにおいて実現されてもよい。 すなわち、一方の情報処理装置に他方の通信制御装置のアドレスを通知するサー バと、範囲検出パケット等に関する処理を行うサーバとは別のサーバであってもよい。 また、一方の情報処理装置に他方の情報処理装置のアドレスを通知する処理や、発 呼側の情報処理装置が相手方 (着呼側)の情報処理装置を呼び出す処理等にぉ 、 て、 SIP (Session Initiation Protocol)を用いてもよい。
[0282] なお、上記各実施の形態における説明では、ポート幅情報の示すポート幅ごとに返 信パケットを送信するとした力 ポート幅に関わりなぐポート間隔「1」で返信パケット を送信してもよい。
[0283] また、上記各実施の形態における説明では、範囲情報の示すポートの範囲に返信 パケットを送信するとした力 返信パケットを、送信側の通信制御装置におけるすべ てのポートに送信するようにしてもよい。そのようにすることで、バブルパケットの送信 で用いられたバブルパケット送信ポートに対して、返信パケットを送信することができ る。また、範囲情報により、範囲の上限、あるいは下限のみが示される場合には、そ の範囲におけるすべてのポートに返信パケットを送信してもよい。ここで、すべてのポ 一トと 、つた場合にぉ 、ても、あら力じめ用途の決まって 、るゥエルノーン (Well-kn own)ポートを除外し、 Well— knownポート以外に返信パケットを送信してもよい。ま た、所定のポート幅ごとに返信パケットを送信する場合には、その基点となるポートの 位置が受信側の情報処理装置に対して知らされるようにしてもよい。
[0284] また、上記各実施の形態における説明では、通信制御装置で用いる NATの種類 を第 1のサーノ 6等にぉ 、て、あるいは情報処理装置にぉ 、て判断する場合にっ ヽ て説明したが、例えば、ユーザによる手入力等により情報処理装置から入力された通 信制御装置の特性 (NATの種類)を第 1のサーバ 6等で保持するようにしてもよぐあ るいは、通信制御装置が保持している記憶手段 (例えば、不揮発性のメモリなど)に 特性が記憶されており、第 1のサーバ 6等は、その記憶されている特性を読み出すこ とにより、通信制御装置の特性を判断するようにしてもよい。なお、この通信制御装置 の特性は、通信制御装置以外で記憶されていてもよい。例えば、所定のデータべ一 スサーバが、通信制御装置の IDや型番と対応付けて、特性を記憶していてもよい。
[0285] また、上記各実施の形態では、第 1のサ一ノ^等において、あるいは、情報処理装 置において通信制御装置の特性を検出する場合について説明したが、その検出の タイミングは問わない。すなわち、いずれかの情報処理装置からの通信を確立する旨 の要求があった後でもよぐあるいは、情報処理装置が第 1のサーバ 6等に接続され た時点で、あらかじめ特性の判断を行って 、てもよ!/、。
[0286] また、通信制御装置の IPアドレスや、通信制御装置のポート幅等についても、第 1 のサーバ 6等力も送信されず、ユーザによる手入力によって、情報処理装置に渡され てもよく、あるいは、通信制御装置等において記憶されているポート幅等を取得して ちょい。
[0287] また、第 1のサーバ 6等や受信側の情報処理装置から送信側の情報処理装置にバ ブルパケット送信対象ポートが知らされる場合につ 、て説明した力 バブルパケット 送信対象ポートが送信側の情報処理装置にぉ 、てあらかじめ設定されて 、てもよく、 あるいは、ユーザによる手入力や所定のサーバにアクセスすること等により送信側の 情報処理装置がバブルパケット送信対象ポートの位置を検知するようにしてもょ 、。
[0288] また、実施の形態 1一 3では、第 1のサーバと第 2のサーバとが直接、通信を行う場 合について説明したが、例えば、第 1のサーバと第 2のサーバとは、所定の共有記録 媒体を介して、サーバ間の情報 (例えば、図 12におけるポート P8のポート番号など) の共有を行ってもよい。
[0289] また、上記各実施の形態では、バブルパケット送信対象ポートを所定のポートに限 定するために、バブルパケット送信対象ポート情報を送信する場合について主に説 明したが、このバブルパケット送信対象ポート情報は、バブルパケット送信対象ポート を限定するためではなぐ単に、バブルパケットの送信先のポートを指定するために のみ送信されるものであってもよ 、。
[0290] また、上記各実施の形態では、各情報処理装置が通信制御装置を 1つだけ介して 通信回線 5に接続される場合について説明したが、複数の通信制御装置を介して通 信回線 5に接続されている場合 (すなわち、多段接続の NAT)であっても、情報処理 装置間の通信を確立することができ得る。
[0291] また、上記各実施の形態では、第 1の通信制御装置 3、および第 2の通信制御装置 4が NATの機能を有するものであると説明した力 第 1の通信制御装置 3、および第 2の通信制御装置 4は、 NATの機能に代えて、あるいは NATの機能と共にパケット フィルタリングのファイアウォール(Firewall)の機能を有するものであってもよ 、。ここ で、パケットフィルタリングとは、例えば、前述の受信フィルタルールに基づいた受信 パケットの選択を行うものである。第 1の通信制御装置 3が、そのような受信フィルタル ールに基づ 、たファイアウォール機能を有する場合、ローカル側 (第 1の情報処理装 置 1等の側)力 グローバル側(通信回線 5)へのバブルパケットの送信によって第 1 の通信制御装置 3に送信履歴を残すことで、バブルパケット送信ポートに送信された 返信パケットを受け付けることができるようになる。また、第 2の通信制御装置 4が、そ のような受信フィルタルールに基づ 、たファイアウォール機能を有する場合、ロー力 ル側(第 2の情報処理装置 2等の側)カゝらグローバル側へのバブルパケット送信対象 ポートを介した返信パケットの送信によって、第 1の情報処理装置 1等と、第 2の情報 処理装置 2等との間での通信が確立され得ることとなる。
[0292] また、第 1の情報処理装置 1等、および第 2の情報処理装置 2等は、アプリケーショ ンとしてのファイアウォールの機能を実装するものであってもよぐそうでなくてもよい。
[0293] また、上記各実施の形態では、第 1のサーバ 6等を IPアドレスによって特定する場 合について説明した力 第 1のサーバ 6等をドメイン名(例えば、 server, pana. net など)によって特定してもよい。この場合には、そのドメイン名が DNSサーバを用いて 、 IPアドレスに変換されることにより、第 1のサーバ 6等を特定することができる。
[0294] また、上記各実施の形態における通信で用いられるプロトコルは、 IPv4 (Internet
Protocol version 4)で teつてもよ \、ある ヽは、 IPv6 (Internet Protocol ver sion 6)であってもよい。
[0295] また、上記各実施の形態にお!、て、各処理 (各機能)は、単一の装置 (システム)に よって集中処理されることによって実現されてもよぐあるいは、複数の装置によって 分散処理されることによって実現されてもょ 、。
[0296] また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成し てもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラム制 御によるソフトウェアにより構成してもよい。なお、上記各実施の形態における情報処 理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプロダラ ムは、コンピュータに、第 1の情報処理装置の通信を制御する第 1の通信制御装置と 、第 2の情報処理装置の通信を制御する第 2の通信制御装置とを介して、第 2の情報 処理装置と通信する第 1の情報処理装置における処理を実行させるためのプロダラ ムであって、第 1の通信制御装置を介して、第 1の通信制御装置に送信履歴を残す ためのバブルパケットを第 2の通信制御装置に送信するバブルパケット送信ステップ と、バブルパケットの送信で用いられる、第 1の通信制御装置のポートであるバブル パケット送信ポートに対して、第 2の情報処理装置から第 2の通信制御装置を介して 送信される返信パケットを受け付ける返信パケット受付ステップと、を実行させるため のものである。
[0297] また、このプログラムでは、コンピュータに、バブルパケット送信ポートを含むポート の範囲を検出するために用いられる範囲検出用パケットを送信する範囲検出用パケ ット送信ステップをさらに実行させてもょ ヽ。
[0298] また、このプログラムでは、範囲検出用パケット送信ステップで、バブルパケット送信 ステップにおけるバブルパケットの送信の前後において、それぞれ範囲検出用バケツ トを送信してもよい。
[0299] また、このプログラムでは、範囲検出用パケット送信ステップで、バブルパケットの送 信の前後で、それぞれ異なるアドレスに範囲検出用パケットを送信してもよい。
[0300] また、このプログラムでは、コンピュータに、第 2の通信制御装置におけるバブルパ ケットを送信する対象のポートであるバブルパケット送信対象ポートの位置を示すバ ブルパケット送信対象ポート情報を受け付けるバブルパケット送信対象ポート受付ス テツプをさらに実行させ、バブルパケット送信ステップでは、バブルパケット送信対象 ポート情報の示すバブルパケット送信対象ポートにバブルパケットを送信してもよい。
[0301] また、このプログラムでは、バブルパケット送信対象ポートが、第 2の情報処理装置 力 第 1の情報処理装置と第 2の情報処理装置との間の通信を確立させるサーバと の間で情報の送受信を行うポートであってもよい。
[0302] また、このプログラムでは、コンピュータに、第 1の通信制御装置におけるポート幅を 検出するためのポート幅検出用パケットを、第 1の通信制御装置を介して送信するポ ート幅検出用パケット送信ステップをさらに実行させてもよい。
[0303] また、このプログラムでは、第 1の通信制御装置は、第 2の情報処理装置から、第 2 の通信制御装置を介して、第 2の通信制御装置に送信履歴を残すためのバブルパ ケットが送信されるものであり、コンピュータに、第 2の情報処理装置からのバブルパ ケットの送信で用いられた、第 2の通信制御装置のポートを少なくとも含む 1以上のポ ートに対して返信パケットを送信する返信パケット送信ステップをさらに実行させても よい。
[0304] また、このプログラムでは、コンピュータに、返信パケットを送信するポートの範囲を 示す情報である範囲情報を受け付ける範囲受付ステップをさらに実行させ、返信パ ケット送信ステップでは、範囲情報の示す範囲のポートに返信パケットを送信してもよ い。
[0305] また、このプログラムでは、コンピュータに、第 2の通信制御装置におけるポート幅を 示す情報であるポート幅情報を受け付けるポート幅受付ステップをさらに実行させ、 返信パケット送信ステップでは、ポート幅情報の示すポート幅ごとに返信パケットを送 信してちょい。
[0306] また、上記各実施の形態による情報処理装置を実現するソフトウェアは、以下のよう なプログラムである。つまり、このプログラムは、コンピュータに、第 1の情報処理装置 の通信を制御する第 1の通信制御装置と、第 2の情報処理装置の通信を制御する第 2の通信制御装置とを介して、第 2の情報処理装置と通信する第 1の情報処理装置 における処理を実行させるためのプログラムであって、第 1の通信制御装置は、第 2 の情報処理装置から、第 2の通信制御装置を介して、当該第 2の通信制御装置に送 信履歴を残すためのバブルパケットが送信されるものであり、第 2の情報処理装置か らのバブルパケットの送信に用いられた、第 2の通信制御装置のポートを少なくとも含 む 1以上のポートに対して返信パケットを送信する返信パケット送信ステップを実行さ せるためのものである。
[0307] また、このプログラムでは、コンピュータに、返信パケットを送信するポートの範囲を 示す情報である範囲情報を受け付ける範囲受付ステップをさらに実行させ、返信パ ケット送信ステップでは、範囲情報の示す範囲のポートに返信パケットを送信してもよ い。
[0308] また、このプログラムは、コンピュータに、第 2の通信制御装置におけるポート幅を示 す情報であるポート幅情報を受け付けるポート幅受付ステップをさらに実行させ、返 信パケット送信ステップでは、ポート幅情報の示すポート幅ごとに返信パケットを送信 してちよい。
[0309] また、上記各実施の形態におけるサーバを実現するソフトウェアは、以下のようなプ ログラムである。つまり、このプログラムは、コンピュータに、第 1の情報処理装置、お よび第 2の情報処理装置が、第 1の情報処理装置の通信を制御する第 1の通信制御 装置、および第 2の情報処理装置の通信を制御する第 2の通信制御装置を介して行 う通信を確立させるサーバにおける処理を実行させるためのプログラムであって、第 1 の情報処理装置、および第 2の情報処理装置と、情報を送受信する情報送受信ステ ップと、第 1の通信制御装置、および第 2の通信制御装置の特性を判断する特性判 断ステップと、特性判断ステップでの判断結果に応じて、第 1の情報処理装置、およ び第 2の情報処理装置のいずれかを送信側 (送信側情報処理装置)に決定し、他方 を受信側 (受信側情報処理装置)に決定する送受信決定ステップと、を実行させるた めのものである。
[0310] また、このプログラムでは、コンピュータに、受信側情報処理装置の通信を制御する 通信制御装置 (受信側通信制御装置)における、送信側情報処理装置が、送信側情 報処理装置の通信を制御する通信制御装置 (送信側通信制御装置)に送信履歴を 残すためのバブルパケットを送信する対象のポートであるバブルパケット送信対象ポ ートの位置を示すバブルパケット送信対象ポート情報を、送信側情報処理装置に送 信するバブルパケット送信対象ポート送信ステップをさらに実行させてもよい。
[0311] また、このプログラムでは、バブルパケット送信対象ポート情報の示すバブルバケツ ト送信対象ポートが、情報送受信部と受信側情報処理装置との通信で用いられる、 受信側通信制御装置のポートであってもよ 、。
[0312] また、このプログラムでは、コンピュータに、送信側情報処理装置から、受信側通信 制御装置におけるバブルパケット送信対象ポートに対するバブルパケットの送信で用 V、られる、送信側通信制御装置のポートであるバブルパケット送信ポートを含むポー トの範囲を検出するための範囲検出用パケットを受け付けることにより、バブルバケツ ト送信ポートを含むポートの範囲を検出する範囲検出ステップと、範囲検出ステップ で検出したバブルパケット送信ポートを含むポートの範囲を示す情報である範囲情 報を送信する範囲送信ステップと、をさらに実行させてもよい。
[0313] また、このプログラムでは、範囲検出ステップで、複数のアドレスに送信された範囲 検出用パケットに基づいて、検出を行ってもよい。
[0314] また、このプログラムでは、コンピュータに、送信側情報処理装置から送信側通信 制御装置を介して送信された、送信側通信制御装置におけるポート幅を検出するた めのポート幅検出用パケットを受け付け、当該ポート幅検出用パケットに基づいて、 送信側通信制御装置におけるポート幅を検出するポート幅検出ステップと、ポート幅 検出ステップで検出した送信側通信制御装置のポート幅を示す情報であるポート幅 情報を送信するポート幅送信ステップと、をさらに実行させてもょ ヽ。
[0315] また、上記プログラムでは、コンピュータに、範囲検出用パケットが通過した第 1の通 信制御装置のポートの位置を示す検出用ポート情報を受け付ける検出用ポート情報 受付ステップと、検出用ポート情報受付ステップで受け付けた検出用ポート情報に基 づ 、て、バブルパケット送信ポートを含むポートの範囲を検出する範囲検出ステップ と、範囲検出ステップで検出したバブルパケット送信ポートを含むポートの範囲を示 す情報である範囲情報を送信する範囲送信ステップと、をさらに実行させてもょ 、。
[0316] また、上記プログラムでは、コンピュータに、ポート幅検出用パケットが通過した第 1 の通信制御装置のポートの位置を示すポート幅検出用ポート情報を受け付けるポー ト幅検出用ポート情報受付ステップと、ポート幅検出用ポート情報受付ステップで受 け付けたポート幅検出用ポート情報に基づいて、第 1の通信制御装置におけるポート 幅を検出するポート幅検出ステップと、ポート幅検出ステップで検出した第 1の通信 制御装置のポート幅を示す情報であるポート幅情報を、サーバを介して第 2の情報 処理装置に送信するポート幅送信ステップと、をさらに実行させてもよい。
[0317] また、このプログラムでは、コンピュータに、第 2の通信制御装置におけるバブルパ ケットを送信する対象のポートであるバブルパケット送信対象ポートの位置を示すバ ブルパケット送信対象ポート情報を受け付けるバブルパケット送信対象ポート受付ス テツプをさらに実行させ、バブルパケット送信ステップでは、バブルパケット送信対象 ポート情報の示すバブルパケット送信対象ポートにバブルパケットを送信してもよい。
[0318] また、上記プログラムでは、バブルパケット送信対象ポート情報が、 1以上のバブル パケット送信対象ポートの位置を示す情報であり、バブルパケット送信ステップにお V、て、バブルパケット送信対象ポート情報の示す 1以上のバブルパケット送信対象ポ ートにバブルパケットを送信してもよい。
[0319] また、上記プログラムでは、コンピュータに、返信パケットを送信するためのポートを 第 1の通信制御装置にお 、て割り当てるためのポート割り当てパケットを送信するポ ート割り当てパケット送信ステップをさらに実行させ、返信パケット送信ステップにお ヽ て、ポート割り当てパケットが送信された第 1の情報処理装置のポートから返信バケツ トを送信してもよい。
[0320] また、上記プログラムでは、コンピュータに、ポート割り当てパケットの送信で用いら れる、第 1の通信制御装置のポートであるポート割り当てパケット送信ポートを含むポ ートの範囲を検出するために用いられる範囲検出用パケットを送信する範囲検出用 パケット送信ステップをさらに実行させてもょ 、。
[0321] また、上記各実施の形態における情報処理装置を実現するソフトウェアは、以下の ようなプログラムである。つまり、このプログラムは、コンピュータに、情報処理装置、情 報処理装置の通信を制御する通信制御装置、およびサーバを備える通信システムを 構成する情報処理装置における処理を実行させるためのプログラムであって、通信 制御装置を介して、通信制御装置に送信履歴を残すための 1以上のバブルパケット を送信するバブルパケット送信ステップと、 1以上のバブルパケットの送信で用いられ る、通信制御装置のポートである 1以上のバブルパケット送信ポートを含むポートの 範囲を検出するために用いられる範囲検出用パケットを送信する範囲検出用パケット 送信ステップと、を実行させるためのものである。
[0322] また、このプログラムでは、コンピュータに、範囲検出用パケットが通過した通信制 御装置のポートの位置を示す検出用ポート情報を受け付ける検出用ポート情報受付 ステップと、検出用ポート情報受付ステップで受け付けた検出用ポート情報に基づい て、 1以上のバブルパケット送信ポートを含むポートの範囲を検出する範囲検出ステ ップと、をさらに実行させてもよい。
[0323] また、このプログラムでは、コンピュータに、範囲検出ステップで検出した 1以上のバ ブルパケット送信ポートを含むポートの範囲を示す情報である範囲情報を送信する 範囲送信ステップをさらに実行させてもょ 、。
[0324] また、上記各実施の形態におけるサーバ装置を実現するソフトウェアは、以下のよう なプログラムである。つまり、このプログラムは、コンピュータに、情報処理装置、情報 処理装置の通信を制御する通信制御装置、およびサーバを備える通信システムを構 成するサーバにおける処理を実行させるためのプログラムであって、通信制御装置 に送信履歴を残すために送信される 1以上のバブルパケットの送信で用いられる、通 信制御装置のポートである 1以上のバブルパケット送信ポートを含むポートの範囲を 検出するために用いられる、情報処理装置力 送信された範囲検出用パケットを受 け付け、当該範囲検出用パケットに基づいて 1以上のバブルパケット送信ポートを含 むポートの範囲を検出する範囲検出ステップと、範囲検出ステップで検出した 1以上 のバブルパケット送信ポートを含むポートの範囲を示す情報である範囲情報を送信 する範囲送信ステップと、を実行させるためのものである。
[0325] また、他のプログラムは、コンピュータに、情報処理装置、情報処理装置の通信を 制御する通信制御装置、およびサーバを備える通信システムを構成するサーバにお ける処理を実行させるためのプログラムであって、通信制御装置に送信履歴を残す ために送信される 1以上のバブルパケットの送信で用いられる、通信制御装置のポー トである 1以上のバブルパケット送信ポートを含むポートの範囲を検出するために用 いられる、情報処理装置から送信された範囲検出用パケットを受け付け、当該範囲 検出用パケットが通過した通信制御装置のポートの位置を検出する検出用ポート検 出ステップと、検出用ポート検出ステップで検出したポートの位置を示す検出用ポー ト情報を情報処理装置に送信する検出用ポート情報送信ステップと、を実行させるも のである。
[0326] なお、上記プログラムにお 、て、情報を送信する送信ステップや、情報を受け付け る受付ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップ におけるモデムやインターフェースカードなどで行われる処理 (ノヽ一ドウエアでしか行 われな 、処理)は含まれな!/、。
[0327] また、このプログラムは、サーバなど力 ダウンロードされることによって流通してもよ ぐ所定の記録媒体 (例えば、 CD— ROMなどの光ディスクや磁気ディスク、半導体メ モリなど)に記録されることにより流通してもよい。
[0328] また、このプログラムを実行するコンピュータは、単数であってもよぐ複数であって もよい。すなわち、集中処理を行ってもよぐあるいは分散処理を行ってもよい。 産業上の利用可能性
[0329] このように、本発明による通信システム等は、通信制御装置を介した複数の情報処 理装置間での通信を確立することができ、情報処理装置間での通信を行うものとして 有用である。

Claims

請求の範囲
[1] 第 1の情報処理装置と、第 2の情報処理装置と、前記第 1の情報処理装置の通信を 制御する第 1の通信制御装置と、前記第 2の情報処理装置の通信を制御する第 2の 通信制御装置と、前記第 1の情報処理装置と前記第 2の情報処理装置間の通信を 確立させるサーバとを備えた通信システムであって、
前記第 1の情報処理装置は、
前記第 1の通信制御装置を介して、前記第 1の通信制御装置に送信履歴を残すた めのバブルパケットを前記第 2の通信制御装置に送信するバブルパケット送信部と、 前記バブルパケットの送信で用いられる、前記第 1の通信制御装置のポートであるバ ブルパケット送信ポートに対して、前記第 2の情報処理装置から前記第 2の通信制御 装置を介して送信される返信パケットを受け付ける返信パケット受付部と、を備え、 前記第 2の情報処理装置は、
前記バブルパケット送信ポートを少なくとも含む 1以上のポートに対して前記返信パ ケットを送信する返信パケット送信部を備えた、通信システム。
[2] 前記第 1の情報処理装置は、
前記バブルパケット送信ポートを含むポートの範囲を検出するために用いられる範囲 検出用パケットを前記サーバに送信する範囲検出用パケット送信部をさらに備え、 前記サーバは、
前記範囲検出用パケットを受け付け、当該範囲検出用パケットに基づいて前記パブ ルパケット送信ポートを含むポートの範囲を検出する範囲検出部と、
前記範囲検出部が検出した前記バブルパケット送信ポートを含むポートの範囲を示 す情報である範囲情報を前記第 2の情報処理装置に送信する範囲送信部と、をさら に備え、
前記第 2の情報処理装置は、
前記範囲情報を受け付ける範囲受付部をさらに備え、
前記返信パケット送信部は、前記範囲情報の示す範囲のポートに前記返信パケット を送信する、請求項 1記載の通信システム。
[3] 前記サーバは、 前記第 2の通信制御装置における、前記バブルパケットを送信する対象のポートであ るバブルパケット送信対象ポートの位置を示すバブルパケット送信対象ポート情報を 前記第 1の情報処理装置に送信するバブルパケット送信対象ポート送信部をさら〖こ 備え、
前記第 1の情報処理装置は、
前記バブルパケット送信対象ポート情報を受け付けるバブルパケット送信対象ポート 受付部をさらに備え、
前記バブルパケット送信部は、前記バブルパケット送信対象ポート情報の示すパブ ルパケット送信対象ポートに前記バブルパケットを送信する、請求項 1または 2記載の 通信システム。
[4] 前記第 1の情報処理装置は、
前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケット を、前記第 1の通信制御装置を介して前記サーバに送信するポート幅検出用バケツ ト送信部をさらに備え、
前記サーバは、
前記ポート幅検出用パケットを受け付け、当該ポート幅検出用パケットに基づいて、 前記第 1の通信制御装置におけるポート幅を検出するポート幅検出部と、 前記ポート幅検出部が検出した前記第 1の通信制御装置のポート幅を示す情報であ るポート幅情報を前記第 2の情報処理装置に送信するポート幅送信部と、をさらに備 え、
前記第 2の情報処理装置は、
前記ポート幅情報を受け付けるポート幅受付部をさらに備え、
前記返信パケット送信部は、前記ポート幅情報の示すポート幅ごとに前記返信バケツ トを送信する、請求項 1記載の通信システム。
[5] 第 1の情報処理装置の通信を制御する第 1の通信制御装置と、第 2の情報処理装置 の通信を制御する第 2の通信制御装置とを介して、前記第 2の情報処理装置と通信 する前記第 1の情報処理装置であって、
前記第 1の通信制御装置を介して、前記第 1の通信制御装置に送信履歴を残すた めのバブルパケットを前記第 2の通信制御装置に送信するバブルパケット送信部と、 前記バブルパケットの送信で用いられる、前記第 1の通信制御装置のポートであるバ ブルパケット送信ポートに対して、前記第 2の情報処理装置から前記第 2の通信制御 装置を介して送信される返信パケットを受け付ける返信パケット受付部と、を備えた第 1の情報処理装置。
[6] 前記バブルパケット送信ポートを含むポートの範囲を検出するために用いられる範囲 検出用パケットを送信する範囲検出用パケット送信部をさらに備えた、請求項 5記載 の第 1の情報処理装置。
[7] 前記範囲検出用パケット送信部は、前記バブルパケット送信部が前記バブルパケット を送信する前後において、それぞれ前記範囲検出用パケットを送信する、請求項 6 記載の第 1の情報処理装置。
[8] 前記範囲検出用パケット送信部は、前記バブルパケットの送信の前後で、それぞれ 異なるアドレスに前記範囲検出用パケットを送信する、請求項 7記載の第 1の情報処 理装置。
[9] 前記範囲検出用パケット送信部は、前記バブルパケットの送信の前後で、それぞれ 前記第 1の情報処理装置において新たに割り当てられたポートを用いて前記範囲検 出用パケットを送信する、請求項 7記載の第 1の情報処理装置。
[10] 前記第 2の通信制御装置における前記バブルパケットを送信する対象のポートであ るバブルパケット送信対象ポートの位置を示すバブルパケット送信対象ポート情報を 受け付けるバブルパケット送信対象ポート受付部をさらに備え、
前記バブルパケット送信部は、前記バブルパケット送信対象ポート情報の示すパブ ルパケット送信対象ポートに前記バブルパケットを送信する、請求項 5から 9の 、ずれ か記載の第 1の情報処理装置。
[11] 前記バブルパケット送信対象ポートは、前記第 2の情報処理装置が、前記第 1の情 報処理装置と前記第 2の情報処理装置との間の通信を確立させるサーバとの間で情 報の送受信を行うポートである、請求項 10記載の第 1の情報処理装置。
[12] 前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケット を前記第 1の通信制御装置を介して送信するポート幅検出用パケット送信部をさらに 備えた、請求項 5記載の第 1の情報処理装置。
[13] 前記第 1の通信制御装置は、前記第 2の情報処理装置から、前記第 2の通信制御装 置を介して、前記第 2の通信制御装置に送信履歴を残すためのバブルパケットが送 信されるものであり、
前記第 2の情報処理装置からの前記バブルパケットの送信で用いられた、前記第 2 の通信制御装置のポートを少なくとも含む 1以上のポートに対して返信パケットを送 信する返信パケット送信部をさらに備えた、請求項 5記載の第 1の情報処理装置。
[14] 前記返信パケットを送信するポートの範囲を示す情報である範囲情報を受け付ける 範囲受付部をさらに備え、
前記返信パケット送信部は、前記範囲情報の示す範囲のポートに前記返信パケット を送信する、請求項 13記載の第 1の情報処理装置。
[15] 前記第 2の通信制御装置におけるポート幅を示す情報であるポート幅情報を受け付 けるポート幅受付部をさらに備え、
前記返信パケット送信部は、前記ポート幅情報の示すポート幅ごとに前記返信バケツ トを送信する、請求項 13または 14記載の第 1の情報処理装置。
[16] 第 1の情報処理装置の通信を制御する第 1の通信制御装置と、第 2の情報処理装置 の通信を制御する第 2の通信制御装置とを介して、前記第 2の情報処理装置と通信 する前記第 1の情報処理装置であって、
前記第 1の通信制御装置は、前記第 2の情報処理装置から、前記第 2の通信制御装 置を介して、当該第 2の通信制御装置に送信履歴を残すためのバブルパケットが送 信されるものであり、
前記第 2の情報処理装置からの前記バブルパケットの送信に用いられた、前記第 2 の通信制御装置のポートを少なくとも含む 1以上のポートに対して返信パケットを送 信する返信パケット送信部を備えた第 1の情報処理装置。
[17] 前記返信パケットを送信するポートの範囲を示す情報である範囲情報を受け付ける 範囲受付部をさらに備え、
前記返信パケット送信部は、前記範囲情報の示す範囲のポートに前記返信パケット を送信する、請求項 16記載の第 1の情報処理装置。
[18] 前記第 2の通信制御装置におけるポート幅を示す情報であるポート幅情報を受け付 けるポート幅受付部をさらに備え、
前記返信パケット送信部は、前記ポート幅情報の示すポート幅ごとに前記返信バケツ トを送信する、請求項 16または 17記載の第 1の情報処理装置。
[19] 第 1の情報処理装置、および第 2の情報処理装置が、前記第 1の情報処理装置の通 信を制御する第 1の通信制御装置、および前記第 2の情報処理装置の通信を制御 する第 2の通信制御装置を介して行う通信を確立させるサーバであって、 前記第 1の情報処理装置、および前記第 2の情報処理装置と、情報を送受信する情 報送受信部と、
前記第 1の通信制御装置、および前記第 2の通信制御装置の特性を判断する特性 判断部と、
前記特性判断部による判断結果に応じて、前記第 1の情報処理装置、および前記第 2の情報処理装置のいずれかを送信側 (送信側情報処理装置)に決定し、他方を受 信側 (受信側情報処理装置)に決定する送受信決定部と、を備えたサーバ。
[20] 前記受信側情報処理装置の通信を制御する通信制御装置 (受信側通信制御装置) における、前記送信側情報処理装置が、前記送信側情報処理装置の通信を制御す る通信制御装置 (送信側通信制御装置)に送信履歴を残すためのバブルパケットを 送信する対象のポートであるバブルパケット送信対象ポートの位置を示すバブルパ ケット送信対象ポート情報を、前記送信側情報処理装置に送信するバブルパケット 送信対象ポート送信部をさらに備えた、請求項 19記載のサーバ。
[21] 前記バブルパケット送信対象ポート情報の示すバブルパケット送信対象ポートは、前 記情報送受信部と前記受信側情報処理装置との通信で用いられる、前記受信側通 信制御装置のポートである、請求項 20記載のサーバ。
[22] 前記送信側情報処理装置から、前記受信側通信制御装置における前記バブルパケ ット送信対象ポートに対する前記バブルパケットの送信で用いられる、前記送信側通 信制御装置のポートであるバブルパケット送信ポートを含むポートの範囲を検出する ための範囲検出用パケットを受け付けることにより、前記バブルパケット送信ポートを 含むポートの範囲を検出する範囲検出部と、 前記範囲検出部が検出した前記バブルパケット送信ポートを含むポートの範囲を示 す情報である範囲情報を送信する範囲送信部と、をさらに備えた請求項 20または 21 記載のサーバ。
[23] 前記範囲検出部は、複数のアドレスに送信された前記範囲検出用パケットに基づい て、前記検出を行う、請求項 22記載のサーバ。
[24] 前記送信側情報処理装置から前記送信側通信制御装置を介して送信された、前記 送信側通信制御装置におけるポート幅を検出するためのポート幅検出用パケットを 受け付け、当該ポート幅検出用パケットに基づいて、前記送信側通信制御装置にお けるポート幅を検出するポート幅検出部と、
前記ポート幅検出部が検出した前記送信側通信制御装置のポート幅を示す情報で あるポート幅情報を送信するポート幅送信部と、をさらに備えた、請求項 20記載のサ ーバ。
[25] 第 1の情報処理装置、および第 2の情報処理装置が、前記第 1の情報処理装置の通 信を制御する第 1の通信制御装置、および前記第 2の情報処理装置の通信を制御 する第 2の通信制御装置を介して通信を行う通信方法であって、
前記第 1の情報処理装置が、前記第 1の通信制御装置を介して、当該第 1の通信制 御装置に送信履歴を残すためのバブルパケットを前記第 2の通信制御装置に対して 送信するバブルパケット送信ステップと、
前記第 2の情報処理装置が、前記バブルパケット送信ステップにおけるバブルバケツ トの送信で用いられた前記第 1の通信制御装置のポートであるバブルパケット送信ポ ートを少なくとも含む 1以上のポートに対して、前記第 2の通信制御装置を介して、返 信パケットを送信する返信ステップと、を備えた通信方法。
[26] 前記第 1の情報処理装置が前記第 2の通信制御装置のアドレスを取得する第 1のァ ドレス取得ステップをさらに備え、
前記バブルパケット送信ステップでは、前記第 1のアドレス取得ステップで取得したァ ドレスに対して前記バブルパケットを送信する、請求項 25記載の通信方法。
[27] 前記第 2の情報処理装置が前記第 1の通信制御装置のアドレスを取得する第 2のァ ドレス取得ステップをさらに備え、 前記返信ステップでは、前記第 2のアドレス取得ステップで取得したアドレスに対して 前記返信パケットを送信する、請求項 25または 26記載の通信方法。
[28] 前記バブルパケット送信ポートを含むポートの範囲を検出する範囲検出ステップをさ らに備え、
前記返信ステップでは、範囲検出ステップで検出された範囲のポートに対して、前記 返信パケットを送信する、請求項 25記載の通信方法。
[29] 前記範囲検出ステップは、
前記第 1の情報処理装置が、前記範囲を検出するために用いられる第 1の範囲検出 用パケットを、前記バブルパケットの送信の前に送信するステップと、
前記第 1の範囲検出用パケットを受け付け、前記第 1の範囲検出用パケットの送信で 用 ヽられた前記第 1の通信制御装置のポートの位置を検出するステップと、 前記第 1の情報処理装置が、前記範囲を検出するために用いられる第 2の範囲検出 用パケットを、前記バブルパケットの送信の後に送信するステップと、
前記第 2の範囲検出用パケットを受け付け、前記第 2の範囲検出用パケットの送信で 用 ヽられた前記第 1の通信制御装置のポートの位置を検出するステップと、を含む、 請求項 28記載の通信方法。
[30] 前記第 1の範囲検出用パケットと、前記第 2の範囲検出用パケットとは、異なるァドレ スに送信される、請求項 29記載の通信方法。
[31] 前記第 1の範囲検出用パケットと、前記第 2の範囲検出用パケットとは、前記第 1の情 報処理装置にぉ 、て新たに割り当てられたポートを用いて送信される、請求項 29記 載の通信方法。
[32] 前記第 2の通信制御装置における、前記バブルパケットを送信する対象のポートであ るバブルパケット送信対象ポートは、前記第 2の情報処理装置が、前記第 1の情報処 理装置と前記第 2の情報処理装置との間の通信を確立させるサーバとの間で情報の 送受信を行うポートである、請求項 25記載の通信方法。
[33] 前記第 1の通信制御装置および Zまたは前記第 2の通信制御装置の特性を判断す る特性判断ステップと、
前記特性判断ステップで判断された特性に応じて、前記第 1の情報処理装置、およ び前記第 2の情報処理装置の役割を入れ替える入れ替えステップと、をさらに備えた 、請求項 25記載の通信方法。
[34] 前記返信ステップにおいて、 2以上のポートに対して前記返信パケットを送信する場 合には、前記第 1の通信制御装置におけるポート幅の間隔で送信する、請求項 25記 載の通信方法。
[35] 前記第 1の通信制御装置におけるポート幅を検出するポート幅検出ステップをさらに 備え、
前記返信ステップでは、前記ポート幅検出ステップで検出されたポート幅の間隔で前 記返信パケットを送信する、請求項 34記載の通信方法。
[36] コンピュータに、
第 1の情報処理装置の通信を制御する第 1の通信制御装置と、第 2の情報処理装置 の通信を制御する第 2の通信制御装置とを介して、前記第 2の情報処理装置と通信 する前記第 1の情報処理装置における処理を実行させるためのプログラムであって、 前記第 1の通信制御装置を介して、前記第 1の通信制御装置に送信履歴を残すた めのバブルパケットを前記第 2の通信制御装置に送信するバブルパケット送信ステツ プと、
前記バブルパケットの送信で用いられる、前記第 1の通信制御装置のポートであるバ ブルパケット送信ポートに対して、前記第 2の情報処理装置から前記第 2の通信制御 装置を介して送信される返信パケットを受け付ける返信パケット受付ステップと、を実 行させるためのプログラム。
[37] コンピュータに、
前記バブルパケット送信ポートを含むポートの範囲を検出するために用いられる範囲 検出用パケットを送信する範囲検出用パケット送信ステップをさらに実行させるため の、請求項 36記載のプログラム。
[38] 前記範囲検出用パケット送信ステップでは、前記バブルパケット送信ステップにおけ る前記バブルパケットの送信の前後において、それぞれ前記範囲検出用パケットを 送信する、請求項 37記載のプログラム。
[39] 前記範囲検出用パケット送信ステップでは、前記バブルパケットの送信の前後で、そ れぞれ異なるアドレスに前記範囲検出用パケットを送信する、請求項 38記載のプロ グラム。
[40] 前記範囲検出用パケット送信ステップでは、前記バブルパケットの送信の前後で、そ れぞれ前記第 1の情報処理装置において新たに割り当てられたポートを用いて前記 範囲検出用パケットを送信する、請求項 38記載のプログラム。
[41] コンピュータに、
前記第 2の通信制御装置における前記バブルパケットを送信する対象のポートであ るバブルパケット送信対象ポートの位置を示すバブルパケット送信対象ポート情報を 受け付けるバブルパケット送信対象ポート受付ステップをさらに実行させ、 前記バブルパケット送信ステップでは、前記バブルパケット送信対象ポート情報の示 すバブルパケット送信対象ポートに前記バブルパケットを送信する、請求項 36から 4 0の!、ずれか記載のプログラム。
[42] 前記バブルパケット送信対象ポートは、前記第 2の情報処理装置が、前記第 1の情 報処理装置と前記第 2の情報処理装置との間の通信を確立させるサーバとの間で情 報の送受信を行うポートである、請求項 41記載のプログラム。
[43] コンピュータに、
前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケット を、前記第 1の通信制御装置を介して送信するポート幅検出用パケット送信ステップ をさらに実行させるための、請求項 36記載のプログラム。
[44] 前記第 1の通信制御装置は、前記第 2の情報処理装置から、前記第 2の通信制御装 置を介して、前記第 2の通信制御装置に送信履歴を残すためのバブルパケットが送 信されるものであり、
コンピュータに、
前記第 2の情報処理装置からの前記バブルパケットの送信で用いられた、前記第 2 の通信制御装置のポートを少なくとも含む 1以上のポートに対して返信パケットを送 信する返信パケット送信ステップをさらに実行させるための、請求項 36記載のプログ ラム。
[45] コンピュータに、 前記返信パケットを送信するポートの範囲を示す情報である範囲情報を受け付ける 範囲受付ステップをさらに実行させ、
前記返信パケット送信ステップでは、前記範囲情報の示す範囲のポートに前記返信 パケットを送信する、請求項 44記載のプログラム。
[46] コンピュータに、
前記第 2の通信制御装置におけるポート幅を示す情報であるポート幅情報を受け付 けるポート幅受付ステップをさらに実行させ、
前記返信パケット送信ステップでは、前記ポート幅情報の示すポート幅ごとに前記返 信パケットを送信する、請求項 44または 45記載のプログラム。
[47] コンピュータに、
第 1の情報処理装置の通信を制御する第 1の通信制御装置と、第 2の情報処理装置 の通信を制御する第 2の通信制御装置とを介して、前記第 2の情報処理装置と通信 する前記第 1の情報処理装置における処理を実行させるためのプログラムであって、 前記第 1の通信制御装置は、前記第 2の情報処理装置から、前記第 2の通信制御装 置を介して、当該第 2の通信制御装置に送信履歴を残すためのバブルパケットが送 信されるものであり、
前記第 2の情報処理装置からの前記バブルパケットの送信に用いられた、前記第 2 の通信制御装置のポートを少なくとも含む 1以上のポートに対して返信パケットを送 信する返信パケット送信ステップを実行させるためのプログラム。
[48] コンピュータに、
前記返信パケットを送信するポートの範囲を示す情報である範囲情報を受け付ける 範囲受付ステップをさらに実行させ、
前記返信パケット送信ステップでは、前記範囲情報の示す範囲のポートに前記返信 パケットを送信する、請求項 47記載のプログラム。
[49] コンピュータに、
前記第 2の通信制御装置におけるポート幅を示す情報であるポート幅情報を受け付 けるポート幅受付ステップをさらに実行させ、
前記返信パケット送信ステップでは、前記ポート幅情報の示すポート幅ごとに前記返 信パケットを送信する、請求項 47または 48記載のプログラム。
[50] コンピュータに、
第 1の情報処理装置、および第 2の情報処理装置が、前記第 1の情報処理装置の通 信を制御する第 1の通信制御装置、および前記第 2の情報処理装置の通信を制御 する第 2の通信制御装置を介して行う通信を確立させるサーバにおける処理を実行 させるためのプログラムであって、
前記第 1の情報処理装置、および前記第 2の情報処理装置と、情報を送受信する情 報送受信ステップと、
前記第 1の通信制御装置、および前記第 2の通信制御装置の特性を判断する特性 判断ステップと、
前記特性判断ステップでの判断結果に応じて、前記第 1の情報処理装置、および前 記第 2の情報処理装置のいずれかを送信側 (送信側情報処理装置)に決定し、他方 を受信側 (受信側情報処理装置)に決定する送受信決定ステップと、を実行させるた めのプログラム。
[51] 前記第 1の情報処理装置は、
前記バブルパケット送信ポートを含むポートの範囲を検出するために用いられる範囲 検出用パケットを前記サーバに送信する範囲検出用パケット送信部と、
前記範囲検出用パケットが通過した前記第 1の通信制御装置のポートの位置を示す 検出用ポート情報を受け付ける検出用ポート情報受付部と、
前記検出用ポート情報受付部が受け付けた検出用ポート情報に基づいて、前記バ ブルパケット送信ポートを含むポートの範囲を検出する範囲検出部と、
前記範囲検出部が検出した前記バブルパケット送信ポートを含むポートの範囲を示 す情報である範囲情報を送信する範囲送信部と、をさらに備え、
前記サーバは、
前記範囲検出用パケットを受け付け、当該範囲検出用パケットが通過した前記第 1の 通信制御装置のポートの位置を検出する検出用ポート検出部と、
前記検出用ポート検出部が検出したポートの位置を示す検出用ポート情報を前記第 1の情報処理装置に送信する検出用ポート情報送信部と、をさらに備え、 前記第 2の情報処理装置は、
前記範囲情報を受け付ける範囲受付部をさらに備え、
前記返信パケット送信部は、前記範囲情報の示す範囲のポートに前記返信パケット を送信する、請求項 1記載の通信システム。
[52] 前記第 1の情報処理装置は、
前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケット を、前記第 1の通信制御装置を介して前記サーバに送信するポート幅検出用バケツ ト送信部と、
前記ポート幅検出用パケットが通過した前記第 1の通信制御装置のポートの位置を 示すポート幅検出用ポート情報を受け付けるポート幅検出用ポート情報受付部と、 前記ポート幅検出用ポート情報受付部が受け付けたポート幅検出用ポート情報に基 づいて、前記第 1の通信制御装置におけるポート幅を検出するポート幅検出部と、 前記ポート幅検出部が検出した前記第 1の通信制御装置のポート幅を示す情報であ るポート幅情報を、前記サーバを介して前記第 2の情報処理装置に送信するポート 幅送信部と、をさらに備え、
前記サーバは、
前記ポート幅検出用パケットを受け付け、当該ポート幅検出用パケットに基づいて前 記ポート幅検出用パケットが通過した前記第 1の通信制御装置のポートの位置を検 出するポート幅検出用ポート検出部と、
前記ポート幅検出用ポート検出部が検出したポートの位置を示すポート幅検出用ポ ート情報を前記第 1の情報処理装置に送信するポート幅検出用ポート情報送信部と 、をさらに備え、
前記第 2の情報処理装置は、
前記ポート幅情報を受け付けるポート幅受付部をさらに備え、
前記返信パケット送信部は、前記ポート幅情報の示すポート幅ごとに前記返信バケツ トを送信する、請求項 1、 2または 51記載の通信システム。
[53] 前記サーバは、
前記第 2の通信制御装置における、前記バブルパケットを送信する対象のポートであ るバブルパケット送信対象ポートの位置を示すバブルパケット送信対象ポート情報を 前記第 1の情報処理装置に送信するバブルパケット送信対象ポート送信部をさら〖こ 備え、
前記第 1の情報処理装置は、
前記バブルパケット送信対象ポート情報を受け付けるバブルパケット送信対象ポート 受付部をさらに備え、
前記バブルパケット送信部は、前記バブルパケット送信対象ポート情報の示すパブ ルパケット送信対象ポートに前記バブルパケットを送信する、請求項 51記載の通信 システム。
[54] 前記範囲検出用パケットが通過した前記第 1の通信制御装置のポートの位置を示す 検出用ポート情報を受け付ける検出用ポート情報受付部と、
前記検出用ポート情報受付部が受け付けた検出用ポート情報に基づいて、前記バ ブルパケット送信ポートを含むポートの範囲を検出する範囲検出部と、
前記範囲検出部が検出した前記バブルパケット送信ポートを含むポートの範囲を示 す情報である範囲情報を送信する範囲送信部と、をさらに備えた請求項 6から 9のい ずれか記載の第 1の情報処理装置。
[55] 前記第 2の通信制御装置における前記バブルパケットを送信する対象のポートであ るバブルパケット送信対象ポートの位置を示すバブルパケット送信対象ポート情報を 受け付けるバブルパケット送信対象ポート受付部をさらに備え、
前記バブルパケット送信部は、前記バブルパケット送信対象ポート情報の示すパブ ルパケット送信対象ポートに前記バブルパケットを送信する、請求項 54記載の第 1の 情報処理装置。
[56] 前記ポート幅検出用パケットが通過した前記第 1の通信制御装置のポートの位置を 示すポート幅検出用ポート情報を受け付けるポート幅検出用ポート情報受付部と、 前記ポート幅検出用ポート情報受付部が受け付けたポート幅検出用ポート情報に基 づいて、前記第 1の通信制御装置におけるポート幅を検出するポート幅検出部と、 前記ポート幅検出部が検出した前記第 1の通信制御装置のポート幅を示す情報であ るポート幅情報を、前記サーバを介して前記第 2の情報処理装置に送信するポート 幅送信部と、をさらに備えた、請求項 55記載の第 1の情報処理装置。
[57] 第 1の情報処理装置、および第 2の情報処理装置が、前記第 1の情報処理装置の通 信を制御する第 1の通信制御装置、および前記第 2の情報処理装置の通信を制御 する第 2の通信制御装置を介して行う通信を確立させるサーバであって、 前記第 1の情報処理装置から、前記第 2の通信制御装置に対する前記第 1の通信制 御装置に送信履歴を残すためのバブルパケットの送信で用 、られる、前記第 1の通 信制御装置のポートであるバブルパケット送信ポートを含むポートの範囲を検出する ための範囲検出用パケットを受け付け、当該範囲検出用パケットが通過した前記第 1 の通信制御装置のポートの位置を検出する検出用ポート検出部と、
前記検出用ポート検出部が検出したポートの位置を示す検出用ポート情報を前記第 1の情報処理装置に送信する検出用ポート情報送信部と、を備えたサーバ。
[58] 前記第 1の情報処理装置から前記第 1の通信制御装置を介して送信された、前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケットを受け 付け、当該ポート幅検出用パケットに基づいて前記ポート幅検出用パケットが通過し た前記第 1の通信制御装置のポートの位置を検出するポート幅検出用ポート検出部 と、
前記ポート幅検出用ポート検出部が検出したポートの位置を示すポート幅検出用ポ ート情報を前記第 1の情報処理装置に送信するポート幅検出用ポート情報送信部と 、をさらに備えた、請求項 57記載のサーバ。
[59] コンピュータに、
前記範囲検出用パケットが通過した前記第 1の通信制御装置のポートの位置を示す 検出用ポート情報を受け付ける検出用ポート情報受付ステップと、
前記検出用ポート情報受付ステップで受け付けた検出用ポート情報に基づいて、前 記バブルパケット送信ポートを含むポートの範囲を検出する範囲検出ステップと、 前記範囲検出ステップで検出した前記バブルパケット送信ポートを含むポートの範囲 を示す情報である範囲情報を送信する範囲送信ステップと、をさらに実行させるため の請求項 37から 40のいずれか記載のプログラム。
[60] コンピュータに、 前記第 2の通信制御装置における前記バブルパケットを送信する対象のポートであ るバブルパケット送信対象ポートの位置を示すバブルパケット送信対象ポート情報を 受け付けるバブルパケット送信対象ポート受付ステップをさらに実行させ、 前記バブルパケット送信ステップでは、前記バブルパケット送信対象ポート情報の示 すバブルパケット送信対象ポートに前記バブルパケットを送信する、請求項 59記載 のプログラム。
[61] コンピュータに、
前記ポート幅検出用パケットが通過した前記第 1の通信制御装置のポートの位置を 示すポート幅検出用ポート情報を受け付けるポート幅検出用ポート情報受付ステップ と、
前記ポート幅検出用ポート情報受付ステップで受け付けたポート幅検出用ポート情 報に基づいて、前記第 1の通信制御装置におけるポート幅を検出するポート幅検出 ステップと、
前記ポート幅検出ステップで検出した前記第 1の通信制御装置のポート幅を示す情 報であるポート幅情報を、前記サーバを介して前記第 2の情報処理装置に送信する ポート幅送信ステップと、をさらに実行させるための請求項 60記載のプログラム。
[62] 前記バブルパケット送信対象ポート情報は、 1以上のバブルパケット送信対象ポート の位置を示す情報であり、
前記バブルパケット送信部は、前記バブルパケット送信対象ポート情報の示す 1以上 のバブルパケット送信対象ポートに前記バブルパケットを送信する、請求項 53記載 の通信システム。
[63] 前記バブルパケット送信対象ポート情報は、 1以上のバブルパケット送信対象ポート の位置を示す情報であり、
前記バブルパケット送信部は、前記バブルパケット送信対象ポート情報の示す 1以上 のバブルパケット送信対象ポートに前記バブルパケットを送信する、請求項 55記載 の第 1の情報処理装置。
[64] 前記バブルパケット送信対象ポート情報の示す 1以上のバブルパケット送信対象ポ ートは、前記返信パケットを送信するためのポートを前記第 2の通信制御装置におい て割り当てるために前記第 2の情報処理装置力 送信されたポート割り当てパケット の通過した前記第 2の通信制御装置におけるポートであるポート割り当てパケット送 信ポートを含む、請求項 63記載の第 1の情報処理装置。
[65] 前記第 2の通信制御装置におけるポート幅を示す情報であるポート幅情報を受け付 けるポート幅受付部をさらに備え、
前記バブルパケット送信部は、前記ポート幅情報の示すポート幅ごとに前記バブル パケットを送信する、請求項 64記載の第 1の情報処理装置。
[66] 前記返信パケットを送信するためのポートを前記第 1の通信制御装置にお!/、て割り 当てるためのポート割り当てパケットを送信するポート割り当てパケット送信部をさらに 備え、
前記返信パケット送信部は、前記ポート割り当てパケットが送信された前記第 1の情 報処理装置のポートから前記返信パケットを送信する、請求項 16記載の第 1の情報 処理装置。
[67] 前記ポート割り当てパケットの送信で用いられる、前記第 1の通信制御装置のポート であるポート割り当てパケット送信ポートを含むポートの範囲を検出するために用いら れる範囲検出用パケットを送信する範囲検出用パケット送信部をさらに備えた、請求 項 66記載の第 1の情報処理装置。
[68] 前記範囲検出用パケット送信部は、前記ポート割り当てパケット送信部が前記ポート 割り当てパケットを送信する前後において、それぞれ前記範囲検出用パケットを送信 する、請求項 67記載の第 1の情報処理装置。
[69] 前記範囲検出用パケット送信部は、前記ポート割り当てパケットの送信の前後で、そ れぞれ前記第 1の情報処理装置において新たに割り当てられたポートを用いて前記 範囲検出用パケットを送信する、請求項 68記載の第 1の情報処理装置。
[70] 前記範囲検出用パケットが通過した前記第 1の通信制御装置のポートの位置を示す 検出用ポート情報を受け付ける検出用ポート情報受付部と、
前記検出用ポート情報受付部が受け付けた検出用ポート情報に基づいて、前記ポ ート割り当てパケットが送信された前記第 1の通信制御装置のポートを含むポートの 範囲を検出する範囲検出部と、 前記範囲検出部が検出した前記ポート割り当てパケットが送信された前記第 1の通 信制御装置のポートを含むポートの範囲を示す情報であるバブルパケット送信対象 ポート情報を送信するバブルパケット送信対象ポート送信部と、をさらに備えた請求 項 67から 69のいずれか記載の第 1の情報処理装置。
[71] 前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケット を前記第 1の通信制御装置を介して送信するポート幅検出用パケット送信部をさらに 備えた、請求項 66から 69のいずれか記載の第 1の情報処理装置。
[72] 前記ポート幅検出用パケットが通過した前記第 1の通信制御装置のポートの位置を 示すポート幅検出用ポート情報を受け付けるポート幅検出用ポート情報受付部と、 前記ポート幅検出用ポート情報受付部が受け付けたポート幅検出用ポート情報に基 づいて、前記第 1の通信制御装置におけるポート幅を検出するポート幅検出部と、 前記ポート幅検出部が検出した前記第 1の通信制御装置のポート幅を示す情報であ るポート幅情報を、前記サーバを介して前記第 2の情報処理装置に送信するポート 幅送信部と、をさらに備えた、請求項 71記載の第 1の情報処理装置。
[73] 第 1の情報処理装置、および第 2の情報処理装置が、前記第 1の情報処理装置の通 信を制御する第 1の通信制御装置、および前記第 2の情報処理装置の通信を制御 する第 2の通信制御装置を介して行う通信を確立させるサーバであって、
前記第 1の情報処理装置が前記第 1の通信制御装置に送信履歴を残すためのパブ ルパケットを送信する対象の前記第 2の通信制御装置におけるポートであるバブル パケット送信対象ポートの位置を示すバブルパケット送信対象ポート情報を、前記第 1の情報処理装置に送信するバブルパケット送信対象ポート送信部を備えたサーバ
[74] 前記バブルパケット送信対象ポート情報は、 1以上のバブルパケット送信対象ポート の位置を示す情報であり、
当該 1以上のバブルパケット送信対象ポートは、前記バブルパケットの送信に対して 前記第 2の情報処理装置力 送信される返信パケットを送信するためのポートを、前 記第 2の通信制御装置において割り当てるために前記第 2の情報処理装置から送信 されたポート割り当てパケットの通過した前記第 2の通信制御装置におけるポートで あるポート割り当てパケット送信ポートを含む、請求項 73記載のサーバ。
[75] 前記ポート割り当てパケット送信ポートを含むポートの範囲を検出するための範囲検 出用パケットを受け付け、当該範囲検出用パケットが通過した前記第 2の通信制御装 置のポートの位置を検出する検出用ポート検出部と、
前記検出用ポート検出部が検出したポートの位置を示す検出用ポート情報を前記第 2の情報処理装置に送信する検出用ポート情報送信部と、
前記第 2の情報処理装置から送信された前記ポート割り当てパケットを含むポートの 範囲を示すバブルパケット送信対象ポート情報を受け付けるバブルパケット送信対 象ポート受付部と、をさらに備え、
前記バブルパケット送信対象ポート送信部は、前記バブルパケット送信対象ポート受 付部が受け付けた前記バブルパケット送信対象ポート情報を送信する、請求項 74記 載のサーバ。
[76] 前記ポート割り当てパケット送信ポートを含むポートの範囲を検出するための範囲検 出用パケットを受け付け、前記ポート割り当てパケット送信ポートを含むポートの範囲 を検出する範囲検出部をさらに備え、
前記バブルパケット送信対象ポート送信部は、前記範囲検出部が検出したポートの 範囲に基づいて、前記バブルパケット送信対象ポート情報を送信する、請求項 74記 載のサーバ。
[77] 前記第 2の情報処理装置から前記第 2の通信制御装置を介して送信された、前記第 2の通信制御装置におけるポート幅を検出するためのポート幅検出用パケットを受け 付け、当該ポート幅検出用パケットに基づいて前記ポート幅検出用パケットが通過し た前記第 2の通信制御装置のポートの位置を検出するポート幅検出用ポート検出部 と、
前記ポート幅検出用ポート検出部が検出したポートの位置を示すポート幅検出用ポ ート情報を前記第 2の情報処理装置に送信するポート幅検出用ポート情報送信部と 、をさらに備えた、請求項 74から 76のいずれか記載のサーバ。
[78] 前記第 2の情報処理装置から前記第 2の通信制御装置を介して送信された、前記第 2の通信制御装置におけるポート幅を検出するためのポート幅検出用パケットを受け 付け、当該ポート幅検出用パケットに基づいて、前記第 2の通信制御装置におけるポ 一ト幅を検出するポート幅検出部と、
前記ポート幅検出部が検出した前記第 2の通信制御装置のポート幅を示す情報であ るポート幅情報を前記第 1の情報処理装置に送信するポート幅送信部と、をさらに備 えた、請求項 74から 76の 、ずれか記載のサーバ。
[79] 前記バブルパケット送信ステップでは、 1以上のポートに対して前記バブルパケットを 送信する、請求項 25記載の通信方法。
[80] 前記バブルパケット送信対象ポート情報は、 1以上のバブルパケット送信対象ポート の位置を示す情報であり、
前記バブルパケット送信ステップでは、前記バブルパケット送信対象ポート情報の示 す 1以上のバブルパケット送信対象ポートに前記バブルパケットを送信する、請求項 41記載のプログラム。
[81] コンピュータに、
前記返信パケットを送信するためのポートを前記第 1の通信制御装置において割り 当てるためのポート割り当てパケットを送信するポート割り当てパケット送信ステップを さらに実行させ、
前記返信パケット送信ステップでは、前記ポート割り当てパケットが送信された前記 第 1の情報処理装置のポートから前記返信パケットを送信する、請求項 48記載のプ ログラム。
[82] コンピュータに、
前記ポート割り当てパケットの送信で用いられる、前記第 1の通信制御装置のポート であるポート割り当てパケット送信ポートを含むポートの範囲を検出するために用いら れる範囲検出用パケットを送信する範囲検出用パケット送信ステップをさらに実行さ せるための、請求項 81記載のプログラム。
[83] 情報処理装置と、前記情報処理装置の通信を制御する通信制御装置と、サーバとを 備えた通信システムであって、
前記情報処理装置は、
前記通信制御装置を介して、前記通信制御装置に送信履歴を残すための 1以上の バブルパケットを送信するバブルパケット送信部と、
1以上の前記バブルパケットの送信で用いられる、前記通信制御装置のポートである 1以上のバブルパケット送信ポートを含むポートの範囲を検出するために用いられる 範囲検出用パケットを前記サーバに送信する範囲検出用パケット送信部と、を備え、 前記サーバは、
前記範囲検出用パケットを受け付け、当該範囲検出用パケットに基づいて 1以上の 前記バブルパケット送信ポートを含むポートの範囲を検出する範囲検出部を備えた、 通信システム。
[84] 前記サーバは、
前記範囲検出部が検出した 1以上の前記バブルパケット送信ポートを含むポートの 範囲を示す情報である範囲情報を送信する範囲送信部をさらに備えた、請求項 83 記載の通信システム。
[85] 情報処理装置と、前記情報処理装置の通信を制御する通信制御装置と、サーバとを 備えた通信システムであって、
前記情報処理装置は、
前記通信制御装置を介して、前記通信制御装置に送信履歴を残すための 1以上の バブルパケットを送信するバブルパケット送信部と、
1以上の前記バブルパケットの送信で用いられる、前記通信制御装置のポートである 1以上のバブルパケット送信ポートを含むポートの範囲を検出するために用いられる 範囲検出用パケットを前記サーバに送信する範囲検出用パケット送信部と、 前記範囲検出用パケットが通過した前記通信制御装置のポートの位置を示す検出 用ポート情報を受け付ける検出用ポート情報受付部と、
前記検出用ポート情報受付部が受け付けた検出用ポート情報に基づいて、 1以上の 前記バブルパケット送信ポートを含むポートの範囲を検出する範囲検出部と、を備え 前記サーバは、
前記範囲検出用パケットを受け付け、当該範囲検出用パケットが通過した前記通信 制御装置のポートの位置を検出する検出用ポート検出部と、 前記検出用ポート検出部が検出したポートの位置を示す検出用ポート情報を前記情 報処理装置に送信する検出用ポート情報送信部と、を備えた、通信システム。
[86] 前記情報処理装置は、
前記範囲検出部が検出した 1以上の前記バブルパケット送信ポートを含むポートの 範囲を示す情報である範囲情報を送信する範囲送信部をさらに備えた、請求項 85 記載の通信システム。
[87] 前記範囲情報を受け付ける範囲受付部と、
前記範囲情報の示す範囲のポートに返信パケットを送信する返信パケット送信部と、 を備えた第 2の情報処理装置をさらに備え、
前記情報処理装置は、
前記第 2の情報処理装置力も送信された返信パケットを受け付ける返信パケット受付 部をさらに備えた、請求項 84または 86記載の通信システム。
[88] 前記範囲検出用パケット送信部は、前記バブルパケット送信部力 ^以上の前記パブ ルパケットを送信する前後において、それぞれ前記範囲検出用パケットを送信する、 請求項 83または 85記載の通信システム。
[89] 前記範囲検出用パケット送信部は、 1以上の前記バブルパケットの送信の前後で、そ れぞれ異なるアドレスに前記範囲検出用パケットを送信する、請求項 88記載の通信 システム。
[90] 前記範囲検出用パケット送信部は、 1以上の前記バブルパケットの送信の前後で、そ れぞれ前記情報処理装置にぉ 、て新たに割り当てられたポートを用いて前記範囲 検出用パケットを送信する、請求項 88記載の通信システム。
[91] 前記サーバは、
1以上の前記バブルパケットを送信する対象のポートであるバブルパケット送信対象 ポートの位置を示すバブルパケット送信対象ポート情報を前記情報処理装置に送信 するバブルパケット送信対象ポート送信部をさらに備え、
前記情報処理装置は、
前記バブルパケット送信対象ポート情報を受け付けるバブルパケット送信対象ポート 受付部をさらに備え、 前記バブルパケット送信部は、前記バブルパケット送信対象ポート情報の示すパブ ルパケット送信対象ポートに 1以上の前記バブルパケットを送信する、請求項 83また は 85記載の通信システム。
[92] 請求項 83または 85記載の通信システムを構成する情報処理装置。
[93] 請求項 87記載の通信システムを構成する第 2の情報処理装置。
[94] 請求項 83または 85記載の通信システムを構成するサーバ。
[95] 情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムにぉ ヽて用いられる通信方法であって、
前記情報処理装置が、前記通信制御装置を介して、当該通信制御装置に送信履歴 を残すための 1以上のバブルパケットを通信の相手先に対して送信するバブルパケ ット送信ステップと、
1以上の前記バブルパケットの送信で用いられる、前記通信制御装置のポートである 1以上のバブルパケット送信ポートを含むポートの範囲を検出する範囲検出ステップ と、を備えた通信方法。
[96] 前記範囲検出ステップは、
前記情報処理装置が、前記範囲を検出するために用いられる第 1の範囲検出用パ ケットを、 1以上の前記バブルパケットの送信の前にサーバに送信するステップと、 前記サーバが、前記第 1の範囲検出用パケットを受け付け、前記第 1の範囲検出用 パケットの送信で用いられた前記第 1の通信制御装置のポートの位置を検出するス テツプと、
前記情報処理装置が、前記範囲を検出するために用いられる第 2の範囲検出用パ ケットを、 1以上の前記バブルパケットの送信の後にサーバに送信するステップと、 前記サーバが、前記第 2の範囲検出用パケットを受け付け、前記第 2の範囲検出用 パケットの送信で用いられた前記通信制御装置のポートの位置を検出するステップと 、を含む、請求項 95記載の通信方法。
[97] 情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記情報処理装置にぉ 、て用いられる通信方法で あって、 前記通信制御装置を介して、前記通信制御装置に送信履歴を残すための 1以上の バブルパケットを送信するバブルパケット送信ステップと、
1以上の前記バブルパケットの送信で用いられる、前記通信制御装置のポートである 1以上のバブルパケット送信ポートを含むポートの範囲を検出するために用いられる 範囲検出用パケットを送信する範囲検出用パケット送信ステップと、を備えた通信方 法。
[98] 前記範囲検出用パケットが通過した前記通信制御装置のポートの位置を示す検出 用ポート情報を受け付ける検出用ポート情報受付ステップと、
前記検出用ポート情報受付ステップで受け付けた検出用ポート情報に基づいて、 1 以上の前記バブルパケット送信ポートを含むポートの範囲を検出する範囲検出ステツ プと、をさらに備えた請求項 97記載の通信方法。
[99] 前記範囲検出ステップで検出した 1以上の前記バブルパケット送信ポートを含むポ ートの範囲を示す情報である範囲情報を送信する範囲送信ステップをさらに備えた、 請求項 98記載の通信方法。
[100] 情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記サーバにおいて用いられる通信方法であって 前記通信制御装置に送信履歴を残すために送信される 1以上のバブルパケットの送 信で用いられる、前記通信制御装置のポートである 1以上のバブルパケット送信ポー トを含むポートの範囲を検出するために用いられる、前記情報処理装置から送信さ れた範囲検出用パケットを受け付け、当該範囲検出用パケットに基づいて 1以上の 前記バブルパケット送信ポートを含むポートの範囲を検出する範囲検出ステップと、 前記範囲検出ステップで検出した 1以上の前記バブルパケット送信ポートを含むポ ートの範囲を示す情報である範囲情報を送信する範囲送信ステップと、を備えた通 信方法。
[101] 情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記サーバにおいて用いられる通信方法であって 前記通信制御装置に送信履歴を残すために送信される 1以上のバブルパケットの送 信で用いられる、前記通信制御装置のポートである 1以上のバブルパケット送信ポー トを含むポートの範囲を検出するために用いられる、前記情報処理装置から送信さ れた範囲検出用パケットを受け付け、当該範囲検出用パケットが通過した前記通信 制御装置のポートの位置を検出する検出用ポート検出ステップと、
前記検出用ポート検出ステップで検出したポートの位置を示す検出用ポート情報を 前記情報処理装置に送信する検出用ポート情報送信ステップと、を備えた通信方法
[102] コンピュータに、
情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記情報処理装置における処理を実行させるため のプログラムであって、
前記通信制御装置を介して、前記通信制御装置に送信履歴を残すための 1以上の バブルパケットを送信するバブルパケット送信ステップと、
1以上の前記バブルパケットの送信で用いられる、前記通信制御装置のポートである 1以上のバブルパケット送信ポートを含むポートの範囲を検出するために用いられる 範囲検出用パケットを送信する範囲検出用パケット送信ステップと、を実行させるた めのプログラム。
[103] コンピュータに、
前記範囲検出用パケットが通過した前記通信制御装置のポートの位置を示す検出 用ポート情報を受け付ける検出用ポート情報受付ステップと、
前記検出用ポート情報受付ステップで受け付けた検出用ポート情報に基づいて、 1 以上の前記バブルパケット送信ポートを含むポートの範囲を検出する範囲検出ステツ プと、をさらに実行させるための請求項 102記載のプログラム。
[104] コンピュータに、
前記範囲検出ステップで検出した 1以上の前記バブルパケット送信ポートを含むポ ートの範囲を示す情報である範囲情報を送信する範囲送信ステップをさらに実行さ せるための請求項 103記載のプログラム。
[105] コンピュータに、
情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記サーバにおける処理を実行させるためのプロ グラムであって、
前記通信制御装置に送信履歴を残すために送信される 1以上のバブルパケットの送 信で用いられる、前記通信制御装置のポートである 1以上のバブルパケット送信ポー トを含むポートの範囲を検出するために用いられる、前記情報処理装置から送信さ れた範囲検出用パケットを受け付け、当該範囲検出用パケットに基づいて 1以上の 前記バブルパケット送信ポートを含むポートの範囲を検出する範囲検出ステップと、 前記範囲検出ステップで検出した 1以上の前記バブルパケット送信ポートを含むポ ートの範囲を示す情報である範囲情報を送信する範囲送信ステップと、を実行させる ためのプログラム。
[106] コンピュータに、
情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記サーバにおける処理を実行させるためのプロ グラムであって、
前記通信制御装置に送信履歴を残すために送信される 1以上のバブルパケットの送 信で用いられる、前記通信制御装置のポートである 1以上のバブルパケット送信ポー トを含むポートの範囲を検出するために用いられる、前記情報処理装置から送信さ れた範囲検出用パケットを受け付け、当該範囲検出用パケットが通過した前記通信 制御装置のポートの位置を検出する検出用ポート検出ステップと、
前記検出用ポート検出ステップで検出したポートの位置を示す検出用 ポート情報を 前記情報処理装置に送信する検出用ポート情報送信ステップと、を実行させるため のプログラム。
PCT/JP2004/015721 2003-10-27 2004-10-22 通信システム、情報処理装置、サーバ、および通信方法 WO2005041500A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP04792863.5A EP1681811B1 (en) 2003-10-27 2004-10-22 Communication system and communication method
US10/576,065 US7623513B2 (en) 2003-10-27 2004-10-22 Communication system, information processing apparatus, server, and communication method
JP2005514980A JP3933182B2 (ja) 2003-10-27 2004-10-22 通信システム、情報処理装置、サーバ、および通信方法
US12/574,774 US7929541B2 (en) 2003-10-27 2009-10-07 Communication system, information processing apparatus, server, and communication method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003365668 2003-10-27
JP2003-365668 2003-10-27

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US10/576,065 A-371-Of-International US7623513B2 (en) 2003-10-27 2004-10-22 Communication system, information processing apparatus, server, and communication method
US12/574,774 Continuation US7929541B2 (en) 2003-10-27 2009-10-07 Communication system, information processing apparatus, server, and communication method

Publications (1)

Publication Number Publication Date
WO2005041500A1 true WO2005041500A1 (ja) 2005-05-06

Family

ID=34510185

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/015721 WO2005041500A1 (ja) 2003-10-27 2004-10-22 通信システム、情報処理装置、サーバ、および通信方法

Country Status (8)

Country Link
US (2) US7623513B2 (ja)
EP (1) EP1681811B1 (ja)
JP (1) JP3933182B2 (ja)
KR (1) KR20060102333A (ja)
CN (1) CN1875580A (ja)
MY (1) MY138020A (ja)
TW (1) TW200527860A (ja)
WO (1) WO2005041500A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006261895A (ja) * 2005-03-16 2006-09-28 Matsushita Electric Ind Co Ltd 情報処理装置、ポート検出装置、情報処理方法、及びポート検出方法
US8654755B2 (en) 2005-11-16 2014-02-18 Kabushiki Kaisha Toshiba Device and method for communicating with another communication device via network forwarding device
JP2016208162A (ja) * 2015-04-17 2016-12-08 富士通株式会社 判定方法および情報処理装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234383B2 (en) * 2003-11-07 2012-07-31 Panasonic Corporation Bubble packet port identification using detection packets
US7680065B2 (en) * 2005-01-18 2010-03-16 Cisco Technology, Inc. System and method for routing information packets
JP4600518B2 (ja) * 2008-05-20 2010-12-15 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにコンピュータ・プログラム
JP5218357B2 (ja) * 2009-09-25 2013-06-26 ブラザー工業株式会社 通信方法、通信システム、端末装置
JP5887507B2 (ja) * 2011-11-28 2016-03-16 パナソニックIpマネジメント株式会社 通信機器間の接続確立方法、通信機器、及びサーバ装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002082794A2 (en) * 2001-04-03 2002-10-17 Voxpath Networks, Inc. System and method for performing ip telephony

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7031275B1 (en) * 2000-12-28 2006-04-18 Utstarcom, Inc. Address management for mobile nodes
TWI232655B (en) * 2002-05-07 2005-05-11 Realtek Semiconductor Corp Device and method for network address-port translation
US7280557B1 (en) * 2002-06-28 2007-10-09 Cisco Technology, Inc. Mechanisms for providing stateful NAT support in redundant and asymetric routing environments
AU2003279775A1 (en) * 2002-10-04 2004-05-04 Woodstock Systems, Llc Systems and devices accessing inaccessible servers
JP2004180003A (ja) 2002-11-27 2004-06-24 Kitt Peak:Kk 通信ネットワークシステムおよび通信の接続方法
US7899932B2 (en) * 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
US7245622B2 (en) * 2003-03-27 2007-07-17 Microsoft Corporation Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload
JP3741312B2 (ja) 2003-03-28 2006-02-01 ソニー株式会社 ネットワークシステムおよび通信方法、情報処理装置および方法、並びにプログラム
EP1677465B1 (en) * 2003-11-07 2014-08-13 Panasonic Corporation Communication system, information processing apparatus and communication method
JP2007528677A (ja) * 2004-03-09 2007-10-11 クリーク コミュニケーションズ エルエルシー シンメトリック・ファイアウォールの背後のクライアントのピアツーピア接続のためのシステムおよび方法
US7451212B2 (en) * 2004-03-17 2008-11-11 At&T Intellectual Property I, L.P. Logical port configuration system
US8050272B2 (en) * 2004-06-29 2011-11-01 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002082794A2 (en) * 2001-04-03 2002-10-17 Voxpath Networks, Inc. System and method for performing ip telephony

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"The calbe guy - 2003 nen 4 gatsu: Windows XP Peer-to-Peer update no IPv6 kino", April 2003 (2003-04-01), XP002988197, Retrieved from the Internet <URL:http://www.microsoft.com/japan/technet/communitiy/columns/cableguy/cg0403.mspx> [retrieved on 20050118] *
OIKAWA T. ET AL.: "IPv6style: Advanced networking pack for Windows XP daikaibo dai 1 kai IPv6 setsuzoku o sarani tokoteki ni suru teredo", 29 September 2003, XP008138048 *
See also references of EP1681811A4 *
XP002988196, Retrieved from the Internet <URL:http://www.ipv6style.jp/jp/tryout/20030929/20030929_p.shtml> [retrieved on 20050118] *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006261895A (ja) * 2005-03-16 2006-09-28 Matsushita Electric Ind Co Ltd 情報処理装置、ポート検出装置、情報処理方法、及びポート検出方法
JP4665568B2 (ja) * 2005-03-16 2011-04-06 パナソニック株式会社 情報処理装置、ポート検出装置、情報処理方法、及びポート検出方法
US8654755B2 (en) 2005-11-16 2014-02-18 Kabushiki Kaisha Toshiba Device and method for communicating with another communication device via network forwarding device
JP2016208162A (ja) * 2015-04-17 2016-12-08 富士通株式会社 判定方法および情報処理装置

Also Published As

Publication number Publication date
US20070140226A1 (en) 2007-06-21
TW200527860A (en) 2005-08-16
US7623513B2 (en) 2009-11-24
EP1681811A1 (en) 2006-07-19
CN1875580A (zh) 2006-12-06
JP3933182B2 (ja) 2007-06-20
EP1681811A4 (en) 2011-04-27
US20100023646A1 (en) 2010-01-28
JPWO2005041500A1 (ja) 2007-11-29
KR20060102333A (ko) 2006-09-27
US7929541B2 (en) 2011-04-19
MY138020A (en) 2009-04-30
EP1681811B1 (en) 2019-08-28

Similar Documents

Publication Publication Date Title
US7522594B2 (en) Method and apparatus to permit data transmission to traverse firewalls
EP1739897B1 (en) Information processing device, and bubble packet transmission method and program
US7441270B1 (en) Connectivity in the presence of barriers
US20070076729A1 (en) Peer-to-peer communication traversing symmetric network address translators
US11621917B2 (en) Transparent multiplexing of IP endpoints
WO2005041500A1 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP4389886B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
WO2005046143A1 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP3849711B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
EP1809000A1 (en) Information processing device, information processing system, information processing method, and program
Müller et al. On the applicability of knowledge based nat-traversal for home networks
JP2008205676A (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
EP3044929B1 (en) A mobile-device based proxy for browser-originated procedures
JP4389885B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP4389994B2 (ja) 通信システム、情報処理装置、サーバ、および情報処理方法
KR20020037223A (ko) 공인 및 사설 아이피주소를 이용한 통신서비스방법 및시스템
KR100511059B1 (ko) 보안 유지된 네트웍과 개방된 네트웍간에 멀티미디어 통신시스템 및 방법
JP4345751B2 (ja) 情報処理装置、及びバブルパケット送信方法
Fan et al. An SDN-assisted carrier-grade network address translation service framework for 5G core networks
CN100574254C (zh) 穿越网络地址转换装置的处理方法及通话启始协议服务器

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200480031698.8

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2005514980

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2007140226

Country of ref document: US

Ref document number: 10576065

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2004792863

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020067008114

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2004792863

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020067008114

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 10576065

Country of ref document: US