KR20020079425A - 피어 투 피어 네트워크 환경내에서 자원들을 안전하고검증가능하게 공유하는 시스템 및 방법 - Google Patents

피어 투 피어 네트워크 환경내에서 자원들을 안전하고검증가능하게 공유하는 시스템 및 방법 Download PDF

Info

Publication number
KR20020079425A
KR20020079425A KR1020020018073A KR20020018073A KR20020079425A KR 20020079425 A KR20020079425 A KR 20020079425A KR 1020020018073 A KR1020020018073 A KR 1020020018073A KR 20020018073 A KR20020018073 A KR 20020018073A KR 20020079425 A KR20020079425 A KR 20020079425A
Authority
KR
South Korea
Prior art keywords
peer
resource
resources
retrieved
network
Prior art date
Application number
KR1020020018073A
Other languages
English (en)
Inventor
코우즈네트소브빅터
비규찰스엘
팔렌스테츠마틴
멜치원다니엘
Original Assignee
네트워크스 어소시에이츠 테크놀로지,인크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네트워크스 어소시에이츠 테크놀로지,인크 filed Critical 네트워크스 어소시에이츠 테크놀로지,인크
Publication of KR20020079425A publication Critical patent/KR20020079425A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers

Abstract

본 발명은 대역폭의 유효한 사용을 용이하게 하도록 피어 투 피어 네트워크 환경에서 자원들을 안전하고 검증가능하게 공유하는 시스템 및 방법에 관한 것이다. 통상, 피어 투 피어 네트워크를 통하여 안전하게 자원들을 공유하는 방법은 요청 피어에 의해 자원 버전 식별자 의해 식별된 자원에 대한 요청을 피어 투 피어 네트워크를 통해 브로드캐스팅하는 단계; 피어 투 피어 네트워크상의 응답 피어로부터 응답 피어가 요청된 자원을 가졌음을 표시하는 응답을 수신하는 단계; 그 응답 피어로부터 요청된 자원을 검색하는 단계; 및 검색된 자원이 그 자원에 삽입된 버전 식별자를 포함한다고 보증함으로써 검색된 자원을 검증하는 단계를 포함한다. 바람직하기로는, 검증단계는 검색된 자원의 완전성을 보증하기 위하여, 1024-비트 VeriSign 디지털 인증과 같은 검색된 자원의 디지털 서명을 검증하는 단계도 또한 포함한다.

Description

피어 투 피어 네트워크 환경내에서 자원들을 안전하고 검증가능하게 공유하는 시스템 및 방법{SYSTEM AND METHOD FOR SECURE AND VERIFIED SHARING OF RESOURCES IN A PEER-TO-PEER NETWORK ENVIRONMENT}
본 출원은 발명의 명칭이 "System and Method for Efficient Use of Bandwidth and Resources in a Peer-to-Peer Network Environment" 으로 2001 년 4 월 6 일 출원된 미국 가출원 제 60/282,333 호 및 발명의 명칭이 "System and Method for Efficient Updating of Virus Protection Software and Other Efficient Uses of Bandwidth and Resources in a Peer-to-Peer NetworkEnvironment" 으로 2001 년 6 월 15 일 출원된 미국 가출원 제 60/298,681 호의 우선권을 주장하며, 이들 가출원은 모두 여기에 참조된다.
통상, 본 발명은 피어 투 피어 네트워크에서 대역폭 및 자원들을 유효하게 사용하기 위한 시스템 및 방법에 관한 것이다. 특히, 밴드폭의 유효한 사용을 용이하게 하기 위하여 피어 투 피어 네트워크 환경에서 자원들을 안전하고 검증가능하게 공유하는 시스템 및 방법에 관한 것이다.
종래에는, 안티-바이러스 제품 업데이트 및/또는 서명 파일들을 얻기 위하여, 컴퓨터는 각각의 클라이언트 또는 서버 컴퓨터가 인터넷을 통하여 소스로부터 업데이트된 안티-바이러스 파일을 직접 검색해야 하는 풀 어프로치 (Pull approach) 에 의존한다. 컴퓨터 네트워크에 대하여, 네트워크 관리자는 네트워크상에 너무 많은 클라이언트들이 존재하기 때문에 효과적인 관리를 위하여 안티-바이러스 서명 파일들을 구식 (out of date) 이 되게 한다. 선택적으로, 네트워크 관리자는 각각의 클라이언트가 컴퓨터에 로그 온하는 경우에 클라이언트들이 인터넷으로부터 업데이트된 안티-바이러스 파일을 자동적으로 얻도록 스케쥴링할 수 있다. 그러나, 이러한 접근방식은 대부분의 사용자들이 그들의 컴퓨터에 로그 온하는 경우에 이른 아침의 작업 시간들과 같이 대역폭 크런치 (crunch) 를 발생시킬 수 있다.
조직, 특히 중소 규모의 조직 내의 인터넷 접속들은 비교적 느리다. 예를 들어, 중소 규모의 회사는 단일 케이블이거나 DSL 모뎀, 56K 모뎀, 또는 ISDN라인을 공유할 수 있다. 이와 달리, LAN 을 통해 상호접속된 일반적인 회사 그룹에 있어서, LAN 을 통한 접속들은 일반적으로 훨씬 빠르며, 여기서 일반적인 LAN 은 100/TX (100 Mbps) 이다. 따라서, 피어 투 피어 네트워크들은 부분적으로 컴퓨터 네트워크내의 자원들 및 대역폭의 유효한 사용에 대한 필요성을 제기한다.
그러나, 종래, 파일 분배자가 네트워크상에 파일의 카피들을 차례로 분배하는 피어 서버들을 제어하지 못하는 경우에, 네트워크상의 소망의 자원 또는 파일을 절충할 수 있으므로, 피어 투 피어 분배는 안전하지 않고 특히 공격당하기 쉽다. 이는 특히 안티-바이러스 제품 업데이트 및 서명 파일들과 같은 임계 데이터를 잠재적으로 포함하는 파일들 및/또는 실제 실행가능한 2 진수들을 갖는 파일들에 대하여 주목한다. 또한, 안티-바이러스 제품 업데이트들과 같은 제품 업데이트들을 위하여, 요청 피어는 다른 피어 컴퓨터들상의 제품 파일들이 최신화되거나 구식화되는지 여부를 결정할 수 없다.
따라서, 공유된 파일이 포함되지 않았거나 및/또는 최신화되는 지를 보증하도록 대역폭의 유효한 사용을 용이하게 하기 위하여, 피어 투 피어 네트워크 환경에서 자원들을 안전하고 검증가능하게 공유하는 시스템 및 방법을 제공하는 것이 바람직하다. 피어 투 피어 네트워크를 통하여 자원들을 안전하고 검증가능하게 공유하면, 이상적으로 네트워크 자원 공유를 회사 스프트웨어 관리 및 서비스들과 같은 더 넓은 애플리케이션들로 확대한다.
대역폭의 유효한 사용을 용이하게 하도록 피어 투 피어 네트워크에 자원들을 안전하고 검증가능하게 공유하는 시스템 및 방법을 기술한다. 피어링 서비스시스템 및 방법은 매끄럽고, 안전하고, 그리고 확장가능한 방식으로 LAN 을 통하여 상호접속되는 분산 네트워크내의 피어들 사이에서의 로드를 분산시키는 것을 용이하게 한다. 피어링 서비스는 공유된 파일이 절충되지 않았거나 및/또는 최신화된다고 보증하기 위하여 안전한 메카니즘들을 제공한다. 바람직하게도, 업데이팅 애플리케이션과 같은 서비스 가능한 애플리케이션은 업데이트와 같은 자원이 절충되지 않았음을 보증하기 위하여 검색된 데이터의 완전성을 검증하는 디지털 서명 보안을 구현한다. 또한, 서비스 가능한 애플리케이션은 자원이 최신 버전 또는 다른 정확한 버전임을 보증하기 위하여 버전 정보 보안 수단을 구현하는 것이 바람직하다.
도 1 은 대역폭 및 자원의 유효한 사용을 용이하게 하기 위하여 피어 투 피어 네트워크에서 피어링 (peering) 서비스를 구현하기에 적합한 예시적인 컴퓨터 네트워크에 대한 블록도.
도 2 는 도 1 의 컴퓨터 네트워크의 노드에서 구현되는 예시적인 피어링 서비스 시스템 및 방법을 나타내는 블록도.
도 3 은 피어 투 피어 네트워크에서 피어링 클라이언트로부터의 요청을 처리하는 경우에, 통상의 피어링 서비스 서버의 상태들을 나타내는 상태도.
도 4a 및 도 4b 는 피어 투 피어 네트워크를 통해 자원을 요청하는 경우에, 통상의 피어링 서비스 클라이언트의 상태들을 나타내는 또 다른 상태도.
도 5 는 피어 투 피어 네크워크의 피어링 클라이언트로부터의 요청을 처리하는 경우에, 피어링 서비스 서버의 통상적인 처리를 나타내는 흐름도.
도 6 은 피어 투 피어 네트워트를 통해 자원을 요청하는 경우에, 피어링 서비스 클라이언트의 통상적인 처리를 나타내는 흐름도.
도 7 은 도 6 의 검색 단계의 바람직한 실시예를 더 상세히 나타내는 흐름도.
도 8 은 피어 투 피어 네트워크를 통해 서비스 가능한 제품 업데이트 애플리케이션에 의해 구현되는 안정한 제품 업데이트 처리를 예시적으로 나타내는 흐름도.
도 9 은 여기에 기술된 방법 및 처리의 다양한 실시예들로 이용될 수 있는 컴퓨터 시스템의 예를 나타내는 도면.
도 10 은 도 9 의 컴퓨터 시스템의 시스템 블록도를 나타내는 도면.
※도면의 주요부분에 대한 부호의 설명
100 : 컴퓨터 네트워크 102 : LAN
104 : 노드 106 : 서버
108 : HTTP 서버 110 : 클라이언트
112 : 연결가능한 클라이언트 API 라이브러리
처리; 장치; 시스템; 디바이스; 방법; 또는 컴퓨터 판독가능한 저장 매체이거나 컴퓨터 네트워크와 같은 컴퓨터 판독가능한 매체를 포함하여 본 발명을 다양한 방식들로 구현할 수 있음을 알 수 있으며, 여기서 프로그램 명령들은 광학 또는 전자 통신 라인들을 통해 전송된다. 이하, 본 발명의 몇몇 실시예들을 설명한다.
바람직한 실시예에 따르면, 피어 투 피어 네트워크를 통하여 자원들을 안전하게 공유하는 방법은 일반적으로 피어 투 피어 네트워크를 통하여 자원 버전 식별자로 식별되는 자원에 대한 요청을 요청 피어에 의해 브로드캐스트하는 단계, 피어 투 피어 네트워크상의 응답 피어로부터 응답 피어가 요청된 자원을 가졌음을 나타내는 응답을 수신하는 단계, 그 응답 피어로부터 상기 요청된 자원을 검색하는 단계, 및 그 검색된 자원이 상기 자원에 삽입된 버전 식별자를 포함한다고 보증함으로써 상기 검색된 자원을 검증하는 단계를 포함한다. 바람직하기로는, 상기 검증 단계는 또한 상기 검색된 자원의 완전성을 보증하기 위하여, 1024-비트의 VeriSign 디지털 인증과 같은 검색된 자원의 디지털 서명을 검증하는 단계를 포함한다.
상기 방법은 자원들의 리스트를 포함하는 목록을 검색하는 단계, 피어 투 피어 네트워크를 통해 어느 자원들을 요청할 지를 결정하기 위하여 자원의 리스트와 요청 피어에 설치된 자원들을 비교하는 단계, 및 각각의 이러한 자원이 동일한 또는 서로 다른 응답 피어로부터 검색될 수 있도록 개별 트랜잭션에서 각각의 이러한 자원을 요청하는 단계를 더 포함할 수 있다.
또 다른 바람직한 실시예에 따르면, 피어 투 피어 네트워크의 노드에 설치된 제품의 자동 안전 업데이팅을 위한 제품 업데이팅 서비스는 일반적으로 소정의 시간에서 제품에 대한 자원들의 현재 리스트를 포함하는 목록을 자동적으로 다운로딩하는 단계, 어느 자원들을 요청할지를 결정하기 위하여 상기 목록을 상기 노드에 설치된 자원들과 비교하는 단계, 피어 투 피어 네트워크를 통하여 개별 트랜잭션에서 각각의 이러한 자원을 요청하는 단계, 인터넷 또는 피어 투 피어 네트워크의 피어로부터 각각의 자원을 검색하는 단계, 및 상기 검색된 자원이 상기 자원에 삽입된 버전 식별자를 포함한다고 보증함으로써 각각의 검색된 자원을 검증하는 단계를 포함한다.
또 다른 바람직한 실시예에 따르면, 소프트웨어 제품을 안전하게 업데이팅하는 방법은 일반적으로 제품에 대한 자원들의 현재 리스트를 포함하는 목록을 인터넷을 통하여 검색하는 단계 및 상기 제품에 대한 자원들을 인터넷을 통하여 검색하는 단계를 포함하며, 각각의 자원은 자원 버전 식별자로 식별되며, 상기 자원에 삽입된 상기 자원 버전 식별자를 포함하거나 및/또는 1024-비트 VeriSign 디지털 인증과 같은 디지털 서명들을 포함한다.
본 발명의 이러한 또는 다른 특징들 및 이점들을 발명의 원리들의 한 예로서 나타내는 첨부된 도면들 및 다음의 상세한 설명에서 더 상세히 설명한다.
대역폭의 유효한 사용을 용이하게 하기 위하여, 피어 투 피어 네트워크에서 자원들을 안전하고 검증가능하게 공유하는 시스템 및 방법을 설명한다. 피어링 서비스는 매끄럽고 안전하며 확장가능한 방식으로 LAN 을 통하여 상호접속되는 분산 네트워크에서 피어들 사이의 로드를 분산시키는 것을 용이하게 한다. 서비스 또는 서비스 가능한 애플리케이션은 예를 들어 피어 투 피어 네트워크내에 존재하는 요청된 자원의 로컬 에일리어싱된 (local aliased) 카피를 위치시키도록 함으로써 인터넷 대역폭의 사용을 최소화하거나 감소시킬 수 있다. 그 요청된 자원의 로컬 에일리어싱된 카피를 위치시키는 경우에, 요청 컴퓨터는 요청된 자원들을 국부적으로 얻을 수 있다. 일단 요청 컴퓨터가 요청된 자원의 카피를 얻으면, 국부적으로 또는 원격지로 요청 컴퓨터는 그 자체로 자원의 이후 요청들을 위한 에일리어싱된 카피의 서버가 된다.
당업자가 본 발명을 제작하고 사용할 수 있도록 다음과 같이 설명한다. 특정 실시예들 및 애플리케이션들의 설명은 단지 예로써 제공되며, 다양한 변경들은 당업자라면 쉽게 알 수 있다. 여기에 규정된 일반 원리들을 본 발명의 사상 및 범위를 벗어나지 않고 다른 실시예들 및 애플리케이션들에 적용할 수 있다. 따라서, 본 발명은 여기에 기술된 원리들 및 특징들과 일관되는 다수의 대안, 변경, 및 등가물들을 포함하는 가장 넓은 범위와 일치하게 된다. 명료하게 하기 위해, 본 발명에 관한 기술 분야들에 공지된 기술적 재료에 관한 세부사항들은 본 발명을 불필요하게 모호하게 하지 않도록 상세히 설명하지 않는다.
도 1 은 여기에 기술된 바와 같이 대역폭 및 자원들의 유효한 사용을 용이하게 하도록, 피어 투 피어 네트워크내에 피어링 서비스를 구현하는데 적합한 예시적인 컴퓨터 네트워크 (100) 에 대한 블록도이다. 특히, 컴퓨터 네트워크 (100) 는 LAN (102) 을 통해 상호연결된 노드, 컴퓨터, 또는 워크스테이션들 (104A 내지 104E) 을 포함한다. 유선 및 무선을 포함한 임의의 적절한 네트워크 메카니즘을 이용하여 LAN (102) 을 구현할 수 있다고 이해하여야 한다. 예시적인 컴퓨터 네트워크 (100) 에서, 단지 2 개의 노드들 (104D, 104E) 만이 인터넷에 액세스한다.
도 2 는 도 1 의 컴퓨터 네트워트의 노드에서 구현되는 예시적인 피어링 서비스 시스템 및 방법을 나타내는 블록도이다. 도시된 바와 같이, 각각의 노드 (104) 는 서버 (106) 및 클라이언트 (110) 의 기능성을 제공한다. 피어링 서비스 시스템은 네트워크상의 피어들로 향하거나 브로드캐스트된 메시지들을 전송하기 위하여, 포트 1967 과 같은 포트를 이용한다. 상기 서버는 삽입된 HTTP 서버 (108), 통상적으로 마이크로 HTTP 서버를 포함하는 것이 바람직하다. 상기HTTP 서버 (108) 는 에일리어싱된 URL 들이 네트워크상의 다른 피어들에 의해 액세스되도록 허용한다. HTTP 서버 (108) 는 포트 6515 와 같은 불명료한 포트를 사용하고, 예를 들어 은닉된 파일들 및 데이터 또는 요청들의 업로딩의 분포를 용이하게 하는데 필요한 동작들로 제한되는 것이 바람직하다.
통상, 각각의 노드는 서버 및 클라이언트를 동작시킨다. 그러나, 각각의 노드는 클라이언트 또는 서버만을 동작시킬 수 있다. 피어링 시스템 및 방법을 피어링 서비스 애플리케이션 ("서비스" 또는 "서비스가능한 애플리케이션") 또는 대몬 (daemon) 처리로서 구현하는 것이 바람직하다. 서비스 가능한 애플리케이션은 서비스 애플리케이션일 필요는 없다. 예를 들어, 서비스 가능한 애플리케이션은 또한 화이어 업하고, 서비스를 통신한 후 대화식으로 셧 다운시키는 서비스-인식 애플리케이션을 참조한다.
피어링 시스템은 피어링 서비스 및 임의의 서비스 가능한 애플리케이션들 사이의 통신을 용이하게 하기 위하여 연결가능한 클라이언트 API 라이브러리 (112) 를 제공하는 것이 바람직하다. 하나의 바람직한 실시예에서, 피어링 시스템은 예를 들어 URL 또는 URI 로 식별될 수 있는 임의의 형태의 자원을 발견하기 위하여 상기 서비스 가능한 애플리케이션이 피어링 서비스를 이용할 수 있도록, 상기 클라이언트 API 라이브러리 (112) 를 임의의 서비스 가능한 애플리케이션에 수출한다. 선택적으로는, 상기 연결가능한 클라이언트 API 라이브러리에 대한 필요성을 제거하기 위하여 소정의 애플리케이션 및 피어링 시스템을 단단히 연결한다.
도 3 은 피어 투 피어 네트워크내의 피어링 클라이언트로부터 소정의 요청을처리하는 경우에 통상의 피어링 서비스 서버의 상태들 (120) 을 나타내는 상태도이다. 처음에, 서비스 서버가 지정된 포트에서 네트워크상의 피어 클라이언트로부터 브로드캐스트 요청 메시지를 리스닝하는 동안에는 아이들 상태 (122) 에 있다. 서비스 서버가 네트워크상의 피어링 클라이언로부터 "I need" 패킷과 같은 브로드캐스트 요청 메시지를 수신하는 경우에, 서비스 서버는 로컬 에일리어싱된 카피를 위치시키는 상태 (124) 로 천이한다. 특히, 서비스 서버는 상기 서비스 서버가 예를 들어 URL/URI에 의해 식별되는 상기 요청된 자원 및 항목의 로컬 카피를 가지는지 여부를 결정하기 위하여 로컬 에일리어싱된 카피들의 리스트를 참조한다. 서비스 서버가 요청된 자원의 로컬 카피를 갖지 않는다고 결정하면, 상기 서비스 서버는 서버 아이들 상태 (122) 로 리턴한다.
선택적으로는, 서비스 서버가 로컬 카피를 가진다고 결정하면, 서비스 서버는 상태 (126) 에서 랜덤하게 생성된 지연 응답 시간 주기동안 대기하는 것이 바람직하다. 서비스 서버는 0 과 2000 사이와 같은 난수를 발생시킬 수 있으며, 상기 서비스 서버는 상기 난수를 응답전에 대기하는 시간 길이로 이용한다. 하나의 바람직한 실시예에서, 상기 난수는 요청에 응답하기 전에 서비스 서버가 대기하는 밀리세컨드수이다. 서비스 서버는 랜덤하게 생성된 지연 응답 시간 주기가 만료되도록 대기하는 동안에, 상기 서비스 서버는 수신된 요청 패킷에 대응하여 요청 클라이언트로부터 브로드캐스트된 "I found" 패킷을 리스닝한다. 소정의 피어 요청에 대한 서비스 서버의 상태에 상관없이, 서비스 서버는 "I need" 패킷들과 같은 새로운 요청들을 리스닝한다. 요청 클라이언트로부터 브로드캐스트된 "Ifound" 패킷은 상기 요청 클라이언트가 요청된 자원을 발견했음을 나타낸다. 서비스 서버가 상기 지연 응답 시간 주기의 만료 전에 요청 클라이언트로부터 "I found" 패킷을 수신하는 경우에, 상기 서비스 서버는 요청에 대한 응답을 취소하기 위하여 상태 (128) 로 천이하고, 서버 아이들 상태 (122) 로 리턴한다.
선택적으로는, 지연 응답 시간 주기의 만료 이전에 "I found" 패킷을 수신하지 못하면, 서비스 서버는 요청 피어 클라이언트에게 "I have" 패킷을 직접 전송하는 상태 (130) 로 천이한다. 상기 "I have" 패킷은 요청 피어가 서비스 서버의 HTTP 서버를 통해 액세스 할 수 있는 서비스 서버상의 요청 객체에 대한 로컬 에일리어스를 포함하는 것이 바람직하다. 바람직하지는 않지만, 서비스 서버는 요청하는 클라이언트에게 "I have" 패킷을 직접 전송하기 보다 네트워크를 통해 상기 "I have" 패킷을 선택적으로 브로드캐스드할 수 있다.
명백한 바와 같이, 랜덤하게 생성된 지연 응답 시간 주기는 순서화된 방식으로 다수의 피어 서버들이 로드들을 공유할 수 있게 한다. 특히, 지연 응답 시간 주기를 랜덤화하면 임의의 소정 노드는 자동적으로 피어들의 대부분이 디폴트 서버가 되지 않는다고 보증하고, 어떤 서비스 클라이언트들에 대해 우선권을 행사하기 위하여 서비스 서버가 요청된 항목을 제공할 수 있는 임의적인 필요성을 제거한다. 즉, 요청에 응답하기 전의 랜덤한 대기 시간은 임의의 하나의 머신이 항목의 오버로드된 서버 또는 네트워크의 나머지에 대한 업데이트가 되지 않는다고 보증한다. 또한, 소정 항목을 네트워크를 통하여 네트워크상의 피어들로 전파시키므로, 임의의 하나의 노드상의 로드를 더 감소할 수 있다. 따라서, 서비스클라이언트들에게 요청된 항목을 제공하므로 소정의 서비스 서버에 영향을 주는 시스템은 비교적 최소가 될 수 있다.
그러나, 소정의 요청 패킷에 응답하여 다수의 서비스 서버들 각각이 "I have" 패킷을 전송하는 상황이 발생할 수 있음을 이해하여야 한다. 예를 들어, 제 1 서비스 서버는 그 지연 응답 시간 주기의 만료시에 "I have" 패킷을 전송할 수 있다. 제 1 의 "I have" 패킷에 대응하여 요청 피어에 의해 전송되거나 전송될 "I found" 패킷은 그 지연 응답 시간 주기의 만료 이전에 제 2 서비스 서버에 도착하지 않고, 상기 제 2 서비스 서버가 그 지연 응답 시간 주기의 만료시에 "I have" 패킷을 전송하게 한다. 요청 클라이언트가 다수의 서비스 서버들로부터 다수의 "I have" 패킷들을 수신하는 이러한 상황에서, 요청 클라이언트는 제 1 의 "I have" 응답을 간단히 처리할 수 있고, 상기 요청 클라이언트가 수신할 수 있는 임의의 후속 "I have" 패킷들을 무시한다.
도 4a 및 도 4b 는 피어 투 피어 네트워크를 통하여 자원에 대한 소정의 요청을 행하는 경우에, 통상적인 피어링 서비스 클라이언트의 상태들 (140, 140A) 을 나타내는 선택적인 상태도이다. 도 4a 를 참조하면, 처음에, 서비스 클라이언트는 아이들 상태 (142) 에 있다. 서비스 클라이언트가 인터넷 자원과 같은 소정의 자원을 필요로 하는 경우에, 서비스 클라이언트는 "I need" 패킷을 발생시켜 피어 투 피어 네트워크를 통하여 브로드캐스팅한다. 예를 들어, "I need" 요청은 URL (예를 들어, http://something.tld/someother/thing/here), 프로토콜 (예를 들어, HTTP 프로토콜), 소망의 동작 (예를 들어, 동작을 얻음), 및 요청 피어가 단지 감춰진 객체들만을 원한다는 사실을 상술할 수 있다.
"I need" 요청을 브로드캐스트한 후에, 서비스 클라이언트는 상기 서비스 클라이언트가 최대 지연 응답 시간 주기 더하기 임의의 서비스 서버들로부터의 응답에 대한 전송 시간 주기 만큼 대기하는 응답 대기 상태 (144) 로 천이한다. 랜덤하게 발생된 지연 응답 시간 주기가 0 과 2000 밀리세컨드 사이의 범위에 있는 상기 예에 있어서, 클라이언트 응답 대기 시간 주기는 예를 들어 200 밀리세컨드 전송 시간 주기를 고려하여 2200 밀리세컨드가 될 수 있다.
"I have" 응답을 클라이언트 응답 대기 시간 동안에 서비스 서버로부터 수신하는 경우에, 서비스 클라이언트는 상태 (146) 로 천이하고, 소망의 자원 또는 항목이 발견되었다는 것을 모든 다른 피어들에게 통지하기 위해 "I found" 메시지를 생성시켜 네트워크를 통하여 브로드캐스트한다. 그 후에, 서비스 클라이언트는 요청된 항목 발견 상태 (158) 로 천이한다. 그 후에, 상기 항목을 요청하는 서비스 가능한 애플리케이션은 수신된 "I have" 패킷에서 상술되는 바와 같이 네트워크내의 위치에서 응답하는 서비스 서버로부터 상기 요청된 항목을 검색한다. 통상, 서비스 가능한 애플리케이션은 예를 들어 포트 6515 를 이용하여 로컬 HTTP 서버를 통하여 요청된 항목을 검색한다. 일단 서비스 가능한 애플리케이션이 성공적으로 요청된 항목을 검색하면, 서비스 클라이언트는 동일한 머신상에 동작하는 서비스 서버에 자원의 로컬 카피가 현재 존재한다고 통지한다. 그 후에, 서비스 클라이언트는 아이들 상태 (142) 로 리턴한다.
선택적으로는, 클라이언트 응답 대기 시간 동안에 어떤 응답도 수신하지 않은 경우에, 서비스 클라이언트는 타임 아웃되며, 인터넷 등을 통하여 요청된 항목 자체를 검색하는 상태 (150) 로 천이한다. 일단 검색이 완료되면, 서비스 클라이언트는 항목 발견 상태 (158) 로 천이하고, 여기서 서비스 클라이언트는 동일한 노드 또는 동일한 컴퓨터 상에 동작하는 서비스 서버에게 자원의 로컬 카피가 현재 존재한다고 통지한다. 그 후에, 서비스 클라이언트는 클라이언트 아이들 상태 (142) 로 리턴한다. 명백한 바와 같이, 서비스 클라이언트가 네트워크상의 서비스 서버로부터 "I have" 패킷을 수신하는 것에 상관없이, 클라이언트 머신은 그 요청이 성공적으로 완료된후에 그 자체로 요청된 자원에 대한 서비스 서버가 될 수 있다.
도 4b 는 바람직한 선택적인 실시예에서 파일들의 다운로드를 포함하는 애플리케이션들에 특히 적합한 통상적인 서비스의 상태들 (140A) 을 나타내는 도면이다. 상태들 (140A) 은 도 4a 와 관련하여 도시되고 기술된 상태들 더하기 다른 피어들에 의해 현재 다운로드가 진행중인 상기 요청된 항목과 관련된 부가적인 상태들을 포함한다. 이러한 부가적인 상태들은 피어 노드가 요청된 자원의 다운로드를 완료시키게 하고, 다운로드 완료시에 요청 서비스 클라이언트에게 즉시 그리고 자동적으로 그 자원을 분배한다.
특히, 서비스 클라이언트가 요청을 타임 아웃시킨 후, 요청된 항목 자체를 검색하는 상태 (150) 로 직접 천이하는 대신에, 서비스 클라이언트는 "다운로드를 대기하는가?" 상태 (148) 로 천이하며, 여기서 서비스 클라이언트는 또 다른 피어에 의해 임의의 다운로드 진행중인 요청된 항목을 완료대기하지 않거나 완료를 대기할 지 여부를 결정한다. 만일 대기하지 않는다면, 서비스 클라이언트는 요청된 항목 자체를 검색하는 상태 (150) 로 천이하여, 도 4a 와 관련하여 상술된 것과 유사한 상태 천이들을 계속한다.
서비스 클라이언트가 임의의 진행중인 다운로드의 완료를 대기하거나 대기하지 않을지 여부를 결정하는 경우에, 서비스 클라이언트는 "임의의 다운로드들이 진행중인가?" 상태 (152) 로 천이한다. 요청된 항목이 이와 같이 다운로드 진행되지 않은 경우에, 서비스 클라이언트는 요청된 항목 자체를 검색하는 상태 (150) 로 천이하고, 도 4a 와 관련하여 상술된 상태 천이와 유사한 상태 천이들을 계속한다.
선택적으로는, 하나 이상의 다운로드 진행중인 요청 항목이 존재하는 경우에, 서비스 클라이언트는 "I found" 메시지를 생성 및 브로드캐스팅하는 상태 (154) 로 천이한다. 그 후에, 서비스 클라이언트는 다운로드 진행중인 상기 요청된 항목의 완료를 대기하는 상태 (156) 로 천이한다. 다운로드 진행중인 상기 요청된 항목의 완료시에, 서비스 클라이언트는 요청된 항목의 발견 상태 (158) 로 천이한다. 서비스 클라이언트는 네트워크내의 로컬 위치로부터 상기 요청된 항목을 검색한다. 그 요청의 성공적인 완료 후에, 서비스 클라이언트는 동일한 머신상에 동작하는 서비스 서버에 자원의 로컬 카피가 현재 존재한다고 통지한다. 그 후에, 서비스 클라이언트는 아이들 상태 (142) 로 리턴한다.
명백한 바와 같이, 서버 클라이언트가 상태 (152) 에서 임의의 다운로드가 진행중인지 여부를 결정하기 위하여, 서비스 가능한 애플리케이션의 파일을 다운로드하는 서비스 클라이언트는 "다운로딩" 메시지를 브로드캐스트하거나 및/또는 "I have" 응답 메시지보다 클라이언트 서버에 브로드캐스트된 "I need" 요청의 "I am downloading" 응답 메시지를 이용하여 직접 응답하는 것이 바람직하다. 하나의 바람직한 실시예에서, 서비스 클라이언트는 해당 파일에 대한 다운로딩 플래그를 참 (true) 으로 설정할 수 있다.
또한, 서비스 가능한 애플리케이션은 상태 (156) 에서 임의의 노드들이 최종 사용자들에게 다운로드 진행 정보를 대화식으로 디스플레이 할 수 있도록, 다운로드중인 자원을 대기하는 임의의 노드에 주기적인 진행 패킷들을 전송하는 것이 바람직하다. 선택적으로는, 서비스 가능한 애플리케이션은 네트워크를 통해 이러한 주기적인 다운로드 처리 패킷들을 브로드캐스팅할 수 있다. 따라서, 항목 검색 상태 (150) 의 노드는 처리 정보를 포함하는 "다운로딩" 메시지를 주기적으로 전송하는 것이 바람직하다.
서비스 기능 및 서비스 패킷 포맷
피어링 서비스에 의해 제공된 하나의 기능은 "I need", "I found", 및 "I have" 패킷들과 같은 서비스 패킷들을 포맷, 송신, 수신, 및 디코딩하기 위한 중앙 클리어링 하우스의 기능이다. 즉, 피어링 서비스는 요청된 항목들을 얻기 위하여 피어 투 피어 통신 처리를 행한다. 소정의 서비스 패킷 자체에 의해 야기되는 특정 기능은 통상적으로 특정 서비스 가능한 애플리케이션에 의존한다.
통상, 브로드캐스트 (예를 들어, "I need" 및 "I found" 패킷들) 및 응답 (예를 들어, "I have" 패킷들) 에 사용되는 통신 프로토콜은 TCP/IP 이다. 통상적으로, 각 패킷은 대략 200 바이트의 크기이며, 송신자의 노드 ID 뿐만 아니라 임의의 서로 다른 적절한 정보를 포함한다. 서비스 서버로부터 서비스 클라이언트로의 요청된 항목의 전송은 통상적으로 HTTP를 통해 행해진다.
서비스 패킷 포맷은 충분히 수용되고 널리 이용되는 XML 포맷에 기초하는 것이 바람직하다. 예를 들어, XML 서비스 패킷 포맷은 서비스에 의해 삽입된 키값쌍들 뿐만 아니라 해당 서비스 가능한 애플리케이션에 의해 규정된 키값쌍들을 포함하여, 서비스 식별 및 다양한 키값 쌍들을 포함할 수 있다.
다양한 키값쌍들을 피어링 서비스에 의해 각각의 서비스 패킷으로 삽입할 수 있다. 적절한 키값쌍들의 예들은 식별, 형태, 및 버전 키값쌍들을 포함한다. 특히, 식별 키값쌍은 각각의 요청을 식별하고 그 요청에 대응하여 응답한다. 일반적으로, 식별 값은 개시 노드상에서 유일하지만 전체적으로는 네트워크상에서 유일할 필요는 없다. 식별 값의 값들의 범위는 할당된 비트들의 개수에 의존할 수도 있다. 예를 들어, 32 비트 또는 4 개의 옥텟들을 식별값에 할당할 수 있으므로, 상기 식별값은 0 내지 231의 범위를 갖는다. 형태 키값쌍에 대하여, 형태값은 일반적으로 요청, 최종 요청, 응답 및/또는 임의의 애플리케이션의 규정값이다. 또한, 임의의 다른 적절한 애플리케이션의 규정된 키값쌍들은 서비스 패킷내에 포함될 수 있다.
예시적인 서비스 패킷은 :
<service type = "request" version = "1.0" ID = "1111" method = "get"
href = "http:/domain.com/whatever" acceptprotocol = "http"/>
도 5 는 피어 투 피어 네트워크의 피어링 클라이언트로부터의 요청을 처리하는 경우에, 피어링 서비스 서버의 통상적인 처리 (180) 를 나타내는 흐름도이다. 단계 182 에서, 서비스 서버는 지정된 포트상에서 네트워크상의 피어 클라이언트로부터 브로드캐스팅된 요청 메시지를 리스닝한다. 단계 184 에서, 서비스 서버는 상기 지정된 포트상에서 네트워크상의 피어링 클라이언트로부터 "I need" 패킷과 같은 브로드캐스트 요청 메시지를 수신한다. 단계 186 에서, 서비스 서버는 상기 서버가 요청된 항목의 로컬 에일리어싱된 카피를 갖는지 여부를 결정한다. 특히, 서비스 서버는 상기 서비스 서버가 URL/URI 와 같은 요청된 자원 또는 항목의 로컬 버전을 가지는지 여부를 결정하기 위해 로컬 에일리어싱된 카피들의 리스트를 참조한다.
서비스 서버가 요청된 자원의 로컬 카피를 갖지 않는다고 결정하면, 상기 처리 (180) 는 완료된다. 선택적으로는, 서비스 서버가 로컬 카피를 갖는다고 결정하면, 서비스 서버는 단계 188 에서 수신된 요청 패킷에 대응하는 요청 클라이언트로부터 브로드캐스트된 "I found" 패킷을 리스닝하면서, 랜덤하게 발생된 지연 응답 시간 주기동안 대기하는 것이 바람직하다. 상술된 바와 같이, 서비스 서버는 상기 서버가 응답전에 대기하는 밀리세컨드의 시간 길이로서 0 과 2000 사이의 난수를 발생시킬 수 있다. 요청 클라이언트로부터 브로드캐스팅된 "I found" 패킷은 요청 클라이언트가 요청된 자원을 발견했음을 나타낸다.
처리 (180) 동안에, 서비스 서버는 임의의 부가적인 브로드캐스트 요청 메시지들을 연속적으로 리스닝하고, 이러한 메시지들이 수신될 때 각각의 수신된 브로드캐스트 요청 메시지에 대한 처리 (180) 를 수행하는 것이 바림직하다.
서비스 서버가 지연 응답 시간 주기의 만료전에 요청 클라이언트로부터 "I found" 패킷을 수신하는 경우에, 서비스 서버는 단계 190 에서 상기 요청에 대한 응답을 취소하고, 처리 (180) 를 완료한다. 선택적으로는, 지연 응답 시간 주기의 만료 이전에 "I found" 패킷을 수신하지 않은 경우에, 서비스 서버는 단계 192 에서 요청 피어 클라이언트에게 직접 "I have" 패킷을 전송하고, 서버 처리 (180) 를 완료한다. "I have" 패킷은 서비스 서버상의 요청된 객체에 대한 로컬 에일리어스를 포함하는 것이 바람직하다.
도 6 은 피어 투 피어 네트워크를 통해 자원을 요청하는 경우에, 피어링 서비스 클라이언트의 통상적인 처리 (200) 를 나타내는 흐름도이다. 단계 202에서, 서비스 클라이언트는 지정된 포트상의 피어 투 피어 네트워크를 통해 "I need" 패킷을 생성시키고 브로드캐스트한다. 단계 204 에서, 서비스는 클라이언트 응답 대기 시간 주기, 통상적으로 최대 지연 응답 시간 주기 더하기 전송 시간 주기와 동일한 주기 동안에, 네트워크상의 임의의 서비스 서버들로부터의 응답을 대기한다.
클라이언트 응답 대기 시간동안에, 서비스 서버로부터 "I have" 응답을 수신하는 경우에, 서비스 클라이언트는 단계 206 에서 "I found" 메시지를 생성시켜 네트워크를 통하여 브로드캐스트한다. 그 후에, 항목을 요청하는 서비스 가능한 애플리케이션은 단계 208 의 상기 수신된 "I have" 패킷에서 상술된 바와 같이, 네트워크에 위치하는 응답 서비스 서버로부터 요청된 항목을 검색한다. 일단 서비스 가능한 애플리케이션이 상기 요청된 항목을 성공적으로 검색하면, 단계 210 에서 서비스 클라이언트는 동일한 머신상에서 동작하는 서비스 서버에 자원의 로컬 카피가 현재 존재한다고 통지한다. 그 후에, 상기 처리 (200) 를 완료한다.
선택적으로는, 클라언트 응답 대기 시간동안에 어떤 응답도 수신하지 않으면, 즉 서비스 클라이언트가 타임 아웃되면, 서비스 클라이언트는 단계 214 에서 서비스 가능한 애플리케이션이 또 다른 피어에 의해 임의의 다운로드 처리중인 요청된 항목의 완료 대기 여부를 결정한다. 만일 완료대기하지 않으면, 서비스 클라이언트는 단계 216 에서 인터넷 등을 통하여 요청된 항목 자체를 검색한 후, 단계 210 으로 진행하여 상기 처리 (200) 를 완료한다.
서비스 클라이언트가 임의의 진행중인 다운로드에 대한 완료 대기 여부를 결정하는 경우에, 서비스 클라이언트가 단계 220 에서 임의의 다운로드가 진행되고 있는지 여부를 결정한다. 만일 상기 요청된 항목의 이러한 다운로드가 진행되지 않으면, 서비스 클라이언트는 단계 210 으로 진행하고, 상기 처리 (200) 를 완료한다.
만일 요청된 항목에 대하여 하나 이상의 다운로드가 진행중이면, 서비스 클라이언트는 단계 222에서 "I found" 메시지를 발생시켜 브로드캐스트한다. 그 후에, 단계 224 에서 서비스 클라이언트는 요청된 항목에 대해 진행중인 다운로드의 완료를 대기한다. 예를 들어, 서비스 클라이언트는 다운로딩 피어로부터 "I have" 또는 "Download complete" 메시지를 수신할 수 있다.
요청된 항목에 대해 진행중인 다운로드의 완료시에, 단계 226 에서 서비스 클라이언트는 네트워크내의 로컬 위치로부터 상기 요청된 항목을 검색한다. 그 요청의 성공적인 완료후에, 서비스 클라이언트는 단계 210 으로 진행하여 상기 처리 (200) 를 완료한다. 단계들 (214 및 220 내지 226) 은 선택적이며 파일들의 다운로드를 포함하는 애플리케이션들에 대하여 구현되는 것이 바람직하다.
명백한 바와 같이, 단계 220 에서 서비스 클라이언트가 임의의 진행중인 다운로드들이 존재하는지 여부를 결정하기 위하여, 네트워크의 외부로부터 예를 들어 인터넷으로부터 서비스 가능한 애플리케이션에 대한 파일을 다운로eld하는 서비스 클라이언트는 네트워크상의 피어들에게 다운로드 처리가 진행중이라고 통지한다. 예를 들어, 도 7 은 검색 단계 216 의 바람직한 실시예를 더 상세히 나타내는 흐름도이다.
나타낸 바와 같이, 단계 216A 에서 서비스 클라이언트는 요청된 항목을 검색하기 시작한다. 단계 216B 에서, 서비스 클라이언트는 "다운로딩" 메시지를 브로드캐스트하거나 및/또는 "I am downloading" 응답 메시지를 이용하여 브로드캐스트된 "I need" 요청 메시지를 전송하는 임의의 클라이언트 서버에 직접 응답한다. 또한, 단계 216C 에서 서비스 클라이언트는 임의의 노드들이 이들 노드에서의 최종 사용자들에게 다운로드 처리 정보를 대화식으로 표시할 수 있도록, 상기 자원을 대기하는 임의의 노드에 브로드캐스트하거나 직접 전송함으로써 주기적으로 처리 패킷들을 또한 전송한다. 선택적으로는, 단계 216B 및 216C 는 단일 주기 패킷 전송으로 결합될 수 있고, 여기서 각 패킷은 처리 정보를 포함하는 "다운로딩" 메시지이다.
서비스 가능한 제품 업데이팅 애플리케이션
여기에 기술된 피어링 서비스에 대한 하나의 예시적인 구현은 제품 업데이트 서비스 구현 및 공유된 에이전트를 가지는 서비스 가능한 애플리케이션이다. 상기 에이전트는 안티-바이러스 애플리케이션 및 방화벽 애플리케이션에 의해 공유된다. 피어링 서비스는 제품 업데이트 서비스 및 업데이트 서비스를 수행하는 구성요소들, 즉 HTTP 서버를 가지는 피어링 서버, 피어링 클라이언트를 포함하는 단일 DLL 로 캡슐화된다.
제품 업데이트 서비스는 만일 요청할 것이 있다면 무엇을 업데이트할 것인 지를 결정한다. 제품 업데이트 서비스가 업데이트가 필요하다고 결정하면, 서비스 클라이언트는 필요한 제품 업데이트들을 위한 특정 URL을 요청하기 위해 "I need" 패킷을 브로드캐스트한다. 즉, 피어링 서비스는 서비스 가능한 애플리케이션, 그것의 엔진, 및 그것의 바이러스 서명 파일을 최신버전으로 유지하기 위한 메카니즘을 제공한다.
특히, 제 1 컴퓨터 또는 노드를 부팅하는 경우에, 그 제품 업데이터는 상술된 URL에서 myupdate.cab 파일을 요청하는 "I need" 패킷을 브로드캐스트한다. 예를 들어 대략 7-8k 크기의 myupdate.cab 파일은 제품 업데이터가 업데이트가 필요한지 여부를 결정할 수 있도록, 이용가능한 최신 버전에 대하여 제품, 엔진, 및 바이러스 서명 파일들의 현재 버전을 체크하는 방법에 대한 지시사항들을 가진 스크립트를 포함한다. 이러한 파일은 은닉될 수 없으므로, 서비스 서버들은 그파일을 제공할 수 없고, 대신에 인터넷을 통하여 직접 얻을 수 있다.
제품 업데이트 서비스가 myupdate.cab 파일에 기초하여 업데이트가 필요한 지 여부를 결정하는 경우에, 피어링 서비스를 통한 제품 업데이트 서비스는 네트워크를 통하여 "I need" 패킷을 브로드캐스트한다. 업데이트는 엔진, DAT, 및/또는 제품 업데이트를 포함할 수 있다. 인터넷으로부터 직접 및/또는 네트워크상의 하나 이상의 피어들로부터 다운로드되는 임의의 업데이트 파일들에 대하여, 제품 업데이트 서비스는 업데이트들이 디지털적으로 서명되었다고 보증하도록 체크하는 것이 바람직하다. 일단 업데이트들이 인증되면, 이들은 요청중인 노드에 설정된다.
제품 업데이트 서비스는 다양한 이벤트들의 발생시 및/또는 임의의 적절한 사전 규정된 간격들에서의 업데이트들을 체크한다. 예를 들어, 제품 업데이트 서비스는 부팅시에 또는 부팅후 5 분 있다가, 각각의 비성공적인 체크후 6 시간 있다가, 및/또는 하루에 한 번 예정된 원칙에 따라, 각각의 성공적인 체크후에 매 12 시간마다 한 번과 같이 예정된 원칙에 따라 업데이트들을 체크할 수 있다.
업데이트는 바이러스 서명 파일 (DAT) 들, 엔진, 및/또는 제품 업데이트를 포함할 수 있다. DAT 들은 통상적으로 1 주일중 특정날에 매주 업데이트되며, 평균적으로 대략 900 내지 950k 의 크기를 갖는다. 엔진은 통상 2 내지 3 개월 마다 업데이트되며, 평균적으로 대략 550 내지 600k 의 크기를 갖는다. 상기 제품은 통상적으로 매 6 내지 8 주정도 이용가능하게 되는 핫 픽스들로서, 또는 통상적으로 매 4 내지 6 개월정도 이용가능하게 되는 새로운 버전들로서 업데이트되고, 평균적으로 대략 700 내지 750k의 크기를 갖는다.
본 예에 있어서, 엔진, 바이러스 서명 파일들, 및 제품을 포함하는 완전한 업데이트는 전체적으로 대략 2.25M 가 되는 6 개의 *.cab 파일들을 포함한다. 이하, 업데이트용인 6 개의 *.cab 파일들과 그들 각각의 평균 크기들을 목록화한다.
Myavdat. YYMMDDHHMM.cab 평균 910 k
Myxtrdat. YYMMDDHHMM.cab 평균 16 k
Mycioagt. YYMMDDHHMM.cab 평균 370 k
Vsasap. YYMMDDHHMM.cab 평균 360 k
Vseng9x. YYMMDDHHMM.cab 평균 240 k
Vsengine. YYMMDDHHMM.cab 평균 340 k
임의의 개수의 이러한 *.cab 파일들을 업데이트할 필요가 있으므로, 각 파일을 개별처리 시에 피어링 서비스를 통하여 요청하는 것이 바람직하다. 따라서, 필요한 *.cab 파일의 몇몇 또는 모두를 다른 노드들 및/또는 인터넷으로부터 얻을 수 있다.
도 8 은 피어 투 피어 네트워크를 통해 서비스 가능한 제품 업데이팅 애플리케이션에 의해 구현되는 예시적인 보안 제품 업데이팅 처리 (240) 를 나타내는 흐름도이다. 단계 242 에서, 서비스 가능한 제품 업데이팅 애플리케이션은 제품의 현재 버전에 대한 파일들의 리스트를 포함하는 목록을 검색한다. 단계 244 에서, 서비스 가능한 제품 업데이트 애플리케이션은 업데이트가 필요한지 여부를결정하도록 목록에 포함된 정보를 노드에 현재 설치된 버전들과 비교한다. 새로운 버전이 유용한 경우에, 단계 246 에서 서비스 가능한 제품 업데이트 애플리케이션은 새로운 버전을 검색한다. 그렇지 않으면, 상기 처리 (240) 는 종료한다.
바람직하기로는, 새로운 버전은 현재 설정된 버전을 설정하는 경우에 상기 애플리케이션이 마지막으로 사용되는 URL 과 다른 특정 URL을 업데이트시에 요청할 수 있도록 특정 버전에 의해 결정되는 유일한 URL 에 위치된다. 예를 들어, VsASap.CAB 의 파일명은 만일 이것이 2001년 1 월 13 일, PM 3:11 에 배포된 경우에 파일명이 VsASaP.200101131511.CAB 으로 되도록, 파일명내에 타임스탬프의 인코딩을 포함함으로써, 유일한 URL 을 발생시킬 수 있다.
URL들의 유일한 명칭은 서비스 가능한 제품 업데이팅 애플리케이션이 특정 URL 들의 로컬 카피들을 배치시키려 하기 때문에 바람직하다. 따라서, 업데이팅 애플리케이션은 파일명으로 인코딩된 부가적인 버전 정보없이 이전의 VsASaP.CAB 파일의 은닉된 카피와 VsASap.CAB 파일의 가장 최신 버전의 카피 사이를 구별할 수 없다. 이러한 유일한 파일명을 사용하여, 상기 업데이팅 애플리케이션은 상기 애플리케이션이 업데이트 목록에 리스트화된 소정의 파일을 얻을 수 있다는 확신을 가지고, 로컬 네트워크 세그먼트상의 VsASap.200101131511.CAB 의 카피를 검색하는 서비스를 요청할 수 있다.
단계 248 에서, 제품 업데이팅 애플리케이션은 검색된 데이터의 완전성을 검증하는 것이 바람직하다. 이러한 완전성의 검증은 특히 검색된 데이터가 실제실행가능한 2 진수들일 경우에, 매우 바람직하다. 또한, 안티-바이러스 제품 업데이트들과 네트워크에 분배되는 서명 파일들과 같은 잠재적인 임계 데이터를 포함하는 데이터 패킷들에 대해서, 보안은 큰 관심사이다. 또한, 피어 투 피어 분포는 데이터 파일들의 분배자가 파일들을 분배하는 피어 서버들을 제어하지 못 하므로, 더욱 공격받기 쉽다. 따라서, 서비스 가능한 업데이팅 애플리케이션은 업데이트가 절충되지 않고 적절히 버전화되도록 보증하기 위하여, 단계 248 에서 디지털 서명 및 버전 정보 보안 수단을 구현하는 것이 바람직하다.
특히, 단계 248 은 디지털 서명 또는 인증으로 사인되는 검색된 데이터 파일의 컨텐츠가 디지털 서명 보안 수단의 사용으로 변경되지 않는다고 검증하는 단계를 포함할 수 있다. 특히, 디지털 서명은 상기 디지털 서명이 오리지날 소스로부터 다운로드된 후에 파일 컨텐츠가 변경되지 않는다고 검증, 즉 파일의 신빙성을 검증하기 위해 인증된다. 1024 비트 VeriSign 인증과 같은 임의의 적절한 디지털 서명 인증 툴을 이용할 수 있다.
또 다른 소망의 보안장치로서, 단계 248 은 상술된 파일로서 성공적인 매스커레이딩 (masquerading) 으로부터 리네임되는 검색 데이터 파일을 보호하기 위하여 부가적으로 또는 선택적으로 버전 정보 보안 수단을 포함할 수 있다. 파일명은 파일의 버전을 나타내도록 이용되므로, 이전 파일은 요청된 파일로 리네임될 수 있다. 절충된 파일은 서명되고 변경되지 않지만, 잠재적으로는 그 컨텐츠가 구식으로 되거나 현재의 버전과 호환될 수 없다. 따라서, 버전 정보 보안 수단이 선호된다.
바람직한 실시예에 따르면, 상기 파일이 실제로 소망의 파일임을 검증하는데 부가적으로 인코딩된 데이터를 이용할 수 있도록, 디지털적으로 서명된 파일내에 버전 정보를 포함하는 데이터의 부가적인 블록을 인코딩함으로써 상기 버전 정보 보안 수단을 구현할 수 있다. 제품 업데이팅의 경우에, 패키지의 오리지날 파일명을 상술하기 위하여 MyUpdate.cab 파일에 선택적으로 cabinfo.ini 파일을 부가한다. 따라서, 현재의 업데이트 파일명을 매치시키기 위하여 서비스 서버상의 이전의 파일을 리네임한 경우에, 그 파일에 삽입된 파일 명세 (description) 는 클라이언트상의 MyUpdate.cab 파일에 포함된 명세와 매치하지 않아, 그 업데이트 파일은 거부된다.
최종적으로, 단계 250 에서, 제품 업데이트 애플리케이션은 노드에 업데이트 패키지를 설치한다.
상술한 바와 같이, 피어링 서비스는 인트라넷을 통해 LAN 과 같은 네트워크상의 클라이언트 머신들 사이에 파일들을 분배하기 위하여, 안전한 피어 투 피어 통신을 이용함으로써 인터넷을 통하여 제품 업데이트 파일들과 같은 파일들 또는 다른 자원들을 얻어야 하는 서비스 클라이언트들의 개수를 감소시키거나 최소화하는데 용이하다. 피어링 서비스는 네트워크 관리자 또는 최종 사용자에 상관 없이 서비스 클라이언트들 사이에 업데이트 파일들을 안전하게 자동 분배하여, 네트워크 대역폭에 최소한의 영향을 주는 최신의 안티-바이러스 및 방화벽 애플리케이션/서비스를 유지한다.
종종, 네트워크상의 많은 컴퓨터들은 가장 최신의 안티-바이러스 및/또는 방화벽 파일들을 갖고 있지 않는다. 안전한 피어링 서비스를 이용하여 이러한 파일들의 자동 안전 업데이팅을 허용하고, 또한 안티-바이러스 파일 업데이트들을 스크립트하는 네트워크 관리자에 대한 필요성을 감소 또는 제거한다. 또한, 고속 LAN 에 의한 로컬 네트워크에 따라 자원들을 이용하고 로드를 유효하게 분산시킴으로써, 인터넷으로부터 업데이트 파일들을 얻는 컴퓨터들로부터의 대역폭 크런치 (crunch) 가 크게 감소된다. 따라서, 피어링 서비스는 필요한 파일들을 얻기 위하여 인터넷에 접속하는데 필요한 최소 개수의 컴퓨터들로 제품 업그레이드 및 업데이트들의 분배를 용이하게 하여 인터넷 대역폭의 사용을 감소시킨다.
또한, 피어링 서비스는 몇몇 부가적인 네트워크 호프 (hop) 들을 필요로 하는 중심 서버에 접속하기 보다 소정의 클라이언트가 네트워크상의 임의의 노드로부터 데이터 파일들을 얻도록 함으로써, 업데이트들을 분배하기 위하여 네트워크 대역폭을 최적으로 이용한다.
도 9 및 도 10 은 각각 여기서 기술된 방법들 및 처리들을 구현하는 소프트웨어 프로그램들을 실행하는데 적합한 범용 컴퓨터 시스템 (1000) 의 예에 대한 개략도 및 블록도이다. 여기에 나타내고 기술된 컴퓨터 시스템 (1000) 의 구조 및 구성은 단지 예시적이며, 다른 컴퓨터 시스템 구조들 및 구성들을 또한 이용할 수 있다.
예시적인 컴퓨터 시스템 (1000) 은 디스플레이 (1003), 스크린 (1005), 캐비넷 (1007), 키보드 (1009), 및 마우스 (1011) 를 포함한다. 마우스 (1011) 는 스크린 (1005) 상에 디스플레이될 수 있는 GUI (graphical user interface) 와 상호 작용하는 하나 이상의 버튼들을 가질 수 있다. 통상, 캐비넷 (1007) 은 컴퓨터 판독가능한 저장 매체 (1015) 를 판독하는 하나 이상의 드라이브들, 시스템 메모리 (1053), 및 하드 드라이브 (1055) 를 수용하며, 이것들의 임의의 결합은 예를 들어 소프트웨어 프로그램들로 사용하는 데이터 및/또는 여기에 기술된 방법들 및 처리들을 구현하는 컴퓨터 코드들을 통합하는 소프트웨어 프로그램들을 저장 및/또는 검색하는데 사용될 수 있다. 프로그램 코드 또는 컴퓨터의 예들은 예를 들어 컴파일러에 의해 생성되는 바와 같이 기계 코드 또는 인터프리터를 이용하여 실행될 수 있는 더 높은 레벨 코드를 포함하는 파일들을 포함한다.
컴퓨터 판독가능한 매체는 다양한 컴퓨터 구현 동작들을 수행하는 프로그램 코드를 저장할 수 있고, 컴퓨터 저장 제품들로서 포함될 수 있다. CD-ROM 및 플로피 디스크 (1015) 를 해당 CD-ROM 또는 플로피 디스크 드라이브 (103) 에 의해 판독할 수 있는 예시적인 컴퓨터 판독가능한 저장 매체로서 나타내었지만, 컴퓨터 판독가능한 저장 매체의 임의의 다른 결합을 이용할 수도 있다. 통상, 컴퓨터 판독가능한 매체는 컴퓨터 시스템에 의해 판독가능한 데이터를 저장할 수 있는 임의의 데이터 저장 장치를 가리킨다. 컴퓨터 판독가능한 저장 매체의 예들은 테이프, 플래시 메모리, 시스템 메모리를 포함하며, 하드 드라이브를 선택적으로 또는 부가적으로 이용할 수 있다. 컴퓨터 판독가능한 저장 매체는 하드 디스크들, 플로피 디스크들, 및 자기 테이프와 같은 자기 매체; CD-ROM 디스크들과 같은 광학 매체; 플로피 디스크들과 같은 자기 광학 매체; 및 ASIC (application-specific integrated circuit) 들, PLD (programmabel logic device) 들, 및 ROM과 RAM 장치들과 같은 특별히 구성된 하드웨어 장치들로 분류될 수 있다. 또한, 컴퓨터 판독가능한 저장 매체는 네트워크내에 운반되는 반송파에서 구현되는 디지털 신호들과 같은, 반송파에서 구현되는 디지털 신호들을 포함할 수도 있다. 이러한 네트워크는 컴퓨터 판독가능한 코드가 분산 방식으로 저장되고 실행될 수 있도록 회사 또는 다른 환경내의 인트라넷, 인터넷, 또는 다수의 결합된 컴퓨터들의 임의의 네트워크일 수 있다.
컴퓨터 시스템 (1000) 은 다양한 서브 시스템들을 포함한다. 상기 컴퓨터 시스템 (1000) 의 서브 시스템들은 통상적으로 마이크로프로세서 (1051), 시스템 메모리 (1053), 고정 저장장치 (1055)(하드 드라이브 등), 분리가능한 저장장치 (1057)(CD-ROM 드라이브 등), 디스플레이 어댑터 (1059), 사운드 카드 (1061), 트랜스듀서 (1063)(스피커 및 마이크로폰 등), 네트워크 인터페이스 (1065), 및/또는 스캐너 인터페이스 (1067) 를 포함할 수 있다.
또한, 마이크로프로세서 서브시스템 (1051) 을 CPU (central processing unit) 라 한다. 상기 CPU (1051) 를 단일칩 프로세서 또는 다수의 프로세서들로 구현할 수 있다. CPU (1051) 는 컴퓨터 시스템 (1000) 의 동작을 제어하는 범용 디지털 프로세서이다. 메모리로부터 검색된 명령들을 이용하여, CPU (1051) 는 입력 데이터의 수신 및 조정 뿐만 아니라 출력 장치상의 데이터의 출력 및 표시를 제어한다.
네트워크 인터페이스 (1065) 는 네트워크 접속을 이용하여 CPU (1051) 를 또 다른 컴퓨터, 컴퓨터 네크워크, 또는 원격통신 네트워크에 연결시킨다. 상기CPU (1051) 는 네트워크 인터페이스 (1065) 를 통해 정보를 수신 및/또는 전송한다. 이러한 정보는 데이터 객체들, 프로그램 명령들, 또 다른 네트워크로 지정된 출력 정보를 포함할 수 있다. 인터페이스 카드 또는 유사 장치 및 CPU (1051) 에 의해 구현되는 적절한 소프트웨어를 외부 네트워크에 컴퓨터 시스템 (1000) 을 접속하고 표준 프로토콜들에 따라 데이터를 전송하는데 사용할 수 있다. 즉, 여기에 기술된 방법들 및 처리들은 CPU (1051) 상에서만 실행될 수 있거나 및 또는 처리의 일부를 공유하는 원격 CPU 와 함께 인터넷과 같은 네트워크, 인트라넷 네트워크, 또는 LAN (local area network) 들을 따라 수행될 수 있다. 또한, 부가적인 대규모 저장 장치들 (도시되지 않음) 을 네트워크 인터페이스 (1065) 를 통해 CPU 에 접속할 수 있다.
여기에 기술되는 서브 시스템들은 통상의 컴퓨터 시스템의 서브시스템들의 단지 일례이고, 서브 시스템들의 임의의 다른 적절한 결합을 구현 및 이용할 수 있다. 예를 들어, 또 다른 컴퓨터 시스템은 다중-프로세서 컴퓨터 시스템에서와 같이 캐시 메모리 및/또는 부가적인 프로세서 (1051) 들을 또한 포함할 수 있다.
또한, 상기 컴퓨터 시스템 (1000) 은 시스템 버스 (1069) 를 포함한다. 그러나, 도시된 특정 버스들은 다양한 서브 시스템들을 연결하도록 기능하는 임의의 상호접속 방식의 단지 일례이다. 예를 들어, 로컬 버스를 시스템 메모리 및 디스플레이 어댑터에 중앙 프로세서를 접속하는데 이용할 수 있다.
본 발명의 바람직한 실시예들을 여기에 기술하고 예시하였지만, 이들은 단지 예시적이며 본 발명의 사상 및 범위를 벗어나지 않고 이러한 실시예들을 변경시킬수 있다고 이해하여야 한다. 따라서, 본 발명은 다음의 청구범위에 의해서만 규정되도록 의도된다.
본 발명은 대역폭의 유효한 사용을 용이하게 하도록 피어 투 피어 네트워크 환경에서 자원들을 안전하고 검증가능하게 공유하는 시스템 및 방법을 제공한다.

Claims (21)

  1. 자원들을 피어 투 피어 네트워크를 통해 안전하게 공유하는 방법에 있어서,
    요청 피어 (requesting peer) 에 의해 상기 피어 투 피어 네트워크를 통하여 자원에 대한 요청을 브로드캐스팅하는 단계로서, 상기 요청은 자원 버전 식별자를 포함하는 상기 자원의 식별 동작으로 이루어지는 상기 브로드캐스팅 단계;
    상기 피어 투 피어 네트워크상의 응답 피어로부터 상기 응답 피어가 상기 요청된 자원을 가졌음을 나타내는 응답을 수신하는 단계;
    상기 응답 피어로부터 상기 요청된 자원을 검색하는 단계; 및
    상기 검색된 자원이 상기 자원에 삽입된 버전 식별자를 포함한다고 보증함으로써 상기 검색된 자원을 검증하는 단계를 포함하는 것을 특징으로 방법.
  2. 제 1 항에 있어서,
    상기 검색된 자원을 검증하는 단계는 상기 검색된 자원의 완전성을 보증하기 위하여 상기 검색된 자원의 디지털 서명을 검증하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    상기 디지털 서명은 1024 비트의 VeriSign 디지털 인증인 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 자원을 설정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    자원들의 리스트를 포함하는 목록을 검색하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서,
    상기 피어 투 피어 네트워크를 통하여 어떤 자원들을 요청할 지를 결정하도록, 자원들의 리스트를 상기 요청 피어에 설정된 자원들과 비교하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서,
    요청될 각각의 자원이 동일한 또는 다른 응답 피어로부터 검색될 수 있도록, 개별 트랜잭션에서 요청될 각각의 자원을 요청하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 피어 투 피어 네트워크의 노드에 설정된 제품의 자동 안전 업데이팅을 위한 제품 업데이팅 서비스에 있어서,
    각각 자원 버전 식별자에 의해 식별된 상기 제품의 자원들의 현재 리스트를 포함하는 목록을 소정의 시간으로 자동 다운로딩하는 단계;
    상기 피어 투 피어 네트워크를 통하여 어느 자원들을 요청할 지를 결정하기 위하여, 상기 목록내의 자원들의 리스트와 상기 노드에 설정된 자원들을 비교하는 단계;
    상기 피어 투 피어 네트워크를 통하여 개별 트랜잭션에서 요청될 각각의 자원을 요청하는 단계;
    상기 피어 투 피어 네트워크 및 인터넷의 피어들중 하나로부터 요청될 각각의 자원을 검색하는 단계; 및
    상기 검색된 자원이 상기 자원에 삽입된 상기 버전 식별자를 포함한다고 보증함으로써 각각의 검색된 자원을 검증하는 단계를 포함하는 것을 특징으로 하는 제품 업데이팅 서비스.
  9. 제 8 항에 있어서,
    상기 각각의 검색된 자원을 검증하는 단계는 상기 검색된 자원의 완전성을 보증하도록 각각의 검색된 자원의 디지털 서명을 검증하는 단계를 더 포함하는 것을 특징으로 하는 제품 업데이팅 서비스.
  10. 제 9 항에 있어서,
    상기 디지털 서명은 1024-비트 VeriSign 디지털 인증인 것을 특징으로 하는제품 업데이팅 서비스.
  11. 제 8 항에 있어서,
    상기 검색된 자원들 각각을 설정하는 단계를 더 포함하는 것을 특징으로 하는 제품 업데이팅 서비스.
  12. 소프트웨어 제품의 안전한 업데이팅을 제공하는 방법은,
    인터넷을 통해 상기 제품에 대한 자원들의 현재 리스트를 포함하는 목록을 검색하는 단계; 및
    인터넷을 통해 상기 제품에 대한 상기 자원들을 검색하는 단계를 포함하며,
    각각의 자원은 자원 버전 식별자로 식별되며, 상기 자원에 삽입된 상기 자원 버전 식별자를 포함하는 것을 특징으로 하는 방법.
  13. 제 12 항에 있어서,
    각각의 자원은 디지털 서명을 사용하여 디지털적으로 서명된 것을 특징으로 하는 방법.
  14. 제 13 항에 있어서,
    상기 디지털 서명은 1024-비트 VeriSign 디지털 인증인 것을 특징으로 하는 방법.
  15. 피어 투 피어 네트워크를 통해 자원들을 안전하게 공유하는 컴퓨터 프로그램 제품에 있어서,
    상기 피어 투 피어 네트워크를 통하여 자원의 요청 피어에 의해 요청을 브로드캐스트하는 컴퓨터 코드로서, 상기 요청은 자원 버전 식별자를 포함하는 상기 자원의 식별동작으로 이루어지는 상기 컴퓨터 코드;
    상기 피어 투 피어 네트워크상의 응답 피어로부터 상기 응답 피어가 상기 요청된 자원을 갖는다고 표시하는 응답을 수신하는 컴퓨터 코드;
    상기 응답 피어로부터 상기 요청된 자원을 검색하는 컴퓨터 코드;
    상기 검색된 자원이 상기 자원에 삽입된 상기 버전 식별자를 포함한다고 보증함으로써 상기 검색된 자원을 검증하는 컴퓨터 코드; 및
    상기 컴퓨터 코드들을 저장하는 컴퓨터 판독가능한 매체를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  16. 제 15 항에 있어서,
    상기 검색된 자원을 검증하는 상기 컴퓨터 코드는 상기 검색된 자원의 완전성을 보증하도록 상기 검색된 자원의 디지털 서명을 검증하는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  17. 제 16 항에 있어서,
    상기 디지털 서명은 1024-비트 VeriSign 디지털 인증인 것을 특징으로 하는 컴퓨터 프로그램 제품.
  18. 제 15 항에 있어서,
    상기 자원을 설정하는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  19. 제 15 항에 있어서,
    자원들의 리스트를 포함하는 목록을 검색하는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  20. 제 19 항에 있어서,
    어느 자원들을 상기 피어 투 피어 네트워크를 통해 요청할 지를 결정하도록, 자원들의 상기 리스트를 상기 요청 피어에 설정된 자원들과 비교하는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  21. 제 20 항에 있어서,
    요청될 각각의 자원을 동일한 또는 다른 응답 피어로부터 검색할 수 있도록, 개별 트랜잭션에서 요청될 각각의 자원을 요청하는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
KR1020020018073A 2001-04-06 2002-04-02 피어 투 피어 네트워크 환경내에서 자원들을 안전하고검증가능하게 공유하는 시스템 및 방법 KR20020079425A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US28233301P 2001-04-06 2001-04-06
US60/282,333 2001-04-06
US29868101P 2001-06-15 2001-06-15
US60/298,681 2001-06-15
US09/921,543 US7721110B2 (en) 2001-04-06 2001-08-02 System and method for secure and verified sharing of resources in a peer-to-peer network environment
US09/921,543 2001-08-02

Publications (1)

Publication Number Publication Date
KR20020079425A true KR20020079425A (ko) 2002-10-19

Family

ID=27403297

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020018073A KR20020079425A (ko) 2001-04-06 2002-04-02 피어 투 피어 네트워크 환경내에서 자원들을 안전하고검증가능하게 공유하는 시스템 및 방법

Country Status (4)

Country Link
US (1) US7721110B2 (ko)
EP (1) EP1248438A3 (ko)
JP (1) JP2003032245A (ko)
KR (1) KR20020079425A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100621092B1 (ko) * 2003-11-27 2006-09-08 삼성전자주식회사 P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치
KR100861332B1 (ko) * 2007-02-28 2008-10-01 재단법인서울대학교산학협력재단 무선 네트워크 시스템 및 그의 자원공유방법
KR100871869B1 (ko) * 2007-01-23 2008-12-03 전자부품연구원 디지털기기들의 자원공유를 통한 사용자 서비스 제공방법및 이를 수행하는 디지털기기
KR100965716B1 (ko) * 2002-04-29 2010-06-24 마이크로소프트 코포레이션 서비스 거절 공격 금지 방법 및 컴퓨터 판독가능 기록매체
KR101018911B1 (ko) * 2006-09-18 2011-03-02 인텔 코오퍼레이션 무선 메쉬 네트워크에서의 보안 정책 교섭을 위한 기술

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302634B2 (en) 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7024662B2 (en) 2001-03-14 2006-04-04 Microsoft Corporation Executing dynamically assigned functions while providing services
US6757684B2 (en) * 2001-10-01 2004-06-29 Ipac Acquisition Subsidiary I, Llc Network-based photosharing architecture
US20030079142A1 (en) * 2001-10-22 2003-04-24 Aladdin Knowledge Systems Ltd. Classifying digital object security category
WO2003058877A1 (en) * 2001-12-28 2003-07-17 Woodstock Systems, Llc Personal digital servertm (pdstm)
US20030126199A1 (en) * 2002-01-02 2003-07-03 Kadri Seemab Aslam Peer-to-peer namespace directory and discovery
US7120691B2 (en) * 2002-03-15 2006-10-10 International Business Machines Corporation Secured and access controlled peer-to-peer resource sharing method and apparatus
US20030233483A1 (en) * 2002-04-23 2003-12-18 Secure Resolutions, Inc. Executing software in a network environment
US7178144B2 (en) * 2002-04-23 2007-02-13 Secure Resolutions, Inc. Software distribution via stages
US20040153703A1 (en) * 2002-04-23 2004-08-05 Secure Resolutions, Inc. Fault tolerant distributed computing applications
US20030200300A1 (en) * 2002-04-23 2003-10-23 Secure Resolutions, Inc. Singularly hosted, enterprise managed, plural branded application services
US20040006586A1 (en) * 2002-04-23 2004-01-08 Secure Resolutions, Inc. Distributed server software distribution
US7401133B2 (en) * 2002-04-23 2008-07-15 Secure Resolutions, Inc. Software administration in an application service provider scenario via configuration directives
US9886309B2 (en) * 2002-06-28 2018-02-06 Microsoft Technology Licensing, Llc Identity-based distributed computing for device resources
US7752317B1 (en) * 2002-07-29 2010-07-06 Novell, Inc. Workstation virus lockdown in a distribution environment
US20040039781A1 (en) * 2002-08-16 2004-02-26 Lavallee David Anthony Peer-to-peer content sharing method and system
US7892087B1 (en) * 2002-12-02 2011-02-22 Sca Promotions, Inc. Authentication of game results
US9350752B2 (en) 2003-07-01 2016-05-24 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9100431B2 (en) 2003-07-01 2015-08-04 Securityprofiling, Llc Computer program product and apparatus for multi-path remediation
US8984644B2 (en) 2003-07-01 2015-03-17 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US20070113272A2 (en) 2003-07-01 2007-05-17 Securityprofiling, Inc. Real-time vulnerability monitoring
US9118708B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Multi-path remediation
US9118709B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118710B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc System, method, and computer program product for reporting an occurrence in different manners
US9118711B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US20050034153A1 (en) * 2003-08-08 2005-02-10 Maven Networks, Inc. System and method for delivery of broadband content with integrated interactive elements
US20050044260A1 (en) * 2003-08-08 2005-02-24 Maven Networks, Inc. System and method for delivery of broadband content
US7673143B1 (en) * 2004-02-24 2010-03-02 Sun Microsystems, Inc. JXTA rendezvous as certificate of authority
US7796520B2 (en) * 2004-09-30 2010-09-14 Avaya Canada Corp. System and methods for announcing and locating services in a distributed peer-to-peer network
DE112004003043B4 (de) * 2004-09-30 2022-05-05 Avaya Canada Corp. System und Verfahren zur Bekanntgabe und Lokalisierung von Diensten in einem verteilten Peer-to-Peer-Netzwerk
KR20060063348A (ko) * 2004-12-07 2006-06-12 한국전자통신연구원 인터넷에서 인증 assertion을 이용한 접속시간제어 방법
US7752659B2 (en) * 2005-02-14 2010-07-06 Lenovo (Singapore) Pte. Ltd. Packet filtering in a NIC to control antidote loading
US7958543B2 (en) * 2005-07-12 2011-06-07 Microsoft Corporation Account synchronization for common identity in an unmanaged network
JP4747733B2 (ja) * 2005-08-22 2011-08-17 ブラザー工業株式会社 ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム
US20070086435A1 (en) * 2005-10-19 2007-04-19 Microsoft Corporation Sharing devices on peer-to-peer networks
KR100718271B1 (ko) * 2005-12-02 2007-05-15 (재)대구경북과학기술연구원 하드웨어 디바이스 및 콘텐츠 자원공유를 위한 소프트웨어플랫폼이 장착된 임베디드 전자장치
US20070143446A1 (en) * 2005-12-21 2007-06-21 Morris Robert P Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
US8370928B1 (en) 2006-01-26 2013-02-05 Mcafee, Inc. System, method and computer program product for behavioral partitioning of a network to detect undesirable nodes
US20070226338A1 (en) * 2006-03-23 2007-09-27 Novell, Inc. Registration of peer-to-peer services
US8468131B2 (en) * 2006-06-29 2013-06-18 Avaya Canada Corp. Connecting devices in a peer-to-peer network with a service provider
US8218529B2 (en) * 2006-07-07 2012-07-10 Avaya Canada Corp. Device for and method of terminating a VoIP call
JP5464794B2 (ja) * 2006-07-24 2014-04-09 コニカミノルタ株式会社 ネットワーク管理方法およびネットワーク管理システム
US8254568B2 (en) 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US8103272B2 (en) * 2007-01-07 2012-01-24 Apple Inc. Techniques for database updates
US8239688B2 (en) 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US8316364B2 (en) * 2007-02-28 2012-11-20 Red Hat, Inc. Peer-to-peer software update distribution network
US20080288882A1 (en) * 2007-05-15 2008-11-20 Thomas Andrew Fink Systems and methods for privacy service
US8069251B2 (en) 2007-06-01 2011-11-29 Adobe Systems Incorporated System and/or method for client-driven server load distribution
US8239548B2 (en) * 2007-07-17 2012-08-07 Adobe Systems Incorporated Endpoint discriminator in network transport protocol startup packets
US8060855B2 (en) * 2007-10-09 2011-11-15 Microsoft Corporation Artifact sharing from a development environment
US8145698B1 (en) 2008-01-03 2012-03-27 Adobe Systems Incorporated Self organizing peer-to-peer system, method, and/or apparatus
US20090187978A1 (en) * 2008-01-18 2009-07-23 Yahoo! Inc. Security and authentications in peer-to-peer networks
US8171147B1 (en) 2008-02-20 2012-05-01 Adobe Systems Incorporated System, method, and/or apparatus for establishing peer-to-peer communication
US8856088B2 (en) * 2008-04-01 2014-10-07 Microsoft Corporation Application-managed file versioning
US20090259855A1 (en) * 2008-04-15 2009-10-15 Apple Inc. Code Image Personalization For A Computing Device
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US8341401B1 (en) 2008-05-13 2012-12-25 Adobe Systems Incorporated Interoperable cryptographic peer and server identities
US8312147B2 (en) * 2008-05-13 2012-11-13 Adobe Systems Incorporated Many-to-one mapping of host identities
US8301903B2 (en) * 2009-02-27 2012-10-30 Research In Motion Limited Low-level code signing mechanism
US8769373B2 (en) 2010-03-22 2014-07-01 Cleon L. Rogers, JR. Method of identifying and protecting the integrity of a set of source data
US8782173B2 (en) * 2010-03-23 2014-07-15 International Business Machines Corporation Auditable distribution of a data file
US9578041B2 (en) * 2010-10-25 2017-02-21 Nokia Technologies Oy Verification of peer-to-peer multimedia content
WO2013122571A1 (en) * 2012-02-14 2013-08-22 Intel Corporation Peer to peer networking and sharing systems and methods
US20130326494A1 (en) * 2012-06-01 2013-12-05 Yonesy F. NUNEZ System and method for distributed patch management
US8978160B2 (en) * 2012-09-12 2015-03-10 GM Global Technology Operations LLC Method for selective software rollback
US9219782B2 (en) * 2012-12-11 2015-12-22 Microsoft Technology Licensing, Llc Identifying seed computing devices using estimates in peer-to-peer networks
US8938730B2 (en) * 2012-12-17 2015-01-20 Itron, Inc. Utilizing a multi-system set configuration to update a utility node system set
US10075385B1 (en) 2014-07-16 2018-09-11 Ivanti, Inc. Systems and methods for discovering and downloading configuration files from peer nodes
US9628485B2 (en) * 2014-08-28 2017-04-18 At&T Intellectual Property I, L.P. Facilitating peering between devices in wireless communication networks
US9800659B2 (en) * 2015-02-02 2017-10-24 International Business Machines Corporation Enterprise peer-to-peer storage and method of managing peer network storage
US10180845B1 (en) 2015-11-13 2019-01-15 Ivanti, Inc. System and methods for network booting
KR101893518B1 (ko) * 2016-10-28 2018-10-04 한국전자통신연구원 제어 시스템의 업데이트 관리 장치, 업데이트 검증 장치 및 그 방법
CN110839235B (zh) * 2018-08-17 2022-07-05 中兴通讯股份有限公司 一种终端升级方法、装置、设备及计算机可读介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0685835A (ja) * 1992-09-07 1994-03-25 Fujitsu Ltd 端局間高速伝送を行う三階層通信処理方式
EP0826181A4 (en) * 1995-04-11 2005-02-09 Kinetech Inc IDENTIFYING DATA IN A DATA PROCESSING SYSTEM
US6298445B1 (en) * 1998-04-30 2001-10-02 Netect, Ltd. Computer security
US6317754B1 (en) * 1998-07-03 2001-11-13 Mitsubishi Electric Research Laboratories, Inc System for user control of version /Synchronization in mobile computing
EP0993163A1 (en) * 1998-10-05 2000-04-12 Backweb Technologies Ltd. Distributed client-based data caching system and method
FI990461A0 (fi) * 1999-03-03 1999-03-03 Nokia Mobile Phones Ltd Menetelmä ohjelmiston lataamiseksi palvelimelta päätelaitteeseen
US6986134B1 (en) * 1999-03-16 2006-01-10 Sun Microsystems, Inc. Lightweight global distribution mechanism
US6742023B1 (en) * 2000-04-28 2004-05-25 Roxio, Inc. Use-sensitive distribution of data files between users
US7373643B2 (en) * 2001-03-06 2008-05-13 Cybersoft, Inc. Apparatus, methods and articles of manufacture for data transmission
US7047406B2 (en) * 2001-03-21 2006-05-16 Qurlo Holdings, Inc. Method and system for providing a secure peer-to-peer file delivery network

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100965716B1 (ko) * 2002-04-29 2010-06-24 마이크로소프트 코포레이션 서비스 거절 공격 금지 방법 및 컴퓨터 판독가능 기록매체
KR100621092B1 (ko) * 2003-11-27 2006-09-08 삼성전자주식회사 P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치
KR101018911B1 (ko) * 2006-09-18 2011-03-02 인텔 코오퍼레이션 무선 메쉬 네트워크에서의 보안 정책 교섭을 위한 기술
KR100871869B1 (ko) * 2007-01-23 2008-12-03 전자부품연구원 디지털기기들의 자원공유를 통한 사용자 서비스 제공방법및 이를 수행하는 디지털기기
KR100861332B1 (ko) * 2007-02-28 2008-10-01 재단법인서울대학교산학협력재단 무선 네트워크 시스템 및 그의 자원공유방법

Also Published As

Publication number Publication date
US7721110B2 (en) 2010-05-18
JP2003032245A (ja) 2003-01-31
EP1248438A3 (en) 2003-10-01
EP1248438A2 (en) 2002-10-09
US20030163702A1 (en) 2003-08-28

Similar Documents

Publication Publication Date Title
KR20020079425A (ko) 피어 투 피어 네트워크 환경내에서 자원들을 안전하고검증가능하게 공유하는 시스템 및 방법
US7055036B2 (en) System and method to verify trusted status of peer in a peer-to-peer network environment
US7620816B1 (en) System and method for automatic selection of service provider for efficient use of bandwidth and resources in a peer-to-peer network environment
US6983326B1 (en) System and method for distributed function discovery in a peer-to-peer network environment
KR101322947B1 (ko) 네트워크에서의 파일의 분산 캐싱
US10331501B2 (en) USB device redirection for remote systems
US7181506B1 (en) System and method to securely confirm performance of task by a peer in a peer-to-peer network environment
KR100713627B1 (ko) 피어-투-피어 소프트웨어 배포 시스템
US7155487B2 (en) Method, system and article of manufacture for data distribution over a network
US7783777B1 (en) Peer-to-peer content sharing/distribution networks
US8108455B2 (en) Mobile agents in peer-to-peer networks
US20060130045A1 (en) Systems and methods for dynamically updating computer systems
US7254608B2 (en) Managing distribution of content using mobile agents in peer-topeer networks
JP4734592B2 (ja) クライアントリダイレクトによるプライベートネットワークへの安全なアクセス提供方法およびシステム
US20160380969A1 (en) Systems and methods for detecting undesirable network traffic content
US20070038681A1 (en) System and method of remote storage of data through connection from a server to a client
US20050091167A1 (en) Interdiction of unauthorized copying in a decentralized network
JP2009536377A (ja) リモートユーザに対するコンピューティング環境の提供を加速するためのシステムおよび方法
EP1810156A2 (en) Demand based method for interdiction of unauthorized copying in a decentralized network
US20080320300A1 (en) Authorisation and Authentication
US7398388B2 (en) Increasing peer privacy
CN109491887A (zh) 测试环境部署方法、装置、计算机设备及存储介质
CN113079210A (zh) 一种跨区数据自动同步的配置方法、终端设备及存储介质
JP2006025211A (ja) ピアツーピア端末装置並びにピアツーピア通信システム、ピアツーピア通信方法、ピアツーピア端末プログラム
Kokkinen Peer-to-peer API–abstract specification

Legal Events

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