java技术圈 为您找到相关结果 8

30张图解: TCP 重传、滑动窗口、流量控制、拥塞控制 - 小林coding

前言 前一篇「硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题」得到了很多读者的认可,在此特别感谢你们的认可,大家都暖暖的。 来了,今天又来图解 TCP 了,小林可能会迟到,但不会缺席。 迟到的原因,主要是 TCP 巨复杂,它为了保证可靠性,用了巨多的机制来保证,真是个「伟大」的协议,写着写着发现这水太深了。。。 本文的全部图片都是小林绘画的,非常的辛苦且累,不废话了,直接进入正文,Go! 正文 相信大家都知道 TCP 是一个可靠传输的协议,那它是如何保证可靠的呢? 为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。 那么,TCP 是通过序列号、确认应答、重发控制、连接管理以及窗口控...阅读全文

博文 2021-08-26 04:09:30 博客园

TCP流量控制、拥塞控制

一:流量控制什么是流量控制?流量控制的目的?如果发送者发送数据过快,接收者来不及接收,那么就会有分组丢失。为了避免分组丢失,控制发送者的发送速度,使得接收者来得及接收,这就是流量控制。流量控制根本目的是防止分组丢失,它是构成TCP可靠性的一方面。如何实现流量控制?由滑动窗口协议(连续ARQ协议)实现。滑动窗口协议既保证了分组无差错、有序接收,也实现了流量控制。主要的方式就是接收方返回的 ACK 中会包含自己的接收窗口的大小,并且利用大小来控制发送方的数据发送。流量控制引发的死锁?怎么避免死锁的发生?当发送者收到了一个窗口为0的应答,发送者便停止发送,等待接收者的下一个应答。但是如果这个窗口不为0的应答在传输过程丢失,发送者一直等待下去,而接收者以为发送者已经收到该应答,等待接收新数据,这样双...阅读全文

博文 2020-09-06 14:33:09 知乎

Linux Kernel 4.9 中的 BBR 算法与之前的 TCP 拥塞控制相比有什么优势?

登录一下,更多精彩内容等你发现贡献精彩回答,参与评论互动登录查看全部 25 个回答学徒programmer70 人赞同了该回答在探讨这个问题之前,关于网络中的Bufferbloat问题需要了解,详细信息在这里(https://www.bufferbloat.net/projects/bloat/wiki/Introduction/),@李博杰 的回答也说得比较清楚了。在这里做一些补充吧。流量控制分为两部分:* 接收方的流量控制(即滑动窗口)-- 由接收方告知,只关注自身缓存情况,不关注网络,这里不讨论。* 发送方的流量控制(即拥塞控制)现在广泛使用的CUBIC/(new)Reno都是基于丢包的,在算法上重点输出拥塞窗口(cwnd);而BBR输出cwnd和pacing_rate,且pacing...阅读全文

博文 2020-09-06 14:37:35 知乎

TCP滑动窗口协议与nagle算法

相关文章 TCP滑动窗口协议与nagle算法 TCP/IP总结(重传,Nagle算法,滑动窗口,拥塞控制) 粘包、拆包发生原因滑动窗口、MSS/MTU限制、Nagle算法 【TCP协议】(3)---TCP粘包黏包 TCP协议之Nagle算法与CORK算法 TCP 滑动窗口协议 TCP——滑动窗口协议 TCP滑动窗口协议 TCP协议详解-滑动窗口 TCP协议滑动窗口机制 TCP 协议(滑动窗口——基础) TCP Nagle算法简述 TCP Nagle算法详解 TCP中的Nagle算法 tcp|ip nagle算法 TCP Nagle算法 20-TCP 协议(滑动窗口——基础) 聊聊TCP传输的滑动窗口协议的演进 聊一聊 TCP 的滑动窗口协议? TCP协议的安全机制——滑动窗口 TCP协议-滑...阅读全文

博文 2021-11-05 07:38:17 代码天地

TCP拥塞控制

TCP拥塞控制算法通过动态调整发送窗口大小来平衡网络负载与传输效率,其核心机制包括**慢启动(Slow Start)**、**拥塞避免(Congestion Avoidance)**、**快速重传(Fast Retransmit)**和**快速恢复(Fast Recovery)**。 --- ### 1. **慢启动(Slow Start)** **目标**:快速探测可用带宽,避免初次连接时突然淹没网络。 **规则**: - 初始拥塞窗口(`cwnd`)为1 MSS(最大报文段大小)。 - 每收到一个ACK,`cwnd`增加1 MSS(指数增长)。 - 当`cwnd`达到慢启动阈值(`ssthresh`,通常初始为较高值,如65535字节)时,进入拥塞避免阶段。 **示例**: - 初始状态...阅读全文

博文 2025-03-27 20:34:01 dalang

TCP 滑动窗口 拥塞窗口 RTT与发送报文的个数的关系

在TCP协议中,**一个RTT(往返时间)确实是一个报文从发送到接收确认的时间**,但通过**滑动窗口机制**,TCP允许在等待确认的过程中**连续发送多个报文**,从而显著提高网络利用率。 --- ### **1. RTT的定义与基本概念** - **RTT(Round-Trip Time)**:指一个数据包从发送方发出到接收方返回确认(ACK)所需的时间。例如,若发送方在时间`t0`发送报文,接收方在`t1`返回ACK,则RTT = `t1 - t0`。 - **传统停止等待协议**:早期的简单协议(如停等协议)要求发送方每发送一个报文后必须等待ACK,才能发送下一个报文。此时,**每个RTT仅能传输一个报文**,效率极低。 --- ### **2. TCP的滑动窗口机制** 为了提升效...阅读全文

博文 2025-03-27 20:43:09 dalang

​cwnd(拥塞窗口)与 TCP 发送缓冲区的关系

cwnd(拥塞窗口)并不等同于TCP的发送缓冲区。发送缓冲区是内核中存储待发送和已发送但未确认数据的内存区域,而cwnd是一个动态调整的数值,用于控制网络中的数据传输速率,避免拥塞。两者共同影响TCP的发送行为,但功能和机制不同。 ### **cwnd(拥塞窗口)与 TCP 发送缓冲区的关系** #### **1. 核心区别** **cwnd 不是 TCP 发送缓冲区**,但两者共同影响 TCP 的发送速率和网络性能。以下是具体分析: • **cwnd(拥塞窗口)**: • **功能**:cwnd 是一个动态调整的数值,表示当前网络允许的最大未确认数据量(以 MSS 为单位),用于控制发送速率以避免网络拥塞。 • **动态性**:其大小由网络拥塞程度决定,例如通过慢启动指数增长或拥塞避免线性...阅读全文