- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想知道是否有任何方法可以调整(在 Linux 系统上)给定套接字的 MTU。 (使 IP 层分段成比实际设备 MTU 更小的 block )。
当我说对于给定的套接字时,我并不是指在拥有套接字的应用程序代码中以编程方式,而是在外部,例如通过 sysfs 条目。
如果目前没有办法做到这一点,您是否知道在 linux 内核中的何处 Hook /打补丁以实现这种可能性?
谢谢。
编辑:我到底为什么要这么做?
我正在做一些 Layer3-in-Layer4(例如:通过 TCP 隧道隧道 IP 及以上)隧道。与类似 VPN 的解决方案不同,我没有使用虚拟接口(interface)来实现这一点。我正在使用 iptables 捕获数据包,以正常方式丢弃它们并将它们写入隧道套接字。
考虑一个大文件传输的情况,所有数据包都被填充到 MTU 大小。当我对它们进行隧道传输时,我会添加一些开销,导致每个原始数据包都产生两个隧道数据包,这是欠佳的。
最佳答案
如果创建套接字后在传出数据包上设置了 DF,您可能会幸运地欺骗(注入(inject))ICMP 分段需要的消息返回给自己,直到您最终获得所需的 MTU。相当丑陋,但取决于你有多绝望,它可能是合适的。
例如,您可以使用 iptables 规则生成这些数据包,因此匹配和发送很简单并且在您的应用程序外部。看起来 iptables 的 REJECT 目标没有 reject-with of fragmentation 需要,但添加一个可能不会太棘手。
另一种方法,如果它只是您关心的 TCP 数据包,您可能会幸运地使用套接字选项 TCP_MAXSEG 或 TCPMSS 目标(如果这适合您的问题)。
对于 UDP 或原始数据包,您可以自由地send()
数据包,只要您喜欢!
更新:
基于“我为什么要那样做?”回答,如果未设置 DF 或提高 ICMP“需要分段”并丢弃实际上是正确的解决方案,则似乎分段数据包。
这是一个更“正常”的路由器会做的事情,如果防火墙不吃掉 ICMP 数据包,那么它在所有情况下都会表现正常,而回顾性地改变事情是奇怪行为的秘诀。
iptables clamp mss不过,对于通过此“VPN”的 TCP 来说,这是一个很好的解决方案,尤其是当您似乎已经广泛使用 iptables 时。
关于linux - 在每个套接字的基础上调整 MTU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4165403/
我使用下拉菜单提供一些不同的链接,但我希望这些链接在同一选项卡中打开,而不是在新选项卡中打开。这是我找到的代码,但我对 Javascript 非常缺乏知识 var urlmenu = docume
我对 javascript 不太了解。但我需要一个垂直菜单上的下拉菜单,它是纯 JavaScript,所以我从 W3 复制/粘贴脚本:https://www.w3schools.com/howto/t
我已经坐了 4 个小时,试图让我的导航显示下 zipper 接垂直,但它继续水平显示它们。我无法弄清楚为什么会发生这种情况或如何解决它。 如果有人能告诉我我做错了什么,我将不胜感激。我有一个潜移默化的
我正在尝试创建选项卡式 Accordion 样式下拉菜单。我使用 jQuery 有一段时间了,但无法使事件状态达到 100%。 我很确定这是我搞砸的 JS。 $('.service-button').
对于那些从未访问过 Dropbox 的人,这里是链接 https://www.dropbox.com/ 查看“登录”的下拉菜单链接。我如何创建这样的下 zipper 接? 最佳答案 这是 fiddle
我正在制作一个 Liferay 主题,但我在尝试设计导航菜单的样式时遇到了很多麻烦。我已经为那些没有像这样下拉的人改变了导航链接上的经典主题悬停功能: .aui #navigation .nav li
如果您将鼠标悬停在 li 上,则会出现一个下拉菜单。如果您将指针向下移至悬停时出现的 ul,我希望链接仍然带有下划线,直到您将箭头从 ul 或链接移开。这样你就知道当菜单下拉时你悬停在哪个菜单上。 知
我有一个带有多个下拉菜单的导航栏。因此,当我单击第一个链接时,它会打开下拉菜单,但是当我单击第二个链接时,第一个下拉菜单不会关闭。 (所以如果用户点击第二个链接我想关闭下拉菜单) // main.js
我正在尝试制作一个导航下拉菜单(使用 Bootstrap 3),其中链接文本在同一行上有多个不同的对齐方式。 在下面的代码中,下拉列表 A 中的链接在 HTML 中有空格字符来对齐它们,但是空白被忽略
我希望有人能帮我解决这个 Bootstrap 问题,因为我很困惑。 有人要求我在底部垂直对齐图像和其中包含图像的链接。 我面临的问题是他们还希望链接在链接/图像组合上具有 pull-right,这会杀
我正在构建一个 Rails 应用程序,并希望指向我的类的每个实例的“显示”页面的链接显示在“索引”页面的下拉列表中。我目前正在使用带有 options_from_collection_for_sele
我有以下 Bootstrap3 导航菜单 ( fiddle here )。我想设置“突出显示”项及其子链接与下拉列表 1 和 2 链接不同的链接文本(和悬停)的样式。我还希望能够以不同于 Highli
我对导航栏中的下拉菜单有疑问。对于普通的导航链接(无下拉菜单),我将菜单文本放在 H3 中,但是当我尝试对下 zipper 接执行相同操作时,箭头不在标题旁边,而是在标题下方。我决定用 span 替换
我是一名优秀的程序员,十分优秀!