Method and apparatus for peer-to-peer services
Abstract
The present invention describes methods and equipment for peer-to-peer services.
Term
Term ended
Projected expiry passed 3 July 2022, 4.2 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
30 claims: 6 independent, 24 dependent
- 1一种方法,包括:从第一设备接收数据传送请求;从所述第一设备接收第二设备数据传送目的地;确定离所述第二设备最近的所述数据的源;开始向所述第二设备传送所述数据。
- 2如权利要求1所述的方法,还包括向所述第一设备告知所述第二设备已经收到了所请求的数据。
- 3如权利要求1所述的方法,其中,由目录服务器来执行所述的确定。
- 4如权利要求3所述的方法,其中,在完成向所述第二设备的数据传送后,所述目录服务器与所述第一设备通信。
- 5如权利要求4所述的方法,其中,所述目录服务器更新目录服务器列表,以指示所述第二设备具有所述数据。
- 6一种方法,包括:从第一设备接收数据传送请求;确定离所述第一设备最近的第二设备;确定离所述第二设备最近的所述数据的源;开始向所述第二设备传送所述数据;以及向所述第一设备告知所述第二设备具有所请求的数据。
- 7如权利要求6所述的方法,其中,所述数据传送请求还包括对位于所述第一设备不与之直接相连的第二网络上的数据的请求。
- 8如权利要求7所述的方法,其中,所述第二网络是因特网。
- 9如权利要求6所述的方法,其中,所述最近的源是从因特网不可访问的另一个设备。
- 10如权利要求6所述的方法,其中,所述传送是对等传送。
- 11如权利要求6所述的方法,其中,确定最近的所述数据的源包括从多个源中选择一个源,所述这个源对于从该源到所述设备的数据具有最短传送时间。
- 12一种目录服务器系统,包括处理器,其在执行一个指令集时实现如权利要求6所述的方法。
- 13一种机器可读介质,具有存储其上的指令,所述指令被执行时实现如权利要求6所述的方法。
- 14一种装备,包括:用于从第一设备接收对数据的请求的装置;用于从所述第一设备接收对第二设备的选择作为所请求数据的目的地的装置;用于将所述数据传送到所述第二设备的装置;用于确定所述第二设备已何时接收到所述数据的装置;和用于从所述第二设备向所述第一设备传送所述数据的装置。
- 15如权利要求14所述的装备,其中,用于从所述第二设备向所述第一设备传送所述数据的装置是局域网上的对等传送。
- 16如权利要求15所述的装备,还包括用于当所述第一设备被重新连接到局域网时传送所述数据的装置。
- 17如权利要求14所述的装备,还包括用于在从所述第二设备向所述第一设备传送所述数据后更新所述数据的位置列表的装置。
- 18如权利要求14所述的装备,还包括用于保留所述数据的最近源的优先权化列表的装置。
- 19一种机器可读介质,具有存储其上的信息,该信息代表如权利要求14所述的装备。
- 20一种系统,包括处理器,其在执行指令集时进行以下操作:从第一设备输入数据请求;从所述第一设备输入所述数据的目的地;确定对于所述数据的最近源;从所述最近源向所述目的地传送所述数据;以及将所述数据的传送通知给所述第一设备。
- 21如权利要求20所述的系统,还包括确定一个源,其具有从所述数据的源到所述目的地的最快数据传送时间。
- 22如权利要求20所述的系统,还包括传送支付款和/或信用证。
- 23如权利要求20所述的系统,还包括从所述目的地向所述第一设备进行所述数据的第二传送。
- 24如权利要求23所述的系统,其中,从所述目的地向所述第一设备的所述数据的所述第二传送是通过局域网上的对等通信而进行的。
- 25一种第三方客户端在对等网络中控制文件传送的方法,该方法包括:在第一方服务器上从所述第三方客户端接收对所述文件传送的请求;在所述第一方服务器上从所述第三方客户端接收对用于接收所述文件的第二方客户端的选择;从在所述第一方服务器上所保留的列表中确定所请求文件的源位置;以及从所述源位置向所述第二方客户端传送所述文件。
- 26如权利要求25所述的方法,其中,所述第三方客户端和所述第二方客户端与同一局域网相连。
- 27如权利要求25所述的方法,其中,所保留的所述列表考虑从以下各项中选出的因素,即组成所述第三方客户端的实体性的组、第三方客户端所附属的网络、第二方客户端所附属的网络、网络的带宽、网络的可用带宽、所述文件的时间期限、文件大小和传送所述文件的时间。
- 28一种装备,包括:目录服务器,具有双向通信端口,所述双向通信端口被耦合以从第一设备接收对数据的请求,所述双向通信端口被耦合以从所述第一设备接收数据目的地,该目的地位于第二设备上;和取引擎,具有双向通信端口,所述双向通信端口被耦合以从第一网络接收所述数据,所述双向通信端口被耦合以从所述目录服务器接收所述数据目的地,并且所述第二设备被耦合以从所述取引擎双向通信端口接收所述数据。
- 29如权利要求28所述的装备,还包括局域网,所述第一设备被耦合到该局域网以从耦合到该局域网的所述第二设备接收数据。
- 30如权利要求29所述的装备,还包括具有输入端和输出端的客户端连接检测器,所述输入端被耦合以在所述第一设备被连接到所述局域网时接收信号,并且所述第二设备被耦合以接收客户端连接检测器的输出,该输出指示何时可以从所述第二设备向所述第一设备传送所述数据。
Independent claims30
102 paragraphs, as filed
Methods and equipment for peer-to-peer services
Related Application This patent application claims priority of U.S. Provisional Application No. 60/303,706 filed on July 6, 2001, which is named "Share and Leam Software", which is incorporated herein by reference. For reference.
Technical field
This invention relates to networks. Specifically, the present invention relates to methods and equipment for peer-to-peer services.
Background technique
Many companies are using the Internet to share information. The Internet and corporate intranets are examples of such networks. This information can be shared among companies, universities, local groups, or users all over the world.
As shared information becomes more abundant in content, such as streaming video, higher requirements are placed on servers. These servers may reduce the available bandwidth and slow down access to information on, for example, a wide area network (WAN) . One way to improve performance is to "widen" the "pipe" or bandwidth that the WAN may use. This can be a very expensive method, especially when peaks or strikes of traffic can become limiting factors. This presents a problem.
Description of the drawings
The present invention is illustrated in the drawings by way of example and not limitation, wherein similar reference numerals indicate similar elements, among which: Figure 1 illustrates a network environment in which the method and equipment of the present invention can be implemented; Figure 2 is a block diagram of a computer system;
Fig. 3 illustrates an embodiment of the present invention for file sharing; Fig. 4 illustrates an embodiment of the present invention as a web proxy service; Fig. 5 illustrates an embodiment of the present invention, The third party controls the content transmission between the clients on the WAN/LAN; Figure 6 illustrates an embodiment of the present invention for distributed backup and storage; Figure 7 illustrates the analysis of the network usage router table of the present invention Figures 8A and 8B illustrate an embodiment of SLS launch flow; Figures 9A and 9B illustrate an embodiment of SLS file flow; Figures 10A to 10H illustrate this The possible user interface of the invention; Figure 11 illustrates an embodiment of the present invention for a peer-to-peer agent; Figure 12 illustrates a flowchart of a peer-to-peer agent in an embodiment of the present invention; Figure 13 illustrates an embodiment of the present invention An embodiment, where a third party is controlling file transfer; FIG. 14 illustrates an embodiment of the present invention for backup storage; FIG. 15 illustrates an embodiment of the present invention for router table analysis.
detailed description
The methods and equipment used for peer-to-peer services will be described below.
By providing the ability to transfer network traffic to another network, the present invention can realize more efficient transmission of information, data, etc. An example of such a transfer of network traffic could be to transfer WAN traffic to LAN peer-to-peer traffic.
Both WANs such as the Internet and WANs such as corporate intranets will find the ability to divert from this traffic to be useful. In order to better explain the present invention, the description will be made with reference to an intranet, but those of ordinary skill in the art will recognize that the present invention can be implemented in other networks, such as the Internet.
Compared with the past, corporate intranets, especially large company intranets, accommodate, share and transmit more information. Some content may require more instantaneous bandwidth than the network originally designed. The emergence of streaming video is an example of such content. Moving WAN traffic to LAN communication can free up WAN bandwidth. If the server-based content can be placed in a client on the LAN, then another client on the LAN can access the information through the interaction of the peer-to-peer client. Transferring content based on the WAN server to the LAN client for peer-to-peer delivery, this method allows file sharing.
Figure 1 illustrates a network environment 100 in which the described techniques are applied. The network environment 100 has a network 102 that connects S servers 104-1 to 104-S and C clients 108-1 to 108-C. More details are described below.
FIG. 2 illustrates the computer system 200 in the form of a block diagram, which may represent any client and/or server shown in FIG. 1. More details are described below.
FIG. 3 illustrates an embodiment 300 of the present invention for file sharing. The directory server 302 retains the directory where the file is located. The client 304-A sends a file request 310 to the directory server 302. The directory server 302 finds the location of the file by referring to the prioritized list closest to the client with the latest modified version of the file. The directory server 302 notifies 312 the location of the file to the client A. In this illustration, communication 312 communicates to client A 304-A that client D 304-D has a copy of the file. Then, the client A 304-A and the client D 304-D communicate 314 and obtain the file located on the client D 304-D. The communication 314 between client A 304-A and client D 304-D is a peer-to-peer communication.
In this way, client A 304-A does not have to retrieve files from a server that may be located on the WAN, and the directory server 302 has informed client A 304-A that it can retrieve files from another client D 304-D. Therefore, the traffic that may have occurred on the WAN is transferred to the peer-to-peer transmission that may be on the LAN.
Note that because the directory server 302 keeps a list of files and locations, after the client A304-A has a copy of the file, the directory server 302 will also learn this information. For example, if client B 304-B requests a copy of the file from directory server 302, directory server 302 will know that client A 304-A and client D 304-D both have copies. Then the directory server 302 can notify the client B 304-B that the client A 304-A is the closest client with a copy. Then, client B 304-B can initiate a peer-to-peer transfer with client A 304-A. After this transfer, the directory server 302 will know that client A 304-A, client B 304-B, and client D 304-D all have copies of the file.
Those of ordinary skill in the art will understand that the method of file sharing can "spread" files on the network. This propagation will allow the directory server 302 to inform any requesting client of the most recent client with the file to be transferred. When the client is located in the same local network, LAN peer-to-peer transmission is possible. LAN transmission is usually faster than WAN to LAN transmission. This is because there are fewer routers, switches, proxies, firewalls, etc. involved in LAN transmission.
If no local client has the requested file, the directory server 302 may instruct the client to obtain the file from the client and/or file server on the WAN. For example, the client D 304-D may have sent a file request to the directory server 302 and be notified that there is no copy of the file on the local client. Client D 304-D may have to obtain a copy of the requested file from a remote server, for example via the Internet. Once client D304-D has a copy of the file, as explained above, directory server 302 will know this information. If client A 304-A then requests the file, directory server 302 can notify client A 304 -A Client D 304-D has a copy.
As mentioned above, the ability to convert WAN server-based content into LAN content for peer-to-peer delivery allows file sharing. Those of ordinary skill in the art will understand that by implementing the present invention in such an environment, a client-based proxy service can be realized, which is used to redirect data transmission from the network in a peer-to-peer environment. That is, by redirecting, for example, Internet requests to a copy of the file on a more local network, the present invention can be used to implement web proxy services.
Figure 4 illustrates an embodiment 400 of the present invention used as a web proxy service. The directory server 402 maintains a directory containing information on where the web file is located on the local network 415. Client A 404-A sends a file request 410 to the directory server 402 (for example, by surfing the World Wide Web). The directory server 402 finds the location of the file on the local network 415 by referring to the prioritized list of the most recent client with the latest modified version of the file. The directory server 402 informs 412 the location of the file to the client A 404-A. In this illustration, communication 412 conveys to client A 404-A that client D 404-D has a copy of the file, and redirects client A 404-A to obtain the file located on client D 404-D. The communication 414 between client A 404-A and client D 404-D is a peer-to-peer communication.
In this way, client A 404-A does not have to retrieve files from the web server 422 connected to the Internet 418 via 420 and to the directory server 402 via connection 416, but retrieves files from the client D 404-D. Therefore, the possible Internet traffic is redirected and becomes possible for peer-to-peer transmission on the LAN. Therefore, the "local" storage of the file, plus the redirection that allows access to the local copy of the file, achieves the function of a proxy.
Note that because the directory server 402 keeps a list of files and locations, after the client A404-A has a copy of the file, the directory server 402 will also learn this information. For example, if during web browsing, for example, client B 404-B requests the same file, and directory server 402 knows that both client A 404-A and client D 404-D have copies. Then the directory server 402 can notify the client B 404-B that the client A 404-A is the closest client with a copy. Then, client B 404-B can initiate a peer-to-peer transfer with client A 404-A. After this transfer, the directory server 402 will know that client A 404-A, client B 404-B, and client D 404-D all have copies of the file.
Those of ordinary skill in the art will understand that this method of file sharing can "spread" World Wide Web files on the network. The World Wide Web site has information that changes regularly. As mentioned above, the directory server 402 retains information on where the latest file is located. So, for example, assume in FIG. 4 that client A 404-A retrieves a copy of the file from client D 404-D at time X. Next, suppose that at the X+10th minute, the client B 404-B requests the same file. If the directory server 402 knows a more recent copy of the file, it will instruct client B 404-B to retrieve the file from that location. It may also be the following situation. For example, client A 404-A has a local copy of the file at time X, but requests the file again at time X+10 minutes. If the most recent copy is on client A 404-A, the directory server 402 will direct client A 404-A to client A 404-A. If the most recent copy is on another client, such as client C404-C, the directory server 402 will direct client A 404-A to client C 404-C to obtain the copy. If there is no copy available on the local network 415, the directory server 402 will direct the client A 404-A to the World Wide Web to obtain a copy. If the most recent copy is on the World Wide Web, the directory server 402 can direct Client A 404-A to the World Wide Web to obtain the copy.
The directory server 402 may also have an expiration timeout feature. That is, after 10 minutes, for example, the directory server 402 can direct the client to retrieve a copy of the file from the web server 422. In this way, the World Wide Web content on the local network will be updated after 10 minutes of staying on the local network. This timeout feature can be modified according to the content of the World Wide Web. For example, a website that handles word definitions may not need to be updated as quickly as a website with instant news events.
As mentioned above, the ability to convert WAN server-based content into LAN content for peer-to-peer delivery allows file sharing. For the convenience of discussion, the clients discussed above are assumed to be connected to the network most of the time. This may not match the actual situation. For example, portable computers, PDAs, etc. can be connected or disconnected as needed. An example might be a sales office, where out-of-home sales staff are only connected to the network when they are in the office. It is impossible for a portable computer to be connected to the network for a long time to download large files such as video presentations. This may be caused by time restrictions or bandwidth restrictions. However, if the user of the portable computer can perform peer-to-peer transmission of information, the bandwidth may be higher than the transmission from, for example, a server on a WAN. By allowing the user of the portable device to select which information needs to be downloaded, and making this information be directed to the clients nearby on the LAN, the next time the user connects to the network, LAN peer-to-peer transmission is possible. Therefore, the user of the portable computer actually becomes the third party who controls the transmission from the WAN to the LAN.
Figure 5 illustrates an embodiment 500 of the present invention, in which a third party is controlling the WAN to LAN transfer. Here, the client P 504-P represents a portable client, such as a portable computer or a PDA. Client P 504-P may require files from file server 522. The request 510 to the directory server 502 may indicate that there are no local copies on clients A, B, C, D, or P (504-A to P, respectively). At this time, the client P 504-P can decide to either stay online and download the file, or instruct to download the file to the nearest client. If the latter is selected, the directory server 502 can determine that the client D 504-D is the closest client, and the file download from the file server 522 should be directed to the client D 504-D. This transmission (via 522, 520, 518, 502, 512) is possible regardless of whether the client P 504-P is currently connected to the network or disconnected. When the file has been downloaded to the client D 504-D, the directory server 502 stores this information, so when the client P 504-P connects to the network again and requests the file, it can proceed from the client D 504-D Local peer transmission 514 to client P 504-P. In another embodiment, when the client P 504-P is connected to the network and the client D 504-D has the file locally, the slave D Local peer-to-peer transmission 514 from 504-D to client P 504-P. Furthermore, once the client P 504-P has transferred the file, the directory server 502 will know that both the client D 504-D and the current client P 504-P have copies of the file. The device referred to as the file server 522 in this part may also be other devices, such as a client on a remote network, and so on.
In another embodiment, when the client P 504-P is connected to the network, the directory server 502 can query the client P 504-P to find out whether the client P 504-P has selected the file to be downloaded when offline . This download list may have been previously retrieved from the directory file server (502 and/or other directory file servers).
In another embodiment, when the client P 504-P is connected to the network, the files residing on the client P 504-P may be transferred to a directory server, such as the directory server 502. If new files, or modified files with a more recent date, are transmitted to the directory server 502, other clients will now be able to access these files. Therefore, for example, a portable computer used by a salesperson can be used to specify customer access information when the salesperson visits the customer. Once back in the office and connected to the network, the client P 504-P can send information about the files on the client P 504-P to the directory server 502. Then, by knowing that they are located in the directory server 502 of the client P504-P, these update files will become available.
In another embodiment, when the client P 504-P returns with the updated file, the directory server 502 and/or the client P 504-P may instruct to generate a local copy of the updated file on a non-portable computer. Therefore, in this embodiment, third-party control can realize file transfer, so that when the portable client is disconnected from the network, the local copy is available to the rest of the network. The directory server 502 and/or the client P 504-P may also instruct to send a copy of the updated file to the central and/or web server. Therefore, third-party control of the transfer is to and from any source and/or destination. The ability of a portable client such as Client P 504-P to send files to another client will be used as a backup of those files.
New and updated files are not limited to portable clients such as client P 504-P. Other clients with new or updated files, such as desktop clients, can also use the techniques discussed above. Therefore, in an embodiment of the present invention, the client can use network services for distributed backup and storage. The client is not the only content source. In another embodiment, files from all sources, clients, servers, etc. can use the present invention to implement content transfer for distributed backup and storage.
Figure 6 illustrates an embodiment 600 of the present invention for distributed backup and storage. The client A 604-A transmits a request to the directory server 602 via the link 610, and the content of the request is to store the local file located in the client A 604-A in another client or other clients. The directory server 602 informs the client A 604-A that the client B 604-B and the client D 604-D are the most recent and have available storage. Then, the client A 604-A transmits the file or parts of the file to the client B 604-B via the link 612. If more storage is needed and/or a distributed backup is requested, client A 604-A can transfer the file to client D 604-D through 614. These transmissions are peer-to-peer and can be performed on the LAN. In this example, the client has initiated a backup request. In another embodiment of the present invention, the backup request may come from the directory server 602 and/or may come from a file server on the network.
As mentioned above, the ability to transfer content from one network to another enables many capabilities. References have been made to client, server, WAN, LAN, peer... In many cases, the benefits of peer-to-peer delivery can be obtained when clients are "closest" to each other. From a network point of view, the "nearest" client for file sharing, transfer, etc. may not be physically the closest. From a network performance perspective, the "nearest" client can be the one and/or the client that can transmit information the fastest. Therefore, all of the above methods used to transfer traffic can benefit from this network analysis. One such method of generating "nearest" client information can use router table analysis.
FIG. 7 illustrates an embodiment 700 of the present invention using router table analysis on the network. The server 702 is connected to the routers 706-A to 706-N. Each router (706-A to 706-N) is connected to a respective group 706-ANX to 706-NNX. Each group (706-ANX to 706-NNX) includes networks 706-AN to 706-NN, and respective clients A to N, respectively. The database 704 is connected to the server 702. In operation, monitor the traffic of servers and routers to determine when files are delivered. This information is analyzed and stored in the database 704. In one embodiment of the present invention, the database 704 will maintain a prioritized list of a particular file that is closest to the client. This database 704 information can then be accessed by the directory server to determine how to reroute and/or redirect traffic to achieve the fastest peer-to-peer transfer between clients.
In this way, the embodiments of the present invention have been described for the following fields, namely file sharing, redirected data transfer, third-party control of transfer, distributed backup and storage, and router table analysis.
The above description has always been tried to be concise, so as not to obscure the invention while illustrating the invention. What follows is a more detailed possible embodiment of the invention. Use screen shots to illustrate the possible features and capabilities of the present invention. However, it should be understood that these are other embodiments of the invention, and many other embodiments are also possible.
Today's corporate intranet is a rather unary network capable of transmitting information, text, files, etc. Intel® Share and Learn Software (SLS) can transfer video and multimedia files more efficiently by transferring the bottleneck of the video intranet from the network to the computer, thus greatly improving the capacity and effectiveness of the corporate intranet . Note that, for the purpose of illustrating this embodiment of the present invention, an enterprise intranet can be defined as: a computer network that uses standard Internet protocols such as TCP/IP and HTTP to connect client association groups; and/or a firewall Or an IP-based network composed of nodes connected by a secure and possibly virtual network behind a few firewalls.
In a traditional corporate intranet configuration, multimedia communications are streamed to the desktop via the network. Because files are generally streamed through the network, the network has almost always been the bottleneck; and because the wide area network (WAN) is relatively expensive, there is generally not enough bandwidth to support more than several files that are streamed at the same time. SLS allows compressed video, multimedia files and large files to be quickly moved to multiple desktops or mobile machines. SLS actually created a new protocol that is used to share large files (for example, video, multimedia, etc.) on a network or corporate intranet. SLS transferred the bottleneck of video transmission on the corporate intranet from the network to the processor of the personal computer (PC).
An example is the use of SLS on a laptop computer to download videos. After the laptop is connected to the LAN, it can quickly download files from the local device connected to the LAN, thus avoiding WAN transmission. Due to the generally higher and stable transmission rate, this peer-to-peer transmission is superior to WAN-to-LAN transmission. SLS can improve the performance of many different applications, including knowledge management, corporate video communications, eLearning, and so on.
SLS has the following meanings for knowledge management-an opportunity is that a large amount of compiled knowledge exists on the hard disk of personal PC in the form of presentations, text files, etc. In the traditional network environment, this information and knowledge cannot be shared and reused by others. SLS brings such an ability, that is, through the access and sharing mechanism, this compiled information can be shared by many people in the company. In one embodiment, by right-clicking on the file and adding some metadata (manually and/or automatically), the file can become available to all others on the network. This file and related metadata are registered in the directory server that plays an intermediary role, and other users can search the directory server based on several criteria, including keywords, authors, etc. If a user wants to take out the file, he can take the file from the client that originally published it, or if the file has been copied before, he can get the file from the nearest available client. In this way, through the registration file, much of the compiled information and/or knowledge that could not be used in an organization is now available. This makes the above content available to users throughout the enterprise, thus creating an enterprise knowledge management system that can save money and create new opportunities through knowledge sharing and reuse. In another embodiment, the content can be indexed through SLS, and/or a company index of related knowledge/information can be generated.
In a large company such as Intel, it is often difficult to convey information to all employees at the same time. E-mail can be delivered to all employees at the same time, but it is a relatively flat (not very rich) medium. However, it is possible for 80,000 employees around the world to access video communications in a very short period of time, and it is possible to achieve better communications. Before the introduction of SLS, this was very difficult because it would be unusually expensive to provide bandwidth and/or edge servers to stream video to 80,000 PCs. Now through SLS, almost no additional investment in infrastructure is needed to achieve this goal-using SLS's peer-to-peer file sharing protocol on the existing network and using the hard disk on the existing client for storage, so that you can Distribute videos, multimedia or large files from the client to the client. This ability conferred by SLS is another embodiment of the present invention.
E-learning can be viewed as similar to corporate communications. SLS allows for approximately seamless transmission of large multimedia files throughout the company without additional investment. Because e-learning is a new and important application technology, SLS can change the performance and economics of e-learning.
In addition, other information can use SLS. SLS allows one form of computing resource to replace another. For example, when watching a video file, a traditional mechanism for completing this work is to stream the file to the client PC via the network, an implementation of the SLS mechanism An example is to copy a compressed video file on the local network, which gives nearly equivalent performance when a smaller network is required.
In one embodiment of the present invention, Intel(R) Share and Learn Software (SLS) is a window-based application for peer-to-peer file sharing. It consists of a client application written in a visual programming language and uses a database server component, the host of which is a SQL (Structured Query Language) server. This application is used to transfer files over the network in a corporate environment. The SLS application uses a directory-mediated method to determine the closest (or nearest) client that contains the latest version of the requested material; then, the material is copied to the requesting machine.
Peer-to-peer in the most common sense is the sharing of resources between clients, which can range from large servers to handheld devices. In the context of this document, it is defined as the ability to share content directly between clients, where the client can be a server, a desktop computer, a laptop computer, a PDA (personal digital assistant), a handheld device, or the ability to communicate with Any other device that communicates with other devices.
In one embodiment, SLS uses a peer-to-peer file sharing method with a directory as an intermediary. The directory consists of a database that tracks all file transfers, which is used to determine the nearest available client. The following flowchart describes what happens when the user initiates SLS (Figures 8A and 8B) and when the user selects a file (Figures 9A and 9B) in one embodiment.
The SLS startup flow proceeds as follows. As shown in part 1 of Figure 8A, the user starts SLS from a shortcut in the start menu. Next, check if the user is connected to the network. If the user is not connected to the network, the local database is read and the application is opened in offline mode. If the user is connected to the Internet, a connection is established with the Intel® Share and Learn Software website.
In part 2 of Figure 8A, once a connection is established with the Intel® Share and Learn Software website, it is checked whether the user has the latest SLS software components. If the latest components are not available and/or need to be updated, they are automatically downloaded from the site. It then checks whether the user exists in the database. If there is no entry for the user, create an entry with the user's ID.
In part 3 of Figure 8A, the application checks whether the user is running the latest antivirus software on their system. This can be done by searching for a specific key in the registry. If the user does not have the latest anti-virus software, give them a warning, including details on how to upgrade the anti-virus file, and the application is forced to enter offline mode. This forced entry into offline mode is to prevent the transmission of files that may have been infected by viruses on the user's system. If the antivirus file is up to date, the application continues to be in online mode. Next, run a query operation to determine which subnet the user is on. Then, compare this network address with the master list on the database to determine which site the user is on. If the user's subnet is not recognized by the system, it will be marked as a new subnet and added to the IP subnet table of the database for later assignment to a site. If the user exists in the database, but their site information is not the same as that listed in the database, update the record and update all content associated with this user to the new site. This is done because the user may be mobile and may move between sites. This check ensures that the content that users have on their system is mapped as if the content exists on their current site, not just on their home site.
In part 4 of Figure 8A, it is checked whether a local directory and share have been created on the user's PC. If the directory does not exist, create a directory called SLSShare under the root directory c:\drive. The SLSShare directory is shared within the network as slsshr$-this will facilitate the local sharing of downloaded files. If the directory exists, the application continues.
In part 5 of FIG. 8B, the application program checks whether the user's PC name (and thus the share name) is the same as that stored in the database. If it needs to be updated, the information is entered into the Users table. In order to protect the user's PC from malicious attacks and virus outbreaks, appropriate permissions must be allowed in sharing. This allows everyone to see the shared content, but only users who are logged in on the PC can add files. The application checks to ensure that these permissions are set correctly, and if not, make the appropriate changes.
In part 6 of Figure 8B, because Intel(R) Share and Learn can be used in offline mode, a local database of XML files is maintained on each user's PC. These files contain information about local files, test issues, and other information, and must be synchronized with the data in the production database. This requirement can be achieved by comparing the TableSync value in the database with the value on the user's PC. If the two values are different, the appropriate file is updated. Then, the e-learning player that allows offline viewing of the content is verified as the latest, otherwise an updated version will be downloaded.
In part 7 of Figure 8B, because SLS can be started from the desktop computer, if the shortcut does not yet exist, create a shortcut in the user's start menu. Next, open the Intel® Share and Learn homepage in the browser.
SLS Select File Flow continues as follows. As shown in Part 1 of FIG. 9A, the user selects a file from the Business Area. Check whether the user has downloaded the file, and whether the file is stored locally on the PC. If it is stored locally, check to make sure that the version is the latest version. If the file is the latest version, it is decompressed into a temporary area and displayed in the player or in the SLS.
In part 2 of FIG. 9A, if the file is not local, a query is issued to determine whether there is a copy of the file available on the same site as the user. This information is obtained by looking up site information from the Users table and querying the FileIndex table. If the file is on the local site, a list of PCs with the file is established, and the list is sorted in the order of the number of times the PC is accessed from the least. Doing so can balance the impact between the clients. Query each PC in this list in turn to see if there are still copies available on the system until a file is found. If no PC on the user's site contains the file, the next site in the SearchSiteList table is queried. This process will continue until the file is found. A SearchSiteList is established for each Intel(R) site. It is designed based on the network configuration, and lists the sites that query files based on the available bandwidth between the site that issued the query and up to 10 other sites in the world in this specific embodiment.
In part 3 of Figure 9A, once a copy of the file is found, it is queried to ensure that it is the latest version, and that it has the correct date/time stamp and file size. If it is incorrect, the search continues. If the file is the correct version, the estimated download time is returned to the user. This value is obtained by averaging the previous download time from the site containing the file to the user's own site.
In Part 4 of Figure 9B, the user then gives three options to choose from: 1) download and run now; 2) download and run later; and 3) schedule future downloads. If the user chooses to schedule future downloads, an entry is placed in the TransferSchedule table, which lists the time when the transfer will occur. When this time arrives, assuming the user still has SLS running on their system, the file is copied from the nearest client to the SLSShare directory on the user's PC, and the database is updated to retain the information that the new copy of the file exists. If the user chooses to download the file but runs it later, the file is copied to the SLSShare directory and the user is notified that the download is complete. The database is updated to retain information about the existence of a new copy of the file.
In part 5 of Figure 9B, if the user chooses to download the file and run it immediately, the file is copied to the SLSShare directory, and the database is updated to retain the information that a new copy of the file exists. Then, unzip the file to the SLSTemp directory and open it in SLS or in a separate player according to the content. If an interruption occurs at any stage while copying files, find the next closest source and restart the copy from there, thereby continuing the copy process. For example, it may happen that the source of the file is a laptop computer, and the laptop computer is removed from the network while the copy is in progress.
Those of ordinary skill in the art will understand that alternative embodiments of the present invention can be implemented using a variety of technologies. Some of these technologies are client locator, publication, logical drive, purging content, control flow, parallel replication, third-party control, router analysis, network database, but they are by no means limited to these technologies. These technologies will be briefly described below, some of which have been described above.
The client locator using Ping was discussed above. This method uses the window Ping function to obtain the estimated transmission time between the requesting client and the remote machine. One embodiment may use a ping program between the requesting client and every other machine that has a copy of the file. The above scheme can be completed by issuing a ping command to each other machine in turn, and then selecting the minimum value for transmission. Another method can use the ping transmission time between subnets. Once a value is established between the two subnets, it can be entered into the SubnetTransferInfo table for future reference. Another method is to ping for site-level transmission. For example, this method can be used in the selection file stream in Part 2 of Figure 9A.
General publishing will allow any user to publish content to the peer-to-peer system. To do this, just let the user right-click on any file and choose to add it to the SLS. In principle, every PC can be used as a peer-to-peer server, which has a shared directory that provides a distribution platform from the PC.
Logical drives will take out shared folders from a large number of PCs and use them to form logical drives composed of disk arrays. This can be combined with methods such as RAID (Redundant Array of Inexpensive Disks) to allow recovery of the content stored in the entire drive when a certain amount of disks (not necessarily all) are online. This can be used to back up data to the client PC and restore it as needed.
Content cleanup in a peer-to-peer system involves the ability to remove distributed copies of files from the system to which they are distributed. This may be closely related to the expiration date of the file that can be set by the author, or the need to cancel the assigned file. One way to do this is to use the domain administrator's account to automatically connect to each PC and clear the relevant content. Another way to do this can be to have an agent program run on each PC, and the agent program will listen for requests from the system. Once it receives a request to delete a file, it removes that file from the local directory of the user's PC.
Controlled content flow refers to the ability to restrict content flow to specific sites so as not to affect the capacity of the entire network. By analyzing the topology of the network, you can know the total bandwidth entering a particular site. Then, data transmission can be restricted, allowing only a certain percentage of the available bandwidth to be occupied by SLS. For example, this can be used in the selection file stream in Part 4 of Figure 9B.
Parallel copying is data in which a file can be divided into multiple chunks by the application, and each chunk can be copied from a different machine that makes the file available. This parallel replication can increase the total download speed of the requesting client, and can also reduce the impact on the client that is sharing the file, because the amount of data being taken from it becomes smaller. For example, this can be used in the selection file stream in Part 4 of Figure 9B.
Third-party control of file transfer uses an intermediate client to control the transfer of data to another device. For example, client A requests content from client B. However, client A is a handheld device and is not often on the network. Client B and client A are separated by a WAN. At this time, the client C downloads and stores the content according to the request of the client A until the client A returns to the network.
Router table analysis can allow SLS to directly query network routers to determine the most recent copy of the file. Because router tables are dynamic, any information obtained from them will be more accurate than static network topology at a certain point in time. Because it takes into account any important network activity that occurs at that time, this can increase the overall speed of transferring files. For example, this can be used in the selection file stream in Part 2 of Figure 9A.
The dynamic network database may include the creation of a stand-alone database that gives a dynamic status regarding the waiting time in the network at any point in time. This database will be updated frequently by the network monitor and will look for patterns in network traffic. This database will then be used to determine the best path for file transfer and the closest client. For example, this can be used in the selection file stream in Part 2 of Figure 9A.
Examples of possible embodiments of the user interface of the present invention are shown in Figs. 10A to 10H. Figure 10A illustrates the initial view of the SLS at startup. Figure 10B illustrates a view of the SLS after browsing a category. Figure 10C illustrates a view of SLS after selecting a file for download. Figure 10D illustrates a view of the SLS during file download. Figure 10E illustrates the file opened in the SLS reader. Figure 10F illustrates a view of SLS during file search. FIG. 10G illustrates a view of the SLS publisher, which shows a menu for adding, updating, or deleting files. FIG. 10H illustrates a view of SLS when new content is added.
Another embodiment of the present invention can be used to redirect data transmission in a peer-to-peer network environment. In a peer-to-peer network, data is transmitted between clients, rather than from the server to the client. For the most efficient data transfer, files should be copied from the most recently available client with the information being requested. In general, peer-to-peer applications use their own interface to manage and control content distribution. By implementing a client-based web proxy, it is possible to bring the speed of peer-to-peer delivery to any website that has been cataloged by peer-to-peer services without requiring users to change their user interface.
In one embodiment, a peer-to-peer file database can be established to track file transfers for specific websites. If the website provider wants to take advantage of this service, then they have to run an application that catalogs and indexes all the files available from their site, uniquely identifies them, and in a peer-to-peer database Record their parameters. Any subsequent transfers of these files will be tracked by the proxy service. The client-based web proxy will reside on the client PC and run as a service. The proxy service will intercept all HTTP requests from the client and implement the communication between the client and the peer-to-peer file database. When a user requests an HTTP-based file, the proxy service will query the peer-to-peer database to see if it is tracking the location of the file. If this file is not tracked, the request will proceed to the web server normally, and nothing unusual will happen. However, if the file is one of the files being tracked by the system, the proxy service will query the peer-to-peer database to get the nearest location of this file (usually on another users PC), and retrieve the file directly from there, preferably The ground is in its own local network. This has the following benefits: it reduces the download time for users (if the file is larger than a certain size), and for IT departments, it reduces the use of the wide area network.
In the embodiment illustrated in FIG. 11, the PC1 can request files from a World Wide Web server located on the Internet or an intranet. The proxy service running on the client will intercept the request. This agent will query the database to see if the website being visited is the one being tracked by the peer-to-peer database. If the site is being tracked by the peer-to-peer database, the system will check to see if the file is locally available. If the file is locally available, information about the local source of the file will be returned to the requesting client (for example, PC2), and direct file copying between peers can be started from there. After this transfer, the peer-to-peer database will be updated to reflect that the new location of the file is available. If a copy of the file is not locally available, a standard request is sent to the World Wide Web server that owns the file, and its copy will be downloaded to the requesting client. As in the previous case, the proxy service will send an update to the database indicating that the file is now locally available and making it available for future requests. If the website is not tracked by the system, the proxy service will send the request to the web server in a normal way without affecting the user.
Figure 12 illustrates a flowchart of an embodiment of the present invention. The proxy service will be configured on the client PC, which will intercept all HTTP requests between the Internet browser and any website. The agent will query the peer-to-peer database to see if the website being requested is being tracked by the peer-to-peer system. If the site is being tracked, the list of locally available copies of the file will be returned to the client through the proxy service, and the direct copy of the file will be started from the nearest available peer. This has the following advantages: For large files, it reduces the download time of users over the WAN and the Internet. Once the file has been copied, the new location of the file will be used to update the database. If the file is not available locally, it can be downloaded from the target website in a normal manner, and after another time it is completed, the database server will be updated to reflect the new location of the file on the local network. If the website is not tracked, the request goes directly through the proxy, and data transmission is not disturbed.
For all traffic requested by users based on HTTP, the proxy service acts as an intermediary. It queries the peer tracking database to get a specific file name and URL. If the file name is found in the database, the request for the file is basically redirected to the local copy. This reduces the user's download time and minimizes the impact on the available bandwidth.
From the perspective of actual implementation, for the system to be effective, many conditions may have to be applied at the agent level. For files to be downloaded, you may have to specify a minimum size. If the file is below a certain size, it may take longer than getting the file directly to query the database and retrieve the file locally. Another condition may be the type of files available in this way. In addition, the expiration time on the content can be applied to ensure that if a new version of the requested file is available, the user retrieves this new version.
In another embodiment of the present invention, a client (for example, a handheld PC) that is intermittently connected to the network can use a peer-to-peer application to select files for download from a remote location (slow WAN connection). Then, the user can request to download the file to another client that is permanently connected to the network in a location near the handheld PC, for example to a desktop PC (fast WAN connection). The next time they connect, they can download files from nearby clients via a fast connection within a period of time. This service can be controlled by a directory server and peer-to-peer applications or agents that can be installed on PCs and handheld devices.
Figure 13 illustrates such an embodiment of the present invention. The handheld PC uses a peer-to-peer application to select a file and queries the directory server for its location (communication 1). The directory server responds to this request and informs that the file is located on PC2 (communication 2). Because PC2 is separated by the WAN, it may take a long time to download the file, so the handheld PC can request to copy the file to PC1 (communication 3), allowing the handheld PC to be disconnected from the network. Then, PC2 copies the file to PC1 through the wide area network. When the handheld PC reconnects to the network, the file can be copied quickly from PC1 (communication 5).
In another embodiment of the present invention, a peer-to-peer technology can be used for distributed backup and storage. This will use part of the disk space of many computers in the network and use them to form logical or virtual drives composed of disk arrays. This can be combined with methods such as RAID (Redundant Array of Inexpensive Disks) to allow recovery of the content stored in the entire drive when a certain amount of disks (not necessarily all) are online. This can be used to back up data to the client PC and restore it as needed. Another method is to back up the complete data table to a statistically sufficient number of PCs to ensure that the files can be recovered in a high percentage of the time.
A part of the user's hard disk space will be reserved by the administrator for this purpose, and it can be visible or invisible to the user on that PC. In addition, all stored data can be encrypted to maintain the security and privacy of the owner's data. The backup of files can be intermediary by the server. This server will keep track of the available clients and the location of the files that have been backed up, as well as control the security of the system.
Figure 14 illustrates such an embodiment of the present invention. Client A can decide to back up multiple files. The agent application on the PC of client A will query the server in the peer-to-peer network instead of going to the file server. This server will identify multiple other computers to back up data to-in this example client B, C&D. Then one of the following two things will happen-using, for example, the RAID algorithm can copy some files to B, C&D, or copy all files to client B, C&D in turn.
In another embodiment of the present invention, an agent program can be configured on the client PC, which will monitor the changed user files. The agent will connect with the central control server at predetermined intervals to determine which peer PCs should be backed up to. Once determined, the agent can start file copying to each identified peer, or perform a complete copy of the file to each peer, or perform the copy determined by the RAID algorithm, and so on. In addition, only the changed part of the file or the new file added to the system can be backed up. In order to restore the file, the agent can connect to the central control server again to determine the location of the file to be restored and start sending it back.
In another embodiment of the present invention, the present invention can be used to accelerate peer-to-peer transmission. In a peer-to-peer network, data is transmitted between multiple clients, rather than from the server to the client. Many peer-to-peer applications now use predetermined routes across the network to transfer data from one place to another. In theory, this method will generate the fastest download time for the user; however, it does not consider the delay that may be caused by network congestion or outage. By implementing a system that collects information from routers, the path through the network will be more dynamic and up-to-date. If this information is stored in an easily accessible way, such as a database, then peer-to-peer software applications will be able to leverage the information. When the user selects a file to download, the peer-to-peer application will query the database for available copies of the file in the normal way. In addition, it will immediately query the database for the best path to these files, exclude files that are inaccessible due to interruptions or congestion, and arrange the list of available copies in order of the shortest download time. This reduces the time for users to access content while minimizing the impact on each segment of the network.
In order to obtain the most efficient transfer of data, files should be copied from the nearest available client with the information being requested. Although the peer-to-peer system may know the location of the most recently available client, this machine may not always be the location where the fastest data transfer is possible. This may be caused by network congestion or other problems on the network. Generally speaking, network routers will know the impact on the network like this, and use a more appropriate path to route the usual data transmission. This information is stored in the router table and is frequently updated through broadcasts sent across the network.
The embodiments of the present invention may run on a server in the form of a software application, and actively listen on the network to discover update broadcasts between network routers. The application will interpret these broadcasts and store the information in a table located in a network-accessible database. Then, by issuing a query command to the database to determine the most appropriate path from which to copy the information, the peer-to-peer application can obtain and use the information.
Figure 15 illustrates such an embodiment of the present invention. The server will listen on the network to discover the update broadcast between the two routers in this example, so as to get information about the most appropriate path through the system. This information is analyzed and interpreted by the application and uploaded to a database where the information can be interrogated by the peer-to-peer application. The peer-to-peer application program may be running on any computer shown in FIG. 15. In operation, the application will query its database for the most recent copy of the file, and then query the router information stored in the database to obtain the best path to the data source. Using these two reference points, an ordered list of the content that will be retrieved the fastest will be returned to the application, thus minimizing the impact on the network and delivering the file to the user as quickly as possible. Because the router is constantly updated, it will know the most appropriate path to take through the network by listening to the broadcast.
In another embodiment, the software application will be configured on a server that will listen to broadcasts and network traffic between routers configured on it in the network. If someone is copying information from one client to another on different parts of the network, the information gathered will give details of the best path to take. The application will interpret the broadcast and traffic, and this information will be stored in a database table that can be queried by the software application. The information in the database will be updated by software, which listens to further broadcasts and traffic and inserts data when appropriate, so as to ensure that the information is current and up-to-date.
Thus, various other embodiments of the present invention have been described.
Referring back to FIG. 1, FIG. 1 illustrates a network environment 100 in which the technology can be applied. The network environment 100 has a network 102 that connects S servers 104-1 to 104-S and C clients 108-1 to 108-C. As shown in the figure, several computer systems in the form of S servers 104-1 to 104-S and C clients 108-1 to 108-C are connected to each other through a network 102, which may be a company-based network, for example. Note that alternatively, the network 102 may be or include one or more of the following networks: the Internet, a local area network (LAN), a wide area network (WAN), a wireless network, a satellite link, an optical fiber network, a wired network, or these and/ Or a combination of other networks. The server may represent, for example, a separate disk storage system or storage and computing resources. Similarly, the client can have computing, storage, and viewing capabilities. The methods and equipment described here can basically be applied to any type of communication device or equipment, whether local or remote, such as LAN, WAN, system bus, and so on.
Referring back to FIG. 2, FIG. 2 illustrates the computer system 200 in the form of a block diagram, which may represent any client and/or server in FIG. 1. The block diagram is a high-level abstract representation, which can be implemented in a variety of ways and in a variety of architectures. The bus system 202 is connected to a central processing unit (CPU) 204, a read only memory (ROM) 206, a random access memory (RAM) 208, a storage part 210, a display part 220, an audio part 222, a keyboard 224, and a pointer. 226. A hybrid input/output (I/O) device 228 and a communication part 230. The bus system 202 may be, for example, one or more of the following buses: system bus, Peripheral Component Interconnect (PCI), Advanced Graphics Port (AGP), Small Computer System Interface (SCSI), Institute of Electrical and Electronic Engineers (IEEE) standard number 1394 (FireWire), Universal Serial Bus (USB), etc. CPU 204 can be a single, multiple, or even distributed computing resources. The storage part 210 may be a compact disc (CD), a digital versatile disc (DVD), a hard disk (HD), an optical disc, a magnetic tape, a flash memory, a memory stick, a video recorder, etc. The display part 220 may be, for example, a cathode ray tube (CRT), a liquid crystal display (LCD), a projection system, a television (TV), or the like. Note that according to the actual implementation of the computer system, the computer system may include part, all, more, or rearrangement of the components in the block diagram. For example, a thin client may consist of a wireless handheld device, which lacks, for example, a traditional keyboard. Therefore, many variations of the system in Figure 2 are possible.
In order to discuss and understand the present invention, it should be understood that those skilled in the art will use various terms to describe techniques and methods. In addition, in this specification, for the sake of explanation, many specific details are set forth in order to thoroughly understand the present invention. However, it is obvious to a person of ordinary skill in the art that the present invention can be implemented without these specific details. In some examples, multiple structures and devices are shown in the form of block diagrams without detailed description, which is to avoid obscuring the present invention. These embodiments have been fully described to enable those of ordinary skill in the art to implement the present invention, and it should be understood that other embodiments may be used, and logical, mechanical, electrical, or electrical operations may be performed without departing from the scope of the present invention. Other changes.
Some parts of the description can be expressed as algorithms and symbolic representations of operations on data bits in, for example, computer memory. These algorithm descriptions and representations are all means for those of ordinary skill in the data processing field to express the essence of their work to other ordinary technicians in the field. Algorithms here, and in general, are considered to be an inherently consistent sequence of actions that produce expected results. These actions are all actions that require physical manipulation of physical quantities. Usually, although not necessary, these quantities use electrical or magnetic signals that can be stored, transferred, combined, compared, and otherwise manipulated. It has been repeatedly proved that it is mainly due to the common use. It is very convenient to quote these signals as bits, values, elements, symbols, letters, items, numbers, etc.
However, it should be remembered that all these and similar terms should be associated with the appropriate physical quantities. They are merely convenient labels applied to these quantities. For the content that is clear in this discussion, unless specifically indicated otherwise, it should be understood that throughout the specification, the discussion content using such terms as "processing" or "calculation" or "operation" or "determining" or "displaying" or other terms are all It can refer to the actions and processing of a computer system or similar electronic computing equipment that manipulates and converts data represented as physical (electrical) quantities in the registers and memory of the computer system into the computer system. The memory or registers or other such information storage, transmission or display devices similarly represent other data as physical quantities.
The present invention can be implemented by equipment for performing this operation. This equipment may be specially constructed for the required purpose, or it may include a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program can be stored in a computer-readable storage medium, such as but not limited to any of the following magnetic disks, including floppy disks, hard disks, optical disks, compact disks-read only memory (CD-ROM) and magnetic disks. Optical disc, read only memory (ROM), random access memory (RAM), electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), FLASH memory, magnetic or optical card, etc., or suitable Any medium that stores electrical instructions locally or remotely on the computer.
The algorithms and displays provided here do not inherently involve specific computers or other equipment. It may be convenient to use programs consistent with the teachings here to use various general-purpose systems, or it may be convenient to construct more specialized equipment for performing the required methods. For example, by programming a general-purpose processor, or by any combination of software and hardware, any method according to the present invention can be implemented in a hard-wired circuit. Those of ordinary skill in the art will immediately understand that the present invention can be implemented with a computer system configuration different from the content described, including handheld devices, multi-processor systems, microprocessor-based or programmable consumer electronics, digital signals Processor (DSP) devices, set-top boxes, network PCs, mini computers, mainframe computers, etc. The present invention can also be implemented in a distributed computing environment, in which tasks are performed by remote processing devices linked through a communication network.
Computer software can be used to implement the method of the present invention. If written in a programming language that complies with recognized standards, the instruction sequence used to implement the method can be compiled to execute on various hardware platforms and interface with various operating systems. It should be understood that various programming languages may be used to implement the teachings of the present invention described herein. Moreover, software in this form (for example, program, process, application, driver, ...) is often described as taking actions or bringing about results in this field. This expression is only a simplified way, and its original intention is to say that the execution of software by the computer will cause the processor of the computer to perform actions or produce results.
It should be understood that those skilled in the art can use various terms and technologies to describe communications, protocols, applications, implementations, mechanisms, etc. One such technique is to use algorithms or mathematical expressions to describe the realization of a technique. That is to say, although the technology may be implemented in accordance with, for example, executing code on a computer, the technology can be expressed more flexibly and concisely as formulas, algorithms or mathematical expressions. Therefore, a person of ordinary skill in the art will understand a module representing A+B=C as an addition function, and its implementation with hardware and/or software will take two inputs (A and B) and generate one Sum output (C). Therefore, the use of formulas, algorithms, or mathematical expressions in accordance with the description will be understood as using at least hardware and/or software (such as a computer system, in which the various technologies of the present invention can be implemented and implemented as an embodiment) to obtain a physical implementation example.
A machine-readable medium will be understood to include any mechanism for storing or transmitting information in a form readable by a machine (for example, a computer). For example, machine-readable media include read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustic, or other forms of propagated signals (for example, carrier waves, infrared Signal, digital signal, etc.).
Reference has been made to LAN (Local Area Network) and WAN (Wide Area Network). As understood by those of ordinary skill in the art, it should be understood that both LAN and WAN are relative concepts. For example, compared to a large company network, the Internet can be regarded as a WAN, and a large company network can be regarded as a WAN relative to its internal departmental network. Similarly, a small departmental network can be regarded as a LAN compared to a large company network, and a large company network can be regarded as a LAN when compared with the Internet. Likewise, it should be understood that any discussion involving LAN to WAN is about smaller networks versus larger networks, and this comparison varies with the circumstances in which it occurs. Therefore, a network may look like a WAN relative to a smaller network, but may look like a LAN relative to another network. It should be understood that in this field, many words sometimes have meanings commensurate with their surrounding environment, and these words are often used interchangeably regardless of a specific structure or environment, that is, those of ordinary skill in the art understand This use and meaning.
In this way, the methods and equipment for peer-to-peer services have been described.
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| CN108648751A | Cited by | China | Search report |
| CN101534252A | Cited by | China | Search report |
| CN112104741A | Cited by | China | Search report |
| CN102624695A | Cited by | China | Search report |
| US9686355B2 | Cited by | United States of America | Applicant |
| CN102195790A | Cited by | China | Search report |
| WO2011107000A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
31 members in 7 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 60303706 | United States of America | – | |
| 30370601 | United States of America | P | |
| 10095323 | United States of America | – | |
| 9532302 | United States of America | A | |
| 0221018 | United States of America | W |
Members31
| Document | Office | Kind | |
|---|---|---|---|
| US2003009518A1 | United States of America | A1 | |
| US2003009586A1 | United States of America | A1 | |
| US2003009587A1 | United States of America | A1 | |
| WO03005244A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO03005246A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO03005640A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU2002318477A1 | Australia | A1 | |
| AU2002318479A1 | Australia | A1 | |
| AU2002320281A1 | Australia | A1 | |
| US2003018712A1 | United States of America | A1 | |
| US2003074403A1 | United States of America | A1 | |
| WO03005246A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO03005244A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO03005640A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1410261A2 | European Patent Office (EPO) | A2 | |
| EP1415455A2 | European Patent Office (EPO) | A2 | |
| EP1415456A2 | European Patent Office (EPO) | A2 | |
| CN1526227A | China | A | |
| CN1528079AThis record | China | A | |
| US7440994B2 | United States of America | B2 | |
| US7499981B2 | United States of America | B2 | |
| US2009106355A1 | United States of America | A1 | |
| US7546363B2 | United States of America | B2 | |
| US7562112B2 | United States of America | B2 | |
| EP1415455B1 | European Patent Office (EPO) | B1 | |
| AT467301T | Austria | T | |
| ATE467301T1 | Austria | T1 | |
| DE60236293D1 | Germany | D1 | |
| CN1528079B | China | B | |
| US7921155B2 | United States of America | B2 | |
| EP1410261B1 | European Patent Office (EPO) | B1 |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Termination of patent right due to non-payment of annual feeCF01 | CF01 | |
| Grant of patent or utility modelGrantedC14 | C14 | |
| Entry into substantive examinationC10 | C10 | |
| PublicationC06 | C06 |
Numbers
- Publication
- 1528079
- Application
- 2813673
Titles2
- Chinese
- 用于对等服务的方法和装备
- English
- Methods and equipment for peer-to-peer services
Classification
- CPC, 5
- H04L67/104
- H04L47/10
- H04L67/1095
- H04L67/1063
- H04L69/329
- IPC, 3
- H04L12 56
- H04L29 08
- H04L47 10