3

我为 Mac OS X [1]找到了一个替代的开源 TCP 实现,它使用 LEDBAT 作为拥塞控制,而不是 NewReno。

  • 由于我对该操作系统不太熟悉,您能否建议我如何构建该源文件并将其加载到系统中?

(例如,我想知道是否有一种方法可以像在 Linux 中那样,有一些实现[2]可以很容易地构建,然后作为模块插入内核并加载运行时:

make; make install
modprobe tcp_ledbat
sysctl -w net.ipv4.tcp_congestion_control=ledbat

)

[1] http://opensource.apple.com/source/xnu/xnu-1699.22.81/bsd/netinet/tcp_ledbat.c

[2] http://perso.telecom-paristech.fr/~valenti/pmwiki/pmwiki.php?n=Main.LEDBAT#howtokernel

谢谢

4

1 回答 1

3

LEDBAT拥塞控制算法内置于OSX Lion(10.7.X)中,无需单独编译。我认为没有大量工作就不可能在早期版本的 OSX 中使用 LEDBAT。LEDBAT 提供“后台”传输,可以通过设置以下套接字选项在套接字上选择 - setsocketopt(sock, SOL_SOCKET, SO_TRAFFIC_CLASS, SO_TC_BK, sizeof(int))。似乎套接字的流量类别可能会受到 IP 标头中的 DSCP 值的影响。

此外,OSX 已经有一段时间可以使用其网络内核扩展 (NKE)为其他网络协议加载内核模块- 例如,有一个为 SCTP 协议开发的NKE 模块。

于 2012-04-05T10:08:20.737 回答