《计算机网络》实验指导书
? 服务器对较晚的HTTP GET请求的响应中的HTTP状态代码是多少?服务器是否明确返回了文件的内容?请解释。
状态码和相应状态的信息的值为304 Not Modified ,它表示服务器可以使用该对象。第二次没有返回文件的内容,因为它只是作为对该条件GET的响应,web服务器只发送一个响应报文,不包含请求的对象。
(三)TCP分析
注:访问以下网址需要设置代理服务器。如无法访问可与实验TA联系,下载tcp-Wireshark-trace文件,利用该文件进行TCP协议分析。
A. 俘获大量的由本地主机到远程服务器的TCP分组
(1) 启动浏览器,打开http://gaia.cs.umass.edu/Wireshark-labs/alice.txt网页,得到
ALICE'S ADVENTURES IN WONDERLAND文本,将该文件保存到你的主机上。 (2) 打开http://gaia.cs.umass.edu/Wireshark-labs/TCP-Wireshark-file1.html,如图4-6所
示,窗口如下图所示。在Browse按钮旁的文本框中输入保存在你的主机上的文件ALICE'S ADVENTURES IN WONDERLAND的全名(含路径),此时不要按“Upload alice.txt file”按钮。
图3-6 Wireshark-labs网页截图
(3) 启动Wireshark,开始分组俘获。
(4) 在浏览器中,单击“Upload alice.txt file”按钮,将文件上传到gaia.cs.umass.edu服
33
《计算机网络》实验指导书
务器,一旦文件上传完毕,一个简短的贺词信息将显示在你的浏览器窗口中。 (5) 停止俘获。 B. 浏览追踪信息
在显示筛选规则中输入“tcp”,可以看到在本地主机和服务器之间传输的一系列tcp和http报文,你应该能看到包含SYN报文的三次握手。也可以看到有主机向服务器发送的一个HTTP POST报文和一系列的“http continuation”报文。
根据操作思考以下问题:
? 向gaia.cs.umass.edu服务器传送文件的客户端主机的IP地址和TCP端口号是多少? 客户端主机的IP地址:192.168.199.189,TCP端口号:61731。
? Gaia.cs.umass.edu服务器的IP地址是多少?对这一连接,它用来发送和接收TCP报文的端口号是多少?
如上图所示,Gaia.cs.umass.edu服务器的IP地址是128.119.245.12,端口:80. C. TCP基础
根据操作思考以下问题:
? 客户服务器之间用于初始化TCP连接的TCP SYN报文段的序号(sequence number)是多少?在该报文段中,是用什么来标示该报文段是SYN报文段的? Sequence number: 0; Syn 被设置为1,说明是SYN片段。
? 服务器向客户端发送的SYNACK报文段序号是多少?该报文段中,Acknowledgement字段的值是多少?Gaia.cs.umass.edu服务器是如何决定此值的?在该报文段中,是用什么来标示该报文段是SYNACK报文段的?
? Sequence number:0;Acknowledgement number:1,故由此看出ACK的值是由SYN消息中Sequence number加1所得,Acknowledgement和SYN都设置为1说明这是一个SYNACK 片段。
34
《计算机网络》实验指导书
? 你能从捕获的数据包中分析出tcp三次握手过程吗?
? 包含HTTP POST命令的TCP报文段的序号是多少? 255.
? 如果将包含HTTP POST命令的TCP报文段看作是TCP连接上的第一个报文段,那么该TCP连接上的第六个报文段的序号是多少?是何时发送的?该报文段所对应的ACK是何时接收的?
TCP连接上的前六个报文段的序号是255,256,257,258,259,260,对应的ACK均为1,所以第六个报文段的序号是260.
? 前六个TCP报文段的长度各是多少?1042,54,54,54,54,54 (bytes). ? 在整个跟踪过程中,接收端公示的最小的可用缓存空间是多少?限制发送端的传输以后,接收端的缓存是否仍然不够用?
接受方通知给发送方的最低窗口大小为164字节,即在服务器端传回的第一个ACKz中的窗口大小。接收方的窗口大小没有抑制发送方的传输速率,因为窗口大小从164逐步增加到64240, 窗口大小始终大于发送方发送的分组的容量。 ? 在跟踪文件中是否有重传的报文段?进行判断的依据是什么?
没有,从表中可以看出从源端发往目的地的序号逐渐增加,如果这其中有重传的报文段,则其序号中应该有小于其临近的分组序号的分组,图中未看到这样的分组,故没有重发片
35
《计算机网络》实验指导书
段。
? TCP连接的throughput (bytes transferred per unit time)是多少?请写出你的计算过程。 传输的数据总量为TCP 段第一个序列号(即第24 段的1 字节)和最后的序列号的ACK (第239 段的153107个字节)之间的差值。因此,总数据是 153107-1 = 153106 字节。整个传输时间是第一个 TCP 段(即4号段3.553057 秒)的时间和最后的 ACK(即第239 段5.344350秒) 时间的差值。因此,总传输时间是5.344350-3.553057= 1.791293 秒。因此,TCP 连接的吞吐量为153106/1.791293=83.469 KByte/s (四)IP分析
通过分析执行traceroute程序发送和接收到的IP数据包,我们将研究IP数据包的各个字段,并详细研究IP分片。
A. 通过执行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)域。实验步骤: (1) 启动Wireshark并开始数据包捕获
(2) 启动pingplotter并“Address to Trace Window”域中输入目的地址。
在“# of times to Trace”域中输入“3”,这样就不过采集过多的数据。Edit->Options->Packet,将Packet Size(in bytes,default=56)域设为56,这样将发送一系列大小为56字节的包。然后按下“Trace”按钮。得到的pingplotter窗口如图3-7所示。
36