흐름제어와 혼잡제어에 대하여 (이론)

Updated:

흐름제어 : 수신측이 송신측보다 데이터를 보내는 속도가 빠르면 아무 문제도 없음,

  • 그런데 송신측이 수신측보다 데이터를 보내는 속도가 빠르면 문제가 생김

  • 그래서 수신측에서 제한한 저장용량보다 초과가 되면 데이터 손실이 발생함

송신 측의 데이터 전송량을 수신측에 따라서 조절해야함

방법으로는 2가지가 있다.

  1. Stop and Await : 말그대로 매번 전송한 패킷에 대해 확인응답을 받아야만 그 다음 패킷을 전송하는 방법
  2. Sliding Window : 수신측에서 설정한 윈도우 크기만큼 송신측에서 확인 응답없이 (송신측에서 수신측으로 확인 응답을 보내지 않는다는 의미) 세그먼트를 전송 할수 있게 하여 데이터 흐름을 동적으로 조절함

Sliding Window 동작 방식 :

먼저 윈도우에 포함되는 모든 패킷을 전송하고, 그 패킷들의 전달이 확인되는대로 이 윈도우를 옆으로 옮김(Slide)으로써 그 다음 패킷들을 전송

전달을 확인하는 방식은 TCP의 3-way handshaking 방법

  • 결국, Receiver가 ACK를 하면 Sender는 그 뒤에 설정된 윈도우 크기만큼 증분하여 데이터를 보낸다

흐름제어

혼잡제어 : 송신측의 데이터 속도를 줄이는법

  • 왜냐하면 송신측의 데이터를 대형 네트워크를 통해 전달이 되는데
  • 대형 네트워크에 데이터가 몰리게 되면 혼잡하게 되고 오버플로우나 데이터 손실이 발생하게 됨
  • 그래서 의도적으로 송신측의 데이터 속도를 강제로 줄이는것

Leave a comment