TCP拥塞控制毕业论文.doc

上传人:wj 文档编号:1216364 上传时间:2023-04-30 格式:DOC 页数:33 大小:514KB
下载 相关 举报
TCP拥塞控制毕业论文.doc_第1页
第1页 / 共33页
TCP拥塞控制毕业论文.doc_第2页
第2页 / 共33页
TCP拥塞控制毕业论文.doc_第3页
第3页 / 共33页
TCP拥塞控制毕业论文.doc_第4页
第4页 / 共33页
TCP拥塞控制毕业论文.doc_第5页
第5页 / 共33页
TCP拥塞控制毕业论文.doc_第6页
第6页 / 共33页
TCP拥塞控制毕业论文.doc_第7页
第7页 / 共33页
TCP拥塞控制毕业论文.doc_第8页
第8页 / 共33页
TCP拥塞控制毕业论文.doc_第9页
第9页 / 共33页
TCP拥塞控制毕业论文.doc_第10页
第10页 / 共33页
TCP拥塞控制毕业论文.doc_第11页
第11页 / 共33页
TCP拥塞控制毕业论文.doc_第12页
第12页 / 共33页
TCP拥塞控制毕业论文.doc_第13页
第13页 / 共33页
TCP拥塞控制毕业论文.doc_第14页
第14页 / 共33页
TCP拥塞控制毕业论文.doc_第15页
第15页 / 共33页
TCP拥塞控制毕业论文.doc_第16页
第16页 / 共33页
TCP拥塞控制毕业论文.doc_第17页
第17页 / 共33页
TCP拥塞控制毕业论文.doc_第18页
第18页 / 共33页
TCP拥塞控制毕业论文.doc_第19页
第19页 / 共33页
TCP拥塞控制毕业论文.doc_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

TCP拥塞控制毕业论文.doc

《TCP拥塞控制毕业论文.doc》由会员分享,可在线阅读,更多相关《TCP拥塞控制毕业论文.doc(33页珍藏版)》请在冰点文库上搜索。

TCP拥塞控制毕业论文.doc

武汉科技大学本科毕业论文

摘要

TCP的拥塞控制由“慢启动(Slowstart)”和“拥塞避免(Congestionavoidance)”组成,后来TCPReno版本中又针对性的加入了“快速重传(Fastretransmit)”、“快速恢复(FastRecovery)”算法,再后来在TCPNewReno中又对“快速恢复”算法进行了改进,近些年又出现了选择性应答(SACK)算法,还有其他方面的大大小小的改进,成为网络研究的一个热点。

TCP的拥塞控制主要原理依赖于一个拥塞窗口(cwnd)来控制,窗口值的大小就代表能够发送出去的但还没有收到ACK的最大数据报文段,显然窗口越大那么数据发送的速度也就越快,但是也就越可能使得网络出现拥塞,如果窗口值为1,那么就简化为一个停等协议,每发送一个数据,都要等到对方的确认才能发送第二个数据包,显然数据传输效率低下。

TCP拥塞控制算法就是要在这两者之间权衡,选取最好的cwnd值,从而使得网络吞吐量最大化且不产生拥塞。

[1]

计算机网络已经逐渐发展成为现代生活中必不可少的一个部分,本论文的主要研究目的就是针对计算机网络中的TCP协议中的Reno拥塞控制,对其实行可视化,使其变得更加容易理解,让我们对计算机网络有更深刻的认识。

关键词:

慢启动;拥塞避免;快速重传;快速恢复;可视化

Abstract

TCPcongestioncontrolfrom"Slowstart"and"Congestionavoidance"composedofTCPRenoversionslaterthentargetedtojointhe"Fastretransmit","FastRecovery"algorithm,andthenlateragainintheTCPNewRenointhe"fastrecovery"algorithmhasbeenimprovedinrecentyearshasemergedselectiveacknowledgementalgorithm,aswellasotherlargeandsmallimprovementsbecomearesearchhotspotnetwork.

ThemainprincipleofTCPcongestioncontrolreliesonacongestionwindow(cwnd)tocontrolthewindowsizevaluerepresentstheabilitytosendoutbutnotyetreceivedthemaximumdatapacketACKDuan,clearwindow,sothegreaterthespeedofdatasentthefaster,butalsomorelikelytomakethenetworkcongestionoccurs,ifthewindowis1,thenreducedtoastopsuchagreement,eachsendingadata,mustwaitforconfirmationoftheotherpartycansendasecondpacket,thedataclearlytransmissionefficiencyislow.TCPcongestioncontrolalgorithmistobalancebetweenthesetwo,choosethebestcwndvalue,allowingthenetworktomaximizethroughputanddoesnotcreatecongestion.

Computernetworkhasgraduallybecomeanessentialofmodernlife,apartofthemainresearchobjectiveofthisthesisisacomputernetworkfortheTCPRenocongestioncontrolprotocolinitsimplementationofvisualizationtomakeitmoreeasytounderstand,letthecomputernetworkhasabetterunderstanding.

Keywords:

Slowstart;Congestionavoidance;Fastretransmit;FastRecovery;Visualization

目录

1绪论 1

1.1课题背景及意义 1

1.2课题现状 1

1.3本文的主要研究内容 2

2开发平台与技术的选择及介绍 3

2.1开发环境的介绍 3

2.1.1 硬件环境 3

2.1.2软件环境 3

2.2Reno拥塞控制简介 3

2.3开发平台简介 3

3需求分析及可行性研究 5

3.1需求分析 5

3.1.1时间要求 5

3.1.2功能要求 5

3.1.3Reno拥塞控制的四个阶段 5

3.1.4性能要求 8

3.2可行性研究 9

3.2.1成本可行性分析 9

3.2.2技术可行性分析 9

4相关开发技术的原理性说明 10

4.1VisualStuidio2008相关简介 10

4.2TCP/IP协议和拥塞控制简介 11

4.3 C#简介及特点 13

4.3.1C#简介 13

4.3.2 C#与C++、JAVA的区别 13

4.3.3C#的前途 14

5系统功能模块分析 15

5.1主框架具体功能 15

5.2各功能模块详细设计 15

6详细设计及编码实现 17

6.1主框架详细设计 17

6.2模块的详细设计 17

6.2.1程序代码 17

6.2.2程序运行结果 23

结论 27

参考文献 28

致谢 29

29

1绪论

1.1课题背景及意义

网络协议本身是一个复杂的抽象的交互过程,其行为由大量的参数(定时器,窗口大小,重传次数,应答的方式等)来确定,甚至不同的参数组合定义了不同的网络协议,很难通过静态的文字或者图表描述让学生理解网络原理与协议的含义和精髓,本次毕业设计希望通过采用C#编程,用功能强,操作性能好,配置灵活的软件的方式和多媒体的形式,动态直观的演示计算机网络中的TCPReno拥塞控制的原理和工作过程,为大家学好计算机网络提供一个更加直观简单的环境。

计算机网络已经逐渐发展成为现代生活中必不可少的一个部分,本论文的主要研究目的就是针对计算机网络中的TCP协议中的Reno拥塞控制,对其进行可视化,使其变得更加的明了和容易理解,让我们对计算机网络有更深刻的理解,同时通过实现TCPReno拥塞控制的可视化让自己对计算机网络有一个更深层次的认识。

1.2课题现状

因特网的快速发展带来了信息量的急剧膨胀,网络拥塞已经成为制约因特网发展的瓶颈。

在众多TCP拥塞控制算法中,TCPVegas表现出比其他算法更为优越的性能,然而自1995年提出至今,仍然没有取代TCPReno成为现今最广泛使用的TCP拥塞控制算法。

有研究表明,这是由于Vegas在与Reno共存的网络环境下不能公平地竞争到带宽,因此不能实质性地提高网络性能。

在分析Reno如何在网络路由中占用带宽的基础上,提出一种在两者兼容环境下的拥塞控制方法,根据不同瓶颈缓冲区容量合理选择a、β等参数,实现了在Vegas与Reno共存环境下两者良好的兼容性,并通过仿真实验证明了该算法的有效性和正确性。

近年来,因特网取得了突飞猛进的发展,同时伴随而来的是信息流量的急剧膨胀。

有限的网络带宽不能满足日益增长的用户需求,网络拥塞已经成为制约因特网发展和应用的一个瓶颈。

如何预防和控制拥塞,已经成为近年来网络研究的热点。

TCP是Internet上通用的传输层协议之一,是目前应用最广泛的传输控制协议,其核心是拥塞控制机制。

基于Internet的交换机的通信信道、处理速度及缓冲存储空间通常是网上所有主机共享的资源,也是网络系统潜在的瓶颈。

随着信源主机数以及信源业务端业务量的不断增多,瓶颈处就有可能发生资源竞争,从而导致网络拥塞。

TCP的一个重要组成部分是执行拥塞控制和拥塞恢复的算法集合。

TCP拥塞控制算法的目标是最大限度利用网络带宽,同时不产生数据流传输中的拥塞现象。

因此,自从上个世纪80年代出现第一次拥塞崩溃以来,TCP拥塞控制策略就在不断地进行完善和改进。

[2]

1.3本文的主要研究内容

Reno机制是目前应用最为广泛的比较成熟的机制,也是以后众多改进机制的基础。

随着网络迅速的发展和网络应用的多元化,单一的TCP拥塞控制不能较好的发挥其作用,于是基于Reno的,从多方面改进的拥塞控制机制呈现了出来,本论文主要研究的就是如何将Reno拥塞控制进行可视化,通过动画的形式演绎TCP协议中的Reno拥塞控制,使得TCP协议可以立体的展现在大家的面前。

2开发平台与技术的选择及介绍

2.1开发环境的介绍

我所设计的是一个TCP协议的可视化,它面对的是所有的学习计算机网络的朋友,在一个立体的环境中使大家可以直白的理解Reno拥塞控制,因为选择的是VisualStuidio2008这款功能强大的开发软件,因此对硬件的要求就上升了一个高度,关于硬件将会在下面给大家详细的介绍。

2.1.1硬件环境

开发该系统应尽可能采用高档的硬件。

因此,在应用时应采用更好的配置。

处理器:

IntelPentiumPIII或更高处理器。

内存:

512MB或更高。

2.1.2软件环境

选择好的操作系统和好的编程语言是系统优劣的关键,我们要求系统在尽可能多的环境下运行,故选择WindowsXP或者WindowsVista系统。

因为VisualStudio2008具有友好的集成开发界面、面向对象的可视化开发模式、良好的数据库及多媒体应用支持以及高效的软件开发与程序运行,功能更大,开发效率更高,不仅是网络环境下的优秀前端开发语言和工具,也是服务器端Web编程的优秀工具。

加之本人对本系统的操作最为熟练,所以选择该平台为开发环境。

操作系统:

WindowsXP或WindowsVista。

开发工具:

VisualStudio2008。

2.2Reno拥塞控制简介

V.Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slowstart)”和“拥塞避免(Congestionavoidance)”组成,后来TCPReno版本中又针对性的加入了“快速重传(Fastretransmit)”,“快速恢复(FastRecovery)”算法,再后来在TCPNewReno中又对“快速恢复”算法进行了改进,近些年又出现了选择性应答(selectiveacknowledgement,SACK)算法,还有其他方面的大大小小的改进,这就是Reno拥塞控制的成长历程,在软件开发完成后我将会对以上几个阶段进行一个系统的介绍和演示,这也是本次开发的目的。

[3]

2.3开发平台简介

开发平台我选用了VisualStudio2008,因为大学四年我们基本都是使用微软出品的开发平台进行学习,对此我们比较熟悉使用起来也比较的得心应手,再者VisualStudio2008同样是由微软开发的系统,而且编程设计也更加的人性化,使用起来也更加的方便,所以选用VisualStudio2008来做为本次开发的平台。

3需求分析及可行性研究

3.1需求分析

需求分析是设计软件之前的必做功课,软件需求分析的质量对软件开发的影响是深远的、全局性的,高质量需求对软件开发往往起到事半功倍的效果,所谓“磨刀不误砍柴功”。

如果需求分析出现错误,在后续阶段改正需求分析阶段产生的错误将付出高昂的代价。

3.1.1时间要求

本项目作为大学本科毕业设计题目,从3月22号接受选题开始,在5月20号之前完成系统设计,编码实现工作,在6月3号之前完成毕业设计论文初稿,6月12号之前最终完成论文。

3.1.2功能要求

这个程序要实现:

(1)程序要求对Reno拥塞控制的几个阶段进行分别的演示。

(2)程序要求有开始,暂停,继续,停止等按钮用以方便程序的演示。

(3)在演示框的右侧有和演示同步的语言描述方便大家对程序的理解。

(4)通过对Reno拥塞控制的可视化让人们更加深入的了解计算机网络中的TCP协议。

(5)要求整个过程简单明了,不繁冗拖沓,界面美丽大方。

3.1.3Reno拥塞控制的四个阶段

(1)慢启动阶段(slowstart):

发送方一开始便向网络发送多个报文段,直至达到接收方通告的窗口大小为止(如图3.1)。

当发送方和接收方处于同一个局域网时,这种方式是可以的。

但是如果在发送方和接收方之间存在多个路由器和速率较慢的链路时,就有可能出现一些问题。

一些中间路由器必须缓存分组,并有可能耗尽存储器的空间。

最初的TCP在连接建立成功后会向网络中发送大量的数据包,这样很容易导致网络中路由器缓存空间耗尽,从而发生拥塞。

因此新建立的连接不能够一开始就大量发送数据包,而只能根据网络情况逐步增加每次发送的数据量,以避免上述现象的发生。

具体来说,当新建连接时,cwnd初始化为1个最大报文段(MSS)大小,发送端开始按照拥塞窗口大小发送数据,每当有一个报文段被确认,cwnd就增加1个MSS大小。

这样cwnd的值就随着网络往返时间(RoundTripTime,RTT)呈指数级增长,事实上,慢启动的速度一点也不慢,只是它的起点比较低一点而已。

我们可以简单计算下:

开始--->cwnd=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)拥塞避免阶段(congestionavoidance):

当发现超时或收到3个相同ACK确认帧时,则表示有丢包事件,此时网络已发生拥塞现象,此时要进行相应的拥塞控制(图3.2所示)。

将慢启动阈值设置为当前拥塞窗口的一半;如检测到超时,拥塞窗口就被置为l。

如果拥塞窗口小于或等于慢启动阈值,TCP重新进人慢启动阶段;如果拥塞窗口大于慢启动阈值,TCP执行拥塞避免算法。

图3.2拥塞控制过程

从慢启动可以看到,cwnd可以很快的增长上来,从而最大程度利用网络带宽资源,但是cwnd不能一直这样无限增长下去,一定需要某个限制。

TCP使用了一个叫慢启动门限(ssthresh)的变量,当cwnd超过该值后,慢启动过程结束,进入拥塞避免阶段。

对于大多数TCP实现来说,ssthresh的值是65536(同样以字节计算)。

拥塞避免的主要思想是加法增大,也就是cwnd的值不再指数级往上升,开始加法增加。

此时当窗口中所有的报文段都被确认时,cwnd的大小加1,cwnd的值就随着RTT开始线性增加,这样就可以避免增长过快导致网络拥塞,慢慢的增加调整到网络的最佳值。

上面讨论的两个机制都是没有检测到拥塞的情况下的行为,那么当发现拥塞了cwnd应该这样去调整。

首先来看TCP是如何确定网络进入了拥塞状态的,TCP认为网络拥塞的主要依据是它重传了一个报文段。

上面提到过,TCP对每一个报文段都有一个定时器,称为重传定时器(RTO),当RTO超时且还没有得到数据确认,那么TCP就会对该报文段进行重传,当发生超时时,那么出现拥塞的可能性就很大,某个报文段可能在网络中某处丢失,并且后续的报文段也没有了消息,在这种情况下,TCP反应比较“强烈”:

1.把ssthresh降低为cwnd值的一半。

2.把cwnd重新设置为1。

3.重新进入慢启动过程。

从整体上来讲,TCP拥塞控制窗口变化的原则是AIMD原则,即加法增大、乘法减小。

可以看出TCP的该原则可以较好地保证流之间的公平性,因为一旦出现丢包,那么立即减半退避,可以给其他新建的流留有足够的空间,从而保证整个的公平性。

其实TCP还有一种情况会进行重传:

那就是收到3个相同的ACK。

TCP在收到乱序到达包时就会立即发送ACK,TCP利用3个相同的ACK来判定数据包的丢失,此时进行快速重传,快速重传做的事情有:

1.把ssthresh设置为cwnd的一半

2.把cwnd再设置为ssthresh的值(具体实现有些为ssthresh+3)

3.重新进入拥塞避免阶段

(3)快速重传阶段(fastretransmit):

当TCP源端收到到三个相同的ACK副本时,即认为有数据包丢失,则源端重传丢失的数据包,而不必等待RTO超时。

同时将ssthresh设置为当前cwnd值的一半,并且将cwnd减为原先的一半(如图3.3所示)。

[8]

图3.3快速重传阶段演示

(4)快速恢复阶段(fastrecovery):

当"旧"数据包离开网络后,才能发送"新"数据包进入网络,即同一时刻在网络中传输的数据包数量是恒定的。

如果发送方收到一个重复的ACK,则认为已经有一个数据包离开了网络,于是将拥塞窗口加1。

3.1.4性能要求

首先要求程序要完全可靠,可以应付种种由于系统问题产生的错误。

要求提前设想到类似的尽可能多的可能发生的事件,做出相应的应对措施,并向用户提交简单易懂清晰明白的提示信息。

程序要有良好的容错性,当用户进行非法操作时或者系统本身出现问题时要能以最好的方式退出程序,避免发生程序假死现象。

开发文档要有好的易理解性,如果系统又要交由别人接手开发,或者自己由于种种原因需要进行二次开发,那么要保证以后能够清晰的理解整个系统的设计思路以及实现细节。

要求程序对所运行之系统的硬件条件要求尽可能低,运行时内存占用尽可能小,响应速度要尽可能快。

并且不发生内存泄漏之类影响系统运行的错误事件。

并且要求易于维护及扩展。

所以应该采用模块化开发,各个模块之间不要有太多的联系,以免维护困难。

3.2可行性研究

3.2.1成本可行性分析

因为本软件只做开发学习使用,所以暂且不考虑经济成本及盈利问题。

3.2.2技术可行性分析

(1)首先搭建毕业设计所需要的软件平台,软件使用的VisualStuidio2008,做好毕业设计的前期准备。

(2)进行开发前的准备,做好需求分析,熟悉VisualStuidio2008的功能以便开发,同时对课题进行深入的了解。

VisualStuidio2008是一款非常强大的开发软件,满足了我做毕业设计所需要的一切功能,因此我选择了VisualStuidio2008做为我的毕业设计的开发软件。

(3)此课题在技术上没有什么大的困难,而且有功能强大的VisualStuidio2008做为平台,所以这个课题在技术上是完全可以实施的。

4相关开发技术的原理性说明

4.1VisualStuidio2008相关简介

VisualStudio是微软公司推出的开发环境,也是目前最流行的Windows平台应用程序开发环境。

目前已经开发到9.0版本,也就是VisualStudio2008。

VisualStudio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。

MicrosoftVisualStudio2008是面向WindowsVista、Office2007、Web2.0的下一代开发工具,代号“Orcas”,是对VisualStudio2005一次及时、全面的升级。

VisualStudio2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。

使用VisualStudio2008可以高效开发Windows应用。

设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。

同时VisualStudio2008支持项目模板、调试器和部署程序。

VisualStudio2008可以高效开发Web应用,集成了ASP.NETAJAX1.0,包含ASP.NETAJAX项目模板,它还可以高效开发Office应用和Mobile应用。

VisualStudio2008提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。

VisualStudio2008包括各种增强功能,例如可视化设计器(使用.NETFramework3.5加速开发)、对Web开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。

VisualStudio2008为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持AJAX的Web应用程序。

开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的Web应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问ASP.NET应用程序服务和Microsoft平台。

VisualStudio2008在三个方面为开发人员提供了关键改进:

1.快速的应用程序开发

为了帮助开发人员迅速创建先进的软件,VisualStudio2008提供了改进的语言和数据功能,例如语言集成的查询(LINQ),各个编程人员可以利用这些功能更轻松地构建解决方案以分析和处理信息。

VisualStudio2008还使开发人员能够从同一开发环境内创建面向多个.NETFramework版本的应用程序。

开发人员能够构建面向.NETFramework2.0、3.0或3.5的应用程序,意味他们可以在同一环境中支持各种各样的项目。

2.突破性的用户体验

VisualStudio2008为开发人员提供了在最新平台上加速创建紧密联系的应用程序的新工具,这些平台包括Web、WindowsVista、Office2007、SQLServer2008和WindowsServer2008。

对于Web,ASP.NETAJAX及其他新技术使开发人员能够迅速创建更高效、交互式更强和更个性化的新一代Web体验。

3.高效的团队协作

VisualStudio2008提供了帮助开发团队改进协作的扩展的和改进的服务项目,包括帮助将数据库专业人员和图形设计人员加入到开发流程的工具。

4.2TCP/IP协议和拥塞控制简介

TCP/IP协议实际上就

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

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

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