#教程# 魔改BBR算法的尝试
众所周知,这年头的机器不做一番“优化”,带宽利用率根本竞争不过邻居;
于是机智的MJJ都用上了比默认的cubic/reno更aggressive的TCP拥塞控制,而当中又以BBR和锐速为代表。
作为g粉自然是要选择BBR的,毕竟有google和整个linux社区做后台,长远下去肯定要比闭源又停止支持的锐速走得更远。
那么问题来了:在大中华区特殊的国情下,更顾及公平性的BBR比起锐速带宽竞争力还是有些疲软的。能否通过一些小改动,让BBR变得更有侵略性呢?
能!
闲话少说,先上代码:
初版BBR:
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/plain/net/ipv4/tcp_bbr.c
魔改BBR:
https://gist.github.com/anonymous/ba338038e799eafbba173215153a7f3a/raw/55ff1e45c97b46f12261e07ca07633a9922ad55d/tcp_tsunami.c
编译时系统必须安装4.10以上版本的kernel及对应的linux-header,gcc版本应在4.9以上
以4.10.9为例,需先更换内核,再先后安装:
(http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.9/)
linux-headers-4.10.9-041009_4.10.9-041009.201704080516_all.deb
linux-headers-4.10.9-041009-generic_4.10.9-041009.201704080516_amd64.deb
以下步骤在debian 8及ubuntu 16上测试通过:
apt-get install make gcc-4.9 wget -O ./tcp_tsunami.c https://gist.github.com/anonymous/ba338038e799eafbba173215153a7f3a/raw/55ff1e45c97b46f12261e07ca07633a9922ad55d/tcp_tsunami.c echo "obj-m:=tcp_tsunami.o" > Makefile make -C /lib/modules/$(uname -r)/build M=`pwd` modules CC=/usr/bin/gcc-4.9 install tcp_tsunami.ko /lib/modules/$(uname -r)/kernel depmod -a insmod tcp_tsunami.ko sysctl -w net.ipv4.tcp_congestion_control=tsunami
关键参数:bbr_bw_rtts, bbr_min_rtt_win_sec, bbr_probe_rtt_mode_ms, bbr_cwnd_min_target, bbr_drain_gain
关键数组:bbr_pacing_gain
经过一个月的测试,魔改BBR比起正常版的BBR确实强上不少,最起码以前看y2b 4k断断续续的远东ss现在能流畅播放了
以上版本的BBR不保证普适性,建议自行修改参数测试
参考链接:
1. http://blog.csdn.net/dog250/article/details/52939004
2. http://blog.csdn.net/dog250/article/details/52879298
3. http://blog.csdn.net/dog250/article/details/52972502
4. https://patchwork.ozlabs.org/patch/671069/
作者:Yankee
查看原帖:https://www.hostloc.com/thread-372277-1-1.html