实验四 传输控制协议TCP
【实验目的】
1. 掌握TCP协议的报文格式
2. 掌握TCP连接的建立和释放过程
3. 掌握TCP数据传输中编号与确认的过程 4. 掌握TCP协议校验和的计算方法 5. 理解TCP重传机制
【实验学时】
2学时
【实验环境配置】
采用网络结构一
【实验原理】
一. TCP报文格式
16位源端口号 32位序号 32位确认序号 U A P R S F 4位首保留(6R C S S Y I 部长度 位) G K H T N N 16位校验和 选项 数据 二. TCP连接的建立
TCP是面向连接的协议。 在面向连接的环境中,开始传输数据之前,在两个终端之间必须先建立一个连接。对于一个要建立的连接,通信双方必须用彼此的初始化序列号seq和来自对方成功传输确认的应答号ack(指明希望收到的下一个八位组的编号)来同步,习惯上将同步信号写为SYN,应答信号写为ACK。
16位窗口大小 16位紧急指针 16位目的端口号 整个同步的过程称为三次握手,如图
三. TCP连接的释放
对于一个已经建立的连接,TCP使用四次握手来结束通话(使用一个带有FIN附加标记的报文段)。 如图
四. TCP重传机制
TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到期,但还没有收到确认,就要重传这一报文段。
【实验步骤】
按照拓扑结构图连接网络,使用拓扑验证检查连接的正确性。
练习一:察看TCP连接的建立和释放
1. 主机B、C、D启动协议分析器进行数据捕获,并设置过滤条件(提取TCP协议)。 2. 主机A启动仿真编辑器,进入TCP连接视图。在“服务器信息/IP地址”中填入主机
C的IP地址;使用“端口扫描”获取主机C的TCP端口列表,在“服务器信息/端口”中填入主机C的一个TCP端口(大于1024);点击“连接”按钮进行连接。 3. 察看主机B、C、D捕获的数据,填写下表。
字段名称 Sequence Number 报文1 1395441157 报文2 3695045941 报文3 1395441158 Acknowledgement Number 0 ACK SYN 1 1 1395441158 1 1 3695045942 1 0 TCP连接建立时,前两个报文的首部都有一个“maximum segment size”字段,它的值是多少?作用是什么?结合IEEE802.3协议规定的以太网最大帧长度分析此数据是怎样得出的。 答:1460;
由发送端指定,表明了能在网络上传输的最大的段尺寸;
maximum segment size = MTU – 20(IP首部)-20(TCP首部)。
4. 主机A断开与主机C的TCP连接。 5. 察看主机B、C、D捕获的数据,填写下表。 字段名称 报文4 报文5 报文6 报文7 Sequence Number 1395441158 3695045942 3695045942 1395441159 Acknowledgement Number ACK SYN 3695045942 1395441159 1395441159 3695045943 1 1 1 0 1 1 1 0 结合步骤3、5所填的表,理解TCP的三次握手建立连接和四次握手的释放连接
过程,理解序号、确认号等字段在TCP可靠连接中所起的作用。