SWS   Silly Window Syndrome   어리석은 윈도우 신드롬

(2020-09-17)

바보 윈도우 증후군, Nagle’s Algorithm, Nagle 알고리즘


1. 어리석은 윈도우 신드롬 (SWS, Silly Window Syndrome)

  ㅇ 송신,수신측 응용 프로그램데이터 처리 단위가 작거나 저속일 때,
     - 예를들면, 
        . 송신측이 저속으로 1 바이트 씩 발생시키거나, 
        . 수신측이 저속으로 1 바이트 씩 처리하는 경우에,
     - 데이터 1 바이트 전송을 위해,
        . 최소 IPTCP헤더가 각각 20 바이트 씩 총 40 바이트가 부가적으로 붙여짐
        . 즉, 전송하기 위해 배 보다 배꼽이 더 큰 비 효율적인 현상이 발생되는데,
     - 이를 어리석은 윈도우 신드롬(SWS) 현상이라고 함
        . 이는 네트워크의 자원을 낭비하는 결과가 됨

  ㅇ 송신측 SWS 문제점 해결 방안 : Nagle 알고리즘 (매우 단순함)
     - 처음에는, 응용 프로그램쪽에서 1개 바이트전송 요청하더라도 이를 송신하나,
     - 그 다음부터는, 누적시켜가며, 
        . 수신측 ACK가 올 때까지 또는 최대 MSS(Maximum Segment Size)까지 채울 때까지 송신 보류함
     - 이로써, 네트워크 속도 및 응용 프로그램 속도를 맞추는 역할을 하게 됨

  ㅇ 수신측 SWS 문제점 해결 방안 : Clark's solution 또는 Delayed Acknowledgment
     - Clark's solution
        . 일단, 수신 즉시 ACK를 보내서 송신측에 잘받았다는 소식을 전하나,
        . 이때, 슬라이딩 윈도우 크기를 0(zero)로 셋팅하여 보내서, 수신 처리 속도가 늦음을 알림
        . 최소 수신 버퍼의 1/2 이상 또는 MSS 정도를 채울 정도까지 기다린 후에야, 윈도우 크기 늘림
     - Delayed Acknowledgment
        . 수신 즉시 ACK를 보내지 않고, 수신 버퍼가 넉넉할 때까지 지연시키는 단순한 방식
        . 단, 단순하지만 괜히 재전송 횟수 만 키워 네트워크 혼잡에 기여할 수도 있음 
        . 따라서, 기본 500 ms 보다 더 길게 ACK지연 못하도록 규칙을 정함

TCP 흐름/혼잡 제어
   1. TCP 혼잡제어   2. Slow Start   3. Silly Windown Syndrome   4. TCP 타이머   5. RTT 예측   6. 확인응답   7. TCP 재전송  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"