ARP
- PC发送ARP请求
- FPGA mac层:
a. 目的mac为’hff_ffff
b. 帧头识别0x0806 转至arp层 - FPGA arp层:
a. 获得源mac(mac层也有)& 源ip & 操作码(请求为1,响应为2)
b. 目的mac为0,获得目的ip,与FPGA ip比较是否相等
同时更新arp表与arp回复,arp回复目的源ip和mac均已知
固定长度50
Arp回复mac层目的mac是单播
UDP发送
在ip层组包时向arp表发送目的ip,如果有,向mac层发送ip对应的mac【但一般mac层有目的mac】
固定长度50
UDP接收
- PC发送UDP包
- FPGA mac层:
a. 目的mac与FPGA mac比较【代码未完善】
b. 帧头识别0x0800 转至ip层 - FPGA ip层:
a. 获得ip总长度(ip首部+ip数据)& 协议类型(udp为17,icmp为1)& 源ip
b. 获得目的ip,与FPGA ip比较是否相等
c. 传递udp层总长度(ip总长度 - 20) - FPGA udp层:
a. 获得源端口号 & 目的端口号比较【代码未比较】
b. 传递数据总长度
ICMP
前三步与UDP接收相同
- FPGA icmp层接收:
获得类型(FPGA为接收,类型为8),获得序号 - FPGA icmp层发送:固定长度50
发送类型(FPGA为发送,类型为0)