使用 tcpdump 监控流量时丢失 UDP 片段

2024-01-09

我所在的本地 LAN 上只有 8 台连接的计算机,使用 netgear 24 端口千兆位交换机,网络负载非常低,所有相关节点(运行 slackware 11)上的发送/接收缓冲区已设置为 16mb。我还在每个节点上运行 tcpdump 来监控流量。

发送节点发送一个 10044 字节的大 UDP 数据包,该数据包通常(3/4 次)不会在接收端应用程序中结束,在这些情况下,我注意到(使用 tcpdump)前 x 片段丢失,只有最后一个片段丢失3(所有偏移量> 0并且按顺序)被tcpdump捕获。因此,碎片化的 UDP 数据包无法重新组装,很可能被丢弃。

我发现丢失的片段很奇怪,因为我还尝试了一个简单的负载测试,突发了 10000 个相同大小的 UDP 消息,接收应用程序发送了一个响应,并且到目前为止所有测试都给出了 100% 的响应。

有什么线索或提示吗?


Update!

恢复上述软件的测试后,我找到了一种可重复的方法来重现错误。

在发送 Windows 计算机上使用 windump,在接收计算机上使用 tcpdump,在让应用程序空闲一段时间(~5 分钟)后,我尝试发送 udp 消息,但最终只得到了 windump 和 tcpdump 捕获的单个片段,剩下的 3 个碎片丢失了。再次发送相同的消息工作正常,booth windump 和 tcpdump 捕获所有 4 个片段,并且接收端的应用程序获取该消息。该模式是可重复的。

开始搜索并找到以下信息,但对我来说,仍然没有明确的答案。

http://www.eggheadcafe.com/software/aspnet/32856705/first-udp-message-to-a-sp.aspx http://www.eggheadcafe.com/software/aspnet/32856705/first-udp-message-to-a-sp.aspx

重新检查日志,我现在注意到正在发送 ARP 请求/回复,这与上面链接中给出的想法之一相匹配。

笔记!我使用以下命令在发送端过滤 windump:“dst host receivenode”

从 windump 捕获:第一个失败的 udp 消息,应该是 4 个片段长

14:52:45.342266 arp who-has receivernode tell sendernode
14:52:45.342599 IP sendernode> receivernode : udp

从 windump 捕获:第二条 udp 消息,内容完全相同,所有 4 个片段均被捕获

14:52:54.132383 IP sendernode.10104 > receivernode .10113: UDP, length 6019
14:52:54.132397 IP sendernode> receivernode : udp
14:52:54.132406 IP sendernode> receivernode : udp
14:52:54.132414 IP sendernode> receivernode : udp
14:52:54.132422 IP sendernode> receivernode : udp
14:52:56.142421 arp reply sendernode is-at 00:11:11:XX:XX:fd (oui unknown)

有人对正在发生的事情有很好的了解吗?请详细说明!

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

使用 tcpdump 监控流量时丢失 UDP 片段 的相关文章

  • 从 ANDROID 2.2 发送 UDP 包(HTC 希望)

    我有一个局域网 我想从我的 android htcdesire 发送一条 udp 消息到我的电脑 它们之间有一个 WLAN 路由器 问题是 UPD 消息永远不会到达 PC Android上的代码 package org example an
  • 我应该使用哪个高级 API 来管理 iOS 上的 UDP 套接字? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在章节 使用套接字和流 https developer apple com library mac d
  • Prometheus AlertManager - 根据路由向不同客户端发送警报

    我有2个服务A and B我想监控 我还有 2 个不同的通知渠道X and Y形式为receivers在 AlertManager 配置文件中 我想发送通知X如果服务A出现故障并想要通知Y如果服务B下跌降落 我怎样才能实现这个我的配置 我的
  • 移动提供商无法进行 UDP 打洞

    实际上 我正在编写一个 Android 应用程序 该应用程序接收连接到 PC 的网络摄像头的图片 为了获得更多的 fps 我使用 udp 协议而不是 tcp 这个想法是 电脑将图片发送到手机的 IP 和端口 但电话提供商有不同的公共端口 所
  • 更改Windows下的默认套接字缓冲区大小[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我无法更改的应用程序正在丢弃一些传入的 UDP 数据包 我怀疑接收缓冲区溢出 是否有注册表设置可以使默认缓冲区大于 8KB From th
  • JVM 内存类型

    我正在做一个监控项目 我们有监控软件正在运行并从服务器重新收集指标 一切工作正常 但我们需要一些有关 JVM 内存使用情况详细信息 我们有一些具有不同内存类型的列 我们需要知道这些是什么 Heap Non Heap Usage Peak C
  • 搜索所有网络上的设备

    我想实现一个代码 通过它我可以列出网络上连接的 upnp 兼容媒体渲染器设备 我用谷歌搜索了这个并找到了以下代码扭曲的网站 https twistedmatrix com documents current core howto udp h
  • ServiceMix 中 Apache-Camel 路由的管理和监控

    作为 Camel 和 ServiceMix 的用户 我经常需要监控这些工具以进行开发 我主要使用 JConsole 从 ServiceMix 和 Camel 访问 MBean 它为 ESB 开发人员提供了一些非常有用的指标 我还使用 kar
  • iOS 14 在进行本地网络广播时给出“操作系统错误:错误的文件描述符,errno = 9”

    做一点Jeopardy 风格问答 https stackoverflow blog 2011 07 01 its ok to ask and answer your own questions here 我正在 Flutter 中开发一个应
  • 在 Perl 中如何接受多个 TCP 连接?

    我对 Linux 的 Perl 脚本有疑问 它的主要目的是成为 3 个应用程序之间的中间人 它应该做什么 它应该能够等待 UDP 文本 不带空格 udp port 当它收到 UDP 文本时 它应该将其转发到连接的 TCP 客户端 问题是我的
  • Windows 操作系统中无法访问的 IP 套接字关闭时间

    这些代码通过用户数据报协议提供发送数据 下面有两个代码 当我使用第一个代码来处理无法访问的 IP 地址时 我得到了三秒的延迟 请查看新结果标题 只需打开新的 C 控制台应用程序并将这些代码粘贴到其中 第一个代码 using System u
  • 自 2012 年以来,WinSock 注册 IO 性能是否有所下降?

    我最近使用 MS 为该 API 提供的稍微可接受的文档编写了基于 WinSock Registered IO RIO 的 UDP 接收 最终的性能非常令人失望 单套接字性能有些稳定 约为每秒 180k 数据包 使用多个 RSS 队列 即多个
  • Docker容器CPU使用率监控

    根据 docker 的文档 我们可以通过以下方式获取 docker 容器的 CPU 使用率码头工人统计命令 CPU 列将给出容器正在使用的主机 CPU 的百分比 假设我限制容器使用 50 的主机单个 CPU 我可以通过 cpus 0 5 选
  • 您可以bind()和connect() UDP连接的两端吗

    我正在编写一个点对点消息队列系统 它必须能够通过 UDP 运行 我可以任意选择一侧或另一侧作为 服务器 但这似乎不太正确 因为两端都从另一端发送和接收相同类型的数据 是否可以绑定 和连接 两端 以便它们只能彼此发送 接收 这似乎是一种非常对
  • P2P网络游戏/应用程序:类似“战网”匹配服务器的不错选择

    我正在制作一个网络游戏 1v1 游戏中是 p2p 不需要游戏服务器 然而 为了让玩家能够 找到彼此 而不需要在另一种媒介中协调并输入IP地址 类似于网络游戏的现代时代 我需要有一个协调 匹配服务器 我无法使用常规网络托管 因为 客户端将使用
  • recvfrom() 中的 addrlen 字段有何用途?

    我在程序中使用 recvfrom 从我在 src addr 中指定的服务器获取 DGRAM 数据 但是 我不确定为什么需要初始化并传入addrlen 我读了手册页 但不太明白它的意思 如果src addr不为NULL 并且底层协议提供了源地
  • 我应该害怕使用 UDP 进行客户端/服务器广播通话吗?

    我在过去的两天里阅读了每一篇StackOverflow问题和答案 以及googling当然 关于印地TCP and UDP协议 以便决定在我的用户应用程序和 Windows 服务之间的通信方法中应该使用哪一种 从我目前所看到的来看 UDP是
  • 为什么 UDP 服务器中只有一个套接字?

    我正在准备考试 发现了这个问题 典型的 UDP 服务器可以使用单个套接字来实现 解释一下为什么 对于 TCP 驱动的服务器 我发现创建了两个套接字 一个用于所有客户端访问服务器 另一个用于每个客户端的特定 套接字 用于服务器和客户端之间的进
  • 如何将udp发送到udp node.js服务器?

    我对此很陌生 所以我真的不知道我在做什么 但我已经设置了一个 node js udp 服务器 我想从客户端 来自网站 向它发送一个数据包 但我不知道如何在 javascript 中做到这一点 或者是否可能 我不是在研究如何从 Node js
  • Node.js 可读流_read用法

    我了解如何在 Node 的 new 中使用可写流Streams2库 但我不明白如何使用可读流 举个例子 一个流包装器围绕dgram module var dgram require dgram var thumbs twiddle func

随机推荐

  • 是否可以在 VBA 中创建和使用 Microsoft Edge 变量/对象?

    我有一些 VBA 代码可以从网上获取股票价格 我的代码使用 InternetExplorer 对象 文档来执行此操作 但是 如果可能的话 我想改用 Microsoft Edge 对象 文档 在我当前的代码中 我初始化一个 InternetE
  • 访问 Outlook Exchange 全球地址簿

    我正在构建一个 csharp 应用程序 我想要一个包含我的所有用户的下拉列表Outlook 全球地址簿 当我从 Outlook gui 单击 收件人 时也是如此 是否可以获取此程序 这里的安全要求是什么 过去 除了 Outlook 依赖性之
  • 调整 3D 图像大小(并重新采样)

    我有大脑的 3D 图像 我们称之为 flash 当前尺寸为 263 x 256 x 185 我想将其大小调整为另一个图像的大小 称之为 Whole brain bravo 256 x 256 x 176 并且 希望 使用 lanczos 插
  • Github Actions 徽章显示“无状态”

    GitHub Actions 徽章出现问题 我有三个工作流程 https github com riZZZhik belinsky tree master github workflows在我的存储库中 我正在努力让他们的徽章进来Readm
  • 将日期格式更改为 yyyy-mm-dd

    我有一个日期列 其中包含混合格式的日期 例如 A 1990年3月21日1990年3月21日 因此 基本上一列中有两种不同的格式 dd mm yyyy and mm dd yyyy 我正在尝试编写一个 VBA 脚本来将列中所有日期的格式更改为
  • 带有 JSON 补丁的 GraphQL 突变

    GraphQL 中是否有任何数据类型可用于描述 JSON Patch 操作 JSON Patch 操作的结构如下 op add replace remove path hello value world Where value可以是任何有效
  • 如何在没有 Grails 的情况下创建 GSP 标记库

    我们可以在没有 Grails 的情况下使用 GSP 只需映射 servletgroovy servlet TemplateServlet 那么 TagLib 又如何呢 Here are http grails org doc latest
  • 从 Google 云端硬盘下载图像文件

    我正在将图像文件上传到 Google Drive SDK 然后尝试下载回相同的图像 我查看了 Google Drive Developer 示例中下载文件的示例 但它们仅向我们展示了如何从文件中下载文本 我该如何下载图像 该文件是 Goog
  • htmlpurifier 删除内联 css

    我正在使用 htmlpurifier 来清理用户内容 我正在尝试删除内联样式属性 例如 div some text div 我想删除整个样式属性 如何使用 htmlpurifier 做到这一点 您可以调整允许的属性 http htmlpur
  • 用于删除所有用户桌面上的所有图标的批处理脚本

    目前正在寻找一种方法来删除所有用户桌面上的所有图标 我一直在尝试 直到我制作了以下脚本 该脚本允许我从单个用户中删除所有内容 但如果没有硬编码 我将无法扩展它以覆盖单个 PC 上的所有用户 echo off cd del C Users U
  • 通过启动进程运行 cmd.exe 但无法将命令传递给 cmd.exe

    我想运行一个常规脚本cmd exe在不同的用户下 我用过Start Process 当脚本执行时 它只是用不同的用户在屏幕上打开提示 但不处理 command 所以我的问题是 运行后如何传递命令cmd exe使用 PowerShell 这是
  • Gmail 作为 JavaMail SMTP 服务器

    我一直在使用 JavaMail API 以 Gmail 作为我的主机 并对如何使用它发送电子邮件有一个大致的了解 但有两行代码仍然让我困惑 message setFrom new InternetAddress USERNAME API 表
  • 条件面板闪亮(似乎不起作用)

    有人可以帮我解决以下闪亮的问题吗 我需要制作一个条件面板 但在这里我不希望它出现 除非有人选择女性 然而 当我运行此代码时 条件面板出现在页面中 任何帮助都感激不尽 selectInput gender What is your gende
  • 检测 mysqli 准备好的语句中的错误[重复]

    这个问题在这里已经有答案了 我有一个自定义错误处理程序 但我需要知道在准备好的语句中测试错误的位置 我有测试吗prepared bind execute and store result 阶段还是仅选择阶段 statement databa
  • 为什么 StackPanel 不垂直拉伸其子级?

    WPF 新手 我正在查看 WPF 示例
  • 如何清理 InlineFormSet 中的某个字段?

    我需要清理内联表单集中的特定字段 但我不知道该怎么做 我尝试过使用表单集def clean self 方法但不知道在哪里保存清理后的值 如果我尝试将清理值设置为forms 0 data field 我收到 此 QueryDict 实例是不可
  • Laravel 5 应用程序始终使用“测试”环境配置

    我有一个 Laravel 5 应用程序 它有两个环境和两个配置 测试 用于 PHPUnit 配置 内存数据库 和本地 我的开发配置 即使环境配置为local 应用程序仅加载配置resources config testing文件夹 我可以从
  • 如何在 Windows 上配置 theano?

    我已经在 Windows 机器上安装了 Theano 并按照配置进行操作指示 http deeplearning net software theano library config html 我将以下 theanorc txt 文件放置在
  • 如何在 G Suite 上通过同意屏幕请求全域委派

    我需要访问公司的日历信息G Suite账户 通过API与公司系统同步数据 当我需要提供对我自己的数据的访问时 有一个相当好的方法简单的方法 https developers google com calendar auth去做吧 使用 Oa
  • 使用 tcpdump 监控流量时丢失 UDP 片段

    我所在的本地 LAN 上只有 8 台连接的计算机 使用 netgear 24 端口千兆位交换机 网络负载非常低 所有相关节点 运行 slackware 11 上的发送 接收缓冲区已设置为 16mb 我还在每个节点上运行 tcpdump 来监