///////
Search
👩🏻

TCP Flow Control은 무엇을 해결하기 위한 기능의 집합인가요?

핵심
송신측과 수신측의 데이터 처리 속도로 인한 수신 버퍼 overflow를 해결하기 위한 기법입니다.
송신 측이 수신측의 feedback을 받아 수신 상태를 확인하며 전송하는 것이 방법이며
Stop and Wait 방식과 Sliding Window 방식이 있습니다.
TCP 통신은 reliavble network를 보장하는 프로토콜인데, 신뢰성있는 네트워크를 보장한다는 것은
아래의 문제점들을 해결한다는 것이다.
1.
손실 - packet이 손실될 수 있는 문제
2.
순서바뀜 - packet의 순서가 바뀌는 문제
3.
Congestion - 네트워크가 혼잡한 문제
4.
Overload - receiver가 overload 되는 문제

Flow Control (흐름제어)는

수신 클라이언트가 수행하는 제어 기법으로,
송신측과 수신측의 데이터 처리 속도 차이로 인한 수신 버퍼 overflow를 해결하기 위한 기법이다.
수신 버퍼 overflow
: 수신 측의 처리 속도보다 빠르게 데이터가 들어와 점점 버퍼가 꽉 차서 초과분의 데이터가 드랍되어 데이터가 손실되는 상황
동작 핵심
수신 클라이언트의 처리속도에 맞춰서 송신 서버의 데이터 전송 속도를 강제로 줄인다.
수신측이 송신측으로 자신의 수신 가능 상태를 알리는 feedback을 한다.
방식에는 크게 두 가지로 나뉜다.
Stop and Wait 방식
송신 서버는 한번의 데이터 전송 후 멈춘 뒤(stop) 수신 클라이언트로부터 이전 데이터를 잘 받았다는 응답(feedback)이 올 때까지 다음 데이터 전송을 기다린다.(Wait)
간단하지만, 전송 효율이 낮아 sliding window 방식을 일반적으로 사용
Sliding Window 방식
→ 다음으로