wireshark 和 tcpdump -r:奇怪的 tcp 窗口大小

2024-04-09

我正在使用 tcpdump 捕获 http 流量,并且对 TCP 慢启动以及窗口大小如何增加感兴趣:

$ sudo tcpdump -i eth1 -w wget++.tcpdump tcp and port 80

当我使用 Wireshark 查看转储文件时,窗口大小的进展看起来很正常,即 5840、5888、5888、8576、11264 等......

但是当我通过查看转储文件时

$ tcpdump -r wget++.tcpdump -tnN | less

我得到的窗口大小似乎是无意义的(为简洁起见,省略了 IP 地址):

: S 1069713761:1069713761(0) win 5840 <mss 1460,sackOK,timestamp 24220583 0,nop,wscale 7>
: S 1198053215:1198053215(0) ack 1069713762 win 5672 <mss 1430,sackOK,timestamp 2485833728 24220583,nop,wscale 6>
: . ack 1 win 46 <nop,nop,timestamp 24220604 2485833728>
: . 1:1419(1418) ack 1 win 46 <nop,nop,timestamp 24220604 2485833728>
: P 1419:2002(583) ack 1 win 46 <nop,nop,timestamp 24220604 2485833728>
: . ack 1419 win 133 <nop,nop,timestamp 2485833824 24220604>
: . ack 2002 win 178 <nop,nop,timestamp 2485833830 24220604>

有没有办法在命令行上获取正常/绝对窗口大小?


窗口大小是正确的 - 它们只是未缩放。

连接发起者已设置wscale(窗口缩放因子)为7,因此其后续win值必须乘以 128 才能得到窗口大小(以字节为单位)。就这样win 46表示5888字节的窗口。

连接接收者已设置wscale共 6 个,所以它的win值必须乘以 64。因此win 133表示8512字节的窗口,并且win 178表示11392字节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wireshark 和 tcpdump -r:奇怪的 tcp 窗口大小 的相关文章

  • Qt 嵌入式触摸屏 QMouseEvents 在收到 MouseButtonRelease 之前未收到

    我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4 8 3 我的触摸屏配置了 tslib 并对其进行了校准 因此 etc 中有一个 pointcal 文件 我的触摸事件的位置工作得很好 但无论如何我都会在鼠标按下或鼠标释
  • 如何在 Vim 中突出显示 Bash 脚本?

    我的 Vim 编辑器自动突出显示 PHP 文件 vim file php HTML 文件 vim file html 等等 但是当我输入 vim file在里面写一个Bash脚本 它不会突出显示它 我如何告诉 Vim 将其突出显示为 Bas
  • 如何通过ssh获取远程命令的退出代码

    我正在通过 ssh 从远程计算机运行脚本 ssh some cmd my script 现在 我想在本地计算机上存储 shell 脚本的退出状态 我该怎么做 假设没有任何问题ssh其本身 其退出状态是在远程主机上执行的最后一个命令的退出状态
  • 如何获取与 shell 中的文件名模式匹配的所有文件的总文件大小?

    我正在尝试仅使用 shell 来计算与文件名模式匹配的所有文件 在目录树中 的总大小 以字节为单位 这是我到目前为止所拥有的 find name undo exec stat c s awk 总计 1 END 打印总计 有没有更简单的方法来
  • 在 Linux 中重新启动时,新创建的文件变为 0 kb(数据被覆盖为空)

    我遇到了一个奇怪的问题 这让我发疯 当前的任务是在 root 用户第一次登录时启动一组文件 并在同一用户第二次登录时启动另一组文件 我决定使用 profile 和 bashrc 文件 并在第一次登录期间发生的任务结束时重新加载 bashrc
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • 如何从 Bash 命令行在后台 Vim 打开另一个文件?

    我正在从使用 Gvim 过渡到使用控制台 Vim 我在 Vim 中打开一个文件 然后暂停 Vim 在命令行上运行一些命令 然后想返回到 Vim Ctrl Z 在正常模式下 暂停 Vim 并返回到控制台 fg可用于将焦点返回到 Vim job
  • Jmeter TCP Sampler - 如何重用线程之间的连接?

    我在 JMeter 的 ThreadGroup 下设置了一个 TCP 采样器 数据是从 CSV 文件中选取的 第一行数据用于认证 后续行为实际参数数据 像下面这样的东西 AAAAAAA21 BBBBBBBCCCCCCCDDDDDDD BBB
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • Docker忽略limits.conf(试图解决“打开文件太多”错误)

    我正在运行一个 Web 服务器 该服务器正在处理数千个并发 Web 套接字连接 为了实现这一点 在 Debian linux 我的基本镜像是 google debian wheezy 在 GCE 上运行 上 打开文件的默认数量设置为 100
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • 使用 libusb 输出不正确

    我用libusb编写了一个程序 我怀疑输出是否正确 因为所有条目都显示相同的供应商和产品 ID 以下是代码 include
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记

随机推荐

  • WPF/控制台混合应用程序

    我编写了一个可以在命令行上运行或使用 WPF UI 运行的应用程序 STAThread static void Main string args Does magic parse args and sets IsCommandLine to
  • C++ 多重定义错误

    我的 Headers h 文件包含基本的 C 标头 include
  • 在 Sequelize 迁移中创建关联

    节点js 续集4 41 尝试通过另一个表制作两个多对多关系的模型 跑步与续集 cli 例如 sequelize model generate name Camera attributes name string sn string 这里是模
  • 复杂圆图

    我花了很多时间尝试在 SVG D3 js 中复制所附的图表 我最接近的是使用附加的代码 我已经探索过使用树函数 但只能创建一组圆圈 所附代码的问题是 通过手动输入每个圆圈必须位于的像素坐标 很难使其看起来平滑且智能 作为信息 数据集只会为这
  • 在哪里记录 C 或 C++ 中的函数? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个包含多个文件的 C 程序 所以我有 例如 stuff c它实现了一些功能 并且stuff h与函数原型 我应该如何在注释中记录功能 我应
  • * 或 & 的位置重要吗? [复制]

    这个问题在这里已经有答案了 可能的重复 在C中 为什么星号在变量名之前 而不是在类型之后 https stackoverflow com questions 398395 in c why is the asterisk before th
  • 如何创建不重复的随机数?

    我正在尝试为老年之家创建一款宾果游戏 我能够使用用于扫描数组的随机数生成器来制作一个 但问题是需要很长时间 2 分钟 来搜索数组并确保没有重复的双精度数 我做了一些研究 发现 c 中称为伪随机的东西在创建时不会重复数字 但代码看起来非常复杂
  • 枚举 Node.js net.Server 连接

    是否可以循环遍历与某个连接建立的连接相对应的所有套接字对象 网络服务器 http nodejs org api net html net class net serverNode js 中的实例 最终 我需要关闭所有连接 似乎执行此操作的唯
  • 如何使大循环的联合范围更快

    我有一个子程序 在循环中进行大约 5000 次迭代后 它变得非常慢 否则很快 Windows 8 1 专业版 64 位 Excel 2013 15 0 4701 1001 MSO 15 0 4701 1000 64 位 Sub UnionS
  • 如何为DBGrid特殊单元格着色?

    我有一列只有 是 和 否 值 我想要如果列值为 是 则只有单元格背景颜色为红色 否则 否 则背景颜色为黄色 但这段代码为整行着色 if ADOTable1 FieldByName Clubs AsString yes then begin
  • C函数分析(地址似乎有偏移)

    我正在尝试使用 finstrument functions 选项来分析函数调用 基本上 我所做的是将以下内容写入任何已编译的源代码中 static int stepper 0 void cyg profile func enter void
  • 根据列中的值对完整行进行着色

    我需要根据列中单元格的值对整个 Excel 行进行着色 我有三列 Item Price and Status 并且想要为该行着色 如果Status值为 已交付 至绿色 拒绝 对红色 WIP 至橙色 您可以为此使用 非 VBA 条件格式 如果
  • Boost::MPL Vector 和 For_Each:如何将 avector 打印为元组?

    想象一下 我们有一个 mpl vector 我们想将其打印 例如 cout 为这样的字符串 int string char 如何使用 boost mpl 来做这样的事情 创建一个函子并调用 boost for each struct pri
  • 如何使用一个可观察量的状态来跳过另一个可观察量的值?

    通过一个简短的例子可以最好地解释这一点 假设这是我想要过滤的可观察源 Observable interval 1 TimeUnit SECONDS 我使用复选框来处理过滤器状态 当未选中该框时 我想跳过所有值 我使用 RxAndroid 来
  • 如何让 Gitlab CI Pipeline 始终运行某些作业,而仅在合并请求时运行其他作业?

    TL DR 我的目标是拥有一个 Gitlab CE 12 4 2 管道 该管道仅在合并请求上执行某些作业 而始终执行其他作业 在合并请求上和所有正常推送上 必须如何 gitlab ci yml想要这样做吗 我的用例 我有一个运行大量作业的大
  • 定义 Pydantic(嵌套)模型

    如果我使用 GET 给定一个 id 我会得到一个 JSON 如下所示 data id 81 ks k1 25 k2 5 items id 1 name John surname Smith id 2 name Jane
  • node.js +express.js +dust.js 问题

    简单的问题 为什么express js 不能与dust js 一起运行 我知道它没有得到官方支持 但dust js 甚至与我的node js 版本存在问题 由于 require path 问题 节点甚至无法启动 server testapp
  • 无法将 javascript 库加载到 Meteor 应用程序中

    我在使用 Fabric js 库与 Meteor 应用程序时遇到问题 不幸的是 我无法完全完成将其添加到我的应用程序的阶段 更不用说调用它了 最简单的休闲方式如下 gt mrt create test gt cd test gt mkdir
  • 如何在iOS APP中手动包含动态库

    我有一个 iOS 应用程序 不是用 xcode 制作的 我需要在其中包含一个动态库 我的电脑上有这个库 webrtc WebRTC framework Headers h Modules module modulemap WebRTC In
  • wireshark 和 tcpdump -r:奇怪的 tcp 窗口大小

    我正在使用 tcpdump 捕获 http 流量 并且对 TCP 慢启动以及窗口大小如何增加感兴趣 sudo tcpdump i eth1 w wget tcpdump tcp and port 80 当我使用 Wireshark 查看转储