收藏 分销(赏)

实验三TCP传输控制协议分析要点.doc

上传人:丰**** 文档编号:9761810 上传时间:2025-04-06 格式:DOC 页数:16 大小:1.34MB 下载积分:8 金币
下载 相关 举报
实验三TCP传输控制协议分析要点.doc_第1页
第1页 / 共16页
实验三TCP传输控制协议分析要点.doc_第2页
第2页 / 共16页


点击查看更多>>
资源描述
实验三TCP传输控制协议分析要点 实 验 报 告 课程名称 计算机网络 实验名称 实验三 TCP传输控制协议分析 系 别 __计算机学院_ 专 业 ___软件工程 ___ 班级/学号 软工1301班/2013_ 学生姓名 ___ _ ___ _ ____ 实验日期 ___2015年12月2日 ___ 成 绩 ________________________ 指导教师 _ ___ _ ___ TCP传输控制协议分析 【实验目的】 1、掌握TCP协议的报文形式。 2、掌握TCP连接的建立和释放过程。 3、掌握TCP数据传输中编号与确认的过程。 4、理解TCP重传机制。 【实验学时】 4学时 【实验环境】 图 4-9 实验拓扑图 【实验内容】 1、学习TCP协议的通信过程。 2、学习分析TCP协议报头字段含义。 【实验流程】 图 4-10 实验流程图 【实验原理】 详见理论教材 【实验步骤】 步骤一:设定实验环境 1、配置主机IP和路由器IP地址。 2、按照实验拓扑连接网络拓扑。 步骤二:查看分析TCP三次握手 1、在PC1中开启协议分析软件,进行数据包抓包。 2、在PC1中的协议分析软件中利用工具栏中的TCP连接工具对PC2发起连接,如下图所示。 图 4-12 TCP连接工具 在IP地址中填入PC2地址192.168.2.16,端口填入FTP服务端口21,然后点击连接。 分析PC2中捕获到的三次握手报文。 图 4-13 三次握手第一次连接 查看上图TCP报文中的报头部分: l 源端口:2601,由于发起连接的是客户端,因此源端口为TCP程序随机出的短暂端口,在此连接中是2601。 l 目的端口:21,由于是向FTP服务发起连接,因此目的端口为FTP服务的熟知端口,为21。 l 序列号:0XA0DC0E83,此序列号为TCP程序随机出的字节编号。 l 确认序号:0X00000000,第一个发出的连接请求中,确认号为0。 l TCP首部长度:11,TCP首部长度包括TCP报头长度和数据长度,这个字段表示TCP报头长度,其中20字节为标准TCP报头长度,另有8字节选项字段长度,选项字段中和服务器端协商了最大报文段长度。 l 标识位:SYN位置1,只有TCP连接中三次握手第一次连接的报文段中SYN位置1。 l 窗口大小:65535,默认大小。 l 校验和:0XF6F3,校验和是对TCP报头、数据和伪首部进行计算得出的校验和。 l 紧急指针:0,当紧急标识位置1时,此16位字段才有效,说明此时报文段中包含紧急数据,紧急数据到达接受端后可以不按次序优先被接受程序处理。 TCP三次握手过程中第二个报文如下图所示。 图4-14 TCP三次握手第二个报文 查看上图中的TCP报头: l 源端口:21,服务端的源端口为相关服务的熟知端口,FTP服务端口为TCP21。 l 目的端口:2061,为客户端源端口复制过来得到。 l 序列号:0XE36B3089,为服务端随机计算出的字节序号。 l 确认序列号:0XA0DC0E84,确认序列号的功能是对发送端数据进行确认,为发送端序号0XA0DC0E83+1得到。 l TCP首部长度:11,包含20字节标准TCP首部长度和8字节选项长度。 l 标志位:SYN位和ACK位置1,表示此报文为TCP三次握手的第二个报文。 l 窗口大小:65535,为默认大小。 l 校验和:0XE2ED,TCP校验和为TCP首部、数据和伪首部三部分计算得出校验和。 l 紧急指针:0。 TCP三次握手第三个报文如下图所示。 图 4-15 TCP三次握手第三个报文 查看TCP三次握手第三个报文首部 l 源端口:2601,同一个连接发送的数据,源端口保持不变。 l 目的端口:21,对同一个服务发送的数据段中的目的端口保持不变。 l 序列号:0XA0DC0E84,为前一个数据段序列号加1。 l 确认序号:0XE36B308A,由于此报文是对服务端发回的连接应答消息的确认,因此是上一个报文序号0XE36B3089加1。 l TCP首部长度:8,标准TCP首部长度为5*4字节=20字节。 l 标识位:TCP三次握手第三个报文段ACK位置1。 l 窗口大小:32768. l 校验和:0X7083,为TCP首部、数据、伪首部计算得出的校验和。 l 紧急指针:0,未使用紧急指针。 通过上面的TCP三次握手的报文,可以很清楚的分析出在TCP连接建立时,客户端和服务端所进行的工作。三次报文的重要区别在于标识位的不同,第一个报文,SYN位置1,第二个报文是对第一个报文的确认,SYN位置1,ACK位置1,第三个报文是确认报文,ACK位置1。 步骤三:查看分析TCP确认机制 1、在PC1中开启协议分析软件进行数据包捕获。 2、在PC1协议分析软件工具栏中的TCP连接工具中连接到PC2的FTP服务器并发送list命令. 3、分析捕获到的FTP数据包,如下图所示。 图 4-17 发送FTP命令 分析上图中TCP数据段首部,可以看到序列号为0XDE212AB1,数据部分长度为5字节。再查看从PC2会返回的确认数据段,如下图所示。 图 4-18 TCP确认报文 查看上图中TCP数据段的报头部分,确认序号为0X0XDE212AB7,因为0XDE212AB1+6=0X0XDE212AB7,因此,此确认序号的含义为上一个发送的TCP数据段信息全部处理,发送端可以发送0X0XDE212AB7以后的数据,此即是TCP确认机制的过程。 步骤四:查看TCP连接超时重传过程 1、查看PC1中ARP缓存记录,确保有PC2中ARP记录,如下图所示。 图4-19 查看PC1中ARP缓存记录 2、将PC2从网络中断开,确保PC2不会对PC1发送的TCP连接请求进行回应。 3、在PC1中开启协议分析软件,进行数据包捕获。 4、在PC1中用工具栏中的TCP连接工具对PC2的FTP服务发起连接. 5、在PC1中分析捕获的TCP数据段,如下图所示。 图 4-21 TCP超时重传数据段 从上图中可以看到,在发出SYN位置1的TCP连接请求没有得到相应后,连接工具又发送了第二个相同的SYN位置1的TCP连接请求,进行重传,确定数据段为重传数据段可以通过TCP首部中的序列号确认,例如本例中,重传数据段中的序列号均为0XC89A6413。 【思考问题】 1、 TCP在建立连接时为什么需要3次握手,而断开连接是需要4次握手? 1)、当主机A确认发送完数据且知道B已经接受完了,想要关闭发送数据口(当然确认信号还是可以发),就会发FIN给主机B。 2)、主机B收到A发送的FIN,表示收到了,就会发送ACK回复。 3)、但这是B可能还在发送数据,没有想要关闭数据口的意思,所以FIN与ACK不是同时发送的,而是等到B数据发送完了,才会发送FIN给主机A。 4)、A收到B发来的FIN,知道B的数据也发送完了,回复ACK, A等待2MSL以后,没有收到B传来的任何消息,知道B已经收到自己的ACK了,A就关闭链接,B也关闭链接了。 2、 请举例说明日常应用中,哪些应用在传输层采用TCP,哪些应用在传输层采用UDP? 比如电子邮件,文件传送采用TCP,IP电话,流式多媒体通信采用UDP 3、 当出现超时没有收到确认报文时,TCP连接默认会进行几次重传? 一般三次重传,每次重传间隔时间会加长 实验过程中遇到的问题: 实验过程中一开始捕获报文的时候并没有认真的看SYN ACK字段的值,还有每一次握手的时候序列号与确认序列号的关系,后来经过老师的提醒,再认真看了书上的原理之后成功完成了。 15 / 16
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服