- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux下高并发认证服务器设计.doc
Linux下高并发认证服务器设计
本文介绍了Linux下一种高并发认证服务器基本结构和各功能模块软件设计方法。系统采用epoll和线程池技术来保证其具有高并发功能,采用了RSA和DES算法来保证信息传输的安全性,通过完整设计实例测试,结果表明, 采用有效的多进程产生和管理机制认证服务器在高负载的情况下运转正常。该系统作为在短时间内同时处理大量的来自客户端请求的研究具有一定的现实意义。
【关键词】高并发认证服务器 软件设计 多线程
目前,数据的加密与认证广泛地运用在基于http协议的web服务器中,如网站的登录、网上支付等。自从“棱镜”事件曝光后,如何在越来越广的范围内保护我们的隐私,成为了现在的热点问题,一个高并发的服务器是在短时间内同时处理大量的来自客户端请求的一个系统。而现在常用的服务器如WEB服务器,游戏服务器,并发性都是有限的。因此对高并发认证服务器的研究具有一定的现实意义。本文介绍一种高并发功能的认证服务器设计方法。
1 软件系统基本结构设计
本系统采用C/S设计模式,系统包括服务器端设计模块、信息处理模块、加密设计模块、系统集成测试模块。高并发认证服务器的任务是服务器对客户端的身份做一个认证。认证服务器首先生成一对公私钥对,在接到客户端发来的认证请求后,服务器将公钥发给客户端,客户端接到服务器端的响应后,生成DES密钥,用接收来的服务器公钥加密用户帐号UID,用户口令USEPASSWORD,用户的DES密钥DESKEY等信息,并将其发送给服务器,服务器用私钥解密数据后,验证用户身份的合法性。信息处理模块主要完成功能是生成RSA公钥对,通过对用户类型判断,验证客户身份,回复客户端。 加密设计模块基于“对称密钥”的加密算法DES算法,把64位的明文输入块变为数据长度为64位的密文输出块,其中8位为奇偶校验,另外56位作为密码的长度。系统集成测试模块包括服务器配置、服务器端数据库的配置和测试用例的设计。
2 服务器端设计
采用epoll和线程池技术,设计了一个大并发认证服务器。服务器利用一个监听线程,接受客户端的请求后放入连接缓冲区,使用epoll技术来做事件触发,再由线程池中的处理线程处理客户端发来的认证请求。处理线程需要将客户信息解密后与存放在MySQL数据库中的信息进行比对,从而完成认证过程。服务器的主要工作流程大致如下,当启动客户端后,首先应确保程序的单实例运行,然后初始化运行日志,当初始化完成后系统就会读取服务器的配置文件。然后进行命令解析,如果输入的参数为“-v” 将显示系统的版本号,如果输入的参数为“-h”将出现中文帮助信息,如果不带参数将会直接运行,如果输入参数不正确将会出现“命令行参数不正常,请参见:”的提示。
在上述就绪之后,服务器将首先创建并初始化线程池,创建网络环境并初始化参数。接着调用epoll_create 函数来创建一个epollfd 的文件描述符。第三,调用epoll_ctl 函数将监听套接字注册到epoll 事件的等待队列中。第四是设计在一个“死循环”中,调用调用epoll_wait 阻塞等待注册在epoll 上的sockfd 事件的发生,依次处理到来的事件,如果到来的的事件是监听事件,就调用accept 函数来产生连接套接字,并且将这个套接字也设置成非阻塞的状态注册到epoll 的事件等待的队列中,如果到来的事件是表明有已经连接的客户端的通信数据到来,就向线程池中抛入一个任务。同时唤醒空闲的任务线程来处理相关的认证业务请求。图1为高并发认证服务器流程图。该设计最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。
3 线程池技术
线程池的作用是有效的降低频繁创建销毁线程所带来的额外开销。本系统在服务器启动之初便预先创建一定数目的任务线程。在运行的过程中,需要时可以从这些线程所组成的线程池里申请分配一个空闲的线程,来执行认证的任务,任务完成后,并不是将线程销毁,而是将它返还给线程池。如果线程池中预先分配的线程已经全部分配完毕,但此时又有新的任务请求,则线程池会动态的创建新的线程去适应这个请求。其工作流程图见图2.以下将详细阐述本系统线程池设计。
3.1 线程池设计
typedef struct tp_thread_pool_s TpThreadPool; //对线程池的描述。
struct tp_thread_pool_s
{
unsigned min_th_num; //线程池中至少存在的线程数,线程池初始化的过程中会创建min_th_num数量的线程;
unsigned cur_th_num;
您可能关注的文档
- 80后公务员下乡记.doc
- 86例子宫输卵管造影后妊娠结局.doc
- 90后的N种可能:一言不合就创业.doc
- 91岁抗战老兵:从被拐的放牛娃到三等功勇士.doc
- 95598重复诉求原因分析及改善措施.doc
- 96例小儿支气管炎患者的护理体会.doc
- 98家欧美企业入驻昆山德国工业园.doc
- 9E燃机一次调频测试存在的问题及优化.doc
- A Fly in the Ointment.doc
- A Literature Review and Evaluation of Feminist Translation.doc
- Literature Review of the Reasons of Chinese MasterStudents’ Language Choices in UK Universities.doc
- Looking for the Next Great Company.doc
- LTE 800M网络部署策略研究.doc
- LTE室分外泄问题优化方法研究.doc
- LTE室分方案及建设策略.doc
- LTE网络建设初期部署小基站容量问题研究.doc
- L房地产公司销售人员激励方案优化对策探讨.doc
- M701F燃气轮机控制系统浅析.doc
- Maintaining Cross-Straits Peace Top Responsibility for Taiwan Leader.doc
- Making Sense of China’s Maritime Border.doc
文档评论(0)