linux kernel 3.6版本网络子系统新特性 - TCP

一,TCP fast open 客户端实现

     这个特性是google提出并主导开发的。实现的原理是对于客户端允许发送syn请求时携带数据, 对于服务器端收到带有数据的syn请求后,可以立刻提交给用户层,并发送ack, 这样节省一个RTT时间。  

     这个特性对于短连接的业务类型比较有很大的帮助,据测试结果有4%~41%的性能提升。

    这个特性需要客户端和服务器端的os都支持,并且未知window何时才支持这个特性。
    另外,这个特性需要业务用户层代码相应的调整。估计在全网使用开还需要一定时间。
    但是,对于手持设备,特别是基于android系统智能机而言,随着android内核分支逐渐向主线靠拢,

    可以预见最先开疆扩土,并得到这个特性带来收益的将是基于linux的android上应用。


二,TCP small queues TCP小队列。
     这个机制是用来针对缓存膨胀(bufferbloat)意思是在tcp传输路径中有中很多的缓存,比如socket buffer,qdisc的队列buffer,网卡驱动层也有队列buffer。  而这些buffer会缓存住数据包,但是对于tcp协议层而言,可能已经认为数据包已经发送到网络中,会增加数据包传输的rtt时间,而可以自定义的socket buffer 大小,qdisc队列长度,会膨胀放大延时。因此,可以通过tcp_limit_output_bytes这个proc参数让用户限制qdisc的队列和驱动层队列中所有数据包的总字节数, 默认是131072字节。  
    对于同等的带宽,启动这个功能后,延时变化情况:
   1000M网卡: 小于 1ms on Gbit (之前是 50ms with TSO)
   100M网卡: 小于 8ms on 100Mbit (之前是 132 ms)
 
    针对缓存膨胀的其他方法是codel qdisc策略,以及基于字节的bql qdisc策略。
    参考:https://lwn.net/Articles/507065/ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值