**TCP(Transmission Control Protocol,传输控制协议)UDP(User Datagram Protocol,用户数据报协议)是传输层的两种核心协议,它们在数据传输中扮演着不同的角色,适用于不同的应用场景
1 TCP
TCP 是一种面向连接的协议。 在数据传输之前,通信双方必须通过“三次握手”建立连接。 数据传输完成后,通过“四次挥手”断开连接。 TCP 提供可靠传输,确保数据的完整性、顺序性、无重复
2 UDP(用户数据报协议)
UDP 是一种无连接的协议。 数据发送前不需要建立连接,直接发送数据报文。 UDP 不保证数据的可靠传输,数据可能会丢失、乱序、重复。
TCP的通信机制
三次握手建立连接 客户端发送 SYN(同步)报文,请求建立连接。 服务器响应 SYN-ACK(同步确认)报文,确认请求并发送自己的同步号。 客户端发送 ACK(确认)报文,连接建立成功。
四次挥手断开连接 客户端发送 FIN(结束)报文,请求断开连接。 服务器发送 ACK 报文,确认收到 FIN。 服务器发送 FIN 报文,请求断开连接。 客户端发送 ACK 报文,确认收到 FIN,连接关闭。
TCP的可靠性机制 确认应答(ACK)机制:接收方收到数据后发送确认报文。 超时重传机制:如果发送方未收到确认报文,会重新发送数据。
UDP的通信机制
通信流程 客户端创建套接字(Socket)。 客户端发送数据报文,直接指定目标IP和端口。 服务器接收数据报文,处理后可选择是否回复。 通信结束,无需关闭连接。 UDP 通信简单高效,但不保证数据的可靠性和顺序性。
UDP的适用场景 实时性要求高的场景:如 IP 电话、视频会议、在线游戏。 广播/组播场景:如网络直播、多播通信。 小数据量通信:如 DNS 查询、SNMP(简单网络管理协议)