




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TCP参数调整工具扩展 宁波大学 信息学院 计算机152 傅江伟摘 要:TCPTuner是一个用于Linux的TCP(传输控制协议)拥塞控制内核模块和GUI(图形用户界面),允许实时修改TCP CUBIC的拥塞控制参数,这是Linux中当前的默认算法。具体而言,该工具提供对发送者拥塞窗口增长速率的alpha访问权限; beta,减少丢失事件的拥塞窗口的乘法因子; 以及CUBIC的快速收敛和tcp友好参数。此外,该接口还提供对最小重传时间和初始拥塞窗口大小的ip路由参数的访问。在本实验中,我们修改了TCPTuner中拥塞控制算法实现,试图采用Vegas拥塞控制算法来替换原本的Cubic拥塞控制算法。关键词:TCPTuner Cubic拥塞控制算法 Vegas拥塞控制算法TCP parameter tuning tool extension Ningbo University Fu JiangweiAbstract: TCPTuner is a TCP (transmission control protocol) congestion control kernel module and GUI (graphical user interface) for Linux, allowing real-time modification of TCP CUBIC congestion control parameters, which is the current default algorithm in Linux. Specifically, the tool provides alpha access to the growth rate of the senders congestion window; beta, the multiplication factor that reduces the congestion window of the lost event; and the fast convergence of CUBIC and the TCP friendly parameters. In addition, the interface also provides access to IP routing parameters for minimum retransmission time and initial congestion window size. In this experiment, we modify the congestion control algorithm in TCPTuner and try to replace the original Cubic congestion control algorithm by using the Vegas congestion control algorithm.Key words: TCPTuner Cubic congestion control algorithm Vegas congestion control algorithm1 引言TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。1TCP的功能:当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证报文传输的可靠 ,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCPTuner的作用:TCPTuner是一个用于Linux,使TCP(传输控制协议)拥塞控制内核模块和GUI(图形用户界面),允许实时修改TCP CUBIC的拥塞控制参数,这是Linux中当前的默认算法。 具体而言,该工具提供对Alpha的访问,该速率是发送者拥塞窗口增长的速率; beta,减少丢失事件的拥塞窗口的乘法因子; 以及CUBIC的快速收敛和tcp友好参数。 此外,该接口还提供对最小重传时间和初始拥塞窗口大小的ip路由参数的访问。2 相关工作下载并安装TCPTuner并搭建相应的环境。2第一步 构建和加载内核模块cd module/makesudo rmmod tcp_tuner.kosudo insmod tcp_tuner.kosudo sysctl -w net.ipv4.tcp_congestion_control=tuner第二步 建立并运行TCPTuner GUIsudo apt-get install qt5-qmake qt5-defaultcd gui/TCPTuner/qmakemakesudo ./TCPTuner第三步 搭建MaimaHi仿真环境sudo add-apt-repository ppa:keithw/mahimahisudo apt-get updatesudo apt-get install mahimahisudo sysctl -w net.ipv4.ip_forward=1cd mahimahi/./start_allcd mahimahi/./start_shell./start_client 5050 1 & - creates an tuner client in a new process./start_client 5050 0 & = max_window) curr_window *= beta; t = 0; else double K = cbrt(w_max * (1-beta) / C); double delta = (t - K);curr_window = max(curr_window, C * delta * delta * delta + w_max);t+;3 研究动机tcp的vegas算法是基于delay的一个拥塞控制算法,所谓基于delay也就是说窗口的变化只和RTT的变化相关。而传统的基于丢包的算法是窗口的变化和丢包相关.它的主要思想是估计一段时间能够发送的数据量,然后和最终发送的数据量比较。如果预测要发送的数据没有被发送,那么就会被认为可能出现拥塞状况,如果这个状态持久,那么就减慢发送速度,并且这个算法不仅作用于拥塞避免状态,而且还作用于slow start状态。所以想通过现有知识,尝试能否将TCPTuner中原本的CUBIC拥塞控制算法替换成Vegas拥塞控制算法。4 具体方案更改控制内核为vegas算法:图6:更改拥塞控制内核Vegas在拥塞避免阶段的具体算法如下567:(1)计算期望的吞吐量(Expected)和实际吞吐量(Actual)的差值。Diff = Expected - Actual = cwnd / baseRTT - cwnd / minRTT其中,baseRTT代表当路由器缓存中没有数据包时的RTT值。minRTT为上个RTT的测量值,由于此时路由器中已有数据包,需要排队,故minRTT baseRTT。Expected = cwnd / baseRTT为期望的吞吐量,是理想的情况下得吞吐量。Actual=cwnd / minRTT为实际的吞吐量。(2)路由器中缓存的数据包个数为:diff = Diff * baseRTT,即吞吐量的差值与链路时延的乘积。(3)窗口调整策略在每个RTT末,Vegas根据diff进行窗口调整。 cwnd(n) + 1 /* d(n) alpha */cwnd(n+1) = cwnd(n) /* alpha = d(n) beta */其中,d(n)代表第n个RTT时估算出的路由器中属于此连接的数据包的个数。cwnd(n)代表第n个RTT时的拥塞窗口。在mainwindow.cpp中更新代码(部分代码)图7 mainwindow.cpp部分代码修改在tcp_graph.h中更新代码图8 tcp_graph.h部分修改代码在tcp_graph.cpp中更新代码图9 tcp_graph.cpp部分修改代码5 实验结果图10 alpha=1,beta=1时窗口图像图11 alpha=1,beta=6时窗口图像图12 alpha=25,beta=31时窗口图像最后用iperf3测试了基于Vegas拥塞控制算法,拥塞控制窗口cwnd随时间的变化的准确结果。图13 Vegas拥塞控制算法下拥塞控制窗口cwnd随时间的变化发现实际情况与图形表示之间存在差距,猜想原因可能是没有正确提取到第n个RTT时估算出的路由器中属于此连接的数据包的个数的精准数值。6 结论展望由于CUBIC拥塞控制算法和Vegas拥塞控制算法原理相差较大,CUBIC算法中窗口的变化与丢包相关,而Vegas算法中窗口的变化只和RTT的变化相关。导致想要用Vegas拥塞控制算法直接替换TCPTuner中CUBIC算法的部分较难实现,最后虽然完成了基于Vegas拥塞控制算法的用户图形TCP参数控制界面,但是通过测试在Vegas拥塞算法控制下带宽和拥塞窗口大小随时间的变化,发现与实际情况还存在差距。希望以后通过更加系统的学习,深入了解TCPTuner的工作原理,完全掌握CUBIC和Vegas拥塞控制算法的原理及其实现,能达到以Vegas算法替换TCPTuner中的CUBIC算法,最后形成一个基于Vegas拥塞控制算法的精准的用户图形TCP参数控制界面。References:1 ,TCP介绍 /item/TCP/33012?fr=aladdin2 ,TCPTuner下载 /Gasparila/TCPTuner3 ,Linux(Ubuntu)系统下安装Qt library和Qt Creator全过程记录 /LEON1741/article/details/566817184 Kevin Miller,Luke Hsiao,TCPTuner: Congestion Control You
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘孜州森林管护员考试题及答案
- 解析卷-人教版八年级上册物理物态变化《温度》重点解析试卷(含答案解析)
- 考点解析-苏科版九年级物理下册《电功和电热》专项测评试卷(含答案详解)
- 宏伟学校考试题目及答案
- 六级模拟考试真题及答案
- 重难点解析人教版八年级上册物理声现象《声音的特性》章节训练练习题(含答案详解)
- 内蒙古医学编制考试题库及答案
- 2025-2026学年度江苏省南京市鼓楼区八年级上册数学10月月考试题 参考答案
- 酒吧股权转让协议5篇
- 脂肪类型与血脂关联研究-洞察与解读
- DB15T 4203-2025草原生态环境损害司法鉴定技术规范
- 2025低空经济发展及关键技术概况报告
- GB/T 45683-2025产品几何技术规范(GPS)几何公差一般几何规范和一般尺寸规范
- 研学安全主题班会课件
- 组织行为学 马工程课件5 第五章 领导
- GB/T 32800.3-2016手持式非电类动力工具安全要求第3部分:钻和攻丝机
- GB/T 17421.4-2016机床检验通则第4部分:数控机床的圆检验
- STEAM课程开发和特色STEAM课程案例分析课件
- 插画风手绘线条卡通模板
- 办公楼屋面防水维修工程施工组织设计方案
- 事业编制人员入职审批表(一式二份)
评论
0/150
提交评论