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

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

Info

Publication number
KR20070065921A
KR20070065921A KR1020077012755A KR20077012755A KR20070065921A KR 20070065921 A KR20070065921 A KR 20070065921A KR 1020077012755 A KR1020077012755 A KR 1020077012755A KR 20077012755 A KR20077012755 A KR 20077012755A KR 20070065921 A KR20070065921 A KR 20070065921A
Authority
KR
South Korea
Prior art keywords
port
detection
packet
information processing
communication control
Prior art date
Application number
KR1020077012755A
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 KR20070065921A publication Critical patent/KR20070065921A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]

Landscapes

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

Abstract

정보 처리 장치와, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치와, 서버를 구비한 통신 시스템으로서, 상기 정보 처리 장치는 상기 통신 제어 장치를 통하여, 상기 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 송신하는 버블 패킷 송신부와, 상기 버블 패킷의 송신에서 이용되는, 상기 통신 제어 장치의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해 이용되는 포트 검출용 패킷을 상기 서버에 송신하는 검출용 패킷 송신부를 구비하는 것을 특징으로 한다.
이러한 구성에 의해, 통신제어장치(NAT)를 통해 통신을 행하는 다수의 정보 처리 장치 간에 있어서의 통신의 확립을, 더욱 확실하게 행할 수 있는 통신 시스템을 제공한다.
정보 처리 장치, 통신제어장치,기준 포트, 버블 패킷

Description

통신 시스템, 정보 처리 장치, 서버, 및 통신 방법{COMMUNICATION SYSTEM, INFORMATION PROCESSING APPARATUS, SERVER, AND COMMUNICATION METHOD}
도 1은 본 발명의 제1 실시예에 의한 통신 시스템의 구성을 나타내는 블럭도.
도 2는 제1 실시예에 의한 제1 정보 처리 장치의 구성을 나타내는 블럭도.
도 3은 제1 실시예에 의한 제2 정보 처리 장치의 구성을 나타내는 블럭도.
도 4는 제1 실시예에 의한 서버의 구성을 나타내는 블럭도.
도 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 실시예에 의한 서버의 구성을 나타내는 블럭도.
도 21은 제2 실시예에 의한 통신의 확립에 관한 처리에 대해서 설명하기 위한 도면.
도 22는 제2 실시예에 의한 통신의 확립에 관한 처리에 대해서 설명하기 위 한 도면.
도 23은 제2 실시예에 의한 통신의 확립에 관한 처리에 대해서 설명하기 위한 도면.
도 24는 본 발명의 제3 실시예에 의한 통신 시스템의 구성을 나타내는 블럭도.
도 25는 다른 실시예에 의한 통신 시스템의 구성을 나타내는 블럭도.
도 26은 본 발명의 제4 실시예에 의한 통신 시스템의 구성을 나타내는 블럭도.
도 27은 제4 실시예에 의한 제1 정보 처리 장치의 구성을 나타내는 블럭도.
도 28은 제4 실시예에 의한 서버의 구성을 나타내는 블럭도.
도 29는 제4 실시예에 의한 통신의 확립에 관한 처리에 대해서 설명하기 위한 도면.
도 30은 제4 실시예에 있어서의 구체예에 대해서 설명하기 위한 도면.
도 31은 제4 실시예에 있어서의 구체예에 대해서 설명하기 위한 도면.
도 32는 NAT의 특성(타입)에 대해서 설명하기 위한 도면.
도 33은 통신 시스템의 일례를 도시한 도면.
도 34는 종래의 접속 가능한 NAT의 조합을 도시한 도면.
(부호의 설명)
1 제1 정보 처리 장치
2 제2 정보 처리 장치
3 제1 통신제어장치
4 제2 통신제어장치
5 통신회선
6 서버
11,21,61 통신부
12 기준 포트 수신부
13 버블 패킷 송신부
14 검출용 패킷 송신부
15,26 포트 폭 검출용 패킷 송신부
16 재송신 지시 수신부
17 응답 패킷 수신부
18 재응답 패킷 수신부
19 포트 폭 수신부
22 기준 포트 검출용 패킷 송신부
23 버블 패킷 송신 포트 수신부
24 응답 패킷 송신부
25 재응답 패킷 수신부
62 기준 포트 검출부
63 기준 포트 송신부
64 포트 폭 검출부
65 버블 패킷 송신 포트 검출부
66 재송신 지시 송신부
67 버블 패킷 송신 포트 송신부
68 포트 폭 송신부
본 발명은, 다수의 정보 처리 장치 간에 있어서의 통신을 확립시키기 위한 통신 시스템 등에 관한 것이다.
우선, NAT(Network Address Translation)의 분류에 관하여 설명한다. NAT에는, 송신 포트 할당 룰과 수신 필터 룰이 있어, 그 조합에 의해 NAT의 분류가 이루어진다. 송신 포트 할당 룰에는, 패킷의 목적지(IP 어드레스, 포트)에 의존하지 않고, NAT의 로컬측(예를 들면, LAN측)의 정보 처리 장치의 포트와 IP 어드레스가 동일하면, NAT에 할당할 수 있는 글로벌측(예를 들면, 인터넷 등의 WAN측)의 포트가 동일하게 되는 Cone타입과, 패킷의 목적지 어드레스 마다에 새로운 포트를 할당하는 어드레스 감응(Address Sensitive) 타입과, 패킷의 목적지 포트 마다에 새로운 포트를 할당하는 포트 감응(Port Sensitive) 타입이 있다. NAT의 로컬측에서 패킷이 송신된 포트에 대하여 글로벌측에서의 패킷의 수신 가능성을 판단하는 수신 필터 룰에는, 그 포트로부터 패킷을 송신한 어드레스로부터 밖에는 패킷을 수신하지 않는 Address Sensitive 필터와, 그 포트로부터 패킷을 송신한 포트로부터 밖에는 패킷을 수신하지 않는 Port Sensitive 필터와, 필터가 존재하지 않는 No 필터가 있다. 이러한 송신 포트 할당 룰과 수신 필터 룰을 조합함으로써, NAT를 하기의 9종류로 분류할 수 있다(도 32 참조).
Full Cone NAT(이하, F NAT라고 한다) : 송신 포트 할당 룰이 Cone 타입이며, 수신 포트 필터 룰이 No 필터인 것.
Restricted Cone NAT(이하, R NAT라고 한다) : 송신 포트 할당 룰이 Cone 타입이며, 수신 포트 필터 룰이 Address Sensitive 필터인 것.
Port Restricted Cone NAT(이하, PR NAT라고 한다) : 송신 포트 할당 룰이 Cone 타입이며, 수신 포트 필터 룰이 Port Sensitive 필터인 것.
Symmetric(a)NAT(이하, Sa NAT라고 한다) : 송신 포트 할당 룰이 Address Sensitive 타입이며, 수신 포트 필터 룰이 No 필터인 것.
Address Sensitive Symmetric NAT(이하, AS NAT 혹은 Sb NAT라고 한다) : 송신 포트 할당 룰이 Address Sensitive 타입이며, 수신 포트 필터 룰이 Address Sensitive 필터인 것.
Symmetric(c)NAT(이하, Sc NAT라고 한다) : 송신 포트 할당 룰이 Address Sensitive 타입이며, 수신 포트 필터 룰이 Port Sensitive 필터인 것.
Symmetric(d) NAT(이하, Sd NAT라고 한다) : 송신 포트 할당 룰이 Port Sensitive 타입이며, 수신 포트 필터 룰이 No 필터인 것.
Symmetric(e) NAT(이하, Se NAT라고 한다) : 송신 포트 할당 룰이 Port Sensitive 타입이며, 수신 포트 필터 룰이 Address Sensitive 필터인 것.
Port Sensitive Symmetric NAT(이하, PS NAT 혹은 Sf NAT라고 한다) : 송신 포트 할당 룰이 Port Sensitive 타입이며, 수신 포트 필터 룰이 Port Sensitive 필터인 것.
이러한 NAT를 이용하는 통신에 있어서, 도 33에 나타내는 바와 같이 PC1과 PC2의 사이에서 서버를 통하지 않고 통신을 확립하는 경우에 대해서 고려되어 왔다.
상기의 기술 내용은, 예를 들면D. Yon, 「Connection-Oriented Media Transport in SDP」, [Online], 2003년3월, [2004년3월25일 검색], 인터넷 <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월, [2004년3월25일 검색], 인터넷 <URL: http://www.cs.cornell.edu/projects/stunt/draft-takeda-symmetric-nat-traversal-00.txt>(이하, 「비특허문헌2」이라고 한다)에 기재되어 있다. 더욱, J. Rosenberg, J. Weinberger, C. Huitema, R. Mahy, 「STUN-Sinple Traversal of User Datagran Protocol(UDP) Through Network Address Translators(NATs)」, [Online], 2003년3월, Network Working Group Request for Comments: 3489, [2004년3월24일 검색], 인터넷 <URL: http://www.ietf.org/rfc/rfc3489.txt>(이하, 「비특허문헌3」이라고 한다)에 기재되어 있다.
그렇지만, 이 경우에 있어서도, 통신을 확립할 수 없는 NAT의 조합이 있을 수 있다. 도 33에 있어서, NAT1의 로컬측에 접속된 정보 처리 장치인 PC1로부터 PC2에 대하여 통신을 행할 경우에, NAT1을 송신측의 NAT, NAT2를 수신측의 NAT라고 한다. 그러면 PC1과 PC2의 사이에서 통신을 확립할 수 있는 NAT의 조합은, 도 34로 나타나게 된다.
여기에서, 도 34의 「* 1」의 접속은, 종래부터 알려진 것이고, 「* 2」의 접속은, 상기 비특허문헌1에 기재되고 있으며, 「* 3」의 접속은 상기 비특허문헌2에 기재되어 있다. 또한, 통신을 확립할 수 있는 NAT의 조합에서도, 「* 3」의 접속에 있어서는, NAT의 포트 폭을 확실하게 알지 못하거나, 또한 수신측의 NAT의 최신 포트의 위치를 확실하게 알 수 없다면, 통신을 확립할 수 없는 불확실성이 남는다는 문제가 있다.
더욱, 도 34의 조합에서는, Sa NAT나 Sc 내지 Se NAT를 이용한 경우에 대해서는 포함되어 있지 않지만, 그러한 NAT를 이용한 경우에 관해서도, NAT를 통한 피어-투-피어(Peer to Peer)의 통신(예를 들면, 도 33에 있어서의 PC1과 PC2 사이의 통신)을 확립하고자 한다.
또한, 정보 처리 장치 간의 통신을 확립하는 전제로서, 일측의 정보 처리 장치로부터 송신된 버블 패킷(NAT에 송신 이력을 남기기 위해서 송신되는 패킷)이 통과한 NAT의 포트의 위치를 확실하게 검출하고자 한다.
본 발명의 목적은, 통신을 제어하는 통신제어장치를 통해 통신을 행하는 다수의 정보 처리 장치 간에 있어서의 통신의 확립을 더욱 확실하게 행할 수 있는 통신 시스템 등을 제공하는 것이다.
본 발명의 다른 목적은, 정보 처리 장치로부터 송신된 버블 패킷이 통과한 통신제어장치에 있어서의 포트의 위치를 검출할 수 있는 통신 시스템 등을 제공하는 것이다.
상기 목적을 달성하기 위하여, 본 발명에 의한 제1 정보 처리 장치는, 제1 정보 처리 장치의 통신을 제어하는 제1 통신제어장치와, 제2 정보 처리 장치의 통신을 제어하는 제2 통신제어장치를 통해, 상기 제2 정보 처리 장치와 통신하는 상기 제1 정보 처리 장치로서, 상기 제1 통신제어장치에 송신 이력을 남기기 위해서 송신되는 버블 패킷의 송신 대상의 기준이 되는 상기 제2 통신제어장치에 대한 포트인 기준 포트의 위치를 나타내는 기준 포트 정보를 수신하는 기준 포트 수신부와, 상기 기준 포트 정보에 기초하여 상기 제1 통신제어장치를 통해, 상기 버블 패킷을 상기 제2 통신제어장치에 송신하는 버블 패킷 송신부와, 상기 버블 패킷의 송신에 이용되는 상기 제1 통신제어장치의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해서, 포트 검출용 패킷을 송신하는 검출용 패킷 송신부와, 상기 버블 패킷 송신 포트에 대하여, 상기 제2 정보 처리 장치로부터 상기 제2 통신제어장치를 통해 송신된 응답 패킷을 수신하는 응답 패킷 수신부를 구비한다.
이러한 구성에 의해, 기준 포트 정보에 기초한 버블 패킷의 송신과, 포트 검출용 패킷을 이용하여 검출된 버블 패킷 송신 포트에 송신된 응답 패킷의 수신를 행할 수 있고, 제1 정보 처리 장치와 제2 정보 처리 장치 사이의 통신을 확립할 수 있게 된다.
또한, 본 발명에 의한 제1 정보 처리 장치는, 제1 정보 처리 장치의 통신을 제어하는 제1 통신제어장치와, 제2 정보 처리 장치의 통신을 제어하는 제2 통신제어장치를 통해, 상기 제2 정보 처리 장치와 통신하는 상기 제1 정보 처리 장치로서, 상기 제1 통신제어장치는, 상기 제2 정보 처리 장치로부터 상기 제2 통신제어장치를 통해, 상기 제2 통신제어장치에 송신 이력을 남기기 위한 버블 패킷을 송신하며, 상기 버블 패킷의 송신의 대상의 기준이 되는 상기 제1 통신제어장치에 대한 포트인 기준 포트의 위치를 검출하기 위한 기준 포트 검출용 패킷을 송신하는 기준 포트 검출용 패킷 송신부와, 상기 제2 정보 처리 장치로부터의 상기 버블 패킷의 송신에 이용되는 상기 제2 통신제어장치의 포트인 버블 패킷 송신 포트의 위치를 나타내는 버블 패킷 송신 포트 정보를 수신하는 버블 패킷 송신 포트 수신부와, 상기 버블 패킷 송신 포트 정보가 나타내는 상기 버블 패킷 송신 포트에 대하여 응답 패킷을 송신하는 응답 패킷 송신부를 구비한다.
이러한 구성에 의해, 버블 패킷의 송신에 의해 송신 이력이 남겨져 있는 버블 패킷 송신 포트에 대하여 응답 패킷을 송신할 수 있고, 제1 정보 처리 장치와 제2 정보 처리 장치 사이의 통신을 확립할 수 있게 된다.
또한, 본 발명에 의한 서버는, 제1 정보 처리 장치 및 제2 정보 처리 장치가, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신제어장치 및 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신제어장치를 통해 행하는 통신을 확립시키는 서버로서, 상기 제1 통신제어장치에 송신 이력을 남기기 위해서 상기 제1 정보 처리 장치가 송신하는 버블 패킷의 송신 대상의 기준이 되는 상기 제2 통신제어장 치에 대한 포트인 기준 포트의 위치를 검출하기 위해서, 상기 제2 정보 처리 장치로부터 상기 제2 통신제어장치를 통해 송신된 기준 포트 검출용 패킷을 수신하고, 해당 기준 포트 검출용 패킷에 기초하여 상기 기준 포트의 위치를 검출하는 기준 포트 검출부와, 상기 기준 포트 검출부가 검출한 상기 기준 포트의 위치를 나타내는 기준 포트 정보를 상기 제1 정보 처리 장치에 송신하는 기준 포트 송신부와, 상기 제1 정보 처리 장치로부터 상기 제2 통신제어장치로의 상기 버블 패킷의 송신에 이용되는 상기 제1 통신제어장치에 대한 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해서, 상기 제1 정보 처리 장치로부터 송신된 포트 검출용 패킷을 수신하고, 상기 포트 검출용 패킷에 기초하여 상기 버블 패킷 송신 포트의 위치를 검출하는 버블 패킷 송신 포트 검출부와, 상기 버블 패킷 송신 포트 검출부가 검출한 상기 버블 패킷 송신 포트의 위치를 나타내는 버블 패킷 송신 포트 정보를 상기 제2 정보 처리 장치에 송신하는 버블 패킷 송신 포트 송신부를 구비한다.
이러한 구성에 의해, 제2 통신제어장치에 대한 기준 포트의 위치를 검출하여, 제1 정보 처리 장치에 알려줄 수 있고, 또한 버블 패킷 송신 포트의 위치를 검출하여, 제2 정보 처리 장치에 알려줄 수 있게 된다.
또한, 본 발명에 의한 서버는, 제1 정보 처리 장치 및 제2 정보 처리 장치가, 상기 제1 정보 처리 장치의 통신을 제어하는 제1 통신제어장치 및 상기 제2 정보 처리 장치의 통신을 제어하는 제2 통신제어장치를 통해 행하는 통신을 확립시키는 서버로서, 상기 제1 통신제어장치에 송신 이력을 남기기 위해서 상기 제1 정보 처리 장치가 송신하는 버블 패킷의 송신 대상의 기준이 되는 상기 제2 통신제어장 치에 대한 포트인 기준 포트의 위치를 검출하기 위해서, 상기 제2 정보 처리 장치로부터 상기 제2 통신제어장치를 통해 송신된 기준 포트 검출용 패킷을 수신하고, 해당 기준 포트 검출용 패킷에 기초하여 상기 기준 포트의 위치를 검출하는 기준 포트 검출부와, 상기 기준 포트 검출부가 검출한 상기 기준 포트의 위치를 나타내는 기준 포트 정보를 상기 제1 정보 처리 장치에 송신하는 기준 포트 송신부와, 상기 제1 정보 처리 장치로부터 상기 제2 통신제어장치로의 상기 버블 패킷의 송신에 이용되는 상기 제1 통신제어장치에 대한 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해서, 상기 제1 정보 처리 장치로부터 송신된 포트 검출용 패킷을 수신하고, 해당 포트 검출용 패킷에 기초하여 상기 포트 검출용 패킷이 통과한 상기 제1 통신제어장치의 포트의 위치를 검출하는 검출용 포트 검출부와, 상기 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 상기 제1 정보 처리 장치에 송신하는 검출용 포트 정보 송신부를 구비한다.
이러한 구성에 의해, 제2 통신제어장치에 대한 기준 포트의 위치를 검출하여 제1 정보 처리 장치에 알릴 수 있고, 또한 포트 검출용 패킷이 통과한 제1 통신제어장치의 위치를 검출하여 제1 정보 처리 장치에 알릴 수 있다.
또한, 본 발명에 의한 통신 시스템은, 정보 처리 장치와, 상기 정보 처리 장치의 통신을 제어하는 통신제어장치와, 서버를 구비하는 통신 시스템으로서, 상기 정보 처리 장치는, 상기 통신제어장치를 통해, 상기 통신제어장치에 송신 이력을 남기기 위한 버블 패킷을 송신하는 버블 패킷 송신부와, 상기 버블 패킷의 송신에 이용되는 상기 통신제어장치의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위 해서 이용되는 포트 검출용 패킷을, 상기 버블 패킷 송신부가 상기 버블 패킷을 송신하는 전후에, 상기 서버로 송신하는 검출용 패킷 송신부를 구비한다.
이러한 구성에 의해, 정보 처리 장치로부터 송신된 포트 검출용 패킷에 의해, 버블 패킷 송신 포트의 위치를 검출할 수 있다. 이 검출은, 서버에서 행해도 되고, 정보 처리 장치에서 행해도 되고, 또는, 다른 장치에서 행해도 된다. 그 검출된 버블 패킷 송신 포트의 위치를 이용하여, 그 버블 패킷 송신 포트에서 다른 장치로부터의 패킷을 송신함으로써, 그 패킷이 정보 처리 장치에서 수신될 수 있게 된다.
(제1 실시예)
본 발명의 제1 실시예에 의한 통신 시스템에 대해서, 도면을 참조하면서 설명한다.
도 1은, 본 실시예에 의한 통신 시스템의 구성을 나타내는 블럭도이다. 도 1에 있어서, 본 실시예에 의한 통신 시스템은, 제1 정보 처리 장치(1)와, 제2 정보 처리 장치(2)와, 제1 통신제어장치(3)와, 제2 통신제어장치(4)와, 서버(6)를 구비한다. 제1 통신제어장치(3), 제2 통신제어장치(4) 및 서버(6)는, 유선 또는 무선의 통신회선(5)을 통해 접속되어 있다. 이 통신회선(5)은, 예를 들면 인터넷이다.
또한, 도 1에서는, 제1 통신제어장치(3) 및 제2 통신제어장치(4)에 각각, 제1 정보 처리 장치(1) 및 제2 정보 처리 장치(2)만이 접속되어 있는 경우에 대해서 나타내고 있지만, 이외의 장치가, 제1 통신제어장치(3) 및 제2 통신제어장치(4)에 접속되어 있어도 무방하다.
또한, 본 실시예에서는, 제1 정보 처리 장치(1)가 송신측의 정보 처리 장치로서 동작하고, 제2 정보 처리 장치(2)가 수신측의 정보 처리 장치로서 동작할 경우에 관하여 설명한다. 여기에서, 송신측의 정보 처리 장치는, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 사이의 통신을 확립할 때에 있어서의, 통신(connection)의 요구를 하는 측(바꾸어 말하면, 버블 패킷을 송신하는 측)이다. 한편, 수신측의 정보 처리 장치는, 그 반대측의 정보 처리 장치, 즉 통신의 요구를 받아들이는 측(바꾸어 말하면, 버블 패킷에 대한 응답 패킷 송신하는 측)의 정보 처리 장치이다. 또한, 버블 패킷이나 응답 패킷에 관해서는 후술한다.
도 2는, 제1 정보 처리 장치(1)의 구성을 나타내는 블럭도이다. 도 2에 있어서, 제1 정보 처리 장치(1)는, 통신부(11)와, 기준 포트 수신부(12)와, 버블 패킷 송신부(13)와, 검출용 패킷 송신부(14)와, 포트 폭 검출용 패킷 송신부(15)와, 재송신 지시 수신부(16)와, 응답 패킷 수신부(17)와, 재응답 패킷 송신부(18)와, 포트 폭 수신부(19)를 구비한다.
통신부(11)는, 버블 패킷 송신부(13) 등 제1 정보 처리 장치(1)의 내부의 각 구성 요소와 제1 통신제어장치(3) 사이에 있어서의 통신을 수행한다.
기준 포트 수신부(12)는, 기준 포트의 위치를 나타내는 기준 포트 정보를 수신한다. 여기에서, 기준 포트라는 것은, 제2 통신제어장치(4)에서의 소정의 포트이며, 버블 패킷의 송신의 대상이 되는 포트(버블 패킷 송신 대상 포트)의 기준이 되는 포트이다. 이 기준 포트 정보의 수신이라는 것은, 예를 들면 기준 포트 정보를 수신하는 것이다. 또한, 버블 패킷에 관해서는 후술한다.
버블 패킷 송신부(13)는, 통신부(11) 및 제1 통신제어장치(3)를 통해, 버블 패킷을 제2 통신제어장치(4)에 송신한다. 이 버블 패킷은, 기준 포트 수신부(12)가 수신한 기준 포트 정보에 기초하여 송신된다. 구체적으로는, 제2 통신제어장치(4)에 있어서, 기준 포트로부터 소정의 포트 할당 후에 할당되는 포트인 버블 패킷 송신 대상 포트에 대하여 버블 패킷이 송신된다. 이 버블 패킷 송신 대상 포트는, 예를 들면 기준 포트와의 포트 간격이, 제2 통신제어장치(4)에 있어서의 포트 폭의 M배(M은 1 이상의 정수)인 포트이다. 여기에서, 예를 들면 포트 번호가 증가하면서 포트 할당이 되는 경우에, 버블 패킷 송신 대상 포트는 기준 포트보다 포트 번호가 큰 쪽이 된다. 그 제2 통신제어장치(4)에 있어서의 포트 폭은, 후술하는 포트 폭 수신부(19)에서 수신된 포트 폭 정보에 의해 나타내어진다. 또한, 버블 패킷이라는 것은, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이에서의 통신을 확립하기 위해서, 제1 통신제어장치(3)에 송신 이력을 남기기 위한 패킷이다. 여기에서, 통신을 확립한다는 것은, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이에서, 서버(6)를 통하지 않는 Peer to Peer의 통신을 개시하는 것을 말한다. 또한, 송신 이력을 남긴다는 것은, 제1 통신제어장치(3)에 있어서, 후술하는 응답 패킷을 수신하기 위한 포트를 할당한다(포트를 연다)는 것을 말한다. 이 버블 패킷에는, 어떠한 정보가 포함되어 있어도 되고, 아무런 정보가 포함되어 있지 않아도 무방하다. 이 버블 패킷은, 예를 들면, UDP(User Datagram Protocol)와 같은 비연결(connectionless)형의 프로토콜에 의해 송신된다.
검출용 패킷 송신부(14)는, 포트 검출용 패킷을 서버(6)에 송신한다. 이 포트 검출용 패킷은, 버블 패킷 송신 포트의 위치를 검출하기 위해서 이용되는 것이다. 여기에서, 버블 패킷 송신 포트는, 버블 패킷의 송신에 이용되는, 제1 통신제어장치(3)의 포트이다. 이 포트 검출용 패킷은, 버블 패킷이 송신되기 전에, 및/또는 버블 패킷이 송신된 후에, 송신된다. 또한, 본 실시예에서는, 버블 패킷의 송신의 전후에 포트 검출용 패킷이 송신되는 경우에 관하여 설명한다. 이 포트 검출용 패킷은, 예를 들면 UDP나, TCP(Transmission Control Protocol)에 의해 송신된다. 이 포트 폭 검출용 패킷에는, 어떠한 정보가 포함되어 있어도 되고, 아무런 정보가 포함되지 않아도 무방하다.
포트 폭 검출용 패킷 송신부(15)는, 제1 통신제어장치(3)에 있어서의 포트 폭을 검출하기 위해서 이용되는 포트 폭 검출용 패킷을, 제1 통신제어장치(3)를 통해 서버(6)에 송신한다. 여기에서, 포트 폭이라는 것은, 연속하여 이용되는(할당되는) 포트의 폭(간격)이다. 예를 들면, 포트 폭이 「1」의 경우에는, 포트 번호 「20000」의 포트의 다음에 이용되는 포트는, 포트 번호 「20001」의 포트이다. 한편, 포트 폭 이 「2」의 경우에는, 포트 번호 「20000」의 포트의 다음에 이용되는 포트는, 포트 번호 「20002」의 포트가 된다. 이 포트 폭 검출용 패킷에는, 어떠한 정보가 포함되어 있어도 되고, 아무런 정보가 포함되지 않아도 무방하다.
재송신 지시 수신부(16)는, 재송신 지시를 수취한다. 여기에서, 재송신 지시라는 것은, 버블 패킷 및 포트 검출용 패킷을 재송신하라는 취지의 지시이다. 이 재송신 지시는, 예를 들면 수신에 의해 수취된다. 재송신 지시 수신부(16)가 재송 신 지시를 수신한 경우에는, 검출용 패킷 송신부(14) 및 버블 패킷 송신부(13)는, 각각, 포트 검출용 패킷과 버블 패킷을 다시 송신한다.
응답 패킷 수신부(17)는, 제2 정보 처리 장치(2)로부터 제2 통신제어장치(4)를 통해 송신된 응답 패킷을 수신한다. 이 응답 패킷은, 버블 패킷 송신 포트에 대하여 송신된 것이다. 이 응답 패킷은, 예를 들면 수신에 의해 수취된다. 이 응답 패킷에는, 어떠한 정보가 포함되어 있어도 되고, 아무런 정보가 포함되어 있지 않아도 무방하다.
재응답 패킷 송신부(18)는, 응답 패킷 수신부(17)가 응답 패킷을 수신한 경우에 재응답 패킷을 송신한다. 이 재응답 패킷은, 응답 패킷의 송신에 이용된 제2 통신제어장치(4)의 포트에 대하여 송신된다. 이 재응답 패킷은, 예를 들면, UDP에 의해 송신된다. 이 재응답 패킷에는, 어떠한 정보가 포함되어 있어도 되고, 아무런 정보가 포함되어 있지 않아도 무방하다.
포트 폭 수신부(19)는, 서버(6)로부터 송신된 포트 폭 정보를 수신한다. 여기에서, 포트 폭 정보라는 것은, 제2 통신제어장치(4)에 있어서의 포트 폭을 나타내는 정보이다.
도 3은, 제2 정보 처리 장치(2)의 구성을 나타내는 블럭도이다. 도 3에 있어서, 제2 정보 처리 장치(2)는, 통신부(21)와, 기준 포트 검출용 패킷 송신부(22)와, 버블 패킷 송신 포트 수신부(23)와, 응답 패킷 송신부(24)와, 재응답 패킷 수신부(25)와, 포트 폭 검출용 패킷 송신부(26)를 구비한다.
통신부(21)는, 통신부(11)와 마찬가지로, 기준 포트 검출용 패킷 송신부(22) 등의 제2 정보 처리 장치(2) 내부의 각 구성 요소와 제2 통신제어장치(4)의 사이에서의 통신을 수행한다.
기준 포트 검출용 패킷 송신부(22)는, 기준 포트의 위치를 검출하기 위한 기준 포트 검출용 패킷을 서버(6)에 송신한다. 이 기준 포트는, 제2 통신제어장치(4)에서 할당되는 포트 중, 기준 포트 검출용 패킷이 송신된 시점에 있어서의 최신의 포트(가장 새롭게 할당된 포트)이다. 즉, 이 기준 포트 검출용 패킷을 송신하는 것에 의해, 서버(6)는, 제2 통신제어장치(4)에서 할당된 최신의 포트의 위치를 검출할 수 있다. 이 기준 포트 검출용 패킷은, 예를 들면, UDP나 TCP에 의해 송신된다. 이 기준 포트 검출용 패킷에는, 어떠한 정보가 포함되어 있어도 되고, 아무런 정보가 포함되지 않아도 무방하다.
버블 패킷 송신 포트 수신부(23)는, 버블 패킷 송신 포트 정보를 수취한다. 여기에서, 버블 패킷 송신 포트 정보라는 것은, 버블 패킷 송신 포트의 위치를 나타내는 정보이며, 예를 들면 버블 패킷 송신 포트의 포트 번호에 의해, 버블 패킷 송신 포트의 위치가 나타내어진다. 버블 패킷 송신 포트 정보는, 예를 들면 수신에 의해 수취된다.
응답 패킷 송신부(24)는, 제1 통신제어장치(3)에 있어서의 버블 패킷 송신 포트에 대하여 응답 패킷을 송신한다. 그 버블 패킷 송신 포트의 위치는, 버블 패킷 송신 포트 수신부(23)가 수신한 버블 패킷 송신 포트 정보에 의해 나타내어지는 것이다. 이 응답 패킷은, 제2 통신제어장치(4)의 다른 N개(N은 2 이상의 정수)의 포트를 이용하여 송신된다. 그 N개의 포트는, 응답 패킷의 송신시에, 제2 통신제어 장치(4)에 대해 새롭게 할당되는 포트이다. 여기에서, 그 N의 값은, 제2 통신제어장치(4)에 있어서의, 기준 포트로부터 버블 패킷이 송신된 포트(버블 패킷 송신 대상 포트)까지에 있어서 할당가능한 포트의 수(α이라고 한다)이다. 즉, 응답 패킷의 송신시에, 버블 패킷 송신 대상 포트가 이미 다른 기기에 의해 이용되고 있을 경우 이외에는, α개의 응답 패킷을 송신함으로써, 버블 패킷 송신 대상 포트를 이용한 응답 패킷의 송신이 가능하게 된다. 이 응답 패킷은, 예를 들면, UDP에 의해 송신된다. 이 응답 패킷에는, 어떠한 정보가 포함되어 있어도 되고, 아무런 정보가 포함되어 있지 않아도 무방하다.
재응답 패킷 수신부(25)는, 제1 정보 처리 장치(1)로부터 송신된 재응답 패킷을 수신한다. 이 재응답 패킷은, 응답 패킷의 송신에 이용된 제2 통신제어장치(4)의 포트에 대하여 송신되어, 제2 정보 처리 장치(2)에서 수신된 것이다. 제1 통신제어장치(3) 및 제2 통신제어장치(4)에서 이용되는 NAT의 종류에 따라서는, 제1 정보 처리 장치(1)가 응답 패킷을 수신한 시점에서 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이의 통신을 확립할 수도 있지만, 제2 정보 처리 장치(2)가 재응답 패킷을 수신함에 의해, 처음으로 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이의 통신이 확립될 수도 있다.
포트 폭 검출용 패킷 송신부(26)는, 제2 통신제어장치(4)에 있어서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을, 제2 통신제어장치(4)를 통해 서버(6)에 송신한다. 이 포트 폭 검출용 패킷에는, 어떠한 정보가 포함되어 있어도 되고, 아무런 정보가 포함되어 있지 않아도 무방하다.
제1 통신제어장치(3)는, 제1 정보 처리 장치(1)의 통신을 제어하는 것으로, 소위 낫(NAT)을 이용하여, 로컬측(제1 정보 처리 장치(1) 측)과 글로벌측(통신회선(5) 측)과의 통신을 제어한다. 이 NAT에는, F NAT, R NAT, PR NAT, Sa NAT, AS NAT, Sc NAT, Sd NAT, Se NAT, PS NAT가 있다.
또한, 제2 통신제어장치(4)는, 제2 정보 처리 장치(2)의 통신을 제어하는 것이며, 제1 통신제어장치(3)와 마찬가지로, NAT를 이용하고 있다. 후술하는 바와 같이, 본 실시예에 의한 통신 시스템에서는, 제1 통신제어장치(3)와 제2 통신제어장치(4)에서 이용하고 있는 NAT의 모든 조합에 대해서, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 사이의 통신을 확립하는 것이 가능하다. 또한, 제1 통신제어장치(3) 및 제2 통신제어장치(4)에서는, 포트의 할당이, 소정의 포트 폭 마다에, 포트 번호가 증가하도록, 혹은 감소하도록 행하여지는 것으로 한다. 이하의 설명에서는, 포트 번호가 증가하도록 할당되는 경우에 관하여 설명한다.
도 4는, 서버(6)의 구성을 나타내는 블럭도이다. 도 4에 있어서, 서버(6)는, 통신부(61)와, 기준 포트 검출부(62)와, 기준 포트 송신부(63)와, 포트 폭 검출부(64)와, 버블 패킷 송신 포트 검출부(65)와, 재송신 지시 송신부(66)와, 버블 패킷 송신 포트 송신부(67)와, 포트 폭 송신부(68)를 구비한다.
통신부(61)는, 기준 포트 검출부(62) 등의 서버(6)의 각부와, 제1 정보 처리 장치(1)나 제2 정보 처리 장치(2) 등과의 통신을 수행한다.
기준 포트 검출부(62)는, 기준 포트 검출용 패킷을 수신하고, 상기 기준 포트 검출용 패킷에 기초하여 기준 포트의 위치를 검출한다. 기준 포트 검출용 패킷 의 수신은, 예를 들면 수신에 의해 이루어진다. 상기 기준 포트 검출용 패킷은, 제2 정보 처리 장치(2)로부터 제2 통신제어장치(4)를 통해 송신된 것이다.
기준 포트 송신부(63)는, 기준 포트 정보를 제1 정보 처리 장치(1)에 송신한다. 이 기준 포트 정보는, 예를 들면 기준 포트의 포트 번호에 의해, 기준 포트의 위치를 나타낸다.
포트 폭 검출부(64)는, 제1 통신제어장치(3)에 있어서의 포트 폭을 검출한다. 상기 검출은, 제1 정보 처리 장치(1)로부터 송신되는 포트 폭 검출용 패킷을 수신하는 것에 의해 이루어진다. 또한, 포트 폭 검출부(64)는, 제2 통신제어장치(4)에 있어서의 포트 폭을 검출한다. 이 검출은, 제2 정보 처리 장치(2)로부터 송신되는 포트 폭 검출용 패킷을 수신하는 것에 의해 이루어진다. 또한, 포트 폭 검출부(64)는, 제1 통신제어장치(3)에 있어서의 포트 폭을 검출하는 제1 포트 검출부와, 제2 통신제어장치(4)에 있어서의 포트 폭을 검출하는 제2 포트 검출부를 구비하여도 무방하다. 그들을 하나로 실현한 것이, 포트 폭 검출부(64)이다. 즉, 포트 폭 검출부(64) 중에서, 제1 통신제어장치(3)에 있어서의 포트 폭을 검출하는 부분이 제1 포트 검출부가 되고, 제2 통신제어장치(4)에 있어서의 포트 폭을 검출하는 부분이 제2 포트 검출부가 된다.
버블 패킷 송신 포트 검출부(65)는, 제1 통신제어장치(3)에 있어서의 버블 패킷 송신 포트의 위치를 검출한다. 이 검출은, 제1 정보 처리 장치(1)로부터 제1 통신제어장치(3)를 통해 송신된 포트 검출용 패킷을 수취함으로써 이루어진다. 이 포트 검출용 패킷의 수취는, 예를 들면 수신에 의해 이루어진다. 구체적으로는, 버 블 패킷 송신 포트 검출부(65)는, 버블 패킷 송신의 전후에 송신된 포트 검출용 패킷을 수신한다. 그리고 그 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)에 있어서의 2개의 포트와, 버블 패킷 송신 포트가 연속하고 있는지의 여부를 판단한다. 그 판단의 결과, 그들의 포트가 연속하고 있을 경우에는, 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)에 있어서의 2개의 포트 사이의 포트의 위치를 버블 패킷 송신 포트의 위치로서 검출한다. 여기에서, 연속한다는 것은, 제1 통신제어장치(3)의 포트 폭의 간격으로, 그 2개의 포트와 버블 패킷 송신 포트가 나란히 배열된 것을 말한다. 또한, 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)의 2개의 포트의 간격이, 포트 폭 검출부(64)에 의해 검출된 제1 통신제어장치(3)의 포트 폭의 2배일 경우에, 연속하고 있다고 판단할 수 있다. 한편, 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)에 있어서의 2개의 포트와, 버블 패킷 송신 포트가 연속하지 않는 경우에는, 버블 패킷 송신 포트를 검출할 수 없는 것으로 한다.
재송신 지시 송신부(66)는, 버블 패킷 송신 포트 검출부(65)가 버블 패킷 송신 포트의 위치를 검출할 수 없을 경우에, 재송신 지시를 제1 정보 처리 장치(1)에 송신한다. 여기에서, 재송신 지시라는 것은, 버블 패킷 및 포트 검출용 패킷을 다시 송신하라는 취지의 지시이다. 버블 패킷 송신 포트 검출부(65)는, 그 재송신 지시의 송신에 따라 재송신된 포트 검출용 패킷을 이용하여, 버블 패킷 송신 포트의 위치를 검출한다. 또한, 이 재송신 지시의 송신은, 버블 패킷 송신 포트 검출부(65)가 버블 패킷 송신 포트의 위치를 검출할 수 있을 때까지, 또는, 소정의 상 한 회수(예를 들면, 10회 등)나, 소정의 시간(예를 들면, 30초 등) 등의 소정의 제한까지 반복된다.
버블 패킷 송신 포트 송신부(67)는, 버블 패킷 송신 포트 정보를 제2 정보 처리 장치(2)에 송신한다. 이 버블 패킷 송신 포트 정보로 나타내어지는 버블 패킷 송신 포트의 위치는, 버블 패킷 송신 포트 검출부(65)에 의해 검출된 것이다.
포트 폭 송신부(68)는, 포트 폭 정보를 제1 정보 처리 장치(1)에 송신한다. 여기에서, 포트 폭 정보라는 것은, 포트 폭 검출부(64)로 검출된 제2 통신제어장치(4)에 있어서의 포트 폭을 나타내는 정보이다.
다음으로, 본 실시예에 의한 통신 시스템의 동작에 관하여 설명한다. 특히, 도 5의 흐름도를 이용하여, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)가 통신을 시작할 때까지의 통신 방법에 관하여 설명한다.
(단계 S101) 제2 정보 처리 장치(2)로부터 기준 포트 검출용 패킷이 서버(6)에 송신되고, 상기 기준 포트 검출용 패킷에 기초하여 기준 포트의 위치가 검출된다. 그리고 상기 기준 포트의 위치를 나타내는 기준 포트 정보가, 서버(6)로부터 제1 정보 처리 장치(1)에 송신된다. 또한, 단계 S101의 상세한 처리에 대해서는 후술한다.
(단계 S102) 제1 정보 처리 장치(1)는, 기준 포트 정보에 기초하여, 버블 패킷을 제2 통신제어장치(4)에 송신한다. 또한, 버블 패킷 송신 포트의 위치의 검출에 이용되는 포트 검출용 패킷을 서버(6)에 송신한다. 또한, 단계 S102의 상세한 처리에 대해서는 후술한다.
(단계 S103) 서버(6)의 버블 패킷 송신 포트 검출부(65)는, 단계 S102에서 수신한 포트 검출용 패킷에 기초하여, 버블 패킷 송신 포트의 위치를 검출할 수 있는지의 여부를 판단한다. 그리고 검출할 수 있을 경우에는, 단계 S104로 진행되고, 검출할 수 없을 경우에는, 재송신 지시 송신부(66)가 재송신 지시를 제1 정보 처리 장치(1)에 송신하고 단계 S102로 복귀한다. 그 재송신 지시는, 제1 정보 처리 장치(1)의 재송신 지시 수신부(16)에 의해 수신된다.
(단계 S104) 서버(6)는, 버블 패킷 송신 포트의 위치를 검출하고, 그 위치를 나타내는 버블 패킷 송신 포트 정보를 제2 정보 처리 장치(2)에 송신한다. 제2 정보 처리 장치(2)는, 그 버블 패킷 송신 포트 정보에 기초하여 응답 패킷을 제1 통신제어장치(3)에 송신한다. 또한, 단계 S104의 상세한 처리에 대해서는 후술한다.
(단계 S105) 제1 정보 처리 장치(1)의 응답 패킷 수신부(17)는, 응답 패킷을 수신했는지의 여부를 판단한다. 그리고 응답 패킷을 수신했을 경우에는, 단계 S106으로 진행되고, 수신하지 않은 경우에는, 단계 S101로 복귀하여 단계 S101로부터의 처리를 반복한다.
(단계 S106) 제1 정보 처리 장치(1)의 재응답 패킷 송신부(18)는, 재응답 패킷을 제2 통신제어장치(4)에 송신한다.
(단계 S107) 제2 정보 처리 장치(2)의 재응답 패킷 수신부(25)는, 재응답 패킷을 수신했는지의 여부를 판단한다. 그리고 재응답 패킷을 수신했을 경우에는, 그 재응답 패킷의 송신에 이용된 제1 통신제어장치(3)의 어떤 포트에 패킷을 송신함으로써, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이에서 서버(6)를 통하 지 않고도 통신을 확립하는 것이 가능한 것으로 하고, 통신의 확립의 처리는 종료된다. 한편, 재응답 패킷을 수신하지 않았을 경우에는, 통신의 확립이 불가능하게 되기 때문에, 단계 S101로 복귀하여 단계 S101로부터의 처리를 반복한다.
다음으로, 도 5의 흐름도에 있어서의 단계 S101의 처리에 대해서, 도 6을 이용하여 설명한다. 도 6은, 송신측, 서버, 수신측의 사이에 있어서의 정보의 교환이나 처리를 설명하기 위한 도면이다. 여기에서, 송신측이라는 것은, 제1 정보 처리 장치(1) 및 제1 통신제어장치(3)를 포함하는 개념이다. 또한, 수신측이라는 것은, 제2 정보 처리 장치(2) 및 제2 통신제어장치(4)를 포함하는 개념이다.
(단계 S201) 서버(6)는, 제2 정보 처리 장치(2)에 대하여, 기준 포트 검출용 패킷의 송신 요구를 송신한다.
(단계 S202) 제2 정보 처리 장치(2)의 기준 포트 검출용 패킷 송신부(22)는, 서버(6)로부터 송신된 기준 포트 검출용 패킷의 송신 요구를 수신하면, 기준 포트 검출용 패킷을 서버(6)에 송신한다. 또한, 기준 포트 검출용 패킷 송신부(22)는, 상기 기준 포트 검출용 패킷이, 제2 통신제어장치(4)에 있어서 최신에 할당된 포트를 이용하여 송신되도록 한다. 예를 들면, 제2 정보 처리 장치(2)에 있어서 새롭게 할당된 포트를 이용하여 기준 포트 검출용 패킷의 송신을 수행한다.
(단계 S203) 서버(6)의 기준 포트 검출부(62)는, 제2 정보 처리 장치(2)로부터 송신된 기준 포트 검출용 패킷을 수신한다. 그리고 기준 포트 검출부(62)는, 기준 포트 검출용 패킷의 헤더에 포함되는 기준 포트의 포트 번호를 참조하여, 기준 포트의 위치를 검출한다.
(단계 S204) 기준 포트 송신부(63)는, 기준 포트 검출부(62)에 의해 검출된 기준 포트의 위치를 나타내는 정보인 기준 포트 정보를 제1 정보 처리 장치(1)에 송신한다. 상기 기준 포트 정보는, 제1 정보 처리 장치(1)에 있어서의 기준 포트 수신부(12)에서 수신된다.
(단계 S205) 서버(6)는, 제2 통신제어장치(4)의 IP 어드레스를 나타내는 어드레스 정보를 제1 정보 처리 장치(1)에 송신한다. 그 어드레스 정보는, 통신부(11)에서 수신되어, 버블 패킷 송신부(13)에 전달된다.
(단계 S206) 제1 정보 처리 장치(1)의 포트 폭 검출용 패킷 송신부(15)는, 포트 폭 검출용 패킷을 서버(6)에 송신한다. 여기에서, 이 송신에 있어서는, 다수의 포트 폭 검출용 패킷이 통과하는 제1 통신제어장치(3)의 포트가 각각 다르도록 한다. 이 포트 폭 검출용 패킷은, 예를 들면 제1 정보 처리 장치(1)에 있어서의 포트 번호가 각각 다른 다수의 포트로부터 송신된다. 도 7은, 포트 폭 검출용 패킷의 송신에 대해서 설명하기 위한 도면이다. 포트 폭 검출용 패킷 송신부(15)는, 각각 다른 포트 P205 내지 P208로부터 순차적으로, 서버(6)의 포트 P200에 포트 폭 검출용 패킷을 송신한다. 그러면, 제1 통신제어장치(3)에 있어서, 그들의 패킷은, 각각 다른 포트 P201 내지 P204을 통과하게 된다. 또한, 도 7에서는, 포트 P205로부터 P208의 순서로 패킷이 송신된 것으로 한다. 또한, 제1 정보 처리 장치(1)는, 포트 폭 검출용 패킷을 송신하기 이전에, 포트 P205 내지 P208을 서버(6)와의 통신에 이용하지 않은 것으로 한다.
(단계 S207) 서버(6)의 포트 폭 검출부(64)는, 제1 정보 처리 장치(1)로부터 송신된 포트 폭 검출용 패킷을 수신하고, 그 포트 폭 검출용 패킷에 기초하여 포트 폭을 검출한다. 이 포트 폭의 검출 방법에 관하여 설명한다. 포트 폭 검출부(64)는, 포트 폭 검출용 패킷을 수신함에 따라, 각 포트 폭 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)의 포트 P201 내지 P204을 검출할 수 있게 된다. 그리고 예를 들면 포트 P202와 포트 P201의 포트 간격이 12이고, 포트 P203과 포트 P202의 포트 간격이 6이고, 포트 P204과 포트 P203의 포트 간격이 18일 경우에는, 가장 작은 포트 간격인 「6」을 포트 폭으로서 검출해도 무방하다. 한편, 그들의 포트 간격의 최대공약수를 포트 폭으로서 검출해도 무방하다. 예를 들면, 포트 P202과 포트 P201의 포트 간격이 12이고, 포트 P203과 포트 P202의 포트 간격이 6이고, 포트 P204과 포트 P203의 포트 간격이 9일 경우에는, 그들의 최대공약수인 「3」을 포트 폭으로서 검출해도 무방하다. 또한, 포트 폭의 검출 방법은, 이에 한정되는 것이 아니고, 그 밖의 방법에 의해 포트 폭을 검출해도 무방하다. 또한, 포트 폭을 검출할 때에 송신되는 포트 폭 검출용 패킷의 개수도, 4개에 한정되는 것이 아니고, 포트 폭을 검출할 수 있는 범위에 있어서 임의로 설정할 수 있다.
(단계 S208) 제2 정보 처리 장치(2)의 포트 폭 검출용 패킷 송신부(26)는, 포트 폭 검출용 패킷을 서버(6)에 송신한다. 여기에서, 포트 폭 검출용 패킷의 송신은, 단계 S206과 동일한 방식으로 수행된다.
(단계 S209) 서버(6)의 포트 폭 검출부(64)는, 제2 정보 처리 장치(2)로부터 송신된 포트 폭 검출용 패킷을 수신하고, 그 포트 폭 검출용 패킷에 기초하여 제2 통신제어장치(4)에 있어서의 포트 폭을 검출한다. 이 포트 폭의 검출 방법은, 단계 S207과 동일하므로, 그 설명은 생략한다. 또한, 이 단계 S209에 있어서의 포트 폭의 검출 처리에서는, 단계 S207에 있어서의 포트 폭의 검출에 비교하여, 엄밀성을 그다지 요구하지 않는다. 즉, 제2 통신제어장치(4)에 있어서의 실제의 포트 폭의 배수를 포트 폭으로서 검출해도 무방하다. 이 단계 S209에서 검출된 포트 폭은, 기준 포트로부터, 이 단계 S209에서 검출된 포트 폭의 배수만큼 포트 간격이 (포트 번호의 할당이 증가 방향일 경우에는, 포트 번호가 증가하는 방향으로) 떨어져 있는 포트를 버블 패킷 송신 대상 포트로 결정하기 위해서 이용된다. 그 결과, 이 단계에서 검출된 포트 폭이 실제의 포트 폭의 배수였다고 하더라도, 그렇게 결정된 버블 패킷 송신 대상 포트는, 기준 포트로부터 소정 횟수의 포트 할당 후에 할당되어, 버블 패킷 송신 대상 포트로서 그 포트를 이용하는 것이 가능하기 때문이다. 따라서, 이 단계 S208, S209에 있어서의 포트 폭의 검출에서는, 적은 수의 포트 폭 검출용 패킷의 송신에 의해 포트 폭을 검출해도 무방하다.
(단계 S210) 서버(6)의 포트 폭 송신부(68)는, 단계 S209에서 검출된 포트 폭을 나타내는 포트 폭 정보를 제1 정보 처리 장치(1)에 송신한다.
또한, 도 6에 있어서, 수신측 어드레스의 송신(단계 S205)은, 어느 시점에 행하더라도 무방하며, 예를 들면 기준 포트 정보의 송신(단계 S204)이나, 기준 포트 검출용 패킷의 송신 요구(단계 S201)의 이전에 수행해도 된다. 또한, 포트 폭 검출용 패킷의 송신(단계 S208)으로부터 포트 폭 정보의 송신(단계 S210)에 대해서도, 포트 폭 검출용 패킷의 송신(단계 S206)의 처리 등보다도 이전에 수행해도 무방하다. 이렇게, 도 6의 처리 순서에 관해서는, 어느 정도의 임의성이 있다.
다음으로, 도 5의 흐름도에 있어서의 단계 S102의 처리에 대해서, 도 8을 이용하여 설명한다. 도 8은, 송신측, 서버, 수신측의 사이에 있어서의 정보의 교환이나 처리를 설명하기 위한 도면이다.
(단계 S301) 제1 정보 처리 장치(1)의 검출용 패킷 송신부(14)는, 포트 검출용 패킷을, 제1 통신제어장치(3)를 통해 서버(6)에 송신한다. 이 송신에 있어서, 포트 검출용 패킷이 제1 통신제어장치(3)에 있어서 최신에 할당된 포트를 통과함으로써 패킷의 송신을 행하는 것으로 한다. 이는, 버블 패킷 송신 포트의 위치를 적절하게 검출할 수 있게 하기 위함이다. 예를 들면 검출용 패킷 송신부(14)는, 제1 정보 처리 장치(1)와 서버(6) 사이의 통신에서 그때까지 이용하고 있지 않은 제1 정보 처리 장치(1)의 포트를 이용하여, 포트 검출용 패킷을 송신한다. 이렇게 하여 송신된 포트 검출용 패킷은, 서버(6)의 버블 패킷 송신 포트 검출부(65)에서 수신된다. 이 버블 패킷 송신 포트 검출부(65)는, 포트 검출용 패킷의 헤더를 참조함으로써, 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)에 있어서의 포트의 위치를 검출한다.
(단계 S302) 제1 정보 처리 장치(1)의 버블 패킷 송신부(13)는, 버블 패킷을 제2 통신제어장치(4)에 송신한다. 이 버블 패킷은, 제2 통신제어장치(4)에 있어서, 기준 포트로부터 소정 회(α)의 포트 할당 후에 할당되는 포트에 대하여 송신된다.
(단계 S303) 제1 정보 처리 장치(1)의 검출용 패킷 송신부(14)는, 포트 검출용 패킷을, 제1 통신제어장치(3)를 통해 서버(6)에 송신한다. 이 송신에 있어서, 포트 검출용 패킷이 제1 통신제어장치(3)에 있어서 최신에 할당되는 포트를 통과함 으로써 패킷의 송신을 행하는 것으로 한다. 예를 들면 검출용 패킷 송신부(14)는, 제1 정보 처리 장치(1)와 서버(6) 사이의 통신이나, 단계 S301에서의 포트 검출용 패킷의 송신, 버블 패킷의 송신에서 그때까지 이용하지 않은 제1 정보 처리 장치(1)의 포트를 이용하여, 포트 검출용 패킷을 송신한다. 이렇게 하여 송신된 포트 검출용 패킷은, 서버(6)의 버블 패킷 송신 포트 검출부(65)에서 수신된다. 이 버블 패킷 송신 포트 검출부(65)는, 포트 검출용 패킷의 헤더를 참조함으로써, 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)에 있어서의 포트의 위치를 검출한다.
(단계 S304) 서버(6)의 버블 패킷 송신 포트 검출부(65)는, 단계 S301 및 S303에 있어서, 2개의 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)의 포트의 위치와 버블 패킷 송신 포트가 연속하고 있는지의 여부를 판단한다.
다음으로, 도 5의 흐름도에 있어서의 단계 S104의 처리에 대해서, 도 9를 이용하여 설명한다. 도 9는, 송신측, 서버, 수신측의 사이에 있어서의 정보의 교환이나 처리를 설명하기 위한 도면이다.
(단계 S401) 서버(6)의 버블 패킷 송신 포트 검출부(65)는, 버블 패킷 송신 포트의 위치를 검출한다.
(단계 S402) 서버(6)의 버블 패킷 송신 포트 송신부(67)는, 버블 패킷 송신 포트 정보를 제2 정보 처리 장치(2)에 송신한다. 그 버블 패킷 송신 포트 정보는, 제2 정보 처리 장치(2)의 버블 패킷 송신 포트 수신부(23)에 의해 수신된다.
(단계 S403) 서버(6)는, 제1 통신제어장치(3)의 IP 어드레스를 나타내는 어 드레스 정보를 제2 정보 처리 장치(2)에 송신한다. 그 어드레스 정보는, 통신부(21)에서 수신되어, 응답 패킷 송신부(24)에 전달된다.
(단계 S404) 제2 정보 처리 장치(2)의 응답 패킷 송신부(24)는, 단계 S403에서 수신한 어드레스 정보에 의해 특정되는 제1 통신제어장치(3)에 대하여 응답 패킷을 송신한다. 이 응답 패킷은, 버블 패킷 송신 포트 수신부(23)에서 수신된 버블 패킷 송신 포트 정보가 나타내는 버블 패킷 송신 포트에 대하여 송신된다.
또한, 도 9에 있어서, 버블 패킷 송신 포트 정보의 송신(단계 S402)과, 송신측 어드레스의 송신(단계 S403)의 순서는 문제되지 않는다.
다음으로, 본 실시예에 의한 통신 시스템의 동작에 대해서, 구체예를 이용하여 설명한다. 이 구체예에 있어서, 제1 통신제어장치(3), 제2 통신제어장치(4), 서버(6)의 IP 어드레스(제1 및 제2 통신제어장치(3 및 4)에 대해서는, 통신회선(5) 측의 어드레스)는, 각각 이하와 같이 한다.
제1 통신제어장치(3) : 202.132.10.6
제2 통신제어장치(4) : 131.206.10.240
서버(6) : 155.32.10.10
이하의 구체예에 있어서, 제1 구체예에 있어서는, 제1 통신제어장치(3) 및 제2 통신제어장치(4)가 PS NAT를 이용하고 있는 경우에 관하여 설명한다. 또한, 제2 구체예에 있어서는, 제1 통신제어장치(3)는 Sd NAT를 이용하고, 제2 통신제어장치(4)는 PS NAT를 이용하는 경우에 관하여 설명한다. 또한, 제3 구체예에 있어서는, 제1 통신제어장치(3)는 Sd NAT를 이용하고, 제2 통신제어장치(4)는 AS NAT를 이용하는 경우에 관하여 설명한다.
[제1 구체예]
도 10 내지 도 13은, 제1 구체예에 대해서 설명하기 위한 도면이다. 이 제1 구체예에서는, 제1 정보 처리 장치(1)로부터 접속 요구가 수행된다. 도 10에 있어서, 제1 정보 처리 장치(1)는, 서버(6)의 IP 어드레스 「155.32.10.10」을 미리 알고 있어, 그 서버(6)에 대하여, 제1 정보 처리 장치(1)의 디바이스 ID 「1234567890123456」을 송신한다. 여기에서, 이 디바이스 ID로는, 예를 들면 MAC 어드레스나, EUI64 베이스의 어드레스 등의 GUID(Global Unique ID)를 이용할 수 있다. 이 디바이스 ID의 송신은, 제1 정보 처리 장치(1)의 포트 P1로부터, 제1 통신제어장치(3)에 할당된 포트 P2을 통해, 서버(6)의 포트 P3에 대하여 행하여진다. 이 송신에 의해, 서버(6)는, 제1 정보 처리 장치(1)의 디바이스 ID와, 제1 통신제어장치(3)의 IP 어드레스 「202.132.10.6」와, 제1 통신제어장치(3)에 있어서의 포트 P2의 포트 번호 「10034」를 알 수 있게 된다. 이들의 정보는, 서버(6)에 유지된다.
다음으로, 제1 정보 처리 장치(1)는, 접속을 요구하는 제2 정보 처리 장치(2)의 디바이스 ID 「9876543210123456」를 서버(6)에 송신함으로써, 제2 정보 처리 장치(2)로의 접속 요구를 행한다. 그러면, 서버(6)가, 그 접속 요구를 수신하고, 제2 정보 처리 장치(2)가 서버(6)에 이미 액세스하고 있는지의 여부를 판단한다. 이 제2 정보 처리 장치(2)에 의한 액세스도, 상술한 제1 정보 처리 장치(1)와 같은 방법으로, 제2 정보 처리 장치(2)의 디바이스 ID를 송신함으로써 이루어진다. 따라서, 제2 정보 처리 장치(2)가 서버(6)에 액세스하고 있었을 경우에는, 서버(6)는, 제2 정보 처리 장치(2)의 디바이스 ID 「9876543210123456」와, 제2 통신제어장치(4)의 IP 어드레스 「131.206.10.240」와, 제2 정보 처리 장치(2)와 서버(6) 사이에서의 정보의 송수신에서 이용되는 제2 통신제어장치(4)의 포트 P5의 포트 번호 「23495」를 알고 있고, 그들을 유지하고 있는 것이 된다. 제2 정보 처리 장치(2)가 서버(6)에 이미 액세스하고 있는 경우에는, 기준 포트 정보의 수신에 관한 처리(단계 S101)가 개시된다. 한편, 제2 정보 처리 장치(2)가 서버(6)에 액세스하지 않은 경우에는, 제1 정보 처리 장치(1)로부터의 접속 요구는, Error가 되고, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 사이의 통신은 확립할 수 없게 된다.
기준 포트 정보의 수신에 관한 처리에 있어서, 서버(6)는, 제2 정보 처리 장치(2)에, 제2 통신제어장치(4)의 포트 P5을 통해 기준 포트 검출용 패킷을 송신하라는 취지의 송신 요구를 행한다(단계 S201). 그러면, 그 송신 요구는 제2 정보 처리 장치(2)의 기준 포트 검출용 패킷 송신부(22)에서 수신된다. 그리고 기준 포트 검출용 패킷 송신부(22)는, 제2 정보 처리 장치(2)에 있어서, 그때까지 서버(6)와의 통신에 이용하고 있는 포트 P6과는 다른, 새로 할당된 포트 P8로부터 제2 통신제어장치(4)를 통해 기준 포트 검출용 패킷을 송신한다(단계 S202). 이 기준 포트 검출용 패킷의 송신에 있어서, 제2 통신제어장치(4)에서는, 포트 P7(포트 번호 「23500」)이 새롭게 할당된 것으로 한다. 이 기준 포트 검출용 패킷은, 서버(6)의 기준 포트 검출부(62)에 의해 수신된다. 그리고 기준 포트 P7의 위치로서, 포트 번 호 「23500」이 검출된다(단계 S203).
기준 포트 송신부(63)는, 그 포트 번호 「23500」을 기준 포트 검출부(62)로부터 수취하고, 상기 기준 포트 P7의 포트 번호 「23500」을 포함하는 기준 포트 정보를 구성하고, 상기 기준 포트 정보를 제1 정보 처리 장치(1)에 송신한다(단계 S204). 이 송신은, 제1 통신제어장치(3)에 있어서의 포트 P2을 통해 행하여진다. 제1 정보 처리 장치(1)의 기준 포트 수신부(12)는, 상기 기준 포트 정보를, 통신부(11)를 통해 수신하고, 상기 기준 포트 정보에 포함되는 기준 포트 P7의 포트 번호 「23500」을 버블 패킷 송신부(13)에 전달한다.
또한, 서버(6)는, 제2 통신제어장치(4)의 IP 어드레스 「131.206.10.240」을 나타내는 어드레스 정보를 제1 정보 처리 장치(1)에 송신한다(단계 S205). 그 어드레스 정보는, 통신부(11)에서 수신되고, 버블 패킷 송신부(13)에 전달된다. 이렇게 하여, 버블 패킷 송신부(13)는, 제2 통신제어장치(4)의 IP 어드레스 「131.206.10.240」을 알 수 있게 된다.
포트 폭 검출용 패킷 송신부(15)는, 통신부(11)가 어드레스 정보를 수신한 것을 검지하면, 다수의 포트 폭 검출용 패킷을 도 7에 나타낸 바와 같이 하여 송신한다(단계 S206). 또한, 도 10에서는, 포트 폭 검출용 패킷의 송신에 관해서는 명시하지 않고 있다. 그 포트 폭 검출용 패킷은, 서버(6)의 포트 폭 검출부(64)에서 수신되어, 포트 폭이 검출된다. 이 경우, 포트 폭이 「1」로 검출된 것으로 한다(단계 S207). 검출된 포트 폭은, 버블 패킷 송신 포트 검출부(65)에 전달된다.
또한, 포트 폭 검출용 패킷 송신부(26)는, 서버(6)의 포트 폭 검출부(64)로 부터의 지시에 의해, 다수의 포트 폭 검출용 패킷을 송신한다(단계 S208). 또한, 도 10에서는, 이 포트 폭 검출용 패킷의 송신에 관해서는 명시하지 않고 있다. 그 포트 폭 검출용 패킷은, 서버(6)의 포트 폭 검출부(64)에서 수신되어, 포트 폭이 검출된다. 이 경우, 포트 폭은 「1」로 검출된 것으로 한다(단계 S209). 그 후에 포트 폭 송신부(68)는, 그 검출된 포트 폭 「1」을, 제1 정보 처리 장치(1)에 송신한다(단계 S210). 그리고 그 포트 폭 「1」은, 포트 폭 수신부(19)에서 수신되어, 버블 패킷 송신부(13)에 전달된다.
버블 패킷 송신부(13)는, 버블 패킷을 송신하기 전에, 검출용 패킷 송신부(14)에 대하여, 포트 검출용 패킷을 송신하라는 취지의 지시를 전달한다. 그러면, 검출용 패킷 송신부(14)는, 그때까지 서버(6)와의 통신에 이용되지 않고, 새롭게 할당된 포트(즉, 제1 정보 처리 장치(1)가 새롭게 할당한 포트)인 포트 P9를 이용하여, 서버(6)의 포트 P15에 대하여 포트 검출용 패킷을 송신한다 (단계 S301). 포트 P15는, 서버(6)로부터 지시된 포트인 것으로 한다. 이 포트 검출용 패킷은, 제1 통신제어장치(3)에 있어서, 새롭게 할당된 포트 P12(포트 번호 「10040」)을 이용하여 송신된다. 서버(6)의 버블 패킷 송신 포트 검출부(65)는, 이 포트 검출용 패킷을 수신하고, 제1 통신제어장치(3)의 포트 P12의 포트 번호 「10040」을 검출한다. 버블 패킷 송신 포트 검출부(65)는, 그 포트 P12의 포트 번호 「10040」을 유지해 둔다.
검출용 패킷 송신부(14)는, 포트 검출용 패킷의 송신후에, 포트 검출용 패킷을 송신한 취지를 버블 패킷 송신부(13)에 전달한다. 그러면, 버블 패킷 송신 부(13)는, 그때까지 서버(6)와의 통신에서 이용하지 않은, 새롭게 할당된 포트인 포트 P10을 이용하여, IP 어드레스 「131.206.10.240」의 제2 통신제어장치(4)에 버블 패킷을 송신한다(단계 S302). 이 버블 패킷의 송신에서는, 기준 포트 수신부(12)로부터 수취한 기준 포트 P7의 포트 번호 「23500」로부터, 포트 폭 수신부(19)에서 수신된 포트 폭 「1」의 소정의 배수, 즉 50배 (즉, α=50)정도 떨어져 있는 포트 번호 「23550」의 포트 P17에 대하여 버블 패킷을 송신하는 것으로 한다. 또한, 그 버블 패킷은, 제1 통신제어장치(3)의 포트 P13(포트 번호 「10041」)을 이용하여 송신된 것으로 한다. 버블 패킷 송신부(13)는, 버블 패킷의 송신 후, 「α=50」인 취지를 서버(6)에 송신한다. 그러면, 서버(6)는, 그 취지를 제2 정보 처리 장치(2)에 송신한다. 그리고 「α=50」인 취지가 응답 패킷 송신부(24)에서 수취된다.
버블 패킷 송신부(13)는, 버블 패킷의 송신 후에, 포트 검출용 패킷을 송신하라는 취지의 지시를 검출용 패킷 송신부(14)에 전달한다. 그러면, 검출용 패킷 송신부(14)는, 그때까지 서버(6)와의 통신에서 이용하지 않은, 새롭게 할당된 포트인 포트 P11을 이용하여, 서버(6)의 포트 16에 대하여 포트 검출용 패킷을 송신한다(단계 S303). 이 포트 검출용 패킷은, 제1 통신제어장치(3)에 있어서, 새롭게 할당된 포트 P14(포트 번호 「10042」)를 이용하여 송신된다. 이렇게, 버블 패킷과, 포트 검출용 패킷은, 제1 통신제어장치(3)에 있어서의 다른 포트를 이용하여 송신된다.
서버(6)의 버블 패킷 송신 포트 검출부(65)는, 이 포트 검출용 패킷을 수신 하고, 제1 통신제어장치(3)의 포트 P14의 포트 번호 「10042」을 검출한다. 그리고 버블 패킷 송신 포트 검출부(65)는, 유지하고 있었던 포트 P12의 포트 번호 「10040」과, 검출한 포트 P14의 포트 번호 「10042」의 차이가 「2」이고, 단계 S207에서 검출한 포트 폭 「1」의 2배인 것으로부터, 2개의 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)에 있어서의 포트 P12, P14과, 버블 패킷 송신 포트 P13가 연속하고 있는 것으로 판단한다(단계 S304). 그 결과, 버블 패킷 송신 포트의 위치를 검출할 수 있다고 판단하여(단계 S103), 버블 패킷 송신 포트 검출부(65)는, 버블 패킷 송신 포트의 위치로서, 포트 P12와 포트 P14의 중간인 포트 번호 「10041」을 검출한다(단계 S401).
*버블 패킷 송신 포트 송신부(67)는, 버블 패킷 송신 포트 검출부(65)에서 검출된 버블 패킷 송신 포트 P13의 포트 번호 「10041」을 포함하는 버블 패킷 송신 포트 정보를 구성하고, 그 버블 패킷 송신 포트 정보를, 제2 통신제어장치(4)의 포트 P5를 통해 제2 정보 처리 장치(2)에 송신한다(단계 S402). 그 버블 패킷 송신 포트 정보는, 제2 정보 처리 장치(2)의 버블 패킷 송신 포트 수신부(23)에 있어서 수신된다. 그리고 버블 패킷 송신 포트 정보에 포함되는 버블 패킷 송신 포트 P13의 포트 번호 「10041」가 응답 패킷 송신부(24)에 전달된다.
또한, 서버(6)는, 제1 통신제어장치(3)의 IP 어드레스 「202.132.10.6」을 나타내는 어드레스 정보를 제2 정보 처리 장치(2)에 송신한다(단계 S403). 그 어드레스 정보는, 통신부(21)에 수신되어, 응답 패킷 송신부(24)에 전달된다. 이렇게 하여, 응답 패킷 송신부(24)는, 제1 통신제어장치(3)의 IP 어드레스 「202.132.10.6」을 알 수 있게 된다.
응답 패킷 송신부(24)는, IP 어드레스 「202.132.10.6」의 제1 통신제어장치(3)에 있어서의 포트 번호 「10041」의 버블 패킷 송신 포트 P13에 대하여, 50개의 응답 패킷을 송신한다(단계 S404). 이 50개라고 하는 것은, 응답 패킷 송신부(24)가 서버(6)로부터 수신한 α의 값에 대응한다. 응답 패킷 송신부(24)는, 이 50개의 응답 패킷을, 제2 정보 처리 장치(2)에 있어서 새롭게 할당되는(즉, 그것까지는 서버(6)와의 통신 등이 이용되고 있지 않다) 50개의 포트 P20 내지 P21을 이용하여 송신한다. 따라서, 그 응답 패킷은, 제2 통신제어장치(4)에 있어서도, 새롭게 할당되는 50개의 포트 P18 내지 P19를 이용하여 송신되는 것이 된다(도 12 참조). 또한, 제2 통신제어장치(4)에 있어서, 기준 포트 검출용 패킷이 송신된 시점에 할당된 최신의 포트가 포트 P7이고, 그 포트 P7로부터 포트 번호가 50만큼 떨어져 있는 포트 P17에 버블 패킷이 송신되기 때문에, 응답 패킷의 송신시에 이미 포트 P17이, 제2 정보 처리 장치(2) 이외의 기기에 의해 이용되고 있을 경우를 제외하고, 50개의 응답 포트 중 어느 하나가 버블 패킷 송신 대상 포트 P17을 이용하여 제1 통신제어장치(3)에 송신되는 것이 된다. 그리고 제1 통신제어장치(3)는, PS NAT를 이용하고 있고, 버블 패킷을 버블 패킷 송신 대상 포트 P17에 대하여 송신하고 있다는 송신 이력이 제1 통신제어장치(3)에 남아있기 때문에, 버블 패킷 송신 대상 포트 P17을 이용하여 송신된 응답 패킷만을 수신할 수 있게 된다. 그 응답 패킷은, 제1 정보 처리 장치(1)의 포트 P10을 통해 응답 패킷 수신부(17)에 수신된 다.
여기에서, 이 제1 구체예에 있어서는, 이 응답 패킷의 수신에 의해, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 사이의 통신이 확립되는 것으로 하고 있지만, 계속해서 재응답 패킷의 송신에 관해서도 설명한다.
제2 정보 처리 장치(2)의 응답 패킷 송신부(24)는, 50개의 응답 패킷의 송신 후에, 응답 패킷의 송신을 종료한 취지를, 제2 통신제어장치(4)의 포트 P5을 통해 서버(6)에 송신한다. 그러면, 서버(6)가 응답 패킷의 송신을 종료한 취지를 수취하고, 그 취지를 제1 통신제어장치(3)의 포트 P2을 통해 제1 정보 처리 장치(1)에 송신한다. 제1 정보 처리 장치(1)의 응답 패킷 수신부(17)는, 그 취지를 수신하면, 이미 응답 패킷을 수신하고 있기 때문에, 응답 패킷 17의 헤더에 포함되는 응답 패킷이 송신된 제2 통신제어장치(4)의 포트 P17의 포트 번호 「23550」을 취득하고, 그 포트 번호와 재응답 패킷을 송신하라는 취지의 지시를, 재응답 패킷 송신부(18)에 전달한다(단계 S105). 또한, 응답 패킷 수신부(17)가 응답 패킷을 수신하고 있지 않은 경우에는, 응답 패킷 수신부(17)는, 응답 패킷을 수신하지 않고 있는 취지를 서버(6)에 송신한다. 그 결과, 서버(6)는, 재차, 제2 정보 처리 장치(2)에 기준 포트 검출용 패킷의 송신 요구를 송신하고, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)와의 접속을 확립하기 위한 처리가 다시 행하여지게 된다(단계 S101 내지 S104).
재응답 패킷 송신부(18)는, 응답 패킷 수신부(17)로부터 받은 포트 번호 「23550」의 포트 P17에 대하여, 재응답 패킷을 송신한다(단계 S106). 그 재응답 패 킷은, 제1 통신제어장치(3)의 포트 P13 및 제2 통신제어장치(4)의 포트 P17을 이용하여 제2 정보 처리 장치(2)에 송신되고, 제2 정보 처리 장치(2)의 재응답 패킷 수신부(25)에서 수신된다.
또한, 재응답 패킷 송신부(18)는, 재응답 패킷의 송신 후에, 재응답 패킷의 송신을 종료한 취지를, 제1 통신제어장치(3)의 포트 P2을 통해 서버(6)에 송신한다. 그러면, 서버(6)가 재응답 패킷의 송신을 종료한 취지를 수취하고, 그 취지를 제2 통신제어장치(4)의 포트 P5을 통해 제2 정보 처리 장치(2)에 송신한다. 제2 정보 처리 장치(2)의 재응답 패킷 수신부(25)는, 그 취지를 수신한다. 이 경우에는, 재응답 패킷 수신부(25)가 재응답 패킷을 이미 수신하고 있기 때문에, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 사이의 통신을 확립하는 처리는 종료된다(단계 S107). 또한, 재응답 패킷 수신부(25)가 재응답 패킷을 수신하지 않고 있을 경우에는, 재응답 패킷 수신부(25)는, 재응답 패킷을 수신하지 않고 있다는 취지를 서버(6)에 송신한다. 그 결과, 서버(6)는, 재차, 제2 정보 처리 장치(2)에 기준 포트 검출용 패킷의 송신 요구를 송신하고, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)와의 접속을 확립하기 위한 처리가 다시 행하여지도록 한다(단계 S101 내지 S106).
그 후에 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이에서, 서버(6)를 통하지 않는, Peer to Peer의 UDP에 의한 통신이, 제1 통신제어장치(3)의 포트 P13 및 제2 통신제어장치(4)의 포트 P17을 통해 행하여진다.
또한, 이 제1 구체예에서는, 포트 검출용 패킷과 버블 패킷이 제1 통신제어 장치(3)에 있어서의 연속한 포트를 이용하여 송신된 경우에 관하여 설명하였지만, 예를 들면 포트 P12의 포트 번호가 「10040」이고, 포트 P14의 포트 번호가 「10043」인 경우와 같이, 포트 검출용 패킷과 버블 패킷이 제1 통신제어장치(3)에 있어서 연속한 포트를 이용하여 송신되고 있지 않을 경우에, 버블 패킷과 포트 검출용 패킷의 송신은, 포트 검출용 패킷의 송신에서 이용된 제1 통신제어장치(3)의 포트와, 버블 패킷 송신 포트가 연속한 포트가 될 때까지 반복된다(단계 S102, S103). 여기에서, 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)의 포트와 버블 패킷 송신 포트가 제1 통신제어장치(3)에 있어서의 연속한 포트가 되지 않은 이유로는, 제1 통신제어장치(3)의 로컬측에 제1 정보 처리 장치(1) 이외의 장치(도시하지 않음)가 접속되어 있어, 포트 검출용 패킷의 송신으로부터 버블 패킷의 송신까지, 또는 버블 패킷의 송신으로부터 포트 검출용 패킷의 송신까지, 그 장치에 대하여, 제1 통신제어장치(3)의 포트가 할당되었기 때문이라고 할 수 있다.
또한, 이 제1 구체예에 있어서, 제1 정보 처리 장치(1)로부터의 디바이스 ID의 송신이나, 제2 정보 처리 장치(2)로부터의 디바이스 ID의 송신, 또는 서버(6)로부터의 어드레스 정보의 송신 등의 장치 간에서의 정보의 송수신에 대해서는, 제1 정보 처리 장치(1) 등에 있어서 도면에 나타나 있지 않은 제어부에 의해 이루어지는 것으로 한다. 이것은, 이하의 구체예에 있어서도 동일하다.
또한, 도 11에 있어서, 포트 검출용 패킷의 송신 목적지 포트 P15, P16은, 동일한 포트라도 무방하고, 또는 포트 P3과 동일하더라도 무방하다.
또한, 도 11에 있어서, 제1 통신제어장치(3)가 PS NAT일 경우에는, 포트 P9, 포트 P10, 포트 P11이 동일한 포트라도 무방하다. 다만, 이 경우에 있어서도, 포트 P9(=포트 P10, P11)은, 1회째의 포트 검출용 패킷의 송신시에 새롭게 할당된 포트이다. 또한, 포트 P15과 포트 P16는 다르다.
[제2 구체예]
제2 구체예에서는, 제1 통신제어장치(3)가 Sd NAT를 이용하고 있고, 제2 통신제어장치(4)가 PS NAT를 이용하고 있는 경우에 관하여 설명한다.
이 경우에도, 제2 정보 처리 장치(2)로부터 제1 통신제어장치(3)에 대하여 응답 패킷을 송신할 때까지는, 제1 구체예와 동일하므로, 그 설명을 생략한다. 또한, 이 제2 구체예로 있어서도, 제1 구체예와 같은 포트 번호 등을 이용해서 버블 패킷의 송신 등의 처리가 행하여 지고 있는 것으로 한다. 이 제2 구체예의 경우에는, 제1 통신제어장치(3)에 있어서 Sd NAT, 즉 수신 필터 룰이 No 필터의 NAT를 이용하고 있기 때문에, 제2 정보 처리 장치(2)로부터 송신된 50개의 응답 패킷은, 모두, 제1 정보 처리 장치(1)의 포트 P10을 통해 응답 패킷 수신부(17)에서 수신된다.
응답 패킷 수신부(17)는, 응답 패킷의 송신에 이용된 제2 통신제어장치(4)의 포트 번호를 각 응답 패킷으로부터 취득하고, 그 포트 번호를 재응답 패킷 송신부(18)에 전달한다. 재응답 패킷 송신부(18)는, 그 포트 번호를 수취하고, 제2 통신제어장치(4)가 수취한 각 포트 번호에 대하여, 재응답 패킷을 송신한다(도 14 참조). 제1 통신제어장치(3)에서 이용하고 있는 Sd NAT는, 송신 포트 할당 룰이 Port Sensitive이기 때문에, 제1 통신제어장치(3)에 있어서의 버블 패킷 송신 포트 P13 을 이용하여 제2 통신제어장치(4)에 대하여 송신을 행할 수 있는 것은, 제2 통신제어장치(4)의 버블 패킷 송신 대상 포트 P17에 패킷을 송신한 경우뿐이다. 따라서, 도 14에 나타난 바와 같이, 버블 패킷 송신 대상 포트 P17 이외에 송신되는 재응답 패킷은, 제1 통신제어장치(3)에서 새롭게 할당된 포트 P22 내지 P23을 이용하여 송신된다. 제2 통신제어장치(4)는, PS NAT를 이용하고 있기 때문에, 응답 패킷을 송신한 제1 통신제어장치(3)의 포트 이외로부터의 재응답 패킷을 수신할 수는 없다. 따라서, 제2 정보 처리 장치(2)의 재응답 패킷 수신부(25)는, 버블 패킷 송신 대상 포트 P17에 송신된 재응답 패킷만을 수신할 수 있다. 이렇게 하여, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이에서의 통신이 확립된다.
*여기에서, 제1 정보 처리 장치(1)로부터 제2 통신제어장치(4)에 대하여 재응답 패킷을 송신하는 의미에 관하여 설명한다. 제1 정보 처리 장치(1)가 응답 패킷을 수취하였더라도, 그 응답 패킷이 통과한 포트를 통해, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 사이의 통신이 확실하게 확립되는 것은 아니다. 상기의 제2 구체예와 같이, 수신한 응답 패킷 중에서, 버블 패킷 송신 대상 포트 P17을 통해 송신된 응답 패킷의 경로에 대해서만, 통신을 확립할 수 있기 때문이다. 또는, 다음과 같은 상황도 고려할 수 있다. 제2 구체예에 있어서, 응답 패킷이 버블 패킷 송신 대상 포트 P17을 이용하지 않고 송신되었을 경우(예를 들면, 응답 패킷의 송신까지, 다른 기기에 의해 버블 패킷 송신 대상 포트 P17이 이용된 경우)에 있어서도, 제1 정보 처리 장치(1)는, 모든 응답 패킷을 수신할 수 있다. 그러나 제1 정보 처리 장치(1)가, 그 응답 패킷에 대한 재응답 패킷을 송신했다고 하더라도, 그 재응답 패킷은 제2 정보 처리 장치(2)에서 수취되지 않아서, 통신은 확립되지 않는다. 이렇게, 재응답 패킷의 송신에 의해, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이에서 확립되는 Peer to Peer의 통신에 이용하는 포트의 위치를 확인할 수 있고, 또한, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이에서의 통신을 확립할 수 있는지의 여부를 확인할 수 있게 된다.
[제3 구체예]
제3 구체예에서는, 제1 통신제어장치(3)가 Sd NAT를 이용하고, 제2 통신제어장치(4)가 AS NAT를 이용하는 경우에 관하여 설명한다. 이 제3 구체예에서는, 버블 패킷 송신 대상 포트를 이용하지 않는 통신이 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이에서 확립되는 특수한 상황에 관하여 설명한다.
도 15는, 제2 정보 처리 장치(2)로부터의 응답 패킷의 송신에 대해서 설명하기 위한 도면이다. 이 응답 패킷의 송신에 있어서, 버블 패킷 송신 대상 포트 P17이 이미 다른 기기에 의해 이용되고 있기 때문에, 응답 패킷은, 버블 패킷 송신 대상 포트 P17을 포함하지 않는 제2 통신제어장치(4)에 있어서의 포트 P24 내지 P25을 통해 송신되는 것으로 한다. 제1 통신제어장치(3)가 No 필터의 NAT를 이용하고 있기 때문에, 제1 정보 처리 장치(1)는, 이 모든 응답 패킷을 수신한다.
도 16은, 재응답 패킷의 송신에 대해서 설명하기 위한 도면이다. 도 16에 나타나 있는 바와 같이, 재응답 패킷 송신부(18)가 제2 통신제어장치(4)의 포트 P24 내지 P25에 대하여 재응답 패킷 송신한다. 이 경우에는, 제1 통신제어장치(3)가 Sd NAT를 이용하고 있기 때문에, 새롭게 할당된 포트 P26 내지 P27을 이용하여 재응답 패킷이 제2 통신제어장치(4)의 포트 P24 내지 P25에 대하여 송신된다. 제2 통신제어장치(4)는, AS NAT, 즉, Address Sensitive 필터의 NAT를 이용하고 있기 때문에, 이들의 재응답 패킷은 제2 통신제어장치(4)에서 수신되고, 제2 정보 처리 장치(2)의 포트 P20 내지 P21에 전달된다. 그 후, 제2 정보 처리 장치(2)는, 재응답 패킷 중에서, 어느 하나(예를 들면, 최초에 도달한 것 등)를 선택하고, 그 재응답 패킷이 송신된 경로(예를 들면, 제1 통신제어장치(3)의 포트 P26, 제2 통신제어장치(4)의 포트 P24)를 통해 제1 정보 처리 장치(1)와의 통신을 행할 수 있게 된다.
이 제3 구체예의 상황은, 제1 통신제어장치(3)가 No 필터, 또는 AS 필터를 이용하고 있고, 제2 통신제어장치(4)가 No 필터, 또는 AS 필터를 이용하고 있을 경우에 적합하다. 따라서, 이들의 경우에는, 버블 패킷 송신 포트 P13의 위치를 정확하게 파악할 수 있으면, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)와의 접속을 확실하게 실현할 수 있게 된다.
또한, 제1 통신제어장치(3)에서 이용하는 NAT가 No 필터일 경우에는, 모든 응답 패킷을 제1 정보 처리 장치(1)에서 수신할 수 있다. 또한, 제1 통신제어장치(3)에서 이용하고 있는 NAT가 AS 필터일 경우에도, 제2 통신제어장치(4)에 대하여, 버블 패킷을 송신하고 있기 때문에, 모든 응답 패킷을 제1 정보 처리 장치(1)에서 수신할 수 있게 된다. 또한, 제1 통신제어장치(3)에서 이용하고 있는 NAT의 포트 할당 룰이 Cone, 혹은 Address Sensitive일 경우에는, 제1 정보 처리 장치(1)는, 수신한 응답 패킷에 대하여, 버블 패킷 송신 포트 P13을 이용한 재응답 패킷의 송신을 행할 수 있다. 따라서, 제1 통신제어장치(3)에서 이용하고 있는 NAT의 필터가 No 필터이거나 AS 필터이고, 포트 할당 룰이 Cone이거나 Address Sensitive일 경우에는, 제2 통신제어장치(4)의 NAT의 타입에 의존하지 않고, 버블 패킷 송신 포트 P13의 위치를 정확하게 파악할 수 있다면, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)와의 접속을 확실하게 실현할 수 있게 된다.
이상으로부터, 도 17에 나타나 있는 바와 같이, 본 실시예에 의한 통신 시스템에서는, 제1 통신제어장치(3)와 제2 통신제어장치(4)에서 이용되는 NAT의 타입에 의하지 않고, 통신을 확립할 수 있다. 그 결과, 제1 통신제어장치(3)와 제2 통신제어장치(4)에서 이용되는 NAT의 타입에 관한 판단을 수행하지 않고, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이의 통신을 확립할 수 있게 된다. 특히, 그들의 NAT의 조합이 특정된 경우에는, 응답 패킷이 버블 패킷 송신 대상 포트를 이용하지 않고 송신되었다고 하더라도, 버블 패킷 송신 포트의 위치를 정확하게 검출할 수 있을 때에는, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 사이의 통신을 확립할 수 있다(도 17의 「◎」의 경우). 또한, 그 이외의 경우(도 17의 「○」의 경우)에는, 버블 패킷 송신 포트의 위치를 정확하게 검출할 수 있더라도, 버블 패킷 송신 대상 포트를 이용해서 응답 패킷을 송신하지 않으면, 통신을 확립하는 것은 불가능하다. 따라서, 그 때에는, 버블 패킷 송신 대상 포트를 이용해서 응답 패킷을 송신할 수 있을 때까지, 통신을 확립하기 위한 처리를 반복하게 된다. 또한, 도 17에 나타나 있는 바와 같이, 제1 통신제어장치(3) 및 제2 통신제어장치(4)는, Open NAT(NAT를 이용하지 않는)이라도 무방하다.
(제2 실시예)
본 발명의 제2 실시예에 의한 통신 시스템에 대해서, 도면을 참조하면서 설명한다. 본 실시예에 의한 통신 시스템은, 버블 패킷 송신 포트의 검출이나, 포트 폭의 검출 등을 서버가 아닌, 정보 처리 장치에서 수행함으로써, 서버의 처리 부하를 줄이는 것이다.
본 실시예에 의한 통신 시스템의 구성은, 제1 정보 처리 장치(1), 제2 정보 처리 장치(2), 서버(6) 대신에, 각각 제1 정보 처리 장치(10), 제2 정보 처리 장치(20), 서버(60)를 구비한다는 이외에는, 도 1과 동일하므로, 그 설명을 생략한다.
도 18은, 본 실시예에 의한 제1 정보 처리 장치(10)의 구성을 나타내는 블럭도이다. 도 18에 있어서, 제1 정보 처리 장치(10)는, 통신부(11)와, 기준 포트 수신부(12)와, 버블 패킷 송신부(13)와, 검출용 패킷 송신부(14)와, 포트 폭 검출용 패킷 송신부(15)와, 응답 패킷 수신부(17)와, 재응답 패킷 송신부(18)와, 포트 폭 수신부(19)와, 검출용 포트 정보 수신부(71)와, 버블 패킷 송신 포트 검출부(72)와, 버블 패킷 송신 포트 송신부(73)와, 포트 폭 검출용 포트 정보 수신부(74)와, 포트 폭 검출부(75)를 구비한다. 또한, 검출용 포트 정보 수신부(71), 버블 패킷 송신 포트 검출부(72), 버블 패킷 송신 포트 송신부(73), 포트 폭 검출용 포트 정보 수신부(74), 포트 폭 검출부(75) 이외의 구성 및 동작은, 포트 폭 수신부(19)가 제2 정보 처리 장치(20)로부터 서버(60)를 통해 송신된 포트 폭 정보를 수신한다는 이외에는, 제1 실시예와 동일하므로, 그 설명을 생략한다.
검출용 포트 정보 수신부(71)는, 서버(60)로부터 송신된 검출용 포트 정보를, 통신부(11)를 통해 수신한다. 여기에서, 검출용 포트 정보라는 것은, 검출용 패킷 송신부(14)에 의해 송신된 포트 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 나타내는 정보이다.
버블 패킷 송신 포트 검출부(72)는, 검출용 포트 정보 수신부(71)가 수신한 검출용 포트 정보에 기초하여 버블 패킷 송신 포트의 위치를 검출한다. 버블 패킷 송신 포트 검출부(72)는, 포트 폭 검출부(75)가 검출한 제1 통신제어장치(3)에 있어서의 포트 폭을 이용하여, 버블 패킷 송신 포트의 위치를 검출한다. 이 버블 패킷 송신 포트의 위치의 검출은, 제1 실시예에 있어서의 버블 패킷 송신 포트 검출부(65)와 동일하게 행해지므로, 그 설명을 생략한다. 또한, 버블 패킷 송신 포트 검출부(72)는, 버블 패킷 송신 포트의 위치를 검출할 수 없었을 경우에, 포트 검출용 패킷을 다시 송신하라는 취지의 지시를 검출용 패킷 송신부(14)에 전달하고, 버블 패킷을 재송신하라는 취지의 지시를 버블 패킷 송신부(13)에 전달한다. 그 결과, 검출용 패킷 송신부(14)는, 그 지시에 따라 포트 검출용 패킷을 다시 송신한다. 또한, 버블 패킷 송신부(13)도, 그 지시에 따라 버블 패킷을 재송신한다. 또한, 이 재송신은, 버블 패킷 송신 포트 검출부(72)가 버블 패킷 송신 포트의 위치를 검출할 수 있을 때까지, 또는, 소정의 상한의 회수(예를 들면, 10회 정도)나, 소정의 시간(예를 들면, 30초 정도) 등의 소정의 제한까지 반복된다.
버블 패킷 송신 포트 송신부(73)는, 버블 패킷 송신 포트 검출부(72)가 검출한 버블 패킷 송신 포트의 위치를 나타내는 버블 패킷 송신 포트 정보를, 서버(60) 를 통해 제2 정보 처리 장치(20)에 송신한다.
포트 폭 검출용 포트 정보 수신부(74)는, 포트 폭 검출용 포트 정보를 수신한다. 여기에서, 포트 폭 검출용 포트 정보라는 것은, 포트 폭 검출용 패킷 송신부(15)에 의해 송신된 포트 폭 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 나타내는 정보이다. 이 포트 폭 검출용 포트 정보는, 서버(60)로부터 송신된 것이다.
포트 폭 검출부(75)는, 포트 폭 검출용 포트 정보 수신부(74)가 수신한 포트 폭 검출용 포트 정보에 기초하여 제1 통신제어장치(3)에 있어서의 포트 폭을 검출한다. 이 포트 폭의 검출은, 제1 실시예에 있어서의 포트 폭 검출부(64)와 동일하게 행해지므로, 그 설명을 생략한다.
도 19는, 본 실시예에 의한 제2 정보 처리 장치(20)의 구성을 나타내는 블럭도이다. 도 19에 있어서, 제2 정보 처리 장치(20)는, 통신부(21)와, 기준 포트 검출용 패킷 송신부(22)와, 버블 패킷 송신 포트 수신부(23)와, 응답 패킷 송신부(24)와, 재응답 패킷 수신부(25)와, 포트 폭 검출용 패킷 송신부(26)와, 포트 폭 검출용 포트 정보 수신부(81)와, 포트 폭 검출부(82)와, 포트 폭 송신부(83)를 구비한다. 또한, 포트 폭 검출용 포트 정보 수신부(81), 포트 폭 검출부(82), 포트 폭 송신부(83) 이외의 구성 및 동작은, 제1 실시예와 동일하므로, 그 설명을 생략한다.
포트 폭 검출용 포트 정보 수신부(81)는, 포트 폭 검출용 포트 정보를 수신한다. 여기에서, 포트 폭 검출용 포트 정보라는 것은, 포트 폭 검출용 패킷 송신 부(26)에 의해 송신된 포트 폭 검출용 패킷이 통과한 제2 통신제어장치(4)의 포트의 위치를 나타내는 정보이다. 이 포트 폭 검출용 포트 정보는, 서버(60)로부터 송신된 것이다.
포트 폭 검출부(82)는, 포트 폭 검출용 포트 정보 수신부(81)가 수신한 포트 폭 검출용 포트 정보에 기초하여, 제2 통신제어장치(4)에 있어서의 포트 폭을 검출한다. 이 포트 폭의 검출은, 제1 실시예에 있어서의 포트 폭 검출부(64)와 동일하게 행해지므로, 그 설명을 생략한다.
포트 폭 송신부(83)는, 포트 폭 검출부(82)가 검출한 제2 통신제어장치(4)에 있어서의 포트 폭을 나타내는 정보인 포트 폭 정보를, 서버(60)를 통해 제1 정보 처리 장치(10)에 송신한다.
도 20은, 본 실시예에 의한 서버(60)의 구성을 나타내는 블럭도이다. 도 20에 있어서, 서버(60)는, 통신부(61)와, 기준 포트 검출부(62)와, 기준 포트 송신부(63)와, 검출용 포트 검출부(91)와, 검출용 포트 정보 송신부(92)와, 포트 폭 검출용 포트 검출부(93)와, 포트 폭 검출용 포트 정보 송신부(94)를 구비한다. 또한, 검출용 포트 검출부(91), 검출용 포트 정보 송신부(92), 포트 폭 검출용 포트 검출부(93), 포트 폭 검출용 포트 정보 송신부(94) 이외의 구성 및 동작은, 제1 실시예와 동일하므로, 그 설명을 생략한다.
검출용 포트 검출부(91)는, 제1 정보 처리 장치(10)로부터 송신된 포트 검출용 패킷을 수신하고, 그 포트 검출용 패킷에 기초하여 포트 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 검출한다. 그 포트 위치의 검출은, 포트 검 출용 패킷에 포함되는(예를 들면, 포트 검출용 패킷의 헤더에 포함된다) 포트 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 취득함으로써 행하여진다.
검출용 포트 정보 송신부(92)는, 검출용 포트 검출부(91)가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 제1 정보 처리 장치(10)에 송신한다.
포트 폭 검출용 포트 검출부(93)는, 제1 정보 처리 장치(10)로부터 제1 통신제어장치(3)를 통해 송신된 포트 폭 검출용 패킷을 수신하고, 그 포트 폭 검출용 패킷에 기초하여, 그 포트 폭 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 검출한다. 또한, 포트 폭 검출용 포트 검출부(93)는, 제2 정보 처리 장치(20)로부터 제2 통신제어장치(4)를 통해 송신된 포트 폭 검출용 패킷을 수신하고, 그 포트 폭 검출용 패킷에 기초하여, 그 포트 폭 검출용 패킷이 통과한 제2 통신제어장치(4)의 포트의 위치를 검출한다.
포트 폭 검출용 포트 정보 송신부(94)는, 포트 폭 검출용 포트 검출부(93)가 검출한 포트 폭 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 제1 정보 처리 장치(10)에 송신한다. 또한, 포트 폭 검출용 포트 정보 송신부(94)는, 포트 폭 검출용 포트 검출부(93)가 검출한, 포트 폭 검출용 패킷이 통과한 제2 통신제어장치(4)의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 제2 정보 처리 장치(20)에 송신한다.
또한, 포트 폭 검출용 패킷이 통과한 제1 통신제어장치(3)에 있어서의 포트의 위치를 검출하는 제1 포트 폭 검출용 포트 검출부와, 포트 폭 검출용 패킷이 통과한 제2 통신제어장치(4)에 있어서의 포트의 위치를 검출하는 제2 포트 폭 검출용 포트 검출부를 구비해도 무방하다. 마찬가지로, 포트 폭 검출용 패킷이 통과한 제1 통신제어장치(3)에 있어서의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 제1 정보 처리 장치(10)에 송신하는 제1 포트 폭 검출용 포트 정보 송신부와, 포트 폭 검출용 패킷이 통과한 제2 통신제어장치(4)에 있어서의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 제2 정보 처리 장치(20)에 송신하는 제2 포트 폭 검출용 포트 정보 송신부를 구비해도 무방하다. 그들을 하나로 실현한 것이, 포트 폭 검출용 포트 검출부(93) 및 포트 폭 검출용 포트 정보 송신부(94)이다. 즉, 포트 폭 검출용 포트 검출부(93) 중에서, 포트 폭 검출용 패킷이 통과한 제1 통신제어장치(3)에 있어서의 포트의 위치를 검출하는 부분이 제1 포트 폭 검출용 포트 검출부가 되고, 포트 폭 검출용 패킷이 통과한 제2 통신제어장치(4)에 있어서의 포트의 위치를 검출하는 부분이 제2 포트 폭 검출용 포트 검출부가 된다. 마찬가지로, 포트 폭 검출용 포트 정보 송신부(94) 중에서, 포트 폭 검출용 패킷이 통과한 제1 통신제어장치(3)에 있어서의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 제1 정보 처리 장치(10)로 송신하는 부분이 제1 포트 폭 검출용 포트 정보 송신부가 되고, 포트 폭 검출용 패킷이 통과한 제2 통신제어장치(4)에 있어서의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 제2 정보 처리 장치(20)로 송신하는 부분이 제2 포트 폭 검출용 포트 정보 송신부가 된다.
다음으로, 본 실시예에 의한 통신 시스템의 동작에 관하여 설명한다. 또한, 본 실시예에 의한 통신 시스템이 통신을 시작할 때까지의 동작은, 버블 패킷 송신 포트의 검출이나, 버블 패킷 등의 재송신의 지시를 제1 정보 처리 장치(10)에서 수 행한다는 이외에는, 제1 실시예에 있어서의 도 5에서 제시되는 동작과 동일하므로, 그 설명을 생략한다.
다음으로, 도 5의 흐름도에 있어서의 단계 S101의 처리에 대해서, 도 21을 이용하여 설명한다. 도 21은, 송신측, 서버, 수신측 사이에 있어서의 정보의 교환이나 처리를 설명하기 위한 도면이다. 또한, 단계 S201 내지 S206의 처리는, 제1 실시예에 있어서의 도 6에 관한 설명과 동일하므로, 그 설명을 생략한다.
(단계 S501) 서버(60)의 포트 폭 검출용 포트 검출부(93)는, 제1 정보 처리 장치(10)로부터 송신된 포트 폭 검출용 패킷을 수신한다. 그리고 포트 폭 검출용 포트 검출부(93)는, 포트 폭 검출용 패킷의 헤더에 포함되는, 그 포트 폭 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 검출한다.
(단계 S502) 포트 폭 검출용 포트 정보 송신부(94)는, 포트 폭 검출용 포트 검출부(93)에 의해 검출된, 포트 폭 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 나타내는 정보인 포트 폭 검출용 포트 정보를 제1 정보 처리 장치(10)에 송신한다. 그 포트 폭 검출용 포트 정보는, 제1 정보 처리 장치(10)에 있어서의 포트 폭 검출용 포트 정보 수신부(74)에서 수신된다.
(단계 S503) 포트 폭 검출부(75)는, 포트 폭 검출용 포트 정보 수신부(74)에 수신된 포트 폭 검출용 포트 정보에 기초하여, 제1 통신제어장치(3)의 포트 폭을 검출한다. 또한, 이 포트 폭의 검출은, 제1 실시예와 동일하게 행해지므로, 그 설명을 생략한다.
(단계 S504) 서버(60)의 포트 폭 검출용 포트 검출부(93)는, 제2 정보 처리 장치(20)로부터 송신된 포트 폭 검출용 패킷을 수신한다. 그리고 포트 폭 검출용 포트 검출부(93)는, 포트 폭 검출용 패킷의 헤더에 포함되는, 그 포트 폭 검출용 패킷이 통과한 제2 통신제어장치(4)의 포트의 위치를 검출한다.
(단계 S505) 포트 폭 검출용 포트 정보 송신부(94)는, 포트 폭 검출용 포트 검출부(93)에 의해 검출된, 포트 폭 검출용 패킷의 통과한 제2 통신제어장치(4)의 포트의 위치를 나타내는 정보인 포트 폭 검출용 포트 정보를 제2 정보 처리 장치(20)에 송신한다. 그 포트 폭 검출용 포트 정보는, 제2 정보 처리 장치(20)에 있어서의 포트 폭 검출용 포트 정보 수신부(81)에서 수신된다.
(단계 S506) 포트 폭 검출부(82)는, 포트 폭 검출용 포트 정보 수신부(81)에 수신된 포트 폭 검출용 포트 정보에 기초하여, 제2 통신제어장치(4)의 포트 폭을 검출한다. 또한, 이 포트 폭의 검출은, 제1 실시예와 동일하게 행해지므로, 그 설명을 생략한다.
(단계 S507) 포트 폭 송신부(83)는, 제2 통신제어장치(4)의 포트 폭을 나타내는 정보인 포트 폭 정보를, 그 포트 폭 정보를 제1 정보 처리 장치(10)에 송신하라는 취지의 지시와 함께 서버(60)에 송신한다.
(단계 S508) 서버(60)의 통신부(61)는, 포트 폭 정보를 수신하고, 그 포트 폭 정보를 제1 정보 처리 장치(10)에 송신한다. 그 포트 폭 정보는, 제1 정보 처리 장치(10)에 있어서의 포트 폭 수신부(19)에서 수신된다.
다음으로, 도 5의 흐름도에 있어서의 단계 S102의 처리에 대해서, 도 22를 이용하여 설명한다. 도 22는, 송신측, 서버, 수신측 사이에 있어서의 정보의 교환 이나 처리를 설명하기 위한 도면이다. 또한, 단계 S301 내지 S303의 처리는, 포트 검출용 패킷이 서버(60)에 있어서의 검출용 포트 검출부(91)에서 수신된다는 이외에는, 제1 실시예에 있어서의 도 8에 관한 설명과 같으므로, 그 설명을 생략한다.
(단계 S601) 서버(60)의 검출용 포트 검출부(91)는, 제1 정보 처리 장치(10)로부터 송신된 포트 검출용 패킷을 수신한다. 그리고 검출용 포트 검출부(91)는, 포트 검출용 패킷의 헤더에 포함되는, 그 포트 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 검출한다.
(단계 S602) 검출용 포트 정보 송신부(92)는, 검출용 포트 검출부(91)에 의해 검출된, 포트 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 나타내는 검출용 포트 정보를 제1 정보 처리 장치(10)에 송신한다. 그 검출용 포트 정보는, 제1 정보 처리 장치(10)에 있어서의 검출용 포트 정보 수신부(71)에서 수신된다.
(단계 S603) 서버(60)의 검출용 포트 검출부(91)는, 제1 정보 처리 장치(10)로부터 송신된 포트 검출용 패킷을 수신한다. 그리고 검출용 포트 검출부(91)는, 포트 검출용 패킷의 헤더에 포함되는, 그 포트 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 검출한다.
(단계 S604) 검출용 포트 정보 송신부(92)는, 검출용 포트 검출부(91)에 의해 검출된, 포트 검출용 패킷이 통과한 제1 통신제어장치(3)의 포트의 위치를 나타내는 검출용 포트 정보를 제1 정보 처리 장치(10)에 송신한다. 그 검출용 포트 정보는, 제1 정보 처리 장치(10)에 있어서의 검출용 포트 정보 수신부(71)에서 수신 된다.
(단계 S605) 제1 정보 처리 장치(10)의 버블 패킷 송신 포트 검출부(72)는, 단계 S301, S303에 있어서의, 2개의 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)의 포트의 위치와, 버블 패킷 송신 포트가 연속하고 있는지의 여부를 판단한다. 또한, 구체적인 판단 방법에 대해서는, 제1 실시예와 동일하므로, 그 설명을 생략한다.
또한, 도 22의 흐름도에 있어서, 제1 정보 처리 장치(10)가 단계 S602에서 송신된 검출용 포트 정보를 수신하고나서 버블 패킷을 송신하는 경우에 관하여 설명하고 있지만, 검출용 포트 정보의 수신과 버블 패킷의 송신의 순서는 이에 한정되지 않는다. 예를 들면, 2회째의 포트 검출용 패킷의 송신(단계 S303)을 행한 후에, 1회째의 검출용 포트 정보의 송신(단계 S602) 및 2회째의 검출용 포트 정보의 송신(단계 S604)을 행하여도 무방하다. 또한, 단계 S601, S603에서 검출한 포트 위치를 나타내는 검출용 포트 정보를, 통합하여 송신해도 무방하다.
*다음으로, 도 5의 흐름도에 있어서의 단계 S104의 처리에 대해서, 도 23을 이용하여 설명한다. 도 23은, 송신측, 서버, 수신측의 사이에 있어서의 정보의 교환이나 처리를 설명하기 위한 도면이다. 또한, 단계 S403, S404의 처리는, 제1 실시예에 있어서의 도 9에 관한 설명과 동일하므로, 그 설명을 생략한다.
(단계 S701) 제1 정보 처리 장치(10)의 버블 패킷 송신 포트 검출부(72)는, 버블 패킷 송신 포트의 위치를 검출한다. 또한, 구체적인 판단 방법에 대해서는, 제1 실시예와 동일하므로, 그 설명을 생략한다.
(단계 S702) 제1 정보 처리 장치(10)의 버블 패킷 송신 포트 송신부(73)는, 버블 패킷 송신 포트 정보를, 그 버블 패킷 송신 포트 정보를 제2 정보 처리 장치(20)에 송신하라는 취지의 지시와 함께 서버(60)에 송신한다.
(단계 S703) 서버(60)의 통신부(61)는, 버블 패킷 송신 포트 정보를 수신하고, 그 버블 패킷 송신 포트 정보를 제2 정보 처리 장치(20)에 송신한다. 그 버블 패킷 송신 포트 정보는, 제2 정보 처리 장치(20)에 있어서의 버블 패킷 송신 포트 수신부(23)에서 수신된다.
또한, 본 실시예에 있어서의 통신 시스템의 동작의 구체예에 대해서는, 제1 통신제어장치(3) 및 제2 통신제어장치(4)에 있어서의 포트 폭의 검출을, 각각 제1 정보 처리 장치(10) 및 제2 정보 처리 장치(20)에서 수행하고, 버블 패킷 송신 포트의 위치의 검출을 제1 정보 처리 장치(10)에서 수행하고, 그들에 수반되어 행하여지는 처리(예를 들면, 버블 패킷 송신 포트 정보의 제1 정보 처리 장치(10)로부터 제2 정보 처리 장치(20)까지의 송신 등)를 행한다는 이외에는, 제1 실시예에 있어서의 구체예와 동일하므로, 그 설명을 생략한다.
이상으로부터, 본 실시예에 의한 통신 시스템에서는, 제1 실시예와 동일한 효과에 더하여, 제1 통신제어장치(3) 및 제2 통신제어장치(4)에 있어서의 포트 폭의 검출이나, 버블 패킷 송신 포트의 위치의 검출 등을 제1 정보 처리 장치(10) 및 제2 정보 처리 장치(20)에서 수행함에 의해, 서버(60)에 있어서의 처리 부담을 줄일 수 있다. 특히, 수신 대기의 필요한 처리(예를 들면, 1회째의 포트 검출용 패킷 이 송신된 후, 2회째의 포트 검출용 패킷이 송신되는 것을 기다리는 처리 등)는 처리 부담이 크기 때문에, 그러한 수신 대기의 필요한 처리를 서버에서 행하지 않도록 함으로써, 서버(60)에 있어서의 처리 부담이 대폭 줄일 수 있게 된다.
*또한, 본 실시예에서는, 제1 통신제어장치(3)에 있어서의 포트 폭의 검출을 제1 정보 처리 장치(10)에서 행하는 경우에 관하여 설명했지만, 제1 정보 처리 장치(10)에서는, 버블 패킷 송신 포트의 검출 및 버블 패킷 송신 포트의 송신을 행하고, 제1 통신제어장치(3)에 있어서의 포트 폭의 검출은, 제1 실시예와 동일하게 서버에서 행해도 무방하다. 마찬가지로, 제2 통신제어장치(4)에 있어서의 포트 폭의 검출 및 버블 패킷 송신 포트의 위치의 검출 중 어느 하나를, 제1 실시예와 동일하게 서버에서 수행해도 무방하다.
또한, 본 실시예에서는, 제2 통신제어장치(4)에 있어서의 포트 폭의 검출을 제2 정보 처리 장치(20)에서 행하는 경우에 관하여 설명했지만, 제2 통신제어장치(4)에 있어서의 포트 폭의 검출을 제1 정보 처리 장치(10)에서 행해도 무방하다. 이렇게 함으로써 제2 정보 처리 장치(20)로부터 제1 정보 처리 장치(10)에, 서버(60)를 통해 포트 폭 정보를 송신하지 않을 수 있게 된다. 또한, 이 경우에는, 제2 정보 처리 장치(20)로부터 송신된 포트 폭 검출용 패킷이 통과한 제2 통신제어장치(4)에 있어서의 포트의 위치를 나타내는 정보인 포트 폭 검출용 포트 정보는, 서버(60)로부터 제1 정보 처리 장치(10)에 송신되게 된다.
또한, 본 실시예에서는, 버블 패킷 송신 포트의 검출을 제1 정보 처리 장 치(10)로 행하는 경우에 관하여 설명했지만, 버블 패킷 송신 포트의 검출을 제2 정보 처리 장치(20)에서 행해도 무방하다. 이렇게 함으로써 제1 정보 처리 장치(10)로부터 제2 정보 처리 장치(20)에, 서버(60)를 통해 버블 패킷 송신 포트 정보를 송신하지 않을 수 있게 된다. 또한, 이 경우에는, 제1 정보 처리 장치(10)로부터 송신된 포트 검출용 패킷이 통과한 제1 통신제어장치(3)에 있어서의 포트의 위치를 나타내는 정보인 검출용 포트 정보는, 서버(60)로부터 제2 정보 처리 장치(20)에 송신된다. 또한, 이 경우에는, 제1 통신제어장치(3)에 있어서의 포트 폭의 검출을 제2 정보 처리 장치(20)에서 행해도 무방하다.
또한, 본 실시예에서는, 기준 포트 정보가 서버(60)로부터 제1 정보 처리 장치(10)에 송신되는 경우에 관하여 설명했지만, 기준 포트 정보는, 기준 포트 검출용 패킷을 송신한 제2 정보 처리 장치(20)에 송신되어도 무방하다. 이 경우에는, 제2 정보 처리 장치(20)로부터 서버(60)를 통해, 제1 정보 처리 장치(10)에 기준 포트 정보가 재차, 송신되게 된다.
또한, 본 실시예에 있어서, 포트 폭 검출용 패킷, 기준 포트 검출용 패킷, 포트 검출용 패킷에, 그들의 패킷이 통과한 통신제어장치에 있어서의 포트의 위치를 나타내는 정보를 송신하는 정보 처리 장치를 특정하기 위한 정보(예를 들면, 디바이스 ID나 IP 어드레스 등)가 포함되고, 서버(60)에서는, 그 정보에 기초하여 검출한 포트의 위치를 나타내는 정보를 송신해도 무방하다. 예를 들면, 포트 폭 검출용 패킷 송신부(15)가 송신하는 포트 폭 검출용 패킷에, 포트 폭 검출용 포트 정보의 송신 목적지인 제1 정보 처리 장치(10)의 디바이스 ID가 포함되고, 포트 폭 검 출용 포트 정보 송신부(94)는, 그 디바이스 ID에 대응하는 제1 정보 처리 장치(10)에 포트 폭 검출용 포트 정보를 송신해도 무방하다.
(제3 실시예)
본 발명의 제3 실시예에 의한 통신 시스템에 대해서, 도면을 참조하면서 설명한다. 본 실시예에 의한 통신 시스템은, 한 측의 정보 처리 장치가, 통신제어장치를 통하지 않고 직접 통신을 수행하는 것이다.
도 24는, 본 실시예에 의한 통신 시스템의 구성을 나타내는 블럭도이다. 도 24에 있어서, 본 실시예에 의한 통신 시스템은, 제1 정보 처리 장치(1)와, 제2 정보 처리 장치(2)와, 제1 통신제어장치(3)와, 서버(6)를 구비한다. 또한, 도 24에 나타난 본 실시예에 의한 통신 시스템은, 제2 통신제어장치를 구비하지 않는다는 이외에는, 제1 실시예에 의한 통신 시스템과 동일하다. 또한, 제1 정보 처리 장치(1), 제2 정보 처리 장치(2), 서버(6)의 구성 및 동작은, 제1 실시예와 동일하므로, 그 설명을 생략한다.
여기에서, 제2 정보 처리 장치(2)는, 통신제어장치를 통하지 않고 통신을 행하는 것이기 때문에, 제2 정보 처리 장치(2)는, Full Cone NAT의 통신제어장치를 통해 통신을 행하고 있는 것으로 판단된다. 따라서, 본 실시예에 있어서의 동작은, 제1 실시예에 있어서 제2 통신제어장치(4)가 Full Cone NAT일 경우와 동일하게 처리되어, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2)의 사이의 통신을 확립할 수 있게 된다(도 17에 있어서, 한 측의 NAT가 Open NAT일 경우가, 본 실시예에 대응한다).
이상과 같이, 본 실시예에 의한 통신 시스템에 의하면, 제2 정보 처리 장치(2)가 통신제어장치를 통하지 않고 통신을 행할 경우라도, 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 사이의 통신을 확립할 수 있다.
또한, 본 실시예에서는, 제1 실시예의 통신 시스템에 있어서, 제2 통신제어장치를 구비하지 않는 구성에 관하여 설명했지만, 제2 실시예의 통신 시스템에 있어서, 제2 통신제어장치를 구비하지 않는 구성이라도 무방하다. 이러한, 제2 정보 처리 장치가 통신제어장치를 통하지 않는 경우이여도, 제1 정보 처리 장치와 제2 정보 처리 장치 사이의 통신을 확립할 수 있다.
또한, 본 실시예에서는, 제2 정보 처리 장치(2)가 통신제어장치를 통하지 않고 통신을 행할 경우에 관하여 설명했지만, 제2 정보 처리 장치(2)는, 통신제어장치를 통해 통신을 행하고, 제1 정보 처리 장치(1)가 통신제어장치를 통하지 않고 통신을 행할 경우라도, 마찬가지로 제1 정보 처리 장치(1)와 제2 정보 처리 장치(2) 사이의 통신을 확립할 수 있다.
또한, 상기 각 실시예에 있어서, 서버(6,60)가 정보 처리 장치에 상대방의 통신제어장치의 IP 어드레스를 통지하는 기능을 갖고 있는 경우에 관하여 설명했지만, 이 기능은, 서버(6) 등과는 다른 서버에서 실현되어도 무방하다. 즉, 일측의 정보 처리 장치에 다른 측의 통신제어장치의 어드레스를 통지하는 서버와, 버블 패킷 송신 포트를 검출하는 처리 등을 행하는 서버가 다른 서버라도 무방하다. 즉, 도 25에 나타난 통신 시스템에 있어서, 제1 정보 처리 장치(1) 및 제2 정보 처리 장치(2)는, 제1 통신제어장치(3) 및 제2 통신제어장치(4)의 어드레스를 어드레스 서버(6b)로부터 취득하고, 정보 처리 장치 간의 통신을 확립하는 처리에 있어서는, 서버(6a)를 이용하여도 무방하다.
또한, 일측의 정보 처리 장치에 다른 측의 통신제어장치(통신제어장치를 구비하지 않을 경우에는 정보 처리 장치)의 어드레스를 통지하는 처리나, 발호측의 정보 처리 장치가 상대방(착호측)의 정보 처리 장치를 호출하는 처리 등에 있어서, 세션 초기화 프로토콜(이하, SIP(Session Initiation Protocol)라고 함)을 이용해도 무방하다.
또한, 상기 각 실시예에서는, 기준 포트가 기준 포트 검출용 패킷의 송신시에 최신에 할당되는 포트라고 설명했지만, 이 기준 포트는 최신에 할당되는 포트가 아니어도 무방하다. 예를 들면, 제2 통신제어장치(4)에 접속되어 있는 기기가 제2 정보 처리 장치(2, 20)뿐이고, 제2 통신제어장치(4)에서 이용되고 있는 포트의 수를 대략적으로 파악할 수 있을 경우에는, 서버(6, 60)와의 통신에 이용하고 있는 제2 통신제어장치(4)의 포트를 기준 포트로 해도 무방하다. 이 경우에, 기준 포트 검출용 패킷은, 서버(6, 60)와 통신을 행하는 패킷이 된다.
또한, 상기 각 실시예에서는, 주로 포트 검출용 패킷을 버블 패킷의 송신의 전후에 2회 송신하는 경우에 관하여 설명했지만, 포트 검출용 패킷을 버블 패킷의 송신의 전후의 언제든 1회만 송신하더라도 무방하다. 이 경우에는, 버블 패킷 송신 포트와 포트 검출용 패킷의 송신에서 이용된 제1 통신제어장치(3)의 포트가 연속하고 있다는 가정해서 버블 패킷 송신 포트의 검출을 행한다. 만약에 그 가정이 틀린 경우에는, 재차, 기준 포트 검출용 패킷의 송신 등을 행하게 된다(단계 S101로부터 의 처리를 반복한다).
또한, 상기 각 실시예에서는, 버블 패킷 송신 포트 검출부(65, 72)에 의해, 버블 패킷 송신 포트의 위치를 검출할 수 있는지의 여부를 판단하고 나서, 버블 패킷 송신 포트의 위치의 검출을 행하는 경우에 관하여 설명했지만, 소정의 경우에는, 그 판단을 행하지 않고, 버블 패킷 송신 포트의 위치의 검출을 행해도 무방하다. 그 소정의 경우라는 것은, 예를 들면 제1 통신제어장치(3)에 제1 정보 처리 장치(1, 10) 이외가 접속되고 있지 않고, 버블 패킷 송신 포트와, 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)의 포트가 연속할 가능성이 높은 경우 등이 있다. 만약 이 경우에, 검출한 버블 패킷 송신 포트의 위치가 잘못된 것이며, 제1 통신제어장치(3)에서 이용하고 있는 NAT의 타입이 소정의 것이면, 응답 패킷을 제1 정보 처리 장치(1, 10)가 수신할 수 없는 것이 되고, 재차, 기준 포트 검출용 패킷의 송신으로부터 반복되는 것이 된다.
또한, 버블 패킷 송신 포트 검출부(65, 72)에 있어서, 버블 패킷 송신 포트와, 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)의 포트가 연속하지 않는다고 판단되었을 경우에는, 상기 각 실시예에 있어서의 설명과 같이 재송신 지시를 제1 정보 처리 장치(1)에 송신하거나, 버블 패킷 송신 장치(13) 등에 재송신의 지시를 행하여도 무방하고, 또는, 통신 확립의 처리를 종료해도 무방하며, 기준 포트 검출용 패킷의 송신으로부터의 처리를 다시 행해도 무방하다.
또한, 버블 패킷 송신 포트 검출부(65, 72)에서는, 버블 패킷 송신 포트와, 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)의 포트가 연속인지 여부의 판단을, 연속인 개연성이 높을 경우에는 연속이라고 판단하도록 해도 무방하다. 예를 들면, 제1 통신제어장치(3)의 포트 폭이 「1」과 「2」로 변화될 수 있을 경우(예를 들면, 시간적으로 변할 경우)에는, 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)의 포트의 간격이 「2」, 「3」, 「4」이면 연속인 가능성이 있기 때문에, 연속이라고 판단해서 그 후의 처리로 진행하도록 하여도 무방하다. 또한, 이 경우에도, 예를 들면 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치(3)의 포트의 간격이 「5」이면, 연속이 아니라고 판단된다.
또한, 상기 각 실시예에서는, 포트 폭 검출부(64, 75, 82)에 의해 포트 폭을 검출하는 경우에 관하여 설명했지만, 이 포트 폭은, 사용자에 의한 직접 입력이나 소정의 기록 매체(예를 들면, CD-ROM이나 착탈 가능한 메모리 등), 통신 등에 의해 서버(6, 60)나 제1 정보 처리 장치(1, 10)로부터 제공받아도 무방하고 ,또는, 제1 통신제어장치(3) 등에 기억되어 있는 포트 폭을 취득해도 무방하다. 이것은, 제1 정보 처리 장치(1, 10) 등이 제2 통신제어장치(4) 등의 IP 어드레스를 알아내는 데에도 적용할 수 있다. 즉, IP 어드레스가, 사용자의 직접 입력 등에 의해 제1 정보 처리 장치(1, 10) 등에 입력되어도 무방하다.
또한, 상기 각 실시예에서는, 제1 정보 처리 장치(1, 10)가 버블 패킷 및 포트 검출용 패킷을, 제1 정보 처리 장치(1, 10)의 각각 새로운 포트를 이용하여 송신하는 경우에 관하여 설명했지만, 예를 들면 제1 정보 처리 장치(1)가 제1 통신제어장치(3)가 Port Sensitive의 포트 할당 룰인 NAT를 이용하고 있는 것을 검지했을 경우에는, 제1 정보 처리 장치(1, 10)는, 버블 패킷 및 포트 검출용 패킷을, 제1 정보 처리 장치(1, 10)의 동일한 포트로부터 송신해도 무방하다. 다만, 이 경우에는, 포트 검출용 패킷의 송신 목적지의 포트(서버(6, 60)의 포트)를 다른 것으로 정할 필요가 있다.
*또한, 상기 각 실시예에서는, 응답 패킷의 송신시에 새롭게 할당된 제2 통신제어장치(4)의 포트를 이용해서 응답 패킷을 송신하는 경우에 관하여 설명했지만, 이것은 하나의 예시이며, 응답 패킷의 송신에 이용되는 제2 통신제어장치(4)의 포트에, 그때까지 이용되고 있는 포트, 예를 들면 기준 포트 검출용 패킷의 송신에 이용된 포트 등이 포함되어 있어도 무방하다.
또한, 기준 포트로부터 버블 패킷 송신 대상 포트까지에 있어서 할당 가능한 포트의 수(α)를, 버블 패킷 등의 재전송을 행할 때마다, 증가시켜도 무방하다. 즉, 버블 패킷 송신부(13)는, 버블 패킷 등을 재전송할 때마다, 더욱 기준 포트로부터 벗어난 버블 패킷 송신 대상 포트에 대하여 버블 패킷을 송신해도 무방하다. 이렇게 함으로써 응답 패킷이 송신될 때까지 버블 패킷 송신 대상 포트가 이용되는 것을, 회피하기가 더욱 쉬워진다.
또한, 상기 각 실시예에서는, 응답 패킷 송신부(24)가 버블 패킷 송신부(13)로부터, 서버(6)를 통해, 기준 포트로부터 버블 패킷 송신 대상 포트까지에 있어서 할당 가능한 포트의 수(α)를 수신할 경우에 관하여 설명했지만, 그 α의 값은, 서버(6, 60)로부터, 버블 패킷 송신부(13)와 응답 패킷 송신부(24)에 송신되어도 무방하고(이 경우에는, 포트 폭 정보가 제1 정보 처리 장치(1)에 송신되지 않아도 무 방하다), 또한, 제1 정보 처리 장치(1, 10) 및 제2 정보 처리 장치(2, 20)에 있어서, 그 α의 값이 미리 설정되어 있어도 무방하다.
또한, 상기 각 실시예에서는, 응답 패킷 송신부(24)가, 기준 포트로부터 버블 패킷 송신 대상 포트까지에 있어서 할당 가능한 포트의 수(α)만의 응답 패킷을 송신한다고 설명했지만, 응답 패킷 송신부(24)는, α이상의 응답 패킷을 송신해도 무방하고, α이하의 응답 패킷을 송신해도 무방하다. 예를 들면 응답 패킷 송신부(24)는, α의 값을 버블 패킷 송신부(13)로부터 서버(6, 60)를 통해 수취하지 않고, 기준 포트와 버블 패킷 송신 대상 포트와의 포트 번호의 차이를 수취하고, 그 차이의 값에 대응하는 수의 응답 패킷을 송신해도 무방하다. 이 경우에는, 응답 패킷 송신부(24)는, α의 배수의 응답 패킷을 송신하는 것이 된다. 여기에서, 도 6의 단계 S209에 관한 설명에서 기술한 것과 같이, 포트 폭 검출부(68, 82)로 검출한 제2 통신제어장치(4)에 있어서의 포트 폭이, 실제의 포트 폭의 배수인 가능성이 있을 경우에는, 기준 포트와 버블 패킷 송신 대상 포트와의 포트 번호의 차이의 값을, 응답 패킷의 개수로 하는 것이 바람직하다. 이는 버블 패킷 송신 대상 포트를 이용한 응답 패킷의 송신을, 더욱 확실하게 행할 수 있기 때문이다. 또한, 예를 들면 제2 정보 처리 장치(2, 20)가, 제2 통신제어장치(4)에 있어서 기준 포트의 할당의 후에 할당된 포트의 수를 알고 있을 경우에는, α로부터 그만큼의 수를 뺀 수의 응답 패킷을 송신해도 무방하다. 그렇게 해도, 응답 패킷이 버블 패킷 송신 대상 포트를 이용해서 송신되기 때문이다.(다만, 제2 통신제어장치(4)의 포트 폭의 검출이 정확할 필요가 있다). 따라서, 버블 패킷 송신 대상 포트의 1개 이전의 포트까 지가 할당되어 있는 경우에는, 응답 패킷은 1개만 송신되어도 무방하다.
또한, 상기 각 실시예에서는, 응답 패킷을 수신한 후에, 재응답 패킷을 송신할 경우에 관하여 설명했지만, 응답 패킷의 수신에 의해 제1 정보 처리 장치(1, 10)와 제2 정보 처리 장치(2, 20) 사이의 통신을 확립할 수 있을 경우에는, 재응답 패킷을 송부하지 않아도 무방하다. 예를 들면, 제1 정보 처리 장치(1, 10)가 버블 패킷 송신 대상 포트를 이용하여 송신된 응답 패킷을 수신했을 경우에는, 버블 패킷 송신 포트 및 버블 패킷 송신 대상 포트를 통한 Peer to Peer 통신이 가능하기 때문에, 재응답 패킷을 송신하지 않아도 무방하다.
또한, 상기 각 실시예의 구체예에서는, 응답 패킷을 수신할 수 있었는지의 여부를, 제2 정보 처리 장치(2, 20)로부터 응답 패킷을 송신한 취지를 서버(6, 60)를 통해 수취했을 때에, 응답 패킷을 이미 수신하였는지의 여부로 판단했지만, 예를 들면 버블 패킷을 송신하고 나서 소정 시간(예를 들면 15초 등) 경과해도 응답 패킷을 수신하지 않았을 경우에는, 응답 패킷을 수신하는 것이 불가능하다(즉, 통신을 확립할 수 없다)고 판단해도 무방하다. 또한, 이것은, 재응답 패킷에 관해서도 마찬가지이며, 응답 패킷을 송신하고 나서 소정 시간이 경과해도 재응답 패킷을 수신하지 않았을 경우에는, 재응답 패킷을 수신하는 것이 불가능하다(즉, 통신을 확립할 수 없다)고 판단해도 무방하다.
또한, 상기 각 실시예에서는, 1개의 서버(6, 60)에 의해, 기준 포트 정보의 송신이나, 버블 패킷 송신 포트의 검출 등을 행하는 경우에 관하여 설명했지만, 다수의 서버에 의해 그러한 처리를 행해도 무방하다.
(제4 실시예)
본 발명의 제4 실시예에 의한 통신 시스템에 대해서, 도면을 참조하면서 설명한다. 본 실시예에 의한 통신 시스템에서는, 상기 각 실시예에서 설명한 버블 패킷 송신 포트의 위치의 검출 방법을 이용하고, SIP에 의한 통신을 행하는 경우에 관하여 설명한다.
도 26은, 본 실시예에 의한 통신 시스템의 구성을 나타내는 블럭도이다. 도 26에 있어서, 본 실시예에 의한 통신 시스템은, 제1 정보 처리 장치(30)와, 통신제어장치(3)와, 제2 정보 처리 장치(40)와, 포트 검출 서버(51)와, SIP 서버(52)를 구비한다. 또한, 통신제어장치(3)는, NAT 기능을 포함하고, 어드레스의 변환, 포트의 할당, 패킷의 필터링 등을 수행하고, 상기 각 실시예에 있어서의 제1 통신제어장치(3)와 동일한 것이기 때문에, 그 설명을 생략한다.
도 27은, 본 실시예에 의한 제1 정보 처리 장치(30)의 구성을 나타내는 블럭도이다. 도 27에 있어서, 제1 정보 처리 장치(30)는, 통신부(11)와, 버블 패킷 송신부(13)와, 검출용 패킷 송신부(14)와, 포트 폭 검출용 패킷 송신부(15)와, 검출용 포트 정보 수신부(71)와, 버블 패킷 송신 포트 검출부(72)와, 포트 폭 검출용 포트 정보 수신부(74)와, 포트 폭 검출부(75)와, SIP 처리부(31)를 구비한다. 또한, SIP 처리부(31) 이외의 구성 및 동작은, 제2 실시예와 같은 것이므로, 그 설명을 생략한다. 다만, 버블 패킷 송신부(13)는, 기준 포트 수신부(12)가 수신한 기준 포트 정보가 나타내는 기준 포트의 위치에 기초하여 버블 패킷을 송신하는 것이 아니라, SIP 처리부(31)로부터 수취한 버블 패킷 송신 대상 포트의 위치를 가리키는 정보에 기초하여 그 버블 패킷 송신 대상 포트에 대하여 버블 패킷을 송신한다.
SIP 처리부(31)는, SIP에 관한 처리를 행한다. 구체적으로는, SIP 서버(52)와의 사이에서, 접속 요구의 송신이나, 통신 상대의 어드레스, 포트 번호 등의 취득 등의 처리를 행한다. 이들의 처리에 대해서는, 종래부터 행해지고 있는 처리와 같기 때문에, 그 설명을 생략한다.
제2 정보 처리 장치(40)는, SIP 서버(52)를 통해 다른 클라이언트 단말과 Peer to Peer의 음성 통신을 행하는 단말 장치(예를 들면, VoIP의 전화 단말 장치)이다. 제2 정보 처리 장치(40)는, 제2 정보 처리 장치(40)의 IP 어드레스와, 송신 포트의 위치와, 수신 포트의 위치를 SIP 서버(52)를 통해 다른 클라이언트 단말에 알려주는 것이며, 또한, 다른 클라이언트 단말의 수신 포트를, SIP 서버(52)를 통해 수취하고, Peer to Peer의 음성 통신에 있어서, 패킷의 송신 목적지를 그 수신 포트로 설정하는 것이 가능하다. 여기에서, 어떤 클라이언트 단말의 송신 포트라는 것은, 그 클라이언트 단말이 다른 클라이언트 단말에 대하여 정보를 송신하는 포트이다. 또한, 어떤 클라이언트 단말의 수신 포트라는 것은, 그 클라이언트 단말이 다른 클라이언트 단말로부터 정보를 수신하는 포트이다. 제2 정보 처리 장치(40)는, SIP의 일반적인 클라이언트 단말이므로, 그 상세한 설명을 생략한다.
도 28은, 본 실시예에 의한 포트 검출 서버(51)의 구성을 나타내는 블럭도이다. 도 28에 있어서, 포트 검출 서버(51)는, 제1 정보 처리 장치(30)로부터 송신된 버블 패킷이 통과한 통신제어장치(3)의 포트의 위치를 검출하기 위한 처리를 행하는 것이다. 포트 검출 서버(51)는, 통신부(61)와, 검출용 포트 검출부(91)와, 검출 용 포트 정보 송신부(92)와, 포트 폭 검출용 포트 검출부(93)와, 포트 폭 검출용 포트 정보 송신부(94)를 구비한다. 또한, 이들의 각 구성은, 제2 실시예와 같으므로, 그 설명을 생략한다.
SIP 서버(52)는, SIP에 관한 처리를 행하는 서버다. SIP에 관한 처리라는 것은, 예를 들면 클라이언트로부터의 어드레스 통지를 받아서 어드레스를 등록하는 레지스터 처리나, 클라이언트의 어드레스를 관리하는 로케이션 서비스의 처리, 클라이언트로부터의 발호 요구를 수취하고, 로케이션 서비스로 목적지의 어드레스를 검색하고, 목적지의 클라이언트에 전송하는 프록시 서버의 처리 등이다. 또한, 이 SIP 서버(52)가 갖는 각 기능은, 2 이상의 서버에 의해 실현되어도 무방하다. 또한, 이 SIP 서버가, 제1 정보 처리 장치(30)측과, 제2 정보 처리 장치(40)측에 각각 구비되어도 무방하다. 이 경우에는, 예를 들면 제1 정보 처리 장치(30), 제1 SIP 서버, 제2 SIP 서버, 제2 정보 처리 장치(40)를 통하는 경로에 의해, 제1 정보 처리 장치(30)로부터 제2 정보 처리 장치(40)까지의 정보의 릴레이가 행하여진다. 이 SIP 서버(52)의 처리는, 종래부터 행해지고 있는 처리와 같기 때문에, 그 상세한 설명을 생략한다.
다음으로, 본 실시예에 의한 통신 시스템의 동작에 관하여 설명한다. 도 29는, 발호측, 포트 검출 서버(51), SIP 서버(52), 착호측의 사이에서의 정보의 교환이나 처리를 설명하기 위한 도면이다. 또한, 도 29에서는, 제1 정보 처리 장치(30), 통신제어장치(3)를 발호측으로 하고, 제2 정보 처리 장치(40)를 착호측으로 한다.
(단계 S801) 발호측의 장치인 제1 정보 처리 장치(30)와, 포트 검출 서버(51)와의 사이에서, 소정의 패킷의 송수신을 수행함으로써, 발호측의 통신제어장치(3)의 포트 폭을 검출한다. 이 포트 폭의 검출의 구체적인 처리에 대해서는, 제2 실시예의 도 21에 있어서의 단계 S206, S501, S502, S503과 같으므로, 그 설명을 생략한다.
(단계 S802) 제1 정보 처리 장치(30)는, SIP 서버(52)에 제2 정보 처리 장치(40)와의 통신을 요구하는 취지의 통신 요구를 송신한다. 이 통신 요구에는, 통신 목적지의 클라이언트(즉, 제2 정보 처리 장치(40))의 IP 어드레스와, 송신 포트의 위치와, 수신 포트의 위치를 제1 정보 처리 장치(30)에 송신하라는 취지의 지시가 포함되어 있는 것으로 한다.
(단계 S803) SIP 서버(52)는, 제1 정보 처리 장치(30)로부터 송신된 통신 요구를, 제2 정보 처리 장치(40)에 중계한다. 그리고 그 통신 요구는, 제2 정보 처리 장치(40)에서 수신된다.
(단계 S804) 제2 정보 처리 장치(40)는, 제2 정보 처리 장치(40)의 IP 어드레스, 송신 포트의 위치, 수신 포트의 위치를 나타내는 정보를 포함하는 통신 목적지 정보를 SIP 서버(52)에 송신한다.
(단계 S805) SIP 서버(52)는, 제2 정보 처리 장치(40)로부터 송신된 통신 목적지 정보를, 제1 정보 처리 장치(30)에 중계한다. 그리고 그 통신 목적지 정보는, 제1 정보 처리 장치(30)의 SIP 처리부(31)에서 수신된다.
(단계 S806) 제1 정보 처리 장치(30)는, 포트 검출 패킷이나, 버블 패킷을 송신하고, 그것에 대하여, 포트 검출 서버(51)로부터, 검출용 포트 정보를 수신한다. 이 버블 패킷 등의 송수신의 구체적인 처리에 대해서는, 제2 실시예의 도 22의 처리와 같으므로, 그 설명을 생략한다. 또한, 본 실시예에서, 버블 패킷은, SIP 처리부(31)에 수신된 통신 목적지 정보를 이용하여, 제2 정보 처리 장치(40)의 송신 포트에 송신된다. 즉, 본 실시예에서, 버블 패킷 송신 대상 포트는, 제2 정보 처리 장치(40)의 송신 포트이다. 또한, 연속성의 판단(도 21의 단계 S605)에 있어서는, 단계 S801에서 검출된 통신제어장치(3)의 포트 폭을 이용할 수 있다.
(단계 S807) 제1 정보 처리 장치(30)의 버블 패킷 송신 포트 검출부(72)는, 버블 패킷 송신 포트의 위치 검출이 가능한지의 여부를 판단한다. 단계 S806에 있어서의 연속성의 판단(도 21의 단계 S605)에 있어서, 2개의 포트 검출용 패킷의 송신에 이용된 통신제어장치(3)의 포트와, 버블 패킷 송신 포트가 연속하고 있다고 판단되었을 경우에는, 버블 패킷 송신 포트의 위치를 검출 가능하다고 판단하여 단계 S808로 진행하고, 그렇지 않을 경우에는, 버블 패킷 송신 포트의 위치를 검출 불가능하다고 판단하여 단계 S806로 복귀한다.
(단계 S808) 버블 패킷 송신 포트 검출부(72)는, 버블 패킷 송신 포트의 위치를 검출한다. 이 버블 패킷 송신 포트의 위치가, 발호측에 있어서의 수신 포트의 위치가 된다.
(단계 S809) SIP 처리부(31)는, 통신제어장치(3)의 글로벌측의 IP 어드레스와, 단계 S808에서 검출된 버블 패킷 송신 포트(즉, 수신 포트)의 위치를 포함하는 통신 요구를, SIP 서버(52)에 송신한다. 또한, 통신제어장치(3)의 글로벌측의 IP 어드레스에 대해서는, 미리, 포트 폭의 검출 등의 처리에서 취득해 두는 것으로 한다.
(단계 S810) SIP 서버(52)는, 제1 정보 처리 장치(30)로부터 송신된 통신 요구를, 제2 정보 처리 장치(40)에 중계한다. 그리고 그 통신 요구는, 제2 정보 처리 장치(40)에서 수신된다.
(단계 S811) 제2 정보 처리 장치(40)는, 수신한 통신 요구에 대하여, 접속 준비가 완료되었다는 취지의 응답을 송신한다.
(단계 S812) SIP 서버(52)는, 그 응답을 제1 정보 처리 장치(30)에 중계한다.
(단계 S813) 제1 정보 처리 장치(40)는, 제2 정보 처리 장치(40)로부터 받은 응답 에 대한 확인을 송신한다.
(단계 S814) SIP 서버(52)는, 그 확인을 제2 정보 처리 장치(40)에 중계한다. 이렇게 하여, 발호측과 착호측에서의 Peer to Peer에서의 접속을 행할 준비가 완료하고, 제1 정보 처리 장치(30)가 제2 정보 처리 장치(40)의 수신 포트에 정보를 송신하고, 제2 정보 처리 장치(40)가 통신제어장치(3)의 수신 포트(버블 패킷 송신 포트)에 정보를 송신함으로써, 제1 정보 처리 장치(30)와, 제2 정보 처리 장치(40)와의 사이에서, SIP 서버(52) 등의 릴레이 서버를 통하지 않고 통신이 이루어지게 된다.
또한, 도 29의 각 단계의 처리의 순서에 대해서는, 어느 정도의 임의성이 있다. 예를 들면, 단계 S801의 포트 폭의 검출 처리는, 단계 S806의 버블 패킷 등의 송수신의 처리보다 이전에 행하여지기만 한다면, 통신 요구의 송신 처리(단계 S802)나, 통신 목적지 정보의 송신 처리(단계 S804)의 뒤에서 실행되어도 무방하다.
다음으로, 본 실시예에 의한 통신 시스템의 동작에 대해서, 구체예를 이용하여 설명한다. 이 구체예에 있어서, 제1 정보 처리 장치(30) 및 제2 정보 처리 장치(40)는, 미리 SIP 서버(52)에 대하여, 어드레스 정보의 등록을 행하고 있는 것으로 한다. 또한, 제1 정보 처리 장치(30)의 디바이스 ID는, 「AAA@abc...com」이며, 제2 정보 처리 장치(40)의 디바이스 ID는, 「BBB@abc...com」인 것으로 한다. 여기에서, 이 구체예서는, 디바이스 ID가 「AAA@abc...com」등일 경우에 관하여 설명하지만, 디바이스 ID는, 메일 어드레스나, 전화번호 등과 같이, 클라이언트 단말을 특정할 수 있는 정보이면, 그 형식을 막론하고, 어떤 것이라도 무방하다.
우선, 제1 정보 처리 장치(30)는, 포트 검출 서버(51)에 대하여, 포트 폭 검출용 패킷을 송신함으로써, 통신제어장치(3)의 포트 폭의 검출을 행한다(단계 S801). 이 처리의 상세에 대해서는, 제2 실시예와 같으므로, 그 설명을 생략한다.
다음으로, 제1 정보 처리 장치(30)는, 통신 요구를, 도 30에서 나타낸 바와 같은 포트 P1로부터 SIP 서버(52)의 포트 P3에 송신한다(단계 S802). 이 통신 요구는, 소위 「INVITE 리퀘스트」라고 불려지는 것이다. 이 통신 요구에는, 제1 정보 처리 장치(30)의 디바이스 ID 「AAA@abc...com」과, 통신을 요구하는 상대편의 제2 정보 처리 장치(40)의 디바이스 ID 「BBB@abc...com」가 포함된다. 또한, 이 통신 요구에는, IP 어드레스와, 송신 포트의 위치와, 수신 포트의 위치를 나타내는 정보 를 송신하라는 취지의 지시가 포함되어 있다. 또한, 제2 정보 처리 장치(40)가 통신 요구를 수신함으로써, IP 어드레스 등을 송신하라는 취지의 지시를 수신했다고 판단해도 무방하다. 즉, 통신 요구에 지시의 커맨드가 포함되어 있지 않아도 무방하다.
그 통신 요구는, SIP 서버(52)에서 수신된다. 그리고 SIP 서버(52)는, 제2 정보 처리 장치(40)의 디바이스 ID 「BBB@abc...com」에 대응하는 IP 어드레스와 포트 번호를 검색하고, 그 IP 어드레스의 포트 번호에 대하여, 통신 요구를 송신한다(단계 S803).
제2 정보 처리 장치(40)는, 그 통신 요구를 수신하면, 제2 정보 처리 장치(40)의 IP 어드레스와, 송신 포트 sPort의 위치와, 수신 포트 rPort의 위치를 나타내는 정보인 통신 목적지 정보를 SIP 서버(52)의 포트 P3에 송신한다(단계 S804). 이 통신 목적지 정보에도, 제1 정보 처리 장치(30)의 디바이스 ID와, 제2 정보 처리 장치(40)의 디바이스 ID가 포함되어 있다. 또한, 일반적인 SIP에서는, 통신 목적지 정보에는, 통신 목적지의 송신 포트의 위치는 포함되지 않는다. 따라서, 통신 목적지 정보에 통신 목적지의 송신 포트의 위치가 포함된다는 점에 대해서는, SIP의 확장이다.
그 통신 목적지 정보는, SIP 서버(52)로 수신되어, 통신제어장치(3)를 통해 제1 정보 처리 장치(30)에 송신된다(단계 S805). 그 통신 목적지 정보는, 제1 정보 처리 장치(30)의 SIP 처리부(31)에서 수취된다. SIP 처리부(31)는, 그 통신 목적지 정보에 포함되는 제2 정보 처리 장치(40)의 IP 어드레스와, 송신 포트 sPort의 위 치를 나타내는 정보를, 버블 패킷 송신부(13)에 전달한다.
그 후, 버블 패킷의 송신 처리 등이 이루어진다(단계 S806). 구체적으로는, 검출용 패킷 송신부(14)는, 포트 검출용 패킷을, 제1 정보 처리 장치(30)에 있어서 새롭게 할당된 포트 P5로부터, 포트 검출 서버(51)의 포트 P11에 송신한다. 그 포트 검출용 패킷은, 포트 검출 서버(51)의 검출용 포트 검출부(91)에서 수신되고, 포트 검출용 패킷의 헤더에 포함되는 통신제어장치(3)의 포트 P8의 포트 번호가 검출된다. 검출용 포트 정보 송신부(92)는, 그 포트 P8의 포트 번호를 페이로드에 포함하는 검출용 포트 정보를, 통신제어장치(3)의 포트 P8에 송신한다. 그 검출용 포트 정보는, 통신제어장치(3)에서 어드레스 변환되고, 제1 정보 처리 장치(30)의 포트 P5에 송신된다. 그리고 검출용 포트 정보 수신부(71)에 있어서, 그 검출용 포트 정보가 수신된다.
그 포트 검출용 패킷의 송신의 직후에, 버블 패킷 송신부(13)는, 버블 패킷을 제2 정보 처리 장치(40)의 포트 sPort에 송신한다. 그 버블 패킷은, 제1 정보 처리 장치(30)의 포트 P6로부터 송신된다. 여기에서, 포트 P6은, 포트 P5와는 다른 포트이며, 버블 패킷의 송신시에 제1 정보 처리 장치(30)에 있어서 새롭게 할당된 포트이다.
그 버블 패킷의 송신의 직후에, 검출용 패킷 송신부(14)는, 재차, 포트 검출용 패킷을, 포트 검출 서버(51)의 포트 P11에 송신한다. 그 포트 검출용 패킷은, 제1 정보 처리 장치(30)의 포트 P7로부터 송신된다. 여기에서, 포트 P7은, 포트 P5, 포트 P6과는 다른 포트이며, 포트 검출용 패킷의 송신시에 제1 정보 처리 장 치(30)에 있어서 새롭게 할당된 포트이다. 그 포트 검출용 패킷은, 포트 검출 서버(51)에서 수신된다. 또한, 1회째의 포트 검출용 패킷의 경우와 같은 방법으로, 검출용 포트 정보가 포트 검출 서버(51)로부터 제1 정보 처리 장치(30)에 송신된다.
제1 정보 처리 장치(30)의 검출용 포트 정보 수신부(71)는, 이 검출용 포트 정보를 수신하고, 2개의 포트 검출용 패킷의 송신에 이용된 통신제어장치(3)의 포트의 위치와, 버블 패킷 송신 포트가 연속하고 있는지의 여부를 판단한다. 이 판단은, 포트 P10과, 포트 P8과의 차이가, 단계 S801로 검출된 통신제어장치(3)의 포트 폭의 2배와 같은지의 여부에 의해 판단된다. 포트 P10과, 포트 P8과의 차이가, 통신제어장치(3)의 포트 폭의 2배이면, 버블 패킷 송신 포트 검출부(72)는, 2개의 포트 검출용 패킷의 송신에 이용된 통신제어장치(3)의 포트와, 버블 패킷 송신 포트가 연속하고 있다고 판단하고, 버블 패킷 송신 포트를 검출 가능한 것으로 판단하여(단계 S807), 그 포트 P8의 포트 번호와, 포트 P10의 포트 번호의 중간의 포트 번호를, 버블 패킷 송신 포트의 위치로서 검출한다(단계 S808). 버블 패킷 송신 포트 검출부(72)는, 그 검출한 버블 패킷 송신 포트의 위치를, SIP 처리부(31)에 전달한다.
SIP 처리부(31)는, 그 버블 패킷 송신 포트의 위치와, 통신제어장치(3)의 글로벌측의 어드레스를 포함하는 통신 요구를 재차, SIP 서버(52)에 송신한다(단계 S809). 이 통신 요구도, 소위 「INVITE 리퀘스트」라고 불리는 것이며, 제1 정보 처리 장치(30)의 디바이스 ID와, 제2 정보 처리 장치(40)의 디바이스 ID가 포함된 다. 그 통신 요구는, SIP 서버(52)에 있어서 중계되어, 제2 정보 처리 장치(40)에 송신된다(단계 S810). 이 통신도, 포트 P1 내지 P4을 통해 행하여진다.
*제2 정보 처리 장치(40)는, 그 통신 요구를 수신함으로써, 발호측의 IP 어드레스와, 수신 포트의 위치를 알 수 있게 된다. 또한, 제2 정보 처리 장치(40)는, 통신 요구에 대한 응답을 SIP 서버(52)에 송신한다(단계 S811). 이 응답에도, 제1 정보 처리 장치(30)이라고, 제2 정보 처리 장치(40)와의 디바이스 ID가 포함되어 있다. 그 응답은, SIP 서버(52)에서 중계되어, 통신제어장치(3)의 포트 P2을 통해 제1 정보 처리 장치(30)에 송신된다(단계 S812).
통신의 상대측에서의 응답에 대하여, SIP 서버(52)를 경유하여, 응답에 대한 확인을 송신한다(단계 S813, S814). 이 확인의 송신은, 소위 「ACK」라고 불리는 것이다. 그 후, 도 31에 나타나 있는 바와 같이, 제1 정보 처리 장치(30)로부터는, 제2 정보 처리 장치(40)의 포트 rPort에 정보가 송신되고, 제2 정보 처리 장치(40)로부터는, 통신제어장치(3)의 포트 P9에 정보가 송신된다. 통신제어장치(3)의 포트 P9에 송신된 정보는, 통신제어장치(3)에 있어서 어드레스 변환되어, 제1 정보 처리 장치(30)의 포트 P6에 송신된다. 이렇게 하여, 제1 정보 처리 장치(30)와, 제2 정보 처리 장치(40)와의 사이에 있어서, 통신이 확립되고, 양자 간에 있어서의 통화가 이루어지게 된다.
또한, 본 실시예에서는, 도 29에 나타난 절차를 이용하여 설명했지만, 정보 처리 장치의 사이의 통신을 확립하는 절차는, 도 29에 나타낸 것에 한정되지 않는 다. 예를 들면, 단계 S811의 응답의 송신에 있어서, 제2 정보 처리 장치(40)의 IP 어드레스를 나타내는 정보 및 수신 포트의 위치를 나타내는 정보를 SIP 서버(52)를 경유하여 제1 정보 처리 장치(30)에 송신해도 무방하다. 이 경우에는, 제1 정보 처리 장치(30)가, 그 SIP 서버(52)를 경유하여 송신된 정보를 이용함으로써, 제1 정보 처리 장치(30)와 제2 정보 처리 장치(40) 사이의 통신이 확립된다. 다만, 단계 S811에서 송신되는 제2 정보 처리 장치(40)의 IP 어드레스는, 단계 S804에서 송신된 것과 동일한 것이다. 또한, 제2 정보 처리 장치(40)는, 단계 S804에서 송신한 통신 목적지 정보에 의해 나타내지는 송신 포트를, 제1 정보 처리 장치(30)와의 통신에 있어서의 송신 포트로서 이용하는 것으로 한다.
이상과 같이, 본 실시예에 의한 통신 시스템에 의하면, 제1 실시예 내지 3에서 설명한 버블 패킷 송신 포트의 위치를 검출하는 방법을 이용함으로써, 통신제어장치(3)가 어떤 종류의 NAT를 이용하고 있었을 경우라도, SIP에 의한 정보 처리 장치의 통신을 확립할 수 있다. 이렇게, 버블 패킷 송신 포트의 위치를 검출하는 방법은, 제1 실시예 내지 제3 실시예에서 설명한 시스템이나 절차 이외에 있어서 이용되어도 무방하다.
또한, 본 실시예에서는, 통신제어장치(3)의 포트 폭이나, 버블 패킷 송신 포트의 위치의 검출을, 클라이언트 측에서 행하는 경우에 관하여 설명했지만, 제1 실시예와 마찬가지로, 그들의 처리 중의, 임의의 1이상의 처리를 서버 측에서 행할 수도 있다.
또한, 본 실시예에서는, 포트 검출 서버(51)와, SIP 서버(52)를 별개로 구비 하는 경우에 관하여 설명했지만, 그들을 동일한 서버로서 구성해도 무방하다.
또한, 본 실시예에서는, SIP을 이용하여, 정보 처리 장치 간의 통신을 확립하는 경우에 관하여 설명했지만, 정보 처리 장치 간의 통신을 확립하는 다른 프로토콜을 이용해도 무방하다. 그 경우에도, 포트 검출 서버(51)를 구비함으로써, 버블 패킷 송신 포트의 위치를 검출하는 것이 가능하고, NAT 기능을 갖는 통신제어장치를 통해 통신을 행하는 것이 가능하다.
또한, 예를 들면 제4 실시예에서 설명한 바와 같이, 상기 각 실시예에 있어서, 통신 시스템은, 버블 패킷을 송신하는 정보 처리 장치와, 버블 패킷 송신 포트의 위치를 검출하기 위한 처리를 행하는 서버를 구비한 통신 시스템으로서, 그 버블 패킷 송신 포트의 위치를 검출하기 위한 것일 수도 있다. 즉, 본 발명에 있어서의 통신 시스템은, 이하와 같은 통신 시스템이다. 이 통신 시스템은, 정보 처리 장치와, 정보 처리 장치의 통신을 제어하는 통신제어장치와, 서버를 구비한 통신 시스템으로서, 정보 처리 장치는, 통신제어장치를 통해 통신제어장치에 송신 이력을 남기기 위한 버블 패킷을 송신하는 버블 패킷 송신부와, 버블 패킷의 송신에 이용되고 통신제어장치의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해서 이용되는 포트 검출용 패킷을 버블 패킷 송신부가 버블 패킷을 송신하는 전후에 서버에 송신하는 검출용 패킷 송신부를 구비하고, 서버는, 정보 처리 장치로부터 송신된 포트 검출용 패킷을 수신하고 포트 검출용 패킷에 기초하여 버블 패킷 송신 포트의 위치를 검출하는 버블 패킷 송신 포트 검출부를 구비한다. 이 통신 시스템에 있어서, 서버에 있어서 검출된 버블 패킷 송신 포트의 위치는, 송신부에 의해 정보 처 리 장치에 송신되어도 무방하고, 또는, 그와 다른 방법에 의해 정보 처리 장치에 전달되어도 무방하다. 그와 다른 방법으로는, 예를 들면 버블 패킷 송신 포트의 위치를 나타내는 정보를 기록 매체에 기록하고, 정보 처리 장치가 그 기록 매체로부터 정보를 읽어내도록 하여도 무방하고, 또는, 서버에 있어서 버블 패킷 송신 포트의 위치를 나타내는 정보가 표시되고, 그 표시를 봄으로써, 사용자가 정보 처리 장치에 포트의 범위를 나타내는 정보를 입력하도록 하는 것도 무방하다.
또한, 예를 들면 제4 실시예에서 설명한 바와 같이, 상기 각 실시예에 있어서, 통신 시스템은, 버블 패킷을 송신하는 정보 처리 장치와, 버블 패킷 송신 포트의 위치를 검출하기 위한 처리를 행하는 서버를 구비한 통신 시스템으로서, 그 버블 패킷 송신 포트의 위치를 검출하기 위한 것일 수도 있다. 즉, 본 발명에 있어서의 통신 시스템은, 이하와 같은 통신 시스템이다. 이 통신 시스템은, 정보 처리 장치와, 정보 처리 장치의 통신을 제어하는 통신제어장치와, 서버를 구비한 통신 시스템으로서, 정보 처리 장치는, 통신제어장치를 통해 통신제어장치에 송신 이력을 남기기 위한 버블 패킷을 송신하는 버블 패킷 송신부와, 버블 패킷의 송신에 이용되는 통신제어장치의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해서 이용되는 포트 검출용 패킷을 버블 패킷 송신부가 버블 패킷을 송신하는 전후에 서버에 송신하는 검출용 패킷 송신부와, 포트 검출용 패킷이 통과한 통신제어장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보 수신부와, 검출용 포트 정보 수신부가 수신한 검출용 포트 정보에 기초하여 버블 패킷 송신 포트의 위치를 검출하는 버블 패킷 송신 포트 검출부를 구비하고, 서버는, 포트 검출 용 패킷을 수신하고 해당 포트 검출용 패킷이 통과한 통신제어장치의 포트의 위치를 검출하는 검출용 포트 검출부와, 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 정보 처리 장치에 송신하는 검출용 포트 정보 송신부를 구비한다. 이렇게, 버블 패킷 송신 포트의 위치의 검출을, 서버가 아닌, 정보 처리 장치에서 행해도 무방하다. 이 통신 시스템에 있어서, 정보 처리 장치에 있어서 검출된 버블 패킷 송신 포트의 위치는, 송신부에 의해 다른 정보 처리 장치에 송신되어도 무방하고, 또는, 그와 다른 방법에 의해 다른 정보 처리 장치에 전달되어도 무방하다. 그와 다른 방법으로는, 예를 들면 버블 패킷 송신 포트의 위치를 나타내는 정보를 기록 매체에 기록하고, 다른 정보 처리 장치가 그 기록 매체로부터 정보를 읽어내도록 하여도 무방하고, 또는, 정보 처리 장치에 있어서 버블 패킷 송신 포트의 위치를 나타내는 정보가 표시되고, 그 표시를 봄으로써, 사용자가 다른 정보 처리 장치에 버블 패킷 송신 포트의 위치를 나타내는 정보를 입력하도록 하여도 무방하다.
또한, 상기 각 실시예에서는, 각 정보 처리 장치가 통신제어장치를 하나만 통해 통신회선(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 정보 처리 장치 및 제2 정보 처리 장치는, 어플리케이션으로서의 방화벽의 기능을 포함하는 것이라도 무방하고, 그렇지 않아도 무방하다.
또한, 상기 각 실시예에서는, 서버(6) 등을 IP 어드레스에 의해 특정하는 경우에 관하여 설명했지만, 서버(6) 등을 도메인 명(예를 들면, server.pana.net 등)에 의해 특정해도 무방하다. 이 경우에는, 그 도메인 명이 DNS서버를 이용하여, IP 어드레스로 변환됨으로써, 서버를 특정할 수도 있다.
또한, 상기 각 실시예에 있어서의 통신으로 이용되는 프로토콜은, IPv4(Internet Protocol version 4)라도 무방하고, 또는, IPv6(Internet Protocol version 6)이라도 무방하다.
또한, 상기 각 실시예에 있어서, 각 처리(각 기능)는, 하나의 장치(시스템) 에 의해 집중 처리됨으로써 실현되어도 무방하고, 또는, 다수의 장치에 의해 분산 처리됨으로써 실현되어도 무방하다.
또한, 상기 각 실시예에 있어서, 통신의 요구를 보내는 측이 버블 패킷을 송신하는 측일 경우에 관하여 설명했지만, 통신의 요구를 받아들이는 측이 버블 패킷을 송신하는 측이라도 무방하다.
또한, 상기 각 실시예에 있어서, 각 구성 요소는 전용의 하드웨어에 의해 구성해도 무방하고, 또는, 소프트웨어에 의해 실현 가능한 구성요소에 대해서는, 프로그램 제어에 의한 소프트웨어에 의해 구성해도 무방하다. 또한, 상기 각 실시예에 있어서의 정보 처리 장치를 실현하는 소프트웨어는, 이하와 같은 프로그램이다. 즉, 이 프로그램은, 컴퓨터에서, 제1 정보 처리 장치의 통신을 제어하는 제1 통신제어장치와, 제2 정보 처리 장치의 통신을 제어하는 제2 통신제어장치를 통해, 제2 정보 처리 장치와 통신하는 제1 정보 처리 장치에 있어서의 처리를 실행시키기 위한 프로그램으로서, 제1 통신제어장치에 송신 이력을 남기기 위해서 송신되는 버블 패킷의 송신의 대상의 기준이 되는 제2 통신제어장치에 있어서의 포트인 기준 포트의 위치를 나타내는 기준 포트 정보를 수신하는 기준 포트 수신 단계와, 기준 포트 정보에 기초하여 제1 통신제어장치를 통해, 버블 패킷을 제2 통신제어장치에 송신하는 버블 패킷 송신 단계와, 버블 패킷의 송신에 이용되는, 제1 통신제어장치의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해서, 포트 검출용 패킷을 송신하는 검출용 패킷 송신 단계와, 버블 패킷 송신 포트에 대하여, 제2 정보 처리 장치로부터 제2 통신제어장치를 통해 송신된 응답 패킷을 수신하는 응답 패킷 수신 단계를 실행시키기 위한 것이다.
또한, 이 프로그램에서, 기준 포트는, 제2 통신제어장치에서 할당된 포트 중에서, 기준 포트의 위치를 검출하기 위한 기준 포트 검출용 패킷이 제2 정보 처리 장치로부터 송신된 시점에 있어서의 최신의 포트라도 무방하다.
또한, 이 프로그램에서, 검출용 패킷 송신 단계에 있어서, 버블 패킷 송신 단계에서 버블 패킷을 송신하는 전후에, 포트 검출용 패킷을 송신해도 무방하다.
또한, 이 프로그램에서, 버블 패킷 및 포트 검출용 패킷은, 제1 통신제어장치에 있어서의 다른 포트를 이용하여 송신되어도 무방하다.
*또한, 이 프로그램에서, 버블 패킷 및 포트 검출용 패킷은, 제1 정보 처리 장치에 있어서 새롭게 할당된 포트를 이용해서 송신되어도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 버블 패킷 및 포트 검출용 패킷을 다시 송신하라는 취지의 재송신 지시를 수신하는 재송신 지시 수신 단계를 더 실행시키고, 검출용 패킷 송신 단계에서는, 재송신 지시 수신 단계에서 재송신 지시를 수신한 경우에, 포트 검출용 패킷을 다시 송신하고, 버블 패킷 송신 단계에서는, 재송신 지시 수신 단계에서 재송신 지시를 수신했을 경우에, 버블 패킷을 다시 송신하도록 해도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 제1 통신제어장치에 있어서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을, 제1 통신제어장치를 통해 송신하는 포트 폭 검출용 패킷 송신 단계를 더 실행시켜도 무방하다.
또한, 이 프로그램에서는, 제2 통신제어장치에 있어서의, 버블 패킷을 송신하는 대상의 포트인 버블 패킷 송신 대상 포트가, 기준 포트로부터 소정의 포트 할당 후에 할당되는 포트여도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 제2 통신제어장치에 있어서의 포트 폭을 나타내는 정보인 포트 폭 정보를 수신하는 포트 폭 수신 단계를 더 실행시키고, 버블 패킷 송신 단계에서는, 기준 포트와의 포트 간격이 포트 폭 정보가 나타내는 포트 폭의 M배(M은 1이상의 정수)인 버블 패킷 송신 대상 포트에 대하여 버블 패킷을 송신하도록 해도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 응답 패킷 수신 단계에서 응답 패킷을 수신했을 경우에, 해당 응답 패킷의 송신에 이용된 제2 통신제어장치의 포트에 대하여, 재응답 패킷을 송신하는 재응답 패킷 송신 단계를 더 실행시켜도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 포트 검출용 패킷이 통과한 제1 통신제어장치의 포트의 위치를 나타내는 검출용 포트 정보를 수신하는 검출용 포트 정보수신 단계와, 검출용 포트 정보 수신 단계에서 수신한 검출용 포트 정보에 기초하여 버블 패킷 송신 포트의 위치를 검출하는 버블 패킷 송신 포트 검출 단계와, 버블 패킷 송신 포트 검출 단계에서 검출한 버블 패킷 송신 포트의 위치를 나타내는 버블 패킷 송신 포트 정보를 송신하는 버블 패킷 송신 포트 송신 단계를 더 실행시켜도 무방하다.
또한, 이 프로그램에서는, 검출용 패킷 송신 단계에서, 버블 패킷 송신 포트 검출 단계에 있어서 버블 패킷 송신 포트의 위치를 검출할 수 없었을 경우에, 포트 검출용 패킷을 다시 송신하고, 버블 패킷 송신 단계에서, 버블 패킷 송신 포트 검출 단계에 있어서 버블 패킷 송신 포트의 위치를 검출할 수 없었을 경우에, 버블 패킷을 다시 송신해도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 제1 통신제어장치에 있어서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을, 제1 통신제어장치를 통해 송신하는 포트 폭 검출용 패킷 송신 단계와, 포트 폭 검출용 패킷이 통과한 제1 통신제어장치의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 수신하는 포트 폭 검출용 포트 정보 수신 단계와, 포트 폭 검출용 포트 정보 수신부가 수신한 포트 폭 검출용 포트 정보에 기초하여 제1 통신제어장치에 있어서의 포트 폭을 검출하는 포트 폭 검출 단계를 더 실행시키고, 버블 패킷 송신 포트 검출 단계에서, 포트 폭 검출 단계에서 검출한 제1 통신제어장치에 있어서의 포트 폭을 이용하여 버블 패킷 송신 포트의 위치를 검출해도 무방하다.
상기 각 실시예에 있어서의 정보 처리 장치를 실현하는 소프트웨어는, 이하와 같은 프로그램이다. 즉, 이 프로그램은, 컴퓨터에서, 제1 정보 처리 장치의 통신을 제어하는 제1 통신제어장치와, 제2 정보 처리 장치의 통신을 제어하는 제2 통신제어장치를 통해, 제2 정보 처리 장치와 통신하는 제1 정보 처리 장치에 있어서의 처리를 실행시키기 위한 프로그램으로서, 제1 통신제어장치는, 제2 정보 처리 장치로부터 제2 통신제어장치를 통해, 제2 통신제어장치에 송신 이력을 남기기 위한 버블 패킷이 송신되는 것이고, 버블 패킷의 송신의 대상의 기준이 되는 제1 통 신제어장치에 있어서의 포트인 기준 포트의 위치를 검출하기 위한 기준 포트 검출용 패킷을 송신하는 기준 포트 검출용 패킷 송신 단계와, 제2 정보 처리 장치로부터의 버블 패킷의 송신에 이용되는, 제2 통신제어장치의 포트인 버블 패킷 송신 포트의 위치를 나타내는 버블 패킷 송신 포트 정보를 수신하는 버블 패킷 송신 포트 수신 단계와, 버블 패킷 송신 포트 정보가 나타내는 버블 패킷 송신 포트에 대하여 응답 패킷을 송신하는 응답 패킷 송신 단계를 실행시키기 위한 것이다.
또한, 이 프로그램에서, 응답 패킷 송신 단계에 있어서, 응답 패킷을, 제1 통신제어장치의 다른 N개(N은 2이상의 정수)의 포트를 이용하여 송신해도 무방하다.
또한, 이 프로그램에서, N개의 포트는, 응답 패킷의 송신시에, 제1 통신제어장치에 있어서 새롭게 할당되는 것이여도 무방하다.
또한, 이 프로그램에서, N은, 제1 통신제어장치에 있어서의, 기준 포트로부터 버블 패킷이 송신된 포트까지에 있어서 할당 가능한 포트의 수 이상이라도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 응답 패킷의 송신에 이용된 제1 통신제어장치의 포트에 대하여, 제2 정보 처리 장치로부터 송신된 재응답 패킷을 수신하는 재응답 패킷 수신 단계를 더 실행시켜도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 제1 통신제어장치에 있어서의 포트 폭을 검출하기 위한 포트 폭 검출용 패킷을 제1 통신제어장치를 통해 송신하는 포트 폭 검출용 패킷 송신 단계를 더 실행시켜도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 포트 폭 검출용 패킷이 통과한 제1 통신제어장치의 포트의 위치를 나타내는 포트 폭 검출용 포트 정보를 수신하는 포트 폭 검출용 포트 정보 수신 단계와, 포트 폭 검출용 포트 정보 수신 단계에서 수신한 포트 폭 검출용 포트 정보에 기초하여 제1 통신제어장치에 있어서의 포트 폭을 검출하는 포트 폭 검출 단계와, 포트 폭 검출 단계에서 검출한 제1 통신제어장치에 있어서의 포트 폭을 나타내는 정보인 포트 폭 정보를 송신하는 포트 폭 송신 단계를 더 실행시켜도 무방하다.
상기 실시예에 있어서의 서버를 실현하는 소프트웨어는, 이하와 같은 프로그램이다. 즉, 이 프로그램은, 컴퓨터에서, 제1 정보 처리 장치 및 제2 정보 처리 장치가, 제1 정보 처리 장치의 통신을 제어하는 제1 통신제어장치 및 제2 정보 처리 장치의 통신을 제어하는 제2 통신제어장치를 통해 행하는 통신을 확립시키는 서버에 있어서의 처리를 실행시키기 위한 프로그램으로서, 제1 통신제어장치에 송신 이력을 남기기 위해서 제1 정보 처리 장치가 송신하는 버블 패킷의 송신의 대상의 기준이 되는 제2 통신제어장치에 있어서의 포트인 기준 포트의 위치를 검출하기 위해서, 제2 정보 처리 장치로부터 제2 통신제어장치를 통해 송신된 기준 포트 검출용 패킷을 수신하고, 해당 기준 포트 검출용 패킷에 기초하여 기준 포트의 위치를 검출하는 기준 포트 검출 단계와, 기준 포트 검출 단계에서 검출한 기준 포트의 위치를 나타내는 기준 포트 정보를 제1 정보 처리 장치에 송신하는 기준 포트 송신 단계와, 제1 정보 처리 장치로부터 제2 통신제어장치에의 버블 패킷의 송신에 이용된 제1 통신제어장치에 있어서의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해 서, 제1 정보 처리 장치로부터 송신된 포트 검출용 패킷을 수신하고, 포트 검출용 패킷에 기초하여 버블 패킷 송신 포트의 위치를 검출하는 버블 패킷 송신 포트 검출 단계와, 버블 패킷 송신 포트 검출 단계에서 검출한 버블 패킷 송신 포트의 위치를 나타내는 버블 패킷 송신 포트 정보를 제2 정보 처리 장치에 송신하는 버블 패킷 송신 포트 송신 단계를 실행시키기 위한 것이다.
또한, 이 프로그램에서는, 컴퓨터에서, 버블 패킷 송신 포트 검출 단계에서 버블 패킷 송신 포트의 위치를 검출할 수 없었을 경우에, 버블 패킷 및 포트 검출용 패킷을 다시 송신하라는 취지의 지시인 재송신 지시를 제1 정보 처리 장치에 송신하는 재송신 지시 송신 단계를 더 실행시켜도 무방하다.
또한, 이 프로그램에서는, 버블 패킷 송신 포트 검출 단계에 있어서, 버블 패킷의 송신의 전후에 송신된 포트 검출용 패킷을 수신하고, 해당 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치에 있어서의 2개의 포트와, 버블 패킷 송신 포트가 연속하고 있는지의 여부를 판단하고, 연속하고 있을 경우에는, 2개의 포트 사이에 끼인 포트의 위치를 버블 패킷 송신 포트의 위치로서 검출해도 무방하다.
또한, 이 프로그램에서는, 버블 패킷 송신 포트 검출 단계에 있어서, 포트 검출용 패킷의 송신에 이용된 제1 통신제어장치에 있어서의 2개의 포트의 간격이, 제1 통신제어장치에 있어서의 포트 폭의 2배일 경우에, 연속하고 있는 것으로 판단해도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 제1 정보 처리 장치로부터 제1 통신제어장치를 통해 송신된 제1 포트 폭 검출용 패킷을 수신하고, 해당 제1 포트 폭 검출용 패킷에 기초하여 제1 통신제어장치에 있어서의 포트 폭을 검출하는 제1 포트 폭 검출 단계를 더 실행시키고, 버블 패킷 송신 포트 검출 단계에서는, 제1 포트 폭 검출부가 검출한 포트 폭을 이용해서 판단을 행해도 무방하다.
또한, 이 프로그램에서는, 컴퓨터에서, 제2 정보 처리 장치로부터 제2 통신제어장치를 통해 송신된 제2 포트 폭 검출용 패킷을 수신하고, 해당 제2 포트 폭 검출용 패킷에 기초하여 제2 통신제어장치에 있어서의 포트 폭을 검출하는 제2 포트 폭 검출 단계와, 제2 포트 폭 검출 단계에서 검출한 포트 폭을 나타내는 정보인 포트 폭 정보를 제1 정보 처리 장치에 송신하는 포트 폭 송신 단계를 더 실행시켜도 무방하다.
또한, 상기 실시예에 있어서의 서버를 실현하는 소프트웨어는, 이하와 같은 프로그램이다. 즉, 이 프로그램은, 컴퓨터에서, 제1 정보 처리 장치 및 제2 정보 처리 장치가, 제1 정보 처리 장치의 통신을 제어하는 제1 통신제어장치 및 제2 정보 처리 장치의 통신을 제어하는 제2 통신제어장치를 통해 행하는 통신을 확립시키는 서버에 있어서의 처리를 실행시키기 위한 프로그램으로서, 제1 통신제어장치에 송신 이력을 남기기 위해서 제1 정보 처리 장치가 송신하는 버블 패킷의 송신의 대상의 기준이 되는 제2 통신제어장치에 있어서의 포트인 기준 포트의 위치를 검출하기 위해서, 제2 정보 처리 장치로부터 제2 통신제어장치를 통해 송신된 기준 포트 검출용 패킷을 수신하고, 해당 기준 포트 검출용 패킷에 기초하여 기준 포트의 위치를 검출하는 기준 포트 검출 단계와, 기준 포트 검출 단계에서 검출한 기준 포트의 위치를 나타내는 기준 포트 정보를 제1 정보 처리 장치에 송신하는 기준 포트 송신 단계와, 제1 정보 처리 장치로부터 제2 통신제어장치에의 버블 패킷의 송신에 이용된 제1 통신제어장치에 있어서의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해서, 제1 정보 처리 장치로부터 송신된 포트 검출용 패킷을 수신하고, 해당 포트 검출용 패킷에 기초하여 포트 검출용 패킷이 통과한 제1 통신제어장치의 포트의 위치를 검출하는 검출용 포트 검출 단계와, 검출용 포트 검출 단계에서 검출한 포트의 위치를 나타내는 검출용 포트 정보를 제1 정보 처리 장치에 송신하는 검출용 포트 정보 송신 단계를 실행시키기 위한 것이다.
또한, 상기 각 실시예에 있어서의 정보 처리 장치를 실현하는 소프트웨어는, 이하와 같은 프로그램이다. 즉, 이 프로그램은, 컴퓨터에서, 정보 처리 장치, 정보 처리 장치의 통신을 제어하는 통신제어장치, 및 서버를 구비하는 통신 시스템을 구성하는 정보 처리 장치에 있어서의 처리를 실행시키기 위한 프로그램으로서, 통신제어장치를 통해, 통신제어장치에 송신 이력을 남기기 위한 버블 패킷을 송신하는 버블 패킷 송신 단계와, 버블 패킷의 송신에 이용되는 통신제어장치의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해서 이용되는 포트 검출용 패킷을, 버블 패킷 송신 단계에서 버블 패킷을 송신하는 전후에, 서버에 송신하는 검출용 패킷 송신 단계를 실행시키기 위한 것이다.
또한, 상기 각 실시예에 있어서의 서버를 실현하는 소프트웨어는, 이하와 같은 프로그램이다. 즉, 이 프로그램은, 컴퓨터에서, 정보 처리 장치, 정보 처리 장치의 통신을 제어하는 통신제어장치 및 서버를 구비하는 통신 시스템을 구성하는 서버에 있어서의 처리를 실행시키기 위한 프로그램으로서, 통신제어장치에 송신 이 력을 남기기 위해서 정보 처리 장치가 송신하는 버블 패킷의 송신에 이용되는 통신제어장치에 있어서의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해서, 버블 패킷의 송신의 전후에 정보 처리 장치로부터 송신된 포트 검출용 패킷을 수신하는 단계와, 포트 검출용 패킷에 기초하여 버블 패킷 송신 포트의 위치를 검출하는 단계를 실행시키기 위한 것이다.
또한, 상기 각 실시예에 있어서의 서버를 실현하는 소프트웨어는, 이하와 같은 프로그램이다. 즉, 이 프로그램은, 컴퓨터에서, 정보 처리 장치, 정보 처리 장치의 통신을 제어하는 통신제어장치 및 서버를 구비하는 통신 시스템을 구성하는 서버에 있어서의 처리를 실행시키기 위한 프로그램으로서, 통신제어장치에 송신 이력을 남기기 위해서 정보 처리 장치가 송신하는 버블 패킷의 송신에 이용되는 통신제어장치에 있어서의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해서, 버블 패킷의 송신의 전후에 정보 처리 장치로부터 송신된 포트 검출용 패킷을 수신하는 단계와, 포트 검출용 패킷이 통과한 통신제어장치의 포트의 위치를 검출하는 단계와, 포트 검출용 패킷이 통과한 통신제어장치의 포트의 위치를 가리키는 검출용 포트 정보를 정보 처리 장치에 송신하는 단계를 실행시키기 위한 것이다.
또한, 상기 프로그램에 있어서, 정보를 송신하는 송신 단계나, 정보를 수신하는 수신 단계 등에서는, 하드웨어에 의해 행하여지는 처리, 예를 들면 송신 단계에 있어서의 모뎀이나 인터페이스 카드 등으로 행하여지는 처리(하드웨어로 행하여질 수밖에 없는 처리)는 포함되지 않는다.
또한, 이 프로그램은, 서버 등으로부터 다운로드됨으로써 유통될 수도 있고, 소정의 기록 매체(예를 들면, CD-ROM 등의 광디스크나 자기디스크, 반도체메모리 등)에 기록됨으로써 유통될 수도 있다.
또한, 이 프로그램을 실행하는 컴퓨터는, 하나일 수도 있고, 다수일 수도 있다. 즉, 집중 처리를 행해도 되고, 또는 분산 처리를 행해도 된다.
본 발명에 의한 통신 시스템 등은, 통신제어장치를 통한 다수의 정보 처리 장치 간에서의 통신을 확립하는 것이 가능하고, 정보 처리 장치 간에서의 통신에 유용하다.

Claims (25)

  1. 정보 처리 장치와, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치와, 서버를 구비한 통신 시스템으로서,
    상기 정보 처리 장치는
    상기 통신 제어 장치를 통하여, 상기 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 송신하는 버블 패킷 송신부와,
    상기 버블 패킷의 송신에 이용되는, 상기 통신 제어 장치의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위해 이용되는 포트 검출용 패킷을 상기 서버에 송신하는 검출용 패킷 송신부를 구비하는 것을 특징으로 하는 통신 시스템.
  2. 제1항에 있어서,
    상기 검출용 패킷 송신부는 상기 버블 패킷 송신부가 상기 버블 패킷을 송신하기 전 또는 후에 상기 포트 검출용 패킷을 송신하는 것을 특징으로 하는 통신 시스템.
  3. 제1항 또는 2항에 있어서,
    상기 서버는 상기 정보 처리 장치로부터 송신된 상기 포트 검출용 패킷을 접수하고, 상기 포트 검출용 패킷에 기초하여 상기 버블 패킷 송신 포트의 위치를 검출하는 버블 패킷 송신 포트 검출부를 구비하는 것을 특징으로 하는 통신 시스템.
  4. 제3항에 있어서,
    상기 버블 패킷 송신 포트 검출부는 상기 통신 제어 장치의 포트폭을 이용하여 상기 버블 패킷 송신 포트의 위치를 검출하는 것을 특징으로 하는 통신 시스템.
  5. 제3항에 있어서,
    상기 정보 처리 장치는
    상기 통신 제어 장치에서의 포트폭을 검출하기 위한 포트폭 검출용 패킷을 상기 통신 제어 장치를 통하여 송신하는 포트폭 검출용 패킷 송신부를 더 구비하고,
    상기 서버는
    상기 포트폭 검출용 패킷을 접수하고, 상기 포트폭 검출용 패킷에 기초하여 상기 통신 제어 장치의 포트폭을 검출하는 포트폭 검출부를 더 구비하며,
    상기 버블 패킷 송신 포트 검출부는 상기 포트폭 검출부가 검출한 포트폭을 이용하여 상기 버블 패킷 송신 포트의 위치를 검출하는 것을 특징으로 하는 통신 시스템.
  6. 제3항에 있어서,
    상기 서버는 상기 버블 패킷 송신 포트의 위치를 나타내는 버블 패킷 송신 포트 정보를 송신하는 버블 패킷 송신 포트 송신부를 더 구비하는 것을 특징으로 하는 통신 시스템.
  7. 제1항 또는 2항에 있어서,
    상기 정보 처리 장치는
    상기 포트 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 접수하는 검출용 포트 정보 접수부와,
    상기 검출용 포트 정보 접수부가 접수한 검출용 포트 정보에 기초하여 상기 버블 패킷 송신 포트의 위치를 검출하는 버블 패킷 송신 포트 검출부를 더 구비하고,
    상기 서버는
    상기 포트 검출용 패킷을 접수하고, 상기 포트 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출부와,
    상기 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 검출용 포트 정보를 상기 정보 처리 장치에 송신하는 검출용 포트 정보 송신부를 구비하는 것을 특징으로 하는 통신 시스템.
  8. 제7항에 있어서,
    상기 버블 패킷 송신 포트 검출부는 상기 통신 제어 장치의 포트폭을 이용하여 상기 버블 패킷 송신 포트의 위치를 검출하는 것을 특징으로 하는 통신 시스템.
  9. 제7항에 있어서,
    상기 정보 처리 장치는
    상기 통신 제어 장치에서의 포트폭을 검출하기 위한 포트폭 검출용 패킷을 상기 통신 제어 장치를 통하여 송신하는 포트폭 검출용 패킷 송신부와,
    상기 포트폭 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 나타내는 포트폭 검출용 포트 정보를 접수하는 포트폭 검출용 포트 정보 접수부와,
    상기 포트폭 검출용 포트 정보 접수부가 접수한 포트폭 검출용 포트 정보에 기초하여, 상기 통신 제어 장치에서의 포트폭을 검출하는 포트폭 검출부를 더 구비하고,
    상기 버블 패킷 송신 포트 검출부는 상기 포트폭 검출부가 검출한 상기 통신 제어 장치의 포트폭을 이용하여 상기 버블 패킷 송신 포트의 위치를 검출하고,
    상기 서버는
    상기 포트폭 검출용 패킷을 접수하고, 상기 포트폭 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 검출하는 포트폭 검출용 포트 검출부와, 상기 포트폭 검출용 포트 검출부가 검출한 포트의 위치를 나타내는 포트폭 검출용 포트 정보를 상기 정보 처리 장치에 송신하는 포트폭 검출용 포트 정보 송신부를 더 구비하는 것을 특징으로 하는 통신 시스템.
  10. 제7항에 있어서,
    상기 정보 처리 장치는 상기 버블 패킷 송신 포트의 위치를 나타내는 버블 패킷 송신 포트 정보를 송신하는 버블 패킷 송신 포트 송신부를 더 구비하는 것을 특징으로 하는 통신 시스템.
  11. 서버를 이용하여 다른 정보 처리 장치와 통신 제어 장치를 통한 통신을 확립하는 정보 처리 장치로서,
    상기 통신 제어 장치를 통하여, 상기 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 송신하는 버블 패킷 송신부와,
    상기 버블 패킷의 송신에 이용되는, 상기 통신 제어 장치의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위하여 이용되는 포트 검출용 패킷을 상기 서버에 송신하는 검출용 패킷 송신부를 구비하는 것을 특징으로 하는 정보 처리 장치.
  12. 제11항에 있어서,
    상기 검출용 패킷 송신부는 상기 버블 패킷 송신부가 상기 버블 패킷을 송신하기 전 또는 후에 상기 포트 검출용 패킷을 송신하는 것을 특징으로 하는 정보 처리 장치.
  13. 제11항 또는 12항에 있어서,
    상기 포트 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 받아들이는 검출용 포트 정보 접수부와,
    상기 검출용 포트 정보 접수부에서 접수한 검출용 포트 정보에 기초하여, 상 기 버블 패킷 송신 포트의 위치를 검출하는 버블 패킷 송신 포트 검출부를 더 구비하는 것을 특징으로 하는 정보 처리 장치.
  14. 제13항에 있어서,
    상기 버블 패킷 송신 포트 검출부는 상기 통신 제어 장치의 포트폭을 이용하여 상기 버블 패킷 송신 포트의 위치를 검출하는 것을 특징으로 하는 정보 처리 장치.
  15. 제13항에 있어서,
    상기 정보 처리 장치는
    상기 통신 제어 장치에서의 포트폭을 검출하기 위한 포트폭 검출용 패킷을 상기 통신 제어 장치를 통하여 송신하는 포트폭 검출용 패킷 송신부와,
    상기 포트폭 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 나타내는 포트폭 검출용 포트 정보를 접수하는 포트폭 검출용 포트 정보 접수부와,
    상기 포트폭 검출용 포트 정보 접수부가 접수한 포트폭 검출용 포트 정보에 기초하여 상기 통신 제어 장치에서의 포트폭을 검출하는 포트폭 검출부를 더 구비하고,
    상기 버블 패킷 송신 포트 검출부는 상기 포트폭 검출부가 검출한 상기 통신 제어 장치의 포트폭을 이용하여 상기 버블 패킷 송신 포트의 위치를 검출하는 것을 특징으로 하는 정보 처리 장치.
  16. 정보 처리 장치의 통신을 제어하는 통신 제어 장치를 통하여 통신을 수행하는 정보 처리 장치와, 다른 정보 처리 장치와의 통신을 확립시키는 서버로서,
    상기 정보 처리 장치로부터 송신된 포트 검출용 패킷을 접수하고, 상기 포트 검출용 패킷에 기초하여 상기 포트 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출부를 구비하는 것을 특징으로 하는 서버.
  17. 제16항에 있어서,
    상기 포트 검출용 패킷에 기초하여 상기 버블 패킷 송신 포트의 위치를 검출하는 버블 패킷 송신 포트 검출부를 더 구비하는 것을 특징으로 하는 서버.
  18. 제17항에 있어서,
    상기 버블 패킷 송신 포트 검출부는 상기 통신 제어 장치의 포트폭을 이용하여 상기 버블 패킷 송신 포트의 위치를 검출하는 것을 특징으로 하는 서버.
  19. 제17항 또는 18항에 있어서,
    상기 통신 제어 장치의 포트폭을 검출하기 위하여, 상기 정보 처리 장치로부터 송신된 포트폭 검출용 패킷을 접수하고, 상기 포트폭 검출용 패킷에 기초하여 상기 통신 제어 장치의 포트폭을 검출하는 포트폭 검출부를 더 구비하고,
    상기 버블 패킷 송신 포트 검출부는 상기 포트폭 검출부가 검출한 포트폭을 이용하여 상기 버블 패킷 송신 포트의 위치를 검출하는 것을 특징으로 하는 서버.
  20. 정보 처리 장치, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치, 및 서버를 포함하는 통신 시스템 중의 상기 정보 처리 장치에 응용되는 통신 방법으로서,
    상기 통신 제어 장치를 통하여, 상기 통신 제어 장치에 송신 이력을 남기기 위한 버블 패킷을 송신하는 버블 패킷 송신 단계와,
    상기 버블 패킷의 송신에 이용되는, 상기 통신 제어 장치의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위하여 이용되는 포트 검출용 패킷을 상기 서버에 송신하는 검출용 패킷 송신 단계를 구비하는 것을 특징으로 하는 통신 방법.
  21. 제20항에 있어서,
    상기 검출용 패킷 송신 단계에 있어서,
    상기 포트 검출용 패킷은 상기 버블 패킷 송신 단계에서 상기 버블 패킷을 송신하기 전 또는 후에 송신되는 것을 특징으로 하는 통신 방법.
  22. 제20항 또는 21항에 있어서,
    상기 포트 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 나타내는 검출용 포트 정보를 접수하는 검출용 포트 정보 접수 단계와,
    상기 검출용 포트 정보 접수 단계에서 접수한 검출용 포트 정보에 기초하여, 상기 버블 패킷 송신 포트의 위치를 검출하는 버블 패킷 송신 포트 검출 단계를 더 구비하는 것을 특징으로 하는 통신 방법.
  23. 정보 처리 장치, 상기 정보 처리 장치의 통신을 제어하는 통신 제어 장치, 및 서버를 포함하는 통신 시스템 중의 상기 서버에 응용되는 통신 방법으로서,
    상기 통신 제어 장치에 송신 이력을 남기기 위하여 상기 정보 처리 장치가 송신하는 버블 패킷의 송신에 이용되는 상기 통신 제어 장치에서의 포트인 버블 패킷 송신 포트의 위치를 검출하기 위하여, 상기 정보 처리 장치로부터 송신된 포트 검출용 패킷을 접수하는 단계를 구비하는 것을 특징으로 하는 통신 방법.
  24. 제23항에 있어서,
    상기 포트 검출용 패킷에 기초하여 상기 버블 패킷 송신 포트의 위치를 검출하는 단계를 더 구비하는 것을 특징으로 하는 통신 방법.
  25. 제23항에 있어서,
    상기 포트 검출용 패킷에 기초하여, 상기 포트 검출용 패킷이 통과한 상기 통신 제어 장치의 포트의 위치를 검출하는 검출용 포트 검출 단계와,
    상기 검출용 포트 검출 단계에서 검출한 포트의 위치를 나타내는 검출용 포트 정보를 송신하는 검출용 포트 정보 송신 단계를 더 구비하는 것을 특징으로 하는 통신 방법.
KR1020077012755A 2003-11-07 2004-10-29 통신 시스템, 정보 처리 장치, 서버, 및 통신 방법 KR20070065921A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2003378289 2003-11-07
JPJP-P-2003-00378289 2003-11-07
JPJP-P-2004-00121592 2004-04-16
JP2004121592 2004-04-16

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR20067008654A Division KR20060113701A (ko) 2003-11-07 2004-10-29 통신시스템, 정보처리장치, 서버, 및 통신 방법

Publications (1)

Publication Number Publication Date
KR20070065921A true KR20070065921A (ko) 2007-06-25

Family

ID=34575927

Family Applications (2)

Application Number Title Priority Date Filing Date
KR20067008654A KR20060113701A (ko) 2003-11-07 2004-10-29 통신시스템, 정보처리장치, 서버, 및 통신 방법
KR1020077012755A KR20070065921A (ko) 2003-11-07 2004-10-29 통신 시스템, 정보 처리 장치, 서버, 및 통신 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR20067008654A KR20060113701A (ko) 2003-11-07 2004-10-29 통신시스템, 정보처리장치, 서버, 및 통신 방법

Country Status (6)

Country Link
US (1) US8239541B2 (ko)
EP (3) EP1677465B1 (ko)
JP (1) JP3933183B2 (ko)
KR (2) KR20060113701A (ko)
TW (2) TW200522617A (ko)
WO (1) WO2005046143A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1681811B1 (en) * 2003-10-27 2019-08-28 Panasonic Intellectual Property Management Co., Ltd. Communication system and communication method
JP4654006B2 (ja) * 2004-11-16 2011-03-16 パナソニック株式会社 サーバ装置、携帯端末、通信システム及びプログラム
JP4665568B2 (ja) * 2005-03-16 2011-04-06 パナソニック株式会社 情報処理装置、ポート検出装置、情報処理方法、及びポート検出方法
JP4672405B2 (ja) * 2005-03-17 2011-04-20 パナソニック株式会社 通信システム、情報処理システム、接続サーバ、処理サーバ、情報処理装置、及び情報処理方法
CN1870658B (zh) * 2005-07-01 2010-07-07 华为技术有限公司 分组网络中的用户定位系统及方法
US7773584B2 (en) * 2006-06-13 2010-08-10 At&T Intellectual Property I, L.P. Method and apparatus for processing session initiation protocol messages associated with a voice over IP terminal
WO2008082333A1 (en) * 2006-12-29 2008-07-10 Telefonaktiebolaget Lm Ericsson (Publ) Access management for devices in communication networks
US8005962B2 (en) * 2008-02-27 2011-08-23 Ncomputing Inc. System and method for using virtual IP addresses in a multi-user server system
US20140280989A1 (en) * 2013-03-14 2014-09-18 Thomas J. Borkowski System and method for establishing peer to peer connections through symmetric nats
JP6492939B2 (ja) * 2015-04-30 2019-04-03 富士通株式会社 制御装置、ストレージシステムおよびプログラム

Family Cites Families (11)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
US8234383B2 (en) Bubble packet port identification using detection packets
KR100770101B1 (ko) 정보 처리 장치, 버블 패킷 송신 방법 및 프로그램
US20090313386A1 (en) Communication apparatus, communication method and communication system
JP2005086467A (ja) セッション制御装置、情報通信端末、サーバ、及び端末
WO2009058640A2 (en) Communicating a selection of a potential configuration
EP1841179A1 (en) Communication system, information processing device, server, information processing method, program for executing the information processing method, and recording medium containing the program
WO2006049251A1 (ja) 通信端末及び通信方法
US7929541B2 (en) Communication system, information processing apparatus, server, and communication method
JP3933183B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP3849711B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP4389885B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP4389994B2 (ja) 通信システム、情報処理装置、サーバ、および情報処理方法
JP4389886B2 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP2008205676A (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
Baldi et al. NAT Traversal
Fairhurst Datagram congestion control protocol (DCCP) simultaneous-open technique to facilitate NAT/middlebox traversal
US20130039367A1 (en) Peer-to-Peer Packet Switching
JP4345751B2 (ja) 情報処理装置、及びバブルパケット送信方法
JP2004248030A (ja) 発信端末、着信端末、パケットフィルター装置、通信制御装置、通信システム、通信方法、及びプログラム
Fairhurst RFC 5596: Datagram Congestion Control Protocol (DCCP) Simultaneous-Open Technique to Facilitate NAT/Middlebox Traversal

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application