1、 计算机网络计算机网络 课程设计报告课程设计报告 题 目: 解析 ARP 数据包 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 评阅意见: 评定成绩: 指导老师签名: 年 月 日 1 目 录 一、课程设计目的: . 2 二、课程设计要求: . 2 三、课程设计分析 . 3 1课程设计中的重点及难点 3 2.参考算法 3 3.核心代码 4 四、源程序及运行截图 . 5 五、心得体会 . 9 六、参考文献 10 2 一、课程设计目的一、课程设计目的: 本课程设计的目的是对网络上的 ARP 数据包进行解析,从而熟悉 ARP 数据 包的结构,对 ARP 协议有更好的理解和认识。 二、课程设计
2、要求二、课程设计要求: 通过编制程序,获取网络中的 ARP 数据包,解析数据包的内容,将结果显 示在标准输出上,并同时写入日志文件。 程序的具体要求如下所示: 1以命令行的形式运行,如下所示: arpparse logfile 其中,arpparse 为程序名;logfile 为日志文件名。 2程序输出内容如下所示: 源 IP 地址 源 MAC 地址 目的 IP 地址 操作 时间 各部分的说明如下所示: 源 IP 地址:输出 ARP 消息格式中的源 IP 地址字段。 源 MAC 地址:输出 ARP 消息格式中的源物理地址字段。 目的 IP 地址:输出 ARP 消息格式中的目的 IP 地址字段。
3、 目的 MAC 地址:输出 ARP 消息格式中的目的物理地址字段。 操作:输出 ARP 消息格式中的操作字段,若为 ARP 请求,则为 1, 若为 ARP 应答,则为 2。 时间:该 ARP 包产生的时间 3.当程序接收到键盘输入 Ctrl+C 时退出。 3 三、三、课程设计分析课程设计分析 1 1课程设计中的重点及难点课程设计中的重点及难点 1) 程序中会用到 Winpcap, Winpcap 是 Win32 环境下数据包捕获的开放代码 函数库。基于 Winpcap 的应用程序一般按照下面几个步骤进行设计: 输出网卡设备列表。 选择网卡并打开。 捕获数据包时,可能需要设置过滤器。 捕获数据包
4、或者发送数据包。 2) 在程序设计过程中需要注意网络主机字节顺序的转化。由于不同的计 算机系统所采用的数据表示方式不同,对于 2B 或 4B 的数据,有的采用 低字节地址存放数据的高权值位,而有的却以低地址字节存放数据低权 位值,在网络的数据传输中,我们应该统一表示,所以我们在捕获数据 包后,应将数据包头部的表示长度或类型的数据转换成本地机的表达形 式。可以利用函数 ntohs()将网络字节序转换为主机字节序。 3) 选择网卡并打开时,注意选择可用的网卡。 2.2.参考算法参考算法 1) 取得当前网卡设备列表。 2) 选择 Ethernet 网卡并打开,注意判断所选网卡是否为实际存在的可用网 卡。 3) 设置过滤器,此处的过滤器正则表达式为“arp”或者“ether protoarp”。 4) 捕获数据包并进行处理(包括输出各 IP 地址,物理地址,操作类型以及 时间) 。由于要记录日志文件,为了便于