혼잡 제어의 원리에 대해서

Dmori_2562·2022년 12월 5일
0

전송 계층(Transport-Layer)


혼잡 제어에 대해 알기 위해서는 혼잡(congestion)이 무엇인지 알아야겠죠?


혼잡(Congestion)이란?

너무 많은 송신자가 너무 많은 데이터를 너무 빠르게 네트워크에 보내는 것

흐름 제어(flow control)와는 다르다!

혼잡의 징후

  • 패킷의 손실 (라우터에서의 버퍼의 넘침)

  • 긴 지연 (라우터 버퍼에서의 지연)


예시 1

상황

  • 두 명의 송신자, 두 명의 수신자

  • 하나의 라우터, 무한한 버퍼

  • 출력 링크 용량: R

  • 재전송 없음

원인 및 비용

위와 같은 이상적인 예시에서도, 우리는 이미 혼잡한 네트워크의 한 가지 비용을 발견할 수 있다!

패킷 도착 속도가 링크 용량(R/2)에 가까워짐
--> 대규모 대기열 지연이 발생!


예시 2

상황

  • 하나의 라우터, 제한된 버퍼

  • 시간 초과된 패킷에 대한 송신자의 재전송

  • 응용 계층의 입력 = 응용 계층의 출력

  • 전송 계층의 입력은 재전송을 포함

원인 및 비용

가정: 완전한 지식

송신자는 라우터의 버퍼가 사용가능할 때만 보낸다.

가정: 패킷이 손실된 것을 알고있다.

송신자는 패킷이 손실될 때만 재전송한다.

패킷 재전송으로 인해서 성능이 감소!

현실: 중복 발생

송신자의 시간 초과가 일찍 발생해, 이미 보낸 패킷에 대해 중복이 발생한다.

혼잡의 비용

  • 재전송: 주어진 입력에 대해 더 많은 작업
  • 불필요한 재전송: 링크가 여러 개의 패킷 복사본을 전송

예시 3

상황

  • 네 명의 송신자들

  • multihop 경로

  • 시간 초과 + 재전송

Q: 빨간색 입력량이 증가한다면 어떤 일이 발생하는가?

라우터에 도착하는 모든 파란색의 패킷들은 큐에서 대기하다가 버려지고,
파란색 처리량은 0이 된다.

원인 및 비용

혼잡의 비용

  • 패킷이 삭제되면 해당 패킷에 사용된 "전송 용량"이 낭비!

혼잡 제어 방법

  • End-to-end 혼잡 제어
  • Network-assisted 혼잡 제어
profile
어제보다 더 나은 오늘의 나를 위해 달려나가는 중입니다!

0개의 댓글