슬라이딩 윈도우 알고리즘

게임 서버 프로그래밍/네트워크 개념정리

2020. 2. 18. 10:56

등장 배경

 매번 전송한 패킷에 대한 확인을 받아야만 그다음 패킷을 전송하는 방식인 'stop-and-wait'는 효율적이지 못하다.

 

슬라이딩 윈도우 알고리즘의 개념

두 개의 네트워크 호스트 간 패킷의 흐름을 제어하기 위한 알고리즘. 윈도(메모리 버퍼의 일정 영역)에 포함되는 모든 패킷을 전송하고, 그 패킷의 전달이 확인되는 대로 이 윈도우를 옆으로 옮김으로 그다음 패킷을 전송하는 방식. TCP Protocl에서 사용되는 방식.

 

그림을 보면 데이터를 보낼 때마다 송신 윈도우 크기가 데이터 크기만큼 줄어든다. ACK를 받고 나면 비로소 수신 버퍼에서 확인받은 데이터 크기만큼 송신 버퍼의 크기가 증가한다. 'stop-and-wait' 방식이었다면 보낸 데이터 횟수만큼 ACK가 반복되어 나타났을 것이다.

 

송신 윈도우 크기

긍정 응답 프레임을 받지 않고도 연속적으로 전송할 수 있는 프레임의 개수이다.

'stop-and-wait' 방식에서의 송신 윈도우 크기는 1로 고정이다. 

TCP 최대 세그먼트 크기(MSS) 보다 크게 할 수 없다.

'게임 서버 프로그래밍 > 네트워크 개념정리' 카테고리의 다른 글

서브넷과 서브넷 마스크  (0) 2020.02.18
ARP (주소 결정 프로토콜)  (0) 2020.02.18
IP 주소와 패킷 구조  (0) 2020.02.18
이더넷/IEEE 802.3  (0) 2020.02.18
락스텝 알고리즘  (0) 2020.02.18