内容发布更新时间 : 2024/12/23 21:57:56星期一 下面是文章的全部内容请认真阅读。
部行后面跟着的信息是什么?
? 服务器对较晚的 HTTP GET 请求的响应中的 HTTP 状态代码是多
少?服务器是否明确返回了文件的内容?请解释。
3) 利用 Wireshark 分析 TCP 协议
注:访问以下网址需要设置代理服务器。如无法访问可与实验 TA联系,下载tcp-Wireshark-trace文件,利用该文件进行TCP协议分析。 (1)俘获大量的由本地主机到远程服务器的TCP分组
A.启动浏览器,打开http://gaia.cs.umass.edu/Wireshark-labs/alice.txt网页,得到ALICE'S ADVENTURES IN WONDERLAND文本,将该文件保存到你的主机上。
B.打开http://gaia.cs.umass.edu/Wireshark-labs/TCP-Wireshark-file1.html,如图4-6所示,窗口如下图所示。在Browse按钮旁的文本框中输入保存在你的主机上的文件ALICE'S ADVENTURES INWONDERLAND的全名(含路径),此时不要按“Upload alice.txt file”按钮。
C. 启动Wireshark,开始分组俘获。
D. 在浏览器中,单击“Upload alice.txt file”按钮,将文件上传到gaia.cs.umass.edu服务器,一旦文件上传完毕,一个简短的贺词信息将显示在你的浏览器窗口中。 E. 停止俘获。 (2)浏览追踪信息
在显示筛选规则中输入“tcp”,可以看到在本地主机和服务器之间传输的一系列 tcp 和 http 报文,你应该能看到包含 SYN 报文的三次握手。也可以看到有主机向服务器发送的一个 HTTP POST 报文和一系列的“http continuation”报文。
根据操作思考以下问题:
图4-6 Wireshark-labs网页截图
? 向 gaia.cs.umass.edu 服务器传送文件的客户端主机的 IP 地址和TCP 端口号是多少?
? Gaia.cs.umass.edu 服务器的 IP 地址是多少?对这一连接,它用来发送和接收 TCP 报文的端口号是多少? (3)TCP 基础
根据操作思考以下问题:
? 客户服务器之间用于初始化 TCP 连接的 TCP SYN 报文段的序号(sequence number)是多少?在该报文段中,是用什么来标示该报文段是 SYN 报文段的?
? 服务器向客户端发送的 SYNACK 报文段序号是多少?该报文段中,Acknowledgement 字段的值是多少?Gaia.cs.umass.edu 服务器是如何决定此值的?在该报文段中,是用什么来标示该报文段是SYNACK 报文段的? ? 你能从捕获的数据包中分析出 tcp 三次握手过程吗? ? 包含 HTTP POST 命令的 TCP 报文段的序号是多少?
? 如果将包含 HTTP POST 命令的 TCP 报文段看作是 TCP 连接上的第一个报文段,那么该 TCP 连接上的第六个报文段的序号是多少?是何时发送的?该报文段所对应的 ACK 是何时接收的? ? 前六个 TCP 报文段的长度各是多少?
? 在整个跟踪过程中,接收端公示的最小的可用缓存空间是多少?限制发送端的传输以后,接收端的缓存是否仍然不够用?
? 在跟踪文件中是否有重传的报文段?进行判断的依据是什么?
? TCP 连接的 throughput (bytes transferred per unit time)是多少?请写出你的计算过程。
4) 利用 Wireshark 分析 IP 协议
通过分析执行 traceroute 程序发送和接收到的 IP 数据包,我们将研究 IP 数据包的各个字段,并详细研究 IP 分片。
(1)通过执行 traceroute 执行捕获数据包
为了产生一系列 IP 数据报,我们利用 traceroute 程序发送具有不同大小的数据包给目的主机 X。回顾之前 ICMP 实验中使用的 traceroute 程序,源主机发送的第一个数据包的 TTL 设位 1,第二个为 2,第三个为 3,等等。每当路由器收到一个包,都会将其 TTL 值减 1。这样,当第 n 个数据包到达了第 n 个路由器时,第 n 个路由器发现该数据包的 TTL 已经过期了。根据 IP 协
议的规则,路由器将该数据包丢弃并将一个 ICMP 警告消息送回源主机。 在 Windows 自带的 tracert 命令不允许用户改变由 tracert 命令发送的ICMP echo 请求消息(ping 消息)的大小。一个更优秀的 traceroute 程序是 pingplotter,下载并安装 pingplotter。ICMP echo 请求消息的大小可以通过下面方法在 pingplotter 中进行设置。Edit->Options->Packet,然后填写 Packet Size(in bytes,default=56)域。实验步骤: A. 启动 Wireshark 并开始数据包捕获
B. 启动 pingplotter 并“Address to Trace Window”域中输入目的地址。
在“# of times to Trace”域中输入“3”,这样就不过采集过多的数据。Edit->Options->Packet,将 Packet Size(in bytes,default=56)域设为 56,这样将发送一系列大小为 56 字节的包。然后按下“Trace”按钮。得到的pingplotter 窗口如图 4-7 所示。
A. Edit->Options->Packet,然后将 Packet Size(in bytes,default=56)域改为 2000,这样将发送一系列大小为 2000 字节的包。然后按下“Resume”按钮。
B. 最后,将 Packet Size(in bytes,default=56)域改为 3500,发送一系列大小为 3500 字节的包。然后按下“Resume”按钮。 C. 停止 Wireshark 的分组捕获。
(2)对捕获的数据包进行分析
A.在你的捕获窗口中,应该能看到由你的主机发出的一系列ICMP Echo Request包和
图4-8 Wrieshark窗口
中间路由器返回的一系列ICMP TTL-exceeded消息。选择第一个你的主机发出的ICMP Echo Request消息,在packet details窗口展开数据包的Internet Protocol部分,如图4-8所示。
思考下列问题:
? 你主机的IP地址是什么?
? 在IP数据包头中,上层协议(upper layer)字段的值是什么? ? IP头有多少字节?该IP数据包的净载为多少字节?并解释你是怎样确定 ? 该IP数据包的净载大小的?
? 该IP数据包分片了吗?解释你是如何确定该P数据包是否进行了分片
B.单击Source列按钮,这样将对捕获的数据包按源IP地址排序。选择第一个你的主机发出的ICMP Echo Request消息,在packet details窗口展开数据包的Internet Protocol部分。在“listing of captured packets”窗口,你会看到许多后续的ICMP消息(或许还有你主机上运行的其他协议的数据包) 思考下列问题:
? 你主机发出的一系列ICMP消息中IP数据报中哪些字段总是发生改变? ? 哪些字段必须保持常量?哪些字段必须改变?为什么? ? 描述你看到的IP数据包Identification字段值的形式。
C. 找 到 由 最 近 的 路 由 器 ( 第 一 跳 ) 返 回 给 你 主 机 的 ICMP Time-to-live exceeded消息。
思考下列问题:
? Identification字段和TTL字段的值是什么?
? 最 近 的 路 由 器 ( 第 一 跳 ) 返 回 给 你 主 机 的 ICMP Time-to-liveexceeded消息中这些值是否保持不变?为什么?
D.单击Time列按钮,这样将对捕获的数据包按时间排序。找到在将包大小改为2000字节后你的主机发送的第一个ICMP Echo Request消息。
思考下列问题:
? 该消息是否被分解成不止一个IP数据报?
? 观察第一个IP分片,IP头部的哪些信息表明数据包被进行了分片?IP头部的哪些信息表明数据包是第一个而不是最后一个分片?该分片的长度是多少
C. 找到在将包大小改为3500字节后你的主机发送的第一个ICMP Echo Request消息。
思考下列问题:
? 原始数据包被分成了多少片?
? 这些分片中IP数据报头部哪些字段发生了变化?
4、实验过程
1) 学习 Wireshark 的使用