计算机网络实验五——应用层和传输层协议分析
- 一、实验目的
- 二、实验内容
- 三、实验步骤
-
- (一)任务1: 从 PC 使用 URL 捕获 Web 请求
-
- 1.配置Packet Tracer文件
- 2.使用URL获取Web请求
- (二)任务2:访问服务器的HTTPS服务,捕获数据包并分析。
-
- 1.任务要求
- 2.捕获数据包
- 3.分析
- (三)任务3:从PC访问服务器的FTP服务,捕获数据包并分析。
-
- 1.任务要求
- 2.具体步骤
- 3.分析
一、实验目的 通过本实验,熟悉PacketTracer的使用,学习在PacketTracer中仿真分析应用层和传输层协议,进一步加深对协议工作过程的理解。
二、实验内容 研究应用层和传输层协议
从 PC 使用 URL 捕获 Web 请求,运行模拟并捕获通信,研究捕获的通信。
Wireshark 可以捕获和显示通过网络接口进出其所在 PC 的所有网络通信。Packet Tracer 的模拟模式可以捕获流经整个网络的所有网络通信,但支持的协议数量有限。我们将使用一台 PC 直接连接到 Web 服务器网络,并捕获使用 URL 的网页请求。
任务 1:从 PC 使用 URL 捕获 Web 请求。
任务 2:从 PC 访问服务器的HTTPS服务,捕获数据包并分析。
任务3:从 PC 访问服务器的FTP服务,捕获数据包并分析。
三、实验步骤 (一)任务1: 从 PC 使用 URL 捕获 Web 请求 1.配置Packet Tracer文件
新建一个PacketTracer文件,选择一台电脑和一个服务器,使用交叉线连接(工具栏里面的黑色虚线),实验拓扑图如下,注意交叉线在PC上必须连在FastEthernet接口,不要连在RS232上,否则联不通。出现绿点,说明连接成功。
文章图片
【计算机网络|计算机网络实验五——应用层和传输层协议分析】【PC0配置】
PC0的IP地址配置,使用静态Static地址
文章图片
【server0配置】
文章图片
IP地址配置,使用静态地址
【DNS配置】
文章图片
DNS服务器进行DNS设置,解析一个域名www.example.com,填入Name中,设置IP为192.168.1.2,并点击Add。
【DHCP配置】
确认DHCP已经设置为OFF,使用静态IP;
文章图片
至此配置完成;
2.使用URL获取Web请求
2.1.步骤1. 运行模拟并捕获通信。
进入 Simulation(模拟)模式。单击PC。在Desktop(桌面)上打开 Web Browser(Web 浏览器)。在浏览器中访问服务器的web服务(服务器的IP地址请自己设置)。单击 Go(转到)将会发出 Web 服务器请求。Event List(事件列表)中将会显示两个数据包:将URL解析为服务器IP地址所需的DNS 请求,以及将服务器 IP 地址解析为其硬件 MAC 地址所需的 ARP 请求。单击Auto Capture/Play(自动捕获/播放)按钮以运行模拟和捕获事件。收到"No More Events"(没有更多事件)消息时单击OK(确定)。
PC访问浏览器的web服务:
文章图片
Simulation模式中捕获的时间:
文章图片
2.2.步骤2. 研究捕获的通信。
在Event List(事件列表)中找到第一个数据包,然后单击Info(信息)列中的彩色正方形。单击事件列表中数据包的Info(信息)正方形时,将会打开 PDU Information(PDU 信息)窗口。此窗口将按OSI模型组织。在我们查看的第一个数据包中,注意DNS查询(第7层)封装在第 4 层的 UDP 数据段中,等等。如果单击这些层,将会显示设备(本例中为 PC)使用的算法。查看每一层发生的事件。
注意:Packet Tracer使用了OSI,开放系统互联(Open System Interconnection),该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。
OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层(会话层与表示层为空)。
2.3.深入分析
以实验中的数据包为例,如图:(图中只显示第7层)
文章图片
接下来,打开OSI Model右边的Outbound PDU Details,可以查看出站PDU详细细数据。
注意:协议数据单元PDU(Protocol Data Unit)是指对等层次之间传递的数据单位。 协议数据单元(Protocol Data Unit )物理层的 PDU是数据位(bit),数据链路层的 PDU是数据帧(frame),网络层的PDU是数据包(packet),传输层的 PDU是数据段(segment),其他更高层次的PDU是报文(message)。
【查看DNS事件】
①对于event list第一个数据包,查看PDU最后的PDU QWER(请求),可以知道,在这里,PC向服务器发送了一个DNS请求。
文章图片
②查看第二个(紧接在第一个之后)的数据包,在PDU Detail界面拉到最后,发现服务器已经返回了一个IP地址(自己配置的192.168.1.2)。
文章图片
(二)任务2:访问服务器的HTTPS服务,捕获数据包并分析。 1.任务要求
文章图片
显然,文档中已经给出了实验的要求,访问URL http://10.1.1.3之后可以看到Packet Tracer可以看到HTTP与HTTPS都支持不同类型的图片格式。
2.捕获数据包
进入Simulation模式,在PC访问http://10.1.1.3,具体方法为,点击PC的桌面,进入浏览器,输入该IP地址,点击“Go”。点击Go以后,马上点击右边的auto capture捕获数据包,右上部分的event list中,会出现和之前上一个任务中类似的各种颜色、类型的数据包,而网页的加载情况如图,可以看到,加载的内容是两张图片。
文章图片
文章图片
若在浏览器中输入“https://10.1.1.3”,则使用https访问,类似操作可以获得数据包,打开相应的HTTPS请求查看:
文章图片
无法查看https协议的内容。这样的原因是,http是超文本传输协议,信息通过明文传输,https则是具有安全性的ssl加密传输协议。因此总体来说,https更加安全。
3.分析
①查看event list中捕获到的第一个HTTP类型请求,可以看到,PC向IP为10.1.1.3的服务器发送了一个请求,其请求的东西是一张图片image.jpg,使用方法为GET。
文章图片
②继续查看第二个PC向server发送的HTTP请求,可以看到,该HTTP也是一个使用GET的请求。
文章图片
③在接下来的一个HTTP报文中,可以看到,服务器对于PC发送的请求应答正确,出现了应答码200,即为“OK”。
文章图片
(三)任务3:从PC访问服务器的FTP服务,捕获数据包并分析。 1.任务要求
文章图片
Packet Tracer文件中的注释中给了非常详细的指导。这个任务需要通过PC0测试FTP的写、读、查看删除文件列表、重命名、删除、退出。
2.具体步骤
2.1.打开Simulation模式,并打开auto capture(时间会很久,有较大延迟,因此可以使用Forward快进),方便实验结束之后查看数据包;
2.2.FTP连接
文章图片
(1)从PC0的命令提示符输入“FTP wwwftpserver.com”连接服务器。
(2)输入用户名:cisco,密码:cisco,进入FTP prompt界面。
2.3.FTP文件上传
使用put sampleFile.txt将文件上传到服务器。
文章图片
2.4.获取文件列表
通过dir命令可以列出目前server的文件列表,可以看到此时已经上传。
文章图片
2.5.FTP文件下载
读取一个文件内容:ftp> get sampleFile.txt。
文章图片
2.6.重命名
在FTP prompt输入:rename,将sampleFile.txt文件重命名为:zsl . txt。此时,再输入dir查看文件目录,能够发现更改后的文件已经提到最前。
文章图片
2.7.删除
ftp>delete 文件名
文章图片
3.分析
以写操做为例,在咱们输入“FTP wwwftpserver.com”以后,服务器会提示须要输入用户名,此时会返回一个欢迎用户的信息,如图,是四个连续的FTP,路径为:Server——Router——Switch——PC。
文章图片
查看里面的内容,发现内容是这一条欢迎用户的信息:
文章图片
在这以后,命令提示符里面提示要输入用户名,输入“cisco”,又能够观察到连续的四个FTP,路径为PC——Switch——Router——Server。
文章图片
查看里面的内容,发现也是同样的,将用户输入的用户名传送给服务器,以后服务器则会继续传回给PC,提示用户须要输入密码:
内容为USER信息cisco:
文章图片
在该实验的拓扑图下,从客户机到服务器传输为PC——Switch——Router——Server;从服务器到客户机应答为Server——Router——Switch——PC,且均为连续的四个FTP包。
其余过程包括FTP文件传输等等过程类似。
推荐阅读
- 通用前端组件
- spring|SpringBoot集成 WebService
- java笔记|Windows 关闭8080端口(8080端口被占用)
- Web Api(Symfony 2或3和预检的Angular响应具有无效的HTTP状态代码403)
- Java|JavaWeb - 黑马旅游网(1)(项目启动)
- 7个最好的Google Material Web开发免费框架(css和javascript)
- web|JavaScript扁平数组结构转换成JSON树形结构、无限极、forEach、push、children
- Django,Flask和Redis教程(Python框架之间的Web应用程序会话管理)
- 使用GitHub Webhooks自动部署Web应用程序