文章目录
前言
UDP协议大体模型架构如下
一、物理层及MAC层数据帧解读
格式说明
字段 | 字节长度 | 说明 |
---|---|---|
前导码 | 7 | 0和1交替变换的码流 |
帧开始符 | 1 | 帧起始符:D5 |
目的地址 | 6 | 目的设备的MAC物理地址 |
源地址 | 6 | 发送设备的MAC物理地址 |
长度/类型 | 2 | 数据长度/协议类型,小于1536表示数据长度,大于1536表示类型,IP:0X0800;ARP:0X0806 |
数据 | 46~1500 | 帧数据字段 |
帧校验序列 | 4 | 数据校验字段 |
二、IP数据帧解读
格式说明
字段 | bit长度 | 说明 |
---|---|---|
版本 | 4 | IPV4:0010,IPV6:0110 |
首部长度 | 4 | 共有多少个32bit,默认为5 |
服务类型 | 8 | TOS |
总长度 | 16 | IP 首部+ IP 数据 |
标识 | 16 | 第几条报文,上电初识为0,每发一条报文+1 |
标志 | 3 | 第一位保留,第二位(1是分片,0不分片),第3为标志更多的分片 |
片偏移 | 13 | 13bit片偏移,数据的顺序 |
生存时间 | 8 | 64或128 |
协议类型 | 8 | TCP 为8’h06, UDP 为8’h11, ICMP 为8’h01 |
首部校验和 | 16 | 校验信息 |
源地址 | 32 | 自身 IP 地址 |
目的地址 | 32 | 接收方的 IP |
数据 | 32 | udp或者icmp数据帧 |
三、ARP数据帧解读
格式说明
字段 | 字节长度 | 说明 |
---|---|---|
硬件类型 | 4 | |
协议类型 | 4 | |
硬件地址长度 | 8 | |
协议地址长度 | 16 | |
opcode字段 | 16 | |
源以太网地址 | 3 | |
源IP地址 | 13 | |
目的以太网地址 | 8 | |
目的IP地址 | 8 | |
数据 | 16 |
四、Rx接收端–GMII进,IP/ARP出
思路上还是以GMII_valid条件,反推valid让数据打拍与两者对齐
always@(posedge i_clk,