首页 文章 精选 留言 我的

精选列表

搜索[tcp],共7466篇文章
优秀的个人博客,低调大师

tcp拥塞机制完整过程

- **完整过程** ![](https://developer.qcloudimg.com/http-save/audit-9879380/f3a43b807b0736d60c8d08de85bbbdb0.png) - **关键词** - cwnd: 拥塞窗口 - rwnd: 接收窗口 - swnd: 发送窗口 = min(cwnd, rwnd) - ssthresh:初始无穷大 - RTT: 只是从数据包发出到接收到对方的包中间经过的时间, 五层协议中RTT定义的概率是不一样的, - 应用层:是指进程发出消息到收到回复消息的整个过程 - 链路层: - RTO: 超时重传,主要依赖RTT动态计算 - **关键过程** - **慢启动** - 概念: 刚开始建立连接执行慢启动 - 数值 - 老版本教材 cwnd=1, ssthresh=无穷大,rwnd>cwnd, swnd=min(1,rwnd) = 1 - 新版本 cwnd=10, ssthresh=无穷大, rwnd>cwnd, swnd=min(10,rwnd) = 10 (**原因是带宽和网页都越来越大,而RTT就变成了影响消息速度的卡点,所以将cwnd初始值调大,跳大之后一个 RTT 内回来的 ACK 数量变多了,连接建立之后的消息响应会加快很多**) - **从链路层来说,所有的报文从介质中传播都是串行的,只是说一个rtt内传播的报文可能有多个** - **超时** - 概念:发出报文后等待RTO还没收到ack,就认为是超时了 - 新阶段: 进入慢启动 - **收到三次重复的ack** - 概念: 收到三次重复的ack,就意味着大概率丢包了,需要重发 - 新动作:立刻重传报文 - 新阶段:进入快速恢复阶段 - **快速恢复** - 概念: 快速恢复降低cwnd不会降到1,所以恢复起来较快 - 进入信号: 收到三次重复的ack - 退出信号: 收到新的报文的ack就结束快速恢复阶段 - 新阶段: 进入拥塞避免阶段 - 数值 - (假设超时是cwnd=16) - ssthresh = max(cwnd / 2, 2) = max(8, 2) = 8 - cwnd = ssthresh + 3 = 8+3 = 11 (这里的3对应收到的三次重复的ack) - **拥塞避免** - 概念:在通过慢启动探测到网络上限时开始缓慢增加 - 进入信号:cwnd >= sstresh - 退出信号:超时或者收到三次重复的ack - **其他概念** - **延迟ack** - 影响: 由于ack变少, - 慢启动 cwnd的增长会变慢 - 拥塞避免阶段 cwnd的增长会变慢 - 减少了纯ack包,可以让ack携带数据返回 - 使用场景 - 数据包较大,会被切分成多个报文,每个报文都回复无太大意义 - 返回的ack无实际意义的情况 - 不使用场景 - 需要实时交互的场景,比如游戏,需要及时响应,延迟ack会降低玩家体验感 - 一些小数据包请求,本身切割后的报文数量较小,不太需要延迟ack - 请求数据包较小,但响应数据包较大,,相应数据包本身就要被切分成多个报文,再延迟,基本就是灾难了

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册