TCP 提供了有连接、可靠的、基于字节流的传输,适用于需要数据完整性和顺序的场景
UDP 则提供了无连接、不可靠、面向报文的传输,适用于实时性要求高的场景。
区别总结:
特性 | TCP | UDP |
---|---|---|
连接方式 | 面向连接 | 无连接 |
可靠性 | 提供可靠性,保证数据按顺序到达 | 不可靠,不保证顺序或完整性 |
流量控制/拥塞控制 | 提供流量控制和拥塞控制 | 没有流量控制和拥塞控制 |
顺序保证 | 保证数据顺序 | 不保证数据顺序 |
头部大小 | 较大(20字节的固定首部) | 较小(8字节的首部) |
性能 | 较低,延迟大 | 较高,延迟小 |
数据传输模式 | 字节流传输模式 | 数据报传输模式 |
适用场景 | 文件传输、Web、邮件等需要可靠性的应用 | 实时通讯、语音、视频、游戏等高性能要求应用 |
为什么要进行流量控制:
由于收发双方各自的工作速率和缓存空间有差异,可能出现发送方的发送能力大于接收方的接收能力的情况,这样会导致接收方来不及接收,造成帧丢失。因此,流量控制的目的就是为了限制发送放的数据流量,使得接收方能够正确接收。
tcp流量控制常见方式:
- 停止-等待协议
- 后退N帧协议(GBN)
- 选择重传协议(SR)
可靠传输机制:
- 确认
- 超时重传
常见的基于TCP的协议:
- HTTP:80
- HTTPS:403
- FTP:控制连接21,数据连接20
- SMTP:25
- POP3
- BGP:179
常见的基于UDP的协议:
- DNS:53
- DHCP:67/68
- RIP:520