<>数据链路层——以太网协议

<>第1关:以太网帧的解析

任务描述
补充代码,解析收到的以太网帧,根据出帧类型,调用对应的处理函数。
本任务中的给出的以太网帧字节流不包含前面的7字节同步码、1字节帧开始定界符和后面的4字节校验码。
任务1:完成函数
unsigned char* get_eth_dst_addr(unsigned char eth);
输入为帧的第一个字节的指针,要求返回目的MAC的首地址。
任务2:完成函数
unsigned char get_eth_src_addr(unsigned char eth);
输入为帧的第一个字节的指针,要求返回源MAC的首地址。
任务3:完成函数
void eth_dispatch(unsigned char eth);

输入为帧的第一个字节的指针,要求返回源MAC的首地址。要求解析帧中的类型字段,根据类型编码确定该帧封装是IP,ARP或其他协议包。注意网络字节顺序可能与本地字节训练不同。已经IP协议对应的帧类型代码是0x0800,ARP协议对应的帧类型是0x0806。
以太网是最简单的网络协议,掌握以太网帧解析的方法对后续解析其他协议包大有帮助。
为了完成本关任务,你需要掌握:以太网协议语法和语义。

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信