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

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

Info

Publication number
WO2005046143A1
WO2005046143A1 PCT/JP2004/016084 JP2004016084W WO2005046143A1 WO 2005046143 A1 WO2005046143 A1 WO 2005046143A1 JP 2004016084 W JP2004016084 W JP 2004016084W WO 2005046143 A1 WO2005046143 A1 WO 2005046143A1
Authority
WO
WIPO (PCT)
Prior art keywords
port
packet
detection
information processing
communication control
Prior art date
Application number
PCT/JP2004/016084
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 US10/576,588 priority Critical patent/US8239541B2/en
Priority to JP2005515273A priority patent/JP3933183B2/ja
Priority to EP20040793192 priority patent/EP1677465B1/en
Publication of WO2005046143A1 publication Critical patent/WO2005046143A1/ja
Priority to US11/510,487 priority patent/US8234383B2/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
    • 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
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]

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.
  • F NAT Full Cone NAT
  • R NAT Restricted Cone NAT
  • Port Restricted Cone NAT (PR NAT): Transmission port assignment Rule is a Cone type, and the receiving port filter rule is a Port Sensitive filter.
  • Sa NAT a transmission port assignment rule of an address sensitive type and a reception port filter rule of a No filter.
  • a transmission port assignment rule is an Address Sensitive type
  • a reception port filter rule is an Address Sensitive filter
  • Sc NAT Symmetric (c) NAT (hereinafter, referred to as Sc NAT): after the transmission port assignment rule is of the address sensitive type and the reception port filter rule is the port sensitive filter.
  • Symmetric (d) NAT (hereinafter referred to as Sd NAT): a transmission port assignment rule that is a Port Sensitive type, and a reception port filter rule is a No filter.
  • Symmetric (e) NAT (hereinafter, referred to as Se NAT):
  • the transmission port allocation rule is a Port Sensitive type, and the reception port filter rule is an Address Sensitive filter.
  • Port Sensitive Symmetric NAT (hereinafter, referred to as PS NAT or Sf NAT): A transmission port allocation rule that is a SPort Sensitive type and a reception port filter rule is a Port Sensitive filter.
  • Non-Patent Document 1 “Symmetric NAT” Traversal using STUN ”, [Online], June 2003, [Searched March 25, 2004]
  • Non-Patent Document 2 a Non-Patent Document 2
  • connection of “* 1” in FIG. 34 is conventionally known, and the connection of “* 2” is described in Non-Patent Document 1 described above, and the connection of “* 3” is Is described in Non-Patent Document 2 above. 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.
  • Fig. 34 does not include the case where Sa NAT or Sc-Se NAT is used, but also the case where such NAT is used. 1. It is now possible to establish peer-to-peer communication (for example, communication between PCI and PC2 in Fig. 33)!
  • a NAT port through which a bubble packet (a packet transmitted to leave a transmission history in the NAT) transmitted from one information processing device passes. The position has been reliably detected.
  • One object of the present invention is to provide a communication system or the like that can more reliably establish communication between a plurality of information processing devices that communicate via a communication control device that controls communication. It is.
  • Another object of the present invention is to provide a communication apparatus through which a transmitted bubble packet has passed.
  • An object of the present invention is to provide a communication system or the like that can detect the position of a port in a communication control device.
  • a first information processing device includes a first communication control device that controls communication of the first information processing device, and a communication device that communicates with the second information processing device.
  • the first information processing device which communicates with the second information processing device via a second communication control device that controls transmission of the first communication control device.
  • a reference port receiving unit that receives reference port information indicating a position of a reference port, which is a port in the second communication control device that is a reference of a transmission target of a bubble packet to be transmitted, based on the reference port information.
  • a bubble packet transmitting unit that transmits the bubble packet to the second communication control device via the first communication control device; and a port of the first communication control device used for transmitting the bubble packet.
  • a bubble A detecting packet transmitting unit for transmitting a port detecting packet for detecting a position of a packet transmitting port; and a second communication control device for transmitting the bubble packet transmitting port from the second information processing device.
  • a reply packet receiving unit for receiving a reply packet transmitted via the communication device.
  • 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, wherein the first communication control device communicates with the second information processing device from the second information processing device.
  • a bubble packet for transmitting a transmission history to the second communication control device is transmitted to the second communication control device via the control device, and the first communication control device serving as a reference of the transmission target of the bubble packet is transmitted.
  • a reference port detection packet transmission unit for transmitting a reference port detection packet for detecting a position of a reference port which is a port in the second information processing device; Second communication control device In the door Bubble packet transmission port receiving unit for receiving bubble packet transmission port information indicating the position of a certain bubble packet transmission port, and reply packet transmission for transmitting a reply packet to the bubble packet transmission port indicated by the bubble packet transmission port information And a part.
  • 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 first information processing device, wherein the first information processing is performed to leave a transmission history in the first communication control device.
  • the second information processing device transmits the second communication control device.
  • a reference port detection unit that receives a reference port detection packet transmitted through the control device and detects a position of the reference port based on the reference port detection packet; and a reference port detected by the reference port detection unit.
  • port A reference port transmitting unit that transmits reference port information indicating the position of the bubble to the first information processing device, and a reference port transmitting unit that transmits the bubble packet from the first information processing device to the second communication control device.
  • a port detection packet transmitted from the first information processing device is received, and based on the port detection packet.
  • a bubble packet transmission port detector for detecting the position of the bubble packet transmission port; and bubble packet transmission port information indicating the position of the bubble packet transmission port detected by the bubble packet transmission port detector.
  • a bubble packet transmission port transmitting unit for transmitting to the device.
  • 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 is performed to leave a transmission history in the first communication control device.
  • the second information processing device transmits the second communication control device.
  • a reference port detection unit that receives a reference port detection packet transmitted through the control device and detects a position of the reference port based on the reference port detection packet; and a reference port detected by the reference port detection unit.
  • port A reference port transmitting unit that transmits reference port information indicating the position of the bubble to the first information processing device, and a reference port transmitting unit that transmits the bubble packet from the first information processing device to the second communication control device.
  • a port detection packet transmitted from the first information processing device is received, and based on the port detection packet.
  • a detection port detector for detecting the position of the port of the first communication control device through which the port detection packet has passed, and detection port information indicating the position of the port detected by the detection port detector.
  • a detection port information transmission unit for transmitting to the first information processing device.
  • the position of the reference port in the second communication control device can be detected and notified to the first information processing device, and the first communication control device that has passed the port detection packet can be detected.
  • the position of the device can be detected and notified to the first 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 a bubble packet for leaving a transmission history in the communication control device via the control device; and a bubble packet transmission, which is a port of the communication control device, used for transmitting the bubble packet.
  • a detection packet transmitting unit that transmits a port detection packet used to detect a port position to the server before and after the bubble packet transmitting unit transmits the bubble packet. Equipped
  • the position of the bubble packet transmission port can be detected by the port detection packet to which the information processing device has also transmitted. This detection may be performed by the server, may be performed by the information processing device, or may be performed by another device. By using the detected position of the bubble packet transmission port to transmit a packet to another device to the bubble packet transmission port, 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 a server according to the embodiment.
  • FIG. 5 is a flowchart showing an operation of the communication system according to the embodiment.
  • FIG. 6 is a diagram for describing processing relating to the establishment of communication according to the embodiment.
  • FIG. 7 is a diagram for explaining detection of a port width in the embodiment.
  • FIG. 8 is a diagram for describing processing relating to establishment of communication in the embodiment.
  • Fig. 9 is a diagram for describing processing relating to the establishment of communication in the embodiment.
  • FIG. 10 is a diagram for describing a specific example according to the embodiment.
  • FIG. 11 is a diagram for describing a specific example according to 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. [17] 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 a server according to the embodiment.
  • Fig. 21 is a diagram for describing processing related to the establishment of communication in the embodiment.
  • FIG. 22 is a diagram for describing processing relating to the establishment of communication in the embodiment.
  • Fig. 23 is a diagram for describing processing 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 another embodiment.
  • FIG. 26 is a block diagram showing a configuration of a communication system according to Embodiment 4 of the present invention.
  • FIG. 27 is a block diagram showing a configuration of a first 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 diagram for describing processing relating to the establishment of communication according to the embodiment.
  • FIG. 30 is a diagram for describing a specific example in the same embodiment.
  • FIG. 31 is a diagram for describing a specific example in the embodiment.
  • FIG. 32 is a diagram for explaining the characteristics (type) of NAT.
  • FIG. 33 is a diagram showing an example of a communication system.
  • FIG. 34 is a diagram showing a conventional combination of connectable NATs. Explanation of symbols
  • 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 server 6.
  • the first communication control device 3, the second communication control device 4, and the server 6 are connected via a wired or wireless communication line 5.
  • This 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.
  • the information processing device on the transmission side is a device that issues a communication (connection) request when establishing communication between the first information processing device 1 and the second information processing device 2 (in other words, In other words, it is the side that transmits a bubble packet).
  • the information processing device on the receiving side is the information processing device on the opposite side, that is, the information processing device on the side receiving a communication request (in other words, the side transmitting a reply packet to a bubble packet). .
  • the bubble packet and the reply packet will be described later.
  • FIG. 2 is a block diagram showing a configuration of the first information processing device 1.
  • the first information processing apparatus 1 includes a communication unit 11, a reference port reception unit 12, a bubble packet transmission unit 13, a detection packet transmission unit 14, and a port width detection packet transmission unit 15.
  • Retransmission instruction reception unit 16 reply packet reception unit 17, retransmission packet transmission unit 18, port width reception unit 19 is provided.
  • the communication unit 11 performs communication between each component inside the first information processing device 1 such as the bubble packet transmission unit 13 and the first communication control device 3.
  • the reference port receiving unit 12 receives reference port information indicating the position of the reference port.
  • the reference port is a predetermined port in the second communication control device 4, and is a port serving as a reference of a port to which a bubble packet is to be transmitted (a bubble packet transmission target port).
  • Accepting the reference port information means, for example, receiving the reference port information.
  • the bubble packet will be described later.
  • the bubble packet transmitting unit 13 transmits a public packet to the second communication control device 4 via the communication unit 11 and the first communication control device 3.
  • the bubble packet is transmitted based on the reference port information received by the reference port receiving unit 12.
  • a bubble packet is transmitted from a reference port to a bubble packet transmission target port which is a port allocated after a predetermined port allocation.
  • the bubble packet transmission target port is, for example, a port whose port interval from the reference port is M times the port width in the second communication control device 4 (M is an integer of 1 or more).
  • M is an integer of 1 or more
  • the port width in the second communication control device 4 is indicated by port width information received by a port width receiving unit 19 described later.
  • 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. is there.
  • establishing communication means starting peer-to-peer communication between the first information processing device 1 and the second information processing device 2 without passing through the server 6.
  • To leave the transmission history means that the first communication control device 3 allocates a port (opens a port) for receiving a reply packet described later.
  • 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).
  • the detection packet transmitting unit 14 transmits a port detection packet to the server 6.
  • This port The packet for packet detection is used to detect the position of the bubble packet transmission port.
  • the bubble packet transmission port is used for transmitting a bubble packet.
  • This port detection packet is transmitted before the bubble packet is transmitted and after the Z or bubble packet is transmitted.
  • a port detection packet is transmitted before and after transmission of a bubble packet.
  • the port detection packet is transmitted by, for example, UDP or TCP (Transmission Control Protocol).
  • This port number detection packet may contain any information or may not contain any information.
  • the port number differential detection packet transmitting unit 15 transmits a port number differential detection packet used for detecting the port number differential in the first communication control device 3 to the server 6 via the first communication control device 3.
  • the port width is the width (interval) of the ports used (allocated) continuously. For example, when the port width is “1”, the port used next to the port with the port number “2000 0” is the port with the port number “20001”. On the other hand, when the port width is “2”, the port used next to the port with the port number “20000” is the port with the port number “20002”.
  • This port number detection packet may contain some information! /, Or may contain no information.
  • Retransmission instruction receiving section 16 receives a retransmission instruction.
  • the retransmission instruction is an instruction to retransmit the bubble packet and the port detection packet. This retransmission instruction is accepted, for example, by reception.
  • the detection packet transmission unit 14 and the bubble packet transmission unit 13 transmit the port detection packet and the bubble packet again, respectively.
  • Reply packet receiving unit 17 receives a reply packet transmitted from second information processing device 2 via second communication control device 4. This reply packet has been transmitted to the bubble packet transmission port. This reply packet is received, for example, by reception. This reply packet may or may not contain any information.
  • the re-reply packet transmitting unit 18 is provided when the reply packet receiving unit 17 receives the reply packet. In this case, a re-reply packet is transmitted. This re-reply packet is transmitted to the port of the second communication control device 4 used for transmitting the return packet. This re-reply packet is sent, for example, by UDP. This re-reply packet may or may not contain any information.
  • the port width receiving unit 19 receives the port width information transmitted from the server 6.
  • the port width information is information indicating a port width in the second communication control device 4.
  • FIG. 3 is a block diagram showing a configuration of the second information processing device 2.
  • the second information processing device 2 includes a communication unit 21, a reference port detection packet transmission unit 22, a bubble packet transmission port reception unit 23, a reply packet transmission unit 24, and a re-reply packet reception unit 25. And a port width detection packet transmitting unit 26.
  • the communication unit 21 like the communication unit 11, communicates between each component inside the second information processing device 2 such as the reference port detection packet transmission unit 22 and the second communication control device 4. The communication at is performed.
  • the reference port detection packet transmitting unit 22 transmits a reference port detection packet for detecting the position of the reference port to the server 6.
  • the reference port is the latest port (most recently allocated port) at the time when the reference port detection packet is transmitted, among the ports allocated by the second communication control device 4. That is, by transmitting the reference port detection packet, the server 6 can detect the position of the latest port assigned by the second communication control device 4.
  • This reference port detection packet is transmitted by, for example, UDP or TCP.
  • This reference port detection packet may or may not include any information, and may or may not include any information.
  • Bubble packet transmission port receiving unit 23 receives bubble packet transmission port information.
  • the bubble packet transmission port information is information indicating the position of the bubble packet transmission port.
  • the position of the bubble packet transmission port is indicated by the port number of the bubble packet transmission port.
  • the bubble packet transmission port information is received, for example, by reception.
  • the reply packet transmitting unit 24 transmits a reply packet to a bubble packet transmission port of the first communication control device 3.
  • the position of the bubble packet transmission port is bubble This is indicated by the bubble packet transmission port information received by the packet transmission port reception unit 23.
  • This reply packet is transmitted using N different (N is an integer of 2 or more) ports of the second communication control device 4.
  • the N ports are ports newly assigned in the second communication control device 4 when the return packet is transmitted.
  • the value of N is the number of ports that can be allocated from the reference port to the port to which the bubble packet has been transmitted (the bubble packet transmission target port) in the second communication control device 4 ( ⁇ ).
  • the response using the port targeted for bubble packet transmission is performed by transmitting ⁇ reply packets. Packet transmission becomes possible.
  • This reply packet is transmitted by, for example, UDP.
  • This reply packet may or may not contain any information.
  • Re-reply packet receiving unit 25 receives the re-reply packet transmitted from first information processing device 1. This re-reply packet is transmitted to the port of the second communication control device 4 used in the transmission of the return packet, and is received by the second information processing device 2. Depending on the type of NAT used in the first communication control device 3 and the second communication control device 4, when the first information processing device 1 receives the return packet, the first information processing device 1 Although communication between the second information processing apparatus 2 and the second information processing apparatus 2 may be established, the first information processing apparatus 1 and the second information Communication with the processing device 2 may be established.
  • the port number detection packet transmitting unit 26 transmits a port number detection packet for detecting the port number in the second communication control device 4 to the server 6 via the second communication control device 4. I do.
  • This port number detection packet may or may not contain any information, whether or not it contains any information.
  • 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 F NAT, R NAT, PR NAT, Sa NAT, AS NAT, Sc NAT, Sd NAT, Se NAT, and PS NAT.
  • the second communication control device 4 controls communication of the second information processing device 2.
  • NAT is used.
  • the first communication control device 3 and the second communication control device 4 use the first NAT in all combinations of NAT. Communication between the first information processing apparatus 1 and the second information processing apparatus 2 may be established.
  • the port assignment is performed such that the port number is increased or decreased for each predetermined port width. And In the following description, a case where the port numbers are assigned so as to increase is described.
  • FIG. 4 is a block diagram showing a configuration of the server 6.
  • the server 6 includes a communication unit 61, a reference port detection unit 62, a reference port transmission unit 63, a port width detection unit 64, a public packet transmission port detection unit 65, and a retransmission instruction transmission unit 66. And a bubble packet transmission port transmitting section 67 and a port width transmitting section 68.
  • the communication unit 61 performs communication between each unit of the server 6, such as the reference port detection unit 62, and the first information processing device 1, the second information processing device 2, and the like.
  • the reference port detection unit 62 receives the reference port detection packet, and detects the position of the reference port based on the reference port detection packet.
  • the reception of the reference port detection packet is performed, for example, by reception.
  • the reference port detection packet has been transmitted from the second information processing device 2 via the second communication control device 4.
  • the reference port transmitting section 63 transmits the reference port information to the first information processing device 1.
  • the reference port information indicates the position of the reference port by, for example, the port number of the reference port.
  • the port width detection unit 64 detects a port width in the first communication control device 3. This detection is performed by accepting a port number detection packet transmitted from the first information processing device 1. Further, the port width detection unit 64 detects a port width in the second communication control device 4. This detection is performed by receiving a port number detection packet transmitted from the second information processing device 2. Note that a first port detection unit for detecting the port width in the first communication control device 3 and a second port detection unit for detecting the port width in the second communication control device 4 may be provided.
  • the force port width detection unit 64 that realizes them in one. That is, of the port width detector 64, the first communication control device 3
  • the portion that detects the port width serves as a first port detection unit, and serves as a partial force second port detection unit that detects the port width in the second communication control device 4.
  • Bubble packet transmission port detection section 65 detects the position of the bubble packet transmission port in first communication control device 3. This detection is performed by receiving a port detection packet transmitted from the first information processing device 1 via the first communication control device 3. The reception of the port detection packet is performed, for example, by reception. Specifically, bubble packet transmission port detection section 65 receives a port detection packet transmitted before and after transmission of a bubble packet. Then, it is determined whether or not the two ports in the first communication control device 3 used for transmitting the port detection packet and the bubble packet transmission port are continuous. As a result of the determination, if those ports are continuous, the position of the port sandwiched between the two ports in the first communication control device 3 used for transmitting the port detection packet is determined as the bubble packet transmission port. Detect as position.
  • “continuous” means that the two ports and the bubble packet transmission port are arranged at intervals of the port width of the first communication control device 3.
  • the interval between the two ports of the first communication control device 3 used in transmitting the port detection packet is twice the port width of the first communication control device 3 detected by the port width detection unit 64. In some cases, it can be determined that they are continuous. On the other hand, if the two ports in the first communication control device 3 used for transmitting the port detection packet and the bubble packet transmission port are not continuous, the bubble packet transmission port cannot be detected.
  • the retransmission instruction transmission unit 66 transmits a retransmission instruction to the first information processing device 1.
  • the retransmission instruction is an instruction to retransmit the bubble packet and the port detection packet.
  • Bubble packet transmission port detection section 65 detects the position of the bubble packet transmission port using the port detection packet transmitted again in response to the transmission of the retransmission instruction. The transmission of the retransmission instruction is performed until the bubble packet transmission port detection unit 65 can detect the position of the bubble packet transmission port, or a predetermined upper limit (for example, 10 times), or a predetermined time ( This is repeated up to a predetermined limit such as, for example, 30 seconds.
  • the bubble packet transmitting port transmitting section 67 transmits bubble packet transmitting port information to the second information processing device 2. The position of the bubble packet transmission port indicated by the bubble packet transmission port information is detected by the bubble packet transmission port detection unit 65.
  • the port number transmitting section 68 transmits the port number information to the first information processing device 1.
  • the port width information is information indicating a port width in the second communication control device 4 detected by the port width detection unit 64.
  • Step S101 The reference port detection packet is transmitted from the second information processing device 2 to the server 6, and the position of the reference port is detected based on the reference port detection packet. Then, the reference port information server 6 indicating the position of the reference port is transmitted to the first information processing device 1. The detailed processing of step S101 will be described later.
  • Step S 102 The first information processing device 1 transmits a bubble packet to the second communication control device 4 based on the reference port information. Further, it transmits a port detection packet used for detecting the position of the bubble packet transmission port to the server 6. The detailed processing in step S102 will be described later.
  • Step S103 The bubble packet transmission port detection unit 65 of the server 6 determines whether or not the position of the bubble packet transmission port can be detected based on the port detection packet received in step S102. If it can be detected, the process proceeds to step S104. If it cannot be detected, the retransmission instruction transmitting unit 66 transmits a retransmission instruction to the first information processing device 1, and returns to step S102. The retransmission instruction is received by the retransmission instruction receiving unit 16 of the first information processing device 1.
  • Step S104 The server 6 detects the position of the bubble packet transmission port, and transmits bubble packet transmission port information indicating the position to the second information processing device 2.
  • the second information processing device 2 sends the reply packet to the first based on the bubble packet transmission port information. Is transmitted to the communication control device 3.
  • the detailed processing in step S104 will be described later.
  • Step S105 The reply packet receiving unit 17 of the first information processing device 1 determines whether a reply packet has been received. Then, if a reply packet has been received, the process proceeds to step S106. If not, the process returns to step S101, and the process from step S101 is repeated again.
  • Step S106 The re-reply packet transmitting unit 18 of the first information processing device 1 transmits the re-reply packet to the second communication control device 4.
  • Step S107 The re-reply packet receiving unit 25 of the second information processing device 2 determines whether a re-reply packet has been received. Then, when the re-reply packet is received, the packet is transmitted to any one of the ports of the first communication control device 3 used in the transmission of the re-reply packet, so that the first information processing apparatus 1 Communication with the second information processing device 2 without passing through the server 6 can be established, and the process of establishing communication is terminated. On the other hand, if the re-reply packet cannot be accepted, communication cannot be established, so the process returns to step S101 and the process from step S101 is repeated again.
  • FIG. 6 is a diagram for explaining the exchange and processing of information among a transmitting side, a server, and a receiving side.
  • the transmission side is a concept including the first information processing device 1 and the first communication control device 3.
  • the term “receiving side” is a concept including the second information processing device 2 and the second communication control device 4.
  • Step S 201 The server 6 transmits a reference port detection packet transmission request to the second information processing device 2.
  • Step S202 Upon receiving the reference port detection packet transmission request transmitted from the server 6, the reference port detection packet transmission unit 22 of the second information processing device 2 To the server 6. It should be noted that the reference port detection packet transmitting unit 22 transmits the reference port detection packet using the port that is most recently allocated in the second communication control device 4. For example, the second information processing device 2 transmits a reference port detection packet using a newly allocated port.
  • Step S203 The reference port detection unit 62 of the server 6 receives the reference port detection packet transmitted from the second information processing device 2. Then, the reference port detection unit 62 detects the position of the reference port by referring to the port number of the reference port included in the header of the reference port detection packet.
  • the reference port transmitting section 63 transmits reference port information, which is information indicating the position of the reference port detected by the reference port detecting section 62, to the first information processing apparatus 1.
  • the reference port information is received by the reference port receiving unit 12 in the first information processing device 1.
  • Step S205 The server 6 transmits address information indicating the IP address of the second communication control device 4 to the first information processing device 1.
  • the address information is received by the communication unit 11 and passed to the bubble packet transmission unit 13.
  • Step S206 The port-width detection packet transmitting unit 15 of the first information processing device 1 transmits the port-width detection packet to the 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. 7 is a diagram for explaining transmission of a port number detection packet.
  • the port-width detection packet transmitting unit 15 transmits a port-width detection packet to the port P200 of the server 6 sequentially from different ports P205 to P208. Then, in the first communication control device 3, those buckets pass through different ports P201 to P204. In FIG. 7, it is assumed that packets are transmitted in the order of ports P205 to P208.
  • the first information processing apparatus 1 uses the ports P205 to P208 for communication with the server 6 before transmitting the port number detection packet.
  • the port width detection unit 64 of the server 6 receives the port number detection packet transmitted from the first information processing device 1, and detects the port number based on the port number detection packet. I do. A method for detecting the port width will be described. By receiving the port number detection packet, the port number detection unit 64 can detect the ports P201 to P204 of the first communication control device 3 used for transmitting each 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, “6”, which is the smallest port interval, 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 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, but can be set arbitrarily within the range in which the port number can be detected.
  • Step S 208 The port-width detection packet transmitting unit 26 of the second information processing device 2 transmits the port-width detection packet to the server 6.
  • transmission of the port number detection packet is performed in the same manner as in step S206.
  • Step S 209 The port width detection unit 64 of the server 6 receives the port number detection packet transmitted from the second information processing device 2, and performs the second communication based on the port number detection packet.
  • the port width in the control device 4 is detected.
  • the method of detecting the port width is the same as that in step S207, and a description thereof will be omitted.
  • the port width detection processing in step S209 does not require much strictness compared to the port width detection in step S207. That is, a multiple of the actual port width in the second communication control device 4 may be detected as the port width.
  • the port width detected in step S209 is calculated from the reference port by a multiple of the port width detected in step S209.
  • the port number This is used to determine a distant port as a port to which a bubble packet is to be transmitted (in the direction in which the number increases).
  • the port width detected in this step is a multiple of the actual port width
  • the bubble packet transmission target port determined in this way is allocated after a number of port allocations from the reference port. This is because the port can be used as a bubble packet transmission target port. Therefore, this step S208, S209 In the port width detection in, the port width may be detected by transmitting a small number of port number detection packets.
  • Step S 210) The port width transmitting unit 68 of the server 6 transmits to the first information processing apparatus 1 port width information indicating the port width detected in step S 209.
  • the transmission of the receiving side address may be performed at any time.
  • the transmission of the reference port information (step S204), the reference port This may be performed before the transmission request of the detection packet (step S201).
  • the transmission of the port number detection bucket (step S208) and the transmission of the port number information (step S210) may be performed before the processing of transmitting the port number detection packet (step S206) and the like.
  • the order of the processing in FIG. 6 has some degree of arbitrariness.
  • FIG. 8 is a diagram for explaining the exchange and processing of information between the transmitting side, the server, and the receiving side.
  • Step S301 The detection packet transmitting unit 14 of the first information processing device 1 transmits a port detection packet to the server 6 via the first communication control device 3.
  • the port detection packet is transmitted so that the port detection packet passes through the port assigned latest in the first communication control device 3. This is to make it possible to properly detect the position of the bubble packet transmission port.
  • the detection packet transmitting unit 14 uses the port of the first information processing device 1 that has not been used in the communication between the first information processing device 1 and the server 6 to transmit the port detection packet. Send.
  • the port detection packet transmitted in this manner is accepted by the bubble packet transmission port detection unit 65 of the server 6.
  • the bubble packet transmission port detection unit 65 detects the position of the port in the first communication control device 3 used for transmitting the port detection packet by referring to the header of the port detection packet.
  • Step S302 The bubble packet transmitting unit 13 of the first information processing device 1 transmits a bubble packet to the second communication control device 4. This bubble packet is transmitted by the second communication control device 4 to a port assigned after a predetermined ( ⁇ ) port assignment from the reference port.
  • Step S303 The detection packet transmitting unit 14 of the first information processing device 1 transmits the port detection packet to the server 6 via the first communication control device 3. In this transmission, it is assumed that the port detection packet is transmitted so that the port detection packet passes through the port assigned latest in the first communication control device 3. For example, the detection packet transmitting unit 14 has not been used in communication between the first information processing apparatus 1 and the server 6, transmission of the port detection packet in step S301, and transmission of the bubble packet.
  • a port detection packet is transmitted using the port of the first information processing device 1.
  • the port detection packet transmitted in this manner is accepted by the bubble packet transmission port detection unit 65 of the server 6.
  • the bubble packet transmission port detection unit 65 detects the position of the port in the first communication control device 3 used for transmitting the port detection packet by referring to the header of the port detection packet.
  • Step S304 The bubble packet transmission port detection unit 65 of the server 6 determines the position of the port of the first communication control device 3 used in the transmission of the two port detection packets in steps S301 and S303. It is determined whether or not the bubble packet transmission port is continuous.
  • FIG. 9 is a diagram for explaining the exchange and processing of information between the transmitting side, the server, and the receiving side.
  • Step S401 The bubble packet transmission port detection unit 65 of the server 6 detects the position of the bubble packet transmission port.
  • Step S 402 The bubble packet transmission port transmitting section 67 of the server 6 transmits bubble packet transmission port information to the second information processing device 2.
  • the bubble packet transmission port information is received by the bubble packet transmission port receiving unit 23 of the second information processing device 2.
  • Step S403 The server 6 transmits address information indicating the IP address of the first communication control device 3 to the second information processing device 2.
  • the address information is received by the communication unit 21 and passed to the reply packet transmitting unit 24.
  • Step S404 The reply packet transmitting unit 24 of the second information processing device 2 A reply packet is transmitted to the first first communication control device 3 specified by the address information received in step 1. This reply packet is transmitted to the bubble packet transmission port indicated by the bubble packet transmission port information received by the bubble packet transmission port receiving unit 23.
  • step S402 the order of transmission of bubble packet transmission port information (step S402) and transmission of the transmission side address (step S403) does not matter.
  • the IP addresses of the first communication control device 3, the second communication control device 4, and the server 6 are , Respectively.
  • First communication control device 3 202. 132. 10. 6
  • Second communication control device 4 131.206.10.240
  • FIG. 10 to FIG. 13 are diagrams for explaining the first specific example.
  • a connection request is made from the first information processing device 1.
  • the first information processing device 1 knows the IP address “155.32.10.10” of the server 6 in advance, and sends the first information processing device 1 Send the device ID "1234567890123456".
  • the device ID for example, a GUID (Global Unique ID) such as a MAC address or an EUI64-based address can be used.
  • the transmission of the device ID is performed from the port P1 of the first information processing device 1 to the port P3 of the server 6 via the port P2 assigned by the first communication control device 3.
  • the server 6 The device ID of the first information processing device 1, the IP address “202.132.10.6.6” of the first communication control device 3, and the port number “10034” of the port P2 of the first communication control device 3 You can know. These pieces of information are stored in the server 6.
  • the first information processing device 1 transmits the device ID “9876543210123456” of the second information processing device 2 requesting the connection to the sano 6 so that the second green information processing device 2 Make a connection request to.
  • the server 6 receives the connection request, and determines whether or not the second information processing device 2 has already accessed the 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 server 6 transmits the device ID “9 876543210123456” of the second information processing device 2 and the second communication control device 4
  • the IP address “131.206.10.240” and the port number “23495” of the port P5 of the second communication control device 4 used for transmitting and receiving information between the second information processing device 2 and the server 6 "And hold them. If the second information processing device 2 has already accessed the server 6, the process regarding the reception of the reference port information (step S101) is started. On the other hand, if the second information processing device 2 does not access the server 6, the connection request of the first information processing device 1 becomes an error, and the first information processing device 1 and the second information processing device 1 Communication between device 2 cannot be established.
  • the server 6 transmits the reference port detection packet to the second information processing device 2 via the port P5 of the second communication control device 4. Request is made (step S201). Then, the transmission request is accepted by the reference port detection packet transmission unit 22 of the second information processing device 2. Then, in the second information processing device 2, the reference port detection packet transmitting unit 22 transmits the second port P8, which is different from the port P6 used in the communication with the A reference port detection packet is transmitted via the communication control device 4 (step S202). In the transmission of the reference port detection packet, it is assumed that the second communication control device 4 has newly assigned the port P7 (port number “23500”). This reference port detection packet is received by the reference port detection unit 62 of the server 6. And the reference port The port number “23500” is detected as the position of the port P7 (step S203).
  • the reference port transmission unit 63 receives the port number "23500" from the reference port detection unit 62, and composes reference port information including the port number "23500" of the reference port P7. Is transmitted to the first information processing apparatus 1 (step S204). This transmission is performed via the port P2 in the first communication control device 3.
  • the reference port receiving unit 12 of the first information processing device 1 receives the reference port information via the communication unit 11, and transmits a bubble packet of the port number "23500" of the reference port P7 included in the reference port information. Pass to Part 13.
  • the server 6 transmits the address information indicating the IP address "131.206.10.240" of the second communication control device 4 to the first information processing device 1 (step S205).
  • the address information is received by the communication unit 11 and passed to the bubble packet transmission unit 13. In this manner, the bubble packet transmitting unit 13 can know the IP address “131.206.10.24” of the second communication control device 4.
  • the port number differential detection packet transmitting unit 15 transmits a plurality of port number differential detection packets as shown in FIG. 7 (step S206). .
  • FIG. 10 does not explicitly show the transmission of the port number detection packet.
  • the port width detection packet is received by the port width detection unit 64 of the server 6, and the port width is detected. In this case, it is assumed that the port width is detected as “1” (step S207).
  • the detected port width is passed to the bubble packet transmission port detection unit 65.
  • the port-width detection packet transmitting unit 26 transmits a plurality of port-width detection packets in response to an instruction from the port width detection unit 64 of the server 6 (Step S208).
  • the transmission of the port number detection packet is not explicitly shown.
  • the port number detection packet is received by the port number detection unit 64 of the server 6, and the port number is detected. In this case, it is assumed that the port width is detected as "1" (step S209).
  • the port width transmitting unit 68 transmits the detected port width “1” to the first information processing device 1 (Step S210). Then, the port width “1” is received by the port width receiving unit 19 and passed to the noble packet transmitting unit 13.
  • bubble packet transmitting section 13 Before transmitting a bubble packet, bubble packet transmitting section 13 transmits a detection packet. An instruction to transmit a port detection packet is sent to the unit 14. Then, the detection packet transmitting unit 14 uses a newly allocated port (that is, a port newly allocated by the first information processing device 1) which has not been used for communication with the server 6 until then. A port detection packet is transmitted to port P15 of server 6 using a certain port P9 (step S301). It is assumed that the port P15 is a port specified by the server 6. This port detection packet is transmitted in the first communication control device 3 using the newly assigned port P12 (port number “10040”). The bubble packet transmission port detection unit 65 of the server 6 receives this port detection packet and detects the port number “10040” of the port P12 of the first communication control device 3. The bubble packet transmission port detection unit 65 holds the port number “10040” of the port P12.
  • bubble packet transmitting section 13 After transmitting the bubble packet, bubble packet transmitting section 13 passes an instruction to transmit a port detection packet to detection packet transmitting section 14. Then, the detection packet transmitting unit 14 uses the newly assigned port P11, which has not been used for communication with the server 6, to detect the port 16 of the server 6, A packet for transmission is transmitted (step S303). This port detection packet is newly transmitted to the first communication control device 3. It is transmitted using the port P14 (port number “10042”) that has been assigned. Thus, the bubble packet and the port detection packet are transmitted using different ports in the first communication control device 3.
  • the bubble packet transmission port detection unit 65 of the server 6 receives the port detection packet, and detects the port number “10042” of the port P14 of the first communication control device 3. Then, the bubble packet transmission port detecting unit 65 determines that the difference between the held port number “100 40” of the port P12 and the detected port number “10042” of the port P14 is “2”, and in Step S207, Since the detected port width is twice as large as “1”, the ports P12 and P14 of the first communication control device 3 used for transmitting the two port detection packets and the bubble packet transmission port P13 are used. It is determined that they are continuous (step S304).
  • step S103 it is determined that the position of the bubble packet transmission port can be detected (step S103), and the bubble packet transmission port detection unit 65 determines the position of the bubble packet transmission port as the port number in the middle of port P12 and port P14. "10041" is detected (step S401).
  • Bubble packet transmission port transmitter 67 configures bubble packet transmission port information including port number "10041" of bubble packet transmission port P13 detected by bubble packet transmission port detector 65, and transmits the bubble packet.
  • the port information is transmitted to the second information processing device 2 via the port P5 of the second communication control device 4 (Step S402).
  • the bubble packet transmission port information is received by the bubble packet transmission port receiving unit 23 of the second information processing device 2.
  • the port number “10041” of the bubble packet transmission port P13 included in the bubble packet transmission port information is passed to the reply bucket transmitting unit 24.
  • the server 6 transmits address information indicating the IP address “202.132.16.6” of the first communication control device 3 to the second information processing device 2 (step S403).
  • the address information is received by the communication unit 21 and passed to the reply packet transmitting unit 24. In this way, the reply packet transmitting unit 24 can know the IP address “202.132.10.6” of the first communication control device 3.
  • the reply packet transmitting unit 24 transmits 50 reply packets to the bubble packet transmitting port P13 of the port number "10041" in the first communication control device 3 of the IP address "202.
  • a transmission packet is transmitted (step S404).
  • the number of 50 corresponds to the value of ⁇ received from the server 6 by the reply packet transmitting unit 24.
  • the reply packet transmitting unit 24 newly allocates the 50 reply packets in the second information processing apparatus 2 (that is, used for communication with the server 6 up to that time! / ⁇ ). Transmit using port # 20-P21. Therefore, the reply packet is also transmitted from the second communication control device 4 using the newly assigned 50 ports P18 to P19 (see FIG. 12).
  • the latest port assigned when the reference port detection packet is transmitted is port # 7, and a bubble is sent to port P17 whose port number is 50 away from port # 7. Since the packet has been transmitted, port P17 has already been used by a device other than the second information processing device 2 when transmitting the return packet. Is transmitted to the first communication control device 3 using the bubble packet transmission target port P17. Then, the first communication control device 3 uses the PS NAT, and the transmission history of transmitting the bubble packet to the bubble packet transmission target port P17 remains in the first communication control device 3. Therefore, it is possible to accept only a reply packet transmitted using the target packet transmission target port P17. The reply packet is received by the reply packet receiving unit 17 via the port P10 of the first information processing device 1.
  • the reply packet transmitting unit 24 of the second information processing device 2 after transmitting the 50 reply packets, notifies the end of the transmission of the reply packet via the port P5 of the second communication control device 4 To server 6. Then, the server 6 receives the notification that the transmission of the reply packet has been completed, and transmits the notification to the first information processing device 1 via the port P2 of the first communication control device 3.
  • the reply packet receiving unit 17 of the first information processing device 1 receives that fact, it has already received the reply packet, so the second packet to which the reply packet included in the header of the reply packet 17 has been transmitted is transmitted.
  • step S105 Acquires the port number "23550" of port P17 of communication control device 4, sends the port number and the instruction to send the re-reply packet, and sends the re-reply packet. Hand over to part 18 (step S105). If the reply packet receiving unit 17 has not received the reply packet, the reply packet receiving unit 17 transmits to the server 6 that the reply packet has not been received. As a result, the server 6 again transmits a reference port detection packet transmission request to the second information processing device 2, and establishes a connection between the first information processing device 1 and the second information processing device 2. Is performed again (steps S101-S104).
  • the re-reply packet transmitting unit 18 transmits the re-reply packet to the port P17 of the port number “23 550” received from the reply packet receiving unit 17 (Step S106).
  • the re-reply packet is transmitted to the second information processing device 2 using the port P13 of the first communication control device 3 and the port P17 of the second communication control device 4, and is transmitted to the second information processing device 2.
  • Re-reply packet reception unit 25 of device 2 accepts the packet.
  • the re-reply packet transmitting unit 18 transmits to the server 6 via the port P 2 of the first communication control device 3 that transmission of the re-reply packet has been completed. Then, the server 6 receives the notification that the transmission of the re-reply packet has been completed, and transmits the notification to the second information processing device 2 via the port P5 of the second communication control device 4.
  • the re-reply packet receiving unit 25 of the second information processing device 2 receives that fact. In this case, since the re-reply packet receiving unit 25 has already received the re-reply packet, the process of establishing communication between the first information processing apparatus 1 and the second information processing apparatus 2 ends. (Step S107).
  • the re-reply packet receiving unit 25 If the re-reply packet receiving unit 25 does not receive the re-reply packet, the re-reply packet receiving unit 25 transmits to the server 6 that the re-reply packet is not received. As a result, the server 6 transmits a reference port detection packet transmission request to the second information processing device 2 again, and establishes a connection between the first information processing device 1 and the second information processing device 2. Is performed again (steps S101-S106).
  • the port detection packet and the bubble packet are transmitted using continuous ports in the first communication control device 3, for example.
  • the port detection packet and the bubble packet are consecutive in the first communication control device 3. If the packet is not transmitted using the port, the transmission of the bubble packet and the port detection packet are performed according to the port of the first communication control device 3 used in the transmission of the port detection packet and the bubble packet. This is repeated until the transmission port becomes a continuous port (steps S102 and S103).
  • the reason why the port of the first communication control device 3 used for transmitting the port detection packet and the bubble packet transmission port do not become continuous ports in the first communication control device 3 is as follows.
  • a device (not shown) other than the first information processing device 1 is connected to the local side of the communication control device 3 from transmission of a port detection packet to transmission of a bubble packet, or from transmission of a bubble packet to transmission of a port.
  • the port of the first communication control device 3 may be assigned to the device.
  • transmission of the device ID from the first information processing device 1, transmission of the device ID from the second information processing device 2, and transmission of the address information from the server 6 Transmission and reception of information between these devices are performed by a control unit (not shown) in the first information processing device 1 or the like. This is the same in the following specific examples.
  • the destination ports P15 and P16 of the port detection packet may be the same port, or may be the same as port P3.
  • the reply packet receiving unit 17 acquires the port number of the second communication control device 4 used for transmitting the reply packet from each reply packet, and passes the port number to the re-reply packet transmitting unit 18.
  • the re-reply packet transmitting unit 18 receives the port number and transmits a re-reply packet to each port number received by the second communication control device 4 (see FIG. 14).
  • the Sd NAT used in the first communication control device 3 uses the bubble packet transmission port P13 in the first communication control device 3 because the transmission port assignment rule is Port Sensitive. Can be transmitted only when the packet is transmitted to the bubble packet transmission target port P17 of the second communication control device 4. Therefore, as shown in FIG.
  • re-reply ports transmitted to ports other than the bubble packet transmission target port P17 are transmitted using the ports P22-P23 newly allocated by the first communication control device 3. Since the second communication control device 4 uses PS NAT, it cannot accept a re-reply packet from a port other than the port of the first communication control device 3 that transmitted the reply packet. Therefore, the re-reply packet receiving unit 25 of the second information processing device 2 can receive only the re-reply packet transmitted to the bubble packet transmission target port P17. In this way, communication between the first information processing device 1 and the second information processing device 2 is established.
  • the significance of transmitting a re-reply packet from the first information processing device 1 to the second communication control device 4 will be described. Even if the first information processing device 1 receives the reply packet, the communication between the first information processing device 1 and the second information processing device 2 can be reliably performed via the port through which the reply packet has passed. Not established. This is because, as in the specific example 2 above, communication can be established only on the route of the reply packet transmitted via the bubble packet transmission target port P17 among the received reply packets. The following situation is also conceivable.
  • the reply packet is a bubble packet
  • the first information processing apparatus 1 can accept all reply packets. However, even if the first information processing device 1 transmits a re-reply packet for the reply packet, the re-reply packet is not accepted by the second information processing device 2 and communication is not established. As described above, by transmitting the re-reply packet, the position of the port used in Peer-to-Peer communication that can be established between the first information processing device 1 and the second information processing device 2 is confirmed. It is also possible to confirm whether communication between the first information processing device 1 and the second information processing device 2 can be established.
  • Example 3 a case will be described in which the first communication control device 3 uses Sd NAT and the second communication control device 4 uses AS NAT.
  • this specific example 3 a special case will be described in which communication without using a bubble packet transmission target port is established between the first information processing device 1 and the second information processing device 2.
  • FIG. 15 is a diagram illustrating transmission of a reply packet from second information processing device 2. Since the bubble packet transmission target port P17 has already been used by another device in the transmission of this reply packet, the reply packet is transmitted to the ports P24 to P25 in the second communication control device 4 not including the bubble packet transmission target port P17. And sent via Since the first communication control device 3 uses the NAT of the No filter, the first information processing device 1 accepts all the reply packets.
  • FIG. 16 is a diagram illustrating transmission of a re-reply packet.
  • the re-reply packet transmitting unit 18 has transmitted a re-reply packet to ports P24 to P25 of the second communication control device 4.
  • a re-reply bucket is sent using the newly allocated ports P26 to P27 to the port P24 of the second communication control device 4.
  • Sent to P25 since the second communication control device 4 uses AS NAT, that is, NAT of an Address Sensitive filter, these re-reply packets are accepted by the second communication control device 4, and the second information processing device 2 Passed to port P20—P21.
  • the second information processing device 2 returns One of the received packets (for example, the one that arrived first) and the route on which the retransmitted packet was transmitted (for example, port P26 of the first communication control device 3, Communication with the first information processing device 1 can be performed via the port P24) of the communication control device 4.
  • the situation of this specific example 3 is that the first communication control device 3 uses a No filter or an AS filter, and the second communication control device 4 uses a No filter or an AS filter. Appropriate. Therefore, in these cases, if the position of the bubble packet transmission port P13 can be accurately grasped, the connection between the first information processing device 1 and the second information processing device 2 can be reliably realized. It becomes.
  • the NAT used in the first communication control device 3 When the NAT used in the first communication control device 3 is a No filter, all return packets can be accepted by the first information processing device 1. Also, when the NAT used in the first communication control device 3 is an AS filter, since all bubble packets are transmitted to the second communication control device 4, all return packets are sent. The information can be received by the first information processing device 1. If the NAT port assignment rule used in the first communication control device 3 is Cone or Address Sensitive, the first information processing device 1 sends a bubble packet to the received reply packet. It is possible to transmit a re-reply packet using the transmission port P13.
  • the second communication control device Regardless of the NAT type, if the position of the bubble packet transmission port P13 can be accurately grasped, the connection between the first information processing device 1 and the second information processing device 2 should be realized reliably. Can be done.
  • the first communication control device 3 and the second communication control device 4 may be Open NAT (NAT is not used! /).
  • the communication system according to the present embodiment reduces the processing load on the server by performing detection of the bubble packet transmission port, detection of the port width, and the like in the information processing device that is not the server.
  • the configuration of the communication system according to the present embodiment includes first information processing device 10, second information processing device 2, and server 6 instead of first information processing device 10, second information Except for having the processing device 20 and the server 60, the configuration is the same as that of FIG.
  • FIG. 18 is a block diagram showing a configuration of the first information processing device 10 according to the present embodiment.
  • the first information processing apparatus 10 includes a communication unit 11, a reference port reception unit 12, a bubble packet transmission unit 13, a detection packet transmission unit 14, and a port width detection packet transmission unit 15.
  • the configuration and operation other than the detection port information reception unit 71, bubble packet transmission port detection unit 72, bubble packet transmission port transmission unit 73, port width detection port information reception unit 74, and port width detection unit 75 are based on the port width.
  • This is the same as Embodiment 1 except that the receiving unit 19 receives the port width information transmitted from the second information processing device 20 via the server 60, and a description thereof will be omitted.
  • the detection port information receiving unit 71 receives the detection port information transmitted from the server 60 via the communication unit 11.
  • the detection port information is information indicating the position of the port of the first communication control device 3 through which the port detection packet transmitted by the detection packet transmitting unit 14 has passed.
  • the bubble packet transmission port detection unit 72 detects the position of the bubble packet transmission port based on the detection port information received by the detection port information reception unit 71.
  • the bubble packet transmission port detection unit 72 detects the position of the bubble packet transmission port using the port width in the first communication control device 3 detected by the port width detection unit 75. This detection of the position of the public packet transmission port is performed in the same manner as the bubble packet transmission port detection unit 65 in the first embodiment, and the description thereof will be omitted.
  • the bubble packet transmission port detection unit 72 passes an instruction to retransmit the port detection packet to the detection packet transmission unit 14 when the position of the bubble packet transmission port cannot be detected, and An instruction to retransmit the packet is passed to the bubble packet transmitting unit 13.
  • the detection packet transmitting unit 14 transmits the port detection packet again according to the instruction.
  • bubble packet transmitting section 13 transmits bubble packets again according to the instruction. This retransmission is performed until the bubble packet transmission port detection unit 72 can detect the position of the bubble packet transmission port, or a predetermined upper limit (for example, 10 times), or a predetermined time (for example, 30 times). (E.g., seconds).
  • the bubble packet transmission port transmission unit 73 transmits bubble packet transmission port information indicating the position of the bubble packet transmission port detected by the bubble packet transmission port detection unit 72 to the second information processing device 20 via the server 60. Send to
  • Port width detection port information receiving 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 width detection port information is transmitted from the server 60.
  • the port width detecting section 75 detects the port width in the first communication control device 3 based on the port number detecting port information received by the port number detecting port information receiving section 74. This port width detection is performed in the same manner as the port width detection unit 64 in the first embodiment, and the description thereof will be omitted.
  • 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 reference port detection packet transmission unit 22, a bubble packet transmission port reception unit 23, a reply packet transmission unit 24, and a re-reply packet reception.
  • a port 25 a port-width detecting packet transmitting unit 26, a port-width detecting port information accepting unit 81, a port width detecting unit 82, and a port width transmitting unit 83.
  • the configuration and operation other than the port width detection port information reception unit 81, the port width detection unit 82, and the port width transmission unit 83 are the same as those of the first embodiment, and a description thereof will be omitted.
  • Port width detection port information receiving unit 81 receives port width detection port information.
  • the port number detection port information is information indicating the position of the port of the second communication control device 4 through which the port number detection packet transmitted by the port number detection packet transmitting unit 26 has passed. This port width detection port information is transmitted from the server 60.
  • the port width detection unit 82 detects the port width in the second communication control device 4 based on the port width detection port information received by the port width detection port information reception unit 81. This port width detection is performed in the same manner as the port width detection unit 64 in the first embodiment, and the description thereof will be omitted.
  • the port-width transmitting unit 83 transmits the port-width information, which is the information indicating the port width in the second communication control device 4 detected by the port-width detecting unit 82, via the server 60 to the first information processing. Send it to device 10.
  • FIG. 20 is a block diagram showing a configuration of server 60 according to the present embodiment.
  • the server 60 includes a communication unit 61, a reference port detection unit 62, a reference port transmission unit 63, a detection port detection unit 91, a detection port information transmission unit 92, and a port width detection It includes a port detection unit 93 and a port number detection port information transmission unit 94.
  • the configuration and operation 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 in the first embodiment. , Its explanation is omitted.
  • the detection port detection unit 91 receives the port detection packet transmitted from the first information processing device 10, and based on the port detection packet, performs the first communication control through which the port detection packet has passed. Detect the position of the port of device 3. The port position is detected by determining the position of the port of the first communication control device 3 through which the port detection packet included in the port detection packet (for example, included in the header of the port detection packet) has passed. It is done by getting.
  • 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 first information processing device 10.
  • Port width detection port detection section 93 receives a port width detection packet transmitted from first information processing device 10 via first communication control device 3, and receives the port width detection packet. The port position of the first communication control device 3 through which the port number detection packet has passed is detected based on the port number. Further, the port number detection port detection unit 93 receives a port number detection packet transmitted from the second information processing device 20 via the second communication control device 4, and receives the port number detection packet. The position of the port of the second communication control device 4 through which the port number detection packet has passed is detected based on the port number.
  • the port number detection port information transmitting unit 94 is a port width indicating the position of the port of the first communication control device 3 through which the port number detection packet has been detected, detected by the port number detection port detecting unit 93.
  • the detection port information is transmitted to the first information processing device 10. Further, the port number detection port information transmission unit 94 detects the port number of the second communication control device 4 through which the port number detection packet has passed, which is detected by the port number detection port detection unit 93. Port information to the second information processing device 20.
  • a first port width detection port detection unit that detects the position of a port in the first communication control device 3 through which the port number detection packet has passed, and a second port number detection unit that has passed the port number detection packet A second port width detection port detection unit that detects the position of the port in the communication control device 4.
  • a first port width detection port that transmits port width detection port information indicating the port position in the first communication control device 3 through which the port width detection packet has passed to the first information processing device 10.
  • An information transmitting unit and a port width detection packet indicating the position of the port in the second communication control device 4 through which the port width detection packet has passed A second port width detection port information transmitting unit that transmits port information to the second information processing device 20 may be provided.
  • a port width detection port detection unit 93 and a port width detection port information transmission unit 94 realize them in one. That is, of the port number detection port detector 93, the portion of the first communication control device 3 through which the port number detection packet has passed to detect the port position is the first port number detection port detector, The portion that detects the position of the port in the second communication control device 4 through which the width detection packet has passed is the second port width detection port detection unit. Similarly, in the port number detection port information transmitting unit 94, the port number detection port information indicating the position of the port in the first communication control device 3 through which the port number detection packet has passed is transmitted to the first information processing device 10.
  • the portion to be transmitted to the first port width detection port information transmission unit is used to transmit port width detection port information indicating the position of the port in the second communication control device 4 through which the port width detection packet has passed.
  • the portion to be transmitted to the information processing device 20 is the second port number detection port information transmission unit.
  • the operation until the communication system according to the present embodiment starts communication is the same as that of the first information processing apparatus 10 except that the first information processing device 10 detects a bubble packet transmission port and instructs retransmission of a bubble packet or the like.
  • the operation is the same as that shown in FIG. 5 in Embodiment 1, and the description thereof is omitted.
  • FIG. 21 is a diagram for explaining the exchange and processing of information between the transmitting side, the server, and the receiving side. Note that the processing in steps S201 to S206 is the same as the description related to FIG. 6 in the first embodiment, and a description thereof will be omitted.
  • Step S501 The port detection unit 93 for port number detection of the server 60 receives the port number detection packet transmitted from the first information processing apparatus 10. 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.
  • Step S502 The port number detection port information transmitting unit 94 detects the port 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 stored in the first information processing apparatus. Send to 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 S 504 Port number detection port detector 93 of server 60 receives a port number detection packet transmitted from second information processing device 20. 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 S505 The port number detection port information transmitting unit 94 sends the port number of the second communication control device 4 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 second information processing device 20.
  • the port width detection port information is received by the port width detection port information receiving unit 81 in the second information processing device 20.
  • the port width detection unit 82 determines the port width of the second communication control device 4 based on the port width detection port information received by the port width detection port information reception unit 81. 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.
  • Port width transmitting section 83 transmits port width information, which is information indicating the port width of second communication control device 4, and transmits the port width information to first information processing device 10. It is transmitted to the server 60 together with the instruction to the effect.
  • Step S508 The communication unit 61 of the server 60 receives the port width information, and transmits the port width information to the first information processing device 10.
  • the port width information is received by the port width receiving unit 19 in the first information processing device 10.
  • FIG. 22 is a diagram for explaining the exchange and processing of information between the transmitting side, the server, and the receiving side. Note that the processing in steps S301 to S303 is performed by the port detection packet. Except that the packet is accepted by the detection port detection unit 91 in the server 60, the description is the same as that of FIG.
  • Step S601 The detection port detection unit 91 of the server 60 receives the port detection packet transmitted from the first information processing device 10. 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 port detection packet.
  • the detection port information transmission unit 92 is a detection port that indicates the position of the port of the first communication control device 3 through which the port 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 S603 The detection port detection unit 91 of the server 60 receives the port detection packet transmitted from the first information processing device 10. 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 port detection packet.
  • Step S604 The detection port information transmission unit 92 detects the port position of the port of the first communication control device 3 through which the port detection packet has been 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 S605 The bubble packet transmission port detection unit 72 of the first information processing device 10 determines whether the first communication control device 3 used in the transmission of the two port detection packets in steps S301 and S303 has It is determined whether the position of the port and the bubble packet transmission port are continuous. Note that the specific determination method is the same as that of the first embodiment, and a description thereof will be omitted.
  • the flowchart of Fig. 22 describes a case where the first information processing apparatus 10 receives the detection port information transmitted in step S602 and transmits a bubble packet.
  • the order of receiving port information and sending bubble packets is It is not limited to. For example, after transmitting the port detection packet for the second time (step S303), transmitting the port information for the first detection (step S602) and transmitting the port information for the second detection (step S604) May be. Also, detection port information indicating the port positions detected in steps S601 and S603 may be transmitted together.
  • FIG. 23 is a diagram for explaining the exchange and processing of information between the transmitting side, the server, and the receiving side. Note that the processing in steps S403 and S404 is the same as the description related to FIG. 9 in the first embodiment, and a description thereof will be omitted.
  • Step S701 The bubble packet transmission port detection section 72 of the first information processing device 10 detects the position of the bubble packet transmission port. It should be noted that a specific determination method is the same as in Embodiment 1, and a description thereof will be omitted.
  • Step S702 The bubble packet transmission port transmitting section 73 of the first information processing device 10 transmits the bubble packet transmission port information to the second information processing device 20 to transmit the bubble packet transmission port information. Send to server 60 with instructions.
  • Step S703 The communication unit 61 of the server 60 receives the bubble packet transmission port information and transmits the bubble packet transmission port information to the second information processing device 20.
  • the bubble packet transmission port information is received by the bubble packet transmission port receiving unit 23 in the second information processing device 20.
  • the detection of the port width in first communication control device 3 and the second communication control device 4 are each performed in the first information processing.
  • the device 10 and the second information processing device 20 perform the detection of the position of the bubble packet transmission port in the first information processing device 10 and perform the processing accompanying them (for example, the bubble packet transmission port).
  • This is the same as the specific example in Embodiment 1 except that the information is transmitted from the first information processing device 10 to the second information processing device 20, and the description thereof is omitted.
  • port width detection in first communication control device 3 is performed by first information processing device 10.
  • the detection of the packet transmission port and the transmission of the bubble packet transmission port may be performed, and the detection of the port width in the first communication control device 3 may be performed in the server as in the first embodiment.
  • the detection of the port width in the second communication control device 4 or the detection of the position of the bubble packet transmission port may be performed in the server as in the first embodiment.
  • the port width detection in second communication control device 4 is performed by second information processing device 20.
  • the port width may be detected in the first information processing device 10. By doing so, it is not necessary to transmit the port width information from the second information processing device 20 to the first information processing device 10 via the server 60.
  • the port width detection port information which is information indicating the port position in the second communication control device 4 through which the port width detection packet transmitted from the second information processing device 20 has passed is Is transmitted from the server 60 to the first information processing device 10.
  • the detection of the bubble packet transmission port is performed by first information processing device 10
  • the detection of the bubble packet transmission port is performed by second information processing device 20. May be. By doing so, it is not necessary to transmit the bubble packet transmission port information from the first information processing device 10 to the second information processing device 20 via the server 60.
  • the detection port information which is information indicating the position of the port in the first communication control device 3 through which the port detection packet transmitted from the first information processing device 10 has passed, is transmitted from the server 60. This is transmitted to the second information processing device 20. In this case, the detection of the port width in the first communication control device 3 is performed in the second information. You can go to the information processing unit 20!
  • the reference port information includes the reference port detection bucket that transmitted the reference port detection bucket.
  • the information may be transmitted to the second information processing device 20.
  • the reference port information is transmitted again from the second information processing device 20 to the first information processing device 10 via the server 60.
  • Information for specifying the device for example, a device ID or an IP address
  • the server 60 may transmit information indicating the position of the detected port based on the information.
  • the port number detection packet transmitted by the port number detection packet transmitting unit 15 includes the device ID of the first information processing device 10 to which the port number detection port information is transmitted, and the port number detection packet is transmitted.
  • the port information transmitting unit 94 may transmit port number detection port information to the first information processing apparatus 10 corresponding to the device ID.
  • 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, and a server 6.
  • 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, and the computer are the same as those in the first embodiment, and the description thereof will not be repeated.
  • 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 communicates via the communication control device of Full Cone NAT. To It is determined that you are doing. Therefore, the operation according to the present embodiment is the same as the case where the second communication control device 4 is the Full Cone NAT in the first embodiment, and the first information processing device 1 and the second information processing Communication with the device 2 can be established (in FIG. 17, the case where one NAT is Open NAT corresponds to the present embodiment).
  • 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 Embodiment 1 has the same configuration as that of Embodiment 1, 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 includes 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.
  • the servers 6 and 60 have a function of notifying the information processing device of the IP address of the communication control device of the other party. It may be realized in another server. That is, a server that notifies one information processing device of the address of the other communication control device and a server that performs processing for detecting a bubble packet transmission port and the like may be different servers. That is, in the communication system shown in FIG. 25, the first information processing device 1 and the second information processing device 2 use the addresses of the first communication control device 3 and the second communication control device 4 as the address.
  • the server 6a may be used in the process of establishing communication between the information processing devices obtained from the server b.
  • one information processing device is connected to the other communication control device (when no communication control device is provided).
  • the process of notifying the address of the information processing device or the process of calling the information processing device of the calling side to the information processing device of the other party (the called side) using the SIP (Session Initiation Protocol). Is also good.
  • the reference port is described as the port that is most recently allocated when transmitting the reference port detection packet.
  • this reference port may not be the port that is allocated the latest.
  • the only devices connected to the second communication control device 4 are the second information processing devices 2 and 20, and the number of ports used by the second communication control device 4 should be roughly grasped. If this is possible, the port of the second communication control device 4 used for communication with the servers 6, 60 may be used as the reference port.
  • the reference port detection packet is a packet that communicates with the servers 6 and 60.
  • the port detection packet is mainly transmitted twice before and after transmitting the bubble packet.
  • the port detection packet may be transmitted before and after transmitting the bubble packet. Or just send it once.
  • the bubble packet transmission port is detected on the assumption that the bubble packet transmission port and the port of the first communication control device 3 used for transmitting the port detection packet are continuous. If the assumption is correct, transmission of a reference port detection packet is performed again (the process from step S101 is repeated).
  • the bubble packet transmission port detecting sections 65 and 72 determine whether the position of the bubble packet transmission port can be detected and then detect the position of the bubble packet transmission port.
  • the position of the bubble packet transmission port may be detected without making the determination.
  • the predetermined case is, for example, when the first communication control device 3 is connected to any other than the first information processing devices 1 and 10 and is used for transmitting a bubble packet transmission port and a port detection packet. There is a case where there is a high possibility that the port of the first communication control device 3 that is set is continuous.
  • the return packet is transmitted to the first communication control device 3.
  • the information processing devices 1 and 10 will not be accepted, and the transmission power of the reference port detection packet will be repeated again.
  • a retransmission instruction may be transmitted to the first information processing apparatus 1 as described in the above embodiments, or a retransmission instruction may be issued to the bubble packet transmitting apparatus 13 or the like.
  • the process from transmission of the reference port detection packet may be performed again to end the process of establishing communication.
  • bubble packet transmission port detection sections 65 and 72 determine whether the bubble packet transmission port and the port of first communication control device 3 used in transmitting the port detection packet are continuous. May be performed by determining that the continuation is continuous when the probability of the continuation is high. For example, when the port width of the first communication control device 3 can change between “1” and “2” (for example, when changing over time), the first communication control device 3 uses the first If the interval between the ports of the communication control device 3 is “2”, “3”, or “4”, there is a possibility that the ports are continuous. Also in this case, for example, if the interval between the ports of the first communication control device 3 used for transmitting the port detection packet is “5”, it is determined that the ports are not continuous!
  • the port width is detected by the port width detection units 64, 75, and 82
  • a CD-ROM or a removable memory may be transferred to the server 6, 60 or the first information processing device 1, 10 by communication, or may be transferred to the first communication control device 3, etc.
  • the stored port width may be obtained.
  • the first information processing apparatuses 1, 10 and the like can obtain the IP address of the second communication control apparatus 4 and the like. That is, the IP address may be input to the first information processing device 1, 10 or the like by a user's manual input or the like.
  • first information processing apparatuses 1 and 10 use bubble packets and port detection packets, and use new ports of first information processing apparatuses 1 and 10, respectively.
  • the first information processing device 1 detects that the first communication control device 3 uses the NAT which is a port allocation rule of Port Sensitive,!
  • the bubble packet, and the port The detection packet may be transmitted from the same port of the first information processing device 1 or 10.
  • the port to which the port detection packet is sent (the port of server 6, 60) must be different.
  • the case where the reply packet is transmitted using the newly assigned port of the second communication control device 4 at the time of transmitting the reply packet has been described by way of example.
  • the ports of the second communication control device 4 used for transmitting the return packet include the ports used so far, for example, the port used for transmitting the reference port detection packet. You can do it.
  • the number of assignable ports ( ⁇ ) from the reference port to the bubble packet transmission target port may be increased each time a bubble packet or the like is retransmitted. That is, every time a bubble packet or the like is retransmitted, the bubble packet transmitting unit 13 may transmit the bubble packet to a bubble packet transmission target port farther away from the reference port. This makes it easier to avoid using the bubble packet transmission target port until the return packet is transmitted.
  • the number of ports ( ⁇ ) that can be assigned by the reply packet transmitting unit 24 from the bubble packet transmitting unit 13 to the bubble packet transmitting target port via the server 6 from the bubble packet transmitting unit 13 may be transmitted from the servers 6 and 60 to the bubble packet transmitting unit 13 and the reply packet transmitting unit 24 (in this case, the port width information is transmitted to the The information may not be transmitted to the first information processing device 1), and the value of ⁇ may be set in the first information processing devices 1 and 10 and the second information processing devices 2 and 20 in advance. May be.
  • reply packet transmitting section 24 transmits the reply buckets of the number (a) of allocatable ports from the reference port to the bubble packet transmission target port.
  • the reply packet transmitting unit 24 may transmit more than one reply packet, or may transmit reply packets of ⁇ or less.
  • the reply packet transmitting unit 24 instead of receiving the value of ⁇ from the bubble packet transmitting unit 13 via the servers 6 and 60, the reply packet transmitting unit 24 receives the difference between the port numbers of the reference port and the bubble packet transmitting target port, and receives the difference. May be transmitted as many as the number of return packets. In this case, send a reply packet The transmitting unit 24 transmits a return packet of a multiple of ⁇ .
  • the port width in the second communication control device 4 detected by the port width detection units 68 and 82 is a multiple of the actual port width.
  • the value of the difference between the reference port and the port number to which the bubble packet is sent is the number of return packets. This is because the transmission of the reply packet using the bubble packet transmission target port can be performed more reliably. Also, for example, if the second information processing devices 2 and 20 know the number of ports assigned after the assignment of the reference port in the second communication control device 4, a The number of reply packets may be transmitted.
  • the return packet is transmitted using the bubble packet transmission target port (however, the detection of the port width of the second communication control device 4 needs to be accurate). . Therefore, if up to one port before the target port for transmitting bubble packets is assigned, only one reply packet may be transmitted.
  • the first information processing apparatuses 1 and 10 and the second information If communication with the processing devices 2 and 20 can be established the re-reply packet does not have to be sent.
  • the first information processing apparatuses 1 and 10 receive a reply packet transmitted using the target port for transmitting a bubble packet
  • the first information processing apparatuses 1 and 10 transmit the bubble packet and the peer-to-peer communication via the target port for transmitting the bubble packet. It is not necessary to send a re-reply packet because it is possible!
  • whether or not a reply packet has been accepted is determined via the servers 6 and 60 to the effect that the reply packet has been transmitted from the second information processing device 2 or 20.
  • a reply packet is not accepted after a predetermined period of time (eg, 15 seconds) after sending a bubble packet, the reply packet cannot be accepted. It may be determined that the user is powerful (that is, the user cannot establish communication). This also applies to the re-reply packet.
  • the re-reply packet is transmitted and the re-reply packet is accepted even if a predetermined time elapses. In other cases, the re-reply packet is accepted.
  • a communication system according to a fourth embodiment of the present invention will be described with reference to the drawings.
  • the communication system according to the present embodiment a case will be described in which communication using SIP is performed using the method for detecting the position of the public packet transmission port described in each of the above embodiments.
  • FIG. 26 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 communication control device 3, a second information processing device 40, a port detection server 51, and a SIP server 52.
  • the communication control device 3 has a NAT function and performs address conversion, port assignment, packet filtering, and the like, and is different from the first communication control device 3 in each of the above embodiments. The description is omitted because it is the same.
  • FIG. 27 is a block diagram showing a configuration of the first information processing device 30 according to the present embodiment.
  • the first information processing apparatus 30 includes a communication unit 11, a bubble packet transmission unit 13, a detection packet transmission unit 14, a port width detection packet transmission unit 15, and a detection port information reception unit. 71, a bubble packet transmission port detecting section 72, a port information detecting port information receiving section 74, a port width detecting section 75, and a SIP processing section 31.
  • the configuration and operation other than the SIP processing unit 31 are the same as those in the second embodiment, and the description thereof will not be repeated.
  • the bubble packet transmitting unit 13 does not transmit a bubble packet.
  • the bubble packet is transmitted to the target port for transmitting the bubble packet based on the information indicating the position of the port.
  • the SIP processing unit 31 performs SIP-related processing. Specifically, processing such as transmission of a connection request and acquisition of the address and port number of the communication partner is performed with the SIP server 52. Since these processes are the same as those conventionally performed, description thereof will be omitted.
  • the second information processing device 40 is a terminal device (for example, a VoIP telephone terminal device) that performs Peer to Peer voice communication with another client terminal via the SIP server 52. The second information processing device 40 informs another client terminal via the SIP server 52 of the IP address of the second information processing device 40, the position of the transmission port, and the position of the reception port.
  • the receiving port of another client terminal is received via the SIP server 52, and the destination of the packet can be set to the receiving port in Peer to Peer voice communication.
  • the transmission port of a certain client terminal is a port at which that client terminal transmits information to another client terminal.
  • the reception port of a certain client terminal is a port at which that client terminal receives information from other client terminals.
  • the second information processing device 40 is a general SIP client terminal, and a detailed description thereof will be omitted.
  • FIG. 28 is a block diagram showing a configuration of the port detection server 51 according to the present embodiment.
  • the port detection server 51 performs processing for detecting the position of the port of the communication control device 3 through which the bubble packet transmitted from the first information processing device 30 has passed.
  • the port detection server 51 includes a communication unit 61, a detection port detection unit 91, a detection port information transmission unit 92, a port width detection port detection unit 93, and a port width detection port information transmission unit 94. . These components are the same as those in the second embodiment, and a description thereof will be omitted.
  • the SIP server 52 is a server that performs SIP-related processing.
  • SIP-related processing includes, for example, registrar processing for registering addresses in response to address notifications from clients, location and service processing for managing client addresses, and location 'service
  • the proxy server searches for the destination address and forwards it to the destination client.
  • Each function of the SIP server 52 may be realized by two or more servers. Further, the SIP server may be provided on each of the first information processing device 30 side and the second information processing device 40 side. In this case, for example, the first information processing device 30, the first SIP server, the second SIP server, and the second information processing device 40 are routed from the first information processing device 30 to the second information processing device 40. The relay of information up to the information processing device 40 is performed.
  • This SIP server 52 This process is the same as the conventionally performed process, and a detailed description thereof will be omitted.
  • FIG. 29 is a diagram for explaining a process of exchanging information between the calling side, the port detection server 51, the SIP server 52, and the called side.
  • the first information processing device 30 and the communication control device 3 are the calling side
  • the second information processing device 40 is the called side.
  • Step S 801 By transmitting and receiving a predetermined packet between the first information processing device 30, which is the device on the calling side, and the port detection server 51, the communication control device 3 on the calling side is transmitted.
  • Detect port width The specific processing for detecting the port width is the same as that in steps S206, S501, S502, and S503 in FIG. 21 of the second embodiment, and a description thereof will be omitted.
  • Step S 802 First information processing device 30 transmits a communication request to SIP server 52 to request communication with second information processing device 40.
  • the IP address of the communication destination client that is, the second information processing device 40
  • the position of the transmission port and the position of the reception port are transmitted to the first information processing device 30. It shall contain the instructions of
  • Step S803 The SIP server 52 relays the communication request transmitted from the first information processing device 30 to the second information processing device 40. Then, the communication request is received by the second information processing device 40.
  • the second information processing device 40 transmits communication destination information including information indicating the IP address, the position of the transmission port, and the position of the reception port of the second information processing device 40 to the SIP server 5.
  • Step S805 The SIP server 52 relays the communication destination information transmitted from the second information processing device 40 to the first information processing device 30. Then, the communication destination information is received by the SIP processing unit 31 of the first information processing device 30.
  • Step S806 The first information processing device 30 transmits a port detection packet or a bubble packet, and receives port information for detection from the port detection server 51 in response thereto.
  • the specific processing for transmitting and receiving the bubble packet and the like is described in FIG. 22 of the second embodiment. This is the same as the processing, and the description thereof will be omitted.
  • the bubble packet is transmitted to the transmission port of the second information processing device 40 using the communication destination information received by the SIP processing unit 31. That is, in the present embodiment, the bubble packet transmission target port is the transmission port of the second information processing device 40.
  • the port width of the communication control device 3 detected in step S801 is used.
  • Step S807 The bubble packet transmission port detection unit 72 of the first information processing device 30 determines whether the position of the bubble packet transmission port can be detected. In the determination of continuity in step S806 (step S605 in FIG. 21), the port of the communication control device 3 used for transmitting the two port detection buckets and the bubble packet transmission port are consecutive! If it is determined to be ⁇ / ⁇ , it is determined that the position of the bubble packet transmission port can be detected, and the process proceeds to step S808; otherwise, it is determined that the position of the bubble packet transmission port cannot be detected. To step S806.
  • Bubble packet transmission port detecting section 72 detects the position of the bubble packet transmission port.
  • the position of this bubble packet transmission port is the position of the reception port on the calling side.
  • Step S809 The SIP processing unit 31 sends a communication request including the global IP address of the communication control device 3 and the position of the bubble packet transmission port (ie, reception port) detected in step S808. To the SIP server 52. It is assumed that the global IP address of the communication control device 3 has been obtained in a process such as detecting the port width.
  • Step S810 The SIP server 52 relays the communication request transmitted from the first information processing device 30 to the second information processing device 40. Then, the communication request is received by the second information processing device 40.
  • Step S811 In response to the received communication request, second information processing device 40 transmits a response indicating that connection preparation has been completed.
  • Step S812 The SIP server 52 relays the response to the first information processing device 30 (Step S 813)
  • First information processing device 40 transmits a confirmation for the response received from second information processing device 40.
  • Step S814 The SIP server 52 relays the confirmation to the second information processing device 40.
  • the preparation for making a peer-to-peer connection between the calling side and the called side is completed, and the first information processing device 30 transmits information to the reception port of the second information processing device 40.
  • the reception port bubble packet transmission port
  • step S801 The order of the processing in each step in Fig. 29 is somewhat arbitrary. For example, if the port width detection processing in step S801 is performed before the transmission / reception processing of the bubble packet or the like in step S806, the communication request transmission processing (step S802) or the transmission of the communication destination information is performed. It may be executed after the processing (step S804)!
  • the device ID of the first information processing device 30 is “AAA @ abc... Com”
  • the device ID of the second information processing device 40 is “BBB @ abc... Com”.
  • this specific example describes the case where the device ID is “AAA @ abc... Com”.
  • the device ID is information that can identify the client terminal, such as an e-mail address or a telephone number. If it is, it may be in any form regardless of its format.
  • the first information processing device 30 detects the port width of the communication control device 3 by transmitting a port width detection packet to the port detection server 51 (step S80 Do
  • the details of the processing are the same as in the second embodiment, and a description thereof will be omitted.
  • first information processing device 30 transmits a communication request from port P1 shown in FIG. 30 to port P3 of SIP server 52 (step S802).
  • This communication request is a so-called “INV ITE request”.
  • the communication request includes the device ID ⁇ AAA @ abc ... com '' of the first information processing device 30 and the device 10 3 ⁇ 48 @ & 1) of the second information processing device 40 to which the communication is requested. .com ".
  • This communication request includes an IP address And an instruction to transmit information indicating the position of the transmission port and the position of the reception port.
  • the second information processing device 40 may determine that an instruction to transmit an IP address or the like has been received by receiving the communication request. That is, the communication command does not need to include the instruction command! ,.
  • the communication request is received by the SIP server 52. Then, the SIP server 52 searches for an IP address and a port number corresponding to the device 10 # 8 @ & 1) .. com of the second information processing apparatus 40, and transmits a communication request to the port number of the IP address. Is transmitted (step S803).
  • the second information processing device 40 Upon receiving the communication request, the second information processing device 40 is information indicating the IP address of the second information processing device 40, the position of the transmission port sPort, and the position of the reception port rPort.
  • the communication destination information is transmitted to the port P3 of the SIP server 52 (step S804).
  • This communication destination information also includes the device ID of the first information processing device 30 and the device ID of the second information processing device 40.
  • the communication destination information does not include the position of the transmission port of the communication destination. Therefore, the point that the destination information includes the position of the destination transmission port is an extension of SIP.
  • the communication destination information is received by the SIP server 52 and transmitted to the first information processing device 30 via the communication control device 3 (step S805).
  • the communication destination information is received by the SIP processing unit 31 of the first information processing device 30.
  • the SIP processing unit 31 passes the IP address of the second information processing device 40 included in the communication destination information and information indicating the position of the transmission port sPort to the bubble packet transmission unit 13.
  • the detection packet transmitting unit 14 transmits the port detection packet from the port P5 newly assigned to the first information processing device 30 to the port PI1 of the port detection server 51. I do.
  • the port detection packet is received by the detection port detection unit 91 of the port detection server 51, and the port number of the port P8 of the communication control device 3 included in the header of the port detection packet is detected.
  • the detection port information transmission unit 92 transmits detection port information including the port number of the port P8 in the payload to the port P8 of the communication control device 3.
  • the detection port information is subjected to address conversion in the communication control device 3, and the first information is obtained. It is transmitted to port P5 of the information processing device 30. Then, the port information for detection reception section 71 receives the port information for detection.
  • bubble packet transmitting section 13 transmits the bubble packet to port sPort of second information processing device 40.
  • the bubble packet is transmitted from the port P6 of the first information processing device 30.
  • the port P6 is a port different from the port P5, and is a port newly assigned in the first information processing device 30 at the time of transmitting a bubble packet.
  • the detection packet transmitting unit 14 transmits the port detection packet to the port P11 of the port detection server 51 again.
  • the port detection packet is transmitted from the port P7 of the first information processing device 30.
  • the port P7 is a port different from the ports P5 and P6, and is a port newly assigned in the first information processing device 30 when transmitting the port detection packet.
  • the port detection packet is received by the port detection server 51. Further, the port detection server information is transmitted from the port detection server 51 to the first information processing device 30 in the same manner as in the case of the first port detection packet.
  • the detection port information receiving unit 71 of the first information processing device 30 receives the detection port information, and determines the position of the port of the communication control device 3 used for transmitting the two port detection packets, It is determined whether the bubble packet transmission port is continuous. This determination is made based on whether or not the difference between the port P10 and the port P8 is equal to twice the port width of the communication control device 3 detected in step S801. Assuming that the difference between the port P10 and the port P8 is twice as large as the port width of the communication control device 3, the bubble packet transmission port detection unit 72 uses the communication control device 3 used for transmitting the two port detection packets.
  • Port and the bubble packet transmission port are determined to be continuous, it is determined that the bubble packet transmission port can be detected (step S807), and the port number of port P8 and the port of port P10 are determined. The port number in the middle of the number is detected as the position of the bubble packet transmission port (step S808).
  • the bubble packet transmission port detection unit 72 passes the position of the detected bubble packet transmission port to the SIP processing unit 31.
  • the SIP processing unit 31 determines the position of the bubble packet transmission port and the global of the communication control device 3.
  • a communication request including the one-valley address is transmitted to the SIP server 52 again (step S809).
  • This communication request is also called a so-called “INVITE request”, and includes the device ID of the first information processing device 30 and the device ID of the second information processing device 40.
  • the communication request is relayed by the SIP server 52 and transmitted to the second information processing device 40 (Step S810). This communication is also performed via ports P1 to P4.
  • the second information processing device 40 can know the IP address of the calling side and the position of the receiving port. Further, the second information processing device 40 transmits a response to the communication request to the SIP server 52 (step S811). This response also includes the device IDs of the first information processing device 30 and the second information processing device 40. The response is relayed in the SIP server 52 and transmitted to the first information processing device 30 via the port P2 of the communication control device 3 (step S812).
  • a response to the response from the communication partner is transmitted via the SIP server 52 (steps S813 and S814).
  • This transmission of the acknowledgment is called the so-called “ACK”.
  • ACK acknowledgment
  • information is transmitted from the first information processing device 30 to the port rPort of the second information processing device 40, and communication control is performed from the second information processing device 40.
  • Information is sent to port P9 of device 3.
  • the information transmitted to the port P9 of the communication control device 3 is subjected to address conversion in the communication control device 3 and transmitted to the port P6 of the first information processing device 30. In this manner, communication is established between the first information processing device 30 and the second information processing device 40, and a call is made between the two.
  • the sequence for establishing communication between force information processing devices described using the sequence shown in FIG. 29 is not limited to the sequence shown in FIG.
  • information indicating the IP address of the second information processing device 40 and information indicating the position of the receiving port may be transmitted to the first information processing device 30 via the SIP server 52.
  • the first information processing device 30 uses the information transmitted via the SIP server 52 to establish a communication between the first information processing device 30 and the second information processing device 40. Is established.
  • the IP address of the second information processing device 40 transmitted in step S811 is the same as the one transmitted in step S804. belongs to.
  • the second information processing device 40 uses the transmission port indicated by the communication destination information transmitted in step S804 as the transmission port in communication with the first information processing device 30.
  • communication control device 3 is configured by using the method of detecting the position of the bubble packet transmission port described in Embodiment 13 to 13. Regardless of the type of NAT used, communication between information processing devices using SIP can be established. As described above, the method of detecting the position of the bubble packet transmission port may be used in systems other than the system and the sequence described in Embodiments 13 to 13.
  • port detection server 51 and SIP server 52 are separately provided, but they may be configured as the same server.
  • the communication system determines the position of the bubble packet transmission port and the information processing apparatus that transmits bubble packets. It may be a communication system including a server that performs a process for detection, and may detect the position of 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, wherein the information processing device is connected to the communication control device via the communication control device.
  • a bubble packet transmitting unit that transmits a bubble packet for retaining a transmission history, and a bubble packet transmission that is a port of a communication control device used for transmitting the bubble packet.
  • a detection packet transmitting unit that transmits a port detection packet used to detect the position of the port to the server before and after the bubble packet transmitting unit transmits the bubble packet.
  • the apparatus further comprises a public packet transmission port detecting unit for receiving the transmitted port detection packet and detecting the position of the bubble packet transmission port based on the port detection packet.
  • the position of the bubble packet transmission 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 position of the bubble packet transmission port may be recorded on a recording medium, and the information processing apparatus may read the recording medium power information, or the server may transmit the bubble packet transmitting information.
  • Information indicating the position of the port 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.
  • the communication system performs processing for detecting the position of the bubble packet transmission port with the information processing device that transmits the bubble packet.
  • a communication system including a server may be used for detecting the position of 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, wherein the information processing device is connected to the communication control device via the communication control device.
  • a bubble packet transmitting unit that transmits a bubble packet for retaining a transmission history, and a port detection packet used for detecting the position of a bubble packet transmitting port, which is a port of the communication control device, used for transmitting the bubble packet. Before and after the bubble packet transmitting unit transmits the bubble packet, and a detecting unit that receives the port information of the communication control device through which the port detecting packet has passed. Based on the detection port information reception unit and the detection port information received by the detection port information reception unit.
  • a Pub Rubto transmission port detector for detecting a position of the bets transmitting port, and the server receives the port detection packet, to detect the position of the port of the communication control device a packet for detecting the port passes test An outgoing port 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 position of the bubble packet transmission port may be detected by an information processing device that is not a server.
  • the position of the bubble packet transmission 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. You may.
  • information indicating the position of the bubble packet transmission port may be recorded on a recording medium, and another information processing apparatus may read the recording medium power information, or the information processing apparatus Information indicating the position of the bubble packet transmission port may be displayed, and the user may input information indicating the position of the bubble packet transmission port to another information processing apparatus by looking at the display.
  • each information processing device 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 the function of NAT.
  • the first communication control device 3 and the second communication control device 4 are capable of performing packet filtering in place of 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 By transmitting a bubble packet to the first communication control device 3 to leave a transmission history, it becomes possible to accept a reply packet transmitted to the bubble packet transmission port.
  • 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
  • the first information processing device 1 etc. and the second information Communication with the processing device 2 and the like can be established.
  • first information processing device and the second information processing device may or may not implement the function of a firewall as an application.
  • server 6 and the like are specified by the IP address.
  • server 6 and the like may be specified by the domain name (for example, server, pana. Good.
  • the server 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.
  • the side that issues a communication request is the side that transmits a bubble packet
  • the side that receives the power communication request described above transmits the bubble packet. May be ⁇ ⁇ .
  • 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.
  • the reference port detection packet for detecting the position of the reference port is the second information processing packet.
  • the latest port at the time when the device power is also transmitted may be used.
  • a port detection packet may be transmitted before and after transmitting the bubble packet in the bubble packet transmission step.
  • the bubble packet and the port detection packet may be transmitted using different ports in the first communication control device.
  • the bubble packet and the port detection packet may be transmitted to the first information processing device using a newly assigned port.
  • the program causes the computer to further execute a retransmission instruction receiving step of receiving a retransmission instruction to transmit the bubble packet and the port detection packet again, and in the detection packet transmitting step, When the retransmission instruction is received in the retransmission instruction receiving step, the port detection packet is transmitted again. You can send it again.
  • 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.
  • a bubble packet transmission target port which is a target port for transmitting a bubble packet, is a port allocated after a predetermined port is allocated from the reference port.
  • the program causes the computer to further execute a port width receiving step of receiving port width information that is information indicating the port width in the second communication control device,
  • a bubble packet may be transmitted to a bubble packet transmission target port whose port interval from the reference port is M times the port width indicated by the port width information (M is an integer of 1 or more). ,.
  • the detection packet transmission step if the position of the bubble packet transmission port cannot be detected in the bubble packet transmission port detection step, the port detection packet is transmitted again, and the bubble packet is transmitted. If the position of the bubble packet transmission port cannot be detected in the bubble packet transmission port detection step in the transmission step, the bubble packet may be transmitted again.
  • 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.
  • a packet transmission step, a port number detection port information receiving step for receiving port number detection port information indicating a port position of the first communication control device through which the port number detection packet has passed, and a port number detection port information 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 by the reception unit. The position of the bubble packet transmission port may be detected using the port width of the first communication control device detected in the step.
  • this program allows a computer to communicate with a first communication control device that controls communication of a first information processing device and a second communication control device that controls communication of a second information processing device.
  • a bubble packet for transmitting a transmission history to the second communication control device is transmitted through the second communication control device, and the position of the reference port which is a port in the first communication control device serving as a reference for transmission of the bubble packet
  • the reply packet is transmitted using N different (N is an integer of 2 or more) ports of the first communication control device. Is also good.
  • N ports may be newly assigned to the first communication control device when transmitting a return packet! /.
  • the number of ports that can be allocated from the reference port to the port to which the bubble packet was transmitted in the first communication control device may be equal to or greater than the number of ports that can be allocated.
  • the second information processing device receives a re-reply packet transmitted from the second information processing device to the port of the first communication control device used for transmitting the return packet.
  • the receiving step may be further executed.
  • 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 packet through which the port number detection packet has passed is sent to the computer.
  • the port width detection port information receiving step for receiving port width detection port information indicating the position of the port of the communication control device of the first communication control device, and the port width detection port information received in the port width detection port information receiving step.
  • Software that implements the server in the above embodiment is a program as described below.
  • this program includes, in a computer, a first communication control device that controls communication of the first information processing device and the second information processing device, and a second information processing device.
  • the second information processing device powers the second communication control device.
  • the first information processing device In order to detect the position of the bubble packet transmission port, which is a port in the first communication control device, the first information processing device also receives the transmitted port detection packet and generates a bubble packet based on the port detection packet.
  • a bubble packet transmission port detecting step of detecting the position of the transmission port and bubble packet transmission port information indicating the position of the bubble packet transmission port detected in the bubble packet transmission port detecting step are transmitted to the second information processing device. And a bubble packet transmission port transmission step.
  • a port detection packet transmitted before and after transmission of the bubble packet is received, and the second packet used in transmission of the port detection packet is received. It is determined whether the two ports in one communication control device and the public packet transmission port are continuous, and if they are continuous, the position of the port sandwiched between the two ports is determined by the position of the bubble packet transmission port. May be detected.
  • the distance between the two ports in the first communication control device used in transmitting the port detection packet is used in the first communication control device. If it is twice the port width, it can be determined that they are continuous.
  • the computer receives the first port number detection packet transmitted from the first information processing device via the first communication control device, and receives the first port number detection packet.
  • a first port width detection step of detecting a port width in the first communication control device based on the width detection packet is further executed.
  • the port detected by the first port width detection unit is The determination may be made using the width.
  • the computer receives a second port number detection packet transmitted from the second information processing device via the second communication control device, and receives the second port number detection packet from the second information processing device.
  • a second port width detection step of detecting a port width in the second communication control device based on the width detection packet; and port width information that is information indicating the port width detected in the second port width detection step. And transmitting a port number to the one information processing apparatus.
  • the software for realizing the server in the above embodiment is a program as described below.
  • the program includes, in the computer, the first information processing device and the second information processing device, the first communication control device controlling the communication of the first information processing device, and the second information processing device.
  • the first program is used to leave a transmission history in the first communication control device.
  • Bubble packets transmitted by other information processing devices The reference information transmitted from the second information processing device via the second communication control device to detect the position of the reference port, which is a port in the second communication control device serving as the reference for transmitting the packet.
  • a reference port detection step of receiving a port detection packet and detecting the position of the reference port based on the reference port detection packet, and reference port information indicating the position of the reference port detected in the reference port detection step are included in the first port.
  • a reference port transmitting step for transmitting to the information processing device, and a position of a public packet transmission port which is a port in the first communication control device used for transmitting a bubble packet from the first information processing device to the second communication control device The first information processing device receives the transmitted port detection packet and detects the port based on the port detection packet.
  • the software that implements the information processing device in each of the above embodiments is a program as described below.
  • the program is a program for causing a computer to execute processing in an information processing device, a communication control device that controls communication of the information processing device, and an information processing device that configures a communication system including a server.
  • the software that implements the server in each of the above embodiments is the following program.
  • this program is a program for causing a computer to execute processing in a server that constitutes a communication system including an information processing device, a communication control device that controls communication of the information processing device, and a server.
  • a server that constitutes a communication system including an information processing device, a communication control device that controls communication of the information processing device, and a server.
  • the position of the bubble packet transmission port which is a port in the communication control device used for transmitting bubble packets transmitted by the information processing device to leave a transmission history in the device.
  • Receiving the port detection packet transmitted also before and after transmission of the bubble packet, and detecting the position of the bubble packet transmission port based on the port detection packet. is there.
  • the software that implements the server in each of the above embodiments is the following program.
  • this program is a program for causing a computer to execute processing in a server that constitutes 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 transmission port which is a port in the communication control device used for transmitting a bubble packet transmitted by the information processing device to leave a transmission history in the device, information before and after the transmission of the bubble packet is transmitted.
  • 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 multiple computers. That is, centralized processing may be performed or distributed processing may be performed. Industrial applicability
  • the communication system and 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)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

 第1の情報処理装置(1)は、第2の通信制御装置(4)における基準ポートから所定のポート割り当て後に割り当てられるポートに対してバブルパケットを送信し、サーバ(6)は、そのバブルパケットの送信で用いられる、第1の通信制御装置(3)のポートであるバブルパケット送信ポートの位置を検出し、第2の情報処理装置(2)は、その検出されたバブルパケット送信ポートに対して、返信パケットを送信する。このような構成により、通信制御装置(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を下記の 9種類に分類するこ とができる(図 32参照)。
[0003] Full Cone NAT (以下、 F NATとする):送信ポート割り当てルールが Coneタ ィプであり、受信ポートフィルタルールが Noフィルタであるもの。
[0004] Restricted Cone NAT (以下、 R NATとする):送信ポート割り当てルールが C oneタイプであり、受信ポートフィルタルールが Address Sensitiveフィルタであるも の。
[0005] Port Restricted Cone NAT (以下、 PR NATとする):送信ポート割り当てル ールが Coneタイプであり、受信ポートフィルタルールが Port Sensitiveフィルタで あるもの。
[0006] Symmetric (a) NAT (以下、 Sa NATとする):送信ポート割り当てルールが Ad dress Sensitiveタイプであり、受信ポートフィルタルールが Noフィルタであるもの。
[0007] Address Sensitive Symmetric NAT (以下、 AS NAT、あるいは Sb NAT とする):送信ポート割り当てルールが Address Sensitiveタイプであり、受信ポート フィルタルールが Address Sensitiveフィルタであるもの。
[0008] Symmetric (c) NAT (以下、 Sc NATとする):送信ポート割り当てルールが Ad dress Sensitiveタイプであり、受信ポートフィルタルールが Port Sensitiveフィル タであるちの。
[0009] Symmetric (d) NAT (以下、 Sd NATとする):送信ポート割り当てルール力 Po rt Sensitiveタイプであり、受信ポートフィルタルールが Noフィルタであるもの。
[0010] Symmetric (e) NAT (以下、 Se NATとする):送信ポート割り当てルール力 Po rt Sensitiveタイプであり、受信ポートフィルタルールが Address Sensitiveフィル タであるちの。
[0011] Port Sensitive Symmetric NAT (以下、 PS NAT、あるいは Sf NATとす る):送信ポート割り当てルール力 SPort Sensitiveタイプであり、受信ポートフィルタ ルールが Port Sensitiveフィルタであるもの。
[0012] このような NATを用いた通信において、図 33で示されるような PC1と PC2との間で のサーバを介さな 、通信を確立する場合につ!、て考えられてきて!/、る。
[0013] 上記の技術内容は、例えば、 D. Yon、「Connection— Oriented Media Trans port in SDP」、 [Online]、 2003年 3月、 [2004年 3月 25曰検索]、インターネット < 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月、 [2004年 3月 25日検索]、インターネットく URL: http : //www. cs. Cornell, edu/proje ctsZ stunt/ draft— takeda— symmetric— nat— traversal— 00. txt> (以下、「非 特許文献 2」という。)に記載されている。さらに、】. Rosenberg, J. Weinberger, C . Huitema、 R. Mahy、「STUN ― Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)」、 [ Online]、 2003年 3月、 Network Working Group Request for Comments : 3489、 [2004年 3月 24日検索]、インターネットく URL :http : ZZwww. ietf. org/rfc/rfc3489. txt> (以下、「非特許文献 3」という。)に記載されている。
[0014] しかしながら、この場合においても、通信を確立することのできない NATの組み合 わせがあり得る。図 33において、 NAT1のローカル側に接続された情報処理装置で ある PC1から PC2に対して通信を行う場合に、 NAT1を送信側の NAT、 NAT2を受 信側の NATと呼ぶこととする。すると、 PC 1と PC2との間で通信を確立することがで きる NATの組み合わせは、図 34で示されるようになる。
[0015] ここで、図 34における「* 1」の接続は、従来力 知られており、「* 2」の接続は、上 記非特許文献 1に記載されており、「* 3」の接続は、上記非特許文献 2に記載されて いる。また、通信を確立することができる NATの組み合わせであっても、「* 3」の接 続においては、 NATのポート幅が確実にわかり、かつ、受信側の NATの最新ポート の位置を確実に知ることができない限り、通信を確立することができず、不確実性が 残るという問題もある。
[0016] さらに、図 34の組み合わせでは、 Sa NATや Sc— Se NATを用いた場合につい ては含まれていないが、そのような NATを用いた場合についても、 NATを介したピ ァ一.ッ一.ピアー(peer to Peer)の通信(例えば、図 33における PCIと PC2間の 通信)を確立できるようにした!/、。
[0017] また、情報処理装置間の通信を確立する前提として、一方の情報処理装置から送 信されたバブルパケット (NATに送信履歴を残すために送信されるパケット)の通過 した NATのポートの位置を確実に検出した 、。
発明の開示
[0018] 本発明の目的のひとつは、通信を制御する通信制御装置を介して通信を行う複数 の情報処理装置間における通信の確立を、より確実に行うことができる通信システム 等を提供することである。
[0019] 本発明の他の目的は、情報処理装置力 送信されたバブルパケットの通過した通 信制御装置におけるポートの位置を検出することができる通信システム等を提供する ことである。
[0020] 上記目的を達成するために、本発明による第 1の情報処理装置は、第 1の情報処 理装置の通信を制御する第 1の通信制御装置と、第 2の情報処理装置の通信を制御 する第 2の通信制御装置とを介して、前記第 2の情報処理装置と通信する前記第 1の 情報処理装置であって、前記第 1の通信制御装置に送信履歴を残すために送信さ れるバブルパケットの送信の対象の基準となる前記第 2の通信制御装置におけるポ ートである基準ポートの位置を示す基準ポート情報を受け付ける基準ポート受付部と 、前記基準ポート情報に基づいて、前記第 1の通信制御装置を介して、前記バブル パケットを前記第 2の通信制御装置に送信するバブルパケット送信部と、前記バブル パケットの送信で用いられる、前記第 1の通信制御装置のポートであるバブルパケット 送信ポートの位置を検出するために、ポート検出用パケットを送信する検出用バケツ ト送信部と、前記バブルパケット送信ポートに対して、前記第 2の情報処理装置から 前記第 2の通信制御装置を介して送信された返信パケットを受け付ける返信パケット 受付部と、を備えたものである。
[0021] このような構成により、基準ポート情報に基づいたバブルパケットの送信と、ポート検 出用パケットを用いて検出されたバブルパケット送信ポートへ送信された返信パケット の受け付けとを行うことができ、第 1の情報処理装置と、第 2の情報処理装置との間の 通信を確立することができる。
[0022] また、本発明による第 1の情報処理装置は、第 1の情報処理装置の通信を制御する 第 1の通信制御装置と、第 2の情報処理装置の通信を制御する第 2の通信制御装置 とを介して、前記第 2の情報処理装置と通信する前記第 1の情報処理装置であって、 前記第 1の通信制御装置は、前記第 2の情報処理装置から前記第 2の通信制御装 置を介して、前記第 2の通信制御装置に送信履歴を残すためのバブルパケットが送 信されるものであり、前記バブルパケットの送信の対象の基準となる前記第 1の通信 制御装置におけるポートである基準ポートの位置を検出するための基準ポート検出 用パケットを送信する基準ポート検出用パケット送信部と、前記第 2の情報処理装置 力 の前記バブルパケットの送信で用いられた、前記第 2の通信制御装置のポートで あるバブルパケット送信ポートの位置を示すバブルパケット送信ポート情報を受け付 けるバブルパケット送信ポート受付部と、前記バブルパケット送信ポート情報の示す 前記バブルパケット送信ポートに対して返信パケットを送信する返信パケット送信部と 、を備えたものである。
[0023] このような構成により、バブルパケットの送信によって送信履歴の残されているパブ ルパケット送信ポートに対して返信パケットを送信することができ、第 1の情報処理装 置と第 2の情報処理装置との間の通信を確立することができ得る。
[0024] また、本発明によるサーバは、第 1の情報処理装置、および第 2の情報処理装置が 、前記第 1の情報処理装置の通信を制御する第 1の通信制御装置、および前記第 2 の情報処理装置の通信を制御する第 2の通信制御装置を介して行う通信を確立させ るサーバであって、前記第 1の通信制御装置に送信履歴を残すために前記第 1の情 報処理装置が送信するバブルパケットの送信の対象の基準となる前記第 2の通信制 御装置におけるポートである基準ポートの位置を検出するために、前記第 2の情報処 理装置から前記第 2の通信制御装置を介して送信された基準ポート検出用パケット を受け付け、当該基準ポート検出用パケットに基づいて前記基準ポートの位置を検 出する基準ポート検出部と、前記基準ポート検出部が検出した前記基準ポートの位 置を示す基準ポート情報を前記第 1の情報処理装置に送信する基準ポート送信部と 、前記第 1の情報処理装置から前記第 2の通信制御装置への前記バブルパケットの 送信で用いられる前記第 1の通信制御装置におけるポートであるバブルパケット送信 ポートの位置を検出するために、前記第 1の情報処理装置から送信されたポート検 出用パケットを受け付け、前記ポート検出用パケットに基づいて前記バブルパケット 送信ポートの位置を検出するバブルパケット送信ポート検出部と、前記バブルバケツ ト送信ポート検出部が検出した前記バブルパケット送信ポートの位置を示すバブル パケット送信ポート情報を前記第 2の情報処理装置に送信するバブルパケット送信ポ ート送信部と、を備えたものである。
[0025] このような構成により、第 2の通信制御装置における基準ポートの位置を検出して、 第 1の情報処理装置に知らせることができ、またバブルパケット送信ポートの位置を 検出して、第 2の情報処理装置に知らせることができる。 [0026] また、本発明によるサーバは、第 1の情報処理装置、および第 2の情報処理装置が 、前記第 1の情報処理装置の通信を制御する第 1の通信制御装置、および前記第 2 の情報処理装置の通信を制御する第 2の通信制御装置を介して行う通信を確立させ るサーバであって、前記第 1の通信制御装置に送信履歴を残すために前記第 1の情 報処理装置が送信するバブルパケットの送信の対象の基準となる前記第 2の通信制 御装置におけるポートである基準ポートの位置を検出するために、前記第 2の情報処 理装置から前記第 2の通信制御装置を介して送信された基準ポート検出用パケット を受け付け、当該基準ポート検出用パケットに基づいて前記基準ポートの位置を検 出する基準ポート検出部と、前記基準ポート検出部が検出した前記基準ポートの位 置を示す基準ポート情報を前記第 1の情報処理装置に送信する基準ポート送信部と 、前記第 1の情報処理装置から前記第 2の通信制御装置への前記バブルパケットの 送信で用いられる前記第 1の通信制御装置におけるポートであるバブルパケット送信 ポートの位置を検出するために、前記第 1の情報処理装置から送信されたポート検 出用パケットを受け付け、当該ポート検出用パケットに基づいて前記ポート検出用パ ケットが通過した前記第 1の通信制御装置のポートの位置を検出する検出用ポート 検出部と、前記検出用ポート検出部が検出したポートの位置を示す検出用ポート情 報を前記第 1の情報処理装置に送信する検出用ポート情報送信部と、を備えたもの である。
[0027] このような構成により、第 2の通信制御装置における基準ポートの位置を検出して、 第 1の情報処理装置に知らせることができ、またポート検出用パケットの通過した第 1 の通信制御装置の位置を検出して、第 1の情報処理装置に知らせることができる。
[0028] また、本発明による通信システムは、情報処理装置と、前記情報処理装置の通信を 制御する通信制御装置と、サーバとを備えた通信システムであって、前記情報処理 装置が、前記通信制御装置を介して、前記通信制御装置に送信履歴を残すための バブルパケットを送信するバブルパケット送信部と、前記バブルパケットの送信で用 V、られる、前記通信制御装置のポートであるバブルパケット送信ポートの位置を検出 するために用いられるポート検出用パケットを、前記バブルパケット送信部が前記バ ブルパケットを送信する前後に、前記サーバに送信する検出用パケット送信部と、を 備えた、ものである。
[0029] このような構成により、情報処理装置力も送信されたポート検出用パケットによって、 バブルパケット送信ポートの位置を検出することができる。この検出は、サーバで行つ てもよく、情報処理装置で行ってもよぐあるいは、他の装置で行ってもよい。その検 出されたバブルパケット送信ポートの位置を用いて、そのバブルパケット送信ポート に他の装置力もパケットを送信することによって、そのパケットが情報処理装置で受け 付けられうることになる。
図面の簡単な説明
[0030] [図 1]図 1は本発明の実施の形態 1による通信システムの構成を示すブロック図である
[図 2]図 2は同実施の形態による第 1の情報処理装置の構成を示すブロック図である
[図 3]図 3は同実施の形態による第 2の情報処理装置の構成を示すブロック図である
[図 4]図 4は同実施の形態によるサーバの構成を示すブロック図である。
[図 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は同実施の形態によるサーバの構成を示すブロック図である。
[図 21]図 21は同実施の形態における通信の確立に関する処理について説明するた めの図である。
[図 22]図 22は同実施の形態における通信の確立に関する処理について説明するた めの図である。
[図 23]図 23は同実施の形態における通信の確立に関する処理について説明するた めの図である。
[図 24]図 24は本発明の実施の形態 3による通信システムの構成を示すブロック図で ある。
[図 25]図 25は他の実施の形態による通信システムの構成を示すブロック図である。
[図 26]図 26は本発明の実施の形態 4による通信システムの構成を示すブロック図で ある。
圆 27]図 27は同実施の形態による第 1の情報処理装置の構成を示すブロック図であ る。
[図 28]図 28は同実施の形態によるサーバの構成を示すブロック図である。
[図 29]図 29は同実施の形態における通信の確立に関する処理について説明するた めの図である。
[図 30]図 30は同実施の形態における具体例について説明するための図である。
[図 31]図 31は同実施の形態における具体例について説明するための図である。 [図 32]図 32は NATの特性(タイプ)について説明するための図である。
[図 33]図 33は通信システムの一例を示す図である。
[図 34]図 34は従来の接続可能な NATの組み合わせを示す図である。 符号の説明
1 第 1の情報処理装置
2 第 2の情報処理装置
3 第 1の通信制御装置
4 第 2の通信制御装置
5 通信回線
6 サーノ
11, 21, 61 通信部
12 基準ポート受付部
13 バブルパケット送信部
14 検出用パケット送信部
15, 26 ポート幅検出用パケット送信
16 再送信指示受付部
17 返信パケット受付部
18 再返信パケット受付部
19 ポート幅受付部
22 基準ポート検出用パケット送信部
23 バブルパケット送信ポ -ト受付部
24 返信パケット送信部
25 再返信パケット受付部
62 基準ポート検出部
63 基準ポート送信部
64 ポート幅検出部
65 バブルパケット送信ポ -ト検出部
66 再送信指示送信部 67 バブルパケット送信ポート送信部
68 ポート幅送信部
発明を実施するための最良の形態
[0032] (実施の形態 1)
本発明の実施の形態 1による通信システムについて、図面を参照しながら説明する
[0033] 図 1は、本実施の形態による通信システムの構成を示すブロック図である。図 1にお いて、本実施の形態による通信システムは、第 1の情報処理装置 1と、第 2の情報処 理装置 2と、第 1の通信制御装置 3と、第 2の通信制御装置 4と、サーバ 6とを備える。 第 1の通信制御装置 3、第 2の通信制御装置 4、およびサーバ 6は、有線または無線 の通信回線 5を介して接続されている。この通信回線 5は、例えば、インターネットで ある。
[0034] なお、図 1では、第 1の通信制御装置 3、および第 2の通信制御装置 4にそれぞれ、 第 1の情報処理装置 1、および第 2の情報処理装置 2のみが接続されている場合に ついて示しているが、これ以外の装置が、第 1の通信制御装置 3、および第 2の通信 制御装置 4に接続されて 、てもよ 、。
[0035] また、本実施の形態では、第 1の情報処理装置 1が送信側の情報処理装置として 動作し、第 2の情報処理装置 2が受信側の情報処理装置として動作する場合にっ 、 て説明する。ここで、送信側の情報処理装置とは、第 1の情報処理装置 1と第 2の情 報処理装置 2との間の通信を確立する際における、通信 (コネクション)の要求を出す 側(言い換えれば、バブルパケットを送信する側)のことである。一方、受信側の情報 処理装置とは、その反対側の情報処理装置、すなわち通信の要求を受け取る側 (言 い換えれば、バブルパケットに対する返信パケット送信する側)の情報処理装置のこ とである。なお、バブルパケットや返信パケットについては後述する。
[0036] 図 2は、第 1の情報処理装置 1の構成を示すブロック図である。図 2において、第 1 の情報処理装置 1は、通信部 11と、基準ポート受付部 12と、バブルパケット送信部 1 3と、検出用パケット送信部 14と、ポート幅検出用パケット送信部 15と、再送信指示 受付部 16と、返信パケット受付部 17と、再返信パケット送信部 18と、ポート幅受付部 19とを備える。
[0037] 通信部 11は、バブルパケット送信部 13等の第 1の情報処理装置 1の内部の各構成 要素と、第 1の通信制御装置 3との間における通信を行う。
[0038] 基準ポート受付部 12は、基準ポートの位置を示す基準ポート情報を受け付ける。こ こで、基準ポートとは、第 2の通信制御装置 4における所定のポートであり、バブルパ ケットの送信の対象となるポート (バブルパケット送信対象ポート)の基準となるポート である。この基準ポート情報の受け付けとは、例えば、基準ポート情報を受信すること である。なお、バブルパケットについては後述する。
[0039] バブルパケット送信部 13は、通信部 11および第 1の通信制御装置 3を介して、パブ ルパケットを第 2の通信制御装置 4に送信する。このバブルパケットは、基準ポート受 付部 12が受け付けた基準ポート情報に基づいて送信される。具体的には、第 2の通 信制御装置 4において、基準ポートから所定のポート割り当て後に割り当てられるポ ートであるバブルパケット送信対象ポートに対してバブルパケットが送信される。この バブルパケット送信対象ポートは、例えば、基準ポートとのポート間隔が、第 2の通信 制御装置 4におけるポート幅の M倍(Mは 1以上の整数)であるポートである。ここで、 例えば、ポート番号の増加するようにポート割り当てがなされる場合には、バブルパケ ット送信対象ポートは基準ポートよりもポート番号の大きい方となる。その第 2の通信 制御装置 4におけるポート幅は、後述するポート幅受付部 19で受け付けられたポート 幅情報によって示される。また、バブルパケットとは、第 1の情報処理装置 1と第 2の情 報処理装置 2との間における通信を確立するために、第 1の通信制御装置 3に送信 履歴を残すためのパケットである。ここで、通信を確立するとは、第 1の情報処理装置 1と、第 2の情報処理装置 2との間において、サーバ 6を介さない Peer to Peerの通 信を開始することをいう。また、送信履歴を残すとは、第 1の通信制御装置 3において 、後述する返信パケットを受け付けるためのポートを割り当てる(ポートを開く)ことをい う。このバブルパケットには、何らかの情報が含まれていてもよぐ何も情報が含まれ ていなくてもよい。このバブルパケットは、例えば、 UDP (User Datagram Protoc ol)のようなコネクションレス型のプロトコルによって送信される。
[0040] 検出用パケット送信部 14は、ポート検出用パケットをサーバ 6に送信する。このポー ト検出用パケットは、バブルパケット送信ポートの位置を検出するために用いられるも のである。ここで、バブルパケット送信ポートとは、バブルパケットの送信で用いられる
、第 1の通信制御装置 3のポートのことである。このポート検出用パケットは、バブルパ ケットが送信される前に、および Zまたはバブルパケットが送信された後に、送信され る。なお、本実施の形態では、バブルパケットの送信の前後においてポート検出用パ ケットが送信される場合について説明する。このポート検出用パケットは、例えば、 U DPや、 TCP (Transmission Control Protocol)によって送信される。このポート 幅検出用パケットには、何らかの情報が含まれていてもよぐ何も情報が含まれてい なくてもよい。
[0041] ポート幅検出用パケット送信部 15は、第 1の通信制御装置 3におけるポート幅を検 出するために用いられるポート幅検出用パケットを、第 1の通信制御装置 3を介して サーバ 6に送信する。ここで、ポート幅とは、連続して使用される(割り当てられる)ポ 一トの幅(間隔)のことである。例えば、ポート幅が「1」の場合には、ポート番号「2000 0」のポートの次に使用されるポートは、ポート番号「20001」のポートである。一方、 ポート幅が「2」の場合には、ポート番号「20000」のポートの次に使用されるポートは 、ポート番号「20002」のポートとなる。このポート幅検出用パケットには、何らかの情 報が含まれて!/、てもよく、何も情報が含まれて 、なくてもょ 、。
[0042] 再送信指示受付部 16は、再送信指示を受け付ける。ここで、再送信指示とは、バ ブルパケット、およびポート検出用パケットを再送信する旨の指示である。この再送信 指示は、例えば、受信によって受け付けられる。再送信指示受付部 16が再送信指示 を受け付けた場合には、検出用パケット送信部 14、およびバブルパケット送信部 13 は、それぞれ、ポート検出用パケットと、バブルパケットとを再度送信する。
[0043] 返信パケット受付部 17は、第 2の情報処理装置 2から第 2の通信制御装置 4を介し て送信された返信パケットを受け付ける。この返信パケットは、バブルパケット送信ポ ートに対して送信されたものである。この返信パケットは、例えば、受信によって受け 付けられる。この返信パケットには、何らかの情報が含まれていてもよぐ何も情報が 含まれていなくてもよい。
[0044] 再返信パケット送信部 18は、返信パケット受付部 17が返信パケットを受け付けた場 合に、再返信パケットを送信する。この再返信パケットは、返信パケットの送信で用い られた第 2の通信制御装置 4のポートに対して送信される。この再返信パケットは、例 えば、 UDPによって送信される。この再返信パケットには、何らかの情報が含まれて いてもよぐ何も情報が含まれていなくてもよい。
[0045] ポート幅受付部 19は、サーバ 6から送信されたポート幅情報を受け付ける。ここで、 ポート幅情報とは、第 2の通信制御装置 4におけるポート幅を示す情報である。
[0046] 図 3は、第 2の情報処理装置 2の構成を示すブロック図である。図 3において、第 2 の情報処理装置 2は、通信部 21と、基準ポート検出用パケット送信部 22と、バブル パケット送信ポート受付部 23と、返信パケット送信部 24と、再返信パケット受付部 25 と、ポート幅検出用パケット送信部 26とを備える。
[0047] 通信部 21は、通信部 11と同様に、基準ポート検出用パケット送信部 22等の第 2の 情報処理装置 2の内部の各構成要素と、第 2の通信制御装置 4との間における通信 を行う。
[0048] 基準ポート検出用パケット送信部 22は、基準ポートの位置を検出するための基準 ポート検出用パケットをサーバ 6に送信する。この基準ポートは、第 2の通信制御装置 4で割り当てられるポートのうち、基準ポート検出用パケットが送信された時点におけ る最新のポート (最も新しく割り当てられたポート)である。すなわち、この基準ポート 検出用パケットを送信することにより、サーバ 6は、第 2の通信制御装置 4で割り当てら れた最新のポートの位置を検出することができる。この基準ポート検出用パケットは、 例えば、 UDPや、 TCPによって送信される。この基準ポート検出用パケットには、何 らかの情報が含まれて 、てもよく、何も情報が含まれて 、なくてもょ 、。
[0049] バブルパケット送信ポート受付部 23は、バブルパケット送信ポート情報を受け付け る。ここで、バブルパケット送信ポート情報とは、バブルパケット送信ポートの位置を示 す情報であり、例えば、バブルパケット送信ポートのポート番号によって、バブルパケ ット送信ポートの位置が示される。バブルパケット送信ポート情報は、例えば、受信に よって受け付けられる。
[0050] 返信パケット送信部 24は、第 1の通信制御装置 3におけるバブルパケット送信ポー トに対して返信パケットを送信する。そのバブルパケット送信ポートの位置は、バブル パケット送信ポート受付部 23が受け付けたバブルパケット送信ポート情報によって示 されるものである。この返信パケットは、第 2の通信制御装置 4の異なる N個(Nは 2以 上の整数)のポートを用いて送信される。その N個のポートは、返信パケットの送信時 に、第 2の通信制御装置 4において新たに割り当てられるポートである。ここで、その Nの値は、第 2の通信制御装置 4における、基準ポートからバブルパケットが送信され たポート (バブルパケット送信対象ポート)までにお!/、て割り当て可能なポートの数 ( αとする)である。すなわち、返信パケットの送信時に、バブルパケット送信対象ポー トがすでに他の機器によって用いられている場合以外には、 α個の返信パケットを送 信することによって、バブルパケット送信対象ポートを用いた返信パケットの送信が可 能となる。この返信パケットは、例えば、 UDPによって送信される。この返信パケット には、何らかの情報が含まれていてもよぐ何も情報が含まれていなくてもよい。
[0051] 再返信パケット受付部 25は、第 1の情報処理装置 1から送信された再返信パケット を受け付ける。この再返信パケットは、返信パケットの送信で用いられた第 2の通信制 御装置 4のポートに対して送信され、第 2の情報処理装置 2で受信されたたものであ る。第 1の通信制御装置 3および第 2の通信制御装置 4で用いている NATの種類に よっては、第 1の情報処理装置 1が返信パケットを受け付けた時点で第 1の情報処理 装置 1と第 2の情報処理装置 2との間の通信が確立することもあり得るが、第 2の情報 処理装置 2が再返信パケットを受け付けることによってはじめて、第 1の情報処理装 置 1と第 2の情報処理装置 2との間の通信が確立することもある。
[0052] ポート幅検出用パケット送信部 26は、第 2の通信制御装置 4におけるポート幅を検 出するためのポート幅検出用パケットを、第 2の通信制御装置 4を介してサーバ 6に 送信する。このポート幅検出用パケットには、何らかの情報が含まれていてもよぐ何 も情報が含まれて 、なくてもょ 、。
[0053] 第 1の通信制御装置 3は、第 1の情報処理装置 1の通信を制御するものであり、い わゆるナット (NAT)を用いて、ローカル側(第 1の情報処理装置 1側)と、グロ一ノ レ 側(通信回線 5側)との通信を制御する。この NATには、 F NAT, R NAT, PR N AT, Sa NAT, AS NAT, Sc NAT, Sd NAT, Se NAT, PS NATがある。
[0054] また、第 2の通信制御装置 4は、第 2の情報処理装置 2の通信を制御するものであり 、第 1の通信制御装置 3と同様に、 NATを用いている。後述するように、本実施の形 態による通信システムでは、第 1の通信制御装置 3と、第 2の通信制御装置 4で用い て 、る NATのすベての組み合わせにお 、て、第 1の情報処理装置 1と第 2の情報処 理装置 2との間の通信を確立することができ得る。なお、第 1の通信制御装置 3、およ び第 2の通信制御装置 4では、ポートの割り当ては、所定のポート幅ごとに、ポート番 号が増大するよう、あるいは減少するように行われるものとする。以下の説明では、ポ ート番号が増大するように割り当てられる場合にっ 、て説明する。
[0055] 図 4は、サーバ 6の構成を示すブロック図である。図 4において、サーバ 6は、通信 部 61と、基準ポート検出部 62と、基準ポート送信部 63と、ポート幅検出部 64と、パブ ルパケット送信ポート検出部 65と、再送信指示送信部 66と、バブルパケット送信ポー ト送信部 67と、ポート幅送信部 68とを備える。
[0056] 通信部 61は、基準ポート検出部 62等のサーバ 6の各部と、第 1の情報処理装置 1 や第 2の情報処理装置 2などとの通信を行う。
[0057] 基準ポート検出部 62は、基準ポート検出用パケットを受け付け、その基準ポート検 出用パケットに基づいて基準ポートの位置を検出する。基準ポート検出用パケットの 受け付けは、例えば、受信によってなされる。その基準ポート検出用パケットは、第 2 の情報処理装置 2から第 2の通信制御装置 4を介して送信されたものである。
[0058] 基準ポート送信部 63は、基準ポート情報を第 1の情報処理装置 1に送信する。この 基準ポート情報は、例えば、基準ポートのポート番号によって、基準ポートの位置を 示す。
[0059] ポート幅検出部 64は、第 1の通信制御装置 3におけるポート幅を検出する。この検 出は、第 1の情報処理装置 1から送信されるポート幅検出用パケットを受け付けること によってなされる。また、ポート幅検出部 64は、第 2の通信制御装置 4におけるポート 幅を検出する。この検出は、第 2の情報処理装置 2から送信されるポート幅検出用パ ケットを受け付けることによってなされる。なお、第 1の通信制御装置 3におけるポート 幅を検出する第 1のポート検出部と、第 2の通信制御装置 4におけるポート幅を検出 する第 2のポート検出部とを備えてもよい。それらを 1つで実現したの力 ポート幅検 出部 64である。すなわち、ポート幅検出部 64のうち、第 1の通信制御装置 3における ポート幅を検出する部分が、第 1のポート検出部となり、第 2の通信制御装置 4におけ るポート幅を検出する部分力 第 2のポート検出部となる。
[0060] バブルパケット送信ポート検出部 65は、第 1の通信制御装置 3におけるバブルパケ ット送信ポートの位置を検出する。この検出は、第 1の情報処理装置 1から第 1の通信 制御装置 3を介して送信されたポート検出用パケットを受け付けることによってなされ る。このポート検出用パケットの受け付けは、例えば、受信によってなされる。具体的 には、バブルパケット送信ポート検出部 65は、バブルパケットの送信の前後に送信さ れたポート検出用パケットを受け付ける。そして、そのポート検出用パケットの送信で 用いられた第 1の通信制御装置 3における 2つのポートと、バブルパケット送信ポート とが連続しているかどうか判断する。その判断の結果、それらのポートが連続している 場合には、ポート検出用パケットの送信で用いられた第 1の通信制御装置 3における 2つのポートで挟まれるポートの位置をバブルパケット送信ポートの位置として検出す る。ここで、連続するとは、第 1の通信制御装置 3のポート幅の間隔で、その 2つのポ ートとバブルパケット送信ポートが並んでいることをいう。なお、ポート検出用パケット の送信で用いられた第 1の通信制御装置 3の 2つのポートの間隔が、ポート幅検出部 64によって検出された第 1の通信制御装置 3のポート幅の 2倍である場合に、連続し ていると判断することができる。一方、ポート検出用パケットの送信で用いられた第 1 の通信制御装置 3における 2つのポートと、バブルパケット送信ポートとが連続してい ない場合には、バブルパケット送信ポートを検出できないこととなる。
[0061] 再送信指示送信部 66は、バブルパケット送信ポート検出部 65がバブルパケット送 信ポートの位置を検出できない場合に、再送信指示を第 1の情報処理装置 1に送信 する。ここで、再送信指示とは、バブルパケット、およびポート検出用パケットを再度 送信する旨の指示である。バブルパケット送信ポート検出部 65は、その再送信指示 の送信に応じて再度送信されたポート検出用パケットを用いて、バブルパケット送信 ポートの位置を検出する。なお、この再送信指示の送信は、バブルパケット送信ポー ト検出部 65がバブルパケット送信ポートの位置を検出できるまで、あるいは、所定の 上限の回数 (例えば、 10回など)や、所定の時間(例えば、 30秒など)等の所定の制 限まで繰り返される。 [0062] バブルパケット送信ポート送信部 67は、バブルパケット送信ポート情報を第 2の情 報処理装置 2に送信する。このバブルパケット送信ポート情報で示されるバブルパケ ット送信ポートの位置は、バブルパケット送信ポート検出部 65によって検出されたも のである。
[0063] ポート幅送信部 68は、ポート幅情報を第 1の情報処理装置 1に送信する。ここで、 ポート幅情報とは、ポート幅検出部 64で検出された第 2の通信制御装置 4におけるポ 一ト幅を示す情報である。
[0064] 次に、本実施の形態による通信システムの動作について説明する。特に、図 5のフ ローチャートを用いて、第 1の情報処理装置 1と第 2の情報処理装置 2とが通信を開 始するまでの通信方法にっ 、て説明する。
[0065] (ステップ S101)第 2の情報処理装置 2から基準ポート検出用パケットがサーバ 6に 送信され、その基準ポート検出用パケットに基づいて、基準ポートの位置が検出され る。そして、その基準ポートの位置を示す基準ポート情報力 サーバ 6から第 1の情報 処理装置 1に送信される。なお、ステップ S 101の詳細な処理については、後述する
[0066] (ステップ S102)第 1の情報処理装置 1は、基準ポート情報に基づいて、バブルパ ケットを第 2の通信制御装置 4に送信する。また、バブルパケット送信ポートの位置の 検出に用いられるポート検出用パケットをサーバ 6に送信する。なお、ステップ S102 の詳細な処理については、後述する。
[0067] (ステップ S103)サーバ 6のバブルパケット送信ポート検出部 65は、ステップ S102 で受け付けたポート検出用パケットに基づ 、て、バブルパケット送信ポートの位置を 検出できるかどうか判断する。そして、検出できる場合には、ステップ S104に進み、 検出できない場合には、再送信指示送信部 66が再送信指示を第 1の情報処理装置 1に送信してステップ S102に戻る。その再送信指示は、第 1の情報処理装置 1の再 送信指示受付部 16によって受け付けられる。
[0068] (ステップ S104)サーバ 6は、バブルパケット送信ポートの位置を検出し、その位置 を示すバブルパケット送信ポート情報を第 2の情報処理装置 2に送信する。第 2の情 報処理装置 2は、そのバブルパケット送信ポート情報に基づいて、返信パケットを第 1 の通信制御装置 3に送信する。なお、ステップ S 104の詳細な処理については、後述 する。
[0069] (ステップ S105)第 1の情報処理装置 1の返信パケット受付部 17は、返信パケットを 受け付けたかどうか判断する。そして、返信パケットを受け付けた場合には、ステップ S106に進み、受け付けていない場合には、ステップ S101に戻り、ステップ S101力 らの処理を再度繰り返す。
[0070] (ステップ S106)第 1の情報処理装置 1の再返信パケット送信部 18は、再返信パケ ットを第 2の通信制御装置 4に送信する。
[0071] (ステップ S107)第 2の情報処理装置 2の再返信パケット受付部 25は、再返信パケ ットを受け付けたかどうか判断する。そして、再返信パケットを受け付けた場合には、 その再返信パケットの送信で用いられた第 1の通信制御装置 3のいずれかのポート にパケットを送信することによって、第 1の情報処理装置 1と第 2の情報処理装置 2と の間でのサーバ 6を介さない通信を確立することができ、通信の確立の処理は終了さ れる。一方、再返信パケットを受け付けな力 た場合には、通信を確立できないことと なるため、ステップ S101〖こ戻り、ステップ S101からの処理を再度繰り返す。
[0072] 次に、図 5のフローチャートにおけるステップ S101の処理について、図 6を用いて 説明する。図 6は、送信側、サーバ、受信側の間における情報のやり取りや処理を説 明するための図である。ここで、送信側とは、第 1の情報処理装置 1および第 1の通信 制御装置 3を含む概念である。また、受信側とは、第 2の情報理装置 2および第 2の 通信制御装置 4を含む概念である。
[0073] (ステップ S201)サーバ 6は、第 2の情報処理装置 2に対して、基準ポート検出用パ ケットの送信要求を送信する。
[0074] (ステップ S202)第 2の情報処理装置 2の基準ポート検出用パケット送信部 22は、 サーバ 6から送信された基準ポート検出用パケットの送信要求を受け取ると、基準ポ ート検出用パケットをサーバ 6に送信する。なお、基準ポート検出用パケット送信部 2 2は、その基準ポート検出用パケットが、第 2の通信制御装置 4において最新に割り 当てられたポートを用いて送信されるようにする。例えば、第 2の情報処理装置 2にお いて新たに割り当てられたポートを用いて基準ポート検出用パケットの送信を行う。 [0075] (ステップ S203)サーバ 6の基準ポート検出部 62は、第 2の情報処理装置 2から送 信された基準ポート検出用パケットを受け付ける。そして、基準ポート検出部 62は、 基準ポート検出用パケットのヘッダに含まれる基準ポートのポート番号を参照すること により、基準ポートの位置を検出する。
[0076] (ステップ S204)基準ポート送信部 63は、基準ポート検出部 62によって検出された 基準ポートの位置を示す情報である基準ポート情報を第 1の情報処理装置 1に送信 する。その基準ポート情報は、第 1の情報処理装置 1における基準ポート受付部 12 で受け付けられる。
[0077] (ステップ S205)サーバ 6は、第 2の通信制御装置 4の IPアドレスを示すアドレス情 報を第 1の情報処理装置 1に送信する。そのアドレス情報は、通信部 11で受信され、 バブルパケット送信部 13に渡される。
[0078] (ステップ S206)第 1の情報処理装置 1のポート幅検出用パケット送信部 15は、ポ ート幅検出用パケットをサーバ 6に送信する。ここで、この送信においては、複数のポ ート幅検出用パケットが通過する第 1の通信制御装置 3のポートがそれぞれ異なるよ うにする。このポート幅検出用パケットは、例えば、第 1の情報処理装置 1におけるポ ート番号がそれぞれ異なる複数のポートから送信される。図 7は、ポート幅検出用パ ケットの送信について説明するための図である。ポート幅検出用パケット送信部 15は 、それぞれ異なるポート P205— P208から順次、サーバ 6のポート P200にポート幅 検出用パケットを送信する。すると、第 1の通信制御装置 3において、それらのバケツ トは、それぞれ異なるポート P201— P204を通過することとなる。なお、図 7では、ポ ート P205から P208の順番でパケットが送信されたとする。また、第 1の情報処理装 置 1は、ポート幅検出用パケットを送信する以前に、ポート P205— P208をサーバ 6と の通信で用 ヽて ヽな 、ものとする。
[0079] (ステップ S207)サーバ 6のポート幅検出部 64は、第 1の情報処理装置 1から送信 されたポート幅検出用パケットを受け付け、そのポート幅検出用パケットに基づいて、 ポート幅を検出する。このポート幅の検出方法について説明する。ポート幅検出部 6 4は、ポート幅検出用パケットを受け付けることにより、各ポート幅検出用パケットの送 信で用いられた第 1の通信制御装置 3のポート P201— P204を検出することができる 。そして、例えばポート P202と、ポート P201のポート間隔が 12であり、ポート P203と 、ポート P202のポート間隔が 6であり、ポート P204と、ポート P203のポート間隔が 1 8である場合には、一番小さいポート間隔である「6」をポート幅として検出してもよい。 一方、それらのポート間隔の最大公約数をポート幅として検出してもよい。例えば、ポ ート P202と、ポート P201のポート間隔が 12であり、ポート P203と、ポート P202のポ ート間隔が 6であり、ポート P204と、ポート P203のポート間隔が 9である場合には、そ れらの最大公約数である「3」をポート幅として検出してもよい。なお、ポート幅の検出 方法は、これらに限定されるものではなぐその他の方法によってポート幅を検出して もよい。また、ポート幅を検出するときに送信されるポート幅検出用パケットの数も、 4 個に限定されるものではなぐポート幅を検出できる範囲において任意に設定するこ とがでさる。
[0080] (ステップ S208)第 2の情報処理装置 2のポート幅検出用パケット送信部 26は、ポ ート幅検出用パケットをサーバ 6に送信する。ここで、ポート幅検出用パケットの送信 は、ステップ S206と同様にしてなされる。
[0081] (ステップ S209)サーバ 6のポート幅検出部 64は、第 2の情報処理装置 2から送信 されたポート幅検出用パケットを受け付け、そのポート幅検出用パケットに基づいて、 第 2の通信制御装置 4におけるポート幅を検出する。このポート幅の検出方法は、ス テツプ S207と同様であり、その説明を省略する。なお、このステップ S209におけるポ ート幅の検出処理では、ステップ S 207におけるポート幅の検出に比べて、厳密性を あまり要求されない。すなわち、第 2の通信制御装置 4における実際のポート幅の倍 数をポート幅として検出してもよい。このステップ S 209で検出されたポート幅は、基 準ポートから、このステップ S209で検出されたポート幅の倍数だけポート間隔の(ポ ート番号の割り当てが増加方向である場合には、ポート番号の増加する方向に)離れ たポートをバブルパケット送信対象ポートと決定するために用いられるものである。そ の結果、このステップで検出されたポート幅が実際のポート幅の倍数であったとしても 、そのようにして決定されたバブルパケット送信対象ポートは、基準ポートから何回か のポート割り当て後に割り当てられるポートとなり、バブルパケット送信対象ポートとし てそのポートを用いることができるからである。したがって、このステップ S208、 S209 におけるポート幅の検出では、少数のポート幅検出用パケットの送信によってポート 幅を検出してもよい。
[0082] (ステップ S210)サーバ 6のポート幅送信部 68は、ステップ S209で検出されたポー ト幅を示すポート幅情報を第 1の情報処理装置 1に送信する。
[0083] なお、図 6にお!/、て、受信側アドレスの送信(ステップ S205)は、どの時点で行われ てもよく、例えば、基準ポート情報の送信 (ステップ S 204)や、基準ポート検出用パケ ットの送信要求 (ステップ S 201)の以前に行ってもよい。また、ポート幅検出用バケツ トの送信 (ステップ S208)力もポート幅情報の送信 (ステップ S210)についても、ポー ト幅検出用パケットの送信 (ステップ S206)の処理等よりも以前に行ってもよい。この ように、図 6の処理の順序に関しては、ある程度の任意性がある。
[0084] 次に、図 5のフローチャートにおけるステップ S 102の処理について、図 8を用いて 説明する。図 8は、送信側、サーバ、受信側の間における情報のやり取りや処理を説 明するための図である。
[0085] (ステップ S301)第 1の情報処理装置 1の検出用パケット送信部 14は、ポート検出 用パケットを、第 1の通信制御装置 3を介してサーバ 6に送信する。この送信において 、ポート検出用パケットが第 1の通信制御装置 3において最新に割り当てられるポート を通過するようにパケットの送信を行うものとする。バブルパケット送信ポートの位置を 適切に検出できるようにするためである。例えば、検出用パケット送信部 14は、第 1の 情報処理装置 1とサーバ 6との間の通信でそれまでに用いていない第 1の情報処理 装置 1のポートを用いて、ポート検出用パケットを送信する。このようにして送信された ポート検出用パケットは、サーバ 6のバブルパケット送信ポート検出部 65において受 け付けられる。このバブルパケット送信ポート検出部 65は、ポート検出用パケットのへ ッダを参照することにより、ポート検出用パケットの送信で用いられた第 1の通信制御 装置 3におけるポートの位置を検出する。
[0086] (ステップ S302)第 1の情報処理装置 1のバブルパケット送信部 13は、バブルパケ ットを第 2の通信制御装置 4に送信する。このバブルパケットは、第 2の通信制御装置 4において、基準ポートから所定回(α )のポート割り当て後に割り当てられるポートに 対して送信される。 [0087] (ステップ S303)第 1の情報処理装置 1の検出用パケット送信部 14は、ポート検出 用パケットを、第 1の通信制御装置 3を介してサーバ 6に送信する。この送信において 、ポート検出用パケットが第 1の通信制御装置 3において最新に割り当てられるポート を通過するようにパケットの送信を行うものとする。例えば、検出用パケット送信部 14 は、第 1の情報処理装置 1とサーバ 6との間の通信や、ステップ S301でのポート検出 用パケットの送信、バブルパケットの送信でそれまでに用いて ヽな 、第 1の情報処理 装置 1のポートを用いて、ポート検出用パケットを送信する。このようにして送信された ポート検出用パケットは、サーバ 6のバブルパケット送信ポート検出部 65において受 け付けられる。このバブルパケット送信ポート検出部 65は、ポート検出用パケットのへ ッダを参照することにより、ポート検出用パケットの送信で用いられた第 1の通信制御 装置 3におけるポートの位置を検出する。
[0088] (ステップ S304)サーバ 6のバブルパケット送信ポート検出部 65は、ステップ S301 、 S303における、 2つのポート検出用パケットの送信で用いられた第 1の通信制御装 置 3のポートの位置と、バブルパケット送信ポートとが連続して 、るかどうかを判断す る。
[0089] 次に、図 5のフローチャートにおけるステップ S 104の処理について、図 9を用いて 説明する。図 9は、送信側、サーバ、受信側の間における情報のやり取りや処理を説 明するための図である。
[0090] (ステップ S401)サーバ 6のバブルパケット送信ポート検出部 65は、バブルパケット 送信ポートの位置を検出する。
[0091] (ステップ S402)サーバ 6のバブルパケット送信ポート送信部 67は、バブルパケット 送信ポート情報を第 2の情報処理装置 2に送信する。そのバブルパケット送信ポート 情報は、第 2の情報処理装置 2のバブルパケット送信ポート受付部 23によって受け 付けられる。
[0092] (ステップ S403)サーバ 6は、第 1の通信制御装置 3の IPアドレスを示すアドレス情 報を第 2の情報処理装置 2に送信する。そのアドレス情報は、通信部 21で受信され、 返信パケット送信部 24に渡される。
[0093] (ステップ S404)第 2の情報処理装置 2の返信パケット送信部 24は、ステップ S403 で受け取ったアドレス情報によって特定される第 1の第 1の通信制御装置 3に対して 返信パケットを送信する。この返信パケットは、バブルパケット送信ポート受付部 23で 受け付けられたバブルパケット送信ポート情報の示すバブルパケット送信ポートに対 して送信される。
[0094] なお、図 9にお!/、て、バブルパケット送信ポート情報の送信 (ステップ S402)と、送 信側アドレスの送信 (ステップ S403)との順序は問わな!/、。
[0095] 次に、本実施の形態による通信システムの動作について、具体例を用いて説明す る。この具体例において、第 1の通信制御装置 3、第 2の通信制御装置 4、サーバ 6の IPアドレス (第 1および第 2の通信制御装置 3, 4については、通信回線 5側のアドレス )は、それぞれ以下のとおりであるとする。
[0096] 第 1の通信制御装置 3 : 202. 132. 10. 6
第 2の通信制御装置 4 : 131. 206. 10. 240
サーノ 6 : 155. 32. 10. 10
以下の具体例においては、具体例 1において、第 1の通信制御装置 3、および第 2 の通信制御装置 4が PS NATを用いている場合について説明する。また、具体例 2 において、第 1の通信制御装置 3が Sd NATを用いており、第 2の通信制御装置 4 力 SPS NATを用いている場合について説明する。また、具体例 3において、第 1の 通信制御装置 3が Sd NATを用いており、第 2の通信制御装置 4が AS NATを用 V、て 、る場合にっ 、て説明する。
[0097] (具体例 1)
図 10—図 13は、具体例 1について説明するための図である。この具体例 1では、 第 1の情報処理装置 1から接続要求が行われる。図 10において、第 1の情報処理装 置 1は、サーバ 6の IPアドレス「155. 32. 10. 10」をあらかじめ知っており、そのサー ノ 6に対して、第 1の情報処理装置 1の機器 ID「1234567890123456」を送信する 。ここで、この機器 IDとしては、例えば、 MACアドレスや、 EUI64ベースのアドレスな どの GUID (Global Unique ID)を用いることができる。この機器 IDの送信は、第 1 の情報処理装置 1のポート P1から、第 1の通信制御装置 3で割り当てられたポート P2 を介して、サーバ 6のポート P3に対して行われる。この送信によって、サーバ 6は、第 1の情報処理装置 1の機器 IDと、第 1の通信制御装置 3の IPアドレス「202. 132. 10 . 6」と、第 1の通信制御装置 3におけるポート P2のポート番号「10034」とを知ること ができる。これらの情報は、サーバ 6において保持される。
[0098] 次に、第 1の情報処理装置 1は、接続を要求する第 2の情報処理装置 2の機器 ID「 9876543210123456」をサーノ 6に送信することにより、第 2の†青報処理装置 2へ の接続要求を行う。すると、サーバ 6が、その接続要求を受け取り、第 2の情報処理装 置 2がサーバ 6にすでにアクセスしているかどうか判断する。この第 2の情報処理装置 2によるアクセスも、上述の第 1の情報処理装置 1と同様にして、第 2の情報処理装置 2の機器 IDを送信することによってなされる。したがって、第 2の情報処理装置 2がサ ーバ 6にアクセスしていた場合には、サーバ 6は、第 2の情報処理装置 2の機器 ID「9 876543210123456」と、第 2の通信制御装置 4の IPアドレス「131. 206. 10. 240 」と、第 2の情報処理装置 2とサーノ 6の間での情報の送受信で用いられる第 2の通 信制御装置 4のポート P5のポート番号「23495」とを知っており、それらを保持してい ることとなる。第 2の情報処理装置 2がサーバ 6にすでにアクセスしている場合には、 基準ポート情報の受け付けに関する処理 (ステップ S101)が開始される。一方、第 2 の情報処理装置 2がサーバ 6にアクセスしていない場合には、第 1の情報処理装置 1 力 の接続要求は、エラーとなり、第 1の情報処理装置 1と第 2の情報処理装置 2の間 の通信は確立できない。
[0099] 基準ポート情報の受け付けに関する処理において、サーバ 6は、第 2の情報処理装 置 2に、第 2の通信制御装置 4のポート P5を介して基準ポート検出用パケットを送信 する旨の送信要求を行う (ステップ S201)。すると、その送信要求が第 2の情報処理 装置 2の基準ポート検出用パケット送信部 22において受け付けられる。そして、基準 ポート検出用パケット送信部 22は、第 2の情報処理装置 2において、それまでにサー ノ^との通信で用いているポート P6とは異なる、新たに割り当てられたポート P8から 第 2の通信制御装置 4を介して基準ポート検出用パケットを送信する (ステップ S202 )。この基準ポート検出用パケットの送信において、第 2の通信制御装置 4では、ポー ト P7 (ポート番号「23500」)が新たに割り当てられたとする。この基準ポート検出用パ ケットは、サーバ 6の基準ポート検出部 62によって受け付けられる。そして、基準ポー ト P7の位置として、ポート番号「23500」が検出される(ステップ S203)。
[0100] 基準ポート送信部 63は、そのポート番号「23500」を基準ポート検出部 62から受け 取り、その基準ポート P7のポート番号「23500」を含む基準ポート情報を構成し、そ の基準ポート情報を第 1の情報処理装置 1に送信する (ステップ S204)。この送信は 、第 1の通信制御装置 3におけるポート P2を介して行われる。第 1の情報処理装置 1 の基準ポート受付部 12は、その基準ポート情報を、通信部 11を介して受け付け、そ の基準ポート情報に含まれる基準ポート P7のポート番号「23500」をバブルパケット 送信部 13に渡す。
[0101] また、サーバ 6は、第 2の通信制御装置 4の IPアドレス「131. 206. 10. 240」を示 すアドレス情報を第 1の情報処理装置 1に送信する (ステップ S205)。そのアドレス情 報は、通信部 11で受信され、バブルパケット送信部 13に渡される。このようにして、 バブルパケット送信部 13は、第 2の通信制御装置 4の IPアドレス「131. 206. 10. 2 40」を知ることができる。
[0102] ポート幅検出用パケット送信部 15は、通信部 11がアドレス情報を受信したことを検 知すると、複数のポート幅検出用パケットを図 7で示すようにして送信する (ステップ S 206)。なお、図 10では、ポート幅検出用パケットの送信については明示していない 。そのポート幅検出用パケットは、サーバ 6のポート幅検出部 64で受け付けられ、ポ ート幅が検出される。この場合、ポート幅は「1」と検出されたとする (ステップ S207)。 検出されたポート幅は、バブルパケット送信ポート検出部 65に渡される。
[0103] また、ポート幅検出用パケット送信部 26は、サーバ 6のポート幅検出部 64からの指 示により、複数のポート幅検出用パケットを送信する (ステップ S 208)。なお、図 10で は、このポート幅検出用パケットの送信についても明示していない。そのポート幅検 出用パケットは、サーバ 6のポート幅検出部 64で受け付けられ、ポート幅が検出され る。この場合、ポート幅は「1」と検出されたとする (ステップ S209)。その後、ポート幅 送信部 68は、その検出されたポート幅「1」を、第 1の情報処理装置 1に送信する (ス テツプ S210)。そして、そのポート幅「1」は、ポート幅受付部 19で受け付けられ、ノ ブルパケット送信部 13に渡される。
[0104] バブルパケット送信部 13は、バブルパケットを送信する前に、検出用パケット送信 部 14に対して、ポート検出用パケットを送信する旨の指示を渡す。すると、検出用パ ケット送信部 14は、それまでにサーバ 6との通信で用いておらず、新たに割り当てら れたポート(すなわち、第 1の情報処理装置 1が新たに割り当てたポート)であるポート P9を用いて、サーバ 6のポート P15に対してポート検出用パケットを送信する(ステツ プ S301)。ポート P15は、サーバ 6から指示されたポートであるとする。このポート検 出用パケットは、第 1の通信制御装置 3において、新たに割り当てられたポート P12 ( ポート番号「10040」)を用いて送信される。サーバ 6のバブルパケット送信ポート検 出部 65は、このポート検出用パケットを受け付け、第 1の通信制御装置 3のポート P1 2のポート番号「10040」を検出する。バブルパケット送信ポート検出部 65は、そのポ ート P12のポート番号「10040」を保持しておく。
[0105] 検出用パケット送信部 14は、ポート検出用パケットの送信後に、ポート検出用パケ ットを送信した旨をバブルパケット送信部 13に伝える。すると、バブルパケット送信部 13は、それまでにサーバ 6との通信で用いておらず、新たに割り当てられたポートで あるポート P10を用いて、 IPアドレス「131. 206. 10. 240」の第 2の通信制御装置 4 にバブルパケットを送信する(ステップ S302)。このバブルパケットの送信では、基準 ポート受付部 12から受け取った基準ポート P7のポート番号「23500」から、ポート幅 受付部 19で受け付けられたポート幅「1」の所定の倍数、すなわち 50倍 (すなわち、 α = 50)だけ離れたポート番号「23550」のポート P17に対してバブルパケットを送 信するものとする。また、そのバブルパケットは、第 1の通信制御装置 3のポート Ρ13 ( ポート番号「10041」)を用いて送信されたとする。バブルパケット送信部 13は、パブ ルパケットの送信後、「ひ = 50」である旨をサーバ 6に送信する。すると、サーバ 6は、 その旨を第 2の情報処理装置 2に送信する。そして、「ひ = 50」である旨が返信パケ ット送信部 24で受け付けられる。
[0106] バブルパケット送信部 13は、バブルパケットの送信後に、ポート検出用パケットを送 信する旨の指示を検出用パケット送信部 14に渡す。すると、検出用パケット送信部 1 4は、それまでにサーバ 6との通信で用いておらず、新たに割り当てられたポートであ るポート P11を用いて、サーバ 6のポート 16に対してポート検出用パケットを送信する (ステップ S303)。このポート検出用パケットは、第 1の通信制御装置 3において、新 たに割り当てられたポート P14 (ポート番号「10042」)を用いて送信される。このよう に、バブルパケットと、ポート検出用パケットとは、第 1の通信制御装置 3における異な るポートを用いて送信される。
[0107] サーバ 6のバブルパケット送信ポート検出部 65は、このポート検出用パケットを受け 付け、第 1の通信制御装置 3のポート P14のポート番号「10042」を検出する。そして 、バブルパケット送信ポート検出部 65は、保持していたポート P12のポート番号「100 40」と、検出したポート P14のポート番号「10042」との差が「2」であり、ステップ S20 7で検出したポート幅「1」の 2倍であることから、 2つのポート検出用パケットの送信で 用いられた第 1の通信制御装置 3におけるポート P12, P14と、バブルパケット送信ポ ート P13とが連続していると判断する(ステップ S304)。その結果、バブルパケット送 信ポートの位置を検出できると判断し (ステップ S103)、バブルパケット送信ポート検 出部 65は、バブルパケット送信ポートの位置として、ポート P12とポート P14の真ん中 であるポート番号「 10041」を検出する(ステップ S401 )。
[0108] バブルパケット送信ポート送信部 67は、バブルパケット送信ポート検出部 65で検出 されたバブルパケット送信ポート P13のポート番号「10041」を含むバブルパケット送 信ポート情報を構成し、そのバブルパケット送信ポート情報を、第 2の通信制御装置 4のポート P5を介して第 2の情報処理装置 2に送信する(ステップ S402)。そのパブ ルパケット送信ポート情報は、第 2の情報処理装置 2のバブルパケット送信ポート受 付部 23において受け付けられる。そして、バブルパケット送信ポート情報に含まれる バブルパケット送信ポート P 13のポート番号「 10041」が返信バケツト送信部 24に渡 される。
[0109] また、サーバ 6は、第 1の通信制御装置 3の IPアドレス「202. 132. 10. 6」を示す アドレス情報を第 2の情報処理装置 2に送信する (ステップ S403)。そのアドレス情報 は、通信部 21で受信され、返信パケット送信部 24に渡される。このようにして、返信 パケット送信部 24は、第 1の通信制御装置 3の IPアドレス「202. 132. 10. 6」を知る ことができる。
[0110] 返信パケット送信部 24は、 IPアドレス「202. 132. 10. 6」の第 1の通信制御装置 3 におけるポート番号「10041」のバブルパケット送信ポート P13に対して、 50個の返 信パケットを送信する(ステップ S404)。この 50個というのは、返信パケット送信部 24 がサーバ 6から受け付けた αの値に対応している。返信パケット送信部 24は、この 50 個の返信パケットを、第 2の情報処理装置 2において新たに割り当てられる(すなわち 、それまでのサーバ 6との通信等で用いられて!/ヽな 、) 50個のポート Ρ20— P21を用 いて送信する。したがって、その返信パケットは、第 2の通信制御装置 4においても、 新たに割り当てられる 50個のポート P18— P19を用いて送信されることとなる(図 12 参照)。なお、第 2の通信制御装置 4において、基準ポート検出用パケットが送信され た時点に割り当てられた最新のポートがポート Ρ7であり、そのポート Ρ7からポート番 号が 50だけ離れたポート P17にバブルパケットが送信されているため、返信パケット の送信時にすでにポート P17が、第 2の情報処理装置 2以外の機器によって使用さ れて 、る場合を除き、 50個の返信ポートの!/、ずれかがバブルパケット送信対象ポー ト P17を用いて第 1の通信制御装置 3に送信されることとなる。そして、第 1の通信制 御装置 3は、 PS NATを用いており、バブルパケットをバブルパケット送信対象ポー ト P17に対して送信している送信履歴が第 1の通信制御装置 3に残っているため、バ ブルパケット送信対象ポート P17を用いて送信された返信パケットのみを受け付ける ことができる。その返信パケットは、第 1の情報処理装置 1のポート P10を介して返信 パケット受付部 17で受け付けられる。
[0111] ここで、この具体例 1においては、この返信パケットの受け付けにより、第 1の情報処 理装置 1と第 2の情報処理装置 2との間の通信が確立することとなるが、続けて再返 信パケットの送信についても説明する。
[0112] 第 2の情報処理装置 2の返信パケット送信部 24は、 50個の返信パケットの送信後 に、返信パケットの送信を終了した旨を、第 2の通信制御装置 4のポート P5を介して サーバ 6に送信する。すると、サーバ 6が返信パケットの送信を終了した旨を受け取り 、その旨を第 1の通信制御装置 3のポート P2を介して第 1の情報処理装置 1に送信 する。第 1の情報処理装置 1の返信パケット受付部 17は、その旨を受け付けると、す でに返信パケットを受け付けているため、返信パケット 17のヘッダに含まれる返信パ ケットの送信された第 2の通信制御装置 4のポート P17のポート番号「23550」を取得 し、そのポート番号と、再返信パケットを送信する旨の指示とを、再返信パケット送信 部 18に渡す (ステップ S105)。なお、返信パケット受付部 17が返信パケットを受け付 けていない場合には、返信パケット受付部 17は、返信パケットを受け付けていない旨 をサーバ 6に送信する。その結果、サーバ 6は、再度、第 2の情報処理装置 2に基準 ポート検出用パケットの送信要求を送信し、第 1の情報処理装置 1と第 2の情報処理 装置 2との接続を確立するための処理が再度行われることとなる (ステップ S101— S 104)。
[0113] 再返信パケット送信部 18は、返信パケット受付部 17から受け取ったポート番号「23 550」のポート P17〖こ対して、再返信パケットを送信する(ステップ S106)。その再返 信パケットは、第 1の通信制御装置 3のポート P13、および第 2の通信制御装置 4のポ ート P17を用いて第 2の情報処理装置 2に送信され、第 2の情報処理装置 2の再返信 パケット受付部 25で受け付けられる。
[0114] また、再返信パケット送信部 18は、再返信パケットの送信後に、再返信パケットの 送信を終了した旨を、第 1の通信制御装置 3のポート P2を介してサーバ 6に送信する 。すると、サーバ 6が再返信パケットの送信を終了した旨を受け取り、その旨を第 2の 通信制御装置 4のポート P5を介して第 2の情報処理装置 2に送信する。第 2の情報 処理装置 2の再返信パケット受付部 25は、その旨を受け付ける。この場合には、再返 信パケット受付部 25が再返信パケットをすでに受け付けているため、第 1の情報処理 装置 1と第 2の情報処理装置 2との間の通信を確立する処理は終了となる (ステップ S 107)。なお、再返信パケット受付部 25が再返信パケットを受け付けていない場合に は、再返信パケット受付部 25は、再返信パケットを受け付けていない旨をサーバ 6に 送信する。その結果、サーバ 6は、再度、第 2の情報処理装置 2に基準ポート検出用 パケットの送信要求を送信し、第 1の情報処理装置 1と第 2の情報処理装置 2との接 続を確立するための処理が再度行われることとなる(ステップ S101— S106)。
[0115] その後、第 1の情報処理装置 1と第 2の情報処理装置 2との間で、サーバ 6を介さな い、 Peer to Peerの UDPによる通信力 第 1の通信制御装置 3のポート P13、およ び第 2の通信制御装置 4のポート P17を介して行われる。
[0116] なお、この具体例 1では、ポート検出用パケットと、バブルパケットとが第 1の通信制 御装置 3における連続したポートを用いて送信された場合について説明した力 例え ば、ポート P12のポート番号が「10040」であり、ポート P14のポート番号が「10043」 である場合のように、ポート検出用パケットと、バブルパケットとが第 1の通信制御装置 3における連続したポートを用いて送信されていない場合には、バブルパケットと、ポ ート検出用パケットとの送信が、ポート検出用パケットの送信で用いられた第 1の通信 制御装置 3のポートと、バブルパケット送信ポートとが連続したポートとなるまで繰り返 される (ステップ S102、 S103)。ここで、ポート検出用パケットの送信で用いられた第 1の通信制御装置 3のポートと、バブルパケット送信ポートとが第 1の通信制御装置 3 における連続したポートとならない理由としては、第 1の通信制御装置 3のローカル側 に第 1の情報処理装置 1以外の装置(図示せず)が接続されており、ポート検出用パ ケットの送信からバブルパケットの送信まで、またはバブルパケットの送信からポート 検出用パケットの送信までに、その装置に対して、第 1の通信制御装置 3のポートが 割り当てられた、ということがある。
[0117] また、この具体例 1において、第 1の情報処理装置 1からの機器 IDの送信や、第 2 の情報処理装置 2からの機器 IDの送信、また、サーバ 6からのアドレス情報の送信等 の装置間での情報の送受信については、第 1の情報処理装置 1等における図示しな い制御部によってなされるものとする。このことは、以下の具体例においても同様であ る。
[0118] また、図 11において、ポート検出用パケットの送信先ポート P15, P16は、同一のポ ートであってもよぐまた、ポート P3と同一であってもよい。
[0119] また、図 11において、第 1の通信制御装置 3が PS NATである場合には、ポート P 9,ポート P10,ポート P11が同一のポートであってもよい。ただし、この場合であって も、ポート P9 ( =ポート P10, P11)は、 1回目のポート検出用パケットの送信時に新た に割り当てられたポートである。また、ポート P15とポート P16とは異なる。
[0120] (具体例 2)
具体例 2では、第 1の通信制御装置 3が Sd NATを用いており、第 2の通信制御装 置 4力 SPS NATを用いて!/、る場合にっ 、て説明する。
[0121] この場合であっても、第 2の情報処理装置 2から第 1の通信制御装置 3に対して返 信パケットを送信するまでは、具体例 1と同様であり、その説明を省略する。なお、こ の具体例 2においても、具体例 1と同様のポート番号等を用いてバブルパケットの送 信等の処理が行われているものとする。この具体例 2の場合には、第 1の通信制御装 置 3において Sd NAT,すなわち受信フィルタフールが Noフィルタの NATを用いて いるため、第 2の情報処理装置 2から送信された 50個の返信パケットは、すべて、第 1の情報処理装置 1のポート P10を介して返信パケット受付部 17で受け付けられる。
[0122] 返信パケット受付部 17は、返信パケットの送信で用いられた第 2の通信制御装置 4 のポート番号を各返信パケットから取得し、そのポート番号を再返信パケット送信部 1 8に渡す。再返信パケット送信部 18は、そのポート番号を受け取り、第 2の通信制御 装置 4の受け取った各ポート番号に対して、再返信パケットを送信する(図 14参照)。 第 1の通信制御装置 3で用いている Sd NATは、送信ポート割り当てルールが Port Sensitiveであるため、第 1の通信制御装置 3におけるバブルパケット送信ポート P1 3を用いて第 2の通信制御装置 4に対して送信を行うことができるのは、第 2の通信制 御装置 4のバブルパケット送信対象ポート P17にパケットを送信した場合のみである 。したがって、図 14で示されるように、バブルパケット送信対象ポート P17以外に送信 された再返信ポートは、第 1の通信制御装置 3で新たに割り当てられたポート P22— P23を用いて送信される。第 2の通信制御装置 4は、 PS NATを用いているため、 返信パケットを送信した第 1の通信制御装置 3のポート以外からの再返信パケットを 受け付けることはできない。したがって、第 2の情報処理装置 2の再返信パケット受付 部 25は、バブルパケット送信対象ポート P17に送信された再返信パケットのみを受け 付けることができる。このようにして、第 1の情報処理装置 1と、第 2の情報処理装置 2 との間での通信が確立されることとなる。
[0123] ここで、第 1の情報処理装置 1から第 2の通信制御装置 4に対して再返信パケットを 送信する意義について説明する。第 1の情報処理装置 1が返信パケットを受け取った としても、その返信パケットの通過したポートを介して、第 1の情報処理装置 1と第 2の 情報処理装置 2との間の通信が確実に確立するわけではない。上記の具体例 2のよ うに、受け取った返信パケットのうち、バブルパケット送信対象ポート P17を介して送 信された返信パケットの経路についてのみ、通信を確立することができるからである。 また、次のような状況も考えられる。具体例 2において、返信パケットがバブルパケット 送信対象ポート P17を用いな 、で送信された場合 (例えば、返信パケットの送信まで に、他の機器によってバブルパケット送信対象ポート P17が用いられた場合)であつ ても、第 1の情報処理装置 1は、すべての返信パケットを受け付けることができる。し かし、第 1の情報処理装置 1が、その返信パケットに対する再返信パケットを送信した としても、その再返信パケットは第 2の情報処理装置 2で受け付けられず、通信は確 立されない。このように、再返信パケットの送信により、第 1の情報処理装置 1と第 2の 情報処理装置 2との間で確立することができ得る Peer to Peerの通信で用いるポ ートの位置を確認することができ、また、第 1の情報処理装置 1と第 2の情報処理装置 2との間での通信を確立できるかどうかを確認することができる。
[0124] (具体例 3)
具体例 3では、第 1の通信制御装置 3が Sd NATを用いており、第 2の通信制御装 置 4が AS NATを用いている場合について説明する。この具体例 3では、バブルパ ケット送信対象ポートを用いない通信が第 1の情報処理装置 1と第 2の情報処理装置 2との間で確立される特殊なケースについて説明する。
[0125] 図 15は、第 2の情報処理装置 2からの返信パケットの送信について説明するための 図である。この返信パケットの送信において、バブルパケット送信対象ポート P17が すでに他の機器によって用いられているため、返信パケットは、バブルパケット送信 対象ポート P17を含まない第 2の通信制御装置 4におけるポート P24— P25を介して 送信されたとする。第 1の通信制御装置 3が Noフィルタの NATを用いているため、第 1の情報処理装置 1は、このすベての返信パケットを受け付ける。
[0126] 図 16は、再返信パケットの送信について説明するための図である。図 16で示され るように、再返信パケット送信部 18が第 2の通信制御装置 4のポート P24— P25に対 して再返信パケット送信したとする。この場合には、第 1の通信制御装置 3が Sd NA Tを用いて 、るため、新たに割り当てられたポート P26— P27を用いて再返信バケツ トが第 2の通信制御装置 4のポート P24— P25に対して送信される。第 2の通信制御 装置 4は、 AS NAT、すなわち、 Address Sensitiveフィルタの NATを用いている ため、これらの再返信パケットは第 2の通信制御装置 4で受け付けられ、第 2の情報 処理装置 2のポート P20— P21に渡される。その後、第 2の情報処理装置 2は、再返 信パケットのうち、いずれか 1つ(例えば、最初に届いたものなど)を選択し、その再返 信パケットの送信された経路 (例えば、第 1の通信制御装置 3のポート P26、第 2の通 信制御装置 4のポート P24)を介して第 1の情報処理装置 1との通信を行うことができ る。
[0127] この具体例 3の状況は、第 1の通信制御装置 3が Noフィルタ、あるいは ASフィルタ を用いており、第 2の通信制御装置 4が Noフィルタ、あるいは ASフィルタを用いてい る場合に妥当する。したがって、これらの場合には、バブルパケット送信ポート P13の 位置を正確に把握することができれば、第 1の情報処理装置 1と第 2の情報処理装置 2との接続を確実に実現することができることとなる。
[0128] また、第 1の通信制御装置 3で用いている NATが Noフィルタである場合には、す ベての返信パケットを第 1の情報処理装置 1で受け付けることができる。また、第 1の 通信制御装置 3で用いて 、る NATが ASフィルタである場合にも、第 2の通信制御装 置 4に対して、バブルパケットを送信しているため、すべての返信パケットを第 1の情 報処理装置 1で受け付けることができる。また、第 1の通信制御装置 3で用いている N ATのポート割り当てルールが Cone、あるいは Address Sensitiveである場合には 、第 1の情報処理装置 1は、受け付けた返信パケットに対して、バブルパケット送信ポ ート P13を用いた再返信パケットの送信を行うことができる。したがって、第 1の通信 制御装置 3で用いて!/、る NATのフィルタが Noフィルタ力 ASフィルタであり、ポート割 り当てルールが Coneか Address Sensitiveである場合には、第 2の通信制御装置 4の NATのタイプによらず、バブルパケット送信ポート P13の位置を正確に把握する ことができれば、第 1の情報処理装置 1と第 2の情報処理装置 2との接続を確実に実 現することができることとなる。
[0129] 以上から、図 17で示されるように、本実施の形態による通信システムでは、第 1の通 信制御装置 3と第 2の通信制御装置 4で用いられる NATのタイプによらずに、通信を 確立することができる。その結果、第 1の通信制御装置 3と第 2の通信制御装置 4で用 いられる NATのタイプに関する判断を行うことなぐ第 1の情報処理装置 1と第 2の情 報処理装置 2との間の通信を確立することができ得る。特に、それらの NATの組み 合わせが特定ものである場合には、返信パケットがバブルパケット送信対象ポートを 用いな!/、で送信されたとしても、バブルパケット送信ポートの位置を正確に検出でき ているときには、第 1の情報処理装置 1と第 2の情報処理装置 2との間の通信を確立 することができる(図 17の「◎」の場合)。なお、それ以外のとき(図 17の「〇」の場合) には、バブルパケット送信ポートの位置を正確に検出できたとしても、バブルパケット 送信対象ポートを用いて返信パケットを送信しなければ、通信を確立することはでき ない。したがって、そのときには、バブルパケット送信対象ポートを用いて返信バケツ トを送信できるまで、通信を確立するための処理が繰り返されることとなる。なお、図 1 7で示されるように、第 1の通信制御装置 3、および第 2の通信制御装置 4は、 Open NAT (NATを用いな!/、)であってもよ!/、。
[0130] (実施の形態 2)
本発明の実施の形態 2による通信システムについて、図面を参照しながら説明する 。本実施の形態による通信システムは、バブルパケット送信ポートの検出や、ポート 幅の検出等をサーバではなぐ情報処理装置において行うことによって、サーバの処 理負荷を軽減するものである。
[0131] 本実施の形態による通信システムの構成は、第 1の情報処理装置 1、第 2の情報処 理装置 2、サーバ 6に代えて、それぞれ第 1の情報処理装置 10、第 2の情報処理装 置 20、サーバ 60を備える以外、図 1と同様であり、その説明を省略する。
[0132] 図 18は、本実施の形態による第 1の情報処理装置 10の構成を示すブロック図であ る。図 18において、第 1の情報処理装置 10は、通信部 11と、基準ポート受付部 12と 、バブルパケット送信部 13と、検出用パケット送信部 14と、ポート幅検出用パケット送 信部 15と、返信パケット受付部 17と、再返信パケット送信部 18と、ポート幅受付部 19 と、検出用ポート情報受付部 71と、バブルパケット送信ポート検出部 72と、バブルパ ケット送信ポート送信部 73と、ポート幅検出用ポート情報受付部 74と、ポート幅検出 部 75とを備える。なお、検出用ポート情報受付部 71、バブルパケット送信ポート検出 部 72、バブルパケット送信ポート送信部 73、ポート幅検出用ポート情報受付部 74、 ポート幅検出部 75以外の構成および動作は、ポート幅受付部 19が第 2の情報処理 装置 20からサーバ 60を介して送信されたポート幅情報を受け付ける以外、実施の形 態 1と同様であり、その説明を省略する。 [0133] 検出用ポート情報受付部 71は、サーバ 60から送信された検出用ポート情報を、通 信部 11を介して受け付ける。ここで、検出用ポート情報とは、検出用パケット送信部 1 4によって送信されたポート検出用パケットが通過した第 1の通信制御装置 3のポート の位置を示す情報である。
[0134] バブルパケット送信ポート検出部 72は、検出用ポート情報受付部 71が受け付けた 検出用ポート情報に基づいて、バブルパケット送信ポートの位置を検出する。バブル パケット送信ポート検出部 72は、ポート幅検出部 75が検出した第 1の通信制御装置 3におけるポート幅を用いて、バブルパケット送信ポートの位置を検出する。このパブ ルパケット送信ポートの位置の検出は、実施の形態 1におけるバブルパケット送信ポ ート検出部 65と同様に行われるものであり、その説明を省略する。なお、バブルパケ ット送信ポート検出部 72は、バブルパケット送信ポートの位置を検出できな力つた場 合に、ポート検出用パケットを再度送信する旨の指示を検出用パケット送信部 14に 渡し、バブルパケットを再度送信する旨の指示をバブルパケット送信部 13に渡す。そ の結果、検出用パケット送信部 14は、その指示に応じてポート検出用パケットを再度 送信する。また、バブルパケット送信部 13も、その指示に応じてバブルパケットを再 度送信する。なお、この再送信は、バブルパケット送信ポート検出部 72がバブルパケ ット送信ポートの位置を検出できるまで、あるいは、所定の上限の回数 (例えば、 10 回など)や、所定の時間(例えば、 30秒など)等の所定の制限まで繰り返される。
[0135] バブルパケット送信ポート送信部 73は、バブルパケット送信ポート検出部 72が検出 したバブルパケット送信ポートの位置を示すバブルパケット送信ポート情報を、サー バ 60を介して第 2の情報処理装置 20に送信する。
[0136] ポート幅検出用ポート情報受付部 74は、ポート幅検出用ポート情報を受け付ける。
ここで、ポート幅検出用ポート情報とは、ポート幅検出用パケット送信部 15によって送 信されたポート幅検出用パケットが通過した第 1の通信制御装置 3のポートの位置を 示す情報である。このポート幅検出用ポート情報は、サーバ 60から送信されたもので ある。
[0137] ポート幅検出部 75は、ポート幅検出用ポート情報受付部 74が受け付けたポート幅 検出用ポート情報に基づいて、第 1の通信制御装置 3におけるポート幅を検出する。 このポート幅の検出は、実施の形態 1におけるポート幅検出部 64と同様に行われるも のであり、その説明を省略する。
[0138] 図 19は、本実施の形態による第 2の情報処理装置 20の構成を示すブロック図であ る。図 19において、第 2の情報処理装置 20は、通信部 21と、基準ポート検出用パケ ット送信部 22と、バブルパケット送信ポート受付部 23と、返信パケット送信部 24と、再 返信パケット受付部 25と、ポート幅検出用パケット送信部 26と、ポート幅検出用ポー ト情報受付部 81と、ポート幅検出部 82と、ポート幅送信部 83とを備える。なお、ポー ト幅検出用ポート情報受付部 81、ポート幅検出部 82、ポート幅送信部 83以外の構 成および動作は、実施の形態 1と同様であり、その説明を省略する。
[0139] ポート幅検出用ポート情報受付部 81は、ポート幅検出用ポート情報を受け付ける。
ここで、ポート幅検出用ポート情報とは、ポート幅検出用パケット送信部 26によって送 信されたポート幅検出用パケットが通過した第 2の通信制御装置 4のポートの位置を 示す情報である。このポート幅検出用ポート情報は、サーバ 60から送信されたもので ある。
[0140] ポート幅検出部 82は、ポート幅検出用ポート情報受付部 81が受け付けたポート幅 検出用ポート情報に基づいて、第 2の通信制御装置 4におけるポート幅を検出する。 このポート幅の検出は、実施の形態 1におけるポート幅検出部 64と同様に行われるも のであり、その説明を省略する。
[0141] ポート幅送信部 83は、ポート幅検出部 82が検出した第 2の通信制御装置 4におけ るポート幅を示す情報であるポート幅情報を、サーバ 60を介して第 1の情報処理装 置 10に送信する。
[0142] 図 20は、本実施の形態によるサーバ 60の構成を示すブロック図である。図 20にお いて、サーバ 60は、通信部 61と、基準ポート検出部 62と、基準ポート送信部 63と、 検出用ポート検出部 91と、検出用ポート情報送信部 92と、ポート幅検出用ポート検 出部 93と、ポート幅検出用ポート情報送信部 94とを備える。なお、検出用ポート検出 部 91、検出用ポート情報送信部 92、ポート幅検出用ポート検出部 93、ポート幅検出 用ポート情報送信部 94以外の構成および動作は、実施の形態 1と同様であり、その 説明を省略する。 [0143] 検出用ポート検出部 91は、第 1の情報処理装置 10から送信されたポート検出用パ ケットを受け付け、そのポート検出用パケットに基づいてポート検出用パケットが通過 した第 1の通信制御装置 3のポートの位置を検出する。そのポート位置の検出は、ポ ート検出用パケットに含まれる(例えば、ポート検出用パケットのヘッダに含まれる)ポ ート検出用パケットが通過した第 1の通信制御装置 3のポートの位置を取得すること によって行われる。
[0144] 検出用ポート情報送信部 92は、検出用ポート検出部 91が検出したポートの位置を 示す検出用ポート情報を第 1の情報処理装置 10に送信する。
[0145] ポート幅検出用ポート検出部 93は、第 1の情報処理装置 10から第 1の通信制御装 置 3を介して送信されたポート幅検出用パケットを受け付け、そのポート幅検出用パ ケットに基づいて、そのポート幅検出用パケットが通過した第 1の通信制御装置 3のポ ートの位置を検出する。また、ポート幅検出用ポート検出部 93は、第 2の情報処理装 置 20から第 2の通信制御装置 4を介して送信されたポート幅検出用パケットを受け付 け、そのポート幅検出用パケットに基づいて、そのポート幅検出用パケットが通過した 第 2の通信制御装置 4のポートの位置を検出する。
[0146] ポート幅検出用ポート情報送信部 94は、ポート幅検出用ポート検出部 93が検出し た、ポート幅検出用パケットが通過した第 1の通信制御装置 3のポートの位置を示す ポート幅検出用ポート情報を第 1の情報処理装置 10に送信する。また、ポート幅検 出用ポート情報送信部 94は、ポート幅検出用ポート検出部 93が検出した、ポート幅 検出用パケットが通過した第 2の通信制御装置 4のポートの位置を示すポート幅検出 用ポート情報を第 2の情報処理装置 20に送信する。
[0147] なお、ポート幅検出用パケットが通過した第 1の通信制御装置 3におけるポートの位 置を検出する第 1のポート幅検出用ポート検出部と、ポート幅検出用パケットが通過 した第 2の通信制御装置 4におけるポートの位置を検出する第 2のポート幅検出用ポ ート検出部とを備えてもよい。同様に、ポート幅検出用パケットが通過した第 1の通信 制御装置 3におけるポートの位置を示すポート幅検出用ポート情報を第 1の情報処 理装置 10に送信する第 1のポート幅検出用ポート情報送信部と、ポート幅検出用パ ケットが通過した第 2の通信制御装置 4におけるポートの位置を示すポート幅検出用 ポート情報を第 2の情報処理装置 20に送信する第 2のポート幅検出用ポート情報送 信部と備えてもよい。それらを 1つで実現したのが、ポート幅検出用ポート検出部 93、 およびポート幅検出用ポート情報送信部 94である。すなわち、ポート幅検出用ポート 検出部 93のうち、ポート幅検出用パケットが通過した第 1の通信制御装置 3における ポートの位置を検出する部分が第 1のポート幅検出用ポート検出部となり、ポート幅 検出用パケットが通過した第 2の通信制御装置 4におけるポートの位置を検出する部 分が第 2のポート幅検出用ポート検出部となる。同様に、ポート幅検出用ポート情報 送信部 94のうち、ポート幅検出用パケットが通過した第 1の通信制御装置 3における ポートの位置を示すポート幅検出用ポート情報を第 1の情報処理装置 10に送信する 部分が第 1のポート幅検出用ポート情報送信部となり、ポート幅検出用パケットが通 過した第 2の通信制御装置 4におけるポートの位置を示すポート幅検出用ポート情報 を第 2の情報処理装置 20に送信する部分が第 2のポート幅検出用ポート情報送信部 となる。
[0148] 次に、本実施の形態による通信システムの動作について説明する。なお、本実施 の形態による通信システムが通信を開始するまでの動作は、バブルパケット送信ポー トの検出や、バブルパケット等の再送信の指示を第 1の情報処理装置 10で行う以外 、実施の形態 1における図 5で示される動作と同様であり、その説明を省略する。
[0149] 次に、図 5のフローチャートにおけるステップ S101の処理について、図 21を用いて 説明する。図 21は、送信側、サーバ、受信側の間における情報のやり取りや処理を 説明するための図である。なお、ステップ S201— S206の処理は、実施の形態 1に おける図 6に関する説明と同様であり、その説明を省略する。
[0150] (ステップ S501)サーバ 60のポート幅検出用ポート検出部 93は、第 1の情報処理 装置 10から送信されたポート幅検出用パケットを受け付ける。そして、ポート幅検出 用ポート検出部 93は、ポート幅検出用パケットのヘッダに含まれる、そのポート幅検 出用パケットの通過した第 1の通信制御装置 3のポートの位置を検出する。
[0151] (ステップ S502)ポート幅検出用ポート情報送信部 94は、ポート幅検出用ポート検 出部 93によって検出された、ポート幅検出用パケットの通過した第 1の通信制御装置 3のポートの位置を示す情報であるポート幅検出用ポート情報を第 1の情報処理装置 10に送信する。そのポート幅検出用ポート情報は、第 1の情報処理装置 10における ポート幅検出用ポート情報受付部 74で受け付けられる。
[0152] (ステップ S503)ポート幅検出部 75は、ポート幅検出用ポート情報受付部 74で受 け付けられたポート幅検出用ポート情報に基づいて、第 1の通信制御装置 3のポート 幅を検出する。なお、このポート幅の検出は、実施の形態 1と同様に行われるもので あり、その説明を省略する。
[0153] (ステップ S504)サーバ 60のポート幅検出用ポート検出部 93は、第 2の情報処理 装置 20から送信されたポート幅検出用パケットを受け付ける。そして、ポート幅検出 用ポート検出部 93は、ポート幅検出用パケットのヘッダに含まれる、そのポート幅検 出用パケットの通過した第 2の通信制御装置 4のポートの位置を検出する。
[0154] (ステップ S505)ポート幅検出用ポート情報送信部 94は、ポート幅検出用ポート検 出部 93によって検出された、ポート幅検出用パケットの通過した第 2の通信制御装置 4のポートの位置を示す情報であるポート幅検出用ポート情報を第 2の情報処理装置 20に送信する。そのポート幅検出用ポート情報は、第 2の情報処理装置 20における ポート幅検出用ポート情報受付部 81で受け付けられる。
[0155] (ステップ S506)ポート幅検出部 82は、ポート幅検出用ポート情報受付部 81で受 け付けられたポート幅検出用ポート情報に基づいて、第 2の通信制御装置 4のポート 幅を検出する。なお、このポート幅の検出は、実施の形態 1と同様に行われるもので あり、その説明を省略する。
[0156] (ステップ S507)ポート幅送信部 83は、第 2の通信制御装置 4のポート幅を示す情 報であるポート幅情報を、そのポート幅情報を第 1の情報処理装置 10に送信する旨 の指示と共にサーバ 60に送信する。
[0157] (ステップ S508)サーバ 60の通信部 61は、ポート幅情報を受信し、そのポート幅情 報を第 1の情報処理装置 10に送信する。そのポート幅情報は、第 1の情報処理装置 10におけるポート幅受付部 19で受け付けられる。
[0158] 次に、図 5のフローチャートにおけるステップ S102の処理について、図 22を用いて 説明する。図 22は、送信側、サーバ、受信側の間における情報のやり取りや処理を 説明するための図である。なお、ステップ S301— S303の処理は、ポート検出用パケ ットがサーバ 60における検出用ポート検出部 91で受け付けられる以外、実施の形態 1における図 8に関する説明と同様であり、その説明を省略する。
[0159] (ステップ S601)サーバ 60の検出用ポート検出部 91は、第 1の情報処理装置 10か ら送信されたポート検出用パケットを受け付ける。そして、検出用ポート検出部 91は、 ポート検出用パケットのヘッダに含まれる、そのポート検出用パケットの通過した第 1 の通信制御装置 3のポートの位置を検出する。
[0160] (ステップ S602)検出用ポート情報送信部 92は、検出用ポート検出部 91によって 検出された、ポート検出用パケットの通過した第 1の通信制御装置 3のポートの位置 を示す検出用ポート情報を第 1の情報処理装置 10に送信する。その検出用ポート情 報は、第 1の情報処理装置 10における検出用ポート情報受付部 71で受け付けられ る。
[0161] (ステップ S603)サーバ 60の検出用ポート検出部 91は、第 1の情報処理装置 10か ら送信されたポート検出用パケットを受け付ける。そして、検出用ポート検出部 91は、 ポート検出用パケットのヘッダに含まれる、そのポート検出用パケットの通過した第 1 の通信制御装置 3のポートの位置を検出する。
[0162] (ステップ S604)検出用ポート情報送信部 92は、検出用ポート検出部 91によって 検出された、ポート検出用パケットの通過した第 1の通信制御装置 3のポートの位置 を示す検出用ポート情報を第 1の情報処理装置 10に送信する。その検出用ポート情 報は、第 1の情報処理装置 10における検出用ポート情報受付部 71で受け付けられ る。
[0163] (ステップ S605)第 1の情報処理装置 10のバブルパケット送信ポート検出部 72は、 ステップ S301、 S303における、 2つのポート検出用パケットの送信で用いられた第 1 の通信制御装置 3のポートの位置と、バブルパケット送信ポートとが連続して 、るかど うかを判断する。なお、具体的な判断手法については、実施の形態 1と同様であり、 その説明を省略する。
[0164] なお、図 22のフローチャートにおいて、第 1の情報処理装置 10がステップ S602で 送信された検出用ポート情報を受信してカゝらバブルパケットを送信する場合について 説明しているが、検出用ポート情報の受信と、バブルパケットの送信との順序はこれ に限定されない。例えば、 2回目のポート検出用パケットの送信 (ステップ S303)を行 つた後に、 1回目の検出用ポート情報の送信 (ステップ S602)、および 2回目の検出 用ポート情報の送信 (ステップ S604)を行ってもよい。また、ステップ S601, S603で 検出したポート位置を示す検出用ポート情報を、まとめて送信してもよい。
[0165] 次に、図 5のフローチャートにおけるステップ S104の処理について、図 23を用いて 説明する。図 23は、送信側、サーバ、受信側の間における情報のやり取りや処理を 説明するための図である。なお、ステップ S403、 S404の処理は、実施の形態 1にお ける図 9に関する説明と同様であり、その説明を省略する。
[0166] (ステップ S701)第 1の情報処理装置 10のバブルパケット送信ポート検出部 72は、 バブルパケット送信ポートの位置を検出する。なお、具体的な判断手法については、 実施の形態 1と同様であり、その説明を省略する。
[0167] (ステップ S702)第 1の情報処理装置 10のバブルパケット送信ポート送信部 73は、 バブルパケット送信ポート情報を、そのバブルパケット送信ポート情報を第 2の情報 処理装置 20に送信する旨の指示と共にサーバ 60に送信する。
[0168] (ステップ S703)サーバ 60の通信部 61は、バブルパケット送信ポート情報を受信し 、そのバブルパケット送信ポート情報を第 2の情報処理装置 20に送信する。そのバ ブルパケット送信ポート情報は、第 2の情報処理装置 20におけるバブルパケット送信 ポート受付部 23で受け付けられる。
[0169] なお、本実施の形態における通信システムの動作の具体例については、第 1の通 信制御装置 3、および第 2の通信制御装置 4におけるポート幅の検出を、それぞれ第 1の情報処理装置 10、および第 2の情報処理装置 20で行い、バブルパケット送信ポ ートの位置の検出を第 1の情報処理装置 10で行い、それらに付随して行われる処理 (例えば、バブルパケット送信ポート情報の第 1の情報処理装置 10から第 2の情報処 理装置 20までの送信など)を行う以外、実施の形態 1における具体例と同様であり、 その説明を省略する。
[0170] 以上から、本実施の形態による通信システムでは、実施の形態 1と同様の効果に加 え、第 1の通信制御装置 3、および第 2の通信制御装置 4におけるポート幅の検出や 、バブルパケット送信ポートの位置の検出等を第 1の情報処理装置 10、および第 2の 情報処理装置 20において行うことによって、サーバ 60における処理負担を軽減する ことができる。特に、待ち受けの必要な処理 (例えば、 1回目のポート検出用パケット が送信された後に、 2回目のポート検出用パケットが送信されるのを待つ処理など) は処理負担が大きいため、そのような待ち受けの必要な処理をサーバで行わないこ とにより、サーバ 60における処理負担が大幅に軽減される。
[0171] なお、本実施の形態では、第 1の通信制御装置 3におけるポート幅の検出を第 1の 情報処理装置 10で行う場合について説明したが、第 1の情報処理装置 10では、バ ブルパケット送信ポートの検出、およびバブルパケット送信ポートの送信を行い、第 1 の通信制御装置 3におけるポート幅の検出は、実施の形態 1と同様にサーバにおい て行ってもよい。同様に、第 2の通信制御装置 4におけるポート幅の検出、およびバ ブルパケット送信ポートの位置の検出のいずれかを、実施の形態 1と同様にサーバ において行ってもよい。
[0172] また、本実施の形態では、第 2の通信制御装置 4におけるポート幅の検出を第 2の 情報処理装置 20で行う場合にっ 、て説明したが、第 2の通信制御装置 4におけるポ ート幅の検出を第 1の情報処理装置 10において行ってもよい。このようにすることで、 第 2の情報処理装置 20から第 1の情報処理装置 10に、サーバ 60を介してポート幅 情報を送信しなくてよくなる。なお、この場合には、第 2の情報処理装置 20から送信 されたポート幅検出用パケットの通過した第 2の通信制御装置 4におけるポートの位 置を示す情報であるポート幅検出用ポート情報は、サーバ 60から第 1の情報処理装 置 10に送信されることになる。
[0173] また、本実施の形態では、バブルパケット送信ポートの検出を第 1の情報処理装置 10で行う場合について説明したが、バブルパケット送信ポートの検出を第 2の情報処 理装置 20において行ってもよい。このようにすることで、第 1の情報処理装置 10から 第 2の情報処理装置 20に、サーバ 60を介してバブルパケット送信ポート情報を送信 しなくてよくなる。なお、この場合には、第 1の情報処理装置 10から送信されたポート 検出用パケットの通過した第 1の通信制御装置 3におけるポートの位置を示す情報で ある検出用ポート情報は、サーバ 60から第 2の情報処理装置 20に送信されることに なる。また、この場合には、第 1の通信制御装置 3におけるポート幅の検出を第 2の情 報処理装置 20にお!/、て行ってもよ!、。
[0174] また、本実施の形態では、基準ポート情報がサーバ 60から第 1の情報処理装置 10 に送信される場合について説明したが、基準ポート情報は、基準ポート検出用バケツ トを送信した第 2の情報処理装置 20に送信されてもよい。この場合には、第 2の情報 処理装置 20からサーバ 60を介して、第 1の情報処理装置 10に基準ポート情報が再 度、送信されること〖こなる。
[0175] また、本実施の形態において、ポート幅検出用パケット、基準ポート検出用パケット 、ポート検出用パケットに、それらのパケットが通過した通信制御装置におけるポート の位置を示す情報を送信する情報処理装置を特定するための情報 (例えば、機器 I Dや IPアドレスなど)が含まれており、サーバ 60では、その情報に基づいて、検出し たポートの位置を示す情報を送信してもよい。例えば、ポート幅検出用パケット送信 部 15が送信するポート幅検出用パケットに、ポート幅検出用ポート情報の送信先で ある第 1の情報処理装置 10の機器 IDが含まれており、ポート幅検出用ポート情報送 信部 94は、その機器 IDに対応する第 1の情報処理装置 10にポート幅検出用ポート 情報を送信してもよい。
[0176] (実施の形態 3)
本発明の実施の形態 3による通信システムについて、図面を参照しながら説明する 。本実施の形態による通信システムは、片方の情報処理装置が、通信制御装置を介 さな 、で直接通信を行うものである。
[0177] 図 24は、本実施の形態による通信システムの構成を示すブロック図である。図 24 において、本実施の形態による通信システムは、第 1の情報処理装置 1と、第 2の情 報処理装置 2と、第 1の通信制御装置 3と、サーバ 6とを備える。なお、この図 24で示 される本実施の形態による通信システムは、第 2の通信制御装置を備えない以外、 実施の形態 1による通信システムと同様のものである。また、第 1の情報処理装置 1、 第 2の情報処理装置 2、サ一ノ^の構成および動作は、実施の形態 1と同様であり、 その説明を省略する。
[0178] ここで、第 2の情報処理装置 2は、通信制御装置を介さないで通信を行うものである ため、第 2の情報処理装置 2は、 Full Cone NATの通信制御装置を介して通信を 行っているように判断される。したがって、本実施の形態における動作は、実施の形 態 1において第 2の通信制御装置 4が Full Cone NATである場合と同様の処理と なり、第 1の情報処理装置 1と第 2の情報処理装置 2との間の通信を確立することがで きる(図 17において、片方の NATが Open NATである場合が、本実施の形態に対 応する)。
[0179] 以上のように、本実施の形態による通信システムによれば、第 2の情報処理装置 2 が通信制御装置を介さないで通信を行う場合であっても、第 1の情報処理装置 1と第 2の情報処理装置 2との間の通信を確立することができる。
[0180] なお、本実施の形態では、実施の形態 1の通信システムにお 、て、第 2の通信制御 装置を備えな 、構成にっ 、て説明した力 実施の形態 2の通信システムにお 、て、 第 2の通信制御装置を備えない構成であってもよい。このような、第 2の情報処理装 置が通信制御装置を介さない場合であっても、第 1の情報処理装置と第 2の情報処 理装置との間の通信を確立することができる。
[0181] また、本実施の形態では、第 2の情報処理装置 2が通信制御装置を介さな 、で通 信を行う場合について説明したが、第 2の情報処理装置 2は、通信制御装置を介して 通信を行い、第 1の情報処理装置 1が通信制御装置を介さないで通信を行う場合で あっても、同様に第 1の情報処理装置 1と第 2の情報処理装置 2との間の通信を確立 することができる。
[0182] なお、上記各実施の形態において、サーバ 6, 60が情報処理装置に相手方の通信 制御装置の IPアドレスを通知する機能を有する場合について説明したが、この機能 は、サーノ 6等とは別のサーバにおいて実現されてもよい。すなわち、一方の情報処 理装置に他方の通信制御装置のアドレスを通知するサーバと、バブルパケット送信 ポートを検出する処理等を行うサーバとは別のサーバであってもよい。すなわち、図 2 5で示される通信システムにおいて、第 1の情報処理装置 1、および第 2の情報処理 装置 2は、第 1の通信制御装置 3、および第 2の通信制御装置 4のアドレスをアドレス サ一ノ^ bから取得し、情報処理装置間の通信を確立する処理においては、サーバ 6 aを用いるようにしてもよい。
[0183] また、一方の情報処理装置に他方の通信制御装置 (通信制御装置を備えない場 合には情報処理装置)のアドレスを通知する処理や、発呼側の情報処理装置が相手 方(着呼側)の情報処理装置を呼び出す処理等において、 SIP (Session Initiatio n Protocol)を用いてもよい。
[0184] また、上記各実施の形態では、基準ポートが基準ポート検出用パケットの送信時に 、最新に割り当てられるポートであると説明したが、この基準ポートは最新に割り当て られるポートでなくてもよい。例えば、第 2の通信制御装置 4に接続されている機器が 第 2の情報処理装置 2、 20のみであり、第 2の通信制御装置 4で使用されているポー トの数を大体把握することができる場合には、サーバ 6、 60との通信で用いている第 2の通信制御装置 4のポートを基準ポートとしてもよい。この場合には、基準ポート検 出用パケットは、サーバ 6、 60と通信を行うパケットとなる。
[0185] また、上記各実施の形態では、主にポート検出用パケットをバブルパケットの送信 の前後で 2回送信する場合について説明したが、ポート検出用パケットをバブルパケ ットの送信の前後のいずれか 1回送信するだけでもよい。この場合には、バブルパケ ット送信ポートと、ポート検出用パケットの送信で用いられた第 1の通信制御装置 3の ポートとが連続していると仮定してバブルパケット送信ポートの検出を行う。もし、その 仮定が正しくな力つた場合には、再度、基準ポート検出用パケットの送信等を行うこと となる (ステップ S 101からの処理を繰り返す)。
[0186] また、上記各実施の形態では、バブルパケット送信ポート検出部 65、 72によって、 バブルパケット送信ポートの位置を検出できるかどうか判断してから、バブルパケット 送信ポートの位置の検出を行う場合について説明したが、所定の場合には、その判 断を行わないで、バブルパケット送信ポートの位置の検出を行ってもよい。その所定 の場合とは、例えば、第 1の通信制御装置 3に第 1の情報処理装置 1、 10以外が接 続されておらず、バブルパケット送信ポートと、ポート検出用パケットの送信で用いら れた第 1の通信制御装置 3のポートとが連続する可能性が高い場合などがある。もし この場合に、検出したバブルパケット送信ポートの位置が誤ったものであり、第 1の通 信制御装置 3で用いて 、る NATのタイプが所定のものであれば、返信パケットを第 1 の情報処理装置 1、 10が受け付けられないこととなり、再度、基準ポート検出用パケ ットの送信力も繰り返されることとなる。 [0187] また、バブルパケット送信ポート検出部 65、 72において、バブルパケット送信ポート と、ポート検出用パケットの送信で用いられた第 1の通信制御装置 3のポートとが連続 しないと判断された場合には、上記各実施の形態における説明のように再送信指示 を第 1の情報処理装置 1に送信したり、バブルパケット送信装置 13等に再送信の指 示を行ったりしてもよぐあるいは、通信の確立の処理を終了してもよぐ基準ポート検 出用パケットの送信からの処理を再度行ってもょ 、。
[0188] また、バブルパケット送信ポート検出部 65、 72では、バブルパケット送信ポートと、 ポート検出用パケットの送信で用いられた第 1の通信制御装置 3のポートとが連続で あるかどうかの判断を、連続である蓋然性が高い場合には連続であると判断すること により行ってもよい。例えば、第 1の通信制御装置 3のポート幅が「1」と「2」で変化し 得る場合 (例えば、時間的に変わる場合)には、ポート検出用パケットの送信で用いら れた第 1の通信制御装置 3のポートの間隔が「2」、 「3」、 「4」であれば連続である可 能性があるため、連続であると判断してその後の処理に進むようにしてもよい。なお、 この場合でも、例えば、ポート検出用パケットの送信で用いられた第 1の通信制御装 置 3のポートの間隔が「5」であれば、連続でな!、と判断される。
[0189] また、上記各実施の形態では、ポート幅検出部 64、 75、 82によってポート幅を検 出する場合について説明したが、このポート幅は、ユーザによる手入力や所定の記 録媒体 (例えば、 CD— ROMや着脱可能なメモリ等)、通信等によってサーバ 6、 60 や第 1の情報処理装置 1、 10に渡されてもよぐあるいは、第 1の通信制御装置 3等に おいて記憶されているポート幅を取得してもよい。このことは、第 1の情報処理装置 1 、 10等が第 2の通信制御装置 4等の IPアドレスを知ることにつ 、ても 、えることである 。すなわち、 IPアドレスが、ユーザの手入力等によって第 1の情報処理装置 1、 10等 に入力されてもよい。
[0190] また、上記各実施の形態では、第 1の情報処理装置 1、 10がバブルパケット、およ びポート検出用パケットを、第 1の情報処理装置 1、 10のそれぞれ新たなポートを用 いて送信する場合について説明したが、例えば、第 1の情報処理装置 1が第 1の通 信制御装置 3が Port Sensitiveのポート割り当てルールである NATを用いて!/、るこ とを検知した場合には、第 1の情報処理装置 1、 10は、バブルパケット、およびポート 検出用パケットを、第 1の情報処理装置 1、 10の同一のポートから送信してもよい。た だし、この場合には、ポート検出用パケットの送信先のポート(サーバ 6、 60のポート) を異なるものにしておく必要がある。
[0191] また、上記各実施の形態では、返信パケットの送信時に新たに割り当てられた第 2 の通信制御装置 4のポートを用いて返信パケットを送信する場合にっ 、て説明した 力 これは一例であって、返信パケットの送信で用いられる第 2の通信制御装置 4の ポートに、それまでに使用されているポート、例えば、基準ポート検出用パケットの送 信で用いられたポートなどが含まれて 、てもよ 、。
[0192] また、基準ポートからバブルパケット送信対象ポートまでにお 、て割り当て可能なポ 一トの数(α )を、バブルパケット等の再送を行うごとに、大きくしてもよい。すなわち、 バブルパケット送信部 13は、バブルパケット等を再送するごとに、より基準ポートから 離れたバブルパケット送信対象ポートに対してバブルパケットを送信してもよ 、。この ようにすることで、返信パケットが送信されるまでにバブルパケット送信対象ポートが 使用されることを、より回避しやすくなる。
[0193] また、上記各実施の形態では、返信パケット送信部 24がバブルパケット送信部 13 から、サーバ 6を介して、基準ポートからバブルパケット送信対象ポートまでにおいて 割り当て可能なポートの数(α )を受け付ける場合について説明したが、そのひの値 は、サーバ 6、 60から、バブルパケット送信部 13と返信パケット送信部 24とに送信さ れてもよく(この場合には、ポート幅情報が第 1の情報処理装置 1に送信されなくても よい)、また、第 1の情報処理装置 1、 10、および第 2の情報処理装置 2、 20において 、その αの値があら力じめ設定されていてもよい。
[0194] また、上記各実施の形態では、返信パケット送信部 24が、基準ポートからバブルパ ケット送信対象ポートまでにお 、て割り当て可能なポートの数 ( a )だけの返信バケツ トを送信すると説明したが、返信パケット送信部 24は、 ひ以上の返信パケットを送信 してもよく、 α以下の返信パケットを送信してもよい。例えば、返信パケット送信部 24 は、 αの値をバブルパケット送信部 13からサーバ 6、 60を介して受け取るのではなく 、基準ポートとバブルパケット送信対象ポートとのポート番号の差を受け取り、その差 の値に対応する数の返信パケットを送信してもよい。この場合には、返信パケット送 信部 24は、 αの倍数の返信パケットを送信することとなる。ここで、図 6のステップ S2 09に関する説明で述べたように、ポート幅検出部 68、 82で検出した第 2の通信制御 装置 4におけるポート幅が、実際のポート幅の倍数である可能性がある場合には、基 準ポートとバブルパケット送信対象ポートとのポート番号の差の値を、返信パケットの 個数とした方がょ 、。バブルパケット送信対象ポートを用いた返信パケットの送信を、 より確実に行うことができるからである。また、例えば、第 2の情報処理装置 2、 20が、 第 2の通信制御装置 4において基準ポートの割り当ての後に割り当てられたポートの 数を知っている場合には、 a力もそれだけの数を引いた数の返信パケットを送信して もよい。そのようにしても、返信パケットがバブルパケット送信対象ポートを用いて送信 されることになる力らである(ただし、第 2の通信制御装置 4のポート幅の検出が正確 である必要がある)。したがって、バブルパケット送信対象ポートの 1つ前のポートまで が割り当てられているような場合には、返信パケットは 1つだけ送信されてもよい。
[0195] また、上記各実施の形態では、返信パケットを受け付けた後に、再返信パケットを 送信する場合について説明したが、返信パケットの受け付けによって第 1の情報処理 装置 1、 10と第 2の情報処理装置 2、 20との間の通信を確立することができる場合に は、再返信パケットを送付しなくてもよい。例えば、第 1の情報処理装置 1、 10がパブ ルパケット送信対象ポートを用いて送信された返信パケットを受け付けた場合には、 バブルパケット送信ポート、およびバブルパケット送信対象ポートを介した Peer to Peer通信が可能であるため、再返信パケットを送信しなくてもよ!、。
[0196] また、上記各実施の形態の具体例では、返信パケットを受け付けることができたか どうかを、第 2の情報処理装置 2、 20から返信パケットを送信した旨をサーバ 6、 60を 介して受け取った時に、返信パケットをすでに受け付けて!/、るかどうかで判断した力 例えば、バブルパケットを送信してカゝら所定時間(例えば、 15秒など)経過しても返信 パケットを受け付けない場合には、返信パケットを受け付けることができな力つた (す なわち、通信を確立できな力つた)と判断してもよい。また、このことは、再返信バケツ トについても同様であり、返信パケットを送信してカゝら所定時間経過しても再返信パ ケットを受け付けて 、な 、場合には、再返信パケットを受け付けることができな力 た (すなわち、通信を確立できなかった)と判断してもよい。 [0197] また、上記各実施の形態では、 1つのサーバ 6、 60によって、基準ポート情報の送 信や、バブルパケット送信ポートの検出等を行う場合について説明したが、複数のサ ーバによってそれらの処理を行ってもよい。
[0198] (実施の形態 4)
本発明の実施の形態 4による通信システムについて、図面を参照しながら説明する 。本実施の形態による通信システムでは、上記各実施の形態において説明したパブ ルパケット送信ポートの位置の検出方法を用いて、 SIPによる通信を行う場合につい て説明する。
[0199] 図 26は、本実施の形態による通信システムの構成を示すブロック図である。図 26 において、本実施の形態による通信システムは、第 1の情報処理装置 30と、通信制 御装置 3と、第 2の情報処理装置 40と、ポート検出サーバ 51と、 SIPサーバ 52とを備 える。なお、通信制御装置 3は、 NAT機能を有しており、アドレスの変換、ポートの割 り当て、パケットのフィルタリング等を行うものであり、上記各実施の形態における第 1 の通信制御装置 3と同様のものであるため、その説明を省略する。
[0200] 図 27は、本実施の形態による第 1の情報処理装置 30の構成を示すブロック図であ る。図 27において、第 1の情報処理装置 30は、通信部 11と、バブルパケット送信部 1 3と、検出用パケット送信部 14と、ポート幅検出用パケット送信部 15と、検出用ポート 情報受付部 71と、バブルパケット送信ポート検出部 72と、ポート幅検出用ポート情報 受付部 74と、ポート幅検出部 75と、 SIP処理部 31とを備える。なお、 SIP処理部 31 以外の構成および動作は、実施の形態 2と同様のものであり、その説明を省略する。 ただし、バブルパケット送信部 13は、基準ポート受付部 12が受け付けた基準ポート 情報の示す基準ポートの位置に基づ 、てバブルパケットを送信するのではなぐ SIP 処理部 31から受け取ったバブルパケット送信対象ポートの位置を示す情報に基づい て、そのバブルパケット送信対象ポートに対してバブルパケットを送信する。
[0201] SIP処理部 31は、 SIPに関する処理を行う。具体的には、 SIPサーバ 52との間で、 接続要求の送信や、通信相手のアドレス、ポート番号等の取得等の処理を行う。これ らの処理については、従来力 行われている処理と同様であるため、その説明を省 略する。 [0202] 第 2の情報処理装置 40は、 SIPサーバ 52を介して他のクライアント端末と Peer to Peerの音声通信を行う端末装置 (例えば、 VoIPの電話端末装置)である。第 2の 情報処理装置 40は、第 2の情報処理装置 40の IPアドレスと、送信ポートの位置と、 受信ポートの位置とを SIPサーバ 52を介して他のクライアント端末に教えるものであり 、また、他のクライアント端末の受信ポートを、 SIPサーバ 52を介して受け取り、 Peer to Peerの音声通信において、パケットの送信先をその受信ポートに設定すること ができるものである。ここで、あるクライアント端末の送信ポートとは、そのクライアント 端末が他のクライアント端末に対して情報を送信するポートである。また、あるクライァ ント端末の受信ポートとは、そのクライアント端末が他のクライアント端末力も情報を受 信するポートである。第 2の情報処理装置 40は、 SIPの一般的なクライアント端末で あり、その詳細な説明を省略する。
[0203] 図 28は、本実施の形態によるポート検出サーバ 51の構成を示すブロック図である 。図 28において、ポート検出サーバ 51は、第 1の情報処理装置 30から送信されたバ ブルパケットの通過した通信制御装置 3のポートの位置を検出するための処理を行う ものである。ポート検出サーバ 51は、通信部 61と、検出用ポート検出部 91と、検出 用ポート情報送信部 92と、ポート幅検出用ポート検出部 93と、ポート幅検出用ポート 情報送信部 94とを備える。なお、これらの各構成は、実施の形態 2と同様であり、そ の説明を省略する。
[0204] SIPサーバ 52は、 SIPに関する処理を行うサーバである。 SIPに関する処理として は、例えば、クライアントからのアドレス通知を受けてアドレスを登録するレジストラの 処理や、クライアントのアドレスを管理するロケーション ·サービスの処理、クライアント 力もの発呼要求を受けて、ロケーション 'サービスであて先のアドレスを検索し、あて 先のクライアントに転送するプロキシサーバの処理などである。なお、この SIPサーバ 52の有する各機能は、 2以上のサーバによって実現されてもよい。また、この SIPサ ーバが、第 1の情報処理装置 30側と、第 2の情報処理装置 40側とでそれぞれ備えら れていてもよい。この場合には、例えば、第 1の情報処理装置 30、第 1の SIPサーバ 、第 2の SIPサーバ、第 2の情報処理装置 40という経路によって、第 1の情報処理装 置 30から第 2の情報処理装置 40までの情報のリレーが行われる。この SIPサーバ 52 の処理は、従来力 行われている処理と同様であるため、その詳細な説明を省略す る。
[0205] 次に、本実施の形態による通信システムの動作について説明する。図 29は、発呼 側、ポート検出サーバ 51、 SIPサーバ 52、着呼側の間における情報のやり取りゃ処 理を説明するための図である。なお、図 29では、第 1の情報処理装置 30、通信制御 装置 3を発呼側であるとし、第 2の情報処理装置 40を着呼側であるとする。
[0206] (ステップ S801)発呼側の装置である第 1の情報処理装置 30と、ポート検出サーバ 51との間で、所定のパケットの送受信を行うことにより、発呼側の通信制御装置 3の ポート幅を検出する。このポート幅の検出の具体的な処理については、実施の形態 2 の図 21におけるステップ S206、 S501、 S502、 S503と同様であり、その説明を省 略する。
[0207] (ステップ S802)第 1の情報処理装置 30は、 SIPサーバ 52に第 2の情報処理装置 40との通信を要求する旨の通信要求を送信する。この通信要求では、通信先のクラ イアント (すなわち、第 2の情報処理装置 40)の IPアドレスと、送信ポートの位置と、受 信ポートの位置とを第 1の情報処理装置 30に送信する旨の指示が含まれているもの とする。
[0208] (ステップ S803) SIPサーバ 52は、第 1の情報処理装置 30から送信された通信要 求を、第 2の情報処理装置 40に中継する。そして、その通信要求は、第 2の情報処 理装置 40で受信される。
[0209] (ステップ S804)第 2の情報処理装置 40は、第 2の情報処理装置 40の IPアドレス、 送信ポートの位置、受信ポートの位置を示す情報を含む通信先情報を SIPサーバ 5
2に送信する。
[0210] (ステップ S805) SIPサーバ 52は、第 2の情報処理装置 40から送信された通信先 情報を、第 1の情報処理装置 30に中継する。そして、その通信先情報は、第 1の情 報処理装置 30の SIP処理部 31で受け付けられる。
[0211] (ステップ S806)第 1の情報処理装置 30は、ポート検出パケットや、バブルパケット を送信し、それに対して、ポート検出サーバ 51から、検出用ポート情報を受信する。 このバブルパケット等の送受信の具体的な処理については、実施の形態 2の図 22の 処理と同様であり、その説明を省略する。なお、本実施の形態では、バブルパケット は、 SIP処理部 31で受け付けられた通信先情報を用いて、第 2の情報処理装置 40 の送信ポートに送信される。すなわち、本実施の形態では、バブルパケット送信対象 ポートは、第 2の情報処理装置 40の送信ポートである。また、連続性の判断(図 21の ステップ S605)においては、ステップ S801で検出された通信制御装置 3のポート幅 が用いられる。
[0212] (ステップ S807)第 1の情報処理装置 30のバブルパケット送信ポート検出部 72は、 バブルパケット送信ポートの位置を検出可能であるかどうか判断する。ステップ S806 における連続性の判断(図 21のステップ S605)において、 2つのポート検出用バケツ トの送信で用いられた通信制御装置 3のポートと、バブルパケット送信ポートとが連続 して!/ヽると判断された場合には、バブルパケット送信ポートの位置を検出可能である と判断してステップ S808に進み、そうでない場合には、バブルパケット送信ポートの 位置を検出可能でないと判断してステップ S806に戻る。
[0213] (ステップ S808)バブルパケット送信ポート検出部 72は、バブルパケット送信ポート の位置を検出する。このバブルパケット送信ポートの位置力 発呼側における受信ポ ートの位置となる。
[0214] (ステップ S809) SIP処理部 31は、通信制御装置 3のグローバル側の IPアドレスと 、ステップ S808で検出されたバブルパケット送信ポート (すなわち、受信ポート)の位 置とを含む通信要求を、 SIPサーバ 52に送信する。なお、通信制御装置 3のグロ一 バル側の IPアドレスについては、あら力じめ、ポート幅の検出等の処理において取得 しておくものとする。
[0215] (ステップ S810) SIPサーバ 52は、第 1の情報処理装置 30から送信された通信要 求を、第 2の情報処理装置 40に中継する。そして、その通信要求は、第 2の情報処 理装置 40で受信される。
[0216] (ステップ S811)第 2の情報処理装置 40は、受信した通信要求に対して、接続準 備が完了した旨の応答を送信する。
[0217] (ステップ S812) SIPサーバ 52は、その応答を第 1の情報処理装置 30に中継する [0218] (ステップ S813)第 1の情報処理装置 40は、第 2の情報処理装置 40から受け取つ た応答に対する確認を送信する。
[0219] (ステップ S814) SIPサーバ 52は、その確認を第 2の情報処理装置 40に中継する 。このようにして、発呼側と着呼側での Peer to Peerでの接続を行う準備が完了し 、第 1の情報処理装置 30が第 2の情報処理装置 40の受信ポートに情報を送信し、第 2の情報処理装置 40が通信制御装置 3の受信ポート (バブルパケット送信ポート)に 情報を送信することによって、第 1の情報処理装置 30と、第 2の情報処理装置 40との 間での、 SIPサーバ 52等のリレーサーバを介さない通信が行われることになる。
[0220] なお、図 29の各ステップの処理の順序については、ある程度の任意性がある。例 えば、ステップ S801のポート幅の検出処理は、ステップ S806のバブルパケット等の 送受信の処理よりも以前に行われるのであれば、通信要求の送信処理 (ステップ S8 02)や、通信先情報の送信処理 (ステップ S804)の後に実行されてもよ!、。
[0221] 次に、本実施の形態による通信システムの動作について、具体例を用いて説明す る。この具体例において、第 1の情報処理装置 30、および第 2の情報処理装置 40は 、あらかじめ SIPサーバ 52に対して、アドレス情報の登録を行っているものとする。ま た、第 1の情報処理装置 30の機器 IDは、「AAA@abc. . . com」であり、第 2の情報 処理装置 40の機器 IDは、「BBB@abc. . . com」であるとする。ここで、この具体例 は、機器 IDが「AAA@abc. . . com」等である場合について説明する力 機器 IDは 、メールアドレスや、電話番号などのように、クライアント端末を特定できる情報であれ ば、その形式を問わず、どのようなものであってもよい。
[0222] まず、第 1の情報処理装置 30は、ポート検出サーバ 51に対して、ポート幅検出用 パケットを送信することにより、通信制御装置 3のポート幅の検出を行う(ステップ S80 D oこの処理の詳細については、実施の形態 2と同様であり、その説明を省略する。
[0223] 次に、第 1の情報処理装置 30は、通信要求を、図 30で示されるポート P1から SIP サーバ 52のポート P3に送信する(ステップ S802)。この通信要求は、いわゆる「INV ITEリクエスト」と呼ばれるものである。この通信要求には、第 1の情報処理装置 30の 機器 ID「AAA@abc. . . com」と、通信を要求する相手先の第 2の情報処理装置 4 0の機器10 ¾8 @&1) . . com」とが含まれる。また、この通信要求には、 IPァドレ スと、送信ポートの位置と、受信ポートの位置を示す情報を送信する旨の指示が含ま れている。なお、第 2の情報処理装置 40が通信要求を受信することにより、 IPァドレ ス等を送信する旨の指示を受信したと判断してもよい。すなわち、通信要求に指示の コマンドが含まれて 、なくてもよ!、。
[0224] その通信要求は、 SIPサーバ 52で受信される。そして、 SIPサーバ 52は、第 2の情 報処理装置40の機器10 ¾8 @&1) . . com」に対応する IPアドレスとポート番号 を検索し、その IPアドレスのポート番号に対して、通信要求を送信する (ステップ S80 3)。
[0225] 第 2の情報処理装置 40は、その通信要求を受信すると、第 2の情報処理装置 40の IPアドレスと、送信ポート sPortの位置と、受信ポート rPortの位置とを示す情報であ る通信先情報を SIPサーバ 52のポート P3に送信する(ステップ S804)。この通信先 情報にも、第 1の情報処理装置 30の機器 IDと、第 2の情報処理装置 40の機器 IDと が含まれている。なお、通常の SIPでは、通信先情報には、通信先の送信ポートの位 置は含まれない。したがって、通信先情報に通信先の送信ポートの位置が含まれる 点については、 SIPの拡張である。
[0226] その通信先情報は、 SIPサーバ 52で受信され、通信制御装置 3を介して第 1の情 報処理装置 30に送信される (ステップ S805)。その通信先情報は、第 1の情報処理 装置 30の SIP処理部 31で受け付けられる。 SIP処理部 31は、その通信先情報に含 まれる第 2の情報処理装置 40の IPアドレスと、送信ポート sPortの位置を示す情報を 、バブルパケット送信部 13に渡す。
[0227] その後、バブルパケットの送信処理等が行われる(ステップ S806)。具体的には、 検出用パケット送信部 14は、ポート検出用パケットを、第 1の情報処理装置 30にお V、て新たに割り当てられたポート P5から、ポート検出サーバ 51のポート PI 1に送信 する。そのポート検出用パケットは、ポート検出サーバ 51の検出用ポート検出部 91 で受け付けられ、ポート検出用パケットのヘッダに含まれる通信制御装置 3のポート P 8のポート番号が検出される。検出用ポート情報送信部 92は、そのポート P8のポート 番号をペイロードに含む検出用ポート情報を、通信制御装置 3のポート P8に送信す る。その検出用ポート情報は、通信制御装置 3においてアドレス変換され、第 1の情 報処理装置 30のポート P5に送信される。そして、検出用ポート情報受付部 71にお いて、その検出用ポート情報が受け付けられる。
[0228] そのポート検出用パケットの送信の直後に、バブルパケット送信部 13は、バブルパ ケットを第 2の情報処理装置 40のポート sPortに送信する。そのバブルパケットは、第 1の情報処理装置 30のポート P6から送信される。ここで、ポート P6は、ポート P5と異 なるポートであり、バブルパケットの送信時に第 1の情報処理装置 30において新たに 割り当てられたポートである。
[0229] そのバブルパケットの送信の直後に、検出用パケット送信部 14は、再度、ポート検 出用パケットを、ポート検出サーバ 51のポート P11に送信する。そのポート検出用パ ケットは、第 1の情報処理装置 30のポート P7から送信される。ここで、ポート P7は、ポ ート P5、ポート P6と異なるポートであり、ポート検出用パケットの送信時に第 1の情報 処理装置 30において新たに割り当てられたポートである。そのポート検出用パケット は、ポート検出サーバ 51において受信される。また、 1回目のポート検出用パケットの 場合と同様にして、検出用ポート情報がポート検出サーバ 51から第 1の情報処理装 置 30に送信される。
[0230] 第 1の情報処理装置 30の検出用ポート情報受付部 71は、この検出用ポート情報を 受け付け、 2つのポート検出用パケットの送信で用いられた通信制御装置 3のポート の位置と、バブルパケット送信ポートとが連続しているかどうか判断する。この判断は 、ポート P10と、ポート P8との差力 ステップ S801で検出された通信制御装置 3のポ ート幅の 2倍に等しいかどうかによつて判断される。ポート P10と、ポート P8との差力 通信制御装置 3のポート幅の 2倍であったとすると、バブルパケット送信ポート検出部 72は、 2つのポート検出用パケットの送信で用いられた通信制御装置 3のポートと、 バブルパケット送信ポートとが連続して 、ると判断し、バブルパケット送信ポートを検 出可能であると判断して (ステップ S807)、そのポート P8のポート番号と、ポート P10 のポート番号とのちょうど真ん中のポート番号を、バブルパケット送信ポートの位置と して検出する (ステップ S808)。バブルパケット送信ポート検出部 72は、その検出し たバブルパケット送信ポートの位置を、 SIP処理部 31に渡す。
[0231] SIP処理部 31は、そのバブルパケット送信ポートの位置と、通信制御装置 3のグロ 一バル側のアドレスとを含む通信要求を再度、 SIPサーバ 52に送信する (ステップ S 809)。この通信要求も、いわゆる「INVITEリクエスト」と呼ばれるものであり、第 1の 情報処理装置 30の機器 IDと、第 2の情報処理装置 40の機器 IDとが含まれる。その 通信要求は、 SIPサーバ 52において中継され、第 2の情報処理装置 40に送信され る(ステップ S810)。この通信も、ポート P1— P4を介して行われる。
[0232] 第 2の情報処理装置 40は、その通信要求を受信することによって、発呼側の IPアド レスと、受信ポートの位置とを知ることができる。また、第 2の情報処理装置 40は、通 信要求に対する応答を SIPサーバ 52に送信する (ステップ S811)。この応答にも、第 1の情報処理装置 30と、第 2の情報処理装置 40との機器 IDが含まれている。その応 答は、 SIPサーバ 52において中継され、通信制御装置 3のポート P2を介して第 1の 情報処理装置 30に送信される (ステップ S812)。
[0233] 通信の相手側からの応答に対して、 SIPサーバ 52経由で、応答に対する確認を送 信する(ステップ S813、 S814)。この確認の送信は、いわゆる「ACK」と呼ばれるも のである。その後、図 31で示されるように、第 1の情報処理装置 30からは、第 2の情 報処理装置 40のポート rPortに情報が送信され、第 2の情報処理装置 40からは、通 信制御装置 3のポート P9に情報が送信される。通信制御装置 3のポート P9に送信さ れた情報は、通信制御装置 3においてアドレス変換され、第 1の情報処理装置 30の ポート P6に送信される。このようにして、第 1の情報処理装置 30と、第 2の情報処理 装置 40との間において、通信が確立され、両者間における通話が行われることにな る。
[0234] なお、本実施の形態では、図 29で示されるシーケンスを用いて説明した力 情報処 理装置の間の通信を確立するシーケンスは、図 29で示されるものに限定されない。 例えば、ステップ S811の応答の送信において、第 2の情報処理装置 40の IPアドレス を示す情報、および受信ポートの位置を示す情報を SIPサーバ 52経由で第 1の情報 処理装置 30に送信してもよい。この場合には、第 1の情報処理装置 30が、その SIP サーバ 52を経由して送信された情報を用いることにより、第 1の情報処理装置 30と、 第 2の情報処理装置 40との間の通信が確立される。ただし、ステップ S811で送信さ れる第 2の情報処理装置 40の IPアドレスは、ステップ S804で送信されたものと同一 のものである。また、第 2の情報処理装置 40は、ステップ S804で送信した通信先情 報によって示される送信ポートを、第 1の情報処理装置 30との通信における送信ポ ートとして用いるものとする。
[0235] 以上のように、本実施の形態による通信システムによれば、実施の形態 1一 3にお いて説明したバブルパケット送信ポートの位置を検出する手法を用いることによって、 通信制御装置 3がどのような種類の NATを用いていた場合であっても、 SIPによる情 報処理装置間の通信を確立することができる。このように、バブルパケット送信ポート の位置を検出する手法は、実施の形態 1一 3にお ヽて説明したシステムやシーケンス 以外にお 、て用いられてもよ 、。
[0236] なお、本実施の形態では、通信制御装置 3のポート幅や、バブルパケット送信ポー トの位置の検出を、クライアント側で行う場合について説明したが、実施の形態 1と同 様に、それらの処理のうち、任意の 1以上の処理をサーバ側において行ってもよい。
[0237] また、本実施の形態では、ポート検出サーバ 51と、 SIPサーバ 52とを別々に備える 場合につ 、て説明したが、それらを同一のサーバとして構成してもよ 、。
[0238] また、本実施の形態では、 SIPを用いて、情報処理装置間での通信を確立する場 合について説明したが、情報処理装置間の通信を確立する他のプロトコルを用いて もよい。その場合にも、ポート検出サーバ 51を備えることにより、バブルパケット送信 ポートの位置を検出することができ、 NAT機能を有する通信制御装置を介した通信 を行うことが可能となる。
[0239] また、例えば実施の形態 4で説明したように、上記各実施の形態にお!、て、通信シ ステムは、バブルパケットを送信する情報処理装置と、バブルパケット送信ポートの位 置を検出するための処理を行うサーバとを備えた通信システムであって、そのバブル パケット送信ポートの位置を検出するためのものであってもよい。すなわち、本発明に おける通信システムは、以下のような通信システムであってもよい。この通信システム は、情報処理装置と、情報処理装置の通信を制御する通信制御装置と、サーバとを 備えた通信システムであって、情報処理装置が、通信制御装置を介して、通信制御 装置に送信履歴を残すためのバブルパケットを送信するバブルパケット送信部と、バ ブルパケットの送信で用いられる、通信制御装置のポートであるバブルパケット送信 ポートの位置を検出するために用いられるポート検出用パケットを、バブルパケット送 信部がバブルパケットを送信する前後に、サーバに送信する検出用パケット送信部と 、を備え、サーバが、情報処理装置力も送信されたポート検出用パケットを受け付け 、ポート検出用パケットに基づいてバブルパケット送信ポートの位置を検出するパブ ルパケット送信ポート検出部を備えた、ものである。この通信システムにおいて、サー バにおいて検出されたバブルパケット送信ポートの位置は、送信部によって情報処 理装置に送信されてもよぐあるいは、その他の方法によって情報処理装置に渡され てもよい。その他の方法としては、例えば、バブルパケット送信ポートの位置を示す情 報を記録媒体に記録し、情報処理装置がその記録媒体力 情報を読み出すことであ つてもよく、あるいは、サーバにおいてバブルパケット送信ポートの位置を示す情報が 表示され、その表示を見ることによって、ユーザが情報処理装置にポートの範囲を示 す情報を入力することであってもよ 、。
また、例えば実施の形態 4で説明したように、上記各実施の形態において、通信シ ステムは、バブルパケットを送信する情報処理装置と、バブルパケット送信ポートの位 置を検出するための処理を行うサーバとを備えた通信システムであって、そのバブル パケット送信ポートの位置を検出するためのものであってもよい。すなわち、本発明に おける通信システムは、以下のような通信システムであってもよい。この通信システム は、情報処理装置と、情報処理装置の通信を制御する通信制御装置と、サーバとを 備えた通信システムであって、情報処理装置が、通信制御装置を介して、通信制御 装置に送信履歴を残すためのバブルパケットを送信するバブルパケット送信部と、バ ブルパケットの送信で用いられる、通信制御装置のポートであるバブルパケット送信 ポートの位置を検出するために用いられるポート検出用パケットを、バブルパケット送 信部がバブルパケットを送信する前後に、サーバに送信する検出用パケット送信部と 、ポート検出用パケットが通過した通信制御装置のポートの位置を示す検出用ポート 情報を受け付ける検出用ポート情報受付部と、検出用ポート情報受付部が受け付け た検出用ポート情報に基づいて、バブルパケット送信ポートの位置を検出するパブ ルパケット送信ポート検出部と、を備え、サーバが、ポート検出用パケットを受け付け 、当該ポート検出用パケットが通過した通信制御装置のポートの位置を検出する検 出用ポート検出部と、検出用ポート検出部が検出したポートの位置を示す検出用ポ ート情報を情報処理装置に送信する検出用ポート情報送信部と、を備えた、ものであ る。このように、バブルパケット送信ポートの位置の検出をサーバではなぐ情報処理 装置において行ってもよい。この通信システムにおいて、情報処理装置において検 出されたバブルパケット送信ポートの位置は、送信部によって他の情報処理装置に 送信されてもよぐあるいは、その他の方法によって他の情報処理装置に渡されても よい。その他の方法としては、例えば、バブルパケット送信ポートの位置を示す情報 を記録媒体に記録し、他の情報処理装置がその記録媒体力 情報を読み出すこと であってもよぐあるいは、情報処理装置においてバブルパケット送信ポートの位置を 示す情報が表示され、その表示を見ることによって、ユーザが他の情報処理装置に バブルパケット送信ポートの位置を示す情報を入力することであってもよい。
[0241] また、上記各実施の形態では、各情報処理装置が通信制御装置を 1つだけ介して 通信回線 5に接続される場合について説明したが、複数の通信制御装置を介して通 信回線 5に接続されている場合 (すなわち、多段接続の NAT)であっても、情報処理 装置間の通信を確立することができ得る。
[0242] また、上記各実施の形態では、第 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等との間での通信が確立され得ることとなる。
[0243] また、第 1の情報処理装置、および第 2の情報処理装置は、アプリケーションとして のファイアウォールの機能を実装するものであってもよぐそうでなくてもよい。
[0244] また、上記各実施の形態では、サーバ 6等を IPアドレスによって特定する場合につ いて説明したが、サーバ 6等をドメイン名(例えば、 server, pana. netなど)によって 特定してもよい。この場合には、そのドメイン名が DNSサーバを用いて、 IPアドレスに 変換されることにより、サーバを特定することができる。
[0245] また、上記各実施の形態における通信で用いられるプロトコルは、 IPv4 (Internet
Protocol version 4)で teつてもよ \、ある ヽは、 IPv6 (Internet Protocol ver sion 6)であってもよい。
[0246] また、上記各実施の形態にお!、て、各処理 (各機能)は、単一の装置 (システム)に よって集中処理されることによって実現されてもよぐあるいは、複数の装置によって 分散処理されることによって実現されてもょ 、。
[0247] また、上記各実施の形態にお!、て、通信の要求を出す側がバブルパケットを送信 する側である場合にっ 、て説明した力 通信の要求を受け取る側がバブルパケットを 送信する側であってもよ ヽ。
[0248] また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成し てもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラム制 御によるソフトウェアにより構成してもよい。なお、上記各実施の形態における情報処 理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプロダラ ムは、コンピュータに、第 1の情報処理装置の通信を制御する第 1の通信制御装置と 、第 2の情報処理装置の通信を制御する第 2の通信制御装置とを介して、第 2の情報 処理装置と通信する第 1の情報処理装置における処理を実行させるためのプロダラ ムであって、第 1の通信制御装置に送信履歴を残すために送信されるバブルパケット の送信の対象の基準となる第 2の通信制御装置におけるポートである基準ポートの 位置を示す基準ポート情報を受け付ける基準ポート受付ステップと、基準ポート情報 に基づいて、第 1の通信制御装置を介して、バブルパケットを第 2の通信制御装置に 送信するバブルパケット送信ステップと、バブルパケットの送信で用いられる、第 1の 通信制御装置のポートであるバブルパケット送信ポートの位置を検出するために、ポ ート検出用パケットを送信する検出用パケット送信ステップと、バブルパケット送信ポ ートに対して、第 2の情報処理装置力 第 2の通信制御装置を介して送信された返信 パケットを受け付ける返信パケット受付ステップと、を実行させるためのものである。
[0249] また、このプログラムでは、基準ポートは、第 2の通信制御装置で割り当てられたポ ートのうち、基準ポートの位置を検出するための基準ポート検出用パケットが第 2の情 報処理装置力も送信された時点における最新のポートであってもよい。
[0250] また、このプログラムでは、検出用パケット送信ステップにお 、て、バブルパケット送 信ステップでバブルパケットを送信する前後に、ポート検出用パケットを送信してもよ い。
[0251] また、このプログラムでは、バブルパケット、およびポート検出用パケットが、第 1の 通信制御装置における異なるポートを用いて送信されてもよい。
[0252] また、このプログラムでは、バブルパケット、およびポート検出用パケットが、第 1の 情報処理装置にぉ 、て新たに割り当てられたポートを用いて送信されてもょ 、。
[0253] また、このプログラムでは、コンピュータに、バブルパケット、およびポート検出用パ ケットを再度送信する旨の再送信指示を受け付ける再送信指示受付ステップをさら に実行させ、検出用パケット送信ステップでは、再送信指示受付ステップで再送信指 示を受け付けた場合に、ポート検出用パケットを再度送信し、バブルパケット送信ス テツプでは、再送信指示受付ステップで再送信指示を受け付けた場合に、バブルパ ケットを再度送信してもよ 、。
[0254] また、このプログラムでは、コンピュータに、第 1の通信制御装置におけるポート幅を 検出するためのポート幅検出用パケットを、第 1の通信制御装置を介して送信するポ ート幅検出用パケット送信ステップをさらに実行させてもよい。
[0255] また、このプログラムでは、第 2の通信制御装置における、バブルパケットを送信す る対象のポートであるバブルパケット送信対象ポートが、基準ポートから所定のポート 割り当て後に割り当てられるポートであってもよ 、。
[0256] また、このプログラムでは、コンピュータに、第 2の通信制御装置におけるポート幅を 示す情報であるポート幅情報を受け付けるポート幅受付ステップをさらに実行させ、 バブルパケット送信ステップでは、基準ポートとのポート間隔がポート幅情報の示す ポート幅の M倍(Mは 1以上の整数)であるバブルパケット送信対象ポートに対してバ ブルパケットを送信してもよ 、。
[0257] また、このプログラムでは、コンピュータに、返信パケット受付ステップで返信バケツ トを受け付けた場合に、当該返信パケットの送信で用いられた第 2の通信制御装置 のポートに対して、再返信パケットを送信する再返信パケット送信ステップをさらに実 行させてもよい。
[0258] また、このプログラムでは、コンピュータに、ポート検出用パケットが通過した第 1の 通信制御装置のポートの位置を示す検出用ポート情報を受け付ける検出用ポート情 報受付ステップと、検出用ポート情報受付ステップで受け付けた検出用ポート情報に 基づ!/、て、バブルパケット送信ポートの位置を検出するバブルパケット送信ポート検 出ステップと、バブルパケット送信ポート検出ステップで検出したバブルパケット送信 ポートの位置を示すバブルパケット送信ポート情報を送信するバブルパケット送信ポ ート送信ステップと、をさらに実行させてもよい。
[0259] また、このプログラムでは、検出用パケット送信ステップで、バブルパケット送信ポー ト検出ステップにおいてバブルパケット送信ポートの位置を検出できな力つた場合に 、ポート検出用パケットを再度送信し、バブルパケット送信ステップで、バブルパケット 送信ポート検出ステップにおいてバブルパケット送信ポートの位置を検出できなかつ た場合に、バブルパケットを再度送信してもよ 、。
[0260] また、このプログラムでは、コンピュータに、第 1の通信制御装置におけるポート幅を 検出するためのポート幅検出用パケットを、第 1の通信制御装置を介して送信するポ ート幅検出用パケット送信ステップと、ポート幅検出用パケットが通過した第 1の通信 制御装置のポートの位置を示すポート幅検出用ポート情報を受け付けるポート幅検 出用ポート情報受付ステップと、ポート幅検出用ポート情報受付部が受け付けたポー ト幅検出用ポート情報に基づいて、第 1の通信制御装置におけるポート幅を検出する ポート幅検出ステップと、をさらに実行させ、バブルパケット送信ポート検出ステップで 、ポート幅検出ステップで検出した第 1の通信制御装置におけるポート幅を用いてバ ブルパケット送信ポートの位置を検出してもよ 、。 [0261] 上記各実施の形態における情報処理装置を実現するソフトウェアは、以下のような プログラムである。つまり、このプログラムは、コンピュータに、第 1の情報処理装置の 通信を制御する第 1の通信制御装置と、第 2の情報処理装置の通信を制御する第 2 の通信制御装置とを介して、第 2の情報処理装置と通信する第 1の情報処理装置に おける処理を実行させるためのプログラムであって、第 1の通信制御装置は、第 2の 情報処理装置から第 2の通信制御装置を介して、第 2の通信制御装置に送信履歴を 残すためのバブルパケットが送信されるものであり、バブルパケットの送信の対象の 基準となる第 1の通信制御装置におけるポートである基準ポートの位置を検出するた めの基準ポート検出用パケットを送信する基準ポート検出用パケット送信ステップと、 第 2の情報処理装置力 のバブルパケットの送信で用いられた、第 2の通信制御装 置のポートであるバブルパケット送信ポートの位置を示すバブルパケット送信ポート 情報を受け付けるバブルパケット送信ポート受付ステップと、バブルパケット送信ポー ト情報の示すバブルパケット送信ポートに対して返信パケットを送信する返信パケット 送信ステップと、を実行させるためのものである。
[0262] また、このプログラムでは、返信パケット送信ステップにお!/、て、返信パケットを、第 1 の通信制御装置の異なる N個(Nは 2以上の整数)のポートを用いて送信してもよい。
[0263] また、このプログラムでは、 N個のポートが、返信パケットの送信時に、第 1の通信制 御装置にお!、て新たに割り当てられるものであってもよ!/、。
[0264] また、このプログラムでは、 N力 第 1の通信制御装置における、基準ポートからバ ブルパケットが送信されたポートまでにお 、て割り当て可能なポートの数以上であつ てもよい。
[0265] また、このプログラムでは、コンピュータに、返信パケットの送信で用いられた第 1の 通信制御装置のポートに対して、第 2の情報処理装置力 送信された再返信パケット を受け付ける再返信パケット受付ステップをさらに実行させてもよい。
[0266] また、このプログラムでは、コンピュータに、第 1の通信制御装置におけるポート幅を 検出するためのポート幅検出用パケットを、第 1の通信制御装置を介して送信するポ ート幅検出用パケット送信ステップをさらに実行させてもよい。
[0267] また、このプログラムでは、コンピュータに、ポート幅検出用パケットが通過した第 1 の通信制御装置のポートの位置を示すポート幅検出用ポート情報を受け付けるポー ト幅検出用ポート情報受付ステップと、ポート幅検出用ポート情報受付ステップで受 け付けたポート幅検出用ポート情報に基づいて、第 1の通信制御装置におけるポート 幅を検出するポート幅検出ステップと、ポート幅検出ステップで検出した第 1の通信 制御装置におけるポート幅を示す情報であるポート幅情報を送信するポート幅送信 ステップと、をさらに実行させてもよい。
[0268] 上記実施の形態におけるサーバを実現するソフトウェアは、以下のようなプログラム である。つまり、このプログラムは、コンピュータに、第 1の情報処理装置、および第 2 の情報処理装置が、第 1の情報処理装置の通信を制御する第 1の通信制御装置、 および第 2の情報処理装置の通信を制御する第 2の通信制御装置を介して行う通信 を確立させるサーバにおける処理を実行させるためのプログラムであって、第 1の通 信制御装置に送信履歴を残すために第 1の情報処理装置が送信するバブルバケツ トの送信の対象の基準となる第 2の通信制御装置におけるポートである基準ポートの 位置を検出するために、第 2の情報処理装置力 第 2の通信制御装置を介して送信 された基準ポート検出用パケットを受け付け、当該基準ポート検出用パケットに基づ いて基準ポートの位置を検出する基準ポート検出ステップと、基準ポート検出ステツ プで検出した基準ポートの位置を示す基準ポート情報を第 1の情報処理装置に送信 する基準ポート送信ステップと、第 1の情報処理装置から第 2の通信制御装置へのバ ブルパケットの送信で用いられる第 1の通信制御装置におけるポートであるバブルパ ケット送信ポートの位置を検出するために、第 1の情報処理装置力も送信されたポー ト検出用パケットを受け付け、ポート検出用パケットに基づいてバブルパケット送信ポ ートの位置を検出するバブルパケット送信ポート検出ステップと、バブルパケット送信 ポート検出ステップで検出したバブルパケット送信ポートの位置を示すバブルバケツ ト送信ポート情報を第 2の情報処理装置に送信するバブルパケット送信ポート送信ス テツプと、を実行させるためのものである。
[0269] また、このプログラムでは、コンピュータに、バブルパケット送信ポート検出ステップ でバブルパケット送信ポートの位置を検出できなかった場合に、バブルパケット、およ びポート検出用パケットを再度送信する旨の指示である再送信指示を第 1の情報処 理装置に送信する再送信指示送信ステップをさらに実行させてもよい。
[0270] また、このプログラムでは、バブルパケット送信ポート検出ステップにお 、て、バブル パケットの送信の前後に送信されたポート検出用パケットを受け付け、当該ポート検 出用パケットの送信で用いられた第 1の通信制御装置における 2つのポートと、パブ ルパケット送信ポートとが連続しているかどうか判断し、連続している場合には、 2つ のポートで挟まれるポートの位置をバブルパケット送信ポートの位置として検出しても よい。
[0271] また、このプログラムでは、バブルパケット送信ポート検出ステップにお 、て、ポート 検出用パケットの送信で用いられた第 1の通信制御装置における 2つのポートの間隔 力 第 1の通信制御装置におけるポート幅の 2倍である場合に、連続していると判断 してちよい。
[0272] また、このプログラムでは、コンピュータに、第 1の情報処理装置から第 1の通信制 御装置を介して送信された第 1のポート幅検出用パケットを受け付け、当該第 1のポ ート幅検出用パケットに基づいて第 1の通信制御装置におけるポート幅を検出する第 1のポート幅検出ステップをさらに実行させ、バブルパケット送信ポート検出ステップ では、第 1のポート幅検出部が検出したポート幅を用いて判断を行ってもよい。
[0273] また、このプログラムでは、コンピュータに、第 2の情報処理装置から第 2の通信制 御装置を介して送信された第 2のポート幅検出用パケットを受け付け、当該第 2のポ ート幅検出用パケットに基づいて第 2の通信制御装置におけるポート幅を検出する第 2のポート幅検出ステップと、第 2のポート幅検出ステップで検出したポート幅を示す 情報であるポート幅情報を第 1の情報処理装置に送信するポート幅送信ステップと、 をさらに実行させてもよい。
[0274] また、上記実施の形態におけるサーバを実現するソフトウェアは、以下のようなプロ グラムである。つまり、このプログラムは、コンピュータに、第 1の情報処理装置、およ び第 2の情報処理装置が、第 1の情報処理装置の通信を制御する第 1の通信制御装 置、および第 2の情報処理装置の通信を制御する第 2の通信制御装置を介して行う 通信を確立させるサーバにおける処理を実行させるためのプログラムであって、第 1 の通信制御装置に送信履歴を残すために第 1の情報処理装置が送信するバブルパ ケットの送信の対象の基準となる第 2の通信制御装置におけるポートである基準ポー トの位置を検出するために、第 2の情報処理装置から第 2の通信制御装置を介して 送信された基準ポート検出用パケットを受け付け、当該基準ポート検出用パケットに 基づいて基準ポートの位置を検出する基準ポート検出ステップと、基準ポート検出ス テツプで検出した基準ポートの位置を示す基準ポート情報を第 1の情報処理装置に 送信する基準ポート送信ステップと、第 1の情報処理装置から第 2の通信制御装置へ のバブルパケットの送信で用いられる第 1の通信制御装置におけるポートであるパブ ルパケット送信ポートの位置を検出するために、第 1の情報処理装置力 送信された ポート検出用パケットを受け付け、当該ポート検出用パケットに基づいてポート検出 用パケットが通過した第 1の通信制御装置のポートの位置を検出する検出用ポート検 出ステップと、検出用ポート検出ステップで検出したポートの位置を示す検出用ポー ト情報を第 1の情報処理装置に送信する検出用ポート情報送信ステップと、を実行さ せるためのものである。
[0275] また、上記各実施の形態における情報処理装置を実現するソフトウェアは、以下の ようなプログラムである。つまり、このプログラムは、コンピュータに、情報処理装置、情 報処理装置の通信を制御する通信制御装置、およびサーバを備える通信システムを 構成する情報処理装置における処理を実行させるためのプログラムであって、通信 制御装置を介して、通信制御装置に送信履歴を残すためのバブルパケットを送信す るバブルパケット送信ステップと、バブルパケットの送信で用いられる、通信制御装置 のポートであるバブルパケット送信ポートの位置を検出するために用いられるポート 検出用パケットを、バブルパケット送信ステップでバブルパケットを送信する前後に、 サーバに送信する検出用パケット送信ステップと、を実行させるためのものである。
[0276] また、上記各実施の形態におけるサーバを実現するソフトウェアは、以下のようなプ ログラムである。つまり、このプログラムは、コンピュータに、情報処理装置、情報処理 装置の通信を制御する通信制御装置、およびサーバを備える通信システムを構成す るサーバにおける処理を実行させるためのプログラムであって、通信制御装置に送 信履歴を残すために情報処理装置が送信するバブルパケットの送信で用いられる通 信制御装置におけるポートであるバブルパケット送信ポートの位置を検出するために 、バブルパケットの送信の前後に情報処理装置力も送信されたポート検出用パケット を受け付けるステップと、ポート検出用パケットに基づいてバブルパケット送信ポート の位置を検出するステップと、を実行させるためのものである。
[0277] また、上記各実施の形態におけるサーバを実現するソフトウェアは、以下のようなプ ログラムである。つまり、このプログラムは、コンピュータに、情報処理装置、情報処理 装置の通信を制御する通信制御装置、およびサーバを備える通信システムを構成す るサーバにおける処理を実行させるためのプログラムであって、通信制御装置に送 信履歴を残すために情報処理装置が送信するバブルパケットの送信で用いられる通 信制御装置におけるポートであるバブルパケット送信ポートの位置を検出するために 、バブルパケットの送信の前後に情報処理装置力も送信されたポート検出用パケット を受け付けるステップと、ポート検出用パケットが通過した通信制御装置のポートの 位置を検出するステップと、ポート検出用パケットが通過した通信制御装置のポート の位置を示す検出用ポート情報を情報処理装置に送信するステップと、を実行させ るためのものである。
[0278] なお、上記プログラムにお 、て、情報を送信する送信ステップや、情報を受け付け る受付ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップ におけるモデムやインターフェースカードなどで行われる処理 (ノヽ一ドウエアでしか行 われな 、処理)は含まれな!/、。
[0279] また、このプログラムは、サーバなど力 ダウンロードされることによって流通してもよ ぐ所定の記録媒体 (例えば、 CD— ROMなどの光ディスクや磁気ディスク、半導体メ モリなど)に記録されることにより流通してもよい。
[0280] また、このプログラムを実行するコンピュータは、単数であってもよぐ複数であって もよい。すなわち、集中処理を行ってもよぐあるいは分散処理を行ってもよい。 産業上の利用可能性
[0281] このように、本発明による通信システム等は、通信制御装置を介した複数の情報処 理装置間での通信を確立することができ、情報処理装置間での通信を行うものとして 有用である。

Claims

請求の範囲
第 1の情報処理装置と、第 2の情報処理装置と、前記第 1の情報処理装置の通信を 制御する第 1の通信制御装置と、前記第 2の情報処理装置の通信を制御する第 2の 通信制御装置と、前記第 1の情報処理装置と前記第 2の情報処理装置間の通信を 確立させるサーバとを備えた通信システムであって、
前記第 1の情報処理装置は、
前記第 1の通信制御装置に送信履歴を残すために送信されるバブルパケットの送信 の対象の基準となる前記第 2の通信制御装置におけるポートである基準ポートの位 置を示す基準ポート情報を受け付ける基準ポート受付部と、
前記基準ポート情報に基づいて、前記第 1の通信制御装置を介して、前記バブルパ ケットを前記第 2の通信制御装置に送信するバブルパケット送信部と、
前記バブルパケットの送信で用いられる、前記第 1の通信制御装置のポートであるバ ブルパケット送信ポートの位置を検出するために、ポート検出用パケットを前記サー バに送信する検出用パケット送信部と、
前記バブルパケット送信ポートに対して、前記第 2の情報処理装置から前記第 2の通 信制御装置を介して送信された返信パケットを受け付ける返信パケット受付部と、を 備え
前記第 2の情報処理装置は、
前記基準ポートの位置を検出するための基準ポート検出用パケットを送信する基準 ポート検出用パケット送信部と、
前記バブルパケット送信ポートの位置を示すバブルパケット送信ポート情報を受け付 けるバブルパケット送信ポート受付部と、
前記バブルパケット送信ポート情報の示す前記バブルパケット送信ポートに対して返 信パケットを送信する返信パケット送信部と、を備え、
前記サーバは、
前記第 2の情報処理装置から送信された前記基準ポート検出用パケットを受け付け 、当該基準ポート検出用パケットに基づいて前記基準ポートの位置を検出する基準 ポート検出部と、 前記基準ポート検出部が検出した前記基準ポートの位置を示す基準ポート情報を前 記第 1の情報処理装置に送信する基準ポート送信部と、
前記第 1の情報処理装置から送信された前記ポート検出用パケットを受け付け、前 記ポート検出用パケットに基づいて前記バブルパケット送信ポートの位置を検出する バブルパケット送信ポート検出部と、
前記バブルパケット送信ポート情報を前記第 2の情報処理装置に送信するバブルパ ケット送信ポート送信部と、を備えた通信システム。
[2] 前記サーバは、
前記バブルパケット送信ポート検出部が前記バブルパケット送信ポートの位置を検出 できなかった場合に、前記バブルパケット、および前記ポート検出用パケットを再度 送信する旨の指示である再送信指示を前記第 1の情報処理装置に送信する再送信 指示送信部をさらに備え、
前記第 1の情報処理装置は、
前記サーバ力 送信された前記再送信指示を受け付ける再送信指示受付部をさら に備え、
前記検出用パケット送信部は、前記再送信指示受付部が前記再送信指示を受け付 けた場合に、前記ポート検出用パケットを再度、前記サーバに送信し、
前記バブルパケット送信部は、前記再送信指示受付部が前記再送信指示を受け付 けた場合に、前記バブルパケットを再度、前記サーバに送信する、請求項 1記載の通 信システム。
[3] 前記第 1の情報処理装置は、
前記返信パケット受付部が前記返信パケットを受け付けた場合に、当該返信パケット の送信で用いられた前記第 2の通信制御装置のポートに対して、再返信パケットを送 信する再返信パケット送信部をさらに備え、
前記第 2の情報処理装置は、
前記再返信パケットを受け付ける再返信パケット受付部をさらに備えた、請求項 1ま たは 2記載の通信システム。
[4] 第 1の情報処理装置の通信を制御する第 1の通信制御装置と、第 2の情報処理装置 の通信を制御する第 2の通信制御装置とを介して、前記第 2の情報処理装置と通信 する前記第 1の情報処理装置であって、
前記第 1の通信制御装置に送信履歴を残すために送信されるバブルパケットの送信 の対象の基準となる前記第 2の通信制御装置におけるポートである基準ポートの位 置を示す基準ポート情報を受け付ける基準ポート受付部と、
前記基準ポート情報に基づいて、前記第 1の通信制御装置を介して、前記バブルパ ケットを前記第 2の通信制御装置に送信するバブルパケット送信部と、
前記バブルパケットの送信で用いられる、前記第 1の通信制御装置のポートであるバ ブルパケット送信ポートの位置を検出するために、ポート検出用パケットを送信する 検出用パケット送信部と、
前記バブルパケット送信ポートに対して、前記第 2の情報処理装置から前記第 2の通 信制御装置を介して送信された返信パケットを受け付ける返信パケット受付部と、を 備えた第 1の情報処理装置。
[5] 前記基準ポートは、前記第 2の通信制御装置で割り当てられたポートのうち、前記基 準ポートの位置を検出するための基準ポート検出用パケットが前記第 2の情報処理 装置力も送信された時点における最新のポートである、請求項 4記載の第 1の情報処 理装置。
[6] 前記検出用パケット送信部は、前記バブルパケット送信部が前記バブルパケットを送 信する前後に、前記ポート検出用パケットを送信する、請求項 4または 5記載の第 1の 情報処理装置。
[7] 前記バブルパケット、および前記ポート検出用パケットは、前記第 1の通信制御装置 における異なるポートを用いて送信されるものである、請求項 6記載の第 1の情報処 理装置。
[8] 前記バブルパケット、および前記ポート検出用パケットは、前記第 1の情報処理装置 にお 、て新たに割り当てられたポートを用いて送信される、請求項 7記載の第 1の情 報処理装置。
[9] 前記バブルパケット、および前記ポート検出用パケットを再度送信する旨の再送信指 示を受け付ける再送信指示受付部をさらに備え、 前記検出用パケット送信部は、前記再送信指示受付部が前記再送信指示を受け付 けた場合に、前記ポート検出用パケットを再度送信し、
前記バブルパケット送信部は、前記再送信指示受付部が前記再送信指示を受け付 けた場合に、前記バブルパケットを再度送信する、請求項 4記載の第 1の情報処理 装置。
[10] 前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケット を、前記第 1の通信制御装置を介して送信するポート幅検出用パケット送信部をさら に備えた、請求項 4記載の第 1の情報処理装置。
[11] 前記第 2の通信制御装置における、前記バブルパケットを送信する対象のポートであ るバブルパケット送信対象ポートは、前記基準ポートから所定のポート割り当て後に 割り当てられるポートである、請求項 4記載の第 1の情報処理装置。
[12] 前記第 2の通信制御装置におけるポート幅を示す情報であるポート幅情報を受け付 けるポート幅受付部をさらに備え、
前記バブルパケット送信部は、前記基準ポートとのポート間隔が前記ポート幅情報の 示す前記ポート幅の M倍 (Mは 1以上の整数)である前記バブルパケット送信対象ポ ートに対して前記バブルパケットを送信する、請求項 11記載の第 1の情報処理装置
[13] 前記返信パケット受付部が前記返信パケットを受け付けた場合に、当該返信パケット の送信で用いられた前記第 2の通信制御装置のポートに対して、再返信パケットを送 信する再返信パケット送信部をさらに備えた、請求項 4記載の第 1の情報処理装置。
[14] 第 1の情報処理装置の通信を制御する第 1の通信制御装置と、第 2の情報処理装置 の通信を制御する第 2の通信制御装置とを介して、前記第 2の情報処理装置と通信 する前記第 1の情報処理装置であって、
前記第 1の通信制御装置は、前記第 2の情報処理装置から前記第 2の通信制御装 置を介して、前記第 2の通信制御装置に送信履歴を残すためのバブルパケットが送 信されるものであり、
前記バブルパケットの送信の対象の基準となる前記第 1の通信制御装置におけるポ ートである基準ポートの位置を検出するための基準ポート検出用パケットを送信する 基準ポート検出用パケット送信部と、
前記第 2の情報処理装置からの前記バブルパケットの送信で用いられた、前記第 2 の通信制御装置のポートであるバブルパケット送信ポートの位置を示すバブルバケツ ト送信ポート情報を受け付けるバブルパケット送信ポート受付部と、
前記バブルパケット送信ポート情報の示す前記バブルパケット送信ポートに対して返 信パケットを送信する返信パケット送信部と、を備えた第 1の情報処理装置。
[15] 前記返信パケット送信部は、前記返信パケットを、前記第 1の通信制御装置の異なる N個(Nは 2以上の整数)のポートを用いて送信する、請求項 14記載の第 1の情報処 理装置。
[16] 前記 N個のポートは、前記返信パケットの送信時に、前記第 1の通信制御装置にお いて新たに割り当てられるものである、請求項 15記載の第 1の情報処理装置。
[17] 前記 Nは、前記第 1の通信制御装置における、前記基準ポートから前記バブルパケ ットが送信されたポートまでにお 、て割り当て可能なポートの数以上である、請求項 1 5または 16記載の第 1の情報処理装置。
[18] 前記返信パケットの送信で用いられた前記第 1の通信制御装置のポートに対して、 前記第 2の情報処理装置力も送信された再返信パケットを受け付ける再返信パケット 受付部をさらに備えた、請求項 14記載の第 1の情報処理装置。
[19] 前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケット を、前記第 1の通信制御装置を介して送信するポート幅検出用パケット送信部をさら に備えた、請求項 14記載の第 1の情報処理装置。
[20] 第 1の情報処理装置、および第 2の情報処理装置が、前記第 1の情報処理装置の通 信を制御する第 1の通信制御装置、および前記第 2の情報処理装置の通信を制御 する第 2の通信制御装置を介して行う通信を確立させるサーバであって、
前記第 1の通信制御装置に送信履歴を残すために前記第 1の情報処理装 置が送 信するバブルパケットの送信の対象の基準となる前記第 2の通信制御装置における ポートである基準ポートの位置を検出するために、前記第 2の情報処理装置力 前 記第 2の通信制御装置を介して送信された基準ポート検出用パケットを受け付け、当 該基準ポート検出用パケットに基づいて前記基準ポートの位置を検出する基準ポー ト検出部と、
前記基準ポート検出部が検出した前記基準ポートの位置を示す基準ポート情報を前 記第 1の情報処理装置に送信する基準ポート送信部と、
前記第 1の情報処理装置から前記第 2の通信制御装置への前記バブルパケットの送 信で用いられる前記第 1の通信制御装置におけるポートであるバブルパケット送信ポ ートの位置を検出するために、前記第 1の情報処理装置から送信されたポート検出 用パケットを受け付け、前記ポート検出用パケットに基づいて前記バブルパケット送 信ポートの位置を検出するバブルパケット送信ポート検出部と、
前記バブルパケット送信ポート検出部が検出した前記バブルパケット送信ポートの位 置を示すバブルパケット送信ポート情報を前記第 2の情報処理装置に送信するパブ ルパケット送信ポート送信部と、を備えたサーバ。
[21] 前記バブルパケット送信ポート検出部が前記バブルパケット送信ポートの位置を検出 できなかった場合に、前記バブルパケット、および前記ポート検出用パケットを再度 送信する旨の指示である再送信指示を前記第 1の情報処理装置に送信する再送信 指示送信部をさらに備えた、請求項 20記載のサーバ。
[22] 前記バブルパケット送信ポート検出部は、前記バブルパケットの送信の前後に送信さ れた前記ポート検出用パケットを受け付け、当該ポート検出用パケットの送信で用い られた前記第 1の通信制御装置における 2つのポートと、前記バブルパケット送信ポ ートとが連続しているかどうか判断し、連続している場合には、前記 2つのポートで挟 まれるポートの位置を前記バブルパケット送信ポートの位置として検出する、請求項 2 0または 21記載のサーバ。
[23] 前記バブルパケット送信ポート検出部は、前記ポート検出用パケットの送信で用いら れた前記第 1の通信制御装置における 2つのポートの間隔が、前記第 1の通信制御 装置におけるポート幅の 2倍である場合に、連続していると判断する、請求項 22記載 のサーノ 。
[24] 前記第 1の情報処理装置から前記第 1の通信制御装置を介して送信された第 1のポ ート幅検出用パケットを受け付け、当該第 1のポート幅検出用パケットに基づいて前 記第 1の通信制御装置におけるポート幅を検出する第 1のポート幅検出部をさらに備 え、
前記バブルパケット送信ポート検出部は、前記第 1のポート幅検出部が検出したポー ト幅を用いて前記判断を行う、請求項 23記載のサーバ。
[25] 前記第 2の情報処理装置から前記第 2の通信制御装置を介して送信された第 2のポ ート幅検出用パケットを受け付け、当該第 2のポート幅検出用パケットに基づいて前 記第 2の通信制御装置におけるポート幅を検出する第 2のポート幅検出部と、 前記第 2のポート幅検出部が検出した前記ポート幅を示す情報であるポート幅情報 を前記第 1の情報処理装置に送信するポート幅送信部と、をさらに備えた、請求項 2 0記載のサーバ。
[26] 第 1の情報処理装置、および第 2の情報処理装置が、前記第 1の情報処理装置の通 信を制御する第 1の通信制御装置、および前記第 2の情報処理装置の通信を制御 する第 2の通信制御装置を介して通信を行う通信方法であって、
前記第 1の通信制御装置に送信履歴を残すために前記第 1の情報処理装置が送信 するバブルパケットの送信の対象の基準となる前記第 2の通信制御装置におけるポ ートである基準ポートの位置を検出するための基準ポート検出用パケットを、前記第 2 の情報処理装置が前記第 2の通信制御装置を介して送信する基準ポート検出用パ ケット送信ステップと、
前記基準ポート検出用パケットを受け付け、前記基準ポートの位置を検出する基準 ポート検出ステップと、
前記基準ポート検出ステップで検出された前記基準ポートの位置を示す情報である 基準ポート情報を送信する基準ポート送信ステップと、
前記基準ポート情報を受け付ける基準ポート受付ステップと、
前記第 1の情報処理装置が、前記基準ポート受付ステップで受け付けた基準ポート 情報に基づいて、前記第 1の通信制御装置を介して、前記バブルパケットを前記第 2 の通信制御装置に送信するバブルパケット送信ステップと、
前記バブルパケットの送信で用いられる、前記第 1の通信制御装置のポートであるバ ブルパケット送信ポートの位置を検出する前記バブルパケット送信ポート検出ステツ プと、 前記バブルパケット送信ポート検出ステップで検出された前記バブルパケット送信ポ ートの位置を示すバブルパケット送信ポート情報を送信するバブルパケット送信ポー ト送信ステップと、
前記バブルパケット送信ポート情報を受け付けるバブルパケット送信ポート受付ステ ップと、
前記バブルパケット送信ポート受付ステップで受け付けたバブルパケット送信ポート 情報の示すバブルパケット送信ポートに対して、前記第 2の情報処理装置から返信 パケットを送信する返信ステップと、を備えた通信方法。
[27] 前記バブルパケット送信ポート検出ステップは、
前記バブルパケットを送信する前に、前記バブルパケット送信ポートを特定するため の第 1のポート検出用パケットを、前記第 1の情報処理装置が前記第 1の通信制御装 置を介して送信する第 1の送信ステップと、
前記第 1のポート検出用パケットを受け付け、前記第 1のポート検出用パケットの送信 で用いられた前記第 1の通信制御装置のポートである第 1のポートの位置を検出する 第 1の検出ステップと、
前記バブルパケットを送信した後に、前記バブルパケット送信ポートを特定するため の第 2のポート検出用パケットを、前記第 1の情報処理装置が前記第 1の通信制御装 置を介して送信する第 2の送信ステップと、
前記第 2のポート検出用パケットを受け付け、前記第 2のポート検出用パケットの送信 で用いられた前記第 1の通信制御装置のポートである第 2のポートの位置を検出する 第 2の検出ステップと、
前記第 1のポートの位置、および前記第 2のポートの位置に基づいて、前記バブルパ ケット送信ポートの位置を検出するポート検出ステップと、を含む、請求項 26記載の 通信方法。
[28] 前記バブルパケット送信ポート検出ステップは、
前記第 1の検出ステップ、および前記第 2の検出ステップで位置の検出された前記第 1のポート、および前記第 2のポートと、前記バブルパケット送信ポートとが連続してい るかどうか判断する判断ステップをさらに備え、 前記ポート検出ステップでは、前記判断ステップで連続して 、ると判断された場合に
、前記バブルパケット送信ポートの位置を検出する、請求項 27記載の通信方法。
[29] 前記判断ステップで、連続して!/ヽな ヽと判断された場合に、前記第 1の送信ステップ 、前記第 1の検出ステップ、前記バブルパケット送信ステップ、前記第 2の送信ステツ プ、前記第 2の検出ステップ、および前記判断ステップを、当該判断ステップで、連続 して 、ると判断されるまで繰り返す、請求項 28記載の通信方法。
[30] 前記第 1の情報処理装置が前記第 2の通信制御装置のアドレスを取得する第 1のァ ドレス取得ステップをさらに備え、
前記バブルパケット送信ステップでは、前記第 1のアドレス取得ステップで取得したァ ドレスに対して前記バブルパケットを送信する、請求項 26から 29の 、ずれか記載の 通信方法。
[31] 前記第 2の情報処理装置が前記第 1の通信制御装置のアドレスを取得する第 2のァ ドレス取得ステップをさらに備え、
前記返信ステップでは、前記第 2のアドレス取得ステップで取得したアドレスに対して 前記返信パケットを送信する、請求項 26記載の通信方法。
[32] 前記返信ステップでの前記返信パケットの送信により、前記第 1の情報処理装置と前 記第 2の情報処理装置との間の通信を確立できな力つた場合には、再度、前記各ス テツプの処理を実行する、請求項 26記載の通信方法。
[33] 前記返信パケットを受け付ける返信受付ステップと、
前記返信受付ステップにお!ヽて前記返信パケットが受け付けられた場合に、前記第
1の情報処理装置が、前記返信パケットの送信で用いられた前記第 2の通信制御装 置のポートに対して、再返信パケットを送信する再返信ステップと、をさらに備えた、 請求項 26記載の通信方法。
[34] 前記再返信ステップでの前記再返信パケットの送信により、前記第 1の情報処理装 置と前記第 2の情報処理装置との間の通信を確立できな力つた場合には、再度、前 記各ステップの処理を実行する、請求項 33記載の通信方法。
[35] コンピュータに、
第 1の情報処理装置の通信を制御する第 1の通信制御装置と、第 2の情報処理装置 の通信を制御する第 2の通信制御装置とを介して、前記第 2の情報処理装置と通信 する前記第 1の情報処理装置における処理を実行させるためのプログラムであって、 前記第 1の通信制御装置に送信履歴を残すために送信されるバブルパケットの送信 の対象の基準となる前記第 2の通信制御装置におけるポートである基準ポートの位 置を示す基準ポート情報を受け付ける基準ポート受付ステップと、
前記基準ポート情報に基づいて、前記第 1の通信制御装置を介して、前記バブルパ ケットを前記第 2の通信制御装置に送信するバブルパケット送信ステップと、 前記バブルパケットの送信で用いられる、前記第 1の通信制御装置のポートであるバ ブルパケット送信ポートの位置を検出するために、ポート検出用パケットを送信する 検出用パケット送信ステップと、
前記バブルパケット送信ポートに対して、前記第 2の情報処理装置から前記第 2の通 信制御装置を介して送信された返信パケットを受け付ける返信パケット受付ステップ と、を実行させるためのプログラム。
[36] 前記基準ポートは、前記第 2の通信制御装置で割り当てられたポートのうち、前記基 準ポートの位置を検出するための基準ポート検出用パケットが前記第 2の情報処理 装置力も送信された時点における最新のポートである、請求項 35記載のプログラム。
[37] 前記検出用パケット送信ステップでは、前記バブルパケット送信ステップでバブルパ ケットを送信する前後に、前記ポート検出用パケットを送信する、請求項 35または 36 記載のプログラム。
[38] 前記バブルパケット、および前記ポート検出用パケットは、前記第 1の通信制御装置 における異なるポートを用いて送信されるものである、請求項 37記載のプログラム。
[39] 前記バブルパケット、および前記ポート検出用パケットは、前記第 1の情報処理装置 にお 、て新たに割り当てられたポートを用いて送信される、請求項 38記載のプロダラ ム。
[40] コンピュータに、
前記バブルパケット、および前記ポート検出用パケットを再度送信する旨の再送信指 示を受け付ける再送信指示受付ステップをさらに実行させ、
前記検出用パケット送信ステップでは、前記再送信指示受付ステップで前記再送信 指示を受け付けた場合に、前記ポート検出用パケットを再度送信し、 前記バブルパケット送信ステップでは、前記再送信指示受付ステップで前記再送信 指示を受け付けた場合に、前記バブルパケットを再度送信する、請求項 35記載のプ ログラム。
[41] コンピュータに、
前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケット を、前記第 1の通信制御装置を介して送信するポート幅検出用パケット送信ステップ をさらに実行させるための、請求項 35記載のプログラム。
[42] 前記第 2の通信制御装置における、前記バブルパケットを送信する対象のポートであ るバブルパケット送信対象ポートは、前記基準ポートから所定のポート割り当て後に 割り当てられるポートである、請求項 35記載のプログラム。
[43] コンピュータに、
前記第 2の通信制御装置におけるポート幅を示す情報であるポート幅情報を受け付 けるポート幅受付ステップをさらに実行させ、
前記バブルパケット送信ステップでは、前記基準ポートとのポート間隔が前記ポート 幅情報の示す前記ポート幅の M倍 (Mは 1以上の整数)である前記バブルパケット送 信対象ポートに対して前記バブルパケットを送信する、請求項 42記載のプログラム。
[44] コンピュータに、
前記返信パケット受付ステップで前記返信パケットを受け付けた場合に、当該返信パ ケットの送信で用いられた前記第 2の通信制御装置のポートに対して、再返信バケツ トを送信する再返信パケット送信ステップをさらに実行させるための、請求項 35記載 のプログラム。
[45] コンピュータに、
第 1の情報処理装置の通信を制御する第 1の通信制御装置と、第 2の情報処理装置 の通信を制御する第 2の通信制御装置とを介して、前記第 2の情報処理装置と通信 する前記第 1の情報処理装置における処理を実行させるためのプログラムであって、 前記第 1の通信制御装置は、前記第 2の情報処理装置から前記第 2の通信制御装 置を介して、前記第 2の通信制御装置に送信履歴を残すためのバブルパケットが送 信されるものであり、
前記バブルパケットの送信の対象の基準となる前記第 1の通信制御装置におけるポ ートである基準ポートの位置を検出するための基準ポート検出用パケットを送信する 基準ポート検出用パケット送信ステップと、
前記第 2の情報処理装置からの前記バブルパケットの送信で用いられた、前記第 2 の通信制御装置のポートであるバブルパケット送信ポートの位置を示すバブルバケツ ト送信ポート情報を受け付けるバブルパケット送信ポート受付ステップと、
前記バブルパケット送信ポート情報の示す前記バブルパケット送信ポートに対して返 信パケットを送信する返信パケット送信ステップと、を実行させるためのプログラム。
[46] 前記返信パケット送信ステップでは、前記返信パケットを、前記第 1の通信制御装置 の異なる N個(Nは 2以上の整数)のポートを用いて送信する、請求項 45記載のプロ グラム。
[47] 前記 N個のポートは、前記返信パケットの送信時に、前記第 1の通信制御装置にお V、て新たに割り当てられるものである、請求項 46記載のプログラム。
[48] 前記 Nは、前記第 1の通信制御装置における、前記基準ポートから前記バブルパケ ットが送信されたポートまでにお 、て割り当て可能なポートの数以上である、請求項 4 6または 47記載のプログラム。
[49] コンピュータに、
前記返信パケットの送信で用いられた前記第 1の通信制御装置のポートに対して、 前記第 2の情報処理装置力も送信された再返信パケットを受け付ける再返信パケット 受付ステップをさらに実行させるための、請求項 45記載のプログラム。
[50] コンピュータに、
前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケット を、前記第 1の通信制御装置を介して送信するポート幅検出用パケット送信ステップ をさらに実行させるための、請求項 45記載のプログラム。
[51] コンピュータに、
第 1の情報処理装置、および第 2の情報処理装置が、前記第 1の情報処理装置の通 信を制御する第 1の通信制御装置、および前記第 2の情報処理装置の通信を制御 する第 2の通信制御装置を介して行う通信を確立させるサーバにおける処理を実行 させるためのプログラムであって、
前記第 1の通信制御装置に送信履歴を残すために前記第 1の情報処理装置が送信 するバブルパケットの送信の対象の基準となる前記第 2の通信制御装置におけるポ ートである基準ポートの位置を検出するために、前記第 2の情報処理装置力 前記 第 2の通信制御装置を介して送信された基準ポート検出用パケットを受け付け、当該 基準ポート検出用パケットに基づいて前記基準ポートの位置を検出する基準ポート 検出ステップと、
前記基準ポート検出ステップで検出した前記基準ポートの位置を示す基準ポート情 報を前記第 1の情報処理装置に送信する基準ポート送信ステップと、
前記第 1の情報処理装置から前記第 2の通信制御装置への前記バブルパケットの送 信で用いられる前記第 1の通信制御装置におけるポートであるバブルパケット送信ポ ートの位置を検出するために、前記第 1の情報処理装置から送信されたポート検出 用パケットを受け付け、前記ポート検出用パケットに基づいて前記バブルパケット送 信ポートの位置を検出するバブルパケット送信ポート検出ステップと、
前記バブルパケット送信ポート検出ステップで検出した前記バブルパケット送信ポー トの位置を示すバブルパケット送信ポート情報を前記第 2の情報処理装置に送信す るバブルパケット送信ポート送信ステップと、を実行させるためのプログラム。
第 1の情報処理装置と、第 2の情報処理装置と、前記第 1の情報処理装置の通信を 制御する第 1の通信制御装置と、前記第 2の情報処理装置の通信を制御する第 2の 通信制御装置と、前記第 1の情報処理装置と前記第 2の情報処理装置間の通信を 確立させるサーバとを備えた通信システムであって、
前記第 1の情報処理装置は、
前記第 1の通信制御装置に送信履歴を残すために送信されるバブルパケットの送信 の対象の基準となる前記第 2の通信制御装置におけるポートである基準ポートの位 置を示す基準ポート情報を受け付ける基準ポート受付部と、
前記基準ポート情報に基づいて、前記第 1の通信制御装置を介して、前記バブルパ ケットを前記第 2の通信制御装置に送信するバブルパケット送信部と、 前記バブルパケットの送信で用いられる、前記第 1の通信制御装置のポートであるバ ブルパケット送信ポートの位置を検出するために、ポート検出用パケットを前記サー バに送信する検出用パケット送信部と、
前記バブルパケット送信ポートに対して、前記第 2の情報処理装置から前記第 2の通 信制御装置を介して送信された返信パケットを受け付ける返信パケット受付部と、 前記ポート検出用パケットが通過した前記第 1の通信制御装置のポートの位置を示 す検出用ポート情報を受け付ける検出用ポート情報受付部と、
前記検出用ポート情報受付部が受け付けた検出用ポート情報に基づいて、前記バ ブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出部と、 前記バブルパケット送信ポート検出部が検出した前記バブルパケット送信ポートの位 置を示すバブルパケット送信ポート情報を、前記サーバを介して前記第 2の情報処 理装置に送信するバブルパケット送信ポート送信部と、を備え
前記第 2の情報処理装置は、
前記基準ポートの位置を検出するための基準ポート検出用パケットをサーバに送信 する基準ポート検出用パケット送信部と、
前記バブルパケット送信ポートの位置を示すバブルパケット送信ポート情報を受け付 けるバブルパケット送信ポート受付部と、
前記バブルパケット送信ポート情報の示す前記バブルパケット送信ポートに対して返 信パケットを送信する返信パケット送信部と、を備え、
前記サーバは、
前記第 2の情報処理装置から送信された前記基準ポート検出用パケットを受け付け 、当該基準ポート検出用パケットに基づいて前記基準ポートの位置を検出する基準 ポート検出部と、
前記基準ポート検出部が検出した前記基準ポートの位置を示す基準ポート情報を前 記第 1の情報処理装置に送信する基準ポート送信部と、
前記第 1の情報処理装置から送信された前記ポート検出用パケットを受け付け、当 該ポート検出用パケットに基づいて前記ポート検出用パケットが通過した前記第 1の 通信制御装置のポートの位置を検出する検出用ポート検出部と、 前記検出用ポート検出部が検出したポートの位置を示す検出用ポート情報を前記第
1の情報処理装置に送信する検出用ポート情報送信部と、を備えた通信システム。
[53] 前記ポート検出用パケットが通過した前記第 1の通信制御装置のポートの位置を示 す検出用ポート情報を受け付ける検出用ポート情報受付部と、
前記検出用ポート情報受付部が受け付けた検出用ポート情報に基づいて、前記バ ブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出部と、 前記バブルパケット送信ポート検出部が検出した前記バブルパケット送信ポートの位 置を示すバブルパケット送信ポート情報を送信するバブルパケット送信ポート送信部 と、をさらに備えた、請求項 4記載の第 1の情報処理装置。
[54] 前記バブルパケット送信ポート検出部は、前記バブルパケット送信ポートの位置を検 出できな力つた場合に、前記ポート検出用パケットを再度送信する旨の指示を前記 検出用パケット送信部に渡し、前記バブルパケットを再度送信する旨の指示を前記 バブルパケット送信部に渡し、
前記検出用パケット送信部は、前記指示に応じて前記ポート検出用パケットを再度 送信し、
前記バブルパケット送信部は、前記指示に応じて前記バブルパケットを再度送信す る、請求項 53記載の第 1の情報処理装置。
[55] 前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケット を、前記第 1の通信制御装置を介して送信するポート幅検出用パケット送信部と、 前記ポート幅検出用パケットが通過した前記第 1の通信制御装置のポートの位置を 示すポート幅検出用ポート情報を受け付けるポート幅検出用ポート情報受付部と、 前記ポート幅検出用ポート情報受付部が受け付けたポート幅検出用ポート情報に基 づいて、前記第 1の通信制御装置におけるポート幅を検出するポート幅検出部と、を さらに備え、
前記バブルパケット送信ポート検出部は、前記ポート幅検出部が検出した前記第 1の 通信制御装置におけるポート幅を用いて前記バブルパケット送信ポートの位置を検 出する、請求項 53または 54記載の第 1の情報処理装置。
[56] 前記ポート幅検出用パケットが通過した前記第 1の通信制御装置のポートの位置を 示すポート幅検出用ポート情報を受け付けるポート幅検出用ポート情報受付部と、 前記ポート幅検出用ポート情報受付部が受け付けたポート幅検出用ポート情報に基 づいて、前記第 1の通信制御装置におけるポート幅を検出するポート幅検出部と、 前記ポート幅検出部が検出した前記第 1の通信制御装置におけるポート幅を示す情 報であるポート幅情報を送信するポート幅送信部と、をさらに備えた、請求項 19記載 の第 1の情報処理装置。
[57] 第 1の情報処理装置、および第 2の情報処理装置が、前記第 1の情報処理装置の通 信を制御する第 1の通信制御装置、および前記第 2の情報処理装置の通信を制御 する第 2の通信制御装置を介して行う通信を確立させるサーバであって、 前記第 1の通信制御装置に送信履歴を残すために前記第 1の情報処理装置が送信 するバブルパケットの送信の対象の基準となる前記第 2の通信制御装置におけるポ ートである基準ポートの位置を検出するために、前記第 2の情報処理装置力 前記 第 2の通信制御装置を介して送信された基準ポート検出用パケットを受け付け、当該 基準ポート検出用パケットに基づいて前記基準ポートの位置を検出する基準ポート 検出部と、
前記基準ポート検出部が検出した前記基準ポートの位置を示す基準ポート情報を前 記第 1の情報処理装置に送信する基準ポート送信部と、
前記第 1の情報処理装置から前記第 2の通信制御装置への前記バブルパケットの送 信で用いられる前記第 1の通信制御装置におけるポートであるバブルパケット送信ポ ートの位置を検出するために、前記第 1の情報処理装置から送信されたポート検出 用パケットを受け付け、当該ポート検出用パケットに基づいて前記ポート検出用パケ ットが通過した前記第 1の通信制御装置のポートの位置を検出する検出用ポート検 出部と、
前記検出用ポート検出部が検出したポートの位置を示す検出用ポート情報を前記第 1の情報処理装置に送信する検出用ポート情報送信部と、を備えたサーバ。
[58] 前記第 1の情報処理装置から前記第 1の通信制御装置を介して送信された第 1のポ ート幅検出用パケットを受け付け、当該第 1のポート幅検出用パケットに基づいて前 記第 1のポート幅検出用パケットが通過した前記第 1の通信制御装置のポートの位置 を検出する第 1のポート幅検出用ポート検出部と、
前記第 1のポート幅検出用ポート検出部が検出したポートの位置を示すポート幅検 出用ポート情報を前記第 1の情報処理装置に送信する第 1のポート幅検出用ポート 情報送信部と、をさらに備えた、請求項 57記載のサーバ。
[59] 前記第 2の情報処理装置から前記第 2の通信制御装置を介して送信された第 2のポ ート幅検出用パケットを受け付け、当該第 2のポート幅検出用パケットに基づいて前 記第 2のポート幅検出用パケットが通過した前記第 2の通信制御装置のポートの位置 を検出する第 2のポート幅検出用ポート検出部と、
前記第 2のポート幅検出用ポート検出部が検出したポートの位置を示すポート幅検 出用ポート情報を前記第 2の情報処理装置に送信する第 2のポート幅検出用ポート 情報送信部と、をさらに備えた、請求項 57または 58記載のサーバ。
[60] コンピュータに、
前記ポート検出用パケットが通過した前記第 1の通信制御装置のポートの位置を示 す検出用ポート情報を受け付ける検出用ポート情報受付ステップと、
前記検出用ポート情報受付ステップで受け付けた検出用ポート情報に基づいて、前 記バブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出ステツ プと、
前記バブルパケット送信ポート検出ステップで検出した前記バブルパケット送信ポー トの位置を示すバブルパケット送信ポート情報を送信するバブルパケット送信ポート 送信ステップと、をさらに実行させるための、請求項 35記載のプログラム。
[61] 前記検出用パケット送信ステップでは、前記バブルパケット送信ポート検出ステップ にお 、て前記バブルパケット送信ポートの位置を検出できな力つた場合に、前記ポ ート検出用パケットを再度送信し、
前記バブルパケット送信ステップでは、前記バブルパケット送信ポート検出ステップ にお 、て前記バブルパケット送信ポートの位置を検出できな力 た場合に、前記バ ブルパケットを再度送信する、請求項 60記載のプログラム。
[62] コンピュータに、
前記第 1の通信制御装置におけるポート幅を検出するためのポート幅検出用パケット を、前記第 1の通信制御装置を介して送信するポート幅検出用パケット送信ステップ と、
前記ポート幅検出用パケットが通過した前記第 1の通信制御装置のポートの位置を 示すポート幅検出用ポート情報を受け付けるポート幅検出用ポート情報受付ステップ と、
前記ポート幅検出用ポート情報受付部が受け付けたポート幅検出用ポート情報に基 づいて、前記第 1の通信制御装置におけるポート幅を検出するポート幅検出ステップ と、をさらに実行させ、
前記バブルパケット送信ポート検出ステップでは、前記ポート幅検出ステップで検出 した前記第 1の通信制御装置におけるポート幅を用いて前記バブルパケット送信ポ ートの位置を検出する、請求項 60または 61記載のプログラム。
[63] コンピュータに、
前記ポート幅検出用パケットが通過した前記第 1の通信制御装置のポートの位置を 示すポート幅検出用ポート情報を受け付けるポート幅検出用ポート情報受付ステップ と、
前記ポート幅検出用ポート情報受付ステップで受け付けたポート幅検出用ポート情 報に基づいて、前記第 1の通信制御装置におけるポート幅を検出するポート幅検出 ステップと、
前記ポート幅検出ステップで検出した前記第 1の通信制御装置におけるポート幅を 示す情報であるポート幅情報を送信するポート幅送信ステップと、をさらに実行させる ための、請求項 50記載のプログラム。
[64] コンピュータに、
第 1の情報処理装置、および第 2の情報処理装置が、前記第 1の情報処理装置の通 信を制御する第 1の通信制御装置、および前記第 2の情報処理装置の通信を制御 する第 2の通信制御装置を介して行う通信を確立させるサーバにおける処理を実行 させるためのプログラムであって、
前記第 1の通信制御装置に送信履歴を残すために前記第 1の情報処理装置が送信 するバブルパケットの送信の対象の基準となる前記第 2の通信制御装置におけるポ ートである基準ポートの位置を検出するために、前記第 2の情報処理装置力 前記 第 2の通信制御装置を介して送信された基準ポート検出用パケットを受け付け、当該 基準ポート検出用パケットに基づいて前記基準ポートの位置を検出する基準ポート 検出ステップと、
前記基準ポート検出ステップで検出した前記基準ポートの位置を示す基準ポート情 報を前記第 1の情報処理装置に送信する基準ポート送信ステップと、
前記第 1の情報処理装置から前記第 2の通信制御装置への前記バブルパケットの送 信で用いられる前記第 1の通信制御装置におけるポートであるバブルパケット送信ポ ートの位置を検出するために、前記第 1の情報処理装置から送信されたポート検出 用パケットを受け付け、当該ポート検出用パケットに基づいて前記ポート検出用パケ ットが通過した前記第 1の通信制御装置のポートの位置を検出する検出用ポート検 出ステップと、
前記検出用ポート検出ステップで検出したポートの位置を示す検出用ポート情報を 前記第 1の情報処理装置に送信する検出用ポート情報送信ステップと、を実行させ るためのプログラム。
[65] 情報処理装置と、前記情報処理装置の通信を制御する通信制御装置と、サーバとを 備えた通信システムであって、
前記情報処理装置は、
前記通信制御装置を介して、前記通信制御装置に送信履歴を残すためのバブルパ ケットを送信するバブルパケット送信部と、
前記バブルパケットの送信で用いられる、前記通信制御装置のポートであるバブル パケット送信ポートの位置を検出するために用いられるポート検出用パケットを、前記 バブルパケット送信部が前記バブルパケットを送信する前後に、前記サーバに送信 する検出用パケット送信部と、を備えた、通信システム。
[66] 前記バブルパケット、および前記ポート検出用パケットは、前記情報処理装置におい て新たに割り当てられたポートを用いて送信される、請求項 65記載の通信システム。
[67] 前記サーバは、
前記情報処理装置から送信された前記ポート検出用パケットを受け付け、前記ポート 検出用パケットに基づいて前記バブルパケット送信ポートの位置を検出するバブル パケット送信ポート検出部を備える、請求項 65または 66記載の通信システム。
[68] 前記サーバは、
前記バブルパケット送信ポートの位置を示すバブルパケット送信ポート情報を送信す るバブルパケット送信ポート送信部をさらに備えた、請求項 67記載の通信システム。
[69] 前記サーバは、
前記バブルパケット送信ポート検出部が前記バブルパケット送信ポートの位置を検出 できなかった場合に、前記バブルパケット、および前記ポート検出用パケットを再度 送信する旨の指示である再送信指示を前記情報処理装置に送信する再送信指示送 信部をさらに備え、
前記情報処理装置は、
前記サーバ力 送信された前記再送信指示を受け付ける再送信指示受付部をさら に備え、
前記検出用パケット送信部は、前記再送信指示受付部が前記再送信指示を受け付 けた場合に、前記ポート検出用パケットを再度、前記サーバに送信し、
前記バブルパケット送信部は、前記再送信指示受付部が前記再送信指示を受け付 けた場合に、前記バブルパケットを再度、前記サーバに送信する、請求項 67記載の 通信システム。
[70] 前記バブルパケット送信ポート検出部は、前記通信制御装置のポート幅を用いて前 記バブルパケット送信ポートの位置を検出する、請求項 67記載の通信システム。
[71] 前記情報処理装置は、
前記通信制御装置におけるポート幅を検出するためのポート幅検出用パケットを、前 記通信制御装置を介して送信するポート幅検出用パケット送信部をさらに備え、 前記サーバは、
前記ポート幅検出用パケットを受け付け、当該ポート幅検出用パケットに基づいて前 記通信制御装置のポート幅を検出するポート幅検出部をさらに備え、
前記バブルパケット送信ポート検出部は、前記ポート幅検出部が検出したポート幅を 用いて前記バブルパケット送信ポートの位置を検出する、請求項 70記載の通信シス テム。
[72] 前記情報処理装置は、
前記ポート検出用パケットが通過した前記通信制御装置のポートの位置を示す検出 用ポート情報を受け付ける検出用ポート情報受付部と、
前記検出用ポート情報受付部が受け付けた検出用ポート情報に基づいて、前記バ ブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出部と、をさら に備え、
前記サーバは、
前記ポート検出用パケットを受け付け、当該ポート検出用パケットが通過した前記通 信制御装置のポートの位置を検出する検出用ポート検出部と、
前記検出用ポート検出部が検出したポートの位置を示す検出用ポート情報を前記情 報処理装置に送信する検出用ポート情報送信部と、を備えた、請求項 65または 66 記載の通信システム。
[73] 前記情報処理装置は、
前記バブルパケット送信ポートの位置を示すバブルパケット送信ポート情報を送信す るバブルパケット送信ポート送信部をさらに備えた、請求項 72記載の通信システム。
[74] 前記検出用パケット送信部は、前記バブルパケット送信ポート検出部が前記バブル パケット送信ポートの位置を検出できな力つた場合に、前記ポート検出用パケットを 再度送信し、
前記バブルパケット送信部は、前記バブルパケット送信ポート検出部が前記バブル パケット送信ポートの位置を検出できな力つた場合に、前記バブルパケットを再度送 信する、請求項 72記載の通信システム。
[75] 前記バブルパケット送信ポート検出部は、前記通信制御装置のポート幅を用いて前 記バブルパケット送信ポートの位置を検出する、請求項 72記載の通信システム。
[76] 前記情報処理装置は、
前記通信制御装置におけるポート幅を検出するためのポート幅検出用パケットを、前 記通信制御装置を介して送信するポート幅検出用パケット送信部と、
前記ポート幅検出用パケットが通過した前記通信制御装置のポートの位置を示すポ ート幅検出用ポート情報を受け付けるポート幅検出用ポート情報受付部と、 前記ポート幅検出用ポート情報受付部が受け付けたポート幅検出用ポート情報に基 づいて、前記通信制御装置におけるポート幅を検出するポート幅検出部と、をさらに 備え、
前記サーバは、
前記ポート幅検出用パケットを受け付け、当該ポート幅検出用パケットが通過した前 記通信制御装置のポートの位置を検出するポート幅検出用ポート検出部と、 前記ポート幅検出用ポート検出部が検出したポートの位置を示すポート幅検出用ポ ート情報を前記情報処理装置に送信するポート幅検出用ポート情報送信部と、をさら に備え、
前記バブルパケット送信ポート検出部は、前記ポート幅検出部が検出した前記通信 制御装置のポート幅を用いて前記バブルパケット送信ポートの位置を検出する、請 求項 75記載の通信システム。
[77] 前記バブルパケット送信ポート情報を受け付けるバブルパケット送信ポート受付部と 前記バブルパケット送信ポート情報の示す前記バブルパケット送信ポートに対して返 信パケットを送信する返信パケット送信部と、を備えた第 2の情報処理装置をさらに備 え、
前記情報処理装置は、
前記第 2の情報処理装置力も送信された返信パケットを受け付ける返信パケット受付 部をさらに備えた、請求項 73記載の通信システム。
[78] 請求項 65記載の通信システムを構成する情報処理装置。
[79] 請求項 77記載の通信システムを構成する第 2の情報処理装置。
[80] 請求項 65記載の通信システムを構成するサーバ。
[81] 情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記情報処理装置にぉ 、て用いられる通信方法で あって、
前記通信制御装置を介して、前記通信制御装置に送信履歴を残すためのバブルパ ケットを送信するバブルパケット送信ステップと、
前記バブルパケットの送信で用いられる、前記通信制御装置のポートであるバブル パケット送信ポートの位置を検出するために用いられるポート検出用パケットを、前記 バブルパケット送信ステップで前記バブルパケットを送信する前後に、前記サーバに 送信する検出用パケット送信ステップと、を備えた通信方法。
[82] 前記ポート検出用パケットが通過した前記通信制御装置のポートの位置を示す検出 用ポート情報を受け付ける検出用ポート情報受付ステップと、
前記検出用ポート情報受付ステップで受け付けた検出用ポート情報に基づいて、前 記バブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出ステツ プと、をさらに備えた請求項 81記載の通信方法。
[83] 前記バブルパケット送信ポート検出ステップで検出した前記バブルパケット送信ポー トの位置を示すバブルパケット送信ポート情報を送信するバブルパケット送信ポート 送信ステップをさらに備えた、請求項 82記載の通信方法。
[84] 情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記サーバにおいて用いられる通信方法であって 前記通信制御装置に送信履歴を残すために前記情報処理装置が送信するバブル パケットの送信で用いられる前記通信制御装置におけるポートであるバブルパケット 送信ポートの位置を検出するために、前記バブルパケットの送信の前後に前記情報 処理装置力も送信されたポート検出用パケットを受け付けるステップと、
前記ポート検出用パケットに基づいて前記バブルパケット送信ポートの位置を検出す るステップと、を備えた通信方法。
[85] 情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記サーバにおいて用いられる通信方法であって 前記通信制御装置に送信履歴を残すために前記情報処理装置が送信するバブル パケットの送信で用いられる前記通信制御装置におけるポートであるバブルパケット 送信ポートの位置を検出するために、前記バブルパケットの送信の前後に前記情報 処理装置力も送信されたポート検出用パケットを受け付けるステップと、 前記ポート検出用パケットが通過した前記通信制御装置のポートの位置を検出する ステップと、
前記ポート検出用パケットが通過した前記通信制御装置のポートの位置を示す検出 用ポート情報を前記情報処理装置に送信するステップと、を備えた通信方法。
[86] コンピュータに、
情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記情報処理装置における処理を実行させるため のプログラムであって、
前記通信制御装置を介して、前記通信制御装置に送信履歴を残すためのバブルパ ケットを送信するバブルパケット送信ステップと、
前記バブルパケットの送信で用いられる、前記通信制御装置のポートであるバブル パケット送信ポートの位置を検出するために用いられるポート検出用パケットを、前記 バブルパケット送信ステップで前記バブルパケットを送信する前後に、前記サーバに 送信する検出用パケット送信ステップと、を実行させるためのプログラム。
[87] コンピュータに、
情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記サーバにおける処理を実行させるためのプロ グラムであって、
前記通信制御装置に送信履歴を残すために前記情報処理装置が送信するバブル パケットの送信で用いられる前記通信制御装置におけるポートであるバブルパケット 送信ポートの位置を検出するために、前記バブルパケットの送信の前後に前記情報 処理装置力も送信されたポート検出用パケットを受け付けるステップと、
前記ポート検出用パケットに基づいて前記バブルパケット送信ポートの位置を検出す るステップと、を実行させるためのプログラム。
[88] コンピュータに、
情報処理装置、前記情報処理装置の通信を制御する通信制御装置、およびサーバ を備える通信システムを構成する前記サーバにおける処理を実行させるためのプロ グラムであって、
前記通信制御装置に送信履歴を残すために前記情報処理装置が送信するバブル パケットの送信で用いられる前記通信制御装置におけるポートであるバブルパケット 送信ポートの位置を検出するために、前記バブルパケットの送信の前後に前記情報 処理装置力も送信されたポート検出用パケットを受け付けるステップと、
前記ポート検出用パケットが通過した前記通信制御装置のポートの位置を検出する ステップと、
前記ポート検出用パケットが通過した前記通信制御装置のポートの位置を示す検出 用ポート情報を前記情報処理装置に送信するステップと、を実行させるためのプログ ラム。
PCT/JP2004/016084 2003-11-07 2004-10-29 通信システム、情報処理装置、サーバ、および通信方法 WO2005046143A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US10/576,588 US8239541B2 (en) 2003-11-07 2004-10-29 Bidirectional connection setup between endpoints behind network address translators (NATs)
JP2005515273A JP3933183B2 (ja) 2003-11-07 2004-10-29 通信システム、情報処理装置、サーバ、および通信方法
EP20040793192 EP1677465B1 (en) 2003-11-07 2004-10-29 Communication system, information processing apparatus and communication method
US11/510,487 US8234383B2 (en) 2003-11-07 2006-08-24 Bubble packet port identification using detection packets

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2003378289 2003-11-07
JP2003-378289 2003-11-07
JP2004-121592 2004-04-16
JP2004121592 2004-04-16

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US10/576,588 A-371-Of-International US8239541B2 (en) 2003-11-07 2004-10-29 Bidirectional connection setup between endpoints behind network address translators (NATs)
US11/510,487 Continuation US8234383B2 (en) 2003-11-07 2006-08-24 Bubble packet port identification using detection packets

Publications (1)

Publication Number Publication Date
WO2005046143A1 true WO2005046143A1 (ja) 2005-05-19

Family

ID=34575927

Family Applications (1)

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

Country Status (6)

Country Link
US (1) US8239541B2 (ja)
EP (3) EP2367326B1 (ja)
JP (1) JP3933183B2 (ja)
KR (2) KR20070065921A (ja)
TW (2) TW200742379A (ja)
WO (1) WO2005046143A1 (ja)

Cited By (2)

* 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 情報処理装置、ポート検出装置、情報処理方法、及びポート検出方法
WO2007003120A1 (fr) * 2005-07-01 2007-01-11 Huawei Technologies Co., Ltd. Systeme, procede et serveur de localisation d'un utilisateur dans un reseau a paquets

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7623513B2 (en) * 2003-10-27 2009-11-24 Panasonic Corporation Communication system, information processing apparatus, server, and communication method
JP4654006B2 (ja) * 2004-11-16 2011-03-16 パナソニック株式会社 サーバ装置、携帯端末、通信システム及びプログラム
JP4672405B2 (ja) * 2005-03-17 2011-04-20 パナソニック株式会社 通信システム、情報処理システム、接続サーバ、処理サーバ、情報処理装置、及び情報処理方法
US7773584B2 (en) * 2006-06-13 2010-08-10 At&T Intellectual Property I, L.P. Method and apparatus for processing session initiation protocol messages associated with a voice over IP terminal
US20100088755A1 (en) * 2006-12-29 2010-04-08 Telefonaktiebolaget L M Ericsson (Publ) Access management for devices in communication networks
US8005962B2 (en) * 2008-02-27 2011-08-23 Ncomputing Inc. System and method for using virtual IP addresses in a multi-user server system
US20140280989A1 (en) * 2013-03-14 2014-09-18 Thomas J. Borkowski System and method for establishing peer to peer connections through symmetric nats
JP6492939B2 (ja) * 2015-04-30 2019-04-03 富士通株式会社 制御装置、ストレージシステムおよびプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676579B2 (en) * 2002-05-13 2010-03-09 Sony Computer Entertainment America Inc. Peer to peer network communication
JP2004180003A (ja) 2002-11-27 2004-06-24 Kitt Peak:Kk 通信ネットワークシステムおよび通信の接続方法
TW200412101A (en) * 2002-12-23 2004-07-01 Shaw-Hwa Hwang Directly peer-to peer transmission protocol between two virtual network
US7305481B2 (en) * 2003-01-07 2007-12-04 Hexago Inc. Connecting IPv6 devices through IPv4 network and network address translator (NAT) using tunnel setup protocol
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 ソニー株式会社 ネットワークシステムおよび通信方法、情報処理装置および方法、並びにプログラム
US8234383B2 (en) * 2003-11-07 2012-07-31 Panasonic Corporation Bubble packet port identification using detection packets
US8065418B1 (en) * 2004-02-02 2011-11-22 Apple Inc. NAT traversal for media conferencing
EP1723533A1 (en) * 2004-03-09 2006-11-22 Clique Communications Llc System and method for peer-to-peer connection of clients behind symmetric firewalls
US7543064B2 (en) * 2004-09-30 2009-06-02 Logitech Europe S.A. Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"The cable guy-2003 nen 4 gatsu: Windows XP peer-to-peer update no IPv6 kino", April 2003 (2003-04-01), pages 1 - 7, XP002988197, Retrieved from the Internet <URL:http://www.microsoft.com/japan/technet/community/columns/cableguy/cg0403.mspx> [retrieved on 20050118] *
C. HUITEMA, TEREDO: TUNNELING LPV6 OVER UDP THROUGH NATS, 6 June 2003 (2003-06-06), Retrieved from the Internet <URL:draft-huitema-v6ops-teredo-00.txt>
OIKAWA T. ET AL.: "IPv6style: advanced networking pack for Windows XP daikaibo", DAI 1 KAI IPV6 SETSUZOKU O SARANI TOKATEKI NI SURU TEREDO, 29 September 2003 (2003-09-29), pages 1 - 11, XP002988196, Retrieved from the Internet <URL:http://www.ipv6style.jp/jp/tryout/20030929/20030929_p.shtml> [retrieved on 20050118] *
See also references of EP1677465A4

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 パナソニック株式会社 情報処理装置、ポート検出装置、情報処理方法、及びポート検出方法
WO2007003120A1 (fr) * 2005-07-01 2007-01-11 Huawei Technologies Co., Ltd. Systeme, procede et serveur de localisation d'un utilisateur dans un reseau a paquets
US8667182B2 (en) 2005-07-01 2014-03-04 Huawei Technologies Co., Ltd. User locating system, method and server in packet-based network

Also Published As

Publication number Publication date
EP1677465A1 (en) 2006-07-05
KR20070065921A (ko) 2007-06-25
EP1677465A4 (en) 2011-07-13
US20070091798A1 (en) 2007-04-26
TW200742379A (en) 2007-11-01
US8239541B2 (en) 2012-08-07
TW200522617A (en) 2005-07-01
EP2367326B1 (en) 2014-08-13
EP1816828A3 (en) 2015-07-29
KR20060113701A (ko) 2006-11-02
EP1816828B1 (en) 2018-05-16
JPWO2005046143A1 (ja) 2007-11-29
EP1677465B1 (en) 2014-08-13
JP3933183B2 (ja) 2007-06-20
EP1816828A2 (en) 2007-08-08
EP2367326A1 (en) 2011-09-21

Similar Documents

Publication Publication Date Title
US8234383B2 (en) Bubble packet port identification using detection packets
US9137027B2 (en) Bootstrapping in peer-to-peer networks with network address translators
US8457014B2 (en) Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system
US20090313386A1 (en) Communication apparatus, communication method and communication system
US20050066038A1 (en) Session control system, communication terminal and servers
JP3835462B2 (ja) 情報処理装置、及びバブルパケット送信方法
WO2005046143A1 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP3849711B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP3933182B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP4389885B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
EP1959643A1 (en) Method for NAT traversal in a P2P-SIP network
JP4389886B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP2008205676A (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
JP4389994B2 (ja) 通信システム、情報処理装置、サーバ、および情報処理方法
Baldi et al. Providing end-to-end connectivity to sip user agents behind nats
Baldi et al. NAT Traversal
JP4345751B2 (ja) 情報処理装置、及びバブルパケット送信方法

Legal Events

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

Ref document number: 200480032873.5

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): 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: 2005515273

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2007091798

Country of ref document: US

Ref document number: 10576588

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 1020067008654

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2004793192

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2004793192

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020067008654

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 10576588

Country of ref document: US