本发明属于网络技术和通信息技术领域,具体涉及一种基于时空约束现场的名字注册及解析方法。
背景技术:
tcp/ip互联网体系已经难以适应未来网络的发展趋势,特别是难以满足移动接入、普适计算、分布式信息处理、海量流媒体等新应用的发展需求。为了提升用户体验,研究人员提出了信息中心网络icn,将信息名字与网络位置解耦,以增强各方面的网络性能,包括移动性、扩展性、实时性和动态性等。在信息中心网络icn中,要求信息名称具有可聚合性和持久性,以避免路由表膨胀问题,保证信息名称不随位置改变。目前移动网络用户已达三十亿,每天新产生的视频超过五十亿,未来将有千亿级的物联网设备接入。存储和索引万亿量级实体的名字、每秒数十万次即时更新实体地址和每秒数百万次查询实体当前地址,以及对查找时延的苛刻要求,对名字注册解析系统的存储、查询、更新的压力远超层次化分布式的域名系统,可能导致严重的性能问题。
信息中心网络icn的海量信息具有物理分布式的特性,能否根据该特性提出一种按域划分、组织信息和资源的方法,将全局式地址解析系统划分按需划分成多个子系统,以提高解析速率,以满足不同应用场景下不同的qos,尤其是时延和可靠性需求,如何保持信息中心网的弹性、自治的特性,是信息中心网络icn亟待解决的关键问题。由于在信息中心网络icn中,名字与位置是分离的。注册和解析的作用就是给信息名字或信息提供者注册一个或多个动态的网络地址,以及从信息的名字解析到网络地址或信息提供者的位置。也就是说,名字解析系统是用来建立、维护、发布信息名字和信息所在地址或信息提供者之间的映射关系,所有信息名字都被映射到同一个命名空间下进行标识。名字解析系统的基础是命名方法,其主要分为两类:一是层次化命名,二是扁平化命名。
基于层次化命名的解析过程,虽然保证了路由效率,但是,其扩展性非常有限。在当前互联网中,与名字解析系统等效作用的是dns,其中,dns是一个典型的多级域名的层次型命名系统。由于名字并不是在顶层域平均分布,所以解析服务器的负载并不均衡。同时,该结构也有难以避免的dos攻击等安全问题。ndn就是一个典型的分层化命名系统,在层次化命名系统中,解析过程一般都从根节点开始,这给解析系统带来了很大的约束。当前一些关于dns的研究表明,层次化命名系统在面向海量用户请求增长的条件下浮现出越来越多的问题。
基于扁平化命名的解析过程,保证了名字的可扩展性和安全性,但是,对解析及路由效率提出了更大的挑战。在扁平化命名系统中,语义无关的命名方法可以保障内容与位置的解耦,以及在安全性方法也有所优势。针对基于扁平化命名的层次化解析的问题,一个可行的解决方案是采用分布式哈希表(dht)技术,如采用pastry或chord,来进行从内容到名字的映射。在分布式哈希表dht中,典型的查找复杂度为log(n),其中n为网络中的节点规模,该方法可以有效提高查找效率,降低每个节点所需要维护的内容的规模。但是,由于dht结构是扁平化结构,当内容规模较大时,分布式哈希表dht路由表中所要维护的信息量会非常庞大,尤其是在移动环境下,当内容位置存在变化时,分布式哈希表dht结构的维护过程会给整个网络带来较大负担。
因此,有必要构建一种基于时空约束现场的名字注册及解析方法,通过不同场景下对设备注册和内容发布的安全隔离,实现名字到地址的高效查询,以满足不同的应用场景下对qos的需求,解决可扩展性和安全性问题,以适应未来网络的发展。
技术实现要素:
本发明的目的在于,为了解决现有的名字注册及解析方法存在上述问题,本发明提供了一种基于时空约束现场的名字注册及解析方法,解决信息中心网络(icn)中名字解析的可扩展性与安全性问题,以满足不同应用场景下对qos的不同需求。
该方法包括:
依据网络测量指标参数集合{ti};其中,ti<ti+1,1≤i≤i-1,i为常数;对网络节点进行空间划分,使得每个给定的ti对应一个容器层次,记为ci级容器;
从任意本地解析节点lrnj开始,自底向上的嵌套空间划分是c1级容器、c2级容器、…、ci级容器,形成一个树结构;
针对特殊时延、域内、无约束三种场景执行不同的现场名字注册的流程如下:
对于有特殊时延的任意实体名字注册请求,根据空间位置选取节点lrnj,并在该节点lrnj所在的c1级容器的解析节点上进行现场名字注册;
对于受限于域内的实体注册请求,其现场名字注册是从节点lrnj出发沿着树结构向上直到该节点lrnj所在的顶层容器ci为止;在每一个lrnj所在的ck级容器的解析节点上进行注册,其中2≤k≤i;
对于无约束的实体注册请求,直接进入现有的通用系统进行名字注册;所述现有的通用系统为包括直接映射dmap在内的现有解析系统;
针对特殊时延、域内、无约束三种场景执行不同的名字解析流程如下:
特殊时延需求下的名字解析请求将在节点lrnj所在的底层c1级容器内完成现场名字解析处理;
域内名字解析请求将在节点lrnj所在的顶层ci级容器内完成名字解析处理;
无约束名字解析请求直接进入现有的通用系统来完成名字解析处理。
在上述技术方案中,针对特殊时延、域内、无约束三种场景的名字注册及解析,具体包括:
步骤1)检查并确定接收到的请求类型,所述请求类型包括:特殊时延、域内、无约束三种场景;
步骤2)判断步骤1)中的请求类型是否为名字解析请求和是否为名字注册请求;若所述请求类型是名字解析请求,且不是名字注册请求,则转至步骤3);若所述请求类型名字注册请求,且不是名字解析请求,则直接跳转至步骤6);
步骤3)判断步骤2)的名字解析请求是否为特殊时延需求下的名字解析请求:若是特殊时延需求下的名字解析请求,则执行特殊时延需求下的名字解析流程;若不是特殊时延需求下的名字解析请求,则转至步骤4);
步骤4)判断步骤3)的名字解析请求是否为域内的名字解析请求:若是域内的名字解析请求,则执行域内的名字解析流程;若不是域内的名字解析请求,则转至步骤5);
步骤5)执行包括直接映射dmap在内的现有解析流程,其过程为:通过直接应用一致性哈希函数,来查找实体名字与网络地址之间的映射关系,以得到名字解析结果,并返回查到的网络地址;
步骤6)针对特殊时延、域内、无约束三种不同场景分别执行不同的实体名字注册流程。
在上述技术方案中,如图2所示,步骤3)中,特殊时延需求下的名字解析流程具体包括:
步骤301)某个空间位置的本地解析节点lrnj接收到针对某个实体唯一标识符euid的特殊时延需求下的名字解析请求;
步骤302)将步骤301)中接收到的名字解析请求转发至所述本地解析节点lrnj所在的c1级容器的解析节点,记为c1-i;
步骤303)查询步骤302)中的解析节点c1-i中的分布式哈希表dht;若查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则直接返回所述网络地址na;若没有查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则返回查询失败,即不能提供特殊时延需求下的名字解析服务。
以迭代(iterative)的方式把步骤3)的名字解析的结果直接返回给请求发出者,或者以递归(recursive)的方式把步骤3)的名字解析的结果通过请求转发者间接返回给请求发出者。
在上述技术方案中,步骤4)中的域内的名字解析流程具体包括:
步骤401)某个空间位置的本地解析节点lrnj接收到针对某个实体唯一标识符euid的域内的名字解析请求,即无特殊时延需求下的名字解析请求;
步骤402)查询所述本地解析节点lrnj中的分布式哈希表dht:若查询到所述本地解析节点lrnj中的分布式哈希表dht,则直接返回所述本地解析节点lrnj所对应的网络地址na;若没有查询到所述本地解析节点lrnj中的分布式哈希表dht,则将所述名字解析请求转发至所述本地解析节点lrnj所在的c2级容器的解析节点,记为c2-i;
步骤403)查询所述解析节点c2-i中的布隆滤波器bf;若查询到所述解析节点c2-i中的布隆滤波器bf,则转至步骤404);若没有查询到所述解析节点c2-i中的布隆滤波器bf,则将所述名字解析请求转发至所述本地解析节点lrnj所在的c3级容器的解析节点,记为c3-i;
以此类推,查询所述本地解析节点lrnj所在的ck级容器的解析节点,记为ck-q,2≤k≤i;其中,q为lrnj所在的任意ck级容器的序列号,取值范围为q≥1;若查询到所述解析节点ck-q中的布隆滤波器bf,则转至步骤404);若没有查询到所述解析节点ck-q中的布隆滤波器bf,则转发到某个ci级容器的解析节点ci-r,再跳转至步骤405);
步骤404)查询所述解析节点c2-i中的分布式哈希表dht;若查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则直接返回所述网络地址na;若没有查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则将所述名字解析请求转发至某个c3级容器的解析节点c3-r,并转至步骤405);
并以此类推,查询某个ck级容器中的解析节点ck-q中的分布式哈希表dht,2≤k≤i,q;若查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则直接返回所述网络地址na;若没有查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则转发到某个ci级容器的解析节点ci-r,并转至步骤405);
步骤405)查询所述解析节点ci-r中的布隆滤波器bf;若查询到所述解析节点ci-r中的布隆滤波器bf,则转至步骤406);若没有查询到所述解析节点ci-r中的布隆滤波器bf,则返回查询失败,即不能提供域内的名字的解析服务;
步骤406)查询所述解析节点ci-r中的分布式哈希表dht;若查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则直接返回所述网络地址na;若没有查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则返回查询失败,即不能提供域内的名字解析服务。
以迭代(iterative)的方式把步骤4)的名字解析的结果直接返回给请求发出者,或者以递归(recursive)的方式把步骤4)的名字解析的结果通过请求转发者间接返回给请求发出者。
在上述技术方案中,步骤6)中的实体注册的流程,包括:
步骤601)检查并确认接收到的实体名字注册请求类型,其中的名字所对应的某个实体唯一标识符,记为euid;其中,所述名字注册请求类型包括:特殊时延、域内、无约束三种场景;
步骤602)判断步骤601)中的所述实体名字注册请求类型是否为特殊时延需求下的实体名字注册请求;若所述实体名字注册请求类型是特殊时延需求下的实体名字注册请求,则在本地解析节点lrnj及其父节点中注册,所述父节点是某个c1级容器的解析节点,记为c1-i,并更新所述本地解析节点lrnj中的本地哈希表ht和所述父节点c1-i中的分布式哈希表dht;若所述实体名字注册请求类型不是特殊时延需求下的实体名字注册请求,则转至步骤603);
步骤603)判断所述实体名字注册请求类型是否为域内的实体名字注册请求;若所述实体名字注册请求类型是域内的实体名字注册请求,则在本地解析节点lrnj及其树结构向上的祖父节点中注册,所述祖父节点为某个c2级容器的解析节点,记为c2-j;并更新该本地解析节点lrnj中的本地哈希表ht、所述祖父节点c2-j中的布隆滤波器bf、所述祖父节点c2-j中的分布式哈希表dht,一直更新到作为根节点的ci级容器的解析节点的布隆滤波器bf和分布式哈希表dht;若所述实体名字注册请求类型不是域内的实体名字注册请求,则转至步骤604);
步骤604)执行包括直接映射(dmap)在内的通用的实体名字注册流程;其过程为:在注册时,直接应用一致性哈希函数,来形成实体名字与网络地址之间的映射关系。
本发明的优点在于:
与现有技术相比,本发明的名字注册及解析方法,通过对特殊时延、域内、无约束三种不同场景下,对设备注册和内容发布的安全隔离,满足了不同的应用场景下对qos的需求。具体而言,本发明通过时空约束现场来缩小注册与解析的操作范围,实现本地就近处理,提高响应速度,以满足第五代移动通信系统(5g)与未来网络的ms级以下的时延要求;同时,通过容器的域内隔离来减少域间流量,增强了信息中心网络的可扩展性。
附图说明
图1是本发明的一种基于时空约束现场的名字注册及解析方法的流程示意图;
图2是图1中的本发明的一种基于时空约束现场的名字注册及解析方法的实体名字注册流程示意图。
具体实施方式
本发明提供了一种基于时空约束现场的名字注册及解析方法,解决信息中心网络(icn)中名字解析的可扩展性与安全性问题,以满足特殊时延、域内、无约束三种不同应用场景下对qos的不同需求。
该方法包括:
依据网络测量指标参数集合{ti};其中,ti<ti+1,1≤i≤i-1,i为常数;对网络节点进行空间划分,使得每个给定的ti对应一个容器层次,记为ci级容器;
从任意本地解析节点lrnj开始,自底向上的嵌套空间划分是c1级容器、c2级容器、…、ci级容器,形成一个树结构;
针对特殊时延、域内、无约束三种场景执行不同的现场名字注册的流程如下:
对于有特殊时延的任意实体名字注册请求,根据空间位置选取节点lrnj,并在该节点lrnj所在的c1级容器的解析节点上进行现场名字注册;
对于受限于域内的实体注册请求,其现场名字注册是从节点lrnj出发沿着树结构向上直到该节点lrnj所在的顶层容器ci为止;在每一个lrnj所在的ck级容器的解析节点上进行注册,其中2≤k≤i;
对于无约束的实体名字注册请求,直接进入现有的通用系统进行名字注册;所述现有的通用系统为包括直接映射dmap在内的现有解析系统;
针对特殊时延、域内、无约束三种不同场景执行不同的名字解析流程如下:
特殊时延需求下的名字解析请求将在节点lrnj所在的底层c1级容器内完成现场名字解析处理;
域内名字解析请求将在节点lrnj所在的顶层ci级容器内完成名字解析处理;
无约束名字解析请求直接进入现有的通用系统来完成名字解析处理。
在上述技术方案中,如图1所示,针对特殊时延、域内、无约束三种场景的名字注册及其解析,具体包括:
步骤1)检查并确定接收到的请求类型,所述请求类型包括:特殊时延、域内、无约束三种场景;
步骤2)判断步骤1)中的请求类型是否为名字解析请求和是否为名字注册请求;若所述请求类型是名字解析请求,且不是名字注册请求,则转至步骤3);若所述请求类型名字注册请求,且不是名字解析请求,则直接跳转至步骤6);
步骤3)判断步骤2)的名字解析请求是否为特殊时延需求下的名字解析请求:若是特殊时延需求下的名字解析请求,则执行特殊时延需求下的名字解析流程;若不是特殊时延需求下的名字解析请求,则转至步骤4);
步骤4)判断步骤3)的名字解析请求是否为域内的名字解析请求:若是域内的名字解析请求,则执行域内的名字解析流程;若不是域内的名字解析请求,则转至步骤5);
步骤5)执行包括直接映射dmap在内的现有解析流程,其过程为:通过直接应用一致性哈希函数,来查找实体名字与网络地址之间的映射关系,以得到名字解析结果,并返回查到的网络地址;
步骤6)针对特殊时延、域内、无约束三种不同场景分别执行不同的实体名字注册流程。
在上述技术方案中,步骤3)中,特殊时延需求下的名字解析流程具体包括:
步骤301)某个空间位置的本地解析节点lrnj接收到针对某个实体唯一标识符euid的特殊时延需求下的名字解析请求;
步骤302)将步骤301)中接收到的名字解析请求转发至所述本地解析节点lrnj所在的c1级容器的解析节点,记为c1-i;
步骤303)查询步骤302)中的解析节点c1-i中的分布式哈希表dht;若查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则直接返回所述网络地址na;若没有查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则返回查询失败,即不能提供特殊时延需求下的名字解析服务。
以迭代(iterative)的方式把步骤3)的名字解析的结果直接返回给请求发出者,或者以递归(recursive)的方式把步骤3)的名字解析的结果通过请求转发者间接返回给请求发出者。
在上述技术方案中,步骤4)中的域内的名字解析流程具体包括:
步骤401)某个空间位置的本地解析节点lrnj接收到针对某个实体唯一标识符euid的域内的名字解析请求,即无特殊时延需求下的名字解析请求;
步骤402)查询所述本地解析节点lrnj中的分布式哈希表dht:若查询到所述本地解析节点lrnj中的分布式哈希表dht,则直接返回所述本地解析节点lrnj所对应的网络地址na;若没有查询到所述本地解析节点lrnj中的分布式哈希表dht,则将所述名字解析请求转发至所述本地解析节点lrnj所在的c2级容器的解析节点,记为c2-i;
步骤403)查询所述解析节点c2-i中的布隆滤波器bf;若查询到所述解析节点c2-i中的布隆滤波器bf,则转至步骤404);若没有查询到所述解析节点c2-i中的布隆滤波器bf,则将所述名字解析请求转发至所述本地解析节点lrnj所在的c3级容器的解析节点,记为c3-i;
以此类推,查询所述本地解析节点lrnj所在的ck级容器的解析节点,记为ck-q,2≤k≤i;其中,q为lrnj所在的任意ck级容器的序列号,取值范围为q≥1;若查询到所述解析节点ck-q中的布隆滤波器bf,则转至步骤404);若没有查询到所述解析节点ck-q中的布隆滤波器bf,则转发到某个ci级容器的解析节点ci-r,再跳转至步骤405);
步骤404)查询所述解析节点c2-i中的分布式哈希表dht;若查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则直接返回所述网络地址na;若没有查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则将所述名字解析请求转发至某个c3级容器的解析节点c3-r,并转至步骤405);
并以此类推,查询某个ck级容器中的解析节点ck-q中的分布式哈希表dht,2≤k≤i,q;若查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则直接返回所述网络地址na;若没有查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则转发到某个ci级容器的解析节点ci-r,并转至步骤405);
步骤405)查询所述解析节点ci-r中的布隆滤波器bf;若查询到所述解析节点ci-r中的布隆滤波器bf,则转至步骤406);若没有查询到所述解析节点ci-r中的布隆滤波器bf,则返回查询失败,即不能提供域内的名字的解析服务;
步骤406)查询所述解析节点ci-r中的分布式哈希表dht;若查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则直接返回所述网络地址na;若没有查询到所述名字解析请求中的实体唯一标识符euid所对应的网络地址na,则返回查询失败,即不能提供域内的名字解析服务。
以迭代(iterative)的方式把步骤4)的名字解析的结果直接返回给请求发出者,或者以递归(recursive)的方式把步骤4)的名字解析的结果通过请求转发者间接返回给请求发出者。
在上述技术方案中,如图2所示,步骤6)中的实体注册的流程,包括:
步骤601)检查并确认接收到的实体名字注册请求类型,其中的名字所对应的某个实体唯一标识符,记为euid;其中,所述名字注册请求类型包括:特殊时延、域内、无约束三种场景;
步骤602)判断步骤601)中的所述实体名字注册请求类型是否为特殊时延需求下的实体名字注册请求;若所述实体名字注册请求类型是特殊时延需求下的实体名字注册请求,则在本地解析节点lrnj及其父节点中注册,所述父节点是某个c1级容器的解析节点,记为c1-i,并更新所述本地解析节点lrnj中的本地哈希表ht和所述父节点c1-i中的分布式哈希表dht;若所述实体名字注册请求类型不是特殊时延需求下的实体名字注册请求,则转至步骤603);
步骤603)判断所述实体名字注册请求类型是否为域内的实体名字注册请求;若所述实体名字注册请求类型是域内的实体名字注册请求,则在本地解析节点lrnj及其树结构向上的祖父节点中注册,所述祖父节点为某个c2级容器的解析节点,记为c2-j;并更新该本地解析节点lrnj中的本地哈希表ht、所述祖父节点c2-j中的布隆滤波器bf、所述祖父节点c2-j中的分布式哈希表dht,一直更新到作为根节点的ci级容器的解析节点的布隆滤波器bf和分布式哈希表dht;若所述实体名字注册请求类型不是域内的实体名字注册请求,则转至步骤604);
步骤604)执行包括直接映射(dmap)在内的通用的实体名字注册流程;其过程为:通过直接应用一致性哈希函数,来查找实体名字与网络地址之间的映射关系,以得到名字解析结果,并返回查到的网络地址。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。