1、TCP 是面向连接的,UDP 不是面向连接的
TCP是面向连接的(三次握手;四次挥手)
2、TCP程序结构复杂,UDP程序结构较简单
TCP是一个重量级的协议;udp则是轻量级的协议。一个tcp数据报的报头大小最少20字节,UDP数据报的包头固定8个字节
3、TCP 保证数据正确性,UDP 可能丢包
通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达,如果消息在传输中丢失,那么它将重发;
UDP尽最大努力交付,一个数据包在运输过程中可能丢失,即不保证可靠交付
4、TCP 是面向字节流的,UDP 是基于数据报的
TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;
UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低
5、TCP 保证数据顺序,UDP不保证
消息到达网络的另一端可能是无序的,TCP协议将为你排好序。
UDP不提供任何有序性的保证。
6、TCP只能点到点的,UDP可以广播和组播。
每一条TCP连接只能是点到点的,只能单播,不能发送广播和组播;
UDP支持一对一,一对多,多对一和多对多的交互通信,可以广播和组播。
7、TCP传输慢,UDP传输慢
TCP慢,适合传输大量数据;UDP快,适合传输少量数据。