当前位置:文档之家› 实验6 分析IP数据报格式

实验6 分析IP数据报格式

实验6 分析IP数据报格式
实验6 分析IP数据报格式

实验6 分析IP数据报格式

6.1 实验目的

1. 了解IP数据报的格式;

2. 理解IP 各个数据项的涵义;

3. 理解TCP、UDP协议的工作原理;

4. 了解TCP报文段、UDP数据报各个字段的作用。

6.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 求检验和时增加的伪首部

6.3 实验内容

1. 查看捕获到的数据报的首部;

2. 根据所捕获到的IP数据报中协议字段值,每一种协议选择一条记录分别填入表5-2中;

表5-2 IP数据报格式表

3. 分析实验结果,加深对数据报首部个字段的理解;

4. 整理实验结果,书写实验报告。

6.4 实验步骤

1. 运行程序Wiresharkr软件,将显示如图5-4所示运行界面:

图5-4 运行界面

2. 然后捕获数据包,如图5-5捕获数据包后的界面,所示

图5-5捕获数据包后的界面

3. 在数据包列表中,选中一条数据报记录,运行界面如图5-6数据包列表,

所示:

图5-6 数据包列表

在图5-6中,鼠标单击某个数据包反蓝显示。与此同时,在“数据包详细信息”窗口、“解析器窗口”中会分别显示这个数据包的所有信息以及16进制数

据信息,如图5-7数据包详细信息,所示。

或者选择其他抓包工具,抓取IP数据报进行相应的记录和分析。

6.5 实验报告要求

在实验报告中应记录实验目的、实验环境,简要实验内容和实验步骤,实验数据要包括以下内容:

1. 记录本机IP协议的配置信息:IP地址、子网掩码、默认网关;

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

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

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

解析IP数据包课程设计

课程设计任务书

目录1.实验目的2.实验要求3.预备知识4.课程设计分析5.实现过程6.程序流程图7.相关扩展8.实习体会9.参考文献

一.实验目的: 设计一个解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而IP层的工作原理有更好的理解和认识. 二.实验要求: 本设计的目标是捕获网络中数据包,解析数据包的内容,将、结果显示在标准输出上,并同时写入日志文件. 程序的具体要求如下: 3)以命令行形式运行:ipparse logfile,其中ipparse是程序名,而logfile则代表记录结果的日 志文件. 4)在标准输出和日志文件中写入捕获的IP数据包的版本,头长度,服务类型,数据包总长度, 数据包标识,分段标志,分段偏移值,生存时间,上层协议类型,头校验和,源IP地址和目的IP地址等内容. 当程序接收到键盘输入Ctrl+C时退出. 三.预备知识 互联网络层是TCP/IP协议参考模型中的关键部分.IP协议把传输层送来的消息组装成IP数据包,并把IP数据包传送给数据链层.IP协议在TCP/IP协议族中处于核心地位,IP协议制定了统一的IP数据包格式,以消除个通信子网中的差异,从而为信息发送方和接收方提供了透明的传输通道.编制本程序前,首先要对IP包的格式有一定了解,图1给出了IP协议的数据包格式. IP数据包的第一个字段是版本字段,其度是4位,表示所使用的IP协议的版本.目前的版本是IPV4,版本字段的值是4,下一代版本是IPV6,版本字段值是6.本程序主要针对版本是IPV4的数据包的解析. 报头标长字段为4位,它定义了以4B为一个单位的IP包的报文长度.报头中除了选项字段和填充域字段外,其他各字段是定长的.因此,IP数据包的头长度在20—40B之间,是可变的. 0 4 8 16 19 24 图1 IP数据包的格式 服务类型字段共8位,用于指示路由器如何处理该数据包.该字段长度由4位服务类型(TOS)子域和3位优先级子域组成,1位为保留位,该字段结构如图2所示. B7 b6 b5 b4 b3 b2 b1 b0

以太网数据包格式

时隙在一般的数字通信原理中是这样定义的: 由各个消息构成的单一抽样的一组脉冲叫做一帧,一帧中相邻两个脉冲之间是时间间隔叫做时隙. 而以太网的时隙有它自己的特定意义. (1)在以太网CSMA/CD规则中,若发生冲突,则必须让网上每个主机都检测到。但信号传播到整个介质需要一定的时间。 (2)考虑极限情况,主机发送的帧很小,两冲突主机相距很远。在A发送的帧传播到B的前一刻,B开始发送帧。这样,当A的帧到达B时,B检测到了冲突,于是发送阻塞信号。 (3)但B的阻塞信号还没有传输到A,A的帧已发送完毕,那么A就检测不到冲突,而误认为已发送成功,不再发送。 (4)由于信号的传播时延,检测到冲突需要一定的时间,所以发送的帧必须有一定的长度。这就是时隙需要解决的问题。 这里可以把从A到B的传输时间设为T,在极端的情况下A要在2T的时间里才可以检测到有冲突的存在 1,电磁波在1KM电缆的传输时延约为5us(这个数字应该记下来~~~),如果在理想情况下 2,在10Mbps的以太网中有个5-4-3的问题:10 Mb/s以太网最多只能有5个网段,4个转发器,而其中只允许3个网段有设备,其他两个只是传输距离的延长。按照标准,10Mbps以太网采用中继器时,连接最大长度为2500米! 那么在理想的情况下,时隙可以为2500/1000*5*2us=25us,但是事实上并非如此简单.实际上的 时隙一定会比25us大些.接下来说明一下~~~ 3,在以太网在,时隙也可以叫做争用期,只有经过争用期这段时间没有检测到冲突碰撞,发送端才能肯定这次发送不会发生碰撞.然后当发生了碰撞而停止之后,以太网上的机器会再次侦听,再发送,这就有个再 次碰撞的可能性,这里以太网使用了截断二进制指数类型的退避算法来解决,在碰撞之后,会推迟一个随机时间(具体略),这也会对争用期的选择有些影响. 而这个截断二进制指数类型的退避算法的有关说明,可以看看我回的这个帖子~

IP数据报格式

IP数据报格式 TCP/IP协议定义了一个在因特网上传输的包,称为IP 数据报(IP Datagram)。这是一个与硬件无关的虚拟包, 由首部和数据两部分组成,其格式如图所示。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP协议地址 1、IP数据报首部的固定部分中的各字段 (1)版本占4位,指IP协议的版本。通信双方使用的IP 协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。 (2)首部长度占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP 协议时较为方便。首部长度限制为60 字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何

选项。 (#我们一般看到的版本和首部长度两个字段是十六进制45,就是版本号version=4,headlength=5,也就是首部长度是60个字节) (3)区分服务占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。 (4)总长度总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为 216-1=65535字节。 #可以看这个以太网frame总长为336字节,而IP数据包Total length=322,336-322=14正好是Ethernet包头的长度,所以就可以看出这IP数据包总长度一值就是除去Ethernet头的剩余长度,也就是IP包头加数据的长度。 在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。 (5)标识(identification)占16位。IP软件在存储器中维

TCPIP实验之IP数据包分析--

TCP/IP协议与编程实验 姓名: 班级: 学号: 实验题目用Wireshark抓包分析ip数据包 一、实验目的 1、了解并会初步使用Wireshark,能在所用电脑上进行抓包 2、了解IP数据包格式,能应用该软件分析数据包格式 3、查看一个抓到的包的内容,并分析对应的IP数据包格式 二、实验内容 Wireshark 是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。 实验步骤: 1、打开wireshark,选择接口选项列表。或单击“Capture”,配置“option” 选项。

2、设置完成后,点击“start”开始抓包: 3、显示结果: 3、选择某一行抓包结果,双击查看此数据包具体结构。

4、捕捉IP数据报。 ① 写出IP数据报的格式。 IP数据报首部的固定部分中的各字段含义如下: (1)版本占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。 (2)首部长度占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60 字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部

3)区分服务占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务 DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。 (4)总长度总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。长度就是20字节(即首部长度为0101),这时不使用任何选项。 (5)标识(identification) 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。 (6)标志(flag) 占3位,但目前只有2位有意义。 标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。 标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。 7)片偏移占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8 个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。 (8)生存时间占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。 #TTL通常是32或者64,scapy中默认是64 (9)协议占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。(在scapy中,下层的这个protocol一般可以从上曾继承而来,自动填充,我们一般可以省略不填此项) (10)首部检验和占16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和

实验4_IP协议分析

实验4 IP协议分析 在这个实验里,我们将研究IP协议,通过执行traceroute程序来分析IP数据包发送和接收的过程。我们将研究IP数据包的各个字段,详细学习IP数据包的分片。 一、捕获traceroute 为了产生一个IP数据包,我们将使用traceroute程序来向一些目的地发送不同大小的数据包,这个软件我们在第一个实验已作过简单的尝试了。 但我们试图在IP头部首先发送一个或者更多的具有TTL的数据包,并把TTL的值设置为1;然后向同一个目的地发送一系列具有TTL值为2的数据包;接着向同一个目的地发送一系列具有TTL值为3的数据包等等。路由器在每次接收数据包时消耗掉一个TTL,当TTL达到0时,路由器将会向源主机返回一个ICMP的消息(类型为11的TTL溢出),这样一个TTL值为1的数据包将会引起路由器从发送者发回一个ICMP的TTL溢出消息产生一跳,TTL值为2的数据包发送时会引起路由器产生两跳,TTL值为3的数据包则会引起路由器产生3跳。基于这种方式,主机可以执行traceroute观察ICMP的TTL溢出消息,记录每个路由器的ICMP的溢出消息的源IP地址,即可标识出主机和目的地之间的所有路由器。 我们要运行traceroute让它发送多种长度的数据包,由Windows提供的tracert程序不允许改变由tracert程序发送的ICMP的回复请求消息的大小,在Windows下比较好的一个是pingplotter,它可以在以下网站下载共享版本(现在已下载好存在共享文件夹的压缩包中): 安装pingplotter标准版(你有一个30天的试用期),通过对你所喜欢的站点执行一些traceroute来熟悉这个工具。ICMP回复请求消息的大小可以在pingplotter中设置:Edit-> Options->Default Setting->enginet,在packet size字段中默认包的大小是56字节。pingplotter 发送一系列TTL值渐增的包时,Trace时间间隔的值和间隔的个数在pingplotter中能够设置。按下面步骤做: 1启动Iris,开始包捕获; 2启动pingplotter,然后在“Address to Trace”窗口输入目的地目标的名字: 172.16.1.1 (1岛输入172.16.6.1) 在“# of times to Trace”区域输入3。然后选择Edit-> Options->Default Setting->engine,确认在packet size字段的值为56,点OK。然后按下 Trace按钮。你看到的pingplotter窗口类似如上:

IP数据包格式简介

IP 数据包格式 IP 数据包是网络传输的信封,它说明了数据发送的源地址和目的地址,以及数据传输状态。一个完整的数据包由首部和数据两部分组成。首部前20字节属于固定长度,是所有IP 数据包必须有的,后面是可选字段,其长度可变,首部后面是数据包携带的数据,见图5.3.1。 48 16 19 31 版本号 标志 生存时间 协 议标 识 服务类型数据包总长度 段偏移首 部 检 验 和 源地址目 的地址可 选字段+ 填 充位首部长度 数 据部 分 数 据 首部首部 IP 数据包 发送 图5.3.1 IP 数据包格式 1. 版本号(4bit ) 版本号占4位,是IP 协议所使用的版本号,目前是广泛使用的是第四版本,即IPv4。 2. 首部长度(4bit ) 首部长度用于指出IP 包头长度,用于标识数据包头在何处结束,所携带的数据在何处开始。首部长度占四位,数值范围5~15,以4字节为单位,则IP 首部长度为20字节~60字节。如假设首部长度取值“1010”,转换为十进制为“10”,表示IP 包头长度为10×4=40字节,数据从第41字节开始。 3. 服务类型(8bit ) 服务类型用于获得更好服务,大多数情况下并不使用。当网络流量较大时,路由器会根据不同数据包服务类型取值决定哪些先发送,哪些后发送,见图5.3.2。 D 优先级T R C 未用 0 1 2 3 4 5 6 7 图5.3.2 服务类型格式 (1)前3个bit 表示优先级,取值范围0~7共8个优先级,数值越低优先级越高。 (2)后四位是服务类型子字段,用于标识QOS 质量服务。 D :表示要求更低时延 T :表示要求更多吞吐量 R :表示要求更多可靠性 C :表示要求更小路径开销 注:DTRC 默认4位值都为0,表示一般服务;

解析IP数据包课程设计报告

成绩评定表

课程设计任务书

目录 1 课程设计目的 (1) 2 课程设计要求 (2) 3 相关知识 (3) 4 课程设计分析 (6) 5 程序代码 (11) 6 运行结果与分析 (18) 7 参考文献 (18)

1 课程设计目的 IP数据包是网络成传输的基本数据单元,熟悉IP数据包结构对于理解网络工作原理具有重要意义。本课程设计的主要目的是通过接受与解析IP数据包,了解IP数据包的基本结构与IP协议的基本功能。

2 课程设计要求 根据后面介绍的IP数据包结构,编写程序接收并解析IP数据包。 1)以命令行形式运行; ParsePacket log_file 其中,ParsePacket为程序名,log_file为日志文件名。 2)输出内容:IP数据包的各字段值,包括版本、头部长度、服务类型、总长度、标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址 和目的IP地址等。 3)当程序接收到键盘输入Ctrl+C时退出。

3相关知识 互联网络层是TCP/IP协议参考模型中的关键部分.IP协议把传输层送来的消息组装成IP数据包,并把IP数据包传送给数据链层.IP协议在TCP/IP协议族中处于核心地位,IP 协议制定了统一的IP数据包格式,以消除个通信子网中的差异,从而为信息发送方和接收方提供了透明的传输通道.编制本程序前,首先要对IP包的格式有一定了解,图1给出了IP 协议的数据包格式. IP数据包的第一个字段是版本字段,其度是4位,表示所使用的IP协议的版本.目前的版本是IPV4,版本字段的值是4,下一代版本是IPV6,版本字段值是6.本程序主要针对版本是IPV4的数据包的解析. 报头标长字段为4位,它定义了以4B为一个单位的IP包的报文长度.报头中除了选项字段和填充域字段外,其他各字段是定长的.因此,IP数据包的头长度在20—40B之间,是可变的. 0 4 8 16 19 24 31(位) 图3.1 IP数据包的格式 服务类型字段共8位,用于指示路由器如何处理该数据包.该字段长度由4位服务类型(TOS)子域和3位优先级子域组成,1位为保留位,该字段结构如图2所示. 图3.1 服务类型字段结构

IP及IPSEC协议数据包的捕获与分析

IP及IPSEC协议数据包的捕获与分析

IP及IPSEC协议数据包的捕获与分析 为了掌握掌握IP和IPSEC协议的工作原理及数据传输格式,熟悉网络层的协议。我进行了以下实验:首先用两台PC互ping并查看其IP报文,之后在两台PC上设置IPSEC互ping并查看其报文。最终分析两者的报文了解协议及工作原理。 一、用两台PC组建对等网: 将PC1与PC2连接并分别配置10.176.5.119和10.176.5.120的地址。如图1-1所示。 图1-1 二、两PC互ping: IP数据报结构如图1-2所示。 图1-2 我所抓获的报文如图1-3,图1-4所示:

图1-3 请求包 图1-4 回应包 分析抓获的IP报文: (1)版本:IPV4 (2)首部长度:20字节 (3)服务:当前无不同服务代码,传输忽略CE位,当前网络不拥塞

(4)报文总长度:60字节 (5)标识该字段标记当前分片为第1367分片 (6)三段标志分别指明该报文无保留、可以分段,当前报文为最后一段 (7)片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段 的偏移量,即在原数据报中的相对位置。 (8)生存时间:表明当前报文还能生存64 (9)上层协议:1代表ICMP (10)首部校验和:用于检验IP报文头部在传播的过程中是否出错 (11)报文发送方IP:10.176.5.120 (12)报文接收方IP:10.176.5.119 (13)之后为所携带的ICMP协议的信息:类型0指本报文为回复应答,数据部分 则指出该报文携带了32字节的数据信息,通过抓获可看到内容为:abcdefghijklmnopqrstuvwabcdefghi 三、IPSec协议配置: 1、新建一个本地安全策略。如图1-5。 图1-5 2、添加IP安全规则。如图1-6.

计算机网络课程设计-IP数据包解析实验报告

< 解析IP数据报实验报告 - … (

目录 目录 (2) 1、课程设计目的 (2) 2、课程设计要求 (2) < 3、相关知识 (2) 4、课程设计分析 (6) 网卡设置 (6) 使用套接字 (7) 接收数据包 (7) 定义IP头部的数据结构 (8) IP包的解析 (9) 协议的定义 (9) ; 捕获处理 (9) 5、运行结果 (10) 6、总结 (11) 7、课程设计参考资料 (11) 8、源程序代码 (11) , /

, 1、课程设计目的 本课程设计的目的就是设计一个解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对IP层的工作原理有更好的理解和认识。 2、课程设计要求 本设计的目标是捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。 程序的具体要求如下: 1)以命令行形式运行:ipparse logfile,其中ipparse是程序名, 而logfile 则代表记录结果的日志文件。 2)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。 3)当程序接收到键盘输入Ctrl+C时退出。 3、相关知识 互联网络层是TCP/IP协议参考模型中的关键部分.IP协议把传输层送来的消息组装成IP数据包,并把IP数据包传送给数据链层.IP协议在TCP/IP协议族

中处于核心地位,IP协议制定了统一的IP数据包格式,以消除个通信子网中的差异,从而为信息发送方和接收方提供了透明的传输通道.编制本程序前,首先要对IP包的格式有一定了解,图1给出了IP协议的数据包格式. - IP数据包的第一个字段是版本字段,其度是4位,表示所使用的IP协议的版本.目前的版本是IPV4,版本字段的值是4,下一代版本是IPV6,版本字段值是6.本程序主要针对版本是IPV4的数据包的解析. 报头标长字段为4位,它定义了以4B为一个单位的IP包的报文长度.报头中除了选项字段和填充域字段外,其他各字段是定长的.因此,IP数据包的头长度在20—40B之间,是可变的. 0 4 8 16 19 24 31 图1 IP数据包的格式 服务类型字段共8位,用于指示路由器如何处理该数据包.该字段长度由4位服务

实验 IP数据报的格式

实验IP数据报的格式 【实验目的】 1、通过分析IP数据报的格式了解IP数据报各个字段的大小、取值范围; 2、掌握它们在IP协议中所起的作用。 【实验内容】 1、分析IP数据报的结构,熟悉各个字段的内容、功能、格式和取值范围; 2、编辑IP数据报首部各字段的内容; 3、单个或批量发送已经编辑好的IP数据报。 【实验原理】 IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。20字节之后是一些可选字段,其长度是可变的。IP数据报的格式如下图所示: 版本:占4 bit,指IP协议的版本。通信双方使用的IP版本必须一致。目前广泛使用的版本号为4。 首部长度:占4 bit,可表示的最大数值是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。

服务类型:占8 bit,用来获得更好的服务。前三个比特表示优先级。第D比特表示要求有更低的时延。T比特表示要求有更高的吞吐量。R比特表示要求有更高的可靠性。C比特表示要求选择代价更小的路由。最后一个比特目前尚未使用。 总长度:占16 bit,指首部和数据之和的长度,单位为字节。 标识:占16 bit,它是一个计数器,用来产生数据报的标识。 标志:占3 bit,目前只有前两个比特有意义。最低位记为MF,MF=1表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。标志字段中间的一位记为DF,意思是“不能分片”。只有当DF=0时才允许分片。 片偏移:占13 bit,表示较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位。 生存时间:占8 bit,表示数据报在网络中可通过的路由器的最大值。 协议:占8 bit,指出此数据报携带的数据是何种协议。 首部校验和:占16 bit,只校验数据报的首部,不包括数据部分。 源IP地址:占4 bit。 目的IP地址:占4 bit。 可选字段:用来支持排错、测量以及安全等措施。此字段长度可变,从1个字节到40个字节不等,取决于所选择的项目。 【实验步骤】 练习一:分析IP数据报格式 1、运行报文仿真编辑器; 2、选择“文件”菜单中的“打开”菜单项,选择安装目录下Data目录中报文仿真编辑器 存档文件:udp.pef; 3、选中报文列表框中的一条记录,报文仿真编辑器中间部分自动显示此条报文记录的协议 结构树; 4、选中协议结构树中的“IP首部”结点,报文仿真编辑器右侧部分自动显示当前IP数据 报首部各个字段的内容; 5、查看IP数据报首部中的源地址和目的地址的结构和内容; 6、分析IP数据报首部中的类型字段所表示的含义。 练习二:编辑IP数据报格式中的字段内容 1、在报文仿真编辑器的右侧修改IP数据报的各个字段的内容; 2、单击“保存”按钮; 3、查看修改后的字段内容。 练习三:发送和接收IP数据报序列 1、运行报文解析器;

解析IP数据包课程设计

课程设计任务书 目录 1.实验目的 2.实验要求 ) 3.预备知识 4.课程设计分析 5.实现过程 6.程序流程图 ! 7.相关扩展 8.实习体会

9.参考文献 一.实验目的: 设计一个解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相 关问题,从而IP层的工作原理有更好的理解和认识. 、 二.实验要求: 本设计的目标是捕获网络中数据包,解析数据包的内容,将、结果显示在标准输出上, 并同时写入日志文件. 程序的具体要求如下: 3)以命令行形式运行:ipparse logfile,其中ipparse是程序名,而logfile则代表记录 结果的日志文件. 4)在标准输出和日志文件中写入捕获的IP数据包的版本,头长度,服务类型,数据包总长 度,数据包标识,分段标志,分段偏移值,生存时间,上层协议类型,头校验和,源IP地址 和目的IP地址等内容. 当程序接收到键盘输入Ctrl+C时退出. ~ 三.预备知识 互联网络层是TCP/IP协议参考模型中的关键部分.IP协议把传输层送来的消息组装成IP数据包,并把IP数据包传送给数据链层.IP协议在TCP/IP协议族中处于核心地 位,IP协议制定了统一的IP数据包格式,以消除个通信子网中的差异,从而为信息发送 方和接收方提供了透明的传输通道.编制本程序前,首先要对IP包的格式有一定了解, 图1给出了IP协议的数据包格式. IP数据包的第一个字段是版本字段,其度是4位,表示所使用的IP协议的版本.目前的版本是IPV4,版本字段的值是4,下一代版本是IPV6,版本字段值是6.本程序主要 针对版本是IPV4的数据包的解析. 报头标长字段为4位,它定义了以4B为一个单位的IP包的报文长度.报头中除了选项字段和填充域字段外,其他各字段是定长的.因此,IP数据包的头长度在20—40B 之间,是可变的. 0 4 8 16 19 24 31

IPv4 数据报首部格式

北京理工大学珠海学院实验报告 ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 班级XXX 3班学号0123456 姓名 XXX 指导教师ZHANG XUE 成绩 实验题目IPv4 数据报首部格式实验时间 2014.1 一、实验目的 掌握IPv4 协议原理,理解IPv4 分组首部结构及各字段的含义。 二、实验环境 1.连接外网的Windows XP 主机一台,并安装有科来网络分析系统。 2.通过科来网络分析系统捕获一段时间内的IPv4 分组。 三、实验内容 1.用科来网络分析系统捕获数据包。 2.分析捕获到的IP数据包中首部各个字段的意义。 四、实验步骤 1.打开科来网络分析系统,开始捕获数据包。 2.用浏览器访问百度,用ping 命令探测临机、网关和百度。 3.停止捕获,观察捕获到的数据包。

访问百度: Ping临机如图:

Ping网关如图: Ping百度如图: 4.将访问百度以及ping 临机、网关和百度的IP 数据包首部中各字段的值记录在下表中,需要记录IP 数据报的版本号、首部长度、总长度、标识、标志、片偏移、生存时间、上层协议、源地址和目的地址。 5.比较所记录的各字段的值,理解首部字段的含义和作用。

五、心得体会 经过上一次上机实践对网络命令的操作的结果分析,本次实践已经大概明白了网络命令的操作和作用和对网络命令的操作的结果分析… 六、实验要求 完成本次实验后,仔细观察所捕获的数据包,对网络层数据包首部的各字段进行整理,说明参数之间的关联性,进而加深理解网络层的工作过程。 思考与讨论:

解析ip数据包

目录 一、课程设计的目的 (1) 二、课程设计要求 (1) 三、需求分析 (1) 1.先对网卡进行编程,以便连接IP层的数据包。 (1) 2.预先创建一个logfile文件来保存所解析的IP数据包。 (1) 3.使用recv函数实现接收数据包的功能。 (1) 四、设计分析 (1) 4.1 网卡设置 (1) 4.2 使用套接字 (2) 五、程序测试 (3) 六、小结 (5) 七、附录 (5)

一、课程设计的目的 本章课程设计的目的就是设计一个解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对IP层的工作原理有更好的理解和认识。 二、课程设计要求 本设计的目标是捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。 程序的具体要求如下: 1)以命令行形式运行:ipparse logfile,其中ipparse是程序名, 而logfile 则代表记录结果的日志文件。 2)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。 3)当程序接收到键盘输入Ctrl+C时退出。 三、需求分析 1.先对网卡进行编程(使用套接字进行编程),以便连接IP层的数据包。 2.预先创建一个logfile文件来保存所解析的IP数据包。 3.使用recv函数实现接收数据包的功能。 4.编写ipparse函数解析捕获的数据包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。 四、设计分析 4.1 网卡设置

ip数据包解析实验报告摘要doc

ip数据包解析实验报告摘要篇一:解析IP数据包实验报告 成都工业学院 (课程设计实验报告) 院系: 计算机工程系 课程名称: 计算机网络 设计名称: 解析IP数据包 专业名称: 网络工程 班级: 1305022 姓名: 牟黎明 学号: 11 指导老师:刘枝盛老师 成绩: 设计时间:XX年12月22日—XX年12月26日成都工业学院课程设计任务书 指导教师(签名): 目录

一、课程设计的目的和意义...............................................3 二、课程设计的内容和要求..............................................3 三、解析IP数据包设计的相关技术 (4) ? 3.1 IP数据包的格式与分析 ? 3.2 程序分析设计......................................................4 .. (6) (6) (6) (7) (7) ……………………….…………..…………….7 ? 3.2.1 网卡设置? 3.2.2 程序设计? 3.2.3 程序设计? 3.2.4 程序设计? 3.2.5 程序设计 四、课程设计过程 (8) ? 4.1 程序流程图

? 4.2源程序代码 (8) (16) ……………….……………..............……………….9 ? 4.3 程序运行结果 ? 4.3.1.登陆界面,提示输入命令符 (16) ? 4.3.2.命令符输入错误后提示界面 (16) ? 4.3.3.截获的IP数据包界面 (17) ? 4.3.4.继续抓包图 (17) 五、课程设计小结 (18) 参考文献 (18) 一、课程设计的目的和意义

ip数据包的捕获与解析代码

// PackCaptureDlg.h:header file #define IPV4_WERSION 4 #define IPV6_WERSION 6 #define ICMP_PACKET 1 #define IGMP_PACKET 2 #define TCP_PACKET 6 #define EGP_PACKET 8 #define UDP_packet 17 #define OSPF_PACKET 89 class CPackCaptureDlg:public CDialog { public: //{{AFX_DATA(CFindHostDlg) enum {IDO=IDO_PACKCAPTURE_DIALOG}; int m_Count; CString m_Packet; //}}AFX_DATA protected: //{{AFX_MSG(CFindHostDlg) afx_msg void OnCapture(); //}}AFX_MSG private: typedef struct IP_HEAD //IP头部结构 { union { unsigned char Version; //版本(字节前四位) unsigned char HeadLen; //头部长度(字节后四位) }; unsigned char ServiceType; //服务类型 unsigned short TotalLen; //总长度 unsigned short Identifier; //标识符 union { unsigned short Flags; //标志位(字前三位) unsigned short FragOffset;

ip报头格式

版本——标识了IP协议的版本,通常这个字段的值为0010,常用的版本号为4,新的版本号为6,现在IPv6还没有普遍使用,但是中国已经为奥运会建立了一个ipv6的网络。IPv6又被称为IPng(IP Next Generation) 报头长度——这个字段的长度为4,它表明了IP报头的长度,设计这个字段的原因是报文的选择项字段会发生改变,IP报头的最小长度为20个8bit,最大为24个8bit。报文字段描述了以32比特为单位程度的报头长度,其中5表示IP 报头的最小长度为160比特,6表示最大。 服务类型——字段长度为8位,它用来表示特殊报文的处理方式。服务类型字段实际上被划分为2个部分,一部分为优先权一部分为TOS。优先权用来设定报文的优先级,就像邮包分为挂号和平信一样。TOS允许按照吞吐量、时延、可靠性和费用方式选择传输服务,在早期的时候,TOS还被用来进行路由选择。在QOS 中有时也会使用优先权,常见的优先权队列。

总长度——字段长度为16位,通常预标记字段和分片偏移字段一起用于IP报文的分段。如果报文总长度大于数据链路可传输的最大传输单元(MTU),那么就会对报文进行分片。 标记字段——长度位3位,其中第一位没有被使用第二位是不分片位,当DF 位被置1,表示路由器不能对数据报文进行分片处理,如果报文由于不能被分片而不能被转发,那么路由器将丢弃这个数据包,并向源地址发送错误报告。这一功能可以用来测试线路的最大传输单元。第三位MF,当路由器对数据进行分片时,除了最后一个分片的MF位为0外,其他所有的MF为全部为1,表示其后面还有其他的分片。 分片偏移――字段长度为13位,以8个bit为单位,用于指明分片起始点相对于报头的起始点的偏移量,由于分片到达时间可能错序,所以分片偏移字段可以使得接受者按照顺序重新组织报文。 生存时间——字段长度为8位,在最初创建报文时,TTL就被设定为某个特定值,当报文沿路由器传送时,每经过一个路由器TTL的值就会减小1,当TTL为零的时候,就会丢弃这个报文,同时向源地址发送错误报告,促使重新发送。协议――字段长度为8位,它给出了主机到主机或者传输层的地址或者协议号,协议字段中指定了报文中信息的类型,当前已分配了100多个不同的协议号。 校验和――时针对IP报头的纠错字段,校验和的计算不能用被封装的数据内容,UDP/TCP/和ICMP都有各自的校验和,此字段包含一个16位的二进制补码和,这是由报文发送者计算得到的,接收者将联通院士校验和从新进行16位补码和计算,如果在传输中没有发生错误,那么16位补码值全部为1,由于路由器都会降低TTL值,所以路由器都会重新计算校验和。 源地址――字段长度为32位,分别表示发送报文的路由器的源地址。 目的地址――标识接收数据报文的路由器的地址。

解析IP数据包实验报告讲解

成都工业学院(课程设计实验报告) 院系: 计算机工程系 课程名称: 计算机网络 设计名称: 解析IP数据包 专业名称:网络工程 班级: 1305022 姓名:牟黎明 学号: 11 指导老师: 刘枝盛老师 成绩: 设计时间:2014年12月22日—2014年12月26日

成都工业学院课程设计任务书 指导教师(签名):

目录 一、课程设计的目的和意义 (3) 二、课程设计的内容和要求 (3) 三、解析IP数据包设计的相关技术 (4) ● 3.1 IP数据包的格式与分析 (4) ● 3.2 程序分析设计 (6) ● 3.2.1 网卡设置 (6) ● 3.2.2 程序设计 (6) ● 3.2.3 程序设计 (7) ● 3.2.4 程序设计 (7) ● 3.2.5 程序设计 (7) 四、课程设计过程 (8) ● 4.1 程序流程图 (8) ● 4.2源程序代码 (9) ● 4.3 程序运行结果 (16) ● 4.3.1.登陆界面,提示输入命令符 (16) ● 4.3.2.命令符输入错误后提示界面 (16) ● 4.3.3.截获的IP数据包界面 (17) ● 4.3.4.继续抓包图 (17) 五、课程设计小结 (18) 参考文献 (18)

一、课程设计的目的和意义 目的: 本章课程设计的目的就是设计一个解析IP数据包的程序(我的编辑环境为visual2102),并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对网络层的工作原理有更好的理解和认识。 意义: 1、有利于编程能力的提高 在做设计的过程中,我再一次熟悉了开发设计的基本流程,从分析任务到确立整体框架再到确定算法,然后再一步步实现各函数的功能。从中,我熟悉了许多新的库函数,并提高了编程技巧。 2、有利于基础知识的理解 在这次课程设计之前,我们已经学完了网络层的理论知识,可是对它的理解很粗浅。之前只知道关于网络层的一些概念性的东西。可是做完设计后,我才从整体上理解了网络层的框架,明白了网络层的每一个组成部分都是有它特定的功能和意义的,从而对网络层协议有了更深入的理解。 3、有利于逻辑思维的锻炼 程序设计能直接有效地训练我们的创新思维,培养分析问题、解决问题的能力。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。 二、课程设计的内容和要求 本设计的目标是捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。 程序的具体要求如下: 1)打开本程序,根据提示,输入命令符ParsePacket,开始抓包。获取经过本机的ip数据。若输入错误,将退出重新打开才行。

ip数据报解析源地址目的地址

青岛农业大学 理学与信息科学学院 计算机网络综合实习报告 题目IP数据报解析源地址/目的地址专业计算机科学与技术 学号 姓名 指导教师 日期2014年11月8日

目录 一、设计任务和目的........................................................................................................................ - 2 - 二、设计要求.................................................................................................................................... - 2 - 三、设计内容.................................................................................................................................... - 2 - 3.1原理概述: ..................................................................................................................................... - 2 - 3.1.1 点分十进制表示法:...................................................................................................... - 2 - 3.1.2 IP数据报格式: ........................................................................................................... - 2 - 3.2 运行结果及分析......................................................................................................................... - 4 - 3.2.1程序运行及截图............................................................................................................... - 4 - 3.2.2 分析.................................................................................................................................. - 5 - 四、设计方案改进及建议................................................................................................................ - 5 - 五、总结体会.................................................................................................................................... - 5 - 六、主要参考文献............................................................................................................................ - 6 - 七、附录............................................................................................................................................ - 6 - 附录1 程序流程图........................................................................................................................... - 6 - 附录2 程序源代码及解释............................................................................................................... - 7 -

相关主题
文本预览
相关文档 最新文档