HDLC는 데이터 링크 계층에서 작동하는 프로토콜이다.
네트워크는 하나의 기본(primary) 스테이션과 여러 개의 보조(secondary) 스테이션으로 구성된다.
기본 스테이션은 보조 스테이션으로 프레임을 전송할 수 있으며, 보조 스테이션도 기본 스테이션으로 프레임을 전송할 수 있다.
보조 스테이션끼리는 직접 프레임을 전송할 수 없다.
기본 스테이션은 폴(Poll)을 표현하여 보조 스테이션에 프레임을 전송할 권한을 부여하며, 보조 스테이션은 파이널(Final)을 표현하여 기본 스테이션에 프레임을 전송할 권한을 부여한다.
프레임은 다음 필드로 구성된다.
헤더 부분에는 address, control, FCS가, 페이로드에는 information 필드가 들어간다.
- flag: 프레임의 시작과 끝을 표시
- address: 대상 스테이션의 주소
- control: 제어 정보 포함
- information: 실제 데이터
- FCS(frame check sequence): 오류 검사
프레임 유형 - 정보 프레임(Information frame)
정보 프레임은 제어 필드의 첫 번째 비트가 '0'으로 설정되어 식별되며, 일반적인 데이터 전송에 사용된다.
정보 프레임의 제어필드는 위 그림과 같은 필드로 구성된다.
- N(S): 전송 카운트(mod 8), 현재 전송 중인 프레임의 시퀀스 번호를 나타낸다.
- N(R): 수신 카운트(mod 8), 다음에 수신될 것으로 예상되는 프레임의 시퀀스 번호를 나타낸다.
- P/F: Poll/Final
프레임 유형 - 감독 프레임(Supervisory Frame)
감독 프레임은 제어 필드의 첫번째 두번째 비트가 '10'으로 설정되어 식별되며, 흐름 제어 및 오류 제어를 수행한다.
감독 프레임의 제어필드는 위 그림과 같은 필드로 구성되는데, S 값에 따라 4가지 유형으로 분류된다.
- RR(Receive Ready): '수신 준비 완료'를 의미한다. $N(R)-1$ 이하의 시퀀스 번호를 가진 프레임에 대해 긍정 확인 응답(PACK)으로 동작한다.
- RNR(Receive Not Ready): '수신 준비 안됨'을 의미한다.
- REJ(Reject): '거부'를 의미한다. Go-back-N ARQ 방식에서 N(R)과 동일한 시퀀스 번호를 가진 프레임에 대해 부정 확인 응답(NACK)으로 동작한다.
- SREJ(Selective Reject): '선택적 거부'를 의미한다. Selective Repeat ARQ 방식에서 N(R)과 동일한 시퀀스 번호를 가진 프레임에 대해 부정 확인 응답으로 동작한다.
위 그림을 예시로 들어보겠다.
기본 스테이션이 보조 스테이션에 N(S) 번호 0, 1, 2를 가진 프레임을 전송했다. 2번을 보내면서 Poll을 설정하여 보조 스테이션에게 권한을 넘겨줬다.
보조 스테이션이 프레임을 보냈는데, RR과 함께 N(R)로 1의 값이 왔다. 이는 N(R)-1 = 0 이하의 번호를 가진 프레임에 대해 PACK을 보낸 것이다. 그러면 1번과 2번 프레임에 오류가 발생한 것으로, 기본 스테이션이 1번 프레임부터 다시 전송한다. 1번 프레임부터 다시 보내는 것은 Go back N ARQ를 사용한다는 것을 알 수 있으며, 3개의 프레임만을 보내는 것을 보면 Slide Window Flow Control을 사용한다는 것을 알 수 있다. Window Size = 3이다.
프레임 유형 - 비번호 프레임(Unnumbered frame)
비번호 프레임은 제어 필드의 첫번째 두번째 비트가 '11'으로 설정되어 식별되며, 링크를 시작할 때나 종료할 때 사용된다.
제어 필드 내 서브필드 M의 값에 따라 비번호 프레임은 여러 유형으로 나뉜다.
- SNRM: Set Normal Response Mode
- UA: Unnumbered Acknowledgment
- DISC: disconnect
다른 예시를 보자.
기본 스테이션이 보조 스테이션에 N(S) 0, 1, 2번을 전송했다.
보조 스테이션은 기본 스테이션에 N(S) 0, 1번에 ACK(N(R)=1)을 전송했다. 이때, 보조 스테이션의 프레임 역시 Information 프레임이 사용된 것을 볼 수 있는데, 이는 데이터와 함께 ACK정보가 포함될 수 있는 프레임 타입이며, 피기백킹에서 사용된다.
하지만 보조 스테이션의 N(R) = 1이므로, 이는 1-1=0번 프레임까지 수신했음을 의미한다.
따라서 기본 스테이션은 1번 프레임부터 다시 재전송을 시작한다. 이는 Go-Back-N ARQ가 오류 제어를 위해 사용된다는 것을 알 수 있다. 슬라이딩 윈도우 방식이 흐름 제어를 위해 사용되며, 윈도우 크기는 3으로 설정되었다.
이번 예시에서는 보조 스테이션이 REJ를 N(R)=1의 값과 보냈다. 이는 1번 프레임에 대한 거부를 나타낸 것이다.
보조 스테이션은 프레임0은 성공적으로 수신하고, 프레임 1을 수신하지 않은 상태에서 프레임2를 수신한 것이다.
이에 따라 기본 스테이션은 1번 프레임부터 다시 전송하였다. Go-Back-N ARQ를 사용한다는 것을 알 수 있다.
슬라이딩 윈도우 방식이 흐름 제어를 위해 사용되며, 윈도우 크기는 3으로 설정되었다.
이번 예시에서는 보조 스테이션이 SREJ를 N(R)=1의 값과 보냈다. 이는 1번 프레임에 대한 선택적 거부를 의미한다.
이는 선택적 반복 ARQ에서만 사용되는 프레임 유형으로, 오류가 발생한 특정 프레임만 재전송하도록 요청한다.
따라서 보조 스테이션은 0번 프레임과 2번 프레임을 성공적으로 수신한 것이다.
기본 스테이션은 1번 프레임만 다시 재전송하며, 이어서 3번과 4번 프레임을 전송한다.
흐름 제어를 위해 슬라이딩 윈도우 제어 방식이 사용되며, 윈도우 크기는 3으로 설정되어 있다.
이 예시에서는 기본 스테이션이 정상응답모드(SNRM)에서 링크를 시작했다. 이어서 보조 스테이션이 링크 시작을 확인(UA)했다.
프레임의 전송이 시작되고, 기본 스테이션이 링크를 종료(DISC)했으며, 보조 스테이션이 링크 종료를 확인(UA)했다.
** 대학교 수업을 듣고 이해한 부분을 최대한 풀어서 작성한 글입니다.
틀린 정보가 존재할 수 있으며, 언제나 피드백은 환영입니다. **
'DKU > 데이터 통신' 카테고리의 다른 글
Routing (0) | 2024.12.09 |
---|---|
Flow Control (0) | 2024.11.26 |
Error Control 6 (0) | 2024.11.20 |
Error Control 5 (0) | 2024.11.19 |
ARQ for Deep Space Communications 과제 분석 (2) | 2024.11.16 |