본문 바로가기

OSI Model

5. HDCL 프로토콜 (2계층 Data-link Layer 데이터 링크 계층)

HDLC

2계층 Data-link Layer - 데이터 링크 프로토콜이다

HDCL(high-level data link Control)는 비트(bit)위주의 프로토콜로 각 프레임에 데이터 흐름을 제어하고 오류를 검출할 수 있는 비트 열을 삽입하여 전송한다.

 

포인트 투 포인트 , 멀티 포인트 , 루프 네트워크 등다양한 형태의 데이터 링크에 적용가능하다

 

오류제어를 위해 Go-back-n 과 선택적 재전송(selective repeat) ARQ를 사용한다

 

흐름 제어를 위해 슬라이딩 원도우 방식을 사용한다

 

전송 제어상의 제한을 받지 않고 자유로이 비트 정보를 전송할 수 있다(비트 투과성)

 

비트 투과성(Bit Transparency)은 플래그(Flag) 비트를 제외한 모든 비트는 1 이 6개 이상 연속되지 않도록 한다 1이 연속적으로 5개가 입력되면 그 다음 6번째에는 0을 강제로 추가하여 송신한다

 

프레임 내에 1이 연속해서 6개가 입력되면 플래그(Flag)로 인식하고 7개이상 연속해서 입력되면 오류프레임으로 인식하여 오류를 검출한다

 

 

비트 투과성

송신하고자 하는 프레임이 플래그를 제외 1이 6개가 된다면 강제로 0을 삽입한다

01111110 을 0x7E 라고 한다

송신자는 전송하기 전 0x7E가 있는지 검사한다

0x7E가 있다면 6번째에 0을 삽입하여 0x7D를 만든다

 

원래의 데이터 0x7E에 0x20을 베타적 논리합(Exclusive OR)으로 계산하면 0x5E가 된다

 

데이터는 0x7E는 0x7D + 0x5E 로 바꿔서 전송한다

 

송신자는 0x7E를 0x7D + 0x5E로 변환 한 경우 기존의 0x7D도 변환해야 한다

-( 0x7D XOR 0x20은 0X5D이다)

 

왜냐하면 수신자 측에서는 0x7D가 있는지 검사하고 그 다음에 들어오는 데이터에( 0x5E)

XOR 0x20을 하여 0x7E를 복원한다

수신자는 데이터에 0x7D가 있는지 검사한다

0x7D가 발견되면 0x7D를 버리고 그 다음에 오는 데이터에 XOR 0x20을 하여 원래 데이터를 복원한다

 

정리하자면 송신자는

0x7E -> 0x7D + 0x5E 로 변환하고 수신자 측에서는 0x7D를 버리고 0x5E에 XOR 0x2 하여 0x7E 복원

0x7D -> 0x7D + 0x5D 로 변환하고 수신자 측에서는 0x7D를 버리고 0x5D XOR 0x2 하여 0x7D 복원

 

*베타적 논리합-A, B 모두 참(또는 거짓)인 때는 거짓이고 어느 한편이 참, 다른 한편이 거짓일 때에는 참이다 기호 - XOR

프레임 구조

 

플래그(Flag) : 프레임의 시작과 끝을 표시한다 - 01111110으로 표시

주소부(Address Field) : 송신 시스템과 수신 시스템의 주소를 기록한다

제어부(Control Field) : 프레임의 종류를 식별하기 위해 사용한다 제어부의 첫 번째, 두 번째 비트를 사용하여 프레임의 종류를 구분한다

 

*제어부에 사용되는 프레임 종류는 3가지가 있다

 

I 프레임 - 제어부가 0으로 시작하는 프레임이다 사용자 데이터를 전달하는 역할을 한다

 

S 프레임 - 제어부가 10으로 시작하는 프레임이다 오류 제어와 흐름 제어를 위해 사용된다

 

U 프레임 - 제어부가 11으로 시작하는 프레임이다 링크의 동작모드를 관리한다

 

제어 필드는 Poll / Final비트를 가지고 있다.

Poll은 송신자가 응답을 요구할때 1로 설정하여 보낸다

Final은 수신자가 응답요구를 요청 받았을때 1로 설정하여 응답을 한다

 

송신자는 수신자에게 응답요청을 할때 Poll을 1로 설정하여 응답요청을 한다 (요청)

이때 송신자는 수신자의 Final 1 을 받을때 까지 재전송을 할 수가 없다

(똑같은 정보를 여러번 요청하는 것을 막는다 - 단 타임아웃시 재전송 가능)

 

수신자는 Poll 1을 받은경우 송신자에게 Final 1을 전송해야 한다 (응답)

 

이때 수신자는 송신자에게 Poll 1을 받을 떄 까지 전송을 할 수 없다

(이때는 타임아웃이 없고 시간이 오래 지나더라도 재전송을 하지 않는다 )

 

 

정보부(Information Field) : 실제 메시지가 들어 있는 부분으로 송신자와 수신자의 네트워크 상태에 따라 크가가 달라진다 (슬라이딩 원도우 방식)

I 프레임과 U 프레임만 정보 필드가 들어간다

 

 

FCS(Frame Check Seqience Field 프레임 검사 순서 필드) :프레임 내용에 대한 오류 검출을 위해 사용되는 부분으로, 일반적으로 CRC 코드가 사용된다

 

HDLC의 국(Station)

주국: 종속된 단말기를 제어하거나 정보를 제공해 주는 컴퓨터로, 주 스테이션, 1차국, 서버라고도 한다.

종국: 주국으로부터 제어를 받고 정보를 제공받는 컴퓨터로, 부 스테이션, 2차국, 클라이언트라고도 한다

혼합국; 상대국 컴퓨터의 제어를 받기도 하고 제어를 하기도 하는 동등한 위상을 가진 컴퓨터로, 복합국이라고도 한다.

 

CRC(순환 중복 검사)

CRC(Cyclic Redundancy Check)는 다항식 코드를 사용하여 오류를 검출하는 방식으로, 집단 오류를 검출할 수 있고 검출율리 높으므로 가장 많이 사용되는 오류검출 기법이다

 

데이터 전송모드

데이터 전송모드는 U 프레임에 의해 설정된다

표준 응답 모드

(NRM - Normal Response

Mode)

반이중 통신을 하는 포인트 투 포인트 또는 멀티 포인트 불균형 링크 구성에 사용

 

종국은 주국의 요청( Poll )이 있을 때만 송신

비동기 응답 모드

(ARM - Asynchronous Response Mode)

전이중 통신을 하는 포인트 투 포인트 불균형 링크 구성에 사용

 

종국은 주국의 요청이( Poll ) 없어도 송신가능

 

링크설정이나 오류 복구등 제어 기능은 주국만 가능

비동기 균형 모드

(ABM - Asynchronous

Balanced Mode)

포인트 투 포인트 균형 링크에서 사용

 

혼합국 끼리 주국의 요청( Poll ) 없이 언재나 전송할 수 있다


* 불균형 링크 - 주국과 종국 사이의 통신

균형 링크 - 동등한 권한의 혼합국끼리의 통신을 말한다