ARQ (Automatic Repeat Request)란?
신뢰성있는 데이터 전송을 보장하기 위한 매커니즘으로, 재전송 기반 error-control 방식이다.
종류는 크게 Stop-and-Wait, Selective Repeat, Go-Back-N, Adaptive ARQ 총 4가지가 있다.
Stop-and-Wait ARQ
Segment 를 전송한 후, 그에 대한 확인 응답 ACK 가 올 때 까지 대기하는 방식이다.
1) Flow-Control
확인 응답이 올 때 까지 대기한다.
2) Error-Control
Segment 오류가 발생하면 폐기처리하여 수신 측에서 ACK 를 보내지 않는다. 주어진 시간 안에 ACK 가 도착하지 않으면 Time-out 되어 Segment 를 재전송 한다.
Packet 1 이 유실되어 그에 대한 ACK 가 시간 내에 도착하지 않아, TIME-OUT 되어 Packet 1 이 재전송되었다.
Packet 0 에 대한 ACK 가 유실되어 시간 내에 도착하지 않아, TIME-OUT 되어 Packet 1 이 재전송되었다.
Go-Back-N ARQ
Sliding Window 기반으로 동작하는 재전송 프로토콜로, 누적 응답이 가능하다.
1. 누적 응답
Packet 1 에 대한 ACK 2 가 유실되어도, Packet 1 의 복사본을 임시저장한 후에 다음 패킷을 전송한다.
다음 Packet 2 에 대한 ACK 3 를 통해 이전 패킷에 대한 ACK 를 포함한 누적 응답이 가능하다.
2. 순차 전송
Sender Window 의 순서대로 Packet 이 전송되며, 순차적이지 않은 패킷은 무시된다.
Packet 1 이 유실된 채로 Packet 2, 3 이 전송되면 수신 측은 무시한 채로, Packet 1 을 요구하는 ACK 1 을 전송한다. 송신 측은 이전에 ACK 1 을 이미 수신하였으므로, 재전송된 ACK 1 은 무시되며 Time-out 시에 Packet 1 을 재전송한다.
Selective Repeat ARQ
오류가 발생한 Segment 나 그 이후의 모든 Segment 를 재전송하는 방식이다.
순차적인 Packet 전송이 이루어지지 않아도 상관 없으며, 유실되어 수신하지 못한 Packet 만 재전송을 요청한다.
단, Sliding 은 순차적으로 수행되므로 이전 Packet 에 대한 ACK 가 도착해야 Sliding 을 수행한다.
Packet 1 이 유실되면 재전송이 되기전까지 Sender Window Sliding 대기 상태가 된다.
Packet 의 전송 및 수신 시점은 중요하지 않으므로, 다음 Packet 은 계속 전송 및 수신된다.
단, Slding 은 순차적으로 이루어져야 하므로 Receiver Window Sliding 은 대기 상태에 머무른다.
Time-out 이 되어 Packet 1 재전송되고 그에 대한 ACK 를 수신하면, 그 때 양측에서 Sliding 이 수행된다.
Adaptive ARQ
전송 효율을 높이기 위해 데이터 블록의 크기를 동적으로 변경하여 전송하는 방식이다.
공부하면서 정리한 내용을 글로 작성하였습니다.
혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다 :)
'Network > Network Theory' 카테고리의 다른 글
[Network/ 네트워크] OSI 7Layer - Transport Layer (전송 계층) (0) | 2024.12.22 |
---|---|
[Network / 네트워크] UDP (User Datagram Protocol) 프로토콜이란? (0) | 2024.12.21 |
[Network / 네트워크] TCP (Transmission Control Protocol) 이란? (0) | 2024.12.19 |
[Network / 네트워크] ICMP (Internet Control Message Protocol) 프로토콜이란? (0) | 2024.12.18 |
[Network / 네트워크] HDLC (High-level Data-Link Control) 프로토콜이란? (0) | 2024.02.03 |