北京理工大学,计算机学院,徐欣廷,硕士毕业论文,实验部分需要的所有代码。
项目主要由配置文件、共享头、各部分具体实现组成。
所有的配置项均以json格式保存,包含数据库信息,调制、解调的参数信息。
- 数据库地址、用户名、口令
- 数据库名
生成隐蔽消息
- 负载消息数据表
- 生成负载的数量
- 每条消息的长度
生成随机噪声
- 噪声数据表
- 随机噪声类型(默认为2)
- 平均丢包率的比例
- 每种丢包率条目数量
- 每个项的最大数据包长度
实验参数配置
- 实验需要的参数配置表
- 实验方案类型(1表示方案一,2表示方案二),不同方案需要的参数类型不同
- 各参数候选项,根据不同方案,只选择有效的参数组合
调制及解调过程公用
- 调制数据库及原始信息表的定义
- 操作对象的类型,1表示原始的抓包,2表示生成的随机噪声,3表示细分场景
- 并行线程数
- 是否开启DEBUG调试,0不开启,1开启。开启后强制单线程,并将中间结果记录到log文件
- 加盐噪声,包括HASH SALT及OFFSET SALT,主要用于方案二
统计参数配置
- 数据库及数据表信息
- 数据类型,只允许1或3
- 并行线程数
- 滑动窗口的起始、结束及步长
所有项目公用的头文件,及部分方法的实现
解析json配置文件,并按照数据库参数结构体及参数映射表返回
执行各阶段的初始化、清理操作
生成用于发送的Covert Message
生成实验需要的参数组合
生成随机噪声
第一种方案的调制过程
第一种方案的解调过程
第二种方案的调制过程
第二种方案的解调过程
根据统计设定,统计各分部的统计值、概率、累积分布 同一source下的合并
根据统计设定,统计各分部的统计值、概率、累积分布 各调制结果独立一条
Python项目,对调制前及调制后的分布,进行一致性假设检验、熵检验及距离检验
FFT变换,测试丢包的分布是否存在特定的模式
按照固定的比例进行丢包,模拟时间隐通道的行为
组合抓包结果,生成测试样本
统计样本中的分布特征,复用5-Calculation-Distribution中的部分代码
选择两个抓包样本,进行视频质量的评估