计算机网络传输层—TCP连接的建立和终止(详解三次握手四次挥手)
TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。
TCP的特点:
- TCP提供客户与服务器之间的连接,是基于连接的数据传输协议,因此是一对一的
- TCP提供可靠性,数据可以无差错、不丢失、不重复、按需到达
- TCP提供拥塞控制和流量控制,保证数据传输的安全性
- TCP是全双工的,在一个连接上的任意时刻在进出两个方向上既可以发送数据也可以接收数据
- TCP 首部长度较长,会有一定的开销,首部在没有使用「选项」字段时是
20
个字节
TCP的头部格式:
- 源端口和目标端口号:用于多路复用和多路分解来自上层应用的数据
- 序列号:序列号是实现可靠性的关键。在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每个数据包都有响应的序列号,用于标识该数据包,从而实现有序、不重复、重发等机制。
- 确认应答号:指下一次「期望」收到的数据的序列号,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。也是实现可靠性传输的关键
- ACK:该位为 1 时