问题标签 [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.
c - 有没有办法在 Linux 中使用 C 以编程方式设置接口 MTU?
目前,我的程序正在system()
调用ifconfig
执行此操作。
它看起来有点乱 - 可能ifconfig
不在路径上,或者在一些非标准位置。然后我需要检查iproute2等价物以防万一。
有没有办法使用 C 以编程方式设置它?
python - 大于 MTU 的数据包到达 TUN 接口
我正在使用pytun设置一个 TUN 并将到达它的数据包转发到使用 UDP 的另一台机器。令我不解的是,即使我已将 TUN 配置为具有 141 字节的 MTU,我仍在读取大小为 145 的数据包。请看下面的代码:
我已经使用 . 验证了接口的实际 MTU ifconfig
。
我错过了什么吗?
linux - 如何永久更改 MTU 设置
我需要永久更改MTU
为1500
. 永久我的意思是如果我重新启动系统或将这样做service network restart
,它将永远是1500
。
我关注了这篇文章http://www.cyberciti.biz/faq/centos-rhel-redhat-fedora-debian-linux-mtu-size/
但不幸的是,它对我不起作用。
这是我所做的:
检查电流MTU
:
添加MTU="1500"
到/etc/sysconfig/network-scripts/ifcfg-eth0
:
然后MTU
再次检查,(没有运气):
/sbin/ifconfig
改变了MTU
,但只是暂时的
如果我重新启动network
它又是 9001:
udp - xmit函数中MTU与skb大小的关系
我在Linux中开发网卡驱动时遇到了一些问题。众所周知,MTU 是指没有分片的 IP 数据包的 MAX 大小。发送到xmit函数的skb会增加14bytes,包括dst mac addr、src mac addr和lengh。但很奇怪的是,当我对 MTU 使用不同的值时,添加的大小是不同的,有时是 10 字节,有时是 14 字节。这取决于 MTU 的大小。例如,我使用 7828 作为 UDP payload 的大小,当 MTU 为 7700 时,xmit 函数中 skb 的大小为 7714,而当 MTU 为 7800 时,skb 的大小为 7810。有人能解释一下吗?我想IP数据包可能有一些对齐限制,但我没有发现。
networking - 服务器无法接收大小大于 1500 字节的 TCP 数据包
有一台服务器无法接收大于 1500 字节的 TCP 数据包,
但该服务器可以发送大于 1500 的 TCP 数据包。
我还尝试在此服务器中捕获数据包以供 WireShark 分析。
但是,WireShark 无法在此服务器中正常捕获数据包。
(例如某些接收到的数据包不会被 WireShark 捕获)
有人有想法吗?非常感谢。
服务器信息。
操作系统:Windows 2008;
MTU:1500。
==================================================== =
让我更清楚地描述这个问题。
我有一个客户端/服务器程序,它在 2 个服务器之间创建 TCP 连接,
情况如下
Server_A ---- Server_B
---> pkt <1500 Byte cannot receive
---> pkt >1500 Byte can receive
<-- - pkt <1500 Byte 可以接收
<--- pkt >1500 Byte 可以接收
该程序在其他服务器上运行良好,仅在server_B异常。
有人有这种经验吗?
linux - 在 Linux 或 Windows 中更改 MTU 无效
我正在调查在寡妇上运行的软件(客户端)的问题,该软件(客户端)将数据上传到在 Linux 上运行的控制器(服务器)。软件一次上传1024
字节,并等待应用层ACK
(send and wait
)。但是,一些客户在通过调制解调器上传文件时遇到了一些问题,因为TCP packets
会出现碎片。我试图在没有调制解调器的情况下重现相同的行为。我尝试MTU
使用以下方法将控制器的设置为 500:
但这并没有强制数据包碎片化(在wireshark中观察到)。当我MTU
使用设置 in windows时也会发生同样的情况
我很确定我选择了正确的接口。知道为什么更改 MTU 没有效果吗?
编辑:如果我在 Windows 上运行 MTU 发现,我会得到:
但是控制器的 ifconfig 显示 MTU 为 576!
sockets - 增加了 MTU 但仍然无法发送大的 UDP 数据包
关于我首先要在这里实现的目标的一些信息。我正在使用德州仪器 (TI) 板 EVM6678LE,我想做的是增加板和我的 PC 之间的 UDP 传输速率。
我已通过 netsh>interface>ipv4 将 PC 上的 MTU 增加到 15,000。但是当我从我的 PC 上 ping 电路板时,我只能 ping 到“ping 192.168.2.100 -l 10194”,如果我 ping 195 字节以上,我会收到一个请求超时。这是我电脑的限制还是什么?
有谁知道这可能是什么原因?任何意见或建议都将受到欢迎。作为提高传输速率的唯一方法,我可以考虑增加每个数据包的大小,从而减少开销。在 10k 时,我的速率约为 9.1MB/s,我正试图达到 25MB/s。
谢谢!
c - 使用 Socket 选项的路径 MTU 发现 - IP_MTU & IP_MTU_DISCOVER
我正在Linux中对路径MTU发现进行一些实验-TCP连接,客户端和服务器配置了不同的MTU。(分别为MTU 1500和1000)。
在服务器和客户端之间的 TCP_CONNECT 之后,我使用以下命令观察客户端中配置的 MTU,如下所示。
我相信 getsocketopt 返回“路径 MTU”而不是客户端的 MTU。
但我收到 MTU - 1500(客户端 MTU)而不是路径 MTU:1000。
请给出一些想法以使用 getsockopt 获取 PATH MTU。非常感谢示例。
提前致谢。
linux - 如何查找 UDP 套接字的 MTU 值
我正在研究 UDP 套接字编程,如果请求的数据大于 MTU 值,我必须停止应用程序中的传输。
为了实现这一点,我必须读取 MTU 值,但我不知道在 UDP 套接字的情况下如何获取 MTU 值(可能是通过使用 getsockopt())。
有什么方法可以通过 UDP 套接字找到 MTU 值?
networking - MTU和链路带宽的区别
链路 MTU 最大传输单元和链路带宽有什么区别?MTU 是指链路可以发送的数据包的最大大小。链路带宽是指链路可以发送的最大比特数。他们不是同一件事吗