[发明专利]一种保障LISP通信数据完整性的首包缓冲方法有效

专利信息
申请号: 201710828236.8 申请日: 2017-09-14
公开(公告)号: CN107659504B 公开(公告)日: 2019-11-12
发明(设计)人: 邓文平;王宝生;刘欢;高先明;郦苏丹;唐竹;胡宁;王宏;彭伟;陈琳 申请(专利权)人: 中国人民解放军国防科技大学
主分类号: H04L12/741 分类号: H04L12/741;H04L12/861;H04L12/911;H04L29/06
代理公司: 湖南兆弘专利事务所(普通合伙) 43008 代理人: 陈晖
地址: 410073 湖南*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种保障LISP通信数据完整性的首包缓冲方法,目的是解决LISP模型下,传输首包报文丢失的问题。技术方案是先构建由用户域和LISP域组成的基于LISP的通信架构模型,LISP域由MS、MR、ITR、ETR和路由器组成,用户域为多台搭载linux操作系统的终端设备;在xTR数据平面添加由首包报文缓存预处理部件、Pi缓存管理部件和PIBT表组成的PiBuffer管理模型:初始化基于LISP的通信架构模型后,判定是否需要进行首包报文缓存,若需要则基于LISP的通信架构模型进行首包报文缓存,并在ETR成功获取所需的目的RLOC后释放已缓存首包报文,最后基于LISP通信模型架构进行数据报文传输。本发明解决了LISP通信机制中目的RLOC匹配失败情形下的首包报文丢失问题,保证了LISP数据报文的完整性。
搜索关键词: 一种 保障 lisp 通信 数据 完整性 缓冲 方法
【主权项】:
1.一种保障LISP通信数据完整性的首包缓冲方法,其特征在于包括以下步骤:第一步,构建基于LISP的通信架构模型,LISP的通信架构模型由用户域和LISP域两部分组成:LISP域由一台MS、两台xTR、一台MR和一台路由器组成,xTR依据单向一次通信角色分为一台ITR和一台ETR;MS是一台服务器,其上安装linux操作系统、控制平面;xTR是搭载linux系统的服务器,安装有相互独立的数据平面和控制平面;MR也是搭载linux系统的服务器,其上安装有控制平面;MS、MR、ITR、ETR均和路由器直连;用户域为多台搭载linux操作系统的终端设备,其上安装有linux系统,可完成IP通信;通信发起端终端设备和ITR相连,通信接收端终端设备则和ETR使用相连,用户域内通信发起端终端设备将IP报文发送到ITR,经过路由空间的寻址转发后,由ETR发送到通信接收端终端设备;第二步:在xTR数据平面添加PiBuffer管理模型,Pibuffer管理模型由首包报文缓存预处理部件、Pi缓存管理部件和PIBT表组成:首包报文缓存预处理部件是工作于控制平面和Pi缓存管理部件之间的中间件,与控制平面和Pi缓存管理部件均相连,首包报文缓存预处理部件以接收到xTR数据平面发出的目的RLOC匹配失败消息时开始,到接收到xTR控制平面传来的Map_reply消息为止,在这个时间段内首包报文缓存预处理部件从xTR数据平面接收待缓存数据,向Pi缓存管理部件发送消息缓存指令并将待缓存数据发送给Pi缓存管理部件;当首包报文缓存预处理部件从Pi缓存管理部件接收到操作回馈消息时,根据操作回馈消息对Pi缓存管理部件产生相应工作指令;所述操作回馈消息有三种,分别是报文查找回馈消息,报文缓存回馈消息,报文释放回馈消息,所述工作指令相应包括查找缓存报文指令、添加缓存报文指令、释放缓存报文指令;Pi缓存管理部件对首包报文进行存储和释放,它与首包报文缓存预处理部件、xTR数据平面进行通信;Pi缓存管理部件从首包报文缓存预处理部件接收到消息缓存指令时,从首包报文缓存预处理部件接收待缓存数据,将待缓存数据写入PIBT表,并向首包报文缓存预处理部件发送存储成功的报文缓存回馈消息;当Pi缓存管理部件从首包报文缓存预处理部件接收到释放缓存报文指令时,提取释放缓存报文指令中的Idx和EID,将Idx和EID作为关键字查询PIBT表,将查询到的已缓存首包报文传输给xTR数据平面;PIBT表是缓存首包报文的数据表,该表有7个表项属性,分别为Idx,状态位,EID,P指针位,Pc指针位,缓存报文个数标识,TTL,PIBT表的项数N为PIBT表能缓存首包报文的个数,N为正整数;Idx为PIBT表缓存条目序号,范围为0~n;状态位标识该项缓存是否为已通告过控制平面的缓存消息,为0表示本条数据未向控制平面进行存储反馈,为1表示本条数据已向控制平面进行存储反馈;EID为缓存首包报文的目的EID标识;P指针位是指向该项缓存的内存索引首地址的指针;Pc指针位是指向该项缓存的内存索引当前操作地址的指针;n是缓存报文个数标识,表明当前PIBT表项存储的首包报文的数量,0≤n≤N;TTL标识缓存首包报文最大存活时间,单位是秒;第三步,初始化基于LISP的通信架构模型,方法是:3.1MS启动控制平面;3.2MR启动控制平面;3.3xTR启动控制平面和数据平面,进行socket通信初始化;3.4xTR数据平面初始化PiBuffer缓存管理模型,方法是:3.4.1初始化PIBT表;3.4.2xTR数据平面初始化首包缓存预处理部件通信接口;第四步:基于LISP的通信架构模型进行首包报文缓存,方法是:4.1用户终端注册,方法如下:4.1.1在设备的角色配置文件中指明该设备在LISP通信模型中扮演的角色,分别为xTR、MS和MR,并在角色配置文件中配置与角色相对应的注册配置文件;4.1.2在2台xTR的注册配置文件中配置如下几项项目:负责存储xTR信息的MS地址和KEY;负责响应xTR的MR地址;与xTR相连的终端设备的EID;xTR的本地RLOC信息;配置权值、优先级、生存时间这些辅助信息;4.1.3在MS的注册配置文件中进行配置,方法是:4.1.3.1配置在MS中注册的EID的地址段信息,确定MS可以接受注册的终端的EID的范围;4.1.3.2在MS存储的地址说明段中配置终端名称、KEY、联系地址、活动状态;4.1.3.3在MS存储的EID地址段范围内配置终端地址类型、地址、活动状态;4.1.4在MR的注册配置文件中进行配置,方法是:4.1.4.1配置MR可响应的终端的EID地址范围;4.1.4.2配置EID信息域;4.1.4.3配置RLOC的地址、权值、权重、保活状态;4.1.5重新启动各设备控制平面完成注册;4.2xTR控制平面在用户终端接入xTR时获取用户终端的EID,并将该EID封装到向数据平面下发的本地映射消息中,用于判断该EID代表的终端发送的数据是否需要进行LISP封装,如果需要则执行步骤4.3,如果不需要则转步骤4.4,按传统IP报文转发处理;4.3ITR的数据平面查询ITR自带的LISP DB表即身份与位置分离协议本地数据库表,为通信终端请求本地RLOC,如果ITR自带的LISP DB表中有本地RLOC则执行步骤4.5,否则转步骤4.1;4.4ITR的数据平面依据IP数据报文中的目的IP地址查询路由表找到相关路由信息,进行路由转发处理,将报文传输到ETR,转步骤6.2;4.5ITR的数据平面依据目的EID查询本地的LISP Cache表即身份与位置分离协议远端映射数据缓存表,根据查询情况按以下步骤处理:4.5.1如果从LISP Cache找到了匹配的目的RLOC,则进行LISP封装通信,将LISP报文发送到路由器,转步骤6.1;若ITR在本地的LISP Cache未找到匹配的目的RLOC,则向ITR控制平面发送目的RLOC匹配失败消息,并由ITR控制平面产生Map_request消息发送给MR,开启首包报文缓存,转步骤4.5.2;4.5.2MR接收到ITR的Map_request请求消息后,依据Map_request请求消息中的目的EID查询自己的响应区域是否有该EID对应的RLOC映射消息,如果有,则向ITR直接反馈Map_reply消息,转步骤4.5.6;否则,向MS发送目的RLOC请求消息,转步骤4.5.3;4.5.3MS接收到MR传来的目的RLOC请求消息,查询自己已接受注册的EID信息,如果存在EID‑RLOC的完整消息映射对,则向MR回复包含EID‑RLOC的完整消息映射对的反馈消息,转4.5.4;否则,MS向ETR发送目的RLOC请求消息,转步骤4.5.5;4.5.4MR收到MS发送的包含EID‑RLOC的完整消息映射对的反馈消息,提取其中的EID‑RLOC的完整消息映射对,向ITR发送Map_reply消息,转步骤4.5.6;4.5.5ETR接收到来自MS的目的RLOC请求消息后,查询自身EID映射关系,若存在EID‑RLOC的完整消息映射对,则向ITR发送Map_reply消息,转4.5.6;若不存在EID‑RLOC的完整消息映射对,则转步骤4.1;4.5.6ITR接收到Map_reply消息,解析Map_reply消息后获得目的RLOC消息,将EID‑RLOC的完整消息映射对中的EID与LISP Cache缓存表中的EID做匹对,如果EID‑RLOC的完整消息映射对中的EID与LISP Cache中的缓存EID相等,则提取Map_reply中的目的EID,封装到map_msgfree消息中,并采用NETLINK将EID消息传输到首包报文缓存预处理部件,转第五步,进行缓存报文释放;否则转第六步;第五步:基于LISP通信结构模型,释放已缓存首包报文,方法是:5.1首包报文缓存预处理部件接收map_msgfree消息,提取携带的目的EID进行MD5计算,得出查表索引h,并将该查表索引h写入查找缓存报文指令发送到Pi缓存管理部件;5.2Pi缓存管理部件接收首包缓存预处理部件发送的查表索引h,匹对PIBT表中Idx表项中的值,如果有满足Idx=h的缓存项,则向首包报文缓存预处理部件发送结果为成功的报文查找回馈消息,通告该项的EID和缓存命中,执行步骤5.3;否则,Pi缓存管理部件向xTR数据平面发送结果为失败的报文查找回馈消息,同时向xTR数据平面发送缓存消息释放结束标识,转第六步;5.3首包报文缓存预处理部件接收到缓存命中消息后,向Pi缓存管理部件发送携带EID和索引h的释放缓存报文指令,转步骤5.4;5.4Pi缓存管理部件依据释放缓存报文指令提供的索引值h,取出PIBT表中索引值h所对应Idx所属条目的首包报文,进行首包装载;第六步,基于LISP通信模型架构进行数据报文传输,方法如下:6.1ITR数据平面判断有无收到Pi缓存管理部件发来的缓存消息释放结束标识,若未收到,则对缓存中释放的报文状态标识为1的缓存报文进行源EID、目的EID、源RLOC、目的RLOC的数据报文头封装,得到LISP报文,并将LISP报文发送给ETR,转步骤6.3;若收到缓存消息释放结束标识,则对不携带状态标识的报文进行源EID、目的EID、源RLOC、目的RLOC的数据报文头封装,得到LISP报文,并将LISP报文发送给ETR,转步骤6.3;6.2ETR接收到传统IP报文,依据IP数据报文中的目的IP地址查询路由表找到相关路由信息,依据IP报文路由转发处理,将报文传输到终端,转步骤6.4;6.3ETR接收到LISP报文,执行LISP解封装,去掉LISP头部得到传统IP报文,按照IP报文的目的IP地址查询路由表找到相关路由信息,依据IP报文路由转发处理,将报文传输到终端,转步骤6.4;6.4终端解析报文,通信结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201710828236.8/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top