实验任务:
使用前期搭建好的开发环境(Centos7.0+gcc+libpcap),使用C/C++语言开发一个应用程序,打开虚拟机网卡(与物理主机在同一个子网的)设备,抓取数据包,并对数据包内容进行解析。
实验内容:
1.使用libpcap库的pcap_open_live()函数,打开虚拟机网卡,并根据打开成功与否,打印“Hello+你的姓名!”(成功)或“Sorry+你的姓名!”(失败)
2.使用libpcap库的pcap_open_live()函数,第四个参数使用0,打开虚拟机网卡,然后使用pcap_next()函数,抓取一个数据包,并根据抓包成功与否,打印“Hello+你的姓名!”(成功)或“Sorry+你的姓名!”(失败)
3.针对你抓取到的数据包进行如下解析:
数据链路层头部:查找并阅读RFC894,针对数据链路层头部进行解析,并输出各个字段名称+对应字段取值,并解释含义。如:TYPE=0x8864表示以太网负载为PPPoE数据,YPE=0x8864表示以太网负载为IP数据。
网络层头部:查找并阅读RFC791,针对IP层头部进行解析,并输出各个字段名称+对应字段取值,并解释含义。
传输层头部:查找并阅读RFC768(UDP),或RFC793,针对传输层UDP头部,或者TCP头部进行解析,并输出各个字段名称+对应字段取值,并解释含义。
常用的协议与RFC对应信息:https://blog.youkuaiyun.com/u011474028/article/details/50902951
实验过程填写要求:对以上3项内容,写出详细步骤,并将每一层数据PDU的解析结果抓图放入报告中
实验过程:
实验步骤:
实验内容1和2,见“网络编程工程实训__实验一 使用Libpcap库抓包