Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

CoS 명시적 혼잡 알림 이해하기

ECN(Explicit Congestion Notification)을 사용하면 TCP/IP 기반 네트워크에서 두 엔드포인트 간의 엔드 투 엔드 혼잡 알림을 사용할 수 있습니다. 두 엔드포인트는 ECN 지원 발신자와 ECN 지원 수신기입니다. ECN은 두 엔드포인트 모두에서 활성화되어야 합니다. 그러나 지원되지 않는 피어의 경우 ECN을 지원하는 SRX 시리즈 방화벽이 지원되지 않는 피어에서 들어오는 패킷을 부트스트랩하고 네트워크 혼잡이 발생할 때 패킷을 표시하여 신호를 보냅니다.

ECN은 패킷을 삭제하지 않고 혼잡이 해소될 때까지 전송 디바이스가 전송 속도를 낮추도록 하여 패킷 손실과 지연을 줄이기 위해 네트워크에 혼잡에 대해 알립니다. RFC 3168 , IP에 ECN(Explicit Congestion Notification) 추가는 ECN을 정의합니다.

ECN은 기본적으로 비활성화되어 있습니다. 다른 트래픽 유형은 서로 다른 혼잡 알림 방법을 사용하기 때문에 일반적으로 최선의 트래픽을 처리하는 대기열에서만 ECN을 활성화합니다. 무손실 트래픽은 우선순위 기반 플로우 제어(PFC)를 사용하고 엄격한 우선 순위 트래픽은 구성된 최대 속도 지점까지 필요한 모든 포트 대역폭을 수신합니다.

대기열 스케줄러 구성에서 ECN을 활성화하고, 스케줄러를 포워딩 클래스(대기열)에 매핑한 다음, 스케줄러를 인터페이스에 적용하여 개별 출력 대기열(포워딩 클래스로 표시됨)에서 ECN을 활성화합니다.

참고:

ECN이 대기열에서 작동하려면 WRED(Weighted Random Early Detection) 패킷 드롭 프로파일도 대기열에 적용해야 합니다.

ECN 작동 방식

ECN이 없으면 디바이스는 TCP/IP 패킷을 삭제하여 네트워크 혼잡에 대응합니다. 손실된 패킷은 네트워크에 정체가 발생하고 있음을 알립니다. IP 네트워크의 디바이스는 패킷 전송 속도를 줄여 혼잡을 해소함으로써 TCP 패킷 드롭에 대응합니다. 그러나, 혼잡 통보 및 관리의 패킷 드롭 방식은 몇 가지 단점이 있다. 예를 들어, 패킷이 삭제되어 재전송되어야 합니다. 또한 버스트 트래픽으로 인해 네트워크가 전송 속도를 너무 많이 감소시켜 대역폭 활용이 비효율적일 수 있습니다.

ECN은 네트워크 혼잡 신호를 보내기 위해 패킷을 삭제하는 대신 패킷을 삭제하지 않고 네트워크 혼잡 신호를 보내기 위해 패킷을 표시합니다. ECN이 작동하려면 두 ECN 지원 엔드포인트 사이의 경로에 있는 모든 디바이스에서 ECN이 활성화되어 있어야 합니다. ECN은 엔드포인트 간에 TCP 연결을 설정하는 동안 협상됩니다.

ECN 지원 디바이스는 대기열에 적용된 WRED 패킷 드롭 프로파일 구성을 기반으로 대기열 혼잡 상태를 결정하므로, 각 ECN 활성화 대기열에는 WRED 드롭 프로파일도 있어야 합니다. WRED 드롭 프로파일의 패킷 드롭 확률이 0보다 큰 수준까지 대기열이 채워지면 디바이스는 패킷을 혼잡을 경험한 것으로 표시합니다. 디바이스가 패킷을 혼잡을 경험하는 것으로 표시하는지 여부는 해당 채우기 수준에서 대기열의 삭제 확률과 동일한 확률입니다.

ECN은 IP 헤더의 차별화된 서비스(DiffServ) 필드에 두 개의 최하위 비트를 표시하여 혼잡이 발생하는지 여부를 전달합니다. DiffServ 필드에서 가장 중요한 6비트에는 DSCP(Differentiated Services Code Point) 비트가 포함됩니다. 두 ECN 비트의 상태는 패킷이 ECN 지원 패킷인지 여부와 혼잡이 발생했는지 여부를 나타냅니다.

ECN 가능 발신자는 패킷을 ECN 가능 패킷으로 표시합니다. 발신자가 ECN을 지원하지 않는 경우 패킷을 ECN을 사용할 수 없는 것으로 표시합니다. ECN 지원 패킷이 디바이스의 송신 대기열에서 혼잡을 경험하는 경우, 디바이스는 패킷을 혼잡을 경험한 것으로 표시합니다. 패킷이 ECN 지원 수신기(대상 엔드포인트)에 도달하면 수신자는 혼잡을 나타내도록 표시된 패킷을 전송하여 발신자(소스 엔드포인트)에게 혼잡 표시기를 에코합니다.

수신기로부터 혼잡 지표를 수신한 후 소스 엔드포인트는 전송 속도를 줄여 혼잡을 완화합니다. 이는 TCP 혼잡 알림 및 관리의 결과와 유사하지만, 네트워크 혼잡 신호를 보내기 위해 패킷을 삭제하는 대신 ECN은 패킷을 표시하고 수신자는 혼잡 알림을 발신자에게 에코합니다. 패킷이 삭제되지 않기 때문에 패킷을 재전송할 필요가 없습니다.

참고:

ECN은 SRX380, SRX300, SRX320, SRX340, SRX345 및 vSRX3.0에서 지원됩니다.

DiffServ 필드의 ECN 비트

DiffServ 필드에 있는 두 개의 ECN 비트는 패킷이 ECN 가능 전송(ECT) 패킷으로 표시되는지를 결정하는 4개의 코드를 제공하며, 이는 전송 프로토콜의 두 엔드포인트가 모두 ECN을 지원하는지, 그리고 혼잡 경험(CE)이 있는지 여부를 표 식 1 과 같이 제공합니다.

표 1: ECN 비트 코드

ECN 비트(코드)

의미

00

Non-ECT—패킷이 ECN을 지원하지 않는 것으로 표시됨

01

ECT(1) - 전송 프로토콜의 엔드포인트는 ECN을 지원합니다.

10

ECT(0) - 전송 프로토콜의 엔드포인트는 ECN을 지원합니다.

11

CE - 혼잡 경험

코드 01과 10은 전송 프로토콜의 송신 및 수신 엔드포인트가 ECN을 지원한다는 동일한 의미를 갖습니다. 이 코드들 사이에는 차이가 없습니다.

엔드투엔드 ECN 동작

송신 및 수신 엔드포인트가 ECN을 협상한 후 송신 엔드포인트는 DiffServ ECN 필드를 ECT(1)(01) 또는 ECT(0)(10)로 설정하여 패킷을 ECN 지원으로 표시합니다.

패킷이 디바이스를 트래버스하고 WRED 패킷 드롭 메커니즘을 사용하는 출력 대기열에서 혼잡을 경험하는 경우, 디바이스는 DiffServ ECN 필드를 CE(11)로 설정하여 패킷을 혼잡을 경험한 것으로 표시합니다. 패킷을 삭제하는 대신(TCP 혼잡 알림과 같이) 디바이스는 패킷을 전달합니다.

참고:

송신 대기열에서 WRED 알고리즘은 대기열 채우기 수준(대기열이 얼마나 꽉 찼는지)에 따라 패킷이 삭제 가능한지 여부를 결정합니다. 패킷이 드롭 적격이고 ECN 지원으로 표시된 경우, 패킷은 CE로 표시되고 전달될 수 있습니다. 패킷이 삭제 가능하지만 ECN 지원으로 표시되지 않은 경우 삭제됩니다. WRED 알고리즘에 대한 자세한 내용은 ECN 임계값의 WRED 드롭 프로파일 제어를 참조하십시오.

패킷이 수신기 엔드포인트에 도달하면 CE 마크는 수신기에 네트워크 정체가 있음을 알려줍니다. 그런 다음 수신자는 네트워크에 정체가 있음을 나타내는 메시지를 발신자에게 보냅니다(에코). 발신자는 혼잡 알림 메시지를 확인하고 전송 속도를 줄입니다. 그림 1 은 ECN이 네트워크 혼잡을 완화하기 위해 어떻게 작동하는지 요약한 것입니다.

그림 1: 명시적 혼잡 알림 Explicit Congestion Notification

엔드투엔드 ECN 동작에는 다음이 포함됩니다.

  1. ECN 가능 발신자와 수신자는 연결을 설정하는 동안 ECN 기능을 협상합니다.

    참고:

    클라이언트가 ECN을 지원하지 않는 경우 SRX 방화벽은 연결 설정 중에 클라이언트를 대신하여 ECN을 협상합니다. SRX 방화벽은 SYN 패킷의 TCP 헤더에서 ECE 및 CWR 비트를 설정합니다.

  2. ECN 기능의 협상에 성공한 후, ECN 가능 발신자는 ECT 필드가 설정된 IP 패킷을 수신자에게 보냅니다.

  3. 디바이스 송신 대기열의 WRED 알고리즘이 대기열에 혼잡이 발생하고 패킷이 삭제 적격하다고 판단하면 디바이스는 패킷을 "혼잡 경험"(CE)으로 표시하여 수신기에 네트워크에 혼잡이 있음을 나타낼 수 있습니다. 패킷이 이미 CE로 표시된 경우(다른 디바이스의 송신 시 혼잡이 이미 경험된 경우) 디바이스는 CE가 표시된 패킷을 전달합니다.

    디바이스 송신 대기열에 혼잡이 없는 경우, 디바이스는 패킷을 전달하고 ECN 비트의 ECT 활성화 마킹을 변경하지 않으므로, 패킷은 여전히 ECN 지원으로 표시되지만 혼잡을 경험하는 것으로 표시되지는 않습니다.

  4. 수신자는 혼잡 경로를 따라 혼잡이 발생했음을 나타내기 위해 CE로 표시된 패킷을 수신합니다.

  5. 수신자는 TCP 헤더의 플래그 필드에 표시된 ECE 비트(비트 9)와 함께 패킷을 발신자에게 다시 에코(전송)합니다. ECE 비트는 ECN 에코 플래그 비트로, 발신자에게 네트워크에 혼잡이 있음을 알립니다.

  6. 발신자는 데이터 전송 속도를 줄이고 TCP 헤더의 플래그 필드에 표시된 CWR 비트(비트 8)와 함께 패킷을 수신자에게 보냅니다. CWR 비트는 혼잡 경험 알림이 수신되었음을 수신자에게 인정하는 혼잡 창 감소 플래그 비트입니다.

  7. 수신자가 CWR 플래그를 수신하면 수신자는 발신자에 대한 응답에서 ECE 비트 설정을 중단합니다.

표 2 에는 ECN 지원 대기열의 트래픽 동작이 요약되어 있습니다.

표 2: ECN 활성화 큐의 트래픽 동작

ECN 비트의 수신 IP 패킷 마킹

출력 대기열의 ECN 구성

WRED 알고리즘이 패킷이 삭제 적격하다고 판단하는 경우 작업

ECN 비트의 발신 패킷 마킹

로그 형식

비 ECT (00) SYN

WRED 지원 - 임계값을 초과하고 임계값 한도 내에 있는 두 시나리오 모두

ECN 지원을 제공하는 부트스트랩

TCP 헤더의 ECE 및 CWR 및 IP 헤더의 ECT 설정

요법 비트 : 00

WRED-MET: 참

비 ECT (00) 데이터

WRED 지원

떨어 뜨리지 마십시오. ECN 비트를 01/10으로 표시합니다.

ECT 01/10으로 표시된 패킷

해당 사항 없음

비 ECT (00) 데이터

WRED 활성화—임계값 충족

떨어 뜨리지 마십시오. ECN 비트 11을 표시합니다.

패킷 표시 ECT(CE)

요법 비트 : 00

WRED-MET: 참

비 ECT (00)

WRED 비활성화

변경 없음

변경 없음

해당 사항 없음

ECT(10 또는 01)

WRED 지원

변경 없음

변경 없음

해당 사항 없음

ECT(10 또는 01)

WRED 활성화—임계값 충족

떨어뜨리지 마십시오. ECN 비트를 11로 표시하고 드롭 프로파일에 따라 드롭합니다.

패킷 표시 ECT(CE)

요법 비트: 10

WRED-MET: 참

ECT(10 또는 01)

WRED 비활성화

변경 없음

변경 없음

해당 사항 없음

요법(11)

WRED 지원

떨어 뜨리지 마십시오. 패킷에 이미 CE가 표시되어 있으므로 변경 없이 패킷을 보냅니다

혼잡을 나타내기 위해 ECT(11)로 표시된 패킷

요법 비트 : 11

WRED-MET: 거짓

ECT (11)

WRED 비활성화

패킷 삭제

패킷 삭제

해당 사항 없음

ECT (11)

WRED 활성화—임계값 충족

떨어 뜨리지 마십시오. 패킷이 이미 혼잡을 겪고 있는 것으로 표시되어 있는 경우, ECN 표시를 변경하지 않고 패킷을 전달합니다.

혼잡을 나타내기 위해 ECT(11)로 표시된 패킷

요법 비트 : 11

WRED-MET: 참

출력 대기열이 대기열에 매핑된 WRED 드롭 프로파일에 의해 정의된 혼잡을 경험하지 않을 경우, 모든 패킷이 전달되고 패킷은 손실되지 않습니다.

PFC 및 이더넷 PAUSE와 비교한 ECN

ECN은 IP 트래픽에 대한 엔드 투 엔드 네트워크 혼잡 알림 메커니즘입니다. 우선 순위 기반 플로우 제어(PFC)(IEEE 802.1Qbb) 및 이더넷 PAUSE(IEEE 802.3X)는 서로 다른 유형의 혼잡 관리 메커니즘입니다.

ECN을 사용하려면 출력 대기열에도 연관된 WRED 패킷 드롭 프로파일이 있어야 합니다. PFC가 활성화된 트래픽에 사용되는 출력 대기열에는 연결된 WRED 드롭 프로파일이 없어야 합니다. 이더넷 PAUSE가 활성화된 인터페이스에는 연관된 WRED 드롭 프로파일이 없어야 합니다.

PFC는 무손실 트래픽을 지원하는 피어 투 피어 흐름 제어 메커니즘입니다. PFC를 사용하면 연결된 피어 디바이스가 혼잡 기간 동안 흐름 전송을 일시 중지할 수 있습니다. PFC를 사용하면 링크의 모든 트래픽 대신 링크의 지정된 흐름 유형에서 트래픽을 일시 중지할 수 있습니다. 예를 들어, 포워딩 클래스와 같은 무손실 트래픽 클래스에서 PFC를 fcoe 활성화할 수 있습니다(그리고 활성화해야 합니다). 이더넷 PAUSE는 피어 투 피어 플로우 제어 메커니즘이기도 하지만, 지정된 트래픽 플로우만 일시 중지하는 대신 이더넷 PAUSE는 물리적 링크의 모든 트래픽을 일시 중지합니다.

PFC 및 이더넷 PAUSE를 사용하면 플로우의 송수신 엔드포인트가 중간 디바이스를 통해 서로 혼잡 정보를 전달하지 않습니다. 대신 PFC는 DCB(Data Center Bridging) 표준을 지원하는 두 개의 PFC 지원 피어 디바이스 간의 흐름을 제어합니다. PFC는 플로우 출력 대기열이 혼잡해질 때 연결된 피어에 일시 중지 메시지를 보내는 방식으로 작동합니다. 이더넷 PAUSE는 혼잡 기간 동안 링크의 모든 트래픽을 일시 중지하며 DCB가 필요하지 않습니다.

ECN 임계값의 WRED 드롭 프로파일 제어

WRED 드롭 프로파일을 포워딩 클래스(출력 대기열에 매핑됨)에 적용하여 디바이스가 ECN 지원 패킷을 표시하는 방법을 제어합니다. 스케줄러 맵은 드롭 프로필을 스케줄러 및 포워딩 클래스와 연결한 다음, 스케줄러 맵을 인터페이스에 적용하여 해당 인터페이스에서 포워딩 클래스에 대한 스케줄링 속성을 구현합니다.

드롭 프로필은 대기열 채우기 수준(대기열이 꽉 찬 비율)과 드롭 확률(패킷이 떨어질 확률 비율) 쌍을 정의합니다. 대기열이 지정된 수준으로 채워지면 드롭 프로필과 일치하는 트래픽은 해당 채우기 수준과 쌍을 이루는 드롭 확률을 갖습니다. 드롭 프로파일을 구성할 때 채우기 수준과 드롭 확률 쌍을 구성하여 다양한 대기열 충만 수준에서 패킷이 드롭되는 방식을 제어합니다.

첫 번째 채우기 수준과 드롭 확률 쌍은 드롭 시작점입니다. 대기열이 첫 번째 채우기 수준에 도달할 때까지 패킷은 삭제되지 않습니다. 대기열이 첫 번째 채우기 수준에 도달하면 채우기 수준을 초과하는 패킷은 채우기 수준과 쌍을 이루는 삭제 확률과 동일한 삭제 확률을 갖게 됩니다.

마지막 채우기 수준과 드롭 확률 쌍은 드롭 끝점입니다. 대기열이 마지막 채우기 수준에 도달하면 ECN에 대해 구성되지 않는 한 모든 패킷이 삭제됩니다.

참고:

무손실 대기열(패킷 드롭 속성으로 no-loss 구성된 포워딩 클래스) 및 엄격한 우선 순위 대기열은 드롭 프로파일을 사용하지 않습니다. 무손실 대기열은 PFC를 사용하여 트래픽 흐름을 제어합니다.

드롭 프로파일 구성은 다음과 같이 ECN 패킷에 영향을 미칩니다.

  • 드롭 시작점 - ECN 지원 패킷은 혼잡 경험(CE)으로 표시될 수 있습니다.

  • 드롭 엔드포인트 - ECN 지원 패킷은 항상 CE로 표시됩니다.

드롭 시작점에서 드롭 엔드포인트까지 대기열이 채워질 때, ECN 패킷이 CE로 표시될 확률은 best-effort 트래픽에 드롭 프로파일을 적용할 경우 비 ECN 패킷이 드롭될 확률과 동일합니다. 대기열이 가득 차면 ECN 패킷이 CE로 표시될 확률이 증가하며, 이는 best-effort 트래픽에 드롭 프로필을 적용할 때 비 ECN 패킷이 드롭될 확률이 증가하는 것과 같습니다.

드롭 엔드포인트에서 모든 ECN 패킷은 CE로 표시되지만 ECN 패킷은 드롭되지 않습니다. 대기열 채우기 레벨이 드롭 끝점을 초과하면 모든 ECN 패킷이 CE로 표시됩니다. ECN 패킷(및 다른 모든 패킷)은 대기열이 완전히 채워지면 테일 드롭됩니다.

WRED 패킷 드롭 프로파일을 구성하고 출력 대기열에 적용하려면(ETS를 지원하는 디바이스에서 계층적 스케줄링 사용):

  1. 문을 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사용하여 드롭 프로파일을 구성합니다 .

  2. 문을 set class-of-service schedulers scheduler-name drop-profile-map loss-priority (low | medium-high | high) protocol any drop-profile profile-name사용하여 드롭 프로필을 대기열 스케줄러에 매핑합니다. 드롭 프로파일의 이름은 1단계에서 구성한 WRED 프로파일의 이름입니다.

  3. 2단계에서 드롭 프로파일과 연결하는 스케줄러를 문을 set class-of-service scheduler-maps map-name forwarding-class forwarding-class-name scheduler scheduler-name사용하여 출력 대기열에 매핑합니다. 포워딩 클래스는 출력 큐를 식별합니다. 포워딩 클래스는 기본적으로 출력 대기열에 매핑되며 명시적 사용자 구성을 통해 다른 대기열에 다시 매핑될 수 있습니다. 스케줄러 이름은 2단계에서 구성한 스케줄러입니다.

  4. 문을 set class-of-service traffic-control-profiles tcp-name scheduler-map map-name사용하여 스케줄러 맵을 트래픽 제어 프로파일과 연결합니다. 스케줄러 맵 이름은 3단계에서 구성한 이름입니다.

  5. 문을 set class-of-service interface interface-name forwarding-class-set forwarding-class-set-name output-traffic-control-profile tcp-name사용하여 트래픽 제어 프로필을 인터페이스와 연결합니다. 출력 트래픽 제어 프로파일 이름은 4단계에서 구성한 트래픽 제어 프로파일의 이름입니다.

    인터페이스는 트래픽 제어 프로필의 스케줄러 맵을 사용하여 드롭 프로필(및 enable ECN 속성을 포함한 기타 속성)을 해당 인터페이스의 출력 대기열(포워딩 클래스)에 적용합니다. 서로 다른 트래픽 제어 프로필을 사용하여 서로 다른 스케줄러를 서로 다른 인터페이스에 매핑할 수 있으므로, 서로 다른 인터페이스의 동일한 대기열 번호로 트래픽을 처리할 수 있습니다.

WRED 패킷 드롭 프로파일을 구성하여 포트 스케줄링을 지원하는 디바이스의 출력 대기열에 적용할 수 있습니다(ETS 계층 스케줄링은 지원되지 않거나 사용되지 않음). WRED 패킷 드롭 프로파일을 구성하고 포트 스케줄링을 지원하는 디바이스의 출력 대기열에 적용하려면(ETS 계층적 스케줄링은 지원되지 않거나 사용되지 않음):

  1. 문을 set class-of-service drop-profiles profile-name interpolate fill-level level1 level2 ... level32 drop-probability probability1 probability2 ... probability32사용하여 드롭 프로파일을 구성합니다 . 채우기 수준/드롭 확률 쌍을 최소 2개 또는 최대 32개 쌍으로 지정할 수 있습니다.

  2. 문을 set class-of-service schedulers scheduler-name drop-profile-map loss-priority (low | medium-high | high) drop-profile profile-name사용하여 드롭 프로필을 대기열 스케줄러에 매핑합니다. 드롭 프로파일의 이름은 1단계에서 구성한 WRED 프로파일의 이름입니다.

  3. 2단계에서 드롭 프로파일과 연결하는 스케줄러를 문을 set class-of-service scheduler-maps map-name forwarding-class forwarding-class-name scheduler scheduler-name사용하여 출력 대기열에 매핑합니다. 포워딩 클래스는 출력 큐를 식별합니다. 포워딩 클래스는 기본적으로 출력 대기열에 매핑되며 명시적 사용자 구성을 통해 다른 대기열에 다시 매핑될 수 있습니다. 스케줄러 이름은 2단계에서 구성한 스케줄러입니다.

  4. 문을 set class-of-service interfaces interface-name scheduler-map scheduler-map-name사용하여 스케줄러 맵을 인터페이스와 연결합니다.

    인터페이스는 스케줄러 맵을 사용하여 드롭 프로파일(및 기타 속성)을 해당 인터페이스의 포워딩 클래스에 매핑된 출력 대기열에 적용합니다. 서로 다른 인터페이스에서 서로 다른 스케줄러 맵을 사용할 수 있기 때문에 서로 다른 인터페이스의 동일한 대기열 번호로 트래픽을 처리할 수 있습니다.

지원, 제한 사항 및 참고 사항

대기열에 매핑된 WRED 알고리즘이 적격한 패킷 드롭을 찾지 못하면 ECN 구성 및 ECN 비트 마킹은 중요하지 않습니다. 패킷 전송 동작은 ECN이 활성화되지 않은 경우와 동일합니다.

ECN은 기본적으로 비활성화되어 있습니다. 일반적으로 ECN은 최선형 트래픽을 처리하는 대기열에서만 활성화하며, 무손실 트래픽이나 엄격한 우선순위 트래픽을 처리하는 대기열에서는 ECN을 활성화하지 않습니다.

ECN은 다음을 지원합니다.

  • IPv4 및 IPv6 패킷

  • 태그 처리되지 않은 패킷, 단일 태그 처리된 패킷 및 이중 태그 처리된 패킷

  • IP 터널링된 패킷의 외부 IP 헤더(내부 IP 헤더는 제외)

ECN은 다음을 지원하지 않습니다.

  • MPLS 캡슐화를 사용하는 IP 패킷

  • IP 터널링된 패킷의 내부 IP 헤더(단, ECN은 외부 IP 헤더에서 작동함)

  • 멀티캐스트, 브로드캐스트 및 대상 조회 실패(DLF) 트래픽

  • 비 IP 트래픽