摘要 | 第4-5页 |
abstract | 第5页 |
第1章 绪论 | 第9-17页 |
1.1 本课题的选题背景 | 第9-11页 |
1.2 应用研究的分类 | 第11-13页 |
1.3 国内外研究概况 | 第13-15页 |
1.4 本文的组织结构 | 第15-17页 |
第2章 需求分析 | 第17-23页 |
2.1 简述 | 第17页 |
2.2 功能需求 | 第17-19页 |
2.3 性能需求 | 第19-20页 |
2.4 安全性需求 | 第20-21页 |
2.5 用户体验需求 | 第21-23页 |
第3章 基础系统的设计与实现 | 第23-39页 |
3.1 简述 | 第23页 |
3.2 网络底层系统设计与实现 | 第23-31页 |
3.2.1 客户端与服务器端的协议使用 | 第25-26页 |
3.2.2 登陆、注册协议 | 第26-27页 |
3.2.3 聊天协议 | 第27页 |
3.2.4 好友协议 | 第27-29页 |
3.2.5 P2P通信协议 | 第29-31页 |
3.3 数据库设计与实现 | 第31-32页 |
3.3.1 账号表 | 第31页 |
3.3.2 好友表 | 第31-32页 |
3.3.3 离线消息库 | 第32页 |
3.4 消息加密与解密 | 第32-35页 |
3.5 服务器线程模型设计 | 第35-36页 |
3.6 服务器整体架构设计 | 第36-37页 |
3.7 本章小结 | 第37-39页 |
第4章 关键技术的分析与程序实现 | 第39-63页 |
4.1 简述 | 第39页 |
4.2 NAT标准 | 第39-41页 |
4.2.1 NAT的简介 | 第39-40页 |
4.2.2 NAT的类型 | 第40页 |
4.2.3 NAPT具体类型 | 第40-41页 |
4.3 NAT类型的判断 | 第41-44页 |
4.3.1 STUN探测 | 第42-44页 |
4.4 NAT穿透方案的研究 | 第44-49页 |
4.4.1 中继(Relaying) | 第44页 |
4.4.2 逆向连接(Connectionreversal) | 第44-45页 |
4.4.3 UDP打洞(UDPHolePunching) | 第45-46页 |
4.4.4 TCP打洞(TCPHolePunching) | 第46-49页 |
4.5 UDP打洞实现方案 | 第49-58页 |
4.5.1 打洞过程 | 第50-57页 |
4.5.2 打洞核心代码的说明 | 第57-58页 |
4.6 测试 | 第58-61页 |
4.6.1 核心代码说明 | 第58-60页 |
4.6.2 结果 | 第60-61页 |
4.7 小结 | 第61-63页 |
第5章 P2P文件传输模块实现 | 第63-69页 |
5.1 简述 | 第63页 |
5.2 打洞方法的实现 | 第63-65页 |
5.2.1 可靠的UDP通信 | 第63-65页 |
5.3 断点续传 | 第65-69页 |
第6章 软件的测试 | 第69-75页 |
6.1 简述 | 第69页 |
6.2 P2P打洞与消息传输测试 | 第69-72页 |
6.2.1 测试环境 | 第69页 |
6.2.2 测试方法 | 第69-71页 |
6.2.3 测试结果 | 第71-72页 |
6.3 P2P文件传输测试 | 第72-75页 |
6.3.1 测试环境 | 第72页 |
6.3.2 测试方法 | 第72-73页 |
6.3.3 文件断点续传测试 | 第73页 |
6.3.4 测试结果 | 第73-75页 |
结论 | 第75-77页 |
参考文献 | 第77-81页 |
致谢 | 第81页 |