论文部分内容阅读
TCP协议是目前Internet上使用最广泛的一种传输协议,它为用户提供了一种基于连接的、可靠的、端到端的数据包传输服务。Internet上总字节数的95%和总报文数的90%使用TCP协议传输,但是TCP协议主要适用于差错率低和网络拥塞是造成报文丢失的主要原因的有线链路。但在无线有线混合网络环境下,发生丢包的原因不仅仅是拥塞造成的,也会出现由于误码而导致的丢包现象。因此,如何提高TCP在异构网络环境下的性能已经成为一个活跃的研究领域。为了提高TCP协议在异构网络的性能,需要改善TCP在异构网络下的拥塞控制算法(在windows环境下),而Windows环境下并不是源代码开放环境,所以本文提出实现TCP/IP协议驱动的方法来代替现有系统的TCP协议,在此协议驱动中改善拥塞控制算法。论文主要介绍开发TCP/IP协议驱动所使用的技术和实现方法,以及协议栈各个部分的流程设计。根据Windows的驱动开发套件(DDK)中对网络协议驱动说明与规定,可以开发一个协议驱动其下层接口符合网络驱动接口规范(NDIS),则无需关心下层网卡相关驱动;上层接口符合传输驱动接口(TDI)规定,则无需关心上层应用。因此,选择NDIS和TDI作为整体上下层接口的规范。论文首先介绍了TCP/IP的协议栈模型和Windows下网络驱动开发的理论基础。之后阐述了NDIS协议驱动的各模块组成,主要分为四个部分,NDIS接口,TDI传输器,TDI客户,应用程序。NDIS接口实现对低层网卡的一些操作和交互。TDI传输器为主要实现部分,实现TCP/IP协议。TDI客户的主要作用是完成上层应用层程序的请求,或者根据该请求产生相应的操作,并将该操作传递给下层的NDIS协议驱动。应用程序是用于测试协议驱动系统的上层工具。论文详细介绍了NDIS接口的开发以及TCP/IP协议栈的设计。NDIS接口主要完成对低层网卡的动态绑定,收发网络数据包和相关状态维护及完成上层用户程序发送到协议驱动的IRP请求。TCP/IP协议栈通过上层接口与TDI客户交互,下层与NDIS接口通信,进行网络数据包的发送。目前TCP/IP协议栈主要实现了ARP,TCP,IP协议,还需不断完善。