[컴퓨터 네트워크] 패킷의 흐름제어(슬라이딩 윈도우)
[컴퓨터 네트워크] 패킷의 흐름제어(슬라이딩 윈도우)
슬라이딩 윈도우(Sliding Window)
슬라이딩 윈도우는 두개의 네트워크 호스트간의 패킷의 흐름(양)을 제어하기 위한 방법입니다.TCP와 같이 데이터의 전달을 보증하는 프로토콜에서 패킷 하나하나가 전달되었음을 확인 신호(ACK)를 받아야 하며, 만약 패킷이 중도에 잘못되었거나 분실되어 확인 받지 못하는 경우, 해당 패킷을 재전송해야 하는 필요가 있습니다.
Stop-and-wait 방식을 사용했을 때는 ACK를 받고 나서 다음 프레임을 전송하므로 비효율적인 면에 비해 슬라이딩 윈도우는 전송측이 전송한 프레임에 대한 ACK 프레임의 확인을 받지 않고도 여러 패킷을 보내는 것을 가능하게 하기 때문에 Stop-and-wait 방식보다 훨씬 효율적이라고 볼 수 있습니다.
슬라이딩 윈도우 데이터 송신과 승인 방식
송신 측
전송 카테고리 1 : 전송했고 승인받음
전송 카테고리 2 : 전송 했지만 아직 승인을 받지 못함
전송 카테고리 3 : 수신자는 준비 됐지만 아직 전송하지 못한 바이트.
전송 카테고리 4 : 수신자가 준비되지 않았고 전송하지도 못한 바이트.
- 송신(SND)과 수신(RCV) 포인터
- 송신 비확인(SND, UNA)
- 송신 했지만 아직 승인되지 않는 첫 번째 데이터의 순서 번호.
- 전송 카테고리 2의 첫 번째 바이트를 가리킨다.
- 송신 다음(SND.NXT)
- 다른 장비에게 보내야 할 다음 바이트의 순서번호이다.
- 전송 카테고리 3번의 첫 번째 바이트를 가리킨다.
- 송신 윈도우(SND,WND)
- 송신 윈도우 크기이다.
- 승인 없이 보낼 수 있는 총 바이트 수.
수신 측
수신 카테고리 1 + 2 : 수신했고 승인 받음수신 카테고리 3 : 수신자는 준비됐지만 아직 수신하지 못한 바이트
수신 카테고리 4 : 수신자는 준비되지 않았고 수신하지도 못한 바이트
- 수신 윈도우(RCV.NXT)
- 상태 장비에서 받으려고 하는 데이터의 다음 바이트의 순서 번호
- 수신 카테고리 3의 첫 번째 바이트를 가리킨다.
- 수신 윈도우(RCV.WND)
- 상대 장비에게 광고한 수신 윈도우의 크기
TCP 슬라이딩 윈도우 예
출처
댓글
댓글 쓰기