浅谈TCP(2):流量控制与拥塞控制

浅谈TCP(2):流量控制与拥塞控制,第1张

上文 浅谈TCP(1):状态机与重传机制 介绍了TCP的状态机与重传机制。本文介绍 流量控制 (Flow Control,简称流控)与 拥塞控制 (Congestion Control)。TCP依此保障网络的 QOS (Quality of Service)。

根据前文对TCP超时重传机制的介绍,我们知道Timeout的设置对于重传非常重要:

而且,这个超时时间在不同的网络环境下不同,必须动态设置。为此,TCP引入了 RTT (Round Trip Time,环回时间):一个数据包从发出去到回来的时间。这样,发送端就大约知道正常传输需要多少时间,据此计算 RTO (Retransmission TimeOut,超时重传时间)。 听起来似乎很简单:在发送方发包时记下t0,收到接收方的Ack时记一个t1,于是RTT = t1 – t0。然而,这只是一个采样,不能代表网络环境的普遍情况。

RFC793 中定义了一个 经典算法

经典算法描述了RTO计算的基本思路,但还有一个重要问题:RTT的采样取“ 第一次 发Seq+收Ack的时间”,还是“ 重传 Seq+收Ack的时间”?

如图:

问题的本质是: 发送方无法区分收到的Ack对应第一次发的Seq还是重传的Seq (进入网络就都一样了)。针对该问题, Karn / Partridge 算法选择回避重传的问题: 忽略重传的样本,RTT的采样只取未产生重传的样本 。

简单的忽略重传样本也有问题:假设当前的RTO很小,突然发生网络抖动,延时剧增导致要重传所有的包;由于忽略重传样本,RTO不会被更新,于是继续重传使网络更加拥堵;拥堵导致更多的重传,恶性循环直至网络瘫痪。Karn / Partridge算法用了一个取巧的办法: 只要一发生重传,就将现有的RTO值翻倍(指数回退策略),待网络恢复后再仿照经典算法逐渐平滑以降低RTO 。

该算法已经做到可用,然而网络抖动对性能的影响比较大。

前面两种算法均使用加权移动平均算法做平滑,这种方法的最大问题是:很难发现RTT值上的较大波动,因为被平滑掉了(1 - a比较小,即最新RTT的权重小)。针对该问题, Jacobson / Karels 算法引入了最新采样的RTT值和平滑过的SRTT值的差距做因子,即 DevRTT (Deviation RTT,RTT的偏离度),同时考虑SRTT带来的惯性和DevRTT带来的波动:

Linux 26采用该算法计算RTO,默认取α = 0125, β = 025, μ = 1, ∂ = 4(玄学调参,你懂的)。

TCP使用 滑动窗口 (Sliding Window)做流量控制与 乱序重排 。乱序重排在TCP的重传机制中已经介绍,下面介绍流量控制。

TCP头里有一个字段叫Window(或Advertised Window), 用于接收方通知发送方自己还有多少缓冲区可以接收数据 。 发送方根据接收方的处理能力来发送数据,不会导致接收方处理不过来,是谓流量控制 。暂且把Advertised Window当做滑动窗口,更容易理解滑动窗口如何完成流量控制,后面介绍拥塞控制时再说明二者的区别。

观察TCP协议的发送缓冲区和接收缓冲区:

假设位置序号从左向右增长(常见的读、写缓冲区设计),解释一下:

据此在接收方计算 AdvertisedWindow ,在发送方计算 EffectiveWindow :

AdvertisedWindow衡量接收方还能接收的数据量,发送方要根据AdvertisedWindow决定接下来发送的数据量上限,即EffectiveWindow(可能为0)。

由于乱序问题的存在,LastByteRcvd可能指向Seq(LastByteSent),而Seq(LastByteAcked + 1)至Seq(LastByteSent - 1)都还在路上 ,即将到达接收方,最好的情况是不丢包(丢包后会重传), 则LastByteRcvd之后、接收缓冲区边界之前的空间就是发送方下一次发送数据的长度上限 (重传不属于下一次发送),因此, AdvertisedWindow = MaxRcvBuffer – (LastByteRcvd - LastByteRead) 。

LastByteRcvd还可能指向Seq(LastByteAcked)(一个新包都没有收到) ,显然AdvertisedWindow的公式不变, 而Seq(LastByteAcked + 1)至Seq(LastByteSent)都还在路上 ,未来将到达接收方,进入接收缓冲区,则“还在路上的Seq(LastByteAcked + 1)至Seq(LastByteSent)”不应超过接收缓冲区的剩余空间AdvertisedWindow(目前等于MaxRcvBuffer),这要求的是上一次发送满足LastByteSent - LastByteAcked ≤ AdvertisedWindow, 那么LastByteSent之后、接收缓冲区剩余空间边界之前的空间就是发送方窗口内剩余可发送数据的长度上限 ,因此, EffectiveWindow = AdvertisedWindow - (LastByteSent - LastByteAcked) 。

以下是一个发送缓冲区的滑动窗口:

上图分为4个部分:

其中, #2 + #3 组成了滑动窗口,总大小不超过AdvertisedWindow,二者比例受到接收方的处理速度与网络情况的影响(如果丢包严重或处理速度慢于发送速度,则 #2:#3 会越来越大)。

以下是一个AdvertisedWindow的调整过程,EffectiveWindow随之变化:

上图,我们可以看到一个处理缓慢的Server(接收端)是怎么把Client(发送端)的发送窗口size给降成0的。对于接收方来说,此时接收缓冲区确实已经满了,因此令发送方的发送窗口size降为0以暂时禁止发送是合理的。那么,等接收方的接收缓冲区再空出来,怎么通知发送方新的window size呢?

针对这个问题,为TCP设计了ZWP技术(Zero Window Probe,零窗通告):发送方在窗口变成0后,会发ZWP的包给接收方,让接收方来Ack他的Window尺寸;ZWP的重传也遵循指数回退策略,默认重试3次;如果3次后window size还是0,则认为接收方出现异常,发RST重置连接(<font color="red"> 部分文章写的是重试到window size正常??? </font>)。

注意:只要有等待的地方都可能出现DDoS攻击,Zero Window也不例外。一些攻击者会在和服务端建好连接发完GET请求后,就把Window设置为0,于是服务端就只能等待进行ZWP;然后攻击者再大量并发发送ZWP,把服务器端的资源耗尽。(<font color="red"> 客户端等待怎么耗服务端??? </font>)

为什么要进行拥塞控制?假设网络已经出现拥塞,如果不处理拥塞,那么延时增加,出现更多丢包,触发发送方重传数据,加剧拥塞情况,继续恶性循环直至网络瘫痪。可知,拥塞控制与流量控制的适应场景和目的均不同。

拥塞发生前,可避免流量过快增长拖垮网络;拥塞发生时,唯一的选择就是降低流量 。主要使用4种算法完成拥塞控制:

算法1、2适用于拥塞发生前,算法3适用于拥塞发生时,算法4适用于拥塞解决后(相当于拥塞发生前)。

在正式介绍上述算法之前,先补充下 rwnd (Receiver Window,接收者窗口)与 cwnd (Congestion Window,拥塞窗口)的概念:

介绍流量控制时,我们没有考虑cwnd,认为发送方的滑动窗口最大即为rwnd。实际上, 需要同时考虑流量控制与拥塞处理,则发送方窗口的大小不超过 min{rwnd, cwnd} 。下述4种拥塞控制算法只涉及对cwnd的调整,同介绍流量控制时一样,暂且不考虑rwnd,假定滑动窗口最大为cwnd;但读者应明确rwnd、cwnd与发送方窗口大小的关系。

慢启动算法 (Slow Start)作用在拥塞产生之前: 对于刚刚加入网络的连接,要一点一点的提速,不要妄图一步到位 。如下:

因此,如果网速很快的话,Ack返回快,RTT短,那么,这个慢启动就一点也不慢。下图说明了这个过程:

前面说过,当cwnd >= ssthresh(通常ssthresh = 65535)时,就会进入 拥塞避免算法 (Congestion Avoidance): 缓慢增长,小心翼翼的找到最优值 。如下:

慢启动算法主要呈指数增长,粗犷型,速度快(“慢”是相对于一步到位而言的);而拥塞避免算法主要呈线性增长,精细型,速度慢,但更容易在不导致拥塞的情况下,找到网络环境的cwnd最优值。

慢启动与拥塞避免算法作用在拥塞发生前,采取不同的策略增大cwnd;如果已经发生拥塞,则需要采取策略减小cwnd。那么,TCP如何判断当前网络拥塞了呢?很简单, 如果发送方发现有Seq发送失败(表现为“丢包”),就认为网络拥塞了

丢包后,有两种重传方式,对应不同的网络情况,也就对应着两种拥塞发生时的控制算法:

可以看到,不管是哪种重传方式,ssthresh都会变成cwnd的一半,仍然是 指数回退,待拥塞消失后再逐渐增长回到新的最优值 ,总体上在最优值(动态)附近震荡。

回退后,根据不同的网络情况,可以选择不同的恢复算法。慢启动已经介绍过了,下面介绍快速恢复算法。

如果触发了快速重传,即发送方收到至少3次相同的Ack,那么TCP认为网络情况不那么糟,也就没必要提心吊胆的,可以适当大胆的恢复。为此设计 快速恢复算法 (Fast Recovery),下面介绍TCP Reno中的实现。

回顾一下,进入快速恢复之前,cwnd和sshthresh已被更新:

然后,进入快速恢复算法:

下面看一个简单的图示,感受拥塞控制过程中的cwnd变化:

你好,我来解答下你的问题
用本地电脑远程登录服务器是会耗费一定的流量只要你不直接用远程的方式上传或拷贝文件这个耗费的流量是非常少的另外对网速也有一定的要求如果你本地网络不理想那么有可能出出现无法远程登录服务器或者是远程 *** 作很卡的现象根据平时使用的情况来看若用无线上网卡远程登录服务器效果不太理想建议用有线的稳定的网络
海腾数据杨闯为你解答希望对你有帮助

1点击 “开始菜单/设置/控制面板/管理工具”,双击打开”本地策月”,选中”ip安全策月,在本地计算机”右边的空白位置右击鼠标,谈出快捷菜单,选择”创建ip安全策月”,d出向导在向导中点击下一步 下一步,当显示”安全通信请求”画面时,把”激活默认相应规则”左边的钩去掉,点”完成”就创建了一个新的ip安全策月
2右击该ip安全策月,在”属性”对话框中,把”使用添加向导”左边的钩去掉,然后再点击右边的”添加”按纽添加新的规则,随后d出”新规则属性”对话框,在画面上点击”添加”按纽,d出ip筛选器列表窗口在列表中,首先把”使用添加向导”左边的钩去掉,然后再点击右边的”添加”按纽添加新的筛选器
3进入”筛选器属性’对话框,首先看到的是寻地址,源地址选”一个特定的IP地址”,目标地址选”我的ip地址”,在特定的IP地址那填上你要阻止的IP地址,点击确定
4在”新规则属性”对话框中,选择”新ip筛选器列表’然后点击其左边的复选框,表示已经激活最后点击”筛选器 *** 作”选项卡中,把”使用添加向导”左边的钩去掉,点击”添加”按钮,进行”阻止” *** 作,在”新筛选器 *** 作属性”的”安全措施”选项卡中,选择”阻止”,然后点击”确定”
5进入”新规则属性”对话框,点击”新筛选器 *** 作”,选取左边的复选框,表示已经激活,点击”关闭”按钮,关闭对话框最后”新ip安全策略属性”对话框,在”新的ip筛选器列表”左边打钩,按确定关闭对话框在”本地安全策略”窗口,用鼠标右击新添加的ip安全策略,然后选择”指派”

我的宽带是专线,可是路由器要怎么设置?
你电脑原来要是自动获取的话 那你路由就自动获取 ,要是自己手动设置IP的话 路由也跟着设成一样的就行了
我学校网络是电信专线,专线网络怎样设置路由器?要详细点!
您好!希望下面的回答能够对您有所帮助

专线宽带有固定的IP地址,设置路由器静态IP,然后将您办理业务时,中国电信提供的IP地址、网关、子网掩码等,填入路由器就可以使用了,注意参数一定要正确,您可以与当地客服联系确认下提供的参数值。

“宽带特惠大提速,四重大礼限时抢”“P7全新上市,新品预约,首发有礼”更多精彩内容,请您关注安徽电信网上营业厅。
请您及时关注安徽电信网上营业厅及官方微博公布的最新优惠活动。

感谢您长期以来给予中国电信的支持,祝您生活愉快,谢谢!
宽带专线路由器设置
方法/步骤

用直通线将路由器与光猫、路由器与电脑链接,开启设置之旅。此时要注意光猫的专线接入要搞清楚对方使用给你开通了哪个接口,光猫上有至少4个接口,只有一个接口能用,如果不知道可以用直通线把光猫与设置好ip、dns等参数的电脑直接链接,进行测试看那条线路是通的。

连接完毕后,我们看一下路由器底部标贴,上面有路由器的链接地址和相关设置。如下图所示。

我们按照标贴上的web地址、用户名、密码进行设置和连接

连接成功后会出现以下页面,然后输入默认用户名和密码进行登录,如果登陆不成功说明路由器被用过需要按重置按钮对路由器的设置进行重置。

我们首先选择左边的网络连接,对网络连接进行设置

请按下图中所示的设置进行点选、设置,这里要注意IPV4的地址类型,如下图所示。只要按要求输入就会连接成功了。

接下来我们设置wifi连接,点击上部的首页按钮,进入设置首页,点选中间的wifi按钮,如下图所示设置好wifi名称和连接密码后即可开启wifi了,是不是很简单。
我们店里是20M专线宽带《注意是专线宽带不是普通光纤》我需要设置路由器这个怎么设置
专线上下行是对称的,都是20兆,看你想怎么分配就怎么设置。
移动专线网 路由器怎么设置?
填写别的DNS也可以,不一定必须用他们给的DNS。不过填写最近的DNS,解析的速度肯定要快点啊。
联通专线宽带如何设置无线路由器
1、联通专线宽带是通过光纤到用户,通过光收发器出网线连接用户设备上网。使用的是固定IP。

2、路由器设置:电脑网线连接路由器LAN口,登陆路由器设置界面,按照路由器说明书或按照设置向导设置。注意:设置路由器WAN口静态IP(有的路由器标识“固定IP”),输入办理宽带时运营商给予的IP、子网掩码、网关、DNS等相关信息。设置完成后,用网线连接光收发器和路由器WAN口使用。
电信专线宽带怎么设置无线路由器
你先不要连接学校的网络,用电脑连接上去在设定就可以了,接wan口的话你需要更改路由器的默认IP地址段,不然会和你学校的冲突,学校的是19216811的话,你就改成19216821要是川交换机用,就要更改路由器IP地址,只要不是19216811就好,也就是不和学校的路由器冲突,并且关闭dhcp服务
公司拉了条联通专线,请问怎么设置上网
联通太黑了。资费太贵。已经拉了吗?

IP放到路由上。交换机接上 口在接PC。 公网IP是设置到应用上的。比如OA 服务器 网站的

目前遇到的那些困难

您想达到一个怎么样的效果

有多少台电脑,多少在线使用率。

主要是办公还是有OA应用需求,有自己的服务器,网站。

互联网解决方案,10年运营商经验给你解答。

求求-a-③泗⑤遛①零泗⑤⑤
光纤专线怎么接?
你好,正常是光纤进户要有终端的。终端在输出数据线接到路由上。在向下分支。而且还要用名和密码的。个人家好像有光纤的宽带直接进户的我没看到过。只是听说过。也是路由转换的。没有终端。希望对你有帮助。
电信专线网络怎么设置无线路由器
同时用无线路由器也可以、你打开网站 、在网站上输个19216811进去然后 他会出现 账号跟密码 一般都是admini账号密码 都一样的、你进去之后就可以进到里面 设置了。。

很高兴又一次回答你的问题 一般虚拟主机才有流量限制,流量限制是在服务器上通过IIS限制的,如果可以解决得话那就不叫限制了,可以购买不限制流量和并连发的空间,或者像你说的使用专线接入,不过那得有服务器,专线接入费用也高,hao123的流量不好说,访问量高流量肯定不小,他的网络带宽应该最小100M。我想每秒的流量应该在几M到几十M,如果每秒10M计算,一天的流量84375G

如果是流量限制,多数是在路由器里设定,要么是给你设了一个固定IP(限制IP流量),要么是限制你电脑网上MAC地址流量
在无线路由器中,出于安全的考虑,限制与反限制功能无所不在,如IP地址限制、DHCP功能设置、MAC地址克隆等。
无线路由器中一般都可提供接入的客户端列表,在此之中,你可以查看到获得了IP地址的客户端计算机的名称、MAC地址及其分配的IP地址,便可对其有的放矢进行防范。 而在DHCP服务器的静态地址分配中,还可以为指定MAC地址的计算机预留静态IP地址。当该计算机请求DHCP服务器分配IP地址时,DHCP服务器将给它分配表中预留的IP地址。并且一旦采用,该主机的IP地址将不再改变。
在IP地址过滤选项中,可以拒绝或允许局域网中计算机与互联网之间的通信。可以拒绝或允许特定IP地址的特定的端口号或所有端口号。可以利用按钮添加新条目来增加新的过滤规则,或者通过“修改”、“删除”链接来修改或删除已设过滤规则,甚至可以通过按钮移动来调整各条过滤规则的顺序,以达到不同的过滤优先级。或禁止局域网中IP地址为19216813的计算机在6:00到24:00之间收发邮件,禁止IP地址为19216814的计算机在18:00到22:00之间访问IP为21857912的网站,以达到对局域网计算机共享上网的有效控制。
其实简单一点的方法就是把无线路由器恢复出厂状态,从新绑定帐户和分配IP就可以了,这样不用改端口和MAC地址这么麻烦!
也有可能对方设了你的电脑后是isp服务商对你的限制,而为了控制用户多机共享上网,某些ISP可能会对MAC地址进行绑定,此时ISP会提供一个有效的MAC地址给用户,如正在上网的那台电脑的网卡MAC地址,您要想正常上网,就只能通过这台电脑,而其它不是这台电脑网卡MAC地址的就不能正常上网。
要想突破这种限制,就可利用无线路由器必备的MAC地址克隆。进入无线路由器的WEB配置页面,选择菜单网络参数→MAC地址克隆,便可以设置路由器对广域网的MAC地址。在对MAC地址进行绑定的那台电脑上,单击“克隆MAC地址”按钮,便可将当前管理PC的MAC地址克隆到“MAC地址”栏内。此外,还可启用主机伪装模式,以解除由于某些ISP的限制,可能导致克隆后还是无法使用路由器上网的问题。
而无线路由器必备的MAC地址过滤功能正好和MAC地址克隆相反,它可通过MAC地址允许或拒绝局域网中计算机访问广域网,有效控制局域网内用户的上网权限。还可以利用按钮添加新条目来增加新的过滤规则;或者通过“修改”、“删除”链接来修改或删除旧的过滤规则。
要对其进行设置,一般需要先打开防火墙,在防火墙设置界面中开启“MAC地址过滤”,设置“缺省过滤规则”为“禁止已设MAC地址列表中已启用的MAC地址访问Internet,允许其它MAC地址访问Internet”,然后在添加新条目中添加需要禁止的MAC地址即可,这与ISP禁止用户局域网多机共享异曲同工。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13061771.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存