工具:Wireshark(Windows或Linux),tcpdump(Linux)
要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议用perl)。
内容:Web流量分析
 
清除本机DNS缓存(ipconfig /flushdns),访问某一网站主页,捕获访问过程中的所有分组,分析并回答下列问题:

(1)简述访问web页面的过程。

(2)找出DNS解析请求、应答相关分组,传输层使用了何种协议,端口号是多少?所请求域名的IP地址是什么?

(3)统计访问该页面共有多少请求IP分组,多少响应IP分组?(提示:用脚本编程实现)

(4)找到TCP连接建立的三次握手过程,并结合数据,绘出TCP连接建立的完整过程,注明每个TCP报文段的序号、确认号、以及SYN\ACK的设置。

(5)针对(4))中的TCP连接,该TCP连接的四元组是什么?双方协商的起始序号是什么?TCP连接建立的过程中,第三次握手是否带有数据?是否消耗了一个序号?

(6)找到TCP连接的释放过程,绘出TCP连接释放的完整过程,注明每个TCP报文段的序号、确认号、以及FIN\ACK的设置。

(7)针对(6)中的TCP连接释放,请问释放请求由服务器还是客户发起?FIN报文段是否携带数据,是否消耗一个序号?FIN报文段的序号是什么?为什么是这个值?

(8)在该TCP连接的数据传输过程中,找出每一个ACK报文段与相应数据报文段的对应关系,计算这些数据报文段的往返时延RTT(即RTT样本值)。根据课本200页5.6.2节内容,给每一个数据报文段估算超时时间RTO。(提示:用脚本编程实现)

(9)分别找出一个HTTP请求和响应分组,分析其报文格式。参照课本243页图6-12,在截图中标明各个字段。

(11)请描述 HTTP协议的持续连接的两种工作方式。访问这些页面(同一网站的不同页面)的过程中,采用了哪种方式?
 
wireshark简介
什么是Wireshark
    Wireshark是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。
    你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样。(当然比那个更高级)过去的此类工具要么是过于昂贵,要么是属于某人私有,或者是二者兼顾。Wireshark出现以后,这种现状得以改变。
    Wireshark可能算得上是今天能使用的最好的开源网络分析软件。
主要应用
    下面是Wireshark一些应用的举例:
     • 网络管理员用来解决网络问题
     • 网络安全工程师用来检测安全隐患
     • 开发人员用来测试协议执行情况
     • 用来学习网络协议
    除了上面提到的,Wireshark还可以用在其它许多场合。
 
wireshark界面如下所示:

在capture部分选择网卡,然后点击start就开始捕获数据,然后打开浏览器访问某个网页,即可获得大量数据包。 也可以通过菜单栏Capture——Interfaces对话框开始。
两个不错的教程下载地址:http://down.51cto.com/data/626380 
http://down.51cto.com/data/626381 
设计与实现过程
(1)简述访问web页面的过程,以西邮主页为例:

a)浏览器向DNS请求解析www.xupt.edu.cn的IP地址

b)域名系统DNS解析出邮电大学的IP地址202.117.128