当节点发送的包数超过网络可以容纳的量时,通常会出现路由器缓冲区溢出形式的网络拥塞。各种算法通过对发送系统实施控制来防止通信拥塞。Oracle Solaris 中支持这些算法,并且可以轻松地在操作系统中添加或直接插入这些算法,下表介绍了所支持的内置算法。
|
通过设置以下控制相关的 TCP 属性来启用拥塞控制。尽管下面列出的属性为 TCP 的属性,但由这些属性启用的控制机制也适用于 SCTP 通信。
包含系统中当前运行的算法列表(以逗号分隔)。您可以添加或删除相应算法以仅启用要使用的那些算法。此属性可以有多个值。因此,必须使用 += 限定符或 -= 限定符,具体取决于您要做出的更改。
当应用程序未在套接字选项中显式指定算法时,缺省情况下使用该算法。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
以下示例演示您可能实施拥塞控制的方式。在此示例中,将 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