前言
TCP协议四次挥手的过程
什么是TIME_WAIT状态
TCP协议滑动窗口的工作过程
TCP协议是如何保证可靠传输的
- 第一次:FIN=1,主动请求中断连接
- 第二次:ACK=1、ack=u 1,表示确认收到中断报文
- 第三次:FIN=1、ACK=1、seq=w、ack=u 1,请求中断连接
- 第四次:ACK=1、seq=u 1、ack=w 1,确认中断连接
TIME-WAIT状态
TIME-WAIT状态指的是第四次挥手后,主动中断连接方所处的状态,这个状态下,主动方尚未完全关闭TCP连接,端口不可复用。2MSL 总时间是4分钟 MSL(Max Segment Lifetime):最长报文段寿命 RFC 793标准建议设置为2分钟
为什么TIME-WAIT状态需要等待2MSL?
最后一个报文没有确定 确定最后一个ACK报文一定能到达对方 2MSL时间内,如果没有到达对方,那么对方会重新进行第三次挥手,确保连接正常释放
1.确保当前连接所有的报文都已经过期
UDP vs TCP
停止-等待协议
连续ARQ(Automatic Repeat reQuest)协议
- 停止-等待协议是最简单的可靠传输协议
- 停止-等待协议对信道的利用效率不高
既然单个发送、确认的效率低,是否可以批量发送和确认呢?
TCP协议-窗口
- 2字节——[0,65535]
- 窗口指明允许对方发送的数据量
- 数据缓冲空间有限,不能无限缓存数据
滑动窗口
- 窗口指明允许对方发送的数据量
- TCP协议是传输数据流的协议,通过TCP协议头部序列号、确认号以及窗口等字段的控制,可以在有限的传送资源下,接收几乎无限的数据