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时收集到的踪迹

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Proxmox VE安装CentOS

1、下载CentOS镜像文件 阿里巴巴开源镜像站: https://developer.aliyun.com/mirror/ CentOS 镜像文件 https://mirrors.aliyun.com/centos/8.5.2111/isos/x86_64/CentOS-8.5.2111-x86_64-dvd1.iso 2、上传ISO镜像 选择ISO镜像上传 3、创建虚拟机 1、点击【创…

python转换json

import json import os from enum import Enumclass LaneDirectionType(int, Enum):LaneDirectionType_Unknown -1 # 类型未知OneWay 1 # 单向TwoWay 2 # 双向# 颜色类型 class ColorCombo(int, Enum):NOUSE 0 # 默认值UNKNOWN 1000 # 未定义WHITE 1 # 白色(默认值…

俄罗斯套娃 (Matryoshka) 嵌入模型概述

在这篇博客中,我们将向你介绍俄罗斯套娃嵌入的概念,并解释为什么它们很有用。我们将讨论这些模型在理论上是如何训练的,以及你如何使用 Sentence Transformers 来训练它们。 除此之外,我们还会告诉你怎么用这种像套娃一样的俄罗斯…

【Vue】vue3 在图片上渲染 OCR 识别后的文本框、可复制文本组件

需求 后面返回解析后的文本和四角坐标,在图片上渲染成框,并且可复制。图片还可以缩放、拖拽 实现 这里要重点讲下关于OCR文本框的处理: 因为一些文字可能是斜着放的,所有我们要特殊处理,根据三角函数来计算出它的偏…

分布式ID生成策略-雪花算法Snowflake

分布式ID生成策略-雪花算法Snowflake 一、其他分布式ID策略1.UUID2.数据库自增与优化2.1 优化1 - 共用id自增表2.2 优化2 - 分段获取id 3.Reids的incr和incrby 二、雪花算法Snowflake1.雪花算法的定义2.基础雪花算法源码解读3.并发1000测试4.如何设置机房和机器id4.雪花算法时钟…

短剧系统开发:一种新型的娱乐方式

一、引言 随着科技的快速发展,人们的生活方式也在逐渐改变。在娱乐领域,短剧作为一种新型的娱乐方式,正在受到越来越多人的喜爱。短剧以其短小精悍、情节紧凑、易于观看等特点,迅速占领了市场。因此,开发一款短剧系统…

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的数码管显示应用

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的数码管显示应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍TM1638键盘数码管模块概述TM1638键盘数码管…

pytorch什么是梯度

目录 1.导数、偏微分、梯度1.1 导数1.2 偏微分1.3 梯度 2. 通过梯度求极小值3. learning rate3. 局部最小值4. Saddle point鞍点 1.导数、偏微分、梯度 1.1 导数 对于yx 2 2 2 的导数,描述了y随x值变化的一个变化趋势,导数是个标量反应的是变化的程度&…

NoSQL--3.MongoDB配置(Linux版)

目录 2.2 Linux环境下操作 2.2.1 传输MongoDB压缩包到虚拟机: 2.2.2 启动MongoDB服务: 2.2 Linux环境下操作 2.2.1 传输MongoDB压缩包到虚拟机: (笔者使用XShell传输) 如果不想放在如图的路径,删除操作…

基于springboot+vue实现学校田径运动会系统项目【项目源码+论文说明】计算机毕业设计

基于springbootvue实现学校田径运动会系统演示 摘要 随着互联网普及率的提高,互联网与人们日常生活的关系越来越密切,越来越多学校也正在着力建设自己的信息化管理系统,学校根据自身的发展及社会发展的需要,开始将传统的运动会成…

Golang模糊测试实践

模糊测试可以简单快速的自动化构建测试用例,尽量遍历各种可能的输入场景,从而保证函数代码覆盖尽可能多的边缘场景。Go原生内置了模糊测试的支持,如果善加利用,可以有效提升Go代码的质量。原文: Fuzz Testing in Golang 题图由Lex…

Hadoop配置日志的聚集——jobhistory不显示任务问题

问题: 一开始job history是正常的,配置了日志的聚集以后不管做什么任务都不显示任务,hdfs是正常运行,而且根据配置步骤都重启过了。 下面先po出日志聚集的操作步骤,再讲问题 1.配置yarn-site.xml cd $HADOOP_HOME/e…

0基础跨考408|一战上岸复盘及经验分享

基础阶段‼️ 王道的四本书的选择题部分要都做完、订正完。 王道的四门视频课要一轮刷完(或者题主在B站看了其他的老师,这其实也是算一轮的,只要题主是认真学习了的,题主说自己不知道看什么课,王道就好了)…

kibana配置 dashbord,做可视化展示

一、环境介绍 这里我使用的kibana版本为7.17版本。 语言选择为中文。 需要已经有es,已经有kibana,并且都能正常访问。 二、背景介绍 kibana的可视化界面,可以配置很多监控统计界面。非常方便,做数据的可视化展示。 这篇文章&…

【四】【SQL Server】如何运用SQL Server中查询设计器通关数据库期末查询大题

数据库学生选择1122 数据库展示 course表展示 SC表展示 student表展示 数据库学生选课1122_3 第十一题 第十二题 第十三题 第十四题 第十五题 数据库学生选课1122_4 第十六题 第十七题 第十八题 第十九题 第二十题 数据库学生选课1122_5 第二十一题 第二十二题 结尾 最后&…

恒驰上云规划实施解决方案上线华为云官网

华为云与伙伴共同打造联合解决方案 已成为更多企业的数字化转型利器 1月恒驰上云规划实施解决方案 完成上市宣讲并正式上架华为云官网 恒驰上云规划实施解决方案能力全景图:融合厂商云服务能力,一站式高效云迁移 从深入了解企业的本地IT环境、业务特点…

查看kafka消息消费堆积情况

查看主题命令 展示topic列表 ./kafka-topics.sh --list --zookeeper zookeeper_ip:2181描述topic ./kafka-topics.sh --describe --zookeeper zookeeper_ip:2181 --topic topic_name查看topic某分区偏移量最大(小)值 ./kafka-run-class.sh kafka.too…

Git——Upload your open store

0.default config ssh-keygen -t rsa #之后一路回车,当前目录.ssh/下产生公私钥 cat ~/.ssh/id_rsa.pub #复制公钥到账号 git config --global user.email account_email git config --global user.name account_name1. 上传一个公开仓库 查看当前分支: git branc…

JavaSE——基础小项目-模拟ATM系统(项目主要目标、技术选型、架构搭建、具体实现、完整代码注释)

目录 项目主要目标 技术选型 面向对象编程 使用集合容器 程序流程控制 使用常见API 系统架构搭建与欢迎页设计 Account ATM Test 用户开户功能实现 录入账户名称与性别 录入账户密码与取现额度 生成新卡号 存入账户 登录功能实现 登录后操作实现 退出账户 存…

python基础(11)《Allure报告中的组件用法》

使用 官方教程:https://docs.qameta.io/allure 入门 想要看到allure报告,需要做2个步骤: 1、pytest执行时关联allure:pytest命令带上--alluredir 结果存放目录或--alluredir结果存放目录; 2、打开执行报告&#xff…