摘要 | 第5-6页 |
abstract | 第6页 |
第1章 绪论 | 第12-19页 |
1.1 研究背景及意义 | 第12-14页 |
1.2 国内外研究现状 | 第14-17页 |
1.2.1 研究现状 | 第14-16页 |
1.2.2 手机平台软件的现状 | 第16页 |
1.2.3 手机隐私保护软件的现状 | 第16-17页 |
1.3 本文工作内容和章节安排 | 第17-18页 |
1.3.1 课题研究的目标 | 第17页 |
1.3.2 课题研究的意义 | 第17-18页 |
1.3.3 论文安排 | 第18页 |
1.4 本章小结 | 第18-19页 |
第2章 相关理论与关键技术 | 第19-32页 |
2.1 VPNService | 第19-26页 |
2.1.1 VPNService技术简介 | 第19-20页 |
2.1.2 基本原理 | 第20-21页 |
2.1.3 VpnServcie创建步骤 | 第21-25页 |
2.1.4 总结 | 第25-26页 |
2.2 TCP/IP | 第26-31页 |
2.2.1 简介 | 第26页 |
2.2.2 IP | 第26-29页 |
2.2.2.1 简介 | 第26-27页 |
2.2.2.2 基本原理 | 第27页 |
2.2.2.3 数据报 | 第27-29页 |
2.2.3 TCP | 第29-30页 |
2.2.3.1 简介 | 第29页 |
2.2.3.2 基本原理 | 第29页 |
2.2.3.3 报文段 | 第29-30页 |
2.2.4 UDP | 第30-31页 |
2.3.4.1 简介 | 第30页 |
2.3.4.2 基本原理 | 第30-31页 |
2.3.4.3 用户数据报 | 第31页 |
2.3 本章小结 | 第31-32页 |
第3章 需求分析与平台选择 | 第32-38页 |
3.1 需求分析 | 第32-35页 |
3.1.1 功能需求分析 | 第32-35页 |
3.1.2 非功能性需求分析 | 第35页 |
3.2 平台选择 | 第35-37页 |
3.2.1 平台特征 | 第35-36页 |
3.2.2 平台架构 | 第36-37页 |
3.2.3 Android市场 | 第37页 |
3.3 本章小结 | 第37-38页 |
第4章 系统设计 | 第38-53页 |
4.1 系统设计选择 | 第38-39页 |
4.2 基于VPN的不同设计方案 | 第39-40页 |
4.2.1 远程VPN服务 | 第39页 |
4.2.2 本地VPN服务 | 第39-40页 |
4.2.3 虚拟VPN服务 | 第40页 |
4.2.4 主要困难 | 第40页 |
4.3 系统框架 | 第40-41页 |
4.4 基本工作流 | 第41-42页 |
4.5 虚拟VPN的设计 | 第42-43页 |
4.5.1 Android系统中的VPN服务 | 第42页 |
4.5.2 虚拟VPN服务 | 第42-43页 |
4.6 IP包处理器的设计 | 第43-47页 |
4.6.2 IP包解析器 | 第43页 |
4.6.3 IP包重构器 | 第43-44页 |
4.6.4 TCP连接状态的设计 | 第44-47页 |
4.6.4.1 状态维护 | 第46页 |
4.6.4.2 设计细节 | 第46-47页 |
4.6.4.3 连接状态 | 第47页 |
4.6.4.4 非阻塞式传输 | 第47页 |
4.6.4.5 重构TCP校验和 | 第47页 |
4.7 中间代理的设计 | 第47-48页 |
4.7.1 发送消息队列 | 第48页 |
4.7.2 接收消息队列 | 第48页 |
4.7.3 Socket通道 | 第48页 |
4.8 过滤器的设计 | 第48-50页 |
4.8.1 过滤策略设计 | 第49页 |
4.8.2 插件的设计 | 第49-50页 |
4.8.2.1 自定义插件 | 第49页 |
4.8.2.2 插件基本功能设计 | 第49-50页 |
4.8.2.3 怎样获得应用信息 | 第50页 |
4.9 系统功能设计 | 第50-52页 |
4.9.1 系统功能模块设计 | 第50页 |
4.9.2 数据库设计 | 第50-51页 |
4.9.3 系统业务流程设计 | 第51页 |
4.9.4 当前的不足 | 第51-52页 |
4.10 本章小结 | 第52-53页 |
第5章 系统实现 | 第53-76页 |
5.1 系统的开发环境 | 第53页 |
5.1.1 硬件环境 | 第53页 |
5.1.2 软件环境 | 第53页 |
5.2 虚拟VPN服务功能的实现 | 第53-56页 |
5.2.1 虚拟网卡的实现 | 第53-54页 |
5.2.2 读取IP包队列 | 第54-55页 |
5.2.3 写入IP包队列 | 第55页 |
5.2.4 实现中出现的问题 | 第55-56页 |
5.3 IP包解析器的实现 | 第56-60页 |
5.3.1 解析IP首部 | 第57-58页 |
5.3.2 解析TCP首部 | 第58-59页 |
5.3.3 解析数据部分 | 第59-60页 |
5.4 IP包重构器的实现 | 第60-64页 |
5.4.1 重构IP首部 | 第60-62页 |
5.4.2 重构TCP首部 | 第62-64页 |
5.4.3 重构数据部分 | 第64页 |
5.5 过滤器的实现 | 第64-66页 |
5.5.1 插件接口 | 第64-65页 |
5.5.2 获取设备隐私信息 | 第65页 |
5.5.3 定义插件类实现流量过滤 | 第65-66页 |
5.6 中间代理的实现 | 第66-69页 |
5.6.1 发送信息队列 | 第67页 |
5.6.2 接收消息队列 | 第67-68页 |
5.6.3 Socket通道的实现 | 第68-69页 |
5.7 系统功能实现 | 第69-73页 |
5.7.1 创建数据库 | 第69页 |
5.7.2 DAO公共类 | 第69-70页 |
5.7.3 自定义隐私信息的实现 | 第70-71页 |
5.7.4 应用黑名单的实现 | 第71-73页 |
5.8 初期探索 | 第73-75页 |
5.8.1 使用python来测试重构数据 | 第73页 |
5.8.2 使用WireShark抓包来分析数据包 | 第73-75页 |
5.9 本章小结 | 第75-76页 |
第6章 功能测试与性能评估 | 第76-84页 |
6.1 系统功能测试 | 第76-81页 |
6.1.1 构建测试客户端与服务器 | 第76-77页 |
6.1.2 自定义隐私信息保护 | 第77-80页 |
6.1.3 应用程序黑名单 | 第80-81页 |
6.2 系统性能评估 | 第81-83页 |
6.3 本章小结 | 第83-84页 |
总结及展望 | 第84-86页 |
参考文献 | 第86-88页 |
致谢 | 第88页 |