본문 바로가기
엔지니어 기술 자료/광통신

데이터 통신(4장. Data Link)

by 메카지 2022. 11. 2.
반응형

Data Link

  • 앞에서 살펴본 에러 제어, 흐름 제어 등의 일은 두 시스템 간의 물리적 데이터 전송에 신뢰성을 부여하는 역할을 한다. 하지만, 두 시스템 간의 데이터 전송이 신뢰성 있게 이루어지기 위해서는 이외에도 많은 일들이 필요하다. 이러한 일들에 대한 체계적인 구성을 데이터 링크 제어라 한다.
  • 여기서 데이터 링크라 함은 두 시스템 간의 신뢰성 있는 데이터 전송을 위해 설정되는 논리적 연결(connection)을 의미한다. 물리적 선로 상의 전송 단위가 비트인 반면 이 데이터 링크 상의 전송 단위는 일정한 개수의 문자 또는 일정 길이의 비트들의 블럭이 되며 이 블럭에 대한 체계적인 구조를 프레임이라 한다.
  • 여기서 주의할 점은 데이터 링크라고 하는 것이 또 하나의 별도의 물리적 선로가 아니라 두 시스템 간의 신뢰성 있는 데이터 전송을 위해 설정되는 하나의 가상 선로라는 사실이다.

Data Link

데이터 링크 제어

  • 데이터 링크 제어에 관계되는 일들로는 앞 장에서 설명한 에러 제어와 흐름 제어 이외에도 다음과 같은 것들이 있다.
  • 데이터 링크 설정, 유지, 해제 : 데이터 링크 제어의 가장 기본적인 일로 데이터 전송 전에 데이터 링크를 설정하고 데이터 전송 동안에는 링크를 유지하며 전송이 종료되었을 때에는 링크를 해제한다.
  • 프레임의 구성 : 데이터를 전송하기 위해서는 약속된 형태대로 프레임을 구성하여야 한다.
  • 프레임 동기화 : 송신측에서는 프레임 구성 시 수신 측이 동기를 맞추는 데 사용할 동기용 기호를 삽입하고 수신 측에서는 이 기호를 이용하여 송신 측과 동기를 맞춘다.

데이터 링크 제어

데이터 링그 제어 절차

  • 데이터 링크 제어에 대한 체계적인 구조들이 다양한 기관들에 의해 제시되었는데, 이러한 구조들을 처음에는 데이터 링크 제어 절차라 부르다가 OSI(Open Systems Interconnection) 모델이 출현한 이후로는 데이터 링크 제어 프로토콜이라 부르고 있다.
  • 대표적인 데이터 링크 제어 프로토콜로는 다음의 세 가지를 들 수 있다.
  • 베이직 절차 : ISO(International Standard Organization)에서 제안한 것으로 매우 간단한 데이터 링크 제어 프로토콜이다.
  • SDLC(Synchronous Data Link Control) : IBM에서 사용하고 있는 데이터 링크 제어 프로토콜이며 다음의 HDLC의 기초가 되었다.
  • HDLC(High-level Data Link Control) : ISO에서 제안한 고급의 데이터 링크 제어 프로토콜이다. 이 프로토콜은 X.25 망의 LAPB(Link Access Procedure - Balanced), 프레임 릴레이 망의 LAPF(Link Access Procedure for Frame mode), ISDN(Integrated Services Digital Network)의 LAPD(Link Access Procedure on D channel) 등의 기초가 되었다.
  • 위 프로토콜들 중 베이직 절차와 HDLC에 대해서는 이어서 보다 구체적으로 다루어진다.
반응형

베이직 절차

  • 베이직 절차는 간단한 데이터 링크 제어 환경을 위해서 제안되었는데 다음과 같은 특징들을 가지고 있다.
  • ASCII (American Standard Code for Information Interchange) 코드 셋 내의 10 개의 전송 제어 문자를 사용하여 통신을 제어한다.
  • 저속 통신에 사용된다.
  • 프레임의 구성단위가 문자이다. (이러한 프레임을 문자 지향형(character-oriented) 프레임이라 한다.)

전송 제어 문자

  • 베이직 제어 절차의 10 개의 전송 제어 문자와 사용 용도는 다음과 같다

전송 제어 문자

프레임 구조

  • 베이직 절차에서는 사용자 데이터를 '정보 메시지'라 부르는데, 그 구조는 아래 그림과 같다.
  • 베이직 절차의 프레임에는 명령 및 응답 전송에 사용되는 제어 프레임과 사용자 데이터 전송에 사용되는 정보 프레임의 2 가지 종류가 있다. 아래 그림에서는 이 중에서 정보 프레임의 5 가지 형태를 보여 주고 있다.

베이직 절차 프레임 구조

  • 위 그림에서 볼 수 있듯이, 사용자 데이터인 '정보 메시지'는 적절히 분할되어 1 개 이상의 정보 프레임으로 전송된다.
  • 각 정보 프레임의 맨 마지막 필드인 'BCC 필드'는 에러 검사 정보용 필드이다. 문자 코드로 ASCII 코드를 사용할 때는 여기에 수평 수직 패리티가 들어가게 되고 EBCDIC(Extended Binary Coded Decimal Interchange Code) 코드를 사용할 때는 수평 패리티만이 들어가게 된다.

HDLC

  • HDLC는 고급의 보편적인 데이터 링크 제어 환경을 위해 제안되었는데 다음과 같은 특징들을 가지고 있다.
  • 전송 제어 명령을 별도로 정의하여 사용한다.
  • 고속의 통신에 적합하다.
  • 프레임의 구성단위가 비트이다. (이러한 프레임을 비트 지향형(bit-oriented) 프레임이라 한다.)

주요 제어 명령어

  • HDLC에서 사용되는 제어 명령어들 중에 대표적인 몇 가지를 소개하면 아래 표와 같다.

HDLC 주요 제어 명령어

  • 위에서 SNRM, SARM, SABM 등은 상대방에게 데이터 링크 설정을 요청하는 데 사용된다.
  •  I는 전송되는 프레임이 사용자 데이터를 포함하고 있음을 알리는데 사용된다. UA는 비번호제 명령에 대한 응답에 사용된다. (비번호제 명령이란 송신 순서 번호를 가지고 있지 않은 명령을 말한다.)
  • RR, RNR는 프레임의 수신 가능 여부를 알리는데 사용된다.
  • HDLC에는 데이터 전송 방식에 정규 응답 모드(NRM), 비동기 응답 모드(ARM), 비동기 균형 모드(ABM) 등의 3 가지가 있는데, 데이터 링크 설정 시 원하는 전송 모드에 따라 거기에 맞는 데이터 링크 설정 명령, 즉 SNRM, SARM, SABM 중의 하나를 사용한다.

프레임 구조

  • HDLC 프레임의 구조는 다음 그림과 같다.

HDLC  프레임의   구조

  • 위 프레임의 각 필드들의 기능은 다음과 같다.
  • F : 프레임의 시작 또는 끝을 나타낸다.
  • A : 여러 시스템들이 하나의 라인에 연결되어 있을 경우 수신 시스템의 주소를 나타낸다.
  • C : 명령 및 응답 등의 제어 명령을 나타낸다.
  • Data block : 사용자 데이터를 나타낸다.
  • FCS : CRC 기법에 의해 계산된 에러 검사용 정보를 나타낸다.
  • 참고로, 데이터 블럭의 앞 부분에 있는 3 개의 필드들을 합하여 헤더라고 하고 뒤에 있는 2 개의 필드들을 합하여 트레일러라 한다.

Transparent transmission

  • 데이터 링크 제어 프로토콜들이 해결해야 할 과제 중의 하나는 일반 문자 데이터 또는 비트 패턴과 제어 문자 데이터 또는 비트 패턴이 하나의 데이터 블럭내에 같이 전송될 수 있도록 해야 한다는 것이다. 이러한 일을 transparent transmission이라 하는데, 베이직 절차와 HDLC에서는 각각 문자 스터핑(character stuffing) 또는 비트 스터핑(bit stuffing)이라는 기법을 사용하여 이것을 실현한다.

Character stuffing Bit stuffing

  • 먼저, 아래 그림에 베이직 절차에서 사용되고 있는 문자 스터핑의 예를 소개한다. 이 예에서는 모든 제어 문자 앞에 'DLE'를 끼워 넣고(stuffing) text 내의 제어 문자에는 DLE를 끼워 넣지 않는다. 단, text 내의 DLE 문자 앞에는 DLE를 끼워 넣어 제어 명령용 문자가 아님을 표시해 준다. 아래 그림에서는 STX, ETX 등의 제어 명령으로 사용되는 제어 문자에는 DLE가 첨가되어 있으며 text 내의 제어 문자 STX 앞에는 DLE가 첨가되어 있지 않으며 단지 text 내의 DLE 제어 문자 앞에는 DLE가 첨가된다는 것을 보여 주고 있다.

베이직   절차에서   사용되고   있는   문자   스터핑

 

  • 이제는 HDLC의 bit stuffing에 대하여 살펴본다. 아래 그림에서 볼 수 있는 것처럼, HDLC에서 프레임의 시작과 끝을 나타내는 비트 패턴은 '01111110'이다. 따라서, 전송하고자 하는 데이터 안에 이러한 비트 패턴이 존재하는 경우에는 그 비트 패턴은 프레임의 끝으로 해석될 위험성을 가지고 있다. 이러한 문제점을 해결하기 위하여 송신 측에서는 전송하고자 하는 데이터에 '1'이 연속해서 5 개 나타나는 경우에는 무조건 그 뒤에 '0'을 끼워 넣어 (stuffing) 전송하고 수신 측에서는 이를 제거하도록 한다.

HDLC 의  bit stuffing

 

 

반응형

댓글