TCP - 흐름제어 , 혼잡제어

TCP 프로토콜 - (흐름제어 와 혼잡제어)

일단 흐름제어와 혼잡제어는 네트워크 트래픽에 관한 기술 입니다.

 

  • 흐름제어(Flow Control)

    송신측과 수신측의 데이터 처리 속도 차이를 해결하기 위한 기법

 

  • 혼잡제어(Congestion Control)

    송신측의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법

 

흐름제어

수신측이 송신측보다 빠른건 문제가 없지만, 송신측이 수신측보다 빠를 때, 데이터 손실이 일어날 수 있음, 그래서 송신측의 데이터 전송량을 수신측에 맞춰야합니다.

수신측에 데이터 전송량을 맞추는 2가지 방법

1.Stop and Wait 방식

말그대로 매번 패킷을 보낼 때마다, 확인을 한 후, 다음 패킷을 전송하는 방법

image

2.Sliding Window

3 Way Handshake 를 하면서 수신측이 송신측의 윈도우 크기를 정해준다

먼저 송신측에서 윈도우 크기만큼 패킷을 보낸 다, 그 후 수신측에서 응답을 하면 윈도우를 이동시킨다.

 

여기서 송신측이 window를 이동시키는 방법은 2가지가 있는데,

하나는 Go Back N 방식 과 Selective-Reject 방식이 있다

Go Back N ARQ

이 친구는 예를 들어 1 ~ 5번 패킷을 전송 했는데, 만약 2번 패킷이 손실되었다고 수신측이 말한다면 , 2번 부터 다시 쭈루루룩 보내는 것을 말한다

Selective-Reject ARQ

이 친구는 예를 들면 1 ~ 5번 패킷을 전송 했는데, 만약 2번 패킷이 손실됬다! 그러면 2번 패킷만 다시 재전송 하는 친구이다.

 

image

 

 

혼잡제어

네트워크 내의 패킷의 수가 과도하게 증가하는 현상을 혼잡(Congestion)이라 하는데 이를 방지하기 위한 것이 혼잡제어 이다. 혼잡제어 알고리즘(AIMD - Additive Increate / Multicative Decrease)에 3가지를 설명하면

  1. Slow Start - window size를 1씩 늘려준다 ===> 즉 한 주기가 끝나면 , 크기가 2배가 되며 지수함수 꼴로 증가

    만약 혼잡현상이 발생시 windows size를 1로 줄인다

  2. Fast Retransmit(빠른 재전송) - 만약 수신측에서 패킷 손실로 인해 재전송 요청을 중복패킷에 대해 3개 받으면 , 혼잡한 상황이라 생각하여 windows size를 줄인다

  3. Fast Recovery(빠른 회복) - 혼잡제어가 발생할 때, window size의 크기를 반으로 줄이며, window의 크기를 선형 증가 시킨다

image

 

 

 

 

 

 

'네트워크' 카테고리의 다른 글

SSL 동작과정  (0) 2020.08.19
3&4 Way Handshake  (0) 2020.08.19
Post와 GET의 차이  (0) 2018.03.11

+ Recent posts