首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
拥塞专题
TCP拥塞管理
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在TCP协议中,我们使用连接记录TCP两端的状态,使用编号和分段实现了TCP传输的有序,使用advertised window来实现了发送方和接收方处理能力的匹配,并使用重复发送来实现TCP传输的可靠性。我们只需要将TCP片段包装成IP包,扔到网络中就可以了。TCP协议的
阅读更多...
TCP拥塞控制算法BBR源码分析
BBR是谷歌与2016年提出的TCP拥塞控制算法,在Linux4.9的patch中正式加入。该算法一出,瞬间引起了极大的轰动。在CSDN上也有众多大佬对此进行分析讨论,褒贬不一。 本文首先对源码进行了分析,并在此基础上对BBR算法进行总结。 1.源码分析 /* Bottleneck Bandwidth and RTT (BBR) congestion control** BBR co
阅读更多...
【RoCE】拥塞控制机制(ECN, DC-QCN)
1.网络拥塞问题 在网络交换机中,当入口流量大于出口流量的带宽时会发生网络拥塞。典型的例子是多个发送方同时向同一个目的地发送网络数据。交换机的缓存可以处理暂时的拥塞,但是当拥塞太久时,交换机的缓存就会过载。当交换机缓存过载时,下一个收到的新的数据包就会被丢弃。丢包会降低应用性能,因为重传和传输协议的复杂性会带来延迟。无损网络实现了流控制机制,它可以在缓存溢出前暂停入口流量,阻止了丢包现象。然而,
阅读更多...
Linux学习(15)-网络编程:滑动窗口、拥塞控制、udp
本节学习内容 1.滑动窗口(1.滑动窗口的作用2.如果如果接收端填充的接收窗口为0,发送端接下来怎么处理3.糊涂窗口综合征4.tcp中nagle算法是什么) 2.拥塞控制 3.udp协议特点及编程流程 本节可能会用到的指令 ifconfig查看自己的ip地址 ping+ ip地址验证通信是否连接 netstat -natp显示当前进程的端口号及数据 一、滑动窗口 1.滑动窗口的作
阅读更多...
【JavaEE初阶】滑动窗口和流量控制以及拥塞控制
目录 📕引言 🎄为什么出现滑动窗口 🎋滑动窗口丢包问题 🚩情况一:数据包已经抵达,ACK被丢了 🚩情况二:数据包就直接丢了 🌲流量控制(安全机制) 🌳拥塞控制(安全机制) 📕引言 前面我们讲到的确认应答,超时重传,连接管理都是用来保证TCP可靠传输的机制。那么TCP除了保证可靠传输之外,也希望能够尽可能的保证高效的完成数据传输。 🎄为什么出现滑动窗口 了
阅读更多...
反馈时延与端到端拥塞控制
先从 越来越无效的拥塞控制 获得一个直感。 开局一张图,剩下全靠编。这是一道习题: 这图来自《高性能通信网络(第二版)》,2002 年的书,很好很高尚,目前这种书不多了。不准备做这道题,但意思要明白,时延越大越不同,系统越震荡,甚至跑飞不稳定,这个道理也可以从相轨迹看出。首先,先看经典的 aimd 收敛图是如何获得的。 aimd 系统的微分方程如下: d W d t = ( 1 − p
阅读更多...
iOS 网络相关面试题(可靠数据传输、流量控制(滑动窗口)、拥塞控制)
一、可靠数据传输 网络层服务(IP服务)是不可靠的。IP不保证数据报的交付,不保证数据报的按序交付,也不保证数据报中数据的完整性。 TCP则是在IP服务上创建了一种可靠数据传输服务 TCP的可靠数据传输服务确保一个进程从其接收缓存中读出的数据流是无损坏、无间隔、无冗余、按序的数据流。即该字节流与连接的另一端发出的字节流是完全相同的。 作为TCP接收方,有三个与发送和重传有关的主要事件 1、从
阅读更多...
图解TCP协议——重传机制、滑动窗口、流量控制、拥塞控制
TCP协议是可靠传输协议,老生常谈的知识点,之前的知识点都是网上阅读博客,接收的一直是零零散散的碎片,为了加深了解,这篇博客来总结下TCP协议是如何保障可靠的。 为了实现可靠性传输,需要考虑很多,如数据的破坏、丢包、重复、以及分片顺序混乱等问题。TCP是通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输的。 TCP的主要机制包括:重传机制、滑动窗口、流量控制、拥塞控制。
阅读更多...
计算机网络:运输层 - TCP 流量控制 拥塞控制
计算机网络:运输层 - TCP 流量控制 & 拥塞控制 滑动窗口流量控制拥塞控制慢开始算法拥塞避免算法快重传算法快恢复算法 滑动窗口 如图所示: 在TCP首部中有一个窗口字段,该字段就基于滑动窗口来辅助流量控制和拥塞控制。所以我们先讲解滑动窗口。 首先,发送方会维护一个发送缓存: 应用程序会把想要发送的数据写入到发送缓存中,而在发送缓存内部,维护一个发送窗口
阅读更多...
【Android面试八股文】谈谈你对TCP 流量控制与拥塞控制的理解
文章目录 一、流量控制1.1 流量控制的概念1.2 滑动窗口1.3 零窗口 二 、拥塞控制2.1 拥塞控制的概念2.2 慢启动2.3 拥塞避免2.4 快重传与快恢复2.4.1 快重传2.4.2 快恢复 三、总结 TCP的拥塞控制和流量控制虽然采取的动作很相似,但 拥塞控制与网络的拥堵情况相关联,而 流量控制与接收方的缓存状态相关联,是针对完全不同的问题而采取的措施 。 拥
阅读更多...
HCIE-QOS流量监管-拥塞管理
QOS流量监管-拥塞管理 QOS数据处理流程流量限速技术-令牌桶技术单桶单速双色标记法双桶单速三色标记法(常用)双桶双速三色标记法 流量监管承诺访问速率流量监管使用场景配置基于接口的流量监管配置MQC实现流量监管 流量整形流量整形的实现 (1)流量整形的实现 (2)流量整形使用场景基于接口配置流量整形配置MQC实现流量整形配置基于队列的流量整形 拥塞避免技术拥塞的产生拥塞的影响拥塞避免技术策
阅读更多...
TCP的工作原理,TCP的流量控制原理,滑动窗口,拥塞窗口,ACK累计确认等
TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后结束通话。所以TCP要比UDP可靠的多,UDP是把数据直接发出去,而不管对方是不是在收信,就算是UDP无法送达,也不会产生ICMP差错报文,这一经时重申了很多遍了。
阅读更多...
【计算机网络】个人学习笔记——第五章 运输层:TCPUDP三次握手、四次挥手TCP的可靠传输原理TCP的拥塞控制与流量控制
文章目录 第五章 运输层一、运输层概述1.传输层的功能2.各层次传输单元的归纳对比3.两个主要协议的概述(TCP&UDP)4.端口的概念及理解 二、UDP数据报协议概述(知道特点以及和TCP的区别即可,非重点)1.UDP特点2.UDP首部格式3.UDP的校验方式 三、传输控制协议TCP概述【重点了解】1.TCP的特点(要和UDP区别开来)2.TCP的连接(套接字Socket)3.TCP报文段
阅读更多...
说明白计算机网络之TCP的流量控制与拥塞控制之慢开始算法与拥塞避免算法
TCP的流量控制 利用滑动窗口实现流量控制 设A向B发送数据,连接建立时候,B告诉A自身的接收窗口大小,A的发送窗口大小不能超过接收方B的窗口大小 流量控制:发送方发送速率不要太快,要让接收方来得及接收。窗口大小的单位是字节。 窗口大小每次可以根据需求发送调整消息。 如果A向B发送了零窗口通知,而之后向B发送窗口100大小的通知,但消息丢失了,B一直没有收到,B如果一直等待下去
阅读更多...
12.3 拥塞控制流程
12.3.1 TCP拥塞状态 TCP拥塞状态共有5个: 135 enum tcp_ca_state {136 TCP_CA_Open = 0,137 #define TCPF_CA_Open (1<<TCP_CA_Open)138 TCP_CA_Disorder = 1,139 #define TCPF_CA_Disorder (1<<TCP_
阅读更多...
12.2 拥塞控制简介
12.1.1 拥塞控制的作用 网络的带宽是有限的,如果到达通信子网中某一部分的包数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿, 这种现象就是网络拥塞。如果把网络中的数据传输比作交通运输的话,拥塞就是交通堵塞。交通堵塞是无法彻底避免的,但可以减少和缓解。遵守交通规则是减少交通堵塞的有效方法,而拥塞控制算法则是网络通
阅读更多...
拥塞控制的自适应 AQM 探索
拥塞控制面临的几类问题: 网络拥塞时,大象流如何为微突发让路;网络拥塞时,如何只惩罚造成拥塞的流量;网络拥塞时,如何确保小流量不受影响。 既然不想在 host 将流按照大小分类,嫌没意义,麻烦或看不上,那其实交换机一直在做这件事,比如优先级队列,加权公平队列,加权随机早期检测等,不管是物理交换机还是虚拟交换机,这几样肯定跑不了。 但那些队列和调度策略往往配置复杂,实现太重,且无法自适应流量特
阅读更多...
让WSL内核使用BBR拥塞控制算法
使用git命令从Linux内核的Git仓库中获取源代码,$ git clone --depth 1 https://github.com/microsoft/WSL2-Linux-Kernel.git,找到对应的内核版本$ git log --grep="5.15.146.1-microsoft-standard-WSL2",回退到本机安装的内核版本$ git checkout <commit-
阅读更多...
安装新版的Ubuntu WSL以使能BBR拥塞控制算法
【多次尝试成功的方案】通过> wsl - -list -online列出可以安装的版本,用命令> wsl --install -d Ubuntu-24.04 安装。 【未成功的方案】通过挂在ubuntu24.04.iso到E盘后,用命令> wsl --import Ubuntu24.04 C:\WSL\Ubuntu24.04\ E:\ --version 2安装。
阅读更多...
【C/C++笔试练习】DNS劫持、三次握手、TCP协议、HTTPS、四次挥手、HTTP报文、拥塞窗口、POP3协议、UDP协议、收件人列表、养兔子
文章目录 C/C++笔试练习选择部分(1)DNS劫持(2)三次握手(3)TCP协议(4)HTTPS(5)四次挥手(6)HTTP报文(7)拥塞窗口(8)POP3协议(9)UDP协议(10)TCP协议 编程题 day34收件人列表养兔子 C/C++笔试练习 选择部分 (1)DNS劫持 上网的时候,访问某个网页却突然出现了某个运营商的网页(如联通、电信)。出现此问题可能的原因
阅读更多...
【网络】滑动窗口和拥塞窗口
滑动窗口和拥塞窗口是TCP协议中两个重要的窗口概念,它们分别用于流量控制和拥塞控制,在功能和作用上有所不同。 滑动窗口(Sliding Window) 滑动窗口是用于流量控制的机制,它定义了发送方和接收方之间的数据传输量。TCP连接的双方都有一个滑动窗口,用于控制数据的发送和接收。滑动窗口的大小由接收方通告给发送方,表示接收方当前可接收的数据量。滑动窗口的工作原理如下: 发送方滑动窗口(S
阅读更多...
[Linux][网络][TCP][四][流量控制][拥塞控制]详细讲解
目录 1.流量控制2.拥塞控制0.为什么要有拥塞控制,不是有流量控制么?1.什么是拥塞窗口?和发送窗口有什么关系呢?2.怎么知道当前网络是否出现了拥塞呢?3.拥塞控制有哪些算法?4.慢启动5.拥塞避免6.拥塞发生7.快速恢复 1.流量控制 发送方不能无脑的发数据给接收方,要考虑接收方处理能力 如果一直无脑地发数据给对方,但对方处理不过来,那么就会导致触发重发机制,从而导
阅读更多...
一看就懂TCP-快速之拥塞控制
再来想想这个窗口的大小 还会和什么有关系? 除了接收方的能力之外,还和网络 带宽有关 ,但这个TCP 怎么能动态的知道网络的情况呢? 如果我们设置发送窗口,使得发送但未确认的包为为通道的容量,就能够撑满整个管道。 如图所示,假设往返时间为 8s,去 4s,回 4s,每秒发送一个包,每个包 1024byte。已经过去了 8s,则 8 个包都发出去了,其中前 4 个包已经到达接收端,但是
阅读更多...
Google 实时流拥塞控制算法GCC
1、简介 参考:https://tools.ietf.org/html/draft-ietf-rmcat-gcc-02#section-4.4 gcc是google实时流拥塞控制算法的简称,已经在webrtc中实现,应用于chrome,后面将应用到Hangouts(视频聊天产品)中,主要用于视频流的拥塞控制。 网络瓶颈主要发生在中间的传输设备上,比如路由器,所以如果有中间设备的帮助(ECN)
阅读更多...
TCP滑动窗口 和 拥塞窗口
结论: 滑动窗口 -- 表征发送端和接收端的接收能力 拥塞窗口-- 表征中间设备的传输能力 TCP滑动窗口 需要说明一下,如果你不了解TCP的滑动窗口这个事,你等于不了解TCP协议。我们都知道,TCP必需要解决的可靠传输以及包乱序(reordering)的问题,所以,TCP必需要知道网络实际的数据处理带宽或是数据处理速度,这样才不会引起网络拥塞,导致丢包。 所以,TCP引入了一些技术和
阅读更多...
<计算机网络自顶向下> TCP拥塞
目录 TCP拥塞控制机制 TCP拥塞感知 TCP速率控制方法 TCP拥塞控制和流量控制的联合动作 TCP拥塞控制策略 TCP吞吐量 TCP公平性 TCP拥塞控制机制 端到端的拥塞控制机制 路由器不向主机提供有关拥塞的反馈信息 路由器负担较轻 符合网络核心简单的TCP/IP架构原则 端系统根据自身得到的信息判断是否发生拥塞,从采取动作拥塞控制的问题 如何检测拥塞
阅读更多...