通过编程实现一个网络协议分析器,该协议分析器包含4个模块:捕获模块、协议解析模块、协议构造模块和帮助模块。
1. 捕获模块——捕获经过本机的数据包
通过端口选择,选择用户想要捕获数据的网络端口,然后选择相应协议,捕获指定协议的网络数据包(即程序内部设置过滤规则,捕获固定端口具体协议的网络数据包)。
2. 协议解析模块——对捕获的数据包进行协议分析,直观显示分析结果
通过协议选择,可以对捕获到的每个数据包进行详细的解析和分析。
3. 协议构造模块——发送自己构造的不同协议的数据包
用户可以自己设置要发送的数据包各层协议首部的内容,同时可以自己设置合法的源地址以及目的地址进行数据包的发送,通过某种判断机制辨别所构造的数据包是否合法。如果合法,则将用户自己构造的数据包,由用户指定的源地址发往用户指定的目的地址,实现构造发送数据包的功能要求。(例如:可以利用Libnet提供的库函数在IP层或数据链路层构建数据包。首先,对网络进行初始化,得到原始套接字或打开网络接口,为数据包分配存储空间,然后对于不同的协议调用相应的数据包构造函数来构造数据包,计算数据包的校验和,最后调用函数向网络发送数据包。)
4. 帮助模块——协议简介、系统简介
提供多种协议的简单介绍,以及本系统的使用说明等。