网站图片上传却不显示,公司网站建设大概多少钱,wordpress注册邮件接收不到,建筑施工图设计【网络】详解TCP协议的流量控制和拥塞控制 一. 流量控制模型窗口探测 二. 拥塞控制模型 总结 一. 流量控制 流量控制主要考虑的是接收方的处理速度。 接收端处理数据的速度是有限的.。如果发送端发的太快, 导致接收端的缓冲区被打满, 这个时候如果发送端继续发送, 就会造成丢包… 【网络】详解TCP协议的流量控制和拥塞控制 一. 流量控制模型窗口探测 二. 拥塞控制模型 总结 一. 流量控制 流量控制主要考虑的是接收方的处理速度。 接收端处理数据的速度是有限的.。如果发送端发的太快, 导致接收端的缓冲区被打满, 这个时候如果发送端继续发送, 就会造成丢包, 继⽽引起丢包重传等等⼀系列连锁反应。 TCP⽀持根据接收端的处理能力, 来决定发送端的发送速度. 这个机制就叫做流量控制(Flow Control)。
模型 实现这样的机制主要依赖于TCP报头中的16位窗口大小以及选项中的窗口扩展因子该机制通过控制滑动窗口的大小来控制流量。 那将窗口设置为多大合适呢 答案是设置为接收缓冲区剩余空间的大小。 所以如何实现这个机制呢就是在返回的ACK报文中将窗口大小设置为接收缓冲区剩余空间的大小。
窗口探测
如果返回的ACK中显示窗口大小为0了那就说明对方的接收缓冲区已经满了就应暂停发送数据。 那问题是如果不发送新的数据那就无法拿到新的ACK就无法更新窗口大小那这个该如何应对呢 出现这种情况后发送方会周期性的发送“窗口探测”包不携带载荷仅仅是让对方返回ACK报文以获取新的窗口大小如果窗口大小不是0就可以继续发数据了。
二. 拥塞控制 拥塞控制主要考虑的是网络是否畅通。 我们知道真实的网络十分复杂也极有可能出现各种故障。如果出现故障比如说网络堵塞那发送速度就应该减缓那发送方如何知道网络出现堵塞了呢主要是通过“实验”的方式如果按照某个窗口大小发送数据出现丢包就要减缓发送速度如果没有丢包就要增大发送速度
模型 拥塞控制如何实验出合适的窗口大小呢?
慢启动以一个很小的窗口值开始发送指数增长如果没有出现丢包就以指数形式增大窗口大小线性增长增长到一定速度后变为线性增长避免增长过快造成堵塞如果出现丢包速度减半线性增长新版TCP Reno版本 TCP Tahoe版本中要求速度减小至慢启动主要是由于当时网络环境并不发达。 总结
流量控制关注于接收方的接收能力主要通过接收方的接收缓冲区的大小来控制窗口大小拥塞控制主要关注于网络是否通畅主要通过实验的方式来得到一个合适的窗口大小。由于木桶效应实际上应该取两者中相对较小的窗口大小来作为实际的窗口大小。