CN101459584B - 一种p2p流媒体数据请求末端处理方法 - Google Patents
一种p2p流媒体数据请求末端处理方法 Download PDFInfo
- Publication number
- CN101459584B CN101459584B CN2007101795839A CN200710179583A CN101459584B CN 101459584 B CN101459584 B CN 101459584B CN 2007101795839 A CN2007101795839 A CN 2007101795839A CN 200710179583 A CN200710179583 A CN 200710179583A CN 101459584 B CN101459584 B CN 101459584B
- Authority
- CN
- China
- Prior art keywords
- ingress
- data
- request
- node
- respect
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种P2P流媒体数据请求末端处理方法,在数据请求末端,根据用户节点向各个入节点所能请求到的数据量,进行尽可能均匀的分配,用户节点根据自身以及入节点缓冲区的情况确定能从入节点所获取的数据范围和数据量,并根据这个数据范围和数据量采用区域均衡补偿均匀分配数据请求,避免到数据请求末端时,数据请求集中于个别节点,造成个别节点负担过大成为瓶颈节点,而其他节点带宽闲置浪费的情况,从而提高了P2P流媒体网络的鲁棒性。
Description
技术领域
本发明涉及计算机网络流媒体技术领域,更具体地,本发明涉及一种P2P流媒体数据请求末端处理方法。
背景技术
当在流媒体直播领域中应用P2P技术时,网络节点之间的数据请求分配关系着整个P2P网络的数据流量和流向问题,直接决定P2P网络的带宽利用率。在实际的数据请求分配中,本地节点向某个或者某几个节点请求数据,被请求的节点称为本地节点的入节点,本地节点称为被请求节点的出节点。当本地节点的数据请求到达入节点中某个或某几个节点的缓冲区末端时,即当部分入节点可供请求的最新数据数目已经不能满足正常播放码率所要求的数据包的数目时,则说明这些节点之间存在着一定的差异性,即这些节点的播放位置以及所拥有的最新数据量之间存在一定的差异,因此各个入节点所能提供的最新数据的范围和大小并不完全相同。
现有的P2P流媒体直播系统,例如GridMedia、DoNet,系统节点之间的数据请求方法主要根据预估算的该节点的上行带宽进行相应的数据请求,或者按照各个入节点的提供最新数据量的大小进行请求,对数据请求末端并未作处理,使得数据请求往往集中在少数几个拥有最多新数据的入节点中,而导致该入节点的上行带宽负载过大,成为P2P流媒体网络中的瓶颈节点,降低了P2P流媒体网络的鲁棒性,而其他入节点的上行带宽却闲置浪费。
发明内容
为克服现有技术中的网络节点带宽资源不能有效利用的缺陷,本发明提出一种P2P流媒体数据请求末端处理方法。
一种P2P流媒体数据请求末端处理方法,包括:
步骤10)、在数据请求末端时,根据各入节点所能提供的数据量大小对所述入节点排序;
步骤20)、将所述各个入节点所能提供的数据量均衡分配给数据请求节点。
其中,步骤10)中,按照所述各个入节点的缓冲区映像中最大数据包序列号的大小对所述各个入节点从小到大排序。
其中,步骤20)中,排序完成后,计算后一个入节点相对于前一个入节点特有的数据包数目,如果所述前一个入节点特有的数据包数目大于所述后一个入节点特有的数据包数目,所述两个入节点均分二者所特有的数据包,分配给所述数据请求节点。
其中,步骤20)所述方法进一步包括:
步骤210)、分别计算后一个入节点相对于前一个入节点特有的数据包的数目;
步骤220)、从后往前分别比较每个入节点相对于前一个入节点所特有的数据包的数目的大小;
步骤230)、如果某入节点相对于前一个入节点特有的数据包的数目小于后一个入节点相对于所述某入节点所特有的数据包数目,将所述某入节点设置为下一次均衡的结束点;
步骤240)、如果某入节点相对于前一个入节点特有的数据包的数目大于后一个入节点相对于所述某入节点所特有的数据包的数目,所述某入节点就与后一个入节点均分所述后一个入节点相对于所述前一个入节点的特有数据段,所述某入节点分配所述数据段的低端部分数据,所述后一入节点分配所述数据段的高端部分数据,对每一个入节点循环进行均分,直至对所有入节点都进行过均衡。
其中,如果有数据请求到达本地缓冲区的末端,选择上次向各个入节点请求数目的比例分配给各个入节点相应的数据请求量。
其中,如果有数据请求到达本地缓冲区的末端,选择上上次向各个入节点请求数目的比例分配给各个入节点相应的数据请求量。
其中,如果所述数据请求到达所述入节点中某个或某几个节点的缓冲区末端,则按照所述各个入节点所能提供的最大数目进行请求。
其中,如果所述入节点可供请求的最新数据数目小于各上上次向各个入节点请求数目,下次请求的初始量将设置为各个入节点正常请求量的平均值,并且,最终根据向各个入节点获取的数据数目来决定数据请求量。
通过使用本发明,根据用户节点和入节点的缓冲区情况,对数据请求末端的数据请求进行区域均衡补偿处理,可以有效地将数据请求分散到拥有这些数据的入节点中,提高P2P流媒体网络带宽的有效利用率以及网络的鲁棒性。
附图说明
图1为数据末端区域均衡补偿示意图;
图2为数据末端区域均衡补偿方法流程图;
具体实施方式
下面结合附图和具体实施例,对本发明提供的一种P2P流媒体数据请求末端处理方法作进一步说明。
在P2P网络的数据请求分配中,如果数据请求到达本地缓冲区的末端,即本地缓冲区在将被填满时,还有部分数据包需要请求,而这部分数据包的数目没有达到正常播放码率所要求的数目,此时,按照上上次向各个入节点请求数目(Last2ReqNum)的比例分配给各个入节点相应的数据请求量。
在本实施例中,使用上上次向各个入节点请求数目(Last2ReqNum)的比例是因为当数据请求到达本地缓冲区末端时,对新数据包的实时性要求不是很高,使用上上次向各个入节点请求数目(Last2ReqNum),将检测丢包时间变长,避免部分数据包因为延时被误判为丢包而进行不必要的重传。当然,也可以选择上次向各个入节点请求数目(LastReqNum)等类似数据。
如果数据请求到达入节点中某个或某几个节点的缓冲区末端,即入节点可供请求的最新数据数目小于各上上次向各个入节点请求数目(Last2ReqNum),此时,按照各个入节点所能提供的最大数目进行请求,在节点差异较大的情况下,按照每个节点平均所能请求的数目进行补偿分配。
在现有技术中,各节点主要按照入节点提供的最新数据量的大小进行请求,使得数据请求集中在少数几个拥有最多新数据的入节点,而其它的节点处于空闲状态。在根据本发明的一个实施例中,采用区域均衡补偿方法将几个入节点共有数据分配到这几个入节点来共同发送,每一个入节点发送一部分,从而减小某一个入节点的数据发送负载。区域均衡补偿是指:在根据入节点所能提供的数据量的大小对入节点进行排序后,分别计算后一个入节点相对于前一个入节点特有的数据包数目,如果前一个入节点特有的数据包数目大于后一个入节点特有的数据包数目,此时前一个入节点特有数据的发送不仅由本入节点完成,而是后一个入节点会承担一部分共有数据量,或者所述两个入节点均分二者所特有的数据包,减小后一个入节点的请求负载。
图1为数据末端区域均衡补偿示意图,A、B、C、D、E和F分别代表各入节点,a为节点A的数据量,b、c、d、e、f分别为节点B、C、D、E、F相对于前一节点特有的数据量。首先按照各个入节点的缓冲区映像中最大数据包序列号(index)的大小对入节点进行从小到大排序,得到节点序列A、B、C、D、E和F,分别计算每一个入节点相对前一个入节点所特有的数据包的数目,即a、b、c、d、e、f,特有的数据包只能向拥有该数据包的入节点请求。
然后从后往前分别比较每个入节点相对于前一个入节点所特有的数据包的数目,如果本入节点相对于前一个入节点特有的数据包的数目小于后一个入节点相对于本入节点所特有的数据包数目,那么将本入节点设置为下一次区域均衡的结束点,例如,当e<f时,将节点E设置为下一次区域均衡的结束点;如果本入节点相对于前一个入节点特有的数据包的数目大于后一个入节点相对于本入节点所特有的数据包的数目,那么本入节点就与后一个入节点均分后一个入节点相对于前一个入节点的特有数据段(即本入节点相对于前一个入节点特有的数据段与后一个入节点相对于本入节点特有的数据段之和),例如,b>c,则B和C均分(b+c)数据包。这种均衡持续到区域均衡的结束点为止,当b>c时,对从B开始到区域均衡结束点(假设为E)之间的节点分配段进行均衡,并且前面的入节点分配低端部分的数据,后面的入节点分配高端部分的数据。这样循环进行直至对所有入节点都进行过区域均衡补偿操作。
如图2所示,对区域均衡补偿方法作进一步说明。
按照各个入节点的缓冲区映像中最大数据包序列号(MAX index)的大小对入节点进行从小到大排序,假设排完序后的入节点顺序为P0,P1,P2,P3...Pn;
从P0开始计算后一个入节点的最大index与前一个入节点的最大index之差K0,其中K0=Max(P0),K1=Max(P1)-Max(P0),......Kn=Max(Pn)-Max(Pn-1);
从Pn开始往前进行数据请求量分配:Pn的分配量Tn=Kn,如果Ki-1<=Ki,那么Ti-1=Ki-1,并令Pi-1为下次均分终结点,即下次遇到需要均分请求的情况,只均分到Pi-1,Pi-1以后的节点不参与均分;如果Ki-1>Ki,则Pi-1的分配量Ti-1=(Ki-1+Ki+Ki+1+...+Kj)/(j-i+1),并令Ti=Ti+1=...=Tj=Ti-1即Pi-1,Pi,Pi+1...Pj均分Ki-1,Ki,Ki+1...Kj;如此循环,直至分配完毕。
另外,如果入节点可供请求的最新数据数目小于各上上次向各个入节点请求数目(Last2ReqNum),为防止下次请求量过小,下次请求的初始量将设置为各个入节点正常请求量的平均值,并最终根据向各个入节点所能获取的数据数目来决定最终的请求量;此时,如果不丢包,分配的请求量不计入统计平均值。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非对其限制,并且在应用上可以延伸到其他的修改、变化、应用和实施例,同时认为所有这样的修改、变化、应用、实施例都在本发明的精神和范围内。
Claims (6)
1.一种P2P流媒体数据请求的均衡方法,包括:
步骤10)、数据请求到达本地缓冲区末端时,根据各入节点所能提供的数据量大小对所述入节点排序;其中本地节点向某几个节点请求数据,被请求的节点称为本地节点的入节点,本地节点称为被请求节点的出节点;
步骤20)、将所述各个入节点所能提供的数据量均衡分配给数据请求节点,其中排序完成后,计算各入节点中后一个入节点相对于前一个入节点的特有的数据包数目,如果前一个入节点的特有的数据包数目大于后一个入节点的特有的数据包数目,这两个入节点均分二者都特有的数据包,分配给所述数据请求节点。
2.权利要求1的方法,其中,步骤10)中,按照所述各个入节点的缓冲区映像中最大数据包序列号的大小对所述各个入节点从小到大排序。
3.权利要求1的方法,其中,所述方法进一步包括:
步骤210)、分别计算后一个入节点相对于前一个入节点特有的数据包的数目;
步骤220)、从后往前分别比较每个入节点相对于前一个入节点所特有的数据包的数目的大小;
步骤230)、如果某入节点相对于前一个入节点特有的数据包的数目小于后一个入节点相对于该入节点所特有的数据包数目,将该入节点设置为下一次均衡的结束点;
步骤240)、如果某入节点相对于前一个入节点特有的数据包的数目大于后一个入节点相对于该入节点所特有的数据包的数目,该入节点就与其后一个入节点均分该后一个入节点相对于该所述前一个入节点的特有数据段,该入节点分配所述数据段的低端部分数据,该后一入节点分配所述数据段的高端部分数据,对每一个入节点循环进行均分,直至对所有入节点都进行过均衡。
4.权利要求1的方法,其中,如果再有数据请求到达本地缓冲区的末端,选择上次向各个入节点请求数目的比例分配给各个入节点相应的数据请求量。
5.权利要求1的方法,其中,如果再有数据请求到达本地缓冲区的末端,选择上上次向各个入节点请求数目的比例分配给各个入节点相应的数据请求量。
6.权利要求1的方法,其中,如果所述入节点可供请求的最新数据数目小于各上上次向各个入节点请求数目,下次请求的初始量将设置为各个入节点正常请求量的平均值,并且,最终根据向各个入节点获取的数据数目来决定数据请求量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101795839A CN101459584B (zh) | 2007-12-14 | 2007-12-14 | 一种p2p流媒体数据请求末端处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101795839A CN101459584B (zh) | 2007-12-14 | 2007-12-14 | 一种p2p流媒体数据请求末端处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101459584A CN101459584A (zh) | 2009-06-17 |
CN101459584B true CN101459584B (zh) | 2011-03-16 |
Family
ID=40770223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101795839A Expired - Fee Related CN101459584B (zh) | 2007-12-14 | 2007-12-14 | 一种p2p流媒体数据请求末端处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101459584B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088414B (zh) * | 2011-03-07 | 2012-07-18 | 江苏科技大学 | 随机和弃头结合的被动队列管理的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1643716A1 (en) * | 2004-09-03 | 2006-04-05 | Microsoft Corporation | A system and method for receiver driven streaming in a peer-to-peer network |
CN1845530A (zh) * | 2006-05-19 | 2006-10-11 | 清华大学 | 基于策略优化的流媒体资源分配方法 |
-
2007
- 2007-12-14 CN CN2007101795839A patent/CN101459584B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1643716A1 (en) * | 2004-09-03 | 2006-04-05 | Microsoft Corporation | A system and method for receiver driven streaming in a peer-to-peer network |
CN1845530A (zh) * | 2006-05-19 | 2006-10-11 | 清华大学 | 基于策略优化的流媒体资源分配方法 |
Non-Patent Citations (1)
Title |
---|
傅建明等.P2P中一种使用缓存和测量的节点选择模式.《电子学报》.2006,第34卷(第8期), * |
Also Published As
Publication number | Publication date |
---|---|
CN101459584A (zh) | 2009-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9344369B2 (en) | System and methods for distributed quality of service enforcement | |
US8973067B2 (en) | Methods and apparatus for managing network resources used by multimedia streams in a virtual pipe | |
US7283472B2 (en) | Priority-based efficient fair queuing for quality of service classification for packet processing | |
US6917591B2 (en) | Methods, systems and computer program products for bandwidth allocation in a multiple access system | |
CN108234340A (zh) | 基于流控制信用的自适应路由 | |
CN104767694A (zh) | 一种面向Fat-Tree数据中心网络架构的数据流转发方法 | |
CN101394362B (zh) | 基于流分片的对多核网络处理器进行负载均衡的方法 | |
CN104641609A (zh) | 用于在线路卡的接口控制模块之间传送分组的方法和装置 | |
JP4163044B2 (ja) | 帯域制御方法およびその帯域制御装置 | |
CN107579925B (zh) | 报文转发方法及装置 | |
CN107332766B (zh) | 一种基于软件定义网络流调度下的提高网络吞吐量的方法 | |
CN104995872A (zh) | 带有无源互连和分布式无交换机交换的路由器 | |
WO2022031880A1 (en) | Local and global quality of service shaper on ingress in a distributed system | |
CN109257282B (zh) | 一种数据传输方法及装置 | |
CN104995884A (zh) | 分布式无交换机互连 | |
CN101459585B (zh) | 一种p2p流媒体数据请求方法 | |
CN101459584B (zh) | 一种p2p流媒体数据请求末端处理方法 | |
US7836201B2 (en) | Methods and systems for providing efficient provisioning of data flows | |
CN1303797C (zh) | 测定ip话音网络的方法 | |
WO2008089667A1 (fr) | Procédé et appareil destinés à réduire une perte de service dans un groupe d'ajout de liens | |
CN101053222B (zh) | 用于传送以数据分组的形式供使用的数据的方法 | |
CN105009602A (zh) | 无源连接光模块 | |
US7339953B2 (en) | Surplus redistribution for quality of service classification for packet processing | |
CN107409059B (zh) | 混合网络中的基于量的在线计费 | |
CN103999404A (zh) | 针对服务质量支持的第三版互联网组管理协议 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110316 Termination date: 20131214 |