假设Alice和Eve协商将 作为一个“切断值”,这里的“切断值”是指将序列值切断为两部分,比如已经排序的包到达时间间隔值序列的中间值。双方用同一个规则将序列分为   和 两部分。还可以增加值 ,即使用 来增加准确度。在两种情况下,Alice都有两个二进制位,即0和1,分别对应于序列值的两部分。在接收方,Eve不需要知道确切的包到达时间间隔值,只要知道 和 。
算法工作如图5所示,工作如下:
为了发送0,Alice从0二进制位对应的那部分定时值中随机选择一个定时值 ,然后在停留 时间后向Bob(Eve)发送包;为了发送1,她用1二进制作选择。每一个定时值只使用一次。
在接收方,Eve监听Alice和Bob之间的传输。一旦检测到数据包的到达,Eve将
1)计算当前观察到的包和上一个包之间的到达时间间隔 ;
2)比较 和  ;
3)若 ,则记录一个0;若 ,则记录一个1。图5 时间重放隐蔽信道示意图    
    2.3 本章小结
本章首先对网络时间隐蔽信道作了概述,然后举了几个常见的时间隐蔽信道。本章的重点在于基于TRCTC算法的时间隐蔽信道,2.2节详细阐释了该算法下的时间隐蔽信道的定义和设计。
3 WinSock介绍
Socket原来是UNIX的Berkeley Software Distribution版本中的一个程序接口。它类似于C的函数库。简单地说,WinSock是定义于视窗应用程序与网络之间的标准界面。程序设计者在发展视窗的网络应用软件时,只要支持WinSock界面的标准规格,就不再需要顾虑所使用的网卡硬件部分,因为WinSock所提供的动态链接程序库(WS2_32.DLL)会完成网络底层沟通的工作,进而使得程序设计者能设计出更多功能或更友善的网络软件。
3.1 WinSock描述字
在多数的操作系统中,当应用程序需要执行I/O操作,要求系统打开一个文件时,系统常常建立一个文件描述字,然后应用程序利用这个文件描述字操作相应的文件。文件描述字是整型,表示该文件状态信息在系统表中的索引。Socket与文件类似,每一个活动的Socket由一个整数标识,这个整数被称为Socket描述字。Windows操作系统会为Socket重新安排一个新的系统表。
Socket API中包含一个函数Socket( ),应用程序通过它来建立Socket,它的返回值就是Socket描述字。
3.2 Socket的系统数据结构
当应用程序调用Socket函数时,操作系统分配一个新的数据结构来存储通讯所需要的状态信息,同时将这个存放状态信息的数据指针存放在进程Socket描述表中。下图描述了Socket的内部数据结构。Family指协议族,PF_INET是INTERNET协议族的意思,SOCK_STREAM是面向流的服务。
 
图6 Socket的系统数据结构

3.3 Socket的地址说明
当一个Socket建立后,它并不包括任何关于它将如何被使用的细节信息。特别地,它不包含关于使用它的本地或远程机器的地址信息。因而在应用程序使用Socket时,它必须说明这两个地址。TCP/IP定义它的端点信息由IP地址或协议端口号组成,当然其他的协议族有不同的定义方法。在本论文中,主要涉及TCP/IP协议族。TCP/IP使用的协议族是由AF_INET标识的。
3.4 几个重要的Socket API
1)WSAStartup( )函数
进程在每次使用Windows套接字时必须使用WSAStartup( )函数来初始化WS2_32.DLL动态链接库,每次调用WSAStartup()函数并完成相应的网络功能后要调用WSACleanup( )函数。WSAStartup( )函数说明如下:
int WSAStartup(
  WORD wVersionRequested,
  LPWSADATA lpWSAData
);
2)Socket( )函数
   该函数用于创建一个套接字Socket,该套接字被绑定到一个特定的服务提供者。函数原型如下:
上一篇:MP3音乐文件解码程序设计
下一篇:C#个人事务管理系统的设计与实现+ER图

基于Apriori算法的电影推荐

基于PageRank算法的网络数据分析

基于神经网络的验证码识别算法

基于网络的通用试题库系...

python基于决策树算法的球赛预测

基于消费者个性特征的化...

加密与解密算法的研究【1931字】

神经外科重症监护病房患...

国内外图像分割技术研究现状

AT89C52单片机的超声波测距...

中国学术生态细节考察《...

10万元能开儿童乐园吗,我...

承德市事业单位档案管理...

医院财务风险因素分析及管理措施【2367字】

志愿者活动的调查问卷表

公寓空调设计任务书

C#学校科研管理系统的设计