计算机网络:数据链路层——以太网协议

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

第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。
以太网是最简单的网络协议,掌握以太网帧解析的方法对后续解析其他协议包大有帮助。
为了完成本关任务,你需要掌握:以太网协议语法和语义。

你可能感兴趣的:(计算机网络,计算机网络,算法,c语言)