UDP报文结构解析

文章目录

  • UDP报文结构的讲解以及注意事项
    • 源端口和目的端口
    • 报文长度
    • 校验和

UDP报文结构的讲解以及注意事项

想要学习一个协议,我们就需要认识一下这个协议的报文格式,认识这个协议具体是如何组织数据的:
UDP报文结构解析_第1张图片
我们常见的UDP报文的格式图都是这样画的,但其实并不准确,真正的UDP报文格式是这样的:

在这里插入图片描述
我们针对UDP的报头进行一下分析。

源端口和目的端口

在网络层中还有一组数据叫做源IP和目的IP,源端口和源IP可以归为一类数据,他描述了数据是从哪里来的,而目的端口和目的IP可以归位一类,它他描述了数据要送到哪里去。源端口和目的端口在UDP报头中各自占两个字节,端口号的取值范围就是0 - 65535。

在互联网中有一些知名的端口号,这是一些名气比较大的服务器所使用的端口号,他们一般都小于1024,可以认为端口号越小名气越大。

报文长度

顾名思义就是记录一个UDP的报文长度,在UDP报头中也占两个字节,2个字节的表示范围就是0 - 65535,也就是说一个UDP报文的最大长度就是64KB。
64KB在之前那个年代看起来这个空间是非常大的,而放到现在的互联网中,可能一个表情包的大小都比这个空间大。
那我们真的要传输这个大于UDP报文最大长度的数据该怎么办呢?

1、我们可以把一个大的数据拆分成多个部分,使用多个UDP数据报来进行传输。
2、传输层的协议不止有UDP,我们还可以使用TCP协议,TCP没有长度限制。

为什么不扩大一下这个长度呢?
我们说协议就是约定,假设我们约定好了一个暗号,而有一方突然更改了暗号,那么他们还可以接头成功嘛?显然是不行的。
UDP协议也是一样的,UDP是在系统内核中实现的,想要扩大UDP,就需要升级系统,而如果A系统升级了,升级后的UDP长度不是2字节了,他与B主机进行通信,而B主机并没有升级,此时UDP长度还是2字节,暗号对不上,主机AB就无法通信,这样如果需要升级UDP,那么全世界都需要同时升级,显然是不现实的。

校验和

校验和的作用就是判断一下当前传输的数据是否出错了,在传输的过程中会出现不稳定的情况,收到环境的干扰,强磁场等问题,使传输的数据出现错误,检验和的作用解释判断是否出错了。
如何判断呢?

1、发送方,把载荷数据通过校验和算法,得到校验和,放在报头内。
2、数据传输到了接受方,再次使用相同的校验和算法计算校验和,将结果与报头内的校验和进行对比,相同说明数据传输没有问题,如果不同说明数据出现错误了。

注意:
使用校验和的前提是:输入的内容一样,按照相同的算法得到校验和。UDP这是使用的是CRC算法,大家可以自行查阅资料了解一下。

你可能感兴趣的:(JavaEE初阶,udp,网络,tcp/ip)