一种优化域间流量的重叠网络构建方法.pdf

上传人:g**** 文档编号:4067133 上传时间:2018-08-13 格式:PDF 页数:19 大小:2.46MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510006008.3

申请日:

2015.01.07

公开号:

CN104506958A

公开日:

2015.04.08

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04N 21/61申请日:20150107|||公开

IPC分类号:

H04N21/61(2011.01)I; H04N21/647(2011.01)I; H04N21/258(2011.01)I

主分类号:

H04N21/61

申请人:

电子科技大学

发明人:

刘梦娟; 马小栓; 罗绪成; 王巍

地址:

611731四川省成都市高新西区西源大道2006号

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

P2P直播应用会产生大量跨自治域的网络流量,本发明公开一种P2P直播系统的重叠网络构建方法,针对域间流量进行优化,同时保证直播视频的播放质量。方法包括:第一,根据自治域之间的物理链路延迟及每个自治域需要建立的输入域间连接数,确定重叠网络中各自治域之间的互连关系;第二,根据每个自治域需要建立的域间连接数目和域内的用户数目,确定每个自治域数据传输的骨干节点和核心节点;第三,在各自治域的核心节点之间建立实际的单向域间连接,用于不同自治域之间的数据单向传输;第四,在各自治域内部建立核心节点、骨干节点、普通节点之间的双向域内连接,用于自治域内部的数据双向传输。

权利要求书

权利要求书1.  一种优化域间流量的重叠网络构建方法,其特征在于,包括以下步骤:步骤1、根据自治域之间的物理链路延迟,计算重叠网络中需要建立的域间连接,得到自治域互连关系矩阵Link_AS,其中视频服务器所在的自治域为AS0,如果Li,j为n表示自治域i需要建立n条指向自治域j的域间数据传输连接,Li,j的初始值设置为0,NAS表示重叠网络中所包含的自治域个数;Link_AS=L0,1L0,2...L0,NAS-1L1,1L1,2...L1,NAS-1............LNAS-1,1LNAS-1,2...LNAS-1,NAS-1NAS×(NAS-1)]]>步骤2、根据每个自治域需要建立的域间连接数目和域内部的用户数目,确定每个自治域数据传输的骨干节点和核心节点,其中核心节点用于建立不同自治域之间的域间连接,骨干节点用于在自治域内部的数据中继,每个自治域选择的骨干节点的个数由该自治域需要建立的输入域间连接数、输出域间连接数、自治域内的用户节点数、以及用户节点上传带宽等因素综合决定,核心节点从骨干节点中选择,核心节点数由该自治域的输入域间连接数决定;步骤3、根据自治域互连关系矩阵,在各自治域的核心节点之间建立跨自治域的域间连接,用于不同自治域之间的数据单向传输,域间连接在传输数据包时是单向的,只能由数据提供节点发送数据包给数据接收节点,但是数据收发双方可利用域间连接交换数据包请求、应答、数据包缓存情况等控制信息;步骤4、在每个自治域内部各节点之间建立双向域内连接,包括核心节点之间的连接,骨干节点之间的连接,普通节点之间的连接,以及核心节点、骨干节点、普通节点之间的连接,域内连接允许节点之间双向传输数据包以及双向交互控制消息。2.  根据权利要求1所述的一种优化域间流量的重叠网络构建方法,其特征在于,步骤1所述的计算重叠网络中需要建立的域间连接的方法为:1.  1)、确定每个自治域需要建立的提供数据输入的输入域间连接的数目,记为IN(ASi)(i=1,2…,NAS-1),该数目根据当前重叠网络中包含的自治域个数以及每个自治域所包含的用户数进行设置,所述输入域间连接是指从自治域i到自治域j的域间连接,该连接对于自治域i是输出域间连接,对于自治域j是输入域间连接;1.  2)、根据每个自治域需要建立的输入域间连接数目IN(ASi),确定每个自治域需要建立的域间连接,即确定需要与自治域ASi(i=1,2…,NAS-1)建立输入域间连接的输入域集合,具体方法为:1.  2.1)、根据自治域之间的物理链路延迟,计算从视频服务器所在的源自治域AS0到每个其他自治域经过0、1、2…M个自治域的可达路径,M是根据当前 自治域个数设定的用于控制域间路径长度的阈值,即从源自治域AS0到其他自治域ASi(i=1,2…,NAS-1)的所有可达路径的域间路径长度均小于等于M,所述从源自治域AS0到自治域ASi的域间路径长度是指该路径除源自治域和目的自治域外,所经过的自治域个数,每个自治域的可达路径集合记为{PATH(ASi)}(i=1,2…,NAS-1);1.  2.2)、计算{PATH(ASi)}中每条可达路径的域间链路总延迟,选择域间链路总延迟最小的可达路径,记为AS0→…→ASs→ASi,根据该路径确定自治域ASi需要建立的1条输入域间连接为ASs→ASi,将Link_AS矩阵中Ls,i的值自加1,同时将ASs加入到ASi的输入域集合{IN_AS}中,并从ASi的可达路径集合中将包含域间链路ASs→ASi的所有可达路径删除;1.  2.3)、判断自治域ASi目前确定的输入域间连接数是否达到需要建立的输入域间连接数目IN(ASi),如果达到,则执行步骤1.2.5;如果没有达到需要建立的输入域间连接数,则执行步骤1.2.4;1.  2.4)、从剩余可达路径集合中选择域间链路总延迟最短的可达路径,记为AS0→…→ASm→ASi,如果该路径的域间链路总延迟超过设置的允许的最大延迟,则从已经确定的ASi的输入域集合{IN_AS}中随机选择自治域ASj(ASj∈{IN_AS})建立新的输入域间连接,同时将Link_AS矩阵中Lj,i的值自加1;如果最短可达路径的域间链路总延迟在允许范围内,则根据最短路径确定自治域ASi需要建立的新的输入域间连接为ASm→ASi,将Link_AS矩阵中Lm,i的值自加1,将ASm加入到ASi的输入域集合中,并从ASi的可达路径集合中将包含域间链路ASm→ASi的所有可达路径删除,然后返回步骤1.2.3重复执行,继续确定新的输入域间连接;1.  2.5)、判断所有自治域(源自治域除外)的输入域间连接是否都已确定,如果仍有自治域的输入域间连接还没全部确定,则返回步骤1.2.1,重复执行,直到为所有自治域确定其全部输入域间连接为止,最终得到表示自治域互连关系的矩阵Link_AS。3.  根据权利要求1所述的一种优化域间流量的重叠网络构建方法,其特征在于,步骤3所述的在各自治域的核心节点之间建立跨自治域的域间连接的方法为:3.  1)、遍历自治域互连关系矩阵Link_AS,如果Li,j为n表示自治域i需要建立n条指向自治域j的域间连接;3.  2)、从自治域i的核心节点中,随机选择没有建立输出域间连接的核心节点,作为该输出域间连接的数据提供节点;如果自治域i的所有核心节点都已经建立至少1条输出域间连接,则随机选择1个核心节点作为该输出域间连接的数据提供节点;3.  3)、将自治域j中的核心节点按照上传带宽降序排列,选择未建立输入域间连接的上传带宽最大的核心节点作为该输入域间连接的数据接收节点;3.  4)、在选定的数据提供节点和数据接收节点之间建立实际的域间连接,该连接在传输视频数据包时是单向的,只能由数据提供节点发送数据包给数据接收节点,但是数据收发双方可利用该连接交换数据包请求、请求应答、数据包缓存情况等控制信息;3.  5)、判断自治域i和自治域j之间建立的域间连接数是否达到Li,j表示的值,如果没有达到,返回步骤3.2继续建立自治域i、j之间的域间连接,如果域间连接数达到Li,j表示的值,则继续遍历自治域互连关系矩阵,建立其他自治域之间的域间连接,直到建立完所有域间连接为止。

说明书

说明书一种优化域间流量的重叠网络构建方法
技术领域
本发明属于互联网视频应用领域,特别涉及一种用于P2P直播系统的重叠网络构建方法。
背景技术
随着P2P直播系统在互联网上广泛部署,P2P直播应用给互联网的骨干链路带来了巨大的流量压力,特别是跨自治域的网络流量导致互联网服务提供商昂贵的带宽开销。究其原因是P2P直播系统是运行在互联网应用层上,系统中位于不同自治域的用户节点通过随机选择邻居节点,建立数据传输连接。因此,目前的P2P直播系统采用的重叠网络构建方法会产生大量跨自治域的连接及流量。如图1所示,自治域AS0、AS1和AS2之间的域间连接是随机建立的,域间连接的数量不可控制。优化域间流量最直接的方法是将数据传输尽可能限制在自治域内部,减少域间数据传输,即用户节点应该尽可能选择位于同一自治域内的用户节点作为邻居节点,仅保留必要的跨域连接,用于自治域之间的数据传输。但是完全的本地化方案会使系统变得脆弱,从而影响直播视频的播放质量,如图2所示,如果AS0和AS1的域间连接发生拥塞,出现数据包丢失的情况,后续自治域AS1的所有用户节点都可能受到影响,即使采用重传机制也会使数据包递交到自治域AS1中用户节点的延迟大幅上升,从而影响视频的播放质量。
一个良好的折中方法是控制域间连接的数目,使域间连接具有一定冗余,如图3所示,自治域AS2有2条数据传输的域间连接,因此可以分别从自治域AS0和AS1获取数据,即使AS0到AS2的域间数据传输连接发生拥塞,AS2的用户节点还可以通过另一条域间连接从AS1获取数据。另一方面,如果从数据源端到接收者的数据传输路径所经过的自治域太多,即数据包传输路径包含的域间连接太多,会严重影响数据递交延迟,导致视频播放质量下降。本发明提供一种P2P直播系统的重叠网络构建方法,用于建立视频服务器和用户节点之间、以及用户节点相互之间的数据传输连接。该方法通过控制系统用户建立的跨自治域的连接数量,达到优化域间流量的目的;通过限制数据包递交到每个用户节点的传输路径所经过的最大自治域数量,优化数据包递交延迟,从而保证直播视频的播放质量。本发明只涉及P2P直播系统中节点之间数据传输连接的建立方法,不包含数据包的调度和重传机制。在开发实际的P2P直播系统时,本发明提供的重叠网络构建方法需要与数据包调度和重传机制配合使用。
发明内容
本发明的目的在于控制P2P直播系统产生的跨自治域的网络流量,同时保证直播视频的播放质量。为实现上述发明目的,本发明提出一种优化域间流量的重叠网络构建方法,其特征在于,重叠网络中跨自治域的数据传输是由域间连接承担,域间连接是单方向的,只能由域间连接的发送节点向域间连接的接收节点传输数据;每个自治域根据需要维护若干条输入域间连接用于从其他自治域获取数据,同时维护若干条输出域间连接用于向其他自治域提供数据;重叠网络中总的域间连接数是可控的,且能保证从视频服务器到每个用户节点的数据传输路径所经过的自治域个数是受限制的。
本发明提出的一种优化域间流量的重叠网络构建方法,包括以下步骤:
步骤1、根据自治域之间的物理链路延迟,计算重叠网络中需要建立的域间连接,得到自治域互连关系矩阵,用Link_AS表示,其中视频服务器所在的自治域为AS0,如果Li,j设置为n表示自治域i需要建立n条指向自治域j的域间数据传输连接,Li,j的初始值设置为0,NAS表示重叠网络中所包含的自治域个数,域间连接的具体计算方法如下:
Link_AS=L0,1L0,2···L0,NAS-1L1,1L1,2···L1,NAS-1············LNAS-1,1LNAS-1.2···LNAS-1,NAS-1NAS×(NAS-1)]]>
1.1)、确定每个自治域需要建立的提供数据输入的输入域间连接的数目,记为IN(ASi)(i=1,2…,NAS-1),该数目根据当前重叠网络中的自治域个数以及每个自治域所包含的用户数进行设置,所述输入域间连接是指从自治域i到自治域j的域间连接,该连接对于自治域i是输出域间连接,对于自治域j是输入域间连接;
1.2)、根据每个自治域需要建立的输入域间连接数目IN(ASi),确定每个自治域需要建立的域间连接,即确定需要与自治域ASi(i=1,2…,NAS-1)建立输入域间连接的输入自治域集合,具体方法为:
1.2.1)、根据自治域之间的物理链路延迟,计算从视频服务器所在的源自治域AS0到每个其他自治域经过0、1、2…M个自治域的可达路径,M是根据当前自治域个数设定的用于控制域间路径长度的阈值,即从源自治域AS0到其他自治域ASi(i=1,2…,NAS-1)的所有可达路径的域间路径长度均小于等于M,所述从源自治域AS0到自治域ASi的域间路径长度是指该路径除源自治域和目的自治域外,所经过的自治域个数,每个自治域的可达路径集合记为{PATH(ASi)}(i=1,2…,NAS-1);
1.2.2)、计算{PATH(ASi)}中每条可达路径的域间链路总延迟,选择域间链 路总延迟最小的可达路径,记为AS0→…→ASs→ASi,根据该路径确定自治域ASi需要建立的1条输入域间连接为ASs→ASi,将Link_AS矩阵中Ls,i的值自加1,同时将ASs加入到ASi的输入域集合{IN_AS}中,从ASi的可达路径集合中将包含域间连接ASs→ASi的所有可达路径删除;
1.2.3)、判断自治域ASi建立的输入域间连接数是否达到需要建立的输入域间连接数目IN(ASi),如果达到,则执行步骤1.2.5;如果没有达到需要建立的输入域间连接数,则执行步骤1.2.4;
1.2.4)、从剩余可达路径集合中选择域间链路总延迟最短的可达路径,记为AS0→…→ASm→ASi,如果该路径的域间链路总延迟超过系统设置的最大延迟范围,则从已经确定的ASi的输入域集合{IN_AS}中随机选择自治域ASj(ASj∈{IN_AS})建立新的输入域间连接,同时将Link_AS矩阵中Lj,i的值自加1;如果最短可达路径的域间链路总延迟在允许范围内,则根据最短路径确定自治域ASi需要建立的输入域间连接为ASm→ASi,将Link_AS矩阵中Lm,i的值自加1,将ASm加入到ASi的输入域集合中,从ASi的可达路径集合中将包含域间连接ASm→ASi的所有可达路径删除,然后返回步骤1.2.3重复执行,继续确定新的输入域间连接;
1.2.5)、判断所有自治域(源自治域除外)的输入域间连接是否都已确定,如果仍有自治域的输入域间连接还没全部确定,则返回步骤1.2.1,重复执行,直到为所有自治域确定其全部输入域间连接为止,最终得到表示自治域互连关系的矩阵Link_AS;
步骤2、根据每个自治域需要建立的域间连接数目和域内部的用户数目,确定每个自治域数据传输的骨干节点和核心节点,其中核心节点用于建立不同自治域之间的域间连接,骨干节点用于在自治域内部作为数据传输的中继,每个自治域的骨干节点个数由该自治域需要建立的输入域间连接数、输出域间连接数、自治域内的用户节点数、以及用户节点上传带宽等因素综合决定,核心节点从骨干节点中选择,核心节点个数由该自治域的输入域间连接数决定;
步骤3、根据自治域互连关系矩阵,在各自治域的核心节点之间建立跨自治域的域间连接,用于不同自治域之间的数据单向传输,具体建立方法如下:
3.1)、遍历自治域互连关系矩阵Link_AS,如果Li,j为n表示自治域i需要建立n条指向自治域j的域间连接;
3.2)、从自治域i的核心节点中,随机选择没有建立输出域间连接的核心节点,作为该输出域间连接的数据提供节点;如果自治域i的所有核心节点都已经建立至少1条输出域间连接,则随机选择1个核心节点作为该输出域间连接的数据提供节点;
3.3)、将自治域j中的核心节点按照上传带宽降序排列,选择未建立输入域间连接的上传带宽最大的核心节点作为该输入域间连接的数据接收节点;
3.4)、在选定的数据提供节点和数据接收节点之间建立实际的域间连接,该连接在传输视频数据包时是单向的,只能由数据提供节点发送数据包给数据接收节点,但是数据收发双方可利用该连接交换数据包请求、请求应答、数据包缓存情况等控制信息;
3.5)、判断自治域i和自治域j之间建立的域间连接数是否达到Li,j表示的值,如果没有达到,返回步骤3.2继续建立自治域i、j之间的域间连接,如果域间连接数达到Li,j表示的值,则继续遍历自治域互连关系矩阵,建立其他自治域之间的域间连接,直到建立完所有域间连接为止;
步骤4、在每个自治域内部各节点之间建立域内连接,包括核心节点之间的连接,骨干节点之间的连接,普通节点之间的连接,以及核心节点、骨干节点、普通节点之间的连接,域内连接允许自治域内的节点之间双向传输数据包以及双向交互控制消息。
附图说明
图1是本发明背景技术中描述的采用随机方案建立数据传输连接的重叠网络示意图;
图2是本发明背景技术中描述的采用完全本地化策略建立数据传输连接的重叠网络示意图;
图3是本发明背景技术中描述的采用域间流量优化策略建立数据传输连接的重叠网络示意图;
图4是本发明提供的重叠网络构建方法的整体流程图;
图5是本发明提供的计算域间连接的一种具体实施方式的流程图;
图6是本发明提供的核心节点之间建立域间连接的一种具体实施方式的流程图;
图7是本发明提供的自治域内各节点之间建立域内连接的一种具体实施方式的流程图;
图8是本发明提供的实施例所建立的5个自治域的域间连接的示意图;
图9是本发明提供的实施例所建立的自治域AS1的域内连接的示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图4是本发明提供的一种优化域间流量的重叠网络构建方法的整体流程,步骤包括:
步骤1、根据自治域之间的物理链路延迟,计算重叠网络中需要建立的域间连接,得到自治域互连关系矩阵Link_AS,具体方法如图5所示:
1.1)、确定每个自治域需要建立的提供数据输入的输入域间连接的数目,记为IN(ASi)(i=1,2…,NAS-1),该数目根据当前重叠网络中的自治域个数以及每个自治域的用户节点数等因素进行设置,所述输入域间连接是指从自治域i到自治域j的域间连接,该连接对于自治域i是输出域间连接,对于自治域j是输入域间连接;
计算自治域输入域间连接数的一种具体实施方法如公式(1)所示,其中NAS是重叠网络中自治域的个数,M是允许的数据传输路径经过的自治域的最大个数,是系统设定的用于控制域间路径长度的阈值,假设自治域个数为10,M为2,IN(ASi)=2,即每个自治域的输入域间连接数为2;

1.2)、根据每个自治域需要建立的输入域间连接数目IN(ASi),确定每个自治域需要建立的域间连接,即确定需要与自治域ASi(i=1,2…,NAS-1)建立输入域间连接的输入自治域集合,具体方法为:
1.2.1)、根据自治域之间的物理链路延迟,计算从视频服务器所在的源自治域AS0到每个其他自治域经过0、1、2…M个自治域的可达路径,M是根据当前自治域个数设定的用于控制域间路径长度的阈值,即从源自治域AS0到其他自治域ASi(i=1,2…,NAS-1)的所有可达路径的域间路径长度均小于等于M,所述从源自治域AS0到自治域ASi的域间路径长度是指该路径除源自治域和目的自治域外,所经过的自治域个数,每个自治域的可达路径集合记为{PATH(ASi)}(i=1,2…,NAS-1);
例如,当前系统中有5个自治域,分别是AS0、AS1、AS2、AS3、AS4,M为1,从源自治域AS0到AS1的符合域间路径长度限制的可达路径集合为:{AS0→AS1,AS0→AS2→AS1,AS0→AS3→AS1,AS0→AS4→AS1};
1.2.2)、计算{PATH(ASi)}中每条可达路径的域间链路总延迟,选择域间链路总延迟最小的可达路径,记为AS0→…→ASs→ASi,根据该路径确定自治域ASi需要建立的输入域间连接为ASs→ASi,将Link_AS矩阵中Ls,i的值自加1,同时将ASs加入到ASi的输入域集合{IN_AS}中,并从ASi的可达路径集合中将包含域间链路ASs→ASi的所有可达路径删除;
1.2.3)、判断自治域ASi确定建立的输入域间连接数是否达到需要建立的输 入域间连接数目IN(ASi),如果达到,则执行步骤1.2.5;如果没有达到需要建立的输入域间连接数,则执行步骤1.2.4;
1.2.4)、从剩余可达路径集合中选择域间链路总延迟最短的可达路径,记为AS0→…→ASm→ASi,如果该路径的域间链路总延迟超过设置的最大延迟范围,则从已经确定的ASi的输入域集合{IN_AS}中随机选择自治域ASj(ASj∈{IN_AS})建立新的输入域间连接,同时将Link_AS矩阵中Lj,i的值自加1;如果最短可达路径的域间链路总延迟在允许范围内,则根据最短路径确定自治域ASi需要建立的输入域间连接为ASm→ASi,将Link_AS矩阵中Lm,i的值自加1,将ASm加入到ASi的输入域集合中,从ASi的可达路径集合中将包含域间连接ASm→ASi的所有可达路径删除,然后返回步骤1.2.3重复执行,继续确定新的输入域间连接;
1.2.5)、判断所有自治域(源自治域除外)的输入域间连接是否都已确定,如果仍有自治域的输入域间连接还没全部确定,则返回步骤1.2.1,重复执行,直到为所有自治域确定其全部输入域间连接为止,最终得到表示自治域互连关系的矩阵Link_AS;
步骤2、根据每个自治域需要建立的域间连接数目和域内部的用户数目,确定每个自治域数据传输的骨干节点和核心节点,每个自治域选择的骨干节点的个数由该自治域需要建立的输入域间连接数、输出域间连接数、自治域内的用户节点数、以及用户节点上传带宽等因素综合决定,核心节点从骨干节点中选择,核心节点数由该自治域的输入域间连接数决定;
选择骨干节点的一种具体实施方法如下:将每个自治域中的用户节点按照其上传带宽由大到小降序排列,选择上传带宽大的用户节点作为骨干节点,骨干节点的个数super_num(ASi)由公式(2)决定,其中OUT(ASi)表示ASi的输出域间连接数,IN(ASi)表示ASi的输入域间连接数,SP(ASi)表示ASi中选择出的骨干节点集合,band(p)表示骨干节点的上传带宽,VR是直播视频的流速率,|P(ASi)|是ASi中用户节点的个数,α是考虑骨干节点上传带宽因素,要求骨干节点提供的上传带宽具有一定的冗余,α的值要求大于1,β是考虑骨干节点的个数与自治域中的用户数有关,β的值通常小于0.5;
super_num(ASi)=max{Num_a(ASi),|SP(ASi)|,Num_b(ASi)}      (2)
其中:
Num_a(ASi)=max{OUT(ASi),IN(ASi)}
Num_b(ASi)=|P(ASi)|×βlog(|P(ASi)|)]]>
Σp∈SP(ASi)band(p)≥α×max{OUT(ASi),IN(ASi)}×VR]]>
选择核心节点的一种具体实施方法如下:从选择的骨干节点中,选择上传带宽最大的前IN(ASi)个节点作为核心节点;
例如,自治域AS1的输入连接数为3,输出连接数为4,内部节点数为100,节点按上传带宽降序排序,带宽依此为{5M,5M,5M,4M,4M,4M,2M,2M,2M,2M,2M,2M,…},α=3,β=0.2则:
Num_a(AS1)=max{3,4}=4
Num_b(AS1)=|P(AS1)|×βlog(|P(AS1)|)=100×0.2log100=10]]>
α×max{OUT(AS1),IN(AS1)}×VR=3×4×1Mbps=12Mbps⇒|SP(AS1)|=3]]>
super_num(AS1)=max{4,3,10}=10
因此,最终选择上传带宽最大的10个用户节点作为骨干节点,其中带宽最大的前3个节点作为核心节点,剩余7个是普通骨干节点;
步骤3、根据自治域互连关系矩阵,在各自治域的核心节点之间建立跨自治域的域间连接,用于不同自治域之间的数据单向传输,具体建立方法如图6所示:
3.1)、遍历自治域互连关系矩阵Link_AS,如果Li,j为n表示自治域i需要建立n条指向自治域j的域间连接,该域间连接对于自治域i是输出域间连接,对于自治域j是输入域间连接;
3.2)、从自治域i的核心节点中,随机选择没有建立输出域间连接的核心节点,作为该输出域间连接的数据提供节点;如果自治域i的所有核心节点都已经建立至少1条输出域间连接,则随机选择1个核心节点作为该输出域间连接的数据提供节点;
3.3)、将自治域j中的核心节点按照上传带宽降序排列,选择未建立输入域间连接的上传带宽最大的核心节点作为该输入域间连接的数据接收节点;
3.4)、在选定的数据提供节点和数据接收节点之间建立实际的域间连接,该连接在传输视频数据包时是单向的,只能由数据提供节点发送数据包给数据接收节点,但是数据收发双方可利用该连接交换数据包请求、请求应答、数据块缓存情况等控制信息;
3.5)、判断自治域i和自治域j之间建立的域间连接数是否达到Li,j表示的值,如果没有达到,返回步骤3.2继续建立自治域i、j之间的域间连接,如果域间连接数达到Li,j表示的值,则继续遍历自治域互连关系矩阵,建立其他自治域 之间的域间连接,直到建立完所有域间连接为止;
步骤4、在每个自治域内部各节点之间建立域内连接,包括核心节点之间的连接,骨干节点之间的连接,普通节点之间的连接,以及核心节点、骨干节点、普通节点之间的连接,域内连接允许自治域内的节点之间双向传输数据包以及双向交互控制消息;
域内连接的一种具体实施方法如图7所示:
4.1)、计算每个核心节点和骨干节点所允许建立的最大连接数(即节点的度数上限),每个核心节点(骨干节点)的度数上限如公式(3)所示:

4.2)、确定每个普通节点的度数上限,该度数上限为系统设置的一个固定值,每个普通节点的度数上限是相等的;
4.3)、建立核心节点的域内连接,其中{core_unselect}集合是没有与同一个自治域内其他核心节点建立连接关系的核心节点集合,{core_select}集合是已经建立连接关系的核心节点集合,初始时为空,具体方法如下:
4.3.1)、将建立域内连接数未达到度数上限的核心节点加入到{core_unselect}集合中,从{core_unselect}中随机选择一个核心节点加入到{core_select}集合中;
4.3.2)、从{core_unselect}中随机选择一个核心节点,从{core_select}集合中随机选择一个域内连接数没有达到其度数上限的核心节点,在两个核心节点之间建立数据可双向传输的域内连接,同时将从{core_unselect}中选择的核心节点从{core_unselect}集合中删除,加入到{core_select}集合中;重复执行上述步骤,直到{core_unselect}集合空为止;如果在此过程中,{core_select}集合中的每个核心节点建立的域内连接数均已达到度数上限,则直接从{core_unselect}中随机选择一个核心节点加入到{core_select}集合中,继续执行步骤4.3.2;
4.3.3)、判断每个核心节点已经建立的域内连接数是否达到其度数上限,如果仍有核心节点的域内连接数未达到度数上限,则从域内的骨干节点中随机选择一个未与核心节点建立域内连接的骨干节点,与之建立域内连接;重复执行上述步骤,直到每个核心节点建立的域内连接数达到其度数上限,或者所有骨干节点均与核心节点建立域内连接为止;
4.3.4)、判断每个核心节点已经建立的域内连接数是否达到其度数上限,如果仍有核心节点的域内连接数未达到度数上限,则从域内的普通节点中随机选择一个未与核心节点建立域内连接的普通节点,与之建立域内连接;重复执行上述步骤,直到每个核心节点建立的域内连接数达到其度数上限,或者所有普通节点均与核心节点建立域内连接为止;
4.4)、建立骨干节点的域内连接,其中{super_unselect}集合是没有与同一个自治域内其他骨干节点建立连接关系的骨干节点集合,{super_select}集合是已经建立连接关系的骨干节点集合,初始时为空,具体方法如下:
4.4.1)、将建立域内连接数未达到度数上限的骨干节点加入到{super_unselect}集合中,从{super_unselect}中随机选择一个骨干节点加入到{super_select}集合中;
4.4.2)、从{super_unselect}中随机选择一个骨干节点,从{super_select}集合中随机选择一个已经建立的域内连接数没有达到其度数上限的骨干节点,在两个骨干节点之间建立数据可双向传输的域内连接,同时将从{super_unselect}中选择的核心节点从{super_unselect}集合中删除,加入到{super_select}集合中;重复执行上述步骤,直到{super_unselect}集合空为止;如果在此过程中,{super_select}集合中的每个骨干节点建立的域内连接数均已达到度数上限,则直接从{super_unselect}中随机选择一个骨干节点加入到{super_select}集合中,继续执行步骤4.4.2;
4.4.3)、判断每个骨干节点已经建立的域内连接数是否达到其度数上限,如果仍有骨干节点的域内连接数未达到度数上限,则从域内的普通节点中随机选择一个未与核心节点和骨干节点建立域内连接的普通节点,与之建立域内连接;重复执行上述步骤,直到每个骨干节点建立的域内连接数达到其度数上限,或者所有普通节点均与骨干节点或者核心节点建立域内连接为止;
4.5)、建立普通节点之间的域内连接,将建立域内连接数未达到度数上限的普通节点加入到{common}集合中,从{common}集合中随机选择两个普通节点建立域内连接,如果某个普通节点建立的域内连接数达到其度数上限,则将其从{common}集合中删除,重复执行上述步骤,直到所有普通节点建立的域内连接均达到其度数上限,或者{common}集合中只剩一个普通节点为止。
实施例
本发明提供一个具体的重叠网络构建的实施例。假设P2P直播系统中有5个自治域,分别为AS0,AS1,AS2,AS3,AS4,其中AS0为视频服务器所在的源自治域;每个自治域有10个用户节点,为了便于描述本实例中假设每个自治域中各用户节点的上传带宽分布均为{5M,4M,2M,2M,2M,2M,0.1M,0.1M,0.1M,0.1M}(bps),系统限制数据包从源自治域到其他自治域传输路径所经过的自治域个数为1,即M=1,自治域间的链路延迟矩阵Delay_AS,如公式(4)所示(单位为秒),其中Di,j表示ASi到ASj的物理链路延迟。
Delay_AS=D0,0D0,1D0,2D0,3D0,4D1,0D1,1D1,2D1,3D1,4D2,0D2,1D2,2D2,3D2,4D3,0D3,1D3,2D3,3D3,4D4,0D4,1D4,2D4,3D4,4=0.000.040.010.030.050.040.000.010.020.040.010.010.000.040.010.030.020.040.000.020.050.040.010.020.00---(4)]]>
基于上述假设条件,构建重叠网络的步骤包括:
步骤1、计算自治域互连关系矩阵Link_AS,具体方法为:
首先,根据公式(1)计算每个自治域的输入域间连接数;

然后,计算每个自治域的满足约束条件的所有可达路径集合{PATH(ASi)},计算结果如下:
PATH(AS1)=
{AS0→AS1,AS0→AS2→AS1,AS0→AS3→AS1,AS0→AS4→AS1}
PATH(AS2)=
{AS0→AS2,AS0→AS1→AS2,AS0→AS3→AS2,AS0→AS4→AS2}
PATH(AS3)=
{AS0→AS3,AS0→AS1→AS3,AS0→AS2→AS3,AS0→AS4→AS3}
PATH(AS4)=
{AS0→AS4,AS0→AS1→AS4,AS0→AS2→AS4,AS0→AS3→AS4}
上述可达路径的域间连接深度均小于等于M;
其次,根据自治域间的链路延迟矩阵,计算{PATH(ASi)}中每个自治域的所有可达路径包含的域间链路的总延迟;
自治域AS1的所有可达路径的总延迟计算如下:
delay(AS0→AS1)=0.04
delay(AS0→AS2→AS1)=0.01+0.01=0.02
delay(AS0→AS3→AS1)=0.03+0.02=0.05
delay(AS0→AS4→AS1)=0.05+0.04=0.09
路径AS0→AS2→AS1的总延迟最小,为0.02秒;将Link_AS矩阵中L2,1的值加1,L2,1=1;同时将AS2加入到AS1的输入域集合{IN_AS}中,IN_AS(AS1)={AS2},并将包含域间连接AS2→AS1的所有可达路径从PATH(AS1)中删去;
由于IN(AS1)=2,所以目前建立的域间连接数不满足需求,从剩余可达路径集合中选择域间链路总延迟最短的可达路径,记为AS0→AS1,该路径的域间链路总延迟在允许范围内,则根据该短路径确定自治域AS1需要建立的输入域间连接为AS0→AS1,将Link_AS矩阵中L0,1的值自加1,将AS0加入到AS1的输入域集合中,IN_AS(AS1)={AS0,AS2},并将包含域间链路AS0→AS1的所有可达路径从PATH(AS1)中删去;
判断自治域AS1目前建立的域间连接数已经达到其需求IN(AS1),重复上述步骤,可以确定AS2、AS3、AS4的输入域间连接如下:
IN_AS(AS2)={AS0,AS1},IN_AS(AS3)={AS0,AS2},IN_AS(AS4)={AS0,AS2}
得到自治域互连关系矩阵Link_AS,如公式(5)所示;
Link_AS=L0,1L0,2L0,3L0,4L1,1L1,2L1,3L1,4L2,1L2,2L2,3L2,4L3,1L3,2L3,3L3,4L4,1L4,2L4,3L4,4=11110100101100000000---(5)]]>
步骤2、确定每个自治域数据传输的骨干节点和核心节点;
首先确定自治域AS1的骨干节点,假设α=2,β=0.2,VR=1Mbps,根据公式(2)计算可得:
OUT(AS1)=1,IN(AS1)=2
Num_a(AS1)=max{OUT(AS1),IN(AS1)}=max{1,2}=2
Num_b(AS1)=|P(AS1)|×βlog(|P(AS1)|)=10×0.2log(10)=2]]>
Σp∈SP(AS1)band(p)≥α×max{OUT(AS1),IN(AS1)}×VR=2×2×1(Mbps)]]>
Σp∈SP(AS1)band(p)≥4Mbps,]]>故|SP(AS1)|=1
super_num(AS1)=max{Num_a(AS1),|SP(AS1)|,Num_b(AS1)}=max{2,1,2}=2
因此,可得AS1需要选择的骨干节点数是2,将AS1中用户节点按上传带宽 降序排列,带宽依次为{5M,4M,2M,2M,2M,2M,0.1M,0.1M,0.1M,0.1M},选择其中上传带宽最大的两个节点作为骨干节点,如果用pi(j)表示ASi中用户节点按上传带宽降序排列后的第j个用户节点,最终选择的AS1的骨干节点为p1(1),p1(2),上传带宽分别为5Mbps和4Mbps;
然后根据IN(AS1),从骨干节点中选择上传带宽最大的2个骨干节点作为核心节点,因此AS1的核心节点为p1(1),p1(2),没有普通骨干节点;
重复上述操作,可以计算如下:
super_num(AS0)=max{4,2,2}=4
最终选择的AS0的骨干节点为{5M,4M,2M,2M}对应的用户节点,即p0(1),p0(2),p0(3),p0(4),确定AS0的核心节点为p0(1),p0(2),p0(3),p0(4),没有普通骨干节点;
super_num(AS2)=max{3,2,2}=3
最终选择的AS2的骨干节点为{5M,4M,2M}对应的用户节点,即p2(1),p2(2),p2(3);确定AS2的核心节点为p2(1),p2(2),普通骨干节点为p2(3);
super_num(AS3)=max{2,1,2}=2
最终选择的AS3的骨干节点为{5M,4M}对应的用户节点,即p3(1),p3(2);确定AS3的核心节点为p3(1),p3(2),没有普通骨干节点;
super_num(AS4)=max{2,1,2}=2
最终选择的AS4的骨干节点为{5M,4M}对应的用户节点,即p4(1),p4(2);确定AS4的核心节点为p4(1),p4(2),没有普通骨干节点;
步骤3、根据Link_AS,在各自治域的核心节点之间建立跨自治域的域间连接,遍历矩阵Link_AS,首先得到L0,1=1,表示AS0需要建立1条指向AS1的输出域间连接,从AS0中随机选择没有建立输出域间连接的核心节点p0(2),作为该输出域间连接的数据提供节点;从AS1中选择未建立输入域间连接的上传带宽最大的核心节点作为该输入域间连接的数据接收节点,选择p1(1),建立从p0(2)到p1(1)节点之间实际的域间连接;同理,继续遍历矩阵Link_AS,完成所有域间连接,得到域间连接如下:
p0(2)→p1(1)、p0(3)→p2(1)、p0(1)→p3(1)、p0(4)→p4(1)、p1(1)→p2(2)、p2(1)→p1(2)、p2(2)→p3(2)、p2(2)→p4(2)
最终,建立的域间连接的示意图如图8所示;
步骤4、建立每个自治域各内部节点之间的域内连接,以自治域AS1为例,建立AS1的域内连接,假设普通节点的度数上限为4,每个核心节点的度数上限 由公式(3)计算:

p1(2)=4
对于普通节点,其度数上限为系统设定的上限4,因此有:
p1(3)=p1(4)=p1(5)=p1(6)=p1(7)=p1(8)=p1(9)=p1(10)=4
首先,建立核心节点的域内连接,初始时,集合core_unselect={p1(1),p1(2)},集合{core_select}为空;从{core_unselect}集合中随机选择一个核心节点加入到{core_select}集合中,这里选择p1(1)加入到{core_select}集合,此时core_unselect={p1(2)},core_select={p1(1)};从{core_unselect}中选择p1(2)与p1(1)建立数据可双向传输的域内连接,同时将p1(2)从{core_unselect}集合中删除,加入到{core_select}集合中,此时,{core_unselect}集合为空,核心节点间的互连结束;然后判断核心节点p1(1),p1(2)目前建立的域内连接域内连接数没有达到其度数上限,由于自治域AS1没有骨干节点,故从域内的普通节点中随机选择未与核心节点建立域内连接的普通节点,这里选择p1(5),p1(7),p1(8)与p1(1)建立域内连接,此时p1(1)满足度数上限4;选择p1(3),p1(9),p1(10)与p1(2)建立域内连接,此时p1(2)满足度数上限4,核心节点的域内连接建立过程结束,通过这一过程建立的域内连接如下:
p1(1)↔p1(2),p1(1)↔p1(5),p1(1)↔p1(7),p1(1)↔p1(8)]]>
p1(2)↔p1(3),p1(2)↔p1(9),p1(2)↔p1(10)]]>
其次,建立骨干节点的域内连接,由于自治域AS1没有骨干节点,因此这个步骤直接跳过;
最后,建立普通节点之间的域内连接,将建立域内连接数未达到度数上限的普通节点p1(3),p1(4),p1(5),p1(6),p1(7),p1(8),p1(9),p1(10)加入到{common}集合中,从{common}集合中随机选择两个普通节点建立域内连接,如果某个普通节点建立的域内连接数达到其度数上限,则将其从{common}集合中删除,重复执行上述步骤,直到所有普通节点建立的域内连接均达到其度数上限,或者{common}集合中只剩一个普通节点为止,通过这一过程建立的域内连接如下:
p1(3)↔p1(4),p1(3)↔p1(8),p1(3)↔p1(9),p1(4)↔p1(5),p1(4)↔p1(6),]]>
p1(4)↔p1(7),p1(5)↔p1(6),p1(5)↔p1(7),p1(6)↔p1(9),p1(6)↔p1(10),]]>
p1(7)↔p1(8),p1(8)↔p1(10),p1(9)↔p1(10);]]>
最终AS1的域内连接如图9所示,同理,可建立所有自治域的域内连接,最终完成重叠网络的构建。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

一种优化域间流量的重叠网络构建方法.pdf_第1页
第1页 / 共19页
一种优化域间流量的重叠网络构建方法.pdf_第2页
第2页 / 共19页
一种优化域间流量的重叠网络构建方法.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《一种优化域间流量的重叠网络构建方法.pdf》由会员分享,可在线阅读,更多相关《一种优化域间流量的重叠网络构建方法.pdf(19页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201510006008.3(22)申请日 2015.01.07H04N 21/61(2011.01)H04N 21/647(2011.01)H04N 21/258(2011.01)(71)申请人 电子科技大学地址 611731 四川省成都市高新西区西源大道 2006 号(72)发明人 刘梦娟 马小栓 罗绪成 王巍(54) 发明名称一种优化域间流量的重叠网络构建方法(57) 摘要P2P 直播应用会产生大量跨自治域的网络流量,本发明公开一种 P2P 直播系统的重叠网络构建方法,针对域间流量进行优化,同时保证直播视频的播放质量。方法包括 :第。

2、一,根据自治域之间的物理链路延迟及每个自治域需要建立的输入域间连接数,确定重叠网络中各自治域之间的互连关系;第二,根据每个自治域需要建立的域间连接数目和域内的用户数目,确定每个自治域数据传输的骨干节点和核心节点;第三,在各自治域的核心节点之间建立实际的单向域间连接,用于不同自治域之间的数据单向传输;第四,在各自治域内部建立核心节点、骨干节点、普通节点之间的双向域内连接,用于自治域内部的数据双向传输。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书11页 附图5页(10)申请公布号 CN 104506958 A(43)申请公布日 2015.04。

3、.08CN 104506958 A1/2 页21.一种优化域间流量的重叠网络构建方法,其特征在于,包括以下步骤 :步骤 1、根据自治域之间的物理链路延迟,计算重叠网络中需要建立的域间连接,得到自治域互连关系矩阵Link_AS,其中视频服务器所在的自治域为AS0,如 果 Li,j为n表示自治域 i 需要建立 n 条指向自治域 j 的域间数据传输连接,Li,j的初始值设置为 0,NAS表示重叠网络中所包含的自治域个数 ;步骤 2、根据每个自治域需要建立的域间连接数目和域内部的用户数目,确定每个自治域数据传输的骨干节点和核心节点,其中核心节点用于建立不同自治域之间的域间连接,骨干节点用于在自治域内部。

4、的数据中继,每个自治域选择的骨干节点的个数由该自治域需要建立的输入域间连接数、输出域间连接数、自治域内的用户节点数、以及用户节点上传带宽等因素综合决定,核心节点从骨干节点中选择,核心节点数由该自治域的输入域间连接数决定 ;步骤 3、根据自治域互连关系矩阵,在各自治域的核心节点之间建立跨自治域的域间连接,用于不同自治域之间的数据单向传输,域间连接在传输数据包时是单向的,只能由数据提供节点发送数据包给数据接收节点,但是数据收发双方可利用域间连接交换数据包请求、应答、数据包缓存情况等控制信息 ;步骤 4、在每个自治域内部各节点之间建立双向域内连接,包括核心节点之间的连接,骨干节点之间的连接,普通节点。

5、之间的连接,以及核心节点、骨干节点、普通节点之间的连接,域内连接允许节点之间双向传输数据包以及双向交互控制消息。2.根据权利要求1所述的一种优化域间流量的重叠网络构建方法,其特征在于,步骤所述的计算重叠网络中需要建立的域间连接的方法为 :1.1)、确定每个自治域需要建立的提供数据输入的输入域间连接的数目,记为 IN(ASi)(i 1,2,NAS-1),该数目根据当前重叠网络中包含的自治域个数以及每个自治域所包含的用户数进行设置,所述输入域间连接是指从自治域i到自治域j的域间连接,该连接对于自治域 i 是输出域间连接,对于自治域 j 是输入域间连接 ;1.2)、根据每个自治域需要建立的输入域间连。

6、接数目 IN(ASi),确定每个自治域需要建立的域间连接,即确定需要与自治域 ASi(i 1,2,NAS-1) 建立输入域间连接的输入域集合,具体方法为 :1.2.1)、根据自治域之间的物理链路延迟,计算从视频服务器所在的源自治域 AS0到每个其他自治域经过 0、1、2M 个自治域的可达路径,M 是根据当前自治域个数设定的用于控制域间路径长度的阈值,即从源自治域 AS0到其他自治域 ASi(i 1,2,NAS-1) 的所有可达路径的域间路径长度均小于等于 M,所述从源自治域 AS0到自治域 ASi的域间路径长度是指该路径除源自治域和目的自治域外,所经过的自治域个数,每个自治域的可达路径集合记为。

7、 PATH(ASi)(i 1,2,NAS-1) ;1.2.2)、计算 PATH(ASi) 中每条可达路径的域间链路总延迟,选择域间链路总延迟最权 利 要 求 书CN 104506958 A2/2 页3小的可达路径,记为 AS0 ASs ASi,根据该路径确定自治域 ASi需要建立的 1 条输入域间连接为 ASs ASi,将 Link_AS 矩阵中 Ls,i的值自加 1,同时将 ASs加入到 ASi的输入域集合 IN_AS 中,并从 ASi的可达路径集合中将包含域间链路 ASs ASi的所有可达路径删除;1.2.3)、判断自治域 ASi目前确定的输入域间连接数是否达到需要建立的输入域间连接数目 。

8、IN(ASi),如果达到,则执行步骤 1.2.5 ;如果没有达到需要建立的输入域间连接数,则执行步骤 1.2.4 ;1.2.4)、从剩余可达路径集合中选择域间链路总延迟最短的可达路径,记为 AS0 ASm ASi,如果该路径的域间链路总延迟超过设置的允许的最大延迟,则从已经确定的ASi的输入域集合IN_AS中随机选择自治域ASj(ASjIN_AS)建立新的输入域间连接,同时将 Link_AS 矩阵中 Lj,i的值自加 1 ;如果最短可达路径的域间链路总延迟在允许范围内,则根据最短路径确定自治域 ASi需要建立的新的输入域间连接为 ASm ASi,将 Link_AS矩阵中 Lm,i的值自加 1,。

9、将 ASm加入到 ASi的输入域集合中,并从 ASi的可达路径集合中将包含域间链路 ASm ASi的所有可达路径删除,然后返回步骤 1.2.3 重复执行,继续确定新的输入域间连接 ;1.2.5)、判断所有自治域(源自治域除外)的输入域间连接是否都已确定,如果仍有自治域的输入域间连接还没全部确定,则返回步骤 1.2.1,重复执行,直到为所有自治域确定其全部输入域间连接为止,最终得到表示自治域互连关系的矩阵 Link_AS。3.根据权利要求1所述的一种优化域间流量的重叠网络构建方法,其特征在于,步骤3所述的在各自治域的核心节点之间建立跨自治域的域间连接的方法为 :3.1)、遍历自治域互连关系矩阵 。

10、Link_AS,如果 Li,j为 n 表示自治域 i 需要建立 n 条指向自治域 j 的域间连接 ;3.2)、从自治域 i 的核心节点中,随机选择没有建立输出域间连接的核心节点,作为该输出域间连接的数据提供节点 ;如果自治域 i 的所有核心节点都已经建立至少 1 条输出域间连接,则随机选择 1 个核心节点作为该输出域间连接的数据提供节点 ;3.3)、将自治域 j 中的核心节点按照上传带宽降序排列,选择未建立输入域间连接的上传带宽最大的核心节点作为该输入域间连接的数据接收节点 ;3.4)、在选定的数据提供节点和数据接收节点之间建立实际的域间连接,该连接在传输视频数据包时是单向的,只能由数据提供节。

11、点发送数据包给数据接收节点,但是数据收发双方可利用该连接交换数据包请求、请求应答、数据包缓存情况等控制信息 ;3.5)、判断自治域 i 和自治域 j 之间建立的域间连接数是否达到 Li,j表示的值,如果没有达到,返回步骤 3.2 继续建立自治域 i、j 之间的域间连接,如果域间连接数达到 Li,j表示的值,则继续遍历自治域互连关系矩阵,建立其他自治域之间的域间连接,直到建立完所有域间连接为止。权 利 要 求 书CN 104506958 A1/11 页4一种优化域间流量的重叠网络构建方法技术领域0001 本发明属于互联网视频应用领域,特别涉及一种用于 P2P 直播系统的重叠网络构建方法。背景技术。

12、0002 随着 P2P 直播系统在互联网上广泛部署,P2P 直播应用给互联网的骨干链路带来了巨大的流量压力,特别是跨自治域的网络流量导致互联网服务提供商昂贵的带宽开销。究其原因是 P2P 直播系统是运行在互联网应用层上,系统中位于不同自治域的用户节点通过随机选择邻居节点,建立数据传输连接。因此,目前的 P2P 直播系统采用的重叠网络构建方法会产生大量跨自治域的连接及流量。如图 1 所示,自治域 AS0、AS1 和 AS2 之间的域间连接是随机建立的,域间连接的数量不可控制。优化域间流量最直接的方法是将数据传输尽可能限制在自治域内部,减少域间数据传输,即用户节点应该尽可能选择位于同一自治域内的用。

13、户节点作为邻居节点,仅保留必要的跨域连接,用于自治域之间的数据传输。但是完全的本地化方案会使系统变得脆弱,从而影响直播视频的播放质量,如图 2 所示,如果AS0 和 AS1 的域间连接发生拥塞,出现数据包丢失的情况,后续自治域 AS1 的所有用户节点都可能受到影响,即使采用重传机制也会使数据包递交到自治域 AS1 中用户节点的延迟大幅上升,从而影响视频的播放质量。0003 一个良好的折中方法是控制域间连接的数目,使域间连接具有一定冗余,如图 3所示,自治域AS2有2条数据传输的域间连接,因此可以分别从自治域AS0和AS1获取数据,即使 AS0 到 AS2 的域间数据传输连接发生拥塞,AS2 的。

14、用户节点还可以通过另一条域间连接从 AS1 获取数据。另一方面,如果从数据源端到接收者的数据传输路径所经过的自治域太多,即数据包传输路径包含的域间连接太多,会严重影响数据递交延迟,导致视频播放质量下降。本发明提供一种 P2P 直播系统的重叠网络构建方法,用于建立视频服务器和用户节点之间、以及用户节点相互之间的数据传输连接。该方法通过控制系统用户建立的跨自治域的连接数量,达到优化域间流量的目的 ;通过限制数据包递交到每个用户节点的传输路径所经过的最大自治域数量,优化数据包递交延迟,从而保证直播视频的播放质量。本发明只涉及 P2P 直播系统中节点之间数据传输连接的建立方法,不包含数据包的调度和重传。

15、机制。在开发实际的 P2P 直播系统时,本发明提供的重叠网络构建方法需要与数据包调度和重传机制配合使用。发明内容0004 本发明的目的在于控制 P2P 直播系统产生的跨自治域的网络流量,同时保证直播视频的播放质量。为实现上述发明目的,本发明提出一种优化域间流量的重叠网络构建方法,其特征在于,重叠网络中跨自治域的数据传输是由域间连接承担,域间连接是单方向的,只能由域间连接的发送节点向域间连接的接收节点传输数据 ;每个自治域根据需要维护若干条输入域间连接用于从其他自治域获取数据,同时维护若干条输出域间连接用于向说 明 书CN 104506958 A2/11 页5其他自治域提供数据 ;重叠网络中总的。

16、域间连接数是可控的,且能保证从视频服务器到每个用户节点的数据传输路径所经过的自治域个数是受限制的。0005 本发明提出的一种优化域间流量的重叠网络构建方法,包括以下步骤 :0006 步骤 1、根据自治域之间的物理链路延迟,计算重叠网络中需要建立的域间连接,得到自治域互连关系矩阵,用 Link_AS 表示,其中视频服务器所在的自治域为 AS0,如 果 Li,j设置为 n 表示自治域 i 需要建立 n 条指向自治域 j 的域间数据传输连接,Li,j的初始值设置为 0 ,NAS表示重叠网络中所包含的自治域个数,域间连接的具体计算方法如下 :0007 0008 1.1)、确定每个自治域需要建立的提供数。

17、据输入的输入域间连接的数目,记为IN(ASi)(i1,2,NAS-1),该数目根据当前重叠网络中的自治域个数以及每个自治域所包含的用户数进行设置,所述输入域间连接是指从自治域i到自治域j的域间连接,该连接对于自治域 i 是输出域间连接,对于自治域 j 是输入域间连接 ;0009 1.2)、根据每个自治域需要建立的输入域间连接数目 IN(ASi),确定每个自治域需要建立的域间连接,即确定需要与自治域 ASi(i 1,2,NAS-1) 建立输入域间连接的输入自治域集合,具体方法为 :0010 1.2.1)、根据自治域之间的物理链路延迟,计算从视频服务器所在的源自治域 AS0到每个其他自治域经过 0。

18、、1、2M 个自治域的可达路径,M 是根据当前自治域个数设定的用于控制域间路径长度的阈值,即从源自治域 AS0到其他自治域 ASi(i 1,2,NAS-1) 的所有可达路径的域间路径长度均小于等于 M,所述从源自治域 AS0到自治域 ASi的域间路径长度是指该路径除源自治域和目的自治域外,所经过的自治域个数,每个自治域的可达路径集合记为 PATH(ASi)(i 1,2,NAS-1) ;0011 1.2.2)、计算 PATH(ASi) 中每条可达路径的域间链路总延迟,选择域间链路总延迟最小的可达路径,记为 AS0 ASs ASi,根据该路径确定自治域 ASi需要建立的 1 条输入域间连接为 AS。

19、s ASi,将 Link_AS 矩阵中 Ls,i的值自加 1,同时将 ASs加入到 ASi的输入域集合 IN_AS 中,从 ASi的可达路径集合中将包含域间连接 ASs ASi的所有可达路径删除 ;0012 1.2.3)、判断自治域 ASi建立的输入域间连接数是否达到需要建立的输入域间连接数目 IN(ASi),如果达到,则执行步骤 1.2.5 ;如果没有达到需要建立的输入域间连接数,则执行步骤 1.2.4 ;0013 1.2.4)、从剩余可达路径集合中选择域间链路总延迟最短的可达路径,记为AS0 ASm ASi,如果该路径的域间链路总延迟超过系统设置的最大延迟范围,则从已经确定的 ASi的输入。

20、域集合 IN_AS 中随机选择自治域 ASj(ASj IN_AS) 建立新的输入域间连接,同时将 Link_AS 矩阵中 Lj,i的值自加 1 ;如果最短可达路径的域间链路总延迟在允许范围内,则根据最短路径确定自治域 ASi需要建立的输入域间连接为 ASm ASi,将Link_AS 矩阵中 Lm,i的值自加 1,将 ASm加入到 ASi的输入域集合中,从 ASi的可达路径集合中将包含域间连接 ASm ASi的所有可达路径删除,然后返回步骤 1.2.3 重复执行,继续确说 明 书CN 104506958 A3/11 页6定新的输入域间连接 ;0014 1.2.5)、判断所有自治域(源自治域除外)。

21、的输入域间连接是否都已确定,如果仍有自治域的输入域间连接还没全部确定,则返回步骤 1.2.1,重复执行,直到为所有自治域确定其全部输入域间连接为止,最终得到表示自治域互连关系的矩阵 Link_AS ;0015 步骤 2、根据每个自治域需要建立的域间连接数目和域内部的用户数目,确定每个自治域数据传输的骨干节点和核心节点,其中核心节点用于建立不同自治域之间的域间连接,骨干节点用于在自治域内部作为数据传输的中继,每个自治域的骨干节点个数由该自治域需要建立的输入域间连接数、输出域间连接数、自治域内的用户节点数、以及用户节点上传带宽等因素综合决定,核心节点从骨干节点中选择,核心节点个数由该自治域的输入域。

22、间连接数决定 ;0016 步骤 3、根据自治域互连关系矩阵,在各自治域的核心节点之间建立跨自治域的域间连接,用于不同自治域之间的数据单向传输,具体建立方法如下 :0017 3.1)、遍历自治域互连关系矩阵 Link_AS,如果 Li,j为 n 表示自治域 i 需要建立 n条指向自治域 j 的域间连接 ;0018 3.2)、从自治域 i 的核心节点中,随机选择没有建立输出域间连接的核心节点,作为该输出域间连接的数据提供节点 ;如果自治域 i 的所有核心节点都已经建立至少 1 条输出域间连接,则随机选择 1 个核心节点作为该输出域间连接的数据提供节点 ;0019 3.3)、将自治域 j 中的核心节。

23、点按照上传带宽降序排列,选择未建立输入域间连接的上传带宽最大的核心节点作为该输入域间连接的数据接收节点 ;0020 3.4)、在选定的数据提供节点和数据接收节点之间建立实际的域间连接,该连接在传输视频数据包时是单向的,只能由数据提供节点发送数据包给数据接收节点,但是数据收发双方可利用该连接交换数据包请求、请求应答、数据包缓存情况等控制信息 ;0021 3.5)、判断自治域 i 和自治域 j 之间建立的域间连接数是否达到 Li,j表示的值,如果没有达到,返回步骤 3.2 继续建立自治域 i、j 之间的域间连接,如果域间连接数达到 Li,j表示的值,则继续遍历自治域互连关系矩阵,建立其他自治域之间。

24、的域间连接,直到建立完所有域间连接为止 ;0022 步骤 4、在每个自治域内部各节点之间建立域内连接,包括核心节点之间的连接,骨干节点之间的连接,普通节点之间的连接,以及核心节点、骨干节点、普通节点之间的连接,域内连接允许自治域内的节点之间双向传输数据包以及双向交互控制消息。附图说明0023 图 1 是本发明背景技术中描述的采用随机方案建立数据传输连接的重叠网络示意图 ;0024 图 2 是本发明背景技术中描述的采用完全本地化策略建立数据传输连接的重叠网络示意图 ;0025 图 3 是本发明背景技术中描述的采用域间流量优化策略建立数据传输连接的重叠网络示意图 ;0026 图 4 是本发明提供的。

25、重叠网络构建方法的整体流程图 ;0027 图 5 是本发明提供的计算域间连接的一种具体实施方式的流程图 ;说 明 书CN 104506958 A4/11 页70028 图 6 是本发明提供的核心节点之间建立域间连接的一种具体实施方式的流程图 ;0029 图 7 是本发明提供的自治域内各节点之间建立域内连接的一种具体实施方式的流程图 ;0030 图 8 是本发明提供的实施例所建立的 5 个自治域的域间连接的示意图 ;0031 图 9 是本发明提供的实施例所建立的自治域 AS1的域内连接的示意图。具体实施方式0032 下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。

26、。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。0033 图 4 是本发明提供的一种优化域间流量的重叠网络构建方法的整体流程,步骤包括:0034 步骤 1、根据自治域之间的物理链路延迟,计算重叠网络中需要建立的域间连接,得到自治域互连关系矩阵 Link_AS,具体方法如图 5 所示 :0035 1.1)、确定每个自治域需要建立的提供数据输入的输入域间连接的数目,记为IN(ASi)(i1,2,NAS-1),该数目根据当前重叠网络中的自治域个数以及每个自治域的用户节点数等因素进行设置,所述输入域间连接是指从自治域i到自治域j的。

27、域间连接,该连接对于自治域 i 是输出域间连接,对于自治域 j 是输入域间连接 ;0036 计算自治域输入域间连接数的一种具体实施方法如公式(1)所示,其中NAS是重叠网络中自治域的个数,M 是允许的数据传输路径经过的自治域的最大个数,是系统设定的用于控制域间路径长度的阈值,假设自治域个数为 10,M 为 2,IN(ASi) 2,即每个自治域的输入域间连接数为 2 ;0037 0038 1.2)、根据每个自治域需要建立的输入域间连接数目 IN(ASi),确定每个自治域需要建立的域间连接,即确定需要与自治域 ASi(i 1,2,NAS-1) 建立输入域间连接的输入自治域集合,具体方法为 :003。

28、9 1.2.1)、根据自治域之间的物理链路延迟,计算从视频服务器所在的源自治域 AS0到每个其他自治域经过 0、1、2M 个自治域的可达路径,M 是根据当前自治域个数设定的用于控制域间路径长度的阈值,即从源自治域 AS0到其他自治域 ASi(i 1,2,NAS-1) 的所有可达路径的域间路径长度均小于等于 M,所述从源自治域 AS0到自治域 ASi的域间路径长度是指该路径除源自治域和目的自治域外,所经过的自治域个数,每个自治域的可达路径集合记为 PATH(ASi)(i 1,2,NAS-1) ;0040 例如,当前系统中有 5 个自治域,分别是 AS0、A S1、A S2、A S3、A S4,M。

29、 为 1,从源自治域AS0到AS1的符合域间路径长度限制的可达路径集合为 :AS0AS1,AS0AS2AS1,AS0AS3 AS1,AS0 AS4 AS1;0041 1.2.2)、计算 PATH(ASi) 中每条可达路径的域间链路总延迟,选择域间链路总延迟最小的可达路径,记为 AS0 ASs ASi,根据该路径确定自治域 ASi需要建立的输入说 明 书CN 104506958 A5/11 页8域间连接为 ASs ASi,将 Link_AS 矩阵中 Ls,i的值自加 1,同时将 ASs加入到 ASi的输入域集合 IN_AS 中,并从 ASi的可达路径集合中将包含域间链路 ASs ASi的所有可达。

30、路径删除;0042 1.2.3)、判断自治域 ASi确定建立的输入域间连接数是否达到需要建立的输入域间连接数目IN(ASi),如果达到,则执行步骤1.2.5 ;如果没有达到需要建立的输入域间连接数,则执行步骤 1.2.4 ;0043 1.2.4)、从剩余可达路径集合中选择域间链路总延迟最短的可达路径,记为AS0 ASm ASi,如果该路径的域间链路总延迟超过设置的最大延迟范围,则从已经确定的 ASi的输入域集合 IN_AS 中随机选择自治域 ASj(ASj IN_AS) 建立新的输入域间连接,同时将 Link_AS 矩阵中 Lj,i的值自加 1 ;如果最短可达路径的域间链路总延迟在允许范围内,。

31、则根据最短路径确定自治域 ASi需要建立的输入域间连接为 ASm ASi,将 Link_AS矩阵中 Lm,i的值自加 1,将 ASm加入到 ASi的输入域集合中,从 ASi的可达路径集合中将包含域间连接 ASm ASi的所有可达路径删除,然后返回步骤 1.2.3 重复执行,继续确定新的输入域间连接 ;0044 1.2.5)、判断所有自治域(源自治域除外)的输入域间连接是否都已确定,如果仍有自治域的输入域间连接还没全部确定,则返回步骤 1.2.1,重复执行,直到为所有自治域确定其全部输入域间连接为止,最终得到表示自治域互连关系的矩阵 Link_AS ;0045 步骤 2、根据每个自治域需要建立的。

32、域间连接数目和域内部的用户数目,确定每个自治域数据传输的骨干节点和核心节点,每个自治域选择的骨干节点的个数由该自治域需要建立的输入域间连接数、输出域间连接数、自治域内的用户节点数、以及用户节点上传带宽等因素综合决定,核心节点从骨干节点中选择,核心节点数由该自治域的输入域间连接数决定 ;0046 选择骨干节点的一种具体实施方法如下 :将每个自治域中的用户节点按照其上传带宽由大到小降序排列,选择上传带宽大的用户节点作为骨干节点,骨干节点的个数super_num(ASi) 由公式 (2) 决定,其中 OUT(ASi) 表示 ASi的输出域间连接数,IN(ASi) 表示ASi的输入域间连接数,SP(A。

33、Si) 表示 ASi中选择出的骨干节点集合,band(p) 表示骨干节点的上传带宽,VR 是直播视频的流速率,|P(ASi)| 是 ASi中用户节点的个数, 是考虑骨干节点上传带宽因素,要求骨干节点提供的上传带宽具有一定的冗余, 的值要求大于 1, 是考虑骨干节点的个数与自治域中的用户数有关, 的值通常小于 0.5 ;0047 super_num(ASi) maxNum_a(ASi),|SP(ASi)|,Num_b(ASi) (2)0048 其中 :0049 Num_a(ASi) maxOUT(ASi),IN(ASi)0050 0051 0052 选择核心节点的一种具体实施方法如下 :从选择的。

34、骨干节点中,选择上传带宽最大的前 IN(ASi) 个节点作为核心节点 ;0053 例如,自治域AS1的输入连接数为3,输出连接数为4,内部节点数为100,节点按上说 明 书CN 104506958 A6/11 页9传带宽降序排序,带宽依此为5M,5M,5M,4M,4M,4M,2M,2M,2M,2M,2M,2M,,3,0.2 则 :0054 Num_a(AS1) max3,4 40055 0056 0057 super_num(AS1) max4,3,10 100058 因此,最终选择上传带宽最大的 10 个用户节点作为骨干节点,其中带宽最大的前3 个节点作为核心节点,剩余 7 个是普通骨干节点。

35、 ;0059 步骤 3、根据自治域互连关系矩阵,在各自治域的核心节点之间建立跨自治域的域间连接,用于不同自治域之间的数据单向传输,具体建立方法如图 6 所示 :0060 3.1)、遍历自治域互连关系矩阵 Link_AS,如果 Li,j为 n 表示自治域 i 需要建立 n条指向自治域 j 的域间连接,该域间连接对于自治域 i 是输出域间连接,对于自治域 j 是输入域间连接 ;0061 3.2)、从自治域 i 的核心节点中,随机选择没有建立输出域间连接的核心节点,作为该输出域间连接的数据提供节点 ;如果自治域 i 的所有核心节点都已经建立至少 1 条输出域间连接,则随机选择 1 个核心节点作为该输。

36、出域间连接的数据提供节点 ;0062 3.3)、将自治域 j 中的核心节点按照上传带宽降序排列,选择未建立输入域间连接的上传带宽最大的核心节点作为该输入域间连接的数据接收节点 ;0063 3.4)、在选定的数据提供节点和数据接收节点之间建立实际的域间连接,该连接在传输视频数据包时是单向的,只能由数据提供节点发送数据包给数据接收节点,但是数据收发双方可利用该连接交换数据包请求、请求应答、数据块缓存情况等控制信息 ;0064 3.5)、判断自治域 i 和自治域 j 之间建立的域间连接数是否达到 Li,j表示的值,如果没有达到,返回步骤 3.2 继续建立自治域 i、j 之间的域间连接,如果域间连接数。

37、达到 Li,j表示的值,则继续遍历自治域互连关系矩阵,建立其他自治域之间的域间连接,直到建立完所有域间连接为止 ;0065 步骤 4、在每个自治域内部各节点之间建立域内连接,包括核心节点之间的连接,骨干节点之间的连接,普通节点之间的连接,以及核心节点、骨干节点、普通节点之间的连接,域内连接允许自治域内的节点之间双向传输数据包以及双向交互控制消息 ;0066 域内连接的一种具体实施方法如图 7 所示 :0067 4.1)、计算每个核心节点和骨干节点所允许建立的最大连接数 ( 即节点的度数上限 ),每个核心节点 ( 骨干节点 ) 的度数上限如公式 (3) 所示 :0068 0069 4.2)、确定。

38、每个普通节点的度数上限,该度数上限为系统设置的一个固定值,每个普通节点的度数上限是相等的 ;0070 4.3)、建立核心节点的域内连接,其中 core_unselect 集合是没有与同一个自说 明 书CN 104506958 A7/11 页10治域内其他核心节点建立连接关系的核心节点集合,core_select 集合是已经建立连接关系的核心节点集合,初始时为空,具体方法如下 :0071 4.3.1)、将建立域内连接数未达到度数上限的核心节点加入到 core_unselect集合中,从 core_unselect 中随机选择一个核心节点加入到 core_select 集合中 ;0072 4.3.。

39、2)、从 core_unselect 中随机选择一个核心节点,从 core_select 集合中随机选择一个域内连接数没有达到其度数上限的核心节点,在两个核心节点之间建立数据可双向传输的域内连接,同时将从 core_unselect 中选择的核心节点从 core_unselect 集合中删除,加入到 core_select 集合中 ;重复执行上述步骤,直到 core_unselect 集合空为止 ;如果在此过程中,core_select 集合中的每个核心节点建立的域内连接数均已达到度数上限,则直接从 core_unselect 中随机选择一个核心节点加入到core_select 集合中,继续执。

40、行步骤 4.3.2 ;0073 4.3.3)、判断每个核心节点已经建立的域内连接数是否达到其度数上限,如果仍有核心节点的域内连接数未达到度数上限,则从域内的骨干节点中随机选择一个未与核心节点建立域内连接的骨干节点,与之建立域内连接 ;重复执行上述步骤,直到每个核心节点建立的域内连接数达到其度数上限,或者所有骨干节点均与核心节点建立域内连接为止 ;0074 4.3.4)、判断每个核心节点已经建立的域内连接数是否达到其度数上限,如果仍有核心节点的域内连接数未达到度数上限,则从域内的普通节点中随机选择一个未与核心节点建立域内连接的普通节点,与之建立域内连接 ;重复执行上述步骤,直到每个核心节点建立的。

41、域内连接数达到其度数上限,或者所有普通节点均与核心节点建立域内连接为止 ;0075 4.4)、建立骨干节点的域内连接,其中 super_unselect 集合是没有与同一个自治域内其他骨干节点建立连接关系的骨干节点集合,super_select 集合是已经建立连接关系的骨干节点集合,初始时为空,具体方法如下 :0076 4.4.1)、将建立域内连接数未达到度数上限的骨干节点加入到 super_unselect集合中,从 super_unselect 中随机选择一个骨干节点加入到 super_select 集合中 ;0077 4.4.2)、从super_unselect中随机选择一个骨干节点,从。

42、super_select集合中随机选择一个已经建立的域内连接数没有达到其度数上限的骨干节点,在两个骨干节点之间建立数据可双向传输的域内连接,同时将从 super_unselect 中选择的核心节点从super_unselect 集合中删除,加入到 super_select 集合中 ;重复执行上述步骤,直到super_unselect 集合空为止 ;如果在此过程中,super_select 集合中的每个骨干节点建立的域内连接数均已达到度数上限,则直接从 super_unselect 中随机选择一个骨干节点加入到 super_select 集合中,继续执行步骤 4.4.2 ;0078 4.4.3)。

43、、判断每个骨干节点已经建立的域内连接数是否达到其度数上限,如果仍有骨干节点的域内连接数未达到度数上限,则从域内的普通节点中随机选择一个未与核心节点和骨干节点建立域内连接的普通节点,与之建立域内连接 ;重复执行上述步骤,直到每个骨干节点建立的域内连接数达到其度数上限,或者所有普通节点均与骨干节点或者核心节点建立域内连接为止 ;0079 4.5)、建立普通节点之间的域内连接,将建立域内连接数未达到度数上限的普通节点加入到common集合中,从common集合中随机选择两个普通节点建立域内连接,如果某个普通节点建立的域内连接数达到其度数上限,则将其从 common 集合中删除,重复说 明 书CN 104506958 A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1