局域网中一个 UDP 包可以装多少数据?

针对当前热议的局域网中一个 UDP 包可以装多少数据?话题,我们进行了深入调研和信息整合,力求为您呈现全面客观的内容分析。

使用 UDP 协议在局域网中一次传输最多能传多少数据?

****以太网数据帧的最大长度为1500字节,即 IP 数据报文的长度,即数据链路层的MTU(最大传输单元)****

下图为 IP 数据报的详细格式:

可以看到,报头区占据 32 * 5 = 160 bits(不算可选部分),也就是 20 字节,那么留给上层协议的字节数就剩下 1500 - 20 = 1480 字节了。

也就是说,UDP 协议作为 IP 协议的上层,一次传输只剩下 1480 个字节了。UDP 报文的结构如下图所示:

可以看到,UDP 协议的报头占了 8 个字节。所以,UDP 留给上层的一次传输大小,只剩下了 1480 - 8 = 1472 个字节了。

1500(以太网单次最大) - 20(IP协议占用) - 8(UDP协议占用) = 1472(留给应用的单次传输大小)

在局域网中使用 UDP 协议,最好限制单词传输数据在 1472 字节以内。

在发送端,IP 协议会将数据分割成多个 IP 报文来发送;在接收端要进行数据报的重组。这样不但有分片和重组的计算开销,而且丢失一个 IP 数据报会导致整个 UDP 数据报传输失败,增加失败的概率。

UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。

为什么要使用UDP

在选择使用协议的时候,选择UDP必须要谨慎。在网络质量令人不十分满意的环境下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用的ICQ和OICQ就是使用的UDP协议。

在Java中操纵UDP

使用位于JDK中Java.net包下的DatagramSocket和DatagramPacket类,可以非常方便地控制用户数据报文。

在描述它们之前,必须了解位于同一个位置的InetAddress类。InetAddress实现了Java.io. Serializable接口,不允许继承。它用于描述和包装一个Internet IP地址,通过三个方法返回InetAddress实例:

getLocalhost():返回封装本地地址的实例。

getAllByName(String host):返回封装Host地址的InetAddress实例数组。

getByName(String host):返回一个封装Host地址的实例。其中,Host可以是域名或者是一个合法的IP地址。

局域网中一个 UDP 包可以装多少数据?的精彩内容就分享到这里,衷心希望这些信息能为您带来实质帮助。期待您继续支持我们,发现更多有价值的知识。

(2)

猜你喜欢

发表回复

本站作者才能评论

评论列表(3条)

  • 与上青果教育科技有限公司的头像

    我是「青果号]的签约作者“与上青果教育科技有限公司”

  • 与上青果教育科技有限公司

    本文概览:针对当前热议的局域网中一个 UDP 包可以装多少数据?话题,我们进行了深入调研和信息整合,力求为您呈现全面客观的内容分析。使用 UDP 协议在局域网中一次传输最多能传多少数据...

  • 与上青果教育科技有限公司
    用户041907 2026年04月19日

    文章不错《局域网中一个 UDP 包可以装多少数据?》内容很有帮助

联系我们:

邮件:「青果号]@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

关注微信