Computer Network

TCP 혼잡제어 (Congestion Control)

Sara.H 2020. 7. 27. 15:23

*원래는 TCP의 전반적인 특성들과 함께 정리하려 했으나, 양이 많을 것 같아서 별도의 포스트로 분리함. 

 

TCP 의 혼잡 제어 (Congestion Control)

 

네트워크 상황은 쉽게 예측할 수 없다. 모두의 행동 양상에 따라서 동적으로 결정되기 때문이다. 따라서 네트워크 상황을 미리 어느정도 예측하고, 이에 기반하여 송신측에서 데이터를 보내는 양을 조절해야 한다. 

 

혼잡제어가 발생하는 세 가지 시나리오를 살펴보자. 

 

시나리오 1 : 두 개의 송신자와 무한 버퍼를 갖는 하나의 라우터. 

가장 단순한 시나리오

두 송신자는 단일 홉을 공유하는 연결을 가진다. 이 때 TCP 계층이 오류 복구, 흐름 제어, 혼잡 제어를 전혀 수행하지 않으며 헤더에 의한 오버헤드는 전혀 발생하지 않는다고 가정하자. 이러한 상황에서 유일한 제약은 (버퍼의 용량이 무한하기 때문에) 링크의 용량이다. 링크 버퍼의 용량이 R 이라고 하면 각 송신자는 R/2 를 초과하기 이전까지는 보내는 속도와 받는 속도가 일치한다고 가정할 수 있다. 하지만 링크의 용량을 초과하는 순간부터 디레이는 무한대로 증가한다. 

좀 더 현실적인 시나리오

좀 더 현실적인 시나리오를 가정해보자. 이 시나리오에서는 2개의 송신자와 유한 버퍼를 가진 하나의 라우터가 존재한다. 버퍼의 용량이 유한하기 때문에 버퍼가 가득 찼을 때 도착하는 패킷들은 버려지고 재전송되어야 한다. 1번 시나리오와 다른 점은 1.유한한 버퍼, 2.이에 따른 재전송 존재 이다. 

 

패킷이 재전송될 수 있으므로 송신율 (sending rate)이라는 용어 사용에 주의를 기울여야 한다. 람다 in 은 원래의 데이터를 소켓으로 보내는 송신율이고, 람다 프라임 in 은 원래의 데이터와 재전송되는 데이터의 송신율, 즉 네트워크에 제공된 부하 (offered load)라 한다. 

시나리오 2에서의 성능은 재전송이 어떻게 수행되느냐에 따라서 좌우된다. 

 

* 혼잡 네트워크의 비용 

1. 송신자는 버퍼 오버플로 때문에 버려진 패킷을 보상하기 위해 재전송을 수행해야 한다. 

2. 커다란 지연으로 인한 송신자의 불필요한 재전송은 라우터가 패킷의 불필요한 복사본들을 전송하는 데 링크 대역폭을 사용하는 원인이 된다. 

 

가정 : 라우터에 빈 공간이 있는지 확인할 수 있는 경우

라우터에 빈 공간이 있는지 알 수 있다면, 유실이라 판단하고 재전송하면 된다. 

 

'Computer Network' 카테고리의 다른 글

서브넷 (Subnet)  (0) 2022.02.04
[Network Layer] IP, Routers, NAT ...  (0) 2020.10.13
[Lecture 7, 8] TCP Service  (0) 2020.07.15
[Lecture 6] RDT : Pipelined Protocols  (0) 2020.07.03
[Lecture 5] RDT : Reliable Data Transfer  (1) 2020.07.02