是否有任何 ITU DSL 标准限制了可支持的最大 MTU?
我知道 RFC2516 (PPPoE) 将 MTU 限制为 1492 字节;然而,当不使用 PPPoE 时,这个限制不应该存在。
PPP、L2TP 和 ATM AAL5 标准都有 16 位长度的字段,允许长度高达 64k 的数据包。
我经常看到 ADSL 和 G.SHDSL 的批发运营商切换,支持的 MTU 限制在 1460 到 1500 字节之间;但是我不知道有任何超过 1500 字节的运营商广告功能。
是否有任何基于 DSL 连接的标准限制了 DSL 线路上的数据包大小,或者仅仅是供应商和运营商的任意限制限制了市场上大帧支持的可用性?
编辑:请注意,这个问题询问的是什么标准适用于 DSL 连接上的 MTU,而不是关于什么通用约定。
我在我们办公室有一个服务器麦克风,通过 VPN 与远程服务器通信。出现了各种似乎与 MTU 大小有关的问题。Mike 是 RHEL 3 服务器,客户服务器是 CentOS 5。我使用 tracepath 工具试图找到最大 MTU 并得到这个奇怪的结果
[root@mike root]# tracepath 192.168.1.4
1: mike (192.168.100.1) 0.170ms pmtu 552
1: mike (192.168.100.1) 0.011ms pmtu 552
1: mike (192.168.100.1) 0.010ms pmtu 552
snip - thousands of lines of the same output
1: mike (192.168.100.1) 0.025ms pmtu 552
1: 192.168.100.252 (192.168.100.252) 0.405ms
2: 192.168.100.253 (192.168.100.253) 0.876ms
3: 192.168.1.4 (192.168.1.4) 97.1000ms reached
Resume: pmtu 552 hops 3 back 3
Run Code Online (Sandbox Code Playgroud)
从我们办公室的另一台服务器到另一个客户,我得到了一个更合理的结果
[root@nora ~]# tracepath 192.168.2.1
1: nora (192.168.100.228) …Run Code Online (Sandbox Code Playgroud) 配置 IPv6 LAN 时,可能需要使用路由器通告来宣布标准 1500 字节或更大的链路 MTU,以启用巨型帧(也许是 9000)。这将允许 LAN 上的主机之间的通信使用最大的框架可能。如果到 IPv6 互联网的默认路由必须经过6in4隧道类型,则在使用 PPPoE 时,MTU 通常为 1480 或 1472。
LAN 主机之间的通信应不间断,但沿默认路由的正常流量事件链的行为会有所不同。在大多数连接的握手期间,包含大量数据的第一个数据包几乎总是大于默认路由的 MTU,从而促使路由器丢弃该数据包并发送 ICMPv6 数据包太大消息(类型 2 )。我认为大多数操作系统都会通过目标地址缓存路径 MTU 发现的结果,因此几乎所有默认路由连接都会发生这种交互。此交换最多只需要几十毫秒,因此我预计它不会导致严重的性能问题。
问题是:这种类型的配置是否被视为最佳实践?是否首选使用等于(或小于)默认路由路径 MTU 的链路 MTU?有这方面的文档吗?
LAN WAN
hostA -----\ v4 WAN Link / 6in4 tunnel
\ MTU 9000 MTU 1500 MTU 1480
|---------- router ------------------------ - - -
/ IPv4 Internet, 6in4 endpoint -->
hostB -----/
<<< router adv
prefix
RDNSS
MTU 9000
etc
Example TCP connection:
TCP(SYN, 94 …Run Code Online (Sandbox Code Playgroud) 我有一个非常奇怪的问题,某些数据包没有到达目标主机。当我们传输比 MTU 稍大的 POST 时,就会发生这种情况。我们可以用这个脚本重现它:
#!/usr/bin/python
import urllib2
magic_length = 2297
logurl = 'http://www.example.nl/'
data = (magic_length - len(logurl)) * 'X'
headers = {'content-type': 'application/x-www-form-urlencoded', 'User-Agent': 'Fake'}
request = urllib2.Request(logurl, data, headers)
handler = urllib2.build_opener(urllib2.HTTPHandler())
answer = handler.open(request, timeout=5)
Run Code Online (Sandbox Code Playgroud)
发送方没有收到 ACK 并进行重传。接收方永远不会看到它。
这取决于您运行脚本的位置以及 POST 的位置。我的家庭连接失败了(顺便说一句,几个月以来我遇到了 AJAX POST 无法通过的问题;因为我有一个新的调制解调器)。
如果我将发送机器的 MTU 减少 100,它会再次工作。但是,如果我也减少magic_length100,它会再次失败。第一个理论是我的 ADSL 层(如 PPPoA)添加了标头并导致数据包被错误地拆分,但当时似乎并非如此。
也许 MTU 发现出了问题。有些人可能会阻止所有ICMP?这是从我家到 google 的 traceroute 的第一部分:
traceroute to google.com (74.125.133.102), 30 hops max, 60 byte packets
1 dsldevice.lan (192.168.2.254) 0.453 ms 0.547 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Windows 7 上以编程方式为物理接口设置 MTU :
PS> (Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where { $_.Description -match '^Red Hat.*#2' })
DHCPEnabled : False
IPAddress : {10.10.8.3, fe80::447d:38dc:bb39:f311}
DefaultIPGateway :
DNSDomain :
ServiceName : netkvm
Description : Red Hat VirtIO Ethernet Adapter #2
Index : 12
PS> (Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where { $_.Description -match '^Red Hat.*#2' }).SetMTU(9000)
Method invocation failed because [System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapterConfiguration] doesn't contain a method named 'SetMTU'.
At line:1 char:113
+ (Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where { $_.Description -match …Run Code Online (Sandbox Code Playgroud) 我在网上看到很多文章说以太网的开销是18个字节(例如:http : //www.learnios.com/viewtopic.php? f=8&t =18887)
查看这篇 wiki 文章 ( http://en.wikipedia.org/wiki/Ethernet_frame#Structure ) 18 字节是以下字段;
为什么前导码、帧开始分隔符和帧间间隙不计入这一点,它们不是包含在每个帧中吗?这将使以太网开销达到 26 字节。
我链接的原始文章是关于计算 MPLS 网络所需的 MTU(将第 2 层流量封装到 MPLS 帧中)。我想了解为什么将 18 个字节添加到标准的 1500 个字节而不是 26 个字节(加上 MPLS 标签堆栈和任何 do1q 标签)。
因此,我有一个在 Amazon Lightsail 上运行的 VPS,并在其上安装了wireguard;我这样设置界面:
[Interface]
Address = 10.255.128.1/24
MTU = 1420
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = ********************************************
Run Code Online (Sandbox Code Playgroud)
然后发生了一些非常奇怪的事情:我将 iface UP 并运行sudo ip addr,然后我得到这个输出
3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 8921 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet …Run Code Online (Sandbox Code Playgroud) 有些人说,发送较大的数据包比发送较小的数据包更好。
但在这个应用程序中:http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/message/messagesegmentation.html
数据包大小越小,到达目的地所需的时间就越短。所以我不明白为什么更喜欢更大的尺寸?你能给我解释一下吗?谢谢
在网络上的所有网络适配器(包括虚拟交换机 vmware esx)中将 MTU 设置为最大可能值有什么缺点?
为什么不把生产者作为默认?
我不明白用网卡的方式到1500的时候它已经支持9000的值了!
我有一个到 OpenVPN 服务器的 VPN 隧道。VPN 是一个 Sophos VPN,它在底层使用 OpenVPN。我不知道服务器配置,也不能更改服务器配置。我的隧道端点是 Win 10 (OpenVPN 2.4.8) 上的 tun,其配置如下所示:
ip-win32 dynamic
client
dev tun
proto tcp
verify-x509-name "[...]"
route remote_host 255.255.255.255 net_gateway
resolv-retry infinite
nobind
persist-key
persist-tun
dev-node "OpenVPN"
pull-filter ignore redirect-gateway
route 192.168.20.0 255.255.255.0 vpn_gateway 3
<ca>
[...]
</ca>
<cert>
[...]
</cert>
<key>
[...]
</key>
auth-user-pass
cipher AES-128-CBC
auth SHA256
comp-lzo no
route-delay 4
verb 3
reneg-sec 0
remote [...] 8443
Run Code Online (Sandbox Code Playgroud)
现在我遇到了通过隧道的 SSH 连接挂起的问题debug1: SSH2_MSG_KEXINIT sent(这是 WSL ssh):
$ ssh -vvvv …Run Code Online (Sandbox Code Playgroud) 认为我在以下问题中遇到的问题之一是由 MTU 引起的。
ESXi 5 VM Putty 会话挂起,vSphere 客户端超时
但是,当我尝试测试最大 MTU 大小时,似乎没有限制。认为以太网只允许最大 MTU。但我最多 54450。
ping -l 54450 192.168.10.7
ping 192.168.50.7 有54450字节数据:
来自192.168.10.7的回复:bytes=54450 time=1081ms TTL=62
Reply from 192.168.10.7:bytes=54450 time=1079ms.1751time bytes from
Reply:54450 time=1081ms =1079ms TTL=62
来自 192.168.10.7 的回复:bytes=54450 时间=1079ms TTL=62
192.168.10.7 的 Ping 统计数据:
数据包:发送 = 4,接收 = 4,丢失 = 0(0% 丢失),
以毫秒为单位的近似往返时间:
最小值 = 1079 毫秒,最大值 = 1081 毫秒,平均值 = 1079 毫秒
我们在集群中有几台服务器,我们想知道在什么情况下我们需要配置大页面?
我也有几个问题
在我的 linux 服务器中,我输入了以下命令来验证默认内存页面大小
grep Hugepagesize /proc/meminfo
Hugepagesize: 2048 kB
getconf PAGESIZE
4096
Run Code Online (Sandbox Code Playgroud)
但正如大家在这里看到的,我们得到了不同的结果,为什么?
使用大页面有什么风险?
剂量禁用透明大页面 - 意味着禁用大页面选项?