运输层协议除了TCP,还有大名鼎鼎的UDP。如果说TCP凭借他完善稳定的功能独树一帜,那UDP就是精简主义乱拳打死老师傅。
UDP只实现了运输层最少的功能:进程间通信。对于应用层传下来的数据,UDP只是附加一个首部就直接交给网络层了。UDP的头部非常简单,只有三部分:
-
源端口、目标端口:端口号用来区分主机的不同进程
-
校验码:用于校验数据包在传输的过程中没有出现错误,例如某个1变成了0
-
长度:报文的长度
所以UDP的功能也只有两个:校验数据报是否发生错误、区分不同的进程通信。
但,TCP的功能虽然多,但同时也是要付出相对应的代价。例如面向连接的特性,在建立和断开连接的时候会有开销;拥塞控制的特性,会限制传输的上限等等。下面来罗列一下UDP的优缺点:
UDP的缺点
-
无法保证消息完整、正确到达,UDP是一个不可靠的传输协议;
-
缺少拥塞控制容易互相竞争资源导致网络系统瘫痪
UDP的优点
-
效率更快;不需要建立连接以及拥塞控制
-
连接更多的客户;没有连接状态,不需要为每个客户创建缓存等
-
分组首部字节少,开销小;TCP首部固定首部是20字节,而UDP只有8字节;更小的首部意味着更大比例的数据部分
-
在一些需要高效率允许可限度误差的场景下可以使用。如直播场景,并不需要保证每个数据包都完整到达,允许一定的丢包率,这个时候TCP的可靠特性反而成为了累赘;精简的UDP更高的效率是更加适合的选择
-
可以进行广播;UDP并不是面向连接的,所以可以同时对多个进程进行发送报文
UDP适用场景
UDP适用于对传输模型需要应用层高度自定义、允许出现丢包、需要高效率的场景、需要广播;例如:
-
视屏直播
-
DNS
-
RIP路由选择协议
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74657.html