快乐虾
欢迎转载。但请保留作者信息
解析以太网帧的过程是构建以太网帧的逆过程,当我们接收到一个以太网帧时,仍然以上一节中的ARP帧为例:
当收到这样一个数据帧时。首先应当构造一个Packet存放数据:
Ptr<Packet>src = Create<Packet>(buffer,len);
然后取出以太网包头:
//解析以太网包头
EthernetHeader eh_src;
src->RemoveHeader(eh_src);
在取出此包头后。Packet中就剩下了以下内容(红色部分):
通过eh_src能够得到以太网帧的基本信息:
接下来必须推断lengthType的值以进行下一步的解析:
ArpHeader ah_src;
if (eh_src.GetLengthType() == ArpL3Protocol::PROT_NUMBER)
src->RemoveHeader(ah_src);
貌似挺简单的。