KR20100066526A - 자동 서비스 발견 및 동적 접속 관리 - Google Patents

자동 서비스 발견 및 동적 접속 관리 Download PDF

Info

Publication number
KR20100066526A
KR20100066526A KR1020107006865A KR20107006865A KR20100066526A KR 20100066526 A KR20100066526 A KR 20100066526A KR 1020107006865 A KR1020107006865 A KR 1020107006865A KR 20107006865 A KR20107006865 A KR 20107006865A KR 20100066526 A KR20100066526 A KR 20100066526A
Authority
KR
South Korea
Prior art keywords
service
services
network
connection management
message
Prior art date
Application number
KR1020107006865A
Other languages
English (en)
Other versions
KR101488833B1 (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 KR20100066526A publication Critical patent/KR20100066526A/ko
Application granted granted Critical
Publication of KR101488833B1 publication Critical patent/KR101488833B1/ko

Links

Images

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]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users

Abstract

일부 실시예들에서, 장치는 적어도 하나의 서비스를 수행하기 위한 장치 기능 회로; 및 장치와 네트워크 사이의 상호작용을 제어하기 위한 네트워크 인터페이스 제어 회로를 포함한다. 네트워크 인터페이스 제어 회로는, (1) 장치가 수행할 수 있는 서비스들을 장치 밖의 다른 장치들에게 알리기 위하여 장치 밖으로 송신될 존재 발표 메시지를 전송하고, (2) 다른 장치들이 어떤 서비스들을 수행할 수 있는지를 알기 위하여 장치 밖의 다른 장치들로부터 존재 발표 메시지들을 수신하기 위한 서비스 발견 모듈을 포함한다. 일부 실시예들에서, 네트워크 인터페이스 제어 회로는 동적 접속 관리 모듈을 포함한다. 다른 실시예들이 설명되고 청구된다.

Description

자동 서비스 발견 및 동적 접속 관리{AUTOMATED SERVICE DISCOVERY AND DYNAMIC CONNECTION MANAGEMENT}
본 실시예들은 일반적으로 네트워크에 관한 것이다. 구체적으로, 일부 실시예들은 서비스 네트워크에서의 자동 서비스 발견 및 동적 접속 관리에 관한 것이다.
LAN(local area network)은 가정 또는 소기업에서와 같이 비교적 적은 수의 장치들이 서로 네트워킹되어 있는 네트워크이다. LAN은 인터넷을 포함하는 더 넓은 네트워크에 접속할 수 있다. 지역 서비스 네트워크는, 다양한 사용자 레벨 서비스들이 네트워크 서비스들 관리에 대한 요구 없이 그들의 존재를 광고하고 통신을 설정하기를 원하는 상호접속 네트워크이다. 네트워크 관리 서비스들의 예는 동적 IP(Internet Protocol) 어드레스들을 네트워크 상의 장치들에 할당하는 데 사용되는 DHCP(Dynamic Host Configuration Protocol); 도메인 이름들을 IP 어드레스들로 변환하는 데 사용되는 DNS(Domain Name System); 및 네트워크 상의 장치들의 접속 및 공유를 간략화하기 위한 선 마이크로시스템즈 사의 소프트웨어인 지니(Jini)를 포함한다. 서비스들이 단일 칩 솔루션과 같은 낮은 비용, 낮은 자원의 장치들의 형태로 전달되는 것을 가능하게 하기 위하여 경량 프로토콜이 요구된다.
제로 구성 네트워킹(ZeroConf)(ETF(Internet Engineering Task Force) RFC(Request for Comment) 3927)은 구성 및 특수 서버들 없이 사용 가능한 IP 네트워크를 자동으로 생성하기 위한 기술들을 포함한다. 멀티캐스트 DNS(mDNS)는 어느 네트워크 아이템들이 특정 이름을 갖는지를 식별하는 데 사용되는 프로토콜이다. mDNS 기반 LAN 상의 장치들은 DNS 레코드들의 리스트를 저장한다. mDNS 클라이언트가 이름이 주어진 장치의 IP 어드레스를 알고 싶어하는 경우, 대응하는 레코드를 갖는 장치가 그의 IP 어드레스로 응답한다. DNS-SD(DNS based Service Discovery)는 DNS의 최상부에 구축된다. 멀티캐스트 DNS 및 DNS-SD는 애플 사의 것으로 여겨진다. 또한, 마이크로소프트 사의 LLNMR(Link Local Multicast Name Resolution)은 어느 네트워킹된 아이템이 특정 이름을 갖는지를 식별하는 데 사용된다. MAC(Media Access Control) 어드레스는 네트워크의 각각의 노드를 고유하게 식별하는 하드웨어 어드레스이다. 예컨대, 이더넷 네트워크에서, 각각의 장치는 전역적으로 고유한 48 비트 전역 MAC 어드레스를 갖는다. 멀티캐스팅은 메시지를 네트워크 상의 다수의 (또는 모든) 장치로 전송하는 것을 말하는데, 이는 메시지가 통상적으로 메시지를 수신하는 모든 장치에 대해 의도되지 않는 환경들을 포함한다. 인터넷 멀티캐스트는 인터넷을 이용하는 유사한 활동을 지칭한다. TCP(Transmission Control Protocol) 또는 TCP/IP 및 UDP(User Datagram Protocol) 또는 UDP/IP는 인터넷을 포함하는 네트워크들에서 사용되어 온 프로토콜들이다.
네트워크들에서는 때때로 암호화가 사용되며, 많은 상이한 암호화 포맷들 및 프로세스들이 네트워크에서 사용될 수 있다. 일부 종래 기술들은 활성 접속(예를 들어, SSL(security sockets layer))에 기초하며, 접속 레코드에 암호 상태를 첨부한다.
서비스들은 의지대로 또는 예상외로 네트워크에 가입하고 탈퇴할 수 있으며, 따라서 다른 서비스들은 새로운 또는 도달할 수 없는 서비스들을 빨리 아는 것이 바람직하다. 게다가, 서비스들은 활성 통신 동안에 상이한 네트워크 어드레스들을 할당받을 수 있으며, 따라서 동적 접속 관리 기술이 요구된다. 낮은 자원의 환경에서는, 접속 레코드들 자체가 부족한 자원들이며, 따라서 네트워크 전체에서 동시에 개설될 수 있는 것보다 더 활성적인 접속들을 지원하는 수단을 제공하는 것이 유용하다. 또한, 암호화는 서비스들 사이의 통신에 이용될 수 있으며, 이는 서비스들 사이의 접속들의 관리에 추가적인 복잡성을 더한다.
서비스들은 간헐적으로 활성적이거나, 네트워크에 부속될 수 있지만, 이들은 영구적인 상태, 예컨대 다른 서비스들을 명명하는 한 세트의 프레퍼런스(preference)들을 유지할 수 있다. 서비스들은 네트워크 어드레스가 변경되는 장치 상에서, 아마도 네트워크에 활성적으로 부속되는 동안에, 예를 들어 IP 어드레스 재할당을 통해 활성화될 수 있다. 이러한 이유들로 인해, 서비스들은 서비스가 네트워크 상에 존재할 때 서비스를 구별하기 위해 전역적으로 고유하고 비휘발성인 식별자를 사용한다. 식별자들을 할당하기 위한 다양한 기술들이 가능하다. 예를 들어, 서비스 식별자 할당 당국이 식별자들을 전역적으로 관리할 수 있다. 기존의 전역적으로 고유한 식별자(예를 들어, 이더넷 MAC 어드레스)를 레버리징(leveraging)하고, 이를 지역적 비휘발성 시퀀스 번호와 솔팅(salting)하는 것은 또 하나의 가능성을 나타낸다.
일부 실시예들에서, 장치는 적어도 하나의 서비스를 수행하기 위한 장치 기능 회로; 및 장치와 네트워크 사이의 상호작용을 제어하기 위한 네트워크 인터페이스 제어 회로를 포함한다. 네트워크 인터페이스 제어 회로는, (1) 장치가 수행할 수 있는 서비스들을 장치 밖의 다른 장치들에게 알리기 위하여 장치 밖으로 송신될 존재 발표 메시지를 전송하고, (2) 다른 장치들이 어떤 서비스들을 수행할 수 있는지를 알기 위하여 장치 밖의 다른 장치들로부터 존재 발표 메시지들을 수신하기 위한 서비스 발견 모듈을 포함한다.
일부 실시예들에서, 네트워크 인터페이스 제어 회로는 동적 접속 관리 모듈을 포함한다.
다른 실시예들이 설명되고 청구된다.
본 발명의 실시예들은 실시예들을 설명하는 데 사용되는 아래의 설명 및 첨부 도면들을 참조함으로써 이해될 수 있다. 그러나, 본 발명의 실시예들은 이러한 도면들의 상세들로 한정되지 않는다.
도 1은 일부 실시예들에 따른 네트워크에 부속된 장치들의 블록도이다.
도 2는 일부 실시예들에 따른 네트워크에 부속된 장치들의 블록도이다.
도 3은 일부 실시예들에 따른 네트워크 장치의 상세들의 블록도이다.
도 4는 일부 실시예들에 따른 네트워크 장치의 상세들의 블록도이다.
도 5는 일부 실시예들에 따른 네트워크 장치의 상세들의 블록도이다.
도 6은 일부 실시예들에 따른 서비스 발견 모듈 및 동적 접속 관리 모듈의 상세들의 블록도이다.
도 7은 일부 실시예들에 따른 서비스 발견 모듈 및 동적 접속 관리 모듈의 상세들의 블록도이다.
도 8은 일부 실시예들에 따른 존재 발표 메시지의 도면이다.
도 1은 컨덕터들(24-1, 24-2, 24-3, 24-4)을 통해 네트워크 기반 구조(30)에 결합된 장치들(D1, D2, D3, D4)을 포함하는 네트워크(10)를 나타낸다. 일례로, 네트워크 기반 구조(30)는 이더넷 기반 네트워크일 수 있지만, 이더넷 기반 네트워크 대신에 또는 그에 더하여 다른 타입의 네트워크들이 이용될 수 있다. 장치들(D1-D4)은 네트워크에 접속되는 한, 네트워크의 일부로서 간주되지만, 물리적으로 또는 동작적으로 제거될 때, 장치들은 더 이상 네트워크의 일부가 아니다. 실제로, 네트워크 상에는 4개보다 많거나 적은 장치들이 존재할 수도 있다. 장치들(D1-D4)은 비디오 신호들의 제공, 비디오의 표시 및 인쇄를 포함하는 다양한 서비스를 수행할 수 있다. 장치들(D1, D2, D3, D4)은 각각 네트워크 인터페이스 제어 회로(20-1, 20-2, 20-3, 20-4)를 포함한다. 일례로서, 네트워크(30)는 홈 엔터테인먼트 네트워크일 수 있으며, 인터넷에 대한 액세스를 포함할 수 있다. 장치들(D1, D2, D3, D4) 중 일부 또는 전부는 텔레비전, DVD 플레이어, 셋톱 박스, 컴퓨터, 비디오 게임 시스템 등과 같은 엔터테인먼트 장치들일 수 있다. 장치들 중 일부는 프린터와 같은 더 제한된 장치들일 수 있다. 시스템(30)은, 장치들(D1-D4) 중 적어도 일부가 서비스들을 포함하고, 장치들 중 적어도 일부가 네트워크 상에서 그들의 존재를 광고하고 통신을 설정하기를 원한다는 점에서 서비스 네트워크일 수 있다. 네트워크 인터페이스 제어 회로(20-1, 20-2, 20-3, 20-4)는 각각의 장치에 대해 동일할 수 있거나, 네트워크 인터페이스 제어 회로 중 하나 이상은 약간 다를 수 있다. 예를 들어, 프린터용 네트워크 인터페이스 제어 회로는 텔레비전용 네트워크 인터페이스 제어 회로보다 적은 능력을 가질 수 있다.
일부 실시예들에서, 장치들은 하나 이상의 에이전트를 포함할 수 있다. 일부 환경들에서, 에이전트들과 에이전트들이 관리하는 하드웨어 자원들 사이에는 일대일 관계가 존재할 수 있다. 예를 들어, 단일 에이전트가 단일 브로드캐스트 튜너 장치를 관리하고 단일 활성 세션을 지원할 수 있다. 그러나, 일부 실시예들에서는 다른 자원들이 다수의 활성 세션을 지원할 수 있다. 예를 들어, 비디오 서버는 여러 활성 스트림들이 단일 디스크로부터 서비스되는 것을 가능하게 할 수 있다. 일부 실시예들에서는, 다수의 에이전트가 단일 매체 저장소에 대한 액세스를 제공함에 있어서 동일한 서비스를 제공한다. 이러한 에이전트들은 기능 및 거동에 있어서 등가이고, 동일 자원들에 대해 경쟁하고, 동일 콘텐츠에 대한 액세스를 가지며, 그러한 교체 가능한 에이전트들의 집합은 에이전트 등가 클래스로 지칭될 수 있다.
등가 클래스들은 이용 가능한 자원들 및 능력들에 관한 정보를 통합하여, 저장 및 전송 요구들을 줄이는 데 유용하다. 게다가, 이들은 원격 에이전트들이 에이전트들의 집합들 사이의 의미 있는 관계들을 결정하는 것을 가능하게 한다. 예를 들어, 비디오 서버가 활성 세션들에서 완전히 분주한 경우, 등가 클래스는 새로운 세션이 개시되는 것을 가능하게 하기 위하여 자유로운 자원들에 접촉될 수 있는 에이전트들의 세트를 노출시킨다.
일부 실시예들에서, 에이전트는 고유 식별자의 할당에 의해 식별될 수 있다. 일례에서는, 64 비트 수치 식별자가 각각의 에이전트에 할당될 수 있다. 에이전트 식별자들은 각각의 에이전트에 대해 지속적이고, 전역적으로 고유하다. 이러한 예에서, 0의 값은 확보되고, 무효 또는 미지정 에이전트 식별자를 지시하며, 모든 1의 값(16진수 0xFFFFFFFFFFFFFFFF)은 모든 에이전트를 지시하기 위한 와일드카드로서 확보된다. 에이전트 식별자의 포맷이 표 1에 나타나 있다.
바이트 0 1 2 3 4 5 6 7
타입 인스턴스 그룹 전역적으로 고유한 값
표 1 에이전트 식별자의 포맷
이러한 예에서, 6 바이트의 전역 고유 값 필드는 모든 장치에 대해 고유하다. 이러한 값이 선택되는 방식은 미지정으로 남겨질 수 있지만, 일례에서 이 값은, 중앙 당국에 의해 할당되고, 따라서 전역적으로 고유한 네트워크 인터페이스의 48 비트 이더넷 MAC 어드레스일 수 있다. 일 실시예에서, 선택되는 값은 이더넷 MAC 어드레스 스킴과 연동하는 것이 필요할 수 있으며, 따라서 유효한 MAC 어드레스를 생성하지 못할 수 있다. 에이전트 식별자의 인스턴스 및 그룹 필드들은 예를 들어 장치의 설계자에 의해 지역적으로 할당될 수 있다. 이와 함께, 그룹 필드 및 고유 값 필드는 에이전트 등가 클래스를 식별한다. 일례에서, 그룹 필드는 부호 없는 정수 값으로서 해석될 수 있으며, 이는 장치가 최대 256개의 등가 클래스를 생성하는 것을 가능하게 한다. 인스턴스 필드는 부호 없는 정수로서 해석될 수 있다. 인스턴스 필드는 등가 클래스 내의 특정 에이전트를 식별한다. 주어진 등가 클래스에 대한 인스턴스 값들은 연속 범위를 차지해야 한다. 따라서, 단일 장치는 256개의 그룹 내에서 최대 65536개의 에이전트를 지원할 수 있다.
도 2는 도 2의 네트워크(40)가 2개의 서브 네트워크 기반 구조(44, 46)로 구성되는 네트워크 기반 구조(42)를 포함한다는 것 외에는 도 1과 유사하다. 또한, 장치(D3)는 액세스 포인트들/안테나들(50, 52)을 포함하는 무선 접속을 통해 서브 네트워크 기반 구조(46)에 결합된다. 도 2는 4개의 장치가 부속된 네트워크의 일례를 제공하지만, 실시예들은 임의의 특정 수의 요소들로 한정되지 않는다. 4개보다 많거나 적은 장치들이 네트워크(42)에 결합될 수 있다.
도 3은 일부 실시예들에 따른 네트워크 인터페이스 제어 회로(20-1)를 나타낸다. 다른 실시예들에서, 네트워크 인터페이스 제어 회로는 다를 수 있다. 또한, 전술한 바와 같이, 네트워크 인터페이스 제어 회로는 다른 인자들 중에서 그가 사용되는 장치에 따라 다를 수 있다. 송신기들 및 수신기들(72)이 컨덕터들(24-1)과 네트워크 보안 모듈(76) 사이에 결합된다. 컨덕터들(24-1)은 신호들이 양방향으로 전달되는 단일 세트의 컨덕터들일 수 있다. 대안으로, 컨덕터들(24-1)은 신호들이 상이한 방향들로 전달되는 다수 세트의 컨덕터들을 포함할 수 있다. 컨덕터들 상의 다양한 신호들은 다중화되거나, 패킷화되거나, 아니면 컨덕터들 상에서 운반될 수 있다. 다양한 타입의 시그널링이 이용될 수 있다.
네트워크 보안 모듈(76)은 컨덕터들(24-1)로부터의 통신들이 장치(D1)의 다른 부분들로 전달되는 것이 허가되는 것을 보장하도록 의도된다. 일부 실시예들에서, 네트워크 보안 모듈(76)은 인증된 장치들로부터의 신호들만을 전달할 것이다. 예를 들어, 일부 실시예들 또는 상황들에서, 보안 모듈(76)은 헤더 내에 특정 토큰 또는 키를 가진 신호들만을 전달할 것이다. 또한, 일부 실시예들에서, 장치(D1) 내의 네트워크 보안 모듈(76) 또는 소정의 다른 모듈은 장치(D1)로부터의 신호들이 (헤더 내에 등) 적절한 식별자들을 가짐으로써 이들이 다른 장치들에 의해 허용되는 것을 보장한다. 다른 보안 기능들이 아래에 설명된다. 일부 실시예들에서, 네트워크 보안 모듈(76)은 포함되지 않거나, 여기에 설명되는 것에 비해 감소된 능력을 갖는다. 서비스 발견 모듈(80)은 후술하는 자동 서비스 발견을 수행한다. 동적 접속 관리 모듈(84)은 후술하는 동적 접속 관리를 수행한다.
컨덕터들(88)은 신호들을 장치(D1)의 장치 기능 회로(92)로서 지칭되는 다른 컴포넌트들로 운반한다. 장치에 의해 제공되는 서비스들은 장치 기능 회로(92)에 의해 수행될 수 있는 서비스들을 포함한다. 장치 기능 회로는 상이한 장치들에서 상이하다. 장치 기능 회로(92)의 예들은 비디오 처리, 비디오 표시, 비디오 전송 및 다양한 다른 기능을 포함한다. 도 4는 장치 기능 회로(92)가 비디오 처리 회로(94), 디스플레이 구동 회로(96) 및 스크린(104)을 포함하는 디스플레이(102)를 포함하는 텔레비전으로서 특성화될 수 있는 장치(D1)의 상세들을 나타낸다. 도 5는 장치 기능 회로(92)가 예를 들어 케이블 아웃렛 또는 위성 수신기로부터 컨덕터들(108)을 통해 (오디오 및 제어 신호들은 물론) 비디오 신호들을 수신하는 비디오 수신 회로(110)를 포함하는 셋톱 박스로서 특성화될 수 있는 장치(D1)의 상세들을 나타낸다. 비디오 수신 회로(110)는 비디오 신호들(및 아마도 또한 오디오 및 제어 신호들)을 비디오 처리 회로(112)에 제공하며, 비디오 처리 회로(112)는 비디오 신호들을 네트워크 인터페이스 제어 회로(20-1)에 제공한다. 비디오 수신 회로(110)는 소정 형태의 네트워크 인터페이스 제어 회로를 포함할 수 있지만, 그러한 회로는 실시예들에서 필요하지 않다.
도 6은 일부 실시예들에 따른 서비스 발견 모듈(80) 또는 동적 접속 관리 모듈(84)을 나타낸다. 도 6을 참조하면, 전용 또는 공유 프로세서(124)가 전용 또는 공유 메모리(126)로부터 수신되는 명령어들 상에 작용하며, 데이터를 저장하기 위해 전용 또는 공유 메모리(126)를 사용한다. 이와 관련하여, 전용 또는 공유는 프로세서 또는 메모리가 특정 모듈에 대해서만 전용화될 수 있거나, 모듈이 프로세서 또는 메모리를 다른 컴포넌트들과 공유할 수 있다는 것을 의미한다. 전용 또는 공유 메모리(126)는 명령어들 및 데이터를 분리하여 또는 함께 유지할 수 있다. 전용 또는 공유 메모리(126)는 접촉 표, 발견된 서비스들의 리스트 및 서비스 위치 표와 같은 리스트들 또는 표들을 포함할 수 있다. 하드웨어 회로들(120)은 전용 또는 공유 프로세서(124)와, 그리고 아마도 모듈 안 또는 밖의 다른 컴포넌트들과 인터페이스한다.
도 7은 일부 실시예들에 따른 서비스 발견 모듈(80) 또는 동적 접속 관리 모듈(84)을 나타낸다. 도 7을 참조하면, 하드웨어 회로들(130)은 모듈의 기능들을 수행한다. 하드웨어 회로들(130)은 접촉 표와 같은 리스트들 또는 표들, 발견된 서비스들의 리스트 및 서비스 위치 표를 포함할 수 있다.
도 8은 일부 실시예들에 따른 존재 발표 메시지를 나타낸다. 다른 실시예들은 다소 상이한 존재 발표 메시지 또는 아주 다르게 수행되는 동일 기능을 포함한다. 도 8을 참조하면, 메시지(800)의 기술자 헤더(810)는 타입 및 길이 필드들을 포함한다. 메시지의 본체(820)는 (전역적으로 고유한 서비스 식별자일 수 있는) 서비스에 대한 식별자, 네트워크 어드레스, 포트 번호, 만료 시간 값 및 다른 정보를 포함하는 다양한 정보를 포함할 수 있다. 이것은 아래에 더 상세히 설명된다.
자동 서비스 발견
일부 실시예들에 따른 자동 서비스 발견의 상세들이 아래에 설명된다. 다른 실시예들은 상이한 상세들을 포함한다. 서비스 발견은 장치가 네트워크 상에서 어떤 서비스들이 이용 가능한지를 학습하는 것을 포함한다. 특정 장치의 관점에서, 다른 장치의 서비스는 임의 시간에 네트워크에 가입하거나 탈퇴할 수 있다. 서비스 네트워크가 근거리 네트워크인 것으로 정의될 때, 브로드캐스트 통신이 가능하다. 서비스 네트워크가 라우팅될 때, 인터넷 멀티캐스트가 이용될 수 있다. 이러한 통신 기술들을 활용함으로써, 네트워크에 부속된 모든 잠재적 서비스들에, 해당 어드레스들을 모르고도, 메시지들을 전송할 수 있다. 그러한 메커니즘은 네트워크 이등분 대역폭에 비해 서비스들의 수가 낮을 때 근거리 영역에서 가장 유용하다.
이러한 환경에서는, 간단한 시스템이 가능해진다. 일부 실시예들에서, 서비스들은 그들의 존재를 주기적으로 발표할 책임이 있다. 일부 실시예들에서, 주기적이라는 말은 실질적이지만, 반드시 정확하게는 아닌 규칙적인 간격을 의미하며, 다른 실시예들에서 주기적이라는 말은 정확히 규칙적인 간격을 의미한다. 간격들의 길이는 다를 수 있으며, 시간에 따라 변할 수 있다. 일부 실시예들에서, 그러한 존재 발표 메시지는 적어도 다음과 같은 정보, 즉 서비스의 식별자, 서비스가 현재 접촉될 수 있는 네트워크 어드레스 및 포트 번호, 및 이러한 발표 메시지가 얼마나 오랫동안 유효한 것으로 간주되는지를 지시하기 위한 만료 시간(ET) 값을 포함한다. 다른 실시예들에서, 이러한 정보 중 일부는 포함되지 않을 수 있으며, 추가 정보가 포함될 수도 있다. 그러한 발표 메시지들을 수신하는 서비스들은 현재 이용 가능한 서비스들에 대한 접촉 표를 구성할 수 있다. 장치의 (서비스 발견 모듈과 같은) 수신기가 주어진 서비스로부터 다른 발표 메시지를 그의 ET의 소정 배수가 만료되기 전에 수신하지 않는 경우, 그 서비스는 네트워크를 벗어난 것으로 간주될 수 있다.
ET 값을 튜닝함으로써, 서비스는 그의 발표들의 빈도를 제어할 수 있다. ET는 서비스를 수행하는 장치에 의해 또는 다른 장치에 의해 설정될 수 있다. 더 큰 빈도(더 짧은 ET 값)는 강건함 및 검출 레이턴시를 향상시킨다. 이것은 발표 메시지들의 손실을 처리하는 것은 물론, (예를 들어, 케이블 제거로 인해) 네트워크로부터 분리된 서비스들의 더 빠른 검출을 가능하게 하는 것을 돕는다. 수신기는 또한 ET 만료에 대한 그의 감도를 조정 또는 튜닝할 수 있다. 수신기는 ET 만료를 지나 더 오래 기다릴수록, 서비스가 네트워크로부터 분리되었음을 덜 빠르게 결정할 수 있다. ET 만료를 지난 기다림이 너무 짧은 경우, 수신기는 사실상 예를 들어 그의 발표 메시지가 네트워크에 의해 버려진 때 서비스가 이용 가능하지 않은 것으로 결정할 수 있다. 일부 실시예들에서, 각각의 서비스는 환경 및 애플리케이션 도메인에 기초하여 그러한 파라미터들을 조정 또는 튜닝할 수 있다.
일부 실시예들에서, 서비스 발견 모듈은 그 자신의 존재 발표 메시지를 네트워크 상의 다른 장치들로 전송하고, 또한 네트워크 상의 다른 장치들로부터 존재 발표 메시지들을 수신한다. 다른 실시예들에서, 존재 발표 메시지는 예를 들어 서비스 발견 모듈에 의해 제공되거나, 송신기들에 의해 송신될 수 있으며, 송신기들에 의해 수신되거나, 서비스 발견 모듈로 제공될 수 있다. 다양한 실시예에서, 서비스 발표는 패킷화되거나, 패킷화되지 않을 수 있다.
때로는, 모든 활성 서비스들로부터 즉시 통지를 취득하는 것이 바람직하다. 예를 들어, 장치는 네트워크 상의 이용 가능 프린터들의 리스트를 표시하기를 원할 수 있고, 그의 이용가능한 서비스들의 리스트가 가능한 한 최신인 것을 보증하기를 원한다. 일부 실시예들에서는, 존재 요청 메시지가 전송될 수 있다. 서비스가 존재 요청 메시지를 수신할 때, 서비스는 발표 메시지를 전송함으로써 즉시 응답한다. 발표 응답은 예를 들어 요청자에게 유니캐스트되거나, 모든 잠재적 서비스들로 멀티캐스트될 수 있다.
일부 실시예들에서, 이러한 시스템은 종래의 멀티캐스트 DNS/DNS-SD 및 LLMNR과 여러 면에서 상이하다. 발표들은 서비스 위치를 지정하는 것과 생존(keep-alive) 통지로서 작용하는 것의 이중 목적을 제공할 수 있다. 종래의 접근법들은 서비스의 위치를 발견하기 위해 두 가지 레벨의 이름 분석을 필요로 할 수 있다. 제1 레벨은 서비스의 이름과, 서비스가 위치하는 장치의 네트워크 이름을 매칭시킨다. 제2 레벨은 장치 이름과 네트워크 어드레스를 매칭시킨다. 이것은 낮은 자원의 환경들에 대해 실용적이지 못할 수 있는 불필요한 복잡성을 추가한다. 또한, 종래의 접근법들에서는, 추가 정보가 발견 프로세스의 일부로서 쉽게 전달될 수 없다.
향상된 서비스 발표
일부 실시예들에 따른 향상된 서비스 발표의 상세들이 아래에 설명된다. 다른 실시예들은 상이한 상세들을 포함한다. 전술한 기본 서비스 발표 메시지는 서비스들을 발견하고, 그러한 서비스들이 언제 활성화되는지를 검출하기 위한 최소한의 메커니즘을 제공한다. 서비스의 능력들 및 상태에 대한 더 많은 정보를 발견하기 위하여, 서비스가 접촉되고 조회되는데, 이는 종래의 메커니즘들에 의해 채용되는 접근법이다. 그러나, 일부 실시예들에서, 발표 스킴은 서비스가 발표 자체 내에 일반적으로 요청되는 정보를 포함시키는 것을 가능하게 한다.
일부 실시예들에서는, 서비스의 타입 또는 클래스를 식별하기 위한 기술자가 발표 내에 포함될 수 있다. 이것은 수신기들이 원격 서비스들에 대해 어떤 정보를 유지하는가에 있어서 더 선택적인 것을 가능하게 한다. 예를 들어, 비디오 표시 서비스는 비디오 소스 서비스들의 리스트를 유지하기를 원할 수 있다. 발표 메시지 내에 타입 필드가 없는 경우, 비디오 표시 서비스는 서비스 클래스를 결정하기 위해 모든 서비스 위치를 캐시하거나, 각각의 위치를 차례로 접촉해야 할 수도 있다. 서비스 타입 필드가 포함되는 일부 실시예들에서, 비디오 표시 서비스는 비디오 소스 서비스들만의 리스트를 유지하고, 그러한 서비스들에만 접촉하여, 자원들 및 시간을 절약할 수 있다.
일부 실시예들에서, 서비스 타입 필드의 포맷 및 해석은 공지되며, 발표 프로토콜의 표준 부분일 수 있다. 그렇지 않은 경우, 원격 서비스들은 타입 필드를 사용하지 못할 수도 있다. 그러나, 각 타입의 서비스에 대해, 발표 메시지의 나머지는 서비스 고유 방식으로 정의될 수 있는데, 즉 특정 서비스에 관련된 서비스들만이 발표 내에서 전달되는 임의의 추가 정보를 이해하는 데 필요하다.
서비스들은 서비스 타입에 의해 중요한 것으로 간주되는 바와 같은 다른 일반적으로 유용한 정보를 발표들 내에 포함시키기를 원할 수 있다. 예를 들어, 서비스들은 실행 시간, 관심 있는 이벤트가 발생하였다는 지시(예를 들어, 타임 스탬프 또는 생성 카운트 및 이벤트 지시자를 통해), 분주/이용 가능 상태, 서비스에 의해 관리되는 아이템들의 수(예를 들어, 뮤직 서비스 내의 노래들의 수) 등과 같은 일반 정보를 포함할 수 있다. 서비스 고유 정보도 가능하다. 예를 들어, 디지털 매체 저장소는 이용 가능한 자유 공간의 양, 저장소가 지원할 수 있는 스트림들의 수, 활성 스트림들의 수, 저장소가 지원하는 능력들의 리스트(예를 들어, 레코딩, 트릭 플레이 등) 등을 포함할 수 있다. 가능한 속성들의 광범위한 어레이가 포함될 수 있지만, 프로토콜 설계자는 (대역폭 사용 증가의 대가로) 모든 발표에 언제 정보를 포함시킬지와 (레이턴시 증가의 대가로) 언제 정보에 대한 조회를 요구할지의 균형을 유지할 수 있다.
개인용 엔터테인먼트 네트워크(예를 들어, 가정 내의 디지털 매체 콘텐츠를 운반하기 위한 네트워크)에 대한 실시예는 최상위 레벨의 서비스 타입들, 즉 매체 소스, 매체 싱크(media sink)를 포함할 수 있다. 매체 소스 또는 싱크는 그가 지원하는 콘텐츠의 타입, 즉 영화(오디오/비디오의 조합), 음악(오디오 단독), 사진(이미지), 사용자 인터페이스 및 제어, 2D 그래픽, 3D 그래픽 등을 지시하기 위한 속성을 포함할 수 있다. 매체 소스는 매체 소스가 시간 시프팅을 지원하는지를 지시하기 위한 추가 속성을 포함할 수 있으며, 매체 싱크는 매체 싱크가 저장(레코딩) 또는 표시를 지원하는지를 지시하기 위한 속성을 포함할 수 있다. 서비스가 분주한지 또는 자유로운지와 저장 서비스를 위해 사용되는 공간 및 자유로운 공간의 양을 지시하기 위해 동적 상태도 포함될 수 있다.
동적 접속 관리 모듈
일부 실시예에 따른 동적 접속 관리의 상세들이 아래에 설명된다. 다른 실시예들은 상이한 상세들을 포함한다. 전술한 서비스 발견 시스템 내에서, 서비스들은 원격 서비스와 접촉할 네트워크 어드레스를 결정할 수 있다. 이 어드레스는 동적으로 변경될 수 있으며, 원격 서비스는 네트워크로부터 자발적으로 분리될 수 있다. 다수의 서비스가 단일 장치 상에서 호스팅될 수 있는데, 이는 단일 접속 레코드를 관리하기 위하여 접속 상태를 유지하고, 아마도 다른 로컬 서비스들과 정보를 교환하는 부담을 각각의 서비스에 제공할 수 있으며, 따라서 종종 현실적인 것보다 많은 복잡성을 추가할 수 있다. 따라서, 일부 실시예들에서는 공유 접속 관리 시스템이 사용될 수 있다.
전역적으로 고유한 서비스 식별자를 이용하여 메시지를 어드레싱함으로써, 장치 내에 동적 접속 관리 모듈이 중앙화될 수 있으며, 이 모듈은 활성 통신 세션들이 존재하는 것보다 적은 접속 레코드들을 관리할 수 있다. 예를 들어, 접속 관리 모듈이 단일 접속 레코드를 이용하는 동안, 하나의 서비스가 여러 원격 서비스와 동시에 통신할 수 있다. 낮은 자원의 환경에서, 그러한 동적 접속 관리는 자원들을 보존하고 더 낮은 비용의 솔루션들을 가능하게 하는 것을 허가한다.
일부 실시예들에서, 동적 접속 관리 모듈은 다음과 같이 동작할 수 있는데, 즉 서비스들은 원격 서비스들의 클래스들에 대한 관심을 접속 관리 모듈에 등록하며, 이어서 접속 관리 모듈은 등록된 기준들과 매칭되는 발견된 서비스 위치들의 캐시를 유지한다. 서비스들은 발견된 서비스들의 리스트를 반복 적용하기 위하여 동적 접속 관리 모듈에 조회할 수 있다. 서비스가 원격 서비스로 전송하기를 원하는 메시지를 가진 경우, 서비스는 메시지 데이터, 메시지 길이 및 서비스 식별자를 접속 관리 모듈로 전달한다. 접속 관리 모듈은 그의 발견된 서비스들, 즉 접속 관리 모듈이 발표 메시지들을 수신하고 네트워크 어드레스를 기록한 서비스들의 리스트에서 서비스 식별자를 검색한다. 접속 관리 모듈은 그가 원격 서비스에 대한 열린 접속을 갖는지를 알기 위해 검사한다. 그렇지 않은 경우, 접속 관리 모듈은 접속을 열고 메시지를 전달한다. 이러한 프로세스에서, 원격 서비스의 네트워크 어드레스는 임의 시간에 변경될 수 있다. 일부 실시예들에서, 이용 가능한 자유 접속 레코드가 존재하지 않는 경우, 먼저 접속을 닫음으로써, 가장 최근에 사용된 접속 레코드가 회복될 수 있다. 일부 실시예들에서는, 우선 순위들의 사용을 포함하여, 접속 레코드들의 이용 가능성을 해결하기 위한 다른 정책들도 구현될 수 있다.
다른 장치의 수신기는 착신 메시지에 대한 목적 서비스를 결정하기 위한 서비스 위치 표를 이용하여 동일 흐름을 역으로 따를 수 있다.
원격 서비스에 대한 접속은 신뢰할 수 없는 프로토콜(예를 들어, UDP)을 통할 수 있지만, 이것은 신뢰성 스킴을 구현해야 하는 부담을 각각의 서비스에 추가한다. 대신에, 동적 접속 관리 모듈은 신뢰성 제공을 위해 서비스 메시지들을 랩핑(wrapping)하거나(예를 들어, UDP의 최상부에 시퀀스 번호들 및 재전송들을 추가하거나), 또는 전송을 위해 (TCP와 같은) 신뢰성 있는 프로토콜을 이용함으로써 신뢰성 요구를 처리할 수 있다. 그러한 신뢰성 있는 접속들에 대한 상태는 아주 클 수 있으며, 따라서 접속 레코드들보다 많은 접속을 허가하는 것이 필요할 수 있다. 접속이 열려야 할 때마다 레이턴시가 추가되지만, 일부 실시예들에서는 설계가 접속 레코드들의 스래싱(thrashing)을 최소화하는 수의 접속 레코드들을 지원할 수 있다.
이와 같이, 낮은 자원의 장치는 장치가 유지할 수 있는 접속 레코드들의 수보다 큰 세트의 서비스들 사이의 활성 통신을 유지할 수 있다. 예를 들어, 서비스의 위치를 기록하는 데에는 16 바이트 정도가 필요하지만, 접속 레코드에 대해서는 512 바이트가 필요할 수 있다.
암호화 지원
일부 실시예들에 따른 암호화 지원의 상세들이 아래에 설명된다. 다른 실시예들은 상이한 상세들을 포함한다. 서비스들 사이의 통신을 보호하기 위하여 메시지 콘텐츠를 암호화하는 것이 종종 바람직하다. 현재의 스킴들은 활성 접속(예를 들어, SSL)에 기초하며, 암호 상태를 접속 레코드에 첨부한다. 일부 실시예들에서, 활성 통신 경로들보다 적은 접속 레코드들을 사용하고, 인증 레이턴시를 줄이기 위하여, 암호 상태는 접속 레코드의 외부에 저장된다. 이러한 상태는 현재 세션 키를 포함한다. 블록 암호를 이용하는 카운터 모드 암호화가 이용되는 경우, 현재의 카운터 값만이 또한 요구되며, 데이터의 각각의 블록은 독립적으로 암호화될 수 있다.
암호화 지원은 다음과 같은 방식으로 구현될 수 있다. 서비스가 메시지를 원격 서비스로 전송하기를 원할 때, 서비스는 메시지 데이터, 메시지 길이, 원격 서비스 식별자 및 암호 플래그를 동적 접속 관리 모듈로 전송한다. 동적 접속 관리 모듈은 메시지를 전달하도록 요구될 때, 필요한 경우에 위와 같이 새로운 접속을 개설할 것이다. 소정 예들에서는, 새로운 접속을 개설하기 위하여 기존 접속을 닫는 것이 필요할 수 있다. 활성 암호화 세션이 존재하지 않는 경우, 세션 키를 생성하기 위하여 원격 엔드포인트와의 인증 교환이 이루어진다. 메시지 데이터는 키를 이용하여 암호화되고, 원격 엔드포인트로 전달된다. 접속이 닫히고, 다시 열리는 경우, (세션 키가 공격에 대한 취약성과 관련하여 암호화 알고리즘의 요구를 충촉시키는 경우에) 세션 키가 재사용될 수 있다.
위의 접근법은 부적절한 보호로서 간주될 수 있는데, 이는 키가 연장된 기간 동안 사용될 수 있기 때문이다. 키는 "롤링(rolling)"될 수 있는데, 이는 키를 스트림으로부터 도출되는 카운터 값과 솔팅함으로써 새로운 키가 생성된다는 것을 의미한다. 송신기와 수신기가 동기화를 유지하는 경우, 전송되는 바이트들의 수가 카운터로서 사용될 수 있다. 그러나, 접속이 일시적인 경우, 이러한 동기화 요구는 충족되지 못할 수 있다. 키들의 롤링을 가능하게 하기 위하여, 다음과 같은 시스템이 채용된다.
일부 실시예들에서, 보안 접속은 신뢰성 있는 바이트 스트림 또는 신뢰성 있는 메시지 스트림으로서 간주될 수 있다. 간단한 랩퍼 프로토콜이 도입된다. 이러한 프로토콜은 타입 및 길이 필드들을 갖는 헤더를 포함하는데, 이는 클래스 타입의 데이터의 길이 바이트들이 뒤따른다는 것을 지시한다. 메시지 타입들은 인증, 키 롤, 애플리케이션 데이터 및 아마도 둘 이상의 타입의 조합들을 단일 메시지 내에 포함한다. 이것은 (예를 들어, 8비트 타입 및 24비트 카운트를 이용하여) 적은 오버헤드를 추가하면서, 동적 접속 관리 모듈이 서비스 메시지 스트림 내에 보안 관련 메시지들을 삽입하는 것을 가능하게 한다.
이러한 랩퍼 프로토콜을 이용하는 경우, 최초로 접속을 개설할 때, 동적 접속 관리 모듈은 위와 같이 인증 메시지들을 교환하여, 적절한 타입 필드를 갖는 헤더를 프리펜딩(prepending)할 것이다. 이어서, 동적 접속 관리 모듈은 키 메시지를 전송하여, 키를 솔팅할 카운터 값을 지시할 것이다. 이어서, 암호 엔진에 새로운 키가 로딩되며, 따라서 모든 후속 메시지들은 새로운 키로 암호화된다. 이어서, 서비스 메시지들은 암호화되고 전달되어, 애플리케이션 데이터를 지시하기 위해 적절한 헤더가 프리펜딩될 수 있다. 접속이 닫히고, 다시 열리는 경우, 동적 접속 관리 모듈은 (암호 약점을 도입하지 않는 경우) 인증 단계를 포기하고, 키 롤 메시지를 먼저 전송함으로써 통신을 개시할 수 있다. 이어서, 전과 같이 통신이 계속될 수 있다.
이와 같이, 로컬 서비스들은 활성 통신 세션들보다 적은 접속 레코드들을 동적으로 관리하고, 보안 인증의 수행의 빈도를 제한하면서, 안전하게 통신할 수 있다.
추가 정보 및 실시예들
여기에 설명되는 다양한 모듈은 하드웨어, 소프트웨어, 펌웨어, 또는 하드웨어, 소프트웨어 및 펌웨어의 임의 조합으로 제공될 수 있다.
도시된 컴포넌트들 사이에는 중간 구조가 존재할 수 있다. 여기에 설명되거나 도시된 다양한 컴포넌트는 도시되거나 설명되지 않은 추가 입력들 또는 출력들을 가질 수 있다. 도면들의 시스템들의 실제 구현들에서는, 도시되지 않은 추가 회로, 제어 라인들 및 아마도 상호접속들이 존재할 것이다. 도면들이 컨덕터들을 통해 접속된 2개의 블록을 도시할 때, 도시되지 않은 중간 회로가 존재할 수 있다. 여기서 언급되는 컨덕터들은 연속 재료일 필요는 없다. 예를 들어, 이들은 비아들 또는 다른 접속 구조들을 포함할 수 있다. 블록들의 형상 및 상대적 크기는 실제 형상들 및 상대 크기들과 관련되는 것을 의도하지 않는다. 블록들 사이의 화살표가 한 방향으로만 도시되어 있다는 것은 다른 방향으로의 통신이 존재하지 않는다는 것을 의미하지 않는다. 블록들 사이의 단일 라인은 블록들 사이에 다른 컨덕터들이 존재하지 않는다는 것을 의미하지 않는다.
실시예는 본 발명의 구현 또는 예이다. 명세서에서 "일 실시예", "하나의 실시예" "일부 실시예들" 또는 "다른 실시예들"에 대한 언급은 실시예들과 관련하여 기술되는 특정 특징, 구조 또는 특성이 반드시 모든 실시예는 아니지만, 적어도 일부 실시예에 포함된다는 것을 의미한다. "일 실시예", "하나의 실시예" 또는 "일부 실시예들"의 다양한 출현은 반드시 모두가 동일 실시예들을 지칭하는 것은 아니다.
요소 "A"가 요소 "B"에 결합된다고 할 때, 요소 A는 요소 B에 직접 결합되거나, 예를 들어 요소 C를 통해 간접 결합될 수 있다. 명세서 또는 청구항들이 컴포넌트, 특징, 구조, 프로세스 또는 특성 A가 컴포넌트, 특징, 구조, 프로세스 또는 특성 B를 "유발"한다고 설명할 때, 이는 "A"가 "B"의 적어도 부분적인 원인이지만, "B"를 유발하는 것을 돕는 적어도 하나의 다른 컴포넌트, 특징, 구조, 프로세스 또는 특성이 또한 존재할 수 있음을 의미한다. 또한, A가 B에 응답한다고 설명될 때, A는 B 및 C의 조합에 응답할 수도 있다.
명세서에서 컴포넌트, 특징, 구조, 프로세스 또는 특성이 "포함될 수도" 또는 "포함될 수" 있다고 설명하는 경우, 그러한 특정 컴포넌트, 특징, 구조, 프로세스 또는 특성은 포함되는 것이 요구되지는 않는다. 명세서 또는 청구항이 "일" 또는 "하나의" 요소를 지칭하는 경우, 이것은 그 요소가 단지 하나만 존재하는 것을 의미하지 않는다.
본 발명은 여기에 설명된 특정 상세들로 한정되지 않는다. 실제로, 전술한 설명 및 도면들의 많은 다른 변형들이 본 발명의 범위 내에서 이루어질 수 있다. 따라서, 본 발명의 범위를 정의하는 것은 위의 설명이 아니라 임의의 보정을 포함하는 아래의 청구항들이다.

Claims (25)

  1. 장치로서,
    적어도 하나의 서비스를 수행하기 위한 장치 기능 회로; 및
    상기 장치와 네트워크 사이의 상호작용을 제어하기 위한 네트워크 인터페이스 제어 회로
    를 포함하고,
    상기 네트워크 인터페이스 제어 회로는, (1) 상기 장치가 수행할 수 있는 서비스들을 상기 장치 밖의 다른 장치들에게 알리기 위하여 상기 장치 밖으로 송신될 존재 발표 메시지를 전송하고, (2) 상기 다른 장치들이 어떤 서비스들을 수행할 수 있는지를 알기 위하여 상기 장치 밖의 다른 장치들로부터 존재 발표 메시지들을 수신하기 위한 서비스 발견 모듈을 포함하는 장치.
  2. 제1항에 있어서,
    각각의 서비스는 에이전트와 연관되고, 각각의 에이전트는 등가 클래스의 멤버인 장치.
  3. 제2항에 있어서,
    각각의 에이전트는 고유 식별자를 갖는 장치.
  4. 제1항에 있어서,
    존재 발표를 수신하는 서비스들은 현재 이용 가능한 서비스들에 대한 접촉 표(contact table)를 구성할 수 있는 장치.
  5. 제1항에 있어서, 장치가 소정 기간이 만료되기 전에 제1 서비스로부터 다른 존재 발표 메시지를 수신하지 않는 경우, 상기 장치는 상기 서비스가 상기 네트워크로부터 벗어난 것으로 결정하는 장치.
  6. 제1항에 있어서,
    상기 서비스 발견 모듈은 상기 서비스 발견 모듈이 전송하는 발표들의 빈도를 제어하기 위한 만료 시간(ET); 또는 수신된 발표들의 ET 만료에 대한 감도를 포함하는 인자들을 조정하는 장치.
  7. 제1항에 있어서,
    상기 장치의 서비스들은 그들의 존재를 주기적으로 발표할 책임이 있는 장치.
  8. 제1항에 있어서,
    상기 장치는 존재 요청 메시지를 이용하여 모든 활성 서비스들로부터 그들의 이용 가능한 서비스들에 관하여 즉시 통지를 요청할 수 있는 장치.
  9. 제1항에 있어서,
    상기 장치에 의해 전송되는 존재 발표 메시지는 적어도 다음과 같은 정보, 즉 상기 서비스의 식별자, 상기 서비스가 현재 접촉될 수 있는 네트워크 어드레스 및 포트 번호, 및 상기 발표 메시지가 얼마나 오랫동안 유효한 것으로 간주되는지를 지시하기 위한 만료 시간(ET) 값을 포함하는 장치.
  10. 제1항에 있어서,
    상기 네트워크 인터페이스 제어 회로는 상기 네트워크 인터페이스 제어 회로를 지나는 인증되지 않은 신호들을 불허하기 위한 네트워크 보안 모듈을 포함하는 장치.
  11. 제1항에 있어서,
    상기 서비스 발표 메시지는 상기 발표에 포함되는 서비스의 타입 또는 클래스를 식별하기 위한 기술자를 포함하는 장치.
  12. 제1항에 있어서,
    상기 네트워크 인터페이스 제어 회로는 동적 접속 관리를 수행하기 위한 동적 접속 관리 모듈을 포함하는 장치.
  13. 장치로서,
    적어도 하나의 서비스를 수행하기 위한 장치 기능 회로; 및
    상기 장치와 네트워크 사이의 상호작용을 제어하기 위한 네트워크 인터페이스 제어 회로
    를 포함하고,
    상기 네트워크 인터페이스 제어 회로는 상기 장치 밖의 다른 장치들과의 접속들을 관리하기 위한 동적 접속 관리 모듈을 포함하고, 메시지는 전역적으로 고유한 서비스 식별자를 이용하고 상기 접속 관리는 상기 장치 내에 중앙화되어, 상기 접속 관리 모듈이 단일 접속 레코드를 이용하는 동안에 서비스가 여러 원격 서비스와 동시에 통신할 수 있는 장치.
  14. 제13항에 있어서,
    서비스는 원격 서비스들의 클래스들에 대한 관심을 상기 접속 관리 모듈에 등록하고, 상기 접속 관리 모듈은 등록 기준들과 매칭되는 발견된 서비스 위치들의 캐시를 유지하는 장치.
  15. 제14항에 있어서,
    서비스들은 발견된 서비스들의 캐시를 반복 적용하기 위하여 상기 동적 접속 관리 모듈에 조회할 수 있는 장치.
  16. 제14항에 있어서,
    서비스가 원격 서비스로 전송하기를 원하는 메시지를 상기 서비스가 가진 경우에, 상기 서비스는 상기 동적 접속 모듈에 요청을 제공하며, 상기 요청은 메시지 데이터, 메시지 길이 및 서비스 식별자를 포함하는 장치.
  17. 제16항에 있어서,
    서비스로부터 요청을 수신하면, 상기 동적 접속 관리 모듈은 그의 발견된 서비스들의 캐시 내에서 상기 서비스 식별자를 검색하고, 상기 동적 접속 관리 모듈이 상기 원격 서비스에 대한 열린 접속을 갖는지를 알기 위해 검사하며, 열린 접속이 존재하지 않는 경우에, 상기 동적 접속 관리 모듈은 상기 원격 서비스에 대한 접속을 개설하는 장치.
  18. 제13항에 있어서,
    상기 동적 접속 관리 모듈은 신뢰성 제공을 위해 상기 서비스 메시지들을 랩핑(wrapping)하거나, 또는 전송을 위해 신뢰성 있는 프로토콜을 이용함으로써 신뢰성 요구를 제공하는 장치.
  19. 시스템으로서,
    네트워크 기반 구조; 및
    제1 장치 및 제2 장치
    를 포함하고,
    상기 제1 및 제2 장치들은 각각,
    적어도 하나의 서비스를 수행하기 위한 장치 기능 회로; 및
    상기 장치와 네트워크 사이의 상호작용을 제어하기 위한 네트워크 인터페이스 제어 회로
    를 포함하고,
    상기 네트워크 인터페이스 제어 회로는,
    (1) 상기 장치가 수행할 수 있는 서비스들을 상기 장치 밖의 다른 장치들에게 알리기 위하여 상기 장치 밖으로 송신될 존재 발표 메시지를 전송하고, (2) 상기 다른 장치들이 어떤 서비스들을 수행할 수 있는지를 알기 위하여 상기 장치 밖의 다른 장치들로부터 존재 발표 메시지들을 수신하기 위한 서비스 발견 모듈, 및
    상기 장치 밖의 다른 장치들과의 접속들을 관리하기 위한 동적 접속 관리 모듈을 포함하는 시스템.
  20. 제19항에 있어서,
    상기 접속 관리 모듈이 단일 접속 레코드를 이용하는 동안에 서비스가 여러 원격 서비스와 동시에 통신할 수 있는 시스템.
  21. 제20항에 있어서,
    다수의 서비스가 단일 장치 상에서 호스트될 수 있는 시스템.
  22. 제19항에 있어서,
    상기 서비스 네트워크는 근거리 네트워크이고, 브로드캐스트 통신이 이용되는 시스템.
  23. 제19항에 있어서,
    상기 서비스 네트워크는 메시지들의 라우팅 및 인터넷 멀티캐스트를 포함하는 시스템.
  24. 제18항에 있어서,
    암호화가 상기 시스템에서 이용되며, 암호 상태가 상기 접속 레코드의 외부에 저장되는 시스템.
  25. 제24항에 있어서,
    서비스가 원격 서비스로 메시지를 전송하기를 원할 때, 상기 서비스는 메시지 데이터, 메시지 길이, 원격 서비스 식별자 및 암호 플래그를 상기 접속 관리자에게 전송하고, 상기 접속 관리자가 메시지를 전달하도록 요청받을 때, 상기 접속 관리자는 필요한 경우에 새로운 접속을 개설하는 시스템.
KR1020107006865A 2007-08-30 2008-07-07 자동 서비스 발견 및 동적 접속 관리 KR101488833B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/848,147 2007-08-30
US11/848,147 US20090063686A1 (en) 2007-08-30 2007-08-30 Automated service discovery and dynamic connection management
PCT/US2008/069364 WO2009032396A2 (en) 2007-08-30 2008-07-07 Automated service discovery and dynamic connection management

Publications (2)

Publication Number Publication Date
KR20100066526A true KR20100066526A (ko) 2010-06-17
KR101488833B1 KR101488833B1 (ko) 2015-02-02

Family

ID=40175376

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107006865A KR101488833B1 (ko) 2007-08-30 2008-07-07 자동 서비스 발견 및 동적 접속 관리

Country Status (7)

Country Link
US (2) US20090063686A1 (ko)
EP (1) EP2186302B1 (ko)
JP (2) JP5325219B2 (ko)
KR (1) KR101488833B1 (ko)
CN (1) CN101785281B (ko)
TW (1) TWI374646B (ko)
WO (1) WO2009032396A2 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10277683B2 (en) 2009-03-16 2019-04-30 Apple Inc. Multifunctional devices as virtual accessories
US20100235523A1 (en) * 2009-03-16 2010-09-16 Robert Garcia Framework for supporting multi-device collaboration
US20100233960A1 (en) * 2009-03-16 2010-09-16 Brian Tucker Service discovery functionality utilizing personal area network protocols
US8285860B2 (en) * 2009-03-16 2012-10-09 Apple Inc. Efficient service discovery for peer-to-peer networking devices
US8478776B2 (en) 2009-10-30 2013-07-02 Qualcomm Incorporated Methods and systems for peer-to-peer network discovery using multi-user diversity
US9158589B2 (en) * 2010-04-05 2015-10-13 Futurewei Technologies, Inc. Method for dynamic migration of a process or services from one control plane processor to another
US8504672B2 (en) * 2010-11-19 2013-08-06 Silicon Image, Inc. Discovery of electronic devices in a combined network
CN103503487B (zh) * 2011-03-03 2017-05-03 交互数字专利控股公司 用于接入隶属于所发现的服务供应商的服务的方法和装置
US8797874B2 (en) 2011-09-09 2014-08-05 Futurewei Technologies, Inc. Apparatus and system for packet routing and forwarding in an interior network
US8730328B2 (en) 2011-10-06 2014-05-20 Qualcomm Incorporated Frame buffer format detection
JP6057565B2 (ja) * 2012-07-04 2017-01-11 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、およびプログラム
US9330709B2 (en) * 2012-07-12 2016-05-03 Oracle International Corporation Tape library string request management
US9363320B2 (en) 2012-12-05 2016-06-07 Microsoft Technology Licensing, Llc Persistent connection between network devices
US9007945B2 (en) * 2013-01-23 2015-04-14 Dell Products L.P. Automated network service discovery and communication
CN105340247B (zh) * 2013-04-09 2020-10-16 罗伯特·博世有限公司 用于计算机网络中网络容变服务发现的方法
KR102073134B1 (ko) * 2013-05-20 2020-02-04 삼성전자 주식회사 디스커버리 방법 및 장치
CN104283979B (zh) * 2013-07-11 2017-11-17 华为技术有限公司 组播域名系统中报文传输的方法、装置及系统
US9432472B2 (en) 2014-02-24 2016-08-30 Microsoft Technology Licensing, Llc Accelerated training of personal daemons
US9473944B2 (en) 2014-02-24 2016-10-18 Microsoft Technology Licensing, Llc Local personal daemon
US9218497B2 (en) 2014-02-24 2015-12-22 Microsoft Technology Licensing, Llc Incentive-based app execution
US9417831B2 (en) 2014-03-05 2016-08-16 Tricerat Method and system of providing computer network based limited visibility service discovery
US9560055B2 (en) 2014-04-30 2017-01-31 Microsoft Technology Licensing, Llc Client-side integration framework of services
US20150341308A1 (en) * 2014-05-23 2015-11-26 Toshiba Tec Kabushiki Kaisha mDNS REPLICATOR USING DEVICE DISCOVERY
JP2016063355A (ja) * 2014-09-17 2016-04-25 株式会社東芝 配信情報生成装置
RU2678356C2 (ru) * 2014-10-02 2019-01-29 Сименс Акциенгезелльшафт Программирование автоматизации в 3d графическом редакторе с тесно связанной логикой и физическим моделированием
US9692733B2 (en) * 2015-02-10 2017-06-27 Red Hat, Inc. Key establishment and management protocol optimizations in view of channel reliability
US10528228B2 (en) 2017-06-21 2020-01-07 Microsoft Technology Licensing, Llc Interaction with notifications across devices with a digital assistant
IL281893B1 (en) * 2018-10-15 2024-01-01 Liveperson Inc Dynamic endpoint communication channels
US11122136B2 (en) * 2018-10-22 2021-09-14 Red Hat, Inc. Quantum payload service for facilitating communications between a quantum computing system and classical computing systems
US11309974B2 (en) 2019-05-09 2022-04-19 Red Hat, Inc. Quantum channel routing utilizing a quantum channel measurement service

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862335A (en) * 1993-04-01 1999-01-19 Intel Corp. Method and apparatus for monitoring file transfers and logical connections in a computer network
US5465359A (en) * 1993-11-01 1995-11-07 International Business Machines Corporation Method and system for managing data and users of data in a data processing system
US5764645A (en) * 1996-06-12 1998-06-09 Microsoft Corporation IP/ATM network adaptation
US6484174B1 (en) * 1998-04-20 2002-11-19 Sun Microsystems, Inc. Method and apparatus for session management and user authentication
EP1022876B1 (en) * 1999-01-25 2006-04-19 International Business Machines Corporation Service advertisements in wireless local networks
US6665705B1 (en) * 1999-10-19 2003-12-16 International Business Machines Corporation Method and apparatus for proxy replication
US6571277B1 (en) * 1999-10-19 2003-05-27 International Business Machines Corporation Method and apparatus for scaling universal plug and play networks using atomic proxy replication
AU2002239557B2 (en) 2000-11-17 2004-04-08 Motorola, Inc. Multiple service subflows within a cable modem service flow
AU2002234258A1 (en) * 2001-01-22 2002-07-30 Sun Microsystems, Inc. Peer-to-peer network computing platform
US8073967B2 (en) * 2002-04-15 2011-12-06 Fisher-Rosemount Systems, Inc. Web services-based communications for use with process control systems
FR2823411B1 (fr) * 2001-04-05 2003-06-27 Cegetel Procede de gestion de l'etat d'eveil d'un terminal de radiocommunication
US6961560B2 (en) * 2001-05-23 2005-11-01 International Business Machines Corporation Method and device for prompt and efficient service discovery in wireless networks
US7426393B2 (en) * 2001-11-19 2008-09-16 Nokia Corporation Method and system of identifying network services
US20030217096A1 (en) * 2001-12-14 2003-11-20 Mckelvie Samuel J. Agent based application using data synchronization
US7290054B2 (en) * 2002-04-26 2007-10-30 Redback Networks Inc. Dynamic modification of a subscriber connection
CN1476198A (zh) * 2002-08-15 2004-02-18 ��������ͨ�ż����о����޹�˾ 利用小区广播的mbms的业务广告或业务指示的方法
US7849140B2 (en) * 2002-08-29 2010-12-07 Oracle America, Inc. Peer-to-peer email messaging
US7181442B2 (en) * 2002-09-24 2007-02-20 International Business Machines Corporation Method and apparatus for discovery of dynamic network services
US8145759B2 (en) * 2002-11-04 2012-03-27 Oracle America, Inc. Dynamically configurable resource pool
US7441038B2 (en) * 2003-01-28 2008-10-21 At&T Intellectual Property I, L.P. Coordination platform and method for dynamic aggregation of web services
US7587479B2 (en) * 2003-09-25 2009-09-08 Microsoft Corporation System and method for computing concurrent network connection information
GB0322770D0 (en) 2003-09-29 2003-10-29 British Telecomm Bandwith allocation
US20050108389A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Network endpoint health check
JP4416593B2 (ja) * 2004-07-21 2010-02-17 富士通株式会社 ネットワーク接続制御方法及びネットワーク接続制御システム
US7444409B2 (en) * 2005-01-21 2008-10-28 Research In Motion Limited System and method for determining a designated connection between components of computing devices
CN100338920C (zh) * 2005-01-27 2007-09-19 中国科学院计算技术研究所 一种利用层次自组网构建紧急通信系统的方法
US20060277275A1 (en) * 2005-04-02 2006-12-07 Glaenzer Eric F Dynamic management of communication ports, devices, and logical connections
EP1938181A2 (en) * 2005-10-14 2008-07-02 Whaleback Systems Corporation Discovering network services
US7613426B2 (en) 2005-12-20 2009-11-03 Microsoft Corporation Proximity service discovery in wireless networks
US20080253383A1 (en) * 2007-04-13 2008-10-16 Microsoft Corporation Communicating using the port-preserving nature of symmetric network address translators
CN101334778B (zh) * 2007-06-29 2011-08-03 国际商业机器公司 管理数据库连接的方法和系统

Also Published As

Publication number Publication date
US8924509B2 (en) 2014-12-30
EP2186302B1 (en) 2017-04-19
US20120296955A1 (en) 2012-11-22
WO2009032396A3 (en) 2009-06-11
TW200910889A (en) 2009-03-01
CN101785281B (zh) 2014-10-29
CN101785281A (zh) 2010-07-21
JP5643881B2 (ja) 2014-12-17
JP2013215008A (ja) 2013-10-17
JP5325219B2 (ja) 2013-10-23
US20090063686A1 (en) 2009-03-05
WO2009032396A2 (en) 2009-03-12
EP2186302A2 (en) 2010-05-19
KR101488833B1 (ko) 2015-02-02
JP2010538537A (ja) 2010-12-09
TWI374646B (en) 2012-10-11

Similar Documents

Publication Publication Date Title
KR101488833B1 (ko) 자동 서비스 발견 및 동적 접속 관리
JP4083737B2 (ja) ネットワークアドレス変換(nat)によるピアツーピアネットワーク通信
JP4664143B2 (ja) パケット転送装置、通信網及びパケット転送方法
US7685288B2 (en) Ad-hoc service discovery protocol
US8767737B2 (en) Data center network system and packet forwarding method thereof
EP2291979B1 (en) Remote access between upnp devices
JP4462463B2 (ja) ノードを遠隔監視および制御する方法、およびノードを遠隔監視および制御させる1つまたは複数の命令シーケンスを格納するコンピュータ読み取り可能な記録媒体
US7042879B2 (en) Method and apparatus for transferring a communication session
US7908475B2 (en) Method and apparatus for transferring a communicaton session
KR100643285B1 (ko) 멀티캐스트를 이용한 데이터 송수신 시스템 및 방법
US20030084162A1 (en) Managing peer-to-peer access to a device behind a firewall
US20030088765A1 (en) Method and apparatus for transferring a communication session
US20080281966A1 (en) Method and system of network communication privacy between network devices
US9356952B2 (en) Packet redirection in a communication network
US7617316B2 (en) Network connection device, network system and method for avoiding duplication of proxy function
JP2006197589A (ja) マルチキャストアドレスおよび/または関連するポートナンバの形成方法、およびデータストリームサーバ
WO2022190580A1 (ja) 車載中継装置、管理装置、車載システムおよび通信管理方法
JP2019009637A (ja) ネットワーク監視装置
JP4622754B2 (ja) 通信システム、通信方法、送信装置、送信方法、受信装置、受信方法、およびプログラム
CN115051890A (zh) 一种报文处理方法、系统、装置、电子设备及存储介质
KR20210066641A (ko) Icn 시스템에서의 푸시 데이터 처리 방법 및 장치
CN116830522A (zh) 车载中继装置、管理装置、车载系统及通信管理方法
CN115699681A (zh) 由中间实体实现的用于管理两个通信设备之间的通信的方法
Louati et al. A SECURE ADAPTIVE SERVICE ACCESS IN INTENTIONAL NAMING SYSTEM
JP2004282358A (ja) Ipアドレス割付方法、通信制御方法及び通信システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20180110

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190111

Year of fee payment: 5