【刷题Day20】TCP和UDP(浅)
TCP 和 UDP 有什么区别?
TCP提供了可靠、面向连接的传输,适用于需要数据完整性和顺序的场景。
UDP提供了更轻量、面向报文的传输,适用于实时性要求高的场景。
特性 | TCP | UDP |
---|---|---|
连接方式 | 面向连接 | 无连接 |
可靠性 | 提供可靠性,保证数据按顺序到达 | 不可靠,不保证顺序或完整性 |
流量控制/拥塞控制 | 提供流量控制和拥塞控制 | 没有流量控制和拥塞控制 |
顺序保证 | 保证数据顺序 | 不保证数据顺序 |
头部大小 | 较大(20字节及以上) | 较小(8字节) |
性能 | 较低,延迟大 | 较高,延迟小 |
数据传输模式 | 字节流传输模式 | 数据报传输模式 |
适用场景 | 文件传输、Web、邮件等需要可靠性的应用 | 实时通讯、语音、视频、游戏等高性能要求应用 |
说说 TCP 的三次握手?
- 客户首先发送一个SYN(同步序列编号)消息给服务器
- 服务器收到后回复一个SYN-ACK(同步序列编号-确认)消息
- 最后客户端再发送一个ACK(确认)消息确认服务器已经收到SYN-ACK消息
- 完成三次握手,建立可靠的TCP连接。
TCP 是用来解决什么问题?
TCP(Transmission Control Protocol)通过提供可靠传输、流量控制、拥塞控制和连接管理,解决了数据在不可靠的IP网络上的传输问题:
- 可靠性传输: TCP确保数据包在网络传输过程中不丢失、不重复,并且按顺序到达。通过确认(ACK)、重传机制以及序列号,TCP能够保证数据在不可靠的IP网络上可靠传输。
- 流量控制: TCP通过滑动窗口机制调节发送方的数据发送速率,防止接收方因为处理能力有限而被数据流淹没。
- 拥塞控制: TCP通过拥塞避免算法(如慢启动、拥塞避免、快速重传和快速恢复)来防止网络过载,确保网络资源的公平使用和稳定性。
- 连接管理: TCP是面向连接的协议,采用三次握手(建立连接)和四次挥手(断开连接)机制来管理会话,确保通信的可靠性和状态的同步。