基于C语言的局域网截包程序设计与实现

版权申诉
0 下载量 160 浏览量 更新于2024-08-22 收藏 15KB PDF 举报
局域网截包程序设计参照 本实验的目的是设计一个局域网截包程序,以帮助学生更好地理解网络的工作机制,包括封包机制、协议分析等。实验内容包括确定截包的方法、截获并分析各种类型的包、编写基于 RAW 模式 SOCKET、PACKET32 或 NDIS 驱动程序的局域网截包实现程序、在模拟实现环境下调试并运行自己编写的协议实现程序等。 知识点一:局域网的安全隐患 * 以太网采用广播技术基础,任何两个节点之间的通信数据包可以被同一以太网上的任何一个节点的网卡所截取,从而带来安全隐患。 * 黑客可以通过接入以太网上的任一节点进行侦听,捕获所有数据包,对其进行解包分析,从而窃取关键信息。 知识点二:实验目的 * 实现一个局域网截包程序,使学生能更好地理解网络的工作机制。 * 该实验是对《计算机网络》课程的一个有益的补充。 知识点三:实验内容 * 确定截包的方法:包括 RAW 模式 SOCKET、PACKET32 以及直接作为驱动程序挂在 NDIS 上。 * 截获以下包的类型并分析:以太网帧格式、IP 包、ICMP 包、TCP 报文段、UDP 报文等相关字段进行描述。 知识点四:实验步骤和注意事项 * 实验步骤:熟悉 RAW 模式的 SOCKET 编程、PACKET32 的工作机制、WINDOWS2000 环境下 NDIS 驱动程序的编写方法、编写基于上述某一机制的局域网截包的实现程序、在模拟实现环境下调试并运行自己编写的协议实现程序、如出现异常情况,在实验报告中记录并分析可能的原因。 知识点五:协议实现程序的编写 * 使用 C 语言实现实验内容,包括编写基于 RAW 模式 SOCKET、PACKET32 或 NDIS 驱动程序的局域网截包实现程序。 * 使用 #define 语句定义常量,例如 RCVALL_ON1、MAX_ADDR_LEN、MAX_PROTO_TEXT_LEN 等。 * 使用 typedef 语句定义结构体,例如 iphdr 结构体。 * 使用 #include 语句包含头文件,例如 stdio.h、winsock2.h、mstcpip.h、conio.h 等。 知识点六:协议分析 * 以太网帧格式:包括目的 MAC 地址、源 MAC 地址、以太网类型、数据部分等字段。 * IP 包:包括版本号、服务类型、总长度、标识、标志、偏移、生存时间、协议、校验和、源 IP 地址、目的 IP 地址等字段。 * ICMP 包:包括类型、代码、校验和、标识、序号、数据部分等字段。 * TCP 报文段:包括源端口号、目的端口号、序号、确认号、标志、窗口、校验和、紧急指针、数据部分等字段。 * UDP 报文:包括源端口号、目的端口号、包长、校验和、数据部分等字段。 知识点七:实验报告 * 在实验报告中记录实验过程、实验结果和可能的原因。 * 分析出现的异常情况,并记录可能的原因和解决方法。
2023-06-12 上传