UDP 的报文结构和注意事项

 一.UDP协议端格式


• 16位UDP⻓度,表⽰整个数据报(UDP⾸部+UDP数据)的最⼤⻓度;
• 如果校验和出错,就会直接丢弃;

1.UDP的特点

UDP传输的过程类似于寄信.
• ⽆连接:

知道对端的IP和端⼝号就直接进⾏传输,不需要建⽴连接;

• 不可靠:

没有确认机制,没有重传机制;如果因为⽹络故障该段⽆法发到对⽅,UDP协议层也不会给应
⽤层返回任何错误信息;

• ⾯向数据报:

不能够灵活的控制读写数据的次数和数量;

应⽤层交给UDP多⻓的报⽂,UDP原样发送,既不会拆分,也不会合并

• 全双工

同时收发数据。它允许两台计算机在同一时间内进行双向通信。

2.UDP报文结构

a.报头

报头一共有4个字段,每个字段2个字节

端口号 用2个字节来表示,取值范围0-65535

源端口:标识源主机中该次通信发送数据的进程

目的端口:标识目的主机盖茨通信接收数据的进程

长度:报文长度2字节,表示范围0-65535,等于64KB.一个UDP报文最大传输长度64KB

一旦整个数据的长度超过64KB,此时就可能导致数据出现截断(本来数据是完整,后面的部分没了) 

解决办法 

a.在应用层通过代码的方式针对应用层数据包进行手动分包,拆成多个包通过多个UDP数据报进行传输   不推荐使用

b.换成TCP协议

b.校验和

验证数据在传输过程中是否正确

1)CRC算法(循环冗余校验)

UDP数据报发送端,在发送之前,先计算一遍CRC,把算好的CRC值放到UDP数据报中(设CRC值为,value1) 这个数据报通过网络传输到达接收端,接收端收到数据,按同样的算法再算一遍CRC值  得到的结果为value2,比较自己计算的value2和收到value1是否相同,一致 数据OK,  不一致 传输过程中发生bit翻转

如果一个bit位发生翻转,能100%发现问题

如果两个bit位发生翻转,有可能恰好校验和和之前一样

2)md5算法

特点

a.定长    无论原始数据有多长,算出的md5最终值md5最终值都是固定值

b.分散    计算md5过程中 原始数据 只要变换一点,算出来的md5值就会很大,这个特性,也决定md5可以作为一个字符串hash算法

c.不可逆 给一个源字符,计算md5值(虽然比crc要复杂,整体来说,还可以) 但给一个算好的md5值,还原成原始字符串,理论上无法实现

c.载荷

应用层数据报

二.UDP使⽤注意事项

我们注意到,UDP协议⾸部中有⼀个16位的最⼤⻓度.也就是说⼀个UDP能传输的数据最⼤⻓度是64K(包含UDP⾸部).
然⽽64K在当今的互联⽹环境下,是⼀个⾮常⼩的数字.


如果我们需要传输的数据超过64K,就需要在应⽤层⼿动的分包,多次发送,并在接收端⼿动拼装;

UDP只有接收缓冲区、没有发送缓冲区
UDP没有真正意义上的发送缓冲区。发送的数据会直接交给内核,由内核将数据传给网络层协议进行后续的传输动作。
UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致。如果缓冲区满了,再到达的UDP数据就会被丢弃。

相关推荐

  1. UDP结构注意事项

    2024-03-10 09:00:04       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-10 09:00:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-10 09:00:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-10 09:00:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-10 09:00:04       20 阅读

热门阅读

  1. 物联网IOT发展智慧农业 助力乡村振兴

    2024-03-10 09:00:04       28 阅读
  2. mysql8 MGR集群部署

    2024-03-10 09:00:04       22 阅读
  3. 探讨:C#运行程序文件并获取输出的小问题

    2024-03-10 09:00:04       24 阅读
  4. STM32详细介绍

    2024-03-10 09:00:04       16 阅读
  5. gin golang Invalid validation tag on field ‘AId‘

    2024-03-10 09:00:04       23 阅读
  6. ELK日志中心搭建(六)- harbor镜像仓库

    2024-03-10 09:00:04       20 阅读
  7. 腾讯WXG前端面经

    2024-03-10 09:00:04       25 阅读
  8. 大数据开发(Spark面试真题-卷三)

    2024-03-10 09:00:04       18 阅读