实验三(TCP与UDP)

2018-12-19 22:16

实验三、TCP与UDP

实验目的:研究TCP与UDP的详细内容 一、TCP

我们将通过由你的计算机传输150KB的文件(包含Lewis Carrol’s的Alice’s Adventures in

Wonderland)到远方服务器的过程来跟踪并分析在TCP数据段,我们将研究TCP的序列号和确

认号在提供可靠性传输过程中的用处,将看到TCP堵塞控制算法—慢慢开始并避免堵塞,TCP接收端发布控制机制,此外,还需要考虑TCP连接的建立,并考察你的计算机和服务器TCP连接的性能(网络流通量和数据来回时间)

1.1 捕捉在你的计算机到远程服务器TCP传输中的数据块

在开始研究TCP之前,我们需要使用Wireshark来得到你的计算机到远程服务器TCP传输中

的数据块。这可以通过一个网页来输入存储在你计算机上的文件名,然后将这个文件(Alice in

Wonderlan的ASCII)通过HTTP POST方法传到Web服务器中。在这儿,之所以使用POST而不

用GET方法。是因为我们希望从一个计算机到另一个计算机中传输大的数据。我们自然也要在跟踪TCP段发送和接收过程中运行Wireshark。

按以下步骤进行实验 ? ? ?

准备一个 ASCII文本文件(文件大于10k),保存在你的计算机某个位置上。 下一步,进入http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-file1.html. 你看到如下页面

? ? ?

使用 “Browse”按钮输入文件名(全路径加文件名),这个文件包含“Alice in Wonderland”,现在暂时不要按“Upload alice.txt file”按钮。 现在启动Wireshark,并开始进行分组捕捉(Capture->Options)

返回到浏览器端。按“Upload alice.txt file”按钮,上传文件到gaia.cs.umass.edu 服务器

中,一旦文件上传完成,在浏览器窗口上将显示一条简单的祝贺信息。 ?

停止Wireshark分组捕捉,计算机上Wireshark的窗口类似下图这样。

1.2 初步查看捕捉到的跟踪信息

在对TCP连接过程进行详细分析前,首先对跟踪的信息进行高层次的浏览。首先,在

Wireshark 窗口中输入tcp(小写,别忘了输入回车)过滤所显示的分组。这样,我们看到的将是在你的计算机和gaia.cs.umass.edu之间的TCP和HTTP消息。我们应该能看到开始的三次包含SYN握手信息,也能看到发生在你的计算机与gaia.cs.umass.edu 之间发送的HTTP POST消息和一序列的HTTP持续消息。 打开Wireshark分组捕捉到的文件tcpethereal-trace-1(在

http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip 上) ,回答下列问题。 1) 传输文件到gaia.cs.umass.edu的计算机(源)的IP地址和TCP端口号是多少?为了回答这个

问题,比较容易的可能途径是选择HTTP消息且浏览用来传输HTTP消息的TCP分组的详细信息,这可以通过“details of the selected packet header window”实现(参考以前实验) 2) gaia.cs.umass.edu的IP地址是多少?在这个连接中,TCP段发送接收的端口号是多少?

如果你能够创建自己的跟踪记录,回答以下问题。 3) 传输文件到gaia.cs.umass.edu的计算机(源)的IP地址和TCP端口号是多少?

既然本实验关注TCP而不是HTTP,我们改变Wireshark的“listing of captured packets”窗口,

这样,它就能够显示包含HTTP消息的TCP段,而不是HTTP消息,要想做到这点,只需要在Wireshark上选择Analyze->Enabled Protocols,然后再HTTP选择框中不选中,最后按OK按钮,你将能看到类似以下画面。

这就是我们看到的在你计算机与gaia.cs.umass.edu之间发送一系列TCP段的情况,接下来,我们将使用已经捕捉到的分组(或者在http://gaia.cs.umass.edu/wireshark-labs/wiresharktraces.zip 上的tcp-ethereal-trace-1)来研究TCP的状态。

1.3 TCP 基础部分

针对TCP段,回答下列问题。

4) 用来发起在客户机到gaia.cs.umass.edu 之间TCP连接TCP SYN段的系列号是多少?标识SYN

作为那一段是什么?

5) 为了响应SYN,由gaia.cs.umass.edu到客户端计算机发送的SYNACK系列号是多少?SYNACK段

的确认域值为多少?gaia.cs.umass.edu 怎样决定这个值?标识SYNACK段在本段中是什么段?

6) 包含HTTP POST的TCP段的序列号是多少?请注意,为了找到POST命令,我们要在位于

Wireshark底部的分组内容区的DATA域中挖掘和寻找带“POST”的内容。

7) 考察在TCP连接作为第一段包含HTTP POST的TCP段,TCP连接中的前6个段的序列号是多少?

(包括含HTTP POST的段),每个段何时发送?何时收到每个段的相应(ACK)?给出每个TCP段间发送的时间差,及何时收到段的相应,前6个段的通信来回时间(RTT)是多少?收到每个确认(ACK)后,估算出的返回时间EstimatedRTT值是多少(计算公式在课堂上给出),假设第一个段的EstimatedRTT等于测量过的RTT,根据公式计算各个字段的返回时间EstimatedRTT

注:Wireshark有一个很好的功能,这就是允许我们对每个段绘出返回时间RTT的图。在从客户端发送到服务器gaia.cs.umass.edu中“捕捉到的分组”窗口中选择TCP段,然后选择

Statistics->TCP Stream Graph->Round Trip Time Graph. 8) 前6个TCP段的长度是多少?

9) 对整个过程中用来跟踪接收发布的最小可用的缓冲空间

10) 在跟踪文件中有没有重发的段?为了回答此问题,你要(在文件中)检查什么

11) 在接收端ACK中的确认数据由多少?你能分辨出接收段是确认的其他接收段这种情况吗? 12) TCP连接的流通率(单位时间传输的字节数)是多少?,解释你是如何计算的。

1.4 TCP堵塞控制

我们来考察从客户端到服务器单位时间传输的数据,不用再Wireshark窗口中用原始数据来在Wireshark的捕捉到的分组列表(listing of captured-packets)窗中选择一个TCP段,然后选计算,我们使用Wireshark的TCP图形工具(Time-Sequence-Graph(Stevens))来绘制数据图。 择菜单“Statistics->TCP Stream Graph-> Time-Sequence-Graph(Stevens)”我们将看到类似以下图形的画面。这个图形是在http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip的跟踪文件tcp-etherealtrace-1基础上得出的。

在上图中,每个点代表TCP 段的发送,画出段的序列号及其发送的时间,一些列点互相堆起。这代表在发送端紧跟着发送一系列分组。 二、UDP

现在,我们对UDP协议进行快速的扫描,众所周知,UDP是直接的流线型协议,因为UDP简单,本实验将快速掠过,按以下步骤进行。

? ? ? ?

启动Wireshark的分组捕捉(按以前试验进行)

进行有关操作,使得你的主机与服务器发送和接收几个分组。(用到nslookup命令) 停止分组捕捉。设置分组嗅探器的过滤器使得Wireshark只显示发送和接收的UDP分组。 拾取一些这样的分组,并尽可能在窗口中展开这些UDP域。

在回答问题的时候,应该打印出与你要回答的问题相关的跟踪分组,在打印件上作注解来解释答案,需要打印分组的话,使用菜单File->Print,选择Selected。

1) 选择一个分组,从它出发,确定在UDP头部分有多少个域,并将这些域直接命名。 2) 从分组主体域中,确定每个分组头部域中的长度(字节数)

3) 在长度区域中的长度值是什么长度?通过 捕捉到的UDP分组来验证你的断言。 4) 包含在UDP载荷中的最大字节数是多少? 5) 最大可能的源端口号是多少?

6) UDP的协议号是多少?同时用16进制和10进制表示(为了回答此问题,需要查找IP头部分) 7) 在Google中搜索“UDP”,确定UDP效验和计算的范围

8) 考察一对UDP分组,第一个分组由你的主机发出,第二个分组是响应第一个分组,描述这两

个分组的端口号之间的关系。

附加问题

捕捉一个小型的UDP分组,手动验证这个分组的效验和,写出所有要完成的工作和具体步骤。


实验三(TCP与UDP).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:宋大儒曾巩神道碑 译文及原文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: