《计算机网络》
实验报告
郑州大学信息工程学院
实验四:TCP协议探索和连接管理分析 【实验目的】1、掌握TCP协议数据格式;
2、掌握TCP首部各字段含义;
3、掌握TCP建立连接和释放连接的过程;
4、熟悉Linux下truncate命令的使用方法;
5、了解Linux中利用nc命令开启远程shell的方法。
【实验步骤与结果记录】要求:根据实验指导书中的实验内容和步骤,认真完成实验。采取截图、拍照等形式记录自己的实验步骤和结果。(可根据需要加页)
步骤1:创建虚拟网络拓扑。
(1) 本实验和实验三采用相同的网络拓扑。
拓扑结构如图所示:
{width="4.278472222222222in" height="4.31875in"}
(2) 利用脚本程序 script3.1可以创建本实验的虚拟网络拓扑。
执行script3.1.sh脚本,创建网络拓扑结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LKoKjErB-1637049051206)(media/image3.png)]{width=“4.6715277777777775in” height=“2.7875in”}
步骤2:为虚拟网络拓扑中的各路由器配置静态路由。
(1) 本实验和实验三采用相同的网络拓扑,路由配置也一样。
(2) 利用脚本程序script3.2可以配置各路由器的静态路由。
执行脚本配置静态路由
{width="4.972916666666666in" height="1.5104166666666667in"}
步骤3:关闭网卡 offload功能,将运输层封装时需要的计算还给CPU.
(1) 本实验关闭 offload的方法与实验三相同。
(2) 利用脚本程序 script3.3可以关闭网卡 offload功能
执行脚本script3.3关闭网卡的offload
{width="3.884027777777778in" height="2.7694444444444444in"}
步骤4:打开两个终端窗口,分别模拟主机ns56A和主机ns57C.
(1) 本实验与实验三一样,利用网络命名空间ns56A和ns57C模拟两台通信
的主机,模拟主机的方法与实验三相同。
(2) 打开一个终端窗口,利用Linux命令bash将本窗口模拟成主机ns56A的
终端.
执行如下 Linux命令
ip netns exec ns56A bash
执行上述命令后,该终端窗口模拟了主机ns56A的终端
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OhRCabyY-1637049051207)(media/image6.png)]{width=“4.949305555555555in” height=“2.504861111111111in”}
(3) 再打开一个终端窗口,利用 Linux命令bash将本窗口模拟成主机ns57C
的终端。
执行如下 Linux命令:
ip netns exec ns57c bash
执行上述命令后,该终端窗口模拟了主机ns57C的终端。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e01WnAUb-1637049051208)(media/image7.png)]{width=“5.7652777777777775in” height=“1.8333333333333333in”}
步骤5:在主机ns57C上创建一个3500字节长度的文件备用
(1) 在主机ns57C的模拟终端中,执行如下命令,创建一个3500字节长度的
文件,命名为3500.0
truncate -s 3500 3500.0
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FzMYuyKG-1637049051209)(media/image8.png)]{width=“5.764583333333333in” height=“1.8111111111111111in”}
步骤6:在主机ns57C上启动 Wireshark,在接口tap57C上启动抓包。
(1) 新开一个终端窗口,执行如下命令,在主机ns57上后台启动 Wireshark.
ip nets exec ns57c wireshark &
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bBC2YAfR-1637049051211)(media/image9.png)]{width=“5.09375in” height=“0.3958333333333333in”}
(2) 在 Wireshark窗口中选择接口tap57,启动抓包。
{width="4.74375in" height="2.6791666666666667in"}
步骤7:在主机ns57C上打开TCP服务程序。在主机nsS6A上打开TCP客户
程序,然后通过网络将主机ns57c上的3500.0文件读取到主机ns56A.
(1) 在主机ns57C的模拟终端中,执行如下命令,在4499端口打开TCP服
务,并开启 shell 程序。
nc -e /bin/sh -lv 4499
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OMZe1tp8-1637049051211)(media/image11.png)]{width=“4.026388888888889in” height=“1.1319444444444444in”}
执行上述命令后,通过TCP连接收到的字符将被发送到主机的shell中执行。
(2) 在主机ns56A的模拟终端中,执行如下命令,打开TCP客户程序,并指
定TCP服务程序的IP地址和端口。
nc 192.168.57.25 4499
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zZM5SYka-1637049051212)(media/image12.png)]{width=“4.229166666666667in” height=“0.75in”}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Cb1vLqn-1637049051212)(media/image13.png)]{width=“4.6875in” height=“1.625in”}
(3) 在主机ns56A的模拟终端中,输入如下命令,将该命令被发送到主机
ns57C的shell中,读取文件3500.0,命令执行结果通过TCP连接发送回主机ns56A
cat 3500.0
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E5Ugw8E7-1637049051213)(media/image14.png)]{width=“4.677083333333333in” height=“0.59375in”}
(4) 文件传输完毕后,在主机ns57C和ns56A上,先后用"Ctrl+C"终止TCP通信。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Obyz68Vj-1637049051213)(media/image15.png)]{width=“5.7659722222222225in” height=“3.4541666666666666in”}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FxQ2kGUt-1637049051214)(media/image16.png)]{width=“5.666666666666667in” height=“1.96875in”}
步骤8:在 Wireshark中停止抓包,保存抓包结果文件并分析本次TCP通信,
理解TCP报文段格式,理解TCP建立连接和释放连接的过程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GSiXNJUc-1637049051214)(media/image17.png)]{width=“5.7625in” height=“4.101388888888889in”}
【问题与分析】1、在步骤7中,操作系统为主机ns56A上的TCP客户程序分配的端口号是多少?截图说明你的分析过程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cuMJFt6A-1637049051215)(media/image15.png)]{width=“5.7659722222222225in” height=“3.4541666666666666in”}
从服务端接收到的连接可以看到,ns56A的IP为192.168.56.126,端口为53614
-
在步骤7中,你一共截获了几个TCP报文段?分析连接建立后,第一个TCP客户发给TCP服务器的报文段,以及第一个TCP服务器发给TCP客户的报文段的首部,截图并填写表4.1和表4.2。
19个TCP报文段
经过三次握手,第八号报文即为TCP客户发给TCP服务器的第一个报文
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1VhfcpOb-1637049051215)(media/image18.png)]{width=“5.897222222222222in” height=“3.6368055555555556in”}
表4.1 TCP客户发给TCP服务器的报文段首部
字段名 值
源端口 53614
目的端口 4499
序号(真实序号) 3333308170
确认号(真实确认号) 3470369203
数据偏移 32 bytes
窗口 229
校验和 0x9e85
包含什么选项 NOP,NOP,Timestamps
服务器发给客户的第一个报文为第九号报文
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hgueu53g-1637049051216)(media/image19.png)]{width=“4.875in” height=“3.6180555555555554in”}
表4.2 TCP服务器发给TCP客户的报文段首部
字段名 值
源端口 4499
目的端口 53614
序号(真实序号) 3470369203
确认号(真实确认号) 3333308181
数据偏移 32 bytes
窗口 227
校验和 0xcc25
包含什么选项 NOP,NOP, Timestamps
3、在你的实验结果中,TCP建立连接时,双方是否使用了MSS选项,主机ns56A和主机ns57C发送给对方的MSS选项值时多少?ns57C将3500字节数据发送给ns56A用了几个报文段?每个报文段中包含多少字节的数据?请计算ns57C的有效最大报文段长度,并验证是否与实验结果一致?截图说明你的分析过程。
使用了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CFHv5Waj-1637049051216)(media/image20.png)]{width=“4.54375in” height=“2.7888888888888888in”}
ns56A发送给ns57C时的MSS值为 1460 bytes
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ws6oJfRH-1637049051216)(media/image21.png)]{width=“4.7131944444444445in” height=“2.8805555555555555in”}
Ns67C发送给ns56A时的MSS值为 1460 bytes
发送长度为3500字节数据用了三个报文段
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0MrDGfMb-1637049051217)(media/image22.png)]{width=“5.7625in” height=“1.5875in”}
有两个数据长度为1448的报文段和一个数据长度为604的报文段
最大有效报文段长度
由上述分析,可知RMSS = RMTU - 40 = 1460
MSS_S = 发送方MTU - 20 = 1480
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-12qIksIy-1637049051217)(media/image23.png)]{width=“2.7604166666666665in” height=“4.395138888888889in”}
由截图分析知,TCP首部长度为32,IP首部选项长度为0
EMSS = min (RMSS + 20 , MSS_S) - TCPhdsize - IPhdsize
= min (1460 + 20, 1480) - 32 - 0
= 1448
与实验结果中发送最大报文段长度相等
4、在你的实验结果中,通信双方使用窗口扩大选项了么?双方的窗口移位值时各是多少?双方的窗口各扩大了多少倍?截图说明你的分析过程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fzUqmjAn-1637049051218)(media/image24.png)]{width=“4.083333333333333in” height=“2.65625in”}
客户端使用了窗口扩大选项
移位值是7,扩大了128倍
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UxMCnYbF-1637049051218)(media/image25.png)]{width=“4.208333333333333in” height=“2.6979166666666665in”}
服务端使用了窗口扩大选项
移位值为7,扩大了128倍
-
在步骤7中,你截获TCP建立连接和释放连接的报文段了么?分析建立连接和释放连接的几个报文段,截图并填写表4.3和表4.4。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EzX4TiK6-1637049051219)(media/image26.png)]{width=“5.761805555555555in” height=“3.1479166666666667in”}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4j1lpdyF-1637049051219)(media/image27.png)]{width=“5.275in” height=“4.316666666666666in”}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XfKuO3hz-1637049051219)(media/image28.png)]{width=“5.7652777777777775in” height=“3.625in”}
表4.3 TCP建立连接的分析
报文段序号 SYN位 ACK位 序号(真实序号) 确认号(真实确认号)
1 1 0 3333308169
2 1 1 3470369202 3333308170
3 0 1 3333308170 3470369202
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xcwfqByt-1637049051220)(media/image29.png)]{width=“5.758333333333334in” height=“3.3375in”}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QH9kIyPj-1637049051220)(media/image30.png)]{width=“5.764583333333333in” height=“3.1777777777777776in”}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9jUoCn13-1637049051221)(media/image31.png)]{width=“5.7659722222222225in” height=“3.147222222222222in”}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oJeNntp7-1637049051221)(media/image32.png)]{width=“5.763888888888889in” height=“3.2319444444444443in”}
表4.4 TCP释放连接的分析
报文段序号 FIN位 ACK位 序号(真实序号) 确认号(真实确认号)
16 1 1 3470372703 3333308181
17 0 1 3333308181 3470372704
18 1 1 3333308181 3470372704
19 0 1 3470372704 3333308182



