文档库 最新最全的文档下载
当前位置:文档库 › 实验14 TCP建立连接过程实验(参考答案)

实验14 TCP建立连接过程实验(参考答案)

实验14 TCP建立连接过程实验(参考答案)
实验14 TCP建立连接过程实验(参考答案)

实验14 TCP 建立连接过程实验

1 实验目的

通过实验掌握TCP 建立连接的过程,理解TCP 的工作原理。

2 实验环境

VMware 中虚拟机,相互能够连通。WireShark 软件包。

3 实验原理或背景知识

TCP 是TCP/IP 协议体系中运输层的重要协议。它为应用层提供面向连接的、可靠的数据传递服务。在提供数据可靠性的同时,TCP 还为应用层提供了全双工的数据传输服务。

TCP 接收应用层的数据,添加TCP 首部后形成TCP 报文段。TCP 报文段需要被下层的IP 协议封装,发送到目的地。如图1所示。

图1TCP 报文段的组成和封装

3.1 TCP 报文段

TCP 的报文段如图2所示。

TCP报文段IP报文

图2TCP 报文段的结构

1、源端口和目的端口:16bit ,分别对应发送数据的应用进程和接收数据的应用进程。TCP 用这两个字段来实现多路复用和多路分解。

2、序号和确认号:32bit ,TCP 将连接上发送的每一个字节都进行编号,序号和确认号用来实现可靠的数据传输。其中,序号是TCP 报文段数据部分的第一个字节的编号;确认号是告诉对方期望收到对方的下一个字节的编号。

3、数据偏移:4bit ,表示TCP 报文段中的数据部分距离TCP 首部的起始位置有多少字节。它实际上就是TCP 首部的长度。

4、保留字段:6bit ,保留作为以后扩展。

5、标志字段:6bit ,当其值为1时称为置位。这里有6个位,分别是URG 表示紧急指针,ACK 表示确认,PSH 表示请求推送,RST 表示连接复位,SYN 表示同步序号,FIN 表示终止连接。

6、窗口大小:16bit ,主要用于流量控制,用来告诉对方的TCP 自己接收缓存的大小。

7、检验和:用来确保数据的可靠性。

8、紧急指针:给出紧急数据距离当前序号的偏移量。

9、可选项:可选的,TCP 只规定一种可选项,最大报文段长度(MSS ),规定TCP 报文段的最大字节数。

10、填充项:当可选项字段的长度不是4字节的整倍数时,填充项字段需要将其补足,填充项字段全部都是0。

3.2TCP 连接

TCP 提供面向连接的传输服务。利用TCP 通信的两个应用进程要首先建立连接,这个连接是软件意义上的连接,并不是一条实际的物理线路。

建立连接的目的是使通信双方在开始传输数据前建立联系,使双方都确定对方愿意与之通信;同时在建立连接的过程中传递和协商一些必要的参数(如发送字节的起始编号和MSS :最大报文段长度),为后面的数据传递打下基础。连接建立后,两边的应用进程就可以开始

TCP首部

20字节

长度可变

全双工的通信,在此期间,连接两端的TCP 会记录数据发送和接收的情况,利用控制信息始终保持这个连接,直到数据传输完毕。最后TCP 还要负责关闭这个连接,释放与这个连接相关的资源。TCP 连接的3次握手如图3所示。

图3TCP 的三次握手示意图

4 实验任务

利用WireShark 捕捉TCP 建立连接的数据包,分析TCP 建立连接的过程。

5 实验步骤

第1步,搭建一个基于TCP 服务的服务器,如(FTP 或Web )服务器,为客户端提供访问。本例创建的是www 服务器。

第2步,打开WireShark ,设置捕捉TCP 数据包,如图4所示。打开web 站点,捕捉到TCP 数据包。如图5所示。

客户端

服务器

LISTEN

SYN-RECEIVED

SYN-RECEIVED

ESTABLISHED

图4WireShark中捕捉TCP数据包

图5捕捉TCP数据包

第3步,根据TCP建立连接的过程,针对三次握手的报文段,填写相关内容。

注:上面表格中内容为示例,请以实际实验数据填写。

【练习与思考】

1、如果要列出本机当前建立的连接,可以使用的命令是()

https://www.wendangku.net/doc/857855025.html,stat -s

https://www.wendangku.net/doc/857855025.html,stat -o

https://www.wendangku.net/doc/857855025.html,stat -a

https://www.wendangku.net/doc/857855025.html,stat -r

2、TCP 的主要功能是

A .进行数据分组

B .保证可靠传输

C .确定数据传输路径

D .提高传输速度

3、TCP报文段中序号字段指的是

A 数据部分第一个字节

B 数据部分最后一个字节

C 报文首部第一个字节

D 报文最后一个字节

4、TCP报文中确认序号指的是

A 已经收到的最后一个数据序号

B 期望收到的第一个字节序号

C 出现错误的数据序号

D 请求重传的数据序号

5、TCP的确认是对接收到的数据中()表示确认

A 最高序号

B 第一个序号

C 第二个序号

D 倒数第二个序号

6、TCP发送一段数据报,其序号是35~150,如果正确到达,接收方对其确认的序号为()

A 36 B150 C 35 D 151

填空题:

7、TCP报文的首部最小长度是20字节

8、TCP报文段中给源端口分配了 2字节的长度

9、TCP报文段中序号字段为 4 字节

10、TCP报文段中的数据偏移实际指明的是TCP报文段首部的长度

11、TCP报文段中,如果要使当前数据报传送到接收方后,立即被上传应用

层,可将 URG 置1

12、TCP协议对每一个要发送字节编了一个号

判断题:

13、TCP报文段中的确认序号只有在ACK=1时才有效(T )

14、TCP报文段中的PSH字段置1时,表明该报文段需要尽快传输( T)

15、TCP报文段校验时也需要像UDP协议那样增加一个伪首部(T )

16、TCP协议是按报文段进行编号的(F )

相关文档