KR101129507B1 - 피어 발견 - Google Patents
피어 발견 Download PDFInfo
- Publication number
- KR101129507B1 KR101129507B1 KR1020067011530A KR20067011530A KR101129507B1 KR 101129507 B1 KR101129507 B1 KR 101129507B1 KR 1020067011530 A KR1020067011530 A KR 1020067011530A KR 20067011530 A KR20067011530 A KR 20067011530A KR 101129507 B1 KR101129507 B1 KR 101129507B1
- Authority
- KR
- South Korea
- Prior art keywords
- network
- delete delete
- peer
- peers
- terminal set
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5046—Resolving address allocation conflicts; Testing of addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5092—Address allocation by self-assignment, e.g. picking addresses at random and testing if they are already in use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
- H04M7/006—Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
- H04M7/0063—Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer where the network is a peer-to-peer network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1068—Discovery involving direct consultation or announcement among potential requesting and potential source peers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
피어-대-피어(peer-to-peer) 네트워크의 초기 접속 시에, 피어는 다른 피어들에 네트워크에 대한 그의 접속을 통지한다. 상기 피어는 다른 피어로부터 존재 통지들을 수신하고, 네트워크 상에서 피어 목록을 생성하기 위해 존재 통지들을 이용할 수 있으며, 이것은 각각의 피어의 고유한 식별자로 분류된다. 예상되는 네트워크 어드레스는, 예를 들면, 분류된 목록 내에 피어의 순서 위치에 기초하여 선택된다. 충돌 체크는 예상되는 네트워크 어드레스와 다른 피어의 네트워크 어드레스 사이에 충돌을 해결한다. 각 피어는, 예를 들면, 다른 피어들이 그의 어드레스를 요구하는 것을 방지하기 위해 주기적으로 다른 피어들에 그의 네트워크 어드레스를 통지한다. 피어가 비활성일 때, 이것을 감지하는 다른 피어는 분리된 피어의 어드레스가 이미 요구됐다는 것을 주기적으로 나머지 피어에 통지하기 시작한다. 피어들은 음성-절환-IP 전화기 세트일 수 있으며, 네트워크 어드레스는 디렉토리 번호일 수 있다.
피어-대-피어, 식별자, 네트워크 장치, 예상되는 네트워크 어드레스, 피어, 디렉토리
Description
본 출원은 2003년 11월 12일 출원된 가출원 번호 제 60/518,646 호에 우선권이 있는 것으로, 그 내용이 본원에 참고로 통합된다.
본 발명은 통신 네트워크들에서 피어 발견에 관한 것이다.
복수의 공지된 회선 교환 또는 패킷 교환 전화 통신 해결법들에서, 중앙화된 장비(예를 들어, 스위치 또는 사설 교환기(Private Branch Exchange; PBX))는 호(call) 종료, 호 처리, 스위칭 및/또는 호 취급 능력을 제공한다. 대형 시스템들에서, 중앙 장비는, 전화기 세트들을 컴퓨터에 접속하는 라인 카드(line card)로 불리는 회로 기판들 상의 복수의 기능들을 제어하는 강력한 컴퓨터일 수 있다. 소형 시스템에서(예를 들어, 열 개 또는 더 적은 단말기 세트들을 구비하는 시스템들에서), 중앙 처리 장비를 수용하도록 특별히 설계된 "훌륭한"(golden) 전화기 세트 안에 중앙 정보가 실제로 존재한다.
중앙장비가 취하는 형태에 관계없이, 복수의 단말기 세트(예를 들어, 유선 또는 무선 전화기 세트)가 통상 중앙장비에 접속된다. 단말기 세트는 중앙 장비와 비교하여 통상 "단순" 장비이다. 즉, 단말기 세트는 단순히 훅-스위치 정보와 키 프레스(key press: 예를 들어 이중-톤 멀티-주파수 또는 DTMF 톤)를 중앙 장비에 전송하여 중앙 장비로부터의 다이얼-톤, 링 톤 또는 음성 신호를 사운드(또는 어떤 경우에 이미지 또는 비디오)로 변환한다. 단말기 세트는 통상 임의의 다른 단말기 세트의 존재를 모르고 다른 단말기 세트와 서로 접속하는 고유의 능력이 없다.
중앙화된 전화 통신 시스템에서, 네트워크 내 전화 세트의 관리와 발견은 통상 중앙의 장비에 의해 실행된다. 예를 들어, 전통적인 회선 교환 시간 분할 다중화(Time Division Multiplexing; TDM) 전화 통신 시스템에서, 예를 들어 각 단말기 세트는 중앙의 호 처리 장비 상에서 한 개 포트에 접속될 수 있다. 통상적으로, 출력을 높일 때 일어나는 초기화 시퀀스의 일부로서, 각 단말기 세트는 중앙 장비에 그의 수용 능력을 알린다. 새로운 단말기 세트가 접속될 때 중앙 장비는 그러한 공시들(announcements)에 대해 각각의 포트를 모니터하여, 새로 추가된 단말기 세트를 "발견"할 수 있다.
중앙화된 음성 패킷망(IP) 또는 VoIP 전화 통신 시스템에서, 매우 유사하지만 약간 더 복잡한 절차가 채택된다. 그렇지만, 여전히 단말기 세트는 네트워크를 통해 그의 수용 능력을 중앙 호처리 장치로 알린다. 공지되었듯이, VoIP는 IP 기반의 데이터 네트워크 상에 호의 전송이다. 통신이 패킷 데이터의 형식을 취하여 회선 교환망의 경우에서처럼 고정된 접속점이 없다. 통신은 텍스트, 음성, 그래픽 또는 비디오일 수 있다. IP 장비는 상호 운영 능력을 위해 H.323 및 세션 시작 프로토콜(SIP) 같은 표준안을 고수한다. 단말기, 네트워크 장치 및 서비스 사이에 멀티미디어 통신이 어떻게 일어나는지 일반적으로 H.323 표준안이 기술된다. SIP 표준안은 인터넷상에서 멀티미디어 세션을 설치, 변경 및 해체하는 기술적인 요구조건을 만족한다. 여기 사용된 바와 같이, 용어 "호"는 두 개의 종점 사이의 멀티미디어 통신을 말하고, 음성 전화 호출을 포함한다.
중앙 장비가 회선 교환망 또는 패킷 교환망 여부에 관계없이, 새로운 단말기 세트를 발견하는 과정 동안에 중앙의 장비는 항상 자동으로 한 형태의 네트워크 어드레스인 디렉토리 번호(DN)를 할당하고 관리한다. DN은 예를 들어 PBX 확장이다. DN이 다른 세트로 할당되기에, DN은 중앙 장비에서 유지된 DN의 일람표에 부가된다. 종종, DN이 호출하는 단말기 세트로부터 나아갈 때 호출되어야 하는 물리적인 단말기 세트의 동일성을 중앙화된 장비가 결정할 수 있는 것은 오직 이러한 중앙화된 목록에 근거한다.
제공되는 포트의 수와 처리 능력 (예를 들어, 처리기 유형과 속도)에서의 제한 때문에, 통상적으로 중앙화된 장비는 제공될 수 있는 호출 처리 용량의 양과 수용될 수 있는 사용자의 수에 대한 상한치를 갖는다. 포트의 수 및/또는 그들의 기존 장비의 호 처리 필요 조건을 초과하면, 고객은 더 큰 중앙의 장비로 업그레이드 하길 원한다. 불리하게 그러한 업그레이드는 통상 상당한 지출을 일으킨다.
더 큰 처리 용량과 메모리와 연관된 경비가 계속 감소하기에, 네트워크에 접속된 각 전화 세트에서의 호-처리 엔진의 포함이 가능하게 된다. 그런 시스템에서, 중앙 장비의 제거가 바람직하다. 그런 분산된 시스템은 분산된 전화 통신 시스템으로 불린다.
중앙화된 장비가 존재하지 않기에, 불리하게도 단말기 세트 발견에 대한 상기의 접근은 분산된 시스템에는 맞지 않는다.
따라서, 분산된 전화통신 시스템에서, 다른 방식의 발견 단말기 세트 또는 다른 형태의 네트워크 서비스가 바람직하다. 일반적으로, 분산된 멀티미디어 통신시스템같은 피어-대-피어(peer to peer) 시스템에서, 하나의 방식의 발견 단말기 세트 또는 다른 형식의 네트워크 서비스가 바람직하다.
피어-대-피어 네트워크의 초기 접속 시에, 피어는 다른 피어에 그의 네트워크로의 접속을 통지한다. 상기 피어는 다른 피어로부터 존재 통지를 수신하여 네트워크 상에 피어의 목록을 생성하는데 사용하고, 이것은 각 피어의 고유한 식별자에 의해 분류된다. 예상되는 네트워크 어드레스가 예를 들어, 분류된 목록 내에 피어의 순서 위치에 기초하여 선택된다. 충돌 체크는 예상되는 네트워크 어드레스와 다른 피어의 네트워크 어드레스 사이에 충돌을 해결한다. 각 피어는 주기적으로 다른 피어들에 그의 네트워크 어드레스를 알린다. 피어가 비활성일 때, 이것을 감지하는 다른 피어는 주기적으로 나머지 피어에 분리된 피어의 어드레스가 이미 요구됐다는 것을 알리기 시작한다. 피어는 음성-절환-IP 전화기 세트이고, 네트워크 어드레스는 디렉토리 번호이다.
본 발명의 특징에 따라서, 복수의 네트워크 장치들 중 하나의 네트워크 장치에 하나 이상의 존재 통지를 전송하는 단계와; 하나 이상의 다른 네트워크 장치에서 하나 이상의 존재 통지를 수신하는 단계와; 수신된 존재 통지에 기초하여, 상기 하나의 네트워크 장치에 대해 예상되는 네트워크 어드레스를 선택하는 단계를 포함하는 방법을 제공한다.
본 발명의 다른 특징에 따라서, 제 1 네트워크 장치, 제 2 네트워크 장치와 적어도 하나의 다른 네트워크 장치를 포함하는 네트워크에서, 상기 제 1 네트워크 장치의 상기 네트워크 어드레스를 유지하고; 상기 제 1 네트워크 장치가 비활성이라는 것을 결정하면, 상기 제 1 네트워크 장치의 상기 네트워크 어드레스가 요구된 것을 상기 적어도 하나의 다른 네트워크 장치에 통지하는 단계를 포함하는 방법이 제공된다.
본 발명의 다른 특징에 따라서, 제 1 상태와 제 2 상태를 포함하는 상태 머신을 유지하는 네트워크 장치 사용 방법에 있어서, 상기 제 1 상태는 상기 네트워크 장치가 예상되는 네트워크 어드레스를 선택한다는 것을 나타내고, 상기 제 2 상태는 상기 네트워크 장치가 상기 예상되는 네트워크 어드레스를 그의 네트워크 어드레스로 요구한다는 것을 나타내는 네트워크 장치 사용 방법이 제공된다.
본 발명의 다른 특징에 따라서, 하나 이상의 다른 네트워크와 장치와 함께 사용되는 네트워크 장치에 있어서, 상기 네트워크 장치와 상기 다른 네트워크 장치가 복수의 네트워크 장치를 형성하고, 존재 통지를 전송하고; 상기 다른 네트워크 장치에서 하나 이상의 존재 통지를 수신하고; 수신된 존재 통지에 기초하여, 상기 하나의 네트워크 장치에 대해 예상되는 네트워크 어드레스를 선택하는, 하나 이상의 다른 네트워크와 장치와 함께 사용되는 네트워크 장치가 제공된다.
본 발명의 또 다른 특징에 따라서, 비활성 네트워크 장치와 적어도 하나의 다른 네트워크 장치를 포함하는 네트워크에 접속된 네트워크 장치로서, 상기 비활성 네트워크 장치의 상기 네트워크 어드레스를 유지하고; 상기 비활성 네트워크 장치가 비활성이라고 결정하면, 상기 비활성 네트워크 장치의 상기 네트워크 어드레스가 요구된 것을 상기 적어도 하나의 다른 네트워크 장치에 통지하는 네트워크 장치가 제공된다.
본 발명의 또 다른 특징에 따라서, 제 1 상태와 제 2 상태를 포함하는 상태 머신을 유지하는 네트워크 장치가 제공되며, 상기 제 1 상태는 상기 네트워크 장치가 예상되는 네트워크 어드레스를 선택한다는 것을 나타내고, 상기 제 2 상태는 상기 네트워크 장치가 상기 예상되는 네트워크 어드레스를 그의 네트워크 어드레스로 요구한다는 것을 나타낸다.
본 발명의 또 다른 특징에 따라서, 복수의 네트워크 장치들 중 하나의 네트워크 장치를 실행하는 컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능 기록 매체로서, 존재 통지를 전송하는 단계와; 하나 이상의 다른 네트워크 장치로부터 하나 이상의 존재 통지들을 수신하는 단계와; 수신된 존재 통지들에 기초하여 상기 하나의 네트워크 장치에 대한 예상되는 네트워크 어드레스를 선택하는 단계를 포함하는, 컴퓨터 판독 가능 기록 매체가 제공된다.
본 발명의 또 다른 특징에 따라서, 적어도 하나의 다른 네트워크 장치와 비활성 네트워크 장치를 포함하는 네트워크에서 하나의 네트워크 장치에서 실행되는 컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능 기록 매체에 있어서, 상기 비활성 네트워크 장치의 상기 네트워크 어드레스를 유지하는 단계와; 상기 비활성 네트워크 장치가 비활성이라고 결정시에 적어도 하나의 다른 네트워크 장치에 통지하는 단계를 포함하는 컴퓨터 판독 가능 기록 매체가 제공된다.
본 발명의 다른 특징에 따라서, 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능 기록 매체에 있어서, 네트워크 장치에 의해 실행될 때 제 1 상태와 제 2 상태를 포함하는 상태 머신을 상기 네트워크 장치가 유지하도록 하고, 상기 제 1 상태는 상기 네트워크 장치가 예상되는 네트워크 어드레스를 선택한다는 것을 나타내고 상기 제 2 상태는 상기 네트워크 장치가 상기 예상되는 네트워크 어드레스를 그의 네트워크 어드레스로서 요구한다는 것을 나타내는 컴퓨터 판독 가능 기록 매체가 제공된다.
본 발명의 다른 특징들 특성들은 다음에 기술되는 특정 실시예와 첨부된 도면을 참조하여 당업자에게 더욱 명백해진다.
도 1은 본 발명의 실시예에 따라 피어를 발견할 수 있는 다중 네트워킹된 단말기 세트("피어")를 포함하는 전화 시스템을 도시한 도면.
도 2는 도 1의 전화 시스템의 단말기 세트의 일부 회로 블록도.
도 3은 도 2의 단말기 세트에서 동작하는 소프트웨어의 기능 블록도.
도 4는 도 2의 단말기 세트의 라우팅 테이블.
도 5는 본 발명의 실시예에 따른 분산된 피어-대-피어(peer to peer) 네트워크에서 피어 발견 동안에 단말기 세트에 의해 구현된 상태 머신(state machine)을 도시한 도면.
도 6은 도 5에 도시된 초기 상태에서 단말기 세트의 동작을 예시한 흐름도.
도 7은 도 5에 도시된 디렉토리 번호 프로브 상태에서 단말기 세트의 동작을 예시한 흐름도.
도 8은 도 5에 도시된 DN 주장 상태에서 단말기 세트의 동작을 예시한 흐름도.
도 9는 본 발명의 다른 실시예에 따른, 분산된 네트워크에서 피어 발견을 위한 동작을 예시한 흐름도.
도 10은 본 발명의 또 다른 실시예에 따른, 분산된 네트워크에서 피어 발견을 위한 동작을 예시한 흐름도.
본 발명의 예시적인 실시예들은 첨부한 도면을 참조하여 기재될 것이다.
전체적으로 보아, 라우팅(routing) 또는 스위칭 장비의 일부가 부족한 예시적인 분산 전화통신 시스템에서 믿을 수 있는 특징이 필요하다. 한 개의 필요한 특징은 네트워크에 단말기 세트를 초기 접속시에 고유한 DN을 각 단말기 세트로 자동으로 할당하는 능력인데, 네트워크에서 다른 단말기 세트에 의해 선택된 DN사이의 충돌을 최소화하는 노력이 더해진다. 다른 필요한 또는 필수적인 특징은 네트워크에 접속된 각각의 다른 단말기 세트의 DN을 각각의 단말기 세트가 알 수 있도록 하여 각각의 단말기 세트가 다른 단말기 세트를 호출할 수 있는 것이다. 또 다른 필요한 특징은 네트워크으로부터의 단말기 세트의 분리 또는 단말기 세트의 파워 소실시조차도 단말기 세트에 할당된 DN을 보존할 수 있는 능력이다(둘 중 하나는 단말기 세트의 "작동 안함"을 초래함). DN을 보존하는 동기는, 네트워크와 단말기 세트의 일시적인 분리의 결과로 비활성 단말기 세트의 DN이 재할당되지 못하기 때문으로,(예를 들어, 단말기 세트와 네트워크 사이에 잘못 접속, 간단한 전원소실 또는 무선 단말기세트 범위 밖의 이동때문에) 상기 재할당은 단말기 세트가 호출받을 때 호출하는 측의 일부에 혼란을 초래할 수 있다.
이런 특징들을 지원하기 위해, "팩토리 프레쉬"(factory fresh) 즉, 아직 구성되지 않은 상태로 네트워크로의 초기 접속시에 본 발명의 실시예로 예시된 단말기 세트(예를 들어, 전화기 세트, 휴대용 PDA, 퍼스널 컴퓨터(PC), 무선 단말기, 싱크 트렁크 인터페이스(Think Trunk Interface), 또는 다른 네트워크 장치)는 네트워크 접속 통지를 통해 네트워크 상에서 다른 단말기 세트에 그의 네트워크 접속을 통지한다. 예를 들어, 미디어 액세스 제어(Media Access Control) 어드레스 같은 네트워크 접속 통지는 단말기 세트와 연관된 고유한 식별자를 포함한다. 공지된 바와 같이, MAC 어드레스는 네트워크에 대해 고유한 식별자 역할을 하는 고유한 하드웨어 어드레스 또는 하드웨어 번호이다. 네트워크 접속 통지는 "I_AM_HERE"의 형태를 취하는데, 메시지가 수신될 거라는 가능성을 높이도록 이것은 여러 번 전송한다(현재의 실시예에서와 같이, 각각의 수신된 메시지에 대해 수신 확인이 다른 피어(peer)에 의해 전송하지 않는 경우에).
새로 접속된 단말기 세트는 역시 다른 단말기 세트로부터 존재 통지를 받는다. 존재 통지는 단말기 세트의 존재를 표시하고 이것은 현재 네트워크에 나타나거나(즉, 네트워크에 접속되어 작동 중), 이전에 네트워크에 나타났다(즉, 이전에 접속되어 작동중이나 이제는 분리되어 작동 안 됨). 본 실시예에서, 존재 통지는 "I_AM_HERE" 메시지(이전에 설명), "PEER_ASSERT" 메시지(아래 설명), 또는 "INACTIVE_PEER_ASSERT" 메시지(아래 설명) 중의 하나이다. 각각의 존재 통지는 어떤 메시지가 전송되는지에 대한 단말기 세트의 고유한 식별자를 포함한다. 나중 두 개의 유형의 메시지("PEER_ASSERT" 및 "INACTIVE_PEER_ASSERT" 메시지)는 부가적으로 이미 주장된 DN의 표시를 제공하고, 새로 접속된 단말기 세트가 네트워크에 접속될 때만이 수신된다.
존재 메시지로부터 네트워크 상의 모든 단말기 세트의 목록(라우팅 테이블로 불림)이 만들어진다. 상기 목록의 단말기 세트는 고유한 네트워크 장치 식별자에 의해 분류된다. 이미 주장된 DN을 갖는 단말기 세트에 대해, 주장된 DN은 분류된 목록에 나타난다. 새로 접속된 단말기 세트는 목록 안에 순서 위치를 갖는다.
예상되는 DN을 선택하기 위해, 새로 접속된 단말기 세트는 기반 DN에 순서 위치와 오프셋을 부가한다. 예를 들어, DN이 PBX 연장을 나타내는 시스템에서, 새로운 단말기 세트가 5개 단말기 세트의 목록에서 세 번째 있다고 가정하면, 예상되는 DN은 203으로 결정된다( 오프셋은 단말기 세트의 순서 위치와 동일 즉, 3 + 200의 기반 DN). 장래 DN의 선택을 단말기 세트에 연관된 고유한 순서 위치상으로 기울임으로써, 다른 단말기 세트에 의한 고유한 장래 DN의 선택이 추진될 것이다. 복수의 팩토리-프레쉬 단말기 세트가 동시에 존재하지 않는 단말기 세트를 갖는 네트워크와 이전에 할당된 DN을 접속하는 시나리오를 이것은 가정한다. 근본적인 이유는 다른 단말기 세트가 초기에 동일한 장래 DN을 선택하지 못하도록 하는 것으로, 이것은 시간이 걸리는 충돌 해결 처리를 초래한다.
그것의 예상되는 DN 선택하면, 다음에 새로 접속된 단말기 세트는 서로 다른 단말기 세트의 장래 DN을 통지할 것이다. 이것이 "DN 프로브"으로 불린다. 만약 다른 단말기 세트가 새로 접속된 단말기 세트의 장래 DN에 의한 요구에 반대하면 새로 접속된 단말기 세트는 장래 DN을 그 자체로서 요구한다. 새로 접속된 단말기 세트는 이전에 결정된 시간 간격이 장래 DN의 요구 전에 사라지도록 하여 다른 단말기 세트에 대해 어떤 반대를 나타내는데 충분한 시간을 제공한다. 장래 DN이 성공적으로 요구된 것을 가정하여, 새로 접속된 단말기 세트는 각자 서로의 단말기 세트의 요구를 상기 DN에 알린다. 새로 접속된 세트는 역시 요구된 DN을 비휘발성 메모리에 저장하여 단말기 세트의 전원이 소실된다면 할당된 DN이 재호출되도록 한다. 라우팅 테이블은 역시 저장된다.
새로 접속된 단말기 세트가 설정된 네트워크에 접속되는 경우에, 네트워크 상의 다른 단말기 세트가 이미 그들의 DN을 선택하였다. 이런 경우에, 새로 접속된 단말기 세트에 의해 선택된 장래 DN이 이미 존재하는 단말기 세트 중 하나에 할당되는 것이 가능하다. 예를 들어, 단말기 세트의 저장된 목록 내에 새로 접속된 단말기 세트의 순서 위치가 목록의 끝 이외에 있다면(예를 들어, 새로운 단말기 세트의 고유한 식별자가 분류된 목록의 중간에 위치시킨다면), 새로 접속된 단말기 세트의 위치와 연관된 오프셋이 기반 DN에 가해지는 때 나타나는 장래 DN은 존재하는 단말기 세트 중 하나의 DN을 나타낸다.
이러한 가능성의 관점에서, 새로 접속된 전화기가 어떤 다른 단말기 세트의 장래 DN을 통지하기 전에, 장래 DN이 이미 네트워크에서 어떤 다른 단말기 세트에 의해 요구되는 지의 여부를 결정하도록 그것은 먼저 라우팅 테이블에 상의한다. 예상되는 DN이 이미 다른 세트에 의해 요구된다면, 다른 단말기 세트의 선택을 알리기 전에 1과 같은 오프셋을 목록에 나온 가장 큰 DN에 추가함으로써 새로 접속된 DN은 다른 장래 DN을 선택한다. 이것은 네트워크 상에 불필요한 통신을 피하고, DN을 이미 요구한 다른 단말기 세트 중 하나로부터의 반대를 수신하도록 새로 접속된 단말기 세트가 서로 다른 단말기 세트의 장래 DN을 통지하면 달리 초래된다.
새로 접속된 단말기 세트가 성공적으로 DN을 요구하면, 단말기 세트는 주기적으로 네트워크 상의 다른 단말기 세트에 그 DN으로의 요구를 통지한다. 본 실시예에서, 각각의 주기적인 통지는 "PEER_ASSERT" 메시지의 형태를 취하여 새로 접속된 단말기 세트의 "심장의 고동"으로서 작용하여 그것의 DN으로의 계속적인 네트워크 출현과 계속적인 요구를 가르킨다. 상기 통지는 네트워크 상에서 다른 단말기 세트에 의해 모니터 된다. 본 실시예에서, 주기적인 통지는 랜덤 시간 간격(예를 들어, 0과 2초 사이)으로 일어난다. 단말기 세트로부터의 통지의 수신 없이 소정 시간이 경과 하면, 단말기 세트는 비활성으로 간주된다. 역시 주기적인 통지는 이후에 추가된 단말기 세트가 DN에 그 자체로 요구하지 못하도록 작용을 한다. 예를 들어, 다른 단말기 세트가 DN을 장래 DN으로 선택하여 다른 단말기 세트로부터의 반대를 기다린다면, 그 통지는 상기 단말기에 의한 DN의 요구에 대한 반대로서 작용한다. 역시 명백한 반대(예를 들어 DN_CONFLICT 메시지)가 전송된다.
DN을 요구했던 단말기 세트가 네트워크에서 분리되거나 전원을 소실하면, 주기적으로 네트워크 상에서 DN으로의 요구를 다른 단말기 세트에 알릴 수 없을 것이다. 이런 경우에, 분리된 단말기 세트의 비활성을 알게 되는(예를 들어, 단말기 세트로부터의 어떤 최근의 PEER_ASSERT 메시지의 부재에 의해) 네트워크에서의 다른 단말기 세트가 끼어들어 주기적으로 네트워크 상에서 다른 단말기 세트에 그 사실을 통지하고 분리된 단말기 세트가 비활성이지만 그것의 DN은 이미 요구되었다. 끼어들었던 단말기 세트는 편리하게 "대리"로 불리고, 이러한 주기적인 통지(아래 설명된 "INACTIVE_PEER_ASSERT"의 형태를 취함)를 보낼 책임이 있고, 부가하여 주기적으로 다른 단말기 세트의 요구에 그 자체의 DN을 알릴 책임이 있다. 어떤 단말기 세트가 비활성 단말기 세트에 대해 대행하는 지를 결정하는 데 알고리즘이 적용된다. 비활성 단말기 세트를 대신하여 전송된 대리의 주기적인 통지는 이후에 추가된 단말기 세트가 그 자체로 분리된 단말기 세트의 DN을 요구하지 못하도록 한다.
분리된 단말기 세트가 나중 네트워크와 재접속된다면, 그 자체를 대신하여 다른 단말기 세트의 DN의 통지를 추구한다(이것은 비휘발성 메모리로부터 재호출). 대리의 단말기 세트가 재접속을 검출할 때, 다른 단말기 세트의 재접속된 단말기 세트의 DN의 통지를 중지하는 데, 재접속된 단말기 세트가 이러한 책임감을 되찾았기 때문이다.
도 1을 참조하여, 본 발명의 실시예에 따른 피어 발견을 이용하는 전화 통신 시스템 10 (또는 전화 시스템 10)이 도시된다. 전화시스템 10은 교환기 20를 통해 LAN 30에 접속된 100-N(간격은 한 형태의 단말기 세트와 한 형태의 네트워크 장치)을 통한 복수의 전화기 세트 100-1와 TTI(Thin Trunk Interface) 40를 구비한다. 선택적으로, 교환기 20는 네트워크 허브로 대치되기도 한다. 오직 4개의 전화기 세트가 분명히 보이도록 도시되었지만, N 2 N개의 전화기 세트가 있을 수 있고, 더우기 본 발명의 실시예에서 N은 커다란 숫자로 예를 들어 수천일 수 있다. TTI는 예를 들어, 베이직 아날로그 또는 디지털 T1/E1 인터페이스 또는 어떤 다른 PSTN 인터페이스로서 지역 분국(local central office) 또는 PSTN 상호작용 인터페이스를 제공하고, 복수의 전화"라인" 1, 2, 3, 4에 접속된다. 라인 1, 2, 3, 4는 지역 분국 또는 PSTN(도시 안 됨)에 의해 제공된 와이어 쌍 표시체이다. 본 발명의 실시예에서, 복수의 TTI를 요하는 많은 라인이 있다. 예를 들어, 8라인이 PSTN에 필요하다면, 제 2의 TTI가 시스템 10에 추가될 수 있다.
종래 중앙화된 전화통신 시스템과 달리, 도 1의 시스템 10은 분산된 호출 처리에 특징이 있다. 이러한 분산된 호출 처리는 예를 들어 분산된 음성 메일을 포함하는 복수의 능력을 갖는 데 특징이 있다.
도 2를 참조하여, 도 1의 전화시스템의 예시적인 전화세트 100-X (여기서 X = 1 ~ N)의 부분적인 회로 블록도이다. CPU 530, 메모리 관리 유닛 545과 RAM 535이 컴퓨터 장치의 기본을 제공한다. 이러한 컴퓨터 장치는 오디오 신호를 인코딩 및 디코딩하는 디지털 신호 프로세서(DSP) 520에 접속된다. DSP 520는 오디오 인터페이스 510에 접속된다. 컴퓨터 장치는 역시 3포트 스위치 52에 접속되어 LAN과 PC에 접속되도록 한다. 컴퓨터 장치는 역시 플래시 비-휘발성 메모리 540 적외선(IR) 인터페이스 550, 키 패드 및 버튼 인터페이스 555, LCD 제어기 560 및 퍼스널 컴퓨터 메모리 카드 국제협회(PCMCIA) 인터페이스 565 같은 호스트의 주변기기에 접속되어 단말기 세트 100의 규격화된 확장을 허용한다. 특정 구조가 도시되는 반면, 일반적으로 아래 설명되는 방법을 구현하는 데 충분한 처리 및 메모리 용량이 필요한 것을 가정하여 어떤 패킷 기반의(예를 들어, 인터넷 프로토콜) 전화가 사용되기도 한다. 예를 들어, 미텔(Mitel), 노텔(Nortel) 네트워크, 지멘스(Simens), 아바야(Avaya), NEC, 핑텔(Pingtel) 또는 3COM이 제조한 것 같은 오프-더-쉘프(표준적인 소프트/하드웨어) IP 전화기가 사용될 수도 있다(예를 들어, Nortel i2004, Simens optiPoint 410, 또는 Avaya 4610).
도 3을 참조하여, 도 2의 전화기 세트 100-X에서 작동하는 소프트웨어의 기능 블록도가 도시된다. 소프트웨어는 통상적으로 도 2의 램 535에 저장되어 CPU 530에서 구동되고, 기계어를 판독 가능한 매체 32로부터 로딩되는 데, 상기 매체는 마그네틱 또는 광 디스크, 테이프, 칩, 또는 다른 형태의 제 1 또는 제 2의 저장 장치일 수 있다. 일반적으로, 일반 또는 특별 목적의 프로세서, 펌웨어, 하드웨어, 주문형 집적 회로(ASICs), 필드-프로그래밍 가능 게이트 어레이(FPGAs), 일반 또는 특정 목적 로직으로 구동되는 상기 소프트웨어는 메모리에 저장된 기계어로 실행 가능한 코드의 적당한 조합으로 구현될 수 있다.
시스템 디스패처(system dispatcher) 120 는 호 처리 모듈 70, 음성 메일 80, 다이얼링 규칙 모듈 90, 피어 발견 모듈 110, 디스플레이 핸들러 130, 오디오 핸들러 140 및 입력 핸들러 150를 포함하는 여러 기능 소자 사이의 통신과 스케쥴링을 제공한다.
호-처리 모듈 70은 호를 설치하고 해체, 음성 채널을 설치하기 위해 프로토콜 스택 160과 상호작용한다. 다수 세트의 호 처리 모듈 70은 중앙화된 장비에 대한 필요없이 분산 형식으로 PBX-같은 호 처리 능력을 내도록 작용한다.
호가 수신되어 사용자가 호에 응답할 수 없을 때 음성 메일 모듈 80은 음성 메일 서비스를 제공한다.
다이얼링 규칙 모듈 90은 호출이 어떻게 이루어지는지를 제어하는 호 처리 모듈 70에 대한 한 세트의 다이얼링 규칙을 포함하고 적용한다.
단말기 세트 100-X가 초기에 네트워크에 접속될 때, 피어 발견 모듈 110은 피어 발견을 용이하게 한다. 피어 발견 모듈 110은 본 발명의 핵심으로 아래 상술된다.
디스플레이 핸들러 130는 사용자에게 정보를 포맷팅하여 디스플레이하는 데에 책임이 있다.
오디오 핸들러 140는 벨소리 울림, 통화중, 통화대기음 같은 오디오 음을 취급하거나, 시스템 디스패처 120로부터 오디오 메시지를 수신하면 음성 채널을 마에서 핸드셋 스피커 또는 스피커 폰까지 접속시킨다.
입력 핸들러 150는 키 프레스, 훅 스위치, 음량 키, 핸드 프리 및 뮤트 버튼 같은 그런 기능을 모니터하고, 시스템 디스패처 120에 취할 적당한 액션을 통지한다.
도 4는 전화통신 시스템 10에서 각 단말기 세트 100-X에 의해 만들어져 유지된 라우팅 테이블 200을 예시한다. 라우팅 테이블은 LAN 30상에 출현하는 다른 단말기 세트의 표시를 나타낸다(비활성인 단말기 세트를 포함하여). 하기에 보듯이, 네트워크 30상에 다른 단말기 세트로부터 수신된 다른 유형의 메시지(예를 들어, "PEER_ASSERT"메시지)와 여러 "I_AM_HERE" 메시지로부터의 정보를 저장함으로써 단말기 세트 100-X는 라우팅 테이블 200을 만든다. 본 실시예에서, 역시 라우팅 테이블 20이 현재의 단말기 세트 100-X 에 대한 엔트리를 포함하여 표 200이 네트워크 30 와 연관된 모든 단말기 세트의 개요를 나타낸다.
도 4에 도시된 바와 같이, DN(열 210), MAC 어드레스(열 220), IP 어드레스(열 230), 장치 유형(열 250), 및 액티브 플래그 (flag: 열 293)를 포함하여, 라우팅 테이블 200은 네트워크 30상에 출현한 각각의 단말기 세트에 관한 여러 가지 유형의 정보를 저장한다.
DN(열 210)은 디렉토리 번호로서 PBX 확장과 유사하다. DN이 열 210에서 단말기 세트에 대해 표시될 때, DN은 그 단말기 세트에 의해 요구된 것으로 여겨진다. 단말기 세트가 아직 DN을 요구하지 않았을 때(예를 들어 네트워크 상에 DN의 출현을 방금 공표했다거나 아직 요구되지 않은 장래 DN을 오직 선택했다면), 열 210은 상기 단말기 세트에 대해 비어 있다. 열 210의 DN이 도 4의 올림 차순으로 도시되지만, 단말기 세트가 네트워크와 다른 요소에 추가되는 순서에 따라 DN은 비-올림 또는 비-순차적인 순서일 수 있다.
MAC 어드레스(열 220)는 고유한 하드웨어 어드레스 또는 하드웨어 번호로서 각각의 단말기 세트에 대해 고유한 식별자 역할을 한다. 하기에 이해되겠지만, 본 발명의 MAC 어드레스가 사용되어 동일 DN이 다른 단말 세트에 의해 선택될 때의 충 돌 문제를 푼다. MAC 어드레스는 라우팅 테이블 200에 나타나는 각각의 단말기 세트에 대해 열 220에 명시된다. 라우팅 테이블 200에서, 단말기 세트는 MAC 어드레스 올림 차순으로 분류된다. 선택적인 실시예가 내림 차순으로 단말기 세트를 분류할 수도 있다.
예를 들어, VoIP 단말기 세트의 경우에, IP 어드레스(열 230)는 각 단말기 세트에 할당된 IP어드레스를 나타낸다.
장치 유형(열 250)은 네트워크 30상에서 각 네트워크 장치의 유형을 표시한다. 본 발명의 예에서, 각 네트워크 장치는 단말기 세트이다(열 250에서 값 "SET"로 구분). 선택적인 실시예에서, 네트워크 장치는 예를 들어, 게이트웨이 또는 씬 트렁크 인터페이스(TTI) 같은 다른 유형의 장비를 포함한다. 여기 기술된 피어 발견은 장비 유형에 무관하게 네트워크 장치용으로 쓰인다.
액티브 플래그(열 293)는 단말기 세트가 현재 작동중인지의 여부를 나타낸다. 이전에 설명하듯이, 단말기 세트는 주기적으로 PEER_ASSERT 메시지를 다른 단말기 세트에 전송하여, 자기들이 여전히 작동중이라는 것을 다른 단말기 세트에 알린다. PEER_ASSERT 메시지가 소정 시간 간격 동안 단말기 세트 100-X에 의해 수신되었다면(예를 들어, PEER_ASSERT 메시지 사이에 소정 고정된 기간 동안 3번, 고정된 기간은 예를 들어 2초), PEER_ASSERT 메시지가 수신 안된 단말기 세트의 상태는 단말기 세트 100-X에 의해 유지된 라우팅 테이블 200에서 비활성으로 설정된다. 비활성 단말기 세트가 PEER_ASSERT 메시지 전송을 추구하면, 상기 단말기 세트의 상태가 활성(작동중)으로 복원된다.
도 5는 본 발명의 실시예에 다른, 피어 발견 동안에 예시적인 단말기 세트 100-X에 의해 구현된 상태 머신(machine)을 예시한다. 도 5의 목적으로, 파워 업과 초기화 과정 중 단말기 세트 100-X가 각 네트워크 상에서 DHCP(Dynamic Host Configuration Protocol) 서버로부터 IP 어드레스를 얻었다고 가정하거나, 당 업자에 공지된 방식으로 zeroconf(현재 "draft-ietf-zeroconf-ipv4-linklocal-17.txt"같은 RFC(Request For Comments) 편집의 큐(queue) 속에 있는 인터넷 엔지니어링 태스크 포스 표준)를 이용하여 얻었다고 가정한다.
IP 어드레스가 얻어지면 단말기 100-X는 초기 "I_AM_HERE" 상태 800로 들어 가서 단말기 세트 100-X가 네트워크 30상에 출현했다는 것을 나타낸다. 이 상태 800에서, 단말기 세트 100-X는 네트워크 30상에서 그의 출현을 네트워크사의 다른 단말기 세트에 알림으로서 "알린다" 그리고 네트워크 30상에서 그들의 출현에 대해 다른 네트워크 장치로부터의 통지의 수신을 시작한다. 본 실시예에서, 네트워크에서 다른 단말기 세트로 멀티캐스트되는 단말기 세트 100-X의 IP 어드레스와 AMC 어드레스를 포함하는 I_AM_HERE 메시지를 통해 단말기 세트 100-X가 알린다. "멀티 캐스팅"은 여러 수취인에게 단일 메시지를 전송하는 것이다. 동일 메시지가 한 그룹의 수취인에게 전송될 때, 멀티캐스팅은 브로드캐스팅(모든 네트워크 장치의 경우에, 메시지를 원하지 않는 대상에게조차도 메시지 수신)과 유니캐스팅(두 개의 네트워크 장치 사이에 포인트-투-포인트 전송으로, 이것은 받으려는 수령인마다 한번 반복된다)보다 더욱 효과적이다. VoIP 단말기 세트의 경우에, 멀티캐스팅은 "IP 멀티캐스팅용 호스트 연장" 표제의 RFC 1112에 기술된 IP 멀티캐스팅으로 당 분야의 기술자에게는 친숙하다.
단말기 세트는 I_AM_HERE 멀티캐스트 메시지를 N번 전송하는 데, 여기서 N은 1 또는 1 이상의 플러스 정수이다. 단말기 세트가 거대한 네트워크의 일부를 형성하는 실시예에서, 여러 또는 모든 단말기 세트가 동시에 구동되어 네트워크내의 단말기 세트에서 각각의 수신 버퍼가 여러 메시지를 한번에 수신하는 게 가능하다. 본 발명의 어떤 실시예에서, 수신 버퍼가 오버플로우 될지라도 I_AM_HERE 멀티캐스트 메시지가 다른 단말기 세트로 공급되도록 각 단말기 세트에 대해 N은 3과 같거나 3 이상이다. I_AM_HERE 멀티캐스트 메시지는 랜덤 간격(각각 예를 들어 0~2 초 사이)으로 전송된다. 고정된 간격보다는 랜덤 간격으로 N의 I_AM_HERE 메시지를 전송하는 것은 I_AM_HERE 멀티캐스트 메시지가 하나 이상의 단말기 세트에 의해 수신되지 않는 위험을 감소시킨다. 고정된 간격이 사용되면, 다른 단말기 세트로부터의 I_AM_HERE 메시지가 각각의 N 전송 간격 동안에 주어진 단말기 세트에 나타나는 순서가 각각의 간격에 대해 동일하여, 마지막으로 도달하는 메시지가 시종일관 떨어진다. 메시지를 랜덤 간격으로 보냄으로써, 한 개 간격 동안에 메시지가 도달하는 순서는 다른 간격 동안에 도달하는 순서와 다르게 된다. 이렇게 메시지가 떨어지는 단말기 세트가 간격마다 변해서, 특정 단말기 세트로부터의 N개의 I_AM_HERE 메시지 중의 하나가 수신될 가능성이 더 크다.
상기 기술 내용은 개별 메시지 수신이 명백하게 인식되지 않는 메시지 프로토콜을 가정한다는 것을 이해할 것이고, 이것은 메시지의 성공적인 수신시에 명백한 인식이 전송되는지 프로토콜과 비교하여 전체 메시지 통행이 감소하는 관점에서 이것은 수용된다.
초기 상태 800에서, 단말기 세트 100-X는 역시 네트워크 30내에 다른 단말기 세트로부터의 메시지를 기다리는 데, 이 메시지는 라우팅 테이블 200(도 4)을 구성하거나 갱신하는 데 필요한 정보를 포함한다.
초기 상태 800로부터 상태 머신은 3개 이벤트 중 어느 것이라도 발생할 시에 DN 프로브 상태로 변환한다. 제 1 이벤트는 다른 단말기 세트로부터의 I_AM_HERE 메시지를 수신하여 그의 라우팅 테이블 200을 구성하도록 단말기 세트 100-X에 대해 충분한 시간을 제공하도록 하는 소정의 시간 간격의 만료이다. 제 2 이벤트는 현재의 단말기 세트 100-X가 이미 그의 비휘발성 메모리에 W장된 DN을 갖는다는 결정이다. 제 3 이벤트는 현재의 단말기 세트 100-X의 MAC 어드레스에 매칭되는 MAC 어드레스를 갖는 INACTIVE_PEER_ASSERT 메시지의 수신으로, 이것은 현재의 단말기 세트 100-X가 활성 상태로 복귀하여, 그의 대리에 의해 대신하여 전송된 INACTIVE_PEER_ASSERT 메시지를 방금 수신한 상황을 반영한다.
DN 프로브 상태 900에서, 단말기 세트 100-X는 예상되는 DN을 선택하고 M개의 DN_PROBE 멀티캐스트 메시지를 다른 단말기 세트로 전송하여 다른 단말기 세트 중 어느 것이 장래 DN을 요구하는 단말기 세트 100-X에 반대하는 지를 결정하는 데, 여기서 M은 1과 같거나 1 보다 큰 정수이다. 하나 이상의 DN_PROBE 메시지를 전송하는 근본적인 이유는 네트워크 상의 다른 단말기 세트 각각이 적어도 하나의 메시지 복사본을 수신하는 가능성을 높이는 데 있다. 본 실시예에서, DN_PROBE 메시지는 전송하는 단말기 세트의 IP 어드레스와 MAC 어드레스뿐 아니라 전송하는 단말기 세트에 의해 선택된 장래 DN을 포함한다. 다른 단말기 세트로부터의 DN_PROBE 메시지에 대한 응답이 없다면, 다른 단말기 세트의 반대가 없어서 단말기 세트 100-X가 DN을 그 자체로 요구하는 DN 주장 상태 700로 들어가는 것으로 가정한다. 이것은 현재의 단말기 세트의 장래 DN이 새롭게 선택된 DN인지 비휘발성 메모리로부터 재호출된 존속 DN인지의 여부에 관계없이 이루어진다.
DN 주장 상태 700는 단말기 세트 100-X가 성공적으로 DN을 요구한 안정된 상태를 나타낸다. 이런 상태에서, 단말기 세트 100-X는 주기적으로 PEER_ASSERT 멀티캐스트 메시지를 네트워크 내의 다른 단말기 세트에 전송하여, 단말기 세트가 동작 상태로 견고하게 있는 것을 주기적으로 나타낸다. 본 실시예의 PEER_ASSERT 메시지는 IP 어드레스, MAC 어드레스 및 요구된 DN을 포함한다. 요구된 DN과 다른 단말기 세트에 의해 요구된 DN 사이에 존재하는 충돌이 발견되면 DN 주장 상태 700에서 상태 머신은 DN 프로브 상태 900로 다시 변환한다. 충돌이 발견되는 상황의 예는, 네트워크가 두 개의 서브-네트워크로 분리되는 경우이다(예를 들어, 지리적으로 원격 위치에서 두 개의 서브-네트워크를 정상적으로 서로 접속하는 가상 사설 네트워크(VPN)의 고장시 에). 네트워크가 분리되면, 다른 서브-네트워크 상의 다른 단말기 세트가 동일 DN을 요구하면서, 단말기 세트가 개별 세그먼트로 접속되는 것이 가능하다. 네트워크 세그먼트가 다시 접속될 때 충돌이 발견되어 존재한다. 이런 경우에, 충돌의 해결책이 필요하다.
도 6은 도 5의 초기 상태 800에서의 단말기 세트 100-X의 활성을 예시한 흐름도이다. 초기에, 현재의 단말기 세트 100-X에 대한 DN이 존속(810)했는지의 여부 가 결정된다. 본 실시예에서. 이전에 요구된 DN을 갖도록 초기 상태 800, DN 프로브 상태 900 및 DN 주장 상태 700를 통해 단말기 세트 100-X가 이전에 있었다면 DN은 존속할 것이다. 이런 경우에 요구된 DN은 예를 들어 플래시 메모리 같은 비휘발성 메모리에 저장된다. DN을 비휘발성 메모리에 저장하는 목적은, 단말기 세트 100-X가 예를 들어 뜻하지 않은 전원 소실 또는 네트워크로부터의 분리 때문에 비활성인 경우에 활성 상태로 복귀시에 DN이 재요구되도록 보존하기 위함이다.
단계 810에서 DN이 단말기 세트 100-X에 대해 존속한다고 결정되면, 상태 머신은 DN 프로브 단계 900로 넘어간다(905). 이런 경우에, 단말기 세트 100-X가 비활성이라고 다른 단말기 세트가 현재 생각하고 있다 할지라도, 네트워크 상의 다른 단말기 세트는 네트워크 상의 단말기 세트 100-X의 출현을 이미 알았을 거라고 추정한다.
반면에, 단계 810에서 단말기 세트가 존속하는 DN을 갖지 않는다고 결정되면, 이것은 단말기 세트 100-X가 아직 구성되지 않은 "팩토리-프레쉬" 상태에 있다는 것을 나타낸다. 이런 경우에, 얼마나 많은 N개의 I_AM_HERE 메시지가 전송됐는지를 세는 카운터가 0으로 초기화된다(812). 다음에 랜덤 타이머가 0~2초 사이에 설정되고 제 2 타이머가 2초로 설정된다(814). 제 2 타이머에 대한 2초 간격은 라우팅 테이블 200의 구성을 위해 다른 단말기 장치로부터 메시지를 수신하는 데 충분한 시간이다. 물론, 이러한 시간 간격은 다른 실시예에서 다를 수 있다. 카운터가 증가되어(816) 단말기 세트가 수신될 메시지를 기다리는 "메시지 기다리는" 상태(820)로 들어간다.
메시지 기다리는 상태 동안 랜덤 타이머가 끝나면, I_AM_HERE 멀티캐스트 메시지는 다른 단말기 세트로 전송되어(822), 단말기 세트 100-X가 메시지를 대기하는 상태로 복귀한다(820).
820에서 네트워크의 다른 단말기 세트로부터 수신된 메시지가 유형에 대해 체크된다 (840).
수신된 메시지가 DN_CONFLICT 메시지라면, 단말기 세트는 DN_CONFLICT 메시지를 무시하고(이 메시지는 초기 상태 800에서 수신되지 말아야 하기 때문에), 상태 머신은 메시지 기다리는 상태(820)로 복귀한다.
수신된 메시지가 다른 단말기 세트에 의해 전송된 I_AM_HERE 메시지라면, 수신된 I_AM_HERE 메시지로부터의 데이터(예를 들어, MAC 어드레스와 IP 어드레스)가 라우팅 테이블 200에 추가된다.
수신된 메시지가 다른 단말기 세트에 의해 전송된 PEER_ASSERT 메시지 또는 DN_PROBE 메시지라면, PEER_ASSERT 또는 DN_PROBE 메시지 내의 데이터는 라우팅 테이블 20에 추가된다(상기 메시지는 아래 더욱 상세히 기술됨).
수신된 메시지가 INACTIVE_PEER_ASSERT이라면, 이 메시지에 포함된 데이터는 라우팅 테이블 200을 갱신한다(870)(예를 들어, 전송하는 단말기 TPX가 이전에 라우팅 테이블 200에 없었다면 그것은 추가된다). 그리하여 INACTIVE_PEER_ASSERT 메시지의 MAC 어드레스는 로컬 MAC 어드레스와 비교된다(즉, 현재 단말기 세트 100-X의 MAC 어드레스)(872).
상기 비교가 같다면, 이것은 현재의 단말기 세트 100-X가 비활성의 기간 후 에 활성 상태로 복귀하여 단말기 세트 100-X 대신에 INACTIVE_PEER_ASSERT 메시지를 전송하는 다른 단말기 세트로부터의 메시지를 방금 수신했다는 상황을 나타낸다. 이런 경우에, 단말기 세트는 DN_PROBE 상태로 변환한다(905).
반면에, 수신된 INACTIVE_PEER_ASSERT 메시지는 MAC 어드레스가 로컬 MAC 어드레스와 다르다면, 단말기 세트는 메시지를 기다리는 단계로 복귀하여 그 이상의 메시지를 기다린다(820).
메시지를 기다리는 상태일 때, 제 2 타이머가 만료되면 카운터가 N의 최대치에 도달했는지의 여부가 평가된다(880).
이러한 평가가 카운터의 값이 N을 초과하지 않았다면 이것은 N보다 더 작은 I_AM_HERE 메시지가 전송된 것을 나타낸다. 이 경우에, 랜덤 타이머와 제 2 타이머가 리세트 되고(814), 기다리는 상태(820)로 복귀하기 전에 카운터의 값이 증가된다(816).
반면에 카운터의 값이 N과 같다고 880이 평가되면, 이것은 N개의 I_AM_HERE 메시지가 전송됐다는 것을 나타낸다. 이 경우에, 단말기 세트 100-X의 상태 머신은 DN 프로브 상태로 변환된다(906).
도 7은 도 5의 DN 프로브 상태 900에서 단말기 세트 100-X의 활성을 예시한 흐름도이다. 도 7에 도시된 바와 같이, DN 프로브 상태 900로의 두 개의 진입점이 있다. 그 첫째 진입점은 초기 상태에서의 905이고, 현재 단말기 세트가 비활성 기간 후에 비휘발성 메모리로부터 그것의 DN을 재호출하는 상황을 나타낸다. 제 2 진입점은 역시 초기 상태 800에서의 906이고, 단말기 세트 100-X가 이전에 DN을 요구하지 않았던 상태를 나타낸다. 후자의 경우에, 단말기 세트는 910에서 예상되는 DN을 선택한다(전자의 경우에, 예상되는 DN은 재호출된 DN일 것이다).
예상되는 DN을 선택하기 위해(910), 단말기 세트 100-X는 라우팅 테이블 200의 단말기 세트 목록 내에 순서 위치를 결정한다(도 4). 예를 들어, 단말기 세트 100-X가 목록에서 첫째에 있다면, 선택된 장래 DN은 1(그것의 순서 위치) 플러스 기반 DN 즉 200하여 201의 장래 N이 된다. 단말기 세트와 관련된 고유한 순서 위치에서 예상되는 DN의 선택을 왜곡함으로써, 각 단말기 세트에 의한 고유한 장래 DN의 선택은, 여러 팩토리-플래쉬 단말기 세트가 동시에 이전에 할당된 DN을 갖는 단말기 세트가 아닌 네트워크에 접속하는 시나리오로 촉진된다.
단말기 세트 100-X가 설정된 네트워크에 접속된다면 일어나는 DN 충돌에 대해 보호하기 위해, 선택된 장래 DN이 이미 다른 단말기 세트에 할당될지를 결정하도록 910에서 단말기 세트 100-X가 역시 그의 라우팅 테이블 200에 상의한다. 장래 DN이 이미 할당되면, 예를 들어 1 같은 오프셋을 목록에 나타난 가장 큰 DN에 추가하여 새로 접속된 DN이 다른 예상되는 DN을 선택한다.
910 다음에(또는 진입점 905), 전송된 DN 프로브 메시지의 경우의 수를 세는 것이 목적인 카운터가 초기화되어(912) 증가된다(914). DN_PROBE 메시지의 인스턴스가 전송되고, DN_PROBE 메시지 사이의 시간(일정하거나 임의의) 간격을 세는 타이머가 설정된다(916). 다음에 단말기 세트 100-X는 이벤트를 기다리는 상태로 들어간다(920).
단말기 세트가 프로브 상태에서 역시 다른 단말기 세트와 동일한 DN을 선택하면, 단말기는 충돌이 일어난 네트워크 상에 프로브된 양쪽 장치의 MAC 어드레스를 볼 것이다. 일 실시예에서, 동일 DN을 갖는 단말기 세트 사이에 충돌이 있을 때, 가장 낮은 MAC 어드레스를 갖는 단말기 세트가 DN을 유지하고 다른 단말기 세트가 다른 DN을 얻어야 한다.
DN 프로브 상태 900로의 진입점(908)이 DN 주장 상태 700로부터 존재한다는 걸 알 것이다. 충돌이 단말기 세트 100-X에 의해 요구된 ,DN과 네트워크내에 하나 이상의 다른 단말기 세트에 의해 요구되거나 요구된 DN 사이에 발견되는 상황을 상기 진입점 908이 나타낸다. 그런 경우에, 위에서처럼 작동이 910에서 시작된다.
이벤트를 기다리는 상태로부터(920) 타이머가 종료되면, 필요한 수 M의 DN_PROBE 메시지가 이미 전송됐는지의 여부를 단말기 세트 100-X가 확인한다(980). M개의 DN_PROBE 메시지가 이미 보내졌다고 결정되면, 예상되는 DN이 비휘발성 메모리내 DN으로부터 재호출되었는지 여부를 다음에 결정한다(982). 982의 결정이 플러스로 되면, 상태 머신은 707을 통해 DN 주장 상태 700으로 변환된다. 그렇지 않으면 그것은 705를 통해 DN 주장 상태 700로 변환된다.
선택적으로, 980에서 M개의 DN_PROBE 메시지 보다 더 작게 전송된다고 결정되면, 작동은 914로 복귀한다.
이벤트를 기다리는 상태(920)에서, 메시지가 다른 단말기 세트로부터 수신될 때, 더욱이 작동이 수신된 메시지의 메시지 유형에 의존하고 이것은 단계 930에서 확인된다.
메시지 유형이 I_AM_HERE 메시지를 나타낸다면, 단말기 세트는 I_AM_HERE 메시지에 포함된 데이터를 라우팅 테이블 200에 추가하고 이벤트를 기다리는 상태(920)로 복귀전에 상기 데이터가 이미 출현하지 않는다.
메시지 유형이 PEER_ASSERT 메시지를 나타낸다면, 이 메시지로부터의 DN이 로컬 DN(즉, 선택된 예상되는 DN)과 비교된다(934). DN이 매칭되면, 이것은 단말기 세트 100-X가 임의로 선택된 DN을 다른 단말기 세트가 주장하는 상황을 나타낸다. 이런 경우에, 작동은 910으로 복귀한다. 반면에, DN이 매칭되지 않으면, 라우팅 테이블 200은 PEER_ASSERT 메시지에 포함된 데이터로 갱신되고, PEER_ASSERT 메시지를 보낸 단말기에 대한 입장이 이미 존재하거나 입장이 이미 존재하지 않으면, PEER_ASSERT 메시지에 포함된 메시지는 라우팅 테이블 200에 추가되어 엔트리를 만든다(932).
INACTIVE_PEER_ASSERT 메시지가 수신된 것을 메시지 유형이 나타내고, 엔트리가 이미 없으면 이 메시지에 포함된 데이터가 라우팅 테이블 200에 추가되고, 엔트리가 있으면 (940) 라우팅 테이블 200이 데이터로 갱신된다. 다음에 INACTIVE_PEER_ASSERT 메시지의 MAC 어드레스가 단말기 세트 100-X 의 MAC 어드레스와 비교된다(942).
MAC 어드레스가 상이하면, 단말기 세트 100-X는 이벤트를 기다리는 상태로 복귀한다(920).
선택적으로, MAC 어드레스가 동일하면, 이것은 현재의 단말기 세트 100-X가 비활성의 기간 후에 활성 상태로 복귀하여 단말기 세트 100-X 대신에 INACTIVE_PEER_ASSERT 메시지를 전송하는 다른 단말기 세트로부터의 메시지를 방금 수신했던 상황을 나타낸다. 이 경우에, INACTIVE_PEER_ASSERT 메시지의 DN과 현재 프로브되고 있는 DN(즉, 선택된 장래 DN) 사이에 비교가 이루어진다(944).
DN이 매칭되지 않으면, 이것은 INACTIVE_PEER_ASSERT 메시지에 명시된 DN과 다른 DN을 단말기 세트 100-X가 현재 프로브하고 있는 상황을 나타낸다. 단말기 세트 100-X가 비활성 상태에서 단말기 세트 100-X이 비휘발성 메모리에 저장된 존속하는 DN이 부패됐다면 상기 상황이 발생한다. 이런 경우에, 단말기 세트 100-X가 이전에 요구되었던 다른 DN을 프로브하지 못하도록, 선택된 장래 DN이 메시지로부터의 DN으로 리세트되고(946), 단말기 세트 100-X가 그의 이전에 요구된 DN을 프로브할 단계를 취하도록 작동이 912로 복귀한다.
또한, DN이 매칭으로 보인다면(944에서), 이것은 현재 INACTIVE_PEER_ASSERT 메시지에 명시된 것과 같은 DN을 단말기 세트 100-X가 프로브하고 있는 상황을 나타내고, 이것은 비활성으로 결정되기 전에 단말기 세트 100-X에 의해 이전에 요구된 DN을 나타낸다. 이런 경우에, 작동은 이벤트를 기다리는 상태로 복귀한다(920).
메시지 유형이 충돌 메시지가 수신되고 있는 것을 가르키면, 이것은 다른 단말기 세트가 프로브된 예상되는 DN에 반대하는 상황을 나타낸다. 이런 경우에, DN 충돌 메시지내의 DN과 현재 프로브되고 있는 DN 사이에 비교가 이루어진다.
DN이 매칭되지 않으면, DN_CONFLICT 메시지에 대해 더 이상의 액션이 취해지지 않아서, 작동은 이벤트를 기다리는 상태로 복귀한다(920). DN_CONFLICT 메시지가 멀티캐스트되는 경우에, 이것은 다른 단말기 세트에 취해진 DN_CONFLICT 메시지를 무시하는 것을 나타낸다. DN_CONFLICT 메시지가 유니캐스트인 경우에, 이것은 다른 단말기 세트로부터의 두 개의 DN_CONFLICT 메시지 중 둘째가 수신되어 무시되고 있는 것을 나타내는 데, 첫째 DN_CONFLICT 메시지가 수신되고, 현재의 단말기 세트가 더 일찍 프로브 했기보다 다른 DN의 프로브를 시작했기 때문이다.
양자택일적으로, DN이 950에서 매칭되면 이것은 현재의 단말기 세트 100-X에 의해 선택된 DN을 다른 단말기 세트가 반대하는 상황을 나타낸다. 이런 경우에 다른 장래 DN이 선택되어 프로브되도록 작동이 단계 910으로 복귀한다.
DN_PROBE 메시지가 수신된 것을 메시지 유형이 가르키면, 현재의 단말기 세트 100-X가 그의 선택된 장래 DN을 프로브하고 있는 것과 같은 방식으로 다른 단말기 세트가 선택된 장래 DN을 프로브하고 있다. 다른 단말기 세트의 장래 DN(들어오는 DN_PROBE 메시지에 표시)이 로컬로 선택된 장래 DN과 비교된다(960).
DN이 매칭되지 않으면 들어오는 DN_PROBE 메시지에 대해 더 이상의 액션이 취해지지 않고, 이벤트를 기다리는 상태로 작동이 복귀한다(920).
또한, DN이 960에서 매칭된다고 보이면, 이것은 다른 단말기 세트가 첫째의 단말기 세트 100-X와 동일한 DN을 프로브하고 있는 것을 의미한다. 이 경우에, 충돌이 장래 DN 사이에 존재한다. 본 실시예에서, 그러한 충돌은 각 단말기 세트의 고유한 MAC 어드레스를 토대로 해소된다. 특히, 가장 낮은 MAC 어드레스("가장 낮은 액티브 MAC" 또는 LAN)를 갖는 단말기 세트가 DN을 요구하도록 허용하고, 다른 단말기 세트는 다른 DN을 선택한다. 동일하게 명백한 충돌 해소 방안이 적용된다는 것을 이해할 것이다. 예를 들어, 가장 높은 액티브 MAC가 선택적인 실시예에서 DN 을 요구하도록 허용된다. 상기 방안이 각 단말기 세트에 견실하게 적용되는 한 선택된 방안의 세부 사항은 중요하지 않다.
따라서, 충돌 해소 방안에 따라, DN_PROBE 메시지 내의 MAC 어드레스는 로컬 MAC 어드레스와 비교된다(962). DN_PROBE 메시지내의 MAC 어드레스는 로컬 MAC 어드레스 보다 더 작으면, 다른 단말기 세트가 DN을 요구하도록 허용하고, 현재의 단말기 세트는 910으로 복귀하여 다른 장래 DN을 선택한다. 그렇지 않으면, 단말기 세트는 이베트를 기다리는 상태로의 복귀에 의해 DN_PROBE 메시지를 무시하고, 그것의 장래 DN을 효과적으로 유지한다.
도 8은 도 5에 도시된 DN 주장 상태에서의 단말기 세트 100-X의 작동을 예시한 흐름도이다. 이전에 기술하였듯이, 단말기 세트는 존속하는 DN 없이 DN 프로브 상태 900에서 이 상태로 변환한다(705). 이 경우에, 단말기 세트 100-X는 초기에 장래 DN이 DN 프로브 상태 900에서 방금 프로브하였다고 가정한다(710). 계속하여, 멀티캐스트 PEER_ASSERT 메시지가 네트워크 상에서 다른 단말기 세트로 전송된다(712).
또한, 단말기 세트는 존속 DN을 갖는 DN 프로브 상태(900)로부터 변환되고, 이런 경우 작동이 단계 712에서 시작된다.
단계 712를 따라, 타이머가 0~2초 사이의 임의의 시간 간격으로 설정된다(714). 다음에 단말기 세트 100-X는 수신된 메시지를 기다리거나 "메시지 기다리는" 상태로 타이머가 종료되기를 기다린다(720).
타이머가 종료되면, 작동이 712로 돌아가서 또 다른 멀티캐스트 PEER_ASSERT 메시지가 전송된다.
DN_CONFLICT 메시지가 수신되면, 단말기 세트는 DN_CONFLICT 메시지에 포함된 DN이 로컬 DN과 충돌했는지를 검증한다(732).
DN_CONFLICT 메시지에 포함된 DN이 위치상으로 요구된 DN과 매칭된다고 결정되면, 이것은 네트워크 상에서 이중의 DN에 따른 충돌을 표시한다. 이 경우에, 원격으로 충돌하는 단말기 세트가 활성인지의 여부가 평가된다(733).
단말기 세트가 활성으로 보이고, 현재 단말기 세트가 그것의 요구된 DN을 유지해야 하는 것을 충돌 해소 방안이 가르킨다면(734), 작동은 712로 복귀하여 단말기 세트가 다른 PEER_ASSERT 메시지를 즉시 전송하도록 한다.
반면에 현재의 단말기 세트가 그의 요구된 DN을 유지하지 않아야 한다고 734에서 결정되면, 라우팅 테이블 200(도 4)이 DN_CONFLICT 메시지의 데이터로 갱신된다(735). 상세하게, 충돌하는 DN을 갖는 단말기 세트는 그의 DN과 함께 라우팅 테이블 200에 추가된다. 라우팅 테이블에서 DN에 대한 장래 DN의 체크는 충돌을 나타낼 것이다.
이후, 충돌 알람이 비활성이 되고(736), 단말기 세트 100-X가 DN 프로브 상태 900로 변환한다(908). 충돌 알람은 DN 충돌을 나타내는 데, 이것은 본 발명의 실시예들에서 시스템 관리자에게 전송된다. 보통 충돌 알람은 시스템 관리자가 수동으로 DN을 기존 단말기 세트의 요구된 DN으로 리세트 하는 경우에만 울린다.
단계 733에서 원격 단말기 장치가 활성이 아니라고 결정되면, 현재 DN 충돌 알람이 비활성이 되고(736), 단말기 세트가 DN 프로브 상태 900로 변환된다(908).
다시, 메시지를 기다리는 상태 720에 대해, PEER_ASSERT 메시지가 수신되고, PEER_ASSERT 메시지의 DN이 라우팅 테이블 200에 하나 이상의 비활성 단말기 세트의 DN과 같다면, 이것은 현재의 단말기 세트 100-X가 비활성 단말기 세트를 대신하여 INACTIVE_PEER_ASSERT 메시지를 전송되도록 요청받는 상황을 나타낸다. 이러한 상황은 예를 들어 네트워크가 두 개의 서브-네트워크로 분리되는 경우에 일어난다. 하나의 서브-네트워크 상의 단말기 세트는 PEER_ASSERT 메시지를 전송하는 반면, 다른 서브-네트워크 상에 있는 그의 대행 세트는 그에 대신하여 비동작_PEER_ASSERT 메시지를 보낸다. 서브-네트워크을 재접속하면, 대행 세트는 여전히 비활성으로 여겨지는 단말기 세트로부터 PEER_ASSERT을 수신할 수 있다.
비활성 피어를 대신하여 INACTIVE_PEER_ASSERT 메시지를 전송하는 데 어떤 단말기 세트가 책임이 있는 지를 결정하도록 동작 방식을 토대로 비활성 단말기 세트를 대신하여 현재의 단말기 세트 100-X가 INACTIVE_PEER_ASSERT 메시지를 전송해야 하나의 결정이 이루어진다. 본 실시예에서, 동작 방식은 이러한 책임감이 주어진 비동작 피어당(per peer: 동일 단말기 세트가 여러 비활성 피어에 책임이 있음) 하나 및 오직 하나의 단말기 세트에 할당된다. 주어진 비활성 피어에 대해 비활성_피어-주장 메시지를 보낼 책임이 있는 오직 하나의 단말기 세트를 만드는 근본적인 이유는 이중 INACTIVE_PEER_ASSERT 메시지의 불필요한 전송을 피하는 것이다. 그러한 방식에 대해, 비활성 단말기 세트를 검출하는 데 필요한 시간보다 더 긴 지속 시간 동안 각 단말기 세트가 초기 상태 800(도 5) 내에 머물도록 하는 것이 바람직하다.
동작 방식은 아래 표 1에 예시된다.
단말 세트 | 상태 | 비활성 주장 전송? | 대신? |
A | 비활성 | - | - |
B | 활성 | 예 | B |
C | 비활성 | - | - |
D | 활성 | 아니오 | - |
E | 활성 | 예 | F, G |
F | 비활성 | - | - |
G | 비활성 | - | - |
H | 활성 | 예 | A |
표 1이 첫째 두 개의 칼럼은 도 4의 라우팅 테이블 200에 유지된 정보의 부속 세트로서, "대행" 피어의 결정에 관계된다(즉, 피어는 다른 비활성 피어를 대신하여 INACTIVE_PEER_ASSERT 메시지를 보낼 책임이 있음). 표 1의 네트워크 장치는 라우팅 테이블 200에서처럼 MAC 어드레스 같은 어떤 고유한 식별자로 분류되는 것으로 이해된다. 각각의 네트워크 장치의 활동 또는 비활동 상태는 표 1의 제 2 칼럼에 제공된다.
활성 방식에서, 액티브 네트워크 장치는 각 비활성 장비에 대해 대리로 작용하여 이것은 비활성 장비와 대리 사이에 표 1의 더 낮은 열에 있는 것을 추종한다. 예를 들어, 표 1에 도시된 바와 같이, 네트워크 장치 E는 네트워크 장치 F와 G에 대한 대리로 작용하는 데, 이는 이런 양쪽의 장비가 비활성이 되어 그들 사이에 장비 E를 따른다.
비활성 네트워크 장치가 분류된 목록 내에 제 1 액티브 네트워크 장치(예를 들어, 네트워크 장치 A의 경우에서처럼)를 선행하는 경우에, 분류된 목록 내에 마지막 액티브 장비(네트워크 장치 H)가 그의 대리로 작용한다.
대리를 할당하는 다른 방식이 다른 실시예에 적용된다는 것을 알 수 있을 것이다. 예를 들어, 양자택일의 방식이 라우팅 테이블에서 그것을 승계하기보다는 그것을 선행하는 비활성 장치에 대한 대행으로서 활성인 네트워크 장치를 할당한다. 다른 방식으로, 네트워크 장치는 표 내에 그에 근접한 모든 비활성 장비에 대해 대리로서 작용하고, 여기서 사용된 용어 "근접한"은 라우팅 테이블 내에 대리의 위 또는 아래에 여러 인접한 비활성 네트워크 장치를 포함한다. 후자의 방식에서, 각 비활성 네트워크 장치는 2개의 대리(대행)를 가질 것이다. 이러한 레벨의 용장성은 어떤 실시예에서는 바람직할 수 있다.
도 8로 되돌아가서, 단계 738을 따라서, 수신된 PEER_ASSERT 메시지에 포함된 DN이 국부적으로 요구된 DN에 매칭되는 지(740)를 단말기 세트 100-X가 입증한다. 그들이 매칭하면, 오퍼레이션은 이전에 설명했듯이 734로 진행한다. DNs가 매칭하지 않으면, 단말기 세트 100-X가 PEER_ASSERT 메시지내의 데이터를 라우팅 테이블에 부가하거나 그것을 사용하여 표에서 관련된 엔트리를 갱신하다(741).
다음에, 평가는 PEER_ASSERT 메시지에 포함된 DN이 현재의 단말기 세트 100-X를 대리로서 동작하게 하는 비활성 엔트리의 DN에 대응하는 지에 관해 이루어진다(742). 평가가 포지티브로 이루어지면, DN_CONFLICT 메시지는 다른 메시지를 대기하기 위해 단계 720으로 복귀하기 전에 DN(746)에서 상충을 표시하는 멀티캐스트 메시지로서 전송된다(746). 단계 742의 평가가 네가티브로 이루어지면, 단말기 세트 100-X가 다른 메시지를 대기하기 위해 즉시 720으로 복귀한다.
I_AM_HERE 메시지가 메시지 상태에서 대기하는(720) 동안 수신되면, 단말기 세트 100-X가 단말기 세트에 대응하는 라우팅 테이블(200)(도 4)의 엔트리를 부가 또는 갱신하고, 그 단말기 세트로부터 I_AM_HERE 메시지가 I_AM_HERE 메시지로부터 데이터로써 발생되고(750), 762로 진행한다(하기에서 설명됨).
DN_PROBE 메시지가 단계 720에서 수신되면, 단말기 세트는 DN_PROBE 메시지의 DN을 국부적으로 요구된 DN과 비교한다(760). 그들이 매칭하면, 그것은 다른 단말기 세트가 현재의 단말기 세트 100-X의 요구된 DN을 그 예측된 DN으로서 선택하는 상황을 나타낸다. 그 경우에, 오퍼레이션은 멀티캐스트 PEER_ASSERT 메시지를 즉시 송신하기 위해 단계 712로 복귀하여 시험적으로 선택된 DN이 이미 요구되는 나머지 단말기 세트에 효과적으로 통지한다.
DN이 매칭하지 않는다는 것을 760에서 비교하면, 단말기 세트 100-X는 라우팅 테이블을 참고하여 DN_PROBE 메시지에 포함된 DN가 비활성 단말기 세트의 DN에 대응하는 지를 결정한다(762). DN_PROBE 메시지에 포함된 DN가 비활성 단말기 세트에 대응하면, 비활성_주장 메시지가 단말기 세트에 전송되며, 그 단말기 세트로부터 DN_PROBE 메시지가 발생되고, 현재의 단말기 세트가 그 비활성 세트에 대해 대행으로 된다고 가정한다(상기 설명된 활성 방식을 사용해서). 그 후에, 오퍼레이션은 720으로 복귀하여 다른 메시지를 대기한다. 762에서 수행된 참고가 DN_PROBE 메시지의 발생자를 활성화하는 것으로 표시하면, 단말기 세트 100-X는 720으로 직접적으로 복귀하여 다른 메시지를 대기한다.
도 5의 상태 머신을 구현하는 복수의 단말기 세트가 네트워크에 접속되고 안정 상태(즉, DN 주장 상태(700))로 되기 위해 상기 설명된 오퍼레이션에 맞물릴 때, 각각은 자동 선택된 DN을 가질 것이고, 단말기 세트간의 어떤 DN 상충도 인간의 간섭없이 자동으로 해결되었다. 더구나, 각 단말기 세트는 그 단말기 세트의 DN의 다이얼시 단말기 세트로 하여금 어느 다른 단말기 세트를 호출하기에 충분한 다른 정보(예를 들어, IP 어드레스)로 쌍으로 된 네트워크 상에서 모든 다른 단말기의 DN을 포함하는 국부 라우팅 테이블(200)을 자동 생성할 것이다. 또한, 단말기 세트가 비활성으로 되면, 그것이 네트워크에 재접속될 때 그것의 DN이 저항할 것이다.
상기 실시예는 푸쉬(push) 시스템을 설명하고 그 시스템에서 네트워크 상의 단말기 세트가 데이터를 네트워크 상의 다른 단말기 세트에 송신하고 각 단말기 세트로 하여금 라우팅 테이블을 구축하게 한다. 라우팅 테이블이 PEER_ASSERT 메시지를 주기적인 간격으로 전송하는 단말기 세트에 의해 유지된다. 본 발명의 일부 실시예에서, 풀(pull) 시스템이 있는 데, 그 시스템에서 예를 들어 단말기 세트와 같은 네트워크 장치가 네트워크 상의 다른 네트워크 장치를 폴(poll: 송신 요구 조회)하여 라우팅 정보를 획득한다.
도 9에서, 분산 네트워크에서 피어 발견에 대한 방법이 본 발명에 따라 도시된다. 예를 들어 네트워크 상에서 사용가능하게 되는 네트워크 장치가 파워업될 때 스스로 및 네트워크 상의 다른 네트워크 장치에 대해 예를 들어 DN과 같은 라우팅 정보를 필요로 한다. 처음에, 네트워크에 있는 적어도 하나의 다른 네트워크 장치로부터 네트워크 장치가 그것을 라우팅 정보로 전송하는 것을 식별한다(1110). 본 발명의 일부 실시예에서, 메시지는 단계 1110에서 네트워크 상의 다른 네트워크 장치에 전송되고 단계 1110이 다른 네트워크 장치에 의해 라우팅 정보를 전송하게 하는 표시자를 요청한다. 그 표시자는 예를 들어 소인 또는 MAC 어드레스로 될 수 있다. 다른 네트워크 장치 각각은 그 각 표시자를 네트워크 장치에 전송하고 그 표시자의 수신시, 다른 네트워크 장치의 표시자를 결정하기 위해 표시자를 사용하는 네트워크 장치는 라우팅 정보를 보낸다. 예를 들어, 일부의 실시예에서 표시자는 소인이고 최근 소인을 갖는 네트워크 장치가 라우팅 정보를 전송하기 위해 선택된다.
다음에, 네트워크 장치는 라우팅 정보를 요청하는 라우팅 정보를 전송하는 다른 네트워크 장치에 메시지를 전송한다(1120). 그 요청을 수신하는 네트워크 장치는 다른 네트워크 장치에 대해 라우팅 정보를 포함하는 라우팅 테이블을 갖고 그 요청을 하는 네트워크 장치에 대해 라우팅 정보를 결정한다(1130). 특히, 본 발명의 일부 실시예에서, 그 요청을 하는 네트워크 장치에 대한 DN는 선택된다. 그 요청을 수신하는 네트워크 장치가 다른 네트워크 장치 및 그 요청을 하는 네트워크 장치에 대해 라우팅 정보를 보낸다(1140). 그 요청을 하는 네트워크 장치가 라우팅 정보를 수신하고 그 라우팅 정보를 저장한다(1150).
본 발명의 일부 실시예에서, 그 요청을 하는 네트워크 장치에 대해 라우팅 정보는 그 요청을 하는 네트워크 장치에 의해 단계(1150)에서 라우팅 정보의 수신시 결정된다. 또한, 본 발명의 일부 실시예에서 단계 1110는 하나 이상의 단계에서 수행된다. 제 1단계에서, 네트워크 장치는 네트워크 상에 어드레스를 폴하여 네트워크 장치가 네트워크에 있는 것을 결정한다. 제 2단계에서, 네트워크 장치는 메시지를 표시자를 요청하는 다른 네트워크 장치에 보낸다. 제 3단계에서, 다른 네트워크 장치로부터 표시자를 수신하는 것에 응답해서, 표시자를 사용해서 네트워크 장치는 다른 네트워크 장치가 라우팅 정보를 전송하는 것을 결정한다. 본 발명의 일부 실시예에서, 제 1 및 2단계는 표시자에 대한 요청이 폴되는 어드레스와 연관해서 이루어지는 하나의 단계로 결합된다.
도 10은 본 발명의 또 다른 실시예에 따라 분배된 네트워크에서 피어 발견에 대한 방법을 도시한다. 도 10의 실시예에서, 네트워크 장치는 라우팅 테이블을 유지하고 다른 네트워크 장치를 라우팅 테이블의 라우팅 정보로 갱신하기 위해 지정된다. 초기에, 네트워크 장치가 예를 들어, 파워-업에서 네트워크 상에 사용가능하게 되는 경우에, 네트워크 장치는 메시지를 네트워크 상의 다른 네트워크 장치로 보낸다(1210). 메시지 수신시, 라우팅 정보를 유지하기 위해 지정된 다른 네트워크 장치들중 하나가 다른 네트워크 장치에 대해 라우팅 정보를 검사하고 메시지를 수신하는 네트워크 장치에 대해 라우팅 정보를 결정한다(1220). 예를 들어, 메시지를 수신하는 네트워크 장치에 대한 DN이 다른 네트워크 장치에 대한 라우팅 정보의 일부로서 DN 검사로부터 결정된다. 그 지정된 네트워크 장치는 메시지가 다른 네트워크 장치 및 메시지를 발생시키는 네트워크 장치에 대해 라우팅 정보를 발생시키는 네트워크 장치에 보낸다. 그 지정된 네트워크 장치로부터 라우팅 정보의 수신시, 라우팅 정보가 저장된다(1240).
당업자는 알 수 있듯이, 상기 설명된 실시예에 대한 변형은 본 발명의 본질에서 벗어남이 없이 이루어질 수 있다. 예를 들어, 그 설명된 실시예가 단말기 세트인 피어를 설명하지만, 그 설명된 방법에서 다른 네트워크 장치 형태과 같은 단말기단말기 제외한 피어에 동등하게 적용가능하다는 것을 알 수 있다. 또한, 네트워크 장치는 LAN이 아닌 네트워크 형태로 상호접속될 수 있다. 또한, 그 설명이 디렉토리 번호의 선택, 프로브 및 주장을 설명하지만, 그 설명된 방법이 디렉토리 번호를 제외한 네트워크 어드레스에 동등하게 적용 가능하다는 것을 알 수 있다.
마지막으로, 위에 기재된 방법과 상태 머신이 각각의 네트워크 장치에 의해 또는 네트워크 장치로 구현되는 반면에, 그것들은 네트워크 장치에 대해 외부적으로 구현될 수 있지만 그럼에도 불구하고 여전히 상기 네트워크 장치(예를 들어, 주변장치에서)와 관련될 것이라는 것을 알 수 있을 것이다. 이런 경우에, 상기 방법과 상태 머신은 여전히 상기 네트워크 장치에 의해 또는 장치에서 실행된다고 여겨진다.
본 발명의 여러 수정과 변경이 상기 지침에 비추어 가능하다. 그러므로, 첨부된 특허 청구 범위 내에서 본 발명이 이해되어야 하고, 여기 상세하게 기술된 것 이상으로 실시된다.
Claims (90)
- 복수의 네트워크 피어들(peers) 중 하나의 네트워크 피어에서:존재 통지(existence notification)를 하나 이상의 다른 네트워크 피어들에 전송하는 단계로서, 상기 존재 통지는 고유한 네트워크 피어 식별자를 포함하는, 상기 존재 통지 전송 단계;네트워크에 현재 접속된 하나 이상의 다른 활성 네트워크 피어들로부터 하나 이상의 활성 피어 존재 통지들을 수신하는 단계;하나 이상의 활성 네트워크 피어들로부터, 상기 네트워크에 현재 접속되지 않지만 상기 네트워크에 이전에 접속된 하나 이상의 비활성 네트워크 피어들에 관한 하나 이상의 비활성 피어 존재 통지들을 수신하는 단계; 및상기 수신된 활성 및 비활성 존재 통지들에 기초하여, 상기 하나의 네트워크 피어에 대한 예상되는 네트워크 어드레스를 선택하는 단계를 포함하는, 방법.
- 제 1 항에 있어서,상기 선택 단계는 각각의 상기 고유한 네트워크 피어 식별자에 기초하고,상기 선택 단계는:상기 하나의 네트워크 피어의 고유한 식별자와 함께 상기 다른 네트워크 피어들의 각각의 상기 고유한 네트워크 피어 식별자를 분류하는 단계로서, 상기 분류로 인해 상기 복수의 네트워크 피어들의 목록이 분류되는, 상기 분류 단계;상기 분류된 목록 내에서 상기 하나의 네트워크 피어의 순서 위치(ordinal position)를 결정하는 단계; 및상기 순서 위치로부터, 상기 예상되는 네트워크 어드레스를 생성하는 단계를 포함하는, 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 제 1 항에 있어서,상기 예상되는 네트워크 어드레스와 상기 다른 네트워크 피어들 중 임의의 네트워크 피어에 의해 요구된 네트워크 어드레스 사이에 충돌(conflict)이 존재하는지를 결정하는 단계; 및충돌이 존재하면, 상기 예상되는 네트워크 어드레스가 상기 복수의 네트워크 피어들 중 오직 하나에 의해 요구되도록 상기 충돌을 해결하는 단계를 더 포함하는, 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 제 1 네트워크 피어, 제 2 네트워크 피어, 및 적어도 하나의 다른 네트워크 피어를 포함하는 네트워크에서, 상기 제 1 네트워크 피어의 네트워크 어드레스를 유지하는 방법에 있어서,상기 제 2 네트워크 피어에서:상기 제 1 네트워크 피어의 상기 네트워크 어드레스를 유지하는 단계; 및상기 제 1 네트워크 피어가 비활성이라고 결정할 때, 상기 제 1 네트워크 피어의 상기 네트워크 어드레스가 요구된 것을 상기 적어도 하나의 다른 네트워크 피어에 통지하는 단계를 포함하는, 네트워크 어드레스 유지 방법.
- 삭제
- 삭제
- 삭제
- 제 22 항에 있어서,상기 통지 단계는, 상기 제 2 네트워크 피어가 상기 통지 단계를 수행해야 하는 네트워크 피어인 것을 확인하는 것에 대해 조건부이고,상기 확인은, 상기 비활성 제 1 네트워크 피어에 대한 상기 통지 단계를 수행해야 하는 오직 하나의 네트워크 피어를 식별하고,상기 확인은, 네트워크 피어들의 분류된 목록을 생성하도록 현재 상기 네트워크 상에 출현하거나 이전에 상기 네트워크 상에 출현했던 복수의 네트워크 피어들을 그들의 고유한 식별자들에 의해 분류하고, 상기 비활성 제 1 네트워크 피어가 상기 분류된 목록 내의 상기 제 2 네트워크 피어를 따른다는 것을 확인하는 단계를 포함하고, 상기 목록에서 상기 제 1 및 제 2 네트워크 피어들 사이에 어떠한 활성 네트워크 피어도 개재되지 않는, 네트워크 어드레스 유지 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 네트워크 내의 하나 이상의 다른 네트워크들 피어들과 함께 이용하기 위한 네트워크 피어에 있어서, 상기 네트워크 피어 및 상기 다른 네트워크 피어들이 복수의 네트워크 피어들을 형성하고, 상기 네트워크 피어는:고유한 네트워크 피어 식별자를 포함하는 존재 통지를 하나 이상의 다른 네트워크 피어들에 전송하고;상기 다른 네트워크 피어들로부터 하나 이상의 활성 피어 존재 통지들을 수신하고,상기 네트워크에 현재 접속된 하나 이상의 네트워크 피어들로부터, 상기 네트워크에 현재 접속되지 않지만 상기 네트워크에 이전에 접속된 하나 이상의 네트워크 피어들에 관한 하나 이상의 비활성 피어 존재 통지들을 수신하는 단계; 및상기 수신된 활성 및 비활성 존재 통지들에 기초하여, 상기 네트워크 피어에 대한 예상되는 네트워크 어드레스를 선택하도록 구성된, 네트워크 피어.
- 제 32 항에 있어서,상기 선택은 각각의 상기 고유한 네트워크 피어 식별자에 기초하고,상기 선택은:상기 네트워크 피어의 고유한 식별자와 함께 상기 다른 네트워크 피어들의 각각의 상기 고유한 네트워크 피어 식별자를 분류하고, 상기 분류로 인해 상기 복수의 네트워크 피어들의 목록이 분류되고;상기 분류된 목록 내에서 상기 네트워크 피어의 순서 위치를 결정하고;상기 순서 위치로부터, 상기 예상되는 네트워크 어드레스를 생성하는, 네트워크 피어.
- 삭제
- 삭제
- 삭제
- 제 33 항에 있어서, 상기 생성은, 상기 순서 위치와 연관된 오프셋을 베이스 어드레스에 추가하는, 네트워크 피어.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 비활성 네트워크 피어와 적어도 하나의 다른 네트워크 피어를 포함하는 네트워크에 대한 접속을 위한 네트워크 피어에 있어서:상기 비활성 네트워크 피어의 네트워크 어드레스를 유지하고;상기 비활성 네트워크 피어가 비활성이라고 결정할 때, 상기 비활성 네트워크 피어의 상기 네트워크 어드레스가 요구된 것을 상기 적어도 하나의 다른 네트워크 피어에 통지하도록 구성된, 네트워크 피어.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 복수의 네트워크 피어들 중 하나의 네트워크 피어에서,고유한 네트워크 피어 식별자를 포함하는 존재 통지를 하나 이상의 다른 네트워크 피어들에 전송하는 단계;네트워크에 현재 접속된 하나 이상의 다른 활성 네트워크 피어들로부터 하나 이상의 활성 피어 존재 통지들을 수신하는 단계;하나 이상의 활성 네트워크 피어들로부터, 상기 네트워크에 현재 접속되지 않지만 상기 네트워크에 이전에 접속된 하나 이상의 비활성 네트워크 피어들에 관한 하나 이상의 비활성 피어 존재 통지들을 수신하는 단계; 및상기 수신된 존재 통지들에 기초하여 상기 하나의 네트워크 피어에 대한 예상되는 네트워크 어드레스를 선택하는 단계를 컴퓨터에 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US51864603P | 2003-11-12 | 2003-11-12 | |
US60/518,646 | 2003-11-12 | ||
PCT/CA2004/001957 WO2005048531A1 (en) | 2003-11-12 | 2004-11-12 | Peer discovery |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060135652A KR20060135652A (ko) | 2006-12-29 |
KR101129507B1 true KR101129507B1 (ko) | 2012-07-05 |
Family
ID=34590286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067011530A KR101129507B1 (ko) | 2003-11-12 | 2004-11-12 | 피어 발견 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7577150B2 (ko) |
EP (1) | EP1690368B1 (ko) |
JP (1) | JP5078357B2 (ko) |
KR (1) | KR101129507B1 (ko) |
CN (1) | CN1898904A (ko) |
CA (1) | CA2544014C (ko) |
WO (1) | WO2005048531A1 (ko) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7660297B2 (en) | 2002-06-13 | 2010-02-09 | Nice Systems Ltd. | Voice over IP forwarding |
KR100940814B1 (ko) * | 2003-10-11 | 2010-02-05 | 엘지전자 주식회사 | 네트워크 자동 설정 방법 |
DE112004002233B4 (de) * | 2003-11-19 | 2018-07-12 | Nimcat Networks Inc. | Zeit- und Datensynchronisation zwischen Netzwerkeinrichtungen |
US7792064B2 (en) * | 2003-11-19 | 2010-09-07 | Lg Electronics Inc. | Video-conferencing system using mobile terminal device and method for implementing the same |
US7342895B2 (en) * | 2004-01-30 | 2008-03-11 | Mark Serpa | Method and system for peer-to-peer wireless communication over unlicensed communication spectrum |
EP1729477B1 (de) * | 2005-05-30 | 2011-08-03 | Siemens Enterprise Communications GmbH & Co. KG | Verfahren zum Aufbauen einer Verbindung über eine Kommunikationseinrichtung zu einer Endeinrichtung, sowie Endeinrichtung und Kommunikationseinrichtung zur Durchführung des Verfahrens |
CN101223761A (zh) * | 2005-07-15 | 2008-07-16 | 松下电器产业株式会社 | 链路管理系统 |
US20070086434A1 (en) * | 2005-10-19 | 2007-04-19 | Muthaiah Venkatachalam | Efficient mechanisms for supporting VoIp in a wireless network |
CN100446567C (zh) * | 2005-10-25 | 2008-12-24 | 北京影立驰技术有限公司 | 在信息家电中实现p2p流播放的装置和方法 |
US7623472B2 (en) * | 2005-11-14 | 2009-11-24 | Lsi Corporation | Dynamic peer application discovery |
WO2007061946A2 (en) | 2005-11-18 | 2007-05-31 | Lu Larry L | Promoting interoperability of presence-based systems through the use of ubiquitous online identities |
CA2635965A1 (en) * | 2006-01-08 | 2007-07-19 | Aksys Networks Inc. | Server-less telephone system and methods of operation |
EP1985142B1 (en) * | 2006-01-11 | 2011-09-28 | QUALCOMM Incorporated | Communications method and apparatus for transmitting priority information via beacon signals |
US8811369B2 (en) | 2006-01-11 | 2014-08-19 | Qualcomm Incorporated | Methods and apparatus for supporting multiple communications modes of operation |
US8468131B2 (en) * | 2006-06-29 | 2013-06-18 | Avaya Canada Corp. | Connecting devices in a peer-to-peer network with a service provider |
CA2657094C (en) * | 2006-07-07 | 2018-05-01 | Fringland Ltd. | Identifying network entities in a peer-to-peer network |
US7898983B2 (en) * | 2007-07-05 | 2011-03-01 | Qualcomm Incorporated | Methods and apparatus supporting traffic signaling in peer to peer communications |
US8385317B2 (en) * | 2007-07-06 | 2013-02-26 | Qualcomm Incorporated | Methods and apparatus supporting multiple timing synchronizations corresponding to different communications peers |
US8601156B2 (en) * | 2007-07-06 | 2013-12-03 | Qualcomm Incorporated | Methods and apparatus related to peer discovery and/or paging in peer to peer wireless communications |
US8599823B2 (en) * | 2007-07-06 | 2013-12-03 | Qualcomm Incorporated | Communications methods and apparatus related to synchronization with respect to a peer to peer timing structure |
US8385316B2 (en) * | 2007-07-06 | 2013-02-26 | Qualcomm Incorporated | Methods and apparatus related to peer to peer communications timing structure |
US8340044B2 (en) * | 2007-07-10 | 2012-12-25 | Qualcomm Incorporated | Apparatus and method of generating and maintaining orthogonal connection identifications (CIDs) for wireless networks |
US8134931B2 (en) * | 2007-07-10 | 2012-03-13 | Qualcomm Incorporated | Apparatus and method of generating and maintaining orthogonal connection identifications (CIDs) for wireless networks |
US8570972B2 (en) * | 2007-07-10 | 2013-10-29 | Qualcomm Incorporated | Apparatus and method of generating and maintaining orthogonal connection identifications (CIDs) for wireless networks |
US8494007B2 (en) * | 2007-07-10 | 2013-07-23 | Qualcomm Incorporated | Coding methods of communicating identifiers in peer discovery in a peer-to-peer network |
DE102007043652A1 (de) * | 2007-09-13 | 2009-04-02 | Siemens Ag | Verfahren zum Betrieb eines dezentralen Kommunikationsnetzes |
US7986698B2 (en) | 2008-03-13 | 2011-07-26 | Qualcomm Incorporated | Methods and apparatus for using connection identifiers having different priorities at different times |
US8526442B2 (en) * | 2008-03-13 | 2013-09-03 | Qualcomm Incorporated | Methods and apparatus for using multiple connection identifiers based on traffic requirements |
US9084231B2 (en) * | 2008-03-13 | 2015-07-14 | Qualcomm Incorporated | Methods and apparatus for acquiring and using multiple connection identifiers |
US8595501B2 (en) | 2008-05-09 | 2013-11-26 | Qualcomm Incorporated | Network helper for authentication between a token and verifiers |
US8520502B2 (en) * | 2008-06-02 | 2013-08-27 | Qualcomm Incorporated | Systems and methods for managing RRC connections in wireless communications |
US8078111B2 (en) * | 2008-07-29 | 2011-12-13 | Qualcomm Incorporated | Methods and apparatus for using multiple frequency bands for communication |
US20100185769A1 (en) * | 2009-01-16 | 2010-07-22 | Amlogic Co., Ltd. | Methods for Downloading a File to Consumer Electronic Devices via a Peer-to-peer Network |
US8224900B2 (en) * | 2009-02-09 | 2012-07-17 | Novell, Inc. | Network-aware communications |
US9247411B2 (en) * | 2009-12-23 | 2016-01-26 | Qualcomm Incorporated | Methods and apparatus for supporting multi-hop peer discovery in peer-to-peer wireless networks |
JP6505963B2 (ja) * | 2012-12-28 | 2019-04-24 | 任天堂株式会社 | 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法 |
US8806524B1 (en) * | 2013-01-29 | 2014-08-12 | Telefonaktiebolaget L M Ericsson (Publ) | Restricting use of a direct-to-home digital broadcast satellite signal |
CN105187948B (zh) * | 2015-09-16 | 2019-01-15 | 上海联彤网络通讯技术有限公司 | 实现机顶盒与终端网络安全推送的系统及方法 |
US10499264B1 (en) * | 2018-05-25 | 2019-12-03 | Wirepas Oy | Role selection method in wireless communication networks |
CN114531446B (zh) * | 2020-10-31 | 2023-04-18 | 华为技术有限公司 | 一种基于p2p的数据分发方法、装置及系统 |
US11595470B1 (en) * | 2021-09-17 | 2023-02-28 | Vmware, Inc. | Resolving L2 mapping conflicts without reporter synchronization |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0993163A1 (en) | 1998-10-05 | 2000-04-12 | Backweb Technologies Ltd. | Distributed client-based data caching system and method |
EP1229443A2 (en) | 2001-01-22 | 2002-08-07 | Sun Microsystems, Inc. | Advertisements for peer-to-peer computing resources |
EP1253766A2 (en) * | 2001-04-24 | 2002-10-30 | Sun Microsystems, Inc. | Peer group name server |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60206241A (ja) * | 1984-03-30 | 1985-10-17 | Hitachi Ltd | デ−タ伝送装置 |
JPH0730560A (ja) * | 1993-07-07 | 1995-01-31 | Fuji Xerox Co Ltd | Lan端末 |
JP3462626B2 (ja) * | 1995-06-19 | 2003-11-05 | シャープ株式会社 | アドレス割当て方法およびそれを用いる無線端末装置およびそれを用いる無線ネットワーク |
JPH10173653A (ja) * | 1996-12-11 | 1998-06-26 | Sharp Corp | 通信方式および通信装置 |
US5922074A (en) * | 1997-02-28 | 1999-07-13 | Xcert Software, Inc. | Method of and apparatus for providing secure distributed directory services and public key infrastructure |
CA2217277A1 (en) * | 1997-10-03 | 1999-04-03 | Newbridge Networks Corporation | Automatic link establishment for distributed servers in atm networks |
US6532217B1 (en) * | 1998-06-29 | 2003-03-11 | Ip Dynamics, Inc. | System for automatically determining a network address |
US6775273B1 (en) * | 1999-12-30 | 2004-08-10 | At&T Corp. | Simplified IP service control |
WO2001075652A2 (en) | 2000-03-31 | 2001-10-11 | Centerspan Communications Corp. | Media exchange system and process |
JP3718621B2 (ja) * | 2000-06-23 | 2005-11-24 | 株式会社ルートレック・ネットワークス | インターネットアドレス決定方法及び装置 |
JP2002016622A (ja) * | 2000-06-29 | 2002-01-18 | Mitsubishi Electric Corp | ネットワーク管理方式 |
JP2002190816A (ja) * | 2000-12-20 | 2002-07-05 | Nec Corp | 無線通信システム |
US7065587B2 (en) * | 2001-04-02 | 2006-06-20 | Microsoft Corporation | Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith |
JP2002315029A (ja) * | 2001-04-09 | 2002-10-25 | Nec Eng Ltd | Lan接続式ボタン電話システム |
JP4365551B2 (ja) * | 2001-11-13 | 2009-11-18 | 沖電気工業株式会社 | 構内交換装置への収容登録方法および構内交換システム |
US20030193967A1 (en) * | 2001-12-31 | 2003-10-16 | Gregg Fenton | Method, apparatus and system for processing multimedia messages |
JP3780259B2 (ja) * | 2002-01-22 | 2006-05-31 | キヤノン株式会社 | ネットワークに接続される装置、アドレス決定プログラム及びアドレス決定方法 |
JP3952786B2 (ja) * | 2002-01-23 | 2007-08-01 | 日本電気株式会社 | 通信システム及びそれに用いる新規参加の通信装置検出方法 |
US20040006586A1 (en) * | 2002-04-23 | 2004-01-08 | Secure Resolutions, Inc. | Distributed server software distribution |
US20030204602A1 (en) * | 2002-04-26 | 2003-10-30 | Hudson Michael D. | Mediated multi-source peer content delivery network architecture |
US8204992B2 (en) * | 2002-09-26 | 2012-06-19 | Oracle America, Inc. | Presence detection using distributed indexes in peer-to-peer networks |
US7206934B2 (en) * | 2002-09-26 | 2007-04-17 | Sun Microsystems, Inc. | Distributed indexing of identity information in a peer-to-peer network |
US20040258074A1 (en) * | 2003-06-20 | 2004-12-23 | Williams Aidan Michael | Method and apparatus for allocating addresses in integrated zero-configured and manually configured networks |
-
2004
- 2004-11-12 WO PCT/CA2004/001957 patent/WO2005048531A1/en active Application Filing
- 2004-11-12 KR KR1020067011530A patent/KR101129507B1/ko active IP Right Grant
- 2004-11-12 CA CA2544014A patent/CA2544014C/en active Active
- 2004-11-12 CN CNA2004800383658A patent/CN1898904A/zh active Pending
- 2004-11-12 JP JP2006538621A patent/JP5078357B2/ja not_active Expired - Fee Related
- 2004-11-12 US US10/986,297 patent/US7577150B2/en active Active
- 2004-11-12 EP EP04797209.6A patent/EP1690368B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0993163A1 (en) | 1998-10-05 | 2000-04-12 | Backweb Technologies Ltd. | Distributed client-based data caching system and method |
EP1229443A2 (en) | 2001-01-22 | 2002-08-07 | Sun Microsystems, Inc. | Advertisements for peer-to-peer computing resources |
EP1253766A2 (en) * | 2001-04-24 | 2002-10-30 | Sun Microsystems, Inc. | Peer group name server |
Also Published As
Publication number | Publication date |
---|---|
JP5078357B2 (ja) | 2012-11-21 |
JP2007511144A (ja) | 2007-04-26 |
CA2544014A1 (en) | 2005-05-26 |
CN1898904A (zh) | 2007-01-17 |
WO2005048531A1 (en) | 2005-05-26 |
EP1690368A4 (en) | 2011-08-31 |
EP1690368A1 (en) | 2006-08-16 |
WO2005048531B1 (en) | 2005-07-14 |
EP1690368B1 (en) | 2014-07-02 |
US20050117525A1 (en) | 2005-06-02 |
US7577150B2 (en) | 2009-08-18 |
KR20060135652A (ko) | 2006-12-29 |
CA2544014C (en) | 2015-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101129507B1 (ko) | 피어 발견 | |
EP1582051B1 (en) | Voice mail system for packet switched networks | |
US7796520B2 (en) | System and methods for announcing and locating services in a distributed peer-to-peer network | |
KR101130096B1 (ko) | 네트워크 디바이스들의 백업 | |
EP1757076A2 (en) | Enhanced call pickup | |
US7940781B2 (en) | Paging between network devices | |
CA2581199C (en) | System and methods for announcing and locating services in a distributed peer-to-peer network | |
EP2724521B1 (en) | Control of telecommunications system | |
JP2011097469A (ja) | 電話システムとその交換装置 | |
US20060067327A1 (en) | Information distribution system, method and network devices | |
JP7436952B2 (ja) | 電話システムおよび電話制御装置 | |
JP5311479B2 (ja) | Sip対応交換装置、及びこれを用いたsip対応交換システム | |
JP4230797B2 (ja) | 交換ネットワークシステム及びその電話交換装置 | |
JP2009089282A (ja) | 無線lan通信システム、コントローラ装置、無線lan基地局及びそれらに用いる無線lan通信方法 | |
JP2006140876A (ja) | Ip電話システム | |
EP1794929A1 (en) | Information distribution system, method and network devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
N231 | Notification of change of applicant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150226 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160222 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170309 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180308 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20200305 Year of fee payment: 9 |