CoS WRED 드롭 프로파일 이해
대기열에 있는 패킷 수가 출력 대기열을 비우는 디바이스의 능력보다 큰 경우, 대기열에는 혼잡을 완화하기 위해 어떤 패킷을 삭제할지 결정하는 방법이 필요합니다. WRED(Weighted Random Early Detection) 드롭 프로필은 출력 대기열이 채워질 때 서로 다른 PLP(Packet Loss Probabilities)의 패킷 드롭 확률을 정의합니다. 혼잡 기간 동안 출력 대기열이 채워지면 디바이스는 출력 대기열이 덜 혼잡해질 때까지 드롭 프로필에 의해 결정된 대로 수신 패킷을 드롭합니다.
드롭 확률에 따라 드롭 프로필은 버퍼가 가득 차기 훨씬 전에 많은 패킷을 드롭할 수도 있고, 버퍼가 거의 가득 차더라도 몇 개의 패킷만 드롭할 수 있습니다.
드롭 프로필은 서비스 등급(CoS) 구성 계층의 드롭 프로필 섹션에서 구성합니다. 대기열 스케줄러 구성에서 드롭 프로필 맵을 사용하여 드롭 프로필을 적용합니다. 각 대기열 스케줄러의 경우, 속성(낮음, 중간-높음, 높음)을 loss-priority 사용하여 각 PLP에 대해 별도의 드롭 프로필을 구성할 수 있습니다. 이를 통해 혼잡 기간 동안 서로 다른 PLP의 트래픽을 서로 다른 방식으로 처리할 수 있습니다.
무손실 트래픽(드롭 속성을 가진 포워딩 클래스에 속하는 트래픽)에는 드롭 프로필을 no-loss 적용하지 마십시오. 무손실 트래픽은 우선순위 기반 플로우 제어(PFC)를 사용하여 혼잡을 제어합니다.
드롭 프로필을 지원하는 디바이스의 다중 대상 대기열에는 적용할 수 없습니다.
드롭 프로파일 매개 변수
드롭 프로필은 쌍으로 작동하는 두 개의 값을 지정합니다.
채우기 수준—대기열 가득 찬 값으로, 대기열에 할당된 총 메모리 양과 관련하여 패킷을 저장하는 데 사용되는 메모리의 백분율을 나타냅니다.
Drop probability—개별 패킷이 삭제될 가능성에 해당하는 백분율 값입니다.
QFX10000을 제외한 스위치에서 드롭 프로파일 정의
각 드롭 프로파일에서 두 개의 대기열 채우기 수준과 두 개의 드롭 확률을 설정합니다. 첫 번째 채우기 수준과 첫 번째 드롭 확률은 하나의 값 쌍을 만들고 두 번째 채우기 수준과 두 번째 드롭 확률은 두 번째 값 쌍을 만듭니다.
첫 번째 채우기 수준 값은 패킷이 드롭되기 시작하는 대기열 꽉 찬 비율을 지정하며, 드롭 시작점이라고 합니다. 대기열이 이 가득 차 있는 수준에 도달할 때까지 패킷이 손실되지 않습니다. 두 번째 채우기 수준 값은 드롭 엔드포인트로 알려진 모든 패킷이 드롭되는 대기열 꽉 찬 비율을 지정합니다.
첫 번째 드롭 확률 값은 항상 0 (영)입니다. 이는 드롭 시작점과 쌍을 이루며, 대기열 가득 채움 수준이 첫 번째 채우기 수준에 도달할 때까지 패킷이 드롭되지 않도록 지정합니다. 대기열 전체가 드롭 시작점을 초과하면 모든 패킷이 드롭될 때 대기열이 두 번째 채우기 수준을 초과할 때까지 패킷이 드롭되기 시작합니다. 최대 드롭 속도로 알려진 두 번째 드롭 확률 값은 대기열 가득 차기가 드롭 엔드포인트에 도달할 때 패킷이 드롭될 가능성을 지정합니다. 드롭 시작점에서 드롭 종료점으로 대기열이 채워지면 그림 1과 같이 패킷이 부드러운 선형 패턴(보간 그래프라고 함)으로 드롭됩니다. 드롭 엔드 포인트 이후에는 모든 패킷이 드롭됩니다.
그림 1의 굵은 선은 샘플 WRED 프로파일에 대한 패킷 드롭 특성을 나타냅니다. 드롭 시작 지점에서 대기열은 30%의 채우기 수준에 도달합니다. 드롭 엔드포인트에서 대기열 채우기 수준은 50%에 도달하고 최대 드롭 속도는 80%입니다.
대기열 채우기 수준이 드롭 시작 지점인 30%에 도달할 때까지 패킷이 드롭되지 않습니다. 대기열이 30% 채우기 수준에 도달하면 패킷이 손실되기 시작합니다. 대기열이 채워질수록 손실된 패킷의 비율이 선형적으로 증가합니다. 대기열이 50%의 드롭 엔드포인트까지 채워지면 패킷 드롭 속도는 최대 드롭 속도인 80%까지 증가합니다. 대기열 채우기 수준이 드롭 엔드포인트인 50%를 초과하면 대기열 채우기 수준이 50% 미만으로 떨어질 때까지 모든 패킷이 드롭됩니다.
QFX10000 스위치에서 드롭 프로파일 정의
각 대기열 채우기 수준은 드롭 확률과 쌍을 이룹니다. 대기열이 다른 수준으로 채워짐에 따라 드롭 프로필에 구성된 채우기 수준에 도달할 때마다 대기열은 채우기 수준과 쌍을 이루는 드롭 확률을 채우기 수준을 초과하는 대기열의 트래픽에 적용합니다. 최대 32쌍의 채우기 수준과 드롭 확률을 구성하여 최대 32개의 차별점을 가진 맞춤형 패킷 드롭 확률 곡선을 생성할 수 있습니다.
패킷은 첫 번째로 구성된 대기열 채우기 수준에 도달할 때까지 손실되지 않습니다. 대기열이 첫 번째 채우기 수준에 도달하면 패킷은 첫 번째 채우기 수준과 쌍을 이루는 구성된 삭제 확률로 드롭되기 시작합니다. 대기열이 두 번째 채우기 수준에 도달하면 패킷은 두 번째 채우기 수준과 쌍을 이루는 구성된 드롭 확률로 드롭되기 시작합니다. 이 프로세스는 드롭 프로파일에서 구성한 채우기 수준/드롭 확률 쌍의 수에 대해 계속됩니다.
드롭 프로필은 세그먼트가 아닌 보간됩니다. 보간된 드롭 프로파일은 구성된 각 채우기 수준 사이의 곡선을 따라 드롭 확률을 점진적으로 증가시킵니다. 대기열이 다음 채우기 수준에 도달하면 드롭 확률은 해당 채우기 수준과 쌍을 이루는 드롭 확률에 도달합니다. 세그먼트화된 낙하 프로파일은 한 채우기 수준 및 낙하 확률 설정에서 단계적 방식으로 다른 수준으로 "점프"합니다. 트래픽 드롭 확률은 다음 채우기 수준에 도달할 때까지 대기열이 채워짐에 따라 변경되지 않습니다.
보간의 예로는 세 개의 채우기 수준/드롭 확률 쌍이 있는 드롭 프로파일이 있습니다.
25%의 대기열 채우기 수준과 30%의 드롭 확률
50%의 대기열 채우기 수준과 60%의 드롭 확률
100% 드롭 확률과 쌍을 이루는 75% 대기열 채우기 수준(75% 대기열 채우기 수준을 초과하는 모든 패킷은 드롭됨)
대기열은 채우기 수준이 25%에 도달할 때까지 패킷을 삭제하지 않습니다. 혼잡 기간 동안 대기열이 25% 이상 채워지면 대기열은 채우기 수준보다 높은 패킷의 30% 비율로 패킷을 삭제하기 시작합니다.
그러나 대기열이 계속 채워짐에 따라 30%의 드롭 확률로 패킷이 계속 드롭되지는 않습니다. 대신, 대기열이 50% 가득 차 수준으로 채워짐에 따라 드롭 확률이 점차 증가합니다. 대기열이 50% 채우기 수준에 도달하면 드롭 확률이 채우기 수준에 대해 구성된 드롭 확률 쌍인 60%로 증가합니다.
대기열이 계속 채워짐에 따라 드롭 확률은 60%로 유지되지 않고 대기열이 채워짐에 따라 계속 증가합니다. 대기열이 75% 가득 찬 최종 채우기 수준에 도달하면 드롭 확률이 100%로 상승하고 75% 채우기 수준을 초과하는 모든 패킷이 드롭됩니다.
기본 드롭 프로파일
드롭 프로필을 구성하지 않고 대기열 스케줄러에 적용하지 않으면 디바이스는 손실이 있는 트래픽 클래스에 대한 기본 드롭 프로필을 사용합니다. 기본 드롭 프로파일에서 채우기 수준이 0%이면 드롭 확률은 0%입니다. 채우기 수준이 100%이면 드롭 확률은 100%입니다. 혼잡 기간 동안 패킷이 대기열에 도착하자마자 기본 프로필이 패킷을 삭제하기 시작할 수 있습니다.
패킷 드롭 방법
패킷이 대기열의 헤드에 도달하면 디바이스는 0에서 100 사이의 난수를 계산합니다. 디바이스는 대기열의 현재 채우기 수준을 사용하여 드롭 프로파일에 대해 난수를 표시합니다. 난수가 그래프 선 위에 있으면 대기열이 패킷을 송신 인터페이스로 전송합니다. 숫자가 그래프 선 아래로 떨어지면 디바이스는 패킷을 삭제합니다.
QFX10000을 제외한 스위치의 패킷 드롭 예
드롭 시작점에서 드롭 종료점까지 선형 드롭 패턴을 생성하기 위해 드롭 확률은 최소 대기열 채우기 수준에서 최대 대기열 채우기 수준까지 8개 섹션 또는 단계로 구성된 선형 근사치를 사용하여 도출됩니다. 채우기 수준은 최소 채우기 수준에서 시작하여 최대 채우기 수준에서 끝나는 8개의 섹션으로 균등하게 나뉩니다. 대기열이 채워질수록 손실된 패킷의 비율이 증가합니다. 손실된 패킷의 백분율은 최대 손실 속도를 기반으로 합니다.
예를 들어, 기본 드롭 프로필(최대 드롭률 100% 지정)은 8섹션 선형 드롭 패턴의 각 섹션 또는 단계에서 다음과 같은 드롭 확률을 갖습니다.
첫 번째 섹션—최소 드롭 확률은 최대 드롭 속도의 6.25%입니다. 최대 드롭 확률은 최대 드롭률의 12.5%입니다.
두 번째 섹션 - 최소 드롭 확률은 최대 드롭 속도의 18.75%입니다. 최대 드롭 확률은 최대 드롭 속도의 25%입니다.
세 번째 섹션—최소 드롭 확률은 최대 드롭 속도의 30.25%입니다. 최대 드롭 확률은 최대 드롭 속도의 37.5%입니다.
네 번째 섹션 - 최소 드롭 확률은 최대 드롭 속도의 43.75%입니다. 최대 드롭 확률은 최대 드롭 속도의 50%입니다.
다섯 번째 섹션—최소 드롭 확률은 최대 드롭 속도의 56.25%입니다. 최대 드롭 확률은 최대 드롭 속도의 62%입니다.
여섯 번째 섹션—최소 드롭 확률은 최대 드롭 속도의 68.75%입니다. 최대 드롭 확률은 최대 드롭 속도의 75.5%입니다.
일곱 번째 섹션 - 최소 드롭 확률은 최대 드롭 속도의 81.25%입니다. 최대 드롭 확률은 최대 드롭 속도의 87.5%입니다.
여덟 번째 섹션—최소 드롭 확률은 최대 드롭 속도의 92.75%입니다. 최대 드롭 확률은 최대 드롭 속도의 100%입니다.
패킷 드롭은 포트에 혼잡이 있는지 여부와 관계없이 드롭 시작 지점에서 시작되기 때문에 혼잡이 없어도 패킷이 드롭됩니다. 기본 드롭 프로필 예는 최악의 시나리오를 나타내는데, 드롭 시작 지점 채우기 수준이 0%이기 때문에 대기열이 패킷을 수신하기 시작할 때 패킷 드롭이 시작됩니다.
0%보다 큰 채우기 수준에서 드롭 시작점을 구성하여 패킷이 드롭되기 시작하는 시점을 지정할 수 있습니다. 예를 들어, 드롭 시작점이 30%인 드롭 프로필을 구성하는 경우 대기열이 30%가 채워질 때까지 패킷이 드롭되지 않습니다. 네트워크 트래픽 조건에 적합한 드롭 프로필을 구성하는 것이 좋습니다.
최소 드롭 속도(항상 0)와 최대 드롭 속도 사이의 격차가 작을수록 선형 드롭 패턴의 각 섹션(단계)에서 최소 드롭 확률과 최대 드롭 확률 사이의 격차가 작아집니다. 최소 드롭 속도(0%)와 최대 드롭 속도(100%) 사이의 최대 격차가 있는 기본 드롭 프로필은 각 단계에서 최소 드롭 확률과 최대 드롭 확률 사이의 격차가 가장 높습니다. 드롭 프로필에 대해 더 낮은 최대 드롭 속도를 구성하면 최소 드롭 확률과 최대 드롭 확률 사이의 격차가 줄어듭니다.
드롭 프로파일 맵
드롭 프로파일 맵은 스케줄러 구성의 일부입니다. 드롭 프로파일 맵은 드롭 프로파일을 패킷 손실 우선순위에 매핑합니다. 스케줄러에서 드롭 프로필 맵을 지정하면 드롭 프로필이 스케줄러 맵의 스케줄러에 매핑되는 포워딩 클래스(대기열)와 연결됩니다.
CoS 구성 계층의 classifier 섹션에서 대기열의 손실 우선 순위를 구성하고 손실 우선 순위는 수신 인터페이스에서 포워딩 클래스에 할당된 트래픽에 적용됩니다.
각 스케줄러에는 여러 드롭 프로파일 맵이 있을 수 있습니다.
혼잡 방지
출력 대기열에서 드롭 프로필을 구성하면 혼잡이 포트의 다른 대기열에 미치는 영향을 제어할 수 있습니다. 드롭 프로필을 구성하고 출력 대기열에 매핑하지 않으면 디바이스는 손실 트래픽을 전달하는 대기열에서 기본 드롭 프로필을 사용합니다.
예를 들어, 수신 포트가 트래픽을 둘 이상의 송신 포트로 전달하고 송신 포트 중 적어도 하나가 혼잡을 경험하면 수신 포트 혼잡이 발생할 수 있습니다. 수신 포트 혼잡(수신 버퍼가 리소스 할당 초과)으로 인해 송신 포트가 아닌 수신 포트에서 프레임이 손실될 수 있습니다. 수신 포트 프레임 드롭은 혼잡한 송신 포트뿐만 아니라 혼잡한 수신 포트가 트래픽을 전달하는 모든 송신 포트에 영향을 미칩니다.
및 no-loss 포워딩 클래스에 대한 fcoe 드롭 프로필을 구성하지 마십시오. FCoE 및 기타 무손실 트래픽 대기열에는 무손실 동작(패킷 드롭 속성으로 no-loss 구성된 트래픽 대기열)이 필요합니다. 우선순위 기반 플로우 제어(PFC)를 사용하여 무손실 우선순위에서 프레임 손실을 방지합니다.
WRED 드롭 프로파일 구성 및 출력 대기열에 적용
WRED 패킷 드롭 프로파일을 구성하고 이를 출력 대기열에 적용하려면 다음을 수행합니다.
드롭 프로필을 구성합니다.
QFX10000을 제외한 스위치에서는 문을
set class-of-service drop-profiles profile-name interpolate fill-level drop-start-point fill-level drop-end-point drop-probability 0 drop-probability percentage사용합니다.QFX10000 스위치에서는 문을
set class-of-service drop-profiles profile-name interpolate fill-level level1 level2 ... level32 drop-probability probability1 probability2 ... probability32사용합니다. 적게는 2개의 채우기 레벨/드롭 확률 쌍을 지정하거나 최대 32개 쌍을 지정할 수 있습니다.
문을
set class-of-service schedulers scheduler-name drop-profile-map loss-priority (low | medium-high | high) protocol any drop-profile profile-name사용하여 드롭 프로필을 대기열 스케줄러에 매핑합니다. 드롭 프로필의 이름은 1단계에서 구성된 WRED 프로필의 이름입니다.2단계에서 삭제 프로필과 연결하는 스케줄러를 문을 사용하여 출력 대기열에 매핑합니다.
set class-of-service scheduler-maps map-name forwarding-class forwarding-class-name scheduler scheduler-name포워딩 클래스는 출력 대기열을 식별합니다. 포워딩 클래스는 기본적으로 출력 대기열에 매핑되며, 명시적인 사용자 구성에 의해 다른 대기열에 다시 매핑될 수 있습니다. 스케줄러 이름은 2단계에서 구성된 스케줄러입니다.QFX10000을 제외한 스위치에서는 문을
set class-of-service traffic-control-profiles tcp-name scheduler-map map-name사용하여 스케줄러 맵을 트래픽 제어 프로필과 연결합니다. 스케줄러 맵 이름은 3단계에서 구성한 이름입니다.QFX10000을 제외한 스위치에서는 문을
set class-of-service interfaces interface-name forwarding-class-set forwarding-class-set-name output-traffic-control-profile tcp-name사용하여 트래픽 제어 프로필을 인터페이스와 연결합니다. 출력 트래픽 제어 프로필 이름은 4단계에서 구성된 트래픽 제어 프로필의 이름입니다.인터페이스는 트래픽 제어 프로필의 스케줄러 맵을 사용하여 드롭 프로필(및 기타 속성)을 해당 인터페이스의 출력 대기열(포워딩 클래스)에 적용합니다. 서로 다른 트래픽 제어 프로필을 사용하여 서로 다른 스케줄러를 서로 다른 인터페이스에 매핑할 수 있기 때문에 서로 다른 인터페이스의 동일한 대기열 수는 서로 다른 방식으로 트래픽을 처리할 수 있습니다.
QFX10000 스위치에서 문을 사용하여
set class-of-service interfaces interface-name scheduler-map scheduler-map-name스케줄러 맵을 인터페이스와 연결합니다.인터페이스는 스케줄러 맵을 사용하여 드롭 프로필(및 기타 속성)을 해당 인터페이스의 포워딩 클래스에 매핑된 출력 대기열에 적용합니다. 서로 다른 인터페이스에서 서로 다른 스케줄러 맵을 사용할 수 있기 때문에 서로 다른 인터페이스에서 동일한 대기열 번호를 사용해도 서로 다른 방식으로 트래픽을 처리할 수 있습니다.
명시적 혼잡 알림 활성화 대기열의 드롭 프로파일
ECN(Explicit Congestion Notification)에 대해 활성화하는 대기열에서 WRED 드롭 프로필을 구성해야 합니다. ECN 지원 대기열에서 드롭 프로필은 대기열이 패킷을 혼잡 경험 중인 것으로 표시해야 하는 시점의 임계값을 설정합니다( CoS ECN(Explicit Congestion Notification) 참조). 대기열이 WRED 드롭 프로필의 패킷 드롭 확률이 0(0)보다 큰 수준까지 채워지면 디바이스는 패킷을 혼잡 중인 것으로 표시할 수 있습니다. 디바이스가 패킷을 혼잡 경험으로 표시하는지 여부는 해당 채우기 수준에서 대기열이 감소할 확률과 동일합니다.
ECN 지원 대기열에서 디바이스는 혼잡 기간 동안 ECN 지원 패킷이 아닌 패킷(ECN 코드 비트 00으로 표시된 패킷)이 아닌 패킷 드롭을 제어하기 위해 드롭 프로필을 사용하지 않습니다. 대신 디바이스는 꼬리 드롭 알고리즘을 사용하여 혼잡 기간 동안 ECN이 지원되지 않는 패킷을 드롭합니다. 대기열이 최대 충실 수준으로 채워지면 테일 드롭은 대기열에 더 많은 패킷을 버퍼링할 공간이 생길 때까지 이후에 도착하는 모든 패킷을 삭제합니다. ECN을 사용할 수 없는 모든 패킷은 동일한 방식으로 처리됩니다.
WRED 드롭 프로필을 비-ECT 트래픽에 적용하려면 멀티필드(MF) 분류자를 구성하여 비-ECT 트래픽을 ECN이 활성화되지 않은 다른 출력 대기열에 할당한 다음 WRED 드롭 프로필을 해당 대기열에 적용합니다.