计算机网络面试题, TCP 是用来解决什么问题?
计算机网络面试题, TCP 是用来解决什么问题?
QA
Step 1
Q:: TCP 是用来解决什么问题的?
A:: TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议。它主要用来解决网络数据传输中丢包、乱序、数据重复和流量控制等问题。通过三次握手建立可靠连接,保证数据传输的顺序性和完整性,并使用确认机制和重传策略来保证数据包不会丢失或重复。
Step 2
Q:: TCP 和 UDP 的区别是什么?
A:: TCP 是一种面向连接的协议,提供可靠的数据传输服务,适用于要求高可靠性的场景,如文件传输、电子邮件等。UDP(User Datagram Protocol,用户数据报协议)是一种无连接的协议,提供较快但不可靠的数据传输服务,适用于对实时性要求高但对数据传输完整性要求较低的场景,如视频流、VoIP 等。
Step 3
Q:: TCP 的三次握手过程是怎样的?
A:: TCP 的三次握手是建立连接的过程:1. 客户端发送一个 SYN 包到服务器,表示请求建立连接;2. 服务器收到 SYN 包后,回复一个 SYN+ACK 包,表示同意连接请求并要求客户端确认;3. 客户端收到 SYN+
ACK 包后,发送一个 ACK 包,表示确认收到服务器的回复,连接正式建立。
Step 4
Q:: TCP 为什么需要三次握手?
A:: 三次握手的目的是为了确认双方的接收和发送能力都正常,以避免因网络中出现延迟或重复的连接请求而导致错误的连接建立。通过三次握手,双方可以确保通信的可靠性并同步初始序列号,确保数据传输的顺序性。
Step 5
Q:: TCP 的四次挥手过程是怎样的?
A:: TCP 的四次挥手是断开连接的过程:1. 终止方发送 FIN 包请求关闭连接;2. 接收方收到 FIN 包后,回复一个 ACK 包,表示确认请求,但此时连接未完全关闭;3. 接收方在传输完剩余数据后,发送 FIN 包请求关闭连接;4.
终止方收到 FIN 包后,回复一个 ACK 包,表示确认连接关闭。
Step 6
Q:: TCP 如何实现流量控制?
A:: TCP 通过滑动窗口机制实现流量控制。滑动窗口的大小由接收方通告,发送方根据窗口大小决定发送的数据量,从而避免因发送过快导致接收方缓存溢出。发送方会根据接收方的 ACK 包中的窗口大小调整数据发送速率。