TCP拥塞控制及常见算法(美团)
TCP拥塞控制:确保网络中数据流量合理传输,避免网络拥塞崩溃的重要机制。
TCP 拥塞控制的原理:TCP 通过监测网络中的拥塞迹象,如分组丢失、延迟增加等,来调整发送端的数据发送速率。当网络出现拥塞时,发送端会降低发送速率,以避免进一步加重网络负担;当网络状况好转时,发送端会逐渐增加发送速率,充分利用网络带宽。、
常见的 TCP 拥塞控制算法
慢启动:
算法原理:在连接建立初期或出现拥塞后恢复阶段,发送端以指数增长的方式逐渐增加拥塞窗口(cwnd)大小。即每经过一个往返时间(RTT),拥塞窗口大小就翻倍。例如,初始时 cwnd 为 1,经过一个 RTT 后变为 2,下一个 RTT 后变为 4,以此类推。
作用:快速探测网络的可用带宽,让数据快速注入网络,但又能避免一开始就发送大量数据导致网络拥塞。
拥塞避免
算法原理:当拥塞窗口大小达到一定阈值(ssthresh)后,慢启动阶段结束,进入拥塞避免阶段。在这个阶段,发送端每经过一个 RTT,拥塞窗口大小增加 1/cwnd,而不是翻倍。例如,cwnd 为 10 时,每个 RTT 增加 1/10,即 0.1。如果出现数据包丢失或超时,就认为发生了拥塞,将 ssthresh 设置为当前 cwnd 的一半,同时将 cwnd 重置为 1,重新进入慢启动阶段。
作用:在网络接近拥塞点时,更加缓慢地增加发送速率,以避免网络拥塞的发生。一旦检测到拥塞,及时降低发送速率,以缓解网络拥塞。
快重传
算法原理::当接收端收到乱序的数据包时,会立即发送重复的确认(ACK)给发送端。发送端只要收到三个相同的 ACK,就认为该 ACK 对应的数据包已经丢失,不等超时就立即重传该数据包。
作用:能够在不等待超时的情况下,快速发现并重传丢失的数据包,提高数据传输的效率,减少不必要的延迟。
快恢复
算法原理:在快重传之后,不直接进入慢启动阶段,而是将 ssthresh 设置为当前 cwnd 的一半,然后将 cwnd 设置为 ssthresh 加上 3 倍的 MSS(最大段大小),开始执行拥塞避免算法,逐渐增加 cwnd。这是因为收到三个重复的 ACK,说明网络中还有一定的带宽可用,不需要像传统的慢启动那样将 cwnd 一下子降为 1。
作用:在快速重传丢失数据包后,能够更快地恢复网络传输,避免了慢启动阶段对网络带宽的过度保守利用,提高了网络的吞吐量和响应速度。
TCP拥塞控制及常见算法(美团)的更多相关文章
- TCP/IP 笔记 - TCP拥塞控制
拥塞控制是TCP通信的每一方需要执行的一系列行为,这些行为有特定算法规定,用于防止网络因为大规模的通信负载而瘫痪.其基本方法是当有理由认为网络即将进入拥塞状态(或已由于拥塞而出现路由丢包情况)时减缓T ...
- 现代互联网的TCP拥塞控制(CC)算法评谈
动机 写这篇文章本质上的动机是因为前天发了一个朋友圈,见最后的写在最后,但实际上,我早就想总结总结TCP拥塞控制算法点点滴滴了,上周总结了一张图,这周接着那些,写点文字. 前些天,Linux中国微信公 ...
- TCP拥塞控制
TCP必须使用端到端拥塞控制而不是使网络辅助的拥塞控制,因为IP层不向端系统提供显式的网络拥塞反馈.TCP采用的方法是让每一个发送方根据所感知到的网络拥塞程度来限制其能向连接发送流量的速率. 几个相关 ...
- [置顶] NS2中TCP拥塞控制仿真过程中盲点解析
最近利用NS2做TCP拥塞控制协议的仿真,发现很多变量的方法含义都是解释的不清楚,给核心模块修改带来很多麻烦,所以决定用最准确的语言解释成员变量.方法,术语等的含义.限于个人水平,若有错误请留言指正! ...
- s6-8 TCP 拥塞控制
TCP 拥塞控制 虽然网络层也试图管理拥塞,但是,大多数繁重的任务是由TCP来完成的,因为针对拥塞的真正解决方案是减慢数据率 分组守恒:当有一个老的分组离开之后才允许新的分组注入网络 TC ...
- TCP拥塞控制机制
研究TCP的拥塞机制,不仅仅是想了解TCP如何的精巧,更多的是领悟其设计思想,即在一般情况下,我们该怎样处理问题. 一.拥塞的发生与其不可避免 拥塞发生的主要原因:在于网络能够提供的资源不 ...
- 3.7 TCP拥塞控制
3.7 TCP拥塞控制 在3.5.5流量控制中有,接收方通过维护一个rwnd来控制流量,本节中考虑三个问题: 第一, 一个TCP发送方如何限制它向其他连接发送流量的速率. 第二, 一个TCP发送方 ...
- TCP拥塞控制及连接管理
在阅读此篇之前,博主强烈建议先看看TCP可靠传输及流量控制. 一.TCP拥塞控制 在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion ...
- 牛客网Java刷题知识点之拥塞发生的主要原因、TCP拥塞控制、TCP流量控制、TCP拥塞控制的四大过程(慢启动、拥塞避免、快速重传、快速恢复)
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 ...
- 计算机网络概述 传输层 TCP拥塞控制
TCP拥塞控制 计算机网络中的带宽.交换结点中的缓存和处理机等,都是网络的资源.在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏.这种情况就叫做拥塞. 拥塞控制就 ...
随机推荐
- 负载均衡原理之一:DNS轮循
DNS轮循是指将相同的域名解析到不同的IP,随机使用其中某台主机的技术,该项技术可以智能的调整网站的访问量到不同服务器上,减轻网站服务器的压力,实现负载匀衡;如果您感觉到单一的主机已经不堪负载你网站日 ...
- 「Note」数据结构方向 - 可持久化数据结构
1. 可持久化线段树 1.1. 简介 可持久化线段树一般用于解决区间第 \(k\) 小值的询问. 首先考虑简化过的问题,区间 \(\left[1,r\right]\) 的第 \(k\) 小值. 考虑用 ...
- Springboot笔记<7>过滤器与拦截器
过滤器 拦截器 过滤器 过滤器拦截的是URL Spring中自定义过滤器(Filter)一般只有一个方法,返回值是void,当请求到达web容器时,会探测当前请求地址是否配置有过滤器,有则调用该过滤器 ...
- vue模板语法中能否用??的三目运算简写的问题
使用双问号(??)的三目运算可以在 JavaScript 中使用,但在 Vue 模板语法中不支持.Vue 模板语法中的三目运算仍然使用单个问号(?)和冒号(:)的标准形式.例如: {{ conditi ...
- [书籍精读]《响应式Web设计 HTML5和CSS3实战(第二版)》精读笔记分享
写在前面 书籍介绍:本书主要讲解了如何运用HTML5和CSS3来进行响应式Web设计,使页面的设计与开发根据用户行为以及设备环境(系统平台.屏幕尺寸.屏幕定向等)来进行相应的响应和调整. 我的简评:响 ...
- 如何最大化客户生命周期价值?APMDR 模型在袋鼠云的落地实践
相信大家都认可一个观点:不论是 To B 还是 To C,用户是企业的核心资源,是互联网产品中最重要的价值之一.因此,深入挖掘用户价值成为现在大部分企业运营的关键. 之前我们为大家介绍过如何利用 RF ...
- vert.x 初识
中文文档:https://vertx-china.github.io/ 官方文档:https://vertx.io/ 客户端仓库模块:https://github.com/vert-x3/vertx- ...
- 【闲话 No.1】* 求解??
大概是在中考之前,做过一个奇怪的梦: (梦中)一觉醒来,至公楼前面的空地上突然长出(字面意思)一个非常高级的酒店,huge 突发奇想带着我们去那里全天集训. 每天大概:起床跑去操场进行神秘仪式,然后回 ...
- python 格式修复
简介 使用工具yapf example yapf a.py
- cuda 如何安装 18.04 ubuntu
简介 先安装好Nvdia 驱动 在安装cuda 安装方式 https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_ ...