问题标签 [mtu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1510 浏览

c - 我无法通过 NETLINK_ROUTE 选项通过 Netlink 套接字设置特定接口(eth0 或 eth1)的 MTU 大小

我编写了一个程序来将特定接口(比如eth0或)的 MTU 大小设置为 1100。请求消息是使用 Netlink 套接字通过选项eth1从用户空间发送的。NETLINK_ROUTE

消息从用户空间成功发送,但是当我验证时ifconfig eth0,MTU 大小仍然显示旧值(1500)。我验证正确吗?我怎么知道内核是否正确设置了 MTU 大小?如果我错了,请在下面找到我的程序并纠正我。

0 投票
3 回答
3850 浏览

c++ - 如何在 C++ 中以编程方式确定 MTU

我正在开发一个应用程序,我需要将多个 UDP 数据包中的大数据发送到客户端,如何以编程方式确定我的 UDP 套接字的 MTU?

我需要能够在 Windows 和 linux 上执行此操作。

0 投票
0 回答
452 浏览

http - 为什么 HTTP 连接会在恰好 3 个以太网帧之后停止?

我正在查看一个应用程序,它在连接停止之前通过 HTTP 精确传输 4380 个字节,包括标头。4380 恰好是 1500 字节以太网帧的最大段大小的 3 倍(1500 字节减去 TCP/IP 标头的 40 字节乘以 3)。

连接似乎保持打开状态;只是没有收到任何数据。

为什么它会在恰好 3 个以太网帧之后停止?我应该从哪里开始寻找原因?

0 投票
1 回答
2438 浏览

tcp - lo 64k mtu 的优势?

我在 Linux 内核中看到了这个提交并被它弄糊涂了:

16436 字节的环回当前 mtu 允许每帧不超过 3 个 MSS TCP 段,即 48 KB。将 mtu 更改为 64K 允许 TCP 堆栈构建大帧并显着减少堆栈开销。

批量 TCP 传输的性能提升可高达 30%,部分原因是我们现在有两个 64KB 段的一个 ACK​​ 消息,并且达到 /proc/sys/net/ipv4/tcp_reordering 默认限制的可能性较低。

lo 与 TCP 传输有什么关系?它不只是一个环回地址,无论出于何种原因,您都可以在其中查看以太网流量吗?

0 投票
4 回答
8439 浏览

python - 如何通过代码(在python中)找到网络的mtu值?

我必须编写一个代码,我需要在 python 中使用 udp 协议发送数据。我需要将数据包大小设置为网络的 MTU 值。有什么方法可以决定网络的 MTU 值在 python 中编写一些代码吗?

0 投票
1 回答
2857 浏览

android - Android TCP/IP MTU 的构建时配置

我知道可以在运行时读取和设置 MTU,例如:

存在这样设置的MTU在重启手机后不成立的问题。

那么,在使用 Android 开源项目源构建自己的构建时,如何为接口配置默认 MTU?

似乎在任何地方都没有提到这一点,并且 grepping 代码似乎没有帮助。此外,在 Android 中似乎不存在执行此操作的默认 Linux 内核配置文件。

肯定有办法做到这一点,对吧?

0 投票
1 回答
4212 浏览

command-line - 从命令行在 Win XP 中设置 MTU

我想从命令行设置 MTU。我在XP下运行。

我试过了:

netsh interface ipv4 set subinterface "Local Area Connection" mtu=1300 store=persistent

但它不起作用。

我试图将“ipv4”更改为“ip”,但没有帮助。无法识别令牌“子接口”。

有任何想法吗?

提前致谢。

0 投票
2 回答
1510 浏览

c++ - 原始套接字接收 1504 字节(MTU = 1500)

在我的应用程序中,我使用以下指令打开一个原始套接字(LINUX 内核 3.8.5):

一切正常,我能够接收它并将其发送到另一个接口。然而有一段时间

在那个套接字上返回 1518(1504 个有效负载字节 + 14 个 ETH_HLEN)。

当我尝试发送这个 1518 字节的缓冲区时,但是指令

返回 EMSGSIZE(消息太长)。

请注意,在我的 NIC 接口上,MTU 为 1500,因此我预计使用 ::recvfrom 检索的最多 1514(有效负载 + ETH_HLEN)字节

ethtype 是 0x0800 所以它不是 vlan 标记的帧,因此这 4 个字节“额外”不是由于 vlan 标记

你有解释吗?

0 投票
1 回答
1802 浏览

ios - iOS中BTLE换MTU的方法

有没有像 iOS 的 gatt_exchange_mtu (BlueZ stack) 这样的方法?或任何其他方法如何在 iOS 中更改 ATT_MTU?

0 投票
1 回答
137 浏览

tcp - 通过以太网的带宽值计算TCP的带宽是否正确?

通过以太网的带宽(ethernet_bandwidth)的值是否正确计算了TCP(TCP / IP)的带宽?

部分生产带宽(标头除外):

part_of_productive_bandwidth = (MTU - 40)/MTU

一秒内回复所需时间:

time_took_for_reply = (ethernet_bandwidth/TCP_receive_window)*ping

部分生产时间(期望回复除外):

part_of_productive_time = (1 - time_took_for_reply) / 1

真实带宽:

real_bandwitdh = ethernet_bandwidth * part_of_productive_bandwidth * part_of_productive_time

或者:

例如:

这是真的吗?