摘 要:近年来,随着网络通信技术的广泛应用,IOCP套接字作为一种可以高效处理各种I/O设备的实现方法引起了广泛的关注,它可以实现多线程操作,但由于存在内存被锁问题、数据包重排序问题以及外部攻击所造成的安全性差等问题制约了其发展,针对这些问题,本文提出一种支持SSL协议的IOCP套接字的方案,它可以有效地避免IOCP套接字存在的以上问题.
本文将IOCP套接字按照其功能分为初始化、接受请求、处理请求及退出四个模块,并在接受请求后,将SSL协议引入支持IOCP套接字的服务器中,使得在处理请求的同时可以对数据包进行检查、加解密.在完成代码后对其调试运行,最终得到了可以支持SSL的IOCP套接字.
支持SSL协议的IOCP套接字可以实现用户对安全与效率双重需求,它既支持多个客户端与服务器的同时通信,又可通过SSL协议对用户数据包进行保护.但支持SSL协议的IOCP套接字还是存在诸如无法支持IPv6、系统资源消耗过大、SSL验证的问题.在未来的研究过程中,支持SSL的IOCP套接字以其便捷的安全性得到进一步的发展,具有很大的使用价值.
关键词:SSL;完成端口;线程池;IOCP套接字
目录
摘要
ABSTRACT
第1章 绪论-1
-1.1-课题背景-1
-1.2-课题意义-2
-1.3-本文主要工作-3
-1.4-论文组织结构-3
第2章 支持SSL的IOCP套接字框架设计-5
-2.1-支持SSL的IOCP套接字-5
-2.2-IOCP套接字的功能-5
-2.3-IOCP总体结构设计-6
-2.3.1-网络层-7
-2.3.2-SSL层-7
-2.3.3-应用层-7
-2.4-本章小结-7
第3章 支持SSL的IOCP套接字各模块设计-9
-3.1-IOCP套接字实现的步骤-9
-3.2-通信部分的模块设计-12
-3.2.1-通信初始化模块-12
-3.2.2-接受连接请求模块-14
-3.2.3-客户请求处理模块-15
-3.2.4-系统清理退出模块-16
-3.3-支持SSL的IOCP套接字的服务器层次设计-17
-3.3.1-服务器的网络层-17
-3.3.2-服务器的SSL层-19
-3.3.3-服务器的应用层-22
-3.3.4-支持SSL的服务器各线程主要功能-22
-3.4-本章小结-24
第4章 支持SSL的IOCP套接字测试与结果分析-27
-4.1-软件测试-27
-4.1.1-测试环境-27
-4.1.2-测试过程-27
-4.2-测试结果分析-31
第5章 总结与展望-33
-5.1-总结-33
-5.2-展望-33
参考文献-35
致 谢-37