학교
[컴퓨터 네트워크] Chapter 3. Transport Layer (Part 3) - (1)
일자 : 24-2 8주차 2차시 (2)
6. Principles of congestion control
[1] 혼잡 제어의 원칙
1) 혼잡 (Congestion)
비공식적으로 (informally) : "네트워크가 처리할 수 있는 것보다 너무 많은 송신자가 너무 빠르게 데이터를 보내는 상태"
증상 (manifestations)
긴 지연 (라우터 버퍼에서 큐잉)
패킷 손실 (라우터에서 버퍼 오버플로)
흐름 제어와는 다름!
상위 10대 문제!
2) 두 가지 제어
혼잡 제어 (Congestion control): 너무 많은 송신자들이 너무 빠르게 전송
흐름 제어 (Flow control): 하나의 송신자가 하나의 수신자에게 너무 빠르게 전송
알겠습니다! 이미지 링크를 포함한 번역은 다음과 같습니다.
[2-1] 혼잡의 원인/비용: 시나리오 1
1) 가장 단순한 시나리오:
무한한 버퍼를 가진 하나의 라우터
입력, 출력 링크 용량: R
두 개의 흐름
재전송 필요 없음
Q: 입력 도착률 $λ_{in}$이 R/2에 접근하면 어떤 일이 발생할까?
2-1) 시나리오 1

: 시나리오 #1-1: 처리량은 용량을 초과할 수 없다!
2-2) 시나리오 2

: 시나리오 #1-2: 용량에 접근할수록 지연이 증가한다!
네트워크의 용량에 가까워질수록 패킷들이 라우터의 버퍼에 쌓이게 되어 대기 시간이 길어지고, 이로 인해 지연이 증가한다는 것
[2-2] 혼잡의 원인/비용: 시나리오 2

하나의 라우터, 유한한 버퍼
송신자는 손실되거나 타임아웃된 패킷을 재전송함
애플리케이션 계층 입력 = 애플리케이션 계층 출력: $λ{in}$ = $λ{Out}$
애플리케이션 계층에서의 입력과 출력은 같으며, 송신된 데이터와 수신된 데이터의 양이 동일하다.
전송 계층 입력은 재전송을 포함함: $λ{in}$' > $λ{in}$
전송 계층에서 송신자가 데이터를 전송할 때, 재전송된 데이터도 함께 포함되기 때문에 원래의 데이터 전송량보다 더 많은 데이터가 전송된다는 것을 나타낸다.
1) 이상화(Idealization): 완벽한 정보(knowledge)
발신자는 라우터 버퍼가 사용 가능한 경우에만 전송합니다.
-> 이상화된 시나리오에서는 송신자가 라우터 버퍼가 비어 있을 때만 데이터를 전송하는 방식이다. 이는 송신자가 네트워크의 상태를 완벽하게 알고 있어, 네트워크가 과부하에 걸리지 않도록 하는 상황을 가정한다.

: 송신자가 라우터 버퍼에 여유가 있을 때만 데이터를 보내는 이상적인 시나리오

: 네트워크의 혼잡을 피하기 위해 송신자가 라우터 버퍼 상태를 지속적으로 확인하며 데이터를 전송하는 과정
2) 이상화(Idealization): 약간의 완벽한 지식
패킷은 버퍼가 가득 차서 라우터에서 드롭될 수 있다.
송신자는 패킷이 손실된 경우를 알 수 있다. 즉, 패킷이 손실되었을 때만 재전송을 한다.
(1) 시나리오 #2-1: 손실/재전송이 효과적인 처리량을 감소시킨다!

재전송으로 인해 "낭비되는" 용량
전송 속도가 R/2일 때, 일부 패킷은 재전송이 필요하다.
3) 현실적인(Realistic) 시나리오: 불필요한 중복 패킷
패킷은 라우터의 가득 찬 버퍼로 인해 손실될 수 있으며, 이로 인해 재전송이 필요하다.
그러나 송신자는 타임아웃을 조기에(prematurely) 설정할 수 있어, 두 개의 복사본을 보내며, 두 개의 복사본 모두 수신된다.
(1) 시나리오 #2-2: 불필요한 중복 패킷이 효과적인 처리량을 더 감소시킨다!

불필요한 재전송으로 인한 "낭비되는" 용량
전송 속도가 R/2일 때, 일부 패킷은 재전송되며, 재전송에는 필요한 패킷과 불필요한 중복 패킷이 포함되어 수신된다.
(2) 혼잡의 "비용"
주어진 수신 처리량에 대해 더 많은 작업(재전송)이 필요하다.
불필요한 재전송: 링크는 패킷의 여러 복사본을 전송한다.
최대 달성 가능한 처리량을 감소시킨다.
패킷이 지연되면, 송신자(source)는 확인 응답을 받지 못하고 패킷을 재전송하며, 이로 인해 큐가 길어지고 지연(즉, 혼잡)이 악화된다.
부하가 용량을 초(exceeds)과하면 큐가 가득 차고 라우터는 일부 패킷을 버려야 한다(discard). 더 많은 패킷이 버려지면 ⇒ 더 많은 재전송된 패킷이 생기고 ⇒ 큐에서 정규 패킷(재전송되지 않은 패킷)이 들어갈 공간이 줄어든다 ⇒ 처리량이 감소한다.
[2-3] 혼잡의 원인/비용: 시나리오 3

네 명의 송신자
여러 홉을 거치는 경로
타임아웃/재전송
Q: $λ{in}$과 $λ{in}$'이 증가하면 어떻게 되는가?
A: 빨간색 $λ_{in}$'이 증가함에 따라, 상위 큐에 도달하는 모든 파란색 패킷들이 드롭된다. 결과적으로 파란색 처리량은 0이 된다.
파란색 패킷들은 상류에서 전송된 패킷들이다. 이 패킷들은 목적지에 도달하기 전에 여러 네트워크 장비(라우터 등)를 거쳐야 한다.
빨간색 $λ_{in}$'은 재전송된 패킷을 의미한다. 즉, 원래 패킷이 드롭되어 상류에서 타임아웃되었을 때, 송신자는 해당 패킷을 재전송한다.
1) 혼잡의 또 다른 "비용":
패킷이 드롭될 때, 해당 패킷을 위해 사용된 상류의 전송 용량과 버퍼링이 낭비된다.
2) 시나리오 #3:
: 하류에서 손실된 패킷을 위해 상류의 전송 용량과 버퍼링이 낭비된다.
[2-4] 혼잡의 원인/비용: 통찰
처리량은 용량을 초과할 수 없다

설명: 네트워크의 용량을 초과하는 전송 속도(처리량)는 불가능하다. 즉, 네트워크가 처리할 수 있는 최대 용량을 넘지 않도록 데이터 전송이 제한된다.
용량에 접근할수록 지연이 증가한다

설명: 용량에 가까워질수록 대기 시간(지연)이 증가한다. 네트워크 용량이 거의 가득 차면, 더 많은 데이터가 들어올 수 없기 때문에 대기 시간이 길어진다.
패킷 손실/재전송은 효과적인 처리량을 감소시킨다

설명: 패킷 손실이 발생하거나 재전송이 필요할 경우, 재전송을 위한 자원이 낭비되어 실제 처리량이 줄어든다.
불필요한 중복 전송은 효과적인 처리량을 더욱 감소시킨다

설명: 재전송으로 인해 중복되는 패킷이 전송되면, 네트워크 용량을 낭비하며 실제 처리량이 더욱 감소한다.
상류(Upstream) 전송 용량/버퍼링은 하류(Downstream)에서 손실된 패킷에 대해 낭비된다

설명: 하류에서 패킷이 손실되면, 상류에서 해당 패킷을 전송하기 위한 용량과 버퍼 공간이 낭비되며, 이는 네트워크 자원을 비효율적으로 사용하게 만든다.
[3] 혼잡 제어를 위한 접근 방식
1) End-to-End 혼잡 제어

네트워크에서 명시적인 피드백 없음
손실과 지연을 통해 혼잡 추론
TCP에서 사용되는 접근 방식
설명: End-to-End 방식은 네트워크에서 혼잡을 직접 알려주지 않고, 전송된 데이터의 손실이나 지연을 통해 혼잡을 유추하여 제어하는 방법이다. 이 방식은 TCP에서 주로 사용되며, 송수신 측에서 데이터를 전송하면서 혼잡 상태를 감지한다.
2) 네트워크 보조(assisted) 혼잡 제어

라우터가 혼잡한 라우터를 통과하는 흐름에 대해 송신/수신 호스트에 직접 피드백 제공
혼잡 수준을 나타내거나 송신 속도를 명시적으로 설정할 수 있음
TCP ECN, ATM
설명: 네트워크 보조 혼잡 제어는 라우터가 혼잡 상태에 있는 구간을 지나가는 흐름에 대해 송신자와 수신자에게 직접적인 피드백을 제공하는 방식이다. 이 방식은 혼잡 수준을 알려주거나 송신 속도를 조정하는 방식으로 혼잡을 제어하며, TCP ECN(Explicit Congestion Notification)과 ATM(Asynchronous Transfer Mode)에서 사용된다.
