공평성
혼잡 제어 메커니즘이 공평하다는 것의 정의
- 가정
- 각각 다른 종단 간의 경로를 갖고, 전송률이 R bps인 병목 링크가 존재
- K개의 TCP 연결이 해당 병목 링크를 지나간다.
병목 링크(bottleneck link)
- 각 연결에 대해 연결 경로상에 있는 모든 링크는 혼잡하지 않음
- 병목 링크의 전송 용량과 비교해서 충분한 전송 용량을 갖고 있음을 의미
- 각 TCP 연결은 큰 파일을 전송하고 있고, 병목 링크를 통과하는 UDP 트래픽은 없음.
- 위 가정에서 각 연결의 평균 전송률이 R/K에 가까울수록 공평한 것
→ 각 연결은 링크 대역폭을 동등하게 공유
TCP가 연결 사이에서 대역폭을 똑같이 공유하는 이유
- 전송률이 R인 링크 하나를 공유하는 2개의 TCP 연결의 경우
- 가정
- 두 연결은 같은 MSS와 RTT를 가진다.
- 만약 두 연결이 같은 혼잡 윈도 크기를 갖는다면, 같은 처리율을 가짐
- 만약 두 연결이 같은 혼잡 윈도 크기를 갖는다면, 같은 처리율을 가짐
- 송신할 많은 양의 데이터가 있다.
- 어떠한 다른 TCP 연결이나 UDP 데이터그램도 이 공유된 링크를 통과하지 않는다고 가정
- TCP의 슬로 스타트 현상을 무시하고, TCP 연결이 항상 혼잡 회피 방식으로 동작
- 두 연결은 같은 MSS와 RTT를 가진다.
- 2개의 TCP 연결에 의해 실현되는 처리율
- TCP가 두 연결 사이에서 링크 대역폭을 똑같이 공유할 경우
→ 실제 처리율은 원점에서부터 발산하면서 45도 각도의 화살표를 따라야 한다.
- 45도 각도의 화살표는 동등한 대역폭 공유를 의미한다.
- 45도 각도의 화살표는 동등한 대역폭 공유를 의미한다.
- 이상적으로 두 처리율의 합이 R과 같아야 함
- 0이 아닌 동등한 링크 공유 용량을 받는 각 링크는 옳은 상황이 아님
- 따라서 목적은 그래프의
동등한 대역폭 공유 선
과완전한 대역폭 이용선
의 교차 지점 근처의 처리율을 얻는 것
- 따라서 목적은 그래프의
- 0이 아닌 동등한 링크 공유 용량을 받는 각 링크는 옳은 상황이 아님
- 어느 주어진 시점에서 TCP 윈도 크기가 연결 1,2가 그래프 A 지점으로 나타내는 처리율
- 두 연결에 의해 공동으로 소비되는 링크 대역폭의 양은 R보다 적음
- 따라서 어떠한 손실도 발생하지 않음
- 양 연결은 TCP 혼잡 회피 알고리즘의 결과로써 RTT당 1 MSS씩 이들의 윈도를 증가시킴
- 두 연결의 공동 처리율 = A 지점에서 시작하는 45도 각도의 선을 따라 계속됨
→ 결국 두 연결에 의해 공동으로 소비되는 링크 대역폭은 R보다 커짐
→ 패킷 손실이 발생- 45도 각도의 선은 두 연결에 대한 똑같은 증가를 의미한다.
- 45도 각도의 선은 두 연결에 대한 똑같은 증가를 의미한다.
- 두 연결에 의해 공동으로 소비되는 링크 대역폭의 양은 R보다 적음
- TCP가 두 연결 사이에서 링크 대역폭을 똑같이 공유할 경우
- 두 연결에 의해 실현되는 대역폭이 똑같은 대역폭 공유선은 결국에는 변동한다.
- 연결 1과 2가 B 지점에 의해 나타나는 처리율을 실현할 때 패킷 손실이 발생하는 경우
→ 연결 1과 2는 절반으로 그들의 윈도를 감소시킨다.
- 결과적으로 실현된 처리율은 C에 있게 됨(B와 원점의 중간)
- 공동 대역폭 사용이 C지점에서 R보다 낮음
→ 두 연결은 다시 C로부터 시작하는 45도의 선을 따라 처리율을 증가시킴
→ D 지점에서 손실이 발생 → 다시 절반으로 윈도 크기를 감소
- 공동 대역폭 사용이 C지점에서 R보다 낮음
- 결과적으로 실현된 처리율은 C에 있게 됨(B와 원점의 중간)
- 또한 두 연결이 2차원 공간 어디에 있든지 간에 상관없이 수렴한다.
- 연결 1과 2가 B 지점에 의해 나타나는 처리율을 실현할 때 패킷 손실이 발생하는 경우
실제로의 TCP 연결
- 클라이언트-서버 애플리케이션들은 각기 다른 링크 대역폭의 양을 얻을 수 있다.
- 특히 병목 링크를 공유할 때
→ 더 작은 RTT를 갖는 세션은 대역폭이 좀 더 빠르게 비워짐
→ 링크에서 가용한 대역폭을 점유할 수 있다.(빠르게 혼잡 윈도를 개방)
→ 큰 RTT를 갖는 연결보다 더 높은 처리율을 갖는다.
공평성과 UDP
- 멀티미디어 애플리케이션은 혼잡 제어를 가지고 있지 않는 UDP 상에서 동작하는 것을 선호
- 이들은 네트워크가 혼잡하더라도 자신의 전송률이 조절되는 것을 원치 않는다.
UDP 상에서 동작할 때, 혼잡 발생 시
- 일정한 속도로 네트워크에 오디오와 비디오를 공급하기를 선호(때론 패킷을 잃음)
- TCP와 다르게 ‘공평한’ 레벨로 등급을 낮추고, 패킷 손실을 막지 않음
- TCP와 다르게 ‘공평한’ 레벨로 등급을 낮추고, 패킷 손실을 막지 않음
- TCP 관점에서는 UDP상에서 수행되는 애플리케이션은 공평하지 못함
→ UDP 송신자들이 TCP 트래픽을 밀어낼 가능성이 생긴다.
- UDP가 공평하지 못한 이유
- UDP 상에서 수행되는 애플리케이션은 다른 연결들과 협력하지 않는다.
- UDP 애플리케이션의 전송률을 적당히 조절하지 않는다.
- UDP가 공평하지 못한 이유
공평성과 병렬 TCP 연결
- UDP 트래픽을 공평하게 해도, 공평성 문제는 여전히 발생
→ TCP 기반 애플리케이션의 다중 병렬연결의 사용을 막을 수 없기 때문
- 애플리케이션이 다중 병렬연결을 사용할 때는 혼잡한 링크 대역폭의 많은 부분을 차지
- 애플리케이션이 다중 병렬연결을 사용할 때는 혼잡한 링크 대역폭의 많은 부분을 차지
- 예시 - 9개의 진행 중인 클라이언트/서버 애플리케이션을 지원하는 전송률 R의 링크
- 각 애플리케이션은 하나의 TCP 연결을 사용
- 새로운 애플리케이션이 생성되고, TCP 연결을 사용할 경우
→ 각 애플리케이션은 대체로 같은 전송률 R/10을 얻는다. - 새로운 애플리케이션이 11개의 병렬 TCP 연결을 사용하는 경우
- 새 애플리케이션은 R/2보다 많은 불공평한 할당을 얻는다.