arp发送函数实现原理
2019-12-30 09:51:03 1 举报
lwip之arp驱动实现原理
作者其他创作
大纲/内容
在以太网头加入4BYTE的VLAN字段
调用以太网层的发送函数ethernet_output函数
是
是否需要在以太网头加入vlan?
填充p->payload区域(填充arp header的字段)1 填充opcode字段2 src mac3 dest mac4 src ip5 dest ip6 硬件类型 1(以太网)7 协议类型(0x800代表ip地址)8 硬件地址长度6(字节)9 ip地址长度32 bit10
链路层的数据包发送函数ethernet_output函数
链路层的数据发送函数封装
否
发送为目标mac地址(交给路由器去找目标地址)
填充vlan字段的1 vid2 vlan字段中的上层协议类型字段(ipv4 ipv6 arp rarp)3 以太网头中的上层协议类型变为0x8100,虚拟本地地址类型
调用netif->linkoutput发送链路层的二进制数据(所有网络数据,最终都是调用改函数进行二进制数据的发送的)
是否本地链路?
发送类型为广播(传参广播mac:ffffffff)
ip层的arp发送函数封装
填充以太网header中的1 src mac2 dest mac
填充以太网header的上层协议类型字段(ipv4 ipv6 arp rarp。。。。。。)
etharp_raw,该函数是arp那一层的(ip层)
0 条评论
回复 删除
下一页