Chart4
====连接管理====
一、TCP连接
1. Http和Https的网络协议栈:
2. Http在TCP/IP传输中的位置:
3. Http怎么利用TCP传输:
二、Http依赖的TCP性能(延时)简介
1. TCP连接建立握手:安全的三次握手
2. TCP慢启动拥塞控制
(1)什么是慢启动:TCP连接会随时间进行自我“调谐”,初期将会限制连接的最大速度,到后期再逐渐加快。
(2)该原因导致Http存在持久连接(Keep Live).
3. 数据聚焦的Nagle算法(应用层的缓存)
(1)问题:小的Http报文1.可能五无法填满一个分组(需等待),2.将等待确认分组(原因4.)
(2)解决办法:设置TCP的TCP_NODELAY,以非阻塞方式传输
4. 用于捎带确认的TCP延迟确认算法
(1)看看这边的一个说法:每个TCP段都有一个序列号和数据完整性校验和,每个段的接受者收到完好的段时,
都会向发送者回送小的确认分组。如果发送者没有在指定的窗口时间内收到确认信息,发送者就认为已经被破坏,
将进行重发数据。(SYN/SYN + ACK)是这样的原因么?
(2)HTTP具有双峰特性的请求-应答行为降低了捎带信息的可能。
(3)你自然可以对TCP的参数进行设置。
5. TIME_WAIT时延和端口耗尽
(1)产生原因:当某个TCP端点关闭TCP连接时,会在内存维护一个小的控制块,用来记录最近所关闭的IP和端口号,
这类信息将保存2分钟左右。因此,两分钟内,你不能创建两个具有一样IP和端口号的连接。
假设:源端口数量:(65536 - 1000) / 120 = 537,意味着2分钟内每秒钟接受超过537的连接,将产生这个问题。
(2)解决办法:增加服务器数量,建立分发系统,或者使用虚拟IP。