TCP Congestion Control
TCP Congestion Control
- Congestion occurs when total arrival rate from all packet flows exceeds R over a sustained(维持) period of time
- Buffers(缓冲) at multiplexer will fill and packets will be lost
Phases of Congestion Behavior
- Light traffic
- Arrival Rate << R
- Low delay
- Can accommodate(容纳) more
- Knee (congestion onset)
- Arrival rate approaches R
- Delay increases rapidly
- Throughput(吞吐量) begins to saturate(饱和)
- Congestion collapse
- Arrival rate > R
- Large delays, packet loss
- Useful application throughput drops
Congestion Window
- Desired operating point: just before knee
- TCP sender maintains a congestion window (cwnd) to control congestion at intermediate(中间的) routers
- Effective window is minimum of congestion window and advertised window(广播窗口)
- Problem: senders does not know what its “fair” share of available bandwidth should be
- Solution:
- adapt dynamically to available BW
- Senders probe(探查) the network by increasing cwnd
- When congestion detected, senders reduce rate
- Ideally, sending rate stabilizes(稳定) near optimal(最优) point
Congestion Window (Cont.)
- How does the TCP congestion algorithm change congestion window dynamically according to the most up-to-date state of the network?
- At light traffic: each segment is ACKed quickly
- Increase cwnd aggresively
- At knee: segment ACKs arrive, but more slowly
- Slow down increase in cwnd
- At congestion: segments encounter large delays, timeout, segments are dropped in router buffers
- Reduce transmission rate, then probe again
TCP Congestion Control (1): Slow Start
- Slow start: increase congestion window size by one segment upon receiving an ACK from receiver
- initialized at 2 segments; usually 1 segment
- used at start of data transfer
- congestion window increases exponentially(指数)
TCP Congestion Control (2): Congestion Avoidance
- Algorithm progressively(逐步) sets a congestion threshold(门槛)
- When cwnd > threshold, slow down rate at which cwnd is increased
- Increase congestion window size by one segment per round-trip-time (RTT)
- Each time an** ACK arrives, cwnd is increased by 1/cwnd**
- In one RTT, all ccwnd segments are sent, so total increase in cwnd is cwnd x 1/cwnd = 1
- cwnd grows linearly with time
TCP Congestion Control (3): Congestion
- Congestion is detected upon timeout or receipt of duplicate ACKs
- Assume current cwnd corresponds to available bandwidth
- Adjust congestion threshold = ½ x current cwnd
- Reset cwnd to 1
- Go back to slow-start
- Over several cycles expect to converge(收敛) to congestion threshold equal to about ½ the available bandwidth
Fast Retransmit & Fast Recovery
- Congestion causes many segments to be dropped
- Burt if only a single segment is dropped, then subsequent(随后的) segments trigger duplicate ACKs before timeout
- Can avoid large decrease in cwnd as follows:
- When three duplicate ACKs arrive before timeout expires(期满), retransmit lost segment immediately
- Reset congestion threshold to ½ cwnd
- Reset cwnd to congestion threshold + 3 to account for the three segments that triggered duplicate ACKs
- Remain in congestion avoidance phase
- In absence of timeouts, cwnd will oscillate(振动) around optimal value
TCP Congestion Control: Fast Retransmit & Fast Recovery
转载于:https://www.cnblogs.com/vancasola/p/7703931.html
TCP Congestion Control相关推荐
- TCP’s Congestion Control Implementation in Linux Kernel 文献阅读笔记
TCP's Congestion Control Implementation in Linux Kernel 文献阅读笔记 作者:Somaya Arianfar Aalto University S ...
- 一周一论文(翻译)——[SIGMOD 2015] TIMELY RTT-based Congestion Control for the Datacenter
本文主要解决的问题是在,基于优先级的拥塞控制PFC是一种粗粒度的机制,它主要是通过检测优先级队列的长度是否超过阈值,然后再发送PFC拥塞信号帧来进行流量控制.这种做法会带来不公平性以及行头阻塞等问题. ...
- 数据报拥塞控制协议:DCCP(Datagram Congestion Control Protocol)
目录 Datagram Congestion Control Protocol ethereal/wireshark support GStreamer support TODO & test ...
- A Google Congestion Control Algorithm for Real-Time Communication
原文地址 https://datatracker.ietf.org/doc/html/draft-ietf-rmcat-gcc Abstract 摘要 This document describes ...
- Elasticity Detection:A Building Block for Internet Congestion Control读后感
这周我读的论文是Elasticity Detection:A Building Block for Internet Congestion Control.这篇论文提出了一个新的度量"弹性& ...
- WebRTC的拥塞控制技术(Congestion Control
http://www.jianshu.com/p/9061b6d0a901 1. 概述 对于共享网络资源的各类应用来说,拥塞控制技术的使用有利于提高带宽利用率,同时也使得终端用户在使用网络时能够获得更 ...
- Dynamic TCP Initial Windows and Congestion Control Schemes through Reinforcement Learning笔记
原论文链接 文章目录 Abstract 1. Introduction 2. Background 3. Core Idea and System Overview 4. RL for IW conf ...
- linux+tcp有限状态机,LinuxTCP拥塞控制-Congestion Control In LinuxTCP-拥塞状态机(二)...
left_out 这些公式用来决定网络中outstanding的数据包.packets_out是正常传输的数据包数目,sacked_out是被SACK数据块确定的包数目,lost_out是对于丢失包数 ...
- 一周一论文(翻译)——[SIGMOD 2015] Congestion Control for Large-Scale RDMA
本文主要解决的问题是在RoCEv2体系中,基于优先级的拥塞控制PFC是一种粗粒度的机制. 它在端口(或端口加优先级)级别上运行,并且不区分流.PAUSE机制是基于每个端口(和优先级)的,而不是基于每个 ...
最新文章
- R 语言开发环境搭建
- 《中国管理安全服务(MSS)市场研究报告2010》读后感
- 解决:pycharm中动画函数animation.FuncAnimation不起作用
- SpringMVC解决前台传入的数组或集合类型数据
- 架构专家梁勇:哈啰在分布式消息治理和微服务治理中的实践
- q learning简单理解_如何用简单例子讲解 Q learning 的具体过程?
- 零基础学习IOS开发(二)- 使用cocos2d-x3.0 执行Hello world
- CCF201609-5 祭坛【线段树】(100分解题链接)
- 拓端tecdat|Python中的Apriori关联算法-市场购物篮分析
- Mysql的SQL语句汇总
- 红米k50 至尊版 解锁bl 获取root教程步骤
- 数据库左连接和右连接有什么区别!
- 主机ping虚拟机ip请求超时解决办法
- html项目符号正方形,css如何添加列表项目符号
- Network Switching Software Platform Guide学习笔记
- CSS系列之浮动详解
- 头豹研究院发布《2022年中国数据库产品策略解析报告》
- Android 包大小优化总结
- Echarts世界地图显示中文的国家名字
- 二叉树的遍历(前序、中序、后序、层次)
热门文章
- mysql 查询分组平均数_9、mysql分组查询-----group by 和 having
- openpyxl删除添加excel列_Python | 如何使用Python操作Excel(二)
- 佳能2900打印机与win10不兼容_佳能2900打印机和惠普1020哪种好 佳能2900打印机和惠普1020对比【详解】...
- python具有伪代码的本质吗_Python的优点之一是具有伪代码的本质。( )_学小易找答案...
- C语言实现面向接口编程
- java的构造函数详解,Java构造函数与普通函数用法详解
- 删除一个程序Linux,一天一个Linux基础命令删除文件或目录命令rm
- 查看mysql用户权限_mysql 如何查看该数据库用户具有哪些权限?
- 4g的服务器mysql配置文件,服务器物理内存16G mysql数据库my.cnf配置及参数说明
- php实现文本替换,php文本替换 函数 strtr()、str_repalce()