2018-09-30 TCP和UDP的区别是什么

TCP(Transmission Control Protocol 传输控制协议)

UDP (User Datagram Protocol 用户数据报协议)

TCPUDP 均为传输层通信协议,以下是他们的区别

属性 TCP UDP
连接性 面向连接 无连接
可靠性 可靠 不可靠
有序性 有序 无序
有界性 无界 有界
拥塞控制
传输速度
量级 重量级 轻量级
头部大小
面向 面向字节流 面向数据报文
双工性 全双工 一对一,一对多,多对一,多对多
应用场合 网页,邮件等 视频,语音广播等

1. TCP 是面向连接的协议,UDP 是无连接协议
TCP 发送数据前使用三次握手建立连接,UDP 发送数据前不需要建立连接
举例
面向连接:电话通信
面向无连接 :邮件通信

2.TCP 可靠,UDP 不可靠
TCP 丢包会自动重传,UDP 不会(任何必需的可靠性必须由应用层来提供)。 TCP 可靠性由三个机制保证:1. 序号(TCP 报文的序号)2. 确认(ACK 机制)3. 重传(超时或者冗余的 ACK)

3.TCP 有序,UDP 无序
消息在传输过程中可能会乱序,后发送的消息可能会先到达,TCP 会对其进行重新排序,UDP 不会。

4.TCP 无界,UDP 有界
TCP 通过字节流传输,UDP 中每一个包都是单独的。

5.TCP 有流量控制(拥塞控制),UDP 没有
TCP 协议的流量控制是基于滑窗协议实现的。 拥塞控制和流量控制不同,流量控制是点对点的通信量抑制,抑制发送端发送速率,使得接收端来得及接收。UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

6.TCP 传输慢,UDP 传输快
因为 TCP 需要建立连接、保证可靠性和有序性,所以比较耗时。 这就是为什么视频流、广播电视、在线多媒体游戏等选择使用 UDP。

7.TCP 是重量级的,UDP 是轻量级的
TCP 要建立连接、保证可靠性和有序性,就会传输更多的信息,如 TCP 的包头比较大。

8. TCP 的 头部比 UDP 大
TCP 开销比 UDP 大,TCP 头部需要 20 字节,UDP 头部只要 8 个字节。

9.TCP面向字节流,UDP面向报文
TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;
UDP是面向报文的

10.TCP是全双工的信道,UDP支持一对一,一对多,多对一和多对多的交互通信
每一条TCP连接只能是点到点的

总结:

TCP 是面向连接的、可靠的、有序的、速度慢的协议;UDP 是无连接的、不可靠的、无序的、速度快的协议。

TCP 开销比 UDP 大,TCP 头部需要 20 字节,UDP 头部只要 8 个字节。

TCP 无界有拥塞控制,UDP 有界无拥塞控制。

Ref
TCP 与 UDP 的区别

你可能感兴趣的:(2018-09-30 TCP和UDP的区别是什么)