Questions tagged «mtu»

“最大传输单元”(MTU)是帧或数据包在网络上(在OSI模型的多个层中)可能具有的最大字节数。错误的MTU可能导致数据包丢失。

4
以太网框架的“线内”大小是多少?1518还是1542?
根据此处的表,它表示MTU = 1500字节,有效负载部分为1500-42字节或1458字节(<-这实际上是错误的!)。现在最重要的是,您必须添加IPv4和UDP标头,它们是28个字节(20 IP + 8 UDP)。这使我最大可能的应用程序消息为1430字节!但是通过在Internet上查找此数字,我看到的是1472。我在这里计算错误吗? 我要查找的是我可以通过网络发送的最大应用程序消息,而不会出现碎片的风险。绝对不是1500,因为它包括帧头。有人可以帮忙吗? 令人困惑的是,PAYLOAD实际上可能高达1500个字节,这就是MTU。那么,现在有效负载为1500的线径是多少?从该表中,它可以最大为1542字节。 因此,我可以发送的最大应用消息是1472(1500-20(ip)-8(udp)),最大电线尺寸为1542。这让我感到惊讶的是,当事情实际上很简单时,事情会变得如此复杂。而且我不知道如果桌子上写着1542,有人会怎么想出数字1518。
22 networking  tcp  ethernet  udp  mtu 

4
如何防止OpenVPN网络上的TCP连接冻结?
在此问题末尾添加了新的详细信息;我有可能正在调查原因。 我在Internet上与少数客户端建立了一个基于UDP OpenVPN的VPN tap模式(我需要,tap因为我需要VPN来传递多播数据包,这似乎对于tun网络来说是不可能的),该模式需要设置。我一直在通过VPN频繁进行TCP连接冻结。也就是说,我将建立一个TCP连接(例如SSH连接,但是其他协议也有类似的问题),并且在会话期间的某个时刻,似乎流量将停止通过该TCP会话进行传输。 这似乎与发生大数据传输的点有关,例如,如果我ls在SSH会话中执行命令,或者我cat的日志文件很长。某些Google搜索在Server Fault上出现了类似于上一个答案的许多答案,表明可能的罪魁祸首是MTU问题:在流量大的时期,VPN试图发送丢包的数据包,这些数据包位于服务器之间。 VPN端点。上面链接的答案建议使用以下OpenVPN配置设置来缓解此问题: fragment 1400 mssfix 这应该将VPN上使用的MTU限制为1400字节,并固定TCP最大段大小,以防止生成任何大于此大小的数据包。这似乎可以缓解问题,但我仍然经常看到冻结现象。我已经尝试了多种大小作为fragment指令的参数:1200、1000、576,所有结果均相似。我想不出两端之间可能出现这种问题的奇怪的网络拓扑:VPN服务器在直接连接到Internet 的pfSense机器上运行,而我的客户端也直接连接到另一个位置的Internet。 另一个奇怪的难题是:如果我运行该tracepath实用程序,那么这似乎可以解决问题。运行示例如下: [~]$ tracepath -n 192.168.100.91 1: 192.168.100.90 0.039ms pmtu 1500 1: 192.168.100.91 40.823ms reached 1: 192.168.100.91 19.846ms reached Resume: pmtu 1500 hops 1 back 64 上面的运行是在VPN上的两个客户端之间:我启动了从192.168.100.90到目的地的跟踪192.168.100.91。配置两个客户端fragment 1200; mssfix;以尝试限制链接上使用的MTU。以上结果似乎表明它tracepath能够检测到两个客户端之间的1500字节的路径MTU。我会假设由于OpenVPN配置中指定的分段设置,它会稍微小一些。我发现结果有些奇怪。 但是,甚至更陌生:如果我的TCP连接处于停止状态(例如,SSH会话的目录列表在中间冻结),则执行tracepath上面显示的命令会使连接再次启动!对于这种情况,我无法找到任何合理的解释,但是我觉得这可能指向最终解决该问题的解决方案。 有人对其他尝试有任何建议吗? 编辑:我回来了,进一步看了一下,发现只有更多令人困惑的信息: 我将OpenVPN连接设置为1400字节分段,如上所示。然后,我从Internet上连接到VPN,并使用Wireshark查看发生停顿时发送到VPN服务器的UDP数据包。没有一个大于指定的1400字节计数,因此碎片似乎正常运行。 为了验证哪怕一个1400字节的MTU也足够,我使用以下(Linux)命令对VPN服务器执行了ping操作: ping <host> -s 1450 -M …
19 vpn  openvpn  tcp  mtu 

2
为什么将MTU从1500降低到1499使我可以访问大多数网站?
我遇到了这个问题,即当mtu设置为1500时,我只能连接到google.com和ibm.com之类的网站,但是如果我尝试连接其他任何网站,它只会显示空白页。当mtu降低到1499时,它开始工作。我很好奇为什么这样做,如果将mtu设置为1499会在将来引起问题?我实际上对此并不了解,我只是听说了,并正在寻找一个很好的解释。 当我得到关于为什么MTU仅下降1个字节的解释时,我将用该解释更新我的问题。
16 mtu 

2
OpenVPN:如何缓解每个客户端的路径MTU问题?
我们在客户处安装了数十种嵌入式设备,所有这些设备都是我们的OpenVPN服务的所在地。总体而言,这可以正常工作,但是我们的一些客户在路径MTU方面存在严重问题。我们对客户修复网络的影响是有限的,因此我们需要OpenVPN对其进行处理。简而言之,我的问题是: 我如何减轻每个客户端基于某些客户端的低路径MTU,即不使用全局设置来适应所有客户端的最坏情况 请注意,我们的最坏情况非常糟糕:路径MTU 576会丢弃所有片段,不会自身进行片段化,也不会使用DF位。您会明白为什么我不想在全球范围内解决此问题。 该OpenVPN的联机帮助提供了许多MTU的相关选项,最显着的--link-mtu, --tun-mtu, --fragment and --mssfix。但这也说 --link-mtu [...]除非您知道自己在做什么,否则最好不要设置此参数。 --tun-mtu [...]最好使用--fragment和/或--mssfix选项来处理MTU尺寸调整问题。 于是我开始尝试用--fragment和--mssfix,但很快就意识到,至少前者必须设置不仅客户端,但也服务器端。然后,我通过看到服务器端的每个客户端的配置--client-config-dir,但它说 以下选项在特定于客户端的上下文中合法:--push,--push-reset,--iroute,--ifconfig-push和--config。 没有提及MTU选项! 所以这是我更具体的问题: 到底为什么是link-mtu和tun-mtu沮丧?这些选项潜在的问题是什么?请注意,我对低级IP标头处理非常满意。 link-mtu tun-mtu fragment mssfix为了工作,必须在服务器端镜像哪个选项? link-mtu tun-mtu fragment mssfix可以在哪个选项中使用client-config-dir? 如果所有四个选项都必须在服务器端进行镜像,并且不能在内部使用client-config-dir:是否有其他方法可以解决每个客户端的低路径MTU? 笔记: 我的部分问题已经在5年前在这里提出过,但是那时还没有真正得到回答,因此我敢于重复它们。 OpenVPN服务器当前在Ubuntu 12.04上为2.2.1。我们正在准备在Ubuntu 14.04上升级到2.3.2 OpenVPN客户端在Debian 7.6上为2.2.1 我很高兴自己亲自确定客户的路径MTU 目前,我们无法测试太多服务器端。但是我们正在建立一个完整的独立测试台,应该尽快准备就绪。 感谢您提供任何有用的建议。

1
我对计算MTU有什么误解?
好的,我刚刚解决了几个Xserve,Netgear GSM7224和Drobo B800i之间的巨型帧问题。原来Xserves(Mac OS X 10.6.8 Server)和Drobo B800i接受MTU的字节数通常是预期的(1500-9000),但是Netgear似乎希望它包含各种以太网标头/页脚(预告片) ),最后我最终为Xserves&Drobo配置了9000的MTU,并将Netgear端口设置为9216的MTU。 我已经使用以下命令在Netgear上测试和验证两个Xserve之间的MTU(注意:这是Mac OS X命令,Windows和Linux有所不同): ping -D -s <mtu> <ip_address> traceroute -F <ip_address> <mtu> 前者在man页面中的用法为:“指定要发送的数据字节数。默认值为56,当与8个ICMP标头数据组合时,它转换为64个ICMP数据字节。” 在测试中,我发现,ping -D 1472 <ip_address>是等效MTU 1500的归因于8个字节ICMP头数据的加20个字节的IP报头(参见此和本)。一切都说得通。 现在,为什么对9000 MTU使用等效命令ping -D -s 8164 <ip_address>?我已经确认这是极限,直到我开始收到“发送到:消息太长”错误,而且9000 MTU可以正常traceroute -F <ip_address> 9000工作,traceroute -F <ip_address> 9001但不能正常工作。那么,为什么是8164?我期望8972(MTU-28个字节,就像1500 MTU一样)。 另外,为什么要为Netgear设置9216 MTU?我算出了42个字节的MAC和以太网标头(包括CRC),再加上20个IP标头(应该被MTU占用了)。 我对这个数学真的很生疏,知道我只是想念一些东西。

1
OpenVPN性能低下。我有MTU问题吗?内部转储
我遇到无法达到线速度的OpenVPN隧道的问题。网关是OVH托管的Debian Jessy虚拟服务器。客户端是我的freebsd 10.2家庭服务器(Intel I3 Ivy Bridge)或我的RaspberryPI2。我停用了加密和身份验证。我有一个100mbit / s的对称FTTH连接,但隧道的速度仅为20-40mbit / s。直接连接(不使用隧道)总是可以产生100mbit / s的速度。我使用iperf3测试了性能。我首先尝试使用freebsd homeserver。我尝试了有关mssfix,fragment等的所有推荐设置。没有任何帮助。 然后我想也许这是我的freebsd机器。因此,我在RPI2上安装了新的Raspbian Jessy,并进行了更多的深度测试: 首先,我从OpenVPN配置中删除了所有MTU设置,并让路径MTU(希望)进行处理。由于两台计算机上都没有激活防火墙,因此它应该可以工作。这些是我的vpn配置: server 10.8.0.0 255.255.255.0 port 1194 proto udp dev tun sndbuf 0 rcvbuf 0 user nobody group nogroup persist-key persist-tun ifconfig-pool-persist ipp.txt keepalive 10 120 push "redirect-gateway def1" status openvpn-status.log verb 3 ca /etc/openvpn/easy-rsa/keys/ca.crt cert …
13 vpn  performance  openvpn  mtu 

3
如何在Linux(和所有其他操作系统)下查看缓存的PMTU
当我用DF位置1并且数据包大小对于我的路由器来说太大时,对远程站点执行ping操作时,将从路由器发送第一个ICMP“需要分段”消息。之后,消息来自我的本地主机。 Netstat -rC(在Linux上)允许我查看路由表缓存,但是 1)似乎在名为MSS的列下显示MTU(我希望它是链接的较低TCP MSS) 2)始终显示值为1500 我的本地主机必须将PMTU缓存在某个位置,以便它可以生成所需的碎片消息。但是我怎么看呢? 这是我的计算机上的一个示例(netstat上的-n禁止反向DNS查找): [root@vbcentos ~]# ping -c 4 -M do -s 1431 212.58.244.69 PING 212.58.244.69 (212.58.244.69) 1431(1459) bytes of data. From 217.155.134.6 icmp_seq=1 Frag needed and DF set (mtu = 1458) From 217.155.134.4 icmp_seq=2 Frag needed and DF set (mtu = 1458) From 217.155.134.4 icmp_seq=2 …
13 networking  mtu 

5
在开放的Internet上,巨型帧(MTU高达9k)是否现实/常见?
我有一个可以从更大的以太网帧中受益的应用程序。(理论上,我们可以将出站数据包的数量减少50%以上,甚至减少66%。) 我还正在与候选托管公司指定网络要求,以重新安装我的应用程序服务器。至少不限制客户端连接受益于巨型框架将是很好的选择。 但是,这有多现实?假设我们可以控制的网络段是巨型帧友好型(交换机具有大型MTU功能,允许ICMP MTU路径发现等),这是一些一般性问题: 通过公共互联网发送巨型帧是否现实? 试图通过公共Internet支持巨型帧会引发无尽的网络问题吗? 还有其他我没有考虑的问题吗?

2
KVM来宾和主机之间的巨型帧?
我正在尝试为KVM guest虚拟机和主机系统之间的存储通信实现9000字节的MTU。主机有一个br19000字节MTU 的网桥(): host# ip link show br1 8: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP link/ether fe:54:00:50:f3:55 brd ff:ff:ff:ff:ff:ff inet 172.16.64.1/24 brd 172.16.64.255 scope global br1 inet6 fe80::21b:21ff:fe0e:ee39/64 scope link valid_lft forever preferred_lft forever 来宾具有连接到此网桥的接口,该接口也具有9000字节的MTU: guest# ip addr show eth2 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state …

6
UDP中的MTU如何为65535,但以太网不允许帧大小超过1500字节
我正在使用100 Mbps的快速以太网,其帧大小小于1500字节(根据我的教科书,有效负载为1472字节)。这样,我能够发送和接收消息大小为65507字节的UDP数据包,这意味着数据包大小为65507 + 20(IP报头)+ 8(UDP报头)= 65535。 如果帧的有效负载大小本身最大为1472字节(根据我的教科书),那么IP的数据包大小如何大于此处的65535? 我使用发件人代码作为 char buffer[100000]; for (int i = 1; i < 100000; i++) { int len = send (socket_id, buffer, i); printf("%d\n", len); } 接收方代码为 while (len = recv (socket_id, buffer, 100000)) { printf("%d\n". len); } 我观察到send returns -1上i > 65507和recv打印或接收的分组maximum of length 65507。

2
在逻辑接口上设置MTU是否会影响物理接口
我一直在使用接口绑定接口,VLAN接口和网桥接口的组合来为xen domU提供冗余和不同的逻辑网络层。 此设置运行良好,但是我不确定这些接口上的不同设置会如何影响彼此。为了说明这一点,这是我在典型的dom0上的设置: /- vlan10 -- br10 eth0 -\ / > bond0 <--- vlan20 -- br20 eth1 -/ \ \- vlan30 -- br30 考虑到绑定接口,VLAN接口和网桥接口是逻辑接口,而不是物理接口,如果物理接口(eth0,eth1)具有不同的MTU设置可以达到目的,则在这些接口上设置MTU是否会产生任何影响?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.