问题标签 [gso]

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 回答
2319 浏览

algorithm - 萤火虫群优化(GSO)算法实现

是否有任何具有某种萤火虫群优化(GSO)算法实现的开源库?我想根据描述http://www.springerlink.com/content/y065470472612847来实现它。有什么建议么?

0 投票
2 回答
6259 浏览

java - 当标识符名称中有空格时如何使用 GSON 解析

当文件看起来像这样时如何使用 GSON 解析

我知道在名称之间没有空格时进行解析,我创建了类似的类

但是当标识符内部有空间时如何解析?在 Person 类中要改变什么?(我无法更改文件格式)。

0 投票
0 回答
198 浏览

c - IPv4 数据包的附加标头可以用 GSO 分段吗?

我在数据包分割方面遇到了麻烦。我已经从许多有关 GSO 的资料中阅读过,这是一种用于分割大小大于以太网 MTU (1500 B) 的数据包的通用方法。但是,对于我心中的疑问,我还没有找到答案。

如果我们在 L2 和 L3 层之间添加一组新的字节(例如名为“NH”的新标头),内核必须能够通过 NH 并将 sk_buff 指针调整到 L3 的开头以卸载数据包根据 L3 协议类型的“策略”(例如 IPv4 分片)。我的想法是修改skb_network_protocol()函数。如果我没记错的话,这个函数使skb_mac_gso_segment()能够为不同类型的 L3 协议正确调用 GSO 函数。但是,我无法正确分割我的数据包。

我有一个通过网络转发数据包的内核模块(OVS,Open vSwitch)。在我一直在运行的测试中(h1 --ping-- h2),主机生成大型 ICMP 数据包,然后发送小于或等于 MTU 大小的数据包。这些数据包由附加新标头 NH 的第一个交换机接收,因此如果数据包有 1500B,则它变为 1500B + NH 长度。这就是问题所在,交换机已经从主机收到了一个分段的数据包,并且交换机在数据包中添加了更多字节(VLAN 的那种)。

因此,起初我尝试 ping 大数据包,但没有成功。在 OVS 中,在调用dev_queue_xmit()之前,可以通过调用skb_gso_segment()对数据包进行分段。但是,数据包需要通过netif_needs_gso()检查的条件。但我不确定是否必须使用skb_gso_segment()来正确分割数据包。

我还注意到,对于needs_gso_segment()函数为真,skb_shinfo(skb)->gso_size必须为真。但是,对于所有接收到的数据包,gso_size 的值始终为零。因此,我通过将随机值归因于 gso_size(例如 1448B)进行了测试。现在,在我的测试中,我能够从 h1 ping 到 h2,但是前 2 个数据包丢失了。在另一项测试中,TCP 的性能极差。从那以后,我一直收到内核警告:“ [ 5212.694418] [c1642e50] ? skb_warn_bad_offload+0xd0/0xd8

对于小数据包(< MTU),我没有遇到任何问题,并且 ping 工作正常。TCP 工作正常,但对于小窗口大小。

有人知道发生了什么吗?当我收到大数据包时,我应该总是使用 GSO 吗?是否可以对分段的 IPv4 数据包进行分段?

由于新的标头位于 L2 和 L3 之间,我猜 IPv4 数据包由于附加标头而扩大,类似于 VLAN 发生的情况。VLAN 如何处理分段问题?

提前致谢,

0 投票
2 回答
902 浏览

algorithm - 粒子/遗传群优化算法中的粒子(代码明智)是什么?

编辑嗨,我正在尝试实现粒子(或遗传)群优化。但是,我已经陷入了第一步……

我对如何初始化粒子以及这些粒子(就代码而言)是什么感到困惑。

我找到了关于算法(单独)和实现的各种信息,但没有找到我想要的信息......

谁能解释一下,好吗?

谢谢。

安德里亚。