CN100527672C - 实现文件下载的网络通信系统及方法 - Google Patents

实现文件下载的网络通信系统及方法 Download PDF

Info

Publication number
CN100527672C
CN100527672C CN 200510095833 CN200510095833A CN100527672C CN 100527672 C CN100527672 C CN 100527672C CN 200510095833 CN200510095833 CN 200510095833 CN 200510095833 A CN200510095833 A CN 200510095833A CN 100527672 C CN100527672 C CN 100527672C
Authority
CN
China
Prior art keywords
file
client
server
download
tpt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 200510095833
Other languages
English (en)
Other versions
CN1925403A (zh
Inventor
伍海君
方斌
朱冶
宋洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN 200510095833 priority Critical patent/CN100527672C/zh
Priority to PCT/CN2006/002226 priority patent/WO2007025474A1/zh
Publication of CN1925403A publication Critical patent/CN1925403A/zh
Application granted granted Critical
Publication of CN100527672C publication Critical patent/CN100527672C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种实现文件下载的网络通信系统及方法,所述网络通信系统包括:通过通信网络连接的对等P2P服务器、文件服务器、种子描述TPT服务器以及一个以上的客户端;所述一个以上的客户端通过所述通信网络从所述TPT服务器下载所需文件对应的TPT文件,并根据所下载的TPT文件,通过P2P协议或其他通讯协议从所述通信网络中的其他客户端或所述文件服务器下载所需的文件。通过本发明所述的网络通信系统和方法,通信网络中客户端的下载速度不受服务器处理能力和网络带宽瓶颈的限制,即使在同时接入服务器的客户端数目很多时,用户下载文件的速度也不会受到影响。

Description

实现文件下载的网络通信系统及方法
技术领域
本发明涉及到网络通信技术领域,特别涉及到实现文件下载的网络通信系统及方法。
背景技术
随着通信网络的不断发展,用户可以从通信网络中获得越来越多有用的信息。其中,下载是用户从通信网络获取信息的主要方式之一。目前,通信网络上的客户端可以通过文件传输协议(FTP,File Transfer Protocol)或超文本传输协议(Hypertext Transfer Protocol)等多种通信协议从服务器下载所需要的数据,其工作原理如图1所示。在图1中,通信网络中的客户端,如客户端A、客户端B、......、客户端F均可以通过FTP或HTTP等通信协议直接与服务器进行通信,从该服务器下载自身需要的数据。这样一来,就可以实现通信网络中数据的共享,极大地节省系统的资源。
上述客户端直接从服务器下载数据的方法在同时接入到服务器的客户端数目较少的情况下可以有效地满足各个客户端的下载需求,但是,受到服务器自身硬件处理能力以及网络带宽的限制,在同时接入服务器的客户端数目超过一定数量时,服务器的处理能力及网络带宽将会出现瓶颈,导致各个客户端的下载速度变慢,特别是在用户享受通信网络提供的在线多媒体业务时,例如在线收听音乐或在线收看视频节目时,下载速度的减慢将直接影响在线多媒体业务的服务质量。
发明内容
为了解决上述技术问题,本发明提供了一种实现文件下载的网络通信系统及方法,使得通信网络中客户端的下载速度不受服务器处理能力和网络带宽瓶颈的限制。这样,即使在同时接入服务器的客户端数目很多时,用户下载文件的速度也不会受到影响。
本发明进一步的目的在于提供一种文件的下载方法,使用户可以享受在线多媒体业务,例如在线收听音乐或在线收看视频等等,极大地满足用户对在线多媒体业务服务质量的需求。
本发明所述实现文件下载的网络通信系统包括:通过通信网络连接的对等P2P服务器、文件服务器、种子描述TPT服务器以及一个以上的客户端;
其中,所述P2P服务器用于向所述一个以上的客户端公布可下载的文件,并通过所述通信网络处理客户端的登陆、退出、下载、查询种子请求;
所述文件服务器用于存储提供给客户端下载的文件;
所述TPT服务器用于存储提供给客户端下载的文件对应的TPT文件;
所述一个以上的客户端通过所述通信网络从所述TPT服务器下载所需文件对应的TPT文件,并根据所下载的TPT文件,通过P2P协议或其他通讯协议从所述通信网络中的其他客户端或所述文件服务器下载所需的文件;所述客户端发送该客户端的网络类型或防火墙类型到所述P2P服务器;
所述P2P服务器还用于根据该客户端的网络类型或防火墙类型将所述文件分组列表中与所述客户端具有相同网络类型或防火墙类型的客户端信息发送给所述客户端。
本发明所述一个以上的客户端通过超文本传输协议或文件传输协议从TPT服务器下载所需文件对应的TPT文件。
本发明所述一个以上的客户端通过传输控制协议或用户数据报协议从通信网络中的其他客户端下载所需的文件,或通过超文本传输协议或文件传输协议从所述文件服务器下载所需的文件。
本发明所述实现文件下载的方法,适用于包括通过通信网络连接的对等P2P服务器、文件服务器、种子描述TPT服务器以及一个以上的客户端的网络通信系统,包括:
a、在用户通过客户端从发布的文件中选择需要下载的文件后,该客户端根据用户所选择的文件名到TPT服务器上下载与该文件对应的、包含该文件标识FileID的TPT文件;
b、所述客户端登陆P2P服务器,获取该客户端的用户标识UIN;
c、所述客户端向P2P服务器发出下载及种子查询请求,并在所述下载请求中携带该客户端的UIN及步骤a所述的FileID;发送该客户端的网络类型或防火墙类型到所述P2P服务器;
d、P2P服务器将该客户端的UIN加入到该FileID对应的文件分组列表当中,根据该客户端的网络类型或防火墙类型将所述文件分组列表中与所述客户端具有相同网络类型或防火墙类型的客户端信息发送给所述客户端;
e、所述客户端根据P2P服务器发送的与所述客户端具有相同网络类型或防火墙类型的客户端信息与这些客户端建立连接,并通过P2P协议或其他通讯协议从这些客户端或文件服务器交换所需文件的各个分片数据。
步骤a所述发布包括:根据即将提供给用户下载的文件制作每个文件对应的TPT文件,并将制作好的TPT文件上传到TPT服务器;将提供给用户下载的文件上传至文件服务器;在P2P服务器上公布即将提供给用户下载的文件,供用户通过客户端进行下载查询。
本发明所述TPT文件进一步包括所对应文件的分片数据数目和每个分片数据的大小、每个分片数据的校验值及该TPT文件的校验值和版本号;
步骤a所述客户端下载TPT文件后进一步包括:检验所下载TPT文件的格式和版本是否正确,如果检验正确,则继续执行步骤b;否则,禁止该用户下载所述文件并结束;
步骤e在客户端从通信网络中的与所述客户端具有相同网络类型或防火墙类型的客户端交换到分片数据后,进一步根据每个分片数据的校验值对交换到的分片数据进行校验,如果校验正确,则接收;否则,丢弃该分片数据。
本发明所述校验采用HASH运算。
在步骤c之后进一步包括:P2P服务器检验该客户端的UIN及所要下载文件的FileID是否正确,同时检查该文件是否已经发布过,若UIN及FileID正确且该文件已经发布过,则继续执行步骤d;否则,通知客户端无法下载该文件并结束。
本发明所述检验所要下载文件的FileID是否正确为:将所要下载文件的文件名经过HASH运算后得到的32位整型值与FileID进行比较,如果相同,则检验正确,否则检验不正确。
在步骤d,所述P2P服务器进一步将所接收FileID对应文件的下载配置参数返回所述客户端;
步骤e所述交换为:所述客户端根据P2P返回的下载配置参数从与所述客户端具有相同网络类型或防火墙类型的客户端交换得到所需文件的各个分片数据。
步骤d所述的下载配置参数是由P2P服务器的配置文件决定的,主要包括:下载时启动的线程个数、每个线程的上传和下载最大限速/最小限速、P2P上传限速、P2P下载限速、最多连接的客户端数目、查询种子的间隔时间、P2P下载到达什么速度时可以降低从所述文件服务器下载的速度、P2P下载到达什么速度时可以提升从所述文件服务器下载的速度、P2P上传限速百分比。
在步骤e,所述客户端交换得到所有的分片数据后进一步包括:将交换来的分片数据按照顺序重新组合成所要下载的文件。
本发明所述方法进一步包括:在客户端在登陆P2P服务器之后,定时发送心跳信号到P2P服务器;P2P服务器定时检测来自所有已登陆的客户端的心跳信号,如超时未接收到心跳信号,则踢出对应的客户端,释放为该客户端分配的资源,并从相关的文件分组列表中删除该客户端信息。
本发明所述方法进一步包括:P2P服务器在收到客户端的退出请求后,释放为客户端分配的资源,并从相关的文件分组列表中删除该客户端信息。
由此可以看出,本发明所述的网络通信系统和方法通过将对等P2P技术与现有下载方法相结合,使得客户端可以直接从通信网络中的其他客户端直接下载所需的文件,这样一来,一方面可以大量节省服务器和带宽消耗,另一方面也能够加快客户端下载数据的速度,从而极大地增强了用户的体验。
另外,本发明所述的方法在从其他客户端下载分片数据的同时,还可以从文件服务器直接下载所需的分片数据,这样不仅可以保证从通信网络中下载的分片数据的连续性和有序性,实现在线多媒体业务,还可以避免在种子较少的情况下,下载速度较慢的问题。
再者,本发明所述的方法通过在所述文件分组列表中记录已下载同一文件的所有种子的网络类型或防火墙类型,为P2P服务器的种子管理提供了准确的信息,并且可以根据当前要下载该文件的客户端类型为该客户端选择最优的种子,进一步保证该客户端的下载速度。
附图说明
图1为现有网络通信系统中客户端从服务器下载数据的示意图;
图2为本发明所述网络通信系统中客户端从服务器下载数据的示意图;
图3为本发明所述实现多媒体文件下载的方法流程图。
具体实施方式
为使发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
本发明的核心思想是将对等互联网技术P2P(Peer to Peer)技术与文件下载技术相结合,将客户端从单一服务器下载数据的模式改变为客户端之间直接交换数据的下载模式,因而可以改变由于服务器的处理瓶颈而限制同时下载文件的客户端数目的缺陷。
另外,本发明通过将容量较大的文件进行分片,即将文件划分成若干部分,使得客户端可以同时从通信网络中的多个客户端或文件服务器下载同一文件的不同分片,可以进一步保证客户端的下载速度。同时,由于需要下载数据的客户端可以从通信网络中的其它客户端直接下载数据,因此,通信网络中同时下载数据的客户端数目越多,分布越集中,它们之间数据交互的效果就越好,从而可以大大提高数据的下载速度。
基于上述思想,本发明提供了一种网络通信系统,该网络通信系统如图2所示,主要包括:P2P服务器、文件服务器、种子描述(TPT)服务器以及一个以上的客户端。所述P2P服务器、TPT服务器以及文件服务器分别通过通信网络连接到所述一个以上的客户端,以实现客户端到所述P2P服务器、TPT服务器以及文件服务器的信息交互;通信网络中的每个客户端也通过通信网络连接到其它的客户端,以实现客户端之间的数据交换。
其中,所述P2P服务器主要负责可下载文件的发布,通过所述通信网络处理客户端的登陆、退出、下载、查询种子、心跳维护等请求;
所述文件服务器用于存储提供给用户下载的文件;
所述TPT服务器用于存储对应各个提供给用户下载的文件对应的TPT文件;
所述一个以上的客户端通过所述通信网络从TPT服务器下载所需文件对应的TPT文件,并根据所下载的TPT文件从所述通信网络中的其他客户端或文件服务器下载所需文件的各个分片数据。
在文件下载的过程中,通信网络中的客户端可以通过HTTP、FTP或其它多种通信方式从TPT服务器下载TPT文件,从所述文件服务器下载所需文件的各个分片数据,或者通过传输控制协议(TCP)或用户数据报协议(UDP)从所述通信网络中的其他客户端下载所需文件的各个分片数据。
在通过上述网络通信系统下载文件的过程中,客户端首先需要从P2P服务器发布的文件中选择需要下载的文件;然后,从TPT服务器下载该文件对应的TPT文件,从中获得该文件的相关信息,例如该文件的FileID、分片数据的数目以及每个分片数据的大小等等;接下来,根据这些相关信息向P2P服务器查询其它在线并下载了该文件的客户端信息,即向P2P服务器查询种子;在获得了种子之后,该客户端将从查询到的种子下载该文件的各个分片数据,同时,为了保证所下载文件各个分片数据的连续性和有序性,客户端还可以同时从所述文件服务器下载所需的分片数据。
下面将通过具体的实施例详细描述本发明所述实现文件下载的方法。如图3所示,本发明所述的文件下载方法具体包括以下步骤:
A、预先在P2P服务器、文件服务器以及TPT服务器发布提供给用户下载的文件。
该步骤所述的发布主要包括:
首先,根据即将提供给用户下载的文件制作每个文件的TPT文件,并将制作好的TPT文件上传到所述TPT服务器;
然后,将提供给用户下载的文件上传至所述文件服务器;
最后,在所述P2P服务器上公布即将提供给用户下载的文件,供用户通过客户端进行下载查询。
其中,所述TPT文件主要包含了该TPT文件所对应文件的标识FileID、该文件的分片数据数目和每个分片数据的大小、每个分片数据的校验值及该TPT文件自身的校验值和版本号等等。
所述文件的分片数据数目和分片大小是由该TPT文件所对应文件的大小以及用户实际选择的业务类型来确定的,例如,如果是在线收听音乐业务,则分片数据的大小通常为16K字节,此时该文件的分片数据数目等于文件大小与16K字节的商,而如果是在线收看视频业务,则分片数据的大小通常为50K字节,此时该文件的分片数据数目等于文件大小与50K字节的商。
另外,所述FileID就是对该文件的文件名进行校验后得到的校验值,其中,计算FileID、每个分片数据的校验值或TPT文件的校验值所采用的校验算法可以是多种常用的校验算法,例如哈什(HASH)运算等等。例如,在本发明的一个优选实施例中,所述FileID就是所对应文件的文件名经过HASH运算后的得到的32位整型值。
B、在用户通过客户端从已发布的文件中选择需要下载的文件时,该客户端根据所要下载的文件名到TPT服务器上下载与该文件对应的TPT文件;
在下载得到TPT文件后,所述客户端还可以进一步解析该TPT文件,并检验所下载TPT文件的正确性,若检验正确,则继续执行步骤C,否则,禁止该用户下载所述文件并结束。
所述检验为:检验该TPT文件的格式和版本是否正确。
所述检验还可以进一步包括采用相应的校验方法,例如HASH运算,对该TPT文件本身进行校验。
C、所述客户端登陆P2P服务器,P2P服务器返回唯一的用户标识(UIN)到所述客户端。
该步骤所述UIN是P2P服务器在预先设定的数值范围内顺序选择出来的,该数值范围与P2P服务器最多可以支持的在线用户数有关,例如,若一台P2P服务器最多可以10万在线用户,则UIN的取值范围可以是1~100000。
D、客户端获得UIN后,根据用户选择下载的文件,向P2P服务器发出下载请求,在所述下载请求中携带该客户端的UIN及所要下载文件的FileID。
E、P2P服务器检验该客户端的UIN及所要下载文件的FileID是否正确,同时检查该文件是否已经发布过,若UIN及FileID正确且该文件已经发布过,则执行步骤F;否则,通知客户端无法下载该文件并结束。
该步骤所述P2P服务器检验所要下载文件的FileID是否正确的方法为将所要下载文件的文件名经过HASH运算后得到的32位整型值与FileID进行比较,如果相同,则检验正确,否则检验不正确。
F、P2P服务器将该客户端的UIN加入到该文件对应的文件分组列表当中,同时返回该文件对应的下载配置参数给客户端。
所述文件分组列表简单来说就是将已经将下载所发布文件的所有客户端进行分类整理,P2P服务器会把下载同一文件的所有客户端的信息与该文件进行关联,并将关联到同一文件的所有客户端信息记录在该文件对应的文件分组列表中,供客户端进行查询。所述客户端信息包括:客户端地址、客户端所在网络的网络类型或防火墙类型等等。
该步骤所述文件对应的下载配置参数主要包括:下载时启动的线程个数、每个线程的上传和下载最大限速/最小限速、P2P上传限速、P2P下载限速、最多连接的客户端数目、查询种子的间隔时间、P2P下载到达什么速度时可以降低从文件服务器的下载速度、P2P下载到达什么速度时可以提升从文件服务器的下载速度、P2P上传限速百分比等等。
上述这些配置参数是由P2P服务器的配置文件决定的,所述配置文件通常包括默认配置和特殊配置两种类型,其中,默认配置包含了针对所有文件的通用配置参数,而特殊配置只包含了针对某些个别文件的特殊配置参数。如果所发布的文件没有对应的特殊配置文件,则P2P服务器会向客户端返回默认配置参数,如果有对应的特殊配置文件,则P2P服务器会将默认配置参数和特殊配置参数一起返回客户端。需要说明的是,P2P服务器的所有配置文件是可以动态更新的,即可以在P2P服务器运行时进行修改或更新。
G、客户端收到该文件对应的下载配置参数后,发送自身的UIN及所要下载文件的FileID到P2P服务器,向P2P服务器查询其它下载该文件的客户端信息,即向P2P服务器查询种子。
客户端在发送查询种子请求时,还可以进一步发送该客户端的网络类型或防火墙类型到所述P2P服务器,请求P2P服务器根据该客户端的网络类型查询同一分组中具有相同网络类型的其它客户端信息。
H、P2P服务器根据来自该客户端的UIN、FileID返回该文件所对应文件分组列表中其它客户端的信息,即向所述客户端返回其它种子信息。
若客户端查询种子的请求中包含了该客户端的网络类型,则P2P服务器将进一步根据该客户端的网络类型或防火墙类型将该文件分组列表中与所述客户端具有相同网络类型或防火墙类型的客户端信息,即种子信息发送给所述客户端。这样一来,所述客户端和这些种子进行数据交互时的连通性就很高,同时数据传输的速度也将更快。
I、所述客户端尝试与所述种子建立连接,并查询这些种子中是否存在自身所需的文件或该文件的分片数据,如果有,则根据TPT文件中的下载配置参数与所述种子交换数据,得到所要下载文件的各个分片数据。
在该步骤中,所述客户端将通过TCP/UDP方式从所述种子交换所需的各个分片数据。
在交换到每个分片数据后,客户端还将进一步根据从步骤B所下载TPT文件中解析得到的每个分片数据的校验值对交换来的分片数据进行校验,如果校验正确,则接收所述分片数据;否则,丢弃所述分片数据。
在该步骤中,由于从各个种子交换来的分片数据是随机排列的,因此,为了得到完整的文件,客户端还需要将交换来的分片数据重新按照顺序组合成所要下载的文件。
从上述过程可以看出,采用P2P技术后,可以有效地解决服务器的瓶颈问题,同时由于所有在线的客户端都会将自身下载的文件共享给通信网络的其他客户端,因此,在通常情况下通信网络中将会有足够的种子存在,并且下载同一文件的客户端数目越多,分布越集中,它们之间数据交互的效果就越好,这样,使得一台服务器可以支持大量用户同时下载,并且能够保证所有用户的下载速度。
另外,通过在所述文件分组列表中记录已下载同一文件的所有种子的网络类型或防火墙类型,为P2P服务器的种子管理提供了准确的信息,并且可以根据当前要下载该文件的客户端类型为该客户端选择最优的种子,进一步保证该客户端的下载速度。
但是,由于上述方法交换来的分片数据是随机排列的,因此,只有客户端在下载了文件的所有分片数据之后,才能获得正确、完整的文件,这对一般的文件下载业务来将是可以接受的,但是这会给在线多媒体业务,例如在线收听音乐或在线收看视频节目等,带来较大的延时,影响用户的体验。
因此,在本发明的一个优选实施例中,为了保证客户端所下载数据分片的连续有序,客户端在与种子进行分片数据交换的同时,也会根据P2P服务器返回的下载配置参数启动常见的HTTP或FTP下载方式,从文件服务器上下载需要的分片数据,并通过一定的算法和通讯机制保证客户端所下载数据分片的连续性和有序性。
例如,在线收听音乐的过程中,对于用于正在收听的音乐,如果该音乐文件还没有下载完全,则该用户的客户端会优先使用HTTP下载的方式,从文件服务器获得该音乐播放过程中所需的音乐文件分片数据,同时,对于尚未播放的音乐文件或者音乐文件的分片数据,仍可以采用P2P下载的方式来下载。
上述这种下载方法,既加快了下载的速度,减少了文件服务器的负荷,同时又保证了所下载文件的连续有序。
其中,客户端从文件服务器下载分片数据的比例由P2P服务器返回的下载配置参数控制,并可以根据实际情况进行动态调整,从而保证在绝大多数情况下,多数的分片数据是通过与其他客户端交换获得的,从而可以节省大量的服务器带宽资源。
上述优选实施例所述的方法可以支持大量用户同时享受在线多媒体业务,例如在线收听音乐,或在线收看视频节目,极大地满足用户对在线多媒体业务服务质量的需求。
在本发明所述的方法中,为了维护客户端与P2P服务器之间的连接,一旦客户端登陆P2P服务器,就会定时发送心跳信号到P2P服务器,同时P2P服务器也会定时检测来自所有已登陆的客户端的心跳信号,如超时未接收到心跳信号,则踢出对应的客户端,释放为该客户端分配的资源,并从相关的文件分组列表中删除该客户端信息。
另外,在线多媒体业务结束后,例如在用户收听完音乐或收看完视频节目后,客户端会向P2P服务器发送登出(Logout)请求,然后主动退出。在收到客户端的Logout请求后,P2P服务器随即释放为客户端分配的资源,并从相关的文件分组列表中删除该客户端信息。

Claims (14)

1、一种实现文件下载的网络通信系统,其特征在于,该网络通信系统包括:通过通信网络连接的对等互联网技术P2P服务器、文件服务器、种子描述TPT服务器以及一个以上的客户端;
其中,所述P2P服务器用于向所述一个以上的客户端公布可下载的文件,并通过所述通信网络处理客户端的登陆、退出、下载、查询种子请求;
所述文件服务器用于存储提供给客户端下载的文件;
所述TPT服务器用于存储提供给客户端下载的文件对应的TPT文件;
所述一个以上的客户端通过所述通信网络从所述TPT服务器下载所需文件对应的TPT文件,并根据所下载的TPT文件,通过P2P协议或其他通讯协议从所述通信网络中的其他客户端或所述文件服务器下载所需的文件;所述客户端发送该客户端的网络类型或防火墙类型到所述P2P服务器;
所述P2P服务器还用于根据该客户端的网络类型或防火墙类型将所述文件分组列表中与所述客户端具有相同网络类型或防火墙类型的客户端信息发送给所述客户端。
2、如权利要求1所述的网络通信系统,其特征在于,所述一个以上的客户端通过超文本传输协议或文件传输协议从TPT服务器下载所需文件对应的TPT文件。
3、如权利要求1所述的网络通信系统,其特征在于,所述一个以上的客户端通过传输控制协议或用户数据报协议从通信网络中的其他客户端下载所需的文件或通过超文本传输协议或文件传输协议从所述文件服务器下载所需的文件。
4、一种实现文件下载的方法,适用于包括通过通信网络连接的对等P2P服务器、文件服务器、种子描述TPT服务器以及一个以上的客户端的网络通信系统,其特征在于,所述方法包括:
a、在用户通过客户端从发布的文件中选择需要下载的文件后,该客户端根据用户所选择的文件名到TPT服务器上下载与该文件对应的、包含该文件标识FileID的TPT文件;
b、所述客户端登陆P2P服务器,获取该客户端的用户标识UIN;
c、所述客户端向P2P服务器发出下载及种子查询请求,并在所述下载请求中携带该客户端的UIN及步骤a所述的FileID;发送该客户端的网络类型或防火墙类型到所述P2P服务器;
d、P2P服务器将该客户端的UIN加入到该FileID对应的文件分组列表当中,根据该客户端的网络类型或防火墙类型将所述文件分组列表中与所述客户端具有相同网络类型或防火墙类型的客户端信息发送给所述客户端;
e、所述客户端根据P2P服务器发送的与所述客户端具有相同网络类型或防火墙类型的客户端信息与这些客户端建立连接,并通过P2P协议或其他通讯协议从这些客户端或文件服务器交换所需文件的各个分片数据。
5、如权利要求4所述的方法,其特征在于,步骤a所述发布包括:
根据即将提供给用户下载的文件制作每个文件对应的TPT文件,并将制作好的TPT文件上传到TPT服务器;
将提供给用户下载的文件上传至文件服务器;
在P2P服务器上公布即将提供给用户下载的文件,供用户通过客户端进行下载查询。
6、如权利要求4所述的方法,其特征在于,所述TPT文件进一步包括所对应文件的分片数据数目和每个分片数据的大小、每个分片数据的校验值及该TPT文件的校验值和版本号;
步骤a所述客户端下载TPT文件后进一步包括:检验所下载TPT文件的格式和版本是否正确,如果检验正确,则继续执行步骤b;否则,禁止该用户下载所述文件并结束;
步骤e在客户端从通信网络中的与所述客户端具有相同网络类型或防火墙类型的客户端交换到分片数据后,进一步根据每个分片数据的校验值对交换到的分片数据进行校验,如果校验正确,则接收;否则,丢弃该分片数据。
7、如权利要求6所述的方法,其特征在于,所述校验采用HASH运算。
8、如权利要求4所述的方法,其特征在于,在步骤c之后进一步包括:P2P服务器检验该客户端的UIN及所要下载文件的FileID是否正确,同时检查该文件是否已经发布过,若UIN及FileID正确且该文件已经发布过,则继续执行步骤d;否则,通知客户端无法下载该文件并结束。
9、如权利要求8所述的方法,其特征在于,所述检验所要下载文件的FileID是否正确为:将所要下载文件的文件名经过HASH运算后得到的32位整型值与FileID进行比较,如果相同,则检验正确,否则检验不正确。
10、如权利要求4所述的方法,其特征在于,在步骤d,所述P2P服务器进一步将所接收FileID对应文件的下载配置参数返回所述客户端;
步骤e所述交换为:所述客户端根据P2P返回的下载配置参数从与所述客户端具有相同网络类型或防火墙类型的客户端交换得到所需文件的各个分片数据。
11、如权利要求10所述的方法,其特征在于,所述的下载配置参数是由P2P服务器的配置文件决定的,主要包括:下载时启动的线程个数、每个线程的上传和下载最大限速/最小限速、P2P上传限速、P2P下载限速、最多连接的客户端数目、查询种子的间隔时间、P2P下载到达什么速度时可以降低从所述文件服务器下载的速度、P2P下载到达什么速度时可以提升从所述文件服务器下载的速度、P2P上传限速百分比。
12、如权利要求4所述的方法,其特征在于,在步骤e,所述客户端交换得到所有的分片数据后进一步包括:将交换来的分片数据按照顺序重新组合成所要下载的文件。
13、如权利要求4所述的方法,其特征在于,所述方法进一步包括:
在客户端在登陆P2P服务器之后,定时发送心跳信号到P2P服务器;
P2P服务器定时检测来自所有已登陆的客户端的心跳信号,如超时未接收到心跳信号,则踢出对应的客户端,释放为该客户端分配的资源,并从相关的文件分组列表中删除该客户端信息。
14、如权利要求4所述的方法,其特征在于,所述方法进一步包括:P2P服务器在收到客户端的退出请求后,释放为客户端分配的资源,并从相关的文件分组列表中删除该客户端信息。
CN 200510095833 2005-09-02 2005-09-02 实现文件下载的网络通信系统及方法 Active CN100527672C (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN 200510095833 CN100527672C (zh) 2005-09-02 2005-09-02 实现文件下载的网络通信系统及方法
PCT/CN2006/002226 WO2007025474A1 (fr) 2005-09-02 2006-08-30 Systeme de communication de reseau et procede de telechargement de fichier

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200510095833 CN100527672C (zh) 2005-09-02 2005-09-02 实现文件下载的网络通信系统及方法

Publications (2)

Publication Number Publication Date
CN1925403A CN1925403A (zh) 2007-03-07
CN100527672C true CN100527672C (zh) 2009-08-12

Family

ID=37808471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510095833 Active CN100527672C (zh) 2005-09-02 2005-09-02 实现文件下载的网络通信系统及方法

Country Status (2)

Country Link
CN (1) CN100527672C (zh)
WO (1) WO2007025474A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100556129C (zh) * 2006-08-22 2009-10-28 腾讯科技(深圳)有限公司 一种对等连接流媒体直播系统和装置
CN101146107B (zh) * 2007-09-27 2011-10-12 深圳市迅雷网络技术有限公司 一种下载数据的方法及装置
CN101163156B (zh) * 2007-09-27 2010-07-21 腾讯科技(深圳)有限公司 获取网络资源的方法、客户端与系统
CN101141482B (zh) * 2007-09-29 2012-01-18 腾讯科技(深圳)有限公司 网络资源管理系统及方法
CN101170371B (zh) * 2007-11-30 2010-12-29 中兴通讯股份有限公司 一种p2p点播中客户端数据请求优化方法及系统
CN101471855B (zh) * 2007-12-29 2012-12-12 华为终端有限公司 一种通信设备及其应用方法、系统
CN101945089B (zh) * 2009-07-03 2015-08-19 北京中企开源信息技术有限公司 数字电影包的发行方法及发行系统
CN101631141B (zh) * 2009-08-19 2012-07-04 腾讯科技(深圳)有限公司 一种p2p系统及p2p系统中的网络资源管理方法
CN102025444A (zh) * 2009-09-09 2011-04-20 腾讯科技(深圳)有限公司 资源发布方法、资源下载方法及数据校验系统
CN102055786B (zh) * 2009-11-06 2014-12-24 腾讯科技(深圳)有限公司 一种文件下载的方法、服务器、下载端和系统
CN101795399B (zh) * 2010-03-10 2016-04-13 深圳市同洲电子股份有限公司 一种监控代理系统、车载监控设备及车载数字监控系统
CN101840345A (zh) * 2010-05-06 2010-09-22 深圳市九洲电器有限公司 一种配置参数的识别方法、系统及嵌入式设备
CN103164502A (zh) * 2011-09-13 2013-06-19 吉菲斯股份有限公司 网络中的在线内容的管理
CN103023937A (zh) * 2011-09-26 2013-04-03 北大方正集团有限公司 一种网络文件的分发方法及系统
CN102882799B (zh) * 2012-09-13 2017-09-01 曙光信息产业(北京)有限公司 流量可控的集群部署配置系统与方法
CN103491102A (zh) * 2013-09-30 2014-01-01 天脉聚源(北京)传媒科技有限公司 互联网音视频稳定性监控方法、系统及装置
CN103716719B (zh) * 2013-12-02 2017-03-08 乐视云计算有限公司 一种多媒体文件的下载方法及用户终端
CN105227680A (zh) * 2015-10-26 2016-01-06 广东佳学信息科技有限公司 一种智能设备文件下载有效性控制方法
CN105635277A (zh) * 2015-12-30 2016-06-01 北京京东尚科信息技术有限公司 提供升级包的方法与装置以及升级客户端的方法与装置
CN106657383B (zh) * 2017-01-12 2021-03-19 腾讯科技(深圳)有限公司 数据下载方法及相关设备
CN108833552A (zh) * 2018-06-22 2018-11-16 邓德雄 一种混杂模式的p2p内容分发系统
CN111343225B (zh) * 2018-12-19 2024-04-09 三六零科技集团有限公司 一种文件处理方法和装置
CN110062280A (zh) * 2019-04-23 2019-07-26 湖南快乐阳光互动娱乐传媒有限公司 一种面向p2p的视频缓存管理、播放方法、系统及介质
CN110333947B (zh) * 2019-05-23 2023-06-16 深圳市腾讯网域计算机网络有限公司 一种游戏应用的分包资源加载方法、装置、设备及介质
CN113051456A (zh) * 2021-05-11 2021-06-29 北京字节跳动网络技术有限公司 请求处理方法、装置、电子设备和计算机可读介质
CN114039971A (zh) * 2021-11-11 2022-02-11 北京神舟航天软件技术股份有限公司 Bs模式下基于文件流的大文件并发传输方法
CN115567547A (zh) * 2022-08-18 2023-01-03 网易(杭州)网络有限公司 一种镜像分发方法、系统和设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BitTorrent下载技术研究. 王珏.科技广场. 2005 *
BitTorrent原理分析及改进. 孔彬,徐良贤.计算机工程 增刊,第30卷. 2004 *

Also Published As

Publication number Publication date
WO2007025474A1 (fr) 2007-03-08
CN1925403A (zh) 2007-03-07

Similar Documents

Publication Publication Date Title
CN100527672C (zh) 实现文件下载的网络通信系统及方法
EP3595268B1 (en) Streaming media resource distribution method, system, edge node and central dispatching system
CN101641685B (zh) 用对等模型和客户端服务器模型传送文件到客户端的方法
EP3439239B1 (en) Data transmission method and system based on peer-to-peer network
US8090813B2 (en) Methods and apparatus for data transfer
US9173006B2 (en) Method for live broadcasting in a distributed network and apparatus for the same
US9432452B2 (en) Systems and methods for dynamic networked peer-to-peer content distribution
US8214427B2 (en) System and method for distributing a map of content available at multiple receivers
CN103430489B (zh) 内容分发网络中文件下载方法、装置和系统
CN110661871B (zh) 一种数据传输方法及mqtt服务器
US20130144984A1 (en) Systems and Methods for Connection Pooling for Video Streaming in Content Delivery Networks
CN104137505A (zh) 网络发起的内容流式传输控制
CN107181804B (zh) 资源的下载方法和装置
CN109729397A (zh) 一种推流方法、系统及服务器
CN106330997A (zh) 一种用于移动终端应用的内容分发的方法和系统
CN101640699A (zh) P2p流媒体系统及其中的流媒体下载方法
US20060212595A1 (en) Method and computer-readable medium for associating sequence numbers with data blocks for distribution of data in a peer-to-peer network
CN109600388A (zh) 数据传输方法、装置、计算机可读介质及电子设备
CN101800731B (zh) 网络传输管理服务器、网络传输管理方法及网络传输系统
US20160381127A1 (en) Systems and methods for dynamic networked peer-to-peer content distribution
CN107222561A (zh) 一种传输层反向代理方法
CN105872856A (zh) 一种流媒体文件分发方法及系统
CN110392020B (zh) 一种流媒体资源的传输方法及系统
CN102137140A (zh) 一种流服务处理方法、装置及系统
US20240106890A1 (en) Peer-to-peer network scheduling method and system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190806

Address after: 518057 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.

TR01 Transfer of patent right