CN102231761A - 一种p2p数据交互方法 - Google Patents

一种p2p数据交互方法 Download PDF

Info

Publication number
CN102231761A
CN102231761A CN2011102307519A CN201110230751A CN102231761A CN 102231761 A CN102231761 A CN 102231761A CN 2011102307519 A CN2011102307519 A CN 2011102307519A CN 201110230751 A CN201110230751 A CN 201110230751A CN 102231761 A CN102231761 A CN 102231761A
Authority
CN
China
Prior art keywords
server
peer
tracker
master
terminal
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.)
Pending
Application number
CN2011102307519A
Other languages
English (en)
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.)
LeTV Information Technology Beijing Co Ltd
Original Assignee
LeTV Information Technology Beijing 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 LeTV Information Technology Beijing Co Ltd filed Critical LeTV Information Technology Beijing Co Ltd
Priority to CN2011102307519A priority Critical patent/CN102231761A/zh
Publication of CN102231761A publication Critical patent/CN102231761A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明提供一种p2p数据交互方法,交互方包括tracker服务器、主服务器master、tracker服务器选择服务器TS、终端peer。终端peer登录到tracker服务器,上报自身的节点信息,tracker根据终端的请求从终端peer数据库、资源数据库中查询到符合要求的其他终端peer;tracker服务器统计将自身服务器的运行状态,每隔一时间周期将自身当前的节点负载数上报到Master。该交互方法能够高效地提高p2p的数据交互能力,并且不需要对现有系统做大规模的修改。

Description

一种p2p数据交互方法
技术领域
本发明涉及一种p2p数据交互方法,属于计算机网络、流媒体、视频处理等多个交叉领域。
背景技术
P2P(Peer-to-Peer)又被称为“点对点”技术,其充分利用客户的上行带宽,在下行占用的同时也占用上行带宽,为其他用户提供资源,实现网络的加速和扩展,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。p2p技术去除了中心服务器的思想,最大程度利用可用带宽以达到高速的数据传送。
现有技术中,p2p系统中包含多个终端节点peer,代表客户端节点,主要功能是视频播放(直播、点播)以及数据下载。p2p系统中还存在一类tracker服务器,主要用于记录peer的位置、资源信息,在内存中维护相关的数据库,同时提供peer查询、资源查询以及NAT穿越的相关协议转发功能。类似于目录服务。以及TS(tracker selector)服务器,其主要功能是提供peer对tracker的选择。同时在p2p系统中利用切片服务器对视频流进行切片,生成一个个的小视频文件(仅直播系统使用),切片服务器支持对MMS、RTSP、RTMP协议流进行切片。
上述NAT穿越涉及TCP/IP网络中的一个常见问题,即在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。其包括几种常见的方式:NAT/ALG 方式、MIDCOM 方式、STUN 方式、TURN方式等等。
服务器是否具备水平扩展能力是衡量一套系统的重要指标。对于大规模、超大规模的p2p运营系统来说尤其如此。然而,目前使用最为广泛p2p系统都是采用基于CDN(内容分发网络)的网络加速方案。其服务器的水平扩展能力受到很大限制,是现有的p2p系统面临的一个问题。
发明内容
为了解决上述技术问题,本发明提供一种p2p数据交互方法,属于对现有流媒体直播系统架构方法的一种改进。所述交互方包括tracker服务器、主服务器master、tracker服务器选择服务器TS、终端peer,其特征在于,所述tracker服务器与终端peer交互的过程包括:
步骤一、终端peer登录到tracker服务器,上报自身的节点信息,tracker服务器将收到的节点信息存入终端peer信息数据库;
步骤二、终端peer将自身拥有的所有资源上报到tracker服务器,tracker服务器将收到的频道信息存入资源数据库;
步骤三、终端peer会向tracker服务器发起播放某个视频的请求,请求拥有同一视频资源的其他终端peer;
步骤四、tracker服务器收到该请求后,从终端peer数据库、资源数据库中查询到符合要求的其他终端peer,将它们的节点信息反馈给提出请求的终端peer。
更进一步,所述tracker服务器与主服务器Master交互的过程包括:
步骤A、tracker服务器启动时将自身的地址和最大节点负载数上报到主服务器Master;
步骤B、tracker服务器统计将自身服务器的运行状态,每隔一时间周期将自身当前的节点负载数上报到Master。
在一个更全面的实施方式中,所述终端peer之间交互的过程包括:
当终端peer和对端终端peer建立连接前,进行TCP NAT穿越;
tracker服务器将提出穿越请求的终端peer信息告知对端终端peer,然后两个终端peer开始尝试NAT穿越;
若穿越成功,则两个终端peer可以建立连接,随后就开始进行点对点的数据传输。
一个可选的实施方式中,TS启动时与Master建立TCP连接,定期向Master申请所有tracker服务器信息,并存入数据库;
所述终端TS与终端peer之间交互的过程包括:
TS接收终端peer发送的tracker服务器请求报文,从数据库里查询节点负载最大、且未超过最大负载限度的tracker服务器,将其地址反馈给提出请求的终端peer。
另一个可选的实施方式中,所述终端Master与TS之间交互的过程包括:
在一个TCP套接口描述符上监听所有tracker服务器的TCP连接请求,与每个tracker服务器都建立一条TCP连接,接收每个tracker服务器上报的其自身的信息并存入数据库,所述信息包括tracker服务器的地址、最大节点负载数、当前节点负载数;
在另一个TCP套接口描述符上监听所有TS的TCP连接请求,与每个TS都建立一条TCP连接,接收每个TS发来的tracker服务器请求,并从数据库里取出所有tracker服务器的信息,全部反馈给提出请求的TS。
附图说明
图1是可无限水平扩展的p2p服务架构;
图2是tracker服务器与其他设备的交互流程图;
图3是TS与其他设备的交互流程图;
图4是主服务器Master与其他设备的交互流程图。
具体实施方式
为了更好地阐述本发明的宗旨,以下结合具体实施方式来更详细地说明本发明提供的技术方案。
附图1描述了本发明提出的可无限水平扩展的p2p服务架构,所述架构可以理解为一种新型的网络结构,其包括一p2p系统,以及一传统网络视频系统。所述传统网络视频系统包括视频采集设备,流媒体服务器,mms+cms系统(mms 为多媒体服务器MultiMediaServer;CMS是内容管理系统Content Management System),以及多个CDN(内容分发网络)。P2p系统包括一直播源服务器,一监控、统计、管理服务器、一个或多个tracker服务器,一个或多个TS(tracker selector)服务器,以及一数据校验服务器checksum,一个主服务器master。直播源服务器进一步包括一切片服务器与一web服务器。
本领域的技术人员可以预见到,在该可无限水平扩展的p2p架构中可以拥有多个终端peer进行p2p操作。
附图1中使用带有标号的连线表示各实体之间的报文交互,连线的箭头表示报文的流向。后文将以<标号,具体协议类型>表示实体间的报文交互。在该p2p架构中,传统网络视频系统对点播的支持.flv、.mp4等格式的视频文件存储在点播源mms+cms系统上,点播源将视频文件分发到各CDN节点上,即<4,HTTP>,即mms+cms系统通过http协议与CDN通信。peer直接通过HTTP到CDN上获取数据并播放,即<5,HTTP>。
所述传统网络视频系统中包含一视频采集设备,其可以是直播摄像机,或者其他的视频文件生成系统,用于视频文件的采集。视频采集设备通过RTMP将视频流存入流媒体服务器,即<1,RTMP>,流媒体服务器再将视频流存入直播源,即<2,RTMP>,直播源服务器中的切片服务器程序将视频流分片,以每单位长度的视频流作为单独的小视频文件存储,即直播源中也运行着存储一个个小视频文件的web服务器,在一个优选的实施方式中,每个切片长度为2-10兆字节,在另一个可选的实施方式中,每个切片的播放时间为8-10分钟。同时直播源将每个小视频文件通过http协议分发到所有CDN节点上,即<3,HTTP>,peer通过HTTP到CDN上获取数据并播放,即<5,HTTP>。
从上述技术方案可以看出,如果不开启p2p系统,那么peer也能正常下载视频数据并播放,只是peer不能贡献自己的带宽,也不能从其它peer获得数据,即与传统的C/S架构一样。
依然参见图1,在该p2p架构中,p2p系统中每台tracker将自身的地址与peer负载数定时上报到Master,即<6,基于TCP的自定义协议>,Master在内存中维护关于tracker的数据库,每台TS定时向Master申请所有tracker的信息,即<7,基于TCP的自定义协议>。peer可以根据规则计算自己正在从CDN下载的视频资源的MD5,并与通过DNS智能解析,即<8,DNS>得到的一个TS通信,即<9,基于UDP的自定义协议>,通过TS选取一个tracker服务器,之后该peer就能通过tracker服务器获得拥有相同视频资源(MD5相同)的其它peer的位置信息,即<10,基于UDP的自定义协议>,然后与这些peer建立数据通信链路。优选地,可以采用TCP NAT穿越方式,其间需要与tracker中的NAT Server进程通信,即<10,基于TCP的自定义协议>。链路建立后,peer与peer可以相互获取自己需要的数据,即<13,自定义的点对点传输协议>。
为了避免脏数据在p2p网络中传输,引入数据校验服务器checksum对传输的文件数据块进行校验。
checksum服务器会到点播源上获取所有视频文件,即<11,HTTP>,对每个视频文件的每单位数据块做CRC32计算并生成xml文件,xml文件里存储该视频文件的所有单位数据块的CRC32值,然后将所有xml文件分发到CDN上,即<12,HTTP>。peer从CDN下载视频文件的同时,也下载相应的xml文件,当将某一块数据传送到其他peer之前,先在本地计算该块数据的CRC32值,并与xml中保存的该块数据的CRC32值相比较,若相等,则说明该数据块没有损坏,可以传送给其他peer;否则是脏数据,禁止传输。需要说明的是,该checksum服务器不是必须的,其只是用于保证网络中传输的数据的干净性。
监控+统计+管理服务器的作用是集中管理p2p网络中的所有tracker、所有TS、Master、直播切片服务器、checksum服务器,并监控它们的运行状态,即<14,自定义协议>。
进一步参见附图2-4说明本发明提出的一种p2p服务架构中数据交互方法,交互方包括tracker、master、TS、peer。参见附图2,附图2描述了tracker与peer、master、TS的交互方法。tracker进程创建三个线程,每个线程负责不同的工作: 
与peer交互的线程:
peer登录到tracker,上报自身的节点信息,tracker将收到的节点信息存入peer信息数据库;
peer将自身拥有的所有资源(即频道、channel)上报到tracker,tracker将收到的频道信息存入资源数据库;
当peer播放某个视频时,会向tracker发起请求,请求拥有同一视频资源的其他peer。tracker收到该请求后,根据规则从peer数据库、资源数据库中查询到符合要求的其他peer,将它们的节点信息反馈给提出请求的peer;
当peer和对端peer建立连接前,需要先进行TCP NAT穿越,tracker将提出穿越请求的peer信息告知对端peer,然后两个peer开始尝试NAT穿越;
若穿越成功,则两个peer可以建立连接,随后就开始进行点对点的数据传输。
与Master交互的线程:
tracker启动时会将自身的地址和最大节点负载数上报到Master;
随后,tracker会每隔一段周期就将自身当前的节点负载数上报到Master,其包含统计信息上报线程,该线程负责定期将自身服务器的运行状态上报到管理服务器,方便管理服务器对其的监控。
如附图3所示,TS进程为单线程模式,在同一线程里进行两个网络连接上的数据通信:
与Master的TCP连接:
TS启动时与Master建立TCP连接,定期向Master申请所有tracker信息,并存入数据库。
与peer的UDP连接:
接收peer发送的tracker请求报文,从数据库里查询节点负载最大、且未超过最大负载限度的tracker,将其地址反馈给提出请求的peer。
进一步参见附图4,Master进程为单线程模式,在同一线程里监听两个TCP连接:
与tracker的TCP连接:
在一个TCP套接口描述符上监听所有tracker的TCP连接请求,与每个tracker都建立一条TCP连接,接收每个tracker上报的其自身的信息(地址、最大节点负载数、当前节点负载数)并存入数据库。
与TS的TCP连接:
在另一个TCP套接口描述符上监听所有TS的TCP连接请求,与每个TS都建立一条TCP连接,接收每个TS发来的tracker请求,并从数据库里取出所有tracker的信息,全部反馈给提出请求的TS。
本发明提出的p2p系统最充分的利用成熟的技术,极大的简化系统,子系统之间耦合尽量低,尽量减少对系统依赖,追求系统整体最优,而非单点最优,从而达到了p2p服务器架构可无限水平扩展的效果。 
本发明所述的方法和系统并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。

Claims (5)

1.一种p2p数据交互方法,交互方包括tracker服务器、主服务器master、tracker选择服务器TS、终端peer,其特征在于,所述tracker服务器与终端peer交互的过程包括:
步骤一、终端peer登录到tracker服务器,上报自身的节点信息,tracker服务器将收到的节点信息存入终端peer信息数据库;
步骤二、终端peer将自身拥有的所有资源上报到tracker服务器,tracker服务器将收到的频道信息存入资源数据库;
步骤三、终端peer向tracker服务器发起播放某个视频的请求,请求拥有同一视频资源的其他终端peer;
步骤四、tracker服务器收到该请求后,从终端peer数据库、资源数据库中查询到符合要求的其他终端peer,将它们的节点信息反馈给提出请求的终端peer。
2.如权利要求1所述的方法,其特征在于:所述tracker服务器与主服务器Master交互的过程包括:
步骤A、tracker服务器启动时将自身的地址和最大节点负载数上报到主服务器Master;
步骤B、tracker服务器统计将自身服务器的运行状态,每隔一时间周期将自身当前的节点负载数上报到Master。
3.如权利要求1所述的方法,其特征在于:所述终端peer之间交互的过程包括:
当终端peer和对端终端peer建立连接前,进行TCP NAT穿越;
tracker服务器将提出穿越请求的终端peer信息告知对端终端peer,然后两个终端peer开始尝试NAT穿越;
若穿越成功,则两个终端peer可以建立连接,随后就开始进行点对点的数据传输。
4.如权利要求1所述的方法,其特征在于:所述TS与Master之间交互的过程包括:
TS启动时与Master建立TCP连接,定期向Master申请所有tracker服务器信息,并存入数据库;
所述TS与终端peer之间交互的过程包括:
TS接收终端peer发送的tracker服务器请求报文,从数据库里查询节点负载最大、且未超过最大负载限度的tracker服务器,将其地址反馈给提出请求的终端peer。
5.如权利要求1所述的方法,其特征在于:所述终端Master与TS之间交互的过程包括:
在一个TCP套接口描述符上监听所有tracker服务器的TCP连接请求,与每个tracker服务器都建立一条TCP连接,接收每个tracker服务器上报的其自身的信息并存入数据库,所述信息包括tracker服务器的地址、最大节点负载数、当前节点负载数;
在另一个TCP套接口描述符上监听所有TS的TCP连接请求,与每个TS都建立一条TCP连接,接收每个TS发来的tracker服务器请求,并从数据库里取出所有tracker服务器的信息,全部反馈给提出请求的TS。
CN2011102307519A 2011-08-12 2011-08-12 一种p2p数据交互方法 Pending CN102231761A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011102307519A CN102231761A (zh) 2011-08-12 2011-08-12 一种p2p数据交互方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011102307519A CN102231761A (zh) 2011-08-12 2011-08-12 一种p2p数据交互方法

Publications (1)

Publication Number Publication Date
CN102231761A true CN102231761A (zh) 2011-11-02

Family

ID=44844293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011102307519A Pending CN102231761A (zh) 2011-08-12 2011-08-12 一种p2p数据交互方法

Country Status (1)

Country Link
CN (1) CN102231761A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103813386A (zh) * 2012-11-08 2014-05-21 现代摩比斯株式会社 利用周边车辆提供信息的信道负载测定方法及装置
CN105392025A (zh) * 2015-12-11 2016-03-09 合一网络技术(北京)有限公司 用户侧带宽聚合的方法、设备和内容分发系统
CN105577646A (zh) * 2015-12-11 2016-05-11 合一网络技术(北京)有限公司 用户侧带宽聚合的方法、设备和内容分发系统
WO2017107462A1 (zh) * 2015-12-21 2017-06-29 乐视控股(北京)有限公司 基于p2p网络的数据处理方法、装置及系统
CN107645528A (zh) * 2016-07-22 2018-01-30 上海云熵网络科技有限公司 集群式透网服务的处理系统与方法
CN108810609A (zh) * 2017-04-27 2018-11-13 深圳市优朋普乐传媒发展有限公司 一种存储管理方法、设备及系统
CN109644287A (zh) * 2016-08-19 2019-04-16 艾维舒尔有限责任公司 用于对等服务器网络的视频负载均衡系统
CN112152992A (zh) * 2020-07-21 2020-12-29 北京天顶星智能信息技术有限公司 一种端到端的数据安全传输网络通信方法及装置
CN113747252A (zh) * 2020-05-29 2021-12-03 北京金山云网络技术有限公司 一种多媒体资源的传输方法、装置和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101047696A (zh) * 2006-03-27 2007-10-03 互联天下科技发展(深圳)有限公司 一种网络流媒体数据播放方法和系统
US20090083812A1 (en) * 2007-01-19 2009-03-26 Beijing Funshion Online Technologies Ltd. Method and apparatus for controlling on-demand play of media files based on P2P protocols
CN101714987A (zh) * 2009-11-16 2010-05-26 中国电信股份有限公司 P2p播放方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101047696A (zh) * 2006-03-27 2007-10-03 互联天下科技发展(深圳)有限公司 一种网络流媒体数据播放方法和系统
US20090083812A1 (en) * 2007-01-19 2009-03-26 Beijing Funshion Online Technologies Ltd. Method and apparatus for controlling on-demand play of media files based on P2P protocols
CN101714987A (zh) * 2009-11-16 2010-05-26 中国电信股份有限公司 P2p播放方法及系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103813386A (zh) * 2012-11-08 2014-05-21 现代摩比斯株式会社 利用周边车辆提供信息的信道负载测定方法及装置
CN103813386B (zh) * 2012-11-08 2018-08-24 现代摩比斯株式会社 利用周边车辆提供信息的信道负载测定方法及装置
CN105392025A (zh) * 2015-12-11 2016-03-09 合一网络技术(北京)有限公司 用户侧带宽聚合的方法、设备和内容分发系统
CN105577646A (zh) * 2015-12-11 2016-05-11 合一网络技术(北京)有限公司 用户侧带宽聚合的方法、设备和内容分发系统
CN105392025B (zh) * 2015-12-11 2018-09-07 合一网络技术(北京)有限公司 用户侧带宽聚合的方法、设备和内容分发系统
CN105577646B (zh) * 2015-12-11 2019-01-15 合一网络技术(北京)有限公司 用户侧带宽聚合的方法、设备和内容分发系统
WO2017107462A1 (zh) * 2015-12-21 2017-06-29 乐视控股(北京)有限公司 基于p2p网络的数据处理方法、装置及系统
CN107645528A (zh) * 2016-07-22 2018-01-30 上海云熵网络科技有限公司 集群式透网服务的处理系统与方法
CN109644287A (zh) * 2016-08-19 2019-04-16 艾维舒尔有限责任公司 用于对等服务器网络的视频负载均衡系统
CN108810609A (zh) * 2017-04-27 2018-11-13 深圳市优朋普乐传媒发展有限公司 一种存储管理方法、设备及系统
CN113747252A (zh) * 2020-05-29 2021-12-03 北京金山云网络技术有限公司 一种多媒体资源的传输方法、装置和系统
CN112152992A (zh) * 2020-07-21 2020-12-29 北京天顶星智能信息技术有限公司 一种端到端的数据安全传输网络通信方法及装置

Similar Documents

Publication Publication Date Title
CN102231762B (zh) 一种可以无限水平扩展的p2p服务器系统
CN102231761A (zh) 一种p2p数据交互方法
Li et al. Inside the new coolstreaming: Principles, measurements and performance implications
Liu et al. A survey on peer-to-peer video streaming systems
Sentinelli et al. Will IPTV ride the peer-to-peer stream?[Peer-to-Peer Multimedia Streaming]
CN101141459A (zh) 使用http与p2p相结合实现数据传输或流媒体传输的方法
WO2013178010A1 (zh) 一种多媒体内容分发方法、设备及系统
Shen et al. A DHT-aided chunk-driven overlay for scalable and efficient peer-to-peer live streaming
CN102291458B (zh) 一种p2p服务器架构方法
Bertinat et al. Goalbit: The first free and open source peer-to-peer streaming network
Ghareeb et al. P2PWeb: A Client/Server and P2P hybrid architecture for content delivery over internet
Zeng et al. A dynamic live streaming service architecture integrated sensing and control
Chen et al. Zebroid: using IPTV data to support STB-assisted VoD content delivery
KR20090076719A (ko) 피어투피어 오버레이 네트워크 환경에서의 콘텐츠 공유시스템 및 그 방법
Li et al. Measurement study on pplive based on channel popularity
Meskovic et al. Content delivery architectures for live video streaming: hybrid cdn-p2p as the best option
Wang et al. SmartPeerCast: a Smart QoS driven P2P live streaming framework
Liu et al. BitTube: case study of a web-based peer-assisted video-on-demand system
Yu et al. P2PVR: A playback offset aware multicast tree for on-demand video streaming with vcr functions
Tang et al. Characterizing user behavior to improve quality of streaming service over P2P networks
Luo et al. Design and deployment of a peer-to-peer based iptv system over global internet
Biskupski et al. Improving throughput and node proximity of p2p live video streaming through overlay adaptation
Yang et al. A novel on-demand streaming service based on improved BitTorrent
Duraisamy et al. Mesh based peer to peer live video streaming using ant algorithm
Purandare et al. An alliance based peering scheme for peer-to-peer live media streaming

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20111102