TCP 与 UDP 的区别

来源:互联网 发布:淘宝买家账号怎么贷款 编辑:程序博客网 时间:2024/05/15 10:16

TCP面向字节流 UDP面向报文

TCP 是字节流的协议,无记录边界。
UDP 发送的每个数据报是记录型的数据报,所谓的记录型数据报就是接收进程可以识 别接收到的数据报的记录边界。

基于连接 vs 无连接

TCP 是面向连接的协议,而 UDP 是无连接的协议。这意味着当一个客户端和一个服 务器通过 TCP 发送数据之前,必须先建立连接,建立连接的过程也被称为 TCP 三次握手。

可靠性

TCP 提供交付保证,这意味着一个使用 TCP 协议发送的消息是保证交付给客户端的, 如果消息在传输过程中丢失,那么它将重发。UDP 是不可靠的,它不提供任何交付的保证, 一个数据报包在运输中可能丢失

TCP 只能单播,UDP 可以广播和组播。

有序性

消息传达到另一端时,TCP保证消息是有序的,UDP只能送达,不保证有序

速度

TCP 速度比较慢,而 UDP 速度比较快,因为 TCP 必须创建连接,以保证消息的可靠 交付和有序性,他需要做比 UDP 多的事。这就是为什么 UDP 更适用于对速度比较敏感的 应用。TCP 适合传输大量数据,UDP 适合传输少量数据

重量级 vs 轻量级

TCP 是重量级的协议,UDP 协议则是轻量级的协议。一个 TCP 数据报的报头大小最 少是 20 字节,UDP 数据报的报头固定是 8 个字节。TCP 报头中包含序列号,ACK 号,数 据偏移量,保留,控制位,窗口,紧急指针,可选项,填充项,校验位,源端口和目的端 口。而 UDP 报头只包含长度,源端口号,目的端口,和校验和。

流量控制或拥塞控制

TCP 有流量控制和拥塞控制。UDP 没有流量控制和拥塞控制。

TCP 应用场景:效率要求相对低,但对准确性要求相对高的场景。因为传输中需要 对数据确认、重发、排序等操作,相比之下效率没有 UDP 高。举几个例子:文件传输、邮 件传输、远程登录。
UDP 应用场景:效率要求相对高,对准确性要求相对低的场景。举几个例子:QQ 聊天、QQ 视频、网络语音电话(即时通讯,速度要求高,但是出现偶尔断续不是太大问 题,并且此处完全不可以使用重发机制)、广播通信(广播、多播)。

原创粉丝点击