广州大学学生实验报告
开课学院及实验室:计算机科学与工程实验室2014年11月28日
一、实验目的
(1)熟悉ethereal的使用
(2)验证各种协议数据包格式
(3)学会捕捉并分析各种数据包。
二、实验环境
1.MacBook Pro
2.Mac OS 10.10.1
3..Wireshark
三、实验内容
1.安装ethereal软件
2.捕捉数据包,验证数据帧、IP数据报、TCP数据段的报文格式。
3.捕捉并分析ARP报文。
4.捕捉ping过程中的ICMP报文,分析结果各参数的意义。
5.捕捉tracert过程中的ICMP报文,分析跟踪的路由器IP是哪个接口的。
6.捕捉并分析TCP三次握手建立连接的过程。
7.捕捉整个FTP工作工程的协议包
对协议包进行分析说明,依据不同阶段的协议分析,画出FTP工作过程的示意图
a.. 地址解析ARP协议执行过程
b. FTP控制连接建立过程
c . FTP 用户登录身份验证过程
d. FTP 数据连接建立过程
e. FTP数据传输过程
f. FTP连接释放过程(包括数据连接和控制连接)
8.捕捉及研究WWW应用的协议报文,回答以下问题:
a. .当访问某个主页时,从应用层到网络层,用到了哪些协议?
b. 对于用户请求的百度主页(),客户端将接收到几个应答报文?具体是哪几个?
假设从本地主机到该页面的往返时间是RTT,那么从请求该主页开始到浏览器上出现完整页面,
一共经过多长时间?
c. 两个存放在同一个服务器中的截然不同的Web页(例如,/index.jsp,和
/cn/research/index.jsp可以在同一个持久的连接上发送吗?
d. 假定一个超链接从一个万维网文档链接到另一个万维网文档,由于万维网文档上出现了差错而
使超链接指向一个无效的计算机名,这时浏览器将向用户报告什么?
e. 当点击一个万维网文档时,若该文档除了有文本外,还有一个本地.gif图像和两个远地.gif图像,
那么需要建立几次TCP连接和有几个UDP过程?
9.捕捉ARP病毒包,分析ARP攻击机制。(选做)
10.TCP采用了拥塞控制机制,事实上,TCP开始发送数据时,使用了慢启动。利用网络监视器观察TCP
的传输和确认。在每一确认到达之后,慢启动过程中发生了什么?(选做)
11.在TCP知道往返时间之前,TCP必须准备重发初始段(用于打开一个连接的一个段)。TCP应等多久
才重发这一段?TCP应重发多少次才能宣布它不能打开一个连接?为找到结果尝试向一个不存在的地址打开一个连接,并使用网络监视器观察TCP的通信量。(选做)
尝试使用Winpcap自行设计实现一个简单的网络数据包监听与捕捉程序,同时将捕获的数据包进行分析并将结果显示在屏幕上。参考Winpcapde 的有关资料/ , http://winpcap.polito.it(课后选做)。
四、实验步骤、记录和结果
1.安装ethereal软件
Ethereal从06年开始由于商标问题改名Wireshark了。所以我在mac下安装的是
2.捕捉数据包,验证数据帧、IP数据报、TCP数据段的报文格式。
经过仔细对比,跟书上的报文格式一样。
3.捕捉并分析ARP报文。
下面是发送广播的数据包
第一行指示数据包发送的地址是ff:ff:ff:ff:ff:ff:,这是一个以太网的广播地址。第二行指示了就是本机的mac地址。
下图是ARP报文
第二行中mac地址为0,因为还未知道对应ip的mac地址。
下面是收到arp的回复报文
可以看到,红框部分即是刚才请求的mac地址
4.捕捉ping过程中的ICMP报文,分析结果各参数的意义。
Ping
筛选对应报文
选取其中一对进行分析
下图是request报文,从蓝色框中可以看出其类型。红框部分跟回复报文的红框部分相同,指明是它们是匹配的。
下图是reply报文,蓝色框中可以看出类型是reply,红色部分和上图相同
5.捕捉tracert过程中的ICMP报文,分析跟踪的路由器IP是哪个接口的。
在mac os中使用的命令是traceroute,因此在终端中输入traceroute 192.168.90.9
筛选结果
由上图可见,每个报文都发送了3次。
而且跟Windows系统下使用命令tracert抓包不同,Windows使用的是ping(ICMP echo报文),而在Linux,Unix下使用的命令traceroute使用的upd报文。
不过两者的原理都是相同的,关键都在于TTL(Time To Live)。
下面来分析其中原理。
前3个发送报文的TTL
对应收到的报文均是TTL超时
中间3个发送报文TTL比前面的多1,如下图
对应收到的依然是TTL超时
最后3个发送报文TTL再加1,如下图
此时收到的回复报文变成了目的不可达,traceroute完成,由此看出,经过2个路由转发就可到达目的ip。
6.捕捉并分析TCP三次握手建立连接的过程。
(第一次握手,客户端发出)第一个发出的SYN包关键数据可见下图
(第二次握手,服务器发出)第二个收到的SYN/ACK包,可见Ack Num等于SYN的Seq Num加1,并发回了初始序列号