首页 > 其他分享 >郑州大学计算机网络实验04 TCP协议探索和连接管理分析

郑州大学计算机网络实验04 TCP协议探索和连接管理分析

时间:2024-06-03 20:32:56浏览次数:21  
标签:ns56A ns57C 窗口 04 主机 报文 TCP 计算机网络

实验四:TCP协议探索和连接管理分析

【实验目的】

1、掌握TCP协议数据格式;

2、掌握TCP首部各字段含义;

3、掌握TCP建立连接和释放连接的过程;

4、熟悉Linux下truncate命令的使用方法;

5、了解Linux中利用nc命令开启远程shell的方法。

【实验步骤与结果记录】

要求:根据实验指导书中的实验内容和步骤,认真完成实验。采取截图、拍照等形式记录自己的实验步骤和结果。(可根据需要加页)

步骤1:创建虚拟网络拓扑。

1.使用script3.1.sh 脚本,创建如图所示的网络拓扑结构。

在Linux中,该虚拟网络拓扑的实现如图所示。

运行脚本,创建虚拟网络拓扑。

2.执行Linux命令,ip netns list 查询已经建立的NS列表,在所有NS内执行ifconfig -a 命令查看NS内的网络接口配置,执行Linux命令 brctl show 查看交换机桥接状态,验证网络拓扑。

步骤2:为虚拟网络拓扑中的各路由器配置静态路由。

1. 使用script3.2.sh 脚本,为各路由器配置静态路由。

步骤3:关闭网卡offload功能,将运输层封装时需要的计算还给CPU

1. 使用script3.3.sh 脚本,关闭网卡offload功能。

步骤4:打开两个终端窗口,分别模拟主机ns56A和主机ns57C

1.打开一个终端窗口,利用Linux命令bash将本窗口模拟成主机ns56A的终端  执行以下命令

ip netns exec ns56A bash

执行上述命令后,Linux将在网络命名空间ns56A中开启bash交互,之后输入的Linux命令均在ns56A中执行,相当于模拟了主机ns56A的终端。

2.然后输入 ifconfig -a ,确认是否成功模拟成主机ns56A。

为了避免混淆,可以改变终端窗口名字。

3. 再打开一个终端窗口,利用Linux命令bash将本窗口模拟成主机ns57C的终端  执行以下命令  

ip netns exec ns57C bash

  模拟主机ns57C的终端。

4.然后输入ifconfig -a ,确认是否成功模拟成主机ns57C,并修改终端名。

步骤5:在主机ns57C上创建一个3500字节长度的文件备用。

1.在主机ns57C的模拟终端中,执行如下命令,创建一个3500字节长度的文件,命名为3500.0。

 truncate -s 3500 3500.0

步骤6:在主机ns57C上启动Wireshark,在接口tap57C上启动抓包。

1.新开一个终端窗口,执行以下命令,在主机ns57C后台上启动Wireshark。

ip netns exec ns57C wireshark &

2.在Wireshark窗口中选择接口tap57C,启动抓包。

步骤7:在主机ns57C上打开TCP服务程序。在主机ns56A上打开TCP客户程序,然后通过网络将主机ns57C上的3500.0文件读取到主机ns56A

1.在主机ns57C的模拟终端中,执行如下命令,在4499端口打开TCP服务,并开启shell服务。

nc -e /bin/sh -lv 4499

执行上述命令后,通过TCP连接收到的字符将被发送到主机ns57C的shell中执行。

2.在主机ns56A的模拟终端中,执行如下命令,打开TCP客户程序,并指定TCP服务程序的IP地址和端口。 

nc 192.168.57.254 4499

3.在主机ns56A的模拟终端中,输入如下命令,将该命令被发送到主机ns57C的shell中,读取文件3500.0,命令执行结果通过TCP连接发送回主机ns56A。

cat 3500.0

4.文件传输完毕后,在主机ns57C和ns56A上,先后用 Ctrl+C 终止TCP通信。

步骤8:在Wireshark中停止抓包,保存抓包结果文件并分析本次TCP通信,理解TCP报文段格式,理解TCP建立连接和释放连接的过程

1.停止抓包后保存抓包数据,便于后续进行分析。

【问题与分析】

1.在步骤7中,操作系统为主机ns56A上的TCP客户程序分配的端口号是多少?截图说明你的分析过程。

如图所示,操作系统为主机ns56A上的TCP客户程序分配的端口号是59502。

2.在步骤7中,你一共截获了几个TCP报文段?分析连接建立后,第一个TCP客户发给TCP服务器的报文段,以及第一个TCP服务器发给TCP客户的报文段的首部,截图并填写表4.1和表4.2。

如图所示,共有25个报文段,有10个是ARP,有15个是TCP报文段。

第一个TCP客户发给TCP服务器的报文段是8号报文,按照报文内容填写即可。

按照如图所示将相对序号关闭即可获得真实序号。

表4.1 TCP客户发给TCP服务器的报文段首部

字段名

源端口

59502

目的端口

4499

序号(真实序号)

2046422412

确认号(真实确认号)

851582143

数据偏移

32bytes

窗口

229

校验和

0xd213

包含什么选项

No-Operation (NOP), Timestamps

第一个TCP服务器发给TCP客户的报文段是9号报文,按照报文内容填写即可。

表4.2 TCP服务器发给TCP客户的报文段首部

字段名

源端口

4499

目的端口

59502

序号(真实序号)

851582143

确认号(真实确认号)

2046422423

数据偏移

32bytes

窗口

227

校验和

0x2b94

包含什么选项

No-Operation (NOP), Timestamps

3.在你的实验结果中,TCP建立连接时,双方是否使用了MSS选项,主机ns56A和主机ns57C发送给对方的MSS选项值时多少?ns57C将3500字节数据发送给ns56A用了几个报文段?每个报文段中包含多少字节的数据?请计算ns57C的有效最大报文段长度,并验证是否与实验结果一致?截图说明你的分析过程。

双方都使用了MSS选项。

如图所示,双方发给对方的MSS值都为1460bytes。 

将数据值应用到列,便于查看数据长度。

改变标题,避免混淆。

由数据可知,共用了3个报文段,数据长度分别为1448,1448,604。

EMSS=min(RMTU,SMTU)-TCP首部长度-IP首部长度

SMTU=1500

RMSS=RMTU-40=1460

RMTU=1460+40=1500

EMSS=min(1500,1500)-TCP首部长度-IP首部长度

IP首部长度为20。

TCP首部长度为32

EMSS=1500-20-32=1448

与计算的一致。

4.在你的实验结果中,通信双方使用窗口扩大选项了么?双方的窗口移位值时各是多少?双方的窗口各扩大了多少倍?截图说明你的分析过程。

由图可知客户使用了窗口扩大选项,窗口移位值为7,窗口扩大了128倍。

由图可知服务器使用了窗口扩大选项,窗口移位值为7,窗口扩大了128倍。

5.在步骤7中,你截获TCP建立连接和释放连接的报文段了么?分析建立连接和释放连接的几个报文段,截图并填写表4.3和表4.4。

建立连接使用了3个报文段。

通过查询报文段的Flags的内容即可知道SYN位与ACK位的值,按照数据填写表格即可。

表4.3 TCP建立连接的分析

报文段序号

SYN位

ACK位

序号(真实序号)

确认号

(真实确认号)

3

1

0

2046422411

0

4

1

1

851582142

2046422412

5

0

1

2046422412

851582143

释放连接共使用了4个报文段。

通过查询报文段的Flags的内容即可知道FIN位与ACK位的值,按照数据填写表格即可。

表4.4 TCP释放连接的分析

报文段序号

FIN位

ACK位

序号(真实序号)

确认号

(真实确认号)

18

1

1

851585643

2046422423

19

0

1

2046422423

851585644

22

1

1

2046422423

851585644

23

0

1

851585644

2046422424

标签:ns56A,ns57C,窗口,04,主机,报文,TCP,计算机网络
From: https://blog.csdn.net/unbug1/article/details/139231355

相关文章

  • 算法第四天力扣第704题:二分查找
    704.二分查找的题目链接如下:https://leetcode.cn/problems/binary-search/https://leetcode.cn/problems/binary-search/  给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 ......
  • DDOS之TCP连接耗尽攻击与防御
    攻击原理connectionflood攻击是非常有效的利用小流量冲击大带宽的攻击手段,这种攻击方式曾经风靡一时。攻击的原理是利用真实IP向服务器发起大量的连接,并且建立连接之后很长时间不释放,占用服务器的资源,造成服务器服务器上WAIT连接状态过多,效率降低,消耗对方网络资源甚至耗尽,无......
  • 计算机网络基础-VRRP原理与配置
    目录一、了解VRRP1、VRRP的基本概述2、VRRP的作用二、VRRP的基本原理1、VRRP的基本结构图2、设备类型(Master,Backup) 3、VRRP抢占功能3.1:抢占模式3.2、非抢占模式4、VRRP设备的优先级5、VRRP工作原理三、VRRP的基本配置3.1、配置主设备与备用设备​ 3.2、结果......
  • 为Ubuntu18.04云服务器创建sudo用户
    目录1背景2问题3解决1背景  昨天购买了一个Ubuntu18.04的云服务器,登录进去只有root账号,新建一账号james,用james账号登录后,提示没有james主目录,进入/home目录一看,还真没有。既然没有那就创建一个。2问题登录james在/home创建目录james目录提示没权限:$mkd......
  • 《计算机网络微课堂》实验17 开放最短路径优先OSPF
    170.实验17:开放最短路径优先OSPF下面我们来进行一个仿真实验,本仿真实验的目的在于验证OSPF协议的作用。我已经在软件中构建好了这样一个网络拓扑,并且在每个设备的旁边都标注了所需要配置的IP地址,为了简单起见,本实验所采用的IP地址为主类IP地址,也就是采用默认子网掩码的......
  • 《计算机网络微课堂》实验19 网际控制报文协议ICMP的应用
    下面我们来进行一个仿真实验,本仿真实验的目的在于验证PING命令和tracert命令的工作原理,这两个命令都是基于网际控制报文协议ICMP而实现的。ping命令在我们之前的仿真实验中经常会用到,我们使用它来测试主机之间的连通性,或者是主机和路由器之间的连通性,又或者是路由器和路由......
  • 计算机网络-OSI七层参考模型与数据封装
    目录一、网络1、网络的定义2、网络的分类3、网络的作用4、网络的数据传输方式5、网络的数据通讯方式二、OSI七层参考模型1、网络参考模型定义2、分层的意义3、分层与功能4、TCP\IP五层模型  三、参考模型的协议1、物理层2、数据链路层3、网络层4、传输层5、......
  • 《计算机网络微课堂》实验14 聚合了不存在的网络导致的路由环路问题
    下面我们来进行一个仿真实验,本仿真实验的目的在于验证,由于聚合了不存在的网络,而导致静态路由的路由环路问题。我已经在软件中构建好了我们理论课程中所用到的网络拓扑,并且给网络中的每个设备都配置了相应的IP地址和地址掩码。对于网络中的各个主机,我还给他们指定了默认网关,例如......
  • 计算机网络-数制转换与子网划分
    目录一、了解数制1、计算机的数制2、二进制3、八进制4、十进制5、十六进制二、数制转换1、二进制转十进制2、八进制转十进制3、十六进制转十进制4、十进制转二进制5、十进制转八进制6、十进制转十六进制三、子网划分1、IP地址定义2、IP的两种协议介绍2.1、......
  • 第04章—探索CesiumWidget:构建交互式3D地球应用的深度实践
    引言在前两章节中,我们一同探索了Cesium与Vue,React框架结合的基础应用,从环境搭建到如何在组件中无缝嵌入Cesium的三维地球视图,为前端项目注入了地理空间可视化的能力。这一过程不仅加深了我们对MVVM框架的理解,也让Cesium的强大多媒体与空间分析功能得以在现代Web应用中大放......