3.1 TCP 和 UDP
3.1.1 TCP、UDP的区别 ⭐⭐⭐⭐⭐
-
TCP(Transmission Control Protocol):
- 面向连接:TCP是面向连接的协议,通信之前需要建立连接(三次握手),数据传输完成后需要释放连接(四次挥手)。
- 可靠性:TCP提供可靠的传输服务,通过校验和、序列号、确认应答、超时重传、流量控制和拥塞控制等机制来保证数据的可靠传输。
- 数据顺序:TCP确保接收方按照发送方的顺序接收数据包,即使数据包在传输过程中被打乱,TCP也会重新排序。
- 流控制:TCP通过滑动窗口机制控制数据流量,避免发送方发送数据过快而导致接收方无法及时处理。
-
UDP(User Datagram Protocol):
- 无连接:UDP是无连接的协议,不需要建立和释放连接,直接发送数据报文。
- 不可靠性:UDP不保证数据的可靠传输,没有确认应答、重传、顺序控制等机制。
- 数据报模式:UDP将数据报封装为独立的包,发送方和接收方之间没有连接关系。
- 轻量级:UDP相对于TCP更轻量,适用于对实时性要求高,但对数据可靠性要求不高的场景。
3.1.2 TCP、UDP的优缺点 ⭐⭐⭐
-
TCP的优点:
- 提供可靠的通信,确保数据完整性。
- 有序传输,数据包按序到达。
- 自动处理丢包、重传等问题。
-
TCP的缺点:
- 面向连接,需要三次握手建立连接,较为耗时。
- 头部开销大,数据传输效率相对较低。
- 由于有序性、可靠性和流控机制,导致时延增加。