实验二传输控制协议TCP一、实验目的1.掌握TCP协议的报文格式2.掌握TCP连接的建立和释放过程3.掌握TCP数据传输中编号与确认的过程4.掌握TCP协议校验和的计算方法5.理解TCP重传机制二、实验原理(1)TCP报文格式16位源端口号16位目的端口号32位序号32位确认序号4位首部长度保留(6位)URGACKPSHRSTSYNFIN16位窗口大小16位校验和16位紧急指针选项数据(2)TCP连接的建立TCP是面向连接的协议。在面向连接的环境中,开始传输数据之前,在两个终端之间必须先建立一个连接。对于一个要建立的连接,通信双方必须用彼此的初始化序列号seq和来自对方成功传输确认的应答号ack(指明希望收到的下一个八位组的编号)来同步,习惯上将同步信号写为SYN,应答信号写为ACK。整个同步的过程称为三次握手。(3)TCP连接的释放对于一个已经建立的连接,TCP使用四次握手来结束通话(使用一个带有FIN附加标记的报文段)。(4)TCP重传机制TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到期,但还没有收到确认,就要重传这一报文段。三、实验类型验证性实验四、网络结构该实验采用网络结构一:说明:IP地址分配规则为主机使用原有IP,保证所有主机在同一网段内。五、实验内容及结果察看TCP连接的建立和释放1、主机B、C、D启动协议分析器进行数据捕获,并设置过滤条件(提取TCP协议)。2、主机A启动仿真编辑器,进入TCP连接视图。在“服务器信息/IP地址”中填入主机C的IP地址;使用“端口扫描”获取主机C的TCP端口列表,在“服务器信息/端口”中填入主机C的一个TCP端口(大于1024);点击“连接”按钮进行连接。3、察看主机B、C、D捕获的数据,填写下表。字段名称报文1报文2报文3SequenceNumber23413811852998366778565104980AcknowledgementNumber119952211995221199522ACK111SYN000TCP连接建立时,前两个报文的首部都有一个“maximumsegmentsize”字段,它的值是多少?作用是什么?结合IEEE802.3协议规定的以太网最大帧长度分析此数据是怎样得出的。答:maximumsegmentsize=1460。4、主机A断开与主机C的TCP连接。5、察看主机B、C、D捕获的数据,填写下表。字段名称报文4报文5报文6报文7SequenceNumber1645141353164514135416451413541645141354AcknowledgementNumber1239747434123974743412397474341239747435ACK1111SYN0000六、思考问题1、使用TCP对实时话音数据的传输有没有什么问题?使用UDP在传送数据文件时会有什么问题?答:如果语音数据不是实时播放(边接受边播放)就可以使用TCP,因为TCP传话可讲话,语音接受完毕后,可以在以后的任何时间播放。2、TCP在进行流量控制时是以分组的丢失作为产生拥塞的标志。有没有不是因拥塞而引起的分组丢失的情况?如有,请举出三种情况。答:当IP数据报在传输过程中需要分片但其中的一个数据报未能及时到达终点,而数据报已超时,因为只能丢失该数据报;IP数据报已到达终点,但终点的缓存没有足够的空间存放此数据报;数据报在转发过程中经过一个局域网的网桥,但网桥在转发该数据报的帧没有足够的差错空间而只好丢失。七、实验总结实验开始时都不是很顺利,但经过老师的一番讲解,我们对此略知一二,经过慢慢摸索,终于顺利完成实验!TCP是一个面向连接的协议,无论哪一方发送数据之前,都必须先在双方之间建立一条连接,这种连接是通过三次握手建立起来的。当握手进程没有成功完成最终的确认时就会发生半开放连接。TCP提供了连续的一端在结束它的发送后还能接受来自另一端数据的能力。TCP提供4种拥塞控制机制来确保有效的利用带宽,并快速修复阻塞和错误,它们是:慢速启动,避免阻塞,快速重发,快速修复。