AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[packetloss](server)

Martin Hope
Justin York
Asked: 2021-03-10 14:01:42 +0800 CST

当请求通过负载平衡器发送并且响应太大而无法放入单个数据包时,为什么我没有收到响应?

  • 2

在某些情况下,我无法从 HTTP 请求接收到对特定服务的响应:请求是通过负载平衡器发送的,并且响应太大而无法放入单个数据包中。在这些条件下,永远不会收到响应。两者都不是错误。服务器发送一个 TCP ACK 来响应包含 HTTP 请求的数据包,但之后什么都没有。连接只是挂起等待发生的事情。无论请求是通过 CURL、节点的 HTTP 库还是 Postman 发送的,都会观察到该行为。

什么可能导致这种行为?如何调试导致问题的原因?

  • 我已经验证负载均衡器后面的服务正在接收并响应 HTTP 请求,但是响应在某处丢失了。
  • 我们还有其他类似设置的服务不会出现此问题。
  • 我们尝试设置负载均衡器的不同实例,但它有同样的问题。

在服务器上的 tshark 中,[TCP Retransmission]在它通过负载均衡器接收到一个有问题的请求后,我看到了一些条目(当直接接收到相同的请求时不会发生这种情况)。这似乎表明客户端和服务器之间的某些东西误导了 TCP 流量(高度暗示负载平衡器),但我不明白只有当 HTTP 响应被拆分为多个数据包时才会导致这种情况发生,并且只有这个特定的服务。

导致失败的条件:

直接的 负载均衡器
单包 ✅ ✅
多个数据包 ✅ ?

网络拓扑结构:

Client -> Load Balancer -> Service
http tcp packetloss
  • 1 个回答
  • 710 Views
Martin Hope
Bob Bobbio
Asked: 2020-09-12 16:19:04 +0800 CST

TP-Link 交换机和 Linux 的丢包

  • 0

我已经设置了四台 Linux 服务器。它们的图像完全相同。我有一个便宜的 TP Link 开关,我把它们都插进去了。当全部打开并插入交换机时,机器似乎经历了疯狂的丢包,我无法连接到它们,机器无法相互连接。

连接问题扩展到尝试相互 ping 的服务器。我让每台服务器都获得了一个 IP,然后我断开了交换机与路由器的连接。当我将任何两台服务器插入交换机时,它们能够相互 ping 通,但是一旦插入第三台服务器,它们就无法继续 ping 通。鉴于即使没有插入路由器也会发生这种情况,它必须是机器或交换机上的东西。

我尝试在其中一台机器上进行数据包捕获,但除了我认为与数据包丢失一致的大量 tcp 重新传输之外,没有注意到任何其他内容。我想知道我是否会出现一些疯狂的多播流量或其他东西,但不是真的。我还尝试杀死可能正在进行网络流量的机器上的任何东西。机器上的适配器设置对我来说都很正常,但我不确定是什么原因造成的。

我也尝试用另一个相同品牌和型号的开关换掉,但它有同样的问题。我想知道开关是否发生了一些奇怪的事情,但我对此一无所知。

在调试方面不确定接下来要尝试什么。我觉得我忽略了一些简单的事情。

linux networking packetloss
  • 2 个回答
  • 281 Views
Martin Hope
Filipe Pina
Asked: 2020-05-15 16:39:57 +0800 CST

调试网络问题

  • 0

自从我得到这个新路由器并用dd-wrt ​​刷新它后,我就遇到了这个问题。
它并没有真正的影响(我会描述这个场景),但我很好奇......

这是网络设置的示意图:

  • 在通过 WiFi 连接的 VMware Fusion(在 Mac/OSX 主机中)上运行的 Manjaro Linux
  • 3 个树莓派(运行 Raspbian)连接到交换机 1(然后是路由器)
  • 1 NAS (WDCloud) 连接到交换机 1
  • 1 个树莓派连接到交换机 2(连接到交换机 1)

鉴于设置,问题:

  • Mac over WiFi,Manjaro VM 处于桥接模式
    • ping 4 个 Pi 中的任何一个都显示在 5 分钟内丢包 - 有时 20%,有时更多
    • ping NAS 显示完全没有丢包
  • Mac over WiFi,Manjaro VM 在 NAT
    • 任何场景都不会丢包
  • Mac over LAN、Manjaro VM 处于 NAT 或桥接模式
    • 任何场景都不会丢包

所以,我最初的猜测是它与 Fusion 桥接模式有关,因为直接从 Mac(主机)ping 从来没有任何损失(也没有使用带有 NAT 的 VM)。

  • 尝试过 Virtualbox,同样的情况(桥接显示丢包,NAT 没有)。
  • 使用 DDWRT WiFi 设置玩了很多,但似乎没有任何区别。

意识到 ping NAS 没有丢包,所以它看起来只是桥接+WiFi+Raspberry 组合中的东西,所以我tcpdump icmp在其中一个树莓上运行并开始从 VM ping

虚拟机中的 Ping 输出:

64 bytes from  (192.168.1.22): icmp_seq=13 ttl=64 time=2.40 ms
64 bytes from  (192.168.1.22): icmp_seq=14 ttl=64 time=2.50 ms
===> lost sequences 15 to 42 <===
64 bytes from  (192.168.1.22): icmp_seq=43 ttl=64 time=34.1 ms
64 bytes from  (192.168.1.22): icmp_seq=44 ttl=64 time=2.31 ms

Pi 中的 tcpdump 输出:

01:24:42.397835 IP stretch > 192.168.1.22: ICMP echo request, id 436, seq 13, length 64                                    
01:24:42.397919 IP 192.168.1.22 > stretch: ICMP echo reply, id 436, seq 13, length 64                                      
01:24:43.399899 IP stretch > 192.168.1.22: ICMP echo request, id 436, seq 14, length 64                                    
01:24:43.399948 IP 192.168.1.22 > stretch: ICMP echo reply, id 436, seq 14, length 64                                      
01:24:44.404887 IP stretch > 192.168.1.22: ICMP echo request, id 436, seq 15, length 64                                    
01:24:45.422542 IP stretch > 192.168.1.22: ICMP echo request, id 436, seq 16, length 64                                    
===> requests hit but no replay is sent... <===
01:25:12.044102 IP stretch > 192.168.1.22: ICMP echo request, id 436, seq 42, length 64                                    
01:25:13.068516 IP stretch > 192.168.1.22: ICMP echo request, id 436, seq 43, length 64                                    
01:25:13.099164 IP 192.168.1.22 > stretch: ICMP echo reply, id 436, seq 43, length 64                                      
01:25:14.071065 IP stretch > 192.168.1.22: ICMP echo request, id 436, seq 44, length 64                                    
01:25:14.071129 IP 192.168.1.22 > stretch: ICMP echo reply, id 436, seq 44, length 64                                      

结论(我认为):ping 请求命中树莓派,但没有发送回复(在那段时间,大约 30 秒)。
我正在使用 ping,因为它最容易显示/测试数据包丢失,但 TCP 也会发生这种情况,因为 SSH 会话时不时挂起。

关于检查树莓派配置以了解它为什么不发送 ICMP 回复的任何提示?它使它看起来与 Pi 相关,但是为什么在其他场景(Mac WiFi + VM 桥接)中不会发生这种情况,因为 Pi 保持不变?

networking ping raspbian packetloss
  • 1 个回答
  • 232 Views
Martin Hope
Mazzy
Asked: 2018-05-17 05:49:05 +0800 CST

数据包丢弃在 Linux 节点中

  • 3

我跑dropwatch了,这是我得到的结果:

dropwatch> start
Enabling monitoring...
Kernel monitoring activated.
Issue Ctrl-C to stop monitoring
39 drops at tcp_rcv_state_process+1b6 (0xffffffff815eeda6)
36 drops at sk_stream_kill_queues+50 (0xffffffff81583970)
3 drops at skb_release_data+10e (0xffffffff8157bf3e)
2 drops at tcp_v4_do_rcv+80 (0xffffffff815f8f70)
2 drops at tcp_v4_rcv+87 (0xffffffff815fa087)
30 drops at tcp_rcv_state_process+1b6 (0xffffffff815eeda6)
31 drops at sk_stream_kill_queues+50 (0xffffffff81583970)
20 drops at unix_dgram_sendmsg+4f8 (0xffffffff81646a38)
5 drops at tcp_v4_rcv+87 (0xffffffff815fa087)
2 drops at tcp_v4_do_rcv+80 (0xffffffff815f8f70)
19 drops at tcp_rcv_state_process+1b6 (0xffffffff815eeda6)
23 drops at sk_stream_kill_queues+50 (0xffffffff81583970)
2 drops at tcp_v4_rcv+87 (0xffffffff815fa087)
2 drops at skb_release_data+10e (0xffffffff8157bf3e)
11 drops at unix_dgram_sendmsg+4f8 (0xffffffff81646a38)
57 drops at tcp_rcv_state_process+1b6 (0xffffffff815eeda6)
49 drops at sk_stream_kill_queues+50 (0xffffffff81583970)
5 drops at skb_release_data+10e (0xffffffff8157bf3e)
5 drops at tcp_v4_rcv+87 (0xffffffff815fa087)
1 drops at skb_queue_purge+18 (0xffffffff8157c0a8)
4 drops at tcp_rcv_state_process+1b6 (0xffffffff815eeda6)
4 drops at sk_stream_kill_queues+50 (0xffffffff81583970)
3 drops at tcp_v4_do_rcv+80 (0xffffffff815f8f70)
3 drops at tcp_v4_rcv+87 (0xffffffff815fa087)
10 drops at skb_release_data+10e (0xffffffff8157bf3e)
38 drops at unix_dgram_sendmsg+4f8 (0xffffffff81646a38)
29 drops at sk_stream_kill_queues+50 (0xffffffff81583970)
28 drops at tcp_rcv_state_process+1b6 (0xffffffff815eeda6)
1 drops at tcp_v6_rcv+87 (0xffffffff81677ff7)
2 drops at tcp_v4_rcv+87 (0xffffffff815fa087)
1 drops at tcp_v4_do_rcv+80 (0xffffffff815f8f70)
1 drops at skb_release_data+10e (0xffffffff8157bf3e)
17 drops at tcp_rcv_state_process+1b6 (0xffffffff815eeda6)
14 drops at sk_stream_kill_queues+50 (0xffffffff81583970)
1 drops at skb_release_data+10e (0xffffffff8157bf3e)
1 drops at tcp_v4_rcv+87 (0xffffffff815fa087)
5 drops at tcp_rcv_state_process+1b6 (0xffffffff815eeda6)
10 drops at skb_release_data+10e (0xffffffff8157bf3e)
2 drops at unix_dgram_sendmsg+4f8 (0xffffffff81646a38)
4 drops at sk_stream_kill_queues+50 (0xffffffff81583970)
20 drops at tcp_rcv_state_process+1b6 (0xffffffff815eeda6)
22 drops at sk_stream_kill_queues+50 (0xffffffff81583970)
2 drops at skb_release_data+10e (0xffffffff8157bf3e)
48 drops at tcp_rcv_state_process+1b6 (0xffffffff815eeda6)
53 drops at sk_stream_kill_queues+50 (0xffffffff81583970)

从现在开始,我被困住了。我已经检查过它tcp_rcv_state_process并且sk_stream_kill_queues是 Linux Kernel 中的函数,但我不知道它们是由什么控制的。我跳过了这个问题,因为在我的节点中,一些应用程序以预期的方式超时。

任何建议我怎么能继续?

packetloss
  • 1 个回答
  • 1549 Views
Martin Hope
Alec Fenichel
Asked: 2016-10-01 20:38:36 +0800 CST

什么是预期的 TCP 重传率

  • 4

我在我的 NAS 和服务器之间建立了直接连接设置,两个千兆链路以模式 0 绑定。我还有一个从我的服务器到我的网络的千兆链路。我想测试绑定在模式 0 下的表现。

netstat -s | grep 'segments retransmited' | awk '{print $1}'-> 21983

netstat -s | grep 'segments send out' | awk '{print $1}'-> 91874454

21983/91874454 = .000239272

这算不算高?此服务器和 Internet 之间存在大量流量。

另外,有没有更好的方法来测试我的 NAS 和服务器之间的直接连接上的数据包丢失?ethtool统计信息不可用,因为不支持驱动程序。谢谢。

tcp packetloss
  • 1 个回答
  • 10494 Views
Martin Hope
Husker
Asked: 2016-03-14 14:17:23 +0800 CST

丢包问题排查

  • 0

我目前拥有几个托管在德国 (hetzner) 的 CS:GO 游戏服务器。最近(过去几周)有些人出现了奇怪的延迟(稍微传送回来,你们中的一些人可能知道它是橡皮筋延迟)。在进行了一些扫描和检查后,我们确定它是一个网络配置文件,特别是丢包。主机要求双向(从和到 dedi 服务器)进行 tracert 测试,我们已经进行了一些测试(到 dedi),这些测试清楚地显示了某个跃点后的丢包,但是当我从专用服务器运行 tracert 时它显示没有丢包或任何奇怪的迹象。基本上,我已经在两个方向上运行了 tracert 测试,但是当我从我的网络或其他任何地方运行它时,它只显示数据包丢失。为什么会发生这种情况,我该怎么做才能向主机证明存在丢包?

Pingplotter tracert 测试(10 分钟,310 个样本) - rar 下载。来自德国 PC 的
tracert 测试(pastebin)。

注意:我目前正在从主机租用服务器,因此我无法提供设备型号/配置,但我可以通过 ssh 访问的信息除外。

packetloss
  • 1 个回答
  • 146 Views
Martin Hope
Joe Phillips
Asked: 2010-03-31 18:17:43 +0800 CST

是什么导致虚拟机出现丢包?

  • 2

我们有一个非常好的硬件设置为在 vmware 中运行多个虚拟机,其中一个 vm 是运行 SQL Server 2005 的 Windows Server 2003 实例。出于某种原因,我们偶尔会看到 10-20 秒的直接数据包丢失来自远程机器(我的工作站)的机器以及同一物理硬件上的其他虚拟机。我正在使用 PingPlotter 密切关注数据包丢失。

到目前为止,我们已经关闭了 NIC 上的流量控制,但我们已经没有其他东西可以尝试了。可能是什么原因造成的,我该如何识别问题?

注意:我们还有另一台配置非常相似的服务器,但在较小程度上存在相同类型的问题(因为它没有被大量使用?)

sql-server-2005 windows-server-2003 vmware-esx packetloss
  • 4 个回答
  • 8351 Views
Martin Hope
z8000
Asked: 2010-03-02 18:47:17 +0800 CST

在数据中心内的通信中丢包有多常见?

  • 10

假设我在同一个数据中心有两台机器,但不一定在同一个机架中。

在这两台机器之间使用 UDP 发送数据包时,丢包有多常见?

我的假设是,由于机器之间最多只有几个交换机,因此根本不会丢弃数据包。

同一数据中心内的无序数据包到达有多常见?我的假设是 99.9% 的时间只有一条路线,所以这不会发生。

然而,每当我发现自己以绝对的方式思考时,我知道我一定错过了一些东西!

我需要哪些背景信息才能更好地了解何时会丢弃数据包,以及它们可能被丢弃的频率,以及同一数据中心中的机器乱序到达的频率?

最终,当位于同一数据中心的不同 Linode VPS 实例之间进行通信时,我试图在使用多播 UDP 或 PGM 之间做出决定。信息必须按顺序到达。当然,那时 UDP 听起来并不那么好!

但是,如果可以期望在同一个数据中心内实现几乎完美或完美的交付,那就没问题了。但是,我正在测试这个假设。

谢谢。

networking udp datacenter multicast packetloss
  • 4 个回答
  • 1595 Views
Martin Hope
Matt Simmons
Asked: 2010-01-21 02:11:11 +0800 CST

路由器轻丢包

  • 1

我最近刚刚在我的办公室安装了一条光纤线路,除了我们遇到的一些奇怪的问题之外,一切都运行良好,网络响应真的很棒。

我们遇到的问题是每隔一段时间,我的路由器就会脱落并丢弃数据包。这不是线路,也不是开关。它是路由器本身,我已经切换了硬件,两块都可以。我使用的设备是 Juniper Netscreen SSG5。以下是症状:

我对“内部”接口进行了 pingflood,其中

 ping -f -c 10000 <internal-ip>

我收到了 10,000 条回复。每次。然后,我会做同样的事情,除了外部接口的 IP 地址(但仍然在同一设备上)。它会在 10,000 个数据包中丢弃 10 到 15 个数据包。我在公司的所有其他网关上都进行了相同的测试,没有其他任何东西显示这种行为。我很困惑。

我已经与光纤公司的支持人员进行了交谈,我们的两个接口都被硬编码为全双工的 100Mb,如果这甚至可能导致问题的话。顺便说一句,从路由器内部ping外部接口时,我从来没有丢包,这让我认为它不是接口本身。并且本地接口永远不会丢失数据包,因此它不是交换机。

老实说,我不确定问题出在哪里,除了硬件本身的设计。我看过图表,即使在 pingflood 期间,我也离最大化路由器上的 CPU 或内存还差得很远。

有什么建议么?

编辑

对于 Tom:光纤是 13Mb/s,但是当我 ping 接口时,它并没有与光纤交叉。本地 LAN 以 100Mb/s 的速度运行,内部接口响应每个数据包。我得看看我是否可以借用另一块硬件,但我在不同的站点有一些旧型号的瞻博网络 (5GT),它们没有表现出相同的症状。

ping juniper netscreen packetloss ssg5
  • 3 个回答
  • 2583 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve