当前位置 博文首页 > Champhoenix的博客:计网实验 应用层协议消息的捕获和解析

    Champhoenix的博客:计网实验 应用层协议消息的捕获和解析

    作者:[db:作者] 时间:2021-09-07 22:31

    计网实验 应用层协议消息的捕获和解析

    一、实验内容和实验步骤描述

    1.实验类别

    协议分析验证型。

    2.实验任务

    应用层协议消息的捕获和解析。

    3.实验内容

    本次实验主要包含下列内容:

    (1)使用 Wireshark 软件捕获 HTTP 消息,分析其消息头,理解 HTTP 的通信原理;
    (2)使用 Wireshark 软件捕获一次从客户端发送 Email 的过程,分析 SMTP 消息,理解 Email 系统中发送邮件的通信原理;
    (3)使用 Wireshark 软件捕获一次从客户端接收 Email 的过程,分析 POP3 消息,理解从 Email 系统中接收邮件的通信原理;
    (4)使用 Telnet 软件访问 Email 服务器,输入 SMTP 命令与 Email 服务器交互,理解 SMTP 的通信过程和 Base64 编码的概念;输入 POP3 命令与 Email 服务器交互,理解 POP3 的通信过程。

    通过本实验,可以深入理解典型的应用层协议——HTTP 和 SMTP 的要点。

    4.实验环境

    一台装有 MS Windows 系列操作系统的计算机,能够连接到因特网,并安装 Wireshark 软件。

    5.实验步骤

    (1)准备工作

    ①下载 Wireshark 软件并了解其功能和使用方法。

    ②确保计算机已经连接到网络。

    ③启动 Wireshark,选择捕获接口为联网的本机网卡(本地连接或 WLAN),设置合适的捕获过滤器:
    对于 HTTP 消息,设置捕获过滤器为 tcp port 80
    对于 SMTP 消息,设置捕获过滤器为 tcp port 25
    对于 POP3 消息,设置捕获过滤器为 tcp port 110

    ④开始捕获。

    (2)数据捕获

    ①捕获 HTTP 协议数据

    打开浏览器,从设置中清除 cookie 数据(访问记录),选择一个非 HTTPS 协议的网站,在地址栏里输入其 URL,如 www.xinhuanet.com,网页全部显示后停止捕获。

    ②捕获 SMTP 协议数据
    下载并安装邮件客户端软件(如 Foxmail),配置用户账户,设置发件服务器不选择 SSL,端口为 25。配置 wireshark,开始捕获,用 Foxmail 发送一封邮件,邮件发送成功后停止捕获。

    ③捕获 POP3 协议数据
    在邮件客户端软件(如 Foxmail)中,配置用户账户,设置收件服务器不选择 SSL,端口为 110。配置 wireshark,开始捕获,用 Foxmail 接收一封邮件,邮件接收到本地后停止捕获。

    (3)Telnet的具体操作步骤将在第五部分详细叙述。

    二、HTTP协议分析

    1.HTTP功能和通信过程

    超文本传输协议(HTTP)是浏览器和Web服务器之间的通信协议。HTTP是基于ASCII文本的请求/响应协议,浏览器向服务器发送请求,服务器得到响应。一次请求/响应的过程称为一个HTTP事务。浏览器使用HTTP请求一个网页的通信过程如下:

    (1) 浏览器分析网页的URL,分析其协议名,如果是http或者默认则继续步骤(2),否则调用对应协议的程序;
    (2) 浏览器提取出Web服务器的域名;
    (3) 浏览器调用Resolver进程,查询Web服务器的IP地址;
    (4) 浏览器和Web服务器建立TCP连接;
    (5) 浏览器向Web服务器发送HTTP请求消息,其中包含文件路径和文件名;
    (6) 收到HTTP请求后,Web服务器从数据库中查找对应的文件,或者生成动态网页;
    (7) Web服务器向浏览器发送HTTP响应消息,将网页文件或程序发送给浏览器;
    (8) 浏览器执行收到的程序或解释收到的网页文件,向用户显示;
    (9) 如果网页文件嵌有其他类型的数据,则向对应的服务器发送请求。

    以本次实验举例,我要访问网页的URL是http://www.xinhuanet.com/politics/leaders/2020-11/14/c_1126738986.htm,HTTP的通信过程如下:

    (1) 浏览器分析URL,提取出Web服务器的域名www.xinhuanet.com;
    (2) 浏览器通过DNS获得Web服务器的IP地址;
    (3) 浏览器建立到Web服务器的TCP连接,
    (4) 浏览器发送HTTP请求:GET/ http://www.xinhuanet.com/politics/leaders/2020-11/14/c_1126738986.htm HTTP/1.0;
    (5) 服务器返回返回HTTP响应,其中包含状态码和网页文件数据;
    (6) TCP连接关闭;
    (7) 浏览器解释网页文件并显示;

    在这里插入图片描述
    2.字段/消息头功能

    (1)HTTP方法
    在这里插入图片描述
    (2)消息头功能

    在这里插入图片描述
    在这里插入图片描述
    3.现有值含义

    下面结合我所抓到的包分析消息头现有值的含义。

    (1)HTTP请求消息例一

    在这里插入图片描述

    在这里插入图片描述
    (2)HTTP请求消息例二
    在这里插入图片描述
    在这里插入图片描述
    (3)HTTP响应消息例一

    在这里插入图片描述
    在这里插入图片描述

    三、SMTP协议分析

    在邮件传输的过程中,发信人用户代理和发信人邮件服务器之间、发信人邮件服务器和收信人邮件服务器之间通信所使用的协议都是简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)(RFC2821)。SMTP使用C/S模型。在发信人用户代理和发信人邮件服务器通信时,用户代理是SMTP用户,发信人邮件服务器是SMTP服务器;在发信人邮件服务器和收信人邮件服务器通信时,发信人邮件服务器则是SMTP客户,收信人邮件服务器是SMTP服务器。
    由于E-mail应用要求可靠无差错的传输,因此SMTP使用TCP作为传输层协议,在邮件传输之前,SMTP客户首先要建立到SMTP服务器的TCP连接。SMTP服务器的访问端口是25。
    类似HTTP,SMTP也采用基于ASCII文本的命令/应答消息。客户向服务器发送SMTP命令,而服务器则以状态码和解释短语作为应答。SMTP的常用命令如下表所示。

    在这里插入图片描述

    SMTP服务器收到命令后,将以状态码来应答,附带状态码的解释短语。状态码是一个3位十进制数,第一位表示命令成功/失败,第二位表示命令的类型(信息类、连接类等),第三位将类型相同的状态码进一步划分。常用的状态码如下表所示。

    在这里插入图片描述
    下图为我所抓的包。

    在这里插入图片描述
    下面是按照我所抓的包画出的消息序列图。

    在这里插入图片描述

    四、POP3协议分析

    邮局协议(Post Office Protocol,POP)为用户提供从远程服务器下载、删除邮件等基本功能。1984年,IETF发布POP规范版本1.之后经过数次修改,目前在因特网上普遍应用的是在RFC1039中定义的版本3:POP3.类似于SMTP,POP3也采用C/S模型,使用TCP传输数据,邮件服务器的访问端口是110。POP3使用的也是基于ASCII文本的命令/应答消息。UA作为客户端,首先建立到邮件服务器的TCP连接,然后发送POP3命令,服务器端则返回应答消息。主要的POP3命令如下表所示。POP3应答消息则包含命令执行状态提示符和ASCII文本信息两部分,其中命令提示符“+OK”表示命令执行成功,“-ERR”则表示命令执行失败。

    在这里插入图片描述
    下图为我所抓的包。

    在这里插入图片描述
    下面是按照我所抓的包画出的消息序列图。
    在这里插入图片描述

    五、Telnet与邮件服务器交互

    1.使用 SMTP 命令与邮件服务器交互

    在命令行模式,使用 telnet 程序连接到发件服务器,如 c:>telnet smtp.qq.com 25 在新窗口中,输入 SMTP 命令,与邮件服务器交互,常用的 SMTP 命令如表 1 所示 (注:命令不区分大写和小写,表示空格,表示回车换行——按下Enter键)。

    在这里插入图片描述
    在这里插入图片描述
    2.使用 POP3 命令与邮件服务器交互

    在命令行模式,使用 telnet 程序连接到收件服务器,如 c:>telnet pop.qq.com 110 在新窗口中,输入 POP 命令,与邮件服务器交互,常用的 POP3 命令如表 2 所示 (注:命令不区分大写和小写,表示空格,表示回车换行——按下 Enter 键)。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    六、实验结论和实验心得

    1.在进行HTTP协议分析时遇到了一些消息头不是教材中列出的部分消息头,于是我上网查找这些内容和功能。
    2.在SMTP抓包时遇到密码输入不正确的情况,经查询发现是需要授权码,遂解决。
    3.Wireshark作为一个抓包工具,对我们大学生进行一些协议的分析颇有帮助,通过此次实验,我在制作消息序列图的时候对SMTP和POP3的消息流程有了更深刻的了解,在查询分析HTTP方法和消息头的过程中对HTTP的请求和响应消息有了更深刻的认识。

    cs