[发明专利]一种基于完成端口模型的多链路安全通信方法无效
申请号: | 201310296077.3 | 申请日: | 2013-07-16 |
公开(公告)号: | CN103391289A | 公开(公告)日: | 2013-11-13 |
发明(设计)人: | 胡甜;陈鲲;丁又华 | 申请(专利权)人: | 中船重工(武汉)凌久高科有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08;H04L1/00 |
代理公司: | 武汉金堂专利事务所 42212 | 代理人: | 胡清堂 |
地址: | 430074 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 完成 端口 模型 多链路 安全 通信 方法 | ||
技术领域
本发明涉及局域网环境下实时通信领域,是一种支持服务端与多客户端进行多链路并发安全通信的方法。
背景技术
在网络环境下,C/S模型为用户提供了一种便利途径,使得分布在不同位置上的各个客户端突破了地域的限制,以“请求—响应—返回”的方式集中共享服务端的资源,目前这种模型已被大多数商业应用所选择,广泛涉足于各行各业,其核心技术TCP/IP协议为客户端和服务端之间的通信提供了可靠的组织结构支持。
另一方面,在实际的应用中,服务端的数量往往是有限的,通常是一个或是十几个,而与之通信的客户端可能是其百倍甚至是海量,当有若干个客户端需要与服务端进行即时通信时,如采用动态创建线程顺序处理事件请求的方法,则会由于CPU资源有限以及过度频繁的线程调度造成服务端响应延时,出现数据收发超时的错误,最终导致TCP连接的中断。
此外,数据安全也是多链路通信过程中必须考虑的关键问题,一种常用的做法是通信双方使用统一的口令作为确认对方合法身份的唯一标识,但当系统中存在多个客户端并发连接通信时,如果服务端与每个客户端均使用同一个通信口令,且不加区分地采用静态的验证方法,一旦泄密,则无法保证整个系统的数据传输安全,因此,如何以一种动态的方式既维护服务端与客户端之间的安全交互,同时又能确保数据接收的有序性是本发明需要解决的问题之一。
发明内容
本发明的目的是解决在C/S模式下服务端与大量客户端之间的数据通信安全问题,提出了一种多链路并发安全通信方法,该方法易于实现、可靠性高,不仅能够确保服务端消息响应的实时性,还能保证数据传输的安全性和有序性。
本发明采取的方法是:通信服务器以Windows系统应用服务的方式运行,根据完成端口模型建立TCP通信服务端,同时创建固定数量的通信接口线程异步与各客户端进行通信,提高服务端的并行处理能力;在交互过程中,任一客户端建立TCP连接后,通信双方都必须采用握手机制协商确立该连接的合法性,并产生一个初始消息序列号,在数据收发过程中双方按照相同的变化规则动态改变该序列号的值,以作为安全验证的基础,防止未经授权的设备侵入系统;服务端使用连接池队列来维护所有合法的连接上的消息序列号,各客户端则使用本地变量来存储该序列号的值;任一方在合法连接上发送的内容均按照数据包结构定义对其进行数据包封装,接收方则采用安全验证算法对数据包进行校验,并依据消息序列号的递增或递减规律对多个数据包进行重组,确保数据接收的有序性。
所述完成端口模型是一种解决服务端与大量客户端进行并发通信的I/O方法模型,其实现过程是:主工作线程调用API接口函数创建TCP服务端和IO完成端口,同时将服务端套接字socket和完成端口进行绑定,之后异步投递Accept事件侦听指定端口,接受各客户端的连接请求,同时创建一定数据量的接口通信线程进行事件处理。
所述数据包结构,由消息头和消息体组成,消息头信息包括协议版本号、数据包总长度、事件类型识别码、安全码等字段,为定长结构,除安全码外其余所有字段采用明文传输;消息体信息为通信双方数据传输的具体内容,并依据事件类型识别码的不同而定义不同的结构,其长度不定且加密传输。
所述握手机制,其实现过程是:TCP连接建立后,客户端发出认证数据包,该数据包消息头中安全码采用双方约定的通信字符串进行加密所得,消息体至少包含客户端IP地址和序列号x,x为一个随机生成的整数,服务端接收到该数据包后,使用通信字符串对安全码进行验证,通过后解析认证数据包,得到IP地址和序列号x,并将x进行运算处理后得到新的序列号y,加密后得到安全码,同时返回确认数据包,客户端接收返回后则使用y进行数据验证,通过后则双方确立该连接合法,同时确立x为初始消息序列号。
所述连接池,是服务端用于动态维护与多个客户端之间消息序列号的一个队列,其中,每个队列元素为本连接套接字socket、客户端IP地址、与客户端之间的消息序列号三部分组成的结构,当通信双方通过上述握手机制确立连接合法性后,服务端会将本次连接的套接字socket、IP地址、序列号组成一个结构加入到该连接池队列中。
所述消息序列号,由通信双方在交互过程中动态维护,即在同一合法连接上,服务端或客户端无论是发送还是接收数据包时均采用相同的变化规则动态改变该序列号的值,其初始值为上述握手机制确立的整数x,由于服务端与各客户端之间存在着多个连接,各连接上确立的序列号均可能不同,服务端以客户端IP地址或套接字socket为关键字在连接池队列中动态维护多个消息序列号,而客户端仅使用一个本地变量维护该序列号即可。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中船重工(武汉)凌久高科有限公司,未经中船重工(武汉)凌久高科有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310296077.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:滑轮油箱
- 下一篇:网络域内构建多态路由的方法、装置及路由器