白话TCP流量控制

来源:CSDN

作者:哈罗

涛声依旧做了部分修改,文末左下角可点击阅读原文

上篇(一个故事读懂TCP拥塞控制)讲的是拥塞控制,这篇讲流量控制。还是以运输粮食为场景。

虽然运输的拥塞控制能够在运输效率和拥塞之间达到平衡,但是运输粮食的整体效率还受一个关键因数影响,那就是对岸西村粮食的卸货能力。

假设粮食运送到对岸后,要卸放在一个仓库里,随后被运往其他地方。如果运输的太快,仓库载货能力有限,粮食又没有及时被消耗,工人们只好等待仓库腾出地方来卸下新的粮食。

显然这样会影响这个工程的效率(粮食包裹迟迟得不到处理导致重传浪费资源和加大网络负荷)

为了防止这种情况的出现,使双方的处理速率得到一个平衡,工人们的智慧发挥出来了。他们在确认船只里给出了当前仓库的容量,以便让发送方东村知道这边的具体情况,采取一些措施,从而控制速率,达到平衡。

从上图可以看出,西村对东村进行了两次流量控制,通过这种方式,让发送方的发送速率不要太快,以便接收方来得及接收。达到了一种平衡。

仓库的容量就用船上的一面B旗帜的数字来代表吧,容量为零就写一个0.

按照这种方式运输粮食一直相安无事。可是有一天却发生了情况,导致运输中断了。这是怎么回事呢?工人同心协力,组织得当,很快对岸仓库就被塞满,返回的船只上B面旗帜都书写为0。

这样东村工人只能干等着,等西村有人来通知仓库有空余的地方。

过了一段时间,西村的仓库有一些空余的地方,于是派人通知东村的人可以发货了,但是那天水面实在太堵了,西村跑腿工人后来竟然发生事故沉船了。于是东村人一直等待西村有人通报那边的仓库的空闲容量,同时西村一直等待着东村人发货。就这样互相等待着。

为了防止该类事件再次发送,工人们又规定,如果被告知对方仓库已满,就开启一个闹钟,时间到了就派一只小船前去打听对方仓库的情况。

西村收到见到这个探查的人,会发送一个答复给东村,如果仓库还是没有空闲地方,则再次发送一个B旗帜为0的信号,如果有空闲的地方,则发送一下当前有多少空闲地方。

这样即使西村派过来的跑腿工人不幸丢失,也能保证运输继续下去。

上述场景中B面旗帜就代表TCP协议头中的窗口大小字段:

另外上面场景中的闹钟对应TCP协议栈中的持续定时器(persist timer),他的作用是,发送方只要接收到了0窗口通告,就开启该定时器,周期性的向接收方发送1字节的0窗口探测报文。

-END-

原文发布于微信公众号 - 趣谈编程(gh_51e791ad9174)

原文发表时间:2018-08-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

DBA生存警示:主备环境误操作案例及防范建议

编辑手记:对于资深的老DBA们,他们在漫长的职业生涯中养成了很多稀奇古怪的守则,以在复杂多变的环境中“幸存”,这源于无数血泪的教训,我曾经在《数据安全警示录》...

3627
来自专栏bboysoul

使用esp8266制作wifi干扰器

这个东西,说真的对现在的无线网络环境影响其实不是很大了,首先它只能玩2.4ghz的无线,其次这个模块不是特别的可靠,运行的时候温度会很高,买来玩玩还是可以的

1623
来自专栏FreeBuf

如何用一个废旧的笔记本打造一个家庭网络服务器?

本来好好的笔记本的,可偏偏屏幕说烂就烂,那就干脆不要了,改造改造吧! 他本来长这样的,如图: ? 什么,你看见了水印….老哥,别在意这些细节。 简单说一下配置:...

4078
来自专栏嵌入式程序猿

制造商代码字段在J1939中的位置你搞懂了吗?

SAE 自推出CAN的高层协议,J1939标准后,在商用车,卡车,舰船,农机等上面应用非常广泛,标准要求每一个节点都有一个8字节的名字域,用来识别,其中有11位...

2714
来自专栏FreeBuf

新加坡新保集团(SingHealth)网络攻击事件的可疑线索分析

近期,安全公司 Trustwave 旗下 SpiderLabs 实验室发现了可能与新加坡新保集团(SingHealth)网络攻击相关的一些信息线索,在前一篇文章...

902
来自专栏大数据文摘

家用路由器,已遭黑客攻击!

3068
来自专栏FreeBuf

从安全漏洞看印度国家银行APP为何“技术落后10年”

2007年的时候,我在印度最大的国有银行中的一家注册了一个账号,这个国家的银行(政府或者民营)普遍所使用的技术与当前水平相比至少落后了10年。 2015年末,我...

2177
来自专栏信安之路

打造属于自己的 Wi-Fi “DOS” 攻击工具——Wi-Fi_deauther

一块不起眼的板子,可能在一些人眼中他就没有利用价值,而另一些人却看到了不一样的板子,当我们赋予了他新的生命力,他就会焕然一新,工具的价值取决于人,当你赋予了他什...

2402
来自专栏SAP最佳业务实践

想学FM系列(3)-SAP FM模块:主数据(1)

3、主数据 在FM当中主数据主要分成了两类:一类是账户分配要素,另一类是预算结构用到的地址(如预算地址、记账地址)。 3.1 账户分配要素-主数据 根据PSM及...

5488
来自专栏企鹅号快讯

黑客术语基础知识快速了解

1.肉鸡:所谓“肉鸡”是一种很形象的比方,比方那些能够随意被我们操控的电脑,对方可所以Windows体系,也可所以UNIX/Linux体系,可所以一般的个人电脑...

47710

扫码关注云+社区

领取腾讯云代金券