计算机网络实验一:应用协议与数据包分析

版权声明:程序媛吃吃的博客 https://blog.csdn.net/m0_38068229/article/details/80082716

一、实验目的

1. 常用网络命令的使用;

2. 通过本实验,熟练掌握Wireshark的操作和使用,并学习对HTTP协议进行分析。

 

二、实验内容

(一)实验思路

1、练习使用常见网络命令;

2、下载wireshark,在PC 机上访问Web 页面,截获报文,分析HTTP 协议的报文格式和HTTP协议的工作过程。

 

(二)实验步骤

1. 常见网络命令;

(1) ping命令

Ping是一个测试程序,运行正确就可以排除网络访问层、网卡、modem的输入输出线路、电缆和路由器等存在的故障,减小了问题的范围。

Ping  IP地址

 

Ping  ip  -t

连续对IP地址执行ping命令,直到被用户以ctrl+c中断。

 

Ping  ip  -l  长度 

连续对IP地址执行ping命令,直到被用户以ctrl+c中断。指定ping命令中的数据长度为2000字节,而不是缺省的32字节。

 

 

Ping  ip  -n  次数 

执行特定次数的ping命令:

 

Ping  域名


(2) ipconfig

用于检查网络TCP/IP配置的信息。比如IP地址、MAC地址、DNS等。

MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。MAC地址是网卡决定的,是固定的。

ipconfig

ipconfig /all 显示详细信息

 

(3) netstat

该命令用户显示各协议相关的统计及数据,一般用于检查本地主机的各个端口的网络连接情况。

netstat

netstat -r 

显示网络各种通信协议的状态。

netstat -E

显示以太网层的数据统计情况。

 

netstat -A

显示网络中有效连接的信息。

 

netstat -N

显示所有已经建立的连接。

(4) tracert命令

该命令用于检查由本地主机到目标主机所经历的路由信息。

 

我们再请求一个Twitter.com,可以看出是无法访问的。

 

(5) arp命令

arp命令用于显示和修改“地址解析协议(ARP)”缓存中的项目。ARP缓存中包含一个或多个表,它们用于存储IP地址及其经过解析的以太网或令牌环物理地址。计算机上安装的每一个以太网或令牌环网络适配器都有自己单独的表。如果在没有参数的情况下使用,则ARP命令将显示帮助信息。

arp –a  

记录出现的IP地址与物理地址的列表信息。

 

arp -a 特定IP地址1

记录出现的IP地址与物理地址的列表信息。

 

arp -s  IP地址  物理地址

添加一条静态地址映射,然后使用arp –a ,记录出现的IP地址与物理地址的列表信息。

此时需要启动管理员身份运行,否则无权限。

以管理员身份运行后,再使用arp -a指令可以看到增加的静态地址映射:

 

 

2. wireshark的简单使用

  • 实验一:基本的HTTP请求响应操作

 http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html 

浏览器将会显示只有一行文本的HTML文件如下图:

 

得到如下193、202两条数据报:

http请求报文:(浏览器)

 

http响应报文:(服务器)


1.浏览器运行的HTTP1.1版本,服务器运行的HTTP也是1.1版本。

2.的浏览器能接受zh-cn语言简体中文)

3.我的电脑的IP地址是192.168.43.153,服务器的IP地址是128.119.245.12。

4.从服务器返回到你的浏览器的状态码是200

5.服务器端得到最后修正的 HTML 文件的时间是:

Wed,25 Apr 2018 05:59:01 GMT

6.一共有128字节的内容已经返回到的浏览器

Content-Length:128。

7.HTTP请求报文首部行中还有Host字段、connection字段、Accept字段、User-agent字段、Accept-Encoding字段等。

HTTP响应报文首部行中还有Server字段、ETag字段、Accept-Ranges字段、Connection字段Content-Type等。

 

  • 实验二:HTTP GET/Response 有条件的相互作用


 http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html

浏览器将显示了一个很简单的 5 行的 HTML 文件;


得到如下数据报,红框中的数据是两次HTTP的请求和响应

 

第一次请求:

第一次响应:

第二次请求:

第二次响应:

 

8.从的浏览器到服务器得到的请求中检查第一个 HTTP GET 的内容。在 HTTP GET中没有看到一行“ IF-MODIFIED-SINCE”因为是浏览器首次获取该页面。

检查服务器回应内容,服务器明确地返回了文件的内容从line-based text data中的数据可以看出。

现在从你的浏览器到服务器得到的请求中检查第二个 HTTP GET 的内容。在 HTTP GET 中有看到一行“ IF-MODIFIED-SINCE”在“ IF-MODIFIED-SINCE”头部有上次访问该网址的时间

11.第二次 HTTP 返回的状态码是304从服务器返回的响应第二个 HTTP GET 的短语是Not Modified服务器没有明确返回文件内容因为该网页内容在上次访问之后未被修改且本浏览器中有上次访问的缓存。 


实验三:得到较长的文档 


http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html 

 


12.浏览器发送了1个HTTP GET请求消息?

13.传输这一个HTTP响应需要4个TCP数据段?

14. 响应HTTP GET请求的相关的状态码和短语是200 OK

15.在TCP“Continuation”附加关联的传输数据中没有HTTP状态码和短语

 

实验四:带有内嵌对象的HTML文档


http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html 


16. 浏览器发送了4个HTTP GET请求消息这些GET请求发送到了IP地址:

128.119.254.12;  128.119.240.90

17.浏览器是并发地从两个网站上下载的图片。因为两个连续的请求访问的地址不同。


 实验五:HTTP认证

 

http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html 





 18.服务器对起初的HTTP GET消息的响应(状态码和短语)是

401 Authorization Required没有权限,出现了www-Authenticate字段。


当浏览器第二次发送HTTP GET消息时,GET消息中出现了新的Authorization字段。服务器响应出现了新的ETag字段。

第一次请求:

第一次响应:

第二次请求:

 

第二次响应:

 

 

实验

    步骤1:在PC 机上运行Wireshark,开始截获报文;

    步骤2:从浏览器上访问Web 界面,如http://www.163.com。打开网页,待浏览器的状态栏出现 “完毕”信息后关闭网页。

步骤3:停止截获报文,将截获的报文命名为http-学号保存。

我们首先访问www.hnu.edu.cn: 

分析截获的报文,回答以下几个问题:

1)综合分析截获的报文,查看有几种HTTP 报文?

两种。一种为HTTP请求报文,另一种是HTTP响应报文。

  

2)在截获的HTTP 报文中,任选一个HTTP 请求报文和对应的 HTTP 应答报文,仔细 分析它们的格式,填写表1.1 和表1.2。

                         表1.1 HTTP 请求报文格式

方 法

GET

版 本

HTTP/1.1

URL

www.hnu.edu.cn/images/fuwu-img8-1-1.png

首部字段名

字段值

字段所表达的信息

Accept

image/png, image/svg+xml, image/*;q=0.8, */*;q=0.5

指明服务器能发送的媒体类型,这里能发送图片

Referer

http://www.hnu.edu.cn/

 

指明了请求当前资源的原始资源的URL

Accept-Language

zh-CN

支持使用语言为简体中文

User-Agent

Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko

用户代理,

向访问网站提供所使用的浏览器类型及版本(Mozilla/5.0 )、操作系统及版本、浏览器内核等信息的标识

Accept-Encoding

gzip, deflate

支持使用的编码方式

host

www.hnu.edu.cn

请求的主机名和端口号,虚拟主机环境下用于不同的虚拟主机

DNT

1

禁止追踪,被第三方网站追踪网络痕迹

connection

Keep-Alive

持续连接,向同一个连接发送下一个请求,直到一方主动关闭连接。

cookie

JSESSIONID=780B6F87800F6EC84F95214D6E2FBC94

客户端发送给服务器端身份标识

               

                        表1.2 HTTP 应答报文格式                                 

版 本

HTTP/1.1

状态码

200

短 语

OK

首部字段名

字段值

字段所表达的信息

Server

VWebServer/6.0.0

向客户端标明服务器程序名称和版本

Content-Type

Image/png

实体的媒体类型

Last-Modified

Thu, 16 Nov 2017 08:09:42 GMT

资源的最后修改日期时间

ETag

"5a0d47c6-999"

 

资源的匹配信息

Cache-Control

Max-age=3600

设置缓存存储的最大周期,超过这个时间缓存被认为过期(单位秒)

X-Frame-Options

SAMEORIGIN

表示该页面可以在相同域名页面的 frame 中展示

Accept-Ranges

bytes

  是否接受字节范围请求

Connection

Keep-Alive

持续连接

Date

Tue, 01 May 2018 17:29:21 GMT

消息产生的时间

Expires

Tue, 01 May 2018 18:29:59 GMT

实体主体过期的日期时间

Age

0

(从最初创建开始)响应持续时间

Content-Length

2457

实体主体的大小(单位:字节)


 

3)分析在截获的报文中,客户机与服务器建立了几个连接?服务器和客户机分别使用了哪几个端口号?

因为该报文段过长,这里又使用了另一个URL来实验:www.baidu.com

客户机和服务器建立了14个连接。

服务器使用了14个端口

44706、44707、44708、44705、44714、44719、44720、44721、44722、44723、44724、44725、44726、41635。

客户机使用了1个端口:80端口。

 

4 )综合分析截获的报文,理解HTTP 协议的工作过程,将结果填入表1.3 中。

                      表1.3 HTTP 协议工作过程

HTTP客户机端口号

HTTP 服务器端口号

所包括的报文号

步骤说明

80

44708

357

浏览器向服务器发出连接请求

此为TCP三次握手第一步

80

44708

401

服务器回应了浏览器的请求,并要求确认,此为三次握手的第二步

80

44708

402

浏览器回应了服务器的确认,连接成功此为三次握手的第三步

80

44708

403

浏览器发出一个页面HTTP请求

80

44708

454

服务器确认

80

44708

455

服务器发送数据

80

44708

456

客户端浏览器确认

80

44708

457

服务器发送状态响应码

80

44708

458

客户端浏览器确认

因为connection为Keep-Alive持续连接,所以没有断开连接。下图为对应报文段:

 

 

三、实验中遇到的问题及解决方案

1. Wireshark找不到接口。

【解决方案】

(1)确保自己安装了WinPcap(这个在安装Wireshark时会提示安装,但是我没有安装),我去官网下载了WinPcap:地址是

http://www.winpcap.org

(2)以管理员身份打开命令提示符,输入:net start npf ,会提示打开驱动服务成功。如下图所示:

 

 

2. Wireshark截获了很多无用报文

【解决方案】

(1)将其他接入网络的应用程序关闭,避免捕捉到不需要的报文。

(2)将使用的浏览器设置成关闭时消除浏览记录,可以避免每次手工操作删除。

(3)学会利用过滤器,如使用http、TCP等过滤器,寻找到自己想要分析查看的报文内容。

 

四、实验总结

通过这次实验,让我熟悉了常用网络命令,并学习了这些命令的使用环境以及使用方法;掌握了Wireshark的操作和使用。通过截获的报文,能够对HTTP协议进行分析,更清晰地认识了http协议的工作过程。

在用wireshark时掌握一些技巧能够帮助我们更好地分析理解报文,还需在使用过程中多加积累。

 

展开阅读全文

没有更多推荐了,返回首页