준비하는 대학생

[Network] 슬라이딩 윈도우 기법 본문

Network

[Network] 슬라이딩 윈도우 기법

Bangii 2023. 8. 10. 16:03

1. 슬라이딩 윈도우란?

슬라이딩 윈도우는 연속된 데이터에서 일정 크기의 윈도우를 설정하고, 이 윈도우를 하나씩 이동시키면서 데이터를 처리하는 기법입니다. 이 방식은 배열, 문자열, 데이터 스트림 등 다양한 연속 데이터에서 효과적으로 작동합니다.

2. 언제 사용하는가?

  • 연속된 데이터에서 최댓값/최솟값 찾기
  • 평균, 중간값 계산
  • 패턴 탐색 (예: 문자열 내 서브스트링 찾기)
  • 네트워크 통신에서의 데이터 전송 관리

3. 기본적인 원리

슬라이딩 윈도우 기법의 가장 기본적인 원리는 다음과 같습니다.

  1. 윈도우 크기를 결정합니다.
  2. 윈도우를 데이터의 첫 부분에 위치시킵니다.
  3. 윈도우 내의 데이터를 처리합니다.
  4. 윈도우를 오른쪽으로 한 칸 이동시킵니다.
  5. 윈도우가 데이터의 끝에 도달할 때까지 3-4 단계를 반복합니다.

4. 슬라이딩 윈도우의 네트워크 활용 배경

데이터를 패킷으로 분할하여 네트워크를 통해 전송할 때, 모든 패킷이 순서대로 또는 손상 없이 도착하지 않을 수 있습니다. 슬라이딩 윈도우 기법은 이러한 문제를 해결하기 위해 탄생하였습니다.

5. 네트워크에서의 슬라이딩 윈도우 원리

  1. 윈도우 크기 설정: 송신 측과 수신 측은 각각 윈도우의 크기를 가집니다. 이 크기는 한 번에 전송하거나 받을 수 있는 패킷의 최대 개수를 나타냅니다.
  2. 데이터 전송: 송신 측은 설정된 윈도우 크기만큼의 패킷을 연속적으로 전송합니다.
  3. ACK와 NAK: 수신 측은 패킷을 받을 때마다 확인 응답(ACK)을 전송합니다. 만약 패킷에 문제가 있으면, 부정 응답(NAK)을 전송하여 해당 패킷의 재전송을 요청합니다.
  4. 윈도우 슬라이드: 송신 측은 ACK를 받을 때마다 윈도우를 오른쪽으로 슬라이드하여 다음 패킷들을 전송합니다. NAK를 받으면 해당 패킷을 재전송하고 윈도우는 그 위치에 머무릅니다.

6. 장점

  • 효율성: 한 번에 여러 패킷을 전송하여 네트워크의 대역폭을 효율적으로 사용합니다.
  • 신뢰성: 잘못된 패킷이나 손실된 패킷을 재전송할 수 있어 데이터의 정확한 전송을 보장합니다.

7. TCP 프로토콜에서 슬라이딩 윈도우

TCP(Transmission Control Protocol)는 슬라이딩 윈도우 기법을 활용하여 데이터 전송의 신뢰성을 확보합니다. TCP는 윈도우 크기를 동적으로 조절하며, 네트워크의 혼잡 상황에 따라 윈도우 크기를 조절하여 최적의 전송 성능을 달성합니다.

 

Comments