[네트워크] 흐름 제어(flow control) 란?
흐름 제어(flow control) 란?
흐름 제어(flow control)
흐름 제어는 수신 능력(속도)를 제어하고 통신 링크의 처리율을 높이기 위해 사용된다. 링크 계층의 대표적인 기능이 흐름 제어다.
흐름 제어의 목적
1. 수신 측의 데이터 처리 속도나 버퍼 용량을 초과 하지 않도록 송신 측의 전송 속도를 제어.
2. 통신 채널의 처리율(throughput)을 높여준다. 즉 데이터가 최대한 빠르게 보내 질 수 있도록 한다.
위 두개는 비슷해 보이지만 1번은 수신 측을 고려하는 것이고 2번은 전체적인 데이터 처리 속도를 고려한다.
흐름 제어 방식
1. 정지 대기 방식 (stop-and-wait protocol)
프레임마다 수신 측에 ACK을 받은 후 프레임을 전송하는 방식이다. 한 프레임 마다 제어를 하므로 오류가 발생하면 즉시 중단 할 수 있지만 정지 대기 방식은 그만큼 처리율(속도)가 낮다.
2. 슬라이딩 윈도우 흐름제어(SWFC)
정지 대기 방식의 전송을 개선한 방식. 수신 측에게 ACK을 받지 않더라도 여러개의 프레임을 연속적으로 전송 할 수 있다.
아래는 데이터 송신 시 오류가 발생하면 어떻게 처리 하는 지 보여준다.
송신 측에서 10개의 프레임을 한번에 보냈다고 치자. 하지만 수신 측에서 데이터를 확인 했는데 6번 째 프레임까지만 제대로 받았고 나머지는 오류가 발생했다. 수신 측은 프레임을 받았다는 ACK을 보낼 때 N(r)값을 함께 보낸다. N(7)을 보내면 6번째 프레임 까지는 잘 받았고 7번째 부터 다시 보내줘야 한다고 알려준다.
댓글
댓글 쓰기