UDP报文结构

学习一个协议,首先就是去理解它的报文结构。

UDP数据报可以分为报头与载荷两个部分。

报头占八个字节,分别是源端口号,目的端口号,udp报文长度,UDP校验和,每个部分占两个字节。载荷是完整的应用层的数据报。报头和载荷可以认为是“拼接“在一起。

UDP报文长度:是一个两个字节的16位的数字,范围是0~2^16-1(65535)->64kb,也就是说整个UDP数据报最长为64kb,属于还是比较小的一个数据报。

校验和:校验,就是检查数据报是否出错,由于网络传输环境错综复杂,数据在传输过程中有可能会出错,所以就要有机制去识别错误。那么校验和是如何做到的?

首先,发送方在发送数据时,通过一定的算法,根据这个数据计算出校验和,然后把数据和校验和一起发送出去,接收方接收到数据,会再去计算校验和,如果这两个校验和不同,那么说明收到的数据和原来的不一样,就是出现了错误。

校验和计算方法:

循环冗余算法(CRC):

有很多种计算校验和的算法,其中UDP使用的是循环冗余算法(CRC),把要计算的数据的每个字节进行累加,其结果作为校验和,如果传输过程中数据出现错误,那么接收方计算出的校验和就会不一样。(这种方法不是特别靠谱,万一前面多个数据,后面丢个数据什么的,计算结果还是一样的。)

md5算法:经过一系列的公式计算(我们不需要去考虑格式是什么),得出一个校验和。

特点:

1.定长。无论数据长度怎样,计算得到的校验和长度是固定的。

2.分散。给两个数据,哪怕只有一个字节不一样,得到的校验和差异非常大。所以md5否侧适合哈希算法,哈希算法就是希望通过哈希函数计算得到的下标越分散越好,以此降低冲突。

3不可逆.给你一个计算得出的校验和,你是推不出来原来的数据是什么的。

基于UDP的应用层协议

有一些应用层协议是基于UDP实现的,虽然相比之下还是TCP使用比较多。

DNS:域名解析协议;DHCP:动态主机配置协议;TFTP:简单文件传输协议;NFS:网络文件系统;BOOTP:(无盘设备)启动协议。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值