네트워크 혼잡은 네트워크가 수용할 수 있는 것보다 많은 수의 패킷을 노드가 전송할 때 일반적으로 라우터 버퍼 오버플로우의 형태로 발생합니다. 여러 알고리즘에서 전송 시스템에 대한 제어를 설정하여 트래픽 혼잡을 방지합니다. 지원되는 내장 알고리즘을 설명하는 다음 표에 나와 있는 것과 같이, 이러한 알고리즘은 Oracle Solaris에서 지원되며 OS에 쉽게 추가하거나 직접 플러그인할 수 있습니다.
|
혼잡 제어는 다음과 같은 제어 관련 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