[英]Enabling newreno in linux kernel
有人可以告诉我在Linux内核中启用newReno的指示。 开源代码可在任何地方使用吗? 我可以在线获得一些cpp代码,但是必须重写整个程序才能在Linux内核中使用它。
从2.6.13开始,Linux内核支持TCP堆栈的插件,并可以根据系统所连接的对象在算法之间进行切换。 您的是3.8 ,显然它支持多种算法,其中一些如下
高速TCP
RFC 3649中描述了该算法。主要用于具有大带宽和大RTT(例如Gbit / s和100 ms RTT)的连接。
H-TCP
H-TCP是由汉密尔顿研究所(Hamilton Institute)提出的,用于在发生拥塞事件后恢复更快的传输。 它还设计用于具有高带宽和RTT的链接。
TCP塔霍/里诺
这些是用于拥塞控制的经典模型。 它们表现出典型的缓慢启动。 吞吐量逐渐增加,直到保持稳定。 一旦传输遇到拥塞,它就会降低,然后速率再次缓慢上升。 通过添加固定值来增加窗口。 TCP Reno使用乘法减小算法来减小窗口大小。 TCP Reno是使用最广泛的算法。
TCP Westwood +
Westwood +解决了大带宽/ RTT值和随机数据包丢失以及动态变化的网络负载问题。 它通过查看确认包来分析传输状态。 Westwood +是对TCP Reno算法的修改。 这只是模块的粗略概述。
通过将文本写入/proc/
条目,可以轻松完成不同算法之间的切换。
$:~# echo "westwood" > /proc/sys/net/ipv4/tcp_congestion_control
$:~# cat /proc/sys/net/ipv4/tcp_congestion_control
westwood
$:~#
可在此处找到可用模块的列表:
$:~# ls /lib/modules/`uname -r`/kernel/net/ipv4/
ip_gre.ko netfilter tcp_cubic.ko tcp_htcp.ko tcp_lp.ko tcp_vegas.ko
ipip.ko tcp_bic.ko tcp_highspeed.ko tcp_hybla.ko tcp_scalable.ko tcp_veno.ko
$:~#
写入/proc/
,可以跳过tcp_ prefix
。 如果编译自己的内核,则可以在Networking -> Networking options -> TCP: advanced congestion control section
找到模块。
由于某些算法仅影响发送方,因此启用它们时,您可能不会注意到它们的不同。 为了查看更改的行为,您必须创建一个受控的设置,并测量TCP传输的参数。
从该链接上的表ns2使用linux stack ,实际上是一个命名问题。如果使用“ sudo sysctl -w net.ipv4.tcp_congestion_control = reno”设置拥塞控制,则Linux中的“ reno”将实现newreno拥塞控制。
尽管他们的内核是Linux-2.6.22.6,但我认为较新的内核应该继承相同的命名。可以从linux reno实现的源代码中获得更多证据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.