CN102291458B - 一种p2p服务器架构方法 - Google Patents
一种p2p服务器架构方法 Download PDFInfo
- Publication number
- CN102291458B CN102291458B CN201110230706.3A CN201110230706A CN102291458B CN 102291458 B CN102291458 B CN 102291458B CN 201110230706 A CN201110230706 A CN 201110230706A CN 102291458 B CN102291458 B CN 102291458B
- Authority
- CN
- China
- Prior art keywords
- tracker
- server
- peer
- master
- channel
- 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
- Computer And Data Communications (AREA)
Abstract
本发明披露一种无限水平扩展的p2p服务架构方法,首先架设一台tracker服务器作为中央tracker,随着终端peer数量的增加,对首次架构的服务架构进行两次重构,分别引入TS服务器与Master。本发明能够根据终端数量动态调整p2p服务架构,使用低成本达到p2p服务器架构可无限水平扩展的效果。
Description
技术领域
本发明涉及一种p2p服务器架构方法,属于计算机网络、流媒体、视频处理等多个交叉领域。
背景技术
P2P(Peer-to-Peer)又被称为“点对点”技术,其充分利用客户的上行带宽,在下行占用的同时也占用上行带宽,为其他用户提供资源,实现网络的加速和扩展,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。p2p技术去除了中心服务器的思想,最大程度利用可用带宽以达到高速的数据传送。
现有技术中,p2p***中包含多个终端节点peer,代表客户端节点,主要功能是视频播放(直播、点播)以及数据下载。p2p***中还存在一类tracker服务器,主要用于记录peer的位置、资源信息,在内存中维护相关的数据库,同时提供peer查询、资源查询以及NAT穿越的相关协议转发功能。类似于目录服务。以及TS服务器,其主要功能是提供peer对tracker的选择。同时在p2p***中利用切片服务器对视频流进行切片,生成一个个的小视频文件(仅直播***使用),切片服务器支持对MMS、RTSP、RTMP协议流进行切片。
上述NAT穿越涉及TCP/IP网络中的一个常见问题,即在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。其包括几种常见的穿越方式:NAT/ALG 方式、MIDCOM 方式、STUN 方式、TURN方式等等。
服务器是否具备水平扩展能力是衡量一套***的重要指标。对于大规模、超大规模的p2p运营***来说尤其如此。然而,目前使用最为广泛p2p***都是采用基于CDN(内容分发网络)的网络加速方案。其服务器的水平扩展能力受到很大限制,是现有的p2p***面临的一个问题。
发明内容
为了解决上述技术问题,本发明提供一种p2p服务器架构方法,可以理解为对现有流媒体直播***架构的一种改进。
上述p2p服务架构中包括tracker服务器,tracker选择服务器(TS服务器),Master,上述包括以下步骤:
步骤一、架设一台tracker服务器作为中央tracker,所有终端peer都与所述中央 tracker通信;所述中央中央tracker实时判断终端peer的数量,当终端peer的数量增加到阈值N1台时,执行步骤二;
步骤二、启动多台tracker服务器,各tracker服务器与tracker选择服务器建立TCP连接,并将各自的IP地址登记在tracker选择服务器上,并定时上报节点负载数到tracker选择服务器,tracker选择服务器在内存中建立并维护关于tracker的数据库。
另一个更全面的实施方式中,所述tracker选择服务器实时判断终端peer的数量,当终端peer的数量增加到阈值N2台时,执行步骤三;
步骤三、启动Master,所述Master用于维护关于tracker服务器的信息;启动所有tracker服务器,所有tracker服务器与Master建立TCP连接,将自己的IP地址在Master上登记,并定时上报节点负载数到Master;
启动所有tracker选择服务器,所有tracker选择服务器与Master建立TCP连接,并定时向Master发送tracker请求,Master收到请求后将保存的各个tracker的IP、节点负载信息分发到提出请求的TS。
更进一步,上述步骤二中,终端peer通过DNS协议将固定的tracker选择服务器域名发送到DNS服务器,请求解析tracker选择服务器的IP地址,DNS服务器通过智能解析,选择一台tracker选择服务器并将其IP地址回送给终端peer,每台TS被选择的几率等同,故从而达到了tracker选择服务器集群的负载均衡。
在一个可选的实施方式中,上述步骤三中,终端peer通过已知的tracker选择服务器IP地址向tracker选择服务器发送报文,申请一台可用的tracker服务器;tracker选择服务器将从Master获取到的节点负载最多、但未超过负载上限的一台tracker的IP地址回送给发出请求的peer。
根据本发明的一个优选的实施方式,上述步骤一中,每一个终端peer通过指定报文格式将自身节点信息、本地存有的所有频道channel在中央tracker上登记,节点信息定义为如下四元组:
<唯一标识符、WAN侧IP 、WAN侧端口号、当前时间戳>,
channel信息定义为如下五元组:
<唯一标识符MD5值、channel所属节点在内网中的被定义类型、rank值、channel所属节点的信息、channel所属节点的网关地址>。
更进一步,在所述步骤一中,终端peer与tracker服务器的通信流程为:
终端peer向tracker服务器上报自己的节点信息,tracker服务器在内存中建立并维护节点信息的数据库;
终端peer将自身存有实体视频数据的所有channel的信息上报给tracker,tracker同样在内存中建立并维护channel信息的数据库;
peer播放某个channel时,会每隔一段时间T就向tracker服务器发送资源请求报文,tracker根据channel的MD5,在数据库中查询拥有同一channel的其他peer,将它们的节点信息反馈给提出请求的peer。
附图说明
图1是本发明的技术方案中对p2p服务架构方法的第一次架构方法的示意图;
图2是本发明的技术方案中对p2p服务架构方法的第一次架构方法的时序图;
图3是本发明的技术方案中对p2p服务架构方法的第一重构构方法的示意图;
图4是本发明的技术方案中对p2p服务架构方法的第一重构构方法的时序图;
图5是本发明的技术方案中对p2p服务架构方法的第二次重构方法的示意图;
图6是本发明的技术方案中对p2p服务架构方法的第二次重构方法的时序图。
具体实施方式
为了更好地阐述本发明的宗旨,以下结合具体实施方式来更详细地说明本发明提供的技术方案。
本发明提供一种无线水平扩展的p2p服务架构方法,所述方法包括:
步骤一、参见附图1,首先仅架设一台tracker服务器作为中央tracker服务器,所有终端peer都与这台中央tracker服务器通信(参见附图X,该中央tracker为图X中的tracker+TS+Master),上报节点信息、上报资源信息、资源申请均通过UDP,且通过TCP与tracker中内置的NAT Server通信。
上述步骤一中,每一个peer通过指定报文格式将自身节点信息、本地存有的所有频道(channel)在中央tracker上登记,节点信息定义为如下四元组;
<唯一标识符、WAN侧IP 、WAN侧端口号、当前时间戳>
channel信息定义为如下五元组:
<唯一标识符MD5值、channel所属节点在内网中的被定义类型(Leader[指的是具备公网ip或在一个局域网络第一个进入p2p***的节点]或者Follower[在同一个局域网络中,非第一个进入p2p***的节点,称之为Follower])、rank值、channel所属节点的信息、channel所属节点的网关地址>
结合附图2,进一步描述终端peer与tracker的通信流程:
tracker首先启动,每一个终端peer启动时,向tracker上报自己的节点信息,tracker在内存中建立并维护节点信息的数据库;
终端peer将自身存有实体视频数据的所有channel的信息上报给tracker,tracker同样在内存中建立并维护channel信息的数据库;
终端peer播放某个channel时,每隔一段时间T,向tracker发送资源请求报文,tracker根据channel的MD5,在数据库中查询拥有同一channel的其他终端peer,将它们的节点信息反馈给提出请求的终端peer;
终端peer与终端peer之间开始建立p2p连接,通过tracker中的NAT Server进行TCP NAT穿越后,即可进行彼此之间的点对点数据传送。
中央tracker实时判断终端peer的数量,随着peer的增加,当终端peer的数量增加到阈值N1台时(参见附图X,N1的优选取值为10万)单台中央tracker已不能满足需要,负载过大会引发故障。
因此需要进行步骤二,在步骤二中进行第一次重构***,引入tracker集群的概念,并新加入一台tracker selector设备(称为TS),如附图3所示。
参照附图4说明步骤二的详细工作流程:
TS首先启动;
各tracker启动,并与TS建立TCP连接,将自己的IP地址在TS上登记,并定时上报节点负载数到TS,TS在内存中建立并维护关于tracker的数据库;
各peer通过已知的TS IP地址向TS发送请求报文,申请一台可用的tracker服务器。TS将已登记的节点负载最多、但未超过负载上限的一台tracker的IP地址回送给发出请求的peer;
peer与从TS得知的tracker进行通信,交互过程不变。
但有种情况的发生:后端***若只有单台TS,一旦TS故障或宕机,将导致p2p***的瘫痪,因为peer无法获取tracker的地址,无法与其他peer点对点传送数据。
在此,本发明进一步提出步骤三,在步骤三种对***进行第二次重构。该步骤中需要进行TS的扩展,引入TS集群的概念,每一台TS上均存储并动态维护所有tracker的信息,peer不再通过具体的IP地址,而是通过域名向TS发送tracker请求报文,DNS服务器通过智能解析,将域名随机映射到某一台TS的IP,任何一台TS被peer选择的几率是等同的,也就达到了TS对于peer的负载均衡。
若在原先架构上直接进行TS扩展,则任一台tracker都要与所有TS保持TCP连接,假设有N台tracker,每新增一台TS,就要增加N条连接,这是不可取的。因此采用的策略是:新增一台Master设备,tracker不再向TS上报而是改向Master上报,Master中维护关于tracker的数据库,每一台TS向Master发起TCP连接,并定时向Master发送请求,获取当前的所有tracker信息。这样,新增一台TS,仅仅增加了一条TS与Master的TCP连接而已。第二次重构后的***架构如附图5所示。
在此结合附图6进行更详细的第二次重构工作流程描述。
Master首先启动;
各tracker启动,并与Master建立TCP连接,将自己的IP地址在Master上登记,并定时上报节点负载数到Master;
各TS启动,并与Master建立TCP连接,并定时向Master发送tracker请求,Master收到请求后将保存的各个tracker的<IP,节点负载>集合分发到提出请求的TS;
各peer通过DNS协议将固定的TS域名发送到DNS服务器,请求解析TS的IP地址,DNS服务器通过智能解析,选择一台TS并将其IP地址回送给peer,每台TS被选择的几率是等同的,故达到了TS集群的负载均衡;
peer通过已知的TS IP地址向TS发送报文,申请一台可用的tracker服务器。TS将从Master获取到的节点负载最多、但未超过负载上限的一台tracker的IP地址回送给发出请求的peer;
peer与得到的tracker进行通信,交互过程不变。
本发明提出的方法最充分的利用成熟的技术,极大的简化***,子***之间耦合尽量低,尽量减少对***依赖,追求***整体最优,而非单点最优,从而达到了p2p服务器架构可无限水平扩展的效果。
本发明所述的方法和***并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。
Claims (7)
1.一种p2p服务架构方法,所述p2p服务架构中包括tracker服务器,tracker选择服务器,主服务器Master,其特征在于,包括以下步骤:
步骤一、架设一台tracker服务器作为中央tracker,所有终端peer都与所述中央 tracker通信;所述中央tracker实时判断终端peer的数量,当终端peer的数量增加到阈值N1台时,执行步骤二;
步骤二、启动多台tracker服务器,各tracker服务器与tracker选择服务器建立TCP连接,并将各自的IP地址登记在tracker选择服务器上,并定时上报节点负载数到tracker选择服务器,tracker选择服务器在内存中建立并维护关于tracker的数据库;终端peer通过DNS协议将固定的tracker选择服务器域名发送到DNS服务器,请求解析tracker选择服务器的IP地址,DNS服务器通过智能解析,选择一台tracker选择服务器并将其IP地址回送给终端peer,每台tracker选择服务器被选择的几率等同,从而达到了tracker选择服务器集群的负载均衡;
所述tracker选择服务器实时判断终端peer的数量,当终端peer的数量增加到阈值N2台时,执行步骤三;
步骤三、启动Master,所述Master用于维护关于tracker服务器的信息;启动所有tracker服务器,所有tracker服务器与Master建立TCP连接,将自己的IP地址在Master上登记,并定时上报节点负载数到Master;
启动所有tracker选择服务器,所有tracker选择服务器与Master建立TCP连接,并定时向Master发送tracker请求,Master收到请求后将保存的各个tracker的IP、节点负载信息分发到提出请求的tracker 选择服务器。
2.如权利要求1所述的方法,其特征在于:
上述步骤三中,终端peer通过已知的tracker选择服务器IP地址向tracker选择服务器发送报文,申请一台可用的tracker服务器;tracker选择服务器将从Master获取到的节点负载最多、但未超过负载上限的一台tracker的IP地址回送给发出请求的peer。
3.如权利要求1所述的方法,其特征在于:
上述步骤一中,每一个终端peer通过指定报文格式将自身节点信息在中央tracker上登记,节点信息定义为如下四元组:
<唯一标识符、WAN侧IP 、WAN侧端口号、当前时间戳>。
4.如权利要求3所述的方法,其特征在于:
每一个终端peer通过指定报文格式进一步将本地存有的所有频道channel在中央tracker上登记,channel信息定义为如下五元组:
<唯一标识符MD5值、channel所属节点在内网中的被定义类型、rank值、channel所属节点的信息、channel所属节点的网关地址>。
5.如权利要求3所述的方法,其特征在于:
在所述步骤一中,终端peer与tracker服务器的通信流程为:
终端peer向tracker服务器上报自己的节点信息,tracker服务器在内存中建立并维护节点信息的数据库;
终端peer将自身存有实体视频数据的所有channel的信息上报给tracker,tracker同样在内存中建立并维护channel信息的数据库。
6.如权利要求5所述的方法,其特征在于:
peer播放某个channel时,会每隔一段时间T就向tracker服务器发送资源请求报文,tracker根据channel的MD5,在数据库中查询拥有同一channel的其他peer,将它们的节点信息反馈给提出请求的peer。
7.如权利要求2所述的方法,其特征在于:所述N1为10万,所述N2为100万。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110230706.3A CN102291458B (zh) | 2011-08-12 | 2011-08-12 | 一种p2p服务器架构方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110230706.3A CN102291458B (zh) | 2011-08-12 | 2011-08-12 | 一种p2p服务器架构方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102291458A CN102291458A (zh) | 2011-12-21 |
CN102291458B true CN102291458B (zh) | 2014-06-18 |
Family
ID=45337559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110230706.3A Expired - Fee Related CN102291458B (zh) | 2011-08-12 | 2011-08-12 | 一种p2p服务器架构方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102291458B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561013B (zh) * | 2013-10-29 | 2016-07-13 | 越亮传奇科技股份有限公司 | 流媒体的数据分发*** |
CN106936796B (zh) * | 2015-12-30 | 2019-11-29 | 华耀(中国)科技有限公司 | 一种基于sni的服务器负载均衡方法及设备 |
CN106331090A (zh) * | 2016-08-23 | 2017-01-11 | 国家电网公司 | 一种基于IPv6可信网络的可重构实现方法 |
CN108322496A (zh) * | 2017-01-17 | 2018-07-24 | 北京京东尚科信息技术有限公司 | 镜像文件分发方法及***、计算机可读存储介质、电子设备 |
CN115022657B (zh) * | 2022-05-30 | 2023-12-26 | 上海哔哩哔哩科技有限公司 | 直播服务器的调度方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5483535A (en) * | 1995-01-17 | 1996-01-09 | Zeta Music Partners | Communications network interface, and adapter and method therefor |
CN101098271A (zh) * | 2006-06-29 | 2008-01-02 | 腾讯科技(深圳)有限公司 | 一种可扩展的p2p流媒体*** |
CN101714987A (zh) * | 2009-11-16 | 2010-05-26 | 中国电信股份有限公司 | P2p播放方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046806B (zh) * | 2006-03-30 | 2010-07-21 | 腾讯科技(深圳)有限公司 | 搜索引擎***和方法 |
-
2011
- 2011-08-12 CN CN201110230706.3A patent/CN102291458B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5483535A (en) * | 1995-01-17 | 1996-01-09 | Zeta Music Partners | Communications network interface, and adapter and method therefor |
CN101098271A (zh) * | 2006-06-29 | 2008-01-02 | 腾讯科技(深圳)有限公司 | 一种可扩展的p2p流媒体*** |
CN101714987A (zh) * | 2009-11-16 | 2010-05-26 | 中国电信股份有限公司 | P2p播放方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN102291458A (zh) | 2011-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10171523B2 (en) | Multi-tier push service control architecture for large scale conference over ICN | |
Zhang et al. | Unreeling Xunlei Kankan: Understanding hybrid CDN-P2P video-on-demand streaming | |
CN102231762B (zh) | 一种可以无限水平扩展的p2p服务器*** | |
Haßlinger et al. | Content delivery and caching from a network provider’s perspective | |
US9432408B2 (en) | Signalling gateway, method, computer program and computer program product for communication between HTTP and SIP | |
US20110246608A1 (en) | System, method and device for delivering streaming media | |
US20100250701A1 (en) | Conditional protocol control | |
CN103825975A (zh) | Cdn节点分配服务器及*** | |
CN102291458B (zh) | 一种p2p服务器架构方法 | |
CN101282281A (zh) | 一种媒体分发***、装置及流媒体播放方法 | |
CN102231761A (zh) | 一种p2p数据交互方法 | |
CN104509073A (zh) | 在软件定义的网络中发现ip多播组成员 | |
EP2744168B1 (en) | System, method and live streaming optimizer server for live content distribution optimization over a content delivery network | |
Lederer et al. | Towards peer-assisted dynamic adaptive streaming over HTTP | |
CN103139656A (zh) | 一种视频直播分发网络的集簇式动态网络分发树管理方法 | |
CN101662508B (zh) | 基于点对点协议数据传输的方法、装置和*** | |
US10601910B2 (en) | Method for broadcasting a piece of content in an it network | |
Guo et al. | P2Cast: peer-to-peer patching for video on demand service | |
Ramakrishnan et al. | Adaptive video streaming over ccn with network coding for seamless mobility | |
US20130159547A1 (en) | Data transfer system | |
CN109040199A (zh) | 一种分发资源数据的方法、***及存储介质 | |
CN102387062A (zh) | 动态桥接点改善p2p节点在跨网络时的传输速度的方法 | |
CN101286928B (zh) | 一种基于带宽保证技术实现p2p流媒体***的方法 | |
Wang et al. | An efficient relay node selection scheme to improve the performance of P2P-based VoIP applications in Chinese internet | |
Ramadha et al. | Design and implementation named data networking-based 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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140618 Termination date: 20170812 |