【计算机网络】传输层 : TCP 流量控制 ( 流量控制过程 | 持续计时器机制 )

简介: 【计算机网络】传输层 : TCP 流量控制 ( 流量控制过程 | 持续计时器机制 )

文章目录

一、TCP 流量控制

二、TCP 流量控制 过程

三、持续计时器机制





一、TCP 流量控制


TCP 流量控制 :


① 流量控制 : 控制 发送方 降低发送速率 , 避免 接收方 来不及接收 , 丢弃数据 , 导致重传 ;


② 滑动窗口机制 : TCP 通过 该 滑动窗口机制 实现 流量控制 ;


③ 滑动窗口 调整 : 接收方 根据 接收缓存大小 , 动态调整 发送方 发送窗口 大小 ;


④ 接收方窗口 rwnd : 接收方 设置 确认报文段 中含有 窗口字段 , 将 rwnd 通知给发送方 ;


⑤ 发送窗口 : 发送方 发送窗口 取 接收窗口 rwnd , 与 拥塞窗口 cwnd , 中较小的值 ;






二、TCP 流量控制 过程


TCP 流量控制 过程 : 发送端 向 接收端 发送数据 ;


① 连接建立 : 接收端 向 发送端 发送 接收窗口 rwnd = 400 ;


② 发送端 发送数据 :


发送 1 ~ 100 字节 , 此时还能再发送 300 字节 ; ( seq = 1 )

发送 101 ~ 200 字节 , 此时还能再发送 200 字节 ; ( seq = 101 )

发送 201 ~ 300 字节 , 该报文段丢失 ; ( seq = 201 )

③ 接收端 返回数据 : 返回 ACK = 1 , ack = 201 , rwnd = 300 ;


表示 接收端 接收到了 201 之前的数据 , 期待发送 201 数据 , 接收窗口 rwnd 大小为 300 字节 ;

发送方此时 只能发从 201 开始的 300 字节滑动窗口大小的数据 , 即发送 201 ~ 500 之间的数据 , 共 300 字节 ;

④ 发送方 发送数据 :


发送 301 ~ 400 字节 , 此时还能再发送 100 字节数据 ;

发送 401 ~ 500 字节 , 此时滑动窗口的数据都发送完毕 , 不能再发送了 ;

发送方 的 超时重传计时器 , 时间到期 , 重传 201 ~ 300 字节数据 , 此时不能发送 新数据 ;

⑤ 接收方 接收数据 : 接收方接收到了上述 所有发送的数据 , 返回 ACK = 1 , ack = 501 , rwnd = 100 ; 表示 期待 发送方发送 501 之后的数据 , 接收窗口 rwnd 设置为 100 字节 ;


⑥ 发送方 发送数据 : 发送方发送 501 ~ 600 字节数据 , 此时滑动窗口占满 , 不能继续发送数据 ;


⑦ 接收方 接收数据 : 接收方接收到了 501 ~ 600 字节数据 , 此时回送 ACK = 1 , ack = 601 , rwnd = 0 ; 设置期望发送 601 之后的数据 , 接收窗口设置为 0 ; 此时不允许发送方再发送了 ;






三、持续计时器机制


持续计时器机制 :


① 开始计时 : TCP 连接中 , 有一个 持续计时器 , 发送方 收到 接收方 的 零窗口 通知 , 即 rwnd = 0 , 启动该 持续计时器 ;


② 零窗口探测报文 : 如果 持续计时器 到期 , 发送方 发送 零窗口探测报文 给接收方 , 接收方 收到上述报文 , 返回 当前窗口值 ;


③ 重新计时 : 如果 接收方的 接收窗口 rwnd 仍然为 0 , 发送方收到该 0 窗口值 , 重置 持续计时器 , 重新开始计时 ;


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
2月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
293 7
|
20天前
|
负载均衡 网络协议 算法
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
这网络层就像搭积木一样,上层协议都是基于下层协议搭出来的。不管是ping(用了ICMP协议)还是tcp本质上都是基于网络层IP协议的数据包,而到了物理层,都是二进制01串,都走网卡发出去了。 如果网络环境没发生变化,目的地又一样,那按道理说他们走的网络路径应该是一样的,什么情况下会不同呢? 我们就从路由这个话题聊起吧。
50 4
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
|
16天前
|
网络协议
TCP报文格式全解析:网络小白变高手的必读指南
本文深入解析TCP报文格式,涵盖源端口、目的端口、序号、确认序号、首部长度、标志字段、窗口大小、检验和、紧急指针及选项字段。每个字段的作用和意义详尽说明,帮助理解TCP协议如何确保可靠的数据传输,是互联网通信的基石。通过学习这些内容,读者可以更好地掌握TCP的工作原理及其在网络中的应用。
|
2月前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
65 3
|
3月前
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
84 10
|
2月前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
2月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
75 11
|
2月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
5月前
|
存储 安全 网络安全
POP3 协议在计算机网络中的优缺点
【8月更文挑战第19天】
105 0
POP3 协议在计算机网络中的优缺点
|
5月前
|
网络协议 视频直播 SDN
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
61 1