Macos 如何在Mac OS X中加载不同的拥塞控制算法?

Macos 如何在Mac OS X中加载不同的拥塞控制算法?,macos,tcp,congestion-control,ledbat,Macos,Tcp,Congestion Control,Ledbat,我为Mac OS X找到了另一个开源TCP实现[1],它使用LEDBAT作为拥塞控制,而不是NewReno 因为我不太熟悉这个操作系统,你能建议我如何构建源文件并将其加载到系统中吗 (例如,我想知道是否有一种方法可以像在Linux中那样做到这一点,对于Linux,有一些实现[2]可以轻松构建,然后作为模块插入内核并加载运行时: make; make install modprobe tcp_ledbat sysctl -w net.ipv4.tcp_congestion_control=le

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

  • 因为我不太熟悉这个操作系统,你能建议我如何构建源文件并将其加载到系统中吗
(例如,我想知道是否有一种方法可以像在Linux中那样做到这一点,对于Linux,有一些实现[2]可以轻松构建,然后作为模块插入内核并加载运行时:

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

[1]

[2]


谢谢

LEDBAT拥塞控制算法内置于OSX Lion(10.7.X)中,无需单独编译。我认为在OSX的早期版本中使用LEDBAT不可能不做很多工作。LEDBAT提供“后台”传输,可以通过设置以下套接字选项在套接字上选择-
setsocketopt(sock、SOL\u socket、SO\u TRAFFIC\u CLASS、SO\u TC\u BK、sizeof(int))
。似乎套接字的通信量类别也会受到IP报头中DSCP值的影响


此外,OSX已经有能力使用其内核模块加载其他网络协议的内核模块一段时间,例如,已经为SCTP协议开发了一个内核模块

我看到了对迁移到超级用户的投票,但这似乎更像是IT专业人士所需要的,这表明了ServerFault。另一方面,它是特定于mac的,所以可能是Apple.SE@Dynamiq:如果您有偏好,可以将其标记为版主。旁白:您应该能够在安装了开发工具(您的机器附带了一张DVD)之后构建内容。谢谢您的建议。那我就试着玩xCode吧!从macOS 10.15开始,这些常量不再在系统标题中定义;可能应该是
SO_NET_SERVICE_TYPE
NET_SERVICE_TYPE_BK
,但我找不到任何关于它的文档。