TCP优化学习笔记(一)

TCP协议优化与性能提升

TCP协议存在的问题

  • TCP三次握手增加了整整一次的往返时间;
  • TCP慢启动被应用到每一次的新连接;
  • TCP流量及拥塞控制会影响所有连接的吞吐量。
  • TCP的吞吐量由当前拥塞窗口大小确定。

现代高速网络中的TCP连接的数据传输速度受到接收端和发送端的往返时间的限制。此外,延迟依旧受限于光速,而且已经限定在其最大值的一个很小的常数因子之内。所以,大多数情况下,TCP的瓶颈都是延迟,而非带宽。

延迟

延迟是消息或分组从起点到终点经历的时间。

影响延迟的因素:

  • 传播延迟:消息从发送端到接收端需要的时间,与信号传播距离和速度有关。
  • 传输延迟:把消息中的所有比特转移到链路中需要的时间,与消息长度和链路速率有关。
  • 处理延迟:处理分组首部、检查位错误及确定分组目标所需的时间。
  • 排队延迟:到来的分组排队等待处理的时间。

以上延迟的时间总和,就是客户端到服务器的总延迟时间。

TCP Fast Open

这是减少新建TCP连接带来性能损失的一种机制。通过握手开始时的 SYN 包中的 TFO cookie(一个 TCP 选用项)来验证一个之前连接过的客户端。如果验证成功,它可以在三次握手最终的 ACK 包收到之前就开始发送数据,这样便跳过了一个绕路的行为,更在传输开始时就降低了延迟

三次握手带来的延迟使得每次创建一个新TCP连接都要付出巨大代价,所以这里是提升TCP应用性能的关键。

服务器配置调优

  • 增大TCP的初始拥塞窗口:加大拥塞窗口能够让TCP在第一次往返中就可以传输较多的数据,而随后的速度提升明显。对于突发性的短暂连接,这是一个很重要的优化的点。
  • 慢启动重启:在连接空闲时禁用慢启动可以改善瞬时发送数据的长TCP连接的性能。
  • 窗口缩放(RFC 1323):启用窗口缩放可以增大最大接收窗口的大小,可以让高延迟的连接达到更好的吞吐量。
  • TCP快速打开:在某些条件下,允许在第一个SYN分组中发送应用程序数据。不过需要发送端和客户端同时支持TFO(TCP快速打开)

应用程序行为调优

  • 消除不必要的数据传输,如不必要的资源下载后者通过压缩算法将传送的数据量降到最低;
  • 实现数据的短距离传输,如采用CDN技术来减少网络往返的延迟,从而显著提升TCP的性能;
  • 尽可能重用TCP连接,把慢启动和其他拥塞控制机制的影响降低到最小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值