Freebsd

FreeBSD 中不同的擁塞控制算法

  • April 18, 2022

有沒有辦法可以在 FreeBSD 中執行不同的(而不是預設的)TCP 擁塞控制算法?我正在嘗試使用研究論文中發表的一些想法來修改現有的 TCP 擁塞控制算法,以嘗試在無線網路上獲得更好的性能。

您可以通過查看net.inet.tcp.cc.availablesysctl 來了解哪些 TCP 擁塞控制算法可用。預設情況下,只有 newreno 可用,所以它是使用的那個。有幾種不同的算法可用,查找cc_something/boot/kernel.

您可以通過 kldload 載入它們,例如kldload cc_vegas. 完成此操作後,新算法將顯示在net.inet.tcp.cc.available. 您可以通過net.inet.tcp.cc.algorithmsysctl 選擇它。

這是一個完整的例子:

% sysctl -a | grep net.inet.tcp.cc
net.inet.tcp.cc.available: newreno
net.inet.tcp.cc.algorithm: newreno
% sudo kldload cc_vegas
% sysctl -a | grep net.inet.tcp.cc
net.inet.tcp.cc.vegas.beta: 3
net.inet.tcp.cc.vegas.alpha: 1
net.inet.tcp.cc.available: newreno, vegas
net.inet.tcp.cc.algorithm: newreno
% sudo sysctl net.inet.tcp.cc.algorithm=vegas
net.inet.tcp.cc.algorithm: newreno -> vegas
% sudo sysctl net.inet.tcp.cc.algorithm=newreno
net.inet.tcp.cc.algorithm: vegas -> newreno
% 

引用自:https://unix.stackexchange.com/questions/196214