前端网络基础-传输层UDP协议

UDP(User Dategram Protocol)即用户数据报协议

它也是传输层协议。

我们需要知道数据分为重要数据和不重要数据,比如你发了一封邮件,下载文件,这些都是重要数据,少了一点,可能文件就会报错,打不开,所以对于这些数据,我们看重的是完整性,正确性。

但是比如你看网络直播,或打IP电话,打网络游戏,这种对数据实时性要求比较高,对数据传输速度要求快的,我们反而不太在意数据的完整性。比如你看网络直播时,忽然卡了一下,其实完全不影响整体看直播的体验,或者打游戏时,你根本不在乎数据是否完整,只要游戏操纵流畅,反馈及时就行。

所以传输层不止有TCP这种可靠,但是慢的传输协议,还有UDP这种快,但是不可靠的传输协议。

由于UDP协议的使命就是快速传输数据,不在乎数据是否丢失,即要速度,不要质量,所以UDP对于数据段的封装,非常精简,要比TCP封装操作简单的多,我们可以看下UDP报文格式

前端网络基础-传输层UDP协议_第1张图片

 可以发现UDP报文头部中,只有四个内容

UDP源端口,UDP目标端口,UDP长度,UDP校验和。

即UDP数据传输只需要保证数据能够准确投递到应用层,以及数据正确性,其他都不要。

1、不要建立连接

TCP在通信前需要三次握手建立连接,UDP不需要,直接开始通信传输数据。

2、不要确认对方是否收到报文

TCP在发送报文后,都需要等待对方确认收到报文,这样才能继续发送下一个报文,而UDP根本不管对方是否收到,直接扔过去,扔完回家睡觉。

3、不要释放连接

TCP在通信结束还要四次挥手释放连接,UDP都不建立连接,更没有释放一说了。

UDP和TCP比较

1、可靠性上

TCP比UDP牛

2、速度上

UDP比TCP牛

TCP常应用于对数据完整性要求比较高的场景

UDP常用于于对数据传输速度要求快,但是数据完整性不做要求的场景。

我们知道的DNS解析底层默认依赖于UDP协议。

我们使用wireshark抓一个DNS解析过程的包来看看

前端网络基础-传输层UDP协议_第2张图片

 前端网络基础-传输层UDP协议_第3张图片

你可能感兴趣的:(前端网络基础,网络,udp,前端)