我发现了另一个针对Mac OS X[1]的开源TCP实现,它使用ledbat作为拥塞控制,而不是newreno。
因为我不太熟悉这个操作系统,你能建议我如何构建这个源文件并将其加载到系统中吗?
(例如,我想知道是否有一种方法可以像在Linux中那样做到,对于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
谢谢你
最佳答案
Ledbat拥塞控制算法内置于OSX Lion(10.7.x)中,无需单独编译。我不认为没有大量的工作就可以在早期版本的osx中使用ledbat。Ledbat提供“后台”传输,可通过设置以下套接字选项在套接字上进行选择-setsocketopt(sock、sol_socket、o_traffic_class、so_tc_bk、sizeof(int))。似乎套接字的流量类也可能受到IP头中的dscp值的影响。
此外,OSX还具有使用其Network Kernel Extensions (NKE)加载其他网络协议的内核模块的功能,例如,为SCTP协议开发了一个NKE module功能。
关于macos - 如何在Mac OS X中加载不同的拥塞控制算法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8532372/