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 / 问题 / 1167431
Accepted
oliver
oliver
Asked: 2024-11-04 23:49:43 +0800 CST2024-11-04 23:49:43 +0800 CST 2024-11-04 23:49:43 +0800 CST

为什么尽管交换机和主机上有标准 MTU,但仍会传输巨型帧?

  • 772
该问题已从Super User迁移,因为它可以在 Server Fault 上得到解答。12 天前迁移 。

我有一台 Ubuntu 22.04 服务器、一台 MikroTik CRS328-24P-4S+RM 交换机和以太网连接的摄像头。我想增加所有系统的 MTU,以便传输巨型帧,从而减少从许多摄像头接收高清流时服务器的 CPU 负载,但我注意到,即使使用默认 MTU 设置(1500 字节),摄像头也会发送巨型帧。

更详细地:

  • 服务器上ip l显示的网络接口为:2: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000即 MTU 1500。
  • 在交换机管理 Web 界面上,我检查了服务器接口和摄像头接口的 MTU。它们设置为 MTU = 1500,L2 MTU = 1592。
  • 我不知道如何检查相机的 MTU(对我来说它们是一个黑匣子)。

我检查了传输的数据包的大小:

  • 在服务器上,我用 tcpdump 查看了数据包。tcpdump -i eno2 -s 100 -e | less显示数据包如下: 16:25:06.315612 <MAC redacted> (oui Unknown) > <MAC redacted> (oui Unknown), ethertype IPv4 (0x0800), length 9014: camera1.3957 > server.46179: UDP, length 8972。以太网数据包的大小为 9014 字节。

  • 我禁用了服务器上的“卸载”,如https://wiki.wireshark.org/CaptureSetup/Offloadingethtool --offload eno2 rx off tx off中所述。

  • 在交换机上,我可以看到相机接口的 RX 速率约为 500 Mbps,RX 数据包速率约为 7000 p/s。结果为((500/8)*1024*1024)/7000= ~9362 字节/数据包。

问题:

  • 我上面的分析有错误吗?

  • 网络设备有可能发送大于中间设备配置的MTU的UDP数据包吗?

附录:

结果ethtool --show-offload eno2:

Features for eno2:
rx-checksumming: off
tx-checksumming: off
        tx-checksum-ipv4: off [fixed]
        tx-checksum-ip-generic: off
        tx-checksum-ipv6: off [fixed]
        tx-checksum-fcoe-crc: off [fixed]
        tx-checksum-sctp: off [fixed]
scatter-gather: on
        tx-scatter-gather: on
        tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: off
        tx-tcp-segmentation: off [requested on]
        tx-tcp-ecn-segmentation: off [fixed]
        tx-tcp-mangleid-segmentation: off
        tx-tcp6-segmentation: off [requested on]
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: on
receive-hashing: on
highdma: off [fixed]
rx-vlan-filter: on
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: on
tx-tunnel-remcsum-segmentation: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: on
tx-gso-list: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off [fixed]
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: on
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]
rx-gro-list: off
macsec-hw-offload: off [fixed]
rx-udp-gro-forwarding: off
hsr-tag-ins-offload: off [fixed]
hsr-tag-rm-offload: off [fixed]
hsr-fwd-offload: off [fixed]
hsr-dup-offload: off [fixed]
linux
  • 1 1 个回答
  • 60 Views

1 个回答

  • Voted
  1. Best Answer
    oliver
    2024-11-14T00:39:58+08:002024-11-14T00:39:58+08:00

    交换机上仍有一个接口配置了较大的 MTU。将此 MTU 更改为正常大小(MTU=1500 且 L2MTU 为 1592)后,所有摄像头都不再发送巨型帧,而只发送正常大小的帧。

    所以我的结论是:提高此交换机上任何接口(即使是未使用的接口)的 L2 MTU使得可以在任何接口之间发送巨型帧。

    此外,接收服务器上的 MTU 不会影响此行为。它仍配置为 1500,但服务器成功接收巨型帧。这与 Tom Yan 的建议相符:

    我认为主机上的 MTU 设置仅确保它不会发送大于该大小的数据包,但不会使主机拒绝/忽略收到的较大数据包。(尽管使用 TCP,它确实会让主机告诉其他主机不要这样做。)

    由于摄像机通过 UDP 进行通信,因此这个想法听起来很现实。

    • 1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

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