호우동의 개발일지

Today :

article thumbnail

공평성


혼잡 제어 메커니즘이 공평하다는 것의 정의

  • 가정
    • 각각 다른 종단 간의 경로를 갖고, 전송률이 R bps인 병목 링크가 존재
    • K개의 TCP 연결이 해당 병목 링크를 지나간다.
      • 병목 링크(bottleneck link)
        • 각 연결에 대해 연결 경로상에 있는 모든 링크는 혼잡하지 않음
        • 병목 링크의 전송 용량과 비교해서 충분한 전송 용량을 갖고 있음을 의미

    • 각 TCP 연결은 큰 파일을 전송하고 있고, 병목 링크를 통과하는 UDP 트래픽은 없음.

  • 위 가정에서 각 연결의 평균 전송률이 R/K에 가까울수록 공평한 것
    각 연결은 링크 대역폭을 동등하게 공유

 


TCP가 연결 사이에서 대역폭을 똑같이 공유하는 이유

  • 전송률이 R인 링크 하나를 공유하는 2개의 TCP 연결의 경우
  •  

병목 링크 1개를 공유하는 두 TCP 연결
병목 링크 1개를 공유하는 두 TCP 연결

 

  • 가정
    • 두 연결은 같은 MSS와 RTT를 가진다.
      • 만약 두 연결이 같은 혼잡 윈도 크기를 갖는다면, 같은 처리율을 가짐

    • 송신할 많은 양의 데이터가 있다.
    • 어떠한 다른 TCP 연결이나 UDP 데이터그램도 이 공유된 링크를 통과하지 않는다고 가정
    • TCP의 슬로 스타트 현상을 무시하고, TCP 연결이 항상 혼잡 회피 방식으로 동작

  • 2개의 TCP 연결에 의해 실현되는 처리율
    처리율 그래프
    처리율 그래프

    • TCP가 두 연결 사이에서 링크 대역폭을 똑같이 공유할 경우
      → 실제 처리율은 원점에서부터 발산하면서 45도 각도의 화살표를 따라야 한다.

      • 45도 각도의 화살표는 동등한 대역폭 공유를 의미한다.

    • 이상적으로 두 처리율의 합이 R과 같아야 함
      • 0이 아닌 동등한 링크 공유 용량을 받는 각 링크는 옳은 상황이 아님
        • 따라서 목적은 그래프의 동등한 대역폭 공유 선
          완전한 대역폭 이용선의 교차 지점 근처의 처리율을 얻는 것

    • 어느 주어진 시점에서 TCP 윈도 크기가 연결 1,2가 그래프 A 지점으로 나타내는 처리율
      • 두 연결에 의해 공동으로 소비되는 링크 대역폭의 양은 R보다 적음
        • 따라서 어떠한 손실도 발생하지 않음
        • 양 연결은 TCP 혼잡 회피 알고리즘의 결과로써 RTT당 1 MSS씩 이들의 윈도를 증가시킴

      • 두 연결의 공동 처리율 = A 지점에서 시작하는 45도 각도의 선을 따라 계속됨
        → 결국 두 연결에 의해 공동으로 소비되는 링크 대역폭은 R보다 커짐
        → 패킷 손실이 발생
        • 45도 각도의 선은 두 연결에 대한 똑같은 증가를 의미한다.

  • 두 연결에 의해 실현되는 대역폭이 똑같은 대역폭 공유선은 결국에는 변동한다.
    • 연결 1과 2가 B 지점에 의해 나타나는 처리율을 실현할 때 패킷 손실이 발생하는 경우
      → 연결 1과 2는 절반으로 그들의 윈도를 감소시킨다.

      • 결과적으로 실현된 처리율은 C에 있게 됨(B와 원점의 중간)
        • 공동 대역폭 사용이 C지점에서 R보다 낮음
          → 두 연결은 다시 C로부터 시작하는 45도의 선을 따라 처리율을 증가시킴
          → D 지점에서 손실이 발생 → 다시 절반으로 윈도 크기를 감소

    • 또한 두 연결이 2차원 공간 어디에 있든지 간에 상관없이 수렴한다.

 


실제로의 TCP 연결

  • 클라이언트-서버 애플리케이션들은 각기 다른 링크 대역폭의 양을 얻을 수 있다.
  • 특히 병목 링크를 공유할 때
    → 더 작은 RTT를 갖는 세션은 대역폭이 좀 더 빠르게 비워짐
    → 링크에서 가용한 대역폭을 점유할 수 있다.(빠르게 혼잡 윈도를 개방)
    → 큰 RTT를 갖는 연결보다 더 높은 처리율을 갖는다.

 

 


공평성과 UDP

  • 멀티미디어 애플리케이션은 혼잡 제어를 가지고 있지 않는 UDP 상에서 동작하는 것을 선호
    • 이들은 네트워크가 혼잡하더라도 자신의 전송률이 조절되는 것을 원치 않는다.

 


UDP 상에서 동작할 때, 혼잡 발생 시

  • 일정한 속도로 네트워크에 오디오와 비디오를 공급하기를 선호(때론 패킷을 잃음)
    • TCP와 다르게 ‘공평한’ 레벨로 등급을 낮추고, 패킷 손실을 막지 않음

  • TCP 관점에서는 UDP상에서 수행되는 애플리케이션은 공평하지 못함
    → UDP 송신자들이 TCP 트래픽을 밀어낼 가능성이 생긴다.

    • UDP가 공평하지 못한 이유
      • UDP 상에서 수행되는 애플리케이션은 다른 연결들과 협력하지 않는다.
      • UDP 애플리케이션의 전송률을 적당히 조절하지 않는다.

 

 


공평성과 병렬 TCP 연결

  • UDP 트래픽을 공평하게 해도, 공평성 문제는 여전히 발생
    TCP 기반 애플리케이션의 다중 병렬연결의 사용을 막을 수 없기 때문

    • 애플리케이션이 다중 병렬연결을 사용할 때는 혼잡한 링크 대역폭의 많은 부분을 차지

  • 예시 - 9개의 진행 중인 클라이언트/서버 애플리케이션을 지원하는 전송률 R의 링크
    • 각 애플리케이션은 하나의 TCP 연결을 사용
    • 새로운 애플리케이션이 생성되고, TCP 연결을 사용할 경우
      → 각 애플리케이션은 대체로 같은 전송률 R/10을 얻는다.

    • 새로운 애플리케이션이 11개의 병렬 TCP 연결을 사용하는 경우
      • 새 애플리케이션은 R/2보다 많은 불공평한 할당을 얻는다.