以太网基础⑤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 状态等待。 |
| |
| |
| //简单摸一下鱼 |

相关推荐
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】LLM会话管理模块设计
网络·c++·人工智能·学习·大模型
157092511348 小时前
Android进阶之光:HTTP协议原理深度解析
android·网络协议·http
虹科网络安全10 小时前
Redis 安全公告:CVE-2026-81934 TLS 处理漏洞及修复建议
网络·人工智能·网络安全
小程序设计11 小时前
某师范学院网络规划与设计
网络·安全
可爱系程序猿12 小时前
WSD 打印机时好时坏:从发现服务、地址变化到 Standard TCP/IP 端口的迁移记录
网络·网络协议·tcp/ip·程序人生·电脑
蓝速科技13 小时前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
济南凡维14 小时前
CODESOFT中如何将标签保存为PDF文件
网络·人工智能·打印机·codesoft
德迅云安全杨德俊14 小时前
高防IP:构建“防护-加速-管控”三位一体的全链路安全体系
网络·安全·ddos
猫哥随身wifi15 小时前
随身WiFi 怎么选?2026 主流品牌随身 WiFi 对比与选购避坑参考
网络·人工智能·5g·智能手机
en.en..15 小时前
TCP套接字编程 完整流程解析(服务端 + 客户端)
网络