《网络协议分析》实验指导书 - 图文

更新时间:2024-05-06 10:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《网络协议分析》实验指导书

《网络协议分析》实验指导书

ver0.01

计算机与信息工程系

shhkun 2014年9月

第 1 页 共 49 页

《网络协议分析》实验指导书

前 言

《网络协议分析》课程是针对计算机及网络工程专业的本科生而设置的一门课程,它具有很强的理论性和实践性。本实验指导书是专门为《网络协议分析》理论课程配套的、指导学生完成相关实验及操作而编写的。

本实验指导书按照 TCP/IP的层次结构对网络互连中的主要协议进行分析,由下而上的设计了9个实验,涉及ARP协议分析、IP协议分析、ICMP协议分析、UDP协议分析、TCP协议分析、DHCP协议分析、DNS协议分析、HTTP协议分析、SMTP协议与POP3协议分析。在实验内容之前对实验采用的Wireshark软件进行了介绍。希望学生们通过以上实验进一步加深对网络协议的理解和掌握协议分析的方法。

特别说明:

1、本指导书中给出的实验网络物理模型,不需要学生动手搭建,所有网络物理模型都基于现有的实验室运行环境。

2、本指导书中实验内容的开展与实验室使用的交换机和路由器的品牌无关,实验指导书中指出实验品牌等,只是为了举例方便。

3、实验中设备的ip地址以实际实验机器的ip地址为准,不同学生的IP地址应该不同。

第 2 页 共 49 页

《网络协议分析》实验指导书

目 录

1.网络协议分析实验环境要求 ......................... 4 2.网络协议分析器Wireshark .......................... 5

2.1 Wireshark 主窗口简介 ......................... 5 2.2 Wireshark 菜单栏简介 ......................... 6 2.3 Wireshark 的工具栏 ........................... 7 2.4 Wireshark 的网络数据抓包过程 ................. 8 2.5 由Wireshark协议窗口分析协议的格式 .......... 10 3.网络层协议分析 .................................. 11

实验一 ARP协议分析 ............................ 12 实验二 IP 协议分析 ............................. 15 实验三 ICMP 协议分析 ........................... 19 4.传输层协议分析 .................................. 27

实验四 UDP协议分析 ............................ 28 实验五 TCP 协议分析 ............................ 31 5. 应用层协议分析 ................................. 33

实验六 DHCP协议分析 ........................... 34 实验七 DNS 协议分析 ............................ 37 实验八 HTTP 协议分析 ........................... 38 实验九 SMTP及POP3协议分析 .................... 42

第 3 页 共 49 页

《网络协议分析》实验指导书

1.网络协议分析实验环境要求

(1)本指导书按照 TCP/IP的层次结构对网络互连中的主要协议进行分析。本章实验的基本思路是使用协议分析工具从网络中截获数据报,对截获的数据报进行分析。通过试验,使学生了解计算机网络中数据传输的基本原理,进一步理解计算机网络协议的层次结构、协议的结构、主要功能和工作原理,以及协议之间是如何相互配合来完成数据通信功能的。

Windows 环境下常用的协议分析工具有:Sniffer Pro、Natxray、Iris、Wireshark 以及Windows 2000 自带的网络监视器。本书选用Wireshark 1.4.9中文版 作为协议分析工具。

(2)网络协议图

第 4 页 共 49 页

《网络协议分析》实验指导书

2.网络协议分析器Wireshark

Wireshark(前称Wireshark)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

2.1 Wireshark 主窗口简介

图1 是抓包完成后的Wireshark 的主窗口。过滤栏以上是Wireshark 本身的菜单,过滤栏以下是抓获的包经过分析后的显示信息。

图1 抓包完成后的Wireshark 主窗口 其中:

1.菜单栏通常用来启动Wireshark 有关操作; 2.工具栏提供菜单中常用项目的快速访问;

3.过滤器栏提供一个路径,来直接控制当前所用的显示过滤器; 4.包列表窗格显示当前抓包文件的全部包的摘要。

包列表的每一行对应抓包文件中的一个包,不同报文有不同的颜色,但是没有明显的规 律。如果你选择了一行,则更详细的信息显示在协议窗格和包字节数据窗格中。

注意:在此窗格里单击某个包,就会在另外的第二个窗口里显示这个包的信息。

第 5 页 共 49 页

《网络协议分析》实验指导书

显示的是数据报文的协议信息。在报文列表窗口选择不同条目则协议树窗口的内容随之改变为相应的协议信息。下部为16 进制报文窗口,可以显示报文在物理层的数据形式。 在抓包完成后,显示过滤器可以用来找到你感兴趣的包,也可根据协议、是否存在某个域、域值、域值之间的关系来查找你感兴趣的包。

1..Wireshark 的显示过滤器

可以使用下面的操作符来构造显示过滤器: eq == 等于:如 ip.addr==10.1.10.20 ne != 不等于:如 ip.addr!=10.1.10.20 gt > 大于:如 frame.pkt_len>10

lt < 小于:如 lt < frame.pkt_len<10 ge >= 大等于:如 frame.pkt_len>=10 le <= 小等于:如 frame.pkt_len<=10

也可以使用下面的逻辑操作符将表达式组合起来:

and &&逻辑与:如 ip.addr=10.1.10.20&&tcp.flag.fin

or || 逻辑或:如 ip.addr=10.1.10.20||ip.addr=10.1.10.21 xor ^^ 异或:如 tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == not ! 逻辑非:如 !llc

例如:你想抓取IP 地址是 192.168.7.87 的主机所收或发的所有的HTTP 报文,则显示过滤器 (Filter )为:ip.addr=192.168.7.87 and http

图 7 组合过滤器设置

注意:当在Filter 的输入,显示绿色背景时 (图7 上图)说明表达式是正确的,显示红色背景时 (图7 下图)说明表达式是错误的。

3.网络层协议分析

该层是网络互联层,负责相邻计算机之间的通信。该层上的主要协议是IP 协议,此外, 这一层还包括三个子协议:ICMP 协议、ARP 协议和RARP 协议。

* 互联网控制信息协议 (ICMP,Internet Control Message Protocol)

ICMP 是TCP/IP 协议簇的的一个子协议,它和IP 协议属于同一层, 但ICMP 数据报是被封装在IP 数据报中发送的。ICMP 协议通常被用于在IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。该协议经常被用作调试和监视网络。 * 网际协议 (IP,Internet Protocol)

这个协议是 TCP/IP 协议中最主要的协议之一,他负责处理来之传输层的分组发送请求 和输入的数据报文。该层以上各层的协议都要使用IP 协议。

* 地址解析协议 (ARP )和反地址解析协议 (RARP,Reverse Address Resolution Protocol) 它们分别负责实现从IP 地址到物理地址 (如以太网网卡MAC 地址)和从物理地址到IP 地址

第 11 页 共 49 页

《网络协议分析》实验指导书

的映射。

实验一 ARP协议分析

一.实验目的

1.熟悉以太网帧的封装 2.熟悉ARP协议报文格式

3.理解ARP协议的工作原理及其作用,能够使用ARP命令对ARP缓存进行操作。

二.实验内容

1.使用ARP命令对ARP缓存进行一些简单操作; 2.捕获ARP报文,并进行分析。

三.实验原理

1.ARP 协议介绍

ARP 是地址解析协议 (Reverse Address Resolution Protocol)的缩写,负责实现从IP 地址到物理地址 (如以太网MAC 地址)的映射。在实际通信中,物理网络使用硬件地址进行报文传输。IP 报文在封装为数据链路层帧进行传送时,就有必要把 IP 地址转换为对应的硬件地址,ARP 正是动态地完成这一功能的。

(1)ARP 报文格式

图8 ARP 报文格式

ARP 协议报文是定长的,其格式如图8 所示,报文中每一字段的含义如下: * 硬件类型:表示物理网络的类型,“0X0001”表示以太网; * 协议类型:表示网络网络协议类型,“0X0800”表示IP 协议; * 硬件地址长度:指定源/ 目的站物理地址的长度,单位为字节; * 协议地址长度:指定源/ 目的站IP 地址的长度,单位为字节; * 操作:指定该报文的类型,“1”为ARP 请求报文,“2”为ARP 响应报文; * 源端硬件/IP 地址:由ARP 请求者填充;

* 目的站物理地址:在请求报文中为0,在响应报文中,由由发送响应报文的主机填写接收该报文的目的主机的物理地址;

* 目的站IP 地址:由ARP 请求者填充,指源端想要知道的主机的IP 地址。只有IP 地址等于该IP 地址的主机才向源主机发送相应报文。

第 12 页 共 49 页

《网络协议分析》实验指导书

(2)ARP 的工作方式

在以太网中,每台使用ARP 协议实现地址解析的主机都在自己的高速缓存中维护着一个地址映射表,这个ARP表中存放着最近和它通信的同网络中的计算机的 IP地址和对应的MAC 地址。 当两台计算机通信时,源主机首先查看自己的ARP 表中是否有目的主机的 IP 地址项,若有则使用对应的MAC 地址直接向目的主机发送信息;否则就向网络中广播一个ARP 请求报文,当网络中的主机收到该ARP 请求报文时,首先查看报文中的目的IP 地址是否与自己的IP 地址相符,若相符则将请求报文中的源IP 地址和MAC 地址写入自己的ARP 表中;然后,创建一个ARP 响应报文,将自己的MAC 地址填入该响应报文中,发送给原主机。

注意:ARP响应报文不再广播,而是直接发送给请求者。

源主机收到响应报文后,取出目的IP 地址和 MAC 地址加入到自己的 ARP 表中,并利用获得的目的MAC 地址向目的端主机发送信息。

在实际中,为了节省内存空间和ARP 表的查询时间,若某一个ARP 地址项很久没有使用,则会从地址映射表中删除。

2.Arp 命令简介

本次实验使用的Windows 自带的Arp 命令提供了显示和修改地址解析协议所使用的地址映射表的功能。

Arp 命令的格式要求如下:

ARP -s inet_addr eth_addr [if_addr] ARP -d inet_addr [if_addr]

ARP -a [inet_addr] [-N if_addr] 其中: * -s:在 ARP 缓存中添加表项:将 IP 地址 inet_addr 和物理地址 ether_addr 关联,物理地址由以连字符分隔的 6 个十六进制数给定,使用点分十进制标记指定IP 地址,添加项是永久性的;

* -d:删除由inet_addr 指定的表项;

* -a:显示当前ARP 表,如果指定了inet_addr 则只显示指定计算机的IP 和物理地址; * inet_addr:以点分十进制标记指定IP 地址; * -N:显示由if_addr 指定的ARP 表项;

* if_addr:指定需要选择或修改其地址映射表接口的IP 地址; * ether_addr:指定物理地址;

四.实验步骤

实验需要网络环境(局域网连接即可)。每两位同学一组,合作开展实验。 1.验证ARP命令,并记录实验结果

(1)在命令行窗口中执行arp -d命令,记录实验结果; (2)执行arp –a命令,记录实验结果。

(2)在两台中的任一台上执行ping 另一台的IP;

(3)执行完成后执行arp -a命令,记录实验结果,注意和(2)相比,结果的变化。

2.在执行步骤1的同时捕获ARP报文,并对捕获的结果进行分析,记录在如下表格中。

表1 ARP 报文分析

第 13 页 共 49 页

《网络协议分析》实验指导书

ARP 请求报文 字段 硬件类型 协议类型 硬件地址长度 协议地址长度 操作 源站物理地址 源站IP 地址 目的站物理地址 目的站IP 地址 报文信息及参数 字段 硬件类型 协议类型 硬件地址长度 协议地址长度 操作 源站物理地址 源站IP 地址 目的站物理地址 目的站IP 地址 ARP 应答报文 报文信息及参数 附录:(假设实验的两台计算机为192.168.7.85和192.168.7.87) 实验步骤1的可能结果:

步骤2:在执行步骤1时,如果同时抓取报文,则抓取的结果中应包含ARP的请求报文和响应报文。 请求报文如下:

第 14 页 共 49 页

《网络协议分析》实验指导书

响应报文为:

实验二 IP 协议分析

一.实验目的

1.熟悉IP协议的报文格式; 2.理解IP地址的作用。

二.实验内容

捕获IP协议报文,并进行分析。

三.实验原理

1. IP 协议介绍

(1)IP 地址的编址方法

IP 地址是为每个连接在互联网上的主机分配的唯一识别的 32 位标识符。IP 地址的编址方法共经历了三个阶段,其中最初采用的是分类的IP地址,这是一种基于分类的两级IP 地址编址的方法。

第 15 页 共 49 页

《网络协议分析》实验指导书

表2 IP 地址的分类 IP 地址 类型 A 类 B 类 C 类 D 类 E 类 第一字节 十进制范围 1-126 128 -191 192 -223 224 -239 240 -254 二进制 固定最高位 0 10 110 1110 1111 二进制 网络位 8 位 16 位 24 位 二进制 主机位 24 位 16 位 8 位 组播地址 保留试验使用

如表2 所示,IP 地址分为A,B,C,D,E 五类,其中A、B、C 类地址为可分配主机地址,而D 类地址为组播地址,E 类地址保留以备将来的特殊使用。IP 地址采用点分十进制方式记录,每个地址表被视为4 个以点分隔开的十进制整数,每个整数对应一个字节。

A、B、C 三类地址由两部分组成:网络地址和主机地址,这三类地址的网络地址部分的 长度不一样。每个A 类地址的网络中可以有 1600 万台主机;每个B 类地址的网络中可以有 65534 台主机;每个C 类地址的网络中可以有254 台主机。 (2)IP 报文格式

IP 报文由报头和数据两部分组成,如图9 所示:

图9 IP 报文格式

其中主要字段的意义和功能如下: * 版本:指IP 协议的版本;

* 头长:是指IP 数据报的报头长度,它以4 字节为单位。IP 报头长度至少为 20 字节,如果选项部分不是4 字节的整数倍时,由填充补齐; * 总长度:为整个IP 数据报的长度; * 服务类型:规定对数据报的处理方式;

* 标识:是IP 协议赋予数据报的标志,用于目的主机确定数据分片属于哪个报文;

第 16 页 共 49 页

《网络协议分析》实验指导书

* 标志:为三个比特,其中只有低两位有效,这两位分别表示该数据报文能否分段和是 否该分段是否为源报文的最后一个分段;

* 生存周期:为数据报在网络中的生存时间,报文每经过一个路由器时,其值减 1,当生存周期变为 0 时,丢弃该报文;从而防止网络中出现循环路由; * 协议:指IP 数据部分是由哪一种协议发送的;

* 校验和:只对IP 报头的头部进行校验,保证头部的完整性;

* 源IP 地址和目的IP 地址:分别指发送和接收数据报的主机的IP 地址。 (3)IP 数据报的传输过程

在互联网中,IP 数据报根据其目的地址不同,经过的路径和投递次数也不同。当一台主机要发送 IP 数据报时,主机将待发送数据报的目的地址和自己的子网掩码按位 “与”,判断其结果是否与其所在网络的网络地址相同,若相同,则将数据报直接投递给目的主机,否则,将其投递给下一跳路由器。

路由器转发数据报的过程如下:

① 当路由器收到一个数据报文时,对和该路由器直接相连的网络逐个进行检查,即用目的地址和每个网络的子网掩码按位 “与”,若与某网络的网地址相匹配,则直接投递;否则,执行2。 ② 对路由表的每一行,将其中的子网屏蔽码与数据报的目的地址按位 “与”,若与该行的目的网络地址相等,则将该数据报发往该行的下一跳路由器;否则,执行3。

③ 若路由表中有一个默认路由,则将数据报发送给路由表所指定的默认路由器。否则,报告转发出错。

四.实验步骤

使用 Ping 命令在两台计算机之间发送数据报,用Wireshark 截获数据报,分析IP 数据报的格式,理解IPv4 地址的编址方法,加深对IP 协议的理解。

不带参数的ping命令,默认向目标主机发送数据为32个字节长度的ICMP回送请求报文,封装在IP数据报中。数据包如果顺利到达目的主机,则目的主机会返回一个回送请求报文,该报文会携带原始的数据。如果传输过程中出错,数据不能继续转发传输,则会向发送主机返回一个差错报文,报告发送主机数据传输过程中出现的问题。

环境应有局域网连接,学生两两一组,开展实验。

分析报文中IP 数据报头的格式,完成下表:

表3 IP 协议报文分析 字段 版本 头长 服务类型 总长度 标识 标志 片偏移 生存周期 协议 校验和 源地址 报文信息 说明 第 17 页 共 49 页

《网络协议分析》实验指导书

目的地址

附录:假设实验中192.168.7.87向192.168.7.85发送ping报文,则发出的请求报文可能如下:

收到的响应报文可能如下:

第 18 页 共 49 页

《网络协议分析》实验指导书

实验三 ICMP 协议分析

一.实验目的:

1.熟悉ICMP协议的主要内容

2.掌握获取ICMP协议几种常用报文的方法; 3.理解ICMP协议的主要用途; 4.理解ping、tracert命令的原理。

二.实验内容

第 19 页 共 49 页

《网络协议分析》实验指导书

1.捕获ICMP的常见报文(回送请求、回送响应、超时、目标不可达等),并进行分析。 2.分析tracert命令所产生的网络报文

三.实验原理

1. ICMP 协议介绍

ICMP(Internet Control Message Protocol)是因特网控制报文协议[RFC792]的缩写,是因特网的标准协议。ICMP允许路由器或主机报告差错情况和提供有关信息,用以调试、监视网络。

(1)ICMP 的报文格式

图10 ICMP 回送请求和应答报文格式

在网络中,ICMP 报文将封装在IP 数据报中进行传输。由于ICMP 的报文类型很多,且 又有各自的代码,因此,ICMP 并没有一个统一的报文格式供全部 ICMP 信息使用,不同的 ICMP 类别分别有不同的报文字段。

ICMP 报文只在前 4 个字节有统一的格式,即类型、代码和校验和 3 个字段。接着的4 个字节的内容与ICMP 报文类型有关。图20 描述了ICMP 的回送请求和应答报文格式,ICMP 报文分为首部和数据区两大部分。其中:

* 类型:一个字节,表示ICMP 消息的类型,内容参见表5; * 代码:一个字节,用于进一步区分某种类型的几种不同情况; * 校验和:两个字节,提供对整个ICMP 报文的校验和;

(2)ICMP 的报文类型

ICMP 报文的种类可以分为ICMP 差错报告报文和ICMP 询问报文两种,表4 列出了已定义的几种ICMP 消息。

表4 ICMP 消息及类型码 类型的值 0 3 4 5 8 9 10 ICMP 消息类型 回送(Echo)应答 目的站点不可达 源站点抑制(Source quench) 路由重定向(Redirect) 回送请求 路由器询问 路由器通告 类型的值 12 13 14 15 16 17 18 ICMP 消息类型 参数出错报告 时间戳(Timestamp)请求 时间戳(Timestamp)应答 信息请求 信息应答 地址掩码(Address mask)请求 地址掩码(Address mask) 应答 第 20 页 共 49 页

《网络协议分析》实验指导书

实验五 TCP 协议分析

一.实验目的:

1.熟悉TCP协议的报文格式

2.掌握TCP协议建立连接和断开连接的过程和步骤; 3.了解基于TCP协议进行数据传输的过程。

二.实验内容

1.捕获TCP报文,并进行分析。 2.理解UDP和TCP协议的区别

三.实验原理

1.TCP 协议介绍

TCP 是传输控制协议 (Transmission Control Protocal)的缩写,提供面向连接的可靠的传输服务。在TCP/IP 体系中,HTTP、FTP、SMTP 等协议都是使用TCP方式传输的。

(1)TCP 报文格式

图14 TCP 报文段格式

TCP 报文分为首部和数据两个部分。如图14 所示,TCP 报文段首部的前20 字节是固定的,后面有4 ×n 字节是可选项。其中:

* 源端口和目的端口:各2 字节,用于区分源端和目的端的多个应用程序; * 序号:4 字节,指本报文段所发送的数据的第一字节的序号;

* 确认序号:4 字节,是期望下次接收的数据的第一字节的编号,表示该编号以前的数据已安全接收。

* 数据偏移:4 位,指数据开始部分距报文段开始的距离,即报文段首部的长度,以32bit为单位。

* 标志字段:共有六个标志位:

① 紧急位URG=1 时,表明该报文要尽快传送,紧急指针启用;

② 确认位ACK=1 时,表头的确认号才有效;ACK=0,是连接请求报文;

③ 急迫位 PSH=1 时,表示请求接收端的TCP 将本报文段立即传送到其应用层,而不是等到整个缓存都填满后才向上传递;

④ 复位位RST=1 时,表明出现了严重差错,必须释放连接,然后再重建连接;

第 31 页 共 49 页

《网络协议分析》实验指导书

⑤ 同步位 SYN=1 时,表明该报文段是一个连接请求或连接响应报文,

⑥ 终止位FIN=1 时,表明要发送的字符串已经发送完毕,并要求释放连接。 * 窗口:2 字节,指该报文段发送者的接收窗口的大小,单位为字节; * 校验和:2 字节,对报文的首部和数据部分进行校验;

* 紧急指针:2 字节,指明本报文段中紧急数据的最后一个字节的序号,和紧急位 URG配合使用;

* 选项:长度可变,若该字段长度不够四字节,有填充补齐。

(2)TCP 连接的建立

TCP 连接的建立采用 “三次握手”的方法。

一般情况下,双方连接的建立由其中一方发起。如图15(a)所示:

* 主机A 首先向主机B 发出连接请求报文段,其首部的SYN 同步位为1,同时选择一个序号x;

* 主机B 收到此连接请求报文后,若同意建立连接,则向主机A 发连接响应报文段。在响应报文段中,SYN 同步位为1,确认序号为x+1,同时也为自己选择一个序列号y;

* 主机A 收到此确认报文后,也向主机B 确认,这时,序号为x+1,确认序号为y+1 。 当连接建立后,A、B 主机就可以利用TCP 进行数据传输了。

图15 TCP 的连接和释放

(3)TCP 连接的释放

在数据传输结束后,任何一方都可以发出释放连接的请求,释放连接采用所谓的 “四次握手”方法。如图15(b)所示,假如主机A 首先向主机 B 提出释放连接的请求,其过程如下:

* 主机A向主机B 发送释放连接的报文段,其中,FIN 终止位为 1,序号x 等于前面已经发送数据的最后一个字节的序号加 1;

* 主机B 对释放连接请求进行确认,其序号等于x+1。这时从A 到B 的连接已经释放,连接处于半关闭状态,以后主机B 不再接收主机A 的数据。但主机B 还可以向主机A发送数据,主机A在收到主机B 的数据时仍然向主机B 发送确认信息。

* 当主机B不再向主机A 发送数据时,主机B 也向主机A 发释放连接的请求; * 同样主机A 收到该报文段后也向主机B 发送确认。 (4)TCP 数据传输

TCP 可以通过检验序号和确认号来判断丢失、重复的报文段,从而保证传输的可靠性。TCP 将要传送的报文看成是由一个个字节组成的数据流,对每个字节编一个序号。在连接建立时,双方商定初始序号(即连接请求报文段中的SEQ 值)。TCP 将每次所传送的第一个字节的序号放在 TCP 首

第 32 页 共 49 页

《网络协议分析》实验指导书

部的序号字段中,接收方的TCP 对收到每个报文段进行确认,在其确认报文中的确认号字段的值表示其希望接收的下一个报文段的第一个数据字节的序号。

由于TCP 能提供全双工通信,因此,通信中的每一方不必专门发送确认报文段,而可以在发送数据时,捎带传送确认信息,以此来提高传输效率。

2.实验环境与说明

试验中使用浏览器访问web服务器,利用HTTP协议使用TCP进行传输开展实验。每位同学自为为一小组,每小组各自独立完成实验。 (注:如果实验时无法连入外网,则可以自行使用IIS服务器提供HTTP服务)

3.实验步骤

步骤1:参看本机的网络设置,验证网络连通性;

步骤2:运行Wireshark,开始截获报文,为了只截获到与我们实验有关的内容,将截获条件设置为WEB服务器的IP 地址,如截获条件为“host 211.70.176.23 ”;

步骤3:在PC2上打开浏览器,访问www.hnnu.edu.cn

步骤4:关闭浏览器,停止截获报文,按下列要求分析截获的结果:

1)结合本节TCP 协议介绍部分的内容,分析TCP 连接建立的 “三次握手”过程,找到对应的报文,填写表8(传输方向填写客户机->服务器或相反)。 表8 TCP 连接建立报文分析 报文号 传输方向 源端口 目的端口 序 号 确认序号 同步位 SYN 确认位 ACK 注意:Wireshark 协议树中TCP 协议下的“SEQ/ACK analysis”的内容 (这不是TCP 报文的真实内容,而是Wireshark 给我们提供信息),找到TCP 数据传输报文的序号和确认报文

2)从报文中的第一个FIN=1的TCP 报文开始分析 TCP 连接释放的 “四次握手”过程,填写表9。

表9 TCP 连接连接释放报文分析 报文号 传输方向 源端口 目的端口

序号 确认序号 终止位FIN 同步位SYN 确认位ACK 5. 应用层协议分析

网络体系结构中的最高层是应用层,它包括了所有的高层协议,并且随着网络应用的日益推广,不断有新的协议加入。TCP/IP 体系的应用层协议主要有:

第 33 页 共 49 页

《网络协议分析》实验指导书

*动态主机配置协议DHCP:用于网络中计算机网络的自动配置; * 域名服务DNS (Domain Name System),用于实现互联网中主机域名到IP 地址的映射功能; * 文件传输协议FTP(File Transfer Protocol),用于实现互联网中交互式文件传输; * 超文本传输协议HTTP(Hyper Text Transfer Protocol),用于WWW 服务。 * 电子邮件协议SMTP (Simple Mail Transfer Protocol)和POP3 (Post Office Protocol),用于实现电子邮件的传送和读取功能;

* 远程终端协议TELNET,用于实现互联网中远程登录功能;

计算机通信的对象是应用层中的应用进程,在 TCP/IP 体系中,两个应用进程采用客户服务器方式进行通信。客户服务器方式描述进程之间服务和被服务关系。当A 进程需要B 进程的服务时,A 是客户,B 是服务器。也许在下次通信时,B 需要A 的服务,此时,B 是客户而A 是服务器。客户与服务器的通信关系一旦建立,通信就可以是双向的,客户和服务器都可以发送和接收信息。

实验六 DHCP协议分析

一.实验目的:

1.理解DHCP协议的工作原理及工作过程; 2.熟悉DHCP协议报文并对报文进行分析;

二.实验内容

捕获DHCP报文,并进行分析。

三.实验原理

1.DHCP协议介绍

DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,是一种局域网的网络协议,基于UDP协议工作。

DHCP有客户端和服务器模式,请求配置信息的计算机叫做DHCP客户端,而提供信息的叫做DHCP的服务器。DHCP有3个端口,其中67和68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4。

DHCP为客户端分配地址的方法有三种:手工配置、自动配置、动态配置。DHCP最重要的功能就是动态分配。除了IP地址,DHCP分组还为客户端提供其他的配置信息,比如子网掩码。这使得客户端无需用户动手就能自动配置连接网络。 2. DHCP的工作流程

(1)Discover发现阶段:即DHCP客户机寻找DHCP服务器的阶段。此时客户端没有IP地址,也

不知道服务器的IP地址,DHCP客户机以广播方式(即向地址255.255.255.255)发送DHCP discover报文来寻找DHCP服务器。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。

(2)Offer提供阶段: 即DHCP服务器提供IP地址的阶段。接收到DHCP discover报文的DHCP

服务器都会做出响应,即向DHCP客户机发送一个包含还未出租的IP地址和其他设置的DHCP offer报文信息。

(3)Request选择阶段:即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多

台DHCP服务器发来DHCP offer,则客户机只接受第一个,然后就以广播方式回答一个DHCP

第 34 页 共 49 页

《网络协议分析》实验指导书

request请求信息,该信息中包含了它所选定的DHCP服务器的IP地址和服务器提供给客户端的IP地址等内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。 (4)ACK确认阶段:即DHCP服务器对客户机的应答,确认提供IP地址。当服务器收到DHCP request

之后,便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ACK报文,告诉DHCP客户机可以使用该IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器将收回曾提供的IP地址。

(5)重新登录,以后DHCP客户机每次重新登录网络时,不需要再发送DHCP discover了,而是直

接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ACK确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP NACK否认信息。当原来的DHCP客户机收到此DHCP NACK否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。 (6)更新租约,DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP

服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。 3. DHCP协议报文

DHCP协议报文的格式如图16所示,括号内为长度。 OP(1) Htype(1) Hlen(1) Hops(1) Transaction ID(4) Seconds(2) Ciaddr(4) Yiaddr(4) Siaddr(4) Giaddr(4) Chaddr(16) Sname(64) File(128) Options(variable) 图16 DHCP协议报文格式

报文解析: 1)OP(1):DHCP报文的操作类型,“1”为客户端向服务器发送请求的报文,“2”为服务器响应

客户端的报文; 2)Htype(1):客户端网络硬件地址类型,“1”表示客户端的网络硬件是10MB的以太网类型(Ethernet); 3)Hlen(1):客户端的网络硬件地址长度。“6”表示Client 的网络硬件地址长度是6bytes(即以太

网类型的6 bytes的MAC地址); 4)Hops(1):跳数,即DHCP报文经过的DHCP RELAY(中继)数,每经过一个DHCP RELAY

该字段就加一,此字段的作用是限制DHCP报文不要经过太多的DHCP RELAY,协议规定,当

第 35 页 共 49 页

Flags(2)

《网络协议分析》实验指导书

“hops”大于4(现在也有规定为16)时,这个DHCP报文就不能再进行处理,而是丢弃; 5)Xid(4):客户端发起依稀请求时选择的随机数,用来标识一次地址请求过程; 6)Secs(2):DHCP客户端开始DHCP请求后经过的时间; 7)Flags(2):标识DHCP服务器响应报文是单播还是广播发送,只用第一个比特; 8)Cliaddr(4):DHCP客户端IP地址; 9)Yiaddr(4):DHCP服务器分配给客户端的IP地址; 10)Siaddr(4):DHCP客户端获取IP地址等信息的服务器IP地址; 11)Giaddr(4):DHCP客户端发出请求报文后经过的第一个DHCP中继IP; 12)Chaddr(4):DHCP客户端的硬件地址,即MAC地址; 13)Sname(64):DHCP客户端获取IP地址等信息的服务器名称; 14)file(128):服务器客户端指定的启动配置的名称; 15)option(variable):可选变长选项字段,包含报文的类型、有效租期、DNS(domain name system,

域名系统)、服务器的IP地址等配置信息。

四、实验过程

1.启动Windows 命令提示符窗口,输入“ipconfig /release”。这条命令会释放主机目前的IP地址,此时,主机IP地址会变为0.0.0.0

2.启动Wireshark分组俘获,开始分组俘获。

3.现在回到Windows命令提示符窗口,输入“ipconfig /renew”命令。这条命令让主机获得一个网络配置,包括新的IP地址。

4.等待,直到“ipconfig /renew”终止。然后再次输入“ipconfig /renew” 命令。

5.当第二个命令“ipconfig /renew” 终止时,输入命令“ipconfig /release” 释放原来的已经分配的IP地址。

6.最后,输入“ipconfig /renew”再一次给你的I主机分配IP地址。 7.停止分组俘获。

8.分析收到的报文,找出需要的报文,并对结果进行分析。 为了只看到DHCP分组,在filter field中输入“bootp”(DHCP是从BOOTP协议产生的)。BOOTP和DHCP使用同样的端口号,67和68。

从图二中可以看出,第一个ipconfig/renew 命令产生四个DHCP分组: DHCP Discover报文; DHCP Offer报文; DHCP Request报文; DHCP ACK报文;

五.利用上述的分析结果,填写如下表格:

阶段 Discover Offer Request Ack 源MAC 目标MAC 源IP 目标IP

答案提示:(将其中的内容替换为具体的地址) 阶段 源MAC 目标MAC 第 36 页 共 49 页

源IP 目标IP 《网络协议分析》实验指导书

Discover Offer Request Ack

PC机的MAC Dhcp服务器或者中继器路由的MAC PC机的MAC Dhcp服务器或者中继器路由的MAC 全FF Dhcp客户机的MAC 全FF Dhcp客户机的MAC 0.0.0.0 Dhcp服务器或者中继路由器的IP地址 0.0.0.0 Dhcp服务器或者中继路由器的IP地址 255.255.255.0 准备分配的IP地址 255.255.255.0 准备分配的IP地址 实验七 DNS 协议分析

一.实验目的:

1.了解DNS协议的主要内容; 2.掌握获取DNS协议报文的方法; 3.熟悉DNS协议报文格式;

4.理解DNS协议中的几种资源记录的用途和作用

二.实验内容

捕获DNS报文,并进行分析,完成实验。

三.实验原理

1.DNS 协议简介

DNS 是域名系统 (Domain Name System)的缩写,是一种分层次的、基于域的命名方案,主要用来将主机名和电子邮件目标地址映射成IP 地址。当用户在应用程序中输入DNS 名称时,DNS 通过一个分布式数据库系统将用户的名称解析为与此名称相对应的IP 地址。 (1)域名服务器和域名解析

在互联网中,DNS 的实现是通过域名服务器实现的。域名服务器构成对应的层次结构,每个域名服务器保存着它所管辖区域内的主机的名字和IP 地址的对照表。这组域名服务器是域名解析的核心。域名解析有两种:递归解析和反复解析。 (2)域名解析

递归解析就是本地域名服务器系统一次性地完成域名到IP 地址的转换,即使它没有所要查询的域名信息,它也会查询别的域名服务器。反复解析则是当本地域名服务器中没有被查询的主机域名的信息时,它就会将一个可能有该域名信息的 DNS服务器的地址返回给请求域名解析的DNS 客户,DNS 客户再向指定的DNS 服务器查询。

在实际应用中通常是将两种解析方式结合起来进行域名解析。当本地域名服务器没有所要查询的域名信息时,就请求根域名服务器,根域名服务器将有可能查到该域名信息的域名服务器地址返回给要求域名解析的本地域名服务器,本地域名服务器再到指定的域名服务器上查询,如指定域名服务器上还没有该域名信息,它再将它的子域名服务器的IP 地址返回给要求域名解析的本地域名服务器,这样直到查询到待解析的域名的IP 地址为止(没有注册的主机域名除外),本地域名服务器再将查询结果返回给DNS 客户,完成域名解析。 (3)DNS 高速缓存

每个域名服务器都维护着一个高速缓存,存放最近用到过的域名信息和此记录的来源。当客户请求域名解析时,域名服务器首先检查它是否被授权管理该域名,若未被授权,则查看自己的高速

第 37 页 共 49 页

《网络协议分析》实验指导书

缓存,检查该域名是否最近被转换过。如果有这个域名信息,域名服务器就会将有关域名和IP 地址的绑定信息报告给客户,并标志为非授权绑定,同时给出获得此绑定的域名服务器的域名,本地域名服务器也会将该绑定通知客户。但该绑定信息可能是过时的。

根据是强调高效还是准确性,客户可以选择接受该绑定信息还是直接与该绑定信息的授权服务器联系。

2.实验工具软件简介

(1)DNS服务

试验中需安装DNS服务器软件,可以使用windows server中自带的DNS服务功能,只需安装一台即可。学生实验时需将本机的网络设置中的DNS服务器地址设置为安装的DNS服务器的IP。 (2)NSLOOKUP 命令工具

Nslookup 是Windows 系统自带的命令工具,可以显示域名解析,除得到域名主机IP 外, 还可以得到 DNS 解析服务器的主机名称和对应的 IP 地址。由于本次实验只需要获取 DNS 报文,因此选择它作为客户端工具。 3.实验环境与说明

实验环境应联网,保持网络的通畅。每个学生独立一组,开展实验。

4.实验步骤

步骤1:查看本机的网络设置,测试网络的连通性,并需查看DNS服务器的设置是否为实验指定的DNS服务器的IP地址。方法是打开 “网络和Internet 连接”的“网络连接”窗口,“本地连接”,右键快捷菜单 “属性”,在常规选项卡中打开“Internet 协议(TCP/IP)属性”对话框。设置首选DNS 服务器地址为 192.168.10.10(可更改)。 步骤2:清空DNS 服务器缓存,在DNS服务器上完成。

步骤3:在学生机上启动Wireshark,设置截获条件“host 192.168.10.10 ”,开始截获报文。 步骤4:在学生机上打开命令行窗口。执行Nslookup,查询www.sina.com。

步骤5:停止截获报文并将截获的结果分别保存为DNS-C。分析DNS 的请求和应答报文,完成下面的要求:

从DNS-C 中选择一条计算机发出的DNS 请求报文和相应的DNS 应答报文(它们的 Transaction ID 字段的值相同),将两条报文的信息填入下表。

表10 DNS 请求报文和应答报文信息 DNS 报文类型 DNS 请求报文 报文序号 源站点 目的站点 报文信息 DNS 应答报文

实验八 HTTP 协议分析

一.实验目的:

1.了解HTTP协议的主要内容;

第 38 页 共 49 页

《网络协议分析》实验指导书

2.掌握获取HTTP协议报文的方法;

3.理解HTTP协议基本的交互方式及HTTP协议报文格式。

二.实验内容

捕获HTTP报文,并进行分析,完成实验。

三.实验原理 1.HTTP 协议

HTTP 是超文本传输协议 (Hyper Text Transfer Protocol)的缩写,用于WWW 服务。 (1)HTTP 的工作原理

HTTP 是一个面向事务的客户服务器协议。尽管HTTP 使用TCP 作为底层传输协议,但HTTP协议是无状态的。也就是说,每个事务都是独立地进行处理。当一个事务开始时,就在万维网客户和服务器之间建立一个TCP 连接,而当事务结束时就释放这个连接。此外,客户可以使用多个端口和和服务器 (80 端口)之间建立多个连接。其工作过程包括以下几个阶段。

① 服务器监听TCP 端口 80,以便发现是否有浏览器 (客户进程)向它发出连接请求; ② 一旦监听到连接请求,立即建立连接。

③ 浏览器向服务器发出浏览某个页面的请求,服务器接着返回所请求的页面作为响应。 ④ 释放TCP 连接。

在浏览器和服务器之间的请求和响应的交互,必须遵循HTTP 规定的格式和规则。 当用户在浏览器的地址栏输入要访问的HTTP 服务器地址时,浏览器和被访问HTTP 服 务器的工作过程如下:

① 浏览器分析待访问页面的URL 并向本地DNS 服务器请求IP 地解析; ② DNS 服务器解析出该HTTP 服务器的IP 地址并将IP 地址返回给浏览器; ③ 浏览器与HTTP 服务器建立TCP 连接,若连接成功,则进入下一步; ④ 浏览器向HTTP 服务器发出请求报文 (含GET 信息),请求访问服务器的指定页面; ⑤ 服务器作出响应,将浏览器要访问的页面发送给浏览器,在页面传输过程中,浏览 器会打开多个端口,与服务器建立多个连接; ⑥ 释放TCP 连接;

⑦ 浏览器收到页面并显示给用户。

(2)HTTP 报文格式

HTTP 有两类报文:从客户到服务器的请求报文和从服务器到客户的响应报文。图17显示了两种报文的结构。

第 39 页 共 49 页

《网络协议分析》实验指导书

图17 HTTP 的请求报文和响应报文结构

在图46 中,每个字段之间有空格分隔,每行的行尾有回车换行符。各字段的意义如下: ① 请求行由三个字段组成:

* 方法字段,最常用的方法为 “GET”,表示请求读取一个万维网的页面。常用的方法 还有 “HEAD(指读取页面的首部)”和“POST(请求接受所附加的信息); * URL 字段为主机上的文件名,这时因为在建立TCP 连接时已经有了主机名; * 版本字段说明所使用的HTTP 协议的版本,一般为 “HTTP/1.1”。 ② 状态行也有三个字段:

* 第一个字段等同请求行的第三字段; * 第二个字段一般为 “200”,表示一切正常,状态码共有41 种,常用的有:301 (网站已转移),400(服务器无法理解请求报文),404(服务器没有锁请求的对象)等; * 第三个字段时解释状态码的短语。

③ 根据具体情况,首部行的行数是可变的。请求首部有Accept 字段,其值表示浏览器可以接受何种类型的媒体;Accept-language,其值表示浏览器使用的语言;User-agent 表明可用的浏览器类型。响应首部中有Date、Server、Content-Type、Content-Length 等字段。在请求首部和响应首部中都有 Connection 字段,其值为Keep-Alive 或 Close,表示服务器在传送完所请求的对象后是保持连接或关闭连接。

④ 若请求报文中使用 “GET”方法,首部行后面没有实体主体,当使用 “POST”方法时,附加的信息被填写在实体主体部分。在响应报文中,实体主体部分为服务器发送给客户的对象。

图18 和图19 显示了Wireshark 捕获的HTTP 请求和响应报文,结合上面的介绍,请自己分析和体会。

图18 HTTP 请求报文示例

第 40 页 共 49 页

本文来源:https://www.bwwdw.com/article/2gvg.html

Top