一 实验内容

1) 使用 Wireshark 软件捕获 HTTP 消息,分析其消息头,理解 HTTP 的通信原理;

2) 使用 Wireshark 软件捕获一次从客户端发送 Email 的过程,分析 SMTP 消息,理解 Email 系统中

发送邮件的通信原理;

3)使用 Telnet 软件访问 Email 服务器,输入 SMTP 命令与 Email 服务器交互,理解 SMTP 的通信

过程和 Base64 编码的概念。

二 实验报告

任务:本次实验主要通过Wireshark进行抓包,并对数据进行分析。随后使用Telnet访问Email 服务器。详细内容见实验内容部分。

实验环境:win10系统、wireshark软件、telnet服务

实验步骤:

1下载并打开wireshark

img

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

img

3 开始抓包后,访问www.xinhuanet.com,网页全部显示后停止捕获。

img

4 筛选显示http协议

img

5 分析捕获到的消息

网页请求的 Get 消息

img

返回的 200 OK 应答消息

img

6 进行SMTP实验,下载Foxmail,配置发件服务器

img

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

img

8 给自己发送邮件,捕获到协议数据

img

9 停止捕获,分析数据

img

10 进行邮件服务器交互实验

远程链接主机

img

11 输入用户名和授权码,登录成功

img

12 发送邮件成功并收到邮件

img

HTTP 协议分析

1) 根据捕获到的消息,对照讲义和教材,理解 HTTP 的功能和通信过程。

功能:建立客户端和服务器之间的连接,传输数据;定义客户端和服务器之间传输的数据格式;支持客户端向服务器请求数据,以及服务器向客户端提供数据;持不同类型的数据传输,如文本、图像、视频等;支持客户端和服务器之间的认证和安全性

通信过程:

建立连接:客户端与服务器之间通过 TCP/IP 协议建立连接。

发送请求:客户端发送一个 HTTP 请求到服务器。

处理请求:服务器接收到客户端请求后,处理请求并返回一个响应消息给客户端。

关闭连接:在完成请求和响应之后,客户端和服务器之间的连接会被关闭。

2) 观察 HTTP 请求/应答消息的各字段及消息头的内容,自己查找资料理解各消息头的功能,列表总结请求消息和应答消息中各字段及各消息头的功能及现有值的含义。

来源 内容 含义
网页请求的 Get 消息 [Expert Info (Chat/sequence): GET / HTTP/1.1\r\n] 请求行
Host: www.xinhuanet.comlrin 请求将要发送到的服务器主机名和端口号
User-Agent: Mozilla/5.0 用户代理
Accept-Language: zh-CN,zh 通告哪些语言客户端是能够理解
Cookie:wdcid=622352bc440b3475:arialoadData=false:wdlast=1680080588\nin 保持用户的登录状态
Connection: keep-alive 对 HTTP 连接进行说明
Cache-Control: max-age=0 关于缓存的响应头
\r\n 表示消息结束
返回的 200 OK 应答消息 HTTP/1.1 200 0K\r\n 状态行
Date: Wed,29 Mar 2923 99:06:18 GMT 消息发送的时间
Content-Length: 22611 告知数据的长度
Content-Tvpe: text/html;charset=utf-8 内容类型
Connection: keep-alive 对 HTTP 连接进行说明
Vary: Accept-Encoding 响应头部信息
Content-Encoding: gzip 对实体内容进行压缩编码
X-Cache: HIT from x-s-V-30\ 代理动作
Accept-Ranges: bvtes 由服务器使用以通告其支持部分请求的标志物
\r\n 表示消息结束

三 SMTP 协议分析

1) 根据捕获到的消息,对照讲义和教材,理解 SMTP 的功能和通信过程。

功能:1 发送电子邮件。SMTP协议定义了如何将邮件从发件人传输到收件人的过程,包括邮件格式、编码方式、协议命令和参数等。

2 转发电子邮件。SMTP协议不仅可以将邮件从发送者传输到接收者,也可以将邮件从一个SMTP服务器传输到另一个SMTP服务器,实现邮件的转发功能。

通信过程

邮件客户端向SMTP服务器发送连接请求;

SMTP服务器对连接请求进行确认,并欢迎邮件客户端;

邮件客户端发送邮件发送者的地址、收件人的地址以及邮件内容等信息给SMTP服务器;

SMTP服务器接收到邮件信息并进行处理;

SMTP服务器尝试将邮件传送给收件人所在的服务器;

收件人所在的SMTP服务器接收到邮件并进行处理;

SMTP服务器向邮件客户端发送邮件状态代码,表示邮件发送是否成功;

邮件客户端关闭与SMTP服务器的连接。

2) 观察 SMTP 命令消息和响应状态码,自己查资料理解命令和状态码的功能,并画出一次完整通信过程所对应的消息序列图。

img

由抓包可知,流程图为:

img

四 实验结论和实验心得

问题1:虚拟机中不知道哪个是正在传输数据

解决把所有接口都选上

问题2:实验三无法完成一直报错:

解决:要在邮箱开启相应smtp服务,输入密码时输入授权时的编码

心得:本次实验让我更加了解了计算机网络,深入了解计算机网络典型的应用层协议——HTTP 和 SMTP。