实验任务
使用前期搭建好的开发环境(Centos7.0+gcc+libpcap),使用C/C++语言开发一个应用程序,打开离线数据包文件(前期使用tcpdump抓取的数据包文件,已经发送给大家),从其中抓取一个数据包,并对数据包内容进行解析。
实验内容:
1.使用libpcap库的pcap_t *pcap_open_offline(const char *fname, char *errbuf)函数,打开离线文件(离线文件以绝对路径的做为第一个参数,保存出错信息的字符串做为第二个参数,返回一个设备指针),并根据打开成功与否,打印“Hello+你的姓名!”(成功)或“Sorry+你的姓名!”(失败)
2.使用上一步中获取的设备,使用pcap_next()函数(或pcap_next_ex()函数),从离线文件中抓取一个数据包,并根据抓包成功与否,打印“Hello+你的姓名!”(成功)或“Sorry+你的姓名!”(失败)
3.针对你抓取到的数据包进行如下解析:
数据链路层头部:查找并阅读RFC894,针对数据链路层头部进行解析,并输出各个字段名称+对应字段取值,并解释含义。如:TYPE=0x8864表示以太网负载为PPPoE数据,YPE=0x8864表示以太网负载为IP数据。
PPPoE头部解析:查找并阅读RFC 2516&