1 분 소요

InfiniBand 또는 고속 네트워크에서의 혼잡 제어(Congestion Control)는 네트워크 상의 혼잡 상황(과도한 트래픽으로 인한 지연, 손실, 성능 저하 등)을 감지하고 이를 완화하기 위해 송신 측과 수신 측이 협력하여 트래픽을 조절하는 메커니즘이다. 따라서, InfiniBand에서 혼잡 제어는 Adaptive Routing과 함께 네트워크의 QoS(Quality of Service)를 높이는 핵심 기술이다. 이번에는 혼잡 제어에 대해 좀더 상세히 알아보도록 하자.

1. 혼잡 제어

  • 네트워크 노드 간의 전송 흐름에서 혼잡이 발생했을 때, 송신자에게 피드백을 주고, 송신자가 전송 속도를 조절하도록 하는 프로토콜
  • 목적: 병목 지점 완화, 전송 지연(latency) 감소, 네트워크 전체 처리량 향상, 공정한 대역폭 분배

2. InfiniBand에서의 혼잡 제어 메커니즘

  • 혼잡 감지 (Congestion Detection)
    • 스위치가 큐의 길이나 버퍼 사용량을 기준으로 혼잡 발생 여부를 판단
    • 혼잡이 감지되면 스위치는 해당 패킷에 “FECN (Forward Explicit Congestion Notification)” 플래그를 설정함
  • 수신자 알림 (Congestion Notification)
    • 패킷을 수신한 대상은 이 FECN 비트를 확인하고, 송신자에게 “BECN (Backward ECN)” 또는 CNP(Congestion Notification Packet)를 전송
  • 송신자 반응 (Rate Throttling)
    • 송신자는 CNP를 수신하면, 전송 속도를 일시적으로 줄임 (rate-limiting)
    • 일정 시간 이후, 서서히 전송 속도를 회복 (Additive Increase 방식)

3. 혼잡 제어의 주요 구성 요소

구성 요소 역할
CA (Congestion Avoidance) 혼잡이 발생하기 전에 예측하고 미리 경로를 변경 (AR과 연계)
ECN (Explicit Congestion Notification) FECN/BECN을 통해 혼잡을 명시적으로 전달
CNP (Congestion Notification Packet) 수신자가 혼잡을 감지하고 송신자에게 알리는 특수 패킷
Rate Control Algorithm 송신 측 전송 속도를 제어 (Cut-back & Ramp-up 방식)

4. 실제 구성 예 (OpenSM 기반)

  • opensm.conf 예시:
congestion_control=enable
congestion_log_file=/var/log/cc.log
congestion_control_table_file=/etc/cc_table.conf
  • cc_table.conf에는 각 포트에 대한 속도 제한 및 회복 타이밍을 설정

5. Quantum InfiniBand 스위치의 혼잡 제어

항목 설명
SHARP 기반 감지 실시간으로 트래픽 병목 위치를 파악
UFM 연계 관리자는 혼잡 상태를 시각화 및 경고 설정 가능
자동 Throttling NVIDIA 스위치 자체에서 혼잡 감지 및 송신 제어 수행 가능

6. 혼잡 제어 vs 적응형 라우팅

항목 적응형 라우팅 (AR) 혼잡 제어 (CC)
개념 덜 혼잡한 경로로 우회 송신 속도 조절
작동 위치 스위치 포트 간 송신자 ↔ 수신자
트리거 포트 혼잡도 ECN, 큐 지연, 큐 깊이
목적 경로 분산 속도 완화

댓글남기기