TCP和UDP相关问题(重点)——7.TCP的流量控制怎么实现的?

流量控制就是在双方通信时,发送方的速率和接收方的速率不一定是相等的,如果发送方发送的太快,接收方就只能把数据先放到接收缓冲区中,如果缓冲区都满了,那么处理不过来就只能丢弃,所以需要控制发送方的速率,这是靠滑动窗口来实现的。

在发送方和接收方都维护了一个窗口,我们称为发送窗口和接收窗口,发送窗口内划分为已经发送已确认、已经发送未确认、待发送、未发送四个部分,发送方的滑动窗口卡的是已经发送还未确认和即将发送部分 ;接收窗口内划分为已经接收并已确认、等待接收、还未接收三个部分,接收方的滑动窗口卡的是等待接收部分。TCP利用滑动窗口来实现流量的控制,必须确保接收方能来得及接收发送方发送过来的数据。

接收方滑动窗口的大小是根据接收端处理数据的速度动态调整的,接收方发送的确认报文段中的窗口字段可以用来控制发送方滑动窗口的大小,从而影响发送方发送的速率。

相关推荐
Cx330❀3 小时前
【Linux网络】网络层协议 IP :从网络层原理到 Linux 内核源码
linux·运维·服务器·网络·tcp/ip·ai·ai编程
ITxiaobing20233 小时前
广告归因场景下的IP情报工程化:提升AppsFlyer P360匹配精度的实践思路
大数据·人工智能·tcp/ip
FPC工厂——皇榜科技5 小时前
机器人灵巧手线路板:从“握得住”到“摸得准”:一只机械手的柔性神经密码
网络·人工智能·科技·机器人·pcb工艺
Orange_sparkle5 小时前
Pi Agent vs LangGraph:从人机交互、企业 RAG 到持久化工作流的完整选型指南
java·网络·人机交互
xiaoye-duck6 小时前
《Linux 网络编程》深入传输层 UDP 协议原理:端口、报文、缓冲区与内核源码解析
linux·网络·udp
好评1246 小时前
【Linux】数据链路层
linux·运维·网络
天衍四九-6 小时前
第一章:从 LLM 到 Agent —— DeepSeek Harness 入门
网络·数据库·人工智能·python
Jae den6 小时前
网络丢包是什么?
网络
CC城子7 小时前
EtherNet/IP I/O 丢包排查(linux系统)
linux·单片机·tcp/ip·ethernetip
M78佐菲8 小时前
HTML学习笔记
linux·笔记·学习·tcp/ip·html