A method for sharing decentralized download of large files

By deploying Transmission software on servers and user terminals, torrent files are generated and virtually segmented. User terminals, acting as uploaders and downloaders, share file fragments, solving the problems of high server bandwidth pressure and low efficiency, achieving decentralized downloading, and improving download efficiency.

CN115766701BActive Publication Date: 2026-05-08FUJIAN CENTM INFORMATION
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
FUJIAN CENTM INFORMATION
Filing Date
2022-10-09
Publication Date
2026-05-08

AI Technical Summary

Technical Problem

In existing technologies, the server acts as the sole file provider, resulting in high bandwidth pressure and low efficiency when downloading large files.

Method used

The Transmission software is deployed on the server and user terminals to generate torrent files and perform virtual chunking. The user terminals act as uploaders and downloaders, sharing file fragments via the BitTorrent protocol.

Benefits of technology

It reduces server I/O and network bandwidth pressure, makes full use of user terminal resources, improves download efficiency, and reduces download time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115766701B_ABST
    Figure CN115766701B_ABST
Patent Text Reader

Abstract

The application provides a decentralized downloading method for sharing large files, which comprises the following steps: deploying a Transmission software in a server and each user terminal, generating a seed file for a to-be-downloaded file by using the software in the server; virtually dividing the to-be-downloaded file into virtual blocks with equal sizes, and writing index information and Hash verification codes of each virtual block into the seed file; accessing the server by the user terminal, and parsing the seed file by using the Transmission software of each user terminal to obtain the index information and Hash verification codes, download corresponding file segments from the to-be-downloaded file, and generate seed segment files for the file segments; and accessing other user terminals by the user terminal, parsing the seed segment files of the other user terminals by using the Transmission software of the user terminal, and downloading corresponding file segments. The application expands the uploaders from only the server to the user terminals, that is, the user terminals are downloaders and uploaders at the same time, and realizes the decentralization of downloading.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of file download technology, and in particular to a decentralized method for downloading large shared files. Background Technology

[0002] A typical server provides service to each user who sends a download request. In the Cloud Document 3.0 service, document data is stored on the server, which acts as the sole source of the files, providing download services to the end user. The specific solution is as follows: Figure 1 As shown, the arrow points in the direction of file stream transmission.

[0003] However, as the sole provider of file resources, if terminals simultaneously download large files from the server, it will put a lot of bandwidth pressure on the server and the file download efficiency will be low. Summary of the Invention

[0004] The technical problem to be solved by this invention is to provide a decentralized download method for shared large files, which expands the uploader from only the server to the user terminal, that is, the user terminal is both the downloader and the uploader, thus realizing decentralized download.

[0005] To solve the above-mentioned technical problems, the technical solution adopted by the present invention is as follows:

[0006] A decentralized method for downloading large shared files includes the following steps:

[0007] S1. Deploy Transmission software on both the server and each user terminal, and use the Transmission software on the server to seed the file to be downloaded to generate a seed file;

[0008] S2. The file to be downloaded is virtually divided into virtual blocks of equal size, and the index information and Hash verification code of each virtual block are written into the seed file;

[0009] S3. The user terminal accesses the server and uses its respective Transmission software to parse the seed file, obtain the index information and the Hash verification code, finds the corresponding virtual block according to the index information, downloads the corresponding file fragment from the file to be downloaded according to the Hash verification code, and uses the file fragment as a seed to generate a seed fragment file.

[0010] S4. The user terminal accesses other user terminals and uses its own Transmission software to parse the seed fragment file in the other user terminal and download the corresponding file fragment.

[0011] The beneficial effects of this invention are as follows: This invention provides a decentralized download method for shared large files. By deploying Transmisson software with BT seeding functionality on both the server and each user terminal, the server performs BT seeding on the complete file to be downloaded, generating a seed file, and virtually divides the file to be downloaded into blocks. The index information and hash verification code of the virtual blocks are stored in the seed file. Since it is virtual block division, no actual block files are generated on the hard drive. Therefore, while effectively reducing server memory usage, the seed file can directly serve as an "index" for the file to be downloaded. Then, when a user terminal needs to download the file, it can obtain the seed file and download the corresponding file fragments of the file to be downloaded according to the index information and hash verification code. Each user terminal then uses its own Transmisson software to perform BT seeding on the downloaded file fragments to share them with other user terminals for download. That is, each user terminal acts as both an uploader and a downloader of the file, realizing the sharing and decentralized download of the file to be downloaded. This significantly reduces the server's IO pressure and network bandwidth pressure, distributing the pressure to other user terminals, making full use of user terminal resources, improving file download efficiency, and significantly reducing download time. Attached Figure Description

[0012] Figure 1 This is a schematic diagram of file transfer in the prior art;

[0013] Figure 2 This is a flowchart illustrating a decentralized download method for shared large files according to an embodiment of the present invention;

[0014] Figure 3 This is a flowchart illustrating the seeding and publishing process in a decentralized download method for shared large files according to an embodiment of the present invention.

[0015] Figure 4 This is a timing diagram of a user terminal downloading file segments in a decentralized download method for shared large files according to an embodiment of the present invention.

[0016] Figure 5 This is a schematic diagram of file transfer in a decentralized download method for shared large files according to an embodiment of the present invention. Detailed Implementation

[0017] To explain in detail the technical content, objectives, and effects of the present invention, the following description is provided in conjunction with the embodiments and accompanying drawings.

[0018] Prior to this, the English abbreviations and technical terms used in this invention are defined as follows:

[0019] 1. BT, BitTorrent, is a file distribution protocol;

[0020] 2. Transmission, an open-source BitTorrent user terminal;

[0021] 3. Tracker, seed tracking service;

[0022] 4. OpenTracker, an open-source and free BitTorrent Tracker;

[0023] 5. Apache HTTP Server, abbreviated as Apache, is an open-source web server software.

[0024] Please refer to Figures 2 to 5 A decentralized method for downloading large shared files, including the following steps:

[0025] S1. Deploy Transmission software on both the server and each user terminal, and use the Transmission software on the server to seed the file to be downloaded to generate a seed file;

[0026] S2. The file to be downloaded is virtually divided into virtual blocks of equal size, and the index information and Hash verification code of each virtual block are written into the seed file;

[0027] S3. The user terminal accesses the server and uses its respective Transmission software to parse the seed file, obtain the index information and the Hash verification code, finds the corresponding virtual block according to the index information, downloads the corresponding file fragment from the file to be downloaded according to the Hash verification code, and uses the file fragment as a seed to generate a seed fragment file.

[0028] S4. The user terminal accesses other user terminals and uses its own Transmission software to parse the seed fragment file in the other user terminal and download the corresponding file fragment.

[0029] As described above, the beneficial effects of this invention are as follows: By deploying Transmisson software providing BT seeding functionality on both the server and each user terminal, the server performs BT seeding on the complete file to be downloaded, generating a seed file and virtually dividing the file into blocks. The index information and hash verification code of the virtual blocks are stored in the seed file. Since it is virtual block division, no actual block files are generated on the hard drive. Therefore, while effectively reducing server memory usage, the seed file can directly serve as an "index" for the file to be downloaded. Then, when a user terminal needs to download the file, it can obtain the seed file and download the corresponding file fragments of the file to be downloaded according to the index information and hash verification code. Each user terminal then uses its own Transmisson software to perform BT seeding on the downloaded file fragments to share them with other user terminals for download. That is, each user terminal acts as both an uploader and a downloader of the file, realizing the sharing and decentralized downloading of the file to be downloaded. This significantly reduces the server's IO pressure and network bandwidth pressure, distributing the pressure to other user terminals, making full use of user terminal resources, improving file download efficiency, and significantly reducing download time.

[0030] Furthermore, step S1 also includes:

[0031] OpenTracker and Apache software are deployed on the server. OpenTracker is used to provide Tracker services, and Apache is used to provide web services.

[0032] As described above, the server also deploys OpenTracker software for providing Tacker services and Apache software for providing Web services. The Tacker service enables unified management of information about the server, torrent file holders, and downloaders (i.e., user terminals), and performs source tracing for downloads / seeding. The Web service is used to establish communication between the server and user terminals.

[0033] Furthermore, the step between S1 and S2 also includes:

[0034] The IP addresses and routing information of the server and each user terminal are stored in the Tracker service.

[0035] As described above, storing the IP addresses and routing information of the server and each user terminal in the Tracker service facilitates subsequent retrieval of file information and download progress from the corresponding server or user terminal based on the IP address and routing information.

[0036] Furthermore, step S2 also includes:

[0037] The address information and service settings information of the Tracker service are stored as Tracker information in the torrent file, and the file information is calculated based on the file to be downloaded according to the BitTorrent protocol.

[0038] As described above, the Tracker information, which is required for BT download, is stored in the torrent file. This allows the user terminal to access the Tracker information by parsing the torrent file and then call the Tracker service to perform BT download.

[0039] Furthermore, the step between S2 and S3 also includes:

[0040] The seed file is published to the Tracker service and the Web service.

[0041] As described above, the torrent file corresponds to the Tracker service and Web service published to the server. The Tracker service is used to download the corresponding file via BitTorrent, and the Web service is used to distribute the corresponding torrent file to the user terminal.

[0042] Furthermore, step S3 specifically includes the following steps:

[0043] S31. The server obtains the request initiated by the current user terminal to download the file to be downloaded, and returns the seed file to the current user terminal through the Web service;

[0044] S32. The current user terminal parses the seed file to obtain the index information, the hash verification code, the tracker information, and the file information;

[0045] S33. The current user terminal sends a connection request to the Tracker service based on the Tracker information. The request message includes a Hash verification code, which is generated by the current user terminal randomly selecting one from the Hash verification codes based on the obtained index information.

[0046] S34. The Tracker service finds the corresponding virtual block from the index information through the Hash verification code, obtains the corresponding Hash verification code, parses the file information through the Hash verification code, obtains the corresponding file fragment in the file to be downloaded, and sends it to the current user terminal.

[0047] S35. The current user terminal obtains the file fragment and uses its own Transmission software to generate the seed fragment file.

[0048] As described above, user terminals, using their own Transmission software, not only download the file fragments corresponding to the virtual blocks but also upload seed fragment files generated from the downloaded file fragments. This enables user terminals to share and download file fragments, ultimately obtaining the complete file to be downloaded without each user terminal needing to download the entire file from the server, thus truly achieving decentralized downloading. Furthermore, the use of index information to obtain the corresponding virtual blocks and the use of hash verification codes to parse and obtain the file fragments corresponding to the virtual blocks in the file to be downloaded also ensure the security and efficiency of file downloading.

[0049] Furthermore, step S34 also includes:

[0050] The Tracker service records the file information and download progress of the file fragment currently being downloaded / seeded by the user terminal, and maps it to the IP address and routing information of the user terminal.

[0051] As described above, since the Tracker service stores the IP addresses and routing information of each user terminal, the file information downloaded / seeded in each user terminal is mapped to its corresponding IP address and routing information. This allows each user terminal to know which torrent files it has downloaded / seeded through the information recorded in the Tracker service, and then quickly download them from other user terminals according to the index information.

[0052] Furthermore, step S4 specifically includes the following steps:

[0053] S41. The Tracker service returns a list of other user terminals that are currently participating in downloading and seeding to the user terminal that is currently requesting a download.

[0054] S42. The current user terminal sends a request to other user terminals in the list to inquire about the download / seeding progress. Based on the returned download / seeding progress, the remaining download tasks of different file segments to be downloaded are allocated to the corresponding user terminals for parallel download.

[0055] S43. Each user terminal in the list downloads the corresponding file fragment and seeds it to obtain the seed fragment file, and returns it to the current user terminal.

[0056] S44. The current user terminal parses the seed fragment files returned from each of the user terminals in the list using its own Transmission software to obtain the corresponding file fragments.

[0057] As described above, the downloading of multiple file segments by a single user terminal is expanded to multiple user terminals downloading corresponding file segments in parallel according to their download progress. Finally, each user terminal shares the downloaded file segments, thereby further improving download efficiency. Furthermore, during the download / seeding process, each user terminal can also provide an upload function, allowing other user terminals to download seeded file segments from the current user terminal.

[0058] Furthermore, the files to be downloaded include user-shared files, externally shared files, and group files.

[0059] As described above, large shared files typically include files shared by individual users to others for download by the recipients; files shared by users via external links, such as cloud websites, to other users for download; and files shared in groups for download by group members. Therefore, the files to be downloaded include these three categories, covering most large shared files and ensuring the scope of application of this invention.

[0060] Furthermore, the size of the virtual block is an integer power of 2K.

[0061] As described above, dividing the virtual block into integer powers of 2K ensures redundancy in the allocation of virtual space.

[0062] This invention provides a decentralized download method for large shared files, applicable to decentralized download of large shared files shared by users, external links, and groups, improving file download efficiency. The following is a detailed description with reference to specific embodiments.

[0063] Please refer to Figure 2 Embodiment 1 of the present invention is as follows:

[0064] BitTorrent (BT) is a file distribution protocol that uses an efficient software distribution system and peer-to-peer technology to share large files, enabling each user to provide upload services like a node redistributing resources on a network. In BT, the server or file holder first sends the file to one user, who then forwards it to other users. Users share their portions of the file with each other until everyone's download is complete. This method allows the server to handle multiple large file download requests simultaneously without consuming excessive bandwidth.

[0065] Therefore, in this embodiment, the BT protocol is introduced, and a decentralized download method for large shared files is proposed, such as... Figure 2 As shown, the steps include:

[0066] S1. Deploy Transmission software on both the server and each user terminal, and use Transmission software on the server to seed the file to be downloaded to generate a seed file.

[0067] S2. The file to be downloaded is virtually divided into virtual blocks of equal size, and the index information and hash verification code of each virtual block are written into the seed file. The size of the virtual block is an integer power of 2K to ensure redundancy in the allocation of virtual space.

[0068] S3. User terminals access the server and use their respective Transmission software to parse the torrent file, obtain index information and hash verification code, find the corresponding virtual block according to the index information, download the corresponding file fragment from the file to be downloaded according to the hash verification code, and seed the file fragment to generate a seed fragment file.

[0069] S4. The user terminal accesses other user terminals and uses its own Transmission software to parse the torrent fragment files in the other user terminals and download the corresponding file fragments.

[0070] In this embodiment, Transmisson software providing BitTorrent seeding functionality is deployed on both the server and each user terminal. The server performs BitTorrent seeding on the complete file to be downloaded, generating a seed file and virtually dividing the file into blocks. The index information and hash verification code of these virtual blocks are stored in the seed file. Since the blocks are virtual, no actual block files are generated on the hard drive. Therefore, while effectively reducing server memory usage, the seed file can directly serve as an "index" for the file to be downloaded. When a user terminal needs to download the file, it can obtain the seed file and download the corresponding file segment based on the index information and hash verification code. Each user terminal then uses its own Transmisson software to seed the downloaded file segment again, so that it can be shared with other user terminals for download. In other words, each user terminal acts as both an uploader and a downloader of the file, achieving file sharing and decentralized downloading. This significantly reduces server I / O and network bandwidth pressure, distributing the pressure across other user terminals, fully utilizing user terminal resources, improving download efficiency, and greatly reducing download time.

[0071] Please refer to Figures 3 to 5 Embodiment two of the present invention is as follows:

[0072] A decentralized method for downloading large shared files, based on the above embodiment one, wherein the files to be downloaded in this embodiment include user-shared files, external link shared files, and group files.

[0073] User-shared files are files that a user personally shares with others, and are downloaded by the recipient; external link-shared files are files that a user shares with other users through external links, such as cloud websites, and are also downloaded by the recipient; group files are files shared in a group and are downloaded by group members. In this embodiment, large shared files typically include the above three categories, covering most large shared files and ensuring applicability.

[0074] To address the issues of high server bandwidth load and low download efficiency when downloading large shared files, in this embodiment, step S1 further includes:

[0075] Deploy OpenTracker and Apache software on the server. OpenTracker is used to provide Tracker services, and Apache is used to provide web services.

[0076] The Tracker service caches information such as IP addresses and routing information, download completion status, etc., of all torrent file holders (including the user terminals holding torrent file fragments mentioned later and the torrent file holding server in step S1) and downloaders (i.e., user terminals). All holders and downloaders need to submit their information to this service. In this embodiment, the Tracker service provides unified management of information about the server, torrent file holders, and downloaders, and performs source tracing for downloads / seeding, while the Web service establishes the connection and communication between the server and user terminals.

[0077] In this embodiment, the server uses Transmisson software to generate a seed file and publishes it to the web service. In the cloud document project, seeding can be triggered by a function, where the file ID to be seeded is placed in a queue, awaiting processing by the cloud document service. Seeding is primarily triggered through the following three functions:

[0078] 1) Personal Documents - Sharing: In the sharing function, users can check the BT download function. If checked, a seeding task will be created and added to the task queue.

[0079] 2) Personal Documents - External Link Sharing: In the external link sharing function, users can check the BT download function on the interface for creating an external link share. If checked, a seeding task will be created and added to the task queue.

[0080] 3) Group management, i.e. sharing of group files: After the group administrator uploads a file, he can check the BT download function. If it is checked, a seeding task will be created and added to the task queue.

[0081] After seeding, a torrent file is generated and published to a web directory, providing the ability to download the torrent file via a web service. It's worth noting that when there are multiple files to be downloaded, the server needs to seed each file, generating multiple corresponding torrent files. This can be achieved by pre-assigning IDs to the files to be downloaded, creating a list of file IDs to ensure differentiation between subsequently generated torrent files. It also ensures that the IDs can be used to check if all files have been seeded. The seeding and publishing process for multiple torrent files can be as follows: Figure 3 As shown.

[0082] Then, in this embodiment, the step between S1 and S2 further includes:

[0083] The IP addresses and routing information of the server and each user terminal are stored in the Tracker service.

[0084] The IP addresses and routing information of the server and each user terminal are stored in the Tracker service, which facilitates subsequent retrieval of file information and download progress from the corresponding server or user terminal based on the IP address and routing information.

[0085] In this embodiment, step S2 further includes:

[0086] The address and service settings of the Tracker service are stored as Tracker information in the torrent file, and the file information is calculated according to the BitTorrent protocol for the file to be downloaded.

[0087] The Tracker information, including its address and service settings, is stored in the torrent file. This allows the user terminal to access the Tracker service and perform the BT download after parsing the torrent file and obtaining the Tracker information. In this embodiment, the file information is generated based on calculations performed on the file to be downloaded, and the calculation results are encoded according to the B-encoding rules within the BitTorrent protocol.

[0088] The steps between S2 and S3 also include:

[0089] The torrent file is published to the Tracker service and the Web service. The Tracker service downloads the corresponding file to be downloaded via BitTorrent, while the Web service distributes the torrent file to the user's terminal.

[0090] Step S3 specifically includes the following steps:

[0091] S31. The server obtains the request to download the file initiated by the current user terminal and returns the seed file to the current user terminal through the Web service.

[0092] S32. The current user terminal parses the seed file to obtain index information, hash verification code, tracker information, and file information.

[0093] S33. The current user terminal sends a connection request to the Tracker service based on the Tracker information. The request message includes a Hash verification code, which is generated by the current user terminal randomly selecting one from the Hash verification codes based on the obtained index information.

[0094] S34. The Tracker service finds the corresponding virtual block from the index information using the hash verification code, obtains the corresponding hash verification code, parses the file information using the hash verification code, obtains the corresponding file fragment in the file to be downloaded, and sends it to the current user terminal.

[0095] S35. The current user terminal obtains a file fragment and uses its own Transmission software to generate a seed fragment file.

[0096] In this embodiment, the user terminal, using its own Transmission software, not only downloads the file fragments corresponding to the virtual blocks but also uploads seed fragment files generated from the downloaded file fragments. This enables user terminals to share and download file fragments, ultimately obtaining the complete file to be downloaded without each user terminal needing to download the entire file from the server, thus truly achieving decentralized downloading. Furthermore, the use of index information to obtain the corresponding virtual blocks and the use of hash verification codes to parse and obtain the file fragments corresponding to the virtual blocks in the file to be downloaded also ensure the security and efficiency of file downloading.

[0097] It's worth noting that when a user's terminal downloads shared files, group files, or files shared via external links, the server will check if the file already has a torrent seed file. If it does, the server will return the torrent seed file to the user's terminal; otherwise, the file will download normally through the browser or client.

[0098] In this embodiment, step S34 further includes:

[0099] The Tracker service records file information and download progress of file segments currently being downloaded / seeded by the user terminal, and maps this information to the user terminal's IP address and routing information.

[0100] Since the Tracker service stores the IP addresses and routing information of each user terminal, the file information downloaded / seeded on each user terminal is mapped to its corresponding IP address and routing information. This allows each user terminal to know which torrent files it has downloaded / seeded through the information recorded in the Tracker service, and then quickly download them from other user terminals according to the index information.

[0101] In addition, in this embodiment, step S4 specifically includes the following steps:

[0102] S41. The Tracker service returns a list of other user terminals that are currently participating in downloading and seeding to the user terminal that is currently requesting the download.

[0103] S42. The current user terminal sends a request to other user terminals in the list to inquire about the download / seeding progress. Based on the returned download / seeding progress, the remaining download tasks of different file segments to be downloaded are assigned to the corresponding user terminals for parallel download.

[0104] S43. Each user terminal in the list downloads the corresponding file fragment and seeds it to obtain a seed fragment file, which is then returned to the current user terminal.

[0105] S44. The current user terminal uses its own Transmission software to parse the seed fragment files returned by each user terminal in the list and obtain the corresponding file fragments.

[0106] This expands the downloading of multiple file segments from a single user terminal to a parallel downloading of corresponding file segments by multiple user terminals based on their download progress. Finally, each user terminal shares the downloaded file segments, further improving download efficiency. During the download / seeding process, each user terminal can also provide an upload function, allowing other user terminals to download seeded file segments from the current user terminal.

[0107] Please refer to Figure 4 and Figure 5 The third embodiment of the present invention is as follows:

[0108] A decentralized method for downloading large shared files, based on the above-described embodiment two, provides the following specific download process:

[0109] The Transmission software installed on the user's terminal acts as a peer (BT client). The terminal uses the Transmission software to parse the torrent file generated by the server, obtaining Tracker and file information. By establishing a connection with the Tracker service, the user's terminal can determine which peers the Tracker service has connected with and download file fragments from those peers.

[0110] First, the Peer sends a connection request to the Tracker service. The main information in the request message is the Hash checksum.

[0111] Upon receiving a request, the Tracker service first records the Peer's information (including file information corresponding to the file segment the Peer wants to download / seed, the Peer's listening port, IP address, and routing information; if already recorded, it checks if an update is needed). Then, it returns a list of some (not all, depending on parameters set in the Tracker service) Peers participating in downloading / seeding the same file to the other party. During this process, the server also acts as a Peer because it also has Transmission software installed; however, in this embodiment, the server only handles uploading and does not need to download, as it already possesses the complete file.

[0112] The Tracker service maintains information on all Peers and may be able to handle the download of multiple file segments simultaneously.

[0113] Peers send requests to each peer in the peer list returned by the Tracker service to inquire about the download progress. Based on the download progress returned by each peer, the download tasks of the file segments corresponding to the different virtual blocks to be downloaded are distributed to other corresponding peers for parallel download.

[0114] During the download process, the Peer provides an upload function, allowing other Peers to download completed file segments from the current Peer. After the Peer finishes downloading, it can also use the seeding function to allow other Peers to download the seeded file segments from the current Peer.

[0115] In this embodiment, the timing diagram for Peer file download is as follows: Figure 4 As shown.

[0116] In addition, such as Figure 5 As shown, in this embodiment, it is assumed that the number of user terminals is 3. Figure 5As can be seen, file stream transmission is no longer a simple transfer from the server to various user terminals; file streams can also be transferred between user terminals. This significantly reduces the server load and achieves a decentralized download effect.

[0117] In summary, the decentralized download method for large shared files provided by this invention has the following beneficial effects:

[0118] 1. The uploader is expanded from only the server to the user terminal, that is, the user terminal is both the downloader and the uploader, thus realizing the decentralization of downloading;

[0119] 2. Significantly reduced server I / O and network bandwidth pressure, distributing the pressure to other user terminals, making full use of user terminal resources, improving file download efficiency, and greatly reducing download time.

[0120] The above description is merely an embodiment of the present invention and does not limit the patent scope of the present invention. Any equivalent modifications made based on the content of the present invention specification and drawings, or direct or indirect applications in related technical fields, are similarly included within the patent protection scope of the present invention.

Claims

1. A decentralized method for downloading large shared files, characterized in that, Including the following steps: S1. Deploy Transmission software on both the server and each user terminal, and use the Transmission software on the server to seed the file to be downloaded to generate a seed file; S2. The file to be downloaded is virtually divided into virtual blocks of equal size, and the index information and Hash verification code of each virtual block are written into the seed file; S3. The user terminal accesses the server and uses its respective Transmission software to parse the seed file, obtain the index information and the Hash verification code, finds the corresponding virtual block according to the index information, downloads the corresponding file fragment from the file to be downloaded according to the Hash verification code, and uses the file fragment as a seed to generate a seed fragment file. S4. The user terminal accesses other user terminals and uses its own Transmission software to parse the seed fragment file in the other user terminal and download the corresponding file fragment. Step S1 also includes: OpenTracker software and Apache software are deployed on the server. The OpenTracker software is used to provide Tracker services, and the Apache software is used to provide Web services. The step between S2 and S3 also includes: The seed file is published to the Tracker service and the Web service; Step S3 specifically includes the following steps: S31. The server obtains the request initiated by the current user terminal to download the file to be downloaded, and returns the seed file to the current user terminal through the Web service; S32. The current user terminal parses the seed file to obtain the index information, the hash verification code, the tracker information, and the file information; S33. The current user terminal sends a connection request to the Tracker service based on the Tracker information. The request message includes a Hash verification code, which is generated by the current user terminal randomly selecting one from the Hash verification codes based on the obtained index information. S34. The Tracker service finds the corresponding virtual block from the index information through the Hash verification code, obtains the corresponding Hash verification code, parses the file information through the Hash verification code, obtains the corresponding file fragment in the file to be downloaded, and sends it to the current user terminal. S35. The current user terminal obtains the file fragment and uses its own Transmission software to generate the seed fragment file.

2. The decentralized download method for shared large files according to claim 1, characterized in that, The step between S1 and S2 also includes: The IP addresses and routing information of the server and each user terminal are stored in the Tracker service.

3. The decentralized download method for shared large files according to claim 1, characterized in that, Step S2 also includes: The address information and service settings information of the Tracker service are stored as Tracker information in the torrent file, and the file information is calculated based on the file to be downloaded according to the BitTorrent protocol.

4. The decentralized download method for shared large files according to claim 1, characterized in that, Step S34 also includes: The Tracker service records the file information and download progress of the file fragment currently being downloaded / seeded by the user terminal, and maps it to the IP address and routing information of the user terminal.

5. The decentralized download method for shared large files according to claim 4, characterized in that, Step S4 specifically includes the following steps: S41. The Tracker service returns a list of other user terminals that are currently participating in downloading and seeding to the user terminal that is currently requesting a download. S42. The current user terminal sends a request to other user terminals in the list to inquire about the download / seeding progress. Based on the returned download / seeding progress, the remaining download tasks of different file segments to be downloaded are allocated to the corresponding user terminals for parallel download. S43. Each user terminal in the list downloads the corresponding file segment and seeds it to obtain the seed segment file, and returns it to the current user terminal. S44. The current user terminal parses the seed fragment files returned from each of the user terminals in the list using its own Transmission software to obtain the corresponding file fragments.

6. The decentralized download method for shared large files according to claim 1, characterized in that, The files to be downloaded include user-shared files, externally shared files, and group files.

7. The decentralized download method for shared large files according to claim 1, characterized in that, The size of the virtual block is an integer power of 2K.

Citation Information

Patent Citations

  • Downloading method, system, P2P server and client

    CN101635737A

  • BT download method, device and system

    CN101917488A