发明名称 一种支持异构终端与异构网络环境的应用层组播方法
摘要 本发明公开了一种支持异构终端与异构网络环境的应用层组播方法,其特征在于基于服务覆盖网络和P2P覆盖网络的树型分层网络架构,实现了综合考虑异构终端与异构网络环境的媒体数据传送方法。首先,基于服务覆盖网络和P2P覆盖网络的树型分层网络架构,综合考虑了不同ISP网络与内外网的异构网络环境,实现了支持异构网络的媒体数据传送;其次,基于异构网络的媒体数据传送分层网络架构,综合考虑各个用户节点的网络类型、网络带宽、在线时长和分辨率的终端异构因素,实现了支持异构终端的媒体数据传送方法。
申请公布号 CN102387072A 申请公布日期 2012.03.21
申请号 CN201110312787.1 申请日期 2011.10.15
申请人 西安交通大学 发明人 张未展;郑庆华;刘均;陈小云;赵辉;杜海鹏
分类号 H04L12/56(2006.01)I;H04L29/06(2006.01)I;H04L29/08(2006.01)I 主分类号 H04L12/56(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 朱海临
主权项 1.一种支持异构终端与异构网络环境的应用层组播方法,其特征在于,搭建基于服务覆盖网络和P2P覆盖网络的树型分层网络架构,该网络架构分为主干层和分支层,主干层为构建的树型服务覆盖网络,分支层为构建的树型P2P覆盖网络,媒体数据通过主干层节点转发给分支层节点;主干层由DTU节点与服务中心节点构成,主干层从功能上划分为两层,第一层负责多频道数据转发,并通过运行在两个ISP的DTU节点实现不同ISP之间的数据传输;第二层负责单频道的数据转发,除DTU节点外,每层均有为该层DTU服务的服务中心节点,主干层第一层的服务中心节点管理本层的DTU节点,并将DTU节点或用户节点的请求重定向到与该节点具有相同ISP的第二层服务中心;主干层第二层的服务中心负责本层DTU组播树搭建以及分支层树型P2P组播树的搭建;分支层由用户节点构成,依据用户节点的网络类型、网络带宽、在线时长和分辨率搭建P2P树型架构,用户节点从P2P树型架构的父节点处接收到媒体数据,存放到用户节点的数据缓冲区内,调用用户节点的解码模块对数据进行解码,并回放显示,同时用户节点的数据调度模块查找转发节点列表,将数据缓冲区的数据转发给P2P树型架构的子节点。上述方案中,所述的将DTU节点或用户节点的请求重定向到与该节点具有相同ISP的第二层服务中心的具体步骤如下:首先,给出算法步骤中用到的概念和定义,第一层服务中心S维护着本层的DTU信息列表D<sub>f</sub>[1-n]、第二层服务中心列表S<sub>n</sub>[1-n]以及其对应的根DTU列表D<sub>sr</sub>[1-n]和直播频道列表C<N,Source,T[n<sub>i</sub>]>,在频道列表中,N表示频道号n<sub>1</sub>,n<sub>2</sub>,…n<sub>i</sub>,Source表示源节点信息,T[n<sub>i</sub>]表示加入频道n<sub>i</sub>的DTU节点列表;Step1:DTU节点或用户节点Node<sub>i</sub>连接第一层服务中心S,请求加入直播频道n<sub>i</sub>,服务中心S根据该节点IP地址判断Node<sub>i</sub>所在IPP,并查找当前频道列表C<N,Source,T[n<sub>i</sub>]>中N=n<sub>i</sub>的DTU列表T[n<sub>i</sub>],找到与Node<sub>i</sub>处于同一ISP的第二层根DTU节点D<sub>sr</sub>[k],执行Step4,如果找不到则执行Step2;Step2:服务中心S将第二层的根DTU列表D<sub>sr</sub>[1-n]中与Node<sub>i</sub>处于相同ISP的列表D<sub>sr</sub>[i-j](1<=i<=j<=n)信息发送给Node<sub>i</sub>,Node<sub>i</sub>测试与D<sub>sr</sub>[i-j]中所有DTU节点的RTT时间,获得与其RTT延迟最小的DTU节点D<sub>sr</sub>[k](i<=k<=j);Step3:服务中心S添加D<sub>sr</sub>[k]到T[n<sub>i</sub>],如果D<sub>sr</sub>[k]和T[n<sub>i</sub>]中的根节点不在同一个ISP,则需要从D<sub>f</sub>[1-n]中找出一个中转节点D<sub>f</sub>[f](1<=f<=n)使之成为T[n<sub>i</sub>]根节点的孩子节点,同时找出与D<sub>sr</sub>[k]同一ISP且延迟最小的第一层的DTU节点D<sub>f</sub>[g](1<=g<=n)作为D<sub>f</sub>[f]的孩子节点以及D<sub>sr</sub>[k]的父节点;Step4:服务中心S将第二层服务中心列表S<sub>n</sub>[1-n]中与D<sub>sr</sub>[k]对应的服务中心S<sub>n</sub>[k]的信息发送给Node<sub>i</sub>,Node<sub>i</sub>重新连接第二层服务中心S<sub>n</sub>[k];所述的主干层第二层的服务中心负责本层DTU组播树搭建的具体步骤如下:首先,给出算法步骤中用到的概念和定义,第二层服务中心维护DTU节点列表DTU<id,d_degree,u_degree,level>,其中id是DTU节点的唯一标识符,d_degree为该节点可接DTU节点的数量,u_degree为该节点可接用户节点的数量,level为该节点所在的层数;DTU组播树的搭建具体步骤如下:Step1:DTU节点D<sub>i</sub>连接第一层服务中心S,请求加入直播频道n<sub>i</sub>,S根据节点请求重定向算法将其对应的第二层服务中心S<sub>n</sub>[k]信息发送给D<sub>i</sub>;Step2:DTU节点D<sub>i</sub>连接第二层服务中心S<sub>n</sub>[k],服务中心S<sub>n</sub>[k]判断该节点所处网络类型,并置当前搜索层N为1;Step3:如果D<sub>i</sub>处于外网,服务中心S<sub>n</sub>[k]采用广度优先搜索方式遍历第N层,查找当前接入DTU节点个数小于d_degree的第一个DTU节点D<sub>k</sub>,将D<sub>i</sub>作为D<sub>k</sub>的子节点,如果D<sub>i</sub>处于内网,服务中心S<sub>n</sub>[k]采用广度优先搜索方式遍历第N层,查找当前接入DTU节点个数小于d_degree且位于外网的第一个DTU节点D<sub>k</sub>,将D<sub>i</sub>作为D<sub>k</sub>的子节点,如果已经找到则退出,否则N=N+1,继续执行Step3;所述的分支层树型P2P组播树的搭建包括支持内外网的基于优先度的用户节点加入和退出算法;1)用户节点加入算法步骤:第二层服务中心维护的用户节点列表USER[id,ip,resolution,degree,father_id,father_ip],其中,id是用户节点的唯一标识,ip为用户节点的IP地址,resolution表示用户节点的分辨率,degree表示用户节点可接入节点个数,father_id表示用户节点的父节点的id,father_ip为用户节点父节点的IP地址;具体步骤如下:Step1:用户节点连接第一层服务中心S,请求加入直播频道n<sub>i</sub>,S根据节点请求重定向算法将其对应的第二层服务中心S<sub>n</sub>[k]信息发送给U<sub>i</sub>;Step2:用户节点U<sub>i</sub>连接第二层服务中心S<sub>n</sub>[k],服务中心S<sub>n</sub>[k]判断该节点所处网络类型,并置当前搜索层N为1,候选节点集合set(n)初始化为空,候选父节点集合set(fn)初始化为空;Step3:如果该节点处于外网,服务中心S<sub>n</sub>[i]采用广度优先搜索方式遍历第N层,将该层与请求加入节点具有相同分辨率的用户节点和DTU节点加入候选节点集合set(n),如果该节点处于内网,服务中心S<sub>n</sub>[i]采用广度优先搜索方式遍历第N层,将该层与请求加入节点具有相同分辨率且处于外网的用户节点和DTU节点加入候选节点集合set(n);Step4:遍历set(n),将其中接入用户节点数量小于degree的节点作为候选父节点set(fn),如果|set(fn)|=0,则置N=N+1,跳到Step3,如果|set(fn)|>0,执行Step5;Step5:计算set(fn)中每个节点的优先度π<sub>i</sub>,选择优先度最大的节点,将该节点作为新加入节点U<sub>i</sub>的父节点,如果set(fn)中节点的优先度相同,则随机挑选一个节点作为新节点的父节点;2)用户节点退出算法步骤如下:Step1:用户节点U<sub>i</sub>给其当前连接的第二层服务中心S<sub>n</sub>[i]发送一条退出消息;Step2:服务中心S<sub>n</sub>[i]收到消息后,根据U<sub>i</sub>的id找到其父节点f<sub>n</sub>,给f<sub>n</sub>发送一条该节点退出消息;Step3:服务中心S<sub>n</sub>[i]计算U<sub>i</sub>目前的出度D(n)和其父节点f<sub>n</sub>剩余出度D(f<sub>n</sub>),若D(n)≤D(f<sub>n</sub>),则将U<sub>i</sub>的下级节点接到节点f<sub>n</sub>下,并且跳到Step5,否则转到Step4;Step4:从退出节点U<sub>i</sub>的子节点集合set(C<sub>n</sub>)中选择优先度最大的m个节点children(i),使<img file="FDA0000099000730000031.GIF" wi="607" he="114" />然后将节点f<sub>n</sub>和children(i)作为剩余节点set(C<sub>n</sub>)-children(i)的候选父节点,剩余节点下级节点结构不变,采用用户节点加入算法来加入到系统中,然后转到Step5;Step5:退出节点U<sub>i</sub>的下级节点都加入到系统后,节点U<sub>i</sub>退出系统。
地址 710049 陕西省西安市咸宁西路28号