KR20060102333A - 통신 시스템, 정보 처리 장치, 서버 및 통신 방법 - Google Patents

통신 시스템, 정보 처리 장치, 서버 및 통신 방법 Download PDF

Info

Publication number
KR20060102333A
KR20060102333A KR20067008114A KR20067008114A KR20060102333A KR 20060102333 A KR20060102333 A KR 20060102333A KR 20067008114 A KR20067008114 A KR 20067008114A KR 20067008114 A KR20067008114 A KR 20067008114A KR 20060102333 A KR20060102333 A KR 20060102333A
Authority
KR
South Korea
Prior art keywords
port
packet
range
communication control
information processing
Prior art date
Application number
KR20067008114A
Other languages
English (en)
Inventor
쿠니오 고바라
하지메 마에카와
Original Assignee
마쯔시다덴기산교 가부시키가이샤
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 마쯔시다덴기산교 가부시키가이샤 filed Critical 마쯔시다덴기산교 가부시키가이샤
Publication of KR20060102333A publication Critical patent/KR20060102333A/ko

Links

Images

Classifications

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

Landscapes

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

Abstract

제1 정보 처리 장치(1)는, 제1 통신 제어 장치(3)를 통해 제1 통신 제어 장치(3)에 송신 이력을 남기기 위한 버블 패킷을 제2 통신 제어 장치(4)에 송신하고, 제2 정보 처리 장치(2)는, 버블 패킷의 송신에서 이용되는, 제1 통신 제어 장치(3)의 포트인 버블 패킷 송신 포트를 적어도 포함하는 1 이상의 포트에 대하여 응답 패킷을 송신하고, 제1 정보 처리 장치(1)는, 버블 패킷 송신 포트에 대하여, 제2 정보 처리 장치(2)로부터 제2 통신 제어 장치(4)를 통해 송신되는 응답 패킷을 수신한다. 이러한 구성에 의해, 통신 제어 장치(NAT)를 통해 통신을 행하는 다수의 정보 처리 장치 간에서의 통신의 확립을 보다 확실하게 행할 수 있는 통신 시스템을 제공한다.
버블 패킷, 통신 포트, 통신 제어 장치

Description

통신 시스템, 정보 처리 장치, 서버 및 통신 방법{COMMUNICATION SYSTEM, INFORMATION PROCESSING APPARATUS, SERVER, AND COMMUNICATION METHOD}
본 발명은 다수의 정보 처리 장치 간에 있어서 통신을 확립시키는 통신 시스템 등에 관한 것이다.
먼저 NAT(Network Address Translation)의 분류에 대하여 설명한다. NAT에는 송신 포트 할당 룰과 수신 필터 룰이 있고, 그 조합에 의해 NAT의 분류가 행해진다. 송신 포트 할당 룰에는, 패킷의 수신처(IP 어드레스, 포트)에 의존하지 않고, NAT의 로컬측(예를 들면, LAN측)의 정보 처리 장치의 포트와 IP 어드레스가 같으면, NAT에 할당되는 글로벌측(예를 들면, 인터넷 등의 WAN측)의 포트가 동일해지는 Cone타입과, 패킷의 수신처 어드레스마다 새로운 포트가 할당되는 Address Sensitive 타입과, 패킷의 수신처 포트마다 새로운 포트가 할당되는 Port Sensitive 타입이 있다. NAT의 로컬측으로부터 패킷이 송신된 포트에 대하여 글로벌측으로부터의 패킷의 수신 가능성을 판단하는 수신 필터 룰에는, 그 포트로부터 패킷을 송신한 어드레스로부터만 패킷을 수신하는 Address Sensitive 필터와, 그 포트로부터 패킷을 송신한 포트로부터만 패킷을 수신하는 Port Sensitive 필터와, 필터가 존재하지 않는 No 필터가 있다. 이들 송신 포트 할당 룰과, 수신 필터 룰을 조합함으로써 NAT를 하기 5종류로 분류할 수 있다.
Full Cone NAT: 송신 포트 할당 룰이 Cone타입이고, 수신 포트 필터 룰이 No필터인 것.
Restricted Cone NAT: 송신 포트 할당 룰이 Cone타입이고, 수신 포트 필터 룰이 Address Sensitive 필터인 것.
Port Restricted Cone NAT: 송신 포트 할당 룰이 Cone타입이고, 수신 포트 필터 룰이 Port Sensitive 필터인 것.
Address Sensitive Symmetric NAT: 송신 포트 할당 룰이 Address Sensitive타입이고, 수신 포트 필터 룰이 Address Sensitive 필터인 것.
Port Sensitive Symmetric NAT: 송신 포트 할당 룰이 Port Sensitive 타입이고, 수신 포트 필터 룰이 Port Sensitive 필터인 것.
이러한 NAT를 이용한 통신에 있어서, 도 40에서 도시된 바와 같은 PC1과 PC2와의 사이에서의 서버를 통하지 않고 통신을 확립하는 경우에 대하여 고려되어 왔다.
상기의 기술 내용은, 예를 들면 D.Yon,「Connection-Oriented Media Transport in SDP」, [Online], 2003년 3월, [2003년 9월 29일 검색], 인터넷 <URL: http://www.ietf.org/internet-drafts/draft-ietf-mmusic-sdp-comedia-05.txt> (이하,「비특허문헌1」이라고 함), 또는 Y.Takeda,「Symmetric NAT Traversal using STUN」, [Online], 2003년 6월, [2003년 9월 29일 검색], 인터넷 <URL: http://www.ietf.org/internet-drafts/draft-takada-symmetric-nat- traversal-00.txt> (이하,「비특허문헌2」이라고 함)에 기재되어 있다. 또한, J.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, [2003년 9월 29일 검색], 인터넷 <URL: http://www.ietf.org/rfc/rfc3489.txt> (이하,「비특허문헌3」이라고 함)에 기재되어 있다.
그러나 이 경우에 있어서도, 통신을 확립할 수 없는 NAT의 조합이 있을 수 있다. 도 40에 있어서, NAT1의 로컬측에 접속된 정보 처리 장치인 PC1으로부터 PC2에 대하여 통신을 행할 경우에, NAT1을 송신측의 NAT, NAT2를 수신측의 NAT라고 부르기로 한다. 그러면, PC1과 PC2와의 사이에서 통신을 확립할 수 있는 NAT의 조합은, 도 41에 나타낸 바와 같이 된다. 또한, 도 41에 있어서의 NAT의 약칭에 대해서는, 하기의 실시예에서 설명하는 바와 같다.
여기에서, 도 41에서의 「*1」의 접속은 종래부터 알려져 있고 ,「*2」의 접속은 상기 비특허문헌 1에 기재되어 있고,「*3」의 접속은 상기 비특허문헌 2에 기재되어 있다. 또한, 통신을 확립할 수 있는 NAT의 조합이라도,「*3」의 접속에 있어서는 NAT의 포트 폭을 확실히 알고, 동시에 수신측의 NAT의 최신 포트의 위치를 확실히 알 수 없으면, 통신을 확립할 수 없다는 불확실성이 남는다는 문제도 있다.
또한, 정보 처리 장치간의 통신을 확립하는 전제로서, 일측의 정보 처리 장치로부터 송신된 버블 패킷(NAT에 송신 이력을 남기기 위하여 송신되는 패킷)이 통과한 NAT의 포트의 범위를 검출하고자 한다.
본 발명의 목적의 하나는, 통신을 제어하는 통신 제어 장치를 통해 통신을 행하는 다수의 정보 처리 장치간에 있어서의 통신의 확립을, 보다 확실하게 행할 수 있는 통신 시스템 등을 제공하는 것이다.
본 발명의 다른 목적은, 정보 처리 장치로부터 송신된 버블 패킷이 통과한 통신 제어 장치에서의 포트의 범위를 검출할 수 있는 통신 시스템 등을 제공하는 것이다.
상기 목적을 달성하기 위하여, 본 발명에 의한 통신 시스템은, 제1 정보 처리 장치와, 제2 정보 처리 장치와, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치와, 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치와, 상기 제1 정보 처리 장치와 상기 제2 정보 처리 장치 간의 통신을 확립시키는 서버를 구비한 통신 시스템으로서, 상기 제1 정보 처리 장치는, 상기 제1 통신 제어 장치를 통해 상기 제1 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 상기 제2 통신 제어 장치에 송신하는 버블 패킷 송신부와, 상기 버블 패킷의 송신에서 이용되는, 상기 제1 통신 제어 장치의 포트인 버블 패킷 송신 포트에 대하여, 상기 제2 정보 처리 장치로부터 상기 제2 통신 제어 장치를 통해 송신되는 응답 패킷을 수신하는 응답 패킷 수신부를 구비하고, 상기 제2 정보 처리 장치는, 상기 버블 패킷 송신 포트를 적어도 포함하는 1 이상의 포트에 대하여 상기 응답 패킷을 송신하는 응답 패킷 송신부를 구비한 것이다.
이러한 구성에 의해, 버블 패킷의 송신에 의해 할당된 제1 통신 제어 장치의 포트에 대하여 응답 패킷을 송신함으로써, 제1 정보 처리 장치와 제2 정보 처리 장치 간에서의 통신을 확립하는 것이 가능하다.
또한, 본 발명에 의한 제1 정보 처리 장치는, 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치와, 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해, 상기 제2 정보 처리 장치와 통신하는 상기 제1 정보 처리 장치로서, 상기 제1 통신 제어 장치를 통해 상기 제1 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 상기 제2 통신 제어 장치에 송신하는 버블 패킷 송신부와, 상기 버블 패킷의 송신에서 이용된, 상기 제1 통신 제어 장치의 포트인 버블 패킷 송신 포트에 대하여, 상기 제2 정보 처리 장치로부터 상기 제2 통신 제어 장치를 통해 송신되는 응답 패킷을 수신하는 응답 패킷 수신부를 구비한 것이다.
이러한 구성에 의해, 제2 정보 처리 장치와의 사이에서 통신을 확립시키기 위하여 이용되는 버블 패킷 송신 포트를, 버블 패킷을 송신함으로써 제1 통신 제어 장치에 할당할 수 있고, 그 버블 패킷 송신 포트에 송신된 응답 패킷을 수신함으로써, 제1 정보 처리 장치와 제2 정보 처리 장치 간의 통신을 확립하는 것이 가능하다.
또한, 본 발명에 의한 서버는, 제1 정보 처리 장치 및 제2 정보 처리 장치가, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치 및 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해 행하는 통신을 확립시키는 서버로서, 상기 제1 정보 처리 장치 및 상기 제2 정보 처리 장치와, 정보를 송수신하는 정보 송수신부와, 상기 제1 통신 제어 장치 및 상기 제2 통신 제어 장치의 특성을 판단하는 특성 판단부와, 상기 특성 판단부에 의한 판단 결과에 따라, 상기 제1 정보 처리 장치 및 상기 제2 정보 처리 장치 중 어느 하나를 송신측(송신측 정보 처리 장치)으로 결정하고, 타측을 수신측(수신측 정보 처리 장치)으로 결정하는 송수신 결정부를 구비한 것이다.
이러한 구성에 의해, 제1 통신 제어 장치 및 제2 통신 제어 장치의 특성에 따라, 제1 정보 처리 장치와 제2 정보 처리 장치 간에서의 통신을 확립할 수 있도록, 제1 정보 처리 장치 및 제2 정보 처리 장치의 일측을 송신측으로 결정하고, 타측을 수신측으로 결정할 수 있다.
또한, 본 발명에 의한 서버는, 제1 정보 처리 장치 및 제2 정보 처리 장치가, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치 및 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해 행하는 통신을 확립시키는 서버로서, 상기 제1 정보 처리 장치로부터, 상기 제2 통신 제어 장치에 대한 상기 제1 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷의 송신에서 이용되는, 상기 제1 통신 제어 장치의 포트인 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위한 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출부와, 상기 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 상기 제1 정보 처리 장치에 송신하는 검출용 포트 정보 송신부를 구비한 것이다.
이러한 구성에 의해, 제1 정보 처리 장치에서 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 검출용 포트 정보를 제1 정보 처리 장치에 송신할 수 있다.
또한, 본 발명에 의한 서버는, 제1 정보 처리 장치 및 제2 정보 처리 장치가, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치 및 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해 행하는 통신을 확립시키는 서버로서, 상기 제1 정보 처리 장치가 상기 제1 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 송신하는 대상의 상기 제2 통신 제어 장치에서의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를, 상기 제1 정보 처리 장치에 송신하는 버블 패킷 송신 대상 포트 송신부를 구비한 것이다.
이러한 구성에 의해, 버블 패킷 송신 대상 포트의 위치를, 버블 패킷 송신 대상 포트 정보에 의해 제1 정보 처리 장치에 알릴 수 있다.
또한, 본 발명에 의한 통신 시스템은, 정보 처리 장치와, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치와, 서버를 구비한 통신 시스템으로서, 상기 정보 처리 장치는, 상기 통신 제어 장치를 통해 상기 통신 제어 장치에 송신 이력을 남기기 위한 1 이상의 버블 패킷을 송신하는 버블 패킷 송신부와, 1 이상의 상기 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 상기 서버에 송신하는 범위 검출용 패킷 송신부를 구비하고, 상기 서버는,상기 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷에 기초하여 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출부를 구비한 것이다.
이러한 구성에 의해, 정보 처리 장치로부터 송신된 범위 검출용 패킷에 의해, 서버에서 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출할 수 있다. 그 검출된 버블 패킷 송신 포트를 포함하는 포트의 범위로 다른 장치로부터 패킷을 송신함으로써, 그 패킷이 정보 처리 장치에서 수신될 수 있게 된다.
또한, 본 발명에 의한 통신 시스템은, 정보 처리 장치와, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치와, 서버를 구비한 통신 시스템으로서, 상기 정보 처리 장치는, 상기 통신 제어 장치를 통해 상기 통신 제어 장치에 송신 이력을 남기기 위한 1 이상의 버블 패킷을 송신하는 버블 패킷 송신부와, 1 이상의 상기 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 상기 서버에 송신하는 범위 검출용 패킷 송신부와, 상기 범위 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신부와, 상기 검출용 포트 정보 수신부가 수신한 검출용 포트 정보에 기초하여, 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출부를 구비하고, 상기 서버는, 상기 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출부와, 상기 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 상기 정보 처리 장치에 송신하는 검출용 포트 정보 송신부를 구비한 것이다.
이러한 구성에 의해, 정보 처리 장치로부터 송신된 범위 검출용 패킷에 의해, 정보 처리 장치에서 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출할 수 있다. 그 검출된 버블 패킷 송신 포트를 포함하는 포트의 범위로 다른 장치로부터 패킷을 송신함으로써, 그 패킷이 정보 처리 장치에서 수신될 수 있게 된다.
도 1은 본 발명의 제1 실시예에 따른 통신 시스템의 구성을 나타낸 블록도.
도 2는 제1 실시예에 따른 제1 정보 처리 장치의 구성을 나타낸 블록도.
도 3은 제1 실시예에 따른 제2 정보 처리 장치의 구성을 나타낸 블록도.
도 4는 제1 실시예에 따른 제1 및 제2 서버의 구성을 나타낸 블록도.
도 5은 제1 실시예에 따른 통신 시스템의 동작을 나타낸 흐름도.
도 6은 제1 실시예에 있어서의 송수신의 결정에 관한 처리를 나타내는 흐름도.
도 7은 제1 실시예에 있어서의 통신 제어 장치의 특성의 판단에 대하여 설명하기 위한 도면.
도 8은 제1 실시예에 있어서의 통신 제어 장치의 특성의 판단에 대하여 설명하기 위한 도면.
도 9는 제1 실시예에 있어서의 통신 제어 장치의 특성의 판단에 대하여 설명하기 위한 도면.
도 10은 제1 실시예에 있어서의 통신의 확립에 관한 처리를 나타내는 흐름도.
도 11은 제1 실시예에 있어서의 포트 폭의 검출에 대하여 설명하기 위한 도면.
도 12는 제1 실시예에 있어서의 구체예에 대하여 설명하기 위한 도면.
도 13은 제1 실시예에 있어서의 구체예에 대하여 설명하기 위한 도면.
도 14는 제1 실시예에 있어서의 구체예에 대하여 설명하기 위한 도면.
도 15는 제1 실시예에 있어서의 구체예에 대하여 설명하기 위한 도면.
도 16은 제1 실시예에 있어서의 구체예에 대하여 설명하기 위한 도면.
도 17은 제1 실시예에 있어서의 접속 가능한 통신 제어 장치의 특성의 조합을 나타낸 도면.
도 18은 본 발명의 제2 실시예에 따른 제1 정보 처리 장치의 구성을 나타낸 블록도.
도 19는 제2 실시예에 따른 제2 정보 처리 장치의 구성을 나타낸 블록도.
도 20은 제2 실시예에 따른 제1 및 제2 서버의 구성을 나타낸 블록도.
도 21은 제2 실시예에 있어서의 통신의 확립에 관한 처리를 나타낸 흐름도.
도 22는 제2 실시예에 있어서의 통신의 확립에 관한 처리를 나타낸 흐름도.
도 23은 제2 실시예에 있어서의 통신의 확립에 관한 처리를 나타낸 흐름도.
도 24는 본 발명의 제3 실시예에 따른 통신 시스템의 구성을 나타낸 블록도.
도 25는 본 발명의 제4 실시예에 따른 통신 시스템의 구성을 나타낸 블록도.
도 26은 제4 실시예에 따른 제1 정보 처리 장치의 구성을 나타낸 블록도.
도 27은 제4 실시예에 따른 제2 정보 처리 장치의 구성을 나타낸 블록도.
도 28은 제4 실시예에 따른 서버의 구성을 나타낸 블록도.
도 29는 제4 실시예에 있어서의 송수신의 결정에 관한 처리를 나타낸 흐름도.
도 30은 제4 실시예에 있어서의 통신 제어 장치의 특성의 판단에 대하여 설명하기 위한 도면.
도 31은 제4 실시예에 있어서의 통신의 확립에 관한 처리를 나타낸 흐름도.
도 32는 제4 실시예에 있어서의 통신의 확립에 관한 처리를 나타낸 흐름도.
도 33은 제4 실시예에 있어서의 통신의 확립에 관한 처리를 나타낸 흐름도.
도 34는 제4 실시예에 있어서의 구체예에 대하여 설명하기 위한 도면.
도 35는 제4 실시예에 있어서의 구체예에 대하여 설명하기 위한 도면.
도 36은 제4 실시예에 있어서의 구체예에 대하여 설명하기 위한 도면.
도 37은 제4 실시예에 있어서의 구체예에 대하여 설명하기 위한 도면.
도 38은 제4 실시예에 있어서의 구체예에 대하여 설명하기 위한 도면.
도 39는 제4 실시예에 있어서의 접속 가능한 통신 제어 장치의 특성의 조합을 나타낸 도면.
도 40은 통신 시스템의 일례를 나타낸 도면.
도 41은 종래의 접속 가능한 NAT의 조합을 나타낸 도면.
(도면의 주요 부분에 대한 참조 부호의 설명)
1 제1 정보 처리 장치
2 제2 정보 처리 장치
3 제1 통신 제어 장치
4 제2 통신 제어 장치
5 통신 회선
6 제1 서버
7 제2 서버
11, 21, 61, 71 통신부
12, 22 버블 패킷 송신부
13, 23 범위 검출용 패킷 송신부
14, 24 응답 패킷 송신부
15, 25 포트 폭 검출용 패킷 송신부
16, 26 버블 패킷 송신 대상 포트 수신부
17, 27 범위 수신부
18, 28 포트 폭 수신부
19, 29 응답 패킷 송신부
62 정보 송신부
63 특성 판단부
64 송수신 결정부
65 버블 패킷 송신 대상 포트 송신부
66 범위 검출부
67 범위 송신부
68 포트 폭 검출부
69 포트 폭 송신부
(제1 실시예)
본 발명의 제1 실시예에 따른 통신 시스템에 대해 도면을 참조하여 설명한다.
도 1은 본 실시예에 따른 통신 시스템의 구성을 나타낸 블록도이다. 도 1에 있어서, 본 실시예에 따른 통신 시스템은, 제1 정보 처리 장치(1)와, 제2 정보 처리 장치(2)와, 제1 통신 제어 장치(3)와, 제2 통신 제어 장치(4)와, 제1 서버(6)와, 제2 서버(7)를 구비한다. 제1 통신 제어 장치(3), 제2 통신 제어 장치(4), 제1 서버(6) 및 제2 서버(7)는, 유선 또는 무선의 통신 회선(5)을 통해 접속되어 있다. 이 통신 회선(5)은, 예를 들면 인터넷이다.
또한, 도 1에서는, 제1 통신 제어 장치(3) 및 제2 통신 제어 장치(4)에 각각 제1 정보 처리 장치(1) 및 제2 정보 처리 장치(2)만이 접속되어 있는 경우에 대하여 나타내고 있으나, 이 이외의 장치가 제1 통신 제어 장치(3) 및 제2 통신 제어 장치(4)에 접속되어 있어도 무방하다.
도 2는 제1 정보 처리 장치(1)의 구성을 나타낸 블록도이다. 도 2에 있어서, 제1 정보 처리 장치(1)는, 통신부(11)와, 버블 패킷 송신부(12)와, 범위 검출용 패킷 송신부(13)와, 응답 패킷(返信 패킷) 수신부(14)와, 포트 폭 검출용 패킷 송신부(15)와, 버블 패킷 송신 대상 포트 수신부(16)와, 범위 수신부(17)와, 포트 폭 수신부(18)와, 응답 패킷 송신부(19)를 구비한다.
통신부(11)는, 버블 패킷 송신부(12) 등의 제1 정보 처리 장치(1)의 내부의 각 구성 요소와 제1 통신 제어 장치(3)와의 사이에서의 통신을 행한다.
버블 패킷 송신부(12)는, 통신부(11) 및 제1 통신 제어 장치(3)를 통해 버블 패킷을 제2 통신 제어 장치(4)에 송신한다. 여기에서 버블 패킷이라는 것은, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)와의 사이에서의 통신을 확립하기 위하여, 제1 통신 제어 장치(3)에 송신 이력을 남기기 위한 패킷이다. 또한, 통신을 확립한다는 것은, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)와의 사이에서, 서버를 통하지 않는 피어-투-피어(Peer to Peer)의 통신을 개시하는 것을 말한다. 또한, 송신 이력을 남긴다는 것은, 제1 통신 제어 장치(3)에 있어서, 후술하는 응답 패킷을 수신하기 위한 포트를 할당하는(포트를 여는) 것을 말한다. 또한, 일반적으로, 그 송신 이력을 남기는 것을 목적으로 하여 버블 패킷이 송신되는 것인데, 소정의 패킷이 송신된 결과, 응답 패킷을 수신하기 위한 송신 이력이 제1 통신 제어 장치(3)에 남겨져도 무방하다(이 경우, 그 송신 이력을 남긴 소정의 패킷이 버블 패킷이 된다). 이 버블 패킷에는, 어떠한 정보가 포함되어 있어도 무방하고, 정보가 아무것도 포함되어 있지 않아도 무방하다. 이 버블 패킷은 예를 들면 UDP(User Datagram Protocol)과 같은 커넥션리스(connectionless)형의 프로토콜에 의해 송신된다.
범위 검출용 패킷 송신부(13)는, 범위 검출용 패킷을 제1 서버(6) 또는 제2 서버(7)에 송신한다. 이 범위 검출용 패킷은, 버블 패킷 송신 포트를 포함하는 포 트의 범위를 검출하기 위하여 이용되는 것이다. 여기에서 버블 패킷 송신 포트라는 것은, 버블 패킷의 송신에서 이용되는 제1 통신 제어 장치(3)의 포트를 말한다. 이 범위 검출용 패킷은, 버블 패킷이 송신되기 전 및/또는 버블 패킷이 송신된 후에 송신된다. 버블 패킷의 송신의 전후에 있어서 범위 검출용 패킷을 송신할 경우에는, 그 전후에 있어서 각각 다른 어드레스(IP 어드레스)에 범위 검출용 패킷을 송신해도 무방하다. 이 범위 검출용 패킷은, 예를 들면 UDP나, TCP(Transmission Control Protocol)에 의해 송신된다. 이 범위 검출용 패킷에는, 어떠한 정보가 포함되어 있어도 무방하고, 정보가 아무것도 포함되어 있지 않아도 무방하다.
응답 패킷 수신부(14)는, 제2 정보 처리 장치(2)로부터 제2 통신 제어 장치(4)를 통해 송신된 응답 패킷을 수신한다. 이 응답 패킷은, 제1 통신 제어 장치(3)에서의 버블 패킷의 송신에 의해 할당된 포트, 즉 버블 패킷 송신 포트에 대하여 송신된 것이다. 이 응답 패킷을 수신함에 따라, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)와의 사이에서의 통신을 확립하게 된다. 이 응답 패킷은, 예를 들면 UDP에 의해 송신된다. 이 응답 패킷에는, 어떠한 정보가 포함되어 있어도 무방하고, 정보가 아무것도 포함되어 있지 않아도 무방하다.
포트 폭 검출용 패킷 송신부(15)는, 제1 통신 제어 장치(3)에 있어서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을 제1 통신 제어 장치(3)를 통해 제1 서버(6)에 송신한다. 여기에서 포트 폭(port number differential)이라는 것은, 연속하여 사용되는(할당되는) 포트의 폭(간격)을 말하는 것이다. 예를 들면 포트 폭이 「1」인 경우에는, 포트 번호 「20000」인 포트의 다음에 사용되는 포트는, 포트 번호 「20001」인 포트이다. 한편 포트 폭이 「2」인 경우에는, 포트 번호 「20000」인 포트의 다음에 사용되는 포트는, 포트 번호 「20002」인 포트가 된다. 이 포트 폭 검출용 패킷은, 예를 들면 UDP나 TCP에 의해 송신된다. 이 포트 폭 검출용 패킷에는, 어떠한 정보가 포함되어 있어도 무방하고, 정보가 아무것도 포함되어 있지 않아도 무방하다.
버블 패킷 송신 대상 포트 수신부(16)는, 버블 패킷 송신 대상 포트 정보를 수신한다. 여기에서 버블 패킷 송신 대상 포트 정보라는 것은, 제2 통신 제어 장치(4)에 있어서의 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 정보이다. 예를 들면 버블 패킷 송신 대상 포트의 포트 번호가 버블 패킷 송신 대상 포트 정보에 포함됨으로써, 버블 패킷 송신 대상 포트의 위치를 제1 정보 처리 장치(1)가 알 수 있게 된다. 이 버블 패킷 송신 대상 포트로서는, 예를 들면 제2 정보 처리 장치(2)가 제1 서버(6)와의 사이에서 정보의 송수신을 행하는 포트가 있다.
이상의 버블 패킷 송신부(12)로부터 버블 패킷 송신 대상 포트 수신부(16)까지의 각 부는, 제1 정보 처리 장치(1)가 송신측의 정보 처리 장치로서 동작할 경우에 이용된다. 여기에서 송신측의 정보 처리 장치라는 것은, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)와의 사이의 통신을 확립할 시에 있어서의, 버블 패킷을 송신하는 측을 말하는 것이다. 본 실시예에서는, 후술하는 송수신의 전환이 행해지지 않는 한, 버블 패킷을 송신하는 측과 통신(커넥션)의 요구를 내보내는 측(발호측(發呼側))이 같기 때문에, 송신측이라는 것은 통신의 요구를 내보내는 측이기도 하다. 한편 그 반대측의 정보 처리 장치, 즉 버블 패킷에 대한 응답 패킷 송신하는 측의 정보 처리 장치를, 수신측의 정보 처리 장치라고 한다. 본 실시예에서는, 송수신의 전환이 행해지지 않는 한, 응답 패킷을 송신하는 측과 통신의 요구를 받는 측(착호측(着呼側))이 같기 때문에, 수신측이라는 것은 통신의 요구를 받는 측이기도 한다. 이하에 설명하는 범위 수신부(17)로부터 응답 패킷 송신부(19)까지의 각 부는, 제1 정보 처리 장치(1)가 수신측의 정보 처리 장치로서 동작할 경우에 이용된다.
범위 수신부(17)는 범위 정보를 수신한다. 여기에서 범위 정보라는 것은, 응답 패킷 송신부(19)가 응답 패킷을 제2 통신 제어 장치(4)에 송신하는 포트의 범위를 나타내는 정보이다. 범위 정보에서는, 제2 통신 제어 장치(4)에서의 버블 패킷 송신 포트(제2 정보 처리 장치(2)로부터 제1 통신 제어 장치(3)로의 버블 패킷의 송신에 이용된 포트)를 포함하는 포트의 범위가, 예를 들면 포트 번호에 의해 나타내진다. 또한, 범위 정보에서는, 포트의 상한만 혹은 포트의 하한만을 나타내는 것에 의해 포트의 범위를 나타내어도 무방하고, 또는 포트의 상한과 하한에 의해 포트의 범위를 나타내어도 무방하다. 여기에서 포트의 상한이라는 것은, 포트 번호가 큰 측의 포트를 가리키는 것으로 하고, 포트의 하한이라는 것은, 포트 번호가 작은 측의 포트를 가리키는 것으로 한다.
포트 폭 수신부(18)는, 제2 통신 제어 장치(4)에서의 포트 폭을 나타내는 정보인 포트 폭 정보를 수신한다.
응답 패킷 송신부(19)는, 제2 통신 제어 장치(4)에서의 버블 패킷 송신 포트 를 적어도 포함하는 1 이상의 포트에 대하여 응답 패킷을 송신한다. 이때, 범위 수신부(17)가 수신한 범위 정보가 나타내는 범위의 포트에 응답 패킷을 송신함으로써, 제2 통신 제어 장치(4)에서의 버블 패킷 송신 포트를 포함하는 포트에 대하여 응답 패킷을 송신할 수 있다. 또한, 2 이상의 포트에 대하여 응답 패킷을 송신할 경우에는, 포트 폭 정보가 나타내는 포트 폭마다 응답 패킷을 송신한다. 그 결과, 포트 폭 정보가 나타내는 포트 폭이 2 이상인 경우에는, 효율적으로 응답 패킷을 송신할 수 있다. 또한, 응답 패킷은, 예를 들면 제1 정보 처리 장치(1)가 제1 서버(6)와 통신을 행하는 포트로부터 송신해도 무방하다.
도 3은 제2 정보 처리 장치(2)의 구성을 나타낸 블록도이다. 도 3에 있어서, 제2 정보 처리 장치(2)는, 통신부(21)와, 버블 패킷 송신부(22)와, 범위 검출용 패킷 송신부(23)와, 응답 패킷 수신부(24)와, 포트 폭 검출용 패킷 송신부(25)와, 버블 패킷 송신 대상 포트 수신부(26)와, 범위 수신부(27)와, 포트 폭 수신부(28)와, 응답 패킷 송신부(29)를 구비한다. 여기에서, 제2 정보 처리 장치(2)에서의 통신부(21)로부터 응답 패킷 송신부(29)까지의 각 부는, 제1 정보 처리 장치(1), 제1 통신 제어 장치(3)와, 제2 정보 처리 장치(2), 제2 통신 제어 장치(4)가 전환되는 것 이외, 제1 정보 처리 장치(1)에서의 통신부(11)로부터 응답 패킷 송신부(19)까지의 구성과 동일하여, 그 설명은 생략한다.
또한, 제2 정보 처리 장치(2)에서의 버블 패킷 송신부(22)로부터 버블 패킷 송신 대상 포트 수신부(26)까지는, 제2 정보 처리 장치(2)가 송신측으로서 동작하는 경우에 이용된다. 한편, 범위 수신부(27)로부터 응답 패킷 송신부(29)까지는, 제2 정보 처리 장치(2)가 수신측으로서 동작하는 경우에 이용된다.
제1 통신 제어 장치(3)는, 제1 정보 처리 장치(1)의 통신을 제어하는 것으로서, 소위 낫(NAT)을 이용하여 로컬측(제1 정보 처리 장치(1)측)과, 글로벌측(통신 회선(5)측)과의 통신을 제어한다. 이 NAT에는, 풀 콘 낫(Full Cone NAT)이나, 리스트릭티드 콘 낫(Restricted Cone NAT. 이하,「R NAT」라고 약술함), 포트 리스트릭티드 콘 낫(Port Restricted Cone NAT. 이하,「PR NAT」라고 약술함), 어드레스 센서티브 시메트릭 낫(Address Sensitive Symmetric NAT. 이하,「AS NAT」라고 약술함), 포트 센서티브 시메트릭 낫(Port Sensitive Symmetric NAT. 이하,「PS NAT」라고 약술함)이 있다.
또한, 제2 통신 제어 장치(4)는, 제2 정보 처리 장치(2)의 통신을 제어하는 것으로서, 제1 통신 제어 장치(3)와 마찬가지로 NAT을 이용하고 있다. 후술하는 바와 같이, 제1 통신 제어 장치(3)와, 제2 통신 제어 장치(4)의 조합으로서는, PS NAT끼리의 조합 이외에, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 간의 통신을 확립할 수 있다. 또한, 제1 통신 제어 장치(3) 및 제2 통신 제어 장치(4)에서는, 포트의 할당은 소정의 포트 폭마다 포트 번호가 증가하도록 혹은 감소하도록 행해지는 것으로 한다. 이하의 설명에서는, 포트 번호가 증가하도록 할당되는 경우에 대하여 설명한다.
도 4는 제1 서버(6) 및 제2 서버(7)의 구성을 나타낸 블록도이다. 도 4에 있어서 제1 서버(6)는, 통신부(61)와, 정보 송수신부(62)와, 특성 판단부(63)와, 송수신 결정부(64)와, 버블 패킷 송신 대상 포트 송신부(65)와, 범위 검출부(66)와, 범위 송신부(67)와, 포트 폭 검출부(68)와, 포트 폭 송신부(69)를 구비한다. 또한, 제2 서버(7)는 통신부(71)를 구비한다.
통신부(61,71)는 정보 송수신부(62) 등의 제1 서버(6)의 각 부와, 제1 정보 처리 장치(1)나 제2 정보 처리 장치(2) 등과의 통신을 행한다. 또한, 통신부(61)와 통신부(71)와는 서버 간에서의 정보의 교환을 행한다. 또한, 제2 서버(7)에는 통신부(71)밖에 명시되어 있지 않으나, 이 통신부(71) 이외에도, 그 밖의 구성 요소를 구비하고 있어도 무방하다.
정보 송수신부(62)는 제1 정보 처리 장치(1) 및 제2 정보 처리 장치(2)와 정보를 송수신한다. 이 정보 송수신부(62)에 의한 정보의 송수신은 통신부(61)나 통신부(71)를 통해 행해진다.
특성 판단부(63)는 제1 통신 제어 장치(3) 및 제2 통신 제어 장치(4)의 특성을 판단한다. 여기에서 제1 통신 제어 장치(3) 및 제2 통신 제어 장치(4)의 특성이라는 것은, 제1 통신 제어 장치(3) 등에서 이용되고 있는 NAT의 종류를 말하는 것이다. 따라서 제1 통신 제어 장치(3)의 특성은, 예를 들면 Full Cone NAT이나, AS NAT이라는 식으로 판단된다.
송수신 결정부(64)는 특성 판단부(63)에 의한 판단 결과에 따라, 제1 정보 처리 장치(1) 및 제2 정보 처리 장치(2) 중 어느 하나를 송신측(송신측 정보 처리 장치)으로 결정하고, 다른 측을 수신측(수신측 정보 처리 장치)으로 결정한다. 이 결정에 의해, 제1 통신 제어 장치(3) 및 제2 통신 제어 장치(4) 중, 송신측 정보 처리 장치의 통신을 제어하는 통신 제어 장치가 송신측 통신 제어 장치가 되고, 수 신측 정보 처리 장치의 통신을 제어하는 통신 제어 장치가 수신측 통신 제어 장치가 된다.
버블 패킷 송신 대상 포트 송신부(65)는, 수신측 통신 제어 장치에서의 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를 송신측 정보 처리 장치에 송신한다.
범위 검출부(66)는 송신측 정보 처리 장치로부터 송신된 범위 검출용 패킷을 수신하고, 그 수신한 범위 검출용 패킷에 기초하여 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출한다. 이 포트의 범위의 검출은, 범위 검출용 패킷의 헤더에 포함되는 포트 번호를 취득하고, 소정의 메모리 등에 기록하는 것 등이라도 무방하다. 또한, 범위 검출용 패킷은, 송신측 정보 처리 장치로부터 통신부(61)에 대하여 송신된 것이라도 무방하고, 혹은 제2 서버(7)의 통신부(71)에 송신된 것을 통신부(61)를 통해 받은 것이라도 무방하다. 후자의 경우, 제1 서버(6)와 제2 서버(7)에서는 IP 어드레스가 다른 것으로 한다.
범위 송신부(67)는, 범위 검출부(66)가 검출한 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 수신측 정보 처리 장치에 대하여 송신한다.
포트 폭 검출부(68)는, 송신측 정보 처리 장치로부터 송신측 통신 제어 장치를 통해 송신된 포트 폭 검출용 패킷을 수신한다. 여기에서 포트 폭 검출용 패킷이라는 것은, 송신측 통신 제어 장치에서의 포트 폭을 검출하기 위하여 이용되는 패킷이다. 포트 폭 검출부(68)는, 그 수신한 포트 폭 검출용 패킷에 기초하여 송신측 통신 제어 장치에서의 포트 폭을 검출한다.
포트 폭 송신부(69)는, 포트 폭 검출부(68)가 검출한 포트 폭을 나타내는 정보인 포트 폭 정보를 수신측 정보 처리 장치에 송신한다.
다음으로 본 실시예에 따른 통신 시스템의 동작에 대하여 설명한다. 특히, 도 5의 흐름도를 이용하여 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)가 통신을 개시하기까지의 통신 방법에 대하여 설명한다.
(단계 S101) 제1 서버(6)에서의 특성 판단부(63)에 의해 제1 통신 제어 장치(3)나 제2 통신 제어 장치(4)의 특성을 판단함으로써, 제1 정보 처리 장치(1) 및 제2 정보 처리 장치(2)의 어느 측이 송신측 또는 수신측이 될지를 결정한다.
여기에서, 송신측에서 PS NAT이 이용되고 수신측에서 AS NAT이 이용되는 경우 또는 송신측에서 PR NAT이 이용되고 수신측에서 AS NAT 혹은 PS NAT이 이용되는 경우에는, 정보 처리 장치간에서의 통신을 확립할 수 없기 때문에, 이 송신측과 수신측의 결정이 행해진다. 또한, 송신측과 수신측이 PS NAT을 이용하고 있는 경우에는, 본 실시예에 따른 방법으로는 정보 처리 장치간의 통신을 확립할 수는 없다. 상기의 경우에 통신을 확립할 수 없는 이유에 대해서는 후술하기로 한다.
(단계 S102) 송신측 정보 처리 장치로부터 수신측 통신 제어 장치에 대하여 버블 패킷을 송신하고, 버블 패킷 송신 포트를 적어도 포함하는 1 이상의 포트에 수신측 정보 처리 장치로부터 응답 패킷을 송신함으로써 통신이 확립된다. 또한, 단계 S101, S102의 상세한 처리에 대해서는 후술한다.
도 6은 단계 S101에서의 제1 서버(6)가 송수신을 결정하는 처리에 대하여 나 타낸 흐름도이다. 여기에서 이 흐름도의 설명에서는, 제1 정보 처리 장치(1)로부터 제2 정보 처리 장치(2)에 대하여 통신을 행하려는 것으로 한다. 따라서 제1 정보 처리 장치(1) 및 제1 통신 제어 장치(3)가 송신측의 장치가 되고, 제2 정보 처리 장치(2) 및 제2 통신 제어 장치(4)가 수신측의 장치가 된다. 또한, 제2 정보 처리 장치(2)로부터 제1 정보 처리 장치(1)에 대하여 통신을 행할 경우에는, 제1 정보 처리 장치(1) 및 제1 통신 제어 장치(3)와, 제2 정보 처리 장치(2) 및 제2 통신 제어 장치(4)가 전환되는 이외에는, 이하의 흐름도의 설명과 동일하다.
(단계 S201) 제1 서버(6)의 특성 판단부(63)는, 송신측의 제1 통신 제어 장치(3)의 특성을 판단한다. 특성의 판단 방법에 대해서는 후술한다.
(단계 S202) 송수신 결정부(64)는, 제1 통신 제어 장치(3)가 PS NAT을 이용하고 있는지 여부를 판단한다. 그리고 PS NAT를 이용하고 있는 경우에는 단계 S205로 진행되고, 이용하고 있지 않은 경우에는 단계 S203으로 진행된다.
(단계 S203) 송수신 결정부(64)는, 제1 통신 제어 장치(3)가 PR NAT를 이용하고 있는지 여부를 판단한다. 그리고 PR NAT를 이용하고 있는 경우에는 단계 S204로 진행되고, 이용하고 있지 않은 경우에는 송수신의 결정 처리는 종료된다. 즉, 제1 정보 처리 장치(1) 및 제1 통신 제어 장치(3)를 송신측의 장치로 하고, 제2 정보 처리 장치(2) 및 제2 통신 제어 장치(4)를 수신측의 장치로 하여, 단계 S102의 통신의 확립의 처리를 행한다.
(단계 S204) 송수신 결정부(64)는, 송수신의 전환을 행하고 송수신의 결정 처리는 종료된다. 즉, 제1 정보 처리 장치(1) 및 제1 통신 제어 장치(3)를 수신측 의 장치로 하고, 제2 정보 처리 장치(2) 및 제2 통신 제어 장치(4)를 송신측의 장치로 하여, 단계 S102의 통신의 확립의 처리를 행한다.
(단계 S205) 특성 판단부(63)는 수신측의 제2 통신 제어 장치(4)의 특성을 판단한다.
(단계 S206) 송수신 결정부(64)는, 제2 통신 제어 장치(4)가 PS NAT를 이용하고 있는지의 여부를 판단한다. 그리고 PS NAT를 이용하고 있는 경우에는, 송신측과 수신측의 쌍방이 PS NAT를 이용하고 있는 것이 되어, 통신을 확립할 수 없어 에러가 된다. 한편 PS NAT를 이용하고 있지 않은 경우에는 단계 S207로 진행된다.
(단계 S207) 송수신 결정부(64)는, 제2 통신 제어 장치(4)가 AS NAT를 이용하고 있는지의 여부를 판단한다. 그리고 AS NAT를 이용하고 있는 경우에는 단계 S204로 진행되고, 그렇지 않은 경우에는 송수신의 결정 처리는 종료된다. 즉, 제1 정보 처리 장치(1) 및 제1 통신 제어 장치(3)를 송신측의 장치로 하고, 제2 정보 처리 장치(2) 및 제2 통신 제어 장치(4)를 수신측의 장치로 하여, 단계 S102의 통신 확립의 처리를 수행한다.
또한, 이 흐름도는 송수신의 결정을 행하는 처리의 일례로서, 이것 외의 방법에 의해 송수신의 결정을 수행해도 무방하다. 예를 들면 이 흐름도에 있어서, 송신측이 PR NAT를 이용하고 있을 경우에는, 판단 처리의 회수를 적게 하기 위하여 수신측에서 이용되고 있는 NAT의 종류를 판별하지 않고 송수신의 전환을 행하고 있으나, 판단 처리의 회수가 많아도 무방할 경우에는, 송신측이 PR NAT를 이용하고 있다고 판단된 후에, 수신측이 PS NAT나 AS NAT를 이용하고 있는지의 여부를 판단 하고, 그 결과, 어느 하나를 이용하고 있다고 판단되었을 경우에만 송수신의 전환을 행하도록 해도 무방하다.
다음으로, 도 7 내지 도 9를 참조하여 제1 통신 제어 장치(3)의 특성 판단 방법에 대하여 설명한다. 또한, 제2 통신 제어 장치(4)의 특성도 동일하게 판단할 수 있다.
도 7에 있어서, 제1 정보 처리 장치(1)는 소정의 패킷을 제1 서버(6)의 포트 P101에 송신한다. 여기에서 그 패킷은, 제1 통신 제어 장치(3)의 포트 P100을 통과한 것으로 한다. 그 송신된 패킷은, 통신부(61)를 통해 특성 판단부(63)가 수신한다. 그리고 특성 판단부(63)는, 그 패킷을 수신함으로써 검지한 제1 통신 제어 장치(3)의 포트 P100에 대하여 패킷을 송신하는 취지의 지시를, 통신부(61)를 통해 제2 서버(7)의 통신부(71)에 전달한다. 이렇게 하여 통신부(71)로부터 포트 P100에 대하여 패킷이 송신된다. 그 통신부(71)로부터의 포트 P100에 대한 패킷을 제1 정보 처리 장치(1)가 수신할 수 있는 경우에는, 특성 판단부(63)는 제1 통신 제어 장치(3)가 Full Cone NAT를 이용하고 있다고 판단한다. 한편 통신부(71)로부터의 포트 P100에 대한 패킷을 제1 정보 처리 장치(1)가 수신할 수 없는 경우에는, 도 8에서 설명하는 방법에 의해 판단을 행한다.
도 8에 있어서, 제1 정보 처리 장치(1)는 소정의 패킷을 제1 서버(6)의 포트 P101 및 포트 P103과, 제2 서버(7)의 포트 P102에 송신한다. 특성 판단부(63)는 그 포트 P101 및 P103에 송신된 패킷을 수신하고, 또한, 포트 P102에 송신된 패킷을 통신부(71)를 통해 수신한다. 그리고 패킷이 통과한 제1 통신 제어 장치(3)에서의 포트 Pa 및 Pb가 동일한지 여부를 판단한다. 그리고 포트 Pa와 포트 Pb가 다른 경우에는 제1 통신 제어 장치(3)가 PS NAT를 이용하고 있다고 판단한다.
포트 Pa와 포트 Pb가 동일한 경우에는, 포트 Pb와 포트 Pc가 동일한지의 여부를 판단한다. 그리고 포트 Pb와 포트 Pc가 다른 경우에는, 제1 통신 제어 장치(3)가 AS NAT를 이용하고 있다고 판단한다. 포트 Pa, 포트 Pb, 포트 Pc가 동일한 경우에는, 도 9에서 설명하는 방법에 의해 판단을 수행한다.
도 9에 있어서, 제1 정보 처리 장치(1)는 소정의 패킷을 제1 서버(6)의 포트 P101에 송신한다. 특성 판단부(63)는 그 패킷을 수신하고, 그 패킷이 통과한 제1 통신 제어 장치(3)에서의 포트 P100에 대하여, 포트 P101과는 다른 포트 P103로부터 패킷을 송신한다. 제1 정보 처리 장치(1)가 포트 P103로부터의 패킷을 수신할 수 있는 경우에는, 특성 판단부(63)는 제1 통신 제어 장치(3)가 R NAT를 이용하고 있다고 판단하고, 제1 정보 처리 장치(1)가 포트 P103으로부터의 패킷을 수신할 수 없는 경우에는, 특성 판단부(63)는 제1 통신 제어 장치(3)가 PR NAT를 이용하고 있다고 판단한다.
이와 같이, 도 7 내지 도 9를 참조하여 설명한 방법에 의해, 특성 판단부(63)는 제1 통신 제어 장치(3)의 특성을 판단할 수 있다. 또한, 상기 설명에서는 상세한 설명을 생략하고 있으나, 제1 정보 처리 장치(1)로부터의 패킷의 송신 등은 특성 판단부(63)의 지시에 의해 행해지는 것이다.
다음으로, 도 5의 흐름도에서의 단계 S102의 처리에 대하여, 도 10을 참조하여 설명한다. 도 10은 통신의 확립에 관한, 송신측의 정보 처리 장치, 서버, 수신 측의 정보 처리 장치 간에 있어서의 정보의 교환이나 처리를 설명하기 위한 도면이다. 또한, 도 10에서의 서버라는 것은, 제1 서버(6)와 제2 서버(7)의 양측을 나타내는 것이다. 또한, 설명의 편의를 위해, 제1 정보 처리 장치(1) 및 제1 통신 제어 장치(3)를 송신측이라고 하고, 제2 정보 처리 장치(2) 및 제2 통신 제어 장치(4)를 수신측이라고 한다.
(단계 S301) 제1 서버(6)에서의 정보 송수신부(62)는, 제2 통신 제어 장치(4)의 IP 어드레스를 나타내는 어드레스 정보를 제1 정보 처리 장치(1)에 송신한다. 그 송신된 어드레스 정보는, 제1 정보 처리 장치(1)의 통신부(11)에서 수신되고 버블 패킷 송신부(12)에 전달된다.
(단계 S302) 버블 패킷 송신 대상 포트 송신부(65)는, 버블 패킷 송신 대상 포트 정보를 제1 정보 처리 장치(1)에 송신한다. 그 송신된 버블 패킷 송신 대상 포트 정보는, 통신부(11)를 통해 버블 패킷 송신 대상 포트 수신부(16)에서 수신되고 버블 패킷 송신부(12)에 전달된다.
(단계 S303) 제1 정보 처리 장치(1)에서의 포트 폭 검출용 패킷 송신부(15)는, 포트 폭 검출용 패킷을 제1 서버(6)에 송신한다. 여기에서 이 송신에서는 다수의 포트 폭 검출용 패킷이 통과하는 제1 통신 제어 장치(3)의 포트가 각각 다르도록 한다. 이 포트 폭 검출용 패킷은, 예를 들면 제1 정보 처리 장치(1)에서의 포트 번호가 각각 다른 다수의 포트로부터 송신된다. 도 11은 포트 폭 검출용 패킷의 송신에 대하여 설명하기 위한 도면이다. 포트 폭 검출용 패킷 송신부(15)는, 각각 다른 포트 P205 내지 P208로부터 순차적으로, 제1 서버(6)의 포트 P200에 포트 폭 검 출용 패킷을 송신한다. 그러면, 제1 통신 제어 장치(3)에 있어서, 그들 패킷은 각각 다른 포트 P201 내지 P204를 통과하게 된다. 또한, 도 11에서는, 포트 P205로부터 P208의 순서로 패킷이 송신된 것으로 한다. 또한, 제1 정보 처리 장치(1)는 포트 폭 검출용 패킷을 송신하기 이전에, 포트 P205 내지 P208을 제1 서버(6)와의 통신에서 이용하지 않은 것으로 한다.
(단계 S304) 제1 서버(6)에서의 포트 폭 검출부(68)는, 제1 정보 처리 장치(1)로부터 송신된 포트 폭 검출용 패킷을 수신하고, 그 포트 폭 검출용 패킷에 기초하여 포트 폭을 검출한다. 이 포트 폭의 검출 방법에 대하여 설명한다. 포트 폭 검출부(68)는, 포트 폭 검출용 패킷을 수신함으로써, 각 포트 폭 검출용 패킷의 송신에서 이용된 제1 통신 제어 장치(3)의 포트 P201 내지 P204를 검지할 수 있다. 그리고, 예를 들면 포트 P202와 포트 P201의 포트 간격이 12이고, 포트 P203과 포트 P202의 포트 간격이 6이고, 포트 P204과 포트 P203의 포트 간격이 18일 경우에는, 가장 작은 포트 간격인 「6」을 포트 폭으로서 검출해도 된다. 한편 그들 포트 간격의 최대 공약수를 포트 폭으로서 검출해도 된다. 예를 들면 포트 P202과 포트 P201의 포트 간격이 12이고, 포트 P203과 포트 P202의 포트 간격이 6이고, 포트 P204과 포트 P203의 포트 간격이 9인 경우에는, 그들의 최대 공약수인 「3」을 포트 폭으로서 검출해도 된다. 그렇게 하여 검출된 포트 폭은 포트 폭 송신부(69)에 전달된다. 또한, 포트 폭의 검출 방법은, 이에 한정되는 것이 아니라, 그 밖의 방법으로 포트 폭을 검출해도 무방하다. 또한, 포트 폭을 검출할 때에 송신되는 포트 폭 검출용 패킷의 수도 4개에 한정되는 것이 아니라, 포트 폭을 검출할 수 있는 범 위에서 임의로 설정할 수 있다.
(단계 S305) 범위 검출용 패킷 송신부(13)는, 범위 검출용 패킷을 제1 통신 제어 장치(3)를 통해 제1 서버(6)에 송신한다. 이 송신에 있어서, 범위 검출용 패킷이 제1 통신 제어 장치(3)에 있어서 최신(最新)으로 할당되는 포트를 통과하도록 패킷의 송신을 수행한다. 이는 버블 패킷 송신 포트를 포함하는 포트의 범위를 적절히 한정할 수 있도록 하기 위함이다. 예를 들면 범위 검출용 패킷 송신부(13)는, 제1 정보 처리 장치(1)와 제1 서버(6) 간의 통신에서 그때까지 이용하지 않은 제1 정보 처리 장치(1)의 포트를 이용하여 범위 검출용 패킷을 송신한다. 이렇게 하여 송신된 범위 검출용 패킷은, 제1 서버(6)의 범위 검출부(66)에서 수신된다. 이 범위 검출부(66)는, 수신한 범위 검출용 패킷의 헤더에 포함되는 포트 번호를 참조함으로써, 범위 검출용 패킷의 송신에서 이용된 제1 통신 제어 장치(3)의 포트의 위치를 알 수 있다.
(단계 S306) 버블 패킷 송신부(12)는, 단계 S301에서 송신된 어드레스 정보에 의해 나타내지는 제2 통신 제어 장치(4)의 IP 어드레스와, 단계 S302에서 송신된 버블 패킷 송신 대상 포트 정보에 기초하여, 제2 통신 제어 장치(4)의 버블 패킷 송신 대상 포트에 버블 패킷을 송신한다. 또한, 여기에서는, 그 버블 패킷의 송신에 의해 통신이 확립되지 않는다는 전제에 기초하여 이하의 스텝에 대하여 설명하지만, 만일 제2 통신 제어 장치(4)가 Full Cone NAT를 이용하고 있고 버블 패킷 송신 대상 포트가 제2 정보 처리 장치(2)와 제1 서버(6)와의 사이에서 정보의 송수신을 행하기 위하여 이용되는 포트 등과 같이 이미 제2 정보 처리 장치(2)에 의해 사용되고 있는 포트인 경우에는, 제2 정보 처리 장치(2)가 버블 패킷을 받음으로써 통신이 확립된다.
(단계 S307) 범위 검출용 패킷 송신부(13)는, 범위 검출용 패킷을 제1 통신 제어 장치(3)를 통해 제2 서버(7)에 송신한다. 그 범위 검출용 패킷은 통신부(71) 및 통신부(61)를 통해 범위 검출부(66)에서 수신된다. 또한, 제1 통신 제어 장치(3)가 AS NAT를 이용하고 있을 가능성이 있는 곳에는, 이와 같이 제2 서버(7)에 범위 검출용 패킷을 송신할 필요가 있으나, 제1 통신 제어 장치(3)가 AS NAT를 이용하고 있을 가능성이 없는 경우에는, 버블 패킷 송신 후의 범위 검출용 패킷도 제1 서버(6)에 송신해도 무방하다. 이 경우에는 단계 S305과 마찬가지로, 예를 들면 제1 서버(6)와의 사이의 통신에서 그때까지 이용하지 않은 제1 정보 처리 장치(1)의 포트를 이용하여 그 범위 검출용 패킷의 송신을 행하는 것으로 한다. 이렇게 하여 송신된 범위 검출용 패킷은, 제1 서버(6)의 범위 검출부(66)에서 수신된다. 이 범위 검출부(66)는, 범위 검출용 패킷의 송신에서 이용된 제1 통신 제어 장치(3)의 포트의 위치를 알 수 있다.
(단계 S308) 범위 검출부(66)는, 단계 S305 및 단계 S307에서 송신된 범위 검출용 패킷에 기초하여 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출한다. 구체적으로는, 단계 S305에서의 범위 검출용 패킷의 송신에서 이용된 제1 통신 제어 장치(3)의 포트로부터 단계 S307에서의 범위 검출용 패킷의 송신에서 이용된 제1 통신 제어 장치(3)의 포트까지를, 버블 패킷 송신 포트를 포함하는 포트의 범위로서 검출한다.
(단계 S309) 범위 송신부(67)는 범위 검출부(66)에서 검출된, 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 범위 정보를 제2 정보 처리 장치(2)에 송신한다. 그 범위 정보는 제2 정보 처리 장치(2)에서의 범위 수신부(27)에서 수신되고 응답 패킷 송신부(29)로 전달된다.
(단계 S310) 정보 송수신부(62)는, 제1 통신 제어 장치(3)의 IP 어드레스를 나타내는 어드레스 정보를 제2 정보 처리 장치(2)에 송신한다. 그 송신된 어드레스 정보는 통신부(21)에서 수신되고 응답 패킷 송신부(29)로 전달된다.
(단계 S311) 포트 폭 송신부(69)는, 포트 폭 검출부(68)에 의해 검출된 포트 폭을 나타내는 포트 폭 정보를 제2 정보 처리 장치(2)에 송신한다. 그 포트 폭 정보는, 제2 정보 처리 장치(2)에서의 포트 폭 수신부(28)에서 수신되고 응답 패킷 송신부(29)로 전달된다.
(단계 S312) 응답 패킷 송신부(29)는, 단계 S310에서 받은 어드레스 정보가 나타내는 IP 어드레스에 의해 특정되는 제1 통신 제어 장치(3)에 대하여 응답 패킷을 송신한다. 이 응답 패킷은 범위 수신부(27)로부터 받은 범위 정보가 나타내는 범위의 포트에 대하여, 포트 폭 정보가 나타내는 포트 폭마다 송신된다.
(단계 S313) 제1 정보 처리 장치(1)의 응답 패킷 수신부(14)는, 제2 정보 처리 장치(2)로부터 송신된 응답 패킷을 수신한다. 이 응답 패킷을 수신함으로써, 제1 정보 처리 장치(1)와, 제2 정보 처리 장치(2) 간의 통신이 확립하게 된다. 그리고 이 후, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)와의 사이에서, 제1 서버(6)나 제2 서버(7)를 통하지 않는 정보의 송수신(예를 들면 터널 통신)이 행해진 다.
또한, 도 10에 있어서 포트 폭의 검출(단계 S303 및 S304)은, 포트 폭 정보의 송신(단계 S311)보다 이전에 행해져 있으면 되고, 예를 들면 포트 폭의 검출(단계 S304)의 직후에 포트 폭 정보가 수신측에 송신되어도 무방하다. 또한, 송신측의 어드레스의 송신(단계 S310)도, 예를 들면 수신측의 어드레스의 송신(단계 S301)과 동시에 송신해도 무방하다. 이와 같이, 도 10에 있어서는, 처리의 순서에 관하여 어느 정도의 임의성이 있다.
또한, 응답 패킷의 송신에 있어서, 포트 폭 정보가 나타내는 포트 폭마다 응답 패킷을 송신하고 있었다고 해도, 응답 패킷이 수신되지 않는 경우(즉, 응답 패킷을 송신하고 나서 소정시간이 경과해도 제2 정보 처리 장치(2)가 응답 패킷을 수신한 통보를 제1 정보 처리 장치(1)로부터 받을 수 없는 경우)에는, 검출된 포트 폭이 다른 경우로 생각할 수 있으므로, 제2 정보 처리 장치(2)는 포트 폭을 1로 설정하고, 다시 응답 패킷의 송신을 수행해도 된다. 혹은 포트 폭을 최대 공약수에 의해 산출하고 있는 경우에는, 최대 공약수로부터 1까지의 공약수를 순차적으로 포트 폭으로 설정하고, 다시 응답 패킷의 송신을 수행해도 된다. 예를 들면 검출된 포트 폭이 「8」, 「4」인 경우에는 최대 공약수인 「4」를 포트 폭으로서 설정하여 응답 패킷의 송신을 행하고, 그에 따라 통신을 확립할 수 없었을 경우에는 [2]를 포트 폭으로서 설정하여 응답 패킷의 송신을 수행해도 된다. 그것에 의해서도 통신을 확립할 수 없었을 경우에는 포트 폭은 「1」로 설정된다.
다음으로, 본 실시예에 따른 통신 시스템의 동작에 대하여, 구체예를 이용하 여 설명한다. 이 구체예에 있어서 제1 통신 제어 장치(3), 제2 통신 제어 장치(4), 제1 서버(6), 제2 서버(7)의 IP 어드레스(제1 및 제2 통신 제어 장치(3, 4)에 대해서는 통신 회선(5)측의 어드레스)는 각각 이하와 같은 것으로 한다.
제1 통신 제어 장치(3) : 202.132.10.6
제2 통신 제어 장치(4) : 131.206.10.240
제1 서버(6) : 155.32.10.10
제2 서버(7) : 155.32.10.20
또한, 제1 정보 처리 장치(1)로부터 제2 정보 처리 장치(2)로의 접속 요구를 수행하는 것으로 한다. 즉, 제1 정보 처리 장치(1)를 송신측으로 하고 처리를 개시하는 것으로 한다.
이하의 구체예에서, 구체예 1에 있어서는, 제1 통신 제어 장치(3)가 AS NAT이고 제2 통신 제어 장치(4)가 PS NAT인 경우에 대하여 설명한다. 또한, 구체예 2에 있어서는, 제1 통신 제어 장치(3)가 PS NAT이고 제2 통신 제어 장치(4)가 AS NAT인 경우에 대하여 설명한다. 또한, 구체예 3에 있어서는, 제1 통신 제어 장치(3)가 PS NAT이고 제2 통신 제어 장치(4)가 PR NAT인 경우에 대하여 설명한다. 또한, 구체예 4에 있어서는, 제1 통신 제어 장치(3) 및 제2 통신 제어 장치(4)가 Full Cone NAT인 경우에 대하여 설명한다.
[구체예 1]
도 12 및 도 13은 구체예 1에 대하여 설명하기 위한 도면이다. 먼저 제1 정보 처리 장치(1)로부터 접속 요구가 행해지는 동작에 대하여 설명한다. 도 12에 있 어서, 제1 정보 처리 장치(1)는 제1 서버(6)의 IP 어드레스「155.32.10.10」 및 제2 서버(7)의 IP 어드레스「155.32.10.20」를 미리 알고 있고, 그 제1 서버(6)에 대하여 제1 정보 처리 장치(1)의 디바이스 ID 「1234567890123456」를 송신한다. 여기에서 이 디바이스 ID로는, 예를 들면 MAC 어드레스나 EUI64베이스의 어드레스 등의 GUID(Global Unique ID)를 이용할 수 있다. 이 디바이스 ID의 송신은 제1 통신 제어 장치(3)의 포트 P1를 통해 제1 서버(6)의 포트 P3에 대하여 행해진다. 이 송신에 의해 제1 서버(6)의 정보 송수신부(62)는, 제1 정보 처리 장치(1)의 디바이스 ID와, 제1 통신 제어 장치(3)의 IP 어드레스「202.132.10.6」와, 제1 통신 제어 장치(3)에서의 포트 P1의 포트 번호「10130」를 알 수 있다. 이들 정보는 정보 송수신부(62)에서 보유된다.
다음으로 제1 정보 처리 장치(1)는, 접속을 요구하는 제2 정보 처리 장치(2)의 디바이스 ID 「9876543210123456」를 제1 서버(6)에 송신함으로써, 제2 정보 처리 장치(2)로의 접속 요구를 행한다. 그러면, 제1 서버(6)의 정보 송수신부(62)가 그 접속 요구를 받아, 제2 정보 처리 장치(2)가 제1 서버(6)에 이미 액세스하고 있는지 여부를 판단한다. 이 제2 정보 처리 장치(2)에 의한 액세스도, 상술한 제1 정보 처리 장치(1)와 동일하게 하여, 제2 정보 처리 장치(2)의 디바이스 ID를 송신함으로써 행해진다. 따라서 제2 정보 처리 장치(2)가 제1 서버(6)에 액세스하고 있었을 경우에는, 제1 서버(6)는 제2 정보 처리 장치(2)의 디바이스 ID 「9876543210123456」와, 제2 통신 제어 장치(4)의 IP 어드레스「131.206.10.240」와, 제2 정보 처리 장치(2)와 제1 서버(6)의 사이에서의 정보의 송수신에서 이용되 는 제2 통신 제어 장치(4)의 포트 P2의 포트 번호 「21000」를 알고 있고, 그것들이 정보 송수신부(62)에 유지되어 있는 것이 된다. 제2 정보 처리 장치(2)가 제1 서버(6)에 이미 액세스하고 있을 경우에는, 정보 송수신부(62)가 특성 판단부(63)에 대하여 송수신의 결정(단계 S101)을 행하는 취지의 지시를 전달함으로써 송수신의 결정의 처리를 개시시킨다. 한편, 제2 정보 처리 장치(2)가 제1 서버(6)에 액세스하고 있지 않은 경우에는, 제1 정보 처리 장치(1)로부터의 접속 요구는 에러가 되어 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 간의 통신은 확립될 수 없다.
송수신의 결정에 있어서, 특성 판단부(63)가 송신측의 통신 제어 장치인 제1 통신 제어 장치(3)의 특성을 판단한다(단계 S201). 그리고 제1 통신 제어 장치(3)가 AS NAT를 이용하고 있다고 판단된다. 그리고 그 통보가 송수신 결정부(64)에 전달된다. 송수신 결정부(64)는 송신측의 통신 제어 장치가 PS NAT를 이용하고 있지 않고, 또한 PR NAT를 이용하고 있지 않다고 판단한다(단계 S202, S203). 그 결과 송수신의 전환은 행해지지 않고, 제1 정보 처리 장치(1)와 제1 통신 제어 장치(3)가 송신측이고, 제2 정보 처리 장치(2)와 제2 통신 제어 장치(4)가 수신측인 통보가, 정보 송수신부(62), 버블 패킷 송신 대상 포트 송신부(65), 범위 송신부(67), 및 포트 폭 송신부(69)에 전달된다.
정보 송수신부(62)가, 제1 정보 처리 장치(1)가 송신측인 통보를 받으면, 수신측의 제2 통신 제어 장치(4)의 IP 어드레스「131.206.10.240」를 나타내는 어드레스 정보를 제1 정보 처리 장치(1)로 포트 P1을 통해 송신한다(단계 S301). 또한, 버블 패킷 송신 대상 포트 송신부(65)는, 제2 통신 제어 장치(4)의 포트 P2의 포트 번호「21000」를 나타내는 정보인 버블 패킷 송신 대상 포트 정보를 제1 정보 처리 장치(1)에 포트 P1을 통해 송신한다(단계 S302).
그러면 이들 정보는 제1 정보 처리 장치(1)의 통신부(11)에서 수신되고, 제2 통신 제어 장치(4)의 IP 어드레스「131.206.10.240」를 나타내는 어드레스 정보는 버블 패킷 송신부(12)에 전달되고, 버블 패킷 송신 대상 포트 정보는 버블 패킷 송신 대상 포트 수신부(16)에 전달된다. 그리고 버블 패킷 송신 대상 포트 정보는 버블 패킷 송신 대상 포트 수신부(16)에서 수신되고, 버블 패킷 송신부(12)에 전달된다. 이와 같이 하여, 버블 패킷 송신부(12)는 버블 패킷의 송신처인 제2 통신 제어 장치(4)의 IP 어드레스를 취득한다.
통신부(11)가 버블 패킷 송신 대상 포트 정보 등을 수신한 통보를 포트 폭 검출용 패킷 송신부(15)에 전달하면, 포트 폭 검출용 패킷 송신부(15)는 다수의 포트 폭 검출용 패킷을 도 11에서 나타낸 바와 같이 하여 송신한다(단계 S303). 또한, 도 12 및 도 13에서는, 포트 폭 검출용 패킷의 송신에 대해서는 명시하지 않고 있다. 그 포트 폭 검출용 패킷은 포트 폭 검출부(68)에서 수신되어 포트 폭이 검출된다. 이 경우 포트 폭은 「1」로 검출된 것으로 한다(단계 S304). 검출된 포트 폭은 포트 폭 송신부(69)에 전달된다.
버블 패킷 송신부(12)는 버블 패킷을 송신하기 전에, 범위 검출용 패킷 송신부(13)에 대하여 범위 검출용 패킷을 송신하는 취지의 지시를 전달한다. 그러면 범위 검출용 패킷 송신부(13)는, 제1 서버(6)와의 통신에서 이용하고 있는 포트와는 다른 포트를 이용하여, 제1 서버(6)에 대하여 범위 검출용 패킷을 송신한다(단계 S305). 또한, 이 범위 검출용 패킷의 송신처 포트인 포트 P6은, 제1 서버(6)로부터 제1 정보 처리 장치(1)에 대하여 나타내진 것으로 한다. 이 범위 검출용 패킷은, 제1 통신 제어 장치(3)의 포트 P5를 이용하여 송신된 것으로 한다. 그러면 그 범위 검출용 패킷을 수신한 범위 검출부(66)는, 그 제1 통신 제어 장치(3)의 포트 P5의 포트 번호 「10135」을 검출한다. 범위 검출부(66)는, 그 포트 P5의 포트 번호 「10135」을 유지해 둔다.
범위 검출용 패킷 송신부(13)는, 범위 검출용 패킷의 송신 후에 범위 검출용 패킷을 송신한 통보를 버블 패킷 송신부(12)에 전달한다. 그러면 버블 패킷 송신부(12)는, 통신부(11)로부터 받은 어드레스 정보가 나타내는 IP 어드레스 「131.206.10.240」의 제2 통신 제어 장치(4)에서의 포트 번호가 「21000」인 버블 패킷 송신 대상 포트에 대하여 버블 패킷을 송신한다(단계 S306). 여기에서 그 버블 패킷은 제1 통신 제어 장치(3)의 포트 P7(포트 번호 「10142」)을 이용하여 송신된 것으로 한다.
버블 패킷 송신부(12)는 버블 패킷의 송신 후에, 범위 검출용 패킷을 송신하는 취지의 지시를 범위 검출용 패킷 송신부(13)에 전달한다. 그러면 범위 검출용 패킷 송신부(13)는, IP 어드레스가 「155.32.10.20」인 제2 서버(7)에 대하여 범위 검출용 패킷을 송신한다(단계 S307). 또한, 버블 패킷과 2회째의 범위 검출용 패킷은, 1회째의 범위 검출용 패킷이 송신된 제1 정보 처리 장치(1)의 포트로부터 송신 되는 것으로 한다.
버블 패킷의 송신 후에 송신된 범위 검출용 패킷은, 제1 통신 제어 장치(3)의 포트 P8을 이용하여 송신된 것으로 한다. 그러면 범위 검출부(66)는 제2 서버(7)의 통신부(71) 및 제1 서버(6)의 통신부(61)를 통해 그 범위 검출용 패킷을 수신하고, 포트 P8의 포트 번호 「10145」를 검출한다. 그리고 범위 검출부(66)는, 보유하고 있던 포트 P5의 포트 번호 「10135」와 검출한 포트 P8의 포트 번호 「10145」를, 각각 하한과 상한으로 하는 범위를 검출한다(단계 S308). 그리고 그 범위를 범위 송신부(67)에 전달하면, 범위 송신부(67)는 제2 통신 제어 장치(4)의 포트 P2를 통해 제2 정보 처리 장치(2)로, 그 범위를 나타내는 범위 정보를 송신한다(단계 S309). 그 범위 정보는 제2 정보 처리 장치(2)의 범위 수신부(27)에서 수신되고, 응답 패킷 송신부(29)에 전달된다.
또한, 포트 P5, P7, 및 P8이 연속한 포트 번호로 되어 있지는 않으나, 이것은 제1 통신 제어 장치(3)의 로컬측에 제1 정보 처리 장치(1) 이외의 장치(미도시)가 접속되어 있어, 범위 검출용 패킷의 송신으로부터 버블 패킷의 송신까지 또는 버블 패킷의 송신으로부터 범위 검출용 패킷의 송신까지, 그 장치에 대하여 제1 통신 제어 장치(3)의 포트가 할당됨으로써 생기는 것이다.
범위 정보를 송신한 통보를, 범위 송신부(67)가 정보 송수신부(62)와 포트 폭 송신부(69)에 전달하면, 정보 송수신부(62)는 제1 통신 제어 장치(3)의 IP 어드레스「202.132.10.6」를 나타내는 어드레스 정보를 제2 정보 처리 장치(2)에 송신한다(단계 S310). 또한, 포트 폭 송신부(69)는, 제2 정보 처리 장치(2)에 포트 폭 검출부(68)에 의해 검출된 포트 폭을 나타내는 포트 폭 정보를 송신한다(단계 S311). 그러면, 제1 통신 제어 장치(3)의 IP 어드레스를 나타내는 어드레스 정보는 통신부(21)로부터 응답 패킷 송신부(29)에 전달되고, 포트 폭 정보는 포트 폭 수신부(28)에 전달되고, 응답 패킷 송신부(29)에 전달된다. 이렇게 하여 응답 패킷 송신부(29)는, 응답 패킷의 송신처인 제1 통신 제어 장치(3)의 IP 어드레스를 취득한다.
응답 패킷 송신부(29)는, 통신부(21)로부터 받은 어드레스 정보가 나타내는 IP 어드레스「202.132.10.6」의 제1 통신 제어 장치(3)에 대하여 응답 패킷을 송신한다. 이 응답 패킷은 도 13에 나타나 있는 바와 같이, 범위 정보에 의해 나타내지는 포트 번호 「10135」로부터 「10145」의 포트에 대하여, 포트 폭 정보가 나타내는 포트 폭 「1」 마다 송신된다. 여기에서 제2 통신 제어 장치(4)는 PS NAT이기 때문에, 제2 정보 처리 장치(2)로부터 송신되는 응답 패킷은 포트 P10로부터 포트 P11까지의 11개의 포트를 이용하여 송신된다(단계 S312). 제1 통신 제어 장치(3)에서는, 버블 패킷의 송신에 의해 포트 P7에 송신 이력이 남아있기 때문에, 응답 패킷 중, 포트 P7(포트 번호 「10142」)에 송신된 응답 패킷은 제1 정보 처리 장치(1)에 전달되고, 통신부(11)를 통해 응답 패킷 수신부(14)에서 수신된다(단계 S313). 이렇게 하여 제1 정보 처리 장치(1)는, 응답 패킷의 송신에서 이용된 제2 통신 제어 장치(4)의 포트의 위치를 알 수 있다. 그 후 제1 정보 처리 장치(1)가 그 포트에 대하여, 제1 통신 제어 장치(3)에서의 포트 P7을 통해 정보를 송신함으로써, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 간의 통신이 확립되어, 서버를 통하지 않고 직접 UDP에 의한 통신을 수행할 수 있다.
또한, 이 구체예 1에 있어서, 버블 패킷 송신 포트(포트 P7)의 포트 번호가 「10140」이고 제1 통신 제어 장치(3)의 포트 폭이 「5」인 경우에는, 응답 패킷은 3개의 포트, 즉 포트 P5, P7, 및 P8에만 송신되는 것이 되어, 응답 패킷의 송신을 효율적으로 행할 수 있다.
또한, 이 구체예 1에 있어서, 제2 정보 처리 장치(2)가 제1 서버(6)와 통신을 행하는 포트(제2 정보 처리 장치(2)의 포트)로 응답 패킷을 송신하는 경우에 대하여 설명했으나, 다른 포트로 응답 패킷을 송신해도 무방하다. 예를 들면 제1 서버(6)가 버블 패킷 송신 대상 포트의 위치를 검출하기 위하여, 제2 정보 처리 장치(2)로부터 제1 서버(6)에 송신된 패킷이 송신된 제2 정보 처리 장치(2)의 포트로부터 응답 패킷을 송신해도 무방하다. 또한, 이 경우에는, 그 패킷이 통과한 제2 통신 제어 장치(4)의 포트가 버블 패킷 송신 대상 포트가 된다.
또한, 이 구체예 1에서는 버블 패킷과 2회째의 범위 검출용 패킷이, 1회째의 범위 검출용 패킷이 송신된 제1 정보 처리 장치(1)의 포트로부터 송신되는 경우에 대하여 설명했으나, 버블 패킷과 2개의 범위 검출용 패킷과는, 제1 정보 처리 장치(1)에 있어서 새롭게 할당된 각각 다른 포트로부터 송신되어도 무방하다.
[구체예 2]
구체예 2에서는, 제1 통신 제어 장치(3)가 PS NAT를 이용하고 있고, 제2 통신 제어 장치(4)가 AS NAT를 이용하고 있는 경우에 대하여 설명한다.
제1 정보 처리 장치(1)로부터 접속 요구가 행해지는 동작에 대해서는, 구체예 1과 동일하여 그 설명을 생략한다.
다음으로 송수신의 결정을 행하는 동작에 대하여 설명한다. 특성 판단부(63)가 송신측의 통신 제어인 제1 통신 제어 장치(3)의 특성을 판단한다(단계 S201). 그리고 제1 통신 제어 장치(3)가 PS NAT를 이용하고 있다고 판단되고, 그 통보가 송수신 결정부(64)로 전달된다. 송수신 결정부(64)는 송신측의 통신 제어 장치가 PS NAT를 이용하고 있다고 판단하고(단계 S202), 특성 판단부(63)에 수신측의 제2 통신 제어 장치(4)의 특성을 판단하는 취지의 지시를 전달한다. 그러면 특성 판단부(63)는 제2 통신 제어 장치(4)의 특성을 판단한다(단계 S205). 그리고 제2 통신 제어 장치(4)가 AS NAT를 이용하고 있다고 판단되고, 그 통보가 송수신 결정부(64)에 전달된다. 송수신 결정부(64)는 수신측의 통신 제어 장치가 AS NAT를 이용하고 있다고 판단하고(단계 S206, S207), 송수신의 전환을 행한다(단계 S204). 따라서 제1 정보 처리 장치(1)와 제1 통신 제어 장치(3)가 수신측으로 설정되고, 제2 정보 처리 장치(2)와 제2 통신 제어 장치(4)가 송신측으로 설정된다. 그리고 제1 정보 처리 장치(1)와 제1 통신 제어 장치(3)가 수신측으로 설정되고, 제2 정보 처리 장치(2)와 제2 통신 제어 장치(4)가 송신측으로 설정된 통보가, 정보 송수신부(62), 버블 패킷 송신 대상 포트 송신부(65), 범위 송신부(67), 포트 폭 송신부(69)에 전달된다. 이 후의 동작에 대해서는, 제1 정보 처리 장치(1)와 제2 정보 처리 장치가 전환되고, 제1 통신 제어 장치(3)와 제2 통신 제어 장치(4)가 전환되는 이외에는, 구체예 1과 동일하여 그 설명을 생략한다.
또한, 제1 정보 처리 장치(1)와 제1 통신 제어 장치(3)가 수신측이고, 제2 정보 처리 장치(2)와 제2 통신 제어 장치(4)가 송신측이라는 통보는, 제1 정보 처 리 장치(1)나 제2 정보 처리 장치(2)에 대하여 통지되어도 무방하고, 또한, 제1 정보 처리 장치(1)나 제2 정보 처리 장치(2)는 버블 패킷 송신 대상 포트 정보를 받았을 경우에 송신측인 것을 검지하고, 한편, 범위 정보를 받았을 경우에 수신측인 것을 검지해도 무방하다.
[구체예 3]
구체예 3에서는, 제1 통신 제어 장치(3)가 PS NAT를 이용하고 있고, 제2 통신 제어 장치(4)가 PR NAT를 이용하고 있는 경우에 대하여 설명한다.
제1 정보 처리 장치(1)로부터 접속 요구가 행해지는 동작에 대해서는, 구체예 1과 동일하여 그 설명을 생략한다.
다음으로 송수신의 결정을 행하는 동작에 대하여 설명한다. 특성 판단부(63)가 송신측의 통신 제어인 제1 통신 제어 장치(3)의 특성을 판단한다(단계 S201). 그리고 제1 통신 제어 장치(3)가 PS NAT를 이용하고 있다고 판단되고, 그 통보가 송수신 결정부(64)로 전달된다. 송수신 결정부(64)는 송신측의 통신 제어 장치가 PS NAT를 이용하고 있다고 판단하고(단계 S202), 특성 판단부(63)에 수신측의 제2 통신 제어 장치(4)의 특성을 판단하는 취지의 지시를 전달한다. 그러면 특성 판단부(63)는 제2 통신 제어 장치(4)의 특성을 판단한다(단계 S205). 그리고 제2 통신 제어 장치(4)가 PR NAT를 이용하고 있다고 판단되고, 그 통보가 송수신 결정부(64)에 전달된다. 송수신 결정부(64)는 수신측의 통신 제어 장치가 PS NAT를 이용하고 있지 않고, 또한, AS NAT를 이용하고 있지 않다고 판단한다(단계 S206, S207). 그 결과 송수신의 전환은 행해지지 않고, 제1 정보 처리 장치(1)와 제1 통신 제어 장 치(3)가 송신측이고, 제2 정보 처리 장치(2)와 제2 통신 제어 장치(4)가 수신측이라는 통보가, 정보 송수신부(62), 버블 패킷 송신 대상 포트 송신부(65), 범위 송신부(67), 포트 폭 송신부(69)에 전달된다.
이후, 제1 정보 처리 장치(1)로부터 버블 패킷이나 범위 검출용 패킷이 송신되고, 범위 정보나 제1 통신 제어 장치(3)의 IP 어드레스, 포트 폭 정보 등이 제2 정보 처리 장치(2)에서 수신되는 동작에 대해서는, 구체예 1과 동일하여 그 설명을 생략한다.
도 14는 제2 정보 처리 장치(2)로부터의 응답 패킷의 송신에 대하여 설명하기 위한 도이다. 도 14에 있어서 제2 정보 처리 장치(2)의 응답 패킷 송신부(29)는, 범위 수신부(27)가 제1 서버(6)로부터 수신한 범위 정보에 기초하여, IP 어드레스「202.132.10.6」의 제1 통신 제어 장치(3)에서의 포트 번호「10135」의 포트 P5로부터 포트 번호「10145」의 포트 P8까지에 대하여 응답 패킷을 송신한다(단계 S312). 이 응답 패킷의 송신은, 포트 폭 수신부(28)가 수신한 포트 폭 정보가 나타내는 포트 폭 「1」마다 행해진다. 또한, 제2 통신 제어 장치(4)가 PR NAT를 이용하고 있기 때문에, 응답 패킷은 포트 P2를 통해 제1 통신 제어 장치(3)에 송신된다. 즉, 응답 패킷은 제1 서버(6)와 통신을 행하는 제2 정보 처리 장치(2)의 포트로부터 송신된다. 이 이외의 동작은 구체예 1과 동일하여 그 설명을 생략한다.
또한, 이 구체예 3에서는, 송신측의 제1 통신 제어 장치(3)가 AS NAT이 아니다. 따라서 범위 검출용 패킷 송신부(13)가 그 통보를 특성 판단부(63) 등으로부터 받아, 버블 패킷 송신 후의 범위 검출용 패킷을 제2 서버(7)가 아니라 제1 서버(6) 로 송신하도록 해도 무방하다. 여기에서 이 구체예 3의 경우에는, 송신측의 제1 통신 제어 장치(3)가 PS NAT를 이용하고 있기 때문에, 범위 검출용 패킷을 제1 서버(6)에 송신할 때에도, 그 패킷을 송신하는 제1 정보 처리 장치(1)에서의 포트를 제1 서버(6)와의 포트 1을 통한 통신에서 이용하는 포트와 동일한 포트로 해도 무방하다. 단, 이 경우에도 제1 통신 제어 장치(3)에 있어서 새로운 포트가 할당되도록 하기 위하여, 제1 서버(6)에서의 다른 포트인 포트 P3와, 포트 P6에 대하여 범위 검출용 패킷을 송신할 필요가 있다.
[구체예 4]
구체예 4에서는, 제1 통신 제어 장치(3) 및 제2 통신 제어 장치(4)가 Full Cone NAT을 이용하고 있는 경우에 대하여 설명한다. 또한, 이 경우에 특징적인 부분만 설명하는 것으로 하고, 상기한 구체예와 동일한 점에 대해서는 설명을 생략하기로 한다. .
제1 정보 처리 장치(1)로부터 접속 요구가 행해지는 동작에 대해서는, 구체예 1과 동일하여 그 설명을 생략한다.
다음으로 송수신의 결정에 있어서는, 양측의 통신 제어 장치가 Full Cone NAT이기 때문에 송수신의 전환은 행해지지 않아, 제1 정보 처리 장치(1)와 제1 통신 제어 장치(3)가 송신측이고, 제2 정보 처리 장치(2)와 제2 통신 제어 장치(4)가 수신측으로 결정된다.
다음으로 버블 패킷의 송신 등에 대하여 도 15 및 도 16을 참조하여 간단히 설명한다. 도 15에 있어서 제1 통신 제어 장치(3)가 Full Cone NAT이면, 범위 검출 용 패킷과 버블 패킷은 동일한 포트 P5를 이용하여 송신된다. 따라서 버블 패킷 송신 포트는, 범위 정보에 의해 1개로 특정된다. 그 때문에, 도 16에서 나타낸 바와 같이, 제2 정보 처리 장치(2)로부터 송신되는 응답 패킷은 포트 P2을 통해 포트 P5에 송신되고, 이렇게 하여 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 간의 통신을 확립할 수 있다.
이 설명에서는 도 10에서의 처리의 흐름에 따르도록 설명했으나, 제2 통신 제어 장치(4)가 Full Cone NAT일 경우에는, 송신된 버블 패킷을 제2 정보 처리 장치(2)에서 받을 수 있으므로, 그 시점에서 통신이 확립되게 된다. 따라서 범위 검출용 패킷의 송신이나 응답 패킷의 송신을 수행하지 않더라도 무방하다.
또한, 상기 각 구체예에서 버블 패킷의 송신처를 포트 P2(제2 정보 처리 장치(2)가 제1 서버(6)와의 통신에서 이용하고 있는 포트)로 하고 있는 것은, 송신측의 제1 통신 제어 장치(3)가 PR NAT, 혹은 PS NAT를 이용하고 있고, 또한, 수신측의 제2 통신 제어 장치(4)가 Full Cone NAT, R NAT, 혹은 PR NAT를 이용하고 있는 경우에도 통신을 확립할 수 있도록 하기 위해서이다. 따라서 그 이외의 경우(예를 들면 구체예 4의 경우)라면, 포트 P2 이외로 버블 패킷을 송신해도 무방하다. 특히 제1 통신 제어 장치(3)가 Full Cone NAT인 경우에는, 버블 패킷은 제2 통신 제어 장치(4)가 아닌 장치로 송신되어도 무방하다.
또한, 송신측의 제1 통신 제어 장치(3)가 AS NAT 이외를 이용하고 있는 경우에는, 제2 서버(7)에 송신하는 범위 검출용 패킷을 제1 서버(6)에 송신해도 무방하다.
또한, 버블 패킷의 송신 전후에서 송신하는 범위 검출용 패킷을, 각각 제1 정보 처리 장치(1)에 있어서 새로 할당된 포트를 이용하여 제1 서버(6)에 송신해도 무방하다. 이와 같이 함으로써, 범위 검출용 패킷의 송신마다 제1 통신 제어 장치(3)에 있어서 새로운 포트가 할당되게 되어, 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출할 수 있다. 따라서 송신측의 제1 통신 제어 장치(3)가 AS NAT를 이용하고 있는 경우라도, 제2 서버(7)를 이용하지 않고 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출할 수 있다. 또한, 버블 패킷과 범위 검출용 패킷을, 제1 정보 처리 장치(1)의 다른 포트로부터 송신했을 경우에는, 그 범위 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트와, 버블 패킷이 통과한 제1 통신 제어 장치(3)의 포트는 다르게 된다. 따라서 이러한 경우에는, 버블 패킷이 송신된 포트와는 다른 포트(제1 정보 처리 장치(1)에서의 포트)로부터 송신된 범위 검출용 패킷이 통과한 포트(제1 통신 제어 장치(3)에서의 포트)보다도, 1포트 폭만큼 버블 패킷 송신 포트에 가까운 포트의 위치를, 응답 패킷을 송신하는 범위의 끝으로 해도 무방하다. 범위 검출용 패킷을 2회 송신할 경우에는, 일측의 범위 검출용 패킷을 송신하는 포트(제1 정보 처리 장치(1)에서의 포트)와, 버블 패킷을 송신하는 포트를 동일한 포트로 해도 무방하다. 이러한 경우에는, 버블 패킷 송신 포트를 포함하는 포트의 범위에, 버블 패킷을 송신하는 포트와 같은 포트(제1 정보 처리 장치(1)에서의 포트)로부터 송신한 범위 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트를 포함하도록 한다.
또한, 송신측의 제1 통신 제어 장치(3)가 Full Cone NAT, R NAT, PR NAT 중 어느 하나인 경우에는, 버블 패킷을 송신하는 전후의 어느 하나에만 범위 검출용 패킷을 송신하는 것도 무방하다. 제1 통신 제어 장치(3)가 R NAT 또는 PR NAT 중 어느 하나를 이용하고 있는 경우에도, 버블 패킷과 범위 검출용 패킷을 제1 정보 처리 장치(1)의 동일한 포트로부터 송신하고 있는 것이라면, 도 15에서 나타낸 바와 같이 포트 P5, 포트 P7, 및 포트 P8은 동일한 포트가 되고, 그 1개의 범위 검출용 패킷에 의해 버블 패킷 송신 포트를 특정할 수 있기 때문이다. 또한, 송신측의 제1 통신 제어 장치(3)가, 예를 들면 제1 서버(6)와의 통신을 행하는 포트(예를 들면 도 15의 포트 P1)를 통해 버블 패킷을 송신하는 경우에는, 범위 검출용 패킷을 송신하지 않아도 무방하다.
도 17은 통신 제어 장치에서 이용하는 NAT의 종류에 관하여 접속 가능인지 아닌지를 나타내는 표이다. 본 실시예에 따른 통신 시스템에서는, 제1 통신 제어 장치(3)와, 제2 통신 제어 장치(4)의 양측이 PS NAT를 이용하고 있는 경우 이외에는 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)와의 접속을 행하는 것이 가능하다. 상기 각 구체예에서의 설명에서는, 통신 제어 장치에서 이용하고 있는 NAT의 종류에 따른 예외적인 취급에 관한 기재도 행했으나, 통신 제어 장치에서 이용하고 있는 NAT의 종류와 관계없이, 버블 패킷 송신 전의 범위 검출용 패킷과 버블 패킷 송신 후의 범위 검출용 패킷을 다른 어드레스로 송신하고, 버블 패킷의 송신처의 포트를 수신측의 정보 처리 장치가 서버와의 정보의 송수신에서 이용하고 있는 포트로 하고, 범위 검출용 패킷을 이용하여 검출된 버블 패킷 송신 포트를 포함하는 포트의 범위에 응답 패킷을 송신함으로써, 도 17의 「O」의 조합에 대해서는 정보 처리 장치 간의 접속을 행할 수 있다. 또한, 도 17의 「△」의 조합에 대해서도 송수신의 전환을 행함으로써, 정보 처리 장치 간의 접속을 수행할 수 있다.
여기에서 송신측에서 PS NAT이 이용되고 수신측에서 PS NAT, AS NAT이 이용되는 경우, 송신측에서 PR NAT이 이용되고 수신측에서 AS NAT, 혹은 PS NAT이 이용되는 경우에, 정보 처리 장치 간에서의 통신을 왜 확립할 수 없는 것인가에 대하여 도 12 내지 도 14를 참조하여 간단히 설명한다.
(1) 송신측이 PS NAT, 수신측이 PS NAT, AS NAT인 경우
이 경우에는 제1 통신 제어 장치(3)가 PS NAT를 이용하고 있기 때문에, 버블 패킷을 포트 P2에 송신했다고 하면, 제1 정보 처리 장치(1)는 그 포트 P2로부터 송신된 응답 패킷만을 수신할 수 있다. 한편 제2 통신 제어 장치(4)가 PS NAT, 혹은 AS NAT를 이용하고 있고, 제2 통신 제어 장치(4)는 포트 P2를 제1 서버(6)와의 통신에서 이용하고 있기 때문에, 제2 정보 처리 장치(2)는 포트 P2를 통해 제1 통신 제어 장치(3)에 응답 패킷을 송신할 수 없다(즉, 도 14와 같이, 응답 패킷을 송신할 수는 없다). 따라서 이 경우에는 통신을 확립할 수 없는 것이 된다. 다만, 송신측과 수신측의 양측이 PS NAT인 경우 이외에는, 송신측과 수신측을 전환함으로써 통신을 확립하는 것이 가능하다.
(2) 송신측이 PR NAT, 수신측이 PS NAT, AS NAT인 경우
이 경우도 상기 (1)과 마찬가지로, 제1 통신 제어 장치(3)가 PR NAT를 이용하고 있기 때문에, 버블 패킷을 포트 P2에 송신했다고 하면, 제1 정보 처리 장치(1)는 그 포트 P2로부터의 응답 패킷만을 수신할 수 있다. 한편 제2 통신 제어 장치가, AS NAT, 혹은 PS NAT를 이용하고 있기 때문에, 포트 P2를 통해 응답 패킷을 전송할 수 없다. 따라서 이 경우에는 통신을 확립할 수 없는 것이 된다. 또한, 이 경우에는, 제1 통신 제어 장치(3)에서의 포트 P5, P7, 및 P8이 동일한 포트가 되는 것은 상술한 바와 같다. 이 경우에도 송신측과 수신측을 전환함으로써 통신을 확립하는 것이 가능하다.
이상과 같이 본 실시예에 따른 통신 시스템에 의하면, 제1 통신 제어 장치(3) 및 제2 통신 제어 장치(4)가 양측 모두 PS NAT인 경우를 제외하고, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 간의 통신을 확립할 수 있다.
(제2 실시예)
본 발명의 제2 실시예에 따른 통신 시스템에 대하여 도면을 참조하여 설명한다. 본 실시예에 따른 통신 시스템은, 버블 패킷 송신 포트를 포함하는 포트의 범위의 검출이나, 포트 폭의 검출 등을 서버가 아니라 정보 처리 장치에서 행함으로써 서버의 처리 부하를 경감하는 것이다.
본 실시예에 따른 통신 시스템의 구성은, 제1 정보 처리 장치(1), 제2 정보 처리 장치(2), 및 제1 서버(6) 대신에, 각각 제1 정보 처리 장치(10), 제2 정보 처리 장치(20), 및 제1 서버(60)를 구비한다는 이외에는, 도 1과 동일하여 그 설명을 생략한다.
도 18은 본 실시예에 따른 제1 정보 처리 장치(10)의 구성을 나타낸 블록도이다. 도 18에 있어서 제1 정보 처리 장치(10)는, 통신부(11)와, 버블 패킷 송신부(12)와, 범위 검출용 패킷 송신부(13)와, 응답 패킷 수신부(14)와, 포트 폭 검출 용 패킷 송신부(15)와, 버블 패킷 송신 대상 포트 수신부(16)와, 범위 수신부(17)와, 포트 폭 수신부(18)와, 응답 패킷 송신부(19)와, 검출용 포트 정보 수신부(71)와, 범위 검출부(72)와, 범위 송신부(73)와, 포트 폭 검출용 포트 정보 수신부(74)와, 포트 폭 검출부(75)와, 포트 폭 송신부(76)를 구비한다. 또한, 검출용 포트 정보 수신부(71), 범위 검출부(72), 범위 송신부(73), 포트 폭 검출용 포트 정보 수신부(74), 포트 폭 검출부(75), 포트 폭 송신부(76) 이외의 구성 및 동작은, 포트 폭 수신부(18)가 제2 정보 처리 장치(20)로부터 제1 서버(60)를 통해 송신된 포트 폭 정보를 수신한다는 이외에는, 제1 실시예와 동일하여 그 설명을 생략한다.
검출용 포트 정보 수신부(71)는, 제1 서버(60)로부터 송신된 검출용 포트 정보를 통신부(11)를 통해 수신한다. 여기에서 검출용 포트 정보라는 것은, 범위 검출용 패킷 송신부(13)에 의해 송신된 범위 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 나타내는 정보이다.
범위 검출부(72)는, 검출용 포트 정보 수신부(71)가 수신한 검출용 포트 정보에 기초하여 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출한다. 이 포트의 범위 검출은, 검출용 포트 정보의 패킷의 페이로드(payload)에 포함되는 포트 번호를 취득하고 소정의 메모리 등에 기록하는 것 등이라도 무방하다.
범위 송신부(73)는, 범위 검출부(72)가 검출한 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를, 제1 서버(60)를 통해 제2 정보 처리 장치(20)에 송신한다.
포트 폭 검출용 포트 정보 수신부(74)는 포트 폭 검출용 포트 정보를 수신한 다. 여기에서 포트 폭 검출용 포트 정보라는 것은, 포트 폭 검출용 패킷 송신부(15)에 의해 송신된 포트 폭 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 나타내는 정보이다. 이 포트 폭 검출용 포트 정보는 제1 서버(60)로부터 송신된 것이다.
포트 폭 검출부(75)는 포트 폭 검출용 포트 정보 수신부(74)가 수신한 포트 폭 검출용 포트 정보에 기초하여, 제1 통신 제어 장치(3)에서의 포트 폭을 검출한다. 이 포트 폭의 검출은, 제1 실시예에서의 포트 폭 검출부(68)와 동일하게 행해지는 것으로서 그 설명을 생략한다.
포트 폭 송신부(76)는, 포트 폭 검출부(75)가 검출한 제1 통신 제어 장치(3)의 포트 폭을 나타내는 정보인 포트 폭 정보를, 제1 서버(60)를 통해 제2 정보 처리 장치(20)에 송신한다.
또한, 제1 정보 처리 장치(10)에서의 버블 패킷 송신부(12)로부터 버블 패킷 송신 대상 포트 수신부(16)까지 및 검출용 포트 정보 수신부(71)로부터 포트 폭 송신부(76)까지는, 제1 정보 처리 장치(10)가 송신측으로서 동작하는 경우에 이용된다. 한편, 범위 수신부(17)로부터 응답 패킷 송신부(19)까지는, 제1 정보 처리 장치(10)가 수신측으로서 동작하는 경우에 이용된다.
도 19는 본 실시예에 따른 제2 정보 처리 장치(20)의 구성을 나타내는 블록도이다. 도 19에 있어서 제2 정보 처리 장치(20)는, 통신부(21)와, 버블 패킷 송신부(22)와, 범위 검출용 패킷 송신부(23)와, 응답 패킷 수신부(24)와, 포트 폭 검출용 패킷 송신부(25)와, 버블 패킷 송신 대상 포트 수신부(26)와, 범위 수신부(27) 와, 포트 폭 수신부(28)와, 응답 패킷 송신부(29)와, 검출용 포트 정보 수신부(81)과, 범위 검출부(82)와, 범위 송신부(83)와, 포트 폭 검출용 포트 정보 수신부(84)와, 포트 폭 검출부(85)와, 포트 폭 송신부(86)를 구비한다. 여기에서, 제2 정보 처리 장치(20)에서의 통신부(21)로부터 포트 폭 송신부(86)까지의 각 부는, 제1 정보 처리 장치(10) 및 제1 통신 제어 장치(3)와 제2 정보 처리 장치(20) 및 제2 통신 제어 장치(4)가 전환된다는 이외에는, 제1 정보 처리 장치(10)에서의 통신부(11)로부터 포트 폭 송신부(76)까지의 구성과 동일하여 그 설명을 생략한다.
또한, 제2 정보 처리 장치(20)에서의 버블 패킷 송신부(22)로부터 버블 패킷 송신 대상 포트 수신부(26)까지 및 검출용 포트 정보 수신부(81)로부터 포트 폭 송신부(86)까지는, 제2 정보 처리 장치(20)가 송신측으로서 동작하는 경우에 이용된다. 한편, 범위 수신부(27)로부터 응답 패킷 송신부(29)까지는, 제2 정보 처리 장치(20)가 수신측으로서 동작하는 경우에 이용된다.
도 20은 본 실시예에 따른 제1 서버(60)의 구성을 나타낸 블록도이다. 도 20에 있어서 제1 서버(60)는, 통신부(61)와, 정보 송수신부(62)와, 특성 판단부(63)와, 송수신 결정부(64)와, 버블 패킷 송신 대상 포트 송신부(65)와, 검출용 포트 검출부(91)와, 검출용 포트 정보 송신부(92)와, 포트 폭 검출용 포트 검출부(93)와, 포트 폭 검출용 포트 정보 송신부(94)를 구비한다. 또한, 검출용 포트 검출부(91), 검출용 포트 정보 송신부(92), 포트 폭 검출용 포트 검출부(93), 포트 폭 검출용 포트 정보 송신부(94) 이외의 구성 및 동작은, 제1 실시예와 동일하여 그 설명을 생략한다.
검출용 포트 검출부(91)는, 송신측 정보 처리 장치로부터 송신된 범위 검출용 패킷을 수신하고, 그 범위 검출용 패킷에 기초하여 범위 검출용 패킷이 통과한 송신측 통신 제어 장치의 포트의 위치를 검출한다. 그 포트 위치의 검출은 범위 검출용 패킷에 포함되는(예를 들면 범위 검출용 패킷의 헤더에 포함되는) 범위 검출용 패킷이 통과한 송신측 통신 제어 장치의 포트 위치를 취득함으로써 행해진다. 또한, 범위 검출용 패킷은, 송신측 정보 처리 장치로부터 통신부(61)에 대하여 송신된 것이라도 무방하고, 혹은 제2 서버(7)의 통신부(71)에 송신된 것을 통신부(61)를 통해 받은 것이라도 무방하다. 후자의 경우, 제1 서버(60)와 제2 서버(7)에서는 IP 어드레스가 다른 것으로 한다.
검출용 포트 정보 송신부(92)는, 검출용 포트 검출부(91)가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 송신측 정보 처리 장치에 송신한다.
포트 폭 검출용 포트 검출부(93)는, 송신측 정보 처리 장치로부터 송신측 통신 제어 장치를 통해 송신된 포트 폭 검출용 패킷을 수신하고, 그 포트 폭 검출용 패킷에 기초하여 그 포트 폭 검출용 패킷이 통과한 송신측 통신 제어 장치의 포트 위치를 검출한다.
포트 폭 검출용 포트 정보 송신부(94)는, 포트 폭 검출용 포트 검출부(93)가 검출한, 포트 폭 검출용 패킷이 통과한 송신측 통신 제어 장치의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 송신측 정보 처리 장치에 송신한다.
다음으로, 본 실시예에 따른 통신 시스템의 동작에 대하여 설명한다. 또한, 본 실시예에 따른 통신 시스템의 동작은, 버블 패킷 송신 포트를 포함하는 포트의 범위의 검출이나 포트 폭의 검출을 제1 정보 처리 장치(10)와 제2 정보 처리 장치(20)에서 수행한다는 이외에는, 제1 실시예에서의 도 5에서 나타내는 동작과 동일하여 그 설명을 생략한다.
다음으로, 도 5의 흐름도에서의 단계 S102의 처리에 대하여 도 21 내지 도 23을 참조하여 설명한다. 도 21 내지 도 23은 송신측, 서버, 수신측 간에서의 정보의 교환이나 처리를 설명하기 위한 도면이다. 또한, 도 21 내지 도 23에서의 서버라는 것은, 제1 서버(60)와 제2 서버(7)의 양측을 가리키는 것이다. 또한, 설명의 편의를 위해, 제1 정보 처리 장치(10) 및 제1 통신 제어 장치(3)를 송신측이라고 하고, 제2 정보 처리 장치(20) 및 제2 통신 제어 장치(4)를 수신측이라고 한다. 또한, 단계 S301 내지 S303, S305 내지 S307, S310, S312, S313의 처리는, 제1 실시예에서의 도 10에 관한 설명과 동일하여 그 설명을 생략한다.
(단계 S401) 제1 서버(60)의 포트 폭 검출용 포트 검출부(93)는, 제1 정보 처리 장치(10)로부터 송신된 포트 폭 검출용 패킷을 수신한다. 그리고 포트 폭 검출용 포트 검출부(93)는, 포트 폭 검출용 패킷의 헤더에 포함되는, 그 포트 폭 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 검출한다.
(단계 S402) 포트 폭 검출용 포트 정보 송신부(94)는, 포트 폭 검출용 포트 검출부(93)에 의해 검출된, 포트 폭 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트 위치를 나타내는 정보인 포트 폭 검출용 포트 정보를 제1 정보 처리 장치(10)에 송신한다. 그 포트 폭 검출용 포트 정보는, 제1 정보 처리 장치(10)에서의 포트 폭 검출용 포트 정보 수신부(74)에서 수신된다.
(단계 S403) 포트 폭 검출부(75)는, 포트 폭 검출용 포트 정보 수신부(74)에서 수신된 포트 폭 검출용 포트 정보에 기초하여, 제1 통신 제어 장치(3)의 포트 폭을 검출한다. 또한, 이 포트 폭의 검출은, 제1 실시예와 동일하게 수행되는 것으로서 그 설명을 생략한다.
(단계 S404) 제1 서버(60)의 검출용 포트 검출부(91)는, 제1 정보 처리 장치(10)로부터 송신된 범위 검출용 패킷을 수신한다. 그리고 검출용 포트 검출부(91)는, 범위 검출용 패킷의 헤더에 포함되는, 그 포트 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 검출한다.
(단계 S405) 검출용 포트 정보 송신부(92)는, 검출용 포트 검출부(91)에 의해 검출된, 범위 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 나타내는 검출용 포트 정보를 제1 정보 처리 장치(10)에 송신한다. 그 검출용 포트 정보는, 제1 정보 처리 장치(10)에서의 검출용 포트 정보 수신부(71)에서 수신된다.
(단계 S406) 제1 서버(60)의 검출용 포트 검출부(91)는, 제1 정보 처리 장치(10)로부터 송신된 범위 검출용 패킷을 수신한다. 그리고 검출용 포트 검출부(91)는, 범위 검출용 패킷의 헤더에 포함되는, 그 포트 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트 위치를 검출한다.
(단계 S407) 검출용 포트 정보 송신부(92)는, 검출용 포트 검출부(91)에 의해 검출된, 범위 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 나타내는 검출용 포트 정보를 제1 정보 처리 장치(10)에 송신한다. 그 검출용 포트 정보는, 제1 정보 처리 장치(10)에서의 검출용 포트 정보 수신부(71)에서 수신된다.
(단계 S408) 제1 정보 처리 장치(10)의 범위 검출부(72)는, 단계 S305 및 S307에서 송신한 범위 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를, 검출용 포트 정보 수신부(71)가 수신한 검출용 포트 정보로부터 취득하고, 그 2개의 포트의 위치를 양단으로 하는 포트의 범위를 검출한다.
(단계 S409) 제1 정보 처리 장치(10)의 범위 송신부(73)는, 단계 S408에서 검출된 포트의 범위를 나타내는 정보인 범위 정보를, 그 범위 정보를 제2 정보 처리 장치(20)에 송신하는 취지의 지시와 함께 제1 서버(60)에 송신한다.
(단계 S410) 제1 서버(60)의 통신부(61)는 범위 정보를 수신하고, 그 범위 정보를 제2 정보 처리 장치(20)에 송신한다. 그 범위 정보는 제2 정보 처리 장치(20)의 범위 수신부(27)에서 수신된다.
(단계 S411) 포트 폭 송신부(76)는, 단계 S403에서 검출된 제1 통신 제어 장치(3)의 포트 폭을 나타내는 포트 폭 정보를, 그 포트 폭 정보를 제2 정보 처리 장치(20)에 송신하는 취지의 지시와 함께 제1 서버(60)에 송신한다.
(단계 S412) 제1 서버(60)의 통신부(61)는 포트 폭 정보를 수신하고, 그 포트 폭 정보를 제2 정보 처리 장치(20)에 송신한다. 그 범위 정보는 제2 정보 처리 장치(20)의 포트 폭 수신부(28)에서 수신된다.
또한, 도 21 내지 도 23에 있어서, 도 10과 마찬가지로 처리의 순서에 관하여 어느 정도의 임의성이 있다. 예를 들면 송신측의 어드레스 송신(단계 S310)은, 수신측의 어드레스 송신(단계 S301)과 같은 타이밍으로 수행해도 무방하다. 특히, 도 22에 있어서, 범위 검출용 패킷의 송신과 버블 패킷의 송신(단계 S305 내지 S307)은, 검출용 포트 정보의 수신을 기다리지 않고 수행해도 무방하다. 다만, 검출용 포트 정보의 수신이 행해지고 나서 범위 검출(단계 S408)이 행해지게 된다.
또한, 본 실시예에서의 통신 시스템의 동작의 구체예에 대해서는, 송신측 통신 제어 장치에서의 포트 폭의 검출을 송신측 정보 처리 장치로 행하고, 버블 패킷 송신 포트를 포함하는 포트의 범위의 검출을 송신측 정보 처리 장치로 행하고, 그것에 부수되어 행해지는 처리(예를 들면, 범위 정보의 제1 정보 처리 장치(10)로부터 제2 정보 처리 장치(20)까지의 송신 등)를 행한다는 이외에는, 제1 실시예에서의 구체예와 동일하여 그 설명을 생략한다.
이상으로부터 본 실시예에 따른 통신 시스템에서는, 제1 실시예와 동일한 효과에 부가하여, 제1 통신 제어 장치(3), 혹은 제2 통신 제어 장치(4)에서의 포트 폭의 검출이나, 버블 패킷 송신 포트를 포함하는 포트의 범위의 검출 등을 제1 정보 처리 장치(10) 혹은 제2 정보 처리 장치(20)에서 수행함으로써, 제1 서버(60)에서의 처리 부담을 경감할 수 있다. 특히, 수신 대기가 필요한 처리(예를 들면, 1회째의 범위 검출용 패킷이 송신된 후에, 2회째의 범위 검출용 패킷이 송신되는 것을 기다리는 처리 등)는 처리 부담이 크기 때문에, 그와 같은 수신 대기가 필요한 처리를 서버에서 수행하지 않음으로써, 제1 서버(60)에서의 처리 부담이 대폭 경감된다.
또한, 본 실시예에서는, 통신 제어 장치의 포트 폭의 검출, 버블 패킷 송신 포트를 포함하는 포트의 범위 검출을 정보 처리 장치에서 행하는 경우에 대하여 설명하였으나, 그 어느 한 측의 처리를 제1 실시예와 마찬가지로, 서버에서 수행하도록 해도 무방하다.
또한, 본 실시예에서는, 통신 제어 장치의 특성 판단을 서버에서 행하는 경우에 대하여 설명했으나, 통신 제어 장치의 특성 판단을 정보 처리 장치에서 행하도록 해도 무방하다. 이 경우에도, 정보 처리 장치로부터 송신한 패킷이 통과한 통신 제어 장치의 포트의 위치를 나타내는 정보를 서버로부터 정보 처리 장치에 송신함으로써, 정보 처리 장치에 있어서 통신 제어 장치의 특성 판단을 제1 실시예와 동일하게 행할 수 있다.
(제3 실시예)
본 발명의 제3 실시예에 따른 통신 시스템에 대해 도면을 참조하여 설명한다. 본 실시예에 따른 통신 시스템은, 한 측의 정보 처리 장치가 통신 제어 장치를 통하지 않고 직접 통신을 수행하는 것이다.
도 24는 본 실시예에 따른 통신 시스템의 구성을 나타낸 블록도이다. 도 24에 있어서 본 실시예에 따른 통신 시스템은, 제1 정보 처리 장치(1)와, 제2 정보 처리 장치(2)와, 제1 통신 제어 장치(3)와, 제1 서버(6)와, 제2 서버(7)를 구비한다. 또한, 도 24에서 나타내는 본 실시예에 따른 통신 시스템은, 제2 통신 제어 장치를 구비하지 않는다는 이외에는, 제1 실시예에 따른 통신 시스템과 동일한 것이다. 또한, 제1 정보 처리 장치(1), 제2 정보 처리 장치(2), 제1 서버(6), 제2 서버(7)의 구성 및 동작은, 제1 실시예와 동일하여 그 설명을 생략한다.
여기에서 제2 정보 처리 장치(2)는 통신 제어 장치를 통하지 않고 통신을 수행하는 것이기 때문에, 제2 정보 처리 장치(2)는 마치 Full Cone NAT의 통신 제어 장치를 통해 통신을 수행하고 있는 것과 같이 판단된다. 따라서 본 실시예에서의 동작은, 제1 실시예에서 제2 통신 제어 장치(4)가 Full Cone NAT인 경우와 동일한 처리가 되어, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 간의 통신을 확립할 수 있다.
이상과 같이 본 실시예에 따른 통신 시스템에 의하면, 제2 정보 처리 장치(2)가 통신 제어 장치를 통하지 않고 통신을 행하는 경우라도, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 간의 통신을 확립할 수 있다.
또한, 본 실시예에서는, 제1 실시예의 통신 시스템에 있어서 제2 통신 제어 장치를 구비하지 않는 구성에 대하여 설명했으나, 제2 실시예의 통신 시스템에 있어서 제2 통신 제어 장치를 구비하지 않는 구성이라도 무방하다. 이러한 제2 정보 처리 장치가 통신 제어 장치를 통하지 않는 경우라도, 제1 정보 처리 장치와 제2 정보 처리 장치 간의 통신을 확립할 수 있다.
또한, 본 실시예에서는, 제2 정보 처리 장치(2)가 통신 제어 장치를 통하지 않고 통신을 행하는 경우에 대하여 설명했으나, 제2 정보 처리 장치(2)는 통신 제어 장치를 통하여 통신을 행하고 제1 정보 처리 장치(1)가 통신 제어 장치를 통하지 않고 통신을 행하는 경우라도, 마찬가지로 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 간의 통신을 확립할 수 있다.
또한, 상기 각 실시예에서의 설명에서는, 정보 처리 장치 및 통신 제어 장치 의 송신측 및 수신측을 결정할 때에, 먼저 일측의 정보 처리 장치 등을 송신측으로 잠정적으로 결정하고 나서, 통신 제어 장치의 특성에 따라 그것을 전환하는 경우에 대하여 설명했으나, 정보 처리 장치로부터 다른 정보 처리 장치와 통신을 확립하고자 하는 통보를 제1 서버(6) 등이 받았을 때에, 제1 통신 제어 장치(3) 및 제2 통신 제어 장치(4)의 특성을 판단하고, 그 판단 결과에 따라 송신측의 정보 처리 장치나 수신측의 정보 처리 장치 등의 결정을 행하도록 하여도 무방하다(이 경우에는, 「송수신의 전환」라는 개념은 없는 것이 됨).
(제4 실시예)
본 발명의 제4 실시예에 따른 통신 시스템에 대하여, 도면을 참조하여 설명한다. 본 실시예에 따른 통신 시스템은 1 이상의 버블 패킷을 송신한다.
도 25는 본 실시예에 따른 통신 시스템의 구성을 나타낸 블록도이다. 도 25에 있어서 본 실시예에 따른 통신 시스템은, 제1 정보 처리 장치(30)와, 제2 정보 처리 장치(40)와, 제1 통신 제어 장치(3)와, 제2 통신 제어 장치(4)와, 서버(50)를 구비한다. 제1 통신 제어 장치(3), 제2 통신 제어 장치(4)는 제1 실시예와 동일하여 그 설명을 생략한다.
도 26은 본 실시예에 따른 제1 정보 처리 장치(30)의 구성을 나타낸 블록도이다. 도 26에 있어서 제1 정보 처리 장치(30)는, 통신부(11)와, 버블 패킷 송신부(12)와, 범위 검출용 패킷 송신부(13)와, 응답 패킷 수신부(14)와, 포트 폭 검출용 패킷 송신부(15)와, 버블 패킷 송신 대상 포트 수신부(16)와, 범위 수신부(17)와, 포트 폭 수신부(18)와, 응답 패킷 송신부(19)와, 검출용 포트 정보 수신부(71) 와, 범위 검출부(72)와, 범위 송신부(73)와, 포트 폭 검출용 포트 정보 수신부(74)와, 포트 폭 검출부(75)와, 포트 폭 송신부(76)와, 포트 할당 패킷 송신부(31)와, 버블 패킷 송신 대상 포트 송신부(32)와, 특성 판단부(33)와, 특성 송신부(34)를 구비한다. 또한, 포트 할당 패킷 송신부(31), 버블 패킷 송신 대상 포트 송신부(32), 특성 판단부(33), 특성 송신부(34) 이외의 구성 및 동작은, 버블 패킷 송신부(12)가 1 이상의 버블 패킷을 송신하고, 검출용 포트 정보 수신부(71) 및 범위 검출부(72)가, 버블 패킷 송신 포트에 관한 범위의 검출의 처리와 함께 후술하는 포트 할당 패킷 송신부(31)가 송신한 포트 할당 패킷에 관한 범위의 검출의 처리도 행한다는 이외에는, 제2 실시예와 동일하여 그 설명을 생략한다.
포트 할당 패킷 송신부(31)는, 응답 패킷을 송신하기 위한 포트를 제1 통신 제어 장치(3)에 대해서 할당하기 위한 포트 할당 패킷을 송신한다. 이 포트 할당 패킷은 제2 통신 제어 장치(4)에 대하여 송신된다. 포트 할당 패킷이 송신되는 제2 통신 제어 장치(4)에서의 포트는 임의이다. 예를 들면 제2 정보 처리 장치(40)가 서버(50)와의 통신에서 이용되는 제2 통신 제어 장치(4)의 포트에 대하여 포트 할당 패킷이 송신된다. 또한, 응답 패킷 송신부(19)는 응답 패킷을 송신하는 경우에, 이 포트 할당 패킷 송신부(31)가 포트 할당 패킷을 송신한 제1 정보 처리 장치(30)의 포트로부터 응답 패킷을 송신하는 것으로 한다.
버블 패킷 송신 대상 포트 송신부(32)는, 범위 검출부(72)에 의해 검출된, 포트 할당 패킷 송신부(31)가 통과한 제1 통신 제어 장치(3)의 포트 (「포트 할당 패킷 송신 포트」라고 함)를 포함하는 1 이상의 포트의 범위를 버블 패킷 송신 대 상 포트 정보로서 서버(50)를 통해 제2 정보 처리 장치(40)에 송신한다.
특성 판단부(33)는 제1 통신 제어 장치(3)의 특성을 판단한다. 구체적으로는 특성 판단용 패킷을 서버(50)에 송신하고, 그 특성 판단용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 나타내는 정보인 특성 판단용 패킷 정보를 수신함으로써, 제1 통신 제어 장치(3)의 특성을 판단한다.
특성 송신부(34)는, 특성 판단부(33)가 판단한 제1 통신 제어 장치(3)의 특성을 나타내는 정보인 특성 정보를 서버(50)를 통해 제2 정보 처리 장치(40)에 송신한다.
또한, 본 실시예에서는, 제1 정보 처리 장치(30)에서의 버블 패킷 송신부(12)로부터 버블 패킷 송신 대상 포트 수신부(16)까지 및 검출용 포트 정보 수신부(71)로부터 포트 폭 송신부(76)까지는, 제1 정보 처리 장치(30)가 송신측으로서 동작하는 경우에 이용된다. 한편, 범위 수신부(17)로부터 응답 패킷 송신부(19)까지, 범위 검출용 패킷 송신부(13), 포트 할당 패킷 송신부(31), 버블 패킷 송신 대상 포트 송신부(32) 및 검출용 포트 정보 수신부(71)로부터 포트 폭 송신부(76)까지는, 제1 정보 처리 장치(30)가 수신측으로서 동작하는 경우에 이용된다. 즉, 범위 검출용 패킷 송신부(13) 및 검출용 포트 정보 수신부(71)로부터 포트 폭 송신부(76)까지는, 제1 정보 처리 장치(30)가 송신측으로서 동작하는 경우 및 수신측으로서 동작하는 경우에도 이용된다. 본 실시예에서는 범위 검출용 패킷 송신부(13) 및 검출용 포트 정보 수신부(71)로부터 포트 폭 송신부(76)까지의 각 구성을, 제1 정보 처리 장치(30)가 송신측으로서 동작하는 경우 및 수신측으로서 동작하는 경우 의 양자에서 이용하는 형태에 대하여 설명하고 있으나, 그들의 각 구성 중 1 이상의 구성에 대하여 제1 정보 처리 장치(30)가 송신측으로서 동작하는 경우 및 수신측으로서 동작하는 경우의 각각에 대하여 제각기 구비하도록 하여도 무방하다.
도 27은 본 실시예에 따른 제2 정보 처리 장치(40)의 구성을 나타낸 블록도이다. 도 27에 있어서 제2 정보 처리 장치(40)는, 통신부(21)와, 버블 패킷 송신부(22)와, 범위 검출용 패킷 송신부(23)와, 응답 패킷 수신부(24)와, 포트 폭 검출용 패킷 송신부(25)와, 버블 패킷 송신 대상 포트 수신부(26)와, 범위 수신부(27)와, 포트 폭 수신부(28)와, 응답 패킷 송신부(29)와, 검출용 포트 정보 수신부(81)와, 범위 검출부(82)와, 범위 송신부(83)와, 포트 폭 검출용 포트 정보 수신부(84)와, 포트 폭 검출부(85)와, 포트 폭 송신부(86)와, 포트 할당 패킷 송신부(41)와, 버블 패킷 송신 대상 포트 송신부(42)와, 특성 판단부(43)와, 특성 송신부(44)를 구비한다. 여기에서 제2 정보 처리 장치(40)에서의 통신부(21)로부터 포트 폭 송신부(86)까지의 각 부는, 제1 정보 처리 장치(30), 제1 통신 제어 장치(3)와, 제2 정보 처리 장치(40), 제2 통신 제어 장치(4)가 전환된다는 이외에는, 제1 정보 처리 장치(30)에서의 통신부(11)로부터 포트 폭 송신부(76)까지의 구성과 동일하여 그 설명을 생략한다.
또한, 본 실시예에서는, 제2 정보 처리 장치(40)에서의 버블 패킷 송신부(22)로부터 버블 패킷 송신 대상 포트 수신부(26)까지 및 검출용 포트 정보 수신부(81)로부터 포트 폭 송신부(86)까지는, 제2 정보 처리 장치(40)가 송신측으로서 동작하는 경우에 이용된다. 한편, 범위 수신부(27)로부터 응답 패킷 송신부(29)까 지, 범위 검출용 패킷 송신부(23), 포트 할당 패킷 송신부(41), 버블 패킷 송신 대상 포트 송신부(42) 및 검출용 포트 정보 수신부(81)로부터 포트 폭 송신부(86)까지는, 제2 정보 처리 장치(40)가 수신측으로서 동작하는 경우에 이용된다. 즉, 범위 검출용 패킷 송신부(23) 및 검출용 포트 정보 수신부(81)로부터 포트 폭 송신부(86)까지는, 제2 정보 처리 장치(40)가 송신측으로서 동작하는 경우 및 수신측으로서 동작하는 경우에도 이용된다. 본 실시예에서는 범위 검출용 패킷 송신부(23) 및 검출용 포트 정보 수신부(81)로부터 포트 폭 송신부(86)까지의 각 구성을, 제2 정보 처리 장치(40)가 송신측으로서 동작하는 경우 및 수신측으로서 동작하는 경우의 양자에 있어서 이용하는 형태에 대하여 설명하나, 그들의 각 구성 중, 1 이상의 구성에 대하여 제2 정보 처리 장치(40)가 송신측으로서 동작하는 경우 및 수신측으로서 동작하는 경우의 각각에 대하여 제각기 구비하도록 하여도 무방하다.
도 28은 본 실시예에 따른 서버(50)의 구성을 나타낸 블록도이다. 도 28에 있어서 서버(50)는, 통신부(61)와, 정보 송수신부(62)와, 버블 패킷 송신 대상 포트 송신부(65)와, 검출용 포트 검출부(91)와, 검출용 포트 정보 송신부(92)와, 포트 폭 검출용 포트 검출부(93)와, 포트 폭 검출용 포트 정보 송신부(94)와, 특성 판단용 포트 검출부(95)와, 특성 판단용 포트 정보 송신부(96)와, 버블 패킷 송신 대상 포트 수신부(97)를 구비한다. 또한, 서버(50)에서의 특성 판단용 포트 검출부(95), 특성 판단용 포트 정보 송신부(96), 버블 패킷 송신 대상 포트 수신부(97) 이외의 구성 및 동작은, 검출용 포트 검출부(91), 검출용 포트 정보 송신부(92), 포트 폭 검출용 포트 검출부(93), 포트 폭 검출용 포트 정보 송신부(94)가 송신측 의 정보 처리 장치, 수신측의 정보 처리 장치의 양측에 대하여 처리를 행한다는 이외에는 제2 실시예와 동일하여 그 설명을 생략한다. 여기에서 본 실시예에 따른 버블 패킷 송신 대상 포트 송신부(65)는, 버블 패킷 송신 대상 포트 수신부(97)가 수신한 버블 패킷 대상 포트 정보를 송신하는 것이다.
특성 판단용 포트 검출부(95)는, 제1 정보 처리 장치(30) 혹은 제2 정보 처리 장치(40)로부터 송신된 특성 판단용 패킷을 수신하고, 그 특성 판단용 패킷에 기초하여 특성 판단용 패킷이 통과한 제1 통신 제어 장치(3) 혹은 제2 통신 제어 장치(4)의 포트의 위치를 검출한다. 그 포트 위치의 검출은, 특성 판단용 패킷에 포함되는(예를 들면 특성 판단용 패킷의 헤더에 포함되는) 특성 판단용 패킷이 통과한 제1 통신 제어 장치(3) 혹은 제2 통신 제어 장치(4)의 포트의 위치를 취득함으로써 행해진다.
특성 판단용 포트 정보 송신부(96)는, 특성 판단용 포트 검출부(95)가 검출한 포트의 위치를 나타내는 특성 판단용 포트 정보를, 특성 판단용 패킷을 송신한 정보 처리 장치에 송신한다.
버블 패킷 송신 대상 포트 수신부(97)는, 버블 패킷 송신 대상 포트를 나타내는 정보인 버블 패킷 송신 대상 포트 정보를 수신한다. 이 버블 패킷 송신 대상 포트 정보에 의해 나타내지는 버블 패킷 송신 대상 포트는 1 이상의 포트이다.
다음으로, 본 실시예에 따른 통신 시스템의 동작에 대하여 설명한다. 또한, 본 실시예에 따른 통신 시스템의 동작은, 제1 실시예에서의 도 5에서 나타낸 동작과 동일하여 그 설명을 생략한다.
다음으로, 도 5의 흐름도에서의 단계 S101의 처리에 대하여, 도 29를 참조하여 설명한다. 도 29는 정보 처리 장치의 송신측 및 수신측을 결정하는 처리에 대하여 나타내는 흐름도이다. 여기에서 이 흐름도의 설명에서는, 제2 정보 처리 장치(40)로부터 제1 정보 처리 장치(30)에 대하여 통신을 수행하려는 것으로 한다. 따라서 제1 정보 처리 장치(30) 및 제1 통신 제어 장치(3)가 착호측의 장치가 되고, 제2 정보 처리 장치(40) 및 제2 통신 제어 장치(4)가 발호측의 장치가 된다. 또한, 제1 정보 처리 장치(30)로부터 제2 정보 처리 장치(40)에 대하여 통신을 행한다고 한 경우에는, 제1 정보 처리 장치(30) 및 제1 통신 제어 장치(3)와, 제2 정보 처리 장치(40) 및 제2 통신 제어 장치(4)가 전환된다는 이외에는, 이하의 흐름도의 설명과 동일하다. 또한, 발호측이라는 것은, 상대방의 장치와의 통신을 요구하는 측을 말하고, 착호측이라는 것은, 발호측의 장치로부터 통신의 요구를 받는 측을 말하는 것이다.
(단계 S501) 제2 정보 처리 장치(40)의 특성 판단부(43)는, 발호측의 통신 제어 장치인 제2 통신 제어 장치(4)의 특성을 판단한다. 특성의 판단 방법에 대해서는 후술한다.
(단계 S502) 특성 판단부(43)는 제2 통신 제어 장치(4)가 PS NAT를 이용하고 있는지 아닌지 판단한다. 그리고 PS NAT를 이용하고 있는 경우에는, 특성 송신부(44)가, 제2 통신 제어 장치(4)가 PS NAT를 이용하고 있는 통보의 특성 정보를 서버(50)를 통해 제1 정보 처리 장치(30)에 송신하여 단계 S504로 진행되고, 그렇지 않은 경우에는 단계 S503로 진행된다.
(단계 S503) 특성 판단부(43)는 발호측의 장치, 즉 제2 정보 처리 장치(40)를 수신측의 장치, 즉 버블 패킷을 수신하는 측의 장치로 결정한다. 그리고 송수신의 결정의 처리는 종료가 된다.
(단계 S504) 제1 정보 처리 장치(30)의 특성 판단부(33)는, 착호측의 통신 제어 장치인 제1 통신 제어 장치(3)의 특성을 판단한다. 특성의 판단 방법에 대해서는 후술한다.
(단계 S505) 특성 판단부(33)는 제1 통신 제어 장치(3)가 PS NAT를 이용하고 있는지 아닌지 판단한다. 그리고 PS NAT를 이용하고 있는 경우에는 송신측, 수신측의 쌍방이 PS NAT를 이용하고 있는 것이 되어 에러가 된다. 한편, PS NAT를 이용하고 있지 않은 경우에는 단계 S506으로 진행된다.
(단계 S506) 특성 판단부(33)는 착호측의 장치, 즉 제1 정보 처리 장치(30)를 수신측의 장치, 즉 버블 패킷을 수신하는 측의 장치로 결정한다. 그리고 송수신 결정의 처리는 종료가 된다.
다음으로, 도 30을 참조하여 제1 통신 제어 장치(3)의 특성의 판단 방법에 대하여 설명한다. 또한, 제2 통신 제어 장치(4)의 특성도, 동일하게 하여 판단할 수 있다.
도 30에 있어서 제1 정보 처리 장치(30)의 특성 판단부(33)는, 2개의 특성 판단용 패킷을 동일한 포트 P100으로부터, 각각 서버(50)의 포트 P300과 포트 P301로 송신한다. 여기에서 포트 P300과 포트 P301은 다른 포트이다. 서버(50)의 특성 판단용 포트 검출부(95)는, 포트 P300 및 P301에 송신된 각 특성 판단용 패킷이 통 과한 제1 통신 제어 장치(3)의 포트의 위치(P200, P201)를 검출한다. 그리고 그 포트의 위치를 나타내는 정보인 특성 판단용 포트 정보가 특성 판단용 포트 정보 송신부(96)로부터 제1 정보 처리 장치(30)로 송신된다. 특성 판단부(33)는, 그 특성 판단용 포트 정보를 수신하고, 포트 P200과 포트 P201이 동일한지 아닌지에 의해 제1 통신 제어 장치(3)의 특성을 판단한다. 구체적으로는 포트 P200이 포트 P201과 동일한 경우에는, 제1 통신 제어 장치(3)가 PS NAT를 이용하고 있지 않다고 판단한다. 한편 포트 P200과 포트 P201이 다른 경우에는 제1 통신 제어 장치(3)가 PS NAT를 이용하고 있다고 판단한다.
다음으로, 도 5의 흐름도에서의 단계 S102의 처리에 대하여, 도 31 내지 도 33을 참조하여 설명한다. 도 31 내지 도 33은 통신의 확립에 관한, 송신측의 정보 처리 장치, 서버, 수신측의 정보 처리 장치 간에서의 정보의 교환이나 처리를 설명하기 위한 도면이다. 또한, 설명의 편의를 위해, 제1 정보 처리 장치(30) 및 제1 통신 제어 장치(3)가 송신측이라고 하고, 제2 정보 처리 장치(40) 및 제2 통신 제어 장치(4)가 수신측이라고 한다.
(단계 S601) 서버(50)에서의 정보 송수신부(62)는, 제1 통신 제어 장치(3)의 IP 어드레스를 나타내는 어드레스 정보를 제2 정보 처리 장치(40)로 송신한다. 그 송신된 어드레스 정보는 제2 정보 처리 장치(40)의 통신부(21)에서 수신되고, 포트 할당 패킷 송신부(41)로 전달된다.
(단계 S602) 제2 정보 처리 장치(40)에서의 포트 폭 검출용 패킷 송신부(25)는 포트 폭 검출용 패킷을 서버(50)에 송신한다. 여기에서 이 송신에서는, 다수의 포트 폭 검출용 패킷이 통과하는 제2 통신 제어 장치(4)의 포트를 각각 다르게 한다. 이 포트 폭 검출용 패킷은, 예를 들면 제2 정보 처리 장치(40)에서의 포트 번호가 각각 다른 다수의 포트로부터 송신된다.
(단계 S603) 서버(50)의 포트 폭 검출용 포트 검출부(93)는, 제2 정보 처리 장치(40)로부터 송신된 포트 폭 검출용 패킷을 수신한다. 그리고 포트 폭 검출용 포트 검출부(93)는, 포트 폭 검출용 패킷의 헤더에 포함되는, 그 포트 폭 검출용 패킷이 통과한 제2 통신 제어 장치(4)의 포트의 위치를 검출한다.
(단계 S604) 포트 폭 검출용 포트 정보 송신부(94)는, 포트 폭 검출용 포트 검출부(93)에 의해 검출된, 포트 폭 검출용 패킷이 통과한 제2 통신 제어 장치(4)의 포트의 위치를 나타내는 정보인 포트 폭 검출용 포트 정보를 제2 정보 처리 장치(40)에 송신한다. 그 포트 폭 검출용 포트 정보는, 제2 정보 처리 장치(40)에서의 포트 폭 검출용 포트 정보 수신부(84)에서 수신된다.
(단계 S605) 포트 폭 검출부(85)는, 포트 폭 검출용 포트 정보 수신부(84)에서 수신된 포트 폭 검출용 포트 정보에 기초하여 제2 통신 제어 장치(4)의 포트 폭을 검출한다. 또한, 이 포트 폭의 검출은, 제1 실시예와 동일하게 행해지는 것으로서 그 설명을 생략한다.
(단계 S606) 범위 검출용 패킷 송신부(23)는, 범위 검출용 패킷을 제2 통신 제어 장치(4)를 통해 서버(50)에 송신한다. 이 송신에 있어서, 범위 검출용 패킷이 제2 통신 제어 장치(4)에서 최신으로 할당되는 포트를 통과하도록 패킷의 송신을 수행하는 것으로 한다. 이는 버블 패킷 송신 포트를 포함하는 포트의 범위를 적절 히 한정할 수 있도록 하기 위해서이다. 예를 들면 범위 검출용 패킷 송신부(23)는, 통신에서 그때까지 이용하지 않은 제2 정보 처리 장치(40)의 포트를 이용하여 범위 검출용 패킷을 송신한다.
(단계 S607) 서버(50)의 검출용 포트 검출부(91)는, 제2 정보 처리 장치(40)로부터 송신된 범위 검출용 패킷을 수신한다. 그리고 검출용 포트 검출부(91)는 범위 검출용 패킷의 헤더에 포함되는, 그 포트 검출용 패킷이 통과한 제2 통신 제어 장치(4)의 포트의 위치를 검출한다.
(단계 S608) 검출용 포트 정보 송신부(92)는, 검출용 포트 검출부(91)에 의해 검출된, 범위 검출용 패킷이 통과한 제2 통신 제어 장치(4)의 포트의 위치를 나타내는 검출용 포트 정보를 제2 정보 처리 장치(40)에 송신한다. 그 검출용 포트 정보는, 제2 정보 처리 장치(40)의 검출용 포트 정보 수신부(81)에서 수신된다.
(단계 S609) 포트 할당 패킷 송신부(41)는, 포트 할당 패킷을 제1 통신 제어 장치(3)에 송신한다. 제1 통신 제어 장치(3)의 어드레스는 단계 S601에서 송신된 것을 이용한다.
(단계 S610) 범위 검출용 패킷 송신부(23)는, 범위 검출용 패킷을 제2 통신 제어 장치(4)를 통해 서버(50)에 송신한다.
(단계 S611) 서버(50)의 검출용 포트 검출부(91)는, 제2 정보 처리 장치(40)로부터 송신된 범위 검출용 패킷을 수신한다. 그리고 검출용 포트 검출부(91)는, 범위 검출용 패킷의 헤더에 포함되는, 그 포트 검출용 패킷이 통과한 제2 통신 제어 장치(4)의 포트의 위치를 검출한다.
(단계 S612) 검출용 포트 정보 송신부(92)는, 검출용 포트 검출부(91)에 의해 검출된, 범위 검출용 패킷이 통과한 제2 통신 제어 장치(4)의 포트의 위치를 나타내는 검출용 포트 정보를 제2 정보 처리 장치(40)에 송신한다. 그 검출용 포트 정보는 제2 정보 처리 장치(40)에서의 검출용 포트 정보 수신부(81)에서 수신된다.
(단계 S613) 제2 정보 처리 장치(40)의 범위 검출부(82)는, 단계 S606, S610에서 송신한 범위 검출용 패킷이 통과한 제2 통신 제어 장치(4)의 포트의 위치를 검출용 포트 정보 수신부(81)가 수신한 검출용 포트 정보로부터 취득하고, 그 2개의 포트의 위치에 기초하여 포트 할당 패킷 송신 포트를 포함하는 포트의 범위(버블 패킷 송신 대상 포트)를 검출한다. 또한, 이 버블 패킷 송신 대상 포트는 1개의 포트인 경우도 있고 혹은 2 이상의 포트를 포함하는 경우도 있다.
(단계 S614) 제2 정보 처리 장치(40)의 포트 폭 송신부(86)는, 단계 S605에서 검출된 제2 통신 제어 장치(4)의 포트 폭을 나타내는 정보인 포트 폭 정보를, 그 포트 폭 정보를 제1 정보 처리 장치(30)에 송신하는 취지의 지시와 함께 서버(50)에 송신한다. 또한, 제2 정보 처리 장치(40)의 버블 패킷 송신 대상 포트 송신부(42)는, 단계 S613에서 검출된 버블 패킷 송신 대상 포트를 나타내는 버블 패킷 송신 대상 포트 정보를, 그 버블 패킷 송신 대상 포트 정보를 제1 정보 처리 장치(30)에 송신하는 취지의 지시와 함께 서버(50)에 송신한다. 이들 정보는 동일한 패킷으로 송신되어도 무방하고, 혹은 별개의 패킷으로 송신되어도 무방하다.
(단계 S615) 서버(50)의 통신부(61)는, 포트 폭 정보와 버블 패킷 송신 대상 포트 정보를 수신하고, 그들 정보를 제1 정보 처리 장치(30)에 송신한다. 버블 패 킷 송신 대상 포트는, 버블 패킷 송신 대상 포트 수신부(97)에서 수신되고, 버블 패킷 송신 대상 포트 송신부(65)에 의해 제1 정보 처리 장치(30)에 송신된다. 그 포트 폭 정보는 제1 정보 처리 장치(30)의 포트 폭 수신부(18)에서 수신되고, 버블 패킷 송신 대상 포트 정보는 버블 패킷 송신 대상 포트 수신부(16)에서 수신된다.
(단계 S616) 서버(50)에서의 정보 송수신부(62)는, 제2 통신 제어 장치(4)의 IP 어드레스를 나타내는 어드레스 정보를 제1 정보 처리 장치(30)에 송신한다. 그 송신된 어드레스 정보는, 제1 정보 처리 장치(30)의 통신부(11)에서 수신되고 버블 패킷 송신부(12)에 전달된다.
(단계 S617) 제1 정보 처리 장치(30)에서의 포트 폭 검출용 패킷 송신부(15)는, 포트 폭 검출용 패킷을 서버(50)에 송신한다. 여기에서 이 송신에서는, 다수의 포트 폭 검출용 패킷이 통과하는 제1 통신 제어 장치(3)의 포트가 각각 다르도록 한다. 이 포트 폭 검출용 패킷은, 예를 들면 제1 정보 처리 장치(30)에서의 포트 번호가 각기 다른 다수의 포트로부터 송신된다.
(단계 S618) 서버(50)의 포트 폭 검출용 포트 검출부(93)는, 제1 정보 처리 장치(30)로부터 송신된 포트 폭 검출용 패킷을 수신한다. 그리고 포트 폭 검출용 포트 검출부(93)는, 포트 폭 검출용 패킷의 헤더에 포함되는, 그 포트 폭 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 검출한다.
(단계 S619) 포트 폭 검출용 포트 정보 송신부(94)는, 포트 폭 검출용 포트 검출부(93)에 의해 검출된, 포트 폭 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 나타내는 정보인 포트 폭 검출용 포트 정보를 제1 정보 처리 장 치(30)에 송신한다. 그 포트 폭 검출용 포트 정보는, 제1 정보 처리 장치(30)에서의 포트 폭 검출용 포트 정보 수신부(74)에서 수신된다.
(단계 S620) 포트 폭 검출부(75)는, 포트 폭 검출용 포트 정보 수신부(74)에서 수신된 포트 폭 검출용 포트 정보에 기초하여 제1 통신 제어 장치(3)의 포트 폭을 검출한다. 또한, 이 포트 폭의 검출은, 제1 실시예와 동일하게 행해지는 것으로서 그 설명을 생략한다.
(단계 S621) 범위 검출용 패킷 송신부(13)는, 범위 검출용 패킷을 제1 통신 제어 장치(3)를 통해 서버(50)에 송신한다.
(단계 S622) 서버(50)의 검출용 포트 검출부(91)는, 제1 정보 처리 장치(30)로부터 송신된 범위 검출용 패킷을 수신한다. 그리고 검출용 포트 검출부(91)는, 범위 검출용 패킷의 헤더에 포함되는, 그 포트 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 검출한다.
(단계 S623) 검출용 포트 정보 송신부(92)는, 검출용 포트 검출부(91)에 의해 검출된, 범위 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 나타내는 검출용 포트 정보를 제1 정보 처리 장치(30)에 송신한다. 그 검출용 포트 정보는, 제1 정보 처리 장치(30)에서의 검출용 포트 정보 수신부(71)에서 수신된다.
(단계 S624) 버블 패킷 송신부(12)는, 단계 S616에서 송신된 어드레스 정보에 의해 나타내어진 제2 통신 제어 장치(4)의 IP 어드레스와, 단계 S614 및 S615에서 송신된 버블 패킷 송신 대상 포트 정보에 기초하여, 제2 통신 제어 장치(4)의 버블 패킷 송신 대상 포트에 버블 패킷을 송신한다. 버블 패킷 송신 대상 포트가 2 이상의 포트를 포함하는 경우에는, 버블 패킷 송신부(12)는 포트 폭 수신부(18)에서 수신된 포트 폭 정보가 나타내는 포트 폭마다 버블 패킷을 송신한다.
(단계 S625) 범위 검출용 패킷 송신부(13)는, 범위 검출용 패킷을 제1 통신 제어 장치(3)를 통해 서버(50)에 송신한다.
(단계 S626) 서버(50)의 검출용 포트 검출부(91)는, 제1 정보 처리 장치(30)로부터 송신된 범위 검출용 패킷을 수신한다. 그리고 검출용 포트 검출부(91)는, 범위 검출용 패킷의 헤더에 포함되는, 그 포트 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 검출한다.
(단계 S627) 검출용 포트 정보 송신부(92)는, 검출용 포트 검출부(91)에 의해 검출된, 범위 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를 나타내는 검출용 포트 정보를 제1 정보 처리 장치(30)에 송신한다. 그 검출용 포트 정보는, 제1 정보 처리 장치(30)의 검출용 포트 정보 수신부(71)에서 수신된다.
(단계 S628) 제1 정보 처리 장치(30)의 범위 검출부(72)는, 단계 S621 및 S625에서 송신한 범위 검출용 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 위치를, 검출용 포트 정보 수신부(71)가 수신한 검출용 포트 정보로부터 취득하고, 그 2개의 포트의 위치에 기초하여 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출한다. 또한, 이 포트의 범위는 1개의 포트인 경우도 있고 혹은 2 이상의 포트를 포함하는 경우도 있다.
(단계 S629) 제1 정보 처리 장치(30)의 범위 송신부(73)는, 단계 S628에서 검출된 포트의 범위를 나타내는 정보인 범위 정보를, 그 범위 정보를 제2 정보 처리 장치(40)에 송신하는 취지의 지시와 함께 서버(50)에 송신한다. 또한, 포트 폭 송신부(76)는, 단계 S620에서 검출된 제1 통신 제어 장치(3)의 포트 폭을 나타내는 정보인 포트 폭 정보를, 그 포트 폭 정보를 제2 정보 처리 장치(40)에 송신하는 취지의 지시와 함께 서버(50)에 송신한다. 이 범위 정보와 포트 폭 정보는 동일한 패킷으로 송신되어도 무방하고, 혹은 별개의 패킷으로 송신되어도 무방하다.
(단계 S630) 서버(50)의 통신부(61)는, 범위 정보와 포트 폭 정보를 수신하고, 그 범위 정보 등을 제2 정보 처리 장치(40)에 송신한다. 그 범위 정보는 제2 정보 처리 장치(40)의 범위 수신부(27)에서 수신된다. 포트 폭 정보는 포트 폭 수신부(28)에서 수신된다.
(단계 S631) 응답 패킷 송신부(29)는, 단계 S601에서 받은 어드레스 정보가 나타내는 IP 어드레스에 의해 특정되는 제1 통신 제어 장치(3)에 대하여 응답 패킷을 송신한다. 이 응답 패킷은 범위 수신부(27)로부터 받은 범위 정보가 나타내는 범위의 포트에 대하여, 포트 폭 정보가 나타내는 포트 폭마다 송신된다.
(단계 S632) 제1 정보 처리 장치(30)의 응답 패킷 수신부(14)는, 제2 정보 처리 장치(40)로부터 송신된 응답 패킷을 수신한다. 이 응답 패킷을 수신함으로써, 제1 정보 처리 장치(30)와, 제2 정보 처리 장치(40) 간의 통신이 확립된다. 그리고 이후, 제1 정보 처리 장치(30)와 제2 정보 처리 장치(40) 간에서, 서버(50)를 통하지 않는 정보의 송수신(예를 들면 터널 통신)이 행해진다.
또한, 도 31 내지 도 33에 있어서 포트 폭의 검출은, 포트 폭 정보의 송신보 다 이전에 행해지면 되고, 포트 폭의 검출의 직후에 포트 폭 정보가 수신측에 송신되어도 무방하다. 또한, 송신측의 어드레스의 송신(단계 S601)도, 예를 들면 검출용 포트 정보의 송신(단계 S608)과 동시에 송신해도 무방하다. 이와 같이, 도 31 내지 도 33에 있어서는, 처리의 순서에 관하여 어느 정도의 임의성이 있다. 또한, 도 32에 있어서, 범위 검출용 패킷의 송신과 포트 할당 패킷의 송신(단계 S606, S609, S610)이나, 범위 검출용 패킷의 송신과 버블 패킷의 송신(단계 S621, S624, S625)은, 검출용 포트 정보의 수신을 기다리지 않고 수행해도 무방하다.
다음으로, 본 실시예에 따른 통신 시스템의 동작에 대하여, 구체예를 이용하여 설명한다. 이 구체예에 있어서, 제1 통신 제어 장치(3) 등의 IP 어드레스는, 제1 서버(6)가 서버(50)가 된다는 이외에는, 제1 실시예의 구체예와 동일한 것으로 한다.
또한, 제2 정보 처리 장치(40)가 발호측인 것으로 한다. 이하의 구체예에서는, 구체예 1에서 제2 통신 제어 장치(4)가 PS NAT 이외인 경우에 대하여 설명한다. 또한, 구체예 2에서 제2 통신 제어 장치(4)가 PS NAT이고, 제1 통신 제어 장치(3)가 PS NAT 이외인 경우에 대하여 설명한다.
또한, 이 구체예에서는, 서버(50)와 제1 정보 처리 장치(30) 간, 혹은 서버(50)와 제2 정보 처리 장치(40) 간에서의 패킷의 송수신을 효율적으로 수행하기 위하여 송수신의 결정(단계 S101)과, 통신의 확립(단계 S102)의 처리의 일부를 병행하여 수행하는 경우에 대하여 설명한다.
[구체예 1]
도 34 내지 도 38은 구체예에 대하여 설명하기 위한 도면이다. 또한, 제1 정보 처리 장치(30) 및 제2 정보 처리 장치(40)로부터 서버(50)에 대한 액세스가 행해지고 있고, 서버(50)에서 이미 제1 통신 제어 장치(3)의 IP 어드레스와, 제1 통신 제어 장치(3)의 포트 P1의 포트 번호와, 제1 정보 처리 장치(30)의 디바이스 ID가 보유되어 있는 것으로 한다. 또한, 마찬가지로, 서버(50)에서 제2 통신 제어 장치(4)의 IP 어드레스와, 제2 통신 제어 장치(4)의 포트 P2의 포트 번호와, 제2 정보 처리 장치(40)의 디바이스 ID가 유지되어 있는 것으로 한다.
먼저, 제2 정보 처리 장치(40)로부터 접속 요구가 행해지는 동작에 대하여 설명한다. 도 34에 있어서 제2 정보 처리 장치(40)는, 서버(50)에 대하여 제1 정보 처리 장치(30)의 디바이스 ID와 접속 요구를 송신한다. 그러면 서버(50)는, 제1 통신 제어 장치(3)의 IP 어드레스와, 포트 P1의 포트 번호를 제2 정보 처리 장치(40)에 송신한다(단계 S601). 이 송신은 포트 P2을 통해 행해진다.
제2 정보 처리 장치(40)의 포트 폭 검출용 패킷 송신부(25)는, 3개의 포트 폭 검출용 패킷(UDP의 패킷인 것으로 함)을 각각 제2 정보 처리 장치(40)의 포트 LP0, LP1, LP2로부터 송신한다. 여기에서 포트 LP0, LP1, LP2는, 제2 정보 처리 장치(40)에서 새로 할당된 다른 포트인 것으로 한다. 따라서, 제2 통신 제어 장치(4)의 특성에 관계없이, 각 포트 폭 검출용 패킷은 제2 통신 제어 장치(4)에서 각각의 포트 P5, P6, P7을 통해 서버(50)에 송신된다(단계 S602). 각 포트 폭 검출용 패킷은, 서버(50)의 통신부(61)를 통해 포트 폭 검출용 포트 검출부(93)에서 수신되고, 각 패킷의 헤더에 포함되는 제2 통신 제어 장치(4)의 포트 P5, P6, P7의 포트 번호 가 검출된다(단계 S603). 포트 폭 검출용 포트 정보 송신부(94)는, 각 포트 번호를 페이로드에 포함하는 패킷인 포트 폭 검출용 포트 정보를, 각각의 포트 폭 검출용 패킷이 통과한 제2 통신 제어 장치(4)의 포트에 대하여 송신한다(단계 S604). 구체적으로는, 포트 P5을 통해 송신된 포트 폭 검출용 패킷에 대해서는, 그 포트 P5의 포트 번호를 페이로드에 포함하는 포트 폭 검출용 포트 정보가 포트 P5에 대하여 송신된다. 그 포트 폭 검출용 포트 정보는, 제2 통신 제어 장치(4)에서 어드레스 변환되어 제2 정보 처리 장치(40)의 포트 LP0에 송신된다. 그 포트 폭 검출용 포트 정보는, 통신부(21)를 통해 포트 폭 검출용 포트 정보 수신부(84)에서 수신된다. 동일하게, 포트 P6 및 P7를 통해 포트 폭 검출용 포트 정보가 제2 정보 처리 장치(40)에 송신된다. 또한, 이 구체예에서는, 범위 검출용 패킷도 이용하여 포트 폭의 검출을 수행하기 때문에, 이 단계에서는 포트 폭의 검출은 행해지지 않는다. 또한, 포트 P7을 통해 송신된 포트 폭 검출용 패킷은, 제2 통신 제어 장치(4)의 특성을 판단하기 위한 패킷인 특성 판단용 패킷을 겸하고 있기 때문에, 제2 통신 제어 장치(4)의 포트 P7을 통해 송신된 포트 폭 검출용 포트 정보는 통신부(21)로부터 특성 판단부(43)에도 전달된다.
제2 정보 처리 장치(40)의 범위 검출용 패킷 송신부(23)는, 범위 검출용 패킷(UDP의 패킷이라고 함)을 포트 LP2로부터 서버(50)의 포트 P3에 송신한다(단계 S606). 또한, 이 구체예에서는, 이 범위 검출용 패킷이 포트 폭 검출용 패킷도 겸하고 있다.
포트 P3은 포트 폭 검출용 패킷의 송신처인 포트 P4와는 다른 포트이다. 따 라서 제2 통신 제어 장치(4)의 포트 할당 룰이 Port Sensitive 타입인 경우, 즉 제2 통신 제어 장치(4)가 PS NAT인 경우에는, 그 범위 검출용 패킷이 통과하는 제2 통신 제어 장치(4)에서의 포트 P8은, 포트 LP2로부터 송신된 포트 폭 검출용 패킷이 통과한 포트 P7과 다른 포트가 되지만, 제2 통신 제어 장치(4)의 포트 할당 룰이 Port Sensitive 타입 이외의 경우에는, 포트 P7과 포트 P8은 동일한 포트가 된다.
서버(50)의 검출용 포트 검출부(91)는, 포트 P3에 송신된 범위 검출용 패킷을 통신부(61)를 통해 수신한다. 검출용 포트 검출부(91)는, 그 패킷의 헤더에 포함되는 제2 통신 제어 장치(4)의 포트 P8의 포트 번호를 검출한다(단계 S607). 검출용 포트 정보 송신부(92)는, 그 검출된 포트 P8의 포트 번호를 페이로드에 포함하는 검출용 포트 정보를 제2 통신 제어 장치(4)의 포트 P8에 송신한다(단계 S608). 그 검출용 포트 정보는 제2 통신 제어 장치(4)에서 어드레스 변환되어 제2 정보 처리 장치(40)의 포트 LP2에 송신되고, 검출용 포트 정보 수신부(81)에서 수신된다. 또한, 이 구체예에서는, 서버(50)의 포트 P3에 대하여 송신된 범위 검출용 패킷이 포트 폭 검출용 패킷과 특성 판단용 패킷을 겸하고 있기 때문에, 검출용 포트 정보는 통신부(21)로부터 포트 폭 검출용 포트 정보 수신부(84)와 특성 판단부(43)에도 전달된다.
이 구체예에서는, 특성 판단용 패킷이 포트 폭 검출용 패킷 및 범위 검출용 패킷과 겸하고 있기 때문에, 서버(50)의 특성 판단용 포트 검출부(95) 및 특성 판단용 포트 정보 송신부(96)는 이용할 수 없게 된다.
포트 폭 검출부(85)는, 포트 폭 검출용 포트 정보 수신부(84)에서 수신된 제2 통신 제어 장치(4)의 포트 P5, P6, P7, P8의 포트 번호에 기초하여 제2 통신 제어 장치(4)의 포트 폭의 검출을 수행한다(단계 S605). 구체적으로는, 포트 P8과 포트 P7의 차가 0이 아닌 경우에는, 포트 P6과 포트 P5의 차, 포트 P7과 포트 P6의 차, 포트 P8과 포트 P7의 차 중에서 가장 작은 값을 제2 통신 제어 장치(4)의 포트 폭으로서 검출한다. 한편, 포트 P8과 포트 P7의 차가 0인 경우에는, 포트 P6과 포트 P5의 차, 포트 P7과 포트 P6의 차 중, 작은 측을 제2 통신 제어 장치(4)의 포트 폭으로서 검출한다. 이 구체예에서는, 제2 통신 제어 장치(4)가 PS NAT이 아니기 때문에, 포트 P8과 포트 P7의 차는 0이 된다. 또한, 이 구체예에서는 포트 폭이 「1」로 검출된 것으로 한다.
특성 판단부(43)는, 포트 P7 및 P8의 포트 번호에 기초하여 제2 통신 제어 장치(4)의 특성을 판단한다(단계 S501). 구체적으로는, 포트 P7과 포트 P8이 동일한 경우, 제2 통신 제어 장치(4)의 특성은 Full Cone NAT, R NAT, PR NAT(이들 3개의 어드레스 할당 타입이 Cone인 NAT를 Cone계의 NAT이라고 부르기로 함), AS NAT 중 어느 하나 (즉, 포트 할당 룰이 Cone타입, 혹은 Address Sensitive타입)라고 판단되고, 포트 P7과 포트 P8이 다른 경우, 제2 통신 제어 장치(4)의 특성은 PS NAT (즉, 포트 할당 룰이 Port Sensitive타입)이라고 판단된다. 이 구체예에서는, 제2 통신 제어 장치(4)가 PS NAT이 아니기 때문에, 상술한 바와 같이 포트 P7과 포트 P8이 동일하여, 특성 판단부(43)는 제2 통신 제어 장치(4)가 PS NAT이 아니라고 판단한다(단계 S502). 그 결과, 발호측인 제2 정보 처리 장치(40)가 수신측의 정보 처리 장치로서 동작하게 된다(단계 S503).
제2 정보 처리 장치(40)의 포트 할당 패킷 송신부(41)는, 서버(50)로부터 송신된 제1 통신 제어 장치(3)의 어드레스를 이용함으로써, 제1 통신 제어 장치(3)의 포트 P1에 UDP의 패킷인 포트 할당 패킷을 송신한다(단계 S609). 이 포트 할당 패킷도 제2 정보 처리 장치(40)의 포트 LP2로부터 송신된다. 이 포트 할당 패킷은 제2 통신 제어 장치(4)의 포트 P9을 통해 송신된다. 제2 통신 제어 장치(4)가 AS NAT이면 포트 P8과 포트 P9가 다른 것으로 되고, 제2 통신 제어 장치(4)가 Cone계의 NAT이면 포트 P8과 포트 P9은 동일한 것이 된다. 또한, 이 포트 할당 패킷의 수명(예를 들면, 그 패킷에 설정되는 TTL 등)을 설정함으로써, 포트 할당 패킷이 포트 P1에 도달하기 전에 소멸하도록 해도 무방하다. 포트 할당 패킷을 송신하는 것은, 제2 통신 제어 장치(4)에서 송신 이력을 남기기 위한 것으로서, 포트 할당 패킷이 제1 통신 제어 장치(3)에 도달하지 않아도 무방하기 때문이다.
범위 검출용 패킷 송신부(23)는, UDP의 패킷인 범위 검출용 패킷을 제2 정보 처리 장치(40)의 포트 LP3로부터 서버(50)의 포트 P4에 송신한다(단계 S610). 포트 LP3은 포트 LP0, LP1, LP2의 어느 것과도 다른 것으로서, 제2 정보 처리 장치(40)에서 새롭게 할당된 포트이다. 그 범위 검출용 패킷은 제2 통신 제어 장치(4)의 포트 P10을 통해 송신된다. 여기에서 포트 P10은 포트 P7, P8, P9의 어느 것과도 다른 포트이다. 그 범위 검출용 패킷은 서버(50)의 검출용 포트 검출부(91)에서 수신되고, 헤더에 포함되는 포트 P10의 포트 번호가 검출된다(단계 S611). 그 포트 번호를 포함하는 검출용 포트 정보는, 검출용 포트 정보 송신부(92)로부터 포트 P10 을 통해 제2 정보 처리 장치(40)에 송신된다(단계 S612). 그 검출용 포트 정보는 제2 정보 처리 장치(40)의 검출용 포트 정보 수신부(81)에서 수신된다. 그리고 범위 검출부(82)에 의해 버블 패킷 송신 대상 포트의 검출이 행해진다(단계 S613). 이 검출에서는, 포트 P8의 포트 위치부터 포트 P10의 하나 앞에 할당될 포트 위치까지가 버블 패킷 송신 대상 포트로서 검출된다. 제2 통신 제어 장치(4)의 특성에 따라서는, 포트 P8과 포트 P9가 동일한 경우도 있을 수 있으나, 제2 통신 제어 장치(4)의 특성에 관계없이 포트 P9와 포트 P10은 다르기 때문이다. 포트 P10의 하나 앞에 할당될 포트 위치는, 포트 P10의 포트 번호로부터 포트 폭 검출부(85)에 의해 검출된 제2 통신 제어 장치(4)의 포트 폭(이 구체예에서는 「1」)만큼 뺀 포트 번호에 의해 나타내지는 위치이다. 버블 패킷 송신 대상 포트 송신부(42)는, 범위 검출부(82)에 의해 검출된 버블 패킷 송신 대상 포트를 나타내는 버블 패킷 송신 대상 포트 정보를, 제1 정보 처리 장치(30)에 송신하는 지시와 함께 서버(50)에 송신한다(단계 S614). 또한, 포트 폭 송신부(86)도, 제2 통신 제어 장치(4)의 포트 폭을 나타내는 포트 폭 정보를 제1 정보 처리 장치(30)에 송신하는 지시와 함께 서버(50)에 송신한다(단계 S614). 또한, 특성 송신부(44)도, 제2 통신 제어 장치(4)의 특성을 나타내는 정보, 즉 제2 통신 제어 장치(4)가 PS NAT이 아닌 통보의 특성 정보를 제1 정보 처리 장치(30)에 송신하는 지시와 함께 서버(50)에 송신한다.
그들 정보는 서버(50)에서 중계되어, 제1 통신 제어 장치(3)의 포트 P1를 통해 제1 정보 처리 장치(30)에 송신된다(단계 S615). 버블 패킷 송신 대상 포트 정보는, 버블 패킷 송신 대상 포트 수신부(16)에서 수신된다. 포트 폭 정보는 포트 폭 수신부(18)에서 수신됨과 함께, 도시하지 않은 경로에 의해 버블 패킷 송신부(12)에 전달된다. 특성 정보는 포트 폭 검출용 패킷 송신부(15), 범위 검출용 패킷 송신부(13), 버블 패킷 송신부(12) 등에 전달되고, 제2 통신 제어 장치(4)는 PS NAT이 아니기 때문에 제1 정보 처리 장치(30)가 송신측의 장치로서의 처리 시퀀스(sequence)를 수행하는 것으로 판단한다.
서버(50)는 수신측의 제2 통신 제어 장치(4)의 IP 어드레스를 제1 정보 처리 장치(30)에 송신한다(단계 S616).
제1 정보 처리 장치(30)의 포트 폭 검출용 패킷 송신부(15)는, 제1 정보 처리 장치(30)의 다른 포트 LP4 및 LP5로부터, 각각 UDP 패킷인 포트 폭 검출용 패킷을 서버(50)의 포트 P3에 송신한다(단계 S617). 이러한 포트 폭 검출용 패킷은, 제1 통신 제어 장치(3)의 다른 포트 P11 및 P12을 통해 서버(50)에 송신되고 포트 폭 검출용 포트 검출부(93)에서 수신된다. 포트 폭 검출용 포트 검출부(93)에서는, 제2 정보 처리 장치(40)로부터 송신된 포트 폭 검출 패킷의 경우와 동일하게 포트 P11 및 P12의 포트 번호가 검출된다(단계 S618). 포트 폭 검출용 포트 정보 송신부(94)는, 포트 P11 및 P12의 검출된 포트 번호를 페이로드에 포함하고 있는 패킷인 포트 폭 검출용 포트 정보를, 각각 포트 P11 및 P12을 통해 제1 정보 처리 장치(30)에 송신한다(단계 S619). 그 포트 폭 검출용 포트 정보는, 포트 폭 검출용 포트 정보 수신부(74)에서 수신된다. 또한, 이 구체예에서는, 범위 검출용 패킷도 이용하여 포트 폭의 검출을 수행하기 때문에, 이 단계에서는 포트 폭의 검출은 행해지지 않는다.
범위 검출용 패킷 송신부(13)는, UDP 패킷인 범위 검출용 패킷을 제1 정보 처리 장치(30)의 포트 LP6로부터 송신한다(단계 S621). 이 범위 검출용 패킷은 제1 통신 제어 장치(3)의 포트 P13를 통해 서버(50)의 포트 P3에 송신된다. 여기에서 이 범위 검출용 패킷은 포트 폭 검출용 패킷을 겸하고 있다. 또한, 포트 LP6은 포트 LP4 및 LP5의 각각과는 다른 것으로서, 제1 정보 처리 장치(30)에서 새롭게 할당된 포트인 것으로 한다.
그 범위 검출용 패킷은, 서버(50)의 검출용 포트 검출부(91)에서 수신되고 포트 P13의 포트 번호가 검출된다(단계 S622). 검출용 포트 정보 송신부(92)는, 그 검출된 포트 P13의 포트 번호를 페이로드에 포함하고 있는 패킷인 검출용 포트 정보를 포트 P13을 통해 제1 정보 처리 장치(30)에 송신한다(단계 S623). 그 검출용 포트 정보는 검출용 포트 정보 수신부(71)에서 수신된다. 또한, 그 범위 검출용 패킷은 포트 폭 검출용 패킷을 겸하고 있기 때문에, 통신부(11)는 그 검출용 포트 정보를 포트 폭 검출용 포트 정보 수신부(74)에도 전달한다.
포트 폭 검출부(75)는, 포트 폭 검출용 포트 정보 수신부(84)에서 수신된 제1 통신 제어 장치(3)의 포트 P11, P12, P13의 포트 번호에 기초하여 제1 통신 제어 장치(3)의 포트 폭의 검출을 수행한다(단계 S620). 구체적으로는, 포트 P12와 포트 P11의 차, 포트 P13과 포트 P12의 차 중에서 작은 측을 제1 통신 제어 장치(3)의 포트 폭으로서 검출한다. 이 구체예에서는 포트 폭이 「1」로 검출된 것으로 한다.
버블 패킷 송신부(12)는, 버블 패킷 송신 대상 포트 정보가 나타내는 범위의 버블 패킷 송신 대상 포트에 대하여 버블 패킷을 송신한다(단계 S624). 이 버블 패 킷은 제1 정보 처리 장치(30)의 포트 LP6로부터 송신된다. 또한, 버블 패킷 송신 대상 포트가 다수의 포트를 포함하는 범위인 경우에는, 버블 패킷은 포트 폭 수신부(18)에서 수신된 제2 통신 제어 장치(4)의 포트 폭 정보가 나타내는 포트 폭(이 구체예에서는 「1」)마다 송신된다. 이 구체예에서는 도 37에 나타나 있는 바와 같이, 버블 패킷이 제1 통신 제어 장치(3)의 포트 P14로부터 포트 P15까지의 포트를 통해 송신되는 것으로 한다. 또한, 제2 통신 제어 장치(4)의 특성에 따라서는 버블 패킷을 포트 LP2에서 수신할 수 있는 경우도 있으나, 이 구체예에서는 제1 정보 처리 장치(30)와 제2 정보 처리 장치(40) 간의 통신의 확립을 확실히 행할 수 있도록, 처리를 더욱 진행시킨다.
범위 검출용 패킷 송신부(13)는, 범위 검출용 패킷을 제1 정보 처리 장치(30)의 포트 LP7로부터 서버(50)의 포트 P3에 송신한다(단계 S625). 포트 LP7은 포트 LP6과는 다른 포트로서, 제1 정보 처리 장치(30)에서 새롭게 할당된 포트이다. 포트 LP7이 새로운 포트이므로, 그 범위 검출용 패킷이 통과하는 포트 P16도 포트 P15와는 다른 포트이다. 포트 P16을 통해 송신된 범위 검출용 패킷은, 서버(50)의 검출용 포트 검출부(91)에서 수신되고 포트 P16의 포트 번호가 검출된다(단계 S626). 검출용 포트 정보 송신부(92)는, 그 검출된 포트 번호를 페이로드에 포함하고 있는 패킷인 검출용 포트 정보를 제1 통신 제어 장치(3)의 포트 P16을 통해 제1 정보 처리 장치(30)에 송신한다(단계 S627). 서버(50)로부터 송신된 검출용 포트 정보는 검출용 포트 정보 수신부(71)에서 수신된다. 그리고 범위 검출부(72)는 포트 P13과 포트 P16의 포트 위치에 기초하여, 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출한다(단계 S628). 이 검출에서는, 포트 P13의 포트 위치부터 포트 P16의 하나 앞에 할당될 포트 위치까지가 버블 패킷 송신 포트를 포함하는 범위로서 검출된다. 제1 통신 제어 장치(3)의 특성에 관계없이 포트 P15와 포트 P16은 다른 것이기 때문에, 그 범위에 포트 P16은 포함되지 않는다. 포트 P16의 하나 앞에 할당될 포트 위치는, 포트 P16의 포트 번호로부터, 포트 폭 검출부(75)에 의해 검출된 제1 통신 제어 장치(3)의 포트 폭(이 구체예에서는 「1」)만큼 뺀 포트 번호에 의해 나타내지는 위치이다. 범위 송신부(73)는, 범위 검출부(72)에 의해 검출된 포트의 범위를 나타내는 범위 정보를, 제2 정보 처리 장치(40)에 송신하는 지시와 함께 서버(50)에 송신한다(단계 S629). 또한, 포트 폭 송신부(76)도, 제1 통신 제어 장치(3)의 포트 폭을 나타내는 포트 폭 정보를 제2 정보 처리 장치(40)에 송신하는 지시와 함께 서버(50)에 송신한다(단계 S629).
그들 정보는 서버(50)에서 중계되어, 제2 통신 제어 장치(4)의 포트 P2를 통해 제2 정보 처리 장치(40)에 송신된다(단계 S630). 범위 정보는 범위 수신부(27)에서 수신된다. 포트 폭 정보는 포트 폭 수신부(28)에서 수신된다. 응답 패킷 송신부(29)는, 범위 수신부(27)가 수신한 범위 정보가 나타내는 범위의 포트에 응답 패킷을 송신한다(단계 S631).
이 응답 패킷은 제1 정보 처리 장치(30)의 포트 LP6로부터 송신된다. 또한, 범위 정보가 다수의 포트를 포함하는 범위인 경우에는, 응답 패킷은 포트 폭 수신부(28)에서 수신된 제1 통신 제어 장치(3)의 포트 폭 정보가 나타내는 포트 폭(이 구체예에서는 「1」)마다 송신된다. 이 구체예에서는 도 38에 나타나 있는 바와 같 이, 응답 패킷이 제2 통신 제어 장치(4)의 포트 P9을 통해 송신된다. 제2 통신 제어 장치(4)는 PS NAT이 아니기 때문에, 제1 통신 제어 장치(3)에 대하여 송신되는 응답 패킷은 모두 포트 P9를 통해 송신된다. 이와 같이 모든 응답 패킷이 포트 P9로부터 송신되도록, 제2 정보 처리 장치(40)는 미리 포트 할당 패킷을 포트 LP2로부터 제1 통신 제어 장치(3)에 송신한다.
제2 정보 처리 장치(40)로부터 송신된 응답 패킷 중, 포트 P9를 향해 송신된 버블 패킷이 통과한 버블 패킷 송신 포트에 송신된 응답 패킷은, 제1 통신 제어 장치(3)에서 어드레스 변환되어 제1 정보 처리 장치(30)의 응답 패킷 수신부(24)에서 수신된다(단계 S632). 제1 통신 제어 장치(3)의 특성에 따라서는, 다수의 응답 패킷이 제1 정보 처리 장치(30)에 의해 수신되는 경우도 있다.
이와 같이 하여, 제1 정보 처리 장치(30)와 제2 정보 처리 장치(40) 간의 통신이 확립된다.
여기에서, 본 실시예에 따른 통신 시스템에 있어서 포트 할당 패킷을 송신하는 이유에 대하여 간단하게 설명한다. 버블 패킷을 송신하기 이전에 포트 할당 패킷을 제1 통신 제어 장치(3)에 송신함으로써, 제2 통신 제어 장치(4)에서 포트 P9가 할당된다. 수신측의 장치는 PS NAT이 아니기 때문에(도 29 참조), 제2 통신 제어 장치(4)도 PS NAT이 아니다(즉, 포트 할당 룰이 Port Sensitive 타입이 아님). 따라서 이 포트 할당 패킷을 송신한 포트 LP2로부터의 응답 패킷을 제1 통신 제어 장치(3)에 송신함으로써, 그 응답 패킷이 포트 할당 패킷의 송신에 의해 할당된 제2 통신 제어 장치(4)의 포트 P9를 통해 송신된다.
그 포트 P9를 포함하는 범위를 검출하고, 그 범위에 버블 패킷을 송신함으로써, 적어도 하나의 버블 패킷을 포트 P9에 대하여 송신할 수 있다. 그 후 버블 패킷 송신 포트를 포함하는 포트의 범위로 포트 LP2로부터의 응답 패킷을 송신함으로써, 포트 P9에 송신된 버블 패킷이 통과한 제1 통신 제어 장치(3)의 포트에 대하여 포트 P9를 통해 응답 패킷을 송신할 수 있다. 그 결과, 가령 제1 통신 제어 장치(3)가 PR NAT, PS NAT를 이용하고 있던 경우라도, 응답 패킷이 제1 정보 처리 장치(30)에서 수신되는 것이 되어, 제1 정보 처리 장치(30)와 제2 정보 처리 장치(40) 간의 통신을 확립할 수 있다. 이와 같이 포트 할당 패킷은, 응답 패킷이 통과하는 포트를 미리 제2 통신 제어 장치(4)에서 할당해 두기 위해(바꾸어 말하면, 버블 패킷 송신 대상 포트의 범위를 결정하기 위해) 송신되는 것이다.
[구체예 2]
구체예 2에서는, 제2 통신 제어 장치(4)가 PS NAT를 이용하고 있고, 제1 통신 제어 장치(3)가 PS NAT 이외를 이용하고 있는 경우에 대하여 설명한다. 또한, 제2 정보 처리 장치(40)가 발호측인 것은 구체예 1과 동일한 것으로 한다.
제2 정보 처리 장치(40)로부터 포트 폭 검출용 패킷, 범위 검출용 패킷, 포트 할당 패킷이 송신되고, 제2 통신 제어 장치(4)의 포트 폭이 검출되고, 버블 패킷 송신 대상 포트의 위치가 검출되고, 제2 통신 제어 장치(4)의 특성이 판단되는 동작은 구체예 1과 동일하게 행해지는 것으로 한다.
제2 정보 처리 장치(40)로부터 서버(50)를 통해 포트 폭 정보, 버블 패킷 송신 대상 포트 정보, 특성 정보가 송신됨으로써(단계 S614 및 S615), 제1 정보 처리 장치(30)는 제2 통신 제어 장치(4)가 PS NAT인 것을 알게 된다. 그러면 제1 정보 처리 장치(30)는 단계 S601로부터 단계 S614까지의 처리 및 단계 S504의 착호측 (제1 정보 처리 장치(30) 측)의 제1 통신 제어 장치(3)의 특성을 판단하는 처리(구체예 1에서 도 34, 도 35를 이용하여 설명한 처리)를 실행한다. 이들 처리는 수신측과 송신측이 전환된다는 이외에는, 구체예 1의 설명과 동일하여 그 설명을 생략한다. 이 구체예에서는 제1 통신 제어 장치(3)가 PA NAT를 이용하고 있지 않기 때문에, 착호측을 수신측으로 판단한다(단계 S506). 그리고 구체예 1에서의 수신측과 송신측이 전환된 형태에 있어서는, 버블 패킷의 송신이나 버블 패킷 송신 포트를 포함하는 범위의 검출, 응답 패킷의 송신 등이 행해져, 제1 정보 처리 장치(30)와 제2 정보 처리 장치(40) 간의 통신이 확립된다. 이들 상세한 설명에 대해서는 구체예 1과 동일하여 생략한다.
또한, 상기 각 구체예에서는, 포트 할당 패킷을, 1회째의 범위 검출용 패킷을 송신한 포트와 같은 포트(포트 LP2)로부터 송신하는 경우에 대하여 설명했으나, 포트 할당 패킷을, 2회째의 범위 검출용 패킷을 송신한 포트와 같은 포트(포트 LP3)로부터 송신해도 무방하다. 이 경우에는 버블 패킷 송신 대상 포트는, 포트 P8의 다음에 할당되는 포트로부터 포트 P10까지가 된다. 혹은 포트 할당 패킷과 2회의 범위 검출용 패킷을, 각각 별도의 포트(각각 제2 정보 처리 장치(40)에서 새롭게 할당된 포트인 것으로 함)로부터 송신해도 무방하다. 이 경우에는, 버블 패킷 송신 대상 포트는, 1회째의 범위 검출 패킷이 통과한 제2 통신 제어 장치(4)의 포트의 다음에 할당되는 포트로부터, 2회째의 범위 검출 패킷이 통과한 제2 통신 제 어 장치(4)의 포트의 하나 앞에 할당되는 포트까지가 된다. 또한, 이들 버블 패킷 송신 대상 포트는 최소한의 포트로서 설명한 것으로, 이들 버블 패킷 송신 대상 포트를 포함하는 보다 넓은 포트의 범위를 버블 패킷 송신 대상 포트로 해도 무방하다.
마찬가지로 버블 패킷의 송신도, 포트 PL6부터가 아니라 포트 PL7로부터 행해도 무방하다. 이 경우에도 응답 패킷을 송신하는 범위는, 포트 P13의 다음에 할당되는 포트로부터 포트 P16까지가 된다. 혹은 버블 패킷과 2회의 범위 검출용 패킷을 각각 별도의 포트(각각 제1 정보 처리 장치(30)에서 새롭게 할당된 포트인 것으로 함)로부터 송신해도 무방하다. 이 경우, 버블 패킷 송신 포트를 포함하는 포트의 범위는, 1회째의 범위 검출 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 다음에 할당되는 포트로부터 2회째의 범위 검출 패킷이 통과한 제1 통신 제어 장치(3)의 포트의 하나 앞에 할당되는 포트까지가 된다. 또한, 이들 버블 패킷 송신 포트를 포함하는 포트의 범위는 최소한의 범위로서 설명한 것으로, 이들 포트의 범위를 포함하는 보다 넓은 포트의 범위를, 버블 패킷 송신 포트를 포함하는 포트의 범위로 해도 무방하다.
또한, 상기 각 구체예에서는, 서버(50)와 정보 처리 장치 간의 통신 회수를 적게 하기 위하여, 하나의 패킷이 다수의 역할을 가지고 있어 효율적으로 패킷의 통신을 수행하는 경우에 대하여 설명했으나, 하나의 패킷이 하나의 역할을 가지도록 패킷의 송신을 수행해도 무방하다. 또한, 상기 각 구체예에서는, 통신 제어 장치의 특성 판단과 정보 처리 장치 간의 통신의 확립을 병행하여 수행하는 경우에 대하여 설명했으나, 그들 처리를 각각 수행해도 무방하다. 그러한 경우에, 특성의 판단에 있어서 특성 판단용 포트 검출부(95) 및 특성 판단용 포트 정보 송신부(96)를 이용해도 무방하다.
이상과 같이 본 실시예에 따른 통신 시스템에 의하면, 제1 통신 제어 장치(3) 및 제2 통신 제어 장치(4)가 양측 모두 PS NAT인 경우를 제외하고, 제1 정보 처리 장치(30)와 제2 정보 처리 장치(40) 간의 통신을 확립할 수 있다. 또한, 그 통신의 확립을, 통신 제어 장치가 PS NAT를 이용하고 있는지의 여부를 판단하는 것만으로도, 상세한 판단을 하지 않고 실행할 수 있다.
또한, 제1 실시예에 따른 방법에서는 송신측의 장치가 PR NAT인 경우에는 송수신의 전환을 수행할 필요가 있었으나(도 17 참조), 본 실시예에 따른 방법에서는 송신측 또는 수신측의 정보 처리 장치 중 어느 하나가 PR NAT이라 해도 송수신의 전환을 수행할 필요가 없다. 따라서 Cone계의 NAT이 통신 시스템에서 이용되고 있는 경우에는, 송수신의 전환을 수행하지 않고 정보 처리 장치 간에서의 통신을 확립할 수 있다(도 39 참조).
또한, 본 실시예에서는, 통신 제어 장치가 AS NAT를 이용하고 있는지 아닌지의 판단을 행하지 않아도 되기 때문에(PS NAT를 이용하고 있는지, 그렇지 않은지에 대한 판단만을 행하면 됨), 2 이상의 서버를 이용한 통신 제어 장치의 특정의 판단을 행하지 않아도 됨에 따라, 통신 시스템을 간단한 구성으로 할 수 있다.
또한, 본 실시예에서는, 포트 폭의 검출, 버블 패킷 송신 포트를 포함하는 포트의 범위의 검출, 버블 패킷 송신 대상 포트의 검출을 정보 처리 장치에서 수행 하는 경우에 대하여 설명했으나, 그들 처리 중 임의의 1 이상의 처리를 제1 실시예와 마찬가지로 서버(50)에서 수행해도 무방하다.
또한, 본 실시예에서는, 버블 패킷 송신 대상 포트의 검출을 행하기 위하여, 포트 할당 패킷의 송신 전후에 2개의 범위 검출용 패킷을 송신하는 경우에 대하여 설명했으나, 일측의 범위 검출용 패킷만을 송신하고 버블 패킷 송신 대상 포트 정보는 버블 패킷 송신 대상 포트의 상한 혹은 하한만을 나타내는 것이라도 무방하다. 이 경우에는, 그 범위에 포함될 수 있는 모든 포트에 대하여 버블 패킷을 송신하여도 무방하다.
또한, 버블 패킷을, 수신측의 통신 제어 장치에서의 모든 포트에 송신하도록 해도 무방하다. 그렇게 함으로써 포트 할당 패킷의 송신에서 이용된 포트에 대하여 버블 패킷을 송신할 수 있다. 여기에서, 모든 포트의 경우에 있어서도, 미리 용도가 결정되어 있는 웰노운(Well-known) 포트를 제외하고, Well-known 포트 이외에 응답 패킷을 송신해도 무방하다. 또한, 소정의 포트 폭마다 버블 패킷을 송신하는 경우에는, 그 기점이 되는 포트의 위치가 송신측의 정보 처리 장치에 대하여 알려지도록 해도 무방하다.
또한, 본 실시예에 있어서도, 한 측의 통신 제어 장치가 존재하지 않는 통신 시스템이라도, 제3 실시예의 경우와 마찬가지로, 정보 처리 장치간의 통신을 확립할 수 있는 것은 당연하다.
또한, 상기 각 실시예에 있어서의 통신 시스템은, 버블 패킷을 송신하는 정보 처리 장치와 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위한 처 리를 행하는 서버(이 서버는 2 이상의 서버라도 무방함)를 구비한 통신 시스템으로서, 그 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위한 것이라도 무방하다. 즉, 본 발명에 있어서의 통신 시스템은, 이하와 같은 통신 시스템이라도 무방하다. 이 통신 시스템은 정보 처리 장치와 정보 처리 장치의 통신을 제어하는 통신 제어 장치와 서버를 구비한 통신 시스템으로서, 정보 처리 장치는 통신 제어 장치를 통해 통신 제어 장치에 송신 이력을 남기기 위한 1 이상의 버블 패킷을 송신하는 버블 패킷 송신부와 1 이상의 버블 패킷의 송신에서 이용되는 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 서버에 송신하는 범위 검출용 패킷 송신부를 구비하고, 서버는 범위 검출용 패킷을 수신하고 해당 범위 검출용 패킷에 기초하여 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출부를 구비한다. 이 통신 시스템에 있어서, 버블 패킷의 송신처는, 예를 들면 정보 처리 장치의 통신 상대인 다른 통신 제어 장치라도 무방하고, 통신 상대인 다른 정보 처리 장치의 통신을 제어하는 통신 제어 장치 등이라도 무방하다. 또한, 이 통신 시스템에 있어서, 서버에서 검출된 포트의 범위는 송신부에 의해 정보 처리 장치에 송신되어도 무방하고, 혹은 그 밖의 방법에 의해 정보 처리 장치에 전달되어도 무방하다. 그 밖의 방법으로는, 예를 들면 포트의 범위를 나타내는 정보를 기록 매체에 기록하고 정보 처리 장치가 그 기록 매체로부터 정보를 읽어내는 것이라도 무방하고, 또는 서버에서 포트의 범위를 나타내는 정보가 표시되고 그 표시를 판독함으로써 유저가 정보 처리 장치에 포트의 범위를 나타내는 정보를 입력하는 것이라도 무 방하다. 또한, 제4 실시예와 같이, 그 통신 시스템에 있어서 1 이상의 버블 패킷을 송신해도 무방하다.
또한, 다른 통신 시스템은, 정보 처리 장치와 정보 처리 장치의 통신을 제어하는 통신 제어 장치와 서버를 구비한 통신 시스템으로서, 정보 처리 장치는 통신 제어 장치를 통해 통신 제어 장치에 송신 이력을 남기기 위한 1 이상의 버블 패킷을 송신하는 버블 패킷 송신부와 1 이상의 버블 패킷의 송신에서 이용되는 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 서버에 송신하는 범위 검출용 패킷 송신부와 범위 검출용 패킷이 통과한 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신부와 검출용 포트 정보 수신부가 수신한 검출용 포트 정보에 기초하여 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출부를 구비하고, 서버는 범위 검출용 패킷을 수신하고 해당 범위 검출용 패킷이 통과한 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출부와 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 정보 처리 장치에 송신하는 검출용 포트 정보 송신부를 구비한다. 이와 같이, 범위의 검출을 서버가 아니라 정보 처리 장치에서 행해도 무방하다. 이 통신 시스템에 있어서 버블 패킷의 송신처는, 예를 들면 정보 처리 장치의 통신 상대측인 다른 통신 제어 장치라도 무방하고, 통신 상대측인 다른 정보 처리 장치의 통신을 제어하는 통신 제어 장치 등이라도 무방하다. 또한, 이 통신 시스템에 있어서, 정보 처리 장치에서 검출된 포트의 범위는 송신부에 의해 다른 정보 처리 장치에 송신되어도 무방하고, 혹은 그 밖의 방법에 의해 다른 정보 처리 장치에 전달되어도 무방하다. 그 밖의 방법으로는, 예를 들면 포트의 범위를 나타내는 정보를 기록 매체에 기록하고 다른 정보 처리 장치가 그 기록 매체로부터 정보를 읽어내는 것이라도 무방하고, 또는 정보 처리 장치에서 포트의 범위를 나타내는 정보가 표시되고 그 표시를 판독함으로써 유저가 다른 정보 처리 장치에 포트의 범위를 나타내는 정보를 입력하는 것이라도 무방하다. 또한, 제4 실시예와 같이, 그 통신 시스템에 있어서 1 이상의 버블 패킷을 송신해도 무방하다.
또한, 상기 각 실시예에 있어서, 제1 서버(6, 60), 서버(50)가 정보 처리 장치에 상대방의 통신 제어 장치의 IP 어드레스를 통지하는 기능을 가지는 경우에 대하여 설명했으나, 이 기능은 제1 서버(6) 등과는 다른 서버에서 실현되어도 무방하다. 즉, 일측의 정보 처리 장치에 타측의 통신 제어 장치의 어드레스를 통지하는 서버와, 범위 검출 패킷 등에 관한 처리를 행하는 서버는 다른 서버라도 무방하다. 또한, 일측의 정보 처리 장치에 타측의 정보 처리 장치의 어드레스를 통지하는 처리나, 발호측의 정보 처리 장치가 상대방(착호측)의 정보 처리 장치를 호출하는 처리 등에 있어서, SIP(Session Initiation Protocol)를 이용해도 무방하다.
또한, 상기 각 실시예에서의 설명에서는, 포트 폭 정보가 나타내는 포트 폭마다 응답 패킷을 송신한다고 했으나, 포트 폭에 관계없이 포트 간격 「1」로 응답 패킷을 송신해도 된다.
또한, 상기 각 실시예에서의 설명에서는, 범위 정보가 나타내는 포트의 범위에 응답 패킷을 송신한다고 했으나, 응답 패킷을 송신측의 통신 제어 장치에서의 모든 포트에 송신하도록 해도 무방하다. 그렇게 함으로써, 버블 패킷의 송신에서 이용된 버블 패킷 송신 포트에 대하여 응답 패킷을 송신할 수 있다. 또한, 범위 정보에 의해 범위의 상한 혹은 하한만이 나타내지는 경우에는, 그 범위에서의 모든 포트에 응답 패킷을 송신해도 무방하다. 여기에서, 모든 포트의 경우에 있어서도, 미리 용도가 결정되어 있는 웰노운(Well-known) 포트를 제외하고, Well-known 포트 이외에 응답 패킷을 송신해도 무방하다. 또한, 소정의 포트 폭마다 버블 패킷을 송신하는 경우에는, 그 기점이 되는 포트의 위치가 수신측의 정보 처리 장치에 대하여 알려지도록 해도 무방하다.
또한, 상기 각 실시예에서의 설명에서는, 통신 제어 장치에서 이용하는 NAT의 종류를 제1 서버(6) 등에서, 혹은 정보 처리 장치에서 판단하는 경우에 대하여 설명했으나, 예를 들면 유저에 의한 직접 입력 등에 의해 정보 처리 장치로부터 입력된 통신 제어 장치의 특성(NAT의 종류)을 제1 서버(6) 등에서 유지하도록 해도 무방하고, 혹은 통신 제어 장치가 보유하고 있는 기억 수단(예를 들면 비휘발성의 메모리 등)에 특성이 기억되고, 제1 서버(6) 등은 그 기억되어 있는 특성을 읽어냄으로써 통신 제어 장치의 특성을 판단하도록 해도 무방하다. 또한, 이 통신 제어 장치의 특성은 통신 제어 장치 이외에서 기억되어 있어도 무방하다. 예를 들면 소정의 데이터 베이스 서버가, 통신 제어 장치의 ID나 형식 번호와 대응하는 특성을 기억하고 있어도 무방하다.
또한, 상기 각 실시예에서는, 제1 서버(6) 등에서, 혹은 정보 처리 장치에서 통신 제어 장치의 특성을 검출하는 경우에 대하여 설명했으나, 그 검출의 타이밍은 불문한다. 즉, 어느 하나의 정보 처리 장치로부터의 통신을 확립하는 통보의 요구가 있었던 후라도 무방하고, 혹은 정보 처리 장치가 제1 서버(6) 등에 접속된 시점에서 미리 특성의 판단을 행하고 있어도 무방하다.
또한, 통신 제어 장치의 IP 어드레스나, 통신 제어 장치의 포트 폭 등에 대해서도, 제1 서버(6) 등으로부터 송신되지 않고, 유저에 의한 직접 입력에 의해 정보 처리 장치에 전달되어도 무방하고, 혹은 통신 제어 장치 등에 기억되어 있는 포트 폭 등을 취득해도 무방하다.
또한, 제1 서버(6) 등이나 수신측의 정보 처리 장치로부터 송신측의 정보 처리 장치에 버블 패킷 송신 대상 포트가 알려지는 경우에 대하여 설명했으나, 버블 패킷 송신 대상 포트가 송신측의 정보 처리 장치에서 미리 설정되어 있어도 무방하고, 혹은 유저에 의한 직접 입력이나 소정의 서버에 액세스하는 것 등에 의해 송신측의 정보 처리 장치가 버블 패킷 송신 대상 포트의 위치를 검지하도록 해도 무방하다.
또한, 제1 내지 제3 실시예에서는 제1 서버와 제2 서버가 직접 통신을 행하는 경우에 대하여 설명했으나, 예를 들면 제1 서버와 제2 서버는 소정의 공유 기록 매체를 통해 서버 간의 정보(예를 들면 도 12에서의 포트 P8의 포트 번호 등)의 공유를 행해도 무방하다.
또한, 상기 각 실시예에서는, 버블 패킷 송신 대상 포트를 소정의 포트에 한정하기 위하여 버블 패킷 송신 대상 포트 정보를 송신하는 경우에 대하여 주로 설명했으나, 이 버블 패킷 송신 대상 포트 정보는, 버블 패킷 송신 대상 포트를 한정 하기 위해서가 아니라, 단지 버블 패킷의 송신처의 포트를 지정하기 위해서만 송신되는 것이라도 무방하다.
또한, 상기 각 실시예에서는, 각 정보 처리 장치가 통신 제어 장치를 1개만 통해서 통신 회선(5)에 접속되는 경우에 대하여 설명했으나, 다수의 통신 제어 장치를 통해 통신 회선(5)에 접속되어 있는 경우(즉, 다단 접속의 NAT)라도, 정보 처리 장치 간의 통신을 확립하는 것이 가능하다.
또한, 상기 각 실시예에서는, 제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) 등 간에서의 통신이 확립될 수 있게 된다.
또한, 제1 정보 처리 장치(1) 등 및 제2 정보 처리 장치(2) 등은 어플리케이 션으로서의 방화벽의 기능을 탑재하는 것이라도 무방하고, 그렇지 않아도 무방하다.
또한, 상기 각 실시예에서는, 제1 서버(6) 등을 IP 어드레스에 의해 특정하는 경우에 대하여 설명했으나, 제1 서버(6) 등을 도메인 명(예를 들면 server.pana.net 등)에 의해 특정해도 무방하다. 이 경우에는, 그 도메인 명이 DNS서버를 이용하여 IP 어드레스로 변환됨으로써 제1 서버(6) 등을 특정할 수 있다.
또한, 상기 각 실시예에서의 통신에서 이용되는 프로토콜은, IPv4(Internet Protocol version 4)이라도 무방하고, 혹은 IPv6(Internet Protocol version 6)이라도 무방하다.
또한, 상기 각 실시예에 있어서, 각 처리(각 기능)는 단일의 장치(시스템)에 의해 집중 처리됨으로써 실현되어도 무방하고, 혹은 다수의 장치에 의해 분산처리됨으로써 실현되어도 무방하다.
또한, 상기 각 실시예에 있어서, 각 구성 요소는 전용의 하드웨어에 의해 구성해도 무방하고, 또는 소프트웨어에 의해 실현가능한 구성 요소에 대해서는 프로그램 제어에 의한 소프트웨어에 의해 구성해도 무방하다. 또한, 상기 각 실시예에서의 정보 처리 장치를 실현하는 소프트웨어는 이하와 같은 프로그램이다. 즉, 이 프로그램은, 컴퓨터에서, 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치와 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해, 제2 정보 처리 장치와 통신하는 제1 정보 처리 장치에서의 처리를 실행시키기 위한 프로그램으로서, 제1 통신 제어 장치를 통해 제1 통신 제어 장치에 송신 이력을 남기기 위 한 버블 패킷을 제2 통신 제어 장치에 송신하는 버블 패킷 송신 단계와, 버블 패킷의 송신에서 이용되는 제1 통신 제어 장치의 포트인 버블 패킷 송신 포트에 대하여 제2 정보 처리 장치로부터 제2 통신 제어 장치를 통해 송신되는 응답 패킷을 수신하는 응답 패킷 수신 단계를 실행시키기 위한 것이다.
또한, 이 프로그램에서는, 컴퓨터에서 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 송신하는 범위 검출용 패킷 송신 단계를 추가로 실행시켜도 무방하다.
또한, 이 프로그램에서는, 범위 검출용 패킷 송신 단계에서, 버블 패킷 송신 단계에서의 버블 패킷의 송신의 전후에 각각 범위 검출용 패킷을 송신해도 무방하다.
또한, 이 프로그램에서는, 범위 검출용 패킷 송신 단계에서, 버블 패킷의 송신의 전후에 각각 다른 어드레스에 범위 검출용 패킷을 송신해도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서 제2 통신 제어 장치의 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를 수신하는 버블 패킷 송신 대상 포트 수신 단계를 추가로 실행시키고, 버블 패킷 송신 단계에서는 버블 패킷 송신 대상 포트 정보가 나타내는 버블 패킷 송신 대상 포트에 버블 패킷을 송신해도 무방하다.
또한, 이 프로그램에서는, 버블 패킷 송신 대상 포트가, 제2 정보 처리 장치에 의해, 제1 정보 처리 장치와 제2 정보 처리 장치 간의 통신을 확립시키는 서버와의 사이에서 정보의 송수신을 행하는 포트라도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서 제1 통신 제어 장치의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을 제1 통신 제어 장치를 통해 송신하는 포트 폭 검출용 패킷 송신 단계를 추가로 실행시켜도 무방하다.
또한, 이 프로그램에서는, 제1 통신 제어 장치는, 제2 정보 처리 장치로부터 제2 통신 제어 장치를 통해, 제2 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷이 송신되는 것으로서, 컴퓨터에서, 제2 정보 처리 장치로부터의 버블 패킷의 송신에서 이용된, 제2 통신 제어 장치의 포트를 적어도 포함하는 1 이상의 포트에 대하여 응답 패킷을 송신하는 응답 패킷 송신 단계를 추가로 실행시켜도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 응답 패킷을 송신하는 포트의 범위를 나타내는 정보인 범위 정보를 수신하는 범위 수신 단계를 추가로 실행시키고, 응답 패킷 송신 단계에서는, 범위 정보가 나타내는 범위의 포트에 응답 패킷을 송신해도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 제2 통신 제어 장치에서의 포트 폭을 나타내는 정보인 포트 폭 정보를 수신하는 포트 폭 수신 단계를 추가로 실행시키고, 응답 패킷 송신 단계에서는, 포트 폭 정보가 나타내는 포트 폭마다 응답 패킷을 송신해도 무방하다.
또한, 상기 각 실시예에 따른 정보 처리 장치를 실현하는 소프트웨어는, 이하와 같은 프로그램이다. 즉 이 프로그램은, 컴퓨터에서, 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치와 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해, 제2 정보 처리 장치와 통신하는 제1 정보 처리 장치에서의 처리를 실행시키기 위한 프로그램으로서, 제1 통신 제어 장치는 제2 정보 처리 장치로부터 제2 통신 제어 장치를 통해 해당 제2 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷이 송신되는 것이며, 제2 정보 처리 장치로부터의 버블 패킷의 송신에 이용된, 제2 통신 제어 장치의 포트를 적어도 포함하는 1 이상의 포트에 대하여 응답 패킷을 송신하는 응답 패킷 송신 단계를 실행시키기 위한 것이다.
또한, 이 프로그램에서는, 컴퓨터에서, 응답 패킷을 송신하는 포트의 범위를 나타내는 정보인 범위 정보를 수신하는 범위 수신 단계를 추가로 실행시키고, 응답 패킷 송신 단계에서는, 범위 정보가 나타내는 범위의 포트에 응답 패킷을 송신해도 무방하다.
또한, 이 프로그램은, 컴퓨터에서, 제2 통신 제어 장치의 포트 폭을 나타내는 정보인 포트 폭 정보를 수신하는 포트 폭 수신 단계를 추가로 실행시키고, 응답 패킷 송신 단계에서는, 포트 폭 정보가 나타내는 포트 폭마다 응답 패킷을 송신해도 무방하다.
또한, 상기 각 실시예에서의 서버를 실현하는 소프트웨어는, 이하와 같은 프로그램이다. 즉 이 프로그램은, 컴퓨터에서, 제1 정보 처리 장치 및 제2 정보 처리 장치가, 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치 및 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해 행하는 통신을 확립시키는 서버에서의 처리를 실행시키기 위한 프로그램으로서, 제1 정보 처리 장치 및 제2 정보 처리 장치와 정보를 송수신하는 정보 송수신 단계와, 제1 통신 제어 장치 및 제2 통신 제어 장치의 특성을 판단하는 특성 판단 단계와, 특성 판단 단계에서 의 판단 결과에 따라 제1 정보 처리 장치 및 제2 정보 처리 장치 중 어느 하나를 송신측(송신측 정보 처리 장치)으로 결정하고 타측을 수신측(수신측 정보 처리 장치)으로 결정하는 송수신 결정 단계를 실행시키기 위한 것이다.
또한, 이 프로그램에서는, 컴퓨터에서, 수신측 정보 처리 장치의 통신을 제어하는 통신 제어 장치(수신측 통신 제어 장치)에 있어서의, 송신측 정보 처리 장치가, 송신측 정보 처리 장치의 통신을 제어하는 통신 제어 장치(송신측 통신 제어 장치)에 송신 이력을 남기기 위한 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를, 송신측 정보 처리 장치에 송신하는 버블 패킷 송신 대상 포트 송신 단계를 추가로 실행시켜도 무방하다.
또한, 이 프로그램에서는, 버블 패킷 송신 대상 포트 정보가 나타내는 버블 패킷 송신 대상 포트가, 정보 송수신부와 수신측 정보 처리 장치와의 통신에서 이용되는, 수신측 통신 제어 장치의 포트라도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 송신측 정보 처리 장치로부터, 수신측 통신 제어 장치에서의 버블 패킷 송신 대상 포트에 대한 버블 패킷의 송신에서 이용되는, 송신측 통신 제어 장치의 포트인 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위한 범위 검출용 패킷을 수신함으로써 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출 단계와, 범위 검출 단계에서 검출한 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신 단계를 추가로 실행시켜도 무방하다.
또한, 이 프로그램에서는, 범위 검출 단계에서, 다수의 어드레스에 송신된 범위 검출용 패킷에 기초하여 검출을 행해도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 송신측 정보 처리 장치로부터 송신측 통신 제어 장치를 통해 송신된, 송신측 통신 제어 장치에서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을 수신하고, 해당 포트 폭 검출용 패킷에 기초하여 송신측 통신 제어 장치에서의 포트 폭을 검출하는 포트 폭 검출 단계와, 포트 폭 검출 단계에서 검출한 송신측 통신 제어 장치의 포트 폭을 나타내는 정보인 포트 폭 정보를 송신하는 포트 폭 송신 단계를 추가로 실행시켜도 무방하다.
또한, 상기 프로그램에서는, 컴퓨터에서, 범위 검출용 패킷이 통과한 제1 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신 단계와, 검출용 포트 정보 수신 단계에서 수신한 검출용 포트 정보에 기초하여 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출 단계와, 범위 검출 단계에서 검출한 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신 단계를 추가로 실행시켜도 무방하다.
또한, 상기 프로그램에서는, 컴퓨터에서, 포트 폭 검출용 패킷이 통과한 제1 통신 제어 장치의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 수신하는 포트 폭 검출용 포트 정보 수신 단계와, 포트 폭 검출용 포트 정보 수신 단계에서 수신한 포트 폭 검출용 포트 정보에 기초하여 제1 통신 제어 장치에서의 포트 폭을 검출하는 포트 폭 검출 단계와, 포트 폭 검출 단계에서 검출한 제1 통신 제어 장치 의 포트 폭을 나타내는 정보인 포트 폭 정보를 서버를 통해 제2 정보 처리 장치에 송신하는 포트 폭 송신 단계를 추가로 실행시켜도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 제2 통신 제어 장치에서의 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를 수신하는 버블 패킷 송신 대상 포트 수신 단계를 추가로 실행키고, 버블 패킷 송신 단계에서는 버블 패킷 송신 대상 포트 정보가 나타내는 버블 패킷 송신 대상 포트에 버블 패킷을 송신해도 무방하다.
또한, 상기 프로그램에서는, 버블 패킷 송신 대상 포트 정보가, 1 이상의 버블 패킷 송신 대상 포트의 위치를 나타내는 정보로서, 버블 패킷 송신 단계에 있어서 버블 패킷 송신 대상 포트 정보가 나타내는 1 이상의 버블 패킷 송신 대상 포트에 버블 패킷을 송신해도 무방하다.
또한, 상기 프로그램에서는, 컴퓨터에서, 응답 패킷을 송신하기 위한 포트를 제1 통신 제어 장치에서 할당하기 위한 포트 할당 패킷을 송신하는 포트 할당 패킷 송신 단계를 추가로 실행시키고, 응답 패킷 송신 단계에 있어서 포트 할당 패킷이 송신된 제1 정보 처리 장치의 포트로부터 응답 패킷을 송신해도 무방하다.
또한, 상기 프로그램에서는, 컴퓨터에서, 포트 할당 패킷의 송신에서 이용되는, 제1 통신 제어 장치의 포트인 포트 할당 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 송신하는 범위 검출용 패킷 송신 단계를 추가로 실행시켜도 무방하다.
또한, 상기 각 실시예에서의 정보 처리 장치를 실현하는 소프트웨어는, 이하 와 같은 프로그램이다. 즉 이 프로그램은, 컴퓨터에서, 정보 처리 장치, 정보 처리 장치의 통신을 제어하는 통신 제어 장치, 및 서버를 구비하는 통신 시스템을 구성하는 정보 처리 장치에서의 처리를 실행시키기 위한 프로그램으로서, 통신 제어 장치를 통해 통신 제어 장치에 송신 이력을 남기기 위한 1 이상의 버블 패킷을 송신하는 버블 패킷 송신 단계와, 1 이상의 버블 패킷의 송신에서 이용되는, 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 송신하는 범위 검출용 패킷 송신 단계를 실행시키기 위한 것이다.
또한, 이 프로그램에서는, 컴퓨터에서, 범위 검출용 패킷이 통과한 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신 단계와, 검출용 포트 정보 수신 단계에서 수신한 검출용 포트 정보에 기초하여 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출 단계를 추가로 실행시켜도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 범위 검출 단계에서 검출한 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신 단계를 추가로 실행시켜도 무방하다.
또한, 상기 각 실시예에서의 서버 장치를 실현하는 소프트웨어는, 이하와 같은 프로그램이다. 즉 이 프로그램은, 컴퓨터에서, 정보 처리 장치, 정보 처리 장치의 통신을 제어하는 통신 제어 장치, 및 서버를 구비하는 통신 시스템을 구성하는 서버에서의 처리를 실행시키기 위한 프로그램으로서, 통신 제어 장치에 송신 이력 을 남기기 위하여 송신되는 1 이상의 버블 패킷의 송신에서 이용되는, 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는, 정보 처리 장치로부터 송신된 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷에 기초하여 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출 단계와, 범위 검출 단계에서 검출한 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신 단계를 실행시키기 위한 것이다.
또한, 다른 프로그램은, 컴퓨터에서, 정보 처리 장치, 정보 처리 장치의 통신을 제어하는 통신 제어 장치 및 서버를 구비하는 통신 시스템을 구성하는 서버에서의 처리를 실행시키기 위한 프로그램으로서, 통신 제어 장치에 송신 이력을 남기기 위하여 송신되는 1 이상의 버블 패킷의 송신에서 이용되는, 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는, 정보 처리 장치로부터 송신된 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷이 통과한 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출 단계와, 검출용 포트 검출 단계에서 검출한 포트의 위치를 나타내는 검출용 포트 정보를 정보 처리 장치에 송신하는 검출용 포트 정보 송신 단계를 실행시키는 것이다.
또한, 상기 프로그램에 있어서, 정보를 송신하는 송신 단계나 정보를 수신하는 수신 단계 등에는, 하드웨어에 의해 행해지는 처리, 예를 들면 송신 단계에서의 모뎀이나 인터페이스 카드 등에서 행해지는 처리(하드웨어로밖에 행할 수 없는 처 리)는 포함되지 않는다.
또한, 이 프로그램은, 서버 등으로부터 다운로드됨으로써 유통해도 무방하고, 소정의 기록 매체(예를 들면 CD-ROM 등의 광 디스크나 자기 디스크, 반도체 메모리 등)에 기록됨으로써 유통해도 무방하다.
또한, 이 프로그램을 실행하는 컴퓨터는 단수이어도 되고 다수개여도 무방하다. 즉, 집중 처리를 행해도 되고, 혹은 분산 처리를 행해도 된다.
이와 같이, 본 발명에 의한 통신 시스템 등은, 통신 제어 장치를 통한 다수의 정보 처리 장치 간에서의 통신을 확립할 수 있어, 정보 처리 장치 간에서의 통신을 행하는 것으로서 유용하다.

Claims (106)

  1. 제1 정보 처리 장치와, 제2 정보 처리 장치와, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치와, 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치와, 상기 제1 정보 처리 장치와 상기 제2 정보 처리 장치 간의 통신을 확립시키는 서버를 구비한 통신 시스템으로서,
    상기 제1 정보 처리 장치는,
    상기 제1 통신 제어 장치를 통해, 상기 제1 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 상기 제2 통신 제어 장치에 송신하는 버블 패킷 송신부와,
    상기 버블 패킷의 송신에서 이용되는, 상기 제1 통신 제어 장치의 포트인 버블 패킷 송신 포트에 대하여, 상기 제2 정보 처리 장치로부터 상기 제2 통신 제어 장치를 통해 송신되는 응답 패킷을 수신하는 응답 패킷 수신부를 구비하고,
    상기 제2 정보 처리 장치는,
    상기 버블 패킷 송신 포트를 적어도 포함하는 1 이상의 포트에 대하여 상기 응답 패킷을 송신하는 응답 패킷 송신부를 구비한 것을 특징으로 하는 통신 시스템.
  2. 제1 항에 있어서,
    상기 제1 정보 처리 장치는,
    상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 상기 서버에 송신하는 범위 검출용 패킷 송신부를 더 구비하고,
    상기 서버는,
    상기 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷에 기초하여 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출부와,
    상기 범위 검출부가 검출한 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 상기 제2 정보 처리 장치에 송신하는 범위 송신부를 더 구비하고,
    상기 제2 정보 처리 장치는,
    상기 범위 정보를 수신하는 범위 수신부를 더 구비하고,
    상기 응답 패킷 송신부는, 상기 범위 정보가 나타내는 범위의 포트에 상기 응답 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  3. 제1 또는 제2 항에 있어서,
    상기 서버는,
    상기 제2 통신 제어 장치에서의, 상기 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를 상기 제1 정보 처리 장치에 송신하는 버블 패킷 송신 대상 포트 송신부를 더 구비하고,
    상기 제1 정보 처리 장치는,
    상기 버블 패킷 송신 대상 포트 정보를 수신하는 버블 패킷 송신 대상 포트 수신부를 더 구비하고,
    상기 버블 패킷 송신부는, 상기 버블 패킷 송신 대상 포트 정보가 나타내는 버블 패킷 송신 대상 포트에 상기 버블 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  4. 제1 항에 있어서,
    상기 제1 정보 처리 장치는,
    상기 제1 통신 제어 장치에서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을 상기 제1 통신 제어 장치를 통해 상기 서버에 송신하는 포트 폭 검출용 패킷 송신부를 더 구비하고,
    상기 서버는,
    상기 포트 폭 검출용 패킷을 수신하고, 해당 포트 폭 검출용 패킷에 기초하여 상기 제1 통신 제어 장치에서의 포트 폭을 검출하는 포트 폭 검출부와,
    상기 포트 폭 검출부가 검출한 상기 제1 통신 제어 장치의 포트 폭을 나타내는 정보인 포트 폭 정보를 상기 제2 정보 처리 장치에 송신하는 포트 폭 송신부를 더 구비하고,
    상기 제2 정보 처리 장치는,
    상기 포트 폭 정보를 수신하는 포트 폭 수신부를 더 구비하고,
    상기 응답 패킷 송신부는, 상기 포트 폭 정보가 나타내는 포트 폭마다 상기 응답 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  5. 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치와, 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해, 상기 제2 정보 처리 장치와 통신하는 상기 제1 정보 처리 장치로서,
    상기 제1 통신 제어 장치를 통해 상기 제1 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 상기 제2 통신 제어 장치에 송신하는 버블 패킷 송신부와,
    상기 버블 패킷의 송신에서 이용되는, 상기 제1 통신 제어 장치의 포트인 버블 패킷 송신 포트에 대하여, 상기 제2 정보 처리 장치로부터 상기 제2 통신 제어 장치를 통해 송신되는 응답 패킷을 수신하는 응답 패킷 수신부를 구비한 제1 정보 처리 장치.
  6. 제5 항에 있어서,
    상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 송신하는 범위 검출용 패킷 송신부를 더 구비한 것을 특징으로 하는 제1 정보 처리 장치.
  7. 제6 항에 있어서,
    상기 범위 검출용 패킷 송신부는, 상기 버블 패킷 송신부가 상기 버블 패킷 을 송신하는 전후에 있어서, 각각 상기 범위 검출용 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  8. 제7 항에 있어서,
    상기 범위 검출용 패킷 송신부는, 상기 버블 패킷의 송신의 전후에, 각각 다른 어드레스에 상기 범위 검출용 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  9. 제7 항에 있어서,
    상기 범위 검출용 패킷 송신부는, 상기 버블 패킷의 송신의 전후에, 각각 상기 제1 정보 처리 장치에서 새롭게 할당된 포트를 이용하여 상기 범위 검출용 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  10. 제5 내지 제9 항 중 어느 한 항에 있어서,
    상기 제2 통신 제어 장치에서의 상기 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를 수신하는 버블 패킷 송신 대상 포트 수신부를 더 구비하고,
    상기 버블 패킷 송신부는, 상기 버블 패킷 송신 대상 포트 정보가 나타내는 버블 패킷 송신 대상 포트에 상기 버블 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  11. 제10 항에 있어서,
    상기 버블 패킷 송신 대상 포트는, 상기 제2 정보 처리 장치가, 상기 제1 정보 처리 장치와 상기 제2 정보 처리 장치 간의 통신을 확립시키는 서버와의 사이에서 정보의 송수신을 행하는 포트인 것을 특징으로 하는 제1 정보 처리 장치.
  12. 제5 항에 있어서,
    상기 제1 통신 제어 장치에서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을 상기 제1 통신 제어 장치를 통해 송신하는 포트 폭 검출용 패킷 송신부를 더 구비한 것을 특징으로 하는 제1 정보 처리 장치.
  13. 제5 항에 있어서,
    상기 제1 통신 제어 장치는, 상기 제2 정보 처리 장치로부터, 상기 제2 통신 제어 장치를 통해 상기 제2 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷이 송신 되는 것으로서,
    상기 제2 정보 처리 장치로부터의 상기 버블 패킷의 송신에서 이용된, 상기 제2 통신 제어 장치의 포트를 적어도 포함하는 1 이상의 포트에 대하여 응답 패킷을 송신하는 응답 패킷 송신부를 더 구비한 것을 특징으로 하는 제1 정보 처리 장치.
  14. 제13 항에 있어서,
    상기 응답 패킷을 송신하는 포트의 범위를 나타내는 정보인 범위 정보를 수신하는 범위 수신부를 더 구비하고,
    상기 응답 패킷 송신부는, 상기 범위 정보가 나타내는 범위의 포트에 상기 응답 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  15. 제13 또는 제14 항에 있어서,
    상기 제2 통신 제어 장치에서의 포트 폭을 나타내는 정보인 포트 폭 정보를 수신하는 포트 폭 수신부를 더 구비하고,
    상기 응답 패킷 송신부는, 상기 포트 폭 정보가 나타내는 포트 폭마다 상기 응답 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  16. 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치와, 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해, 상기 제2 정보 처리 장치와 통신하는 상기 제1 정보 처리 장치로서,
    상기 제1 통신 제어 장치는, 상기 제2 정보 처리 장치로부터, 상기 제2 통신 제어 장치를 통해 해당 제2 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷이 송신 되는 것으로서,
    상기 제2 정보 처리 장치로부터의 상기 버블 패킷의 송신에 이용된, 상기 제2 통신 제어 장치의 포트를 적어도 포함하는 1 이상의 포트에 대하여 응답 패킷 을 송신하는 응답 패킷 송신부를 구비한 제1 정보 처리 장치.
  17. 제16 항에 있어서,
    상기 응답 패킷을 송신하는 포트의 범위를 나타내는 정보인 범위 정보를 수신하는 범위 수신부를 더 구비하고,
    상기 응답 패킷 송신부는, 상기 범위 정보가 나타내는 범위의 포트에 상기 응답 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  18. 제16 또는 제17 항에 있어서,
    상기 제2 통신 제어 장치에서의 포트 폭을 나타내는 정보인 포트 폭 정보를 수신하는 포트 폭 수신부를 더 구비하고,
    상기 응답 패킷 송신부는, 상기 포트 폭 정보가 나타내는 포트 폭마다 상기 응답 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  19. 제1 정보 처리 장치 및 제2 정보 처리 장치가, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치 및 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해 행하는 통신을 확립시키는 서버로서,
    상기 제1 정보 처리 장치 및 상기 제2 정보 처리 장치와, 정보를 송수신하는 정보 송수신부와,
    상기 제1 통신 제어 장치 및 상기 제2 통신 제어 장치의 특성을 판단하는 특 성 판단부와,
    상기 특성 판단부에 의한 판단 결과에 따라, 상기 제1 정보 처리 장치 및 상기 제2 정보 처리 장치 중 어느 하나를 송신측(송신측 정보 처리 장치)으로 결정하고, 타측을 수신측(수신측 정보 처리 장치)으로 결정하는 송수신 결정부를 구비한 것을 특징으로 하는 서버.
  20. 제19 항에 있어서,
    상기 수신측 정보 처리 장치의 통신을 제어하는 통신 제어 장치(수신측 통신 제어 장치)에서의, 상기 송신측 정보 처리 장치가, 상기 송신측 정보 처리 장치의 통신을 제어하는 통신 제어 장치(송신측 통신 제어 장치)에 송신 이력을 남기기 위한 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를, 상기 송신측 정보 처리 장치에 송신하는 버블 패킷 송신 대상 포트 송신부를 더 구비한 것을 특징으로 하는 서버.
  21. 제20 항에 있어서,
    상기 버블 패킷 송신 대상 포트 정보가 나타내는 버블 패킷 송신 대상 포트는, 상기 정보 송수신부와 상기 수신측 정보 처리 장치와의 통신에서 이용되는, 상기 수신측 통신 제어 장치의 포트인 것을 특징으로 하는 서버.
  22. 제20 또는 제21 항에 있어서,
    상기 송신측 정보 처리 장치로부터, 상기 수신측 통신 제어 장치에서의 상기 버블 패킷 송신 대상 포트에 대한 상기 버블 패킷의 송신에서 이용되는, 상기 송신측 통신 제어 장치의 포트인 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위한 범위 검출용 패킷을 수신함으로써, 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출부와,
    상기 범위 검출부가 검출한 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신부를 더 구비한 것을 특징으로 하는 서버.
  23. 제22 항에 있어서,
    상기 범위 검출부는, 다수의 어드레스에 송신된 상기 범위 검출용 패킷에 기초하여 상기 검출을 행하는 것을 특징으로 하는 서버.
  24. 제20 항에 있어서,
    상기 송신측 정보 처리 장치로부터 상기 송신측 통신 제어 장치를 통해 송신된, 상기 송신측 통신 제어 장치에서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을 수신하고, 해당 포트 폭 검출용 패킷에 기초하여 상기 송신측 통신 제어 장치에서의 포트 폭을 검출하는 포트 폭 검출부와,
    상기 포트 폭 검출부가 검출한 상기 송신측 통신 제어 장치의 포트 폭을 나타내는 정보인 포트 폭 정보를 송신하는 포트 폭 송신부를 더 구비한 것을 특징으 로 하는 서버.
  25. 제1 정보 처리 장치 및 제2 정보 처리 장치가, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치 및 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해 통신을 행하는 통신 방법으로서,
    상기 제1 정보 처리 장치가, 상기 제1 통신 제어 장치를 통해 해당 제1 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 상기 제2 통신 제어 장치에 대하여 송신하는 버블 패킷 송신 단계와,
    상기 제2 정보 처리 장치가, 상기 버블 패킷 송신 단계에서의 버블 패킷의 송신에서 이용된 상기 제1 통신 제어 장치의 포트인 버블 패킷 송신 포트를 적어도 포함하는 1 이상의 포트에 대하여, 상기 제2 통신 제어 장치를 통해 응답 패킷을 송신하는 반신 단계를 구비한 것을 특징으로 하는 통신 방법.
  26. 제25 항에 있어서,
    상기 제1 정보 처리 장치가 상기 제2 통신 제어 장치의 어드레스를 취득하는 제1 어드레스 취득 단계를 더 구비하고,
    상기 버블 패킷 송신 단계에서는, 상기 제1 어드레스 취득 단계에서 취득한 어드레스에 대하여 상기 버블 패킷을 송신하는 것을 특징으로 하는 통신 방법.
  27. 제25 또는 제26 항에 있어서,
    상기 제2 정보 처리 장치가 상기 제1 통신 제어 장치의 어드레스를 취득하는 제2 어드레스 취득 단계를 더 구비하고,
    상기 반신 단계에서는, 상기 제2 어드레스 취득 단계에서 취득한 어드레스에 대하여 상기 응답 패킷을 송신하는 것을 특징으로 하는 통신 방법.
  28. 제25 항에 있어서,
    상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출 단계를 더 구비하고,
    상기 반신 단계에서는, 범위 검출 단계에서 검출된 범위의 포트에 대하여, 상기 응답 패킷을 송신하는 것을 특징으로 하는 통신 방법.
  29. 제28 항에 있어서,
    상기 범위 검출 단계는,
    상기 제1 정보 처리 장치가, 상기 범위를 검출하기 위하여 이용되는 제1 범위 검출용 패킷을 상기 버블 패킷의 송신 전에 송신하는 단계와,
    상기 제1 범위 검출용 패킷을 수신하고, 상기 제1 범위 검출용 패킷의 송신에서 이용된 상기 제1 통신 제어 장치의 포트의 위치를 검출하는 단계와,
    상기 제1 정보 처리 장치가, 상기 범위를 검출하기 위하여 이용되는 제2 범위 검출용 패킷을 상기 버블 패킷의 송신 후에 송신하는 단계와,
    상기 제2 범위 검출용 패킷을 수신하고, 상기 제2 범위 검출용 패킷의 송신 에서 이용된 상기 제1 통신 제어 장치의 포트의 위치를 검출하는 단계를 포함하는 것을 특징으로 하는 통신 방법.
  30. 제29 항에 있어서,
    상기 제1 범위 검출용 패킷과, 상기 제2 범위 검출용 패킷은, 다른 어드레스에 송신되는 것을 특징으로 하는 통신 방법.
  31. 제29 항에 있어서,
    상기 제1 범위 검출용 패킷과, 상기 제2 범위 검출용 패킷은, 상기 제1 정보 처리 장치에서 새롭게 할당된 포트를 이용해서 송신되는 것을 특징으로 하는 통신 방법.
  32. 제25 항에 있어서,
    상기 제2 통신 제어 장치에서의, 상기 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트는, 상기 제2 정보 처리 장치가, 상기 제1 정보 처리 장치와 상기 제2 정보 처리 장치 간의 통신을 확립시키는 서버와의 사이에서 정보의 송수신을 행하는 포트인 것을 특징으로 하는 통신 방법.
  33. 제25 항에 있어서,
    상기 제1 통신 제어 장치 및/또는 상기 제2 통신 제어 장치의 특성을 판단하 는 특성 판단 단계와,
    상기 특성 판단 단계에서 판단된 특성에 따라, 상기 제1 정보 처리 장치 및 상기 제2 정보 처리 장치의 역할을 전환하는 전환 단계를 더 구비한 것을 특징으로 하는 통신 방법.
  34. 제25 항에 있어서,
    상기 반신 단계에 있어서, 2 이상의 포트에 대하여 상기 응답 패킷을 송신하는 경우에는, 상기 제1 통신 제어 장치에서의 포트 폭의 간격으로 송신하는 것을 특징으로 하는 통신 방법.
  35. 제34 항에 있어서,
    상기 제1 통신 제어 장치에서의 포트 폭을 검출하는 포트 폭 검출 단계를 더 구비하고,
    상기 반신 단계에서는, 상기 포트 폭 검출 단계에서 검출된 포트 폭의 간격으로 상기 응답 패킷을 송신하는 것을 특징으로 하는 통신 방법.
  36. 컴퓨터에서,
    제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치와, 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해, 상기 제2 정보 처리 장치와 통신하는 상기 제1 정보 처리 장치에서의 처리를 실행시키기 위한 프로그램으로 서,
    상기 제1 통신 제어 장치를 통해 상기 제1 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 상기 제2 통신 제어 장치에 송신하는 버블 패킷 송신 단계와,
    상기 버블 패킷의 송신에서 이용되는, 상기 제1 통신 제어 장치의 포트인 버블 패킷 송신 포트에 대하여, 상기 제2 정보 처리 장치로부터 상기 제2 통신 제어 장치를 통해 송신되는 응답 패킷을 수신하는 응답 패킷 수신 단계를 실행시키기 위한 프로그램.
  37. 제36 항에 있어서,
    컴퓨터에서,
    상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 송신하는 범위 검출용 패킷 송신 단계를 더 실행시키기 위한 프로그램.
  38. 제37 항에 있어서,
    상기 범위 검출용 패킷 송신 단계에서는, 상기 버블 패킷 송신 단계에서의 상기 버블 패킷의 송신의 전후에 있어서, 각각 상기 범위 검출용 패킷을 송신하는 것을 특징으로 하는 프로그램.
  39. 제38 항에 있어서,
    상기 범위 검출용 패킷 송신 단계에서는, 상기 버블 패킷의 송신의 전후에, 각각 다른 어드레스에 상기 범위 검출용 패킷을 송신하는 것을 특징으로 하는 프로그램.
  40. 제38 항에 있어서,
    상기 범위 검출용 패킷 송신 단계에서는, 상기 버블 패킷의 송신의 전후에, 각각 상기 제1 정보 처리 장치에서 새롭게 할당된 포트를 이용하여 상기 범위 검출용 패킷을 송신하는 것을 특징으로 하는 프로그램.
  41. 제36 내지 제40 항 중 어느 한 항에 있어서,
    컴퓨터에서,
    상기 제2 통신 제어 장치에서의 상기 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를 수신하는 버블 패킷 송신 대상 포트 수신 단계를 더 실행시키고,
    상기 버블 패킷 송신 단계에서는, 상기 버블 패킷 송신 대상 포트 정보가 나타내는 버블 패킷 송신 대상 포트에 상기 버블 패킷을 송신하는 것을 특징으로 하는 프로그램.
  42. 제41 항에 있어서,
    상기 버블 패킷 송신 대상 포트는, 상기 제2 정보 처리 장치가, 상기 제1 정보 처리 장치와 상기 제2 정보 처리 장치 간의 통신을 확립시키는 서버와의 사이에서 정보의 송수신을 행하는 포트인 것을 특징으로 하는 프로그램.
  43. 제36 항에 있어서,
    컴퓨터에서,
    상기 제1 통신 제어 장치에서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을, 상기 제1 통신 제어 장치를 통해 송신하는 포트 폭 검출용 패킷 송신 단계를 더 실행시키기 위한 프로그램.
  44. 제36 항에 있어서,
    상기 제1 통신 제어 장치는, 상기 제2 정보 처리 장치로부터 상기 제2 통신 제어 장치를 통해 상기 제2 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷이 송신 되는 것으로서,
    컴퓨터에서,
    상기 제2 정보 처리 장치로부터의 상기 버블 패킷의 송신에서 이용된, 상기 제2 통신 제어 장치의 포트를 적어도 포함하는 1 이상의 포트에 대하여 응답 패킷을 송신하는 응답 패킷 송신 단계를 더 실행시키기 위한 프로그램.
  45. 제44 항에 있어서,
    컴퓨터에서,
    상기 응답 패킷을 송신하는 포트의 범위를 나타내는 정보인 범위 정보를 수신하는 범위 수신 단계를 더 실행시키고,
    상기 응답 패킷 송신 단계에서는, 상기 범위 정보가 나타내는 범위의 포트에 상기 응답 패킷을 송신하는 것을 특징으로 하는 프로그램.
  46. 제44 또는 제45 항에 있어서,
    컴퓨터에서,
    상기 제2 통신 제어 장치에서의 포트 폭을 나타내는 정보인 포트 폭 정보를 수신하는 포트 폭 수신 단계를 더 실행시키고,
    상기 응답 패킷 송신 단계에서는, 상기 포트 폭 정보가 나타내는 포트 폭마다 상기 응답 패킷을 송신하는 것을 특징으로 하는 프로그램.
  47. 컴퓨터에서,
    제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치와, 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해, 상기 제2 정보 처리 장치와 통신하는 상기 제1 정보 처리 장치에서의 처리를 실행시키기 위한 프로그램으로서,
    상기 제1 통신 제어 장치는, 상기 제2 정보 처리 장치로부터 상기 제2 통신 제어 장치를 통해 해당 제2 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷 이 송신 되는 것이고,
    상기 제2 정보 처리 장치로부터의 상기 버블 패킷의 송신에서 이용된, 상기 제2 통신 제어 장치의 포트를 적어도 포함하는 1 이상의 포트에 대하여 응답 패킷을 송신하는 응답 패킷 송신 단계를 실행시키기 위한 프로그램.
  48. 제47 항에 있어서,
    컴퓨터에서,
    상기 응답 패킷을 송신하는 포트의 범위를 나타내는 정보인 범위 정보를 수신하는 범위 수신 단계를 더 실행시키고,
    상기 응답 패킷 송신 단계에서는, 상기 범위 정보가 나타내는 범위의 포트에 상기 응답 패킷을 송신하는 것을 특징으로 하는 프로그램.
  49. 제47 또는 제48 항에 있어서,
    컴퓨터에서,
    상기 제2 통신 제어 장치에서의 포트 폭을 나타내는 정보인 포트 폭 정보를 수신하는 포트 폭 수신 단계를 더 실행시키고,
    상기 응답 패킷 송신 단계에서는, 상기 포트 폭 정보가 나타내는 포트 폭마다 상기 응답 패킷을 송신하는 것을 특징으로 하는 프로그램.
  50. 컴퓨터에서,
    제1 정보 처리 장치 및 제2 정보 처리 장치가, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치 및 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해 행하는 통신을 확립시키는 서버에서의 처리를 실행시키기 위한 프로그램으로서,
    상기 제1 정보 처리 장치 및 상기 제2 정보 처리 장치와 정보를 송수신 하는 정보 송수신 단계와,
    상기 제1 통신 제어 장치 및 상기 제2 통신 제어 장치의 특성을 판단하는 특성 판단 단계와,
    상기 특성 판단 단계에서의 판단 결과에 따라, 상기 제1 정보 처리 장치 및 상기 제2 정보 처리 장치 중 어느 하나를 송신측(송신측 정보 처리 장치)으로 결정하고, 타측을 수신측(수신측 정보 처리 장치)으로 결정하는 송수신 결정 단계를 실행시키기 위한 프로그램.
  51. 제1 항에 있어서,
    상기 제1 정보 처리 장치는,
    상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 상기 서버에 송신하는 범위 검출용 패킷 송신부와,
    상기 범위 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신부와,
    상기 검출용 포트 정보 수신부가 수신한 검출용 포트 정보에 기초하여, 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출부와,
    상기 범위 검출부가 검출한 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신부를 더 구비하고,
    상기 서버는,
    상기 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출부와,
    상기 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 상기 제1 정보 처리 장치에 송신하는 검출용 포트 정보 송신부를 더 구비하고,
    상기 제2 정보 처리 장치는,
    상기 범위 정보를 수신하는 범위 수신부를 더 구비하고,
    상기 응답 패킷 송신부는, 상기 범위 정보가 나타내는 범위의 포트에 상기 응답 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  52. 제1, 2 또는 제51 항에 있어서,
    상기 제1 정보 처리 장치는,
    상기 제1 통신 제어 장치에서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을, 상기 제1 통신 제어 장치를 통해 상기 서버에 송신하는 포트 폭 검출용 패킷 송신부와,
    상기 포트 폭 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치 를 나타내는 포트 폭 검출용 포트 정보를 수신하는 포트 폭 검출용 포트 정보 수신부와,
    상기 포트 폭 검출용 포트 정보 수신부가 수신한 포트 폭 검출용 포트 정보에 기초하여, 상기 제1 통신 제어 장치에서의 포트 폭을 검출하는 포트 폭 검출부와,
    상기 포트 폭 검출부가 검출한 상기 제1 통신 제어 장치의 포트 폭을 나타내는 정보인 포트 폭 정보를, 상기 서버를 통해 상기 제2 정보 처리 장치에 송신하는 포트 폭 송신부를 더 구비하고,
    상기 서버는,
    상기 포트 폭 검출용 패킷을 수신하고, 해당 포트 폭 검출용 패킷에 기초하여 상기 포트 폭 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 검출하는 포트 폭 검출용 포트 검출부와,
    상기 포트 폭 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 상기 제1 정보 처리 장치에 송신하는 포트 폭 검출용 포트 정보 송신부를 더 구비하고,
    상기 제2 정보 처리 장치는,
    상기 포트 폭 정보를 수신하는 포트 폭 수신부를 더 구비하고,
    상기 응답 패킷 송신부는, 상기 포트 폭 정보가 나타내는 포트 폭마다 상기 응답 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  53. 제51 항에 있어서,
    상기 서버는,
    상기 제2 통신 제어 장치에서의, 상기 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를 상기 제1 정보 처리 장치에 송신하는 버블 패킷 송신 대상 포트 송신부를 더 구비하고,
    상기 제1 정보 처리 장치는,
    상기 버블 패킷 송신 대상 포트 정보를 수신하는 버블 패킷 송신 대상 포트 수신부를 더 구비하고,
    상기 버블 패킷 송신부는, 상기 버블 패킷 송신 대상 포트 정보가 나타내는 버블 패킷 송신 대상 포트에 상기 버블 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  54. 제6 내지 제9 항 중 어느 한 항에 있어서,
    상기 범위 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신부와,
    상기 검출용 포트 정보 수신부가 수신한 검출용 포트 정보에 기초하여, 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출부와,
    상기 범위 검출부가 검출한 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신부를 더 구비한 것을 특징으 로 하는 제1 정보 처리 장치.
  55. 제54 항에 있어서,
    상기 제2 통신 제어 장치에서의 상기 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를 수신하는 버블 패킷 송신 대상 포트 수신부를 더 구비하고,
    상기 버블 패킷 송신부는, 상기 버블 패킷 송신 대상 포트 정보가 나타내는 버블 패킷 송신 대상 포트에 상기 버블 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  56. 제55 항에 있어서,
    상기 포트 폭 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 수신하는 포트 폭 검출용 포트 정보 수신부와,
    상기 포트 폭 검출용 포트 정보 수신부가 수신한 포트 폭 검출용 포트 정보에 기초하여, 상기 제1 통신 제어 장치에서의 포트 폭을 검출하는 포트 폭 검출부와,
    상기 포트 폭 검출부가 검출한 상기 제1 통신 제어 장치의 포트 폭을 나타내는 정보인 포트 폭 정보를, 상기 서버를 통해 상기 제2 정보 처리 장치에 송신하는 포트 폭 송신부를 더 구비한 것을 특징으로 하는 제1 정보 처리 장치.
  57. 제1 정보 처리 장치 및 제2 정보 처리 장치가, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치 및 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해 행하는 통신을 확립시키는 서버로서,
    상기 제1 정보 처리 장치로부터, 상기 제2 통신 제어 장치에 대한 상기 제1 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷의 송신에서 이용되는, 상기 제1 통신 제어 장치의 포트인 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위한 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출부와,
    상기 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 상기 제1 정보 처리 장치에 송신하는 검출용 포트 정보 송신부를 구비한 서버.
  58. 제57 항에 있어서,
    상기 제1 정보 처리 장치로부터 상기 제1 통신 제어 장치를 통해 송신된, 상기 제1 통신 제어 장치에서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을 수신하고, 해당 포트 폭 검출용 패킷에 기초하여 상기 포트 폭 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 검출하는 포트 폭 검출용 포트 검출부와,
    상기 포트 폭 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 상기 제1 정보 처리 장치에 송신하는 포트 폭 검출용 포트 정보 송신부를 더 구비한 것을 특징으로 하는 서버.
  59. 제37 내지 제40 항 중 어느 한 항에 있어서,
    컴퓨터에서,
    상기 범위 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신 단계와,
    상기 검출용 포트 정보 수신 단계에서 수신한 검출용 포트 정보에 기초하여, 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출 단계와,
    상기 범위 검출 단계에서 검출한 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신 단계를 더 실행시키기 위한 프로그램.
  60. 제59 항에 있어서,
    컴퓨터에서,
    상기 제2 통신 제어 장치에서의 상기 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를 수신하는 버블 패킷 송신 대상 포트 수신 단계를 더 실행시키고,
    상기 버블 패킷 송신 단계에서는, 상기 버블 패킷 송신 대상 포트 정보가 나타내는 버블 패킷 송신 대상 포트에 상기 버블 패킷을 송신하는 것을 특징으로 하 는 프로그램.
  61. 제60 항에 있어서,
    컴퓨터에서,
    상기 포트 폭 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 수신하는 포트 폭 검출용 포트 정보 수신 단계와,
    상기 포트 폭 검출용 포트 정보 수신 단계에서 수신한 포트 폭 검출용 포트 정보에 기초하여, 상기 제1 통신 제어 장치에서의 포트 폭을 검출하는 포트 폭 검출 단계와,
    상기 포트 폭 검출 단계에서 검출한 상기 제1 통신 제어 장치의 포트 폭을 나타내는 정보인 포트 폭 정보를, 상기 서버를 통해 상기 제2 정보 처리 장치에 송신하는 포트 폭 송신 단계를 더 실행시키기 위한 프로그램.
  62. 제53 항에 있어서,
    상기 버블 패킷 송신 대상 포트 정보는, 1 이상의 버블 패킷 송신 대상 포트의 위치를 나타내는 정보이고,
    상기 버블 패킷 송신부는, 상기 버블 패킷 송신 대상 포트 정보가 나타내는 1 이상의 버블 패킷 송신 대상 포트에 상기 버블 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  63. 제55 항에 있어서,
    상기 버블 패킷 송신 대상 포트 정보는, 1 이상의 버블 패킷 송신 대상 포트의 위치를 나타내는 정보이고,
    상기 버블 패킷 송신부는, 상기 버블 패킷 송신 대상 포트 정보가 나타내는 1 이상의 버블 패킷 송신 대상 포트에 상기 버블 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  64. 제63 항에 있어서,
    상기 버블 패킷 송신 대상 포트 정보가 나타내는 1 이상의 버블 패킷 송신 대상 포트는, 상기 응답 패킷을 송신하기 위한 포트를 상기 제2 통신 제어 장치에서 할당하기 위하여 상기 제2 정보 처리 장치로부터 송신된 포트 할당 패킷이 통과한 상기 제2 통신 제어 장치에서의 포트인 포트 할당 패킷 송신 포트를 포함하는 것을 특징으로 하는 제1 정보 처리 장치.
  65. 제64 항에 있어서,
    상기 제2 통신 제어 장치에서의 포트 폭을 나타내는 정보인 포트 폭 정보를 수신하는 포트 폭 수신부를 더 구비하고,
    상기 버블 패킷 송신부는, 상기 포트 폭 정보가 나타내는 포트 폭마다 상기 버블 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  66. 제16 항에 있어서,
    상기 응답 패킷을 송신하기 위한 포트를 상기 제1 통신 제어 장치에서 할당하기 위한 포트 할당 패킷을 송신하는 포트 할당 패킷 송신부를 더 구비하고,
    상기 응답 패킷 송신부는, 상기 포트 할당 패킷이 송신된 상기 제1 정보 처리 장치의 포트로부터 상기 응답 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  67. 제66 항에 있어서,
    상기 포트 할당 패킷의 송신에서 이용되는, 상기 제1 통신 제어 장치의 포트인 포트 할당 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 송신하는 범위 검출용 패킷 송신부를 더 구비한 것을 특징으로 하는 제1 정보 처리 장치.
  68. 제67 항에 있어서,
    상기 범위 검출용 패킷 송신부는, 상기 포트 할당 패킷 송신부가 상기 포트 할당 패킷을 송신하는 전후에 있어서, 각각 상기 범위 검출용 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  69. 제68 항에 있어서,
    상기 범위 검출용 패킷 송신부는, 상기 포트 할당 패킷의 송신의 전후에, 각각 상기 제1 정보 처리 장치에서 새롭게 할당된 포트를 이용하여 상기 범위 검출용 패킷을 송신하는 것을 특징으로 하는 제1 정보 처리 장치.
  70. 제67 내지 제69 항 중 어느 한 항에 있어서,
    상기 범위 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신부와,
    상기 검출용 포트 정보 수신부가 수신한 검출용 포트 정보에 기초하여, 상기 포트 할당 패킷이 송신된 상기 제1 통신 제어 장치의 포트를 포함하는 포트의 범위를 검출하는 범위 검출부와,
    상기 범위 검출부가 검출한 상기 포트 할당 패킷이 송신된 상기 제1 통신 제어 장치의 포트를 포함하는 포트의 범위를 나타내는 정보인 버블 패킷 송신 대상 포트 정보를 송신하는 버블 패킷 송신 대상 포트 송신부를 더 구비한 것을 특징으로 하는 제1 정보 처리 장치.
  71. 제66 내지 제69 항 중 어느 한 항에 있어서,
    상기 제1 통신 제어 장치에서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을 상기 제1 통신 제어 장치를 통해 송신하는 포트 폭 검출용 패킷 송신부를 더 구비한 것을 특징으로 하는 제1 정보 처리 장치.
  72. 제71 항에 있어서,
    상기 포트 폭 검출용 패킷이 통과한 상기 제1 통신 제어 장치의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 수신하는 포트 폭 검출용 포트 정보 수신부와,
    상기 포트 폭 검출용 포트 정보 수신부가 수신한 포트 폭 검출용 포트 정보에 기초하여, 상기 제1 통신 제어 장치에서의 포트 폭을 검출하는 포트 폭 검출부와,
    상기 포트 폭 검출부가 검출한 상기 제1 통신 제어 장치의 포트 폭을 나타내는 정보인 포트 폭 정보를, 상기 서버를 통해 상기 제2 정보 처리 장치에 송신하는 포트 폭 송신부를 더 구비한 것을 특징으로 하는 제1 정보 처리 장치.
  73. 제1 정보 처리 장치 및 제2 정보 처리 장치가, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신 제어 장치 및 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신 제어 장치를 통해 행하는 통신을 확립시키는 서버로서,
    상기 제1 정보 처리 장치가 상기 제1 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 송신하는 대상의 상기 제2 통신 제어 장치에서의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를, 상기 제1 정보 처리 장치에 송신하는 버블 패킷 송신 대상 포트 송신부를 구비한 것을 특징으로 하는 서버.
  74. 제73 항에 있어서,
    상기 버블 패킷 송신 대상 포트 정보는, 1 이상의 버블 패킷 송신 대상 포트의 위치를 나타내는 정보이고,
    해당 1 이상의 버블 패킷 송신 대상 포트는, 상기 버블 패킷의 송신에 대하여 상기 제2 정보 처리 장치로부터 송신되는 응답 패킷을 송신하기 위한 포트를, 상기 제2 통신 제어 장치에서 할당하기 위하여 상기 제2 정보 처리 장치로부터 송신된 포트 할당 패킷이 통과한 상기 제2 통신 제어 장치에서의 포트인 포트 할당 패킷 송신 포트를 포함하는 것을 특징으로 하는 서버.
  75. 제74 항에 있어서,
    상기 포트 할당 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위한 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷이 통과한 상기 제2 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출부와,
    상기 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 상기 제2 정보 처리 장치에 송신하는 검출용 포트 정보 송신부와,
    상기 제2 정보 처리 장치로부터 송신된 상기 포트 할당 패킷을 포함하는 포트의 범위를 나타내는 버블 패킷 송신 대상 포트 정보를 수신하는 버블 패킷 송신 대상 포트 수신부를 더 구비하고,
    상기 버블 패킷 송신 대상 포트 송신부는, 상기 버블 패킷 송신 대상 포트 수신부가 수신한 상기 버블 패킷 송신 대상 포트 정보를 송신하는 것을 특징으로 하는 서버.
  76. 제74 항에 있어서,
    상기 포트 할당 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위한 범위 검출용 패킷을 수신하고, 상기 포트 할당 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출부를 더 구비하고,
    상기 버블 패킷 송신 대상 포트 송신부는, 상기 범위 검출부가 검출한 포트의 범위에 기초하여, 상기 버블 패킷 송신 대상 포트 정보를 송신하는 것을 특징으로 하는 서버.
  77. 제74 내지 제76 항 중 어느 한 항에 있어서,
    상기 제2 정보 처리 장치로부터 상기 제2 통신 제어 장치를 통해 송신된, 상기 제2 통신 제어 장치에서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을 수신하고, 해당 포트 폭 검출용 패킷에 기초하여 상기 포트 폭 검출용 패킷이 통과한 상기 제2 통신 제어 장치의 포트의 위치를 검출하는 포트 폭 검출용 포트 검출부와,
    상기 포트 폭 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 상기 제2 정보 처리 장치에 송신하는 포트 폭 검출용 포트 정보 송신부를 더 구비한 것을 특징으로 하는 서버.
  78. 제74 내지 제76 항 중 어느 한 항에 있어서,
    상기 제2 정보 처리 장치로부터 상기 제2 통신 제어 장치를 통해 송신된, 상기 제2 통신 제어 장치에서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을 수신하고, 해당 포트 폭 검출용 패킷에 기초하여 상기 제2 통신 제어 장치에서의 포트 폭을 검출하는 포트 폭 검출부와,
    상기 포트 폭 검출부가 검출한 상기 제2 통신 제어 장치의 포트 폭을 나타내는 정보인 포트 폭 정보를 상기 제1 정보 처리 장치에 송신하는 포트 폭 송신부를 더 구비한 것을 특징으로 하는 서버.
  79. 제25 항에 있어서,
    상기 버블 패킷 송신 단계에서는, 1 이상의 포트에 대하여 상기 버블 패킷을 송신하는 것을 특징으로 하는 통신 방법.
  80. 제41 항에 있어서,
    상기 버블 패킷 송신 대상 포트 정보는, 1 이상의 버블 패킷 송신 대상 포트의 위치를 나타내는 정보이고,
    상기 버블 패킷 송신 단계에서는, 상기 버블 패킷 송신 대상 포트 정보가 나타내는 1 이상의 버블 패킷 송신 대상 포트에 상기 버블 패킷을 송신하는 것을 특징으로 하는 프로그램.
  81. 제48 항에 있어서,
    컴퓨터에서,
    상기 응답 패킷을 송신하기 위한 포트를 상기 제1 통신 제어 장치에서 할당하기 위한 포트 할당 패킷을 송신하는 포트 할당 패킷 송신 단계를 더 실행시키고,
    상기 응답 패킷 송신 단계에서는, 상기 포트 할당 패킷이 송신된 상기 제1 정보 처리 장치의 포트로부터 상기 응답 패킷을 송신하는 것을 특징으로 하는 프로그램.
  82. 제81 항에 있어서,
    컴퓨터에서,
    상기 포트 할당 패킷의 송신에서 이용되는, 상기 제1 통신 제어 장치의 포트인 포트 할당 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 송신하는 범위 검출용 패킷 송신 단계를 더 실행시키기 위한 프로그램.
  83. 정보 처리 장치와, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치와, 서버를 구비한 통신 시스템으로서,
    상기 정보 처리 장치는,
    상기 통신 제어 장치를 통해 상기 통신 제어 장치에 송신 이력을 남기기 위한 1 이상의 버블 패킷을 송신하는 버블 패킷 송신부와,
    1 이상의 상기 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 상기 서버에 송신하는 범위 검출용 패킷 송신부를 구비하고,
    상기 서버는,
    상기 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷에 기초하여 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출부를 구비한 것을 특징으로 하는 통신 시스템.
  84. 제83 항에 있어서,
    상기 서버는,
    상기 범위 검출부가 검출한 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신부를 더 구비한 것을 특징으로 하는 통신 시스템.
  85. 정보 처리 장치와, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치와, 서버를 구비한 통신 시스템으로서,
    상기 정보 처리 장치는,
    상기 통신 제어 장치를 통해 상기 통신 제어 장치에 송신 이력을 남기기 위한 1 이상의 버블 패킷을 송신하는 버블 패킷 송신부와,
    1 이상의 상기 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 상기 서버에 송신하는 범위 검출용 패킷 송신부와,
    상기 범위 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신부와,
    상기 검출용 포트 정보 수신부가 수신한 검출용 포트 정보에 기초하여, 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출부를 구비하고,
    상기 서버는,
    상기 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출부와,
    상기 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 상기 정보 처리 장치에 송신하는 검출용 포트 정보 송신부를 구비한 것을 특징으로 하는 통신 시스템.
  86. 제85 항에 있어서,
    상기 정보 처리 장치는,
    상기 범위 검출부가 검출한 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신부를 더 구비한 것을 특징으로 하는 통신 시스템.
  87. 제84 또는 제86 항에 있어서,
    상기 범위 정보를 수신하는 범위 수신부와,
    상기 범위 정보가 나타내는 범위의 포트에 응답 패킷을 송신하는 응답 패킷 송신부를 구비한 제2 정보 처리 장치를 더 구비하고,
    상기 정보 처리 장치는,
    상기 제2 정보 처리 장치로부터 송신된 응답 패킷을 수신하는 응답 패킷 수신부를 더 구비한 것을 특징으로 하는 통신 시스템.
  88. 제83 또는 제85 항에 있어서,
    상기 범위 검출용 패킷 송신부는, 상기 버블 패킷 송신부가 1 이상의 상기 버블 패킷을 송신하는 전후에 있어서, 각각 상기 범위 검출용 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  89. 제88 항에 있어서,
    상기 범위 검출용 패킷 송신부는, 1 이상의 상기 버블 패킷의 송신의 전후에, 각각 다른 어드레스에 상기 범위 검출용 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  90. 제88 항에 있어서,
    상기 범위 검출용 패킷 송신부는, 1 이상의 상기 버블 패킷의 송신의 전후에, 각각 상기 정보 처리 장치에서 새롭게 할당된 포트를 이용하여 상기 범위 검출용 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  91. 제83 또는 제85 항에 있어서,
    상기 서버는,
    1 이상의 상기 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트의 위치를 나타내는 버블 패킷 송신 대상 포트 정보를 상기 정보 처리 장치에 송신하는 버블 패킷 송신 대상 포트 송신부를 더 구비하고,
    상기 정보 처리 장치는,
    상기 버블 패킷 송신 대상 포트 정보를 수신하는 버블 패킷 송신 대상 포트 수신부를 더 구비하고,
    상기 버블 패킷 송신부는, 상기 버블 패킷 송신 대상 포트 정보가 나타내는 버블 패킷 송신 대상 포트에 1 이상의 상기 버블 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  92. 제 83 또는 제85 항에 기재된 통신 시스템을 구성하는 정보 처리 장치.
  93. 제87 항에 기재된 통신 시스템을 구성하는 제2 정보 처리 장치.
  94. 제 83 또는 제85 항에 기재된 통신 시스템을 구성하는 서버.
  95. 정보 처리 장치, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치 및 서버를 구비하는 통신 시스템에서 이용되는 통신 방법으로서,
    상기 정보 처리 장치가, 상기 통신 제어 장치를 통해 해당 통신 제어 장치에 송신 이력을 남기기 위한 1 이상의 버블 패킷을 통신의 상대편에 대하여 송신하는 버블 패킷 송신 단계와,
    1 이상의 상기 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출 단계를 구비한 통신 방법.
  96. 제95 항에 있어서,
    상기 범위 검출 단계는,
    상기 정보 처리 장치가, 상기 범위를 검출하기 위하여 이용되는 제1 범위 검출용 패킷을 1 이상의 상기 버블 패킷의 송신전에 서버에 송신하는 단계와,
    상기 서버가, 상기 제1 범위 검출용 패킷을 수신하고, 상기 제1 범위 검출용 패킷의 송신에서 이용된 상기 제1 통신 제어 장치의 포트의 위치를 검출하는 단계와,
    상기 정보 처리 장치가, 상기 범위를 검출하기 위하여 이용되는 제2 범위 검출용 패킷을 1 이상의 상기 버블 패킷의 송신후에 서버에 송신하는 단계와,
    상기 서버가, 상기 제2 범위 검출용 패킷을 수신하고, 상기 제2 범위 검출용 패킷의 송신에서 이용된 상기 통신 제어 장치의 포트의 위치를 검출하는 단계를 포함하는 것을 특징으로 하는 통신 방법.
  97. 정보 처리 장치, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치 및 서버를 구비하는 통신 시스템을 구성하는 상기 정보 처리 장치에서 이용되는 통신 방법으로서,
    상기 통신 제어 장치를 통해 상기 통신 제어 장치에 송신 이력을 남기기 위한 1 이상의 버블 패킷을 송신하는 버블 패킷 송신 단계와,
    1 이상의 상기 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 송신하는 범위 검출용 패킷 송신 단계를 구비한 것을 특징으로 하는 통신 방법.
  98. 제97 항에 있어서,
    상기 범위 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신 단계와,
    상기 검출용 포트 정보 수신 단계에서 수신한 검출용 포트 정보에 기초하여, 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출 단계를 더 구비한 것을 특징으로 하는 통신 방법.
  99. 제98 항에 있어서,
    상기 범위 검출 단계에서 검출한 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신 단계를 더 구비한 것을 특징으로 하는 통신 방법.
  100. 정보 처리 장치, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치 및 서버를 구비하는 통신 시스템을 구성하는 상기 서버에서 이용되는 통신 방법으로서,
    상기 통신 제어 장치에 송신 이력을 남기기 위하여 송신되는 1 이상의 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는, 상기 정보 처리 장치로부터 송신된 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷에 기초하여 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출 단계와,
    상기 범위 검출 단계에서 검출한 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신 단계를 구비한 것을 특징으로 하는 통신 방법.
  101. 정보 처리 장치, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치 및 서버를 구비하는 통신 시스템을 구성하는 상기 서버에서 이용되는 통신 방법으로서,
    상기 통신 제어 장치에 송신 이력을 남기기 위하여 송신되는 1 이상의 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는, 상기 정보 처리 장치로부터 송신된 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출 단계와,
    상기 검출용 포트 검출 단계에서 검출한 포트의 위치를 나타내는 검출용 포트 정보를 상기 정보 처리 장치에 송신하는 검출용 포트 정보 송신 단계를 구비한 것을 특징으로 하는 통신 방법.
  102. 컴퓨터에서,
    정보 처리 장치, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치 및 서버를 구비하는 통신 시스템을 구성하는 상기 정보 처리 장치에서의 처리를 실행시키기 위한 프로그램으로서,
    상기 통신 제어 장치를 통해 상기 통신 제어 장치에 송신 이력을 남기기 위한 1 이상의 버블 패킷을 송신하는 버블 패킷 송신 단계와,
    1 이상의 상기 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는 범위 검출용 패킷을 송신하는 범위 검출용 패킷 송신 단계를 실행시키기 위한 프로그램.
  103. 제102 항에 있어서,
    컴퓨터에서,
    상기 범위 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신 단계와,
    상기 검출용 포트 정보 수신 단계에서 수신한 검출용 포트 정보에 기초하여, 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출 단계를 더 실행시키기 위한 프로그램.
  104. 제103 항에 있어서,
    컴퓨터에서,
    상기 범위 검출 단계에서 검출한 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신 단계를 더 실행시키기 위한 프로그램.
  105. 컴퓨터에서,
    정보 처리 장치, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치 및 서버를 구비하는 통신 시스템을 구성하는 상기 서버에서의 처리를 실행시키기 위한 프로그램으로서,
    상기 통신 제어 장치에 송신 이력을 남기기 위하여 송신되는 1 이상의 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는, 상기 정보 처리 장치로부터 송신된 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷에 기초하여 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하는 범위 검출 단계와,
    상기 범위 검출 단계에서 검출한 1 이상의 상기 버블 패킷 송신 포트를 포함하는 포트의 범위를 나타내는 정보인 범위 정보를 송신하는 범위 송신 단계를 실행시키기 위한 프로그램.
  106. 컴퓨터에서,
    정보 처리 장치, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치 및 서버를 구비하는 통신 시스템을 구성하는 상기 서버에서의 처리를 실행시키기 위한 프로그램으로서,
    상기 통신 제어 장치에 송신 이력을 남기기 위하여 송신되는 1 이상의 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 1 이상의 버블 패킷 송신 포트를 포함하는 포트의 범위를 검출하기 위하여 이용되는, 상기 정보 처리 장치로부터 송신된 범위 검출용 패킷을 수신하고, 해당 범위 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출 단계와,
    상기 검출용 포트 검출 단계에서 검출한 포트의 위치를 나타내는 검출용 포 트 정보를 상기 정보 처리 장치에 송신하는 검출용 포트 정보 송신 단계를 실행시키기 위한 프로그램.
KR20067008114A 2003-10-27 2004-10-22 통신 시스템, 정보 처리 장치, 서버 및 통신 방법 KR20060102333A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003365668 2003-10-27
JPJP-P-2003-00365668 2003-10-27

Publications (1)

Publication Number Publication Date
KR20060102333A true KR20060102333A (ko) 2006-09-27

Family

ID=34510185

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20067008114A KR20060102333A (ko) 2003-10-27 2004-10-22 통신 시스템, 정보 처리 장치, 서버 및 통신 방법

Country Status (8)

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

Families Citing this family (8)

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

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7031275B1 (en) * 2000-12-28 2006-04-18 Utstarcom, Inc. Address management for mobile nodes
US6687245B2 (en) * 2001-04-03 2004-02-03 Voxpath Networks, Inc. System and method for performing IP telephony
TWI232655B (en) * 2002-05-07 2005-05-11 Realtek Semiconductor Corp Device and method for network address-port translation
US7280557B1 (en) * 2002-06-28 2007-10-09 Cisco Technology, Inc. Mechanisms for providing stateful NAT support in redundant and asymetric routing environments
WO2004034190A2 (en) * 2002-10-04 2004-04-22 Woodstock Systems, Llc Systems and devices accessing inaccessible servers
JP2004180003A (ja) 2002-11-27 2004-06-24 Kitt Peak:Kk 通信ネットワークシステムおよび通信の接続方法
US7899932B2 (en) * 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
US7245622B2 (en) * 2003-03-27 2007-07-17 Microsoft Corporation Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload
JP3741312B2 (ja) 2003-03-28 2006-02-01 ソニー株式会社 ネットワークシステムおよび通信方法、情報処理装置および方法、並びにプログラム
KR20070065921A (ko) * 2003-11-07 2007-06-25 마쯔시다덴기산교 가부시키가이샤 통신 시스템, 정보 처리 장치, 서버, 및 통신 방법
EP1723533A1 (en) * 2004-03-09 2006-11-22 Clique Communications Llc System and method for peer-to-peer connection of clients behind symmetric firewalls
US7451212B2 (en) * 2004-03-17 2008-11-11 At&T Intellectual Property I, L.P. Logical port configuration system
US8050272B2 (en) * 2004-06-29 2011-11-01 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network

Also Published As

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

Similar Documents

Publication Publication Date Title
US7522594B2 (en) Method and apparatus to permit data transmission to traverse firewalls
KR100770101B1 (ko) 정보 처리 장치, 버블 패킷 송신 방법 및 프로그램
US8234383B2 (en) Bubble packet port identification using detection packets
EP2220852B1 (en) Communicating a selection of a potential configuration
US20090313386A1 (en) Communication apparatus, communication method and communication system
US7929541B2 (en) Communication system, information processing apparatus, server, and communication method
KR20080042909A (ko) 정보 처리 장치, 포트 검출 장치, 정보 처리 방법 및 포트검출 방법
US11621917B2 (en) Transparent multiplexing of IP endpoints
JP3933183B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP4389886B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP3849711B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP4389885B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
Müller et al. On the applicability of knowledge based NAT-traversal for home networks
JP2008205676A (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
JP4389994B2 (ja) 通信システム、情報処理装置、サーバ、および情報処理方法
KR20070023705A (ko) 정보 처리 장치, 포트 검출 장치, 정보 처리 방법 및 포트검출 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid