CN102231762B - 一种可以无限水平扩展的p2p服务器系统 - Google Patents

一种可以无限水平扩展的p2p服务器系统 Download PDF

Info

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
Application number
CN201110230755.7A
Other languages
English (en)
Other versions
CN102231762A (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.)
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 CN201110230755.7A priority Critical patent/CN102231762B/zh
Publication of CN102231762A publication Critical patent/CN102231762A/zh
Application granted granted Critical
Publication of CN102231762B publication Critical patent/CN102231762B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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服务器系统,属于计算机网络、流媒体、视频处理等多个交叉领域。
背景技术
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服务器,并监控它们的运行状态。
CN201110230755.7A 2011-08-12 2011-08-12 一种可以无限水平扩展的p2p服务器系统 Expired - Fee Related CN102231762B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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