3장 2, 연결지향형 TCP, 혼잡 제어 | Notion
목표
forest-helenium-82b.notion.site
혼잡 제어 (네트워크)
혼잡 제어가 필요한 이유 (원인과 비용 관점에서)
- ~혼잡 제어 → 문제
- 혼잡 제어 → ~ 문제
- 재전송 X, 타임아웃이 매우 큰 경우, 타임아웃이 보통인 경우
- 전송률을 증가시켰을 때 어떤 일이 일어나는지
- 시나리오 1 : 2개의 송신자, 무한 버퍼, 하나의 라우터
- 가정
- 오류 복구 (재전송) X, 흐름 제어 X, 혼잡 제어 X
- 호스트 A 평균 전송률 : λin 바이트/초
- 라우터의 용량 R = 공유 출력 링크
- 라우터에 무한 버퍼 O
- 호스트 A, 호스트 B 각각 λin 바이트/초

- 아래의 그래프는 호스트 A의 연결 성능
- a 연결당 처리량(수신자측에서의 초당 바이트 수)
- 송신자 전송률 0 ~ R/2 - 수신자 처리량 = 송신자 전송률
- 송신자 전송률 R/2 이상 - 수신자 처리량 = R/2
- Why ? 2개의 송신자가 하나의 라우터를 공유하기 때문에
- = 링크는 안정 상태에서는 R/2를 초과 X
- 결론 Not bad
- b 링크 용량 근처에서의 동작 결과 - 혼잡 원인 제공
- 송신자 전송률 R/2 근접 ⇒ 평균 지연 大
- 송신자 전송률 R/2 초과 ⇒ 평균 지연 무제한
- R, 호스트 A = 0.6R, 호스트 B = 0.6R
- 1초 뒤 : 라우터 버퍼에 0.2R 쌓임
- 2초 뒤 : 라우터 버퍼에 0.4R 쌓임
- ··· ⇒ ∞

- 시나리오 2 : 2개의 송신자, 유한 버퍼, 하나의 라우터
- 가정 : 오류 제어(재전송) = 신뢰적
- 원본 데이터 송신율 = λ 바이트/초
- 원본 데이터 + 재전송 데이터 송신율 = λ‛ 바이트 /초
- 네트워크에 재공된 부하(offered load)
- ※ 전송률 vs 송신율 정의보완___
- 전송률 = 링크의 최대 용량
- 송신율 = 실제로 밀어 넣는 양. (원본 데이터 / 재전송)
- → 시나리오 1의 경우는 재전송이 없었고 다른 조건(IP 계층으로 내리는 속도)를 고려하지 않았기에 전송률로 표기

- a 라우터 버퍼가 비어 있을 때만 송신자가 재전송
- λin = λ‛in = λout
- R/2 초과 X
- b 패킷이 확실히 손실된 것을 알았을 때만 송신자가 재전송 = 타임아웃 太 - 혼잡 원인
- 예시 그래프에 따르면 λ‛in 가 R/2인 경우 λout = R/3
- 전송한 R/2 = 원본 데이터 (0.333R 바이트/초) + 재전송 데이터 (0.166R 바이트/초)
- 비용 : 버퍼 오버플로 때문에 버려진 패킷을 위해 재전송
- 예시 그래프에 따르면 λ‛in 가 R/2인 경우 λout = R/3
- c 큐에서 지연되고 있지만 너무 일찍 타임아웃 되어서 재전송 되는 경우 - 혼잡 원인
- 원래의 패킷, 재전송된 패킷 (복사본) 모두 수신자에게 전송
- 따라서 평균적으로 각 패킷이 두번씩 전달 = R/4의 처리량을 가진다
- 비용 : 라우터가 패킷의 불필요한 복사본들을 전송하는 데 링크 대역폭을 사용

- 시나리오 3 : 4개의 송신자, 유한 버퍼, 두 개의 라우터 (멀티홉 경로)
- 가정
- 호스트 A → 호스트 C
- R1 (A→C, D→B 공유)
- R2 (A→C, B→D 공유)
- 가정


- λ‛ in 이 작은 경우
- 오버플로 거의 X
- λout 선형 증가
- λ‛ in 이 큰 경우
- R2에서 일어나는 일
- A~C는 이미 R1 거쳐서 링크 용량 R 한계를 가짐(도착률)
- B~D는 R2가 첫 번째 라우터 = λ‛ in가 커지면 송신율이 무한하게 커짐
- B~D가 링크 용량을 많이 차지해서 A~C가 경쟁에서 짐
- λout 감소 → 0으로 수렴 (종단 간 처리율 0으로 감소)
- 비용 : R1에서 보냈으나 R2에서 버려진 패킷 증가 (우선순위를 부여했으면 어땠었을까.)
- ⇒ R1 라우터 낭비
혼잡 해결 방식
- 종단 간의 혼잡 제어
- 혼잡 제어에 네트워크 계층이 직접적으로 도움 X
- = 종단 시스템이 네트워크를 “관찰”해서 추측
- TCP 손실 이벤트
- 타임아웃
- 3개의 중복 ACK
- → 네트워크 혼잡이구나! → 혼잡 윈도우 크기 줄이자!
- TCP 손실 이벤트
- 네트워크 지원 혼잡 제어
- 네트워크 계층이 직접적으로 도움 O (피드백, 송/수신자 모두에게)
- IBM SNA [Schwartz 1982], DEC DECnet [Jain 1989; Ramakrishnan 1990] architectures, ATM
[Black 1995] 채택 - ATM ABR(Available Bite Rate) 혼잡 제어
- 라우터는 자신이 출력 링크에 제공할 수 있는 전송률을 송신자에게 알림.
- 직접 피드백 (Direct network feedback)
- 네트워크 라우터 → 송신자
- 초크 패킷(choke packet) 형태로 혼잡하다고 알림
- 라우터가 송신자 → 수신자 패킷 특정 필드에 표시/수정
- 완전한 왕복 시간(RTT)

728x90
'Computer > 네트워크' 카테고리의 다른 글
| [네트워크] 링크 계층 (0) | 2026.07.14 |
|---|---|
| [네트워크] TCP의 혼잡 제어 (0) | 2026.07.13 |
| [네트워크] TCP 흐름 제어 서비스 (1) | 2026.07.13 |
| [네트워크] 신뢰적인 데이터 전송 서비스 (0) | 2026.07.13 |
| [네트워크] 연결지향형 TCP 2 (1) | 2026.07.13 |