windows平台下tcpip协议的设计与实现

windows平台下tcpip协议的设计与实现

ID:34244244

大小:1.45 MB

页数:20页

时间:2019-03-04

windows平台下tcpip协议的设计与实现_第1页
windows平台下tcpip协议的设计与实现_第2页
windows平台下tcpip协议的设计与实现_第3页
windows平台下tcpip协议的设计与实现_第4页
windows平台下tcpip协议的设计与实现_第5页
资源描述:

《windows平台下tcpip协议的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、目录1.引言12.TCP/IP协议概述13.TCP/IP协议的系统设计24.TCP/IP协议的系统实现35.结论116.详细设计代码1219Windows平台下TCP/IP协议的设计与实现1.引言本文背景基于一个TCP/IP协议改进项目,项目要求通过改进TCP/IP协议拥塞控制算法来提高无线网络环境下的数据吞吐量。目前的TCP协议在无线网络环境下无法区分出拥塞丢包与误码丢包,根据这两种不同的丢包原因需要对TCP的窗口进行不同的调整,因此需要对现有的TCP/IP协议进行改进。针对这个需求提供的一个解决方案就是自己开发出一套TCP/IP协议以替代系统TCP/IP协议,但是并不需要

2、实现整个TCP/IP协议族,重点实现TCP与IP协议即可。2.TCP/IP协议概述TCP/IP协议是Internet的技术基础。Internet是一个广域网,是目前联通世界上绝大多数国家和地区的全球性信息系统。在Internet上,可以实现低成本、高速率、交互式的信息查询、信息发布、通讯联络以及协同作业等等现代化的工作、学习和生活。TCP/IP协议族通常分为四个层次,应用层、传输层、网络层和链路层。如图1所示:应用层(FTP,SMTP等)传输层(TCP,UDP等)网络层(IP,ICMP等)链路层(网卡驱动等)图1TCP/IP协议族四层结构应用层向用户提供一组常用的应用程序,比

3、如电子邮件(SMTP)、文件传输访问(FTP)、远程登录(Telnet)等。19传输层提供进程间端到端的通信。在TCP/IP协议族中,主要有两种不同的传输协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP提供面向連接的、可靠的(没有数据重复或丢失),全双エ的数据流传输服务。而UDP则提供的是不可靠的面向无连接的数据传输服务,其可靠性应由上层应用程序来支持。网络层,主要负责数据包的分组及路由选择。在TCP/IP协议族中,网络层协议包括网际协议IP、互连网控制报文协议ICMP、地址转换协议ARP和反向地址转换协议RARR。链路层处于四层结构的最低层,负责接收IP数据报

4、并通过网络发送之,或从网络上接收物理帧,抽出IP数据报,交给IP层。通常包括网络设备驱动程序及网络接口卡等。3.TCP/IP协议的系统设计以Windows网络体系结构为基础,参照WindowsDDK中关于网络协议驱动与传输驱动接口(TDI)的相关资料,以及考虑到与原有系统TCP/IP兼容,提出的设计方案如图2所示。图2TCP/IP协议设计框图应用程序也就是根据协议开发的特定应用。这里是针对开发的TCP/IP协议编写的一个FTP小应用程序,用来测试开发的协议。应用程序通过Wm32API[3]接口将其操作转化成相应的请求提交给TDI客户。19传输驱动程序接口(TDI)客户是核心态

5、的驱动程序。它的主要功能是完成上层应用程序的请求,或者根据该请求产生相应的TDI操作,并将该操作传递给下层的TDI传输器。TDI客户通过Win32API接口与上层应用程序交互;通过TDI接口与下层TDI传输器进行交互。TDI传输提供者(TDITransportProvider)又称为TDI传输器,NDIS协议驱动程序,以及协议驱动程序,是工作在核心态的协议驱动程序。其中TCP协议,IP协议,ARP协议等都是在这个模块中实现。它通过TDI接口与上层的TDI客户进行交互;通过NDIS接口与下层微端口驱动进行交互。NDIS下层微端口驱动程序是工作在核心态的驱动程序,它负责将TDI传

6、输器接入至特定的网络适配器。它通过NDIS接口与上下层进行交互。4.TCP/IP协议的系统实现由图2中可以看出,整个系统可分为四部分,应用程序、TDI客户、TDI传输器和下层微端口驱动。事实上对于下层微端口驱动并不需要考虑,因为可以直接调用NDIS库函数将数据转发到这层,处于这层上的驱动会自动将数据送出网络适配器。因此真正需要开发的也就是上面三个部分。应用程序是用来实现简単文件传输的,因此考虑开发两个小应用程序,一个为服务器端,一个为客户端,服务器端用来监听和处理来自客户端的连接请求。客户端主要是向服务器端请求连接和发送数据。TDI客户负责将来自应用程序的请求进行相应的处理之

7、后转发给下层的TDI传输驱动。TDI传输驱动主要是实现TCP,IP等功能,并与下层的NDIS接口进行交互。4.1应用程序的实现客户端可以通过本地的某个端口向对方发送数据。并显示一些错误状态。服务器端,可以指定在本地的某个端口监听连接请求,接收数据,并显示一些状态。实现:通过DeviceIOControl及相应ControlCode来将命令传输到下层的TDI客户。主要接口函数:CreateFile和DeviceIoControlCreateFile函数原型:HANDLECreateFile(LPCTSTR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。