Wireshark_labs TCP

在本实验中,我们将详细研究著名的TCP协议的行为。我们将通过从您的电脑向远程服务器传输一份150KB 的文件(一份Lewis Carrol 的“爱丽丝梦游仙境”文本), 并分析TCP传输内容的发送和接收过程来实现。我们将研究TCP对序列和确认号的使用,以提供可靠的数据传输;我们将看到TCP的拥塞控制算法-慢后动和拥塞避免在过程中,我们将看看TCP的接收器发送流量控制的机制。我们还将简要地观察TCP连线的设置,我们还会研究计算机和服务器之间TCP连线的性能(吞吐量和往返时间)。

在开始本实验之前,您应该先查看课本中的第3.5和3.7节

1. 捕捉从计算机网络到远程服务器的批量TCP传输

在开始探索TCP之前,我们需要使用Wireshark获取从计算机到远程服务器的文件TCP传输的数据包跟踪。为此,您将访问一个Web页面,该页面允许您输入存储在计算机上的一个文件的名称(其中包含《爱丽丝在仙境》的ASCII文本),然后使用HTTP POST方法将该文件传输到Web服务器(请参阅本文中的2.2.3节)。我们使用POST方法而不是GET方法,因为我们希望将大量数据从您的计算机传输到另一台计算机。当然,在此期间,我们将运行Wireshark来获取从您的计算机发送和接收的TCP段的跟踪。

做如下操作:

  • 启动浏览器。将这个文件存储在你电脑的某个地方。
  • 接下来访问http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-file1.html。
  • 你会看到类似下面这样的屏幕:
    image-20240305215450975
  • 在此表单中使用Browse按钮输入包含爱丽丝仙境的计算机上的文件名称(完整路径名称)(或手动执行)。
  • 暂时不要点击“上传*alice.txt文件”*按钮。
  • 现在启动Wireshark并开始抓包(capture -> start),然后在Wireshark抓包选项屏幕上按OK(我们不需要在这里选择任何选项)。
  • 返回浏览器,点击“上传alice*.txt文件”*按钮,将文件上传到gaia.cs.umass.edu服务器。一旦文件上传完成,一个简短的祝贺消息将显示在你的浏览器窗口。
  • 停止Wireshark抓包。您的Wireshark窗口应该类似于下面所示的窗口。
    image-20240305215742491如果您无法在实际的网路上运行Wireshark ,则可以下载在作者的计算机上执行上述步骤时捕获的数据包跟踪文件。当您探索下面的问题时,即使您已经捕获了自己的传输内容并使用它来回答下面的问题,您也可能会发现这份下载的跟踪包很有参考价值。

2. 第一眼看到捕捉到的踪迹

在详细分析TCP连接的行为之前,让我们对跟踪进行一个高级视图。

  • 首先,在Wireshark窗口顶部的显示过滤器规格窗口中输入“tcp”(小写,不带引号,输入后不要忘记按回车键),过滤Wireshark窗口中显示的数据包。

您应该看到的是计算机和gaia.cs.umass.edu 之间的一系列TCP和HTTP讯息。您应该看到包含SYN讯息的初始三次握手。您应该看到HTTP POST讯息。根据您使用的Wireshark 的版本,您可能会看到从您的计算机向gaia.cs.umass.edu 发送一系列“HTTP Continuation”讯息。回想一下我们在早期的HTTP Wireshark实验室中的讨论,这不是HTTP Continuation 消息-这是Wireshark指示有多个TCP区段用于承载单个HTTP讯息的方式。在Wireshark的最新版本中,您将在Wireshark显示的Info 列中看到“[重新组装的PDU的TCP段]”, 以指示此TCP区段包含属于上层协议讯息的数据(在我们的示例中为,HTTP )。您还应该看到从gaia.cs.umass. edu返回到您的计算机的TCP ACK区段。
image-20240306152012117

利用下载的http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip档案,打开其中的Wireshark捕的数据包文件tcp-ethereal-trace-1来回答以下问题( 即下载跟踪包并打开Wireshark中的跟踪包;见附注2)。 在回答问题时,您应该提交用于回答问题的跟踪内的数据包的列印输出。加上适当的注释以解释您的答案。要印出数据包,请使用文件->列印,选择仅选定数据包,选择数据包摘要行,然后选择回答问题所需的最小数据包详细信息量。

  1. 将文件传输到gaia.cs.umass.edu的客户端计算机(源)使用的IP地址和TCP端口号是什么? 要回答这个问题,可能最简单的方法是选择一个HTTP消息,并使用“所选包头窗口的详细信息”(如果您不确定Wireshark窗口,请参阅“入门Wireshark”实验室中的图2)来探索用于携带该HTTP消息的TCP数据包的详细信息。

    image-20240306152706019

  2. gaia.c.s.umass.edu的IP地址是多少?在哪个端口号上发送和接收这个连接的TCP段?

    找到POST讯息后,发现目标IP为128.199.245.12 目标端口为80

    作者的IP地址为 192.168.1.102 端口号为1161

如果您已经能够创建自己的跟踪,请回答以下问题:

  1. IP地址和TCP端口号是什么,您的客户端计算机(源)用来传输文件到gaia.cs.umass.edu?
    image-20240306153259044
    这是我的抓包结果,显示目标IP为128.119.245.12 端口号为80
    我的IP为192.168.5.9 端口号为37968

由于这个实验是关于TCP而不是HTTP的,让我们改变Wireshark的“捕获数据包列表”窗口,以便它显示有关包含HTTP消息的TCP段的信息,而不是关于HTTP消息的信息。要让Wireshark执行此操作,请选择“Analyze->Enabled Protocols”。现在你应该看到一个Wireshark窗口,如下所示:

image-20240305220352674

这就是我们要找的——在你的电脑和gaaia.cs.umass.edu之间发送的一系列TCP段。我们将使用您捕获的数据包跟踪(和/或数据包跟踪tcp-ethereal-trace-1在http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip;(参见前面的脚注),以便在本实验的其余部分研究TCP行为。

3. TCP基础知识

请回答以下关于TCP段的问题:

  1. 用于在客户端计算机和gaia.c.s.umass.edu之间发起TCP连接的TCP SYN段的序号是多少?在段中是什么将段标识为SYN段?
    image-20240306161809649
    在首个建立连接的TCP请求中,SYN标志位为1。
    段中的倒数第2bit设置为SYN标识位。

  2. gaia.c.s.umass.edu发送给客户端计算机的SYNACK段的序列号是多少作为对SYN的回应?SYNACK段中的确认字段的值是多少?gaia.cs.umass.edu是如何确定这个值的?在段中是什么将段标识为SYNACK段?
    image-20240306161957136
    SYNACK的序号为0,确认字段值为1,并且SYN的字段值也为1,说明服务器收到了我的连接请求,并返回SYNACK确认。

  3. 包含HTTP POST命令的TCP段的序号是多少?注意,为了找到POST命令,您需要挖掘Wireshark窗口底部的数据包内容字段,在其DATA字段中查找带有“POST”的段。
    image-20240306162715565
    包含POST的字段的TCP序号为151117

  4. 考虑包含HTTP POST的TCP段作为TCP连接中的第一个段。tcp连接(包括包含HTTP POST的段)的前六个段的序列号是什么?每个片段是什么时候发送的?给定每个TCP报文段发送的时间和接收报文段确认的时间之间的差异,这六个报文段的RTT值是多少?收到每个ACK后,EstimatedRTT的值(见3.5.3节)是多少?假设EstimatedRTT的值等于第一个片段的测量RTT,然后使用第242页上的EstimatedRTT方程计算所有后续片段。

    • *注意:**Wireshark有一个很好的功能,允许您绘制每个发送的TCP段的RTT。*在“捕获数据包列表”窗口中选择从客户端发送到gaia.cs.umass.edu服务器的TCP段。选择“统计信息->TCP流图->往返时间图”。

    由于我的抓包结果干扰太多,我下面选择用作者的抓包结果。
    image-20240306163419966
    前六个段的seq分别是:156469,157929,159389,160849,162309,163769
    可以看到服务器返回ACK=159389的时间为25.867638

    ​ 返回ACK=1622309的时间为25.959852
    RTT取平均值为0.14134mm

  5. 前六个TCP区段的长度是多少?
    Len1,2,3,4,5=1460 Len6=272

  6. 对于整个跟踪,接收端最小可用缓冲区大小是多少?接收方缓冲空间的不足是否会限制发送方?
    最小窗口应该是1460. 包的实际大小小于缓冲区大小,所以不会限制发送方。

  7. 跟踪文件中是否有重传的片段?为了回答这个问题,你(在跟踪中)检查了什么?
    没有重传片段。 发送端IP为192.168.1.102,查看这个IP发送的所有包序号都没有重复。

  8. 在ACK中,接收方通常要确认多少数据?你能识别接收方正在对其他接收段进行跟踪的情况吗(参见文本中第250页的表3.2)。
    接收方累计确认

  9. TCP连接的吞吐量(单位时间传输的字节数)是多少?解释一下你是如何计算这个值的。

    image-20240306170335682

4. TCP拥塞控制在行动

现在让我们检查从客户端服务器的每单位时间发送的数据量。而不是(繁琐地! )从Wireshark窗口中的原始数据计算这些数值,我们将使用Wireshark的TCP图形工具-时序图( Stevens) - 来绘制数据。

  • 在Wireshark的“抓包列表”窗口中选择一个TCP段。然后选择菜单:*统计->TCP流图->时间序列图(史蒂文斯)。你应该会看到一个与下图类似的图,它是根据http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip中数据包跟踪tcp-ethereal-trace-1中捕获的数据包创建的(见前面的脚注):
    image-20240305221209696

在这里,每个点表示一个发送的TCP段,绘制出该段的序列号与发送时间的关系。请注意,一组相互堆叠的点代表了一系列由发送方背靠背发送的数据包。

请针对http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip**中数据包跟踪TCP -ethereal-trace-1的TCP段回答以下问题

  1. 使用*时间序列图(史蒂文斯)*绘图工具来查看从客户端发送到gaia.cs.umass.edu服务器的片段的序列号与时间图。你能确定TCP的慢启动阶段开始和结束的位置,以及拥塞避免接管的位置吗?评论测量数据与我们在课文中研究的TCP的理想行为的不同之处。
    看图看不出,我无法确认image-20240306170819963 image-2024030617085289514. 请回答上面两个问题,了解你将文件从计算机传输到gaia.css.umass.edu时收集到的踪迹

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/270477.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 系统学习总结(基础语法+函数+数据容器+文件+异常+包+面向对象)

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 六天时间系统学习Python基础总结,目前不包括可视化部分,其他部分基本齐全,总结记录&#xff0…

Python与FPGA——膨胀腐蚀

文章目录 前言一、膨胀腐蚀二、Python实现腐蚀算法三、Python实现膨胀算法四、Python实现阈值算法五、FPGA实现腐蚀算法总结 前言 腐蚀是指周围的介质作用下产生损耗与破坏的过程,如生锈、腐烂等。而腐蚀算法也类似一种能够产生损坏,抹去部分像素的算法。…

SoundTouch对音频处理(Android)

SoundTouch对音频处理(Android) SoundTouch介绍 SoundTouch 是一个用于音频处理的开源库,主要用于改变音频的速度、音调和音量等特征。您可以在项目中使用 SoundTouch 库来实现音频处理的功能,比如变速播放、音高变化、混响效果…

Redis(5.0)

1、什么是Redis Redis是一种开源的、基于内存、支持持久化的高性能Key-Value的NoSQL数据库,它同时也提供了多种数据结构来满足不同场景下的数据存储需求。 2、安装Redis(Linux) 2.1、去官网(http://www.redis.cn/)下…

新品发布会注意事项有哪些?如何邀约媒体到场发布

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 新品发布会的注意事项以及邀约媒体到场发布的方法如下: 一、新品发布会注意事项: 明确活动目的和主题:确定新品发布会要传达的信息和目标,…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:TapGesture)

支持单击、双击和多次点击事件的识别。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 接口 TapGesture(value?: { count?: number, fingers?: number }) 参数: 参数名称参数类型必填参…

数学建模【模糊综合评价分析】

一、模糊综合评价分析简介 提到模糊综合评价分析,就先得知道模糊数学。1965年美国控制论学家L.A.Zadeh发表的论文“Fuzzy sets”标志着模糊数学的诞生。 模糊数学又称Fuzzy数学,是研究和处理模糊性现象的一种数学理论和方法。模糊性数学发展的主流是在…

OpenHarmony教程指南—Navigation开发 页面切换场景范例

简介 在应用开发时,我们常常遇到,需要在应用内多页面跳转场景时中使用Navigation导航组件做统一的页面跳转管理,它提供了一系列属性方法来设置页面的标题栏、工具栏以及菜单栏的各种展示样式。除此之外还拥有动态加载,navPathSta…

【视频转码】基于RK3588的视频转码探索

传统的视频转码服务基本都是基于X86下CPU、GPU转码,对硬件性能、功耗、成本来说都比较高。从技术角度来说现有视频转码技术有: 视频编码转变: 1. H.264 > H.265 保持视频分辨率、清晰度不变情况下,更改视频压缩方式&#xff0…

Tomcat SSL证书申请指南2024版本

1. 注册并登录51SSL 2. 申请证书 在订单管理中点击申请证书,买个便宜的就行 填写信息后提交即可: 3. 域名验证 为域名增加一个解析,按上面的记录信息。 点击订单详情里面的获取验证信息如下: 将上述信息放入阿里云 修改后&…

mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示

文章目录 问题描述解决方案 问题描述 如下如所示: 表一:wechat_dynamically_config表,重点字段:wechat_object 表二:wechat_object表,重点字段:wxid 需求:根据wechat_dynamically_…

3.5日常学习

matlab处理数据 自己写了关于detect_data的函数,让它帮我改了,哈哈哈 %改正前function data_chuli(path1,savepath)[num]xlsread(path1,1,B18:F23);a num;ba;cb(:);xlswrite(savepath,c) end%改正后function data_chuli(path1, savepath)num xlsread…

工业网关、物联网网关与PLC网关是什么?

网关是什么? 网关是一种用于连接不同网络的网络设备,其作用是实现网络之间的通信和数据交换。它负责将一个网络的数据转发到另一个网络,并且可以进行路由、转换和过滤等处理。通常用于连接局域网和广域网之间,可以是硬件设备或者软…

植被净初级生产力与多时间尺度干旱关系的定量研究

随着全球气候变暖的趋势愈发明显,干旱事件不仅发生的频率增加,其持续时间和影响范围也在不断扩大。干旱对生态环境造成了严重破坏,导致生物多样性减少、土地退化和水资源短缺;对农业生产而言,干旱会导致作物减产甚至绝…

kafka报文模拟工具的使用

日常项目中经常会碰到消费kafka某个topic的数据,如果知道报文格式,即可使用工具去模拟发送报文,以此测试代码中是否能正常消费到这个数据。 工具资源已上传,可直接访问连接下载:https://download.csdn.net/download/w…

SpringBoot集成ElasticSearch(ES)

ElasticSearch环境搭建 采用docker-compose搭建,具体配置如下: version: 3# 网桥es -> 方便相互通讯 networks:es:services:elasticsearch:image: registry.cn-hangzhou.aliyuncs.com/zhengqing/elasticsearch:7.14.1 # 原镜像elasticsearch:7.…

数据库系列之:什么是 SAP HANA?

数据库系列之:什么是 SAP HANA? 一、什么是 SAP HANA?二、什么是内存数据库?三、SAP HANA 有多快?四、SAP HANA 的十大优势五、SAP HANA 架构六、数据库设计七、数据库管理八、应用开发九、高级分析十、数据虚拟化 一、…

4.Rust中的所有权(Rust成名绝技)

Rust成名绝技 Rust 之所以能成为万众瞩目的语言,就是因为其内存安全性。在以往,内存安全几乎都是通过 GC 的方式实现,但是 GC 会引来性能、内存占用以及全停顿等问题,在高性能场景、实时性要求高和系统编程上是不可接受的&#x…

递推与递归DFS

;例题引入: 在跳楼梯问题中,我们假设每次可以跳1级或2级。如果我们想跳到第N级台阶,那么我们的最后一次跳跃只能是1级或2级。 如果我们最后一次跳1级,那么我们必须先跳到第N-1级台阶。由于跳到第N-1级台阶有f(N-1)种方…

中国制造走向世界wordpress外贸建站模板主题

水泵阀门wordpress外贸网站模板 水泵、阀门、管材、管件wordpress外贸网站模板,适合外贸独立站的网站模板。 https://www.jianzhanpress.com/?p3748 保健器械wordpress外贸网站主题 保健、健身器械wordpress外贸网站主题,适合做外贸网站的wordpress模…