7

这种链路聚合甚至可能吗?

在 Windows 机器上,有几个第 3 方应用程序利用绑定和负载平衡多个网络接口来增加吞吐量,例如Connectify Dispatcher。是否有可能为 OSX 开发这样的应用程序?是否已经有任何第三方软件可以在 OSX 上执行此操作?我能找到的最接近的东西是IPNetRouterX,我无法使用它来绑定 USB 和 WiFi 网络接口。

我还在 OSX 的终端中尝试了以下行:

sudo networksetup -createBond bond0 en1 en3

...其中 en1 是我的 WiFi 接口,而 en3 是我的 USB 网络接口,这只会导致:

** Error: The parameters were not valid.

可能需要某种第 2 层“魔术粘合剂”才能以任何方式实现这一点……但主要是作为一名 Windows 程序员,我不确定 Apple 是否会喜欢允许这种级别的编程访问,考虑到他们喜欢的专有性......

知道可以在这里做什么吗?

4

3 回答 3

11

有一些选项可以networksetup告诉您操作系统是否可以绑定特定端口。为此,您需要给它一个“硬件端口”,您可以使用以下命令找到它:

networksetup -listallhardwareports

反过来,这些中的每一个都可以使用

networksetup -isbondsupported <HW Port Name>

绑定网络是使用 networksetup 端口名称设置的,而不是内核接口名称,因此如果您要绑定两个以太网网络,您可以这样做:

networksetup -createBond myBondedNet 'Ethernet 1' 'Ethernet 2'

查询运行 10.9 的 2009 MacPro 上的端口,我发现只有硬件以太网端口对-isbondsupported查询做出“是”响应。

请注意,我不必让端口运行才能-isbondsupported返回 YES,因此在我的情况下,即使当前只有一个以太网连接,我的两个以太网都响应为 YES。

于 2014-01-13T11:49:04.357 回答
0

gaige 感谢您的技术回答,但 RectangleEquals 不是在询问如何通过终端进行链接聚合,而是

IF Link Aggregation 可用于 USB、WIFI 或其他类型的互联网连接。

答案是不。

苹果没有创建链接聚合。这是 Unix 的一个独立特性。因此,Apple 对如何改进它的想法为零——它也不想花费资源来解决它,因为这不是一个足够普遍的需求。即使它想为您提供它不会在常规版本的 OS X 中提供的功能,但会在服务器版本中提供并收取费用。

并且有些开发人员可以通过编写大量代码来做到这一点 - 因此不存在此类应用程序的免费版本。你可以试试 Connectify Switchboard for OS X。

于 2014-02-21T18:57:40.960 回答
0

我发现实际上没有像样的方法来实现这一点,这要归功于通过单独的接口处理网络的方式。尽管可以使用两个单独的接口连接到同一个远程数据源,但需要内核级编程技能才能使这两个接口协同工作......并且通过每个单独的接口返回的数据包将得到很好的处理不同的是,网络数据包彼此之间会太不同步......所以即使那样,如果你要创建某种魔术桥来处理所有这些情况,并以某种方式使用两个单独的接口来拉同一个同步数据,它最终会(最好的情况下)与仅使用一个网络接口的速度完全相同 - 但可能更慢。几乎零收益的麻烦太多了。

于 2014-03-12T15:36:42.387 回答