호우동의 개발일지

Today :

article thumbnail

네트워크 지원 명시적 혼잡 알림과 지연 기반 혼잡 제어

  • TCP 송신자는 네트워크에서 명시적인 혼잡 표시를 수신하지 않는다.
    → 대신, 관찰된 패킷 손실을 통해 혼잡을 추론한다.

  • 최근에는 네트워크가 TCP 송/수신자에게 명시적 혼잡 신호를 보낼 수 있도록
    IP 및 TCP에 대한 확장이 제한, 구현 및 배포됨
    • 또한 측정된 패킷 지연을 사용하여 혼잡을 추론하는 TCP 혼잡 제어 프로토콜의 일부 변형이 제안

 


명시적 혼잡 알림(Explicit Congestion Notification, ECN)

  • 인터넷 내에서 수행되는 네트워크 지원 혼잡 제어의 한 형태
    • TCP와 IP가 모두 관련되어 있음

  • 명시적 혼잡 알림(ECN)을 사용
    • IP 데이터그램 헤더의 서비스 유형 필드에 있는 2비트에서 사용한다.

 


혼잡 알림 비트의 사용

  • 라우터에서 버퍼가 가득 차서 패킷들이 삭제되기 전에 송신자에게 혼잡 시작을 알리는 역할
    • 패킷 손실 이전에 더 일찍 전송 속도를 줄일 수 있음
      → 값비싼 패킷 손실 및 재전송을 피할 수 있다.

  • ECN 비트의 한 설정은 라우터가 정체를 겪고 있음을 나타내기 위해 라우터에서 사용
    • 이후, 혼잡 표시는 표시된 IP 데이터그램에서 목적지 호스트로 전달되어 송신 호스트에게 알림

  • 직관적으로 손실이 발생하기 전에 혼잡 시작을 송신자에게 알리기 위해 혼잡 알림 비트를 설정 가능
    → ECN 비트의 두 번째 설정 사용

    • 발신 호스트가 라우터에게 송/수신자가 ECN 사용 가능함을 알림
      → ECN으로 표시된 네트워크 혼잡에 대한 응답으로 조치를 취할 수 있음을 알리는 데 사용

  • 언제 라우터가 혼잡 해지는가의 대한 정의
    → 해당 결정은 라우터 공급업체가 가능하게 하고 네트워크 운영저가 결정하는 구성 결정

 


ECN 혼잡 알림 표시 수신

명시적 혼잡 알림 : 네트워크 지원 혼잡 제어
명시적 혼잡 알림 : 네트워크 지원 혼잡 제어

  1. 수신 호스트의 TCP가 수신 데이터그램을 통해 ECN 혼잡 알림 표시를 수신
    → 수신 호스트의 TCP는 수신자-송신자 TCP ACK 세그먼트의 ECE 비트를 설정
    • ECE(Explicit Congestion Notification Echo, 명시적 혼잡 알림 에코) 비트
      • 송신 호스트의 TCP에 혼잡 표시를 알리는 역할

  2. TCP 송신자는 빠른 재전송을 사용하여 혼잡 윈도를 절반으로 줄임
    → 혼잡 알림 표시가 있는 ACK에 반응

  3. 이후, 송신자는 다음 전송되는 TCP 수신자 세그먼트 헤더에 CWR 비트를 1로 설정
    • CWR(Congestion Window Reduced)

ECN을 사용하는 다른 프로토콜

  • TCP 외에 다른 트랜스포트 계층 프로토콜들도 네트워크 계층 신호 ECN을 사용
    • DCCP는 ECN을 활용하여 적은 오버헤드, 혼잡 제어되는 신뢰 없는 서비스를 제공
    • 데이터 센터 네트워크 전용으로 설계된 데이터 센터 TCP(DCTCP)도 ECN 사용

  • 널리 사용되는 서버 및 라우터에서 해당 서버로의 경로에 따라 ECN 기능의 배포가 증가 중

 


지연 기반 혼잡 제어 - TCP 베가스(TCP vegas)

  • 지연 기반 혼잡 제어: 패킷 손실이 발생하기 전에 혼잡 시작을 사전에 감지하는 것
  • TCP 베가스에서는 모든 확인응답된 패킷에 대한 출발지 ~ 목적지까지 경로의 RTT를 측정
  • TCP 베가스의 혼잡 윈도 크기가 cwnd인 경우에 혼잡하지 않을 때의 처리율
    cwnd/RTT(min)
    • 실제 송신자가 측정한 처리량이 cwnd/RTT(min)에 가까운 경우
      → 아직 정체되지 않음 → TCP 전송 속도가 증가할 수 있음

    • 실제 송신자가 측정한 처리량이 해당 값보다 현저히 낮은 경우
      → 경로가 혼잡하고 TCP 베가스 송신자는 전송 속도를 낮춤

    • RTT(min) : 송신자에서 측정 RTT 값 중의 최솟값
      • 경로가 정체되지 않고 패킷이 최소 대기 지연을 경험할 때 발생

 


TCP 베가스의 직관적인 원칙

  • TCP 베가스는 직관적인 원칙 하에 동작
    “TCP 송신자가 파이프를 가득 채우되, 그 이상으로 채우지 않도록 해야 한다”
    • 파이프가 가득 찬 상태로 유지 : 링크가 계속 바쁘게 전송하게 하는 작업을 수행함을 의미
      • 링크 중 특히 연결의 처리량을 제한하는 병목 링크를 타깃으로 함

    • 그러나 그 이상으로 채우지 않도록 해야 한다
      : 파이프가 가득 찬 상태에서는 큰 큐가 쌓이도록 허용되는 경우가 좋을 게 없음을 의미

BBR 혼잡 제어 프로토콜

  • TCP 베가스 아이디어 기반으로 하였음
  • BBR을 채택하지 않은 TCP와 공정하게 경쟁할 수 있는 메커니즘을 통합