计算机网络面试题, TCP 是用来解决什么问题?
计算机网络面试题, TCP 是用来解决什么问题?
QA
Step 1
Q:: TCP 是用来解决什么问题?
A:: TCP(Transmission Control Protocol)是传输控制协议,用于解决网络通信中的可靠性传输问题。TCP 通过提供数据包的顺序性、错误检测和纠正、流量控制以及拥塞控制,确保数据从发送方到接收方的完整性和准确性。TCP 实现了一个可靠的、双向的字节流,确保所有的数据包都能按顺序到达并且没有丢失或重复。
Step 2
Q:: TCP 如何实现可靠传输?
A:: TCP 实现可靠传输主要依赖于以下机制:1. 三次握手:在数据传输前,TCP 通过三次握手建立连接,确保双方准备好进行通信。2. 序列号:每个数据包都带有序列号,接收方使用序列号来重组数据包,确保数据按顺序到达。3. 确认机制:接收方接收到数据包后,发送确认消息(ACK)给发送方。4. 超时重传:如果发送方在一定时间内没有收到 ACK,认为数据包丢失,重新发送。5. 流量控制:通过滑动窗口机制,控制发送方发送数据的速率,避免接收方缓冲区溢出。6.
拥塞控制:通过慢启动、拥塞避免、快重传和快恢复算法,控制网络拥塞,优化传输效率。
Step 3
Q:: TCP 和 UDP 的区别是什么?
A:: TCP 和 UDP 都是传输层协议,但它们有显著不同:1. TCP 是面向连接的协议,需要在传输数据前建立连接,而 UDP 是无连接的协议,不需要建立连接。2. TCP 提供可靠的数据传输,确保数据不丢失、不重复且按顺序到达,而 UDP 是不可靠的,数据包可能丢失、重复或无序。3.
TCP 实现了流量控制和拥塞控制,适合对数据传输可靠性要求高的场景(如文件传输、电子邮件),而 UDP 传输速度快、开销小,适合对实时性要求高但可以容忍数据丢失的场景(如视频流、在线游戏)。
Step 4
Q:: TCP 的三次握手和四次挥手分别是什么?
A:: 三次握手:是指 TCP 建立连接时,客户端和服务端之间交换三个报文,以确认双方的接收和发送能力。1. 客户端发送 SYN 报文,表示请求建立连接。2. 服务端回复 SYN-ACK 报文,表示同意连接请求,并确认已收到客户端的 SYN。3. 客户端发送 ACK 报文,表示确认收到服务端的 SYN-ACK,此时连接建立成功。四次挥手:是指 TCP 断开连接时,客户端和服务端之间交换四个报文,确保双方都能正确结束传输。1. 客户端发送 FIN 报文,表示请求断开连接。2. 服务端回复 ACK 报文,表示确认收到断开请求,但可能仍有数据要传输。3. 服务端发送 FIN 报文,表示数据传输完毕,请求断开连接。4.
客户端发送 ACK 报文,确认收到服务端的 FIN,此时连接断开。
Step 5
Q:: TCP 滑动窗口机制的原理是什么?
A:: 滑动窗口机制是一种流量控制手段,允许发送方在接收方没有发送确认消息之前,继续发送一定数量的数据包。发送窗口的大小由接收方通知发送方,并根据接收方的处理能力动态调整。滑动窗口确保了数据的高效传输,避免了网络拥塞,也防止了接收方的缓冲区溢出。滑动窗口的主要作用是在保证可靠传输的前提下,最大限度地利用网络带宽。