实验5_分析IP数据报格式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验5 分析IP数据报格式
5.1 实验目的
了解IP数据报的格式;
理解IP 各个数据项的涵义;
5.2 相关背景知识
1. Winpcap基本介绍
数据报捕获的原理:为了进行数据报,网卡必须被设置为混杂模式。

在现实的网络环境中,存在着许多共享式的以太网络。

这些以太网是通过Hub 连接起来的总线网络。

在这种拓扑结构的网络中,任何两台计算机进行通信的时候,它们之间交换的报文全部会通过Hub 进行转发,而Hub以广播的方式进行转发,网络中所有的计算机都会收到这个报文,不过只有目的机器会进行后续处理,而其它机器简单的将报文丢弃。

目的机器是指自身MAC 地址与消息中指定的目的MAC 地址相匹配的计算机。

网络监听的主要原理就是利用这些原本要被丢弃的报文,对它们进行全面的分析,这样就可以得到整个网络中信息的现状。

Tcpdump的简单介绍:Tcpdump是Unix平台下的捕获数据报的一个架构。

Tcpdump最初有美国加利福尼亚大学的伯克利分校洛仑兹实验室的Craig Leres、Van Jcaobson和Steve McCanne共同开发完成,它可以收集网上的IP数据报文,并用来分析网络可能存在的问题。

现在,Tcpdump已被移植到几乎所有的UNIX系统上,如:HP-UX、SCO UNIX、SGI Irix、SunOS、Mach、Linux和FreeBSD等等。

更为重要的是Tcpdump是一个公开源代码和输出文件格式的软件,我们可以在Tcpdunp的基础上进行改进,加入辅助分析的功能,增强其网络分析能力。

(详细信息可以参看相关的资料)。

Winpcap的简单介绍:Winpcap是由意大利Fulvio Risso和Loris Degioanni等人提出并实现的应用于Win32平台的数据报捕获与分析的一种软件包,包括内核级的数据报监听设备驱动程序、低级动态链接库(Packet.dll) 和高级系统无关库(Winpcap.dll)。

Winpcap 由3个模块组成:(1)NPF(NetgroupPacket Filter),是一个虚拟设备驱动程序文件。

它的功能是过滤数据报,并把这些数据报原封不动地传给用户态模块。

(2)Packet.dll为Win32平台提供了一个公共的接口。

不同版本的Windows系统都有自己的内核模块和用户层模块。

Packet.dll直接映射了内核的调
用,运行在用户层,把应用程序和数据报监听设备驱动程序隔离开,使应用程序可以不加修改地在不同的Windows系统上运行。

通过Packet.dll提供的能用来直接访问BPF驱动程序的包驱动API利用raw模式发送和接收包。

(3)Wpcap.dll是不依赖于操作系统的。

Wpcap.dll 和应用程序链接在一起,使用低级动态链接库提供的服务,向应用程序提供完善的监听接口和更加友好、功能更加强大的函数调用。

Winpcap(Windows packet capture)是Windows平台下一个免费、公共的网络访问系统。

开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。

它提供了以下的各项功能:
(1)捕获原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据报;
(2)在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉;
(3)在网络上发送原始的数据报;
(4)收集网络通信过程中的统计信息。

(详细信息可以参看相关的资料)
2. IP数据报的格式
IP数据报的由首部和数据两部分组成。

首部的前一部分是固定长度,共20个字节,是所有IP数据报必须具有的。

在首部的固定部分的后面是一些可选字段,其长度是可变的。

下图是IP数据报的格式:
0 4 8 16 19 24 31
图5-1 IP数据报的格式
3. TCP报文段的格式
一个TCP报文段分为首部和数据两部分,TCP的全部功能都体现在首部中各个字段的作用。

基于这一点,能清楚了TCP首部各个字段的作用也就掌握了TCP的工作原理。

TCP报文首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N必须是整数),因此TCP首部的最小长度是20字节。

图5-2是TCP数据报文首部的格式。

0 8 16 24 31
图5-2 TCP 数据报文的首部格式 TCP 是TCP/IP 体系中面向连接的运输层协议,它提供全双工的和可靠交付的服务。

TCP 则提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。

由于TCP 要提供可靠的、面向连接的运输服务,因此,不可避免地增加了许多开销,如确认、流量控制、计时器以及连接管理等,这就使协议数据单元的首部增加很多。

4. UDP 数据报的格式
UDP 在传送数据之前不需要先建立连接,远地主机的运输层在收到UDP 数据报文后,不需要给出任何确认。

因此UDP 数据报的首比较简单。

UDP 数据报首部由4个字段组成,每个字段都是2个字节。

UDP 首部格式及含义见表5-1.
表5-1 UDP 首部格式及含义
5. 伪首部
无论是TCP 报文段,还是UDP 数据报,在计算校验和时,都需要增加12个字节的伪首部。

所谓伪首部是因为这种首部并不是TCP
报文段或UDP 数据报的真正首部,只是在计算校验和时,临时和TCP 报文段或UDP 数据报连接在一起,得到一个过渡的TCP 报文段或UDP 数据报。

校验和就是按照这个过渡的TCP 报文段或UDP 数据报计算的。

伪首部不向下传送也不向上传递,而仅仅是为了计算校验和。

伪首部各字段内容及长度如图5-3所示。

字节 4 4 1 1 2
图5-3 求检验和时增加的伪首部
5.3 实验内容
1. 查看捕获到的数据报的首部;
2. 解读本程序的源代码;
3. 根据所捕获到的IP数据报中协议字段值,每一种协议选择一条记录分别填入表5-2中;
表5-2 IP数据报格式表
4. 分析实验结果,加深对数据报首部个字段的理解;
5. 整理实验结果,书写实验报告。

5.4 实验步骤
运行程序monitor.exe文件,将显示如图5-4所示运行界面:
图5-4 运行界面1
选中一条数据报记录,点击“数据分析”,运行界面如图5-5所示:
图5-5 运行界面2
或者选择其他抓包工具,抓取IP数据报进行相应的记录和分析。

5.5 实验要求
1. 理解IP数据报的概念和格式,要求至少记录分析三种不同类型数据内容的IP数据报:ICMP、TCP、UDP等。

注意:若想捕获到协议类型为ICMP协议的IP数据报,请事先运行ping命令,例如ping 192.168.1.98 –t。

2.了解Winpcap等抓包程序的原理和体系结构。

3. 理解IP数据报中数据部分的内容:TCP报文段和UDP用户数据报的首部格式。

4. 理解伪首部的概念。

5. 写出自己实验过程中出现的问题、解决方法,及实验的心得体会。

相关文档
最新文档