Windows下的TCP协议栈开发

来源 :北京邮电大学 | 被引量 : 7次 | 上传用户:lindan1982
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
TCP应用于无线环境时,由于丢包多是由无线误码引起而不一定是拥塞丢包,其拥塞控制算法出现了不适应性,因此需要新的算法来修正。为了在Windows环境下测试新算法,我们需要修改TCP协议栈源码,然而系统本身的TCP协议栈是非开放源码的,因此我们需要开发一个运行于Windows的TCP协议栈。这篇论文中主要介绍了我们开发TCP协议栈的所使用的技术、具体方法和实现的过程,协议栈各个部分的流程设计、每个模块的功能实现与整体设计实现,以及功能测试。Windows的驱动开发套件(DDK)中对协议驱动开发有较为详细地说明与规定,依照DDK中的说明,我们可以开发一个协议驱动其下层接口符合网络驱动接口规范(NDIS),则无需关心下层网卡相关驱动;上层接口符合传输驱动接口(TDI)规定,则无需关心上层应用。因此,我们选择NDIS和TDI作为我们整体上下层接口的规范。TCP协议向应用层提供了面向连接的服务,以确保网络上所传送的数据包被完整、正确、可靠地接收。一旦数据有损伤或丢失,则由TCP协议负责重传,应用层不参与解决。实现这个复杂的过程,需要大量代码支撑。我们根据TCP原理设计出了主要数据结构、上下层接口和功能模块,然而具体实现上仍然举步维艰。实际上,网上有很多的开放TCP协议栈源码,如BSD TCP/IP协议栈、uC/IP、LwIP、uIP、TinyTcp协议栈等,于是我们想到了移植。根据多方面比较分析,最后我们选择了Linux Kernel 2.4.20.48的TCP协议栈源码作为我们的参考。由于Linux系统的机制与Windows系统有很大的差别,绝大部分代码是无法直接移植的。不过根据该协议栈的实现流程,我们设计出了自己流程,结合DDK,找到了进一步工作的途径。我们所开发的TCP协议栈大致可以分为以下几部分:TDI接口,NDIS接口,TCP上层接口,TCP下层接口,发送模块,接收模块,定时器和内存管理。每个部分都有其特定的功能,进行不同的操作。其中,TDI接口是TCP与上层应用交互的接口,NDIS接口是TCP与下层驱动交互的接口,发送模块完成整个发送数据流程,接收模块完成整个接收数据流程,定时器控制其相关操作的等待时间,内存管理模块使缓存的使用更有效。这些部分相互协作,构成了整个我们的TCP协议栈。我们开发的TCP协议栈仍不完善,还需要进一步修改,不过今日之成果已得来非易,值得我为之骄傲,同时也希望不久的将来能有更大的收获。
其他文献
就最近几年的技术发展和国际市场趋势分析,智能手机无疑将是未来手机的主流发展方向。而在目前的手机操作系统中,Symbian一直占据着无人撼动的主导地位。另一方面移动平台3D
本文提出了一种基于视频信息的消防战例讲评系统并给出了系统的具体实现,该系统主要应用于消防救火领域,能够将地图、视频以及消防员扑救过程中的时间地点综合显示出来,形成
数字水印技术作为数字产品版权保护、认证、隐蔽通信等方面的一个崭新方法,近年来引起了人们极大的兴趣和关注,得到了广泛的研究和应用。本文首先介绍了图像数字水印技术的原理
随着无线通信技术的快速发展与移动终端性能的提高,移动自组网在军用和民用领域得到广泛应用,人们对于移动自组网安全性、可靠性要求随之俱增。因此,移动自组网的网络安全问题成
隐写术是信息隐藏(Information Hiding)的一个主要分支,它主要研究如何实现隐密通信。通过使用隐写技术,将秘密信息隐藏在可公开的载体中进行传送,掩盖了真正的通信目的和通信发
电子邮件已成为人们日常通信交流的重要手段,然而垃圾邮件却成了当前的一个严重社会问题,因此,研究一种有效的邮件过滤系统具有十分重要的意义。当前基于内容分析的文本分类技术
协同过滤算法作为最为广泛使用的个性化推荐技术,虽然取得了一定的成功,但是传统的协同过滤推荐算法基本不考虑时间上下文,将不同用户不同时间内的兴趣偏好同等看待,忽略了用户兴
随着计算机网络应用的广泛深入,Internet中网络应用的种类越来越丰富,各种新型的网络业务,如语音、图像、视频业务以前所未有的速度快速发展,包括传统的广播电视节目已经在互
多Agent协作技术主要研究一组自治的Agent在分布式开放的动态环境下,通过相互的交互、协商等智能行为完成复杂的控制或任务求解。基于合同网的多Agent协作模型是通过Agents彼
学位