tcp fast open
2016-06-12 16:27
513 查看
TFO[1]是Linux 内核3.6版本引入的新特性,相关标准由Google提出,仍旧是RFC的草案[2],非正式标准。作者是Yuchung Cheng,Google工程师,他从加州大学圣迭戈分校获得博士学位,从国立台湾大学[3](NTU,新加坡也有一个NTU[4],美国好像也有一个)获得学士学位,
简单说明:客户端通过TCP连接到服务器时,可以在SYN报文携带数据,这将提升TCP的效率(4%-41%)[5]。前提是在这个SYN报文中,有代表客户端的在之前的TCP连接中服务器产生的cookie字段。在客户端和服务器第一次的TCP连接创建过程中,是通常的三次握手过程,但是服务器会产生cookie作为后续TCP连接的认证信息,这就避免了恶意攻击。
对于客户端用户程序来说,可直接使用sendto等带有对端地址的系统调用发送数据,如果是第一次连接(或者cookie过期),则退化到正常三次握手过程,如果是非第一次连接,则可以继续创建连接且能够直接将数据交付给应用层处理。
[1] http://lwn.net/Articles/508865/
[2] http://tools.ietf.org/html/draft-ietf-tcpm-fastopen-02
[3] http://www.ntu.edu.tw/
[4] http://www.ntu.edu.sg
[5] http://conferences.sigcomm.org/co-next/2011/papers/1569470463.pdf
简单说明:客户端通过TCP连接到服务器时,可以在SYN报文携带数据,这将提升TCP的效率(4%-41%)[5]。前提是在这个SYN报文中,有代表客户端的在之前的TCP连接中服务器产生的cookie字段。在客户端和服务器第一次的TCP连接创建过程中,是通常的三次握手过程,但是服务器会产生cookie作为后续TCP连接的认证信息,这就避免了恶意攻击。
对于客户端用户程序来说,可直接使用sendto等带有对端地址的系统调用发送数据,如果是第一次连接(或者cookie过期),则退化到正常三次握手过程,如果是非第一次连接,则可以继续创建连接且能够直接将数据交付给应用层处理。
[1] http://lwn.net/Articles/508865/
[2] http://tools.ietf.org/html/draft-ietf-tcpm-fastopen-02
[3] http://www.ntu.edu.tw/
[4] http://www.ntu.edu.sg
[5] http://conferences.sigcomm.org/co-next/2011/papers/1569470463.pdf
相关文章推荐
- Java TCP/IP Socket,基于NIO的TCP通信
- Nginx添加SSL证书并设置自动http转换HTTPS
- linux网络编程之select
- Linux[虚拟机安装centOS] 配置网络服务
- linux下C语言socket网络编程简例
- http://www.ruanyifeng.com/blog/2013/07/gpg.html
- Linux网络通信(二)Socket编写TCP/UDP
- 网络编程之非阻塞socket的连接
- Android 6.0 sdk 23 中使用HttpClient
- 基于SNMP网络管理系统的实现
- 线程与网络编程(第四节:缓冲区与按字节传递)
- 关于HTTP中的keep-alive
- Photon中文教程 3.0 RC9
- 关于HTTP中的keep-alive
- IP地址、子网掩码、网关
- 查看HTTP并发连接数
- tcpdump 高级过滤
- 利用回调接口,写一个专门等待网络请求的dialog提示框
- http抓包工具
- 获取网络状态,区分2G3G4GWIFI等,非reachability