开题报告-TCP拥塞控制算法研究.doc_第1页
开题报告-TCP拥塞控制算法研究.doc_第2页
开题报告-TCP拥塞控制算法研究.doc_第3页
开题报告-TCP拥塞控制算法研究.doc_第4页
开题报告-TCP拥塞控制算法研究.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京邮电大学毕业设计(论文)开题报告题目TCP拥塞控制算法研究学生姓名班级学号B13070107专业网络工程一、对指导教师下达的课题任务的学习与理解通过对任务书的学习和与指导老师的交流,了解了这次毕业设计的主要任务:(1)学习并掌握TCP(Transmission Control Protocol)协议的工作原理;(2)深入学习并且研究TCP的三种拥塞控制算法,Reno、CUBIC和BBR(Bottleneck Bandwidth and Round-trip)算法;(3)结合虚拟机软件VMware Workstation、Ubuntu操作系统、测试工具iperf和网络流量控制工具Netem(Network Emulator)来对上面提到的三种TCP拥塞控制算法来进行仿真,研究其在实际网络中的行为。拥塞控制是一种用来调整TCP连接单次发送的分组数量(单次发送量,在英文文献和程序代码中常叫做cwnd)的算法。它通过增减单次发送量逐步调整,使之逼近当前网络的承载量。本次论文研究内容主要为CUBIC和BBR的核心算法,根据核心算法进行详细的仿真并且给出详细的仿真报告和图表信息,根据代码和仿真结果,分析各算法的优势与劣势。二、阅读文献资料进行调研的综述TCP协议,即传输控制协议,是目前因特网中使用最多的传输层协议,工作在OSI(Open System Interconnection)网络模型中的第四层,主要负责提供端对端的可靠传输。TCP传输以字节为单位,以流的方式传输数据,最初的TCP协议对所有数据进行编号,接收方根据编号对发送放发送的数据进行确认,只有收到确认之后,该数据包才会从发送方的发送缓冲区中移除,这样确保了端对端的数据传输没有丢失,同时TCP还提供了端对端的流量控制,由接收方通告发送方自己当前的接收窗口,然后发送方根据接收方的接收窗口确定自己一次发送的数据量,这样发送方发送的数据就不会超过接收方的处理能力。但是早先的TCP没有考虑网络环境,在网络出现拥塞的时候,工作效率会降低,这个事情在1986年之后被重视了起来,起因是因为从美国从美国LBL到UC Berkeley的数据吞吐量从32Kbps下降到40bps,究其原因是因为网络出现了拥塞,自此之后,TCP的研究课题就多了一个方向,即拥塞控制。拥塞控制算法包括拥塞避免和拥塞控制两方面,拥塞避免用来预防网络出现拥塞,拥塞控制用来在网络出现拥塞的时候从拥塞状态中恢复回来。当网络拥塞状态被纳入考虑的时候,TCP的发送窗口就变成了Rwnd(TCP接收窗口)和Cwnd(Congestion Window)的最小值,即min(Rwnd,Cwnd)。最初的TCP拥塞控制模型是慢开始、拥塞避免、快重传、快恢复(Reno算法)。后来又出现了各种其他算法。Reno算法1.1 慢启动TCP的cwnd被初始化为1,然后每经过一个RTT就增加一倍,当cwnd增长超过一个变量的值之后,慢启动过程结束,进入拥塞避免。1.2 拥塞避免此阶段的目的是慢慢地增大cwnd,以找到一个合适的cwnd的值,使得带宽资源得以充分利用。在此阶段,cwnd每经过一个RTT增加1,直到网络出现了拥塞的时候此极端结束。1.3 快重传当网络出现了拥塞之后,依据算法的不同,快重传算法会采取不同的策略,主要是通过调整cwnd和ssthresh来从拥塞中恢复回来。1.4 快恢复随着因特网的发展,传统TCP的拥塞控制算法的弊端也逐步显露出来,比如说,受限于TCP用来承载Cwnd值的字段的位数(16位),TCP的发送窗口最大只能是65535个字节,当带宽较高,RTT较大即带宽时延(BDP)较大时,该值远小于BDP(Bandwidth Delay Product),使得TCP只能先发送一段数据,然后等待ACK,再继续发送,这样就有点像停等协议,这样TCP无法充分利用带宽;再者,由于传统的TCP拥塞控制采取的是AIMD(Additive increase Multiplicative decrease)的策略,即加法增大,乘法减小,在拥塞避免阶段,TCP的拥塞窗口每次增加1,这样窗口增长很慢,但是只要一出现拥塞,拥塞窗口值就会减少为现在的一半,然后再重新开始拥塞避免阶段,显然这样的策略不满足现在的网络要求;同时传统的TCP判断拥塞的策略也是有问题的,传统的TCP通过网络出现丢包来判断网络出现了拥塞,忽略了由于链路出现错误造成的分组丢失,在较早的网络中,这并没有什么问题,但是随着因特网的速度变得越来越快,同时也随着无线网络的发展,由链路错误导致的分组丢失越来越多,传统的TCP拥塞控制算法已经越来越不适用了。随后,TCP的拥塞控制进入了新的阶段,各种各样的TCP拥塞控制算法涌现了出来,CUBIC就是其中一种使用较为广泛的算法。除了CUBIC算法之外,本次毕业设计还会研究近期提到Linux主线上的另外一个TCP拥塞控制算法,BBR算法。2. CUBIC算法CUBIC算法利用了一个三次函数,这个函数中唯一的变量就是两次丢包时间之间的时间差,这样就把RTT从拥塞控制算法中独立出来,这样使得得CUBIC能够在多条共享瓶颈链路的TCP连接之间保持良好的RTT公平性。CUBIC利用了这个函数曲线的凹阶段和凸阶段,当发生丢包时,当前的拥塞窗口设为Wmax,然后将Cwnd减少一半,然后按照“凹”形增长曲线进行增长,当增长到Wmax的时候,再按照“凸”的阶段进行增长,这样Cwnd一直保持在Wmax附近,从而可以达到网络带宽的高利用率和协议本身的稳定性。3. BBR算法BBR算法是2016年由谷歌提到Linux内核主线上的TCP拥塞控制算法,与以往的TCP拥塞控制算法相比,其输出除了Cwnd的值以外,还有另外一个值,即Pacing-Rate,这个值定义了TCP如何将BBR算法计算出的Cwnd所指示的数据发送出去,而不是像原来的TCP拥塞控制算法一样一次性将数据发送出去;同时BBR不是通过丢包率或者出现延迟来判断网络出现拥塞,它会动态地记录两个值,迄今为止网络的最带带宽和最小RTT,然后计算两者的乘积,得到的便是当前网络的最大哒容量,BBR的目标就是达到这个最大容量,如果没有达到这个最大容量,BBR就认为当前网络出现了拥塞。三、根据任务书的任务及文献调研结果,初步拟定的执行(实施)方案(含具体进度计划)。1.执行方案1.1 深入了解TCP协议1.2 深入了解TCP拥塞控制算法的原理,主要研究以下三种算法的原理以及行为:Reno、CUBIC和BBR算法。研究方向主要包括其算法判断拥塞出现的方法以及出现拥塞后接收窗口的变化规律,示意图1如图1所示。图 1 tcp慢开始1.3 根据其算法原理,搭建仿真平台:用VMware workstation3搭建两台运行Ubuntu12.04系统的虚拟机,VMwate workstation 是一款功能强大的虚拟机软件,可以在一台机器上同时模拟出多台电脑,Ubuntu12.042是一个以桌面应用为主的开源Linux操作系统,默认安装的内核版本是4.4.0,图2为Ubuntu操作系统桌面图,图3-4为VMware Workstation软件使用示意图。图 2 Ubuntu系统桌面图 3 VMawre Workstation图 4 VMware Workstation 更改网卡模式1.3.2 仿真Reno拥塞控制算法的行为本章以及下面所有章节的仿真原理都是:在一台运行有Ubuntu操作系统的虚拟机上打开的iperf的server端,监听在5001端口,如表3.1所示,紧接着打开另外一个终端持续将/proc/net/tcpprobe文件的内容输出到/tmp/tcpprobe.out文件中,然后用gnuplot分析/tmp/tcpprobe.out文件中的cwnd一列,然后绘制图形,具体操作步骤及命令如表1所示。表1 算法仿真命令节选:iperf服务启动部分Reno算法仿真命令节选:iperf服务启动部分Rootubuntu:# iperf s /启动iperf的服务端Rootubuntu:#modprobe tcp_probe port=5001Rootubuntu:#chmod 444 /proc/net/tcpprobeRootubuntu:# cat /proc/net/tcpprobe /tmp/tcpbbr.outRootubuntu:# iperf i 0.1 t 100 c 127.0.0.1 Z bbrRootubuntu:# gnuplog set terminal postscript eps set outpu “Reno.eps” plot “/tmp/tcpReno.out” using 1:4 titile snd_cwnd with lines EOF1.3.3 仿真CUBIC拥塞控制算法的行为将拥塞控制算法改为CUBIC,继续进行仿真,仿真方法同1.3.2。1.3.4 升级系统内核版本为4.9,然后修拥塞控制算法为BBR算法,继续进行仿真,仿真方法与步骤同1.3.2。2.进度计划(1)2016/2017学年第二学期第1-2周:仔细阅读指导老师给出的任务书,根据任务书调研课题,认真学习TCP/IP协议栈的内容,完成开题报告;(2)2016/2017学年第二学期第3-4周:完成外文文献的翻译工作;(3)2016/2017学年第二学期第4-5周:学习仿真工具strace、gnuplot、netem、iperf,编写一份详细的仿真计划,字数不限;(4)2016/2017学年第二学期第5-6周:认真研究Reno算法的原理,完成部分仿真;(5)2016/2017学年第二学期第7周:进行中期检查;(6)2016/2017学年第二学期第8-9周:认真研究CUBIC算法的原理,完成部分仿真;(7)2016/2017学年第二学期第9-10周:认真研究BBR算法的原理,完成毕业设计后期工作;(8)2016/2017学年第二学期10-11周:进行仿真与实验;(9)2016/2017学年第二学期12-13周:按照撰写规范要求认真撰写毕业设计论文,交指导老师批阅;(10)2016/2017学年第二学期13-14周:准备答辩相关工作并进行毕业设计答辩。四、参考文献1 W.Richard.Steven.TCP/IP详解卷1:协议M.范建华.北京:机械工业出版社.2000:001-423.2 W.Richard.Steven.TCP/IP详解卷2:实现M.陆雪莹.北京:机械工业出版社.2004:001-901.3 武航星, 慕德俊, 潘文平,等. 网络拥塞控制算法综述J. 计算机科学, 2007, 34(2):51-56.4 RFC2001,TCP Slow Start,Congestion Avoidance,Fast Restransmit,and Fast Recovery AlgorithmsS.1996.5 RFC3390,TCP Increasing TCPs Initial WindowS.2002.6 RFC5681,TCP Congestion ControlS.2009 .7 Ha S, Rhee I, Xu L. CUBIC: a new TCP-friendly high-speed TCP variantJ. Acm Sigops Operating Systems Review, 2008, 42(5):64-74.8 Ramakrishnan K K, Jain R. A binary feedback scheme for congestion avoidance in computer networks with a connectionless network layerC/ Symposium proceedings on Communications architectures and protocols. ACM, 1988:303-313.9 Clark D. Window and acknowlegement strategy in tcpJ. 2010.10 Ljung L, Sderstrm T. Theory and practice of recursive identificationJ. IEEE Transact

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论