## TCP协议
### 概述
TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它在互联网协议族(Internet Protocol Suite)中属于传输层,主要用于数据在网络中的可靠传输。
### 主要特点
- **面向连接**:在数据传输前,TCP先建立连接,传输完成后释放连接。
- **可靠性**:通过序列号、确认应答、重传机制等确保数据的可靠传输。
- **数据排序**:TCP保证数据按照发送顺序到达接收方。
- **流量控制**:避免发送方过快发送数据,导致接收方来不及处理。
- **拥塞控制**:当网络拥塞时,减少数据的发送,避免网络崩溃。
### 工作原理
1. **建立连接(三次握手)**:
- 第一次握手:客户端发送SYN报文到服务器,并进入SYN_SENT状态,等待服务器确认。
- 第二次握手:服务器收到SYN报文后,会应答一个SYN+ACK报文,表示已经收到客户端的请求,并进入SYN_RCVD状态。
- 第三次握手:客户端收到服务器的SYN+ACK报文后,发送一个ACK报文,确认连接建立,服务器收到后,也进入ESTABLISHED状态。
2. **数据传输**:
- 数据被分割成小的数据包(段)进行传输。
- 每个数据包包含序列号,用于标识和排序。
- 接收方收到数据后,发送ACK确认报文,如果发送方未收到确认,会重传数据。
3. **结束连接(四次挥手)**:
- 第一次挥手:客户端发送FIN报文,关闭客户端到服务器的数据传输,客户端进入FIN_WAIT_1状态。
- 第二次挥手:服务器收到FIN报文后,发送ACK确认报文,进入CLOSE_WAIT状态。
- 第三次挥手:服务器发送FIN报文,关闭服务器到客户端的数据传输,进入LAST_ACK状态。
- 第四次挥手:客户端收到FIN报文后,发送ACK确认报文,进入TIME_WAIT状态,等待一段时间以确保服务器收到最后的ACK报文,然后关闭连接。
### 应用场景
TCP广泛应用于需要可靠传输的场景,如网页浏览(HTTP/HTTPS)、文件传输(FTP)、电子邮件(SMTP、POP3、IMAP)等。
HCIA的TCP协议笔记
于 2024-07-17 16:50:32 首次发布