[0021] (1)NDN网络的部署与构建
[0022] 在本方法中,通过在操作系统上安装能够实现NDN网络基础功能的守护程序(如NFD),即可将异构的边缘设备部署为统一的NDN节点。所述NDN 节点部署过程中,必须保证其基于传统IP网络的底层通信信道保持连通。其中,底层通信信道可以是以太网、UDP、TCP、UNIX、FD、dev中的任意一种或多种。
[0023] 初始阶段,所述NDN节点在IP网络上是连通的,在NDN网络上是孤立的,所以NDN网络的组建需要基于传统IP网络的通信来实现。具体的构建流程可以分为三个过程:节点编号请求、邻居发现、全局网络拓扑结构的构建与维护。
[0024] (2)节点编号请求
[0025] 如图2的(a)所示,为NDN节点编号请求过程,分为以下三个步骤:
[0026] 步骤一:新接入网络的边缘计算节点通过IP地址(服务器IP已知)或广播(服务器IP未知)的方式访问控制服务器,向其请求节点编号。
[0027] 步骤二:控制服务器接受请求,根据请求包中的源IP地址信息返回未分配的NDN节点编号。该NDN节点编号在整个NDN网络中具有全局唯一性,是该节点在NDN网络中的身份标识。
[0028] 步骤三:NDN节点在接收到分配的NDN节点编号后,返回确认数据包,告知控制服务器该编号已成功分配。
[0029] (3)邻居发现
[0030] 如图2的(b)所示,为NDN节点邻居发现过程,分为以下六个步骤:
[0031] 步骤一:NDN节点向指定跳数范围内所有主机广播Hello包,告知自身 NDN节点编号信息。网络中其它NDN节点主机接收并识别数据包内容,非 NDN节点主机自动忽视Hello包。
[0032] 步骤二:网络中NDN节点确认Hello请求,返回包含自身NDN节点编号信息的数据包。
[0033] 步骤三:NDN节点根据返回数据包的延时情况,筛选出距离自身较近的 NDN节点作为目标邻居,并向其发送建立NDN虚拟链路请求。
[0034] 步骤四:NDN邻居节点确认请求,同意并与之建立NDN虚拟链路。
[0035] 步骤五:NDN节点与邻居同时创建新的NDN接口,将其设置为指向对方节点编号的路由前缀。在创建的NDN虚拟链路上互相发送NDN链路通信测试包。
[0036] 步骤六:NDN节点与邻居互相返回链路测试确认包,诺两者均确认成功,则NDN虚拟链路成功建立。
[0037] (4)全局网络拓扑结构的构建与维护
[0038] 如图2的(c)所示,为全局NDN网络拓扑结构的构建与维护过程,分为以下五个步骤:
[0039] 步骤一:新接入的NDN节点在完成邻居发现过程后,立即向控制服务器发送自身的接口信息以及与邻居的链路链接情况。
[0040] 步骤二:控制服务器在获取到该节点的NDN链路链接情况后,立即对存储的NDN网络拓扑数据进行更新,并将更新后的网络拓扑数据全部发送给新接入的NDN节点。
[0041] 步骤三:NDN节点接收到网络拓扑数据后,向控制服务器返回确认数据包。否则,控制服务器将在一定时间后进行数据重传。
[0042] 步骤四:NDN节点周期性地向控制服务器发送NDN链路状态包,告知自身在线状态以及NDN链路变化情况。
[0043] 步骤五:控制服务器不间断地接收在线NDN节点的状态信息,维护当前全局网络拓扑结构数据。当检测到节点离线或链路状态改变时,控制服务器立即向全网所有节点广播拓扑数据更新包,保证拓扑信息随时保持同步。
[0044] (5)NDN命名机制的设计
[0045] 本方法中,数据的命名机制包含五种元数据信息组件,分别为节点编号、项目名称、数据类型、数据版本和数据分片。组件依次排列,构造出层次化的数据名称,其结构如下所示。
[0046] /NodeNum/ProjectName/DataName/Version/SliceNum
[0047] 五种元数据信息的具体描述如下表1所示。
[0048] 表1五种元数据信息的描述
[0049]
[0050]
[0051] 其中,节点编号信息作为数据名称的根组件,标识了源数据发布者节点的编号。将其纳入命名机制可以实现数据源地址与数据本身的分离,数据请求者可以在任意节点上直接根据数据发布者节点编号搜索目标数据,避免了请求必须路由至远端源数据节点才能获得返回数据的网络开销。项目名称标识边缘计算集群中运行的不同应用项目,可对集群中运行的两个项目存在的同名数据进行区分。例如,两个人脸识别项目使用同一边缘设备采集的两个不同的视频,视频名称均为01.mp4,此时通过项目名称组件即可区分它们从属的项目。数据名称标识了数据本身的区别。数据版本和数据切片则使基于名称的路由精度缩小至版本和数据包切片粒度。该层次化的命名机制设计,保证边缘计算网络中数据的请求保持高效性与准确性。
[0052] (6)NDN数据包结构的设计
[0053] NDN网络通信方式是由数据请求者来驱动的,其通信过程中使用了两种不同类型的包:兴趣包和数据包。数据请求者使用兴趣包向网络发送数据请求,网络中各节点根据兴趣包中的数据名称进行路由与转发,最终将匹配数据通过数据包返回至请求者,从而完成一次完整通信。
[0054] NDN两种包结构的具体设计如图3所示,其各域的功能描述分别如下两表所示。
[0055] 表2兴趣包结构中各域的功能描述
[0056]
[0057] 表3数据包结构中各域的功能描述
[0058]
[0059] (7)边缘计算网络协议框架的设计
[0060] 边缘计算节点网络的协议框架如图4所示,其包含上下两层结构。下层为传输层,通过内容仓库(CS)、等待表(PIT)和转发表(FIB)对NDN数据包的路由与转发提供决策,确保实现高速率低消耗的网络数据传输。上层为控制层,通过ACK确认和丢包重传机制对NDN数据包的通信过程进行控制,确保数据包可以准确地发送到指定的节点。
[0061] (8)内容仓库的功能与结构
[0062] 内容仓库(CS)是边缘计算网络实现网内存储的关键模块,本发明设计了适用于边缘网络的网内存储机制,保证网络实现高效的数据重复使用能力。网内存储的具体过程可分为以下两个阶段:
[0063] 1)边缘节点将通过自身路由和转发的数据包存储在内容仓库中,根据内容仓库更新算法维护仓库数据有效性;
[0064] 2)其它节点的请求转发至该边缘节点,节点搜索内容仓库以匹配目标数据,若匹配成功则直接返回请求数据。
[0065] 该过程避免了从远端源数据节点获取数据的网络开销,让请求的满足发生在距离最近并且存有目标数据的节点上。网络数据的请求频率并不一致,内容仓库存在固定的容量上限,因此维护仓库数据有效性关键在于:1)将网络请求频率高的“流行”数据存储在仓库中;2)将请求频率低的“冷僻”数据从仓库中删除。
[0066] 因此,本发明将内容仓库的存储结构设计如下表4所示:
[0067] 表4内容仓库的存储结构设计
[0068]
[0069] 在边缘计算网络中,当某个分布式计算任务执行时,其所需的数据会成为“热点”数据,被大量计算节点并发请求。因此,边缘计算网络中数据的“热度”具有很强的时效性,缓存数据更新算法将时间戳作为优先考虑的因素,而请求次数作为第二考虑的因素。
[0070] 内容仓库缓存数据的更新算法设计如下。
[0071]
[0072]
[0073] 如算法1所示,新的数据包到达计算节点,更新算法首先搜索CS,判断该数据是否已经被存储。已被存储则结束更新,否则判断CS剩余缓存空间是否为空。缓存空间非空,则将数据直接存储入CS中并结束更新,否则执行下一步。将CS中的数据先按时间戳升序排序,选出最早插入的数据,再将时间戳相同的数据条目按照请求次数升序排序,选出最早插入且最少被请求的数据,将其删除并插入新的数据。
[0074] (9)等待表的功能与结构
[0075] 等待表(PIT)实时记录边缘节点上的转发状态信息,其功能主要体现在对下游数据请求实现聚合,对上游返回数据进行分发。具体描述体现在以下两个方面:
[0076] 1)兴趣包到达边缘节点,在PIT表中匹配到相同数据名称的条目,说明该节点已经向上游转发过此数据请求。将该兴趣包的来源接口添加到对应条目下的下游接口列表中,避免相同数据名称的兴趣包重复上传。
[0077] 2)数据包返回边缘节点,根据数据名称匹配,找到对应条目的下游接口列表,向列表中的所有接口分发数据包。
[0078] 此外,通过对PIT条目的最大数量进行设置,当该节点处于等待状态的请求达到限额后,拒绝所有下游请求,以此实现路由负载的控制。每个数据名称的条目下拥有存储该请求等待时间的变量,为路由选择策略提供各链路的通信质量信息。
[0079] 等待表的存储结构设计如下。
[0080] 表5等待表的存储结构设计
[0081]
[0082]
[0083] (10)转发表的功能与结构
[0084] 转发表(FIB)通过数据名称匹配,将本节点上没有存储也没有转发过的数据请求发送到下一跳节点上,其功能类似于传统路由表。考虑到边缘计算网络中全局路由和数据路由的不同需求,分别设计两种类型的存储条目。
[0085] 1)存储全局路由信息,其根据控制服务器的全局网络拓扑数据生成从该节点到目标节点的最优路由选择路径。其条目数量等于网络中边缘节点的数量,表项是目标节点的节点编号、转发接口以及路由距离。
[0086] 2)存储数据路由信息,其根据节点在网络通信过程中接收的历史数据名称而建立。其条目数量由节点FIB存储容量决定,当剩余容量为空时,新的数据路由信息将覆盖旧的数据路由信息。
[0087] 转发表的存储结构设计如下。
[0088] 表6转发表的存储结构设计
[0089]
[0090]
[0091] (11)传输层路由与转发机制
[0092] 传输层NDN数据包的路由与转发机制,使得边缘计算网络兼顾数据的交换与全局的路由。在边缘计算节点上,NDN数据包的路由与转发流程如图5 所示,该过程具体表述为:
[0093] 步骤一:判断请求(兴趣包)转发策略,若置为0,则进行全局拓扑路由转发,流程结束;若置为非0,则执行下一步骤。
[0094] 步骤二:请求进入CS内容存储库,检索CS以判断该节点是否缓存了所求数据。
[0095] 步骤三:CS检索成功,直接返回所求数据(数据包),以满足下游请求,流程结束;CS检索失败,则执行下一步骤。
[0096] 步骤四:请求进入PIT待定表,检索PIT以判断节点是否已向上游发送该数据请求。
[0097] 步骤五:PIT检索成功,直接添加下游传出接口,流程结束;PIT检索失败,则执行下一步骤。
[0098] 步骤六:判断请求存活时间,若当前剩余可转发次数为0,则该请求已死亡,抛弃请求,流程结束;若当前剩余可转发次数非0,则该请求存活,执行下一步骤。
[0099] 步骤七:请求进入FIB转发信息库,检索FIB以选择转发接口。
[0100] 步骤八:FIB检索成功,向匹配接口转发请求;FIB检索失败,根据转发策略向指定数量的接口随机转发请求,流程结束。
[0101] 边缘计算节点路由与转发流程的算法描述如下。
[0102]
[0103]
[0104]