IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络实验五 -> 正文阅读

[网络协议]计算机网络实验五

《计算机网络》

实验报告

郑州大学信息工程学院

实验五:TCP可靠传输和重传分析

【实验目的】

1、掌握TCP可靠传输原理;

2、掌握TCP的超时重传和快重传机制;

3、了解Linux下iptables命令的使用方法。

【实验步骤与结果记录】

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

步骤1:修改 Linux系统参数。

  1. 在 Linux中,执行如下命令,修改TCP连接的接收缓存参数,减少 Linux分配的接收缓存,降低接收窗口值。

Syscti -w net.ipv4.tcp_rmem= ‘4096 65536 65536’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MeThun0D-1637049102160)(media/image2.png)]{width=“5.7625in” height=“0.7305555555555555in”}

  1. 在Linux中,执行如下命令,关闭SACK选项,避免执行基于SACK的重传算法。

Sysctl -w net.ipv4.tcp_sack=0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7nfQQmKm-1637049102162)(media/image3.png)]{width=“4.739583333333333in” height=“0.6354166666666666in”}

步骤2:创建虛拟网络拓扑。

(1) 本实验和实验三采用相同的网络拓扑

(2) 利用脚本程序 script3.1可以创建本实验的虚拟网络拓扑。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5dxEVn2u-1637049102162)(media/image4.png)]{width=“5.764583333333333in” height=“3.966666666666667in”}

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

(1) 本实验和实验三采用相同的网络拓扑,路由配置也一样。

(2) 利用脚本程序 script3.2可以配置各路由器的静态路由。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2zpqIJgr-1637049102163)(media/image5.png)]{width=“5.7659722222222225in” height=“2.047222222222222in”}

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

(1) 本实验关闭 offload的方法与实验三相同。

(2) 利用脚本程序 script3.3可以关闭网卡 offload功能。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pzhvfRq4-1637049102163)(media/image6.png)]{width=“5.7625in” height=“3.952777777777778in”}

步骤5:在路由器RA上,用 iptables设置规则,模拟丢包

(1) 执行如下 Linux命令,在路由器RA中,用 iptables设置规则,以10%的概率丢弃目的地址为192.168.57.254(ns57C)的IP数据报。

ip netns exec RA iptables -l FORWARD -d 192.168.57.254 -m statistic --mode random --probability 0.1 -j DROP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KfN1OACx-1637049102163)(media/image7.png)]{width=“5.7625in” height=“0.46111111111111114in”}

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

(1) 本实验与实验三一样,利用网络命名空间ns56A和ns57C模拟两台通信的主机,模拟主机的方法与实验三相同。

(2) 打开一个终端窗口,利用 Linux命令bash将本窗口模拟成主机ns56A的

终端。

执行如下 Linux命令

ip netns exec ns56a bash

执行上述命令后,该终端窗口模拟了主机ns56A的终端

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0jYgFczf-1637049102164)(media/image8.png)]{width=“4.570138888888889in” height=“2.4631944444444445in”}

(3) 再打开一个终端窗口,利用 Linux命令bash将本窗口模拟成主机ns57C

的终端。

执行如下 Linux命令:

ip netns exec ns57c bash

执行上述命令后,该终端窗口模拟了主机ns57C的终端。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vdfhxlfh-1637049102165)(media/image9.png)]{width=“4.543055555555555in” height=“2.879166666666667in”}

步骤7:在主机ns5A上创建一个100K字节长度的文件备用。

(1) 在主机ns56A的模拟终端中,执行如下命令,创建一个100K字节长度的文件,命名为100K.0

truncate -s 100K 100K.0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F1MR6F8B-1637049102166)(media/image10.png)]{width=“4.333333333333333in” height=“0.6354166666666666in”}

步骤8:在主机ns56A上启动 Wireshark,在接口tap56A上启动抓包。

(1) 新开一个终端窗口,执行如下命令,在主机ns56A上后台启动 Wireshark.

ip netns exec ns56A wireshark &

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rzhLkCy4-1637049102167)(media/image11.png)]{width=“5.763888888888889in” height=“1.6708333333333334in”}

(2) 在 Wireshark窗口中选择接口tap56A,启动抓包。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YhjjYVty-1637049102167)(media/image12.png)]{width=“3.7888888888888888in” height=“2.6569444444444446in”}

步骤9:在主机ns57C上打开TCP服务程序。在主机ns56A上打开TCP客户程序,然后通过网络将主机ns56A上的100K.0文件发送到主机ns57C

(1) 在主机ns57C的模拟终端中,执行如下命令,在4499端口打开TCP服务,并将输出重定向到文件100K.1

nc -lv 4499 > 100K.1

执行上述命令后,通过TCP连接收到的字符将被保存到文件100K.1中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DpBIx5mn-1637049102168)(media/image13.png)]{width=“4.75in” height=“1.5833333333333333in”}

(2) 在主机ns56A的模拟终端中,执行如下命令,打开TCP客户程序,指定

TCP服务程序的IP地址和端口,并将输入重定向到文件100K.0.

nc 192.168.57.254 4499 < 100K.0

执行上述命令后,TCP连接建立后,会自动读取文件100K.0,并从TCP连接发送出去。

(3) 文件100K.0发送完成后,ns56A上的nc命令会主动释放TCP连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KK4qRaff-1637049102168)(media/image14.png)]{width=“5.15625in” height=“0.6041666666666666in”}

步骤10:在 Wireshark中停止抓包,保存抓包结果文件并分析本次TCP通信,理解TCP超时重传机制和快重传机制。

(1) 如果抓包结果中没有出现快重传,可以重复执行实验步骤8-10,直至抓到理想的结果。

(2) 如果抓包结果中没有出现超时重传,可以重复执行实验步骤8-10,直至抓到理想的结果。

(3) 如果抓包结果中没有出现部分ACK,可以重复执行实验步骤8-10,直至抓到理想的结果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tjtmS4U7-1637049102169)(media/image15.png)]{width=“3.7694444444444444in” height=“3.261111111111111in”}

【问题与分析】

1、本实验要求捕获到TCP超时重传事件,快重传事件和部分ACK事件,你在实验中捕获这几种事件时,操作系统为主机ns56A上的TCP客户程序分配的端口号是多少,如果这些事件是分多次捕获的,请分别给出客户进程的端口号。截图说明。

36122

超时重传

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kr9w3zOi-1637049102169)(media/image16.png)]{width=“5.7652777777777775in” height=“0.35833333333333334in”}

快重传

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZCoV6yh3-1637049102169)(media/image17.png)]{width=“5.768055555555556in” height=“0.34305555555555556in”}

部分ACK重传

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EuoPxbYZ-1637049102170)(media/image18.png)]{width=“5.7652777777777775in” height=“0.19583333333333333in”}

2、在你的实验结果中,任意选择一个超时重传的报文段,分析并回答以下问题:

(1) wireshark给这个超时重传报文段的编号是多少?分析超时重传报文段的首部,截图并填写表5.1。


表5.1 超时重传报文段分析

wireshark给重传报文段的编号 22

源端口 36122

目的端口 4499

序号(相对序号) 8193

数据偏移 32 bytes

窗口 7300


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2XRYZa4M-1637049102170)(media/image19.png)]{width=“5.758333333333334in” height=“3.251388888888889in”}

(2) 这个超时重传报文段重传的原TCP报文段的编号是多少,分析原TCP报文段的首部,截图并填写表5.2。


表5.2原TCP报文段分析

wireshark给原报文段的编号 16

源端口 36122

目的端口 4499

序号(相对序号) 8193

数据偏移 32 bytes

窗口 7300


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D8uRJRxC-1637049102171)(media/image20.png)]{width=“5.756944444444445in” height=“2.6145833333333335in”}

(3) 超时重传报文段发送之前,共收到几次对该报文段的前一个报文段的ACK确认?该超时重传报文段触发过快重传么?该报文段与原报文段的时间间隔是多长?截图说明你的分析过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QhJl1o28-1637049102171)(media/image21.png)]{width=“5.7625in” height=“0.7479166666666667in”}

1次,没有触发快重传,在发送该报文前,7号报文发生丢包,出现重复ACK,在接收到7号报文后,服务器直接发送对16号报文前一个报文的确认。

时间间隔:1.202 - 1.001 = 0.201s

3、在你的实验结果中,任意选择一个快重传的报文段,分析并回答以下问题:

(1) wireshark给这个快重传报文段的编号是多少?分析超时重传报文段的首部,截图并填写表5.3。


表5.3 快重传报文段分析

wireshark给快重传报文段的编号 74

源端口 36122

目的端口 4499

序号(相对序号) 31361

数据偏移 32 bytes

窗口 7300


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VLglTZrh-1637049102172)(media/image22.png)]{width=“5.759722222222222in” height=“3.0in”}

(2) 这个快重传报文段重传的原TCP报文段的编号是多少,分析原TCP报文段的首部,截图并填写表5.4。


表5.4原TCP报文段分析

wireshark给原报文段的编号 52

源端口 36122

目的端口 4499

序号(相对序号) 31361

数据偏移 32 bytes

窗口 7300


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SOTEbi8w-1637049102172)(media/image23.png)]{width=“5.764583333333333in” height=“3.4541666666666666in”}

(3) 快重传报文段发送之前,共收到几次对该报文段的前一个报文段的ACK确认?截图说明你的分析过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-apcwc2IX-1637049102172)(media/image24.png)]{width=“5.753472222222222in” height=“0.8243055555555555in”}

3次,分别是69,71,72号报文

4、在你的实验结果中,找到一次主机ns57C发给主机ns56A的部分ACK报文段。分析这次快重传过程中,引起快重传的丢失报文段、快重传报文段、快重传之前ns56A发送的最后一个报文段、部分ACK报文段,截图并填写表5.5。


表5.5部分ACK分析

wireshark给丢失报文段的编号 111

wireshark给快重传报文段的编号 121

wireshark给快重传之前ns56A发送的最后一个报文段的编号 119

wireshark给部分ACK报文段的编号 126

丢失报文段的序号(相对序号) 63217

丢失报文段的数据部分长度 1448(字节)

快重传报文段的序号(相对序号) 63217

快重传之前ns56A发送的最后一个报文段的序号(相对序号) 71905

快重传之前ns56A发送的最后一个报文段的数据部分长度 1448(字节)

快重传发生时,ns56A发送的最后一字节的编号 64664

部分ACK报文段的确认号(相对确认号) 1


ns56A收到部分ACK报文段后,是如何处理的?截图说明你的分析过程。

丢失报文段(111):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-arM5vpty-1637049102173)(media/image25.png)]{width=“5.2868055555555555in” height=“2.783333333333333in”}

快重传报文段(121):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OywZZN4F-1637049102174)(media/image26.png)]{width=“4.732638888888889in” height=“2.870138888888889in”}

快重传之前ns56A发送的最后一个报文段(119)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mQPwxv7C-1637049102174)(media/image27.png)]{width=“5.7625in” height=“2.966666666666667in”}

部分ACK报文段(126)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wjq5XqKJ-1637049102174)(media/image28.png)]{width=“5.764583333333333in” height=“2.842361111111111in”}

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-17 13:06:20  更:2021-11-17 13:06:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:28:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码