news 2026/4/24 0:29:18

【Linux 网络】深入理解 UDP

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Linux 网络】深入理解 UDP

问题:什么是协议?

答:客户端和服务端约定的结构化字段;

问题:报头和有效载荷怎么分离?

16位UDP长度:表示整个数据报(UDP首部+UDP数据)的最大长度;

如果校验和出错,就会直接丢弃;

答:UDP 报头的长度是固定的 8 个字节,剩下的就是有效载荷;

分用问题:如何把报文交给上层,如何返回?

答:交给上层:根据目的端口号,返回:通过源端口号;

为什么说 UDP 是面向数据报的?

答:udp 的长度是 udp 层填写的报文的总长度,根据这个长度减去8个字节剩下的就是有效载荷,有效载荷的总长度 = udp 的长度 - 8个字节,那么报头就是完整的,向上交付,否则丢弃;所以 UDP 不存在粘包问题;

理解什么是报文?

答:如果有大量的客户端访问服务器,此时服务器的OS一定会存在多个 “报文” ,不同的层也一定会同时存在多个报文;这么多的报文 OS 就要对这些报文进行管理(先描述再组织),使用一个结构体来描述报文:sk_buff:

假设我们是从应用层形成报文的,所以一开始向传输层进行交付的时候,OS 就会创建一个 sk_buff 结构体来描述该报文,并且开辟一个缓冲区:数据区;一开始 data 指针指向的 TCP 协议的下面所以此时会把报文放到到应用层数据,所以此时如果是 UDP 通信,此时 datat 指针减去 UDP/TCP 报头的大小此时 data 就会指向 UDP 协议头的上面,此时把 data 指针强转成对应协议结构体的指针类型,此时就可以往对应的协议填写对应协议的数据;所以 data 指针往上移动的过程就是封装;那么拆包就是 data 指针往下移动的过程;

UDP 的特点:

无连接:知道对端的IP和端口号就直接进行传输,不需要建立连接;

不可靠:没有确认机制,没有重传机制;如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息;

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

UDP 的缓冲区:

UDP没有真正意义上的发送缓冲区,调用sendto会直接交给内核,由内核将数据传给网络层协议进行后续的传输动作;

UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致;如果缓冲区满了,再到达的UDP数据就会被丢弃;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 21:52:45

基于STM32单片机智能低压断路器交流电压电流温度检测设计24-259(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于STM32单片机智能低压断路器交流电压电流温度检测设计24-259(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 24-259、STM32智能低压断路器设计-TFT1.44-交流电压电流互感器-DS18B20-KEY-BELL 产品功能描述: 本设…

作者头像 李华
网站建设 2026/4/16 13:00:03

基于51/STM32单片机录音笔语音录放存储音频ISD4004无线APP设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于51/STM32单片机录音笔语音录放存储音频ISD4004无线APP设计 51-C284段录音4段播放ISD4004模块麦克音频放大OLED屏按键(无线方式选择)51-C028N无无线-无APP版: 51-C028B蓝牙无线-APP版: 51-C028W-WIFI无线-APP版: 51-C028CAN-视频监控WIFI无线-APP版: 产品功能描述&#xff1…

作者头像 李华
网站建设 2026/4/22 9:45:18

我们的系统经常遇到d3dx10_36.dll丢失找不到问题 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/4/23 0:08:05

Flink 核心算子详解:map / flatMap / filter / process

文章目录一、算子能力对照表二、测试数据三、map:一进一出四、filter:只负责“要不要”五、flatMap:一进多出六、process:最底层、最强大的算子七、如何选择算子?八、总结在学习 Flink 的过程中,map、flatM…

作者头像 李华
网站建设 2026/4/21 18:36:56

基于大数据的淘宝月季销售预测数据可视化系统 爬虫

目录爬虫技术摘要数据处理与分析系统价值开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!爬虫技术摘要 淘宝月季销售预测数据可视化系统的爬虫模块旨在高效获取商品销售、评价及用户行为数据…

作者头像 李华