슬라이딩 윈도우는 TCP 흐름 제어와 패킷 전송 최적화를 위해 사용되는 기술이다.
데이터를 효율적으로 보내고, 수신 측이 처리할 수 있는 만큼만 보내도록 조절하는 메커니즘을 말한다.

 

📌 Sliding Window 개념

TCP는 데이터를 세그먼트 단위로 전송한다. 하지만 매번 한 개의 패킷을 보내고 ACK(응답)를 기다리면 속도가

너무 느려지기 때문에, 여러 개의 패킷을 연속적으로 보낼 수 있도록 허용하는 기법을 Sliding Window라 한다.

 

✅ Sliding Window 방식

  • 송신자는 미리 여러 개의 패킷을 보내고, ACK을 기다린다.
  • 수신자는 데이터를 받은 후 ACK를 보낸다.
  • 일정 개수의 세그먼트(윈도우 크기)만큼만 한 번에 전송 가능하다.

📌 Sliding Window 동작 방식

Sliding Window는 윈도우 크기에 따라 한 번에 보낼 수 있는 패킷 개수를 결정한다.

즉, ACK 없이 미리 보낼 수 있는 데이터 양을 정하는 것이다.

  • 윈도우 크기 = 4일 경우, 송신자는 4개의 패킷을 연속적으로 보낼 수 있고, 이후 ACK을 받아야 다시 보낼 수 있다.

  송신 윈도우와 수신 윈도우

  • 송신 윈도우 : 송신자가 한 번에 보낼 수 있는 데이터 크기
  • 수신 윈도우 : 수신자가 한 번에 받을 수 있는 데이터 크기
  • 수신 윈도우 크기에 따라 송신 윈도우의 크기가 조정된다.
송신자                                      수신자
---------------------------------------------------
SEQ=1 [패킷1]  ---->   
SEQ=2 [패킷2]  ---->   
SEQ=3 [패킷3]  ---->   
SEQ=4 [패킷4]  ---->  (한 번에 4개 전송 완료!)

(수신자가 패킷을 받은 후)  
<----  ACK=5  (1~4번 패킷 정상 수신!)

SEQ=5 [패킷5]  ---->   
SEQ=6 [패킷6]  ---->   
...

 

위 처럼 송신자는 ACK을 기다리지 않고, 미리 4개 패킷을 보낼 수 있다.

ACK을 받으면 다음 데이터를 연속적으로 보낼 수 있다.

 

📌 윈도우 크기 조절 ( 흐름 제어 & 혼잡 제어 )

TCP에서는 윈도우 크기를 동적으로 조절하여 네트워크 상태에 맞게 최적의 속도로 데이터 전송을 수행한다.

 

🔸 흐름 제어 ( Flow Control )

  • 송신자가 너무 많은 데이터를 보내면 수신자가 처리하지 못하는 경우가 발생한다.
  • 수신자는 자신의 수신 윈도우 크기를 조정하여 한 번에 받을 수 있는 데이터 크기를 제한한다.
  • 수신 윈도우 크기가 0이 되면 일시적으로 전송을 중지한다..

🔸 혼잡 제어 ( Congestion Control )

  • 네트워크에 트래픽이 너무 많으면 패킷 손실이 발생할 수 있다.
  • 송신자는 혼잡 윈도우를 활용하여 네트워크 상태에 맞게 전송량을 조절한다.
    • 혼잡 윈도우는 TCP에서 네트워크 혼잡을 방지하기 위해 송신자가 조절하는 윈도우 크기를 말한다.

'IT' 카테고리의 다른 글

[IT] TIME_WAIT  (0) 2025.04.09
[IT] 4 Way Handshake ( TCP 연결 종료 )  (0) 2025.04.09
[IT] 3 Way Handshake  (0) 2025.04.08
[IT] 운영체제 명령어 삽입 ( OS Command Injection )  (0) 2025.04.01
[IT] 크로스사이트 스크립트  (0) 2025.04.01

+ Recent posts