정보처리기사 필기 - 5과목 데이터 통신
3장 전송 제어 방식
159 전송 제어의 기본
① 전송 제어의 개념
전송 제어(Transmission Control)란 데이터의 원할한 흐름을 위해 입·출력 제어, 회선 제어, 동기 제어, 오류 제어, 흐름 제어 등을 수행하는 것
· OSI 7 참고 모델의 데이터 링크 계층(2계층)에서 수행하는 기능
· 전송 제어에 사용되는 프로토콜을 전송 제어 프로토콜 또는 데이터 링크 제어 프로토콜이라고 함
② 전송 제어 절차
데이터 통신 회선의 접속→데이터 링크 설정(확립)→정보 메시지 전송→데이터 링크 종결→데이터 통신 회선의 절단
데이터 통신 회선의 접속
교환 회선(교환기에 의해 송·수신 측 간 통신 회선이 연결되는 방식)에서 통신 회선과 단말기를 물리적으로 접속하는 단계
· 교환 회선을 이용한 포인트 투 포인트 방식이나 멀티 포인트 방식으로 연결된 경우에 필요한 단계
· 전용 회선을 이용한 포인트 투 포인트 방식으로 연결된 경우에는 불필요한 단계
데이터 링크의 설정(확립)
접속된 통신 회선상에서 송·수신 측 간의 확실한 데이터 전송을 수행하기 위해서 논리적 경로를 구성하는 단계
· 순서 : 수신 측 호출→정확한 수신 측인가 확인→수신 측의 데이터 전송 준비 상태 확인→송·수신 측 입장의 확인→수신 측 입·출력 기기 지정
· 데이터 링크의 설정 방법에는 폴링/셀렉션 방식, 경쟁방식이 있음
정보 메시지 전송
설정된 데이터 링크를 통해 데이터를 수신측에 전송하고, 오류 제어와 순서 제어를 수행하는 단계
데이터 링크 종결
송·수신 측 간의 논리적 경로를 해제하는 단계
데이터 통신 회선의 절단
통신 회선과 단말기 간의 물리적 접속을 절단하는 단계
160 데이터링크 제어 프로토콜 - BSC
① 데이터 링크 제어 프로토콜의 개요
· 데이터 링크 제어 프로토콜은 컴퓨터와 컴퓨터, 컴퓨터와 단말장치 등의 두 장치 상호간에 신속하고 정확하게 데이터를 주고받을 수 있도록 전송 제어를 수행하는 프로토콜
· 데이터 링크 제어 프로토콜은 데이터 링크 레벨 프로토콜, 전송 제어 프로토콜이라고 함
· 문자 위주 방식과 비트 위주 방식으로 구분됨
② BSC의 개요
BSC(Binary Synchronous Control)는 문자 위주의 프로토콜로, 각 프레임에 전송 제어 문자를 삽입하여 전송 제어
· 문자 코드 상에 정의된 전송 제어 문자를 이용하여 링크를 제어하기 때문에 사용하는 문자 코드에 의존적이며, 사용할 수 있는 코드가 제한적
· 통신하는 컴퓨터들이 사용하는 문자 코드 체계가 통일되어 있어야 함
· 반이중(Half Duplex) 전송만을 지원
· 주로 동기식 전송 방식이나 비동기식 전송 방식을 사용하기도 함
· 포인트 투 포인트, 멀티 포인트 방식에서 주로 사용
· 오류 제어 및 흐름 제어를 위해 정지-대기 ARQ(오류 제어 및 흐름 제어 기법 중의 하나로 한 번에 한 개의 데이터 프레임을 전송한 후 수신 측의 응답을 기다리는 방식)
· 전파 지연 시간이 긴 선로에는 비효율적
· 오류 검출이 어렵고, 전송 효율 나쁨
③ 전송 제어 문자
전송 제어 문자는 링크 관리, 프레임의 시작 및 끝의 구별과 오류 제어 등의 기능을 하는 것으로, 주요 전송 제어 문자는 다음과 같음
문자 |
기능 |
SYN(SYNchronous idle) |
문자 동기 |
SOH(Start Of Heaing) |
헤딩의 시작 |
STX(Start Of TeXt) |
본문의 시작 및 헤딩의 종료 |
ETX(End of TeXt) |
본문의 종료 |
ETB(End of Transmission Block) |
블록의 종료 |
EOT(End of Transmission) |
전송 종료 및 데이터 링크의 헤제 |
ENQ(ENQuiry) |
상대편에 데이터 링크 설정 및 응답을 요구 |
DLE(Data Link Escape) |
전송 제어 문자 앞에 삽입하여 전송 제어 문자임을 알림 |
ACK(ACKnowledge) |
수신된 메시지에 대한 긍정 응답 |
NACK(Negative ACKnoewledge) |
수신된 메시지에 대한 부정 응답 |
161 데이터 링크 제어 프로토콜 - HDLC
① HDLC의 개요
HDLC(High-level Data Link Control)는 비트 위주의 프로토콜로, 각 프레임에 데이터 흐름을 제어하고 오류를 검출할 수 있는 비트 열을 삽입하여 전송
· 포인트 투 포인트 및 멀티 포인트, 루프 등 다양한 데이터 링크 형태에 동일하게 적용 가능
· 단방향, 반이중, 전이중 통신을 모두 지원하며, 동기식 전송 방식 사용
· 오류 제어를 위해 Go-Back-N과 선택적 재전송(Selective Repeat) ARQ를 사용
· 흐름 제어를 위해 슬라이딩 윈도우 방식 사용
· 전송 제어상의 제한을 받지 않고 자유로이 비트 정보를 전송할 수 있음(비트 투과성)
· 전송 효율과 신뢰성 높음
※ 비트 스터핑(Bit Stuffing)
비트 스터핑은 프레임에 임의의 비트를 삽입하여 데이터의 자유로운 전송을 보장하는 기능으로, 프레임 내의 플레그 비트와 다른 비트를 구분하여 기본적인 오류 검출)
- 플래그 비트를 제외한 모든 비트는 '1'이 6개 이상 연속되지 않도록 함. '1'이 연속적으로 5개가 입력되면 그 다음 6번째에는 '0'을 강제적으로 추가하여 송신
- 프레임 내에 '1'이 연속해서 6개가 입력되면 플래그 비트, 7개 이상 연속해서 입력되면 오류 프레임으로 인식하여 오류 검출함
② HDLC의 프레임 구조
[그림 1] HDLC의 프레임 구조
· 플래그(flag)
- 프레임의 시작과 끝을 나타내는 고유한 비트 패턴(01111110)
- 동기 유지(통화로의 혼선을 방지하기 위해)
- 비트 투과성을 이용한 기본적인 오류 검출
· 주소부(Address Field) : 송·수신국을 식별하기 위해 사용. 불특정 다수에게 전송하는 방송용은 '11111111', 시스템에 의해 임의로 수신국이 지정되는 시험용은 '00000000'
· 제어부(Control Field) : 프레임의 종류를 식별하기 위해 사용. 제어부의 첫 번째, 두 번재 비트를 사용하여 다음과 같이 프레임 종류 구별함
I 프레임 |
정보 프레임. 제어부가 '0'으로 시작하는 프레임으로, 사용자 데이터를 전달하거나 피기백킹 기법을 통해 데이터에 대한 확인 응답을 보낼 때 사용됨 |
S 프레임 |
감독 프레임. 제어부가 '10'으로 시작하는 프레임. 오류 제어와 흐름 제어를 위해 사용됨 |
U 프레임 |
비번호 프레임. 제어번호가 '11'로 시작하는 프레임. 링크의 동작 모드 설정과 관리 |
· 정보부(Information Field) : 실제 정보 메시지가 들어 있는 부분으로, 송·수신 측 간의 협의에 따라 길이와 구성 정해짐
· FCS(Frame Check Sequence Field, 프레임 검사 순서 필드) : 프레임 내용에 대한 오류 검출을 위해 사용되는 부분으로, 일반적으로 CRC 코드 사용됨(CRC 순환 중복 검사 : 다항식 코드를 사용하여 오류를 검출하는 방식으로, 집단 오류를 검출할 수 있고 검출률이 높으므로 가장 많이 사용되는 오류 검출 기법)
※ 피기백킹(Piggybacking)
- 데이터 프레임에 확인 응답을 포함시켜 전송하는 것
※ HDLC의 국(Station)
- 주국 : 종속된 단말기를 제어하거나 정보를 제공해 주는 컴퓨터로, 주 스테이션, 1차국, 서버
- 종국 : 주국으로부터 제어를 받고 정보를 제공받는 컴퓨터로, 부 스테이션, 2차국, 클라이언트
- 혼합국 : 상대국 컴퓨터의 제어를 받기도 하고 제어를 하기도 하는 동등한 위상을 가진 컴퓨터로, 복합국
③ 데이터 전송 모드
데이터 전송 모드는 제어부에서 관리하는 U 프레임에 의해 설정되며 다음과 같이 세 가지로 구분됨
표준(정규) 응답 모드(NRM, Normal Response Mode) |
· 반이중 통신을 하는 포인트 투 포인트 또는 멀티 포인트 불균형 링크 구성에 사용 · 종국은 주국의 허가가 있을 때에만 송신 |
비동기 응답 모드(ARM, Asynchronous Response Mode) |
· 전이중 통신을 하는 포인트 투 포인트 불균형 링크 구성에 사용 · 종국은 주국의 허가 없이도 송신이 가능하지만, 링크 설정이나 오류 복구 등의 제어 기능은 주국만 가능 |
비동기 균형(평형) 모드(ABM, Asynchronous Balanced Mode) |
· 포인트 투 포인트 균형 링크에서 사용 · 혼합국끼리 허가 없이 언제나 전송할 수 있도록 설정 |
162 회선 제어 방식
① 회선 제어 방식의 개요
· 하나의 통신 회선을 공유하는 여러 대의 단말장치들이 통신 회선을 사용하는 방식에 따라 통신망의 효율에 큰 영향을 줌
· 또한 여러 대의 단말장치들이 동시에 데이터를 전송하면 충돌이 발생하여 데이터의 식별이 어려워짐
· 회선 제어란 이러한 문제들을 해결하기 위해 각 장치들의 송·수신 시 필요한 규칙을 의미
② 경쟁 방식
경쟁(Contention) 방식은 회선 접속을 위해서 서로 경쟁하는 방식으로, 송신 요구를 먼저 한 쪽이 송신권 갖음
· 데이터 전송을 하고자 하는 모든 장치가 서로 대등한 관계에 있는 포인트 투 포인트 방식에서 주로 사용
· 송신 요구가 발생한 국이 주국이 되어 상대국(종국)에 셀렉팅 순서를 송신하여 상대국의 수신 가능 상태를 확인한 후 정보 메시지 송신
· 데이터 링크가 설정되면 정보 전송이 종료되기 전가지는 데이터 링크의 종결이 이루어지지 않고 독점적으로 정보 전송을 하게 됨
· 송신 측이 전송할 메시지가 있을 경우 사용 가능한 회선이 있을 때가지 기다려야 함
· 대표적인 시스템 : ALOHA
③ 폴링/셀렉션 방식
주 컴퓨터에서 송·수신 제어권을 가지고 있는 방식
· 트래픽이 많은 멀티 포인트 방식으로 연결된 회선에서 사용
폴링(Polling) |
주 컴퓨터에서 단말기에게 전송할 데이터가 있는지를 물어 전송할 데이터가 있다면 전송을 허가하는 방식으로, 단말기에서 주 컴퓨터로 보낼 데이터가 있는 경우에 사용 (질의 : 주 컴퓨터→단말기 / 데이터 전송 : 단말기→주 컴퓨터) |
셀렉션(Selection) |
주 컴퓨터가 단말기로 전송할 데이터가 있는 경우 그 단말기가 받을 준비가 되었는가를 묻고, 준비가 되어 있다면 주 컴퓨터에서 단말기로 데이터를 전송하는 방식 (질의&데이터 전송 : 주 컴퓨터→단말기) |
163 오류 제어 방식
① 오류의 발생 원인
전송과정에서 오류가 발생하는 주요 원인과 현상
오류 발생 원인 |
현상 |
|
감쇠(Attenuation) |
· 전송 신호 세력이 전송 매체를 통과하는 과정에서 거리에 따라 약해지는 현상 · 주파수가 높을 수록 감쇠 현상 심해짐 · 감쇠 현상을 해결하기 위해 중계기(기지국) 이용 |
|
지연 왜곡(Delay Distortion) |
· 유선 매체에서 발생하는 문제로, 하나의 전송 매체를 통해 여러 신호를 전달했을 때 주파수에 따라 그 속도가 달라짐으로써 생기는 오류 · 중심 주파수의 전달 속도가 가장 빠르고, 양쪽 끝의 주파수일수록 |
|
잡음 (Noise) |
백색 잡음 (While Noise) |
· 가우스 잡음, 열 잡음 · 전송 매체 내부에서 온도에 다라 전자의 운동량이 변화함으로써 생기는 잡음으로, 완벽하게 제거하기는 힘듦 |
상호 변조(간섭) 잡음 (Intermodulation Noise) |
· 서로 다른 주파수들이 하나의 전송 매체를 공유할 때 주파수 간의 합이나 차로 인해 새로운 주파수가 생성되는 잡음 · 통신 시스템의 비선형성 때문에 생김 |
|
누화 잡음 = 혼선 (Cross Talk Noise) |
· 인접한 전송 매체의 전자기적 상호 유도 작용에 의해 생기는 잡음 · 신호의 경로가 비정상적으로 결합된 경우 나타남 · 전화 통화중 다른 전화의 내용이 함게 들리는 현상 |
|
충격성 잡음 (Impulse Noise) |
· 번개와 같은 외부적인 충격 또는 통신 시스템의 결함이나 파손 등의 기계적인 충격에 의해 생기는 잡음 · 순간적으로 일어나는 높은 진폭의 잡음으로, 비연속적이고 불규칙적인 진폭 갖음 |
|
돌발성 잡음 |
자연 현상, 통신 장비의 결함 등 예측할 수 없는 외부 요인에 의해 발생하는 잡음 |
|
위상 지터 잡음 (Phase Jitter Noise) |
전송 네트워크에서 전송 신호의 위상이 연속적으로 일그러지는 현상 |
|
위상 히트 잡음 (Phase Hit Noise) |
전송 네트워크에서 전송 신호의 위상에 불연속적인 순간 변화가 일어나는 현상 |
※ 우연적 왜곡과 시스템적 왜곡
· 우연적 왜곡은 예측할 수 없이 무작위로 발생하는 왜곡으로, 백색 잡음, 충격 잡음, 누화 잡음, 위상 히트 잡음이 있음
· 시스템적 왜곡은 전송 매체에서 언제든지 일어날 수 있는 왜곡으로, 손실, 감쇠, 하모닉 왜곡(신호의 감쇠가 진폭에 의해 달라지는 것)등이 있음
② 오류율
오류율은 전송 데이터에 대한 오류의 비율을 나타내는 것으로, 전송 형태에 따라 다음과 같이 계산함
· 비트 오류율 = 오류 비트 수/전송한 총 비트수
· 블록 오류율 = 오류 블록 수/전송한 총 블록수
· 문자 오류율 = 오류 문자 수/전송한 총 문자수
③ 전송 오류 제어 방식
전진(순방향) 오류 수정(FEC) |
전진 오류 수정(FEC; Forward Error Correction)은 데이터 전송 과정에서 발생한 오류를 검출하여, 검출된 오류를 재전송 요구 없이 스스로 수정하는 방식 · 송신 측에서는 문자나 프레임 오류 검출을 위한 부가 정보를 추가시켜 전송하고, 수신 측에서는 이러한 부가 정보를 이용하여 자신이 수신한 데이터에 존재하는 오류를 발견하고 수정함 · 재전송 요구가 없기 때문에 역 채널이 필요 없고, 연속적인 데이터 흐름 가능 · 데이터 비트 이외에 오류 검출 및 수정을 위한 비트(잉여 비트)들이 추가로 전송되어야 하기 때문에 전송 효율이 떨어짐 · 오류의 검출과 수정을 위한 방식에는 해밍 코드 방식과 상승 코드 방식이 있음 |
후진(역방향) 오류 수정(BEC) |
후진 오류 수정(BEC; Backward Error Correction)은 데이터 전송 과정에서 오류가 발생하면 송신 측에 재전송을 요구하는 방식 · 패리티 검사, CRC, 블록 합 방식 등을 사용하여 오류를 검출하고, 오류 제어는 자동 반복 요청(ARQ)에 의해 이루어짐 |
④ 자동 반복 요청(ARQ)의 개요
· 자동 반복 요청(ARQ; Automatic Repeat reQuest)은 오류 발생 시 수신 측은 오류 발생을 송신 측에 통보하고, 송신 측은 오류 발생 블록을 재전송하는 모든 절차를 의미
· 자동 반복 요청 방식 종류 : 정지-대기 ARQ, Go-back-N ARQ, 선택적 재전송 ARQ, 적응적 ARQ
⑤ 정지-대기 ARQ
정지-대기(Stop-and-Wait) ARQ는 송신 측에서 한 개의 블록을 전송한 후 수신 측으로부터 응답을 기다리는 방식
· 수신 측의 응답이 긍정 응답(ACK)이면 다음 블록 전송하고, 부정 응답(NAK)이면 앞서 송신했던 블록을 재전송
· 블록을 전송할 때마다 수신 측의 응답을 기다려야 하므로 전송 효율이 가장 낮음
· 오류가 발생한 경우 앞서 송신했던 블록만 재전송하면 되므로 구현 방법이 가장 단순
⑥ 연속 ARQ
· 연속(Continuous) ARQ는 정지-대기 ARQ가 갖는 오버헤드를 줄이기 위해 연속적으로 데이터 블록을 보내는 방식
· 수신 측에서는 부정 응답(NAK)만 송신
· 연속 ARQ는 프레임의 송신 순서와 수신 순서가 동일해야 수신이 가능함
Go-Back-N ARQ |
· 여러 블록을 연속적으로 전송하고, 수신 측에서 부정 응답을 보내오면 송신 측이 오류가 발생한 블록 이후의 모든 블록을 재전송 · 전송 요류가 발생하지 않으면 쉬지 않고 연속적으로 송신 가능 · 오류가 발생한 부분부터 모두 재전송하므로 중복 전송의 단점 있음 |
선택적 재전송 (Selective Repeat) ARQ |
· 여러 블록을 연속적으로 전송하고, 수신 측에서 부정 응답을 보내오면 송신 측이 오류가 발생한 블록만을 재전송 · 수신 측에서 데이터를 처리하기 전에 원래 순서대로 조립해야 하므로, 더 복잡한 논리 회로와 큰 용량의 버퍼 필요 |
⑦ 적응적 ARQ
적응적(Adaptive) ARQ는 전송 효율을 최대로 하기 위해서 데이터 블록의 길이를 채널의 상태에 따라 그때그때 동적으로 변경하는 방식
· 전송 효율이 가장 좋음
· 제어 회로가 매우 복잡하고 비용이 많이 들어 현재는 거의 사용되지 않음
164 오류 검출 방식
① 오류 검출 방식의 개요
· 오류 제어 방식 중 데이터 전송 시에 발생하는 오류를 검출하는 방법에 대한 설명
· 오류를 검출하는 가장 대표적인 방법은 오류 검출 코드를 이용하는 방법으로, 송신 측에서 전송 데이터에 오류 검출 코드를 부가하여 송신하면 수신 측에서는 그 코드를 이용하여 수신된 데이터의 오류를 검출
· 오류 검축 방식 : 패리티 검사, 순환 중복 검사, 궤한 전송 방식, 자동 연속 방식, 해밍 코드 방식, 상승 코드 방식
② 수직 패리티 체크 = 수직 중복 검사(VRC; Vertical Redundancy Check)
· 패리티 검사는 전송 비트에 1비트의 검사 비트인 패리티 비트를 추가하여 오류를 검출하는 방식
· 수직 방향으로 패리티 비트를 부여하는 방식
· 전송 비트들 중 값이 1일 비트의 개수가 짝수 또는 홀수가 되도록 패리티 비트를 부여
- 짝수(우수) 패리티 : 각 전송 비트 내에 1의 개수가 짝수가 되도록 하는 것으로, 주로 비동기식 전송에 사용
- 홀수(기수) 패리티 : 각 전송 비트 내에 1의 개수가 홀수가 되도록 하는 것으로, 주로 동기식 전송에 사용
· 가장 간단한 방식이지만, 두 개의 비트에 동시에 오류가 발생하는 검출 불가능
· 오류를 검출만 할 수 있고, 수정은 하지 못함
③ 수평 패리티 체크 = 세로 중복 검사(LRC; Longitudinal Redundancy Check)
· 수평 방향으로 패리티 비트를 부여하는 방식으로, 전송 비트를 일정랼의 블록으로 묶어서 블록의 맨 마지막에 패리티 비트 부여
④ 순환 중복 검사(CRC)
순환 중복 검사(CRC; Cyclic Redundancy Check)는 다항식 코드를 사용하여 오류를 검출하는 방식
· 동기식 전송에서 주로 사용됨
· HDLC 프레임의 FCS(프레임 검사 순서 필드)에 사용되는 방식
· 집단 오류 검출 가능, 검출률 높으므로 가장 많이 사용됨
⑤ 궤한 전송 방식
· 궤한 전송 방식(Echo Check)은 수신 측에서 받은 데이터를 송신 측으로 되돌려 보내어 원본 데이터와 비교하여 오류가 있는 경우 재전송하는 방식
⑥ 자동 연속 방식(연속 자동 방식)
· 송신 측에서 동일 데이터를 두 번 이상 전송하면 수신 측에서도 두 데이터를 비교해 이상유무를 판단한 후 오류 발생 시 이를 수정하는 방법
⑦ 해밍 코드 방식
해밍 코드(Hamming Code) 방식은 수신 측에서 오류가 발생한 비트를 검출한 후 직접 수정하는 방식
· 오류 검출은 물론 스스로 수정까지 하므로 자기 정정 부호라고도 함
· 1비트의 오류만 수정이 가능하며, 정보 비트 외에 이영 비트가 많이 필요함
· 송신한 데이터와 수신한 데이터의 각 대응하는 비트가 서로 다른 비트의 수를 해밍 거리
· 전송 비트 중 1, 2, 4, 8, 16, 32, 64 ··· , 번째를 오류 검출을 위한 패리티 비트로 사용하며, 이 비트의 위치는 변하지 않음
⑧ 상승 코드(부호) 방식
상승 코드 방식은 순차적 디코딩과 한계값 디코딩을 사용하여 오류 수정
· 수신 측에서 오류 데이터를 수정할 수 있다는 점에서 해밍 코드와 같지만 상승 코드는 여러 비티의 오류도 수정 가능
출처 : 2017 시나공 정보처리기사 필기
'정보처리기사 > 데이터통신' 카테고리의 다른 글
데이터통신 오답노트 (0) | 2017.02.27 |
---|---|
5장 통신 프로토콜 (2) | 2017.02.15 |
4장 데이터 회선망 (0) | 2017.02.15 |
2장 데이터 통신 이론 (0) | 2017.02.14 |
1장 데이터 통신의 기본 (0) | 2017.02.14 |