时间换空间的TCP
Posted dog250
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间换空间的TCP相关的知识,希望对你有一定的参考价值。
原题应该是“以时间换空间的端到端”,但端到端可能不为人知,就说成TCP。
TCP天生不为性能而生,TCP天生节省带宽和内存,天生的时间换空间。为节省空间开销,宁可多几轮来回。TCP天生以多花点时间来确保“可靠传输”这个底盘。
体现在两方面:
- 不允许乱序,节省接收端内存,否则就要维护ofo队列。
- TCP短头,增加数据载荷率,提高有效带宽利用率。
1970年代,内存昂贵,网络带宽昂贵,除保证可用性,优化性能简直是中邪。空间约束下,TCP就成了TCP。
结果是发送端获得的反馈信息不足,GBN就是自然的选择,几乎是唯一选择,HoL问题也由此而来。虽后续SACK允许ofo,优化了GBN,但本质并没有改变,马车换了个更好的轮子而已。
我总说TCP单边优化到顶了,很多人不认同,也不知道我在说什么,说白了就是获得反馈信息太少,不足以用于精确决策,你能提升均值,但可能是以劣化P99为代价,总之粗糙的信息带来的必然是一个粗糙的结果,否则就违背热力学第二定律了。
如今空间约束已经消失,为解决性能问题,TCP必然不再是TCP了:
- 允许完全乱序,接收端重组,自然取消GBN。
- TCP头增加新字段,反馈更多信息用于决策。
无论QUIC,还是迭代TCP(yaTCP[yet another TCP],TCP-ng),或自定义协议,TCP肯定不再是TCP。这是传输协议优化的核心。
还有另一个核心,直接从端到端入手,将传输流水线化,中继传输。
端到端原则的问题是,带宽探测消耗了整个端到端的时间,如果使用中继,中继与中继,中继与端之间就同时并行探测,就折叠了时间:
说到底,端到端原则就是时间换空间,这和图灵机通用计算机器的思路一致。
- 端到端原则时间换空间,网络核心变得通用,业务均可自由接入。
- 图灵机时间换空间,机器变得通用,在有限空间内应对一切计算。
端到端传输控制在端到端之间商量,消耗时间的基本单位是往返时延(RTT),违背端到端原则以提升性能,需在中间节点增加传输控制逻辑,这就是空间换时间,如IDC网络传输的交换机反压,也有点存内计算的味道了。
传输领域,逐渐地引入空间换时间以提升传输性能。
既然原题是“以时间换空间的端到端”,抛开TCP,点一下安全相关的题也是必要,但不深究。
安全应该在端到端做还是在网络核心做:
- 端到端的安全是零信任,软件定义边界(Software Defined Perimeter, SDP)。
- 网络核心的安全是各类防火墙,安全网关。
曾经的安全在网络核心做,各类网关也能卖的好价钱,但现在流行的是零信任,SDP,这个和传输性能的演进正好相反,时间换空间正在风靡。
为什么网关不时兴了?因为它是个单点,再牛X的HA也不能掩盖它是个单点,这和流行的分布式接入,移动互联是不相容的,曾经工人们集中在写字楼,网关压力很小,如今工人们居家办公,随时随地接入,网关就变成瓶颈了。
周末写篇端到端性能和安全的短文。
浙江温州皮鞋湿,下雨进水不会胖。
创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖以上是关于时间换空间的TCP的主要内容,如果未能解决你的问题,请参考以下文章