|
|
发表于 2006-9-16 15:13:09
|
显示全部楼层
菜鸟求助
实验使用的软件:
http://www.networkchemistry.com/ Packetyzer 软件(免费版)
http://www.ethereal.com/ Ethereal 软件(免费版)
实验目的
在这个实验中我们将利用网页浏览的例子来分析网络协议的层次结构。我们将分析数据链路层、IP层以及应用层的协议数据单元(PDU)。特别地,我们将检查IP地址与端口号如何在一起协调工作,完成端到端的应用。
要分析的协议
• 以太网与IP编址
• DNS查询与响应
• TCP三次握手、序列号和ACK应答号
• HTTP GET 和响应报文
预备知识
学生应当知道如何使用Ethereal抓取分组数据包。参见Ethereal说明。
实验步骤
1. 启动 Ethereal;
2. 启动一个网页浏览器,并键入一个你所选择的URL地址。注意此时不要按下回车键;
3. 启动Ethereal开始抓包;
4. 在浏览期网页位置按下回车键,开始访问指定的网页。
5. 一旦网页内容下载完毕,立即停止Ethereal抓包,并将抓到的数据包存入文件中,同时将显示的网页存储下来,以便后面参考。
协议分析的问题
要回答以下的问题,先启动Ethereal,打开上述步骤中存储的文件。
1. 抓取的协议类型
检查在Ethereal顶端窗口的协议一列,确认你已经抓到了DNS、TCP和HTTP数据包。
2. 以太网帧,IP分组和UDP数据报
1). 检查客户端发出的第一个DNS分组
a. 确定客户端的以太网地址和IP地址
■ 您的IP是:222.222.47.71
■ 操作系统:Windows XP
■ 浏 览 器:Microsoft Internet Explorer 6.0
00 16 ec 98 3c 2e
192.168.93.65
b. 以太网帧结构的TYPE字段是什么内容?
Eth:ip:udp:dns
c. 目的以太网地址和目的IP地址分别是什么?这些地址对应哪些计算机?解释这些结果与你连接到Internet 的计算机有关系。
00 16 c8 d1 7b 8e
219.150.32.132
2). 检查客户端发出的第一个DNS分组的IP报头
a. 包头的长度是多少?分组的总长度是多少?
16bit 71bytes
b. 确定协议类型字段。载荷数据中协议的编号和类型是什么?
Udp(0x11)
3). 检查客户端发出的第一个DNS分组的UDP报头
a. 确定客户端临时端口号和服务器端的默认端口号。载荷数据中应用层协议的类型是什么?
1074
b. 确定UDP报头中的长度字段是否与IP报头长度信息一致。
4) 画出客户端和服务器端从数据链路层到应用层的协议栈,并解释为什么各层的PDU内容能够使得应用层的进程之间实现端到端通信。
3. DNS
1) 检查客户端发送的DNS分组中的DNS查询报文
a) 哪个字段表明这个报文是DNS查询还是响应?
b) 查询的正文中传送什么信息?
c) 查询的交互ID是什么?
0x9814
d) 确定查询的类型与级别的字段
Type:A(host address)
Class:in(0x0001)
2) 现在检查对上述查询的DNS响应的分组
a) 这个分组中的以太网地址和IP地址应当是什么?检验这些地址是正确的
220.181.28.42
b) 传送DNS响应的IP分组和UDP数据报的大小是多少?是否比查询的长?
IP:20bytes UDP:171 bytes
c) 确定在响应报文中的交互ID是正确的。
0X8180 是正确的
d) 在响应报文中提供了多少个答案?比较这些答案及其TTL值。
两个
4. TCP 三次握手
1) 确定http客户端和服务器端建立廉洁的三次握手的第一个TCP分段的帧结构。
a) 在这个分段中你期望看到哪个源端以太网地址和IP地址?你期望看到的协议和类型字段是什么内容?确认这些地址是正确的。
00 16 c8 d1 7b 8e
b) 解释在第一个TCP分段中的目的以太网地址和IP地址的值。这些地址对应什么计算机?
c) 确定客户端使用的临时端口号,确认使用的默认端口号是HTTP默认的。
d) TCP分段的长度是多少?
e) 客户端到服务器端分段的初始序列号是多少?初始窗口大小是多少?最大分段尺寸是多少?
f) 找到包含SYN标志的十六进制字符。
2) 确定三次握手中的第二分段
a) 第一和第二分段抓取的时间差是多少?
b) 在检查分组数据之间,先确定以下字段的值
 以太网帧的源地址和目的地址以及类型字段
 IP分组中的源IP地址和目的IP地址及其端口号
 TCP分段中的ACK序列号
 各个标识位的值
 确认帧结构中包含期望的数据
c) TCP分段的长度是多少?
d) 从服务器端到客户端连接的初始序列号是多少?最大分段尺寸是多少?
3) 确定三次握手中的最后一个分段
a) 从第二分段到最后分段的时间差是多少?将此时间差与第一与第二分段的时间差相比较,解释其中的原因
b) 确定最后TCP分段的以下值
 序列号和ACK序列号
 标志比特的值以及窗口尺寸
 确认分段中包含期望的数据
c) 最后一个分段的长度是多少?
5. HTTP GET 报文
1) 确定包含HTTP GET报文的数据帧
a) 确认TCP报头中的序列号和ACK号是预期的。
b) 解释TCP报头中的标识位。你是否能够解释为什么有两位被置位了?
c) TCP分段及载荷的长度分别是多少?
2) 现在考察GET报文的内容
a) 将Ethereal软件的第三个窗口向下滚动,将解码的内容与第二个窗口中的HTTP报文进行比较;
b) 数一数报文中的字节数,确认这个数值与TCP报头中的长度信息一致;
c) 来自服务器的下一个分段期望的下一个序列号应当是多少?
6. HTTP Response
1). 确定HTTP GET报文与对应的响应报文之间的时间差是多少?
2). 确定服务器是采用HTTP响应报文还是采用简单的TCP ACK分段进行应答。确认来自服务器的分段的序列号是期望的值。
3). 现在考察HTTP响应报文的分段
a) 包含TCP分段的载荷长度是多少?
b) 检查标志是否有置位,并解释为什么置位?
c) 来自客户端的下一个分段期望的下一个ACK序列号应当是多少?
4). 现在考察HTTP响应报文
a) 响应报文的结果码是多少?
b) 点亮HTTP响应报文中的“数据”部分。将Ethereal软件的第三个窗口向下滚动,将网页解码的内容与屏幕上显示的内容进行比较
实验报告要求
建议采用上面提到的Packetyzer软件,对抓取的网页内容交互过程画出流程框图。
报告中要说明尼的实验环境,包括操作系统、网络接入方式等。
刚刚出道 难呀 求助各路大侠指点 |
|