CN102231761A - 一种p2p数据交互方法 - Google Patents
一种p2p数据交互方法 Download PDFInfo
- 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
Links
Images
Abstract
本发明提供一种p2p数据交互方法,交互方包括tracker服务器、主服务器master、tracker服务器选择服务器TS、终端peer。终端peer登录到tracker服务器,上报自身的节点信息,tracker根据终端的请求从终端peer数据库、资源数据库中查询到符合要求的其他终端peer;tracker服务器统计将自身服务器的运行状态,每隔一时间周期将自身当前的节点负载数上报到Master。该交互方法能够高效地提高p2p的数据交互能力,并且不需要对现有系统做大规模的修改。
Description
技术领域
本发明涉及一种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。
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)
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)
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播放方法及系统 |
-
2011
- 2011-08-12 CN CN2011102307519A patent/CN102231761A/zh active Pending
Patent Citations (3)
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)
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 |