linux kernel 3.6版本网络子系统新特性 - TCP
来源:互联网 发布:final cut por mac 编辑:程序博客网 时间:2024/05/22 12:37
一,TCP fast open 客户端实现
这个特性是google提出并主导开发的。实现的原理是对于客户端允许发送syn请求时携带数据, 对于服务器端收到带有数据的syn请求后,可以立刻提交给用户层,并发送ack, 这样节省一个RTT时间。
这个特性对于短连接的业务类型比较有很大的帮助,据测试结果有4%~41%的性能提升。
这个特性需要客户端和服务器端的os都支持,并且未知window何时才支持这个特性。另外,这个特性需要业务用户层代码相应的调整。估计在全网使用开还需要一定时间。
但是,对于手持设备,特别是基于android系统智能机而言,随着android内核分支逐渐向主线靠拢,
可以预见最先开疆扩土,并得到这个特性带来收益的将是基于linux的android上应用。
这个机制是用来针对缓存膨胀(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/
- linux kernel 3.6版本网络子系统新特性 - TCP
- linux kernel 3.6版本网络子系统新特性 - TCP
- Linux内核4.4版本带来的网络新特性
- linux 网络子系统之----TCP基础协议
- Linux Kernel 2.6.35rc6 新特性
- Linux kernel input子系统
- Linux kernel 内存子系统
- Linux Kernel input 子系统初始化
- linux kernel 网络协议栈之xps特性详解
- 配置 linux kernel 特性
- Linux子系统系列-网络
- LINUX网络子系统
- Linux网络子系统
- linux 网络子系统
- Linux网络子系统
- linux网络子系统分析
- linux内核网络子系统
- linux网络子系统
- Enterprise Architect 笔记
- poj2388
- LINQ基本子句
- Javascript实现真实字符串剩余字数提示的实例代码
- C语言判断某年是否为瑞年
- linux kernel 3.6版本网络子系统新特性 - TCP
- 上海云计算课程——上海市信息技术培训中心云计算工程师课程 云安全 云平台 云计算技术 云计算概念
- 编程之美--重建二叉树
- JFreeChat实例
- 在ubuntu下烧写映像文件到SD卡--基于三星210开发板
- 冒泡排序
- VLC media player ActiveX控件制作
- 在ubuntu下烧写映像文件到nand--基于三星210开发板
- 企业部署 之 无线部署OTA