CN102231762B - 一种可以无限水平扩展的p2p服务器系统 - Google Patents
一种可以无限水平扩展的p2p服务器系统 Download PDFInfo
- Publication number
- CN102231762B CN102231762B CN201110230755.7A CN201110230755A CN102231762B CN 102231762 B CN102231762 B CN 102231762B CN 201110230755 A CN201110230755 A CN 201110230755A CN 102231762 B CN102231762 B CN 102231762B
- Authority
- CN
- China
- Prior art keywords
- server
- tracker
- peer
- video
- master
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供一种可以无限水平扩展的p2p服务器系统,其包括一p2p系统,以及一传统网络视频系统,所述传统网络视频系统包括视频采集设备,流媒体服务器,点播源系统,所述点播源系统为mms与cms系统,以及多个CDN;所述p2p系统包括一直播源服务器,一个或多个tracker服务器,一个或多个tracker选择服务器TS,一个主服务器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服务器系统,属于对现有流媒体直播系统系统的一种改进,其包括一p2p系统,以及一传统网络视频系统,所述传统网络视频系统包括视频采集设备,流媒体服务器,点播源系统,所述点播源系统为mms与cms系统,以及多个CDN;所述p2p系统包括一直播源服务器,一个或多个tracker服务器,一个或多个tracker选择服务器TS,一个主服务器master;所述直播源服务器进一步包括一切片服务器与一web服务器。
其中,所述传统网络视频系统将点播的支持.flv、.mp4格式的视频文件存储在所述点播源系统上,所述点播源将视频文件以HTTP协议分发到各CDN节点上,终端peer直接通过HTTP到CDN上获取数据并播放。
更进一步,所述传统网络视频系统中包含一视频采集设备,用于视频文件的采集;视频采集设备通过RTMP将视频流存入流媒体服务器,流媒体服务器将视频流存入直播源服务器,直播源服务器中的切片服务器程序将视频流分片,每个切片长度为2-10兆字节,或者每个切片的播放时间为8-10分钟;直播源将每个小视频文件通过http协议分发到所有CDN节点上。
在一个优选的实施方式中,所述p2p系统进一步被配置为,每台tracker服务器将自身的地址与终端peer负载数以TCP协议定时上报到主服务器Master,主服务器Master维护关于tracker的数据库,每台tracker选择服务器TS定时向Master申请所有tracker的信息。
更进一步,所述服务器系统进一步被配置为,所述终端peer计算自己正在从CDN下载的视频资源的MD5,并与通过DNS智能解析得到的一个tracker选择服务器TS的通信信息,并通过tracker选择服务器TS选取一个tracker服务器,之后该终端peer通过tracker服务器获得拥有相同MD5的其它终端peer的位置信息,然后与这些终端peer建立数据通信链路。
一个可选的实施方式中,所述终端peer之间建立数据通信连路的方式为TCP NAT穿越方式。
另一个可选的实施方式中,所述p2p网络进一步包括一数据校验服务器checksum,所述数据校验服务器checksum对传输的文件数据块进行校验,该checksum服务器从点播源系统获取所有视频文件,对每个视频文件的每单位数据块做CRC32计算并生成xml文件,xml文件里存储该视频文件的所有单位数据块的CRC32值,然后将所有xml文件分发到CDN上。
更进一步,终端peer从CDN下载视频文件的同时,也下载相应的xml文件,当将某一块数据传送到其他peer之前,先在本地计算该块数据的CRC32值,并与xml中保存的该块数据的CRC32值相比较,若相等,则传送给其他peer;否则禁止传输。
另一个可选的实施方式中,所述p2p网络进一步包括一监控、统计、管理服务器、所述监控、统计、管理服务器集中管理p2p网络中的所有tracker、所有TS、Master、直播切片服务器、checksum服务器,并监控它们的运行状态。
附图说明
图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 (6)
1.一种可以无限水平扩展的p2p服务器系统,其包括一p2p系统,以及一传统网络视频系统,其特征在于:
所述传统网络视频系统包括视频采集设备,流媒体服务器,点播源系统以及多个CDN(内容分发网络);所述点播源系统为mms与cms系统(mms 为多媒体服务器MultiMediaServer, CMS是内容管理系统Content Management System),
所述p2p系统包括一直播源服务器,一个或多个tracker服务器,一个或多个tracker选择服务器TS(tracker selector)以及一个主服务器Master;
所述直播源服务器进一步包括一切片服务器与一web服务器;
所述p2p系统进一步被配置为,每台tracker服务器将自身的地址与终端peer负载数以TCP协议定时上报到主服务器Master,主服务器Master维护关于tracker的数据库,每台tracker选择服务器TS定时向Master申请所有tracker的信息;
所述服务器系统进一步被配置为,所述终端peer计算自己正在从CDN下载的视频资源的MD5,并通过DNS智能解析得到一个tracker选择服务器TS,并通过tracker选择服务器TS选取一个tracker服务器,之后该终端peer通过tracker服务器获得拥有相同MD5的其它终端peer的位置信息,然后与这些终端peer建立数据通信链路。
2.如权利要求1所述的服务器系统,其特征在于:
所述传统网络视频系统将点播支持的.flv、.mp4格式的视频文件存储在所述点播源系统上,所述点播源系统将视频文件以HTTP协议分发到各CDN节点上,终端peer直接通过HTTP到CDN上获取数据并播放。
3.如权利要求2所述的服务器系统,其特征在于:
所述传统网络视频系统中包含一视频采集设备,用于视频文件的采集;视频采集设备通过RTMP将视频流存入流媒体服务器,流媒体服务器将视频流存入直播源服务器,直播源服务器中的切片服务器程序将视频流分片,每个切片长度为2-10兆字节,或者每个切片的播放时间为8-10分钟;直播源将每个小视频文件通过HTTP协议分发到所有CDN节点上。
4.如权利要求3所述的服务器系统,其特征在于:
所述终端peer之间建立数据通信链路的方式为TCP NAT穿越方式。
5.如权利要求3所述的服务器系统,其特征在于:
所述p2p系统进一步包括一数据校验服务器checksum,所述数据校验服务器checksum对传输的文件数据块进行校验,该checksum服务器从点播源系统获取所有视频文件,对每个视频文件的每单位数据块做CRC32计算并生成xml文件,xml文件里存储该视频文件的所有单位数据块的CRC32值,然后将所有xml文件分发到CDN上;
终端peer从CDN下载视频文件的同时,也下载相应的xml文件,当将某一块数据传送到其他peer之前,先在本地计算该块数据的CRC32值,并与xml中保存的该块数据的CRC32值相比较,若相等,则传送给其他peer;否则禁止传输。
6.如权利要求5所述的服务器系统,其特征在于:
所述p2p系统进一步包括一监控统计管理服务器,所述监控统计管理服务器集中管理p2p系统中的所有tracker、和所有TS、和Master、和直播切片服务器、和checksum服务器,并监控它们的运行状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110230755.7A CN102231762B (zh) | 2011-08-12 | 2011-08-12 | 一种可以无限水平扩展的p2p服务器系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110230755.7A CN102231762B (zh) | 2011-08-12 | 2011-08-12 | 一种可以无限水平扩展的p2p服务器系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102231762A CN102231762A (zh) | 2011-11-02 |
CN102231762B true CN102231762B (zh) | 2014-03-19 |
Family
ID=44844294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110230755.7A Expired - Fee Related CN102231762B (zh) | 2011-08-12 | 2011-08-12 | 一种可以无限水平扩展的p2p服务器系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102231762B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547478B (zh) * | 2012-02-20 | 2015-03-11 | 北京蓝汛通信技术有限责任公司 | 基于cdn的流媒体触发式切片点播系统和方法 |
CN102752647A (zh) * | 2012-07-02 | 2012-10-24 | 卢林发 | 一种高清视频广告无间断播放方法 |
CN103078957B (zh) * | 2013-02-01 | 2016-03-02 | 北京航空航天大学 | 支持跨idc域功能的数据中心镜像分发系统 |
CN103634692A (zh) * | 2013-12-06 | 2014-03-12 | 南京理工大学连云港研究院 | 基于cdn和p2p的混合流媒体视频点播系统 |
CN103763339B (zh) * | 2013-12-23 | 2018-07-27 | 上海聚力传媒技术有限公司 | 一种用于生成和获取直播媒体数据的方法和装置 |
CN104935878A (zh) * | 2015-05-19 | 2015-09-23 | 华南理工大学 | 大规模网络视频监控热点信息分发系统及其分发方法 |
CN104967685B (zh) * | 2015-06-25 | 2018-12-14 | 广东德诚科教有限公司 | 基于Flash P2P的流媒体多级缓存网络加速方法 |
CN105554524B (zh) * | 2015-12-14 | 2019-03-12 | 四川长虹电器股份有限公司 | 一种播放节目的方法及系统 |
CN107623723B (zh) * | 2017-08-21 | 2019-05-24 | 腾讯科技(深圳)有限公司 | 视频直播数据的传输方法和装置、存储介质及电子装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267542A (zh) * | 2008-02-01 | 2008-09-17 | 深圳创维-Rgb电子有限公司 | 视频点播系统及实现方法 |
CN101714987A (zh) * | 2009-11-16 | 2010-05-26 | 中国电信股份有限公司 | P2p播放方法及系统 |
CN102055808A (zh) * | 2011-01-10 | 2011-05-11 | 复旦大学 | 一种降低p2p直播系统中播放延迟的方法与系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090100128A1 (en) * | 2007-10-15 | 2009-04-16 | General Electric Company | Accelerating peer-to-peer content distribution |
-
2011
- 2011-08-12 CN CN201110230755.7A patent/CN102231762B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267542A (zh) * | 2008-02-01 | 2008-09-17 | 深圳创维-Rgb电子有限公司 | 视频点播系统及实现方法 |
CN101714987A (zh) * | 2009-11-16 | 2010-05-26 | 中国电信股份有限公司 | P2p播放方法及系统 |
CN102055808A (zh) * | 2011-01-10 | 2011-05-11 | 复旦大学 | 一种降低p2p直播系统中播放延迟的方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102231762A (zh) | 2011-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102231762B (zh) | 一种可以无限水平扩展的p2p服务器系统 | |
CN102231761A (zh) | 一种p2p数据交互方法 | |
Zhang et al. | Unreeling Xunlei Kankan: Understanding hybrid CDN-P2P video-on-demand streaming | |
RU2647654C2 (ru) | Система и способ доставки аудиовизуального контента в клиентское устройство | |
US9173006B2 (en) | Method for live broadcasting in a distributed network and apparatus for the same | |
WO2013178010A1 (zh) | 一种多媒体内容分发方法、设备及系统 | |
CN101141459A (zh) | 使用http与p2p相结合实现数据传输或流媒体传输的方法 | |
US20200021859A1 (en) | Multicast implementation method and related network device | |
Agarwal et al. | Performance and quality-of-service analysis of a live P2P video multicast session on the Internet | |
US10601910B2 (en) | Method for broadcasting a piece of content in an it network | |
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 | |
Gao et al. | Measurement study on P2P streaming systems | |
Chen et al. | Zebroid: using IPTV data to support STB-assisted VoD content delivery | |
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 | |
Alhaisoni et al. | Resource-awareness and trade-off optimisation in P2P video streaming | |
Biskupski et al. | Improving throughput and node proximity of p2p live video streaming through overlay adaptation | |
Luo et al. | Design and deployment of a peer-to-peer based iptv system over global internet | |
FAROOQ | Static Peers for Peer-to-Peer Live Video Streaming | |
Purandare et al. | An alliance based peering scheme for peer-to-peer live media streaming | |
Yang et al. | A novel on-demand streaming service based on improved BitTorrent | |
Mathieu et al. | A topology-aware P2P video streaming 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140319 Termination date: 20170812 |
|
CF01 | Termination of patent right due to non-payment of annual fee |