Oracle® Solaris 11.2의 TCP/IP 네트워크, IPMP 및 IP 터널 관리

인쇄 보기 종료

업데이트 날짜: 2014년 7월
 
 

트래픽 혼잡 제어 구현

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

알고리즘
Oracle Solaris 이름
설명
NewReno
newreno
Oracle Solaris의 기본 알고리즘입니다. 이 제어 방식에는 발신자의 혼잡 윈도우, 느린 시작 및 혼잡 회피가 포함됩니다.
HighSpeed
highspeed
고속 네트워크를 위한 가장 잘 알려지고 가장 단순한 NewReno 수정 버전 중 하나입니다.
CUBIC
cubic
Linux 2.6에서 현재 기본 알고리즘입니다. 혼잡 회피 위상을 선형 윈도우 증가에서 3차 함수로 변경합니다.
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