TCP与UDP的区别
TCP | UDP | |
连接 | 传送数据前要先建立连接 | 无需建立连接直接传送数据 |
服务对象 | 一对一 | 一对多、多对一、多对多 |
可靠性 | 可靠交付(保证数据包的无差错、不失序、不丢包、不重复) | 尽最大努力交付,不保证可靠性(但我们可以基于UDP协议实现一个可靠传输协议,如QUIC协议) |
拥塞控制与流量控制 | 有,可保证数据的安全 | 无,即使网络拥堵,也不会影响UDP的发送速率(因为UDP发送方不会等待对方确认或重传数据) |
首部开销 | 固定长度20B,最大60B | 固定8B |
传输方式 | 流式传输,没有边界,但保证顺序与可靠 | 基于数据报发送,有边界,但可能会造成丢包或者失序 |
分片 | TCP数据大小如果大于MSS,则直接在传输层进行分片,目标主机收到后在传输层进行重装,如果发生分片丢失直接传输该分片 | UDP数据报数据大小如果大于MTU的值,会在IP层进行分片 |