目的差异
- TCP:提供可靠的网络传输
- UDP:提供报文交换能力基础上尽可能地简化协议轻装上阵
可靠性差异
- TCP:为保证可靠性提供了多种机制,建立连接需要握手地过程,保证双方同时在线。并且还提供了窗口机制保证报文段的有序性。
- UDP:它只管发送数据包,不关心对端是否确认收到。
连接 / 无连接
- TCP:进行数据传输前必须先建立连接
- UDP:无连接协议,数据随时可以发送,只提供发送 封包的能力
流控技术
- TCP:提供滑动窗口和拥塞窗口机制,可以保证接收方不会因为发送方一次性传输太多数据而不堪重负。
- UDP:没有提供相关的能力。
传输速度
- TCP:需要建立连接 并提供可靠性保障的技术,所以它相对于UDP来说比较慢。
- UDP:无需建立连接,以及可靠性的保障,封包小等原因,所以单纯从传输速度来说,UDP更快。
场景差异
- TCP:对安全性 可靠性要求比较高的场景,比如 远程控制(SSH),点对点文件传输(微信等),数据库的连接等。
- UDP:要求速度快速,可靠性不要求太高的场景,允许短暂丢包的场景,比如当今最火的 直播,短视频和游戏等