Ⅰ. 了解 Wireshark 工具的工作原理及使用方法
已经参考
Ⅱ. 对 HTTP 协议进行分析
在这个实验中,我们将探讨HTTP 协议的几个方面:基本/响应交互,HTTP 消息格式,检索大型HTML 文件,检索HTML 文件嵌入对象,HTTP 身份验证和安全
过程和细节:
1.基本的HTTP 请求/响应:
用wireshark进行http过滤后,用浏览器打开http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html
下面是正常请求的结果,服务器返回200OK,附带html 的text内容
2.HTTP 条件请求/响应(file2)
同样用wireshark捕获浏览器地址http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html
由于客户端有If-Modified-Since字段,服务器肯定也有Last-Modified字段,如果服务器端的资源没有变化,则时间一致,自动返回HTTP状态码304(Not Changed.)状态码,内容为空,客户端接到之后,就直接把本地缓存文件显示到浏览器中,这样就节省了传输数据量
这里第一次已经请求
3.检索长文档(file3)
同样用wireshark抓取链接http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html下面的内容,结果如下
和第一部分没太大区别
4.嵌入对像的HTML 文档(file4)
用wireshark抓取链接http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html下面的请求,结果如下
请求该链接后,会再次请求两个图片的地址,一个是http://kurose.cslash.net/8E_cover_small.jpg,另一个是http://gaia.cs.umass.edu/pearson.png
因此可以得到如下的png和jpg的两个图片
5.HTTP 认证(file5)
同样抓取链接http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html下面的数据请求
首先第一次,请求的话,没有认证成功,返回401,弹出登录框
填上用户名和密码后再次带上Athorization字段进行请求,并且是正确的,返回200OK,不过下面的第二次请求同样没有清除缓存,导致304
Ⅲ. 对 TCP 协议进行分析
上面的实验很有意思,感觉流程都是人为计算好的!下面分析TCP协议
通过与远程服务器之间发送150KB 的文件来分析TCP 数据包的发送和接收。研究内容包括TCP 利用序列号和确认号来提供的可靠数据传输;TCP 拥塞控制算法中的慢启动和拥塞避免;TCP 协议的流控制策略,如何建立TCP 连接以及TCP 连接的性能(吞吐量和往返时间)
1.抓取传输到远程服务器的TCP 数据包
第一步将文章http://gaia.cs.umass.edu/wireshark-labs/alice.txt下载下来
第二步,打开链接http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-file1.html
第三步,选择刚刚下载的alice.txt,选择文件后上传,并进行抓包,上传后结果如下
2.分析建立TCP 连接的过程
建立连接的过程还是比较好分析的,看下面的这个抓包
首先看红框里面的SYN,表示开始建立连接,MSS=1460,限制了服务器发送给本地主机的最大帧长度
然后是第二个数据包,第三个数据包,我这里是由于未知问题,SYN包没发过去再重发了两次
第四个数据包是,服务器返回给主机的SYN包+ACK包,注意到服务器的MSS限制到了1400,这也就是下面主机每次传给服务器的帧长度也就是1400
第五个数据包是客户端响应服务器的ACK包
3.根据抓取的数据结果,分析TCP 的基本结构和内容
基本的结构如下
看下面这个例子,第一个圈圈为帧头部,为14字节,中间的部分为ip头部,为20字节,然后下面的第二个圈圈就是TCP报文的内容了
可以看到头部长度为20的话,结果用字节表示就是50
4. TCP 拥塞控制分析
- 在网络封包分析的“listing of captured-packets”窗口中选一个TCP 段,然后,Statistics->TCP Stream Graph->Time-Sequence-Graph(Stevens)
使用 Time-Sequence-Graph(Stevens)绘图工具查看 TCP 数据段的时序图,找出TCP 慢启动的开始和结束以及拥塞避免阶段
很明显上面的图,首先是慢启动的状态,从一个或几个MSS开始,呈指数增长。然后到一定程度了就进入拥塞控制增长,呈线性增长
但是从我这个抓包来看,Sequence Number有一个减缓的趋势,说明发生了快速重传,所以Sequence Number有一定的减少,但是没有减完,因为TCP拥塞控制重传的方式不是超时重传