实验三.应用层和传输层协议分析实验
一.实验目的
通过本实验,熟悉PacketTracer的使用,学习在PacketTracer中仿真分析应用层和传输层协议,进一步加深对协议工作过程的理解。
二.实验内容
从 PC 使用 URL 捕获 Web 请求,运行模拟并捕获通信,研究捕获的通信。
1.从 PC 使用 URL 捕获 Web 请求。
2.从 PC 访问服务器的HTTPS服务,捕获数据包并分析。
3.从 PC 访问服务器的FTP服务,捕获数据包并分析。
三.实验过程
1.从PC使用URL捕获Web请求
(1)配置并进行请求
放置并直接连接一个PC和一个服务器:
对PC机进行IP配置,配置为静态IP192.168.0.1,并将DNS服务器IP地址配置为192.168.0.2。
对服务器进行IP配置,将IP配置为192.168.0.2,并打开DNS服务,添加一个域名解析:
服务器的HTTP服务是默认打开的。PC机的DNS服务器设置为了192.168.0.2,当PC机对设置了域名解析的www.server1.com进行访问时,首先会发送DNS请求报文给该服务器,由该服务器进行DNS解析并返回IP地址192.168.0.2,然后PC机再向服务器发起HTTP请求。
切换到仿真模式,在PC机的浏览器中访问该域名,在事件窗口可以看到两个数据包:
点击播放按钮运行模拟和捕获事件。可以看到PC机与服务器之间有数据传输,右侧的事件列表显示了传输的数据包,直到没有更多事件时结束。经过几个数据包的传输,可以观察到浏览器显示了访问的页面(默认页面)。
(2)数据包分析
没有更多事件后,可以在事件列表看到所有的数据包。
在这个对Web的访问请求中,数据包的协议类型有DNS,ARP,TCP,HTTP。可以查看每个数据包的PDU信息,PDU信息按照OSI参考模型组织,可以看到每一层的事件,也可以查看PDU的详细信息,在详细信息中,数据按照不同层次的协议组织。查看第一个DNS数据包的PDU信息,可以在应用层看到这是一个DNS请求,在PDU详情中可以看到DNS请求的具体域名为www.server1.com。
查看其他数据包的信息,可以找到DNS响应,TCP建立连接,HTTP发起请求和服务器响应HTTP请求的相应数据包:
其中,显示没有上一个设备的数据包是在设备端产生但未发送到的。其中HTTP请求是非持续连接,只发送了一个文件。还可以注意到断开连接时,服务器的FIN-ACK和FIN报文段合并了,因此只通过三个数据包就断开了连接。
2.从PC访问服务器的HTTPS服务,捕获数据包并分析。
Packet Tracer支持HTTP协议和HTTPS协议,并且支持不同格式的图像。以下分别使用HTTP协议和HTTPS协议访问一个Web页面。捕获数据包并进行分析。
(1)使用HTTP协议访问Web页面
在仿真模式下,使用浏览器访问http://10.1.1.3,网页的内容是Gif和Jpg图片。捕获的数据包在事件列表列出。
除了ARP,TCP,HTTP协议的报文,还出现了ICMP控制报文,IPv6中的NDP(邻居发现协议)。IPv6中的NDP可以代替ARP实现地址解析,路由器发现等,可以观察到只有PC0发往服务器的NDP报文,服务器没有响应,因为服务器没有IPv6配置。
查看事件列表的HTTP报文,可以找到源主机PC0的HTTP请求和服务器的响应。在PDU信息中,HTTP请求的请求行没有显示。第一个请求应该是对html页面的请求,并可以找到对应的服务器响应。
接收类型为图片的是对页面的图片对象的请求,但是服务器没有发回图片对象,因此浏览器的页面也无法显示这两个没有请求到的图片。
(2)使用HTTPS协议访问Web页面
在仿真模式下,使用浏览器访问https://10.1.1.3,查看并分析捕获的数据包。可以看到请求和响应均使用HTTPS协议。
查看具体的PDU信息,和使用HTTP协议是相同的。尽管HTTPS是一个加密协议,在这个版本的Packet Tracer中,PDU不会隐藏报文内容。
3.从 PC 访问服务器的FTP服务,捕获数据包并分析。
网络拓扑结构如下,包含两个PC主机,一个交换机,一个路由器,以及一个服务器。其中服务器提供FTP服务,支持文件的命名,删除,读写等操作;PC运行FTP客户端,访问服务器提供的FTP服务。
(1)测试FTP write
在命令行输入ftp www.ftpserver.com访问服务器的FTP服务,服务器确认连接后,输入默认的用户名和密码cisco,然后就可以使用服务器的FTP服务了。将文件sampleFile.txt上传到服务器。
在服务器端打开FTP服务配置,可以找到从PC0上传的文件。
(2)测试FTP read和directory listing
输入dir,可以看到FTP服务器的文件列表,选择一个文件,使用get命令下载该文件。然后使用quit命令退出FTP服务,使用dir命令可以看到PC主机的文件,可以找到下载的文件。
FTP服务器的文件列表
下载文件
(3)测试FTP rename和delete
将上传的sampleFile.txt重命名为testFile.txt,然后将其删除。
(4)数据包分析
打开仿真模式,访问FTP服务,可以在事件列表查看捕获到的数据包。可以看到数据包从PC0发出,要经过交换机和路由器。可以找到携带FTP命令的数据包以及响应的数据包。这个FTP数据包只响应了命令完成,文件列表在后续的FTP数据包中发送给主机。
响应数据包经过交换机和路由器到达主机PC0
文件列表的发送
FTP工作的基本过程是,客户与FTP建立一个命令连接,当需要传输文件时,FTP首先发送数据包表示接受到了命令,然后主机会与FTP服务器建立一个新的TCP连接,进行文件的传输。
分析事件列表中的数据包,可以发现PC机一共建立了源端口1030,1031两个连接,1030端口向FTP服务器的21端口发送FTP请求,而1031端口则是与服务器的1034端口建立连接,完成文件的传输。工作的过程和原理是一致的。
四.实验总结
通过本次实验学习与熟悉了Packet Tracer的使用,以及使用Packet Tracer进行协议分析的基本方法和过程。通过对HTTP以及FTP请求过程的数据包分析,更加深入了解了这两个应用层协议的工作过程,以及底层的协议的数据包如何传输并支持应用层的协议。