KR20040054817A - 네트워크 주소가 변환되는 피어 투 피어 네트워크 통신 - Google Patents

네트워크 주소가 변환되는 피어 투 피어 네트워크 통신 Download PDF

Info

Publication number
KR20040054817A
KR20040054817A KR10-2004-7008546A KR20047008546A KR20040054817A KR 20040054817 A KR20040054817 A KR 20040054817A KR 20047008546 A KR20047008546 A KR 20047008546A KR 20040054817 A KR20040054817 A KR 20040054817A
Authority
KR
South Korea
Prior art keywords
client system
address
network address
network
local
Prior art date
Application number
KR10-2004-7008546A
Other languages
English (en)
Other versions
KR100760802B1 (ko
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 KR20040054817A publication Critical patent/KR20040054817A/ko
Application granted granted Critical
Publication of KR100760802B1 publication Critical patent/KR100760802B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • H04L41/0856Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information by backing up or archiving configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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/2521Translation architectures other than single NAT servers
    • H04L61/2532Clique of NAT servers
    • 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/255Maintenance or indexing of mapping tables
    • H04L61/2553Binding renewal aspects, e.g. using keep-alive messages

Abstract

본 발명은 피어 투 피어 네트워크 통신의 방법과 장치를 제공한다. 본 발명의 한 실시예에 따르면, 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법은 제 1 네트워크 주소 변환 장치에 연결된 제 1 클라이언트 시스템에 대한 제 1 주소 정보를 발견하는 단계; 제 2 클라이언트 시스템과 상기 제 1 주소 정보를 공유하는 단계; 상기 제 2 클라이언트 시스템에 대한 제 2 주소 정보를 수신하는 단계;및 제 2 주소 정보를 이용하여 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신을 구축하는 단계;를 포함한다.

Description

네트워크 주소가 변환되는 피어 투 피어 네트워크 통신{ Peer to peer network communication with network address translation }
NAT 서버는 로컬 네트워크내의 기기들에 대한 한 세트의 고유한 로컬 또는 내부 네트워크 주소를 보전한다. 그에 따라, 로컬 네트워크 내의 각 기기들은 하나의 로컬 네트워크 주소나 공중 네트워크 주소를 갖게 된다. 로컬 네트워크와 외부 네트워크 사이의 통신에 있어서, NAT 서버는 각 기기들의 공중 네트워크 주소와 로컬 네트워크 주소 사이를 전후로 변환한다. 통상 이와 같은 네트워크 주소 변환은 로컬 네트워크내의 개별적인 기기들에 대해 투명(transparent)하므로 상기 기기들은 NAT 서버에 의해 사용되는 공중 네트워크 주소를 인식하지 못한다.
전형적인 형태의 NAT 서버(네트워크 주소 변환 서버;network address translation server)는 인터넷처럼 로컬 네트워크와 외부 네트워크 사이에서 게이트웨이로 작용한다. 이러한 NAT 서버는 로컬 네트워크내의 하나 이상의 기기(예를 들어 컴퓨터)들이 인터넷 주소와 같은 하나의 공중 네트워크(public network) 또는 외부 네트워크 주소를 공유할 수 있도록 허가하는 네트워크 장치이다.
도 1은 네트워크 시스템 구조(architecture)를 도시한다.
도 2는 클라이언트 시스템의 한 실시예에 따른 블록도이다.
도 3은 두개의 클라이언트 시스템 사이의 피어 투 피어(peer to peer) 네트워크를 구축하고 보전하는 순서도이다.
도 4는 클라이언트 시스템의 로컬 및 공중망 주소를 발견하는 순서도이다.
도 5는 두개의 클라이언트 시스템이 로컬 및 공중망 주소를 공유하는 순서도이다.
도 6은 제 1 클라이언트 시스템이 제 2 클라이언트 시스템과의 통신을 구축하는 순서도이다.
도 7은 제 2 클라이언트 시스템이 제 1 클라이언트 시스템과의 통신을 구축하는 순서도이다.
도 8은 클라이언트 시스템이 연결된 NAT 장치에 의해 할당되는 매핑(mapping)을 보전하는 순서도이다.
도 9A 내지 9B는 선택적인 네트워크 구성을 도시한다.
본 발명은 피어 투 피어 네트워크 통신의 방법과 장치를 제공한다. 본 발명의 한 실시예에 따르면, 네트워크 시스템은: 네트워크에 연결되어 제 1 공중 네트워크 주소를 갖는 제 1 네트워크 주소 변환 장치; 상기 제 1 네트워크 주소 변환 장치에 연결되어 상기 제 1 네트워크 주소 변환 장치에 의해 구축된 제 1 로컬 네트워크 주소를 갖는 제 1 클라이언트(client) 시스템; 네트워크에 연결되어 제 2 공중 네트워크 주소를 갖는 제 2 네트워크 주소 변환 장치; 제 2 네트워크 주소 변환 장치에 연결되어 제 2 네트워크 주소 변환 장치에 의해 구축된 제 2 로컬 네트워크 주소를 갖는 제 2 클라이언트 시스템; 네트워크에 연결된 주소 서버; 네트워크에 연결된 매칭 서버(matching server)를 포함하고; 상기 제 1 네트워크 주소 변환 장치, 제 2 네트워크 주소 변환 장치, 주소 서버 및 매칭 서버는 네트워크를 통하여 서로 데이터를 송신할 수 있고, 상기 주소 서버는 클라이언트 시스템으로부터 수신한 데이터로부터 클라이언트 시스템에 대한 공중 네트워크 주소(public network address)를 결정하여 상기의 추출된 공중 네트워크 주소를 다시 클라이언트 시스템으로 돌려 보내고, 상기 매칭 서버는 클라이언트 시스템의 등록 및 공중 네트워크 주소와 하나 이상의 등록된 클라이언트 시스템에 대한 로컬 네트워크 주소의 저장을 위한 등록 테이블(registry table)을 포함하고, 상기 제 1 클라이언트 시스템은: 제 1 공중 네트워크 주소를 결정하기 위해 주소 서버와 통신하는 제 1 네트워크 주소 관리기(manager), 매칭 서버를 이용하여 제 1 클라이언트 시스템을 등록하기 위한 제 1 네트워크 등록 관리기, 제 1 공중 네트워크 주소와 제 1 로컬 네트워크 주소를 공유하기 위해 상기 관리기를 제 2 클라이언트 시스템과 공유하는 제 1 네트워크를 포함하고, 상기 제 2 클라이언트 시스템은: 제 2 공중 네트워크주소를 결정하기 위해 주소 서버와 통신하는 제 2 네트워크 주소 관리기, 매칭 서버를 이용하여 제 2 클라이언트 시스템을 등록하기 위한 제 2 네트워크 등록 관리기, 제 2 공중 네트워크 주소와 제 2 로컬 네트워크 주소를 공유하기 위해 상기 관리기를 제 1 클라이언트 시스템과 공유하는 제 2 네트워크를 포함한다. 본 발명의 다른 실시예에 따르면, 네트워크 시스템은 네트워크에 연결된 매핑 보전 서버(mapping maintenance server)도 포함한다.
본 발명의 또 다른 실시예에 따르면, 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법은: 제 1 네트워크 주소 변환 장치에 연결된 제 1 클라이언트 시스템에 대한 제 1 주소 정보를 발견하는 단계; 제 2 클라이언트 시스템과 상기 제 1 주소 정보를 공유하는 단계; 상기 제 2 클라이언트 시스템에 대한 제 2 주소 정보를 수신하는 단계;및 제 2 주소 정보를 이용하여 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신을 구축하는 단계;를 포함한다.
본 발명은 피어 투 피어 네트워크 통신의 방법 및 장치를 제공한다. 본 발명은 하나 또는 두 개의 클라이언트 시스템이 각각의 NAT장치(network address translation devices)에 뒤에 있을지라도 두 개의 피어 또는 클라이언트 시스템들 (예컨대, 네트워크상에서 사용될 수 있는 비디오 게임 콘솔(console) 시스템)이 네트워크 (예컨대, 인터넷) 를 통하여 서로 통신할 수 있도록 해 준다. 하기하는 바와 같이, 본 발명의 한 실시예에 있어서, 네트워크 통신은 네 부분의 과정을 포함한다: (1)발견--각 클라이언트 시스템은 네트워크상에서 각 공중 주소(public address)를 발견한다, (2)공유/분배--각 클라이언트 시스템은 통신하고자 하는 다른 시스템과 주소 정보를 공유한다, (3)통신 구축--클라이언트 시스템은 통신을 구축한다, (4)매핑 보전(mapping maintenance)--각 클라이언트 시스템은 대응하는 NAT장치에 있어서 현재의 주소 매핑을 보전한다.
도 1은 네트워크 시스템 구조(architecture)를 나타낸다. 제 1 클라이언트시스템(105)은 제 1 NAT 장치(네트워크 주소 변환 장치; 110)에 연결되고, 제 1 로컬 또는 내부 네트워크(115)를 형성한다. 제 1 클라이언트 시스템(105)은 네트워크상에서 사용될 수 있는 (network-enabled) 시스템으로, 예를 들어 네트워크 어댑터(adapter)나 컴퓨터 시스템을 포함하는 비디오 게임 콘솔(console) 시스템과 같은 것이다. 비디오 게임 콘솔 시스템과 같이, 제 1 클라이언트 시스템(105)은 아래에서 기술하는 바와 같이 비디오 게임 기능성을 제공하는 하드웨어 및/또는 소프트웨어와 네트워크 통신을 제공하는 하드웨어 및/또는 소프트웨어를 포함한다. 본 발명의 한 실시예에 따르면, 제 1 클라이언트 시스템(105)은 소니 컴퓨터 엔터테인먼트 인코포레이티드(Sony Computer Entertainment Inc.TM)의 "플레이스테이션2(Playstation 2)"TM게임 콘솔이다. 제 1 NAT 장치(110)는 전형적인 NAT 박스나 NAT 서버, 또는 선택적으로 일종의 프락시 서버(proxy server)나 게이트웨이, 라우터(router), 또는 방화벽의 일부일 수 있다. 하나 이상의 부가적인 시스템 또는 네트워크 장치, 예를 들어 컴퓨터, 역시 제 1 NAT 장치(110)에 연결될 수 있고 제 1 로컬 네트워크(115)내에 있을 수 있다. 제 1 로컬 네트워크(115)내의 각 시스템은 제 1 NAT 장치(110)에 의해 할당되고 보전되는 로컬 네트워크 주소를 가진다. 본 발명의 한 실시예에 따르면, 제 1 로컬 네트워크(115)의 로컬 네트워크 주소는 예를 들어 UDP/IP(즉, 주소 넘버가 IP 주소가 되는)에 따른, 주소 넘버나 포트 넘버(port number)를 포함한다. 선택적인 실시예에서, 제 1 로컬 네트워크(115)는 다른 통신 프로토콜을 사용하고, 그 결과 로컬 네트워크 주소는시스템을 식별하기 위해 다른 정보를 포함한다.
제 1 NAT 장치(110)는 인터넷과 같은 외부 네트워크 또는 공중망(120)에 연결된다. 외부 네트워크(120)에 연결되는 각각의 주소화 가능한(addressable) 시스템이나 장치는 공중망 주소를 갖는다. "공중"망 주소는 외부 네트워크(120)상에서 사용되고 "로컬" 네트워크 주소는 제 1 로컬 네트워크(115)와 같은 로컬 네트워크 내에서 사용된다. 본 발명의 한 실시예에 따르면, 공중망 주소는 예를 들어 UDP/IP에 따른, 주소 넘버나 포트 넘버(port number)를 포함한다. 선택적인 실시예에 따르면, 외부 네트워크(120)는 다른 통신 프로토콜을 사용하고, 그 결과 공중망 주소는 시스템을 식별하기 위해 다른 정보를 포함한다. 본 발명의 한 실시예에 따르면, 제 1 로컬 네트워크(115)의 로컬 네트워크 주소는 외부 네트워크(120)와 호환되지 않는다.(즉, 로컬 네트워크 주소는 외부 네트워크(120)의 통신 프로토콜에서 인식되지 않는다.)
제 1 NAT 장치(110)는 공중망을 구비한다. 제 1 클라이언트 시스템(105)은 간접적으로 제 1 NAT 장치(110)을 통해 외부 네트워크(120)에 연결되고 공중망을 구비하지 않는다. 제 1 클라이언트 시스템(105)은 제 1 로컬 네트워크(115)에 있는 다른 시스템(만약 존재한다면)과 제 1 NAT 장치(110)의 공중망 주소를 공유한다. 제 1 NAT 장치(110)는 외부 네트워크(120)와 제 1 로컬 네트워크(115)사이의 데이터를 상호접속(route)하기 위해 공중망 주소와 로컬 네트워크 주소 사이에서 변환한다. 선택적 실시예에서, 제 1 NAT 장치(110)는 제 1 로컬 네트워크(115)내의 시스템들과 공유하기 위해 두개 이상의 공중망 주소를 가진다.
본 발명의 한 실시예에 따르면, 제 1 NAT 장치(110)는 로컬 네트워크(115)의 시스템에, 예를들어 PAT 기술(포트 주소 변환; Port Address Translation)을 사용하여 포트 넘버를 매핑한다. 제 1 NAT 장치(110)는 로컬 시스템이 외부 네트워크(120)상의 목적지에 데이터를 송신할 때 제 1 로컬 네트워크(115)의 로컬 시스템에 포트 넘버를 할당한다. 제 1 NAT 장치(110)는 포트 넘버와 로컬 시스템 사이의 포트 매핑으로서 포트 넘버를 저장한다. 제 1 NAT 장치(110)는 단일 로컬 시스템의 모든 발신(outgoing) 데이터의 단일 포트 넘버를 할당하고 저장한다. 제 1 NAT 장치(110)는 발신 데이터에 대한 할당된 포트 넘버를 포함하고 그 결과 수신자는 응답시에 포트 넘버를 사용할 수 있다. 제 1 NAT 장치(110)는 제 1 로컬 네트워크(115)에서 착신 데이터에 부착되는 포트 넘버와 제 1 NAT 장치(110)내에서 저장되는 포트 매핑을 비교하여 어느 시스템이 착신(incoming) 데이터의 의도적 수신자(intended recipient)인지를 결정한다.
제 1 NAT 장치(110)는 매핑을 사용하여 송신 및 수신된 데이터에 따라 동적으로 포트 매핑을 구축하고 조정한다. 제 1 NAT 장치(110)가 로컬 시스템으로부터 또는 시간 주기에 대한 포트 넘버를 포함하는 외부 네트워크(120)으로부터 데이터를 수신하지 못하는 경우, 제 1 NAT 장치(110)는 상기 포트 넘버("시간 경과(timeout)")를 위해 포트 매핑을 릴리스(release)한다. 아래에서 기술되는 바와 같이, 제 1 클라이언트 시스템(105)은 외부 네트워크(120)로 주기적으로 메세지를 발신함으로써 상기한 시간 경과를 방지할 수 있다.
본 발명의 한 실시예에 따르면, 제 1 NAT 장치(110)는 착신 데이터의 발신자의 네트워크 주소와 포트 넘버에 의해 지시되는 로컬 시스템에 의해 수신된 데이터의 수신자의 주소를 비교함으로써 착신 데이터를 검열(screen)한다(예를 들어, 보안을 이유로). 제 1 NAT 장치(110)가 로컬 시스템으로부터 외부 네트워크(120)상의 수신자에게 데이터를 송신하는 경우, 제 1 NAT 장치(110)는 로컬 시스템의 포트 매핑과 함께 수신지 주소를 기록한다. 로컬 시스템이 착신 데이터의 네트워크 주소와 동일한 네트워크 주소의 수신자에게 아직 데이터를 송신하지 않았다면, 제 1 NAT 장치(110)는 제 1로컬 네트워크(115)상의 로컬 시스템에 착신 데이터를 포워드(forward)하지 않는다. 제 1 NAT 장치(110)는 착신 데이터가 포함된 포트를 사용하여 송신 데이터의 기록된 수신지 주소와 착신 데이터의 발신자 네트워크 주소를 비교한다. 아래에서 기술하는 바와 같이, 제 1 NAT 장치(110)는 포트 매핑과 함께 수신지 주소를 기록하고, 그 결과 제 1 NAT 장치(110)가 로컬 시스템에 의해 송신된 데이터의 수신지 주소를 찾기 위한 인덱스로서 포트 넘버를 사용할 수 있게 된다. 상기 주소의 매치(match)가 없는 경우, 제 1 NAT 장치(110)는 제 1 로컬 네트워크(115)로 착신 데이터를 포워드하지 않는다. 아래에서 기술되는 바와 같이, 제 1 클라이언트 시스템(105)는 외부 네트워크(120)상의 시스템에 데이터를 송신함으로써 외부 네트워크(120)상의 상기 시스템을 "승인(approve)"하기 위해 상기의 보안 기능성을 사용하고 그 결과 제 1 NAT 장치(110)가 상기 승인된 시스템으로부터의 데이터가 제 1 로컬 네트워크(115)로 들어가는 것을 허용하게 한다.
예를 들어, 제 1 클라이언트 시스템(105)이 외부 네트워크(120)상의 수신자에게 데이터를 송신하는 경우, 제 1 NAT 장치(110)는 제 1 클라이언트 시스템(105)에 포트 넘버를 매핑한다. 상기 제 1 NAT 장치(110)는 상기 제 1 NAT 장치(110)에 대한 공중망 주소 및 발신 데이터와 함께 제 1 클라이언트 시스템(105)의 매핑된 포트 넘버를 포함한다. 또한 제 1 NAT 장치(110)는 수신자의 주소도 기록한다. 제 1 NAT 장치(110)가 상기 포트 넘버를 포함하여 데이터를 수신하면, 상기 제 1 NAT 장치(110)는 전에 발송된 발신 데이터의 목적지의 기록된 주소와 발신자의 주소를 비교한다. 상기 주소가 매치가 되면, 제 1 NAT 장치(110)는 제 1 클라이언트 시스템(105)의 로컬 네트워크 주소를 이용하여 제 1 클라이언트 시스템(105)에 데이터를 포워드한다.
제 2 클라이언트 시스템(125)은 제 2 NAT 장치(130)에 연결되고, 제 2 로컬 네트워크(135)를 형성한다. 제 1 클라이언트 시스템(105)과 유사하게, 제 2 클라이언트 시스템(125)은 예를 들어, 네트워크 어댑터를 포함하는 비디오 게임 콘솔과 같은 네트워크상에서 사용될 수 있는 시스템이다. 제 1 NAT 장치(110)와 유사하게, 제 2 NAT 장치(130)는 전형적인 NAT 박스나 NAT 서버, 또는 선택적으로 일종의 프락시 서버(proxy server)또는 게이트웨이나 라우터(router)의 일부일 수 있다. 제 2 클라이언트 시스템(125)과 제 2 NAT 장치(130)는 각각 상기 제 1 클라이언트 시스템(105)와 제 1 NAT 장치(110)과 유사하게 동작한다(예를 들어, 포트 매핑이나 착신 데이터의 검열 측면에서). 또한 하나 이상의 부가적인 네트워크 장치가 제 2 NAT 장치(130)에 연결될 수 있고 제 2 로컬 네트워크(135)내에 있을 수 있다. 제 1 로컬 네트워크(115)와 유사하게, 제 2 로컬 네트워크(135)내의 각 시스템이나 장치는 제 2 NAT 장치(130)에 의해 할당되고 보전되는 로컬 네트워크 주소를 가진다.본 발명의 한 실시예에 따르면, 제 1 로컬 네트워크(115)와 제 2 로컬 네트워크(135)는 동일한 유형의 네트워크이고 그 결과 동일한 통신 프로토콜을 사용한다. 그러나, 선택적 실시예에서는, 로컬 네트워크(115, 135)가 다른 유형일 수 있다.
제 1 NAT 장치(110)와 유사하게, 제 2 NAT 장치(130)는 외부 네트워크(120)에 연결된다. 그에 따라, 제 2 클라이언트 시스템(125)은 간접적으로 제 2 NAT 장치(130)를 통해 외부 네트워크(120)에 연결된다. 상기 NAT 장치(110, 130)는 외부 네트워크(120)의 프로토콜에 따라 외부 네트워크(120)를 통해 서로에게 데이터를 송신할 수 있다.
마찬가지로 3개의 서버 시스템이 외부 네트워크(120)에 연결된다: 주소 서버(140), 매칭 서버(matching server;145), 매핑 보전 서버(mapping maintenance server; 150). 상기 서버 시스템(140, 145, 150) 각각은 컴퓨터 시스템이나 메인프레임(mainframe) 시스템과 같은 네트워크 서버 시스템이다. 선택적으로, 상기 서버 시스템(140, 145, 150) 전부 또는 일부는 외부 네트워크(120)에 연결되는 단일 시스템내에 포함된다. 상기 서버 시스템(140, 145, 150) 각각은 외부 네트워크(120)상에서 개별적으로 네트워크 주소를 가진다. 상기 서버 네트워크 주소는 클라이언트 시스템(105, 125)에 인식된다. 상기 주소 서버(140)는 클라이언트 시스템(105, 125)의 주소 발견을 돕는다. 상기 매칭 서버(145)는 클라이언트 시스템(105, 125)의 주소 공유를 돕는다. 상기 매핑 보전 서버(150)는 클라이언트 시스템(105, 125)이 각각 상기 NAT 장치(110,130)의 주소 매핑을 보전하는 것을 돕는다. 하나의 선택적 실시예에서는, 상기 매핑 보전 서버는 생략된다.
도 2는 도 1에서 도시되는 상기 제 1 클라이언트 시스템(105)과 같은 클라이언트 시스템(200)의 한 실시예의 블록도이다. 클라이언트 시스템(200)은 4개의 관리기(manager): 네트워크 주소 관리기(205), 네트워크 등록 관리기(210), 네트워크 공유 관리기(215), 및 네트워크 매핑 보전 관리기(220)를 포함한다. 상기 관리기(205, 210, 215, 220) 각각은 상기 클라이언트 시스템(200)의 소프트웨어 구성요소로서 실행된다. 선택적으로, 상기 관리기(205, 210, 215, 220) 전부 또는 일부는 하드웨어 내에서 실행된다. 상기 네트워크 주소 관리기(205)는 상기 클라이언트 시스템(200)과 상기 주소 서버(140) 사이의 통신을 제어하여 제 1 NAT 장치와 같이 연결된 NAT 장치에 의해 상기 클라이언트 시스템(200)과 관련되는 공중망 주소를 발견하게 한다. 네트워크 등록 관리기(210)는 상기 클라이언트 시스템(200)과 상기 매칭 서버(145) 사이의 통신을 제어하여 상기 클라이언트 시스템(200)을 상기 매칭 서버(145)에 등록한다. 상기 네트워크 공유 관리기(215)는 상기 매칭 서버(145)와의 통신을 제어하여 상기 클라이언트 시스템(200)과의 통신을 요청하는 다른 클라이언트 시스템의 공중망 주소 및 로컬 네트워크 주소를 결정하게 한다. 상기 매핑 보전 관리기(220)는 매핑 보전 서버(150)와의 통신을 제어하여 상기 클라이언트 시스템(200)에 연결된 상기 NAT 장치가 상기 클라이언트 시스템(200)을 위해 구축한 매핑을 시간 경과하게 하는 것(timing out)을 방지한다. 선택적 실시예에서, 상기 클라이언트 시스템(200)은 매핑 보전 관리기를 포함하지 않을 수 있다. 상기 클라이언트 시스템(200)은 상기 클라이언트 시스템(200)의 로컬 네트워크와 연결되고 통신하기 위한 네트워크 인터페이스(225)를 포함한다. 상기 네트워크 인터페이스(225)는 네트워크 어댑터나 모뎀과 같은 네트워크 통신 장치를 포함한다. 또한 상기 클라이언트 시스템(200)은 CPU(230), 메모리(235) 및 입출력 인터페이스(I/O interface;240)과 같은 통상의 동작을 위해 필요한 구성요소를 포함한다. 게임 콘솔 클라이언트 시스템에 있어서, 클라이언트 시스템은 부가적인 비디오, 사운드 및 특정 응용 소프트웨어 및/또는 하드웨어("게임 구성요소")를 포함한다. 상기에서 기술한 바와 같이, 본 발명의 한 실시예에 따르면, 클라이언트 시스템(200)은 본 명세서에서 기술되는 네트워크 통신을 위한 하드웨어 및 소프트웨어를 포함하는 소니 컴퓨터 엔터테인먼트 인코퍼레이티드(Sony Computer Entertainment Inc.TM)의 "플레이스테이션2(Playstation 2)"TM이다.
도 3은 도 1에서 도시되는 제 1 클라이언트 시스템(105)및 제 2 클라이언트 시스템(125)과 같은 두개의 클라이언트 시스템 사이의 피어 투 피어(peer to peer) 네트워크 통신을 구축하고 보전하는 순서도이다. 블록 305에서 각 클라이언트 시스템은 각각의 주소 정보를 발견한다. 도 1에서 도시되는 상기 클라이언트 시스템(105, 125)과 같은, 하나의 클라이언트 시스템은 공중망 주소나 로컬 네트워크 주소를 포함하여 주소 정보를 관련시킨다. 아래에서 도 4에 대하여 기술하는 바와 같이, 클라이언트 시스템은 상기 주소 서버와 통신함으로써 자기의 공중망 주소를 발견한다(도 1에서 도시되는 주소 서버(145)를 참조). 클라이언트 시스템은 국부적으로 저장된 정보에 접근함으로써 또는 대응하는 NAT 장치에 질의를 함으로써자기의 로컬 네트워크 주소를 발견한다. 상기 클라이언트 시스템은 블록 310에서 상기 발견된 주소를 서로 공유한다. 아래에서 도 5에 대해 기술하는 바와 같이, 상기 클라이언트 시스템 하나 또는 모두가 상기 매칭 서버에 등록한다(도 1에서 도시되는 매칭 서버(145)를 참조). 상기 클라이언트 시스템 중 하나는 다른 등록된 클라이언트 시스템과의 통신을 요청하고 상기 매칭 서버는 상기 클라이언트 시스템 사이의 주소 정보를 공유한다. 상기 클라이언트 시스템은 블록 315에서 수신된 주소 정보를 사용하여 서로간의 통신을 구축한다. 아래에서 도 6에 대하여 기술하는 바와 같이, 각 클라이언트 시스템은 공유된 주소 정보를 사용하여 다른 클라이언트 시스템에 메시지를 송신하여 상기 NAT 장치가 착신 메시지를 "승인됨(approved)"으로 인식하도록 한다. 상기 클라이언트 시스템이 통신하고 있는 동안, 블록 320에서는 상기 클라이언트 시스템이 대응되는 NAT 장치에 의해 구축된 매핑을 보전한다. 아래에서 도 8에 대해 기술하는 바와 같이, 각 클라이언트 시스템은 상기 매핑 보전 서버(도 1에서 도시되는 매핑 보전 서버(150)를 참조)에 메시지를 주기적으로 송신하여 대응되는 NAT 장치가 상기 클라이언트 시스템의 구축된 포트 매핑을 변화시키거나 시간 경과(timeout)하지 않도록 한다. 상기 매핑 보전 서버를 포함하지 않는 실시예에서는, 상기 클라이언트 시스템은 매핑 보전 서버를 사용하는 이와 같은 매핑을 보전하지 않는다.
도 4는 클라이언트 시스템의 로컬 네트워크 주소 및 공중망 주소를 발견하는 순서도이다(도 3의 블록 305 참조). 상기한 바와 같이, 로컬 네트워크 주소는 로컬 네트워크의 클라이언트 시스템의 네트워크 주소이고 상기 로컬 네트워크에 연결되는 NAT 장치에 의해 할당된다. 공중망 주소는 상기 NAT 장치에 연결되는 로컬 네트워크에 있는 시스템들 중에서 NAT 장치에 의해 공유되는 외부 네트워크 상에서의 네트워크 주소를 말한다. 본 발명의 한 실시예에 따르면, 로컬 또는 공중망 주소는 주소 넘버 및 포트 넘버를 포함한다. 클라이언트 시스템은 자기의 공중망 주소 및 로컬 네트워크 주소를 발견하기 위해 네트워크 주소 관리기를 사용한다(도 2의 네트워크 관리기(205) 참조).
클라이언트 시스템은 먼저 블록 405에서 자신의 로컬 네트워크 주소를 발견한다. 본 발명의 한 실시예에 따르면, 클라이언트 시스템은 클라이언트 시스템에 의해 사용되는 네트워크 스택(stack) 소프트웨어를 질의하는 것과 같이 로컬 저장장치에 접근함으로써 자신의 로컬 네트워크 주소를 발견한다. 클라이언트 시스템이 상기 NAT 장치와 통신을 개시하고 그 결과 이미 포트 넘버를 인식하고 있는 경우에, 클라이언트 시스템은 로컬 포트 넘버를 구축한다. 선택적으로, 클라이언트 시스템은 대응되는 NAT 장치로부터 로컬 네트워크 주소를 요청할 수 있다. 클라이언트 시스템은 블록 410에서 공중망 주소를 발견하기 위해 상기 주소 서버에 주소 요청을 발신한다. 클라이언트 시스템은 상기 NAT 장치를 통해 주소 서버에 상기 주소 요청을 발신한다. 상기 NAT 장치의 네트워크 주소 변환 기능성의 일부분으로서, 상기 NAT 장치는 상기 주소 요청의 헤더(header) 정보에서와 같이 주소 요청에 공중망 주소를 더한다. NAT 장치가 아직 클라이언트 시스템에 포트 넘버를 할당하지 않았다면, 상기 NAT 장치는 포트 넘버를 할당하고 상기 주소 요청에(예를 들어 UDP 헤더에) 공중망 주소의 포트 넘버를 포함한다. 상기 주소 서버는 블록 415에서, 상기 주소 요청으로부터 공중망 주소를 추출하고 상기 공중망 주소를 저장한다. 상기 공중망 주소는 알려진 위치(예를 들어, UDP 헤더에)에서 상기 주소 요청내에 위치하여 주소 서버가 주소 요청에서 공중망 주소를 찾을 수 있도록 한다. 선택적 실시예에서, 상기 주소 서버는 공중망 주소를 저장하지 않거나 공중망 주소를 일시적으로만 저장한다. 상기 주소 서버는 블록 420에서, 주소 보고를 생성하고 상기 주소 보고를 클라이언트 시스템에 발신함으로써 클라이언트 시스템에 공중망 주소를 돌려보낸다. 상기 주소 보고는 메시지의 주소 부분(예를 들어, 헤더내)내 뿐만 아니라 데이터나 메시지의 유료부하(payload)의 일부로서 추출된 공중망 주소를 포함한다. 상기 NAT 장치는 포트 넘버에 따라 상기 공중망 주소를 클라이언트 시스템의 로컬 네트워크 주소로 변환한다. 예를 들어, NAT 장치는 공중망 주소의 포트 넘버에 따라 클라이언트 시스템의 포트 매핑에 접근하고 로컬 네트워크 주소를 회수한다. 그리고 난 후 NAT 장치는 메시지 헤더 정보내의 공중망 주소를 상기 로컬 네트워크 주소로 대체한다. 그에 따라, NAT 장치는 상기 공중망 주소를 제거함으로써 헤더를 변경하는데, 메시지의 데이터 부분은 변경하지 않는다. 클라이언트 시스템은 블록 425에서, 상기 주소 보고를 수신하고 상기 포함된 공중망 주소를 저장한다. 클라이언트 시스템은 이제 자신의 발견된 로컬 네트워크 주소 및 공중망 주소를 가진다.
도 5는 두개의 클라이언트 시스템이 로컬 및 공중망 주소를 공유하는 순서도이다(도 3의 블록 310 참조). 제 1 클라이언트 시스템은 블록 505에서, 매칭 서버에 등록한다. 클라이언트 시스템은 매칭 서버에 등록하는 것을 관리하기 위해 네트워크 등록 관리기 구성요소를 사용한다(도 2의 네트워크 등록 관리기(210) 참조). 제 1 클라이언트 시스템은 상기 매칭 서버에 등록 요청을 발신한다. 상기 등록 요청은 상기 제 1 클라이언트 시스템의 발견된 로컬 및 공중망 주소들을 포함한다. 상기 등록 요청은 상기 발신 클라이언트 시스템은 제공된 주소 정보를 사용하여 통신하는 것이 가능하다는 것을 상기 매칭 서버에 지시한다. 상기 매칭 서버는 블록 510에서, 상기 제 1 클라이언트 시스템을 레지스트리 테이블(registry table)에 등록한다. 상기 매칭 서버는 등록된 시스템의 주소 정보를 저장하는 엔트리(entries)와 함께 레지스트리 테이블을 보전한다. 매칭 서버는 상기 제 1 클라이언트 시스템의 레지스트리 테이블에 엔트리를 생성하고 제공된 주소 정보를 상기 엔트리에 기록한다. 블록 515에서, 제 2 클라이언트 시스템은 매칭 요구를 매칭 서버에 발신한다. 클라이언트 시스템은 아래에서 기술되는 것처럼 상기 매칭 서버로부터 다른 클라이언트 시스템의 주소 정보를 얻는 것을 관리하기 위해, 즉 등록된 클라이언트 시스템을 선택하고 등록 후 주소 정보를 수신하기 위해, 네트워크 공유 관리기 구성요소를 사용한다(도 2의 네트워크 관리기(215) 참조). 상기 매칭 요청은 상기 제 2 클라이언트 시스템이 다른 클라이언트 시스템과의 통신을 구축하기 위한 정보를 요청하고 있다는 것을 상기 매칭 서버에 지시한다. 매칭 서버는 블록 520에서, 상기 제 2 클라이언트 시스템에 레지스트리 정보를 발신한다. 본 발명의 한 실시예에 따르면, 매칭 서버는 제 2 클라이언트 시스템에 상기 레지스트리 테이블을 발신한다. 다른 실시예에서는, 상기 매칭 서버는 제 2 클라이언트 시스템과 통신하여 상기 제 2 클라이언트 시스템이 예를 들어 제 2 클라이언트 시스템으로부터 검색 질의를 받음으로써 등록된 클라이언트 시스템이 어느 클라이언트 시스템과 통신해야 하는지를 식별하도록 하기 위해 상기 레지스트리 테이블에 접근하도록 할 수 있다. 제 2 클라이언트 시스템은 블록 525에서, 등록된 클라이언트 시스템들 중에서 제 1 클라이언트 시스템을 선택한다. 블록 530에서, 상기 제 2 클라이언트 시스템은 상기 제 1 클라이언트 시스템의 주소 정보를 저장한다. 본 발명의 한 실시예에 따르면, 제 2 클라이언트 시스템으로 발신된 레지스트리 정보는 등록된 클라이언트 시스템의 주소 정보를 포함한다. 다른 실시예에서는, 제 2 클라이언트 시스템은 선택된 클라이언트 시스템의 주소 정보를 매칭 서버로부터 개별적으로 요청한다. 블록 535에서, 제 2 클라이언트 시스템은 상기 매칭 서버에 매칭 선택을 발신한다. 상기 매칭 선택은 제 2 클라이언트 시스템이 등록된 클라이언트 시스템 중 어느 것과 통신하게 되는지를 지시한다(상기 경우에서는, 제 1 클라이언트 시스템). 또한 매칭 선택은 제 2 클라이언트 시스템의 주소 정보도 포함한다. 또한 한 실시예에서, 상기 매칭 선택은 제 1 클라이언트 시스템의 주소의 요청으로도 사용된다. 매칭 서버는 블록 540에서, 선택된 클라이언트 시스템으로서 제 1 클라이언트 시스템에 제 2 클라이언트 시스템의 주소 정보를 발신한다. 블록 545에서, 제 1 클라이언트 시스템은 제 2 클라이언트 시스템의 상기 주소 정보를 수신하고 기록한다. 두개의 클라이언트 시스템 각각은 매칭 서버를 통해 다른 클라이언트 시스템과 주소 정보를 공유하게 된다.
도 6은 제 1 클라이언트 시스템이 제 2 클라이언트 시스템과의 통신을 구축하는 순서도이다(도 3의 블록 315 참조). 제 1 클라이언트 시스템은 블록 605에서,하나 이상의 시험 메시지를 제 2 클라이언트 시스템에 발신한다. 제 1 클라이언트 시스템은 제 2 클라이언트 시스템의 공중망 주소를 사용하여 제 2 클라이언트 시스템에 일부 시험 메시지를 발신하고(발신 공중 주소 시험 메시지), 제 2 클라이언트 시스템의 로컬 네트워크 주소를 사용하여 일부 시험 메시지를 발신한다(발신 로컬 주소 시험 메시지). 상기한 바와 같이, 제 1 클라이언트 시스템은 두개의 클라이언트 시스템이 주소 정보를 공유하고 있을 때(도 5 참조), 제 2 클라이언트 시스템의 공중망 및 로컬 네트워크 주소를 수신한다. 제 2 클라이언트 시스템의 로컬 네트워크가 외부 네트워크와 호환되지 않는 한 실시예에서(예를 들어, 로컬 네트워크 주소가 외부 네트워크의 통신 프로토콜하에서는 인식되지 않는 경우), 제 1 클라이언트 시스템은 로컬 네트워크 주소를 사용하여 시험 메시지를 발신하지 않는다. 제 1 클라이언트 시스템이 아래에서 기술되는 바와 같이, 블록 630에서 제 2 클라이언트 시스템으로부터 확인 메시지를 수신할 때까지 제 1 클라이언트 시스템은 제 2 클라이언트 시스템에 시험 메시지를 발신하는 것을 계속한다.
제 1 클라이언트 시스템에 연결된 NAT 장치는 블록 610에서, 발신 시험 메시지의 수신지 주소를 기록한다. 상기 제 1 클라이언트 시스템에 연결된 NAT 장치(예를 들어 도 1의 제 1 NAT 장치(110))는 제 1 클라이언트 시스템과 외부 네트워크 사이의 게이트웨이이다. 그에 따라, 발신 시험 메시지는 상기 NAT 장치를 통해 지나간다. 상기한 바와 같이, NAT 장치는 착신 데이터를 검열하여 착신 데이터의 로컬 네트워크 수신지가 아직 착신 데이터의 발신자와 통신하는 것을 시도하지 않았다면 데이터가 상기 NAT 장치의 로컬 네트워크로 들어오는 것을 허용하지 않는다.NAT 장치는 로컬 네트워크 상의 시스템으로부터의 발신 데이터의 수신지 주소를 상기 발신 데이터의 발신자의 "승인된" 주소로 기록한다. NAT 장치는 착신 데이터의 원천 주소(즉, 발신자의 주소)를 로컬 네트워크 상의 의도된 수신자의 기록되어 있는 "승인된" 주소와 비교한다. NAT 장치는 상기 원천 주소가 로컬 수신자의 "승인된" 주소중 하나와 매치하는 경우에만 로컬 수신자에게 착신 데이터를 포워드한다.
따라서, NAT 장치는 발신 시험 메시지의 수신지 주소를 제 1 클라이언트 시스템이 통신하려고 시도하고 있는 시스템의 "승인된" 주소로 기록한다. NAT 장치가 제 1 클라이언트 시스템의 발신 시험 메시지 중 하나의 수신지 주소와 동일한 주소로부터 나온 제 1 클라이언트 시스템의 데이터를 수신하는 경우, NAT 장치는 제 1 클라이언트 시스템에 착신 데이터를 포워드한다. 제 1 클라이언트 시스템은 제 2 클라이언트 시스템의 주소에 시험 메시지를 발신하고 있으므로, NAT 장치는 제 2 클라이언트 시스템으로부터 제 1 클라이언트 시스템으로 데이터를 포워드할 것이다.
제 1 클라이언트 시스템이 시험 메시지를 제 2 클라이언트 시스템에 보내고 있는 동안, 제 2 클라이언트 시스템도 아래에서 도 7에 대해 기술하고 있는 바와 같이, 마찬가지로 제 1 클라이언트 시스템에 시험 메시지를 보내고 있다. 제 1 클라이언트 시스템에 대해 상기에서 기술한 바와 같이, 제 2 클라이언트 시스템은 제 1 클라이언트 시스템의 주소 정보를 사용하여 발신 공중 주소 시험 메시지(만약 적절한 경우라면 발신 로컬 주소 시험 메시지도 함께)를 발신한다. 제 2 클라이언트 시스템에 연결된 NAT 장치(예를 들어 도 1의 제 2 NAT 장치(130))는 상기 발신 시험 메시지의 수신지 주소를 기록하고 그 결과 제 1 클라이언트 시스템으로부터 수신한 제 2 클라이언트 시스템의 착신 데이터를 포워드할 것이다.
제 1 클라이언트 시스템은 블록 615에서, 제 2 클라이언트 시스템에서 시험 메시지를 수신한다. 상기에서 기술한 바와 같이, 제 1 클라이언트 시스템에 연결된 NAT 장치는 제 2 클라이언트 시스템에서 제 1 클라이언트 시스템으로 착신 시험 메시지를 포워드하는데, 이것은 NAT 장치가 상기 착신 시험 메시지의 원천 주소와 기록된 "승인된" 주소를 매치시키기 때문이다. 제 1 클라이언트 시스템은 블록 620에서, 상기 수신된 시험 메시지의 원천 주소를 기록한다. 제 1 클라이언트 시스템은 블록 625에서, 기록된 원천 주소를 사용하여 제 2 클라이언트 시스템에 확인 메시지를 발신한다. 발신되는 확인 메시지는 제 1 클라이언트 시스템이 제 2 클라이언트 시스템에서 시험 메시지를 수신했다는 것을 제 2 클라이언트 시스템에 지시한다. 유사하게, 제 2 클라이언트 시스템은 제 1 클라이언트 시스템에서 시험 메시지를 수신하고 상기 메시지의 원천 주소를 이용하여 제 1 클라이언트 시스템에 확인 메시지를 발신한다. 블록 630에서, 제 1 클라이언트 시스템은 제 2 클라이언트 시스템으로부터 확인 메시지를 수신한다. 제 1 클라이언트 시스템이 제 2 클라이언트 시스템에서 확인 메시지를 수신하면, 제 1 클라이언트 시스템은 제 2 클라이언트 시스템에 시험 메시지를 보내는 것을 중단한다. 이제 제 1 클라이언트 시스템은 제 2 클라이언트 시스템과 통신을 구축한 것이다. 제 2 클라이언트 시스템이 제 1 클라이언트 시스템으로부터 확인 메시지를 수신하고 난 후, 제 2 클라이언트 시스템은 제 1 클라이언트 시스템과의 통신을 구축하게 될 것이다. 클라이언트 시스템은각 시스템이 데이터를 보낼 수 있는 주소를 확인하였고 상기 데이터가 수신자 시스템의 NAT 장치를 통해 성공적으로 지나가게 한다.
NAT 장치가 제 2 클라이언트 시스템에서 제 1 클라이언트 시스템으로 메시지를 포워드하게 하기 위해 제 2 클라이언트 시스템으로 시험 메시지를 처음 발신함으로써, 제 1 클라이언트 시스템은 NAT 장치의 보안 특성에서 "펀칭 홀(punching hole)"이 된다. 그에 따라, 상기 기술은 "홀 펀칭(hole punching)"이라고 부른다. "홀 펀칭"을 사용하면 제 1 및 제 2 클라이언트 시스템은 NAT 장치의 동작을 변경하지 않고도 통신을 구축할 수 있다.
도 7은 제 2 클라이언트 시스템이 제 1 클라이언트 시스템과의 통신을 구축하는 순서도이다. 도 7에서 도시되는 동작은 도 6에 대해 상기에서 기술된 동작과 함께 발생한다. 블록 705에서, 제 2 클라이언트 시스템은 클라이언트 시스템이 주소 정보를 공유할 때 수신된 주소 정보를 사용하여 제 1 클라이언트 시스템에 시험메시지를 발신한다. 상기에서 기술된 바와 같이, 제 2 클라이언트 시스템은 제 1 클라이언트 시스템의 공중망 주소를 사용하여 발신 공중 주소 시험 메시지를 발신하고 또한 로컬 네트워크 주소가 외부 네트워크와 호환가능하다면 발신 로컬 주소 시험 메시지도 발신한다. 제 2 클라이언트 시스템이 아래에서 기술하는 바와 같이, 블록 730에서 제 1 클라이언트 시스템으로부터 확인 메시지를 수신할 때까지 제 2 클라이언트 시스템은 제 1 클라이언트 시스템에 시험 메시지를 발신하는 것을 계속한다. 제 2 클라이언트 시스템에 연결된 NAT 장치는 블록 710에서, 발신 시험 메시지의 수신지 주소를 "승인된" 주소로 기록한다. 상기에서 기술하는 바와 같이, 제1 클라이언트 시스템 또한 제 2 클라이언트 시스템에 시험 메시지를 발신하고 있고 제 2 클라이언트 시스템은 블록 715에서, 제 1 클라이언트 시스템으로부터 시험 메시지를 수신한다. 제 2 클라이언트 시스템은 블록 720에서, 상기 수신된 시험 메시지의 원천 주소를 기록하고, 블록 625에서, 상기 원천 주소를 사용하여 제 1 클라이언트 시스템에 확인 메시지를 발신한다. 상기에서 기술되는 바와 같이, 제 1 클라이언트 시스템 또한 제 2 클라이언트 시스템으로부터 시험 메시지를 수신한 후 제 2 클라이언트 시스템에 확인 메시지를 발신하고 제 2 클라이언트 시스템은 블록 730에서, 상기 확인 메시지를 수신한다. 제 2 클라이언트 시스템이 제 1 클라이언트 시스템에서 확인 메시지를 수신하면, 제 2 클라이언트 시스템은 제 1 클라이언트 시스템에 시험 메시지를 보내는 것을 중단한다. 이제 제 2 클라이언트 시스템은 제 1 클라이언트 시스템과 통신을 구축한 것이다.
도 8은 클라이언트 시스템이 연결된 NAT 장치에 의해 할당되는 매핑(mapping)을 보전하는 순서도이다(도 3의 블록 315 참조). 클라이언트 시스템은 상기 매핑 보전 서버와 함께 연결된 NAT 장치의 주소 매핑을 보전하는 것을 관리하는데 네트워크 매핑 보전 관리기를 사용한다(도 2의 네트워크 매핑 보전 관리기(220) 참조). 상기에서 기술하는 바와 같이, 본 발명의 한 실시예에 따르면, NAT 장치는 로컬 네트워크 주소를 상기 NAT 장치의 로컬 네트워크상의 시스템에 할당한다. 또한 NAT 장치는 로컬 시스템이 사용하는 공중망 주소의 포트 넘버도 할당한다. 로컬 시스템이 외부 네트워크에 데이터를 발신하는 경우, NAT 장치는 상기 로컬 시스템에 포트 넘버를 할당하고 상기 포트 넘버를 저장한다. NAT 장치가 착신데이터를 수신하면, NAT 장치는 착신 데이터의 표적(target) 주소(예를 들어 헤더 정보)의 포트 넘버를 조사하여 어느 로컬 시스템이 의도된 수신자인지를 결정한다. 상기에서 기술하는 바와 같이, NAT 장치는 로컬 시스템에 데이터를 포워드하기 전에 착신된 데이터의 발신자가 "승인된" 것이라는 것을 확인하기 위해서도 상기 포트 넘버를 사용한다. NAT 장치가 로컬 시스템에 포트 넘버를 할당했다면, 상기 NAT 장치는 타이머(timer)를 카운트하기(count down) 시작한다. 로컬 시스템이 외부 네트워크에 더많은 데이터를 발신한다면, NAT 장치는 동일한 포트 넘버를 사용하고 상기 타이머를 리셋하게 된다. 유사하게, NAT 장치가 상기 포트 넘버를 사용하여 착신 데이터를 수신하는 경우, NAT 장치는 상기 타이머를 리셋한다. 상기 타이머가 0에 도달하면, 상기 포트 넘버는 최근에 사용되지 않았기 때문에 NAT 장치는 포트 넘버를 제거(free)한다("시간 경과(timeout)"). 클라이언트 시스템이 다른 클라이언트 시스템과 통신하고 있거나 통신하는 것을 시도하고 있는 동안 상기 "시간 경과"를 방지하기 위해 클라이언트 시스템은 매핑 보전 서버에 매핑 보전 메시지를 주기적으로 발신한다. 상기에서 기술하는 바와 같이, 본 발명의 한 실시예에 따르면, 매핑 보전 서버는 주소 서버나 매칭 서버안에 포함되므로 클라이언트 시스템은 상기 적당한 서버에 매핑 보전 메시지를 발신하게 된다. 매핑 보전 서버를 포함하지 않는 본 발명의 한 실시예에 따르면, 클라이언트 시스템은 매핑 보전 메시지를 발신하지 않는다.
클라이언트 시스템은 블록 805에서, 연결된 NAT 장치를 통해 매핑 보전 서버로 매핑 보전 메시지를 발신한다. 도 1을 참조하면, 제 1 클라이언트 시스템(105)은 제 1 NAT 장치(110)을 통해 매핑 보전 서버(150)에 매핑 보전 메시지를 발신한다. NAT 장치는 매핑 보전 메시지를 수신하고 블록 810에서, 클라이언트 시스템에 할당된 포트 넘버의 타이머를 리셋한다. NAT 장치는 블록 815에서, 매핑 보전 서버에 매핑 보전 메시지를 발신한다. 미리 정해진 주기가 지난 후에, 클라이언트 시스템은 블록 820에서 현재의 주소를 보전할 지 여부를 평가한다. 클라이언트 시스템이 다른 클라이언트 시스템과 통신하고 있거나 통신하는 것을 시도하고 있다면, 클라이언트 시스템은 블록 805로 돌아가서, 현재의 포트 매핑을 보존하기 위해 매핑 보전 서버에 다른 매핑 보전을 발신한다. 클라이언트 시스템이 통신을 완료했다면, 클라이언트 시스템은 다른 매핑 보전 메시지를 발신하지 않고 블록 825에서, 포트 매핑이 시간 경과하는 것을 허용한다. 본 발명의 한 실시예에 따르면, 매핑 보전 서버는 클라이언트 시스템에 응답하지 않는다. 선택적으로, 매핑 보전 서버는 클라이언트 시스템에 매핑 보전 확인 메시지를 발신한다.
상기에서 기술된 것은 두개의 클라이언트 시스템이 개별 NAT 장치 뒤에 있는 네트워크 구성에 초점을 맞추고 있는(도 1 참조) 반면, 클라이언트 시스템의 동작과 서버 시스템은 NAT 장치의 존재에 독립적이다. 도 9A 내지 9C는 선택적 네트워크 구성을 도시한다. 도 9A에서는, 제 1 클라이언트 시스템(905)은 NAT 장치(910) 뒤에 있지만 제 2 클라이언트 시스템(915)은 NAT 장치에 연결되지 않는다. 도 9B에서는, 클라이언트 시스템(930, 935) 모두 NAT 장치에 연결되지 않는다. 도 9C에서는, 클라이언트 시스템(970, 975) 모두가 동일한 로컬 네트워크(985)에서 동일한 NAT 장치(980) 뒤에 있다. 다른 여러가지 변화들 뿐 아니라, 상기 선택적 구성 각각에서, 클라이언트 시스템과 서버 시스템은 상기에서 기술한 바와 같은 방식과 실질적으로 동일한 방식으로 상호작용한다.
본 발명의 다양한 실시예들은 전자장치 하드웨어, 컴퓨터 소프트웨어, 또는 상기 기술들의 결합한 분야에서 인식될 수 있다. 대부분의 실시예는 프로그래밍이 가능한 컴퓨터에 의해 실행되는 하나 이상의 컴퓨터 프로그램을 포함한다. 예를 들어, 도 1을 참조하면, 한 실시예에서, 각 클라이언트 시스템(105, 125))및 서버 시스템(140, 145, 150)은 각각 상기에서 기술하는 네트워크 시스템의 개별 특성들을 실행하는 하나 이상의 프로그래밍이 가능한 컴퓨터를 포함한다. 일반적으로, 각 컴퓨터는 하나 이상의 처리 장치(processor), 하나 이상의 데이터 저장 요소(예를 들어 하드 및 플로피 디스크, CD-ROM 드라이브, 및 자기 테잎 드라이브(magnetic tape drive)와 같은 휘발성 또는 비휘발성 메모리 모듈 및 영구적인 광학 및 자기 저장 장치), 하나 이상의 입력 장치(예를 들어, 마우스 및 키보드), 및 하나 이상의 출력 장치(예를 들어, 디스플레이 콘솔 및 프린터)를 포함한다.
컴퓨터 프로그램은 영구적인 저장 매체에 일반적으로 저장되는 실행가능한 코드를 포함하고 실행 시간(run-time)에 메모리에 복사된다. 처리 장치는 지시된 순서에 따라 메모리에서 프로그램 지시들을 회수함으로써 상기 코드를 실행한다. 프로그램 코드를 실행하는 경우, 컴퓨터는 입력 및/또는 저장 장치로부터 데이터를 수신하고, 상기 데이터상에 동작을 수행하고, 결과로 나오는 데이터를 출력 및/또는 저장 장치에 보낸다.
본 발명의 다양한 예시적인 실시예들이 기술되었다. 그러나, 당해 기술 분야의 당업자는 다른 추가적인 실시예들이 가능하다는 것과 그러한 실시예들이 본 발명의 범위내라는 것을 알 수 있을 것이다. 그에 따라, 본 발명은 상기에서 기술한 실시예들에 한정되는 것은 아니다.

Claims (52)

  1. 제 1 네트워크 주소 변환 장치에 연결된 제 1 클라이언트 시스템에 대한 제 1 주소 정보를 발견하는 단계;
    제 2 클라이언트 시스템과 상기 제 1 주소 정보를 공유하는 단계;
    상기 제 2 클라이언트 시스템에 대한 제 2 주소 정보를 수신하는 단계;및
    제 2 주소 정보를 이용하여 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신을 구축하는 단계;를 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  2. 제 1항에 있어서, 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 제 1 네트워크 주소 변환 장치에서 제 1 매핑(mapping)을 유지하는 단계를 더 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  3. 제 1항에 있어서, 상기 제 1 주소 정보 및 제 2 주소 정보는 각각 공중망 주소(public network address)및 로컬 네트워크 주소를 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  4. 제 3항에 있어서, 상기 각 공중망 주소는 주소 넘버 및 포트 넘버를 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  5. 제 4항에 있어서, 상기 공중망 주소의 주소 넘버는 네트워크 주소 변환 장치의 주소 넘버 및 제 1 클라이언트 시스템을 나타내는 제 1 공중 주소의 포트 넘버인 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  6. 제 3항에 있어서, 상기 각 로컬 네트워크 주소는 주소 넘버 및 포트 넘버를 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  7. 제 1항에 있어서, 상기 제 1 주소 정보를 발견하는 단계는,
    제 1 네트워크 주소 변환 장치에 연결된 제 1 클라이언트 시스템에 대한 제 1 로컬 네트워크 주소를 발견하는 단계;및
    제 1 클라이언트 시스템에 대한 제 1 공중망 주소를 발견하는 단계;를 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  8. 제 7항에 있어서, 제 1 클라이언트 시스템에 대한 상기 제 1 로컬 네트워크주소를 발견하는 단계는, 제 1 클라이언트 시스템 내부의 주소 스택(address stack)으로부터 제 1 로컬 네트워크 주소를 검색(retrieve)하는 단계를 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  9. 제 7항에 있어서, 제 1 클라이언트 시스템에 대한 제 1 공중망 주소를 발견하는 단계는,
    제 1 주소 요청을 제 1 클라이언트 시스템으로부터 제 1 네트워크 주소 변환 장치에 연결된 주소 서버로 송신하는 단계;및
    제 1 주소 보고를 제 1 클라이언트 시스템에 있는 주소 서버로부터 수신하는 단계;를 포함하고,
    상기 제 1 주소 보고는 제 1 공중망 주소를 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  10. 제 1항에 있어서, 상기 제 2 클라이언트 시스템과 상기 제 1 주소 정보를 공유하는 단계는, 제 1 클라이언트 시스템으로부터 네트워크에 연결된 매칭 서버로 등록 요청을 송신하는 단계를 포함하고, 상기 등록 요청은 제 1 주소 정보를 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  11. 제 1항에 있어서, 상기 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신을 구축하는 단계는,
    제 2 주소 정보를 이용하여 제 1 클라이언트 시스템으로부터 제 2 클라이언트 시스템으로 하나 또는 그 이상의 발신 시험용 메시지(outgoing test message)를 송신하는 단계;
    수신 시험용 메시지(incoming test message)가 송신되는 곳으로부터의 네트워크 주소를 나타내는 원래의 네트워크 주소를 포함하는 수신 시험용 메시지에 대하여, 제 1 클라이언트 시스템에서 제 2 클라이언트 시스템으로부터의 수신 시험용 메시지(incoming test message)를 수신하는 단계;
    원래의 네트워크 주소를 기록하는 단계;
    상기의 기록된 원래의 네트워크 주소를 이용하여 제 1 클라이언트 시스템으로부터 제 2 클라이언트 시스템으로 발신 확인 메시지(outgoing confirmation message)를 송신하는 단계;및
    제 1 클라이언트 시스템에서 제 2 클라이언트 시스템으로부터 수신 확인 메시지(incoming confirmation message)를 수신하는 단계;를 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  12. 제 11항에 있어서, 상기 제 1 주소 정보는 제 1 공중망 주소 및 제 1 로컬 네트워크 주소를 포함하고, 상기 제 2 주소 정보는 제 2 공중망 주소 및 제 2 로컬 네트워크 주소를 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  13. 제 12항에 있어서, 상기 하나 또는 그 이상의 발신 시험용 메시지를 송신하는 단계는,
    제 2 공중망 주소를 이용하여 제 1 클라이언트 시스템으로부터 제 2 클라이언트 시스템으로 하나 또는 그 이상의 발신 공중 주소 시험용 메시지를 송신하는 단계;및
    제 2 로컬 네트워크 주소를 이용하여 제 1 클라이언트 시스템으로부터 제 2 클라이언트 시스템으로 하나 또는 그 이상의 발신 로컬 주소 시험용 메시지를 송신하는 단계;를 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  14. 제 12항에 있어서, 제 1 클라이언트 시스템에서, 제 2 클라이언트 시스템으로부터 수신된 상기 수신 시험용 메시지는 제 1 공중망 주소를 이용하여 어드레스(addressed)되는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  15. 제 12항에 있어서, 제 1 클라이언트 시스템에서, 제 2 클라이언트 시스템으로부터 수신된 상기 수신 시험용 메시지는 제 1 로컬 네트워크 주소를 이용하여 어드레스(addressed)되는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  16. 제 12항에 있어서, 상기 원래의 네트워크 주소는 제 2 공중망 주소인 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  17. 제 12항에 있어서, 상기 원래의 네트워크 주소는 제 2 로컬 네트워크 주소인 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  18. 제 12항에 있어서, 제 1 클라이언트 시스템에서, 제 2 클라이언트 시스템으로부터 수신된 상기 수신 확인 메시지는 제 1 공중망 주소를 이용하여 어드레스(addressed)되는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  19. 제 12항에 있어서, 제 1 클라이언트 시스템에서, 제 2 클라이언트 시스템으로부터 수신된 상기 수신 확인 메시지는 제 1 로컬 네트워크 주소를 이용하여 어드레스(addressed)되는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 방법.
  20. 제 1 네트워크 주소 변환 장치에 연결되어 제 1 클라이언트 시스템에 대한 제 1 네트워크 주소를 발견하는 단계;
    제 2 네트워크 주소 변환 장치에 연결되어 제 2 클라이언트 시스템에 대한 제 2 네트워크 주소를 발견하는 단계;
    제 2 클라이언트 시스템과 제 1 네트워크 주소를 공유하는 단계;
    제 1 클라이언트 시스템과 제 2 네트워크 주소를 공유하는 단계;및
    제 1 네트워크 주소 및 제 2 네트워크 주소를 이용하여 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신을 구축하는 단계;를 포함하는 것을 특징으로 하는 피어 투 피어 네트워크 통신 방법.
  21. 제 20항에 있어서, 상기 통신 방법은, 제 1 클라이언트 시스템과 제 1 네트워크 주소 사이의, 제 1 네트워크 주소 변환 장치에서의 제 1 매핑(mapping)을 보전하는 단계;및
    제 2 클라이언트 시스템과 제 2 네트워크 주소 사이의, 제 2 네트워크 주소 변환 장치에서의 제 2 매핑(mapping)을 보전하는 단계;를 더 포함하는 것을 특징으로 하는 피어 투 피어 네트워크 통신 방법.
  22. 네트워크에 연결되어 제 1 공중망 주소를 갖는 제 1 네트워크 주소 변환 장치;
    제 1 네트워크 주소 변환 장치에 연결되어, 제 1 네트워크 주소 변환 장치에의해 구축된 제 1 로컬 네트워크 주소를 갖는, 제 1 클라이언트 시스템;
    네트워크에 연결되어 제 2 공중망 주소를 갖는 제 2 네트워크 주소 변환 장치;
    제 2 네트워크 주소 변환 장치에 연결되어, 제 2 네트워크 주소 변환 장치에 의해 구축된 제 2 로컬 네트워크 주소를 갖는, 제 2 클라이언트 시스템;
    네트워크에 연결된 주소 서버;
    네트워크에 연결된 매칭 서버;를 포함하는 네트워크 시스템으로서,
    상기 제 1 네트워크 주소 변환 장치, 제 2 네트워크 주소 변환 장치, 주소 서버 및 매칭 서버는 네트워크를 통하여 데이터를 서로 송신할 수 있고,
    상기 주소 서버는, 클라이언트 시스템으로부터 수신된 데이터로부터 클라이언트 시스템에 대한 공중망 주소를 결정하여, 클라이언트 시스템으로 상기 추출된 공중망 주소를 되돌려 보내고,
    상기 매칭 서버는, 클라이언트 시스템의 등록과, 하나 또는 그 이상의 등록된 클라이언트 시스템에 대한 공중망 주소와 로컬 네트워크 주소를 저장하는 레지스트리 테이블(registry table)을 포함하고,
    상기 제 1 클라이언트 시스템은:
    제 1 공중망 주소를 결정하는 주소 서버와 통신하기 위한 제 1 네트워크 주소 관리기;
    매칭 서버가 있는 제 1 클라이언트 시스템을 등록하기 위한 제 1 네트워크 등록 관리기;
    제 2 클라이언트 시스템과 제 1 공중망 주소 및 제 1 로컬 네트워크 주소를 공유하기 위한 제 1 네트워크 공유 관리기;를 포함하고,
    상기 제 2 클라이언트 시스템은:
    제 2 공중망 주소를 결정하는 주소 서버와 통신하기 위한 제 2 네트워크 주소 관리기;
    매칭 서버가 있는 제 2 클라이언트 시스템을 등록하기 위한 제 2 네트워크 등록 관리기;
    제 1 클라이언트 시스템과 제 2 공중망 주소 및 제 2 로컬 네트워크 주소를 공유하기 위한 제 2 네트워크 공유 관리기;를 포함하는 것을 특징으로 하는 네트워크 시스템.
  23. 제 22항에 있어서, 네트워크에 연결되어 있는 매핑 보전 서버를 더 포함하는 네트워크 시스템으로서,
    상기 매핑 보전 서버는 하나 또는 그 이상의 클라이언트 시스템으로부터 데이터를 수신하고,
    상기 제 1 클라이언트 시스템은 규칙적으로 매핑 보전 서버에 메시지를 송신하는 제 1 네트워크 매핑 보전 관리기를 포함하고,
    상기 제 2 클라이언트 시스템은 규칙적으로 매핑 보전 서버에 메시지를 송신하는 제 2 네트워크 매핑 보전 관리기를 포함하는 것을 특징으로 하는 네트워크 시스템.
  24. 제 22항에 있어서, 각 공중망 주소는 주소 넘버 및 포트 넘버를 포함하는 것을 특징으로 하는 네트워크 시스템.
  25. 제 22항에 있어서, 각 로컬 네트워크 주소는 주소 넘버 및 포트 넘버를 포함하는 것을 특징으로 하는 네트워크 시스템.
  26. 네트워크에 연결하는 네트워크 연결 인터페이스(network connection interface);
    네트워크 클라이언트 시스템에 대한 주소 정보를 결정하기 위해 네트워크에 연결된 주소 서버와 통신하기 위한 네트워크 주소 관리기;
    네트워크에 연결된 매칭 서버가 있는 클라이언트 시스템을 등록하기 위한 네트워크 등록 관리기;및
    네트워크에 연결된 제 2 클라이언트 시스템과 주소 정보를 공유하기 위한 네트워크 공유 관리기;를 포함하는 것을 특징으로 하는 네트워크 클라이언트 시스템.
  27. 제 26항에 있어서, 네트워크에 연결된 매핑 보전 서버에 규칙적으로 메시지를 송신하기 위한 네트워크 매핑 보전 관리기를 더 포함하는 것을 특징으로 하는 네트워크 클라이언트 시스템.
  28. 제 27항에 있어서,
    상기 네트워크 연결 인터페이스는 네트워크 주소 변환 장치에 연결되어 있고,
    상기 주소 정보는 로컬 네트워크 주소 및 공중망 주소를 포함하고,
    상기 로컬 네트워크 주소는 네트워크 클라이언트 시스템과 통신하며 네트워크 주소 변환 장치에 의해 구축되고,
    상기 공중망 주소는 네트워크 주소 변환 장치와 통신하는 것을 특징으로 하는 네트워크 클라이언트 시스템.
  29. 제 28항에 있어서, 상기 공중망 주소는 네트워크 클라이언트 시스템과 통신하기 위한 네트워크 주소 변환 장치에 의해 할당된 포트 넘버를 포함하는 것을 특징으로 하는 네트워크 클라이언트 시스템.
  30. 제 27항에 있어서, 비디오 게임 콘솔 기능(video game console functionality)을 제공하는 게임 구성 요소를 더 포함하는 것을 특징으로 하는 네트워크 클라이언트 시스템.
  31. 네트워크에 연결된 주소 서버;및
    네트워크에 연결된 매칭 서버;를 포함하는 네트워크 시스템으로서,
    상기 주소 서버 및 매칭 서버는 네트워크를 통하여 서로 데이터를 송신할 수 있고,
    상기 주소 서버 및 매칭 서버는 네트워크를 통하여 적어도 하나의 네트워크 주소 변환 장치에 데이터를 송신하고, 상기 적어도 하나의 네트워크 주소 변환 장치는 공중망 주소를 가지면서 네트워크 주소 변환 장치에 연결된 클라이언트 시스템에 대한 로컬 네트워크 주소를 생성하고,
    상기 주소 서버는, 클라이언트 시스템으로부터 수신된 데이터로부터 클라이언트 시스템에 대한 공중망 주소를 결정하여, 추출된 공중망 주소를 상기 클라이언트 시스템으로 되돌려 보내고,
    상기 매칭 서버는 클라이언트 시스템의 등록과, 하나 또는 그 이상의 등록된 클라이언트 시스템에 대한 공중망 주소 및 로컬 네트워크 주소를 저장하기 위한 레지스트리 테이블을 포함하는 것을 특징으로 하는 네트워크 시스템.
  32. 제 31항에 있어서, 네트워크에 연결된 매핑 보전 서버를 더 포함하는 네트워크 시스템으로서, 상기 매핑 보전 서버는 하나 또는 그 이상의 클라이언트 시스템으로부터 데이터를 수신하는 것을 특징으로 하는 네트워크 시스템.
  33. 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신에 사용하기 위한, 유형의 저장 매체에 저장되는 컴퓨터 프로그램으로서,
    컴퓨터가 실행할 수 있는 지시로,
    상기 지시는 제 1 네트워크 주소 변환 장치에 연결된 제 1 클라이언트 시스템에 대한 제 1 주소 정보를 발견하도록 하는 지시;
    제 2 클라이언트 시스템과 제 1 주소 정보를 공유하도록 하는 지시;
    제 2 클라이언트 시스템에 대한 제 2 주소 정보를 수신하도록 하는 지시;및
    상기 제 2 주소 정보를 이용하여 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신을 구축하도록 하는 지시;를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  34. 제 33항에 있어서, 컴퓨터가 제 1 클라이언트 시스템과 제 1 네트워크 주소 사이에서, 제 1 네트워크 주소 변환 장치의 제 1 매핑을 보전하도록 하는 실행할 수 있는 지시를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  35. 제 33항에 있어서, 상기 제 1 주소 정보 및 상기 제 2 주소 정보는 각각 공중망 주소와 로컬 네트워크 주소를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  36. 제 35항에 있어서, 각 공중망 주소는 주소 넘버와 포트 넘버를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  37. 제 36항에 있어서, 상기 제 1 공중망 주소의 주소 넘버는 네트워크 주소 변환 장치에 대한 주소 넘버이고, 상기 제 1 공중망 주소의 포트 넘버는 제 1 클라이언트 시스템을 나타내는 것을 특징으로 하는 컴퓨터 프로그램.
  38. 제 35항에 있어서, 상기 각 로컬 네트워크 주소는 주소 넘버와 포트 넘버를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  39. 제 33항에 있어서, 상기 제 1 주소 정보를 발견하도록 하는 지시는, 제 1 네트워크 주소 변환 장치에 연결된 제 1 클라이언트 시스템에 대한 제 1 로컬 네트워크 주소를 발견하도록 하는 지시;및 제 1 클라이언트 시스템에 대한 제 1 공중망 주소를 발견하도록 하는 지시;를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  40. 제 39항에 있어서, 상기 제 1 클라이언트 시스템에 대한 제 1 로컬 네트워크 주소를 발견하도록 하는 지시는 제 1 클라이언트 시스템의 주소 스택(address stack)으로부터 제 1 로컬 네트워크 주소를 검색하도록 하는 지시를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  41. 제 39항에 있어서,
    상기 제 1 클라이언트 시스템에 대한 제 1 공중망 주소를 발견하도록 하는 지시는,
    제 1 클라이언트 시스템으로부터 제 1 네트워크 주소 변환 장치에 연결된 주소 서버로 제 1 주소 요청을 송신하도록 하는 지시;및
    제 1 클라이언트 시스템에서 주소 서버로부터 제 1 주소 보고를 수신하도록 하는 지시를 포함하고, 상기 제 1 주소 보고는 제 1 공중망 주소를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  42. 제 33항에 있어서, 제 2 클라이언트 시스템과 제 1 주소 정보를 공유하도록 하는 지시는 제 1 클라이언트 시스템으로부터 네트워크에 연결된 매칭 서버로 등록 요청을 송신하도록 하는 지시를 포함하고, 상기 등록 요청은 제 1 주소 정보를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  43. 제 33항에 있어서, 상기 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신을 구축하도록 하는 지시는:
    제 2 주소 정보를 이용하여 제 1 클라이언트 시스템으로부터 제 2 클라이언트 시스템으로 하나 또는 그 이상의 발신 시험용 메시지를 송신하도록 하는 지시;
    수신 시험용 메시지는 수신 시험용 메시지가 송신된 곳으로부터의 네트워크 주소를 나타내는 원래의 네트워크 주소를 포함하는 수신 시험용 메시지로서, 제 1 클라이언트 시스템에서, 제 2 클라이언트 시스템으로부터의 상기 수신 시험용 메시지를 수신하도록 하는 지시;
    원래의 네트워크 주소를 기록하도록 하는 지시;
    상기 기록된 원래의 네트워크 주소를 이용하여 제 1 클라이언트 시스템으로부터 제 2 클라이언트 시스템으로 발신 확인 메시지를 송신하도록 하는 지시;및
    제 1 클라이언트 시스템에서, 제 2 클라이언트 시스템으로부터의 상기 수신 확인 메시지를 수신하도록 하는 지시;를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  44. 제 43항에 있어서, 상기 제 1 주소 정보는 제 1 공중망 주소와 제 1 로컬 네트워크 주소를 포함하고, 상기 제 2 주소 정보는 제 2 공중망 주소와 제 2 로컬 네트워크 주소를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  45. 제 44항에 있어서, 상기 하나 또는 그 이상의 발신 시험용 메시지를 송신하도록 하는 지시는,
    제 2 로컬 네트워크 주소를 이용하여 제 1 클라이언트 시스템으로부터 제 2 클라이언트 시스템으로 하나 또는 그 이상의 발신 공중 주소 시험용 메시지를 송신하도록 하는 지시;
    제 2 로컬 네트워크 주소를 이용하여 제 1 클라이언트 시스템으로부터 제 2 클라이언트 시스템으로 하나 또는 그 이상의 발신 로컬 주소 시험용 메시지를 송신하도록 하는 지시;를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  46. 제 44항에 있어서, 제 1 클라이언트 시스템에 있는, 제 2 클라이언트 시스템으로부터 수신된 상기 수신 시험용 메시지는 제 1 공중 네트워크 주소를 이용하여 어드레스(addressed)되어 있는 것을 특징으로 하는 컴퓨터 프로그램.
  47. 제 44항에 있어서, 제 1 클라이언트 시스템에 있는, 제 2 클라이언트 시스템으로부터 수신된 상기 수신 시험용 메시지는 제 1 로컬 네트워크 주소를 이용하여 어드레스(addressed)되어 있는 것을 특징으로 하는 컴퓨터 프로그램.
  48. 제 44항에 있어서, 상기 원래의 네트워크 주소는 제 2 공중 네트워크 주소인 것을 특징으로 하는 컴퓨터 프로그램.
  49. 제 44항에 있어서, 상기 원래의 네트워크 주소는 제 2 로컬 네트워크 주소인 것을 특징으로 하는 컴퓨터 프로그램.
  50. 제 44항에 있어서, 제 1 클라이언트 시스템에 있는, 제 2 클라이언트 시스템으로부터 수신된 상기 수신 확인 메시지는 제 1 공중 네트워크 주소를 이용하여 어드레스(addressed)되어 있는 것을 특징으로 하는 컴퓨터 프로그램.
  51. 제 44항에 있어서, 제 1 클라이언트 시스템에 있는, 제 2 클라이언트 시스템으로부터 수신된 상기 수신 확인 메시지는 제 1 로컬 네트워크 주소를 이용하여 어드레스(addressed)되어 있는 것을 특징으로 하는 컴퓨터 프로그램.
  52. 제 1 네트워크 주소 변환 장치에 연결된 제 1 클라이언트 시스템에 대한 제1 주소 정보를 발견하는 수단;
    제 2 클라이언트 시스템과 제 1 주소 정보를 공유하는 수단;
    상기 제 2 클라이언트 시스템에 대한 제 2 주소 정보를 수신하는 수단;및
    상기 제 2 주소 정보를 이용하여 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신을 구축하는 수단;을 포함하는 것을 특징으로 하는 제 1 클라이언트 시스템과 제 2 클라이언트 시스템 사이의 통신 시스템.
KR1020047008546A 2002-05-13 2003-05-12 네트워크 주소가 변환되는 피어 투 피어 네트워크 통신 KR100760802B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US38039602P 2002-05-13 2002-05-13
US60/380,396 2002-05-13
US10/215,899 2002-08-08
US10/215,899 US7676579B2 (en) 2002-05-13 2002-08-08 Peer to peer network communication
PCT/US2003/014808 WO2003096653A1 (en) 2002-05-13 2003-05-12 Peer to peer network communication with network address translation

Publications (2)

Publication Number Publication Date
KR20040054817A true KR20040054817A (ko) 2004-06-25
KR100760802B1 KR100760802B1 (ko) 2007-09-20

Family

ID=29406404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047008546A KR100760802B1 (ko) 2002-05-13 2003-05-12 네트워크 주소가 변환되는 피어 투 피어 네트워크 통신

Country Status (9)

Country Link
US (2) US7676579B2 (ko)
EP (2) EP2285072B1 (ko)
JP (1) JP4083737B2 (ko)
KR (1) KR100760802B1 (ko)
CN (1) CN1586065B (ko)
AU (1) AU2003234391B8 (ko)
DE (1) DE60336052D1 (ko)
TW (1) TWI251413B (ko)
WO (1) WO2003096653A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703065B1 (ko) * 2006-10-26 2007-04-09 (주)휴리브 다자간 양방향 음성통화 서비스를 위한 nat 제어 시스템및 그 방법
KR100766777B1 (ko) * 2005-08-02 2007-10-17 엔에이치엔(주) 게임 네트워크 제공 시스템, 방법 및 기록매체
KR100793420B1 (ko) * 2006-07-12 2008-01-11 임승빈 네트워크상에서 데이터 전송 서비스를 제공하기 위한 서버및 클라이언트의 연결 시스템 및 이를 이용한 서버와클라이언트 또는 클라이언트와 클라이언트간의 연결 방법
KR100968958B1 (ko) * 2008-12-03 2010-07-14 주식회사 케이티 인터넷 프로토콜 멀티미디어 서브시스템 및 인터넷 프로토콜 멀티미디어 서브시스템에서의 가입자 인증 방법
KR101049912B1 (ko) * 2009-02-24 2011-07-19 (주)닥터소프트 네트워크 시스템 간의 접속 방법

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2362482A (en) * 2000-05-15 2001-11-21 Ridgeway Systems & Software Lt Direct slave addressing to indirect slave addressing
GB2365256A (en) 2000-07-28 2002-02-13 Ridgeway Systems & Software Lt Audio-video telephony with port address translation
GB2369746A (en) * 2000-11-30 2002-06-05 Ridgeway Systems & Software Lt Communications system with network address translation
US7676579B2 (en) * 2002-05-13 2010-03-09 Sony Computer Entertainment America Inc. Peer to peer network communication
US7937471B2 (en) 2002-06-03 2011-05-03 Inpro Network Facility, Llc Creating a public identity for an entity on a network
US7139840B1 (en) * 2002-06-14 2006-11-21 Cisco Technology, Inc. Methods and apparatus for providing multiple server address translation
US8060626B2 (en) 2008-09-22 2011-11-15 Sony Computer Entertainment America Llc. Method for host selection based on discovered NAT type
US8224985B2 (en) 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US8234358B2 (en) * 2002-08-30 2012-07-31 Inpro Network Facility, Llc Communicating with an entity inside a private network using an existing connection to initiate communication
JP4304593B2 (ja) 2002-11-01 2009-07-29 ソニー株式会社 情報処理システム、情報処理装置および方法、並びにプログラム
US7577705B2 (en) * 2003-01-15 2009-08-18 Microsoft Corporation Extensible communication controls
FR2853187B1 (fr) * 2003-03-28 2006-01-13 At & T Corp Systeme permettant a toute application reseau de fonctionner de facon transparente a travers un dispositif de traduction d'adresse de reseau
US7949785B2 (en) * 2003-03-31 2011-05-24 Inpro Network Facility, Llc Secure virtual community network system
US7596595B2 (en) * 2003-06-18 2009-09-29 Utah State University Efficient unicast-based multicast tree construction and maintenance for multimedia transmission
US7313605B2 (en) 2003-07-03 2007-12-25 At&T Corp. Externally controlled reachability in virtual private networks
US7417981B2 (en) * 2003-10-15 2008-08-26 Vonage Holdings Corp. Method and apparatus for enhanced Internet Telephony
US8234383B2 (en) * 2003-11-07 2012-07-31 Panasonic Corporation Bubble packet port identification using detection packets
WO2005046143A1 (ja) * 2003-11-07 2005-05-19 Matsushita Electric Industrial Co., Ltd. 通信システム、情報処理装置、サーバ、および通信方法
JP4269226B2 (ja) 2003-11-14 2009-05-27 ソニー株式会社 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体
US20050228848A1 (en) * 2004-03-22 2005-10-13 Thurston Stacy D Method and system for operating a peer network
BRPI0509900A (pt) * 2004-04-12 2007-09-18 Xds Inc sistema e método para iniciar automaticamente e estabelecer de forma dinámica conexões seguras pela internet entre um servidor com barreira de proteção e um cliente com barreira de proteção
CN100486193C (zh) * 2004-09-29 2009-05-06 腾讯科技(深圳)有限公司 多策略的p2p连接建立方法
JP2006155188A (ja) * 2004-11-29 2006-06-15 Sony Corp 情報処理システム、情報提供装置および方法、電子機器および方法、情報処理装置および方法、記録媒体、並びにプログラム
JP4708036B2 (ja) * 2005-01-21 2011-06-22 パナソニック株式会社 通信システム、情報処理装置、サーバ、及び情報処理方法
US20060187912A1 (en) * 2005-02-01 2006-08-24 Kayote Networks Inc. Method and apparatus for server-side NAT detection
MX2007006312A (es) * 2005-02-18 2007-07-09 Ericsson Telefon Ab L M Arreglos para proporcionar comunicaciones de igual a igual en una red movil terrestre publica.
JP4597706B2 (ja) * 2005-02-25 2010-12-15 パナソニック株式会社 情報処理システム、情報処理装置、サーバ装置、及び情報処理方法
US8041824B1 (en) * 2005-04-14 2011-10-18 Strauss Acquisitions, L.L.C. System, device, method and software for providing a visitor access to a public network
US20060265509A1 (en) * 2005-04-22 2006-11-23 Pandit Shrihari B Methods and systems for communicating voice, audio, video, text and/or multimedia data
JP4557803B2 (ja) * 2005-05-27 2010-10-06 富士通株式会社 ネットワークシステム及び通信方法
US7515549B2 (en) * 2005-06-07 2009-04-07 Cisco Technology, Inc. Managing devices across NAT boundaries
US7706371B1 (en) * 2005-07-07 2010-04-27 Cisco Technology, Inc. Domain based routing for managing devices operating behind a network address translator
JP4548271B2 (ja) * 2005-08-16 2010-09-22 ブラザー工業株式会社 情報通信システム、情報通信方法、ノード装置、及びコンピュータプログラム
DE102005043239B4 (de) * 2005-09-09 2014-04-10 Nec Europe Ltd. Verfahren zum Aufbau und Verwalten einer Verbindung
US8145733B1 (en) * 2006-02-15 2012-03-27 Trend Micro Incorporated Identification of computers located behind an address translation server
US7764677B2 (en) * 2006-09-20 2010-07-27 Nortel Networks Limited Method and system for policy-based address allocation for secure unique local networks
NL1033102C2 (nl) * 2006-12-21 2008-06-24 V S N Systemen B V Werkwijze voor het opzetten van een peer-to-peerverbinding tussen twee communicatiemedia.
US7881318B2 (en) * 2007-02-28 2011-02-01 Microsoft Corporation Out-of-band keep-alive mechanism for clients associated with network address translation systems
US7995478B2 (en) * 2007-05-30 2011-08-09 Sony Computer Entertainment Inc. Network communication with path MTU size discovery
US7933273B2 (en) 2007-07-27 2011-04-26 Sony Computer Entertainment Inc. Cooperative NAT behavior discovery
US20090055517A1 (en) * 2007-08-21 2009-02-26 D-Link Corporation Method for a plug-and-play network device to acquire dual internet protocol addresses
US20090059788A1 (en) * 2007-08-29 2009-03-05 Motorola, Inc. Method and Apparatus for Dynamic Adaptation of Network Transport
US7856501B2 (en) 2007-12-04 2010-12-21 Sony Computer Entertainment Inc. Network traffic prioritization
US7856506B2 (en) 2008-03-05 2010-12-21 Sony Computer Entertainment Inc. Traversal of symmetric network address translator for multiple simultaneous connections
GB2463312A (en) * 2008-09-09 2010-03-17 Skype Ltd Games system with bi-directional video communication
JP2010170176A (ja) * 2009-01-20 2010-08-05 Konami Digital Entertainment Co Ltd ゲーム用のネットワークシステム、ネットワーク用のプログラム、サーバ用のコンピュータ
JP5439036B2 (ja) * 2009-05-27 2014-03-12 エヌ・ティ・ティ・コムウェア株式会社 通信システム、通信管理装置、通信管理方法、及び通信管理プログラム
CN101605154B (zh) * 2009-07-09 2014-08-13 中兴通讯股份有限公司 使用网络地址转换的网络设备的ip地址确认系统及方法
CN102546555B (zh) * 2010-12-27 2015-12-16 中兴通讯股份有限公司 用户终端在多种接入方式时和外部网络的互通方法和设备
US8964567B2 (en) * 2011-07-21 2015-02-24 Microsoft Technology Licensing, Llc Wireless synchronization testing
GB201113942D0 (en) 2011-08-12 2011-09-28 Nec Corp Communication system
TWI448129B (zh) * 2011-11-09 2014-08-01 D Link Corp According to the behavior of the network address translator to establish a transmission control protocol connection method
US8862702B2 (en) 2012-07-18 2014-10-14 Accedian Networks Inc. Systems and methods of installing and operating devices without explicit network addresses
EP3025540A4 (en) * 2013-07-26 2017-03-15 Intel IP Corporation Signaling interference information for user equipment assistance
CN106303117A (zh) * 2015-06-08 2017-01-04 李明 基于ip网络的通讯方法及通讯系统
US10567518B2 (en) * 2015-06-26 2020-02-18 Western Digital Technologies, Inc. Automatic discovery and onboarding of electronic devices
CN106487864B (zh) * 2015-09-02 2019-09-27 华为终端有限公司 数据连接的建立方法、服务端及移动终端
CN108124022B (zh) * 2016-11-28 2020-04-14 中国移动通信有限公司研究院 一种网络地址转换管理方法及装置
US10594829B2 (en) * 2017-05-24 2020-03-17 At&T Intellectual Property I, L.P. Cloud workload proxy as link-local service configured to access a service proxy gateway via a link-local IP address to communicate with an external target service via a private network
CN113411367B (zh) * 2020-03-17 2022-07-19 浙江宇视科技有限公司 监控设备建立连接的方法、装置、设备、系统及存储介质
CN114928616A (zh) * 2021-02-03 2022-08-19 上海哔哩哔哩科技有限公司 对等网络的传输方法和系统
CN114089711B (zh) * 2022-01-21 2022-05-17 深圳艾灵网络有限公司 工业设备控制管理方法、电子设备及存储介质
US20230328029A1 (en) * 2022-04-11 2023-10-12 Verizon Patent And Licensing Inc. Multi-level and dynamic timers for carrier grade nat

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4843568A (en) * 1986-04-11 1989-06-27 Krueger Myron W Real time perception of and response to the actions of an unencumbered participant/user
US4787051A (en) * 1986-05-16 1988-11-22 Tektronix, Inc. Inertial mouse system
US5128671A (en) * 1990-04-12 1992-07-07 Ltv Aerospace And Defense Company Control device having multiple degrees of freedom
US5636216A (en) * 1994-04-08 1997-06-03 Metricom, Inc. Method for translating internet protocol addresses to other distributed network addressing schemes
AU2471995A (en) 1994-05-05 1995-11-29 Catapult Entertainment, Inc. Network architecture for real-time video games
US5528265A (en) * 1994-07-18 1996-06-18 Harrison; Simon J. Orientation-operated cursor control device
SE504846C2 (sv) * 1994-09-28 1997-05-12 Jan G Faeger Styrutrustning med ett rörligt styrorgan
US5793763A (en) * 1995-11-03 1998-08-11 Cisco Technology, Inc. Security system for network address translation systems
US5856974A (en) * 1996-02-13 1999-01-05 Novell, Inc. Internetwork address mapping gateway
JPH11122301A (ja) * 1997-10-20 1999-04-30 Fujitsu Ltd アドレス変換接続装置
US6151601A (en) * 1997-11-12 2000-11-21 Ncr Corporation Computer architecture and method for collecting, analyzing and/or transforming internet and/or electronic commerce data for storage into a data storage area
US6128624A (en) 1997-11-12 2000-10-03 Ncr Corporation Collection and integration of internet and electronic commerce data in a database during web browsing
US6151584A (en) 1997-11-20 2000-11-21 Ncr Corporation Computer architecture and method for validating and collecting and metadata and data about the internet and electronic commerce environments (data discoverer)
FI105753B (fi) 1997-12-31 2000-09-29 Ssh Comm Security Oy Pakettien autentisointimenetelmä verkko-osoitemuutosten ja protokollamuunnosten läsnäollessa
SE513828C2 (sv) * 1998-07-02 2000-11-13 Effnet Group Ab Brandväggsapparat och metod för att kontrollera nätverksdatapakettrafik mellan interna och externa nätverk
US6208649B1 (en) 1998-03-11 2001-03-27 Cisco Technology, Inc. Derived VLAN mapping technique
US6128623A (en) 1998-04-15 2000-10-03 Inktomi Corporation High performance object cache
US6292880B1 (en) 1998-04-15 2001-09-18 Inktomi Corporation Alias-free content-indexed object cache
US6289358B1 (en) 1998-04-15 2001-09-11 Inktomi Corporation Delivering alternate versions of objects from an object cache
US6209003B1 (en) 1998-04-15 2001-03-27 Inktomi Corporation Garbage collection in an object cache
US6128627A (en) 1998-04-15 2000-10-03 Inktomi Corporation Consistent data storage in an object cache
US6058431A (en) * 1998-04-23 2000-05-02 Lucent Technologies Remote Access Business Unit System and method for network address translation as an external service in the access server of a service provider
US6212565B1 (en) 1998-08-26 2001-04-03 Sun Microsystems, Inc. Apparatus and method for improving performance of proxy server arrays that use persistent connections
US6138156A (en) * 1998-10-05 2000-10-24 International Business Machines Corporation Selecting and applying content-reducing filters based on dynamic environmental factors
US6389462B1 (en) 1998-12-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for transparently directing requests for web objects to proxy caches
US6333931B1 (en) 1998-12-28 2001-12-25 Cisco Technology, Inc. Method and apparatus for interconnecting a circuit-switched telephony network and a packet-switched data network, and applications thereof
US6535511B1 (en) * 1999-01-07 2003-03-18 Cisco Technology, Inc. Method and system for identifying embedded addressing information in a packet for translation between disparate addressing systems
US6636898B1 (en) * 1999-01-29 2003-10-21 International Business Machines Corporation System and method for central management of connections in a virtual private network
US6393488B1 (en) * 1999-05-27 2002-05-21 3Com Corporation System and method for supporting internet protocol subnets with network address translators
US6957346B1 (en) * 1999-06-15 2005-10-18 Ssh Communications Security Ltd. Method and arrangement for providing security through network address translations using tunneling and compensations
US6375572B1 (en) * 1999-10-04 2002-04-23 Nintendo Co., Ltd. Portable game apparatus with acceleration sensor and information storage medium storing a game progam
US6581108B1 (en) * 1999-11-30 2003-06-17 Lucent Technologies Inc. Managing multiple private data networks using network and payload address translation
US7917628B2 (en) * 1999-12-02 2011-03-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7058973B1 (en) * 2000-03-03 2006-06-06 Symantec Corporation Network address translation gateway for local area networks using local IP addresses and non-translatable port addresses
US6779035B1 (en) * 2000-03-06 2004-08-17 Microsoft Corporation Application programming interface and generalized network address translator for translation of transport-layer sessions
US6353891B1 (en) 2000-03-20 2002-03-05 3Com Corporation Control channel security for realm specific internet protocol
US6789126B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing message gates in a distributed computing environment
US6618757B1 (en) * 2000-05-17 2003-09-09 Nortel Networks Limited System and method for dynamic IP address management
WO2001097485A2 (en) 2000-06-14 2001-12-20 At & T Wireless Services, Inc. Method for providing transparent public addressed networks within private networks
AU2001271263A1 (en) 2000-06-30 2002-01-14 Net2Phone System, method, and computer program product for resolving addressing in a network including a network address translator
US6661799B1 (en) 2000-09-13 2003-12-09 Alcatel Usa Sourcing, L.P. Method and apparatus for facilitating peer-to-peer application communication
US20020085097A1 (en) * 2000-12-22 2002-07-04 Colmenarez Antonio J. Computer vision-based wireless pointing system
US7155518B2 (en) * 2001-01-08 2006-12-26 Interactive People Unplugged Ab Extranet workgroup formation across multiple mobile virtual private networks
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
JP3963690B2 (ja) * 2001-03-27 2007-08-22 富士通株式会社 パケット中継処理装置
US20030009561A1 (en) * 2001-06-14 2003-01-09 Sollee Patrick N. Providing telephony services to terminals behind a firewall and /or network address translator
US6993574B2 (en) * 2001-06-19 2006-01-31 Zoetics, Inc. Web-based communications addressing system and method
US20030051052A1 (en) 2001-09-13 2003-03-13 Koninklijke Philips Electronics N.V. Addressing scheme for wireless mobile clients
US20030055978A1 (en) * 2001-09-18 2003-03-20 Microsoft Corporation Methods and systems for enabling outside-initiated traffic flows through a network address translator
US7254709B1 (en) * 2001-10-23 2007-08-07 Avanza Technologies, Inc. Managed information transmission of electronic items in a network environment
SE522998C2 (sv) 2001-12-14 2004-03-23 Hotsip Ab Förfarande, gateway och datorprogramprodukt för att sända ett snabbmeddelande mellan två användare
US7058718B2 (en) 2002-01-15 2006-06-06 International Business Machines Corporation Blended SYN cookies
US7133368B2 (en) * 2002-02-01 2006-11-07 Microsoft Corporation Peer-to-peer method of quality of service (QoS) probing and analysis and infrastructure employing same
US7676579B2 (en) 2002-05-13 2010-03-09 Sony Computer Entertainment America Inc. Peer to peer network communication
US20040063843A1 (en) * 2002-07-19 2004-04-01 Honeywell International, Inc. Coating solutions
US7016942B1 (en) * 2002-08-05 2006-03-21 Gary Odom Dynamic hosting
US7216359B2 (en) 2002-12-19 2007-05-08 International Business Machines Corporation Secure communication overlay using IP address hopping
US20040212589A1 (en) * 2003-04-24 2004-10-28 Hall Deirdre M. System and method for fusing and displaying multiple degree of freedom positional input data from multiple input sources
US7044571B2 (en) * 2003-10-28 2006-05-16 Hewlett-Packard Development Company, L.P. Power supply adjustment
JP4426262B2 (ja) * 2003-11-26 2010-03-03 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の障害回避方法
US7522618B2 (en) * 2005-03-18 2009-04-21 Panasonic Corporation Communication apparatus, communication system and communication method
JP4973145B2 (ja) * 2006-11-20 2012-07-11 船井電機株式会社 管理サーバ及びコンテンツ移動システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100766777B1 (ko) * 2005-08-02 2007-10-17 엔에이치엔(주) 게임 네트워크 제공 시스템, 방법 및 기록매체
KR100793420B1 (ko) * 2006-07-12 2008-01-11 임승빈 네트워크상에서 데이터 전송 서비스를 제공하기 위한 서버및 클라이언트의 연결 시스템 및 이를 이용한 서버와클라이언트 또는 클라이언트와 클라이언트간의 연결 방법
KR100703065B1 (ko) * 2006-10-26 2007-04-09 (주)휴리브 다자간 양방향 음성통화 서비스를 위한 nat 제어 시스템및 그 방법
KR100968958B1 (ko) * 2008-12-03 2010-07-14 주식회사 케이티 인터넷 프로토콜 멀티미디어 서브시스템 및 인터넷 프로토콜 멀티미디어 서브시스템에서의 가입자 인증 방법
KR101049912B1 (ko) * 2009-02-24 2011-07-19 (주)닥터소프트 네트워크 시스템 간의 접속 방법

Also Published As

Publication number Publication date
EP1508238A1 (en) 2005-02-23
EP2285072A1 (en) 2011-02-16
DE60336052D1 (de) 2011-03-31
TWI251413B (en) 2006-03-11
EP2285072B1 (en) 2018-02-28
AU2003234391B8 (en) 2009-07-30
JP2005525750A (ja) 2005-08-25
EP1508238B1 (en) 2016-04-13
JP4083737B2 (ja) 2008-04-30
CN1586065B (zh) 2010-12-22
US20030212795A1 (en) 2003-11-13
TW200401540A (en) 2004-01-16
AU2003234391A1 (en) 2003-11-11
CN1586065A (zh) 2005-02-23
AU2003234391B2 (en) 2006-03-09
US7676579B2 (en) 2010-03-09
US20070150552A1 (en) 2007-06-28
KR100760802B1 (ko) 2007-09-20
WO2003096653A1 (en) 2003-11-20

Similar Documents

Publication Publication Date Title
KR100760802B1 (ko) 네트워크 주소가 변환되는 피어 투 피어 네트워크 통신
KR100708020B1 (ko) 네트워크 구성 평가
KR100317443B1 (ko) 인터넷프로토콜필터
US7936743B2 (en) Method and system for determining a path between two points of an IP network over which datagrams are transmitted
US6822955B1 (en) Proxy server for TCP/IP network address portability
US20060109850A1 (en) IP-SAN network access control list generating method and access control list setup method
US9705844B2 (en) Address management in a connectivity platform
US20080080532A1 (en) Methods and apparatus for managing internet communications using a dynamic STUN infrastructure configuration
CN101809951A (zh) 协同nat行为发现
US8145788B1 (en) Distributed ISP load balancer
US20060047821A1 (en) System, method, and medium for relaying data using socket application program
US20220337546A1 (en) Method and system for realizing network dynamics, terminal device and storage medium
KR101124635B1 (ko) IPv4/IPv6 연동 게이트웨이
US20090103729A1 (en) HAIPE Peer Discovery Using BGP
JP2006352567A (ja) サービス提供装置および通信制御プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E801 Decision on dismissal of amendment
B601 Maintenance of original decision after re-examination before a trial
S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120827

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130827

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140826

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150825

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160830

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170831

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180828

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190830

Year of fee payment: 13