[发明专利]一种基于完成端口模型的多链路安全通信方法无效
申请号: | 201310296077.3 | 申请日: | 2013-07-16 |
公开(公告)号: | CN103391289A | 公开(公告)日: | 2013-11-13 |
发明(设计)人: | 胡甜;陈鲲;丁又华 | 申请(专利权)人: | 中船重工(武汉)凌久高科有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08;H04L1/00 |
代理公司: | 武汉金堂专利事务所 42212 | 代理人: | 胡清堂 |
地址: | 430074 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 完成 端口 模型 多链路 安全 通信 方法 | ||
1.一种基于完成端口模型的多链路安全通信方法,其特征在于:通信服务端以Windows系统应用服务的方式运行,根据完成端口模型建立TCP通信服务端,同时创建固定数量的通信接口线程异步与各客户端进行通信,提高服务端的并行处理能力;在交互过程中,任一客户端建立TCP连接后,通信双方都必须采用握手机制协商确立该连接的合法性,并产生一个初始消息序列号,在数据收发过程中双方按照相同的变化规则动态改变该序列号的值,以作为安全验证的基础,防止未经授权的设备侵入系统;服务端使用连接池队列来维护所有合法的连接上的消息序列号,各客户端则使用本地变量来存储该序列号的值;任一方在合法连接上发送的内容均按照数据包结构定义对其进行数据包封装,接收方则采用安全验证算法对数据包进行校验,并依据消息序列号的递增或递减规律对多个数据包进行重组,确保数据接收的有序性。
2.根据权利要求1所述的一种基于完成端口模型的多链路安全通信方法,其特征在于:具体步骤如下:
步骤1:服务器创建服务代理,主要作用在于使得服务端程序以Windows系统应用服务的方式随服务器开机运行并常驻内存,接收操作系统的外部调用,维护服务端自身的管理;
步骤2:服务代理启动时,初始化创建一个主工作线程,同时自身阻塞,以保持代理程序不退出运行,其阻塞解除条件为操作系统外部调用致使该服务停止;
步骤3:主工作线程创建一个队列,即连接池队列,该队列用于储存服务端与各客户端之间的连接及认证信息,队列中的每个元素为一个结构体,初始化为空;
步骤4:主工作线程创建TCP服务端和完成端口,同时绑定服务端套接字socket和完成端口,异步投递Accept事件侦听指定端口,接受各客户端的连接请求;
步骤5:主工作线程创建固定数量的通信接口线程,同时自身阻塞,以保持主工作进程常驻内存运行,其阻塞解除条件为服务代理程序被外部调用终止运行;
步骤6:每个通信接口线程均调用GetQueuedCompletionStatus()函数阻塞式监听完成端口I/O事件;
步骤7:任一客户端向服务端发起连接请求,空闲通信接口线程接受该请求,建立TCP连接,随后,客户端发送认证数据包;
步骤8:空闲通信接口线程接收到数据包后,根据消息头事件类型识别码判断其为认证数据包后,将通信字符串加密与消息头中的安全码进行比对,如果相同则确立该数据包及本连接合法;
步骤9:解析认证数据包,得到消息体结构中的IP地址、消息序列号x,并利用动态变化规则对x进行运算处理后得到新的序列号y,连同本连接的套接字socket,加入到连接池队列中;
步骤10:通信接口线程返回确认数据包,该数据包消息头中安全码将使用新序列号y加密;
步骤11:将序列号y进行运算处理后得到新的序列号z,并以客户端IP地址或socket为关键字遍历连接池队列,更新对应序列号的值为z,通信接口线程返回到空闲状态,转步骤6;
步骤12:客户端接收到数据包后,根据事件类型识别码判断其为确认数据包,将本地产生的序列号x进行运算得到y,加密后与消息头中的安全码进行比对,如果相同则确立该数据包及本连接合法;
步骤13:客户端将序列号y进行运算处理后得到新序列号z,并声明一个变量存储该值;
步骤14:网络中任一客户端有事件需要服务端进行处理时,可发送事件请求数据包,其消息序列号可直接从连接变量中获得,发送后完成后,变化序列号的值更新到连接变量;
步骤15:空闲通信接口线程接收到数据包后,根据本连接的套接字socket遍历连接池队列,得到与该客户端之间通信的消息序列号,如果不存在,则认为本连接非法;
步骤16:将得到的序列号加密后与数据包消息头中的安全码比对,如果相同则认为该数据包合法,并根据事件类型识别码判断其请求类别,解析消息体,及时响应处理,同时变化消息序列号的值更新到连接池队列;
步骤17:以IP地址或socket为关键字遍历连接池队列,获得消息序列号,根据结构定义将处理结果封装为数据包返回给客户端,同时变化消息序列号的值更新到连接池队列,之后通信接口线程返回到空闲状态,转步骤6;
步骤18:客户端接受返回结果数据包,取出连接变量中存储的消息序列号加密,与数据包消息头中安全码比较,如果相同则认为该数据包合法,解析消息体内容,进行结果处理,同时变化消息序列号更新连接变量的值;否则,该数据包非法,转异常处理;
步骤19:操作系统或其它外部调用终止服务代理运行,服务端结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中船重工(武汉)凌久高科有限公司,未经中船重工(武汉)凌久高科有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310296077.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:滑轮油箱
- 下一篇:网络域内构建多态路由的方法、装置及路由器