当前位置: 首页 > news >正文

以太网基础⑤UDP 协议原理与 FPGA 实现

1.今日摸鱼任务

学习UDP协议的数据字段格式

02_【逻辑教程】基于HDL的FPGA逻辑设计与验证教程V3.5.2.pdf

56 UDP 协议原理与 FPGA 实现
57实用性 UDP 发送逻辑设计与实现
58 实用性 UDP 接收逻辑设计与实现

2. UDP协议与格式

用户数据报协议(User Datagram Protocol , UDP)开放式系统互联(Open System Interconnection,OSI) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768 UDP 正式规范。UDP IP 报文的协议号是 17(0x11)

UDP 用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用 UDP 协议。
MAC 帧中的数据段为 IP 数据报文;
IP 报文中的数据段为 UDP 报文;
UDP 报文中的数据段为用户希望传输的数据内容。

UDP报文格式:

UDP 协议使用端口号为不同的应用保留其各自的数据传输通道。实现对同一时刻内多项应用同时发送和接收数据的支持。

UDP 协议使用报头中的校验值来保证数据的安全。但检测到错误时,UDP 不做错误校正,只是简单地把损坏的消息段扔掉,或者给应用程序提供警告信息。
UDP 报文的 checksum 字段可以为正确,也可以忽略(0x0000),但不能为错,为错误一些标准的以太网工具将会将这样的数据包直接丢弃。

3. 以太网报文发送模块

3.1 第一种设计方案

UDP 帧格式包括:前导码+帧界定符、以太网头部、IP 头部、UDP 头部、UDP 数据、FCS 数据。

IDLE:空闲状态
TX_PREAMBLE:发送以太网的 7个字节的前导码和 1字节的帧首界定符状态
TX_ETH_HEADER:发送以太网头部数据状态
TX_IP_HEADER:发送 IP 头部数据状态
TX_UDP_HEADER:发送 UDP 头部数据状态
TX_UDP_DATA:发送 UDP 数据状态
TX_FILL_DATA:发送填充数据状态,当需要发送的有效数据的长度比较小的时候,导致以太网帧的数据段小于 46 字节就需要用 0 来填充到 46 字节来满足以太网帧数据段长度要求。
TX_CRC:发送 FCS 校验数据状态
TX_DLY:以太网帧间隙,千兆以太网每一帧之间都需要间隔至少 96ns 的时间。

3.2 高性能 UDP 发送逻辑设计

MAC帧头、IP报头、UDP报头等看成一个整体,按照顺序依次发送这些报头后,再发送用户数据

不存在状态的分支

4. UDP 接收逻辑设计

RX_PREAMBLE :当接收到帧界定符(D5)和 5前导码(55)时,进入到 RX_ETH_HEADER 状态,如果接收超过 7个前导码,则表明此时数据接收错误,进入 IDLE 状态
RX_IP_HEADER:判断之前获取的以太网头部数据是否正确,接收完 20 IP 头部书数据之后,进入
RX_UDP_HEADER 状态;若数据接收错误,进入 IDLE 状态。
RX_UDP_HEADER:判断前一个状态获取的以太网 IP 头部数据是否正确
RX_DATA:接收的数据段个数小于 18时,说明此时接收的个数较少,进入RX_DRP_DATA态,当接收的数据个数等于以太网 UDP的帧数据段个数时,进入 RX_CRC态,否则处于 RX_DATA 状态等待。

//简单摸一下鱼
http://www.xdnf.cn/news/1095823.html

相关文章:

  • 《信号与系统》学习笔记——第八章(补充部分)
  • 分库分表之实战-sharding-JDBC分库分表执行流程原理剖析
  • 【算法笔记】6.LeetCode-Hot100-链表专项
  • VTK 9.0中的屏幕空间环境光遮挡
  • 【Android】在平板上实现Rs485的数据通讯
  • 【Docker基础】Docker容器与网络关联命令使用指南:深入理解容器网络连接
  • 基于Catboost算法的茶叶数据分析及价格预测系统的设计与实现
  • AI技术通过智能缺陷检测正在深度重构多个行业的生产模式、质量管理体系和人才结构,其影响已超越单纯的技术升级,正在引发系统性变革。
  • 可视化DIY小程序工具!开源拖拽式源码系统,自由搭建,完整的源代码包分享
  • 3D lidar目标跟踪
  • 机器学习:反向神经元传播公式推导
  • 网安-解决pikachu-rce乱码问题
  • 企业使用银河麒麟系统下载vscode显示界面不全
  • swift开发,关于应用、页面、视图的生命周期
  • WIFI协议全解析05:WiFi的安全机制:IoT设备如何实现安全连接?
  • 【数据结构】时间复杂度和空间复杂度
  • 解析LLM层裁剪:Qwen实战指南
  • XMAPP MySQL 启动后自动停止
  • Java-69 深入浅出 RPC 单体架构 垂直架构 分布式架构 微服务架构
  • 堆的应用(讲解超详细)
  • 学习软件测试的第十四天(移动端)
  • ElementUI:高效优雅的Vue.js组件库
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(四十二) -> 动态修改编译配置
  • Eigen中四元数、欧拉角、旋转矩阵、旋转向量之间的转换
  • 解锁医疗新视界:医患共决策时间轴AI可视化工具
  • HighReport报表工具开始支持BS报表设计器
  • msf复现永恒之蓝
  • 不止于快:金士顿XS2000移动固态硬盘如何重塑你的数字生活
  • 32多串300A保护板测试仪:新能源电池安全的核心守护者
  • 服务器组件与 Actions:重塑 React 数据交互