在 Oracle® Solaris 11.2 中管理 TCP/IP 网络、IPMP 和 IP 隧道

退出打印视图

更新时间: 2014 年 7 月
 
 

实施通信拥塞控制

当节点发送的包数超过网络可以容纳的量时,通常会出现路由器缓冲区溢出形式的网络拥塞。各种算法通过对发送系统实施控制来防止通信拥塞。Oracle Solaris 中支持这些算法,并且可以轻松地在操作系统中添加或直接插入这些算法,下表介绍了所支持的内置算法。

算法
Oracle Solaris 名称
说明
NewReno
newreno
Oracle Solaris 中的缺省算法。此控制机制包括发送者的拥塞窗口、慢速启动和拥塞避免。
HighSpeed
highspeed
针对高速网络的 NewReno 的最广为人知和最简单的修改版之一。
CUBIC
cubic
Linux 2.6 中当前的缺省算法。将拥塞避免阶段从线性窗口增加更改为 cubic 函数。
Vegas
vegas
基于延迟的经典算法,该算法尝试预测拥塞而不会引起实际包损失。

通过设置以下控制相关的 TCP 属性来启用拥塞控制。尽管下面列出的属性为 TCP 的属性,但由这些属性启用的控制机制也适用于 SCTP 通信。

cong_enabled

包含系统中当前运行的算法列表(以逗号分隔)。您可以添加或删除相应算法以仅启用要使用的那些算法。此属性可以有多个值。因此,必须使用 += 限定符或 -= 限定符,具体取决于您要做出的更改。

cong_default

当应用程序未在套接字选项中显式指定算法时,缺省情况下使用该算法。cong_default 属性的值同时适用于全局和非全局区域。

以下示例演示如何将拥塞控制算法添加到协议中:

# ipadm set-prop -p cong_enabled+=algorithm tcp

按照以下方式删除算法:

# ipadm set-prop -p cong_enabled-=algorithm tcp

按照以下方式替换缺省算法:

# ipadm set-prop -p cong_default=algorithm tcp

注 -  添加或删除算法时不遵循任何序列规则。您可以先删除属性的算法,然后再将其他算法添加到该属性。但是,cong_default 属性必须始终具有已定义的算法。

以下示例演示您可能实施拥塞控制的方式。在此示例中,将 TCP 协议的缺省算法从 newreno 更改为 cubic。然后,从已启用的算法列表中删除 vegas 算法。

# ipadm show-prop -p extra_priv_ports tcp
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
tcp   extra_priv_ports      rw   2049,4045    --           2049,4045    1-65535

# ipadm show-prop -p cong_default,cong_enabled tcp
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
tcp   cong_default          rw   newreno      --           newreno      newreno,cubic,
                                                                        highspeed,vegas
tcp   cong_enabled          rw   newreno,cubic, newreno,cubic, newreno  newreno,cubic,
                                 highspeed,   highspeed,                highspeed,vegas
                                 vegas        vegas

# ipadm set-prop -p cong_enabled-=vegas tcp
# ipadm set-prop -p cong_default=cubic tcp

# ipadm show-prop -p cong_default,cong_enabled tcp
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
tcp   cong_default          rw   cubic        cubic        newreno      newreno,cubic,
                                                                        highspeed
tcp   cong_enabled          rw   newreno,cubic, newreno,cubic, newreno  newreno,cubic,
                                 highspeed    highspeed                 highspeed,vegas