您的位置:首页 > 财经 > 产业 > 网页设计与制作教程专题分析_sem是什么职位_模板之家官网_手机网站模板下载

网页设计与制作教程专题分析_sem是什么职位_模板之家官网_手机网站模板下载

2025/3/20 16:37:06 来源:https://blog.csdn.net/tyustli/article/details/146369762  浏览:    关键词:网页设计与制作教程专题分析_sem是什么职位_模板之家官网_手机网站模板下载
网页设计与制作教程专题分析_sem是什么职位_模板之家官网_手机网站模板下载

文章目录

  • UDP 协议
    • 简介
    • 数据包格式
    • UDP 通信流程
    • 抓包分析
    • 参考

本文为笔者学习以太网对网上资料归纳整理所做的笔记,文末均附有参考链接,如侵权,请联系删除。

UDP 协议

UDP 是一种面向无连接的传输层协议,属于 TCP/IP 协议簇的一种。UDP 具有消耗资源少、通信效率高等优点,通常用来传输音频、视频等对实时性要求高的场合。

简介

UDP(User Datagram Protocol),即用户数据报协议,是一种面向无连接的传输层协议。无连接是指在传输数据时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。由于使用 UDP 协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输(如视频会议等)都会采用 UDP 协议进行传输,这种情况即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。

UDP 和 TCP 是传输层中非常重要的两个协议,位于 OSI(Open System Interconnection,开放式系统互联)参考模型中的第四层(传输层),是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,位于 IP 协议层(网络层)之上。OSI 将计算机网络体系结构分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,OSI 参考模型如下图所示。
在这里插入图片描述

数据包格式

以太网 UDP 传输单包数据的格式如下图所示。从图中可以看出,以太网的数据包就是对各层协议的逐层封装来实现数据的传输。用户数据打包在 UDP 协议中,UDP 协议又是基于 IP 协议之上的,IP 协议又是走 MAC 层发送的,即从包含关系来说:MAC 帧中的数据段为 IP 数据报,IP 报文中的数据段为 UDP报文,UDP 报文中的数据段为用户希望传输的数据内容。接下来我们逐个来向大家介绍不同层的数据格式
在这里插入图片描述
在这里插入图片描述

  • 源端口号:16 位发送端端口号,用于区分不同服务的端口,端口号的范围从 0 到 65535。
  • 目的端口号:16 位接收端端口号。
  • UDP 长度:16 位 UDP 长度,包含 UDP 首部长度+数据长度,单位是字节(byte)。
  • UDP 校验和:16 位 UDP 校验和。UDP 计算校验和的方法和计算 IP 数据报首部校验和的方法相似,但不同的是 IP 数据报的校验和只检验 IP 数据报的首部,而 UDP 校验和包含三个部分:UDP 伪首部,UDP首部和 UDP 的数据部分。伪首部的数据是从 IP 数据报头和 UDP 数据报头获取的,包括源 IP 地址,目的IP 地址,协议类型和 UDP 长度,其目的是让 UDP 两次检查数据是否已经正确到达目的地,只是单纯为了做校验用的。在大多数使用场景中接收端并不检测 UDP 校验和,因此这里不做过多介绍。

以太网的帧格式、IP 数据报协议以及 UDP 协议到这里已经全部介绍完了,关于用户数据、UDP、IP、MAC 四个报文的关系如下图所示

在这里插入图片描述
用户数据打包在 UDP 协议中,UDP 协议又是基于 IP 协议之上的,IP 协议又是走 MAC 层发送的,即从包含关系来说:MAC 帧中的数据段为 IP 数据报,IP 报文中的数据段为 UDP 报文,UDP 报文中的数据段为用户希望传输的数据内容。现在再回过头看上图 的内容就非常容易理解了

UDP 通信流程

UDP(User Datagram Protocol 用户数据报协议)是一种非面向连接的协议,它不能保证网络连接的可靠性。 客户端发送数据之前并不会去服务器建立连接,而是直接将数据打包发送出去。当服务器接收数据时它也不向发送方提供确认信息,如果出现丢失包或重份包的情况,也不会向发送方发出差错报文。

  • 优点:控制选项少,无须建立连接,从而使得数据传输过程中的延迟小、数据传输效率高。
  • 适用场景:UDP适合对可靠性不高,或网络质量有保障,或对实时性要求较高的应用程序。

基于 UDP 的 socket 编程流程如下图所示:
在这里插入图片描述

抓包分析

  • 打开 wireshark 软件 开启抓包,设定过滤条件为 udp,只显示和 udp 协议相关的包。
  • 开发板连接上网络后,在终端上输入 udpclient 192.168.12.44 5000 5
    查看 wireshark ,发现已经抓到了 udpclient 发来的五个包了。

我们点开封包详细信息然后和上面的 UDP 协议的报文格式对照一下,就弄清楚 UDP 协议的工作机制了。
在这里插入图片描述

参考

  • 正点原子《开拓者之FPGA开发指南V3.2》
  • 野火 LWIP
  • RT-Thread 网络教程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com