혼잡 제어
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
혼잡 제어는 네트워크에서 트래픽 과부하로 인한 혼잡 붕괴를 방지하기 위한 기술이다. 네트워크 자원의 제약으로 인해 발생하는 혼잡 붕괴는 패킷 지연 및 손실, 서비스 품질 저하를 유발한다. 혼잡 제어는 전송 속도를 조절하여 네트워크로의 트래픽 유입을 관리하며, TCP의 혼잡 제어, 명시적 혼잡 알림, 능동적 큐 관리 등의 기법이 사용된다. TCP 혼잡 제어는 AIMD, 느린 시작, 빠른 재전송, 빠른 회복 등의 알고리즘을 통해 이루어진다. 또한, 혼잡 제어는 무선 링크나 짧은 연결과 같은 환경에서 부작용을 겪을 수 있으며, 접속 제어를 통해 새로운 연결 설정을 관리하기도 한다.
더 읽어볼만한 페이지
- 패킷 - 프로토콜 데이터 단위
프로토콜 데이터 단위(PDU)는 네트워크 통신에서 데이터 전송의 기본 단위로서, 각 계층은 서비스 데이터 단위(SDU)에 헤더와 제어 정보를 더해 PDU를 생성하며, 데이터 구조화, 오류 검출, 주소 지정 등의 기능을 수행하여 효율적인 통신을 지원하고, 크기는 네트워크 성능, MTU, IP 단편화, 보안 문제와 관련된다. - 패킷 - 셀 릴레이
셀 릴레이는 가변 길이 사용자 패킷을 고정 길이 셀 그룹으로 분할하여 고속으로 전송하는 기술이며, 지연에 민감한 트래픽에 사용되고, 흐름 제어 및 오류 검출 기능은 없으며, 비동기 전송 방식(ATM)과 같은 고속 패킷 스위칭 기술의 구현에 사용된다. - 네트워크 성능 - 대역폭 (컴퓨팅)
대역폭은 통신 채널을 통해 단위 시간당 전송 가능한 데이터 양을 나타내는 용어로, 최대 비트 전송률, 정보 전송률, 유효 비트 전송률, 채널 용량 등 여러 의미로 사용되며, 데이터 전송 속도와의 차이를 이해하는 것이 중요하다. - 네트워크 성능 - 대기행렬이론
대기행렬 이론은 1909년 에를랑에 의해 연구된 수학 이론으로, 서버, 대기실, 고객으로 구성된 시스템을 분석하며, 켄달의 표기법을 사용하여 대기열 모델의 특징을 나타내고, 컴퓨터 과학 등 다양한 분야에 응용되어 시스템 성능 분석 및 최적화에 활용된다. - 컴퓨터 네트워크 - NORSAR
NORSAR는 노르웨이 셸러에 위치한 지진 연구 및 데이터 센터이며, 기초 지진학 연구, 소프트웨어 개발, 석유 산업 컨설팅 등의 활동을 수행하며, 포괄적 핵실험 금지 조약을 위한 노르웨이 국가 데이터 센터 역할을 수행한다. - 컴퓨터 네트워크 - 라우터
라우터는 네트워크 간 데이터 패킷을 전달하는 네트워크 장비로, ARPANET의 IMP에서 시작하여 다양한 종류로 발전해 왔으며, 최신 네트워크 기술과 함께 네트워크의 확장성, 안정성 및 효율성을 향상시키는 데 중요한 역할을 한다.
| 혼잡 제어 |
|---|
2. 네트워크 용량과 혼잡 붕괴
라우터 처리 시간 및 링크 처리량을 포함한 네트워크 자원은 제한되어 있다. 여러 사용자가 동시에 네트워크를 사용하거나 대용량 데이터를 전송할 때 자원 경합이 발생하여 네트워크가 혼잡해질 수 있다. 무선 LAN은 단일 PC로도 쉽게 채워질 수 있으며,[2] 빠른 컴퓨터 네트워크에서도 백본은 소수의 서버와 클라이언트 PC에 의해 쉽게 혼잡해질 수 있다. 봇넷을 이용한 서비스 거부 공격은 가장 큰 인터넷 백본 네트워크 링크조차 채울 수 있으며, 대규모 네트워크 정체를 생성하여 심각한 서비스 장애를 일으킬 수 있다. 대한민국은 이러한 공격에 대한 방어 기술 개발에 힘쓰고 있다. 전화 네트워크에서도 대량 통화 이벤트는 디지털 전화 회선을 압도하여 서비스 거부 공격과 유사한 상황을 만들 수 있다.
2. 1. 혼잡 붕괴 (Congestive Collapse)
혼잡 붕괴는 혼잡으로 인해 유용한 통신이 방해받거나 제한되는 상태를 말한다. 혼잡 붕괴는 일반적으로 들어오는 트래픽이 나가는 대역폭을 초과하는 네트워크의 병목 지점에서 발생한다. 근거리 통신망과 광역 통신망 사이의 연결 지점은 흔한 병목 지점이다. 네트워크가 이 상태에 있으면 트래픽 수요는 높지만 유용한 처리량이 거의 없는 안정적인 상태로 정착하며, 이 과정에서 패킷 지연 및 손실이 발생하고 서비스 품질이 극도로 낮아진다.혼잡 붕괴는 1984년에 가능한 문제로 확인되었다.[3] 1986년 10월 초창기 인터넷에서 처음 관찰되었으며,[4] 당시 NSFNET 1단계 백본은 용량에서 40bit/s로 세 자릿수나 급감했다.[5] 이는 종단 노드에서 1987년과 1988년 사이에 반 재이콥슨과 샐리 플로이드의 혼잡 제어를 구현하기 시작할 때까지 계속되었다.[6]
1980년대 반 제이콥슨이 TCP의 혼잡 제어를 도입할 당시의 인터넷 환경은 혼잡 붕괴 현상이 큰 문제거리였다. 각 호스트는 정보를 빨리 보내기 위하여 정해진 시간 내에 보낼 수 있는 최대의 패킷을 보냈고, 일부 라우터에서는 혼잡 현상이 발생하여 정해진 시간 내에 받은 패킷들을 모두 처리하지 못하였다. 정해진 시간 내에 패킷이 처리되지 않으면 호스트는 패킷을 재전송하였고, 라우터는 더 많은 패킷을 받게 되어서 혼잡 현상이 더 심해졌다. 중간 라우터에서 처리할 수 있는 것보다 더 많은 패킷이 전송되면 중간 라우터는 네트워크 종단점이 정보를 재전송할 것으로 예상하여 많은 패킷을 폐기했다. 그러나 초기 TCP 구현은 재전송 동작이 좋지 않았다. 이러한 패킷 손실이 발생하면 종단점은 손실된 정보를 반복하는 추가 패킷을 보내 들어오는 속도를 두 배로 늘렸다.
3. 혼잡 제어 (Congestion Control)
혼잡 제어는 네트워크 혼잡을 방지하기 위해 트래픽 전송률을 조절하는 기술이다.[7] 이는 일반적으로 패킷 전송률을 줄임으로써 수행된다. 혼잡 제어는 발신자가 '네트워크'를 압도하는 것을 방지하는 반면, 흐름 제어는 발신자가 '수신자'를 압도하는 것을 방지한다.
TCP의 혼잡 제어는 1980년대 반 제이콥슨이 도입하였다. 그 당시의 인터넷 환경은 혼잡 붕괴 현상이 큰 문제거리였다. 각 호스트는 정보를 빨리 보내기 위해 정해진 시간 내에 보낼 수 있는 최대 패킷을 보냈고, 일부 라우터에서는 혼잡 현상이 발생하여 정해진 시간 내에 받은 패킷을 모두 처리하지 못하였다. 정해진 시간 내에 패킷이 처리되지 않으면 호스트는 패킷을 재전송하였고, 라우터는 더 많은 패킷을 받게 되어 혼잡 현상이 더 심해졌다.
TCP의 혼잡 제어는 패킷을 보내는 쪽에서 네트워크의 수용량을 결정하는 방식으로 동작한다. 패킷을 보내는 측에서 안전하게 보낼 수 있는 패킷의 수를 알고 있고, 패킷이 잘 도착하면 ACK 패킷을 받는다. 즉 이전에 보낸 패킷이 잘 도착했다는 것을 ACK 패킷을 받은 것으로 알 수 있고, ACK 패킷을 받으면 안전하게 새 패킷을 더 보낼 수 있기 때문에 TCP의 혼잡 제어를 셀프클록 방식(self-clocking)이라고 한다. 물론 처음부터 네트워크의 수용량을 아는 것은 어렵다. 설상가상으로 네트워크의 수용량은 시시때때로 바뀐다. 이것은 보내는 측에서 네트워크의 상태에 따라서 전송 속도를 조절해야 한다는 뜻이다.
백 프레셔(back pressure), 초크 패킷, 암시적 혼잡 신호는 혼잡 제어 기술이다.[25]
- 백 프레셔: 하류의 힘을 "밀어내기" 위해 시스템이 실행하는 액션을 의미한다.[26]
- 초크 패킷: 네트워크에서 이벤트나 재해 발생 시, 통신 요청 과다로 인해 통신이 원활하지 않게 되는 현상에서 발생하는 전송 제어 단위이다. 컴퓨터 등의 장치에서 생성되어, 트래픽 흐름을 제한하기 위해 송신 장치로 반송되는 제어 단위이다.[25]
- 암시적 혼잡 신호: 송신 측이 지연의 증가와 패킷의 폐기를 감지할 수 있는 경우이다.[27]
혼잡 제어의 현대적 이론은 프랭크 켈리가 선구자이며, 미시 경제학과 볼록 최적화 이론을 응용하여 개별 사용자가 자신의 전송률을 제어함으로써 최적의 네트워크 전송률을 달성할 수 있음을 보였다. 최적 전송률의 예시로, 맥스-민 공정성이나 켈리가 제안한 비례 공정성이 있지만, 이 외에도 여러 가지를 생각해 볼 수 있다.
최적 전송률 할당은 다음 수식으로 간략하게 나타낼 수 있다. (자세한 내용은 하위 섹션 "혼잡 제어의 이론" 참고)
:
: 여기서
이 모델의 약점은 모든 플로우가 같은 가격이라고 가정하는 점이다. 실제로는 플로우 제어의 윈도우를 슬라이드하면 버스트적인 전송이 발생하고, 특정 링크에서의 손실이나 지연이 변화하며, 플로우도 변화한다.
3. 1. 혼잡 제어의 이론
프랭크 켈리는 미시경제학과 볼록 최적화 이론을 적용하여 혼잡 제어 이론을 정립했다.[7] 그는 개별 사용자가 자신의 속도를 제어하여 ''최적의'' 네트워크 전체 속도 할당을 달성할 수 있는지 설명했다. ''최적의'' 속도 할당의 예로는 최대 최소 공정 할당과 켈리가 제안한 비례 공정 할당 등이 있다.유량 의 속도를 라 하고, 링크 의 용량을 이라 하며, 유량 가 링크 을 사용하면 는 1이고, 그렇지 않으면 0이라고 한다. , 및 을 해당 벡터 및 행렬이라고 하자. 를 사용자가 속도 로 전송하여 얻는 이점을 측정하는 효용 함수라고 하는 증가하고 엄격하게 오목 함수라고 하자. 그러면 최적의 속도 할당은 다음을 만족한다.
:
: such that
이 문제의 라그랑주 쌍대는 각 흐름이 네트워크에서 신호를 보낸 ''가격''에만 기반하여 자체 속도를 설정하도록 분리한다. 각 링크 용량은 제약 조건을 부과하며, 이로 인해 라그랑주 승수, 이 발생한다. 이러한 승수의 합, 는 흐름이 반응하는 가격이다.
혼잡 제어는 분산 최적화 알고리즘이 된다. 현재 많은 혼잡 제어 알고리즘은 이 프레임워크에서 모델링할 수 있으며, 은 링크 의 손실 확률 또는 대기 지연이다. 주요 약점은 슬라이딩 윈도우 흐름 제어가 주어진 링크에서 서로 다른 흐름이 서로 다른 손실 또는 지연을 관찰하도록 하는 버스트성을 유발하는 반면, 모든 흐름에 동일한 가격을 할당한다는 것이다.
3. 2. 혼잡 제어 알고리즘 분류
혼잡 제어 알고리즘은 다양한 기준으로 분류할 수 있다.[7]- 네트워크 피드백 유형 및 양: 손실, 지연, 단일 비트 또는 다중 비트 명시적 신호 등
- 점진적 배포 가능성: 송신자만 수정, 송신자와 수신자 모두 수정, 라우터만 수정, 송신자, 수신자 및 라우터 모두 수정 등
- 성능 측면: 높은 대역폭-지연 곱 네트워크, 손실 있는 링크, 공정성, 짧은 흐름에 유리, 가변 속도 링크 등
- 공정성 기준: 맥스-민 공정성, 비례 공정성, 제어 지연 등
4. 혼잡 제어 기법
혼잡 제어는 과도한 네트워크 트래픽으로 인한 혼잡 붕괴를 막기 위해 트래픽 진입을 조절하는 기술이다.[7] 주로 패킷 전송률을 줄여서 혼잡을 제어한다. 혼잡 제어는 발신자가 네트워크를 압도하는 것을 방지하는 반면, 흐름 제어는 발신자가 수신자를 압도하는 것을 방지한다.
혼잡을 제어하기 위한 다양한 메커니즘이 개발되었으며, 주요 기법은 다음과 같다.
- 네트워크 스케줄러: 활성 대기열 관리를 통해 혼잡 발생 시 네트워크 패킷을 재정렬하거나 선택적으로 삭제한다.
- 명시적 혼잡 알림(ECN): IP 및 TCP 통신 프로토콜의 확장으로, 흐름 제어 메커니즘을 추가한다.
- TCP 혼잡 제어: 네트워크 혼잡을 처리하기 위한 다양한 구현 방식이 존재한다. (자세한 내용은 하위 섹션 참조)
일반적인 라우터 혼잡 회피 메커니즘에는 공정 대기열과 같은 스케줄링 알고리즘과 임의 초과 감지(RED)가 있다. RED는 혼잡이 감지될 때 패킷을 무작위로 삭제하여 혼잡 붕괴가 발생하기 전에 종단점이 전송 속도를 늦추도록 유도한다.
UDP는 혼잡 제어를 하지 않으므로, UDP 기반 프로토콜은 자체적으로 혼잡을 처리해야 한다. VoIP와 같은 실시간 스트리밍 프로토콜은 고정 속도로 전송되기 때문에 혼잡 발생 시 패킷 손실을 방지하기 위한 특별한 조치가 필요하다.
이 외에도 다음과 같은 혼잡 제어 기술이 있다.[25]
- 백 프레셔 (Back Pressure): 하류의 힘을 "밀어내기" 위해 시스템이 실행하는 동작이다.[26]
- 초크 패킷: 네트워크 혼잡 시 트래픽 흐름을 제한하기 위해 송신 장치로 보내는 제어 단위이다.[25]
- 암시적 혼잡 신호: 송신 측이 지연 증가나 패킷 폐기를 감지하여 혼잡을 인지하는 경우이다.[27]
4. 1. TCP 혼잡 제어
TCP의 혼잡 제어는 1980년대 반 제이콥슨에 의해 도입되었다. 당시 인터넷은 혼잡 붕괴 현상으로 큰 어려움을 겪고 있었다. 각 호스트는 정보를 빨리 보내기 위해 최대 패킷을 보냈지만, 일부 라우터에서 혼잡 현상이 발생하여 패킷 처리가 지연되었다. 이로 인해 호스트는 패킷을 재전송했고, 라우터는 더 많은 패킷을 받아 혼잡이 심화되었다.[3][4][5][6]TCP 혼잡 제어는 패킷을 보내는 쪽에서 네트워크의 수용량을 파악하여 동작한다. 송신 측은 안전하게 보낼 수 있는 패킷 수를 알고, 패킷이 잘 도착하면 ACK 패킷을 받는다. ACK 패킷을 받으면 새 패킷을 더 보낼 수 있기 때문에 TCP 혼잡 제어를 셀프클록 방식(self-clocking)이라고 한다. 초기에는 네트워크 수용량을 알기 어렵고, 수용량은 계속 변하기 때문에 송신 측은 네트워크 상태에 따라 전송 속도를 조절해야 한다.
혼잡 붕괴는 혼잡으로 인해 유용한 통신이 제한되는 상태를 말한다. 이는 주로 들어오는 트래픽이 나가는 대역폭을 초과하는 병목 지점에서 발생한다. 근거리 통신망과 광역 통신망 사이의 연결 지점이 대표적인 병목 지점이다. 네트워크가 혼잡 붕괴 상태에 있으면 트래픽 수요는 높지만 유용한 처리량은 거의 없고, 패킷 지연 및 손실이 발생하며 서비스 품질이 매우 낮아진다.
초기 TCP 구현은 재전송 동작이 좋지 않아 패킷 손실 시 추가 패킷을 보내 혼잡을 악화시켰다. 이를 해결하기 위해 네트워크 스케줄러, 명시적 혼잡 알림, TCP 혼잡 제어와 같은 메커니즘이 고안되었다. 일반적인 라우터 혼잡 회피 메커니즘에는 공정 대기열과 임의 초과 감지(RED)가 있다.
널리 사용되는 TCP 프로토콜은 패킷 손실 또는 큐잉 지연을 감시하여 전송 속도를 조절한다. 다양한 네트워크 혼잡 회피 프로세스는 서로 다른 장단점을 가진다.[9] TCP 혼잡 회피 알고리즘은 인터넷 혼잡 제어의 주요 기반이다.[10][11][12][13][14]
TCP 혼잡 제어 방식에는 합 증가/곱 감소(AIMD), 느린 시작(Slow Start), 빠른 재전송(Fast Retransmit), 빠른 회복(Fast Recovery) 등이 있다. 각 방식에 대한 자세한 설명은 하위 섹션에 나와있다.
동시 TCP 흐름이 꼬리 물림(tail-drop) 현상을 겪거나 버퍼블로트가 존재할 때 TCP 전역 동기화 문제가 발생할 수 있다.
4. 1. 1. 합 증가/곱 감소 (AIMD, Additive Increase/Multiplicative Decrease)
AIMD(Additive Increase/Multiplicative Decrease)는 패킷을 하나씩 보내고 문제없이 도착하면 창 크기(단위 시간 내에 보내는 패킷의 수)를 1씩 증가시키며 전송하는 방식이다. 패킷 전송에 실패하거나 일정한 시간을 넘으면 패킷 전송 속도를 절반으로 줄인다.[1]이 방식은 여러 호스트가 하나의 네트워크를 공유할 때, 나중에 진입하는 쪽이 처음에는 불리하지만 시간이 흐르면 평형 상태로 수렴하는 공평성을 보장한다.[1]
하지만 초기에 네트워크의 높은 대역폭을 활용하지 못해 시간이 오래 걸리고, 네트워크 혼잡 상황을 미리 감지하지 못하고 혼잡해진 후에야 대역폭을 줄이는 단점이 있다.[1]
4. 1. 2. 느린 시작 (Slow Start)
느린 시작(Slow Start)은 AIMD 방식과 마찬가지로 패킷을 하나씩 보내는 것부터 시작한다. 그러나 이 방식은 패킷이 문제없이 도착하면 각각의 ACK 패킷마다 창 크기(단위 시간 내에 보내는 패킷의 수)를 1씩 늘린다. 즉, 한 주기가 지나면 창 크기가 2배가 된다. 따라서 전송 속도는 AIMD와 다르게 지수 함수 꼴로 증가한다. 대신에 혼잡 현상이 발생하면 창 크기를 1로 줄인다.처음에는 네트워크의 수용량을 예상할 수 있는 정보가 없지만, 한번 혼잡 현상이 발생하고 나면 네트워크의 수용량을 어느 정도 예상할 수 있다. 따라서 혼잡 현상이 발생했던 창 크기의 절반까지는 이전처럼 지수 함수 꼴로 창 크기를 증가시키고, 그 이후부터는 완만하게 1씩 증가시킨다.
초기에 지수 함수 꼴로 창 크기를 빠르게 증가시키는 방식의 이름이 느린 시작인 것은 어울리지 않는다고 생각할 수도 있다. 하지만 느린 시작의 의미는 선형 증가 방식과 비교해서는 안 되고, 느린 시작이 발명되었을 당시 TCP의 동작 방식과 비교해야 한다. 이전의 TCP 동작은 처음에 최대한 보낼 수 있는 만큼의 패킷을 보내는 것으로 시작했고, 느린 시작은 이와 달리 창 크기를 1에서부터 시작하여 지수 함수 꼴로 증가시켜 가면서 네트워크의 수용량을 감지한다.
이 방식은 AIMD 방식보다 더 효율적인 방법이지만, 마찬가지로 혼잡한 상황이 된 경우에는 타임아웃이 될 때까지 기다리는 동안 큰 시간 공백이 있다.
4. 1. 3. 빠른 재전송 (Fast Retransmit)
빠른 재전송은 TCP의 혼잡 조절에 추가된 정책이다. 패킷을 받는 쪽에서 먼저 도착해야 할 패킷이 도착하지 않고 다음 패킷이 도착한 경우에도 ACK 패킷을 보낸다. 단, 순서대로 잘 도착한 마지막 패킷의 다음 패킷 순번을 ACK 패킷에 실어서 보낸다. 따라서 중간에 패킷 하나가 손실되면 보내는 측에서는 순번이 중복된 ACK 패킷을 받게 되고, 이것을 감지하는 순간 문제가 되는 순번의 패킷을 재전송한다. 빠른 재전송은 중복된 순번의 패킷을 3개 받으면 재전송을 한다. 그리고 이러한 현상은 약간 혼잡한 상황이 일어난 것이므로 혼잡을 감지하고 창 크기를 줄이게 된다.4. 1. 4. 빠른 회복 (Fast Recovery)
빠른 회복 정책(Fast Recovery)은 혼잡의 특성을 보다 잘게 분류하기 위해 나온 기법이다. 빠른 재전송만 적용하는 경우, 혼잡이 발생할 때마다 윈도우는 1로 설정되기 때문에 혼잡의 강약 척도에 상관없이 성능 병목이 발생하게 된다. 하지만 일반적으로 중복된 3개의 패킷을 받는 경우는 네트워크 혼잡이 그렇게 크지 않은 경우로 판단되는데, 이 경우 빠른 회복 정책을 통해 윈도우 크기를 일부분만 줄이게 된다.[28]보통 빠른 재전송과 빠른 회복은 같이 구현되는 편이며, 대표적인 TCP 구현체인 TCP Reno 방식 역시 느린 시작, 빠른 재전송, 빠른 회복 셋을 모두 구현한다. 마이크로소프트 윈도우 운영체제도 이 방식으로 동작한다.
4. 2. 명시적 혼잡 알림 (ECN, Explicit Congestion Notification)
명시적 혼잡 알림(ECN, Explicit Congestion Notification)은 UDP 및 TCP 통신 프로토콜의 확장으로, 네트워크 장비가 혼잡 상황을 명시적으로 알리는 방식이다.[20] ECN은 혼잡을 알리기 위해 프로토콜 비트를 사용하며, 이는 RED/WRED 알고리즘에 의한 패킷 손실로 신호를 보내는 간접적인 혼잡 알림보다 낫다.[21][15]라우터가 ECN 가능으로 표시된 패킷을 수신하고 혼잡을 예상하면, ECN 플래그를 설정하여 송신자에게 혼잡을 알린다. 송신자는 전송 대역폭을 줄여 응답해야 하며, 예를 들어 TCP 윈도우 크기를 줄이거나 다른 방법을 통해 전송 속도를 줄인다.
ECN은 패킷 손실 없이 혼잡 제어가 가능하다는 장점이 있지만, 이를 위해서는 두 호스트 모두에서 지원이 필요하다.[21][15]
BECN(Backward ECN)은 또 다른 혼잡 알림 메커니즘 제안이다. 이는 ICMP 소스 억제 메시지를 IP 신호 메커니즘으로 사용하여 IP 네트워크에 대한 기본적인 ECN 메커니즘을 구현한다. 효과적인 혼잡 알림은 적절한 조정을 위해 TCP 및 UDP와 같은 전송 계층 프로토콜로 전파될 수 있다.
4. 3. 능동적 큐 관리 (AQM, Active Queue Management)
네트워크 스케줄러에 의한 능동적 큐 관리(AQM, Active Queue Management)는 네트워크 인터페이스 컨트롤러(NIC)와 관련된 전송 버퍼 내부에서 네트워크 패킷을 재정렬하거나 삭제하는 것을 의미한다.AQM은 혼잡이 발생할 경우 네트워크 패킷을 선택적으로 삭제하거나 재정렬하여 혼잡을 제어한다. 이는 혼잡 붕괴가 발생하기 전에 종단점이 전송 속도를 늦추도록 유도한다.
4. 3. 1. 무작위 조기 감지 (RED, Random Early Detection)
무작위 조기 감지(RED)는 네트워크 장비의 출력(egress) 큐에 사용되는 한 가지 해결책이다.[15][16] 출력 큐가 여러 개인 네트워킹 하드웨어 포트에서는 가중 무작위 조기 감지(WRED)를 사용할 수 있다.RED는 일부 패킷을 삭제함으로써 TCP 송신자와 수신자에게 간접적으로 신호를 보낸다. 예를 들어 평균 큐 길이가 임계값(예: 50%)을 초과하면 큐가 더 채워짐에 따라 선형 또는 3차 함수 방식으로 더 많은 패킷을 삭제하며,[17] 최대 100%까지 삭제할 수 있다.
4. 3. 2. 가중 무작위 조기 감지 (WRED, Weighted Random Early Detection)
가중 무작위 조기 감지(WRED)는 임의 조기 감지(RED)의 변형으로, 트래픽 우선순위에 따라 패킷 폐기 확률을 다르게 적용하는 방식이다.[15][16] RED는 일부 패킷을 삭제함으로써 TCP 송신자와 수신자에게 간접적으로 신호를 보낸다. 예를 들어 평균 큐 길이가 임계값(예: 50%)을 초과하면 큐가 더 채워짐에 따라 선형 또는 3차 함수 방식으로 더 많은 패킷을 삭제한다.[17] 최대 100%까지 삭제할 수 있다.4. 4. 기타 혼잡 제어 기법
네트워크 스케줄러의 활성 대기열 관리는 혼잡 발생 시 네트워크 패킷을 재정렬하거나 선택적으로 삭제한다. 명시적 혼잡 알림은 흐름 제어 메커니즘을 추가하는 IP 및 TCP 통신 프로토콜의 확장이다. TCP 혼잡 제어는 네트워크 혼잡을 처리하기 위한 다양한 구현 방식이다.일반적인 라우터 혼잡 회피 메커니즘에는 공정 대기열 및 기타 스케줄링 알고리즘과, 혼잡이 감지될 때 패킷이 무작위로 삭제되는 임의 초과 감지(RED)가 있다. 이는 혼잡 붕괴가 발생하기 전에 최종 지점이 전송 속도를 늦추도록 한다.
일부 종단 간 프로토콜은 혼잡한 조건에서 잘 작동하도록 설계되었다. TCP가 대표적인 예시이다. 혼잡을 처리하는 최초의 TCP 구현은 1984년에 설명되었지만,[8] 1988년 Van Jacobson이 BSD에 오픈 소스 솔루션을 포함하면서 처음으로 좋은 동작을 제공했다.
UDP는 혼잡을 제어하지 않는다. UDP를 기반으로 구축된 프로토콜은 혼잡을 독립적으로 처리해야 한다. 혼잡과 관계없이 고정 속도로 전송하는 프로토콜은 문제가 될 수 있다. 많은 VoIP 프로토콜을 포함한 실시간 스트리밍 프로토콜이 이러한 속성을 가지고 있다. 따라서 혼잡이 발생할 때 패킷이 삭제되지 않도록 품질 관리와 같은 특별한 조치를 취해야 한다.
그 외 혼잡 제어 기술에는 백 프레셔(back pressure), 초크 패킷, 암시적 혼잡 신호가 있다.[25]
5. 혼잡 회피의 부작용
혼잡 회피 기술은 때때로 부작용을 일으킬 수 있다.
와이파이, 3G 등 무선 계층을 사용하는 네트워크는 간섭으로 인해 데이터 손실이 발생하기 쉬우며, 이는 처리량 저하로 이어질 수 있다. 무선 기반 물리 계층에서 동작하는 TCP 연결은 이러한 데이터 손실을 혼잡 발생으로 오인하는 경향이 있다.[1]
느린 시작 프로토콜은 단기 연결에 취약하다. 이전 웹 브라우저는 각 파일에 대해 연결을 열고 닫는 방식으로 많은 단기 연결을 생성했다.[1] 이로 인해 대부분의 연결이 느린 시작 모드에 유지되어 초기 성능이 좋지 않을 수 있다.[1]
5. 1. 무선 링크 (Radio Links)
와이파이, 3G 등 무선 계층을 사용하는 네트워크는 간섭으로 인해 데이터 손실이 발생하기 쉬우며, 이는 처리량 저하로 이어질 수 있다. 무선 기반 물리 계층에서 동작하는 TCP 연결은 이러한 데이터 손실을 혼잡 발생으로 오인하는 경향이 있다.[1]5. 2. 짧은 연결 (Short-lived Connections)
느린 시작 프로토콜은 단기 연결에 취약하다. 이전 웹 브라우저는 각 파일에 대해 연결을 열고 닫는 방식으로 많은 단기 연결을 생성했다.[1] 이로 인해 대부분의 연결이 느린 시작 모드에 유지되어 초기 성능이 좋지 않을 수 있으며, 많은 연결이 느린 시작 단계를 벗어나지 못하여 지연 시간이 크게 증가했다.[1] 이러한 문제를 방지하기 위해 최신 브라우저는 여러 개의 연결을 동시에 열거나 특정 서버에서 요청된 모든 파일에 대해 하나의 연결을 재사용한다.[1]6. 접속 제어 (Admission Control)
접속 제어는 새로운 네트워크 연결을 설정하기 전에 장치가 권한을 받아야 하는 모든 시스템을 의미한다. 새로운 연결이 혼잡을 유발할 위험이 있는 경우 권한이 거부될 수 있다. 예시로는 기존 배선을 통한 홈 네트워킹을 위한 ITU-T G.hn 표준의 경쟁 없는 전송 기회(CFTXOP), IP 네트워크를 위한 자원 예약 프로토콜, 이더넷을 위한 스트림 예약 프로토콜 등이 있다.
참조
[1]
논문
Simulation in computer network design and modeling: Use and analysis
https://books.google[...]
IGI Global
2012
[2]
논문
A Pathway to solving the Wi-Fi Tragedy of the Commons in apartment blocks
http://unsworks.unsw[...]
IEEE
2017-11
[3]
간행물
896
IETF RFC
[4]
서적
TCP/IP Illustrated, Volume 1: The Protocols
https://books.google[...]
Pearson Education
2011
[5]
citation
Congestion Avoidance and Control
https://ee.lbl.gov/p[...]
1988-11
[6]
뉴스
Sally Floyd, Who Helped Things Run Smoothly Online, Dies at 69
https://www.nytimes.[...]
New York Times
2019-09-04
[7]
간행물
A Control Theory Approach for Congestion Control in Intranetwork
https://www.scienced[...]
2000-11-01
[8]
간행물
A Protocol for Packet Network Intercommunication
http://ece.ut.ac.ir/[...]
1974-05
[9]
citation
Proceedings 25th Annual IEEE Conference on Local Computer Networks. LCN 2000
2000
[10]
논문
Congestion Avoidance and Control
http://citeseer.ist.[...]
1988
[11]
간행물
TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms
RFC 2001
[12]
간행물
TCP Congestion Control
RFC 2581
[13]
간행물
TCP Increasing TCP's Initial Window
RFC 3390
[14]
웹사이트
TCP Congestion Avoidance Explained via a Sequence Diagram
http://www.eventheli[...]
[15]
웹사이트
Sally Floyd: RED (Random Early Detection) Queue Management
http://www.icir.org/[...]
[16]
논문
Random Early Detection Gateways for Congestion Avoidance
http://citeseer.ist.[...]
1993
[17]
citation
An Analytical RED Function Design Guaranteeing Stable System Behavior
[18]
간행물
RRED: Robust RED Algorithm to Counter Low-rate Denial-of-Service Attacks
http://sites.google.[...]
IEEE
2010
[19]
웹사이트
Congestion Avoidance Overview
https://www.cisco.co[...]
Cisco Systems
2020-08-07
[20]
간행물
The Addition of Explicit Congestion Notification (ECN) to IP
RFC 3168
[21]
웹사이트
Comparative study of RED, ECN and TCP Rate Control (1999)
http://citeseer.ist.[...]
[22]
citation
Generalized Window Advertising for TCP CongestionControl
http://nrlweb.cs.ucl[...]
2020-11-13
[23]
citation
Telecommunication Network Intelligence
[24]
웹사이트
A proposal for Backward ECN for the Internet Protocol
http://tools.ietf.or[...]
[25]
서적
Foundations of modern networking : SDN, NFV, QoE, IoT, and Cloud
https://www.worldcat[...]
2016
[26]
웹사이트
Preventing Systemic Failure: Backpressure—What It Is and How It Works - Glasnostic Blog
https://glasnostic.c[...]
2021-11-30
[27]
웹사이트
CAPTER 13 :CONGESTION CONTROL IN DATA NETWORK
http://site.iugaza.e[...]
2021-11-30
[28]
저널
TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms
https://datatracker.[...]
1997-01
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com