TCP & UDP
本篇记录 TCP 与 UDP 常用知识点。
- TCP 连接建立与断开
- TCP 与UDP 区别
[TOC]
TCP 连接建立与断开
TCP 建立连接和断开连接需要两个节点间进行多次消息传输,通常建立连接需要三次、断开连接需要四次。
三次握手🤝
TCP 建立连接的过程需要进行三次消息通信,俗称”三次握手“。
- 客户端向服务器发起建立连接的请求。
- 服务器收到客户端的请求后,如果同意建立连接,则回发给客户端确认报文,同时带上和客户端建立连接的请求。
- 客户端收到服务器的确认报文后,完成客户端这边连接的建立,并回应给服务器,客户端已就绪,可以和服务器建立连接。
- 服务器收到客户端的确认响应后,完成服务器这边连接的建立。
TCP 三次握手重在理解,至于三次握手过程中报文携带的信息可参考下图(图源来自于CSDN@IT界的泥石流):
TCP连接建立
四次挥手👋🏻
TCP 是全双工模式工作,所以断开连接时,需要连接双方都要确认是否已准备好断开,从而导致了 TCP 连接断开需要四次信息通信,俗称”四次挥手“。
- 客户端发起断开连接请求,告知服务器断开连接,客户端无新的数据发送。
- 服务器收到客户端断开连接请求后,回应客户端确认关闭,但是服务器还有收尾工作正在处理。
- 等服务器完成收尾工作时,则发送消息给客户端,服务器端已准备关闭连接。
- 客户端收到服务器的消息后,回应给服务器,确认客户端这边连接已关闭。
- 服务器收到客户端确认关闭消息,关闭服务器端连接。
断开连接四次挥手发送报文携带的信息参考下图。(图源开源博客@运维小白)
TCP连接断开
TCP 与 UDP 的区别
- TCP 是面向连接的传输协议,而 UDP 是无连接的传输协议。
- TCP 传输字节流数据,而 UDP 传输报文数据。
- TCP 只能一对一通信,而 UDP 可以一对一、一对多、多对一、多对多各种通信。
- TCP 是可靠传输,有丢失重传机制,而 UDP 是不可靠传输,数据可能会丢。
- TCP 首部比 UDP 大,所以 TCP 传输效率没有 UDP 高。