TCP简介
TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP服务端与客户端之间的通信遵循以下基本原理:
1. **建立连接(三次握手)**:
- 客户端向服务器发送一个SYN(同步序列编号)报文段,请求建立连接。
- 服务器接收到SYN后,会以一个SYN-ACK(同步确认)报文段响应客户端,表示同意建立连接。
- 客户端接收到服务器的SYN-ACK后,再回传一个ACK(确认)报文段给服务器,告知服务器已准备好开始数据传输。
2. **数据传输**:
- 连接建立后,双方可以进行数据交换。TCP保证数据包按序到达,并且提供流量控制和拥塞控制机制来避免网络过载。
- 每个发送的数据段都有一个序列号,接收方可以根据这个序列号重组数据包。
- 接收方在接收到数据后会发送ACK给发送方,表明已经成功接收了多少数据。
- 如果某个数据段丢失或损坏,发送方将重发该数据段,直到正确接收到对应的ACK为止。
3. **终止连接(四次挥手)**:
- 当一方完成数据发送后,它可以发送FIN(结束)报文段给另一方,表示它不再有数据要发送了。
- 接收FIN的一方会发送一个ACK给对方,确认收到了FIN。
- 接收到ACK的一方等待一段时间确保对方已经接收到自己的FIN后,也会发送一个FIN给对方。
- 最后,接收第二个FIN的一方发送ACK给对方,然后双方都关闭连接。
4. **可靠性**:
- TCP使用校验和、序列号、确认应答(ACK)、超时重传等机制来确保数据传输的可靠性。
- 如果在一个设定的时间内没有收到确认,TCP会自动重传数据包。
5. **流量控制**:
- 使用滑动