KR101322947B1 - Distributed caching of files in a network - Google Patents

Distributed caching of files in a network Download PDF

Info

Publication number
KR101322947B1
KR101322947B1 KR1020087003133A KR20087003133A KR101322947B1 KR 101322947 B1 KR101322947 B1 KR 101322947B1 KR 1020087003133 A KR1020087003133 A KR 1020087003133A KR 20087003133 A KR20087003133 A KR 20087003133A KR 101322947 B1 KR101322947 B1 KR 101322947B1
Authority
KR
South Korea
Prior art keywords
peer
file
computer
computer system
list
Prior art date
Application number
KR1020087003133A
Other languages
Korean (ko)
Other versions
KR20080047353A (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
Priority to US11/215,621 priority Critical
Priority to US11/215,621 priority patent/US7512943B2/en
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Priority to PCT/US2006/030445 priority patent/WO2007027361A2/en
Publication of KR20080047353A publication Critical patent/KR20080047353A/en
Application granted granted Critical
Publication of KR101322947B1 publication Critical patent/KR101322947B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/104Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks
    • 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 supporting authentication of entities communicating through a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/104Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks
    • H04L67/1061Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks involving node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/104Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks
    • H04L67/1061Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks involving node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/16Service discovery or service management, e.g. service location protocol [SLP] or Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Abstract

파일의 분산 캐싱 및 다운로드에 관한 것이다. It relates to a distributed caching and downloading of files. 네트워크로 연결된 하나 이상의 컴퓨터들 중에서 잠재적 피어 서버들의 목록을 포함하는 피어 목록을 구축하는 것을 포함하는 방법이 설명된다. Among the more than one computer connected to the network it is described a method comprises establishing a potential peer to peer list includes a list of servers. 피어 목록은 미리 결정된 수 이하의 잠재적 피어 서버들만을 포함한다. Peer list in advance can contain only potential peer servers in less determined. 피어 목록의 잠재적 피어 서버들은 파일 또는 파일의 부분에 대해 쿼리된다. The potential of peer-peer server list are queried for the portion of the file or files. 다운로드 가능한 파일 또는 파일의 부분을 피어 서버가 가지고 있음을 나타내는 메시지가 피어 목록의 피어 서버로부터 수신된다. The download message indicating that the peer of the available files or file server has received from a peer server in the peer list. 컴퓨터 시스템은 그 피어 서버로부터 파일 또는 파일의 부분을 다운로드한다. Computer system download of a file or files from the peer server.
캐싱, 파일 공유, 네트워크, 피어 서버 Caching, file sharing, network, peer server

Description

네트워크에서의 파일의 분산 캐싱{DISTRIBUTED CACHING OF FILES IN A NETWORK} Distributed caching of files in a network {DISTRIBUTED CACHING OF FILES IN A NETWORK}

네트워크 컴퓨팅은 컴퓨터가 서버들로부터 소프트웨어 및 파일 컨텐트를 요청하고 수신하여 컴퓨터에 설치 및/또는 저장할 수 있도록 한다. Network Computing enables computers to request the software and content files from the server and receive the installation and / or save to your computer. 파일 컨텐트는, 예를 들어, 텍스트 파일, 비디오 파일, 데이터 파일, 이미지 파일 등을 포함할 수 있다. File content, for example, can include text files, video files, data files, image files, and so on. 소프트웨어는 시스템 소프트웨어 업데이트, 애플리케이션 소프트웨어 업데이트, 및 데이터 파일 업데이트를 포함하는 여러 목적을 위해 요청되고 다운로드될 수 있다. The software can be requested for a variety of purposes, including the system software updates, application software updates, and update the data files being downloaded. 예를 들어, 컴퓨터 시스템에 대한 공격을 막거나 제거하도록 운영 체제를 업데이트하기 위해 보안 패치가 다운로드될 수 있다. For example, a security patch can be downloaded to update the operating system to prevent or eliminate attacks on computer systems. 또한, 컴퓨터에 새로운 애플리케이션을 설치하기 위해 소프트웨어가 다운로드될 수 있다. In addition, the software can be downloaded to install new applications on your computer. 한 예시적인 시스템에서, 소프트웨어는 후선(background)에서 다운로드되어, 컴퓨터 및 컴퓨터 사용자가 다른 태스크를 수행하는 동안 소프트웨어가 다운로드될 수 있다. In an exemplary system, the software is downloaded from the back-office (background), a computer and computer software to a user can be downloaded during the different tasks. 이 기능을 가진 한 예시적인 서비스가 BITS(Background Intelligent Service)이다. The exemplary service with this feature is a BITS (Background Intelligent Service).

종종, 소프트웨어가 게시되어 서버로부터의 다운로드가 가능할 때, 이 소프트웨어를 동시에 또는 매우 짧은 시간 내에 획득하고자 하는 다수의 컴퓨터들이 네트워크에 존재한다. Often, the software is downloaded from the post when the server is available, there are a large number of computers within the network to obtain the software at the same time or very short time. 예를 들어, 소프트웨어가 보안 패치일 경우, 컴퓨터 또는 네트워크에 대한 악성 공격을 막기 위해서 이 소프트웨어를 가능한 한 짧은 시간 내 에 가능한 많은 컴퓨터들에게 전달하고자 하는 요구가 있다. For example, the software there is a need to be communicated to the security patch one case, within as short a time as many computers as possible in the available software to prevent malicious attacks on your computer or network. 소프트웨어가 기업 캠퍼스(corporate campus) 내의 시스템 광역 배포(system wide distribution)를 위한 새로운 애플리케이션일 경우, 짧은 시간 내에 소프트웨어 시스템을 배포하고자 하는 요구가 있을 수 있다. If the software is one of new applications for broadband deployment system (system wide distribution) within the enterprise campus (corporate campus), it may be required to deploy a software system in a short period of time. 소프트웨어가 매우 기대되는 릴리스인 경우, 이 소프트웨어를 처음으로 사용하는 사람들 중 하나가 되기 위해 다수의 사용자들이 소프트웨어를 다운로드하고자 할 수 있다. If the release of the software is highly anticipated, a number of users may wish to download the software to become one of the first people to use the software. 소프트웨어를 대규모로 배포하는 것은 다량의 서버 및 네트워크 용량을 필요로 할 수 있다. Deploying the software on a large scale can require large amounts of server and network capacity. 다수의 지점(branch office)이 기업 본점의 엔터프라이즈 허브(enterprise hub)와 연결된 네트워크 환경에서 특히 이러한 대규모 다운로드가 어려울 수 있다. Number of points (branch office) may be particularly difficult in such a large download that is associated with an enterprise hub of the corporate headquarters (enterprise hub) network environment. 이 예에서, 소프트웨어가 엔터프라이즈 허브로부터 배포될 때, 엔터프라이즈 허브의 서버가 지점의 여러 또는 모든 컴퓨터에 소프트웨어를 제공하기에 충분한 기능을 가지고 있을 때에도, 엔터프라이즈 허브와 지점 간의 네트워크 연결은 특정 시간에 업데이트될 수 있는 컴퓨터의 수를 제한할 수 있다. In this example, the software when deployed from the Enterprise Hub, when you have the enterprise hub server has enough features to provide software to multiple or all of the computers in the branch office network connections between enterprise hubs and points to be updated at a specific time the number of computers that can be restricted.

대규모 다운로드의 작업 부하(workload)를 분산하기 위해 사용된 여러 방법들이 있다. There are several methods used to distribute the workload (workload) of a large download. 예를 들어, 기업 환경에서, 새로운 소프트웨어를 배포하는 것은 주어진 시간에 네트워크 상의 제한된 수의 컴퓨터들에게만 소프트웨어를 배포함으로써 이루어질 수 있다. For example, it is, deploying new software in an enterprise environment can be achieved by deploying the software only to the limited number of computers on the network at any given time. 대안적으로, 네트워크의 컴퓨터들의 부분집합에 소프트웨어를 배포하기 위해서 네트워크 내에 캐싱 프록시가 놓일 수 있다. Alternatively, a caching proxy can be placed within the network to deploy the software on a subset of computers in your network. 이러한 해결책들은 둘 다 구현을 위해 세심한 계획이 필요하다. This solution will require careful planning to implement both. 이에 더해, 캐싱 프록시의 경우에, 추가적인 컴퓨터 하드웨어가 네트워크에 추가되어 네트워크의 비용을 증가시킨다. In addition, in the case of caching proxies, additional computer hardware is added to the network increasing the cost of the network.

배경기술에서 다양한 논점들이 확인되었지만, 아래에 청구되는 본 발명은 반드시 어떤 또는 모든 확인된 논점을 다루지는 않는다. Various issues have been identified in the background art, the present invention claimed below are not necessarily cover some or all of the identified issues. 이 배경기술은 단순히 여기에 설명되는 실시예들이 실행될 수 있는 한 예시적인 환경에 대한 배경을 제공하기 위한 것이다. This background art is simply to provide background on one exemplary environment that can be executed to the embodiments set forth herein.

<발명의 개요> <Outline of the invention>

여기에 설명된 한 실시예는 파일을 캐싱 및 공유하기 위한 방법을 포함한다. Here the embodiments described include a method for caching and sharing files. 이 방법은 예를 들어, 네트워크로 연결된 하나 이상의 컴퓨터를 포함하는 컴퓨터 네트워크의 컴퓨터 시스템에서 실행될 수 있다. This method is, for example, may be implemented in a computer system of a computer network including one or more networked computers. 이 방법은 네트워크로 연결된 하나 이상의 컴퓨터들 중에서 잠재적인 피어 서버들의 목록을 포함하는 피어 목록을 구축하는 것을 포함한다. The method involves building a peer list that includes a list of potential peer servers from among more than one computer connected to the network. 피어 목록은 미리 결정된 수(predetermined number) 이하의 잠재적 피어 서버들만을 포함한다. Peer list will include only the predetermined number of potential peer servers or less (predetermined number) determined. 피어 목록의 잠재적 피어 서버들은 파일 또는 파일의 부분에 대해 쿼리된다. The potential of peer-peer server list are queried for the portion of the file or files. 다운로드 가능한 파일 또는 파일의 부분을 피어 서버가 가지고 있음을 나타내는 메시지가 피어 목록의 한 피어 서버로부터 수신된다. The download message indicating that the peer of the available files or file server has received from a peer server in the peer list. 컴퓨터 시스템이 그 피어 서버로부터 파일 또는 파일의 부분을 다운로드한다. The computer system may download part of a file or files from the peer server.

여기에 설명된 또 다른 실시예가 파일을 캐싱 및 공유하기 위한 방법을 포함한다. In another embodiment described herein it includes a method of caching and sharing files. 이 방법은 예를 들어, 네트워크로 연결된 하나 이상의 컴퓨터를 포함하는 컴퓨터 네트워크의 컴퓨터 시스템에서 실행될 수 있다. This method is, for example, may be implemented in a computer system of a computer network including one or more networked computers. 이 방법은 컴퓨터 시스템이 피어로서 사용가능하다는 메시지를 송신하는 것을 포함한다. The method includes sending a message that the computer system is available as a peer. 컴퓨터 시스템은 컴퓨터 시스템이 파일 또는 파일의 부분을 가지고 있는지를 알아내기 위한 요청을 수신한다. The computer system receives a request to find out whether a computer system with a portion of the file or files. 컴퓨터 시스템은 컴퓨터 시스템이 파일 또는 파일의 부분을 가지고 있다는 메시지를 송신한다. The computer system sends a message that the computer system has a portion of the file or files. 컴퓨터 시스템이 파일 또는 파일의 부분을 가지고 있다는 메시지를 송신하는 것은 동적 옵트-인(opt-in)/옵트-아웃(opt-out) 규칙에 기초하여 수행된다. It sends a message that the computer system has the file or portion of a file, the dynamic opt-out is performed based on (opt-out) rule-in (opt-in) / opt. 컴퓨터 시스템은 파일을 다운로드하기 위한 요청을 수신한다. The computer system receives a request to download a file. 컴퓨터 시스템은 요청하는 시스템으로 파일을 송신한다. The computer system sends the file to the requesting system.

여기에 설명된 또 다른 실시예가 파일을 캐싱 및 공유하기 위한 방법을 포함한다. In another embodiment described herein it includes a method of caching and sharing files. 이 방법은 예를 들어, 네트워크로 연결된 하나 이상의 컴퓨터를 포함하는 컴퓨터 네트워크의 컴퓨터 시스템에서 실행될 수 있다. This method is, for example, may be implemented in a computer system of a computer network including one or more networked computers. 컴퓨터 시스템이 잠재적인 피어를 발견하기 위해 서브넷 상의 컴퓨터 시스템들에게 브로드캐스트 신호를 송신한다. For the computer system to discover potential peers transmit the broadcast signal to the computer systems on the subnet. 컴퓨터 시스템은 서브넷의 컴퓨터 시스템 중 하나로부터 유니캐스트, 또는 대안적으로 멀티캐스트 신호를 수신한다. The computer system receives a multicast signal from one of the subnets of the computer system as a unicast, or alternatively. 컴퓨터 시스템은 서브넷의 컴퓨터 시스템 중 상기 하나를 피어 목록에 추가한다. A computer system added to the peer list for the one of the computer systems on the subnet. 피어 목록은 미리 결정된 수 이하의 피어들만을 포함한다. Peer list may include only the predetermined number of peers or less. 컴퓨터 시스템은 컴퓨터 시스템 중 상기 하나가 다운로드할 수 있는 파일 또는 파일의 부분을 가지고 있는지 알아내기 위해 서브넷의 컴퓨터 시스템 중 상기 하나에 유니캐스트 신호를 송신한다. The computer system of the computer system of the computer system of the one subnet to find out whether you have a portion of the file or files that you can download for unicast transmission signals to the one. 컴퓨터 시스템은 서브넷의 컴퓨터 시스템 중 상기 하나가 다운로드될 수 있는 파일 또는 파일의 부분을 가지고 있음을 나타내는 유니캐스트 신호를 컴퓨터 시스템 중 상기 하나로부터 수신한다. The computer system receives a unicast signal indicating that it has the file or portion of a file that may be downloaded is the one of the computer systems on the subnet from the one of the computer systems. 컴퓨터 시스템은 서브넷의 컴퓨터 시스템 중 상기 하나로부터 파일 또는 파일의 부분을 다운로드한다. Computer system download of a file or files from the computer system, one of the subnets.

이 발명의 개요는 아래의 실시예에서 더 상세히 설명되는 개념들의 선택을 간략한 형태로 소개하기 위해 제공된 것이다. Abstract of the invention is provided to introduce a selection of concepts that are described in more detail in the following embodiments in a simplified form. 이 발명의 개요는 청구된 본 발명의 주요 특징 또는 본질적 특징들을 식별하기 위한 것이 아니며, 또한 청구된 본 발명의 범위를 결정하는 보조로 사용되도록 의도된 것이 아니다. Abstract of the invention is not intended to be used in determining the scope of the not intended to identify key features or essential features of the claimed invention, also claimed invention auxiliary.

위에서 언급된 수단 및 기타 특징들을 얻을 수 있도록, 첨부된 도면에 도시된 특정한 실시예를 참조하여 더 구체적인 설명이 제시될 것이다. To obtain the means and the other characteristics noted above, with reference to the specific embodiment will be presented a more detailed description shown in the accompanying drawings. 이 도면은 단지 전형적인 실시예를 도시하며 따라서 범위를 제한하는 것으로 고려되어서는 안된다는 것을 이해해야 하며, 실시예들은 첨부된 도면의 사용을 통해 추가적인 특수성 및 세부 사항들로 묘사되고 설명될 것이다. The figures are only an exemplary embodiment and therefore understood that should not be construed as limiting the scope, embodiments will be described and explained with additional specificity and detail through use of the accompanying drawings.

도 1은 예시적인 네트워크의 블록도이다. Figure 1 is a block diagram of an exemplary network.

도 2는 클라이언트 관점에서 파일을 캐싱 및 공유하기 위한 방법을 설명하는 흐름도를 도시한다. Figure 2 shows a flow chart illustrating a method for caching and sharing files from a client perspective.

도 3은 피어 서버 관점에서 파일을 캐싱 및 공유하기 위한 방법을 설명하는 흐름도를 도시한다. Figure 3 illustrates a flow diagram illustrating a method for caching and sharing files from a peer server perspective.

여기에 설명된 한 실시예는 중앙화된(centralized) 파일 서버로부터 벗어나서 파일 배포를 가능하게 하는 향상된 파일 배포 시스템을 포함한다. This embodiment is described in the outside from a centralized (centralized) file server includes an improved file distribution system that allows for file distribution. 이 예에서, 파일 분산 및 캐싱은 네트워크의 가장자리(edge)로 옮겨진다. In this example, file distribution and caching is moved to the edge (edge) of the network. 이것은 중앙화된 파일 서버들에 대한 로드를 감소시키고, 몇몇 중앙화된 네트워크 연결들에 네트워크 트래픽이 집중되는 것과 반대로, 네트워크 트래픽을 네트워크 전체에 걸쳐 분산하 도록 돕는다. This reduces the load on the centralized file server, as that network traffic is concentrated on a few centralized network connections On the other hand, it helps to minutes affiliated network traffic across the entire network. 구체적으로, 한 실시예에서 컴퓨터들은 피어 투 피어 시스템을 이용하여 파일을 캐싱하고 공유한다. Specifically, the caching and sharing files computers using a peer-to-peer system in one embodiment. 컴퓨터 시스템은 먼저, 네트워크로 연결된 하나 이상의 컴퓨터들 중에서 잠재적 피어 서버들의 목록을 포함하는 피어 목록을 구축한다. The computer system first, building a peer list that includes a list of potential peer servers from among more than one computer connected to the network. 이 실시예에서, 피어 목록은 미리 결정된 수 이하의 피어들로 제한된다. In this embodiment, the peer list is limited to a predetermined number or less of the peer. 다음, 시스템은 피어 목록의 피어들을 인증(authenticate)할 수 있다. Next, the system can be a peer to peer list of authentication (authenticate). 다음, 시스템은 컴퓨터 시스템이 필요로 하는 파일 또는 파일의 부분을 포함하는 피어를 찾기 위해 피어 목록의 피어들을 쿼리할 수 있다. Next, the system can query the list of peer peer-to-peer search for containing a portion of the file or files that are required by the computer system. 피어 목록의 한 피어가 사용가능한 파일 또는 파일의 부분을 가지고 있다고 응답하면, 이를 나타내는 피어로부터 파일 또는 파일의 부분을 다운로드할 수 있다. If the peer responds that have a portion of the available peer file or files to use in the list, you can download part of a file or files from peer to indicate this. 파일 또는 파일의 부분을 가지고 있다고 응답하는 피어가 없으면, 파일을 요청하는 시스템은 중앙 파일 서버로부터 파일을 다운로드하고, 다운로드할 수 있는 파일 또는 파일의 부분을 자신이 가지고 있음을 다른 컴퓨터 시스템들에게 나타낼 수 있다. If the peer responds that have parts of the file or files, the system requests a file, download a file from a central file server, and represent a part of which you can download the file or files to that other computer systems they have can. 다운로드할 수 있는 파일 또는 파일의 부분을 가지고 있음을 나타낸 것에 대한 응답으로, 다른 컴퓨터 시스템들은 자신의 잠재적 피어 서버들의 목록을 포함하는 피어 목록에 이 컴퓨터 시스템을 추가할 수 있으며, 이는 아래에 더 상세히 설명된다. In response to indicated that they have a part of the file or files that you can download, and other computer systems may be added to a computer system in the peer list that includes a list of their potential peer server, which in more detail below, It is described. 특히, 다른 피어 시스템들은, 파일 또는 파일의 부분을 포함하는 피어를 찾기 위한 쿼리에 대한 응답으로, 쿼리하는 컴퓨터 시스템을 자신의 피어 목록에 추가할 수 있다. In particular, other peer systems, in response to a search query for a peer including a portion of a file or files can be added to a computer system to query their peer list.

한 예시적인 실시예에서, 컴퓨터 시스템은 중앙 엔터프라이즈 서버 또는 허브에 의해 상호 연결되지 않은 컴퓨터들로부터 피어 그룹을 생성할 수 있다. In an exemplary embodiment, the computer system can create peer groups from computers that are not interconnected by a central enterprise server or hub. 케이블 모뎀 연결, 및 이와 유사한 것 등과 같은 값비싼 연결을 통한 피어 연결을 제거 하기 위해, 예를 들어, 피어 그룹은 엔터프라이즈 네트워크의 지점, 공통 허브 또는 라우터의 컴퓨터들에서 형성될 수 있다. Cable to remove a modem connection, and its peer connection with expensive connection such as similar to, for example, peer groups may be formed at the point in the enterprise network, a common hub or router machine. 이러한 방식으로, 파일이 캐싱 및 다운로드될 수 있는 피어 그룹들에게로 파일을 배포하는 데 더 적은 양의 네트워크 트래픽 및 서버 리소스가 필요하다. In this way, the file is cached and as to the peer group that can be downloaded to distribute files smaller amount of network traffic and server resources are needed. 이 방식으로, 소프트웨어 및 업데이트를 배포하기 위해 필요한 프로세싱 및 네트워크 기능들은 네트워크의 중앙화된 위치에서 네트워크의 가장자리로 이동되며, 따라서 컴퓨팅 및 네트워크 요구 사항들이 더 고르게 분배된다. In this way, processing and network capabilities required for distributing software and updates is moved to have the edge of the network in a centralized location on the network, therefore, your computing and network requirements are distributed more evenly.

이제 도 1을 참조하면, 예시적인 토폴로지(100)가 도시된다. Referring now to Figure 1, an exemplary topology 100 is illustrated. 토폴로지(100)는 다수의 컴퓨터 시스템(102, 104, 106, 108, 110)을 포함한다. Topology 100 includes a number of computer systems (102, 104, 106, 108, 110). 컴퓨터 시스템들(102-110)은 다수의 상호 연결 수단 중 임의의 것을 통해 상호 연결될 수 있다. Computer systems (102-110) may be interconnected via any of a number of the interconnection means. 예를 들어, 컴퓨터 시스템(102-110)은 IEEE 802.3을 따르는 이더넷 네트워크, IEEE 802.11을 따르는 것들과 같은 무선 이더넷 연결, 블루투스 무선 네트워크, 다이얼 업(dial up) 네트워킹 연결, 케이블 모뎀 연결 등과 같은 네트워크 연결을 통해 상호 연결될 수 있다. For example, the computer system (102-110) is connected to a network such as a wireless Ethernet connection, such as those conforming to the Ethernet network, IEEE 802.11 conforming to IEEE 802.3, Bluetooth wireless networks, dial-up (dial up) networking connection, a cable modem connection It can be connected to each other through. 도시된 실시예에서, 컴퓨터 시스템(102-110)은 상호 연결되어 피어 그룹(112)을 형성한다. In the illustrated embodiment, to form the computer systems (102-110) are interconnected is the peer group 112. The 이 예에서, 피어 그룹(112)은, 랩톱 컴퓨터 시스템(106)과 같은 컴퓨터 시스템을 위한 잠재적인 피어 서버들의 한 그룹이다. In this example, the peer group 112 is one group of potential peer servers for a computer system such as the laptop computer system 106. 한 실시예에서, 각 컴퓨터 시스템은, 컴퓨터 시스템이 파일을 다운로드할 수 있는 잠재적인 피어 서버들의 목록을 포함하는 피어 목록을 유지한다. In one embodiment, each computer system maintains a list of peers that includes a list of potential peer server in the computer system to download the file. 피어 그룹의 형성은 아래에서 더 상세히 논의될 것이다. Formation of the peer group will be discussed in further detail below.

도 1은 또한 피어 그룹(112)이 중앙 파일 서버(114)에 연결되었음을 도시한 다. Figure 1 also illustrates that the peer group 112 is connected to the central file server 114. 중앙 파일 서버(114)로의 연결이 단일 연결로 도시되었지만, 대안적인 실시예에서, 컴퓨터(102-110) 각각이 중앙 파일 서버(114)에 대한 액세스를 가지거나, 다른 구성으로 다양한 연결들이 사용될 수 있다. Although the connection to the central file server 114 is shown as a single connection, in alternative embodiments, the computer (102-110) each have an access to the central file server 114 or can be connected to a variety of different configurations have. 예를 들어, 피어 그룹은 기업 엔터프라이즈의 지점에서 형성될 수 있으며, 여기서 지점은 엔터프라이즈 허브에 있는 중앙 파일 서버(114)와 연결된다. For example, peer groups may be formed in the corporate enterprise point, where the point is connected to the central file server 114 in an enterprise hub. 다양한 다른 상호 연결들 또한 구현될 수 있다. Various other interconnect can also be implemented.

도시된 예에서, 파일 서버는 파일(116) 또는 파일의 부분을 저장할 수 있다. In the illustrated example, the file server may store a portion of the file 116 or file. 파일(116)은, 예를 들어, 소프트웨어 업데이트, 운영 체제를 위한 보안 패치, 애플리케이션, 데이터 파일, 또는 기타 소프트웨어일 수 있다. File 116 is, for example, software updates, and security patches may be, applications, data files, or any other software for the operating system. 파일(116)은 컴퓨터 시스템(108)과 같은 컴퓨터들 중 하나에 의해 다운로드되거나 컴퓨터들 중 하나로 푸시될 수 있다. File 116 may be downloaded or pushed to one of the computer by one of the computers such as computer system 108. 다음, 컴퓨터 시스템(108)은 파일(116)의 캐싱된 카피(cached copy)를 가진 잠재적 피어 서버로 동작할 수 있다. Next, computer system 108 may operate as a potential peer server with a cached copy (cached copy) the file (116). 그러면 다른 컴퓨터 시스템(102, 104, 106, 110)들은 잠재적 피어 서버 시스템(108)으로부터 파일(116)을 요청할 수 있다. The other computer systems (102, 104, 106, 110) can request the file 116 from the potential peer server system 108. 이러한 방식으로, 몇몇 실시예에서, 파일 서버와 피어 그룹(112) 사이의 연결(118) 상의 네트워크 트래픽이 감소될 수 있다. In this manner, in some embodiments, it can be reduced network traffic on connection 118 between the file server and the peer group 112. 또한, 중앙 파일 서버(114)에 의한 프로세싱이 감소될 수 있다. Further, the processing can be reduced by the central file server 114.

앞서 언급된 것과 같이, 도 1은 컴퓨터 시스템들 중 하나가 랩톱 컴퓨터 시스템(106)이고, 랩톱 컴퓨터 시스템(106)에 의해 유지되는 잠재적 피어 서버들의 목록 내에 피어 그룹(112)이 있음을 도시한다. As noted above, Figure 1 illustrates a and one of the computer systems is a laptop computer system 106, that the peer group 112 is in a list of potential peer servers maintained by the laptop computer system 106. 랩톱 컴퓨터 및 핸드-헬드 장치, PDA, 휴대 전화 등과 같은 기타 휴대용 컴퓨터들은, 본래의 성질에 따라 휴대가능하며, 따라서 네트워크의 물리적 및 논리적으로 다른 부분들에 위치할 수 있다. Laptop computers and hand-held devices, such as other portable computer, PDA, mobile phones are, depending on the inherent properties and portability, and hence may be located at physically and logically different portions of the network. 랩톱 컴퓨터(106)는, 예를 들어, 랩톱 컴퓨터(106)가 피어 그룹(112)으로부터 파일을 다운로드하기에 실용적이지 않은 위치로 논리적 또는 물리적으로 이동될 수 있다. Laptop computer 106 is, for example, a laptop computer 106 can be moved in the peer to logical or physical location is not practical to download a file from a group (112). 예를 들어, 랩톱 컴퓨터(106)는 피어 그룹(112)이 아닌 다른 서브넷으로 논리적으로 이동될 수 있다. For example, laptop computer 106 may be logically moved to a different subnet than the peer group 112. 대안적으로, 랩톱 컴퓨터(106)는, 랩톱 컴퓨터(106)가 피어 그룹(112)의 다른 구성원들과 통신하도록 하는 데 과도한 양의 네트워크 트래픽을 필요로 하는 위치로 물리적으로 이동될 수 있다. Alternatively, the laptop computer 106, the laptop computer 106 may be physically moved by requiring an excessive amount of network traffic to to communicate with other members of the peer group 112 is located. 도 1에 도시된 실시예에서, 랩톱 컴퓨터(106)는 도 1에 도시된 피어 그룹(120)과 같은 또 다른 피어 그룹을 생성한다. In the embodiment shown in Figure 1, the laptop computer 106 creates another peer group such as the peer group 120 shown in Fig. 랩톱(106)은 제1 피어 그룹(112) 및 제2 피어 그룹(120)에 대한 정보를 유지하여, 제1 피어 그룹(112) 또는 제2 피어 그룹(120) 또는 랩톱(106)의 피어 목록에 있는 다른 임의의 피어 그룹과 연결되면 랩톱(106)이 파일을 수신할 수 있다. Laptop 106 peer list of the first peer group 112 and the second to maintain the information about the peer group 120, a first peer group 112 or the second peer group 120 or the laptop 106 If any of the other associated with a peer group which is on the laptop 106 may receive files.

피어 그룹(112) 내의 컴퓨터 시스템이 파일(116)을 수신하면, 컴퓨터 시스템은 파일이 정확한 파일이며 손상되지 않았음을 확인해야한다. If the computer system in the peer group 112 receives the file 116, the computer system should determine that it is not damaged, and the file is the correct file. 파일이 정확한 파일이며 손상되지 않았음을 결정하는 것은, 예를 들어, 파일 이름, 파일 크기, 해시 값 등을 비교함으로써 이루어질 수 있다. Deciding that the file has the correct file is not damaged, for example, it can be made by comparing the file name, file size, and hash values. 예를 들어, 컴퓨터 시스템은 파일 이름, 파일 크기, 및 파일의 해시 값에 관한 정보를 수신할 수 있다. For example, the computer system can receive the information on the hash value of the file name, file size, and file. 해시 값은, 어떤 다른 데이터가 같은 해시 값을 생성할 가능성이 극히 드문 방식으로 값을 생성하기 위해서, 파일 내의 데이터를 이용하여 계산된 값들이다. The hash value, to any other data is generated the value in the extremely rare method may produce the same hash value, are the values ​​calculated by using the data in the file. 컴퓨터 시스템은 파일 이름, 파일 크기 및/또는 해시 값을 비교함으로써 정확한 파일이 수신되고 있다고 결정할 수 있다. The computer system may determine that the correct file has been received by comparing the file name, file size and / or hash value. 또한, 해시 값은 파일이 손상되거나, 악성으로 변경되지 않았음을 보장하기 위해 사용될 수 있다. In addition, the hash value can be used to ensure that the file is corrupted or, did not change as malicious.

정확한 파일이 사용가능하지 않거나, 파일이 손상되었거나, 파일이 악성으로 변경되었음을 컴퓨터 시스템이 검출하면, 컴퓨터 시스템은 중앙 파일 서버(114)로부터 직접 파일(116)을 요청할 수 있다. Does not have the correct file available, the file is corrupted, when the computer system detects that the file has been changed by malicious, the computer system may request the direct file 116 from the central file server 114. 다음, 중앙 파일 서버(114)로부터 파일(116)을 직접 요청하는 컴퓨터 시스템은 자신을 파일(116)을 포함하는 잠재적 저장 시스템으로 알릴 수 있다. Next, the central file server computer system directly requesting the file 116 from 114 may inform a potential storage system containing the file 116 itself.

특히, 한 실시예에서, 피어 그룹은 상술된 것과 같이 유지되며 각 컴퓨터 시스템에 대해 특정(specific)하다. In particular, in one embodiment, the peer group is maintained as described above is a particular (specific) for each computer system. 따라서, 피어 그룹 관리는 중앙 제어가 없이 시스템을 사용하여 중앙 위치로부터 이동된다. Thus, peer group management is moved from a central location using a system without central control. 이것은 전체 네트워크에 대해서 단일 지점 실패(single point failure) 지점을 제거한다. This eliminates the single point of failure (single point failure) point for the entire network. 다시 말해, 하나의 피어 목록 또는 피어 목록을 가진 하나의 시스템의 손실은 전체 시스템으로 하여금 파일 분산 및 캐싱을 할 수 없도록 하지 않으며, 전체 시스템이 사용 불가능하게 되는 것은 피어 그룹을 관리하는 데 하나의 중앙화된 서버가 사용될 때 발생한다. In other words, the loss of one system with a list of a peer list or a peer is causing the entire system does not prevent you to the file distribution and caching, a centralized managing a group is the entire system that disables peer It occurs when the server is used.

이제 도 2를 참조하면, 파일을 캐싱 및 공유하기 위한 방법(200)이 도시된다. Referring now to Figure 2, a method for caching and sharing files 200 are shown. 방법은 네트워크로 연결된 하나 이상의 컴퓨터를 포함하는 컴퓨터 네트워크의 컴퓨터 시스템에서 수행될 수 있다. The method may be performed in a computer system of a computer network including one or more networked computers.

도 2는 피어 목록을 구축하는 동작을 도시한다(단계 202). Figure 2 illustrates the operation of building a peer list (step 202). 피어 목록은 도 1에 도시된 컴퓨터 시스템(102-110)들과 같은, 네트워크로 연결된 컴퓨터의 그룹 중에서 잠재적인 피어 서버들의 목록을 포함한다. Peer list includes a listing of potential peer servers from among the computer systems (102-110) and the like, a group of computers connected to the network shown in Fig. 피어 목록은 미리 결정된 수 이하의 잠재적 피어 서버들만을 포함할 수 있다. Peer list may include only a predetermined number or less of potential peer servers. 예를 들어, 피어 목록은 100개 이하의 잠재적 피어 서버들만 피어 목록에 포함되도록 설계될 수 있다. For example, the peer list may be designed such that only those contained in the list of potential peer server in the peer 100 or less. 또한, 피어 그룹 내의 컴퓨터 시스템(102-110)들은 네트워킹 관점에서 가까워야할 필요가 있다. In addition, the computer system (102 to 110) within a peer group may need to be close in the networking point of view. 예를 들어, 피어 그룹(112)의 컴퓨터 시스템(102-110)은 엔터프라이즈 네트워크의 동일한 지점에 위치할 것이 요구될 수 있다. For computer systems (102-110) of example, peer group 112 may be required to be located at the same point in the enterprise network. 대안적인 실시예에서, 피어 그룹(112)의 컴퓨터 시스템(102-110)이 공통 허브, 라우터, 또는 스위치에 위치할 것이 요구될 수 있다. In an alternative embodiment, the computer system (102-110) in the peer group 112 may be required to be located on a common hub, router, or switch. 몇몇 대안적인 실시예에서, 어떤 피어도 케이블 모뎀들 간의 연결 또는 고(high) 트래픽 연결과 같은 고가(expensive)의 연결을 통해 상호 연결되지 않도록 요구될 수 있다. In some alternative embodiments, it may be required to prevent cross-connection through the connection of the high (expensive), such as a connection or high (high) traffic connections between peers which a cable modem. 또한, 다른 논리적으로 가까운 구성들이 구현될 수 있다. In addition, it can be implemented in different logical closest configuration. 예를 들어, 한 실시예에서, 컴퓨터 시스템은 컴퓨터들이 가까운 정도(nearness)를 결정하기 위해 타이밍 방법(timing method)을 이용할 수 있다. For example, in one embodiment, the computer system how the timing (timing method) can be used to determine the extent (nearness) to close computer. 피어 목록을 구축하기 위해(202) 단독으로 또는 공동으로 사용될 수 있는 여러 방법들이 있다. For building a peer list (202), there are several methods that can be used alone or jointly. 이 방법들의 예는 아래에 설명될 것이다. Examples of the method will be described below.

피어 목록을 구축하는 한 방법(202)은 통신 유도 요청(solicitation request)을 송신하고 컴퓨터들로부터 응답을 수신하는 것을 포함한다. And a method of building a peer list (202) includes transmitting a communication request induction (solicitation request), and receives a response from the computer. 응답하는 잠재적 피어들의 수를 제한하기 위해, 통신 유도 요청은 예를 들어, 단일 서브넷에 대해 응답을 받기 위해 서브넷 브로드캐스트 또는 멀티캐스트일 수 있다. In order to limit the number of potential peers responding, the communication request is derived may be, for example, a subnet broadcast or multicast to receive the response to a single subnet. 하지만, 단일 서브넷의 컴퓨터들만 응답하더라도, 응답의 수가 여전히 과도할 수 있다. However, even responds only a single subnet your computer, you can still excessive number of responses. 따라서, 응답의 수를 더욱 제한하기 위해, 통신 유도 요청을 송신하는 컴퓨터 시스템은 요구되는 피어의 수에 대한 지시를 통신 유도 요청 내에 포함시킬 수 있다. Thus, to further limit the number of responses, a computer system for transmitting a communication request is derived may include an indication of the number of the required peer in a communication request induction. 잠재적 피어들은 무작위의 짧은 간격(random short interval) 후에 멀티캐스트를 사용하여 응답하고 다른 컴퓨터들의 멀티캐스트 응답을 듣도록 구성될 수 있다. Potential peers may be answered by using the multicast after a short interval (random short interval) of a random and configured to listen to multicast the response of the other computer. 다 른 잠재적 피어들로부터의 응답의 수가 요구되는 피어의 수에 대한 지시에 이미 도달했음이 검출되면 잠재적 피어는 응답하지 않는다. Other already when the detection has reached the indication of the number of peers that request the number of the responses from the potential peer potential peer it will not respond. 다시 말해, 요구되는 수의 피어들이 이미 응답한 경우 잠재적 피어는 응답하지 않는다. In other words, if the required number of peers who have already responded potential peer is not responding.

무작위의 짧은 간격을 생성하기 위해 여러 방법들이 사용될 수 있다. Several methods can be used to generate random short interval. 예를 들어, 가장 간단한 실시예에서, 통신 유도 요청에 응답하기 전에 얼마의 시간을 대기해야 할지를 결정하기 위해서, 균등한 무작위 분포(uniform random distribution)가 각 잠재적 피어에 의해 사용될 수 있다. For example,, a uniform random distribution (uniform random distribution) may be used by each potential peer to determine whether in the simplest embodiment, to wait for some time before responding to the communication request induction. 대안적인 방법은 초기에 더 적은 수의 잠재적 피어가 응답하고 지연이 길어질수록 더 많은 수의 잠재적 피어가 응답하는 비선형 분포를 포함한다. The alternative method includes a non-linear distribution of the response fewer potential peers of the initial and greater number of potential peers respond in the longer the delay. 예를 들어, 비선형 지연(non-linear delay)을 통합하는 한 방법은 0 내지 1 사이의 난수(random number)를 생성하는 것을 포함할 수 있다. For example, the non-linear delay a method for integrating (non-linear delay) may include generating a random number (random number) from 0 to 1. 그러면 지연은 다음의 식에 의해 정의될 수 있다. The delay can be defined by the following equation.

DELAY = MAX_DELAY*Log(C*X+1)/Log(C+1) DELAY = MAX_DELAY * Log (C * X + 1) / Log (C + 1)

DELAY는 응답하기 전의 지연이고, MAX_DELAY는 응답을 수신하는 데 주어진 시간의 최대 양(amount), X는 난수, 및 C는 256과 같은 임의의 수이다. DELAY is the delay before responding, MAX_DELAY up to a given amount of time to receive a response (amount), X is a random number, and C is an arbitrary number such as 256. 다른 비선형 무작위 지연(non-linear random delay)들 또한 사용될 수 있다. Other non-linear random delays (non-linear random delay) may also be used.

다른 예에서, 시스템은 지연 없이 응답할 수 있고, 컴퓨터 시스템은 피어 목록을 채울 정도로 충분한 피어들이 있을 때까지 피어 목록에 피어를 추가할 수 있다. In another example, the system may respond without a delay, the computer system may add peers to a peer list until there are sufficient enough to fill the peer list of peers. 이 예에서, 가장 빨리 응답하는 피어는 통신 유도 요청을 송신하는 컴퓨터 시스템과 논리적으로 가장 가까운 것들일 수 있다. In this example, it can be most quickly responding peer is the closest ones to the computer system and the logical transmitting the communication request to induction. 이 예에서, 컴퓨터 시스템은 잠재적 피어들이 얼마나 빨리 응답하는지를 보기 위해 시간을 잴 수 있다. In this example, the computer system can measure the time to see how peers are potentially much faster response. 가장 빨 리 응답하는 잠재적 피어들만이 피어 목록에 추가된다. The only potential peer soon as the response is added to the peer list. 따라서, 컴퓨터 시스템은 논리적으로 가장 가깝거나 가장 빨리 응답할 수 있는 피어들을 받아들임으로써, 피어 그룹에 가장 적합한 피어들을 선택할 수 있다. Thus, the computer system by accepting peer to or logically closest to the quickest response, you can choose the most suitable peer-to-peer group.

통신 유도 요청은 또한 트러스트 그룹(trust group)과 같은 그룹을 포함할 수 있다. Communication induction request may also include a group such as a trust group (trust group). 잠재적 피어들은 다른 트러스트 그룹과 관련된 요청들을 무시한다. Potential peer ignore requests related to another trust. 트러스트 그룹이 통신 유도 요청에 사용될 때에도, 여전히 아래에 상세히 설명되는 것과 같이 피어를 인증해야할 필요가 있을 수 있다. Even when trust groups used in the induction communication request, still there may be a need to authenticate a peer as described in greater detail below. 트러스트 그룹은 동일한 서브넷 내의 다른 트러스트 그룹들로부터의 응답을 추려내어, 서브넷 내의 중복된 통신 유도 요청이 서로 저촉하지 않게 하는 방법으로서 사용된다. Trust group control culling for a response from other trust groups within the same subnet, is used as a method for a redundant communication request induced in the subnet does not conflict with each other. 한 실시예에서, 통신 유도 요청은 컴퓨터 시스템에 의해 요구되는 컨텐트의 식별정보(identification)를 포함할 수 있다. In one embodiment, the inductive communications request may include the identification information (identification) of the content required by the computer system. 아래에 설명되는 것과 같이, 잠재적 피어들은 자신이 그 식별정보의 컨텐트를 가지고 있고 다른 옵트-인 제약 조건(constraint)을 만족하면 응답한다. As described below, the potential peers they have a content of the identification information and the other opt-responsive when satisfy the constraint (constraint). 이것은 하나의 컨텐트 요청이 모든 잠재적 호스트에 도달하기 때문에 컨텐트 검색을 더 효과적으로 만든다. This makes the content more effectively search because one content request is to reach all potential hosts. 이 실시예는 덜 개인적(private)일 수 있는데, 이는 인증되지 않은 호스트들이 어느 컨텐트가 요청되는지를 볼 수 있기 때문이다. This embodiment may be less private (private), because they can see whether unauthorized hosts which content is requested. 이 실시예에서 프라이버시(privacy)를 향상시키기 위해 URL의 일방향 해시, 또는 컨텐트 해시를 요청하는 것이 사용될 수 있다. In this embodiment it may be used to request a one-way hash, or hash of the content URL to enhance privacy (privacy).

다른 실시예에서, 피어 목록을 구축하는 것은 컴퓨터 시스템이 잠재적 피어로부터 멀티캐스트 패킷과 함께 자기-알림(self-announcement)을 수신하는 것을 포함할 수 있다. It is In another embodiment, the self-build peer list with a multicast packet from a potential peer computer system - can include receiving the notification (self-announcement). 자기-알림은 잠재적 피어들이 네트워크의 컴퓨터들에게 제공될 수 있는 파일 또는 파일의 부분들을 갖고 있다는 표시를 포함한다. The notification will include an indication that the potential peer has files or parts of files that can be provided to a network of computers - magnetic. 이러한 알림이 수신되면, 컴퓨터 시스템은 잠재적 피어를 자신의 피어 목록에 추가할 수 있다. Upon receiving this notification, the computer system can potentially add to their peers in the peer list. 자기-알림은 한 대안적인 실시예에서 규칙적으로 이루어질 수 있다. Self-notification can be made on a regular basis in an alternative embodiment. 한 예에서, 알림은 시간당 한번, 또는 하루에 여러 번 이루어질 수 있다. In one example, the notification may be made several times in one hour, or a day.

컴퓨터 시스템들은 공유할 파일을 가지고 있을 때, 그리고 하드웨어 특성, 현재의 프로세싱 로드, 또는 다른 특성들이, 컴퓨터 시스템으로 하여금 피어 서버로서 동작할 수 있도록 할 때 자기-알림을 할 수 있다. Computer systems if you have a file you want to share, and hardware characteristics, the current processing load, or other characteristics of self when they allow, enable the computer system to operate as a peer server - can be notified. 알리는 컴퓨터 시스템들은 중앙 파일 서버(114) 또는 피어 그룹(112) 내의 다른 피어로부터 파일(116)을 수신할 수 있다. The computer system informing may receive the file 116 from the other peers in the central file server 114 or the peer group 112. The 컴퓨터 시스템은 자기-알림을 하지 않을 특정 파일들을 가지고 있을 수 있다. The computer system of self-may have a particular file is not notified. 이것은 컴퓨터 시스템으로 하여금 특정 파일을 보호할 수 있도록 한다. This allows the computer system to protect certain files.

대안적인 실시예에서, 잠재적 피어는, 예를 들어, 멀티캐스트를 통해 네트워크에 추가되었을 때와 같이, 네트워크에 추가되었을 때 알릴(announce) 수 있다. In an alternative embodiment, a potential peer may be, for example, such as when over the multicast is added to the network, can be allyl (announce) when added to the network. 다음, 피어 목록에 피어가 필요하면, 컴퓨터는 이 새로운 컴퓨터를 자신의 피어 목록에 추가할 수 있다. If the peer is required in the following peer list, the computer may add a new computer in their peer list. 이와 유사하게, 컴퓨터 시스템은 다른 유형의 멀티캐스트 알림 및 응답을 수신할 때 피어를 피어 목록에 추가할 수 있다. Similarly, the computer system can be added to the list of peer to peer when receiving different types of multicast notification and response. 예를 들어, 상술된 무작위 시간 지연 응답 실시예와 관련된 응답을 듣는 컴퓨터 시스템은 본래의 통신 유도에 응답하는 임의의 컴퓨터 시스템들을 자신의 피어 목록에 추가할 수 있다. For example, a computer system listening for a response related to the embodiments described above random time delay response for example, may be added to any of the computer system for responding to the original communication guided to its peer list. 마찬가지로, 피어 목록의 잠재적 피어로서 사용가능한 컴퓨터들을 결정하는 데 있어 거의 모든 임의의 응답 또는 알림이 사용될 수 있다. Similarly, it can be used almost all of any response or notification to determine the possible use computers as a potential peer in the peer list.

피어 목록의 컴퓨터들은 검증되었거나 검증되지 않은 것일 수 있다. List of peer computers can not be verified or validated. 검증된 컴퓨터 시스템은 아래에 약술된(outlined) 것과 같이 인증을 통과한 것들이다. The verification computer systems are those that have passed an authentication as an (outlined) outlined below. 피어 목록의 피어는 피어 목록에 추가되고 난 후 즉시 검증될 필요가 없고, 오히려, 파일 또는 파일의 부분에 대해 피어 목록의 피어들을 쿼리하는 것과 근접한 시간에 검증될 수 있으며(단계 206), 이는 아래에 더 상세히 논의된다. In the peer-list peers need not be immediately verified after being added to the peer list, but rather, can be verified in the nearest time as a peer query the peer on the list for the portion of the file or files, (step 206), which is below It is discussed in more detail. 하지만, 피어 목록의 피어가 검증되고 나면, 컴퓨터 시스템과 피어는 키(key)를 공유하여 이어지는 파일 쿼리들에 대해 검증이 수행될 필요가 없도록 한다. However, once the peer's peer list is verified, and not need to be verified is performed on the file, followed by the query will share the key (key) and peer computer system.

피어 목록을 구축하는 프로세스의 일부는, 오래된(outdated) 항목을 제거하거나, 더 이상 유효하지 않은 항목들을 제거하기 위해 피어 목록을 업데이트하는 것을 포함할 수 있다. Some of the peer to establish a list of processes may include removing or peer update the list to remove entries that are no longer valid for the old (outdated) items. 예를 들어, 항목들이 미리 정해진 기간 동안 피어 목록에 존재한 후에 컴퓨터 시스템은 항목들을 피어 목록으로부터 제거할 수 있다. For example, after the items are present in the peer list for a predetermined period of time the computer system may be removed from the peer list items. 이것은 오래된 항목들이 제한된 수명(lifespan)을 갖도록 보장한다. This ensures that older entries have a limited lifespan (lifespan). 다른 대안적인 실시예에서, 피어가 네트워크를 떠날 때, 피어에 의해 송신된 멀티캐스트에 대한 응답으로 피어 항목들이 제거될 수 있다. In another alternative embodiment, when the peer leaves the network, and may be a peer in response to a multicast transmission by the peer entries are removed. 예를 들어, 피어가 네트워크를 떠날 준비를 할 때 "바이(Bye)" 멀티캐스트 일방향 메시지는 최선 노력 알림(best effort notification)으로써 다른 피어들에게 송신된다. For example, as the peers when preparing to leave a network "by (Bye)" multicast one-way message is a best effort notification (best effort notification) is transmitted to the other peers. "바이" 메시지가 컴퓨터 시스템에 의해 검출되면, "바이" 메시지를 송신하는 피어가 피어 목록으로부터 제거될 수 있다. "By" message may be when the detection by the computer system, is removed from the peer list for sending "by" peer messages. "바이" 메시지는 덜 바람직할 수 있는데, 이는 악성 컴퓨터가 "바이" 요청을 사용하여 다른 컴퓨터들이 피어 목록으로부터 제거되도록 하고, 따라서 더 많은 컴퓨터들로 하여금 중앙 파일 서버에 요청을 하도록 만들 수 있기 때문이다. "Bai" message may be less desirable, which is due to be other computers are peer removed from the list of malicious computer using the "buy" requests, and thus encourage more computers can make a request to the central file server to be. 다른 예에서, 파일에 대해 피어를 쿼리하는 시도가 이루어졌을 때, 피어가 더 이상 네트 워크에 없음을 나타내는 에러가 수신되면 피어가 피어 목록으로부터 제거될 수 있다. In another example, it can be when attempting to query a peer for files been made, if the peer is no longer an error indicating no peer on the network receives the peer removed from the list. 한 실시예에서, 피어 목록의 서로 다른 피어들로의 다수의 쿼리가 에러 메시지를 가져오면 컴퓨터 시스템은 피어 목록 전체의 모든 항목을 폐기할 수 있다. In one embodiment, the import multiple queries an error message to a different peer in the peer list, the computer system may discard all entries in the entire peer list. 이것은 컴퓨터 시스템이 액세스하고자 하는 네트워크의 부분이 더 이상 사용가능하지 않다는 표시일 수 있다. This may be an indication of a portion of the network that you want to access the computer system does no longer available. 다른 실시예에서, 피어가 검증되지 못하면 피어 목록으로부터 제거될 수 있다. In another embodiment, it can be verified if no peer is removed from the peer list. 이것은 아래에 더 상세히 설명될 것이지만, 간단히 말하자면, 피어가 검증되지 못하면, 이것은 피어가 신뢰될 수 없다는 표시이다. This will be explained in more detail below, if a nutshell, not peer validation, which is an indication that the peers can be trusted. 이와 유사하게, 피어로부터 수신된 파일들이 해시 비교와 같은 특정 보안 검사를 통과하지 못하면 피어는 피어 목록으로부터 제거될 수 있다. Similarly, if files have been received from the peer does not pass certain security checks such as hash peer comparison can be removed from the list of peers. 이것 또한 아래에 더 상세히 논의될 것이다. This will also be discussed in more detail below.

충분한 수의 피어들이 피어 목록으로부터 제거되면, 상술된 피어 목록을 구축하기 위한 단계들이 반복될 수 있다. Once removed from the list have a sufficient number of peer to peer, the steps may be repeated to build a list of the above-described peer. 특히, 상술된 단계들은 단독으로 또는 함께 사용될 수 있다. In particular, the above-described steps may be used alone or in combination.

컴퓨터 시스템은 하나 이상의 피어 목록을 유지할 수 있다. The computer system may maintain a list of one or more peers. 예를 들어, 도 1에서, 랩톱 컴퓨터 시스템(106)의 예가 도시된다. For example, in Figure 1, an example of a laptop computer system 106 is shown. 설명된 것과 같이, 랩톱 컴퓨터 시스템(106)은 물리적 및/또는 논리적으로 재배치(relocate)될 수 있다. As explained, the laptop computer system 106 may be repositioned (relocate) physically and / or logically. 한 실시예에서, 랩톱 컴퓨터(106)는 논리적으로 재배치되어 제1 피어 그룹(112)과는 다른 서브넷에 존재할 수 있다. In one embodiment, the laptop computer 106 is logically relocated may be on a different subnet from the first peer-group (112). 랩톱 컴퓨터 시스템(106)은 자신이 새로운 서브넷으로 이동하였음을 검출할 수 있고, 새로운 서브넷으로 이동하였음을 검출한 것에 대한 응답으로, 랩톱 컴퓨터 시스템(106)은 새로운 서브넷에 대한 새로운 피어 목록 을 구축하기 위해서, 피어 목록을 구축하기 위한 상술된 단계들을 수행할 수 있다. Laptop computer system 106 can detect that they have their own moves to a new subnet, in response to detecting that it has moved to a new subnet, a laptop computer system 106 to establish a new peer list for the new subnet order, it is possible to perform the above-described steps for building a peer list. 랩톱 컴퓨터 시스템(106)이 규칙적으로 특정 서브넷들의 구성원이면, 랩톱 컴퓨터 시스템(106)은 서브넷들과 연결할 때마다 피어 목록을 구축하는 단계들을 수행해야할 필요를 피하기 위해서 이 서브넷들에 대한 피어 목록을 유지할 수 있다. Laptop computer system 106 regularly is a member of a particular subnet, laptop, computer system 106 may maintain a list of peers for this subnet to avoid the need to perform the steps to build a list of peers every time you want to associate with subnets can. 컴퓨터 시스템이 유지하는 서로 다른 피어 목록들의 수는 정적으로 정의된(statically defined) 수일 수 있고, 또는 대안적으로 그 수는 사용자 또는 네트워크 관리자가 구성할 수 있는(configurable) 수일 수 있다. The number of different peer lists each other to keep a computer system may be a number of (statically defined) statically defined or, alternatively, that number may be a user or network administrator to configure (configurable) days.

특히, 컴퓨터 시스템이 새로운 서브넷으로 이동하지만, 새로운 피어 그룹을 형성하지 않는 상황이 있을 수 있다. In particular, the computer system moves to a new subnet, but there may be situations that do not form a new peer group. 예를 들어, 랩톱 컴퓨터가 인터넷 카페로 이동하면, 랩톱 컴퓨터는 아마도 새로운 피어 그룹을 형성하지 않는다. For example, if a laptop computer, go to an internet cafe, a laptop computer is probably not form a new peer group. 사용가능한 피어들과의 통신은 이것 및 다른 상황들에서 너무 위험(risky)할 수 있다. Using communication with available peers may be too risky for this and (risky) in different circumstances.

컴퓨터 시스템은 또한 처음 네트워크에 추가될 때 피어 목록을 구축하도록 구성될 수 있다. The computer system may also be configured to establish a peer list when first added to the network. 이것은 임의의 새로운 컴퓨터 시스템에 의해 이루어질 수 있으며, 랩톱 시스템에 제한되는 것이 아니다. This can be done by any new computer system and is not limited to laptop systems.

다시 도 2를 참조하면, 피어 목록의 컴퓨터를 인증하는 동작(단계 204)이 도시된다. Referring back to Figure 2, the operation (step 204) to authenticate the computer in the peer list is shown. 인증은 피어가 신뢰된 기계임을 검증하는 것을 포함한다. Certification involves verifying that the peer is a trusted machine. 한 실시예에서, 컴퓨터 시스템은 피어가 특정 보안 그룹의 구성원임을 검증할 수 있다. In one embodiment, the computer system can verify that the peer is a member of a certain security group. 검증은, 예를 들어, 프로토콜을 사용하여, 컴퓨터 시스템과 피어 모두 상호-인증(mutual-authentication)을 수행하도록 할 수 있다. Verifying, for example, using a protocol, a peer with a computer system all cross-may be to perform authentication (mutual-authentication). 이러한 방식으로, 컴퓨터 시스템 및 피어 둘 다의 ID를 검증함으로써, 컴퓨터 시스템 또는 피어 목록의 피어 가 같은 보안 그룹에 있다고 믿도록 서로를 "속이는(spoofing)" 것을 막는다. In this way, by verifying the ID of the computer system and the peer-two, to each other to the peer computer system or the peer list believe that the same security group "cheat (spoofing)" prevent. 이 상호 인증을 위한 한 프로토콜이 커베로스(Kerberos)일 수 있다. One protocol for this mutual authentication may be Kerberos (Kerberos). 피어가 검증에 실패하면, 피어는 피어 목록으로부터 제거될 수 있다. If the peer fails validation, the peer may be removed from the peer list.

피어가 검증되고 나면, 컴퓨터 시스템과 피어는 키를 공유함으로써, 이어지는 쿼리들에 앞서, 이어지는 검증들이 수행될 필요가 없도록 한다. Once the peer validation, by sharing peer key computer systems, prior to the subsequent query, so you do not have to be performed to verify that follows. 키는 트러스트 검증을 효과적으로 만들기 위해 만료 기간을 가질 수 있다. Keys can have an expiration date to create a trust verification effectively. 이러한 만료 기간은 예를 들어, 하루일 수 있다. This expiration may be, for example, one day.

피어가 검증되고 난 후, 도 2는 파일 또는 파일의 부분에 대해 피어 목록의 피어들을 쿼리하는 동작(단계 204)을 도시한다. After being peer validation, Figure 2 illustrates the operation (step 204) to query the peer for a peer list for the portions of the file or files. 피어 목록의 피어를 쿼리하는 것은, 한 예시적인 실시예에서, 피어들 중 하나가 컴퓨터 시스템이 찾고 있는 파일 또는 파일의 부분을 가지고 있다고 응답할 때까지, 피어 목록의 각 피어들에게 유니캐스트 메시지를 송신하는 것을 포함한다. It queries the peer list peer unicast message to each peer in the peer list until you respond that in one exemplary embodiment, with part of the peers file or one that you are looking for a computer system of It includes transmitting. 여기에 사용된바, 유니케스트는 특정 컴퓨터로의 네트워크 쿼리임을 주의해야 한다. Used herein, unicast is used in the query should be noted that the network of a particular computer. 여기에 설명된 유니캐스트는 반드시 데이터그램 프로토콜의 사용을 요구하지 않으며, TCP 및 기타 프로토콜과 같은 다른 프로토콜을 사용할 수 있다. Here Unicast described does not necessarily require the use of a datagram protocol, you can use a different protocol, such as TCP and other protocols. 한 대안적인 실시예에서, 컴퓨터 시스템은 중복(overlapping)된 유니캐스트 메시지의 집합을 송신할 수 있다. In one alternative embodiment, the computer system may send a duplicate (overlapping) set of unicast messages. 예를 들어, 컴퓨터 시스템은 이전에 유니캐스트 메시지를 보낸 피어들로부터 응답을 수신하기 전에 피어 목록의 피어들에게 유니캐스트 메시지를 송신할 수 있다. For example, the computer system may be a peer to peer list before receiving a response from the peer sent the previous unicast message to send a unicast message.

쿼리하는 단계에서 송신한 메시지는 컴퓨터 시스템이 필요로 하는 파일을 식별하기 위한 다양한 매개변수를 포함할 수 있다. A message sent in the step of the query may include a variety of parameters to identify the files that are required by the computer system. 예를 들어, 메시지는 파일 이름, 파일 크기, 파일 생성 날짜, 및/또는 파일의 해시 중 하나 이상을 포함할 수 있다. For example, the message may include the file name, file size, file creation date, and / or one or more of the hash of the file. 구체적으로, 파일의 해시를 사용함으로써, 시스템은 정확한 파일이 사용가능함을 검출할 수 있다. Specifically, by using a hash of the file, the system has the correct file can be detected using available. 해시를 사용하여, 컴퓨터 시스템은 사용가능한 파일이 업데이트된 파일인지, 다른 파일의 중복 이름인지 등을 검출할 수 있다. Use the hashish, the computer system that the available file updated files can be detected such that the duplicated names of other files.

컴퓨터 시스템이 파일 또는 파일의 부분에 대해 피어 목록의 피어들을 쿼리한 후(단계 206), 도 2에 도시된 방법은, 다운로드 가능한 파일 또는 파일의 부분을 피어 서버가 가지고 있다는 메시지를 피어 목록의 피어로부터 수신하는 동작(단계 208)을 도시한다. After the computer system is a peer query the peer in the list for the part of the file or file (step 206), the process shown in Figure 2, free peer of the available file or the peer a message indicating that the server has a peer in the list, It illustrates the operation (step 208) received from.

피어가 피어 서버로서 동작할지 결정할 때, 피어는 다양한 정책 규칙(policy rule)을 참조할 수 있다. When determining whether the peer-peer functions as a server, a peer can see the various policy rules (policy rule). 추가적으로, 피어가 사용가능한 파일을 가지고 있을 때에도, 그 피어는 정책 규칙에 따라 피어 서버로서 동작하지 않기로 선택할 수 있다. In addition, even when the peer has files available, you can choose not to operate as a peer server, depending on their peers policy rules. 이러한 정책 규칙은 컴퓨터 시스템의 처리 능력(processing power)을 고려할 수 있다. The policy rules can be considered a processing capacity (processing power) of the computer system. 예를 들어, 강력한(powerful) 데스크톱 또는 서버 클래스 컴퓨터는 더 많은 피어들, 예를 들어, 랩톱 컴퓨터 시스템(106)과 같은 랩톱 컴퓨터에 대해 피어 서버로서 동작하도록 허락하는 정책 규칙을 포함할 수 있다. For example, a strong (powerful) desktop or server class computer may include a policy rule that will allow more peers, for example, to peer acts as a server for a laptop computer such as a laptop computer system (106). 다른 규칙들은 사용가능한 기계 리소스의 양과 관련될 수 있다. Other rules may be related to the amount of available machine resources. 예를 들어, 정책 규칙은 컴퓨터 시스템 리소스의 10% 이상이 사용될 때, 컴퓨터 시스템의 피어 서버로서 동작하는 능력을 제한할 수 있다. For example, policy rules may be when 10% or more of the computer system resources to be used, restrict the ability to act as a peer server computer system. 시스템 리소스는 시스템의 CPU 로드 및 디스크 입/출력 로드 중 더 큰 것의 측정값일 수 있다. System resources can be a value greater measure of what the system CPU load and disk I / O load. 또한, 랩톱 컴퓨터는, 랩톱 컴퓨터 시스템(106)의 동작 상태에 기초하여, 랩톱 컴퓨터 시스템(106)이 피어 서버로서 동작 하는 피어의 수를 조정하는 정책을 참조할 수 있다. In addition, the laptop computer on the basis of the operating state of the laptop computer system 106 may be a laptop computer system 106 may reference a policy that adjust the number of peers in a peer that acts as a server. 예를 들어, 랩톱 컴퓨터 시스템(106)이 도킹 스테이션과 연결되면, 랩톱 컴퓨터는 도킹 스테이션과 연결되지 않았을 때보다 더 많은 피어들을 상대하도록 구성될 수 있다. For example, when the laptop computer system 106 is connected to the docking station, a laptop computer may be configured to deal with more peers than when not connected to the docking station. 더 나아가, 랩톱 컴퓨터 시스템(106)이 유선 연결을 통해 연결되었을 때, 랩톱 컴퓨터 시스템(106)은 무선 방식으로 피어 컴퓨터들과 연결되었을 때보다 더 많은 피어들을 상대할 수 있다. Further, when the laptop computer system 106 is connected via a wired connection, a laptop computer system 106 may deal with more peers than when peer wirelessly connected with the computer. 또한 다른 예에서, 랩톱 컴퓨터 시스템(106)과 연결되도록 허락되는 피어의 수는 배터리 레벨과 관련된 정책에 의해 정의될 수 있다. In addition, the number of peers that are allowed to be in another example, connected to the laptop computer system 106 may be defined by a policy related to battery level. 예를 들어, 랩톱이 배터리로 실행되고 있고 전력이 50% 보다 적을 때, 랩톱 컴퓨터 시스템(106)은 더 이상의 피어 컴퓨터 연결을 허락하지 않는 정책을 따를 수 있다. For example, when the laptop is running on batteries and power is less than 50%, a laptop computer system 106 may follow a policy that does not allow any further peer computer connections.

피어가 피어 서버로서 동작하기로 결정하면, 피어 서버는 다시 컴퓨터 시스템으로 메시지를 송신하며, 이는 컴퓨터 시스템에 의해 수신(단계 208)된다. If the peer is determined to act as a peer server, the peer server sends a message back to the computer system, which is received (step 208) by the computer system.

컴퓨터 시스템이 피어 목록의 잠재적 피어 서버로부터, 다운로드 가능한 파일 또는 파일의 부분을 잠재적 피어 서버가 가지고 있음을 나타내는 메시지를 수신한 후, 컴퓨터 시스템은 파일 또는 파일의 부분을 다운로드(단계 210)한다. And a computer system from a potential peer server in the peer list, downloading after receiving the message indicating that the potential of the available file or the peer server has, the computer system downloads the file or portion of a file (step 210). 다운로드는 임의의 적절한 방식으로 이루어질 수 있다. Downloads can be made in any suitable manner. 특히, 여기에 암시된 바와 같이, 컴퓨터 시스템은 전체 파일이 아닌 파일의 부분을 다운로드할 수 있다. In particular, as alluded to here, a computer system can download a section of the file, not the entire file. 파일의 다른 부분들은 다른 피어 서버로부터 획득될 수 있다. Other parts of the file may be obtained from other peer servers. 몇몇 환경에서, 이것은 대용량 파일이 다운로드되는 속도를 증가시킬 수 있다. In some circumstances, this can increase the speed of large file downloads.

한 실시예에서, 방법(200)은 파일 또는 파일의 부분을 검증하는 것(단계 212)을 더 포함한다. In one embodiment, the method 200 further includes the one for verifying the portion of the file or file (step 212). 검증은 파일이 정확한 파일이고, 파일이 악성으로 변경되지 않았고/거나 파일이 손상되지 않았음을 확인한다. Verification confirms that the file has a correct file, the file is not did not change as malicious and / or corrupted files. 이것은, 예를 들어, 파일 또는 파일의 부분의 해시를 계산함으로써 이루어질 수 있다. This is, for example, can be done by calculating a hash of the portion of the file or files. 계산된 해시 값이 기대되는 해시 값에 부합하지 않으면, 컴퓨터 시스템은 파일 또는 파일의 부분을 폐기한다. If no match in the hash value, the calculated hash value expected, the computer system will discard the file or portion of a file. 추가적으로, 컴퓨터 시스템은 파일을 제공한 피어 서버를, 피어 서버가 용의자(suspect)라는 것을 나타내는 격리 목록(quarantine list)에 놓을 수 있다. Additionally, the computer system can be placed in a peer server that provides file and the quarantine list (quarantine list) indicates that the peer server is a suspect (suspect). 대안적인 실시예에서, 피어 서버는 피어 목록 전체로부터 제거될 수 있다. In an alternative embodiment, the peer server may be removed from the entire peer list. 다음, 컴퓨터 시스템은 파일을 피어 목록의 다른 피어 또는 중앙 파일 서버로부터 가져오기 위한 시도를 할 수 있다. Next, the computer system can attempt to import a file from another peer or peer central file server in the list. 컴퓨터 시스템은 또한 파일에 문제가 있음을 파일을 제공한 피어 서버에 알릴 수 있다. The computer system can also notify a peer server that provides file that there is a problem with the file. 이것은 피어 서버가 파일을 폐기하도록 한다. This allows peer file server is discarded. 다른 컴퓨터 시스템들 또한 파일의 의심되는 성질에 대해 통지될 수 있다. Other computer systems may also be notified of the nature of the suspicious file.

이제 도 3을 참조하면, 잠재적 피어 서버의 관점에서 파일을 캐싱 및 공유하기 위한 방법(300)을 보여주는 실시예가 도시된다. Referring now to Figure 3, an embodiment showing a potential peer method 300 for caching and sharing files from the perspective of the server is shown. 도 3에 도시된 방법은 네트워크의 컴퓨터 시스템에서 실행될 수 있으며, 여기서 네트워크는 네트워크로 연결된 하나 이상의 컴퓨터를 포함한다. The method shown in Figure 3 may be executed in a computer system of the network, where the network includes one or more networked computers.

방법(300)은 컴퓨터 시스템이 피어로서 사용가능하다는 메시지를 송신하는 동작(단계 302)을 포함한다. The method 300 includes an act (step 302) to send a message that the computer system is available as a peer. 컴퓨터 시스템이 피어로서 사용가능하다는 메시지를 송신하는 것(단계 302)은, 컴퓨터 시스템이 공유할 파일을 가지고 있을 때, 서브넷 상의 멀티캐스트를 이용하여 수행될 수 있다. To send a message that the computer system is available as a peer (step 302), may, be performed using a multicast on a subnet when the computer system has files to share. 대안적인 실시예에서, 컴퓨터 시스템이 피어로서 사용가능하다는 메시지를 송신하는 것은, 피어 컴퓨터를 찾는 시스템으로부터 통신 유도 요청을 수신한 것에 대한 응답으로, 멀티캐스트 또는 유니캐 스트를 이용하여 수행될 수 있다. In an alternative embodiment, transmitting the message, a computer system that is available as a peer, in response to receiving a communication induction request from the system peer to find a computer, it may be performed using a multicast or unicast . 컴퓨터 시스템이 피어로서 사용가능하다는 메시지를 송신하는 것(단계 302)이 통신 유도 요청을 수신한 것에 대한 응답으로 수행될 때, 컴퓨터 시스템은 도 2의 기술과 함께 상술된 절차를 사용하여 무작위 지연(random delay)을 이용하여 응답할 수 있다. To send a message to the computer system that is available as a peer (step 302) a random delay using the above procedure with a time to be performed in response to receiving a communication induction request, the computer system has been described in Figure 2 ( It may respond by using a random delay).

방법(300)은 또한, 컴퓨터 시스템이 파일 또는 파일의 부분을 가지고 있는지 발견하기 위한 요청을 수신하는 동작을 포함한다(단계 304). Method 300 also includes an operation for receiving a request to discover if the computer system has the file or portion of a file (step 304). 수신된 메시지는 자신의 피어 목록에 컴퓨터 시스템을 포함하는 시스템으로부터의 유니캐스트 요청일 수 있다. The received message may be a unicast request from a system including a computer system to their peer list. 대안적인 실시예에서, 요청은 상술된 것과 같이 중복된 유니캐스트일 수 있다. In an alternative embodiment, the request may be an overlapping unicast as described above. 파일에 대한 보안이 요구되지 않을 때 멀티캐스트 요청 또한 사용될 수 있다. It can also be used multicast requests when security is not required to file.

방법(300)은 또한, 컴퓨터 시스템이 파일 또는 파일의 부분을 가지고 있다는 메시지를 송신하는 동작을 포함한다(단계 304). Method 300 also includes an operation of transmitting a message that the computer system has the file or portion of a file (step 304). 컴퓨터 시스템이 파일 또는 파일의 부분을 가지고 있다는 메시지를 송신하는 것(단계 304)은 동적 옵트-인/옵트-아웃 규칙에 기초하여 수행된다. To send a message that the computer system has a file or portion of a file (step 304) Dynamic Opt-out is performed on the basis of the rule-in / opt. 예를 들어 한 실시예에서, 정책 규칙은 컴퓨터 시스템의 처리 능력을 고려할 수 있다. For example, in one exemplary embodiment, the policy rules may take into account the processing power of the computer system. 강력한 데스크톱 또는 서버 클래스 컴퓨터는 다른 덜 강력한 시스템들보다 많은 피어들에게 피어로서 동작할 수 있도록 해주는 정책 규칙을 가질 수 있다. Powerful desktop or server class computer may have a policy rule that allows you to act as a peer to peer much less powerful than other systems. 다른 규칙들은 사용가능한 기계 리소스의 양과 관련될 수 있다. Other rules may be related to the amount of available machine resources. 예를 들어, 정책 규칙은 10% 이상의 컴퓨터 시스템 리소스가 사용될 때, 피어 서버로서 동작하는 컴퓨터 시스템의 능력을 제한할 수 있다. For example, policy rules may, can limit the ability of the computer system to operate as a peer server when more than 10% of the computer system resources to be used. 시스템 리소스는 시스템의 CPU 로드 및 디스크 입/출력 로드 중 더 큰 것의 측정값일 수 있다. System resources can be a value greater measure of what the system CPU load and disk I / O load. 랩톱 컴퓨터와 관련된 대안적인 실시예에서, 랩톱 컴퓨터는, 랩톱 컴퓨터 시스템(106)의 동작 상태에 기초하여, 랩톱 컴퓨터 시스템(106)이 피어 서버로서 동작하는 피어의 수를 조정하는 정책을 참조할 수 있다. In an alternative embodiment related to laptop computer, for example, a laptop computer, based on the operating state of the laptop computer system 106, a laptop computer system 106 may reference a policy that peer to adjust the number of peers that operates as a server, have. 예를 들어, 랩톱 컴퓨터 시스템(106)이 도킹 스테이션과 연결되면, 랩톱 컴퓨터는 도킹 스테이션과 연결되지 않았을 때보다 더 많은 피어들을 상대하도록 구성될 수 있다. For example, when the laptop computer system 106 is connected to the docking station, a laptop computer may be configured to deal with more peers than when not connected to the docking station. 더 나아가, 랩톱 컴퓨터 시스템(106)이 유선 연결을 통해 연결되었을 때, 랩톱 컴퓨터 시스템(106)은 무선 방식으로 피어 컴퓨터들과 연결되었을 때보다 더 많은 피어들을 상대할 수 있다. Further, when the laptop computer system 106 is connected via a wired connection, a laptop computer system 106 may deal with more peers than when peer wirelessly connected with the computer. 또한 다른 예에서, 랩톱 컴퓨터 시스템(106)과 연결되도록 허락되는 피어의 수는 배터리 레벨과 관련된 정책에 의해 정의될 수 있다. In addition, the number of peers that are allowed to be in another example, connected to the laptop computer system 106 may be defined by a policy related to battery level. 예를 들어, 랩톱이 배터리로 실행되고 있고 전력이 50% 보다 적을 때, 랩톱 컴퓨터 시스템(106)은 더 이상의 피어 컴퓨터 연결을 허락하지 않는 정책을 따를 수 있다. For example, when the laptop is running on batteries and power is less than 50%, a laptop computer system 106 may follow a policy that does not allow any further peer computer connections.

방법(300)은 또한, 파일을 다운로드하기 위한 요청을 수신하는 동작을 포함한다(단계 308). The method 300 also includes an act of receiving a request to download the file (step 308). 더 나아가, 방법(300)은 요청하는 시스템으로 파일을 송신하는 동작을 포함한다(단계 310). And further, the method 300 includes an act of sending the file to the requesting system (step 310). 이것은 네트워크의 다른 시스템들에게 피어 서버로 동작하는 컴퓨터 시스템에 의해 수행될 수 있다. This may be performed by a computer system that operates as a peer server to other systems on the network.

이제 도 4를 참조하면, 다양한 메시징 포맷을 포함하는, 파일을 캐싱 및 공유하기 위한 방법(400)을 나타내는 실시예가 도시된다. Referring now to Figure 4, an embodiment showing a method 400 for caching and sharing, file that includes various messaging formats is shown. 도 4에 도시된 방법은 네트워크로 연결된 하나 이상의 컴퓨터를 포함하는 네트워크의 컴퓨터 시스템에서 실행될 수 있다. The method shown in Figure 4 can be implemented in a computer system in a network including one or more networked computers.

방법은 컴퓨터 시스템이 잠재적 피어를 발견하기 위해 서브넷의 컴퓨터 시스 템들에게 브로드캐스트 신호를 송신하는 동작을 포함한다(단계 402). The method includes an operation of a computer system sends a broadcast signal to computer systems on the subnet to discover potential temdeul peer (step 402). 브로드캐스트 신호는 미리 결정된 수의 응답에 대한 요구를 나타낼 수 있다. Broadcast signal may indicate the need for a pre-determined number of responses. 대안적인 실시예에서, 브로드캐스트는 다양한 매개변수를 포함하여 컴퓨터 시스템이 브로드캐스트 신호에 대한 임의의 응답을 산정하도록 할 수 있다. In an alternative embodiment, the broadcast may be a computer system including a variety of parameters to calculate any response to the broadcast signal. 예를 들어, 매개변수들은 응답의 타이밍(timing), 응답하는 시스템의 하드웨어 특성의 평가 등을 허락할 수 있다. For example, the parameters can be allowed for, such as the evaluation of hardware characteristics of a system for response timing (timing), the response.

다음, 컴퓨터 시스템은 서브넷의 컴퓨터 중 하나로부터 신호를 수신한다(단계 404). Next, the computer system receives a signal from one of the subnets of the computer (step 404). 신호는 제공될 수 있는 파일의 목록, 신호를 송신하는 시스템의 특성 등을 포함할 수 있다. Signal, and the like characteristics of the system for transmitting a list of the file, signals that may be provided. 신호는 멀티캐스트 신호, 또는 몇몇 경우에서, 유니캐스트 신호일 수 있다. Signal may be a multicast signal, or in some cases, a unicast signal.

컴퓨터 시스템은 서브넷의 컴퓨터 중 상기 하나를 피어 목록에 추가한다(단계 406). A computer system added to the peer list for the one of the subnets of the computer (step 406). 피어 목록은 미리 결정된 수 이하의 피어들만을 포함한다. Peer list may include only the predetermined number of peers or less. 예를 들어, 피어 목록은 100개 이하의 피어만을 포함할 수 있다. For example, the peer list may include only a more than 100 peers. 이것은 다운로드하기 위한 파일 또는 파일의 부분을 찾는 데 필요한 프로세싱의 양 및 네트워크 사용량을 컴퓨터 시스템이 제한할 수 있도록 한다. This allows the amount of network usage and processing needed to find the parts of the file or files to download to your computer system limitations.

컴퓨터 시스템은 컴퓨터 시스템 중 하나가 다운로드 가능한 파일 또는 파일의 부분을 갖고 있는지 발견하기 위해, 서브넷의 컴퓨터 시스템 중 하나에 유니캐스트 신호를 송신한다(단계 408). A computer system in order to discover if it has a portion of a downloadable file, or files of a computer system, and transmits a unicast signal to the one of the computer systems on the subnet (step 408). 컴퓨터 시스템은 다른 컴퓨터 시스템들에 대해서도 이 과정을 반복하여 파일 또는 파일의 부분이 위치한 곳을 찾을 수 있다. A computer system may find a place in this part of the file or files, repeat this process for other computer systems. 특히, 유니캐스트 신호들은 중복되어, 동일한 컴퓨터 시스템으로부터 동시에 유니캐 스트가 발생할 수 있다. In particular, the unicast signals may overlap, and from the same computer system, may occur simultaneously unicast.

컴퓨터 시스템은 서브넷의 컴퓨터 시스템 중 하나로부터, 서브넷의 컴퓨터 시스템 중 하나가 다운로드 가능한 파일 또는 파일의 부분을 가지고 있음을 나타내는 유니캐스트 신호를 수신한다(단계 410). A computer system from one of the computer systems on the subnet, receiving a unicast signal indicating that it has a portion of one of the computer systems on the subnet has the downloadable files or file (step 410).

다음, 컴퓨터 시스템은 서브넷의 컴퓨터 시스템 중 하나로부터 파일 또는 파일의 부분을 다운로드할 수 있다(단계 412). Next, the computer system may download a portion of the file or files from the one of the computer systems on the subnet (step 412).

당업자들은 본 발명이 개인용 컴퓨터, 핸드-헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능한 가전 제품, 네트워크 PC, 미니 컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다양한 유형의 컴퓨터 시스템 구성을 통해 네트워크 컴퓨팅 환경에서 실행될 수 있음을 이해할 것이다. Those skilled in the art the present invention is a personal computer, hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PC, a minicomputer, a network through various types of computer system configurations, including mainframe computers computing it will be understood that it can run on. 본 발명은 또한 (배선 연결(hardwired link), 무선 연결, 또는 배선 및 무선연결의 조합에 의해) 통신 네트워크를 통해 연결되어 있는 로컬 및 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실행될 수 있다. The present invention also provides (wiring connected (hardwired link), wireless connection, or wire, and by a combination of the wireless connection) may be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked through a communications network have. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

본 발명의 범위 내에 있는 실시예들은 또한, 컴퓨터 실행가능 명령어들을 지니거나 저장하기 위한 컴퓨터 판독가능 매체를 포함한다. Performed in the range of the invention also includes a computer-readable medium for storing computer-executable instructions or genie. 컴퓨터 판독가능 매체는 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수 있다. Computer readable media can be any available media that can be accessed by a general purpose or special purpose computer. 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광학 디스크 저장소, 자기 디스크 저장소 또는 기타 자기 저장 장치, 또는 필요한 프로그램 코드 수단을 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 지 니거나 저장하는 데 사용될 수 있고, 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 기타 임의의 매체들을 포함하지만, 이에 제한되지는 않는다. By way of example, and not limitation, such computer-readable media can include but are not a RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or the required program code means in the form of computer-executable instructions or data structures Needle or may be used to store, including a general purpose or any other media that can be accessed by a special purpose computer, but are not limited to. 네트워크 또는 다른 통신 연결(배선, 무선, 또는 배선 또는 무선의 조합)을 통해 정보가 컴퓨터에 전송될 때, 컴퓨터는 적절하게 이 연결을 컴퓨터 판독가능 매체로 본다. When over a network or another communications connection (wired, wireless, or a combination of wired or wireless) information is transmitted to a computer, the computer will see a properly connected in a computer-readable medium. 따라서, 모든 이러한 연결은 적절하게 컴퓨터 판독가능 매체라 불린다. Thus, any such a connection is called a proper computer readable media. 상기의 조합 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다. The combination of the above should also be included within the scope of computer readable media. 컴퓨터 실행가능 명령어는, 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 프로세싱 장치로 하여금 특정 기능 또는 기능들의 그룹을 수행하도록 하는 명령어 및 데이터를 포함한다. Computer-executable instructions include, for example, allows the general-purpose computer, special purpose computer, or special purpose processing device, comprising instructions and data which to perform a certain function or group of functions.

본 발명이 구조적 특징 및/또는 방법론적 동작들에 있어 구체적인 언어로 설명되었지만, 첨부된 청구의 범위에 정의된 본 발명이 반드시 상술된 특정한 특징 또는 동작들에 제한되는 것이 아님을 이해해야 한다. In the present invention, the structural features and / or methodological operations to be understood not to be limited to the specific been described in a language, the invention as defined in the appended claims be the above-mentioned specific features or operations. 오히려, 상술된 특정한 특징 및 동작들은 청구의 범위를 구현하기 위한 예시적인 형태로서 개시된 것이다. Rather, the specific features and operations described above are disclosed as exemplary forms will for implementing the claims.

본 발명은 본 발명의 정신 또는 본질적 특성들을 벗어나지 않고 다른 특정 형태들에 구현될 수 있다. The invention can be implemented in other specific forms without departing from the spirit or essential characteristics of the present invention. 설명된 실시예들은 모든 관점에서 단지 예시적이고 제한적이지 않은 것으로 고려되어야 한다. The described embodiments are to be considered merely illustrative and non-restrictive in every aspect. 따라서, 본 발명의 범위는 앞선 설명보다는 첨부된 청구의 범위에 의해 나타난다. Accordingly, the scope of the present invention is shown by the appended claims rather than the foregoing description. 청구항의 등가(equivalency)의 의미 및 범위 내의 모든 변경들은 청구의 범위 내에 포함되어야 한다. All changes within the meaning and range of equivalence (equivalency) of the claims are to be embraced within the scope of the claims.

Claims (20)

  1. 네트워크로 연결된 하나 이상의 컴퓨터를 포함하는 컴퓨터 네트워크 내의 컴퓨터 시스템에서 파일을 캐싱 및 공유하기 위한 방법으로서, A method for caching and sharing files from a computer system in a computer network including one or more networked computers,
    상기 네트워크로 연결된 하나 이상의 컴퓨터 중에서 잠재적 피어 서버(potential peer servers)의 목록을 포함하는 피어 목록을 구축하는 단계- 상기 피어 목록은 미리 결정된 개수(predetermined number) 이하의 잠재적 피어 서버를 포함함-와, And a method comprising the steps of: building a peer list including a list of potential peer servers (potential peer servers) from one or more computers connected to the network, the the peer list of a predetermined number including a potential peer server in the following (predetermined number)
    파일 또는 파일의 일부에 대해 상기 피어 목록의 잠재적 피어 서버에 쿼리(query)하는 단계와, The method comprising: a query (query) to the potential peer server in the peer list for a file or portion of a file,
    상기 피어 목록의 잠재적 피어 서버로부터, 상기 잠재적 피어 서버가 다운로드 가능한 파일 또는 파일의 일부를 가지고 있다는 메시지를 수신하는 단계와, Comprising the steps of: from the potential of the peer-peer server list, and the potential peer server receives a message that has some of the downloadable file, or files,
    상기 잠재적 피어 서버로부터 상기 파일 또는 파일의 일부를 다운로드하는 단계를 포함하되, Comprising the step of downloading a portion of the file or files from the potential peer server,
    상기 피어 목록을 구축하는 단계는, Comprising: establishing a list of the peers,
    (a) 요구되는 잠재적 피어 서버의 개수에 대한 표시(indication)를 포함하는 의뢰 요구(solicitation request)를 하나 이상의 컴퓨터에 송신하는 단계와, (A) transmitting a referral request (solicitation request) including a display (indication) of the number of potential peer servers are required on one or more computers, and,
    (b) 상기 컴퓨터로부터 메시지 응답을 수신하는 단계- 상기 컴퓨터는 다른 컴퓨터로부터의 멀티캐스트 응답을 들으면서(listening) 무작위의 시간 간격(random interval of time)을 대기하고, 상기 컴퓨터는 상기 다른 컴퓨터로부터의 응답을 검출하여 상기 다른 컴퓨터로부터의 응답의 개수를 판정하며, 상기 컴퓨터는 상기 다른 컴퓨터로부터, 요구되는 잠재적 피어 서버의 개수에 대응하는 응답의 개수를 검출하지 못한 경우에만 응답을 송신하고, 상기 컴퓨터는 상기 다른 컴퓨터로부터, 요구되는 잠재적 피어 서버의 개수에 표시된 응답의 개수를 검출한 경우에는 응답을 송신하지 않음 -와, (B) receiving a message response from the computer, - waiting for the computer while listening to the multicast response from the other machine (listening) random time intervals (random interval of time) of, and the computer is received from the other computer, detected by determining the number of the response from said another computer for a response, and wherein the computer transmits a response only when failed to detect the number of the response corresponding to the number of the above from a different computer, a request potential peer servers, wherein the computer If the detection of the number of the displayed response to the number of potential peer servers as required from the other computer, has not sent a response - and,
    (c) 상기 컴퓨터로부터 수신된 메시지 응답에 기초하여, 응답을 전송한 컴퓨터를 상기 미리 결정된 개수까지 상기 피어 목록에 상기 잠재적 피어 서버로서 추가하는 단계- 상기 잠재적 피어 서버는 상기 컴퓨터 시스템에 대한 상기 잠재적 피어 서버의 논리적 근접성(logical closeness)에 따라 상기 피어 목록에 추가됨 -와, The potential for the potential peer server has the computer system - (c) adding a computer, on the basis of the message response is received from the computer, send a response to said predetermined as a potential peer server in the peer list until the number and, - the peer according to the logical proximity of the server (logical closeness) added to the list of peer
    (d) 상기 피어 목록으로부터 잠재적 피어 서버를 제거하는 단계와, (D) removing the potential peer server from the list of the peers and,
    (e) 상기 피어 목록으로부터 미리 결정된 개수의 잠재적 피어 서버가 제거된 경우, 단계(a) 내지 단계(c)를 반복하는 단계를 포함하는 (E) if the peer pre-determined number of potential peer servers are removed from the list, including the step of repeating steps (a) through (c)
    파일 캐싱 및 공유 방법. File caching, and how to share.
  2. 제1항에 있어서, According to claim 1,
    무작위의 시간 간격을 대기하는 상기 컴퓨터는, 응답 전에 대기하는 시간의 양을 결정하기 위해 DELAY=MAX_DELAY*Log(c*X+1)/Log(C+1)로 계산되는 대수적 무작위 지연(logarithmic random delay)을 사용하되, DELAY는 응답 전 지연이고, MAX_DELAY는 응답을 수신하는데 주어진 최대 시간의 양이며, X는 난수이고, C는 임의의 수인 The computer to wait for a random time interval, in order to determine the amount of time to wait before responding DELAY = MAX_DELAY * Log (c * X + 1) / Log algebraic random is calculated (C + 1) to the delay (logarithmic random but using delay), dELAY is the delay before responding, MAX_DELAY is the maximum amount of time given for receiving responses, X is the random number, C can be any number of
    파일 캐싱 및 공유 방법. File caching, and how to share.
  3. 제1항에 있어서, According to claim 1,
    상기 송신하는 단계 및 수신하는 단계는 동일한 제 1 서브넷 상의 컴퓨터로 이루어지는 The method comprising steps for the transmission and reception are made of a same computer on the first subnet,
    파일 캐싱 및 공유 방법. File caching, and how to share.
  4. 제3항에 있어서, 4. The method of claim 3,
    상기 제 1 서브넷과의 접속을 해제하고, 제 2 서브넷과의 접속을 수립하며, 의뢰 요구를 송신함으로써 제2 피어 목록을 구축하는 단계와, Comprising the steps of: building a second peer list, by releasing the connection with the first subnet, and transmits the request and the request to establish a connection with the second subnet,
    상기 제2 서브넷의 컴퓨터로부터 응답을 수신하는 단계 Receiving a response from the computer of the second subnet
    를 더 포함하는 파일 캐싱 및 공유 방법. File caching, and how to share further included.
  5. 제1항에 있어서, According to claim 1,
    상기 피어 목록을 구축하는 단계는, Comprising: establishing a list of the peers,
    상기 컴퓨터로부터 멀티캐스트 패킷과 함께 자기-알림(self-announcement)을 수신하는 단계 - 상기 자기-알림은 상기 컴퓨터가 상기 네트워크의 다른 컴퓨터에게 제공될 수 있는 파일을 가지고 있다는 표시를 포함함 - 와, And, - receiving a notification (self-announcement) - - the self-magnetic with a multicast packet from the computer notification comprises an indication that it has a file with the computer can be made available to other computers in the network,
    상기 컴퓨터를 상기 피어 목록에 추가하는 단계 Wherein the peer added to the list, the computer
    를 포함하는 파일 캐싱 및 공유 방법. File caching, and how to share that includes.
  6. 제1항에 있어서, According to claim 1,
    상기 의뢰 요구는 트러스트 그룹(trust group)의 식별을 포함하는 The referral request including an identification of a trust group (trust group)
    파일 캐싱 및 공유 방법. File caching, and how to share.
  7. 제1항에 있어서, According to claim 1,
    상기 파일 또는 파일의 일부가 손상되어 있음을 판정하고, 상기 파일 또는 파일의 일부가 손상되어 있음을 판정한 것에 대한 응답으로 상기 파일 또는 파일의 일부를 중앙 서버로부터 다운로드하는 단계를 더 포함하는 Determining that a portion of the file or the file has been corrupted, and in response to a determination that the portion of the file or the file is corrupted and further comprising the step of downloading a portion of the file or files from the central server
    파일 캐싱 및 공유 방법. File caching, and how to share.
  8. 제7항에 있어서, The method of claim 7,
    상기 파일 또는 파일의 일부가 손상되어 있음을 판정하는 단계는 해시 값을 참조하는 단계를 포함하는 Determining that a portion of the file or the file is corrupted comprises the step of referring to a hash value
    파일 캐싱 및 공유 방법. File caching, and how to share.
  9. 제1항에 있어서, According to claim 1,
    상기 파일 또는 파일의 일부가 상기 피어 목록의 어떠한 컴퓨터로부터도 제공될 수 없음을 판정하고, 상기 파일 또는 파일의 일부가 상기 피어 목록의 어떠한 컴퓨터로부터도 제공될 수 없음을 판정한 것에 대한 응답으로, 상기 파일 또는 파일의 일부를 중앙 서버로부터 다운로드하는 단계를 더 포함하는 In response to a determination that the portion of the file or files also can not be provided with any from the computer in the peer list and determine a, also not be provided from any computer in the list part of the file or the peer, further comprising the step of downloading a portion of the file or files from the central server
    파일 캐싱 및 공유 방법. File caching, and how to share.
  10. 제1항에 있어서, According to claim 1,
    파일 또는 파일의 일부에 대해 상기 피어 목록의 컴퓨터에 쿼리하기 전에 상기 피어 목록의 컴퓨터를 인증하는 단계를 더 포함하는 For some of the files or file further comprises the step of authenticating the peer computers on the list before the query on a computer list of the peer
    파일 캐싱 및 공유 방법. File caching, and how to share.
  11. 네트워크로 연결된 하나 이상의 컴퓨터를 포함하는 컴퓨터 네트워크 내의 제1 컴퓨터 시스템에서 파일을 캐싱 및 공유하기 위한 방법으로서, A method for caching and sharing files from a first computer system in a computer network including one or more networked computers,
    의뢰 요구(solicitation request)를 수신하는 단계- 상기 의뢰 요구는 하나 이상의 잠재적 피어로 전송되고 요구되는 잠재적 피어의 개수에 대한 표시(indication)를 포함함 -와, And, - the request should request includes an indication (indication) of the number of potential peers to be transmitted are required to one or more potential peer-request request method comprising: receiving (solicitation request)
    다른 잠재적 피어로부터의 멀티캐스트 응답을 들으면서 무작위의 시간 간격을 대기하고, 상기 다른 잠재적 피어로부터의 응답을 검출하여 상기 다른 잠재적 피어로부터의 응답의 개수를 판정하며, 요구되는 잠재적 피어의 개수에 대응하는 응답의 개수가 검출되지 않은 경우에만 상기 의뢰 요구에 대해 응답을 송신하고, 요구되는 잠재적 피어의 개수에 표시된 만큼 다른 잠재적 피어로부터의 응답의 개수가 검출된 경우에는 응답을 송신하지 않는 단계와, While listening to the multicast response from the other potential peers and wait for a random time interval, and detects a response from the other potential peers and determining the number of the responses from the other potential peers, corresponding to the number of potential peer required If the case where the number of response is detected sending a response to said request only required, and the number of responses from the other potential peers as shown in the number of required potential peer detected does not transmit the response phase, and
    상기 무작위의 시간 간격이 지난 후에 상기 요구되는 잠재적 피어의 개수에 대응하는 응답의 개수가 검출되지 않았음을 검출하고, 그 결과로서, 상기 제1 컴퓨터 시스템이 잠재적 피어로서 이용가능하다는 메시지를 상기 제1 컴퓨터 시스템과 동일한 서브넷 상의 하나 이상의 컴퓨터 시스템에 전송하는 단계와, Detecting that it is not after the time interval of the random over a number of responses corresponding to the number of potential peers that the request detected, and as a result, the first computer system to the said the that the message is available as potential peers the method comprising the steps of first transmitting to the computer system and one or more computer systems on the same subnet,
    상기 제1 컴퓨터 시스템이 잠재적 피어로서 이용가능하다는 메시지를 상기 제1 컴퓨터 시스템과 동일한 서브넷 상의 하나 이상의 컴퓨터 시스템에 전송한 것의 결과로서, 상기 제1 컴퓨터 시스템이 파일 또는 파일의 일부를 가지고 있는지를 알아내기 위한 요청을 요청 시스템으로부터 수신하는 단계와, Determine whether the first computer system as a result of the transmission of that message can be used as a potential peer in one or more computer systems on the same subnet as the first computer system, the first computer system has a part of a file or files the method comprising: receiving a request from the request betting system,
    상기 제1 컴퓨터 시스템이 파일 또는 파일의 일부를 가지고 있는지를 알아내기 위한 요청에 대한 응답으로, 상기 제1 컴퓨터 시스템이 파일 또는 파일의 일부를 가지고 있다는 메시지를 상기 요청 시스템에 전송하는 단계와, And sending a message that the first computer system has a file or portion of the file to the requesting computer in response to a request to find out whether the first computer system has a file or portion of a file,
    상기 제1 컴퓨터 시스템이 파일 또는 파일의 일부를 가지고 있다는 메시지를 전송한 것의 결과로서, 상기 파일을 다운로드하기 위한 요청을 상기 요청 시스템으로부터 수신하는 단계와, And as a result of transmitting the message that the first computer system has a file or portion of a file, comprising: receiving a request to download the file from the requesting system,
    상기 파일을 다운로드하기 위한 요청을 수신하는 것에 대한 응답으로, 상기 파일을 상기 요청 시스템으로 전송하는 단계를 포함하는 In response to receiving a request to download the file, comprising the step of sending the file to the requesting system,
    파일 캐싱 및 공유 방법. File caching, and how to share.
  12. 네트워크로 연결된 하나 이상의 컴퓨터를 포함하는 컴퓨터 네트워크 내의 컴퓨터 시스템에서 파일을 캐싱 및 공유하기 위한 방법으로서, A method for caching and sharing files from a computer system in a computer network including one or more networked computers,
    (a) 잠재적 피어를 발견하기 위해 서브넷의 컴퓨터 시스템에게 브로드캐스트 신호를 송신하는 단계- 상기 브로드캐스트 신호는 요구되는 잠재적 피어의 개수에 대한 표시를 포함함 -와, Also the broadcast signal includes an indication of the number of potential peer required - - (a) sending a broadcast signal to computer systems on the subnet to discover potential peers and,
    (b) 상기 서브넷의 컴퓨터 시스템 중 하나로부터 응답 신호를 수신하는 단계- 상기 컴퓨터 시스템 중 하나는 다른 컴퓨터 시스템으로부터의 멀티캐스트 응답을 들으면서 무작위의 시간 간격을 대기하고, 상기 컴퓨터 시스템 중 하나는 상기 다른 컴퓨터 시스템으로부터의 응답을 검출하여 다른 컴퓨터 시스템으로부터의 응답의 개수를 판정하며, 상기 컴퓨터 시스템 중 하나는 상기 요구되는 잠재적 피어의 개수에 대응하는 다른 컴퓨터 시스템으로부터의 응답의 개수를 검출하지 않은 경우에만 상기 응답 신호를 송신하고, 다른 컴퓨터 시스템으로부터 상기 요구되는 잠재적 피어의 개수에 표시된 응답의 개수를 검출한 경우에는 응답 신호를 송신하지 않음 -와, (B) receiving a response signal from one of the computer systems in the subnet - one of the computer system is listening to the multicast response from the other computer system and wait for a random time interval, one of the computer system are the other It detects a response from the computer system to determine the number of responses from the other computer systems, and one of the computer systems is only when not detecting the number of the responses from the other computer system corresponding to the number of potential peers that the requesting when transmitting the response signal, and detecting the number of the displayed response to the number of potential peers to which the request from the other computer system, does not transmit a response signal, and,
    (c) 상기 컴퓨터 시스템 중 하나의 논리적 근접성에 기초하여 상기 서브넷의 컴퓨터 시스템 중 상기 하나를 피어 목록에 선택적으로 추가하는 단계 -상기 피어 목록은 미리 결정된 개수 이하의 잠재적 피어를 포함함- 와, And - including the potential peer in the peer list, a predetermined number or less - (c) of the computer system of the subnet selectively added to the peer list, the one based on one of the logical proximity of the computer system
    (d) 상기 피어 목록으로부터 잠재적 피어를 제거하는 단계와, (D) removing the potential peer from the peer list, and,
    (e) 미리 결정된 개수의 잠재적 피어가 상기 피어 목록으로부터 제거된 경우 상기 서브넷의 컴퓨터 시스템을 상기 피어 목록에 선택적으로 추가하는 단계와, (E) a step of the peer optionally added to the list, the computer system of the subnet, if the predetermined number of potential peer of the peer is removed from the list,
    상기 컴퓨터 시스템 중 상기 하나가 다운로드 가능한 파일 또는 파일의 일부를 가지고 있는지 알아내기 위해 상기 서브넷의 컴퓨터 시스템 중 상기 하나에 유니캐스트 신호를 송신하는 단계와, And wherein one of the computer system sends a unicast signal to the one of the computer systems of the subnet to find out if they have some of the downloadable file, or files,
    상기 서브넷의 컴퓨터 시스템 중 상기 하나로부터, 상기 서브넷의 컴퓨터 시스템 중 상기 하나가 다운로드 가능한 상기 파일 또는 파일의 일부를 가지고 있음을 나타내는 유니캐스트 신호를 수신하는 단계와, Comprising the steps of: from said one of said subnet, a computer system receives a unicast signal indicating that the one of the computer system of the subnet has a portion of the downloadable file or files,
    상기 서브넷의 컴퓨터 시스템 중 상기 하나로부터 상기 파일 또는 파일의 일부를 다운로드하는 단계 Of the subnet, the computer system comprising: downloading a portion of the file or files from the one
    를 포함하는 파일 캐싱 및 공유 방법. File caching, and how to share that includes.
  13. 삭제 delete
  14. 삭제 delete
  15. 삭제 delete
  16. 삭제 delete
  17. 삭제 delete
  18. 삭제 delete
  19. 삭제 delete
  20. 삭제 delete
KR1020087003133A 2005-08-30 2006-08-03 Distributed caching of files in a network KR101322947B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/215,621 2005-08-30
US11/215,621 US7512943B2 (en) 2005-08-30 2005-08-30 Distributed caching of files in a network
PCT/US2006/030445 WO2007027361A2 (en) 2005-08-30 2006-08-03 Distributed caching of files in a network

Publications (2)

Publication Number Publication Date
KR20080047353A KR20080047353A (en) 2008-05-28
KR101322947B1 true KR101322947B1 (en) 2013-10-29

Family

ID=37805841

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087003133A KR101322947B1 (en) 2005-08-30 2006-08-03 Distributed caching of files in a network

Country Status (11)

Country Link
US (1) US7512943B2 (en)
EP (1) EP1922615B1 (en)
JP (1) JP4943437B2 (en)
KR (1) KR101322947B1 (en)
CN (1) CN101253488B (en)
BR (1) BRPI0614925B1 (en)
CA (1) CA2616916A1 (en)
MX (1) MX2008002505A (en)
NO (1) NO20080273L (en)
RU (1) RU2413981C2 (en)
WO (1) WO2007027361A2 (en)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122609A (en) * 2005-10-31 2007-05-17 Ricoh Co Ltd Structured document, content delivery server device and content delivery system
US7761503B2 (en) * 2006-01-06 2010-07-20 Microsoft Corporation Peer distribution point feature for system management server
GB0600348D0 (en) * 2006-01-10 2006-02-15 Ibm Updating of data processing and communication devices
US20070245323A1 (en) * 2006-04-13 2007-10-18 Apple Computer, Inc. Sharing compiled versions of files
US7814070B1 (en) * 2006-04-20 2010-10-12 Datascout, Inc. Surrogate hashing
US7840540B2 (en) 2006-04-20 2010-11-23 Datascout, Inc. Surrogate hashing
US9020964B1 (en) 2006-04-20 2015-04-28 Pinehill Technology, Llc Generation of fingerprints for multimedia content based on vectors and histograms
US7801868B1 (en) * 2006-04-20 2010-09-21 Datascout, Inc. Surrogate hashing
US8103870B2 (en) * 2006-09-12 2012-01-24 Foleeo, Inc. Hive-based peer-to-peer network
US7953083B1 (en) 2006-12-12 2011-05-31 Qurio Holdings, Inc. Multicast query propagation scheme for a peer-to-peer (P2P) network
US8996484B2 (en) * 2007-02-13 2015-03-31 Red Hat, Inc. Recursive lock-and-propagate operation
US8316364B2 (en) * 2007-02-28 2012-11-20 Red Hat, Inc. Peer-to-peer software update distribution network
KR101409991B1 (en) 2007-04-16 2014-06-20 삼성전자주식회사 Method and apparatus for data transfer in peer-to-peer network
US7991206B1 (en) 2007-07-02 2011-08-02 Datascout, Inc. Surrogate heuristic identification
US7774385B1 (en) 2007-07-02 2010-08-10 Datascout, Inc. Techniques for providing a surrogate heuristic identification interface
US8156132B1 (en) 2007-07-02 2012-04-10 Pinehill Technology, Llc Systems for comparing image fingerprints
US8549022B1 (en) 2007-07-02 2013-10-01 Datascout, Inc. Fingerprint generation of multimedia content based on a trigger point with the multimedia content
US8463000B1 (en) 2007-07-02 2013-06-11 Pinehill Technology, Llc Content identification based on a search of a fingerprint database
US8201164B2 (en) * 2007-07-20 2012-06-12 Microsoft Corporation Dynamically regulating content downloads
JP5007624B2 (en) * 2007-08-10 2012-08-22 ブラザー工業株式会社 Distributed storage system, content data acquisition method, the node device, and a node processing program
US8281298B2 (en) * 2007-08-27 2012-10-02 International Business Machines Corporation Evaluating computer driver update compliance
GB2452325A (en) * 2007-08-31 2009-03-04 Sony Corp Method and system for distributing software to a portable device using software on a pre-recorded medium.
US8886803B1 (en) 2007-09-20 2014-11-11 Qurio Holdings, Inc. Dynamic query response in a distributed network
US8522231B2 (en) * 2008-01-30 2013-08-27 International Business Machines Corporation Updating a plurality of computers
US9203928B2 (en) 2008-03-20 2015-12-01 Callahan Cellular L.L.C. Data storage and retrieval
US8458285B2 (en) * 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US20090252071A1 (en) * 2008-04-02 2009-10-08 Nokia Corporation Method and deevice for network messaging
US8386585B2 (en) * 2008-04-25 2013-02-26 Tajitshu Transfer Limited Liability Company Real-time communications over data forwarding framework
US8452844B2 (en) * 2008-05-07 2013-05-28 Tajitshu Transfer Limited Liability Company Deletion in data file forwarding framework
US9848314B2 (en) * 2008-05-19 2017-12-19 Qualcomm Incorporated Managing discovery in a wireless peer-to-peer network
US9198017B2 (en) * 2008-05-19 2015-11-24 Qualcomm Incorporated Infrastructure assisted discovery in a wireless peer-to-peer network
US9237086B2 (en) * 2008-05-30 2016-01-12 Genband Us Llc Methods and apparatus for network traffic distribution based on random number values
US8769277B2 (en) * 2008-06-23 2014-07-01 Microsoft Corporation Content retrieval
US8370446B2 (en) 2008-07-10 2013-02-05 Tajitshu Transfer Limited Liability Company Advertisement forwarding storage and retrieval network
US8599678B2 (en) 2008-07-10 2013-12-03 Tajitshu Transfer Limited Liability Company Media delivery in data forwarding storage network
US7599997B1 (en) 2008-08-01 2009-10-06 Gene Fein Multi-homed data forwarding storage
US7636761B1 (en) * 2008-09-29 2009-12-22 Gene Fein Measurement in data forwarding storage
US8478823B2 (en) 2008-09-29 2013-07-02 Tajitshu Transfer Limited Liability Company Selective data forwarding storage
US8352635B2 (en) * 2008-09-29 2013-01-08 Tajitshu Transfer Limited Liability Company Geolocation assisted data forwarding storage
US7685248B1 (en) * 2008-09-29 2010-03-23 Gene Fein User interface in data forwarding network
US7636759B1 (en) * 2008-09-29 2009-12-22 Gene Fein Rotating encryption in data forwarding storage
US7961741B2 (en) * 2008-10-23 2011-06-14 Silver Spring Networks, Inc. Rapid dissemination of bulk information to widely dispersed network nodes
EP2234375A1 (en) * 2009-03-24 2010-09-29 Thomson Licensing device and method for controlling dissemination of content data between peers in a P2P mode, by using a two-level randomized peer overlay and a dynamic unchoke mechanism
CN101764824B (en) * 2010-01-28 2012-08-22 深圳市龙视传媒有限公司 Distributed cache control method, device and system
JP2012088955A (en) * 2010-10-20 2012-05-10 Nec Corp Data replication system, data replication server, data replication method, and data replication program
US8681758B2 (en) 2010-12-14 2014-03-25 Symbol Technologies, Inc. Video caching in a wireless communication network
EP2477377A1 (en) * 2011-01-14 2012-07-18 Alcatel Lucent Peer node and method for improved peer node selection
CA2828489A1 (en) * 2011-02-28 2012-11-15 Bittorrent, Inc. Sharing content according to a protocol for peer-to-peer live streaming
CN102752335B (en) * 2011-04-22 2017-08-08 中兴通讯股份有限公司 Overlay network peer node information overload method and system subscriptions
US20130007218A1 (en) * 2011-06-28 2013-01-03 Cisco Technology, Inc. Network Assisted Tracker for Better P2P Traffic Management
US20130073671A1 (en) * 2011-09-15 2013-03-21 Vinayak Nagpal Offloading traffic to device-to-device communications
US20130156030A1 (en) * 2011-12-16 2013-06-20 Jeremy Johnson Rapid dissemination of information to widely dispersed network nodes via patch
US9432452B2 (en) 2012-09-10 2016-08-30 Joosy, Inc. Systems and methods for dynamic networked peer-to-peer content distribution
JP5971065B2 (en) * 2012-09-28 2016-08-17 富士通株式会社 Communication method, a wireless terminal and communication system
JP5487273B1 (en) * 2012-10-26 2014-05-07 日本電信電話株式会社 Information transmission apparatus and program
CN104202362B (en) * 2014-08-14 2017-11-03 上海帝联信息科技股份有限公司 Load balancing system and content distribution method and apparatus, the load balancer
US20160057245A1 (en) * 2014-08-25 2016-02-25 Super Micro Computer, Inc. Globally distributed virtual cache for worldwide real-time data access
CN104461940A (en) * 2014-12-17 2015-03-25 南京莱斯信息技术股份有限公司 Efficient caching and delayed writing method for network virtual disk client side

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010027479A1 (en) 1998-10-05 2001-10-04 Backweb Technologies, Ltd. Distributed client-based data caching system
JP2002318720A (en) 2001-04-19 2002-10-31 Oki Electric Ind Co Ltd Contents delivery management system
US20030233455A1 (en) 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
JP2005094773A (en) 2003-09-15 2005-04-07 Microsoft Corp Computerized system including participation locality-aware overlay module, and method implemented by computer

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128295A (en) 1997-07-11 2000-10-03 Telefonaktiebolaget Lm Ericsson Buffering of point-to-point and/or point-to-multipoint ATM cells
US20020062336A1 (en) * 2000-11-22 2002-05-23 Dan Teodosiu Resource coherency among resources cached in a peer to peer environment
US7035911B2 (en) * 2001-01-12 2006-04-25 Epicrealm, Licensing Llc Method and system for community data caching
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7197565B2 (en) * 2001-01-22 2007-03-27 Sun Microsystems, Inc. System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
WO2002059739A1 (en) * 2001-01-25 2002-08-01 David Sidman Apparatus method and system for registration effecting information access
US6983326B1 (en) * 2001-04-06 2006-01-03 Networks Associates Technology, Inc. System and method for distributed function discovery in a peer-to-peer network environment
US20030009570A1 (en) * 2001-07-03 2003-01-09 International Business Machines Corporation Method and apparatus for segmented peer-to-peer computing
US7003514B2 (en) * 2001-09-13 2006-02-21 International Business Machines Corporation Method and apparatus for restricting a fan-out search in a peer-to-peer network based on accessibility of nodes
JP3997774B2 (en) * 2001-12-11 2007-10-24 ソニー株式会社 Data processing system, data processing method, and an information processing apparatus, and computer program
US7117264B2 (en) 2002-01-10 2006-10-03 International Business Machines Corporation Method and system for peer to peer communication in a network environment
US7574488B2 (en) * 2002-05-31 2009-08-11 Hitachi, Ltd. Method and apparatus for peer-to-peer file sharing
JP2004127168A (en) * 2002-10-07 2004-04-22 Sony Corp Device and method for processing communication and computer program
EP1429513A1 (en) * 2002-12-09 2004-06-16 Philips Electronics N.V. Method and apparatus for searching data in a peer to peer network
US20050076092A1 (en) * 2003-10-02 2005-04-07 Sony Corporation And Sony Electronics Inc. User shared virtual channel via media storage
US7660889B2 (en) * 2003-11-18 2010-02-09 Cisco Technology, Inc. Initialization and acquisition of peers in a peers' list in a peer-to-peer network
US8239446B2 (en) * 2003-11-19 2012-08-07 Sony Computer Entertainment America Llc Content distribution architecture
US7627644B2 (en) * 2003-11-28 2009-12-01 Canon Kabushiki Kaisha Recipient-centred proactive caching in a peer-to-peer system
US7342900B2 (en) * 2004-05-19 2008-03-11 Hewlett-Packard Development Company, L.P. Apparatus and method for estimating device availability
US20060212542A1 (en) * 2005-03-15 2006-09-21 1000 Oaks Hu Lian Technology Development Co., Ltd. Method and computer-readable medium for file downloading in a peer-to-peer network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010027479A1 (en) 1998-10-05 2001-10-04 Backweb Technologies, Ltd. Distributed client-based data caching system
JP2002318720A (en) 2001-04-19 2002-10-31 Oki Electric Ind Co Ltd Contents delivery management system
US20030233455A1 (en) 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
JP2005094773A (en) 2003-09-15 2005-04-07 Microsoft Corp Computerized system including participation locality-aware overlay module, and method implemented by computer

Also Published As

Publication number Publication date
RU2413981C2 (en) 2011-03-10
MX2008002505A (en) 2008-04-07
WO2007027361A3 (en) 2008-01-24
CN101253488A (en) 2008-08-27
CN101253488B (en) 2010-06-02
JP4943437B2 (en) 2012-05-30
US20070050761A1 (en) 2007-03-01
US7512943B2 (en) 2009-03-31
BRPI0614925A2 (en) 2011-04-19
KR20080047353A (en) 2008-05-28
CA2616916A1 (en) 2007-03-08
WO2007027361A2 (en) 2007-03-08
RU2008107742A (en) 2009-09-10
EP1922615A2 (en) 2008-05-21
JP2009506455A (en) 2009-02-12
EP1922615A4 (en) 2009-09-02
BRPI0614925B1 (en) 2018-04-24
EP1922615B1 (en) 2016-06-15
NO20080273L (en) 2008-03-31

Similar Documents

Publication Publication Date Title
Bruschi et al. S-ARP: a secure address resolution protocol
US7721091B2 (en) Method for protecting against denial of service attacks using trust, quality of service, personalization, and hide port messages
US8612527B2 (en) Automatic notification system and process
EP1130875B1 (en) A home gateway with a data backup service
CN1689314B (en) Method for application in wireless communication device and method for application for server
EP2345205B1 (en) Apparatus and method for mediating connections between policy source servers, corporate repositories, and mobile devices
US6826690B1 (en) Using device certificates for automated authentication of communicating devices
US7512649B2 (en) Distributed identities
US7383433B2 (en) Trust spectrum for certificate distribution in distributed peer-to-peer networks
US6823454B1 (en) Using device certificates to authenticate servers before automatic address assignment
US7222187B2 (en) Distributed trust mechanism for decentralized networks
US7203753B2 (en) Propagating and updating trust relationships in distributed peer-to-peer networks
ES2384964T3 (en) Security infrastructure and procedure for a protocol name resolution (PNRP)
US7308496B2 (en) Representing trust in distributed peer-to-peer networks
US8281023B2 (en) Systems and methods for data authorization in distributed storage networks
US7657597B2 (en) Instant messaging using distributed indexes
US7275102B2 (en) Trust mechanisms for a peer-to-peer network computing platform
US7206934B2 (en) Distributed indexing of identity information in a peer-to-peer network
US8146133B2 (en) Apparatus and method for managing P2P traffic
Cornelli et al. Choosing reputable servents in a P2P network
US8549646B2 (en) Methods, media and systems for responding to a denial of service attack
US7360242B2 (en) Personal firewall with location detection
Jacobson et al. Networking named content
JP4376711B2 (en) Access management method and apparatus
RU2385488C2 (en) Names resolution protocol for wire connection of equivalent devices and structure of message format date used in it

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 6