计算机网络 | 实验三 协议分析程序的编写

实验三 协议分析程序的编写

班级 xxx 实验环境 Win10 Pro 1709(64位)
姓名 xxx 开发环境 Visual Studio 2013
学号 xxx 测试环境 VMware + Windows XP Pro

一、实验目的

  • 掌握IP协议

  • 掌握协议分析编程的编写

二、实验内容

应用WINPCAP编写协议分析工具。将抓取的包和协议分析结构显示在界面上。

三、实验原理

3.1 网络协议分析原理

网络协议分析是截获网络上正在传输的数据报文,并对数据报文的内容进行分析。

网络协议分析需要截获网络上的所有报文,根据上面对网卡接收模式的分析,只要将网卡的接收模式置于混杂模式即可实现。在接收到网络上所有的数据报文后,通过相应的网络协议分析软件进行处理,可以实时分析这些数据的内容,进而分析网络状态和整体布局。

网络协议分析技术主要用来帮助网络管理员对网络进行管理。通过网络协议分析技术,网络管理员可以了解目前网络中正在应用的协议种类,每种协议所占的比例,及哪些设备应用哪些协议进行通讯;同时可以分析协议应用的合理性与有效性,从而合理的选择协议,节约有限的网络宽带,提高网络传输效率;另外,可以诊断出大量的不可见模糊问题,为管理员管理网络区域提供了非常宝贵的信息。

3.2 TCP包格式分析

TCP报文段结构如图所示

计算机网络 | 实验三 协议分析程序的编写_第1张图片

  • 源端口:指定了发送端的端口 目的端口:指定了接受端的端口号
  • 序号:指明了段在即将传输的段序列中的位置
  • 确认号:规定成功收到段的序列号,确认序号包含发送确认的一端所期望收到的下一个序号
  • TCP偏移量:指定了段头的长度。段头的长度取决与段头选项字段中设置的选项
  • 保留:指定了一个保留字段,以备将来使用
  • 标志:SYN、ACK、PSH、RST、URG、FIN
    • SYN: 表示同步
    • ACK: 表示确认
    • PSH: 表示尽快的将数据送往接收进程
    • RST: 表示复位连接
    • URG: 表示紧急指针
    • FIN: 表示发送方完成数据发送
  • 窗口:指定关于发送端能传输的下一段的大小的指令
  • 校验和:校验和包含TCP段头和数据部分,用来校验段头和数据部分的可靠性 紧急:指明段中包含紧急信息,只有当U R G标志置1时紧急指针才有效
  • 选项:指定了公认的段大小,时间戳,选项字段的末端,以及指定了选项字段的边界选项

3.TCP连接建立、释放

采用三步握手法,正常情况下建立TCP连接

计算机网络 | 实验三 协议分析程序的编写_第2张图片

  1. 主机1发出连接序号为x(seq=x);

  2. 主机2应答接受主机1的连接请求,并声明自己的序号为y(seq=y,ACK=x+1);

  3. 主机1收到确认后发送第一个数据TPDU并确认主机2的序号(seq=x,ACK=y+1),至此,整个连接建立过程正常结束,数据传输已正式开始;

四、实验思路

4.1 项目概述

  • 项目名称:基于WinPcap的协议分析程序
  • 项目目标:实现一个网络抓包分析系统
  • 项目功能
    1. 搜索并显示所有的网卡设备
    2. 根据所选网卡进行抓包操作,并显示数据包的基本信息:如类型、时间、IP地址等信息
    3. 对数据包进行详细分析,显示数据内容

4.2 设计步骤

  • 1.设计一个主类(所有其他的首部类都要继承这个类),在这个类中有一个成员变量:该类的一个指针;还有两个虚函数:一个用于分析首部,另一个用于打印首部信息。
  • 2.其他所有首部均继承该类,并分别实现里面的两个虚函数。
  • 3.所有的首部分为三层(暂时,如果以后要分析应用层协议就是四层),上一层分析完首部后,根据协议类型实现那个指针,并调用相应的函数,到最后一层时,指针为NULL。
  • 4.从第一层开始,逐层打印那些信息,直到那个指针为NULL为止。
  • 5.在info中加一个变量 Head_Super* 用于存储首部,然后还要设置几个全局变量用于在面板上显示源IP,目的IP,还有数据包类型等。

五~八 [程序略去]

九、习题与思考题

1、应用WINPCAP能实现哪些网络应用?

  • 捕获原始数据包。不管这个包是发往本地机,还是其他机器之间的交换包

  • 在数据包被发送到应用程序之前,通过用户定义的规则过滤

  • 向网络发送原始数据包

  • 对网络通信量做出统计

你可能感兴趣的:(实验,考试与课设)