当前位置: 首页 > article >正文

TCP中发送数据的情况

发送窗口和接收窗口的本质,可以叫做“TCP 的生产者 - 消费者”模型,这个只是单个网络连接的数据传输。发送窗口相当于生产者,接收窗口相当于消费者。TCP必须考虑多个连接共享在有限的带宽上,兼顾效率和公平性的控制,而拥塞控制才是多个连接在实际网络传输中的模型。
拥塞控制常用的算法有“慢启动”,它通过一定的规则,慢慢地将网络发送数据的速率增加到一个阈值。超过这个阈值之后,慢启动就结束了,另一个叫做“拥塞避免”的算法登场。在这个阶段,TCP 会不断地探测网络状况,并随之不断调整拥塞窗口的大小。
在任何一个时刻,TCP 发送缓冲区的数据是否能真正发送出去,至少取决于两个因素,一个是当前的发送窗口大小,另一个是拥塞窗口大小,而 TCP 协议中总是取两者中最小值作为判断依据。
发送窗口反应了作为单 TCP 连接、点对点之间的流量控制模型,它是需要和接收端一起共同协调来调整大小的;而拥塞窗口则是反应了作为多个 TCP 连接共享带宽的拥塞控制模型,它是发送端独立地根据网络状况来动态调整的。
三个重要概念:
糊涂窗口综合征:应用进程间传送的报文段很小的情况,这种现象产生的原因是发送端应用进程产生数据很慢、或接收端应用进程处理接收缓冲区数据很慢,或二者兼而有之。
Nagle算法:限制大批量的小数据包同时发送,为此,它提出,在任何一个时刻,未被确认的小数据包不能超过一个。
延时 ACK: 在收到数据后并不马上回复,而是累计需要发送的 ACK 报文,等到有数据需要发送给对端时,将累计的 ACK捎带一并发送出去。

此文章为11月Day 17学习笔记,内容来源于极客时间《网络编程实战》。


http://www.kler.cn/a/131768.html

相关文章:

  • 记一次 .NET 某券商论坛系统 卡死分析
  • docker运行中的容器新增映射端口
  • 【C++11】lambda表达式 | 包装器
  • 基于STM32的无线传感器网络(WSN)通信方案设计与实现
  • 利用X6 制作一个简单的流程图工具
  • Compilation failed; see the compiler error output for details.
  • MySQL是如何进行排序的,ORDER BY是如何执行的
  • shell脚本适用场景
  • 直接插入排序
  • 内网穿透的应用-通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境
  • go语言 | 图解字节青训营抖音(一)
  • 汇编-间接寻址(处理数组)
  • Taro编译警告解决方案:Error: chunk common [mini-css-extract-plugin]
  • 解决升级docker导致的k8s崩溃问题
  • 华纳云:租用的服务器连接超时怎么办?
  • demo(三)eurekaribbonhystrix----服务降级熔断
  • WPF ResourceDictionary的作用
  • Banana Pi BPI-W3之RK3588安装Qt+opencv+采集摄像头画面.
  • openEuler安全配置规范基线
  • 安装应用与免安装应用差异对比