【JavaEE初阶】TCP核心机制5——流量控制
滑动窗口越大,效率就越快,但不能无限大,太大了会影响到可靠性
接收方的处理能力是有上限的(和你写的代码有关)
接收缓冲区吞吐数据示意图
流量控制
流量控制就是给发送方踩刹车,让它发得慢一点
流量控制可以让接收方,根据自身处理数据的速度,实时更新当前的窗口大小,以限制发送方发送的速度
TCP报头中和滑动窗口有关的指标
关于“缓冲区”的正确术语
- 每个socket对象,都会被分配一个缓冲区,一个程序中创建了N个socket对象,就有N组这样 的缓冲区
- TCP的发送缓冲区,TCP的接收缓冲区,这两个东西是在内核里的,代码执行在内核态的时候,才能访问到TCP接收缓冲区
- 缓冲区(buffer):把低效操作的次数变少了->把多次低效操作合并成一次,既可以用来读,也可以用来写数据(类似于嗑瓜子时,把瓜子皮攥成一把,统一一次丢掉)
- 缓存(cache):也是把低效操作的次数变少,把之前读过的数据,放到一个更近,更方便的地方,便于下次来拿,只能用来读,和写没关系(类似于,坐高铁时,把身份证从行李箱中拿到上衣口袋,方便后续随时拿身份证)
窗口探测
这节都在图里了
下节我们讲TCP的核心机制6——拥堵控制
END✿✿ヽ(°▽°)ノ✿



