在软件设计师的备考过程中,计算机网络是一个重要的部分,尤其是传输层的知识。本文将围绕 TCP 和 UDP 协议的特点、报文格式,TCP 的三次握手和四次挥手过程,以及流量控制和拥塞控制机制展开详细讲解。
一、TCP 和 UDP 协议的特点
(一)TCP 协议
TCP 是面向连接的、可靠的传输协议。
- 可靠性:通过序列号、确认应答、重传机制等确保数据的可靠传输。
- 面向连接:通信前需要建立连接,通信结束后释放连接。
(二)UDP 协议
UDP 是无连接的、不可靠的传输协议。
- 不可靠:不保证数据的有序性和完整性,也不进行重传。
- 低开销:没有复杂的连接建立和释放过程,传输效率高。
二、报文格式
(一)TCP 报文格式
包括源端口、目的端口、序列号、确认号、数据偏移、保留位、控制位(URG、ACK、PSH、RST、SYN、FIN)、窗口大小、校验和、紧急指针等字段。
(二)UDP 报文格式
相对简单,包含源端口、目的端口、长度和校验和。
三、TCP 三次握手过程
(一)第一次握手
客户端发送一个 SYN 包(syn=x)给服务器,并进入 SYN_SENT 状态,等待服务器确认。
(二)第二次握手
服务器收到 SYN 包,确认客户的 SYN(ack=x+1),同时发送自己的 SYN 包(syn=y),即 SYN+ACK 包,此时服务器进入 SYN_RCVD 状态。
(三)第三次握手
客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=y+1),此包发送完毕,客户端和服务器都进入 ESTABLISHED 状态,完成三次握手。
四、TCP 四次挥手过程
(一)第一次挥手
客户端发送一个 FIN,用来关闭客户端到服务器的数据传送,客户端进入 FIN_WAIT_1 状态。
(二)第二次挥手
服务器收到 FIN 后,发送一个 ACK 给客户端,确认序号为收到序号+1,服务器进入 CLOSE_WAIT 状态。
(三)第三次挥手
服务器发送一个 FIN,用来关闭服务器到客户端的数据传送,服务器进入 LAST_ACK 状态。
(四)第四次挥手
客户端收到 FIN 后,发送一个 ACK 给服务器,确认后客户端进入 TIME_WAIT 状态,等待足够的时间确保服务器收到 ACK 后,连接关闭。
五、流量控制和拥塞控制机制
(一)流量控制
通过滑动窗口机制实现,接收方通过通告窗口大小来控制发送方的发送速率,防止接收方缓冲区溢出。
(二)拥塞控制
包括慢启动、拥塞避免、快速重传和快速恢复等算法。
- 慢启动:初始时发送方发送少量报文,根据接收方的确认逐步增大发送窗口。
- 拥塞避免:当达到一定阈值后,进入拥塞避免阶段,线性增长发送窗口,避免网络拥塞。
- 快速重传:接收方收到连续三个冗余 ACK 时,立即发送确认,要求发送方重传这个报文段。
- 快速恢复:发送方收到连续三个冗余 ACK 时,进入快速恢复阶段,通过一定算法调整发送窗口,直到再次收到连续三个冗余 ACK。
在备考过程中,对于这些知识点,要多做练习题,通过实际案例加深理解。同时,可以绘制流程图来帮助记忆 TCP 的握手和挥手过程,以及流量控制和拥塞控制的流程。只有扎实掌握这些内容,才能在考试中应对自如。
总之,计算机网络传输层的知识是软件设计师考试的重点,希望以上的讲解能帮助大家更好地备考。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!