山东大学计算机网络实验报告 实验五

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件学院计算机网络实验报告实验五传输协议控制姓名班级2013级软件1班学号实验名称传输控制协议(TCP)实验时间2015.12实验目的:1.掌握TCP协议的报文格式;2.掌握TCP连接的建立和释放过程;3.掌握TCP数据传输中编号与确认的过程;4.掌握TCP协议校验和的计算方法;5.理解TCP重传机制。实验步骤及结果:该实验采用网络拓扑结构一练习一练习名称:察看TCP连接的建立和释放练习内容:各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。本练习将主机A、B、C、D、E、F作为一组进行实验。1.主机B、C、D启动协议分析器捕获数据,并设置过滤条件(提取TCP协议)。2.主机A启动TCP工具连接主机C。(1)主机A启动“实验平台工具栏中的地址本工具”。点击[主机扫描]按钮获取组内主机信息,选中主机C点击[端口扫描]按钮获取主机C的TCP端口列表。(2)主机A启动“实验平台工具栏中的TCP工具”。选中“客户端”单选框,在“地址”文本框中填入主机C的IP地址,在“端口”文本框中填入主机C的一个TCP端口,点击[连接]按钮进行连接。3.察看主机B、C、D捕获的数据,填写下表。字段名称报文1报文2报文3序列号40352808416551010854035280842确认号04035280842655101086ACK011SYN110●TCP连接建立时,前两个报文的首部都有一个“最大字段长度”字段,它的值是多少?作用是什么?结合IEEE802.3协议规定的以太网最大帧长度分析此数据是怎样得出的。答:两个报文首部的“最大字段长度”字段值均为为1460。作用表示在一个帧中数据部分最大长度为1460,不能发出比此更长的帧。以太网中规定发出的帧长度不能超过1500,而IP首部的长度为20个字节,TCP首部的长度为20个字节。所以TCP字段长度不能超过1460个字节。4.主机A断开与主机C的TCP连接。5.察看主机B、C、D捕获的数据,填写下表。字段名称报文4报文5报文6报文7序列号6551010864035280842655101086035280843确认号40352808426551010864035280843655101087ACK1111FIN0110●结合步骤3、5所填的表,理解TCP的三次握手建立连接和四次握手的释放连接过程,理解序号、确认号等字段在TCP可靠连接中所起的作用。答:a)建立连接协议(三次握手)i.客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。ii.服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。iii.客户必须再次回应服务段一个ACK报文,这是报文段3。b)连接终止协议(四次挥手)由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。i.TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送(报文段4)。ii.服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加(报文段5)。和SYN一样,一个FIN将占用一个序号。iii.服务器关闭客户端的连接,发送一个FIN给客户端(报文段6)。iv.客户段发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。序号:本报文段所发送的数据的第一个字节的序号。确认号:期待收到对方下一个报文段的第一个数据字节的序号。确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效。同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接。思考问题:1.为什么在TCP连接过程中要使用三次握手?如不这样做可能会出现什么情况。答:(1)客户发送第一个报文,这是一个SYN报文,在这个报文中只有SYN标志置为1。这个报文的作用是使序号同步。(2)服务器发送第二个报文,即SYN+ACK报文,其中SYN和ACK标志被置为1。这个报文有两个目的。首先,它是一个用来和对方进行通信的SYN报文。服务器使用这个报文同步初始序号,以便从服务器向客户发送字节。服务器还使用ACK标志确认已从客户端收到了SYN报文,同时给出期望从客户端收到的下一个序号。另外,服务器还定义了客户端要使用的接收窗口的大小。(3)客户发送第三个报文。这仅仅是一个ACK报文。它使用ACK标志和确认号字段来确认收到了第二个报文。总之,三次握手完成两个重要的功能:既要双方做好发送数据的准备工作,双方都知道彼此已准备好,也要允许双方就初始序列号进行协商。这个序列号在握手过程中被发送和确认。如不这样做可能会出现死锁。2.解释TCP协议的释放过程?答:(1)当客户端想关闭TCP连接时,它发送一个TCP报文,把FIN标志位设置为1。(2)服务器端在收到这个TCP报文后,把TCP连接即将关闭的消息发送给相应的进程,并发送第二个报文——FIN+ACK报文,以证实从客户端收到了FIN报文,同时也说明,另一个方向的连接也关闭了。(3)客户端发送最后一个报文以证实从TCP服务器收到了FIN报文。这个报文包括确认号,它等于从服务器收到的FIN报文的序号加1。练习二练习名称:利用协议编辑器编辑并发送TCP数据包练习内容:本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。在本实验中由于TCP连接有超时时间的限制,故协议编辑器和协议分析器的两位同学要默契配合,某些步骤(如计算TCP校验和)要求熟练、迅速。为了实现TCP三次握手过程的仿真,发送第一个连接请求帧之前,编辑端主机应该使用TCP屏蔽功能来防止系统干扰(否则计算机系统的网络会对该请求帧的应答帧发出拒绝响应)。通过手工编辑TCP数据包实验,要求理解实现TCP连接建立、数据传输以及断开连接的全过程。在编辑过程中注意体会TCP首部中的序列号和标志位的作用。首先选择服务器主机上的一个进程作服务器进程,并向该服务器进程发送一个建立连接请求报文,对应答的确认报文和断开连接的报文也编辑发送。其步骤如下:1.主机B启动协议分析器捕获数据,设置过滤条件(提取HTTP协议)。2.主机A上启动协议编辑器,在界面初始状态下,程序会自动新建一个单帧,可以利用协议编辑器打开时默认的以太网帧进行编辑。3.填写该帧的以太网协议首部,其中:源MAC地址:主机A的MAC地址目的MAC地址:服务器的MAC地址协议类型或数据长度:0800(IP协议)4.填写IP协议头信息,其中:高层协议类型:6(上层协议为TCP)总长度:40(IP首部+TCP首部)源IP地址:主机A的IP地址目的IP地址:服务器的IP地址(172.16.1.23)其它字段任意。应用前面学到的知识计算IP首部校验和。5.填写TCP协议信息,其中:源端口:任意大于1024的数,不要使用下拉列表中的端口目的端口:80(HTTP协议)序列号:选择一个序号ISN(假设1942589885),以后的数据都根据它来填写确认号:0首部长度:50(长度20字节)标志位:02(标志SYN=1)窗口大小:任意紧急指针:0使用协议编辑器的“手动计算”方法计算校验和;再使用协议编辑器的“自动计算”方法计算校验和。将两次计算结果相比较,若结果不一致,则重新计算。●TCP在计算校验和时包括哪些内容?答:TCP校验和的范围包括首部和数据这两部分。和UDP用户数据报一样,在计算校验和时,要在TCP报文段的前面加上12字节的伪首部。6.将设置完成的数据帧复制3份。修改第二帧的TCP层的“标志”位为10(即标志位ACK=1),TCP层的“序列号”为1942589885+1。修改第三帧的TCP层的“标志”位为11(即标志位ACK=1、FIN=1),TCP层的“序列号”为1942589885+1。修改第四帧的TCP层的“标志”位为10(即标志位ACK=1),TCP层的“序列号”为1942589885+2。7.在发送该TCP连接请求之前,先ping一次目标服务器,让目标服务器知道自己的MAC地址。8.启动“实验平台工具栏中的启动屏蔽”,为TCP/IP协议栈过滤掉收到的TCP数据。9.点击菜单栏中的[发送]按钮,在弹出对话框中选择发送第一帧。10.在主机B上捕获相应的应答报文,这里要求协议分析器一端的同学及时准确地捕获应答报文并迅速从中获得应答报文的接收字节序列号,并告知协议编辑器一端的同学。11.假设接收字节序号为:3246281765,修改第二帧和第三帧TCP层的“确认号”的值为:3246281766。12.计算第二帧的TCP校验和,将该帧发送。对服务器的应答报文进行确认。13.计算第三帧的TCP校验和,将该帧发送。14.在主机B上观察应答报文,要及时把最后一帧“序列号”告知协议编辑器一端的同学。15.修改第四帧的TCP层“确认号”为接收的序列号+1(即3246281767)。16.计算第四帧的TCP校验和,将该帧发送。断开连接,完成TCP连接全过程。17.协议分析器一端截获相应的请求及应答报文并分析,注意观察“会话分析”中的会话过程。18.编辑端主机启动“实验平台工具栏中的停止屏蔽”,恢复正常网络功能。思考问题:1.使用TCP协议对实时话音数据的传输有什么有缺点?使用UDP协议在传送数据文件时会有什么问题?答:TCP延时比较大,因为其具有拥塞控制的AIMD算法,导致传输速率锯齿形变化,对于实时性要求高的业务来说,有其必然的缺点。UDP没有拥塞控制,只能提供尽力而为的服务,所以会出现丢包现象,且不重传。所以不适合传送数据文件。练习三练习名称:TCP的重传机制练习内容:本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。1.主机B上启动“实验平台工具栏中的TCP工具”,作为服务端,监听端口设置为2483。2.主机B启动协议分析器开始捕获数据并设置过滤条件(提取TCP协议)。3.主机A启动TCP工具连接主机B。(1)主机A启动“实验平台工具栏中的TCP工具”。(2)选中“客户端”单选框。(3)在“地址”文本框中填入主机B的IP地址。(4)在“端口”文本框中填入主机B的TCP监听端口(2483)。(5)点击[连接]按钮进行连接。4.主机A向主机B发送一条信息。5.主机B启动“实验平台工具栏中的启动TCP屏蔽”,过滤掉接收到的TCP数据。6.主机A向主机B再发送一条信息。7.主机B刷新捕获显示,当发现“会话分析视图”中有两条以上超时重传报文后,启动“实验平台工具栏中的停止TCP屏蔽”,恢复正常网络功能。8.主机A向主机B再发送一条信息,之后断开连接。9.主机B停止捕获数据。依据“会话分析视图”显示结果,绘制本练习的数据报交互图。思考问题:1.根据实验,测试重传时间和重传次数。答:重传次数在三次以上,且重传时间很短。2.TCP协议在进行流量控制时是以数据包丢失作为产生拥塞的标志。有没有不是因拥塞而引起的数据包丢失的情况?如有,请列举出三种情况。答:有,情况如下:i.IP数据报在传输过程中需要分片,但其中的一个数据报未能及时到达终点,而终点组装IP数据报已超时,因而只能丢失该数据报。ii.IP数据报已经到达终点,但终点的缓存没有足够空间存放此数报。iii.较大的往返延迟偏差将导致不

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功