The present invention relates to an improvement of the Bit Torrent Protocol, which is one of P2P protocols (Peer-To-Peer, a method for clients to communicate with each other without passing through a server).
Prior Art (1)
A video file data distribution service using the Internet is being provided.
The general protocols for distributing data in the system in
The size of a video file is very large. If the file is a giga byte size, the load of the distribution server and the band consumption of the network lines are so large that it requires an enormous equipment investment and running cost if the data is distributed to many users simultaneously using a prior art.
In the above prior art (protocol), a server and a client PC (personal computer: viewer, user) are directly connected, and occupy the resources of the server and the line, so a cost in proportion to the number of users is required.
Prior Art (2)
One method to solve the above problem is a kind of P2P protocol (Peer-To-Peer, method for clients to communicate with each other without passing through a server) called the “Bit Torrent Protocol”. As
The URL related to the Bit Torrent Method has the extension “.torrent”. If this .torrent file is read by Bit Torrent-supported file sharing software, file sharing (download/upload of a file) starts. Even during the download of a file, the portion this client has downloaded thus far is uploaded when requested.
In theory a file reaches all the clients 111 and 112 if the seeder server 110 distributes the file once, regardless the number of clients, so the load on the seeder server 110 for one file is roughly constant regardless the number of clients. (In reality the distribution efficiency of an entire network is improved by executing not just once, but a plurality of times of distribution to a plurality of peers.)
To participate in the network 121 in
The peer P is a client PC but can also be a seeder (seeder or piece seeder) as well. In other words, when a specific file is downloaded 100% (when file A or file B is downloaded 100% if one content file consists of file A and B), the client PC becomes a seeder, and is managed by the active peer table 120a as such. In the network 121 in
In the Bit Torrent Method, a peer holding the original file does not always exist, so a seeder, which has a “complete original” (super seeder), must be active somewhere on the network as long as a leecher exists. In order to secure a “complete original”, at least one super seeder, or a plurality of piece seeders sufficient for the result of collecting the piece seeders to be a complete original must be active. It is not possible to assure the number of active piece seeders, so one super seeder is always required for each file (content). The service provider must prepare such a super seeder.
Therefore the load of a super seeder increases in proportion to the number of types of original files, and not to the number of peers (number of users) (about a double load is applied to a seeder which distributes two types of files to one user, compared with a seeder which distributes one type of file to two users). This means that the Bit Torrent Method is suitable for distributing a small number of large files, but increases the load on the super seeder as the number of files increases, which increases the equipment investment and running cost.
With the foregoing in view, it is an object of the present invention to solve the above problems and to provide a method of decreasing the load on the super seeder when the number of files increases in the Bit Torrent Method.
The download method for a file, according to the present invention, is a download method for a file on a computer network comprising at least one client, a super seeder for transmitting a file stored in advance according to a request, and a tracker including an active peer table which is a table created for each file for storing at least the address of a client and/or a super seeder, a seeder flag for indicating whether a file stored by a computer at the address can be transmitted according to a request, and the number of computers that can transmit the stored file according to a request, and a super seeder table for storing the address of the super seeder, the method comprising a first step of sending an event start notice and a file download request notice from a client to a tracker, a second step of receiving the download request notice and registering the client in the active peer table corresponding to the file, a third step of retrieving an address of a super seeder corresponding to the file from a super seeder table when the number of computers that can transmit the file is a predetermined value m, which is set in advance, or less in the active peer table, a fourth step of sending a process start instruction from the tracker to the super seeder retrieved in the third step, a fifth step of receiving the process start instruction and starting the process by the super seeder, a sixth step of sending a seeding start notice from the super seeder to the tracker, a seventh step of receiving the seeding start notice and registering the super seeder in the active peer table, an eighth step of downloading the file from the super seeder to the client based on the active peer table, a ninth step of sending a receive completion notice from the client to the tracker, a tenth step of receiving the receive completion notice, setting a seeder flag of the client in the active peer table corresponding to the file, and updating the number of computers that can transmit the file, an eleventh step of comparing the number of computers that can transmit the file with a predetermined threshold n, a twelfth step of generating a process stop request when the number of computers that can transmit the file exceeds the threshold n, a thirteenth step of sending the process stop request to the super seeder included in the active peer table, and a fourteenth step of receiving the process stop request and stopping the process by the super seeder.
A program for implementing the above method is recorded on a recording medium, for example. The recording medium includes, for example, an EPROM device, flash memory device, flexible disk, hard disk, magnetic tape, magneto-optical disk, CD (including CD-ROM, Video-CD), DVD (including DVD-Video, DVD-ROM and DVD-RAM), ROM cartridge, RAM memory cartridge with backup battery, flash memory cartridge and non-volatile RAM cartridge.
The recording medium is a medium on which information (mainly digital data and programs) is recorded by a physical means, and which can have such a processor as a computer or a dedicated processor execute predetermined functions.
Explanation of Terms
A client constituting the P2P network according to an embodiment of the present invention may operate not only as a client which receives data, as mentioned above, but also as a server, such as a piece seeder. In the following description, the term “peer” is used when the configuration of the network is described (e.g.
Terms specific to Bit Torrent will be described in brief.
(1) Torrent File
A file in which the file information and the address of the tracker are written. This file is acquired first to participate in the P2P network by Bit Torrent.
(2) Tracker
An important computer (server) which indicates the owner of a file. The Bit Torrent client is connected to the tracker, written in a .torrent file, and acquires the address of the owner of the file.
(3) Seeder
A client which completed a download, that is a peer that can upload. In Bit Torrent, a client which downloaded a part of a file can also upload this downloaded portion. This kind of peer is called a “piece seeder”.
(4) Leecher
A client which has not completed a download.
The system/method according to an embodiment of the present invention provides a download service for a large size (heavy) file, such as a video file of a movie. Conventionally a video file is provided as a streaming type, but is provided as a download type in the system/method according to the present embodiment, which is called a file distribution server/client system. The video file provided by the system/method according to the present embodiment is an image file with a 1.5 Mbps or more bit rate (information volume per time of moving image data) based on a compression format called WMV9.
The improved active peer table (see
(1) The improved active peer table is a list of peers which have this file or which are requesting reception (seeder or leecher). When each peer inquires the address of the connection destination of the packet relay to the tracker, the tracker operates such that a peer in this table is selected by a predetermined method (including by random selection), and the peer which inquired is replied to, so as to spread the grid distribution network (circle of packet relay).
(2) The super seeder table is a list wherein an address of a super seeder is corresponded to each file. The type of file provided by a super seeder is specified by the service ID (identification information of a file).
The system/method according to an embodiment of the present invention will now be described with reference to the diagrams in
First the initial setup is performed (ST0, SC0, SC1 in
The client is activated in a status where [the client] does not have the file A. When activated, [the client] sends an event notice (session start) to the tracker (SC2 in
The tracker which receives this [notice] reads the IP address of the client 1 and the port number from the IP packet header, and registers them in the active peer table as follows (ST1 in
The total value of the seeder flags is checked. If the total value of the seeder flags (number of computers which can transmit the file) is smaller than a predetermined value m (e.g. 2), which is set in advance, the super seeder is activated. For example, when the total value of the Seeder flags=0, that is when there is no peer which becomes a seeder, the super seeder is activated with certainty. The setting of the predetermined value m may be changed as a variable by a program. This is because the activation of the super seeder is theoretically unnecessary when “m=1”, but it is possible that “peer with Seeder flag=1” becomes overloaded by the transmission requests concentrated there, although this depends on the conditions of the network, therefore as a buffer for this, it is preferable to activate the supper seeder and distribute the transmission requests if the number of seeders is low (even if it is not zero). Since the total value of the seeder flags of the active peer table is 0 (ST2<m in
Specifically, a super seeder, of which the service ID=Corp 1, is searched in the super seeder table in
Then the tracker sends the following process start instruction to the address of the selected super seeder using HTTP protocol, for example (ST4 in
GEThttp://200.0.0.2/seeder.cgi?event=seedingstart&FILE=fileA
The super seeder server (200.0.0.2) which received this information starts the process of the seeder (SS1 in
GEThttp://trackerserver/track.cgi?event=sessionstart&serviceID=Corp1&FILE=fileA&Seeder=1
The service ID can be predetermined and set in advance for each super seeder.
The tracker which received this request registers it in the active peer table, as shown in
When the client completes receiving, the client 1 sends the following receive completion notice to the tracker (SC10 in
GEThttp://trackerserver/track.cgi?event=sessioncomplete&servic eID=Corp1&FILE=fileA&Seeder=1
“Seeder=1” at the end indicates that [the client 1] has a complete file.
The tracker which received this notice updates the active peer table, as shown in
As [processing] continues in the same manner, peers which completed reception increase, and the total value of the seeder flags eventually exceeds a predetermined value n (
The total value of the seeder flags, which exceeds a predetermined value or more, indicates that a seeder which has a complete original file (not only the super seeder but also a general piece seeder which completed reception) exists on the network, in addition to the super seeder. This means that an arbitrary client can receive a complete original file from another seeder even if a super seeder does not exist, so the super seeder can be stopped.
Therefore when the total value of the seeder flags exceeds n (total value of seeder flag>threshold n in ST11 in
The super seeder which received this stops the seeding process of the file A (SS20 in
If no transmission request for the file A is received from any client for a predetermined period (e.g. 120 seconds) or more, the super seeder automatically stops the seeding process of the file A, even if an instruction is not received from the tracker. At this time [the super seeder] notifies a stop of the seeding to the tracker as follows (SS21 in
GEThttp://trackerserver/track.cgi?event=sessionstop&serviceID=Corp1&FILE=fileA&Seeder=1
The tracker which received “event=sessionstop” from a seeder or an arbitrary client deletes the peer from the active peer table.
In the present embodiment a seeder flag is set in the improved active peer table, and the start/stop of the super seeder is executed depending on whether the total value thereof is at a certain level, so that the super seeder is dynamically started only when the seeders having the complete original of a certain file A are insufficient on the network, and is dynamically stopped when excessive, therefore the required number of activated processes of the super seeder can be decreased as a whole, and as a result the load on the super seeder(s) can be decreased.
By registering a plurality of seeders in the super seeder table in advance and performing round robin scheduling on them, the load on a super seeder can be distributed to a plurality of servers even if a separate load distribution device is not used.
Also by setting an identifier for each service ID in the super seeder table, and registering the address of each super seeder for the service ID in advance, the seeder can be dynamically switched for each service ID, that is for each supplier of the content, and the physical locations of the super seeders can be distributed throughout the world.
The present invention is not limited to the above embodiment, but can be modified in various ways within the scope of the invention stated in the Claims, and needless to say these shall be included in the scope of the present invention.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2005/001254 | 1/28/2005 | WO | 00 | 9/12/2005 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2006/080083 | 8/3/2006 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
7096230 | Kraft | Aug 2006 | B2 |
20010027479 | Delaney et al. | Oct 2001 | A1 |
20040117376 | Lavin et al. | Jun 2004 | A1 |
Number | Date | Country |
---|---|---|
0 993 163 | Apr 2000 | EP |
A 2002-269461 | Sep 2002 | JP |
A 2003-6087 | Jan 2003 | JP |
A 2003-99315 | Apr 2003 | JP |
A 2003-187101 | Jul 2003 | JP |
A 2003-228668 | Aug 2003 | JP |
A 2003-273898 | Sep 2003 | JP |
A 2003-283567 | Oct 2003 | JP |
A 2003-323329 | Nov 2003 | JP |
A 2004-30610 | Jan 2004 | JP |
A 2004-146973 | May 2004 | JP |
WO 0113201 | Feb 2001 | WO |
Number | Date | Country | |
---|---|---|---|
20070028133 A1 | Feb 2007 | US |