CN102291458B - 一种p2p服务器架构方法 - Google Patents

一种p2p服务器架构方法 Download PDF

Info

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

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明披露一种无限水平扩展的p2p服务架构方法,首先架设一台tracker服务器作为中央tracker,随着终端peer数量的增加,对首次架构的服务架构进行两次重构,分别引入TS服务器与Master。本发明能够根据终端数量动态调整p2p服务架构,使用低成本达到p2p服务器架构可无限水平扩展的效果。

Description

一种p2p服务器架构方法
技术领域
本发明涉及一种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万。
CN201110230706.3A 2011-08-12 2011-08-12 一种p2p服务器架构方法 Expired - Fee Related CN102291458B (zh)

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)

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

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101046806B (zh) * 2006-03-30 2010-07-21 腾讯科技(深圳)有限公司 搜索引擎***和方法

Patent Citations (3)

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