【发布时间】:2010-11-12 14:03:01
【问题描述】:
我想知道是否有任何方法可以调整(在 linux 系统上)给定套接字的 MTU。 (使 IP 层分成比实际设备 MTU 更小的块)。
当我说给定套接字时,我并不是指以编程方式在拥有该套接字的应用程序的代码中,而是在外部,例如通过 sysfs 条目。
如果目前没有办法做到这一点,您对在 linux 内核中的何处进行挂钩/修补以实现这种可能性有任何想法吗?
谢谢。
编辑:我到底为什么要这样做?
我正在做一些Layer3-in-Layer4(例如:通过TCP隧道隧道IP及以上)隧道。与类似 VPN 的解决方案不同,我没有使用虚拟接口来实现这一点。我正在使用 iptables 捕获数据包,以正常方式丢弃它们并将它们写入隧道套接字。
想想大文件传输的情况,所有数据包都被填满到 MTU 大小。当我隧道它们时,我增加了一些开销,导致每个原始数据包产生两个隧道数据包,它不是最佳的。
【问题讨论】:
-
tun/tap 驱动程序比“窃取”流量更容易解决;)
标签: linux networking linux-kernel tcp mtu