繁体   English   中英

在Linux内核中启用newreno

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM