一、TFO背景 当前web和web-like应用中一般都是在三次握手后开始数据传输,相比于UDP,多了一个RTT的时延,即使当前很多应用使用长连接来处理这种情况,但是仍然由一定比例的短连接,这额外多出的一个RTT仍然对应用的时延有非常大的影响。TFO就是在这种背景下面提出来 ...
这部分内容涉及较多linux实现,可以跳过。 一 listen系统调用对backlog的处理 当socket处于LISTEN或者CLOSED状态时,fastopen队列的长度可以通过TCP FASTOPEN选项进行设置。 对于listen的入参backlog,内核会限制backlog min backlog, proc sys net core somaxconn 如果当前打开了TFO的serve ...
2016-11-07 13:44 2 1776 推荐指数:
一、TFO背景 当前web和web-like应用中一般都是在三次握手后开始数据传输,相比于UDP,多了一个RTT的时延,即使当前很多应用使用长连接来处理这种情况,但是仍然由一定比例的短连接,这额外多出的一个RTT仍然对应用的时延有非常大的影响。TFO就是在这种背景下面提出来 ...
在前面的内容中我们介绍了TCP连接管理中最常见的三次握手方式和四次挥手的方式。但是有可能A和B两端同时执行主动打开并连接对方或者同时执行主动关闭连接(尽管发生这种情况的可能性比较低低),这个时候的流程就略有不同了。下面我们分别对同时打开(simultaneous open)连接 ...
一、TCP选项概述 在前面介绍TCP头的时候,我们说过tcp基本头下面可以带有tcp选项,其中有些选项只能在连接过程中随着SYN包发送,有些可以延后。下表汇总了一些tcp选项 其中我标记为红色的部分是常见的TCP选项,我们仅针对这些红色的TCP选项进行介绍(主要是非红色 ...
我们在介绍TCP头的时候,提到过其中有个RST标志位。当一个TCP报文中这个标志位打开的时候,我们叫做reset包(严格的说应该叫做reset段,但是很多时候段包帧并不加以区分)或者简单称呼为reset、RST。通常reset的产生是由于一个异常包导致,reset一般会导致TCP ...
TCP的运输连接管理 TCP是面向连接的协议,有三个阶段:连接建立、数据传送 和 连接释放。运输连接的管理就是使运输连接的简历和释放都能正常地进行。 在TCP连接建立过程中要解决一下三个问题: 1、 要使每一方都能够确知对方的存在: 所以需要三次握手。 2、 要允许双方协商一些参数 ...
一、TCP连接的ISN 之前我们说过初始建立TCP连接的时候的系列号(ISN)是随机选择的,那么这个系列号为什么不采用一个固定的值呢?主要有两方面的原因 防止同一个连接的不同实例(different instantiations ...
TCP连接管理 每一条 TCP 连接有两个端点。TCP 连接到端口叫做套接字(socket)或插口。端口拼接到 IP 地址(IP地址:端口号)即构成了套接字。 每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定 或者可以是这样一种说法:一个tcp连接由一个连接四元组 ...
在前面部分我们我们分别介绍了三次握手、四次挥手、同时打开和同时关闭,TCP连接还有两种场景分别是半打开 (Half-Open) 连接和半关闭 (Half-Close) 连接。TCP是一个全双工( Full-Duplex)协议,因此这里的半连接"半"字就是相对于全双工的"全"来说 ...