슬라이딩 윈도우는 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 |