TCP/IP 흐름제어 & 혼잡제어

TCP/IP 흐름제어

수신 측이 송신 측보다 데이터 처리 속도가 느릴 때 문제 발생

→ 흐름 제어를 통해 TCP 버퍼(TCP 세그먼트 보관 메모리)의 크기 차이를 완화

  • Stop and Wait

    • 수신 측이 매번 확인 응답(ACK)를 보내고 송신 측이 확인 후 다음 패킷 전송

      → 순서대로 보내서 속도 측면에서 효율이 떨어짐

  • Sliding Window

    • 수신 측에서 설정한 윈도우 크기만큼 송신 측이 패킷 전달

    • 초기에는 host간 3 Way Handshake에서 수신 측이 결정

      → 수신 측이 확인 응답(ACK)를 보낼 떄 TCP 헤더에 담아서 전송

TCP/IP 혼잡제어

라우터가 처리할 수 있는 데이터 양 초과하면 데이터 손실

송신 측에서 라우터가 처리하지 못한 데이터 재전송하게 혼잡

→ 네트워크 오버플로우 발생 예방위해 패킷 수 조절

  • AIMD(Additive Increase/Multiplicative Descrease)

    1. 처음에 패킷을 하나씩 보내며 문제 없으면 윈도우에 크기를 1씩 증가

    2. 전송 실패하면 윈도우 크기 반으로 감소

      → 윈도우 크기가 선형적으로 증가하여 대역폭 전체 활용하려면 시간 소요

  • Slow Start

    • 윈도우 크기를 지수적으로 증가(2^n)

    • 혼잡 상태 감지 시 윈도우 크기 1로 감소

Last updated