【计算机网络】运输层:用户数据报协议UDP

UDP在IP数据报服务之上增加复用分用的功能,以及差错检测的功能(使用UDP的原因)

(所以应用进程不可以跳过UDP直接交给IP层)

UDP特点:

(1)UDP无连接:发送数据之前不需要建立连接

(2)UDP尽最大努力交付,不保证可靠交付

(3)UDP面向报文

发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。

UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。

应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。

接受方的UDP,对IP层交上来的UDP用户数据报,在去除首部后酒原封不动交付给上层的应用进程。

也就是说, UDP一次交付一个完整的报文。

因此,应用程序必须选择合适大小的报文。若报文太长,UDP把它交给IP层后,IP层在传送时可能要进行分片,这会降低IP层的效率。报文太短,UDP交给IP层后,会使IP数据报的首部相对长度太大,降低IP的效率。

(4)UDP没有拥塞控制。

网络出现拥塞不会使源主机的发送速率降低,对实时应用很重要。

(5)UDP支持一对一、一对多、多对一、多对多的交互通信

(6)UDP首部开销小,只有 8个字节。

【计算机网络】运输层:用户数据报协议UDP

UDP首部:

源端口号、目的端口号

长度:UDP用户数据报(包括首部和数据)

检验和:检测UDP用户数据报在传输中是否有错, 有错就丢弃(简单地丢弃)

检验和是可选的,如果不想计算检验和,检验和端就全为0。

伪首部:不是UDP用户数据报或TCP报文段真正的首部,只是在计算检验和时,临时添加在UDP用户数据报或TCP报文段的前面,得到一个临时的UDP用户数据报或TCP报文段。伪首部既不向下传送也不向上递交,仅仅用于计算运输层的检验和。

【计算机网络】运输层:用户数据报协议UDP

使用二进制反码求和再取反。

【计算机网络】运输层:用户数据报协议UDP

使用UDP而不适用TCP的场景:

【实时数据的传输】

互联网传输实时数据的分组时,有可能会出现差错甚至丢失。如果利用TCP协议对这些出错或丢失的分组进行重传,那么时延就会大大增加。所以,宁可丢失少量分组,也不要等待太晚到达的分组。

在连续的音频或视频数据流中,很少量分组的丢失对播放效果的影响并不大,因而是可以容忍的。

如果不是实时数据,就可以使用TCP传输。

【注重报文发送速度】

当网络出现拥塞时,TCP的拥塞控制就会让TCP的发送方放慢报文段的发送。可能有的应用程序就不愿意放满报文段的发送速度。

【计算机网络】运输层:用户数据报协议UDP

文件必须使用TCP传输。

【计算机网络】运输层:用户数据报协议UDP

【计算机网络】运输层:用户数据报协议UDP

Original: https://blog.csdn.net/m0_52043808/article/details/127809561
Author: 暮色_年华
Title: 【计算机网络】运输层:用户数据报协议UDP

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/655520/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球