计算机网络实验一报告

计算机网络实验一

应用协议与数据包分析实验报告

实验目的

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

实验内容

HTTP 协议简介

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

(1)HTTP 的工作原理

HTTP 是一个面向事务的客户服务器协议。尽管HTTP 使用TCP 作为底层传输协议,但

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

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

② 一旦监听到连接请求,立即建立连接。

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

④ 释放TCP 连接。

在浏览器和服务器之间的请求和响应的交互,必须遵循HTTP 规定的格式和规则。

当用户在浏览器的地址栏输入要访问的HTTP 服务器地址时,浏览器和被访问HTTP 服务器的工作过程如下:

① 浏览器分析待访问页面的URL 并向本地DNS 服务器请求IP 地解析;

② DNS 服务器解析出该HTTP 服务器的IP 地址并将IP 地址返回给浏览器;

③ 浏览器与HTTP 服务器建立TCP 连接,若连接成功,则进入下一步;

④ 浏览器向HTTP 服务器发出请求报文 (含GET 信息),请求访问服务器的指定页面;

⑤ 服务器作出响应,将浏览器要访问的页面发送给浏览器,在页面传输过程中,浏览器会打开多个端口,与服务器建立多个连接;

⑥ 释放TCP 连接;

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

(2)HTTP 报文格式

HTTP 有两类报文:从客户到服务器的请求报文和从服务器到客户的响应报文。

每个字段之间有空格分隔,每行的行尾有回车换行符。各字段的意义如下:

① 请求行由三个字段组成:

* 方法字段,最常用的方法为 “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”方法是,附加的信息被填写在实体主体部分。在响应报文中,实体主体部分为服务器发送给客户的对象。

实验步骤

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

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

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

中间结果

截获报文机图如下:

  • 请求报文

在这里插入图片描述

  • 响应报文

在这里插入图片描述

最终结果

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

    两种:请求报文和响应报文

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

    方 法URL版 本
    GETwww.baidu.comHTTP/1.1
    首部字段名字段值字段所表达的信息
    AcceptText/html…接收何种类型的媒体
    Accept-languageen-AU,en;zh-Hans-CN;zh-HANS;浏览器使用的语言
    User-agentMozilla,Chrome,Safari…可以使用的浏览器类型
    ConnectionKeep-Alive保持连接
    Hostwww.baidu.com要找的主机
    版本状态码短语
    HTTP/1.1302FOUND
    首部字段名字段值字段所表达的信息
    DateSat,07 Mar 2020 11:18:51 GMT时间
    Locationwww.baidu.com重定向位置
    ServerBWS/1.1报文产生
  3. 分析在截获的报文中,客户机与服务器建立了几个连接?服务器和客户机分别使用了哪几个端口号?

    建立了一个连接。

    客户端为57077端口,服务器为80端口(特殊端口,通常用于HTTP超文本传输协议)

在这里插入图片描述

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

    HTTP的工作流程大致为:

    1、建立连接。先解析DNS,把localhost变成ip(127.0.0.1),然后根据127.0.0.1和端口号8080(没有端口号则使用默认的端口)建立socket。也可以理解为通过“三次握手”建立TCP连接,确定通讯正常。

    2、发送请求命令。socket建立好之后,客户端开始向web服务器发送请求命令(GET/POST等)。

    3、发送请求头(和请求正文如果有)。客户端先发送与自身相关的信息,再发送空行表示请求头发送完毕,如果是post则继续发送请求正文。

    4、回传状态行。应答第一步,发送协议版本和状态码(200、503、404等)

    5、回传应答头。应答第二步,先发送自身相关信息、Content-Type(必须)及被请求的文档,在发送空行宝石应答头发送完毕。

    6、回传应答正文。应答第三步,根据应答头的Content-Type指定的格式发送应答正文。

    7、关闭连接。一次‘会话’完成,如果设置了Connection:keep-alive则TCP连接不关闭,否则关闭连接。
    在这里插入图片描述

    HTTP 客户机端口号HTTP 服务器端口号所包括的报文号步骤说明
    570778017TCP第一次握手,浏览器向服务器发出连接
    570778018TCP第二次握手,服务器回应浏览器的请求,并要求确认
    570778019TCP第三次握手,浏览器回应了服务器的确认,连接成功
    570778020浏览器发出一个页面HTTP请求
    570778023服务器确认
    570778024服务器返回302,要完成请求需要更进一步操作

实验心得

第一次完成计算机网络的实验,将课堂上的知识部分实践,增加了我对TCP协议的理解和HTTP协议的工作原理,在之后的实验也会更加努力完成。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值