当前位置:文档之家› 网络协议分析课程设计-IP协议

网络协议分析课程设计-IP协议

private void Receive(byte[] buf, int len)//解析接收的数据包
};
3.2.
class squar
{
private string ip_version;//版本
private uint header_length;//首部长度
private string service_type;//服务类型
IPAddress[] addr = ipEntry.AddressList;
public byte ip_protocol;
public ushort ip_checksum;
public uint ip_srcaddr;
public uint ip_destaddr;
}
3.4.
3.4.1.
菜单栏及工具栏包含了基本操作按钮,包括退出程序,关于信息,选择IP,开始捕获和导出日志。窗体主要为显示报文信息的列表区和具体字段区,分别用树视图显示。具体界面如图3-1所示。
};
3.3.
public struct IPHeader
{
public byte ip_verlen;
public byte ip_tos;
public ushort ip_totallength;
public ushort ip_id;
public ushort ip_offset;
public byte ip_ttl;
根据分析后的程序结构图设计出相应的流程图。内容主要包括初始化,获得主机IP列表,绑定Socket,开始捕获数据,分析数据,显示数据项,导出日志文件,根据用户操作退出程序。
图2-2流程图
第三章源自文库
3.
根据程序的结构,将程序需要实现的功能细化为相应的类属性和成员函数。程序有两个类,一个RawSocket类,用于数据包相关捕获和处理。一个EventArgs类,用于类间传递信息。同时还有一个公共结构体,对应IP数据包的格式。
1.1.2.
IP数据包是网络协议学习过程中容易接触到的,选择这个题目一是为了将自己的所学知识加以运用,二是希望通过探索实践去实现题目,在实践和实际的项目中提高自己的编程能力。因此我选定了这个题目。
1.2.
本程序使用C#语言,MicrosoftVisualStudio 2005进行编译。Visual Studio 是微软公司推出的开发环境,Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。
选定本机IP后,程序捕获经过对应网卡的IP数据报,根据IP数据报的结构,拆分获得各字段的值,显示在窗口上。同时程序可以将捕获的所有数据信息导出到日志文件。
参考资料:
《网络协议分析》寇晓蕤罗军勇蔡延荣机械工业出版社
完 成 期 限:2011.6.13-2010.6.17
指导教师签名:
课程负责人签名:
2010年 6月 17 日
图3-1
3.4.2.
通过System的Net类函数,容易获得主机的所有IP。代码如下:
private void GetHostIP()
{
string hostName = Dns.GetHostName();
IPHostEntry ipEntry = Dns.GetHostEntry(hostName);
private string protocol;//协议
private string checksum;//校验和
private string destination_address;//目的IP地址
private string origination_address;//源IP地址
private uint message_length;//数据长度
3.1.
public class RawSocket
{
private bool error_occurred;//是否产生错误
public bool KeepRunning;//是否继续进行
private static int len_receive_buf;//得到的数据流的长度
byte[] receive_buf_bytes;//收到的字节
郑州轻工业学院
网络协议分析课程设计
设计题目:解析IP数据包
姓名:
院(系):
专业班级:
学号:
指导教师:
成绩:
时间:2011年6月12日至2011年6月17日
郑州轻工业学院
课 程 设 计 任 务 书
题目解析IP数据包
专业、班级学号姓名
程序在Windows窗口环境下捕获IP数据报,并解析出各个字段信息,显示在窗口中。
1.3.
经测试,本程序可以在windows操作系统中稳定运行,较为稳定。要求至少安装.Net Framework 2.0。
第二章
2.
根据分析,这个程序要实现如下几个功能,初始化、捕获数据包、显示、导出日志。其中捕获数据包是程序的核心部分,是后续操作的基础。程序结构如图2-1所示。
图2-1程序结构图
2.1.
第一章
1.1.
1.1.1.
(1)捕获网络中的IP数据包,解析数据包的内容,显示结果,并将结果写入日志文件。
(2)显示的内容包括:捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。
(3)设置停止标志,当程序接收到停止命令时即停止。
private uint total_packet_length;//总长度
private string identification;//标识
private string flags;//标志
private string fragment_offset;//片偏移量
private string time_to_live;//寿命
private Socket socket = null; //声明套接字
public void Run()//开始接收
public void CreateAndBindSocket(string IP)//建立并绑定套接字
public void Shutdown()//停止接收
private bool SetSocketOption()//设置套接字
相关主题