네트워크/데이터통신_데이터링크 계층

[데이터링크 계층] DLC (Data Link Control)

4Legs 2020. 11. 18. 02:17

DLC (Data Link Control)

DLC는 Point-to-Point, Broadcast 링크 모두에 포함된 하위 계층이었다. DLC는 링크의 종류에 관계없이 두 노드에 대한 통신 과정을 다룬다.

DLC는 Framing, 흐름 & 오류 제어 기능을 포함한다.

 

Framing

데이터링크 계층은 비트들을 프레임의 형태로 감싸 다른 프레임들과 구분한다. 이러한 Framing은 물리 계층으로부터 전달된 비트들을 어떻게 조직하는지를 의미하며, 송신자와 수신자의 주소를 추가함으로써 메시지를 분리한다. 이 목적지 주소를 통해 송신자는 수신자가 메시지를 받았다는 응답을 돕는다.

 

고정 크기 프레임 (Fixed-size Frame) : ATM이나 WAN에서 사용되며, 프레임 간의 경계를 지정할 필요가 없다.

가변 크기 프레임 (Variable-size Frame) : LAN에서 사용되며, 프레임의 시작과 끝(=다음 프레임의 시작)을 나타낼 필요가 있다. 이는 Byte 기반 프레임과 Bit 기반 프레임으로 나뉜다.

 

Byte 기반(Character 기반) Framing

전달되는 데이터는 8비트 문자로, 시작과 마지막에 Flag를 추가한다. Flag로 프레임의 시작과 다음 프레임의 시작을 나타낸다. 이 때, 데이터의 문자가 Flag 또는 Escape 에 해당하는 문자일 수 있으므로(이 경우 프레임이 끊긴다), 데이터에서 이 문자들이 등장할 때는 Escape 문자를 한 번 더 채워준다. 이를 Byte Stuffing이라 한다.

Bit 기반 Framing

프레임의 데이터 부분을 전부 bit열로 인식한다. Flag는 01111110으로 나타낸다.

마찬가지로 데이터에 Flag와 동일한 비트열이 올 수 있기 때문에, 이를 구별하기 위해 데이터에서 1이 연속으로 5번 나올 경우 0비트를 채운다. 이를 Bit Stuffing이라 한다.

 

흐름 제어 (Flow Control)

흐름 제어는 송신자가 메시지를 전송한 후, 수신자로부터 확인 응답을 받기 전까진 전송 가능한 데이터의 양을 제한하는 것이다.

 

오류 제어 (Error Control)

데이터링크 계층에서 네트워크 계층이 손상된 패킷을 수신 노드로 전달하지 못하도록 하는 것이다.

 

DLC Protocol

비연결 지향 프로토콜 : 프레임은 프레임들 사이에 아무런 관계도 가지지 않은 상태로 노드 간 전송된다. 이는 프레임 간 연결이 없다는 것을 의미한다.

연결 지향 프로토콜 : 프레임은 번호가 매겨져 순서대로 보내진다. 따라서 프레임 간 논리적인 연결이 성립되는 것을 의미한다.

 

단순 프로토콜 (Simple Protocol)

흐름 제어, 오류 제어 없이 수신자는 프레임을 수신한 즉시 처리한다고 가정한다. 즉, 단순 프로토콜에서는 수신 프레임이 넘치지(overwhelmed) 않는다고 가정한다. 송신자는 자신의 네트워크 계층에서 전송할 메시지가 생길 때까지 프레임을 전송하지 않고, 이는 수신자도 동일하다.

유한 상태 다이어그램(이하 FSM)으로 나타낸 단순 프로토콜에서 송신자는 보낼 프레임을 생성한 즉시 전송하고, 수신자 역시 프레임을 수신하면 즉시 네트워크 계층에 패킷을 전달한다.

 

Stop-and-Wait Protocol

송신자는 한 번에 하나의 프레임을 전송하고, 그 다음 프레임을 보내기 전 수신자로부터 확인 응답을 기다린다. 수신자의 응답이 일정 시간동안 오지 않는다면 전송이 제대로 완료되지 않았다고 판단하여, 프레임을 재전송한다.

또한 흐름 제어 및 오류 제어를 사용하므로 손상된 프레임을 검출하기 위해 각 데이터 프레임에는 CRC가 추가된다. (손상된 경우 프레임은 폐기된다.)

따라서 채널에는 반드시 하나의 프레임과 하나의 확인 응답 신호만이 존재한다.

이를 FSM으로 나타내면 다음과 같다.

송신 측에서 타이머를 설정해 응답 신호를 기다리는 동안 Blocking됨을 확인할 수 있다.

그림에서 수신자는 0번 프레임을 수신하고, 다음에 받아야 할 프레임 번호인 1을 ACK (응답 신호)로 전송한다.

이후 송신 측에서 전송한 1번 프레임이 손실되어 수신 측에서 응답 신호를 보내지 않는다. 이에 따라 송신 측에서는 1번 프레임을 재송신한다.

세 번째로 전송된 0번 프레임은 수신측에서 받았지만, 이에 대한 응답 신호 ACK1이 손실되어 송신 측에서는 0번 프레임을 재전송한다. 수신 측에서는 이미 받은 0번 프레임을 폐기한다.

 

HDLC (High-level Data Link Control)

Point-to-Point, Broadcast 링크에 대한 비트 지향 프로토콜이다. HDLC는 두 가지의 전송 모드를 제공한다.

HDLC에서 Station은 다음과 같이 나뉜다.

Primary Station : 명령을 보내는 Station

Secondary Station : 명령을 받는 Station (받을 수만 있음)

Combined Station : Primary, Second의 기능을 모두 수행할 수 있다.

 

정규 응답 모드 (NRM, Normal Response Mode)

하나의 Primary Station에 대해 여러 Secondary Station이 존재하는 모드이다.

 

비동기 균형 모드 (ABM, Asynchronous Balanced Mode)

Combined Station끼리 서로 명령을 주고받는다.

 

HDLC 프레임

I-프레임 (Information Frame) : 네트워크 계층으로부터 데이터를 전송하기 위한 프레임이다.

S-프레임 (Supervisory Frame) : 흐름 제어 및 오류 제어를 위해 사용된다.

U-프레임 (Unnumbered Frame) : 세션 및 제어정보 교환에 사용된다.

 

[필드]

Flag Field : 프레임의 시작과 끝을 인식하도록 한다. 0111110으로 나타낸다.

Address Field :  Station의 주소를 가지고 있는 필드이다. 

Control Field : 흐름 및 오류 제어에 사용되는 필드이다.

Information Field : 사용자 데이터를 포함한다.

FCS Field : HDLC의 오류 검출 필드로, 2 또는 4바이트의 CRC를 포함한다.

 

 

 

 

※ 본 게시글은 『Data Communication and Network』 를 참고하여 작성되었습니다.