【网络协议】聊聊UDP协议

编程入门 行业动态 更新时间:2024-10-15 02:24:35

【网络<a href=https://www.elefans.com/category/jswz/34/1771197.html style=协议】聊聊UDP协议"/>

【网络协议】聊聊UDP协议

前面的几篇文章讲述了链路层和IP层,主要的话其实就是MAC地址,以及通过IP地址求MAC地址的ARP协议。PING的底层协议 ICMP
。动态分配IP协议 DHCP等。而从今天开始我们开始讲述传输层协议,传输层主要就是UDP和TCP。

TCP 和 UDP 有哪些区别?

面试中常问到的其实就是TCP和UDP的区别,首先一个特别明显的区别就是TCP是面向连接的,UDP是无连接的
连接其实就是在客户端和服务端之间维护连接,通过建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面向连接的特性。

第二点:TCP提供可靠交付,IP层其实没有保证数据的可靠性,TCP传输层保证来传输的数据,无差错、不丢失、不重复,并且按序到达。而UDP不保证可靠传输。并且不按顺序到达。

第三点:TCP是面向字节流,发送的是一个一个的流,UDP是一个一个的数据报。

第三点:TCP具备拥塞控制,也就是会根据丢包以及网络稳定情况进行调整自己发送数据的快慢。UDP其实不管三七二十一,只管发送。

第四点:TCP是一个有状态服务。会明确记录包又没有到达,UDP是无状态的服务。

UDP 包头是什么样的?

当目标机器收到包后,会不断取下MAC头,IP头。在IP头中标识的是UDP和TCP。就可以从中开始解析数据,但是处理完UDP数据之后,应该把数据交给谁处理,内核的事情处理完毕之后,应该交给应用程序,每个应用程序都有自己的端口,正是通过目的端口号进行区分的。
所以UDP的格式是源端口号,目的端口号,剩下就是UDP长度以及UDP校验和。

UDP 的三大特点

沟通简单,默认认为网络世界是美好的,不容易丢弃。
可以互相传输数据,可以发送给其他人,也可以收到其他人发送的数据。
不具备网络情况进行灵活处理。

UDP 的三大使用场景

虽然UDP不保证数据的可靠传输,但是针对一些场景来说,其实也非常适合使用UDP进行传输数据。

1.网络情况比较稳定的情况 或者对于丢包场景不敏感的应用。而DHCP其实基于UDP协议的。获取IP协议是内网请求,所以针对这种场景比较适合。
2.不需要建立连接,就可以广播的应用。可以承载广播或者多播的协议,DHCP就是一种广播的形式。
3.处理速度快,时延低,可以容忍少数丢包,,因为不需要关心数据是否丢失等情况,所以不处理复杂的应用场景。

UDP使用场景案例

网页或者 APP 的访问

原来网页和APP是基于HTTP的,HTTP基于TCP,建立连接比较耗费资源,所以提出来QUIC (quick udp internet connections)快速UDP互联网连接。目的是降低网络通信的延迟,提供更好的用户互动体验。

流媒体的协议

直播视频中其实最重要的就是实时性,可以间断的丢包,选择性的丢帧。所以很多直播应用,都采用的是UDP实现自己的视频传输协议。

实时游戏

游戏场景其实也是实时性比较高,游戏对实时要求较为严格的情况下,采用自定义的可靠 UDP 协议,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响。

IoT 物联网

移动通信领域

小结

本篇主要简单介绍了TCP和UDP的区别,在于TCP为保证数据的可靠传输有自己的一套机制,而UDP不是基于连接的,所以对于实时性场景一般都是采用UDP进行使用。

更多推荐

【网络协议】聊聊UDP协议

本文发布于:2023-12-03 19:36:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657024.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:协议   网络   UDP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!