主题:TCP的一些核心机制
TCP连接
三次握手
三次握手用于创建TCP连接。
- SYN
客户端选择一个随机序列号x,并发送一个SYN分组,其中还可能包含其他TCP标志和选项。 - SYN ACK
服务端给x加1,并选择自己的一个随机序列号y,追加自己的标志和选项,然后返回给响应。 - ACK
客户端给x(发送x+1)和y加1(发送y+1),并发送握手期间的最后一个ACK。
四次握手
四次握手用于关闭TCP连接。
- FIN: 客户端应用进程发起关闭连接命令。FIN=1
- ACK:服务端表示确认
- FIN:服务端发送“可以终止连接”的FIN报文,FIN=1
- ACK:客户端表示接受,即断开连接。
拥塞预防及控制
可能是往返时间超过了所有主机汇总的最大中断间隔(导致重传),于是相应的主机会在网络中制造越来越多的数据报副本,使得整个网络陷入瘫痪。
流量控制
流量控制是一种预防发送端过多地向接收端发送数据的机制,否则,接收端可能因为忙碌、负载过重会缓冲区既定而无法处理。流量控制是一个速度匹配服务,即发送方的发送速率和接收方的接收速率相匹配
接受窗口(rwnd):
如果其中一端跟不上数据传输,那它可以通过向发送端通告一个较好的窗口。接入窗口为0,则意味着由应用层先清空缓冲区,才能再接受剩余数据。这个过程贯穿于每个TCP连接的整个生命周期:每个ACK分组都会携带最新的wnd值,以便两端动态调整数据流速,使之适应发送端和接收端的容量以及处理能力。慢启动
(未完待续)