从数据报文的结构可以看到:UDP相比起TCP,其结构要简单许多,由源,目的端口,校验和,数据长度组成。
这样简单的结构也就说明了UDP是不能够支持像TCP那样,支持错误重传,滑动窗口等精细控制。
UDP的主要特点:
①无连接(传输数据时,源端和终端不建立连接)
②尽最大努力交付(所以不保证可靠交付,也不需要维持复杂的链接状态表)
③面向报文(不对应用程序提交的报文信息进行拆分或合并,仅仅添加报头后就向下交付给IP,因此UDP将绝大多数的控制都交给上层解决)
④无拥塞控制
⑤支持一对一,一对多通信(因为不需要进行连接,所以支持同时向多个客户端传送相同的消息)
⑥报头开销少(只有4个字段:源端口,目的端口,数据长度和校验和)
所以结论就是:
它们的区别在于
-
连接
TCP面向连接:TCP有三次握手的连接过程,更加可靠
UDP面向无连接:更加适合消息的多播发布 -
可靠性
TCP用三次握手和重传机制保证了数据包的可靠性保证
UDP可能会丢失 -
有序性
TCP利用序列号保证了消息包的顺序交付
UDP不具备该特点 -
速度
TCP因为要创建连接,保证消息有效及可靠,需要付出很多额外开销
UDP速度快,常见的应用场景为:在线视频,在线广播,在线游戏等 -
量级
TCP首部就有20个字节
UDP首部只有8个字节