幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

一文带你搞定TCP流量控制

  摘要理想的流量控制实际的流量控制窗口关闭糊涂窗口综合征理想的流量控制
  什么是流量控制?
  流量控制就是发送方不能无脑的给接收方发送数据,它需要根据接收方的处理能力来发送数据。
  理想下的流量控制?
  理想意味着在实际中不存在,这里只是简单的说一下流量控制的作用,我们假设的理想通信发生条件为:客户端是接收方、服务端是发送方接收窗口和发送窗口相同,为200接收方和发送方在通信过程中始终保持相同的窗口大小
  客户端发送请求数据服务端收到请求后,发送确认报文和80字节的数据,可用窗口减少为120(20080),SND。NXT指针变为321,表示发送方下次发送序列号为321的数据客户端收到数据后,接收窗口右移80字节,RCV。NXT为321,表示客户端段期望下一个收到的报文的序列号为321,并且发送ACK报文给服务端服务端发送120字节的数据,可用窗口变为0,服务端无法发送数据客户端收到120字节的数据,接收窗口右移120字节,接着发送ACK报文给客户端服务端收到序列号为241(长度为80字节)的ACK报文,因此SND。UNA右移80字节变为321(24180),可用窗口变为80字节服务端收到序列号321(长度为120字节)的ACK报文,因此SND。UNA右移120字节变为441(321120),可用窗口变为200字节服务端发送160字节的数据,可用窗口变为40字节,并且SND。NXT右移160个字节变为601(441160)客户端在收到数据后,接收窗口右移160字节,接着发送ACK报文给服务端服务端在收到ACK报文后,SND。UNAK右移160字节,并且可用窗口再次恢复为200字节实际的流量控制
  操作系统缓冲区和滑动窗口的关系
  由于我们发送的数据都是暂存在操作系统的内存缓冲区,所以滑动窗口会收操作系统缓冲区的影响:操作系统内存缓冲区会动态调整,影响窗口大小如果应用程序如果无法及时从缓冲区读取内容,也会导致缓冲区减少,此时滑动窗口需要适当调小,避免缓冲区内容溢出。
  应用程序无法及时读取缓存
  假设以下场景:客户端为发送方,服务端为接收方,初始化发送窗口和接收窗口都为360服务端繁忙,收到客户端数据后,应用层无法及时读取数据
  客户端发送140字节的数据,可用窗口变为220(360140),SND。NXT右移140变为141(1140)服务端收到140字节的数据,应用程序只读取了40节数据,还有100字节存在于缓冲区中,于是接收窗口变为260(360100),服务端在给客户端发送ACK报文时会把新的窗口大小告知客户端。客户端在收到ACK报文以后,发送窗口减少为260,并且由于收到了数据的ACK,因此SND。UNA会右移140个字节变为141,此时可用窗口为260客户端继续发送180字节的数据,SND。NXT变为321,可用窗口变为80(26080)服务端在收到数据后,应用进程没有读取任何数据,于是接收窗口从260缩小为80(260180),并且在发送ACK报文时告知客户端客户端收到ACK报文以后,会将发送窗口减少为80,可用窗口此时也是80,因此到这里客户端最多只能发送80字节的数据给服务端客户端发送最后80字节的数据给服务端,可用窗口变为0服务端收到80字节的数据后,应用进程依然没有读取任何数据,于是接收窗口减少为0,并在发送ACK报文告知客户端客户端收到ACK报文以后,发现窗口大小为0,因此将发送窗口减少为0。
  这里会有个问题,窗口变为0也就是发生了窗口关闭。
  操作系统缓冲区变化
  当服务器资源紧张,操作系统有可能会减少缓冲区的大小,如果此时应用程序还无法读取数据,那么将会出现数据包丢失现象。
  客户端发送140字节数据,可用窗口变为220(360140)服务端收到140字节数据后,但是系统资源紧张,操作系统减少120字节的缓冲区,并且应用层没有读取任何数据,于是接收窗口变为100(360120140),然后发送ACK报文告知客户端在收到服务端的ACK报文前,客户端又发送了180字节的数据,可用窗口减少到40服务器收到180字节的数据后,由于接收窗口只有100字节,超出了缓冲区的大小,因此会丢弃该数据包客户端此时收到之前的ACK报文,会将发送窗口减少为100,此时可用窗口出现了负值80(100(321141))
  在上述情况中,减少缓存先于收缩窗口发生,出现丢包现象。
  为了防止上述情况,TCP规定是先收缩窗口,过段时间再减少缓存,这样避免丢包。窗口关闭
  什么是窗口关闭
  窗口大小为0,阻止发送方给接收方发送数据,直到窗口变为非0才能恢复发送。
  窗口关闭的危险
  窗口关闭以后发送端无法发送数据给接收端,只有当接收端处理完数据以后,这时候窗口回复,发送ACK报文信息给客户端,客户端才能恢复发送。但是一旦该ACK报文丢失,那么发送方会一直等待接收方的非0窗口通知,接收方也一直在等待发送方的数据,容易造成死锁现象。
  如何解决窗口关闭带来的死锁?
  只要TCP连接的一方收到对方0窗口的通知,就启动计时器,如果计时器超时就会发送窗口探测报文给对端,对端会给出自己的接收窗口大小。如果收到的窗口依然为0,发送方重启启动持续计时器如果收到的窗口不为0,恢复正常发送
  窗口探测的次数一般为3次,每次大约3060s。如果三次以后接收窗口还是0,有的TCP实现就会发送RST报文来中止连接。糊涂窗口综合征
  什么是糊涂窗口综合征?
  如果接收方太忙,来不及取走缓冲区的数据,发送方的窗口会越来越小,最后如果接收方空出几个字节并告诉发送方现在有几个字节的窗口,发送方便会发送这几个字节,这就是糊涂窗口综合征。
  糊涂窗口综合征的缺点?
  TCPIP头部大约有40个字节,为了几个字节数据,需要加上头部相对大的开销,性价比极低。
  糊涂窗口综合征的原因是?接收方会告知发送方一个小的窗口发送方可以发送小数据
  如何避免接收方告知小窗口?
  接收方在告知窗口时会采取一种策略:当窗口大小小于min(MSS,缓存空间2),就会向发送方告知窗口为0,避免发送方发送数据,等到接收方处理完一些数据后,窗口大小MSS或者有一半以上缓存空间可以使用时,就可以把窗口打开让发送方发送数据。
  如何避免发送方发送小数据?
  发送方在发送数据时采用Nagle算法,该算法的思路是延时处理,满足以下两个条件才可以发送数据:窗口大小MSS或是数据大小MSS收到之前发送数据的ACK报文
  对于telnet或ssh这种小数据包交互场景的应用程序,需要关闭Nagle算法。在Java中,对Socket进行以下设置可以关闭Nagle算法。SocketsocketnewSocket();socket。setTcpNoDelay(true);

去银行存钱,用银行卡好还是存折好?原来区别这么大,看完秒懂随着科技的发展和普及,越来越多的人开始使用电子银行卡进行日常生活中的消费和支付。但在存钱方面,很多人依然习惯使用存折。对于银行卡和存折,您是否知道它们之间的区别?如果不了解,那……CBDL中国篮球发展联赛(龙港站)开赛来源:中国网2022年3月31日,中国篮球发展联赛星创晶晖园杯(龙港站)在温州龙港市体育馆开幕。本次赛事是龙港市委市政府贯彻落实打造赛事之城,发展赛事经济的重要批示精神,……丝袜最初是为男性设计?为何丝袜会如此有吸引力?丝袜的由来丝袜的由来可以追溯到古罗马时期,当时它们是用来保护皮肤的,因此它们的设计比较简单,只有简单的线条组成。丝袜最初的服务对象是男性,16世纪欧洲宫廷及上流社会对彩色……休闲卫衣可以穿得舒服又时髦,16套卫衣穿搭,拥有周末惬意好心头条创作挑战赛周末时刻,值得让自己享受放松心情,穿衣也是如此,我觉得适合周末的惬意心情,是属于运动卫衣的。所以,我为大家整理了16套卫衣的不同搭配,来发现休闲风格的美好吧……(国际)日本河津樱花满开引客来近日,日本静冈县河津町的河津樱满开,吸引众多游客前来观赏。河津樱于1955年在河津町被发现,以开花早、花期长而闻名。2月24日,游客们在日本静冈县河津町欣赏河津樱。新华社……大话西游2全服最强人族项链,鬼族无法超越的天花板大家对这张图熟悉吗,是的,就是300环副本的一个小插曲。也可以称之为打地鼠,更厉害的是这位朋友不知道手速炼了多少年,打到了506分。一般打到300分还有一个功绩值可以拿,不过有……原神璃月食集再出续集,辣肉窝窝头征服老外,锅巴才是应急食品?近日,原神发布了《璃月食集》第三期,这期短片中介绍了游戏中的料理辣肉窝窝头。和前两期的食谱相比,这次的窝窝头显得没那么复杂,更像个小吃,然而就算排面没有腌笃鲜、金丝虾球那么大,……沃恩谈续约我只是在专注于自己的工作我对未来的挑战感到兴奋直播吧2月23日讯今日,篮网主帅沃恩接受了采访。谈到篮网与自己签下了一份多年续约合同,沃恩表示:我只是在专注于自己的工作,我在这里已经经历过一切,无论是教练更替,还是园区……特斯拉修了记录仪,不能充电了?杭州的代先生有辆特斯拉,他说前段时间维修行车记录仪后,电充不进去了。【1818黄金眼】修记录仪后无法充电,特斯拉说没有关联2021年12月底,代先生买了一辆特斯拉m……最强大脑王昱珩清华毕业后不上班,他把吹过的牛全实现了我观察靠的从来都不是眼,而是心。被誉为鬼才之眼的王昱珩却说自己的观察靠心不靠眼。在《最强大脑》的舞台上,王昱珩一战成名、又战成王、再战成神,观众从觉得他太狂妄,到觉……欧盟将禁止向俄罗斯出售马桶等卫浴产品欧盟计划针对俄罗斯进行新一轮制裁。据外媒报道,这份长达146页的清单,列出了将不再向俄罗斯出口的商品,此次制裁涉及的范围更广泛。欧盟的新制裁计划于2月24日生效,即俄乌冲突一周……一个小俱乐部四年四个冠军,财力一般的武汉三镇是怎么做到的?一个小俱乐部四年四个冠军,中乙、中甲、中超、超级杯4级大跳跃,4个沉甸甸冠军奖杯,也许大家不觉得怎样,但是对于一个小微俱乐部来讲非常不容易,全世界绝无仅有。那么深处内陆并且经济……
图法老王猎犬体味程度超低这样养护宠物狗才健康法老王猎犬是一种比较古老的犬种。在马耳他,它们是猎兔的能手,因此又被称为猎兔犬。一九七九年,马耳他政府更宣告这犬种成为国兽,并发行刻有其肖像的银币作纪念。法老王猎犬是现在……图羽叶薰衣草蔫了怎么办三种方法拯救你的植物羽叶薰衣草是唇形科、薰衣草属的植物,它原生于加那利群岛,和加纳利薰衣草极相似,二者为近亲,但该种花型更为紧凑,颜色较深。现在各地均有普遍栽培。很多商家都喜欢在人们使用的各……图巴吉度犬发情有征兆新手要这样照顾巴吉度犬又叫巴塞特猎犬,原产地为法国,到现在已经有约100年的历史了。曾经巴吉度是专门的步行狩猎犬,通常用来猎浣熊、狐、兔等小野兽,也可用来猎鸟。巴吉度犬是一种非常古老的……抄书之旅正品低价好服务摘录:l1998年6月18日,刘强东24岁,仅有工作两年积攒下来的12000元。l北京,中关村海开市场,租下4平方米的摊位。l买了一台二手电脑,一辆二手三轮车……图比利时寻血猎犬的饮食指南日常喂养需遵循这些寻血猎犬温柔、善良、与人类相处融洽,忠实于自己的主人。与同伴相处和谐,比较固执。它们性格文书,既不和同伴争吵也不和其他犬争吵,是较为友善的狗狗。经过长期的考据,人们已经可……图樱桃种子盆栽四步养出甜美果实樱桃是一种常见的水果,这种水果甜美多汁,颜色鲜艳欲滴,非常受欢迎。而用樱桃种子种成的盆栽也一直很受人们的喜爱,那么这种盆栽应该如何去养护呢?说到樱桃,可能很多朋友想到的都……图贵宾犬巧克力色变色的真相美毛粉千万别乱用除了白色的狗狗,其它大部分的贵宾都会变色。对贵宾狗来说,毛色褪色是自然现象。不过如果养护比较得当的话,就能减缓狗狗毛发褪色的时间,而且毛发还能变得更加光亮柔软。很多人都特……图银杏种子种植方法事先催芽是必不可少的银杏为银杏科、银杏属落叶乔木。银杏树的果实俗称白果,因此银杏又名白果树,而它的种子就是从果实之中剥出来的核,那么,这种植物的种子应该怎么种植呢?每年一到了十一月份左右的时……图苏格兰牧羊犬好养吗这样护理才更轻松苏格兰牧羊犬又名柯利牧羊犬,是充满灵性的犬中明星。这种狗狗出现的频率比较高,从古老的畜牧作业犬到影视作品中不断出现的主角,它的机警、聪慧都给人留下了深刻印象。苏牧原来生活……图怎样水培茶花才易成活五个培植步骤一定要做好茶花的花朵饱满而艳丽,用它装饰环境真是再适合不过。而喜欢在室内培植茶花的朋友,多数都选用水培的方式。那么,进行茶花水培时,要怎么做才能让其快速成活呢?茶花是种观赏度很高的……今天是2022年11月24日,星期四,农历十一月初一(感恩节〔太阳〕早安今天〔太阳〕感恩节到了,心怀感恩,所遇皆温柔,感谢生命中的,每一位亲人和朋友,感恩每一个失落的瞬间,都有你们陪伴,感恩父母赐予生命,感恩所有……图玉露怎么养怎么配土颗粒和泥炭的多少要把握好玉露是独尾草科也就是百合科、瓦苇属的多肉植物。玉露植株玲珑小巧,种类丰富,叶色晶莹剔透,富于变化,非常可爱,是近年来人气较旺的小型多肉植物品种之一。提到多肉,很多朋友应该……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网