슬라이딩 윈도우란?
- 고정 크기의 윈도우(마스크, 영역)을 이동하면서 윈도우 내 데이터를 이용하는 알고리즘
- 네트워크 호스트 간 패킷 흐름을 제어하기 위해서 고안됨.
네트워크와 서버 간의 연결 과정 3 way handshake
- 3 way handshake : 클라이언트와 서버간 연결 과정
1. 클라이언트(접속자)가 서버에 접속 요청 메시지(SYN)를 보낸다.
2. 서버는 접속 허가시 클라이언트에게 접속 요청 수락(SYN + ACK)을 보낸다.
* Ack(Acknowledgement) : 긍정 응답
3. 클라이언트는 서버에 수락 확인(ACK)를 보내고 서버와 연결이 성립 ESTABLISHED된다.
슬라이딩 윈도우와 패킷 흐름 제어
- TCP 통신같이 연결 지향 프로토콜의 경우 패킷이 하나 하나 정상적으로 전달되었는지 확인(ACK)을 함.
- 패킷이 분실된 경우 재전송이 필요.
- 윈도우에 모든 패킷을 전송하고, 모든 패킷들이 전달이 확인 되면 윈도우를 옆으로 이동 시켜 다음 패킷을 전송시킴.
투포인터와 슬라이딩 윈도우
- 투포인터의 경우 정렬된 배열에서 두 포인터를 이용하여 알고리즘 문제를 풀이해감.
- 슬라이딩 윈도우는 정렬 여부에 상관 없이 일정 크기의 윈도우를 사용함.
이름 | 정렬 여부 | 윈도우 사이즈 | 이동 | |
투 포인터 | 대부분 정렬됨 | 가변 | 좌우 포인터 양뱡향 | |
슬라이딩 윈도우 | X | 고정 | 좌 혹은 우 단방향 |
슬라이딩 윈도우 예시
1. 물체 검출 Object Detection
- 고정 크기의 윈도우의 이미지를 합성곱 신경망에 입력으로 주어 물건을 검출
- 다양한 크기의 물체를 검출하기 위해 다양한 크기의 윈도우를 사용.
- 계산 비용이 너무 커져 잘 사용되지 않음.
2. 이동 평균 Moving Average
- 특정 지점의 값을 앞 뒤 일정 구간의 평균 값으로 지정
- 노이즈 제거(스무딩)에 주로 사용됨.
'수학 > 알고리즘' 카테고리의 다른 글
퀵 정렬 quick sort (0) | 2021.04.07 |
---|---|
그래프 정리 2 (0) | 2021.02.24 |
그래프 정리 1 (0) | 2021.02.23 |
[리트코드 문제 풀기] 연결 리스트 (0) | 2021.01.27 |
[리트코드 문제 풀기] 배열 (0) | 2021.01.20 |