ImageVerifierCode 换一换
格式:DOC , 页数:33 ,大小:514KB ,
资源ID:1216364      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1216364.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(TCP拥塞控制毕业论文.doc)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

TCP拥塞控制毕业论文.doc

1、武汉科技大学本科毕业论文摘 要TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”、“快速恢复(Fast Recovery)”算法,再后来在TCP NewReno中又对“快速恢复”算法进行了改进,近些年又出现了选择性应答(SACK)算法,还有其他方面的大大小小的改进,成为网络研究的一个热点。 TCP的拥塞控制主要原理依赖于一个拥塞窗口(cwnd)来控制,窗口值的大小就代表能够发送出去的但还没有收到ACK的最大数据报文段,显然窗口越大那么数据发送

2、的速度也就越快,但是也就越可能使得网络出现拥塞,如果窗口值为1,那么就简化为一个停等协议,每发送一个数据,都要等到对方的确认才能发送第二个数据包,显然数据传输效率低下。TCP拥塞控制算法就是要在这两者之间权衡,选取最好的cwnd值,从而使得网络吞吐量最大化且不产生拥塞。1 计算机网络已经逐渐发展成为现代生活中必不可少的一个部分,本论文的主要研究目的就是针对计算机网络中的TCP协议中的Reno拥塞控制,对其实行可视化,使其变得更加容易理解,让我们对计算机网络有更深刻的认识。关键词:慢启动;拥塞避免;快速重传;快速恢复;可视化AbstractTCP congestion control from

3、Slow start and Congestion avoidance composed of TCP Reno versions later then targeted to join the Fast retransmit, Fast Recoveryalgorithm, and then later again in the TCP NewReno in the fast recovery algorithm has been improved in recent years has emerged selective acknowledgement algorithm, as well

4、 as other large and small improvements become a research hotspot network. The main principle of TCP congestion control relies on a congestion window (cwnd) to control the window size value represents the ability to send out but not yet received the maximum data packet ACK Duan, clear window, so the

5、greater the speed of data sent the faster, but also more likely to make the network congestion occurs, if the window is 1, then reduced to a stop such agreement, each sending a data, must wait for confirmation of the other party can send a second packet, the data clearly transmission efficiency is l

6、ow. TCP congestion control algorithm is to balance between these two, choose the best cwnd value, allowing the network to maximize throughput and does not create congestion.Computer network has gradually become an essential of modern life, a part of the main research objective of this thesis is a co

7、mputer network for the TCP Reno congestion control protocol in its implementation of visualization to make it more easy to understand , let the computer network has a better understanding. Key words: Slow start; Congestion avoidance; Fast retransmit;Fast Recovery; Visualization 目 录1 绪论11.1 课题背景及意义11

8、.2 课题现状11.3 本文的主要研究内容22 开发平台与技术的选择及介绍32.1 开发环境的介绍32.1.1硬件环境32.1.2 软件环境32.2 Reno拥塞控制简介32.3 开发平台简介33 需求分析及可行性研究53.1 需求分析53.1.1 时间要求53.1.2 功能要求53.1.3 Reno拥塞控制的四个阶段53.1.4 性能要求83.2 可行性研究93.2.1 成本可行性分析93.2.2 技术可行性分析94 相关开发技术的原理性说明104.1 VisualStuidio2008相关简介104.2 TCP/IP协议和拥塞控制简介114.3C#简介及特点134.3.1 C#简介134.

9、3.2C#与C+、JAVA的区别134.3.3 C#的前途145系统功能模块分析155.1主框架具体功能155.2各功能模块详细设计156详细设计及编码实现176.1 主框架详细设计176.2模块的详细设计176.2.1 程序代码176.2.2 程序运行结果23结 论27参考文献28致 谢29291 绪论1.1 课题背景及意义网络协议本身是一个复杂的抽象的交互过程,其行为由大量的参数(定时器,窗口大小,重传次数,应答的方式等)来确定,甚至不同的参数组合定义了不同的网络协议,很难通过静态的文字或者图表描述让学生理解网络原理与协议的含义和精髓,本次毕业设计希望通过采用C#编程,用功能强,操作性能好

10、,配置灵活的软件的方式和多媒体的形式,动态直观的演示计算机网络中的TCP Reno拥塞控制的原理和工作过程,为大家学好计算机网络提供一个更加直观简单的环境。计算机网络已经逐渐发展成为现代生活中必不可少的一个部分,本论文的主要研究目的就是针对计算机网络中的TCP协议中的Reno拥塞控制,对其进行可视化,使其变得更加的明了和容易理解,让我们对计算机网络有更深刻的理解,同时通过实现TCP Reno拥塞控制的可视化让自己对计算机网络有一个更深层次的认识。1.2 课题现状因特网的快速发展带来了信息量的急剧膨胀,网络拥塞已经成为制约因特网发展的瓶颈。在众多TCP拥塞控制算法中,TCP Vegas表现出比其

11、他算法更为优越的性能,然而自1995年提出至今,仍然没有取代TCP Reno成为现今最广泛使用的TCP拥塞控制算法。有研究表明,这是由于Vegas在与Reno共存的网络环境下不能公平地竞争到带宽,因此不能实质性地提高网络性能。在分析Reno如何在网络路由中占用带宽的基础上,提出一种在两者兼容环境下的拥塞控制方法,根据不同瓶颈缓冲区容量合理选择a、等参数,实现了在Vegas与Reno共存环境下两者良好的兼容性,并通过仿真实验证明了该算法的有效性和正确性。 近年来,因特网取得了突飞猛进的发展,同时伴随而来的是信息流量的急剧膨胀。有限的网络带宽不能满足日益增长的用户需求,网络拥塞已经成为制约因特网发

12、展和应用的一个瓶颈。如何预防和控制拥塞,已经成为近年来网络研究的热点。TCP是Internet上通用的传输层协议之一,是目前应用最广泛的传输控制协议,其核心是拥塞控制机制。基于Internet的交换机的通信信道、处理速度及缓冲存储空间通常是网上所有主机共享的资源,也是网络系统潜在的瓶颈。随着信源主机数以及信源业务端业务量的不断增多,瓶颈处就有可能发生资源竞争,从而导致网络拥塞。TCP的一个重要组成部分是执行拥塞控制和拥塞恢复的算法集合。TCP拥塞控制算法的目标是最大限度利用网络带宽,同时不产生数据流传输中的拥塞现象。因此,自从上个世纪80年代出现第一次拥塞崩溃以来,TCP拥塞控制策略就在不断地

13、进行完善和改进。21.3 本文的主要研究内容Reno机制是目前应用最为广泛的比较成熟的机制,也是以后众多改进机制的基础。随着网络迅速的发展和网络应用的多元化,单一的TCP拥塞控制不能较好的发挥其作用,于是基于Reno的,从多方面改进的拥塞控制机制呈现了出来,本论文主要研究的就是如何将Reno拥塞控制进行可视化,通过动画的形式演绎TCP协议中的Reno拥塞控制,使得TCP协议可以立体的展现在大家的面前。2 开发平台与技术的选择及介绍2.1 开发环境的介绍我所设计的是一个TCP协议的可视化,它面对的是所有的学习计算机网络的朋友,在一个立体的环境中使大家可以直白的理解Reno拥塞控制,因为选择的是V

14、isualStuidio2008这款功能强大的开发软件,因此对硬件的要求就上升了一个高度,关于硬件将会在下面给大家详细的介绍。2.1.1 硬件环境开发该系统应尽可能采用高档的硬件。因此,在应用时应采用更好的配置。处理器:Intel Pentium PIII或更高处理器。内存:512MB或更高。2.1.2 软件环境选择好的操作系统和好的编程语言是系统优劣的关键,我们要求系统在尽可能多的环境下运行,故选择Windows XP或者Windows Vista系统。因为VisualStudio2008具有友好的集成开发界面、面向对象的可视化开发模式、良好的数据库及多媒体应用支持以及高效的软件开发与程序运

15、行,功能更大,开发效率更高,不仅是网络环境下的优秀前端开发语言和工具,也是服务器端Web编程的优秀工具。加之本人对本系统的操作最为熟练,所以选择该平台为开发环境。操作系统:Windows XP或Windows Vista。开发工具:VisualStudio2008。2.2 Reno拥塞控制简介V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”,“快速恢复(Fast Recovery)”算法,再后

16、来在TCP New Reno中又对“快速恢复”算法进行了改进,近些年又出现了选择性应答( selective acknowledgement,SACK)算法,还有其他方面的大大小小的改进,这就是Reno拥塞控制的成长历程,在软件开发完成后我将会对以上几个阶段进行一个系统的介绍和演示,这也是本次开发的目的。32.3 开发平台简介开发平台我选用了VisualStudio2008,因为大学四年我们基本都是使用微软出品的开发平台进行学习,对此我们比较熟悉使用起来也比较的得心应手,再者VisualStudio2008同样是由微软开发的系统,而且编程设计也更加的人性化,使用起来也更加的方便,所以选用Vis

17、ualStudio2008来做为本次开发的平台。3 需求分析及可行性研究3.1 需求分析需求分析是设计软件之前的必做功课,软件需求分析的质量对软件开发的影响是深远的、全局性的,高质量需求对软件开发往往起到事半功倍的效果,所谓“磨刀不误砍柴功”。如果需求分析出现错误,在后续阶段改正需求分析阶段产生的错误将付出高昂的代价。3.1.1 时间要求本项目作为大学本科毕业设计题目,从3月22号接受选题开始,在5月20号之前完成系统设计,编码实现工作,在6月3号之前完成毕业设计论文初稿,6月12号之前最终完成论文。3.1.2 功能要求这个程序要实现:(1) 程序要求对Reno拥塞控制的几个阶段进行分别的演示

18、。(2) 程序要求有开始,暂停,继续,停止等按钮用以方便程序的演示。(3)在演示框的右侧有和演示同步的语言描述方便大家对程序的理解。(4)通过对Reno拥塞控制的可视化让人们更加深入的了解计算机网络中的TCP协议。(5)要求整个过程简单明了,不繁冗拖沓,界面美丽大方。3.1.3 Reno拥塞控制的四个阶段(1) 慢启动阶段(slow start):发送方一开始便向网络发送多个报文段,直至达到接收方通告的窗口大小为止(如图3.1)。当发送方和接收方处于同一个局域网时,这种方式是可以的。但是如果在发送方和接收方之间存在多个路由器和速率较慢的链路时,就有可能出现一些问题。一些中间路由器必须缓存分组,

19、并有可能耗尽存储器的空间。最初的TCP在连接建立成功后会向网络中发送大量的数据包,这样很容易导致网络中路由器缓存空间耗尽,从而发生拥塞。因此新建立的连接不能够一开始就大量发送数据包,而只能根据网络情况逐步增加每次发送的数据量,以避免上述现象的发生。具体来说,当新建连接时,cwnd初始化为1个最大报文段(MSS)大小,发送端开始按照拥塞窗口大小发送数据,每当有一个报文段被确认,cwnd就增加1个MSS大小。这样cwnd的值就随着网络往返时间(Round Trip Time,RTT)呈指数级增长,事实上,慢启动的速度一点也不慢,只是它的起点比较低一点而已。我们可以简单计算下:开始 - cwnd =

20、 1经过1个RTT后 - cwnd = 2*1 = 2经过2个RTT后 - cwnd = 2*2= 4经过3个RTT后 - cwnd = 4*2 = 8如果带宽为W,那么经过RTT*log2W时间就可以占满带宽。 图3.1 慢开始演示(2) 拥塞避免阶段(congestion avoidance):当发现超时或收到3个相同ACK确认帧时,则表示有丢包事件,此时网络已发生拥塞现象,此时要进行相应的拥塞控制(图3.2所示)。将慢启动阈值设置为当前拥塞窗口的一半;如检测到超时,拥塞窗口就被置为l。如果拥塞窗口小于或等于慢启动阈值,TCP重新进人慢启动阶段;如果拥塞窗口大于慢启动阈值,TCP执行拥塞避

21、免算法。 图3.2 拥塞控制过程从慢启动可以看到,cwnd可以很快的增长上来,从而最大程度利用网络带宽资源,但是cwnd不能一直这样无限增长下去,一定需要某个限制。TCP使用了一个叫慢启动门限(ssthresh)的变量,当cwnd超过该值后,慢启动过程结束,进入拥塞避免阶段。对于大多数TCP实现来说,ssthresh的值是65536(同样以字节计算)。拥塞避免的主要思想是加法增大,也就是cwnd的值不再指数级往上升,开始加法增加。此时当窗口中所有的报文段都被确认时,cwnd的大小加1,cwnd的值就随着RTT开始线性增加,这样就可以避免增长过快导致网络拥塞,慢慢的增加调整到网络的最佳值。上面讨

22、论的两个机制都是没有检测到拥塞的情况下的行为,那么当发现拥塞了cwnd应该这样去调整。首先来看TCP是如何确定网络进入了拥塞状态的,TCP认为网络拥塞的主要依据是它重传了一个报文段。上面提到过,TCP对每一个报文段都有一个定时器,称为重传定时器(RTO),当RTO超时且还没有得到数据确认,那么TCP就会对该报文段进行重传,当发生超时时,那么出现拥塞的可能性就很大,某个报文段可能在网络中某处丢失,并且后续的报文段也没有了消息,在这种情况下,TCP反应比较“强烈”:1.把ssthresh降低为cwnd值的一半。2.把cwnd重新设置为1。3.重新进入慢启动过程。从整体上来讲,TCP拥塞控制窗口变化

23、的原则是AIMD原则,即加法增大、乘法减小。可以看出TCP的该原则可以较好地保证流之间的公平性,因为一旦出现丢包,那么立即减半退避,可以给其他新建的流留有足够的空间,从而保证整个的公平性。其实TCP还有一种情况会进行重传:那就是收到3个相同的ACK。TCP在收到乱序到达包时就会立即发送ACK,TCP利用3个相同的ACK来判定数据包的丢失,此时进行快速重传,快速重传做的事情有:1.把ssthresh设置为cwnd的一半2.把cwnd再设置为ssthresh的值(具体实现有些为ssthresh+3)3.重新进入拥塞避免阶段(3) 快速重传阶段(fast retransmit):当TCP源端收到到三

24、个相同的ACK副本时,即认为有数据包丢失,则源端重传丢失的数据包,而不必等待RTO超时。同时将ssthresh设置为当前cwnd值的一半,并且将cwnd减为原先的一半(如图3.3所示)。8 图3.3快速重传阶段演示(4) 快速恢复阶段(fast recovery) :当旧数据包离开网络后,才能发送新数据包进入网络,即同一时刻在网络中传输的数据包数量是恒定的。如果发送方收到一个重复的ACK,则认为已经有一个数据包离开了网络,于是将拥塞窗口加1。3.1.4 性能要求首先要求程序要完全可靠,可以应付种种由于系统问题产生的错误。要求提前设想到类似的尽可能多的可能发生的事件,做出相应的应对措施,并向用户

25、提交简单易懂清晰明白的提示信息。程序要有良好的容错性,当用户进行非法操作时或者系统本身出现问题时要能以最好的方式退出程序,避免发生程序假死现象。开发文档要有好的易理解性,如果系统又要交由别人接手开发,或者自己由于种种原因需要进行二次开发,那么要保证以后能够清晰的理解整个系统的设计思路以及实现细节。要求程序对所运行之系统的硬件条件要求尽可能低,运行时内存占用尽可能小,响应速度要尽可能快。并且不发生内存泄漏之类影响系统运行的错误事件。并且要求易于维护及扩展。所以应该采用模块化开发,各个模块之间不要有太多的联系,以免维护困难。3.2 可行性研究3.2.1 成本可行性分析因为本软件只做开发学习使用,所

26、以暂且不考虑经济成本及盈利问题。3.2.2 技术可行性分析(1) 首先搭建毕业设计所需要的软件平台,软件使用的VisualStuidio2008,做好毕业设计的前期准备。(2) 进行开发前的准备,做好需求分析,熟悉VisualStuidio2008的功能以便开发,同时对课题进行深入的了解。VisualStuidio2008是一款非常强大的开发软件,满足了我做毕业设计所需要的一切功能,因此我选择了VisualStuidio2008做为我的毕业设计的开发软件。(3) 此课题在技术上没有什么大的困难,而且有功能强大的VisualStuidio2008做为平台,所以这个课题在技术上是完全可以实施的。4

27、 相关开发技术的原理性说明4.1 VisualStuidio2008相关简介Visual Studio 是微软公司推出的开发环境,也是目前最流行的 Windows 平台应用程序开发环境。目前已经开发到 9.0 版本,也就是 Visual Studio 2008。 Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。Microsoft Visual Studio 2008是面向Windows Vista、Office 2007、Web 2.0的下一代开发工具,代号“Orcas”

28、,是对Visual Studio 2005一次及时、全面的升级。Visual Studio 2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了ASP.NET AJAX 1.0,包含ASP.NET AJAX项目模板,它还可以高效开发Office应用和Mobile应用。Visual Stu

29、dio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。Visual Studio 2008 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web 应用程序。开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据

30、提供程序、在任何当前浏览器内运行并完全访问 ASP.NET 应用程序服务和 Microsoft 平台。Visual Studio 2008 在三个方面为开发人员提供了关键改进:1. 快速的应用程序开发为了帮助开发人员迅速创建先进的软件,Visual Studio 2008 提供了改进的语言和数据功能,例如语言集成的查询 (LINQ),各个编程人员可以利用这些功能更轻松地构建解决方案以分析和处理信息。Visual Studio 2008 还使开发人员能够从同一开发环境内创建面向多个 .NET Framework 版本的应用程序。开发人员能够构建面向 .NET Framework 2.0、3.0

31、或 3.5 的应用程序,意味他们可以在同一环境中支持各种各样的项目。2. 突破性的用户体验Visual Studio 2008 为开发人员提供了在最新平台上加速创建紧密联系的应用程序的新工具,这些平台包括 Web、Windows Vista、Office 2007、SQL Server 2008 和 Windows Server 2008。对于 Web,ASP.NET AJAX 及其他新技术使开发人员能够迅速创建更高效、交互式更强和更个性化的新一代 Web 体验。3. 高效的团队协作Visual Studio 2008 提供了帮助开发团队改进协作的扩展的和改进的服务项目,包括帮助将数据库专业人员和图形设计人员加入到开发流程的工具。4.2 TCP/IP协议和拥塞控制简介TCP/IP协议实际上就

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2