TCP面试考点:数据传输与控制
2023-09-15 04:52:09
1. TCP连接的建立
TCP连接的建立是一个三次握手的过程,具体步骤如下:
- 客户端向服务器发送一个SYN报文,其中包含了客户端的初始序号(ISN)。
- 服务器收到SYN报文后,向客户端发送一个SYN+ACK报文,其中包含了服务器的初始序号(ISN)和对客户端ISN的确认号(ACK)。
- 客户端收到SYN+ACK报文后,向服务器发送一个ACK报文,其中包含了对服务器ISN的确认号(ACK)。
三次握手完成之后,TCP连接就建立起来了,双方就可以开始数据传输了。
2. 数据传输
TCP数据传输采用滑动窗口机制,滑动窗口是指发送方和接收方可以发送和接收的数据字节数。发送方和接收方各自维护一个滑动窗口,滑动窗口的大小由拥塞控制算法决定。
当发送方有数据要发送时,它会将数据放入滑动窗口中。如果滑动窗口已满,发送方就需要等待接收方发送确认报文,确认报文表示接收方已经收到了数据。当接收方收到数据后,它会将数据放入滑动窗口中,然后向发送方发送确认报文。
3. 流量控制
TCP流量控制是指发送方和接收方通过滑动窗口机制来控制数据传输速率,以避免网络拥塞。
当接收方收到数据时,它会将数据放入滑动窗口中,然后向发送方发送确认报文。如果接收方来不及处理数据,它可以向发送方发送一个窗口关闭报文,要求发送方停止发送数据。当接收方处理完数据后,它会向发送方发送一个窗口打开报文,要求发送方继续发送数据。
4. 拥塞控制
TCP拥塞控制是指发送方和接收方通过各种算法来控制数据传输速率,以避免网络拥塞。
TCP拥塞控制算法有很多种,最常见的是慢启动、拥塞避免和快重传。慢启动算法在连接建立后,会逐渐增加发送窗口的大小,以提高数据传输速率。拥塞避免算法在检测到网络拥塞后,会降低发送窗口的大小,以避免网络拥塞进一步恶化。快重传算法在检测到数据丢失后,会快速重传丢失的数据,以提高数据传输效率。
5. TCP三次握手和四次挥手
TCP三次握手和四次挥手是TCP连接建立和断开的过程。
TCP三次握手是建立TCP连接的过程,具体步骤如下:
- 客户端向服务器发送一个SYN报文,其中包含了客户端的初始序号(ISN)。
- 服务器收到SYN报文后,向客户端发送一个SYN+ACK报文,其中包含了服务器的初始序号(ISN)和对客户端ISN的确认号(ACK)。
- 客户端收到SYN+ACK报文后,向服务器发送一个ACK报文,其中包含了对服务器ISN的确认号(ACK)。
TCP四次挥手是断开TCP连接的过程,具体步骤如下:
- 客户端向服务器发送一个FIN报文,表示客户端已经没有数据要发送了。
- 服务器收到FIN报文后,向客户端发送一个ACK报文,表示服务器已经收到了客户端的FIN报文。
- 服务器向客户端发送一个FIN报文,表示服务器已经没有数据要发送了。
- 客户端收到服务器的FIN报文后,向服务器发送一个ACK报文,表示客户端已经收到了服务器的FIN报文。
四次挥手完成后,TCP连接就断开了。