혼잡 제어란 무엇인가?
혼잡 제어는 네트워크에서 다수의 송신자가 동시에 많은 데이터를 빠르게 전송할 때 발생하는 혼잡을 해결하기 위한 메커니즘입니다. 혼잡이 발생하면 패킷 지연이나 패킷 손실이 생기며, 네트워크 성능이 저하됩니다.
혼잡 제어와 흐름 제어의 차이
혼잡 제어는 다수의 송신자가 네트워크에 과도한 데이터를 보내는 상황을 관리하는 것이며, 흐름 제어는 단일 송신자가 수신자의 처리 능력을 초과하지 않도록 전송 속도를 조절하는 메커니즘입니다.
<details> <summary>흐름 제어와의 차이점</summary> - **혼잡 제어**: 네트워크 전체의 혼잡을 관리. - **흐름 제어**: 수신자의 처리 능력을 고려해 데이터를 전송. </details>
✅ 흐름 제어와의 차이점
혼잡 제어: 네트워크 전체의 혼잡을 관리.
흐름 제어: 수신자의 처리 능력을 고려해 데이터를 전송.
혼잡 제어 시나리오 1: 무한대 버퍼를 가진 라우터
- 가정: 무한대 크기의 버퍼를 가진 라우터가 있으며, 입출력 링크의 용량은 R입니다.
- 전송률 lin이 R/2에 근접하면 패킷 지연이 발생하며, lin이 R에 가까워지면 더 큰 지연이 발생합니다.
✅ 버퍼의 역할
버퍼는 패킷이 라우터에 도착했을 때 이를 임시로 저장하는 공간입니다. 하지만 버퍼가 꽉 차면 패킷은 지연되거나 손실될 수 있습니다.
혼잡 제어 시나리오 2: 유한한 버퍼를 가진 라우터
- 가정: 유한한 크기의 버퍼를 가진 라우터에서 패킷이 전송됩니다.
- 송신자는 타임아웃이 발생한 패킷을 재전송하며, 재전송된 데이터로 인해 전송된 데이터 양이 증가합니다.
- 만약 라우터의 버퍼가 가득 차면 패킷 손실이 발생하고, 송신자는 해당 패킷을 다시 전송해야 합니다.
✅ 타임아웃과 재전송
타임아웃이 발생하면 송신자는 수신자가 패킷을 받지 못했다고 판단하여 해당 패킷을 재전송합니다. 하지만 재전송이 불필요한 경우도 발생할 수 있습니다.
혼잡 제어의 비용
혼잡 제어의 비용에는 불필요한 재전송과 전송 성능 저하가 포함됩니다.
- 송신자는 패킷 손실을 감지하면 이를 재전송하지만, 중복된 패킷이 재전송되어 네트워크 자원이 낭비될 수 있습니다.
- 혼잡이 발생하면 전송 성능이 저하되며, 실질 전송률이 감소합니다.
혼잡 제어 시나리오 3: 멀티홉 경로에서의 혼잡
- 멀티홉 경로를 통해 여러 송수신자가 데이터를 전송할 때, 혼잡이 발생하면 특정 패킷이 버려질 수 있으며, 이미 전송된 패킷에 할당된 네트워크 용량도 낭비됩니다.
- 송신자가 전송한 패킷이 도착하기 전에 혼잡으로 인해 손실될 경우, 해당 패킷을 재전송해야 합니다.
혼잡 제어 방법: 종단 간 혼잡 제어
TCP는 종단 간 혼잡 제어 방식을 사용하여 네트워크의 혼잡을 관리합니다. 네트워크는 송신자와 수신자에게 명시적인 혼잡 정보를 제공하지 않지만, 패킷 손실과 지연을 통해 혼잡을 추정할 수 있습니다.
✅ 종단 간 혼잡 제어란?
종단 간 혼잡 제어는 네트워크 장치가 명시적인 혼잡 신호를 제공하지 않아도, 송신자가 패킷 손실이나 지연을 감지하여 전송 속도를 조절하는 방식입니다.
TCP 혼잡 제어 방식
TCP는 혼잡을 감지하여 전송 속도를 조절하는 방식으로 혼잡 제어를 수행합니다. 또한, 혼잡한 라우터에서 명시적인 혼잡 신호를 제공하는 프로토콜도 있습니다. 예를 들어, TCP ECN, ATM, DECbit와 같은 프로토콜은 네트워크 혼잡 정보를 송수신자에게 전달해 전송 속도를 조절할 수 있습니다.
✅ TCP ECN, ATM, DECbit 프로토콜이란?
이들 프로토콜은 네트워크 장치가 혼잡을 감지하면 이를 송수신자에게 알려, 송신자가 전송 속도를 조절할 수 있게 합니다.
혼잡 제어는 네트워크에서 혼잡으로 인한 성능 저하를 방지하는 중요한 메커니즘입니다. TCP는 패킷 손실과 지연을 감지해 전송 속도를 조절하며, 불필요한 재전송을 방지하기 위해 다양한 혼잡 제어 방식을 사용합니다. 또한, 명시적인 혼잡 신호를 제공하는 프로토콜을 통해 네트워크 혼잡을 효과적으로 관리할 수 있습니다.
'전공 공부 > 컴퓨터네트워크' 카테고리의 다른 글
TCP: 연결지향형 트랜스포트 (0) | 2024.10.29 |
---|---|
TCP 혼잡 제어 (1) | 2024.10.03 |
TCP 흐름 제어 (1) | 2024.10.03 |
연결지향형 트랜스포트 : TCP (2) | 2024.10.03 |
신뢰기반 데이터 전송의 원리 (1) | 2024.10.03 |