데이터 링크 계층은 신뢰성 있는 데이터 전송을 보장하기 위해 다양한 기술을 포함하고 있으며, 앞서 살펴본 기본적인 오류 제어 및 흐름 제어 기법 외에도 보다 효율적인 전송을 위한 고급 프로토콜들이 존재한다. 본 글에서는 슬라이딩 윈도우 방식과 HDLC 프로토콜, 그리고 LAP 계열의 프로토콜에 대해 정리한다.
1. 슬라이딩 윈도우 프로토콜
슬라이딩 윈도우(Sliding Window) 프로토콜은 데이터 링크 계층에서 양방향 통신을 지원하는 대표적인 프로토콜로, 오류 제어와 흐름 제어 기능을 모두 갖추고 있다. 이 방식은 특히 효율적인 데이터 전송이 요구되는 환경에서 널리 사용된다.
1.1 흐름 제어
슬라이딩 윈도우 방식은 다음 두 가지 개념을 기반으로 흐름 제어를 수행한다.
- 순서 번호(Sequence Number)
각 프레임에는 고유한 순서 번호가 부여되어 전송 순서를 추적할 수 있다. 수신 측은 순서 번호를 바탕으로 프레임의 정상 수신 여부를 판단한다. - 윈도우 크기(Window Size)
송신 측과 수신 측이 한 번에 처리할 수 있는 프레임 수를 지정한다. 송신 윈도우는 수신 측의 버퍼 처리 능력을 고려하여 설정되며, 과도한 프레임 전송을 방지한다.
1.2 연속형 전송
기존의 정지-대기 프로토콜은 송신 윈도우 크기가 1인 경우로, 프레임 하나를 전송한 뒤 ACK(확인 응답)를 기다린 후 다음 프레임을 전송한다. 그러나 슬라이딩 윈도우 방식에서는 여러 프레임을 연속으로 전송할 수 있으며, 이를 연속형 정지(Continuous Stop-and-Wait)라고 부르기도 한다.
이 방식은 다음과 같은 장점을 가진다.
- 오류가 적은 환경에서는 송수신의 대기 시간이 줄어들어 전송 효율이 향상된다.
- ACK 프레임을 기다리지 않고 여러 프레임을 연속적으로 전송함으로써 지연 시간을 줄일 수 있다.
오류 제어 방식
오류 발생 시 슬라이딩 윈도우 방식은 다음 두 가지 방법 중 하나로 오류를 해결한다.
- Go-Back-N 방식
오류가 발생한 프레임 이후의 모든 프레임을 다시 전송한다. 수신 측은 오류가 난 프레임부터 이후 프레임을 모두 폐기하고, 송신 측은 오류 발생 이후의 데이터를 다시 보낸다.
- 선택적 재전송 방식(Selective Repeat)
오류가 발생한 프레임만 선택적으로 재전송하는 방식이다. 수신 측은 오류가 발생하지 않은 프레임을 임시로 저장하고, 오류 프레임만 재요청한다. 이 방식은 처리 복잡도는 높지만 전송 효율이 높다.
1.3 피기배킹(Piggybacking)
피기배킹은 양방향 통신에서 송신 측이 데이터 프레임(정보 프레임)을 전송하면서 동시에 상대 측의 데이터에 대한 응답(ACK)을 포함시키는 기술이다. 이렇게 함으로써 별도의 응답 프레임을 전송할 필요가 없어 전송 효율이 향상된다. 이는 대역폭 절약과 지연 시간 감소에 매우 효과적이다.
2. HDLC 프로토콜
HDLC(High-Level Data Link Control)는 ISO에서 제정한 비트 기반(bit-oriented)의 데이터 링크 계층 프로토콜로, 다양한 네트워크 환경에서 신뢰성 있는 데이터 전송을 위해 사용된다.
2.1 HDLC의 프레임 구조
HDLC 프로토콜은 전송 목적에 따라 다음 세 가지 종류의 프레임을 사용한다.
- 정보 프레임(Information Frame)
사용자 데이터를 포함하며, 데이터 전송에 사용된다. - 감독 프레임(Supervisory Frame)
오류 제어나 흐름 제어 기능을 수행하며, ACK 및 NAK 등을 포함한다. - 비번호 프레임(Unnumbered Frame)
연결 설정, 해제 등의 제어 메시지를 전달하며, 번호를 부여하지 않는다.
2.2 호스트의 동작 모드
HDLC에서는 통신에 참여하는 호스트의 역할에 따라 다음 세 가지 모드로 동작할 수 있다.
- 일차국(Primary Station): 통신을 제어하는 중심 노드로, 명령을 주도한다.
- 이차국(Secondary Station): 명령에 응답하는 수동적 노드이다.
- 혼합국(Combined Station): 일차국과 이차국의 기능을 모두 수행할 수 있다.
3. LAP 및 LAPB 프로토콜
HDLC는 다양한 환경에 맞춰 응용된 여러 하위 프로토콜을 가지고 있으며, 그중 대표적인 것이 LAP와 LAPB이다.
3.1 LAP 프로토콜
LAP(Link Access Procedure)은 HDLC에서 파생된 프로토콜로, 비동기 응답 모드인 ARM(Asynchronous Response Mode)으로 동작한다. ARM 모드는 주로 일차국이 통신을 제어하고, 이차국이 요청에 응답하는 구조를 취한다. 이는 단방향 통신 환경에서 적합한 구조이다.
3.2 LAPB 프로토콜
LAPB(Link Access Procedure Balanced)는 HDLC의 변형으로, X.25 프로토콜 계열에서 사용된다. 이 프로토콜은 혼합국 모드(Balanced Mode)를 사용하여, 양쪽 호스트가 모두 일차국 및 이차국의 기능을 수행할 수 있도록 한다. 따라서 어느 쪽이든 먼저 명령을 전송할 수 있으며, 대등한 입장에서 통신이 이루어진다.
결론
슬라이딩 윈도우 방식과 HDLC 계열 프로토콜은 데이터 링크 계층에서의 효율적이고 신뢰성 있는 데이터 전송을 위한 핵심 기술이다. 슬라이딩 윈도우는 흐름 제어와 오류 제어를 효과적으로 수행하며, 피기배킹 기법을 통해 전송 효율을 극대화한다. HDLC는 다양한 프레임 구조와 호스트 동작 방식을 지원하며, LAP와 LAPB와 같은 응용 프로토콜을 통해 다양한 통신 환경에 적응할 수 있다. 이러한 개념들은 네트워크 프로토콜 설계 및 구현의 근간을 이루는 중요한 요소이다.