컴 퓨 터 네 트 워 크 - 데이터 링크 제어 (데이타링크층) - 컴 퓨 터 네 트 워 크 - 데이터 링크 제어 (데이타링크층) - 충북대학교 컴퓨터교육과 박 찬 교수 2012년 4월 3일
11장 데이터링크 제어와 프로토콜 흐름 및 오류 제어 정지-대기 ARQ n 프레임 후퇴 ARQ 선택적 반복 ARQ HDLC
데이터링크 제어와 프로토콜 데이터통신에는 반드시 송신장치와 수신장치가 있다. 데이터링크의 가장 중요한 책무는 흐름제어와 오류제어 이다. 이 두가지를 합쳐서 데이터링크 제어라 한다.
흐름 및 오류 제어 흐름제어 흐름제어는 확인 응답을 받기 전에 전송할 수 있는 데이터의 양을 조정하는 것이다. 대부분 프로토콜에서 흐름 제어란 수신기로부터의 확인 응답을 기다리기 전에 얼마나 많은 데이터가 전송될 수 있는 송신기에 알려주는 절차의 모임이다. 어떤 수신장치든 들어오는 데이터를 처리할 수 있는 제한 속도와 들어오는 데이터를 저장할 수 있는 한정된 메모리를 갖는다. 각 수신장치는 버퍼(buffer)라 불리는 메모리 블록을 가지고 있어 들어오는 데이터를 처리 할 때까지 저장한다.
흐름 및 오류 제어 오류제어 오류 제어는 오류 탐지와 오류 정정을 말한다. 데이터링크층에서 오류 정정은 교환중에 오류가 검출되면 부정응답이 되돌아오고 특정 프레임이 재전송된다. 이과정을 자동반복요청이라한다. ARQ : Automatic Repeat Request
정지-대기 ARQ 송신장치는 최근에 전송된 프레임의 복사본을 그 프레임에 대한 확인 응답을 받을때까지 유지한다. 프레임을 식별하기 위해 데이터 프레임과 ACK 프레임에는 교대로 0과 1의 번호가 매겨진다. 손상되거나 손실된 프레임은 수신자에 의해 같은 것으로 취급된다. 수신자는 오류가 생긴 프레임에 대해서는 ACK를 보내지 않는다. 송신자는 S, 수신자는 R이라는 제어변수를 가진다. 송신자와 수신자는 동시에 타이머를 동작시킨다. 수신자는 오직 안전하고도 온전한 프레임에 대해서만 긍정응답인 ACK를 보낸다.
정지-대기 ARQ 정상 작동 Time Time S = 0 R = 0 S = 1 R = 1 S = 0 R = 0 Frame = 0 R = 0 ACK = 1 S = 1 Frame = 1 R = 1 ACK = 0 S = 0 R = 0 Time Time
정지-대기 ARQ 손실 및 손상된 프레임 작동 Time Time S = 0 R = 0 S = 1 R = 1 Lost S = 1 Frame = 0 R = 0 ACK = 1 S = 1 Frame = 1 R = 1 Lost S = 1 Frame = 1 R = 1 ACK = 0 S = 0 R = 0 Time Time
정지-대기 ARQ 손실된 확인 응답 작동 Time Time S = 0 R = 0 S = 1 R = 1 Lost S = 1 Frame = 0 R = 0 ACK = 1 S = 1 Frame = 1 R = 1 ACK = 0 S = 1 Lost Frame = 1 R = 0 ACK = 0 S = 0 R = 0 Time Time
정지-대기 ARQ 지연된 확인 응답 Time Time S = 0 R = 0 S = 0 R = 1 S = 1 S = 1 Frame = 0 R = 0 ACK = 1 S = 0 Frame = 0 R = 1 ACK = 1 S = 1 Frame = 1 S = 1 Frame = 1 R = 1 ACK = 0 Time Time
n 프레임 후퇴 ARQ 정지-대기 ARQ에서는 송신자 입장에서 보면 확인 응답을 기다리는중인 프레임이 하나만 존재한다. 이는 전송매체의 활용이라는 점에서 비효율적이다. 이를 해결하기 위하여 한 개 이상의 프레임 전송이 진행되어야 한다 N 프레임 후퇴 (Go-Back N) ARQ 선택적 반복 (Selective Repeat) ARQ
n 프레임 후퇴 ARQ 순차번호 전송하는 지국으로부터 프레임들은 순차적으로 번호가 부여된다. 만약 m비트를 사용한다면 순차번호는 2m-1개 이다.
n 프레임 후퇴 ARQ 송신자 미닫이 창(Sliding Window) … 5 6 7 1 2 53 4 … SF S SL 1 2 53 4 … SF S SL Window size = 7 … 5 6 7 1 2 53 4 … Window size = 7
n 프레임 후퇴 ARQ 수신자 미닫이 창(Sliding Window) … 5 6 7 1 2 53 4 … R … 5 6 7 1 1 2 53 4 … R … 5 6 7 1 2 53 4 … R
n 프레임 후퇴 ARQ 정상 작동 Time Time Frame = 0 Frame = 1 ACK = 2 Frame = 2 1 2 3 Frame = 0 1 2 3 1 2 3 Frame = 1 1 2 3 ACK = 2 1 2 3 Frame = 2 1 2 3 ACK = 3 1 2 3 Frame = 3 1 2 3 Time Time
n 프레임 후퇴 ARQ 송신자의 창크기
선택적 반복 ARQ N프레임 후퇴는 ARQ는 수신자 쪽의 처리 과정이 단순하다. 하지만 잡음이 심한 링크에서는 비효율적이다. 따라서 손상된 프레임만 다시 보내는 방법이 효율적일 수 있다. 선택적 반복 ARQ는 위와 같이 손상된 프레임만 보내는 방식이다. 선택적 반복 ARQ의 송신자의 형상과 그 제어변수는 N 프레임 후퇴 ARQ와 같다. 수신자의 윈도우 크기는 송신자와 같다. 윈도우 크기는 2m의 절반보다 클 수 없다
선택적 반복 ARQ 동작 Time Time Lost Frame = 0 Frame = 1 ACK = 2 Frame = 2 1 2 3 Frame = 0 1 2 3 1 2 3 Frame = 1 1 2 3 ACK = 2 1 2 3 Frame = 2 Lost Frame = 3 1 2 3 1 2 3 NAK = 2 1 2 3 Frame = 2 1 2 3 Time Time
선택적 반복 ARQ 송신자의 창크기
HDLC 고수준 데이터링크 제어 High-level Data Link Control 점 대 점과 다중점 링크상에서 반이중통신과 전이중통신 모두를 지원하도록 설계된 실제 프로토콜이다. HDLC는 NRM과 ABM의 두 가지 통상적인 전송 모드를 제공한다. NRM(Normal Response Mode) 주국이 하나 여러 개의 종국 주국은 명령을 보낼 수 있는데 종국은 단지 응답만 가능하다. 점대점, 다중점 링크 모두 사용 ABM(Asynchronous Balanced Mode) 균형적이다. 점대점 링크 각 지국은 주국이자 종국이다.
HDLC 프레임 정보 프레임 (I-frame) 감시 프레임 (S-frame) 무번호 프레임 (U-frame) 사용자 데이터 사용자 데이터에 관련된 제어정보 감시 프레임 (S-frame) 오직 제어정보를 전송 데이터링크층의 흐름제어와 오류제어에 사용 무번호 프레임 (U-frame) 시스템 관리를 위함. 전송되는 정보는 링크 자체를 관리할 목적으로 쓰임.
HDLC 프레임 구성 필드 시작 플래그 필드 주소 필드 제어 필드 정보 필드 프레임 검사 순서(FCS) 필드 종료 플래그 필드
HDLC 프레임 구성 필드 플래그 필드 주소 필드 제어 필드 다중 프레임 전송에서는 종료 플래그가 다음의 시작 플래그를 겸한다. 01111110 을 가지는 8비트 열이다. 프레임의 시작과 끝을 인식한다. 수신기를 위한 동기화 패턴의 역할을 한다. 주소 필드 발신지이거나 목적지의 주소를 가지고 있다. 주국이 만들때 : 목적지의 주소를 가짐 종국이 만들때 : 발신지의 주소를 가짐 제어 필드 흐름관리와 오류제어에 사용된다.
HDLC 프레임 구성 필드 정보 필드 FCS 필드 네트워크계층의 사용자 데이터를 포함한다. 또는 네트워크 관리정보를 포함한다. Frame Check Sequence 오류 검출 필드 CRC를 포함한다.
HDLC 프레임 종류 I-프레임 사용자의 데이터를 실어나르기 위해 설계됨 추가적으로 흐름 및 오류 제어정보(끼워 보내기)를 포함할수 있다.
HDLC 프레임 종류 I-프레임 제어 필드의 첫번째 비트가 0 이면 이는 I-프레임 N(S) : 3개 비트, 프레임의 순차번호를 나타냄, ARQ에서 S 제어 변수임. P/F : 1개 비트, 1로 설정되었을 경우만 의미를 가짐, 폴(poll:주국->종국) 또는 파이널(final:종국->주국)을 의미 – 주소를 가지고 판단 N(R) : 3개 비트, 끼워 보내기 할때 ACK, NAK의 값에 해당함.
HDLC 프레임 종류 S-프레임 I-프레임에 제어정보를 끼워 보내거나 부적절할 때 사용 확인 응답 및 흐름 제어와 오류 제어를 위해 사용 정보 필드가 없다.
HDLC 프레임 종류 S-프레임 제어 필드의 처음 2비트가 10 이면 S-프레임 Code 00 : 수신 준비 (RR) 10 : 수신 불가 (RNR) 01 : 거부 (REJ) 11 : 선택적 거부 (SREJ) : 선택적 반복 ARQ의 NAK임 P/F : 1개 비트, 1로 설정되었을 경우만 의미를 가짐, 폴(poll:주국->종국) 또는 파이널(final:종국->주국)을 의미 – 주소를 가지고 판단 N(R) : 3개 비트, 끼워 보내기 할때 ACK, NAK의 값에 해당함.
HDLC 프레임 종류 U-프레임 서로 연결된 장치들간의 세션관리와 제어정보를 교환하는 용도로 사용. S-프레임과 달리 정보 필드가 존재, 단지 사용자 데이터가 아닌 시스템 관리정보를 위해 쓰임
HDLC 프레임 종류 U-프레임 제어 필드의 처음 2비트가 11 이면 U-프레임 Code : P/F의 앞의 2비트와 뒤의 3비트인 5비트를 가지고 총 32가지의 U-프레임을 만들어 사용 P/F : 1개 비트, 1로 설정되었을 경우만 의미를 가짐, 폴(poll:주국->종국) 또는 파이널(final:종국->주국)을 의미 – 주소를 가지고 판단
HDLC 프레임 종류 U-프레임
HDLC 연결 과정
HDLC 비트 채우기 프레임 내의 어디에서든 우연히라도 플래그가 나타나지 않도록 하기 위해 비트채우기를 한다. 송신기가 연속된 5개 이상의 1을 전송하기를 원할 때 송신기는 다섯 번째의 1 다음에 하나의 0을 삽입한다. 수신기는 삽입된 0을 발견한 경우 이 비트를 제거한다. 제외 사항 비트열이 실제 플래그인 경우 전송이 중지되었을 경우 채널이 비어 있는 경우