计算机网络-10 传输协议及优化

本文深入探讨了TCP协议的性能分析与优化,包括TCP的不同版本如TCP Tahoe, Reno, NewReno及Cubic的特点。重点关注了拥塞控制策略,如慢启动、快速重传和恢复,以及RTO和超时重传的影响。同时,提到了QUIC协议作为基于UDP的可靠传输,其加密和低延迟特性为传输协议带来了新的解决方案。此外,文章还讨论了ECN、BBR等其他拥塞控制信号和机制,以及如何通过TLP和SRTO等技术进一步优化TCP性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第十讲:传输协议性能分析和优化

基础回顾

TCP:端到端,发送端驱动,目标是可靠、公平、高效,拥塞控制是影响TCP性能的核心,采用reactive(响应)模式,发生拥塞后再调整

端到端

连接状态保存在两端,中间路由不保存任何连接信息(有的middlebox会保存)

发送端驱动

通过发送窗口大小控制速率

可靠传输

通过ACK,SACK显式告知是否受到,如果在一段时间里(RTO,超时重传)没有收到ACK,就重发, R T O = S R T T + m a x ( 200 m s ; 4 R T T V A R ) RTO=SRTT+max(200ms;4RTTVAR) RTO=SRTT+max(200ms;4RTTVAR),RTO一般远大于RTT,等RTO会极大影响流完成时间

兼顾高效和公平

理想发送速率=swnd/RTT

公平是指两条相同的连接具有相同的发送速率

拥塞控制

加性增乘性减,初始窗口大小设置为10MSS~10pkts性能比较好,采用慢启动指数增长,直到达到某个ssthresh,慢启动并不慢,是因为初始窗口太小才说它慢

整个过程:慢启动阶段,每收到一个ACK窗口大小+1;达到ssthresh后进入拥塞避免状态,每收到一个ACK窗口大小+1/cwnd,直到有丢包,ssthresh设置为当前cwnd的一半,cwnd置1,重新慢启动

慢启动的瓶颈:**瓶颈1:**使用RTO判断丢包,等待时间长;**瓶颈2:**从1MSS开始太慢

解决1:丢包判断改为3个重复ACK(意味着包可能丢了,也可能乱序到达),触发快速重传。注意如果发的包比较少(比如拥塞窗口比较小),就比较难触发快速重传

一个对比
TCP协议达到的功能
TCP Tahoe慢启动,拥塞避免,快速重传,超时cwnd=1
TCP Reno慢启动,拥塞避免,快速重传,快速恢复,超时cwnd=1,重复ACK时cwnd减半
TCP NewRenoTCP Reno+快速恢复改进
TCP cubic~

TCP Tahoe

慢启动,拥塞避免,快速重传,超时cwnd=1

TCP Reno

慢启动,拥塞避免,快速重传,快速恢复,超时cwnd=1,重复ACK时cwnd减半

比Tahoe添加了快速恢复和重复ACK时cwnd减半

快速恢复阶段:缓解瓶颈2,如果收到重复ACK,说明接收端还在收数据,链路质量还没那么差,那就不需要回退到slow start

快速恢复阶段使用了一个小trick:cwnd的膨胀,也就是收到重复ACK时cwnd继续膨胀以发送更多数据包,当收到新ACK的时候,cwnd回落到进入快速恢复阶段时的cwnd大小

TCP NewReno

TCP Reno+快速恢复改进

收到的ACK并没有把快速恢复阶段发的包全部ACK,说明在一个窗口中有多个丢包。引入部分ACK,当收到部分ACK时立即重传丢失的包,并设置当前接收到的重复ACK包数目为0,停留在快速恢复阶段,直到进入快速恢复阶段发的所有包都被ACK

SACK:接收方告诉发送方哪些报文丢失,哪些报文重传,哪些报文提前收到

初始窗口cwnd:可能会限制效率,短流会在慢启动阶段结束,不能充分利用带宽;outstanding包少的时候触发不了快速重传,因为收集不齐3个ACK

发送速率也不止收到cwnd限制,接收窗口也是

超时重传带来的问题

RTO远大于RTT,在RTO时间内不能传输数据;超时重传会进入慢启动状态;对于短流影响很大(更可能收集不齐3个重复ACK,触发不4了快速重传;短流持续时间短,任何长时间停顿都会极大增加流完成时间)

尽量使用快速重传而不是超时重传

不能直接减小RTO,会造成不必要的重传和窗口减小太多

代表性TCP优化:TLP(tail loss probe)

尾部的包更容易丢,也更难触发快速重传(它后头都没包了,更没有重复ACK)

在具体实现中,公共网络通过提前重发尾包触发快速重发(响应式),私有网络中通过发送包副本避免重传(主动式)

**响应式:**2个RTT后重发新包或尾部包,可以通过SACK发现丢包,加快丢包检测

**主动式:**通过发送包副本避免重传(每个包都发俩),直接从根源上避免丢包检测和恢复

代表性TCP优化:SRTO(smart-RTO)

比TLP更激进的数据包恢复
在这里插入图片描述

和原始TCP处理流程的关系是:
在这里插入图片描述

小结

在Reno基于丢包的拥塞控制框架下,长流提升空间不大,短流会有很大提升空间;且短流多为交互式流,对延迟敏感

TCP cubic

动机:标准TCP在高带宽、高RTT网络下的带宽利用率不足,且对高RTT流不友好;cubic实现了在不依赖RTT调整窗口的同时保证公平性

算法

每收到ACK, c w n d = C × ( t − K ) 3 + W m a x cwnd=C×(t-K)^3+W_{max} cwnd=C×(tK)3+Wmax C C C是个常数, t t t表示当前距离上一次降低拥塞窗口的时间间隔, W m a x W_max Wmax表示上一次降低窗口前的拥塞窗口大小, K K K是参数,在上一次丢包时更新

重新审视TCP

控制系统以丢包为反馈?

收一个ACK,发一个数据包,端到端控制,网络丢包通过ACK来体现

是基于"丢包即拥塞"假设,但在无线网络内不一定成立

是被动响应模式,发生了拥塞再控制

其他拥塞信号?RTT变化

当网络拥塞时,网络内瓶颈设备的buffer逐渐填满,RTT增大

控制信号ECN?

网络设备显式告知网络拥塞,需要路由器配合,在DCN中使用比较广泛

BBR

基本理念是:尽量估算RTT和bottleneck这两个参数,从而
在这里插入图片描述

非TCP传输控制协议:QUIC

基于UDP:Quick UDP Internet Connections,是基于UDP的可靠传输,永远是加密的,在应用层实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值