[Ch 11]_데이터링크 제어
※ 데이터 링크 층
■ 데이터 링크 층의 가장 중요한 2가지 (부계층)
※ Data Link Control (DLC) 부계층
§1. 회선제어
§2. 프레임 짜기(Framing)
§3. 흐름 제어(Flow Control)
§4. 오류 제어(Error Control)
※ Media Access Control (MAC) 부계층
- 공유된 미디어로 접속하도록 하는 책임
※ 데이터 링크 제어(Data Link Control)
■ Data Link Control (DLC)
- 정보의 순서적 전송을 확실히 하기 위해 서로 연결된 컴퓨터와 단말기에 따른 제어
- 데이터 링크층에서 수행되는 기능
- 회선 제어(Line discipline), 프레임 짜기(Framing), 흐름 제어 (Flow Control), 오류 제어(Error Control)
§1. 회선 제어
■ 지금 누가 전송해야 하는가의 질문에 대한 응답
■ 2가지 방법
① ENQ/ACK (Enquiry/Acknowledgment): peer-to-peer 통신(링크에 연결된 관계가 대등한 관계)
② poll/select : primary-secondary 통신(주종관계)
① ENQ/ACK
② Polling / Selection
■ 회선 하나를 여러 개의 터미널이 공유하는 형태인 Multidrop(multipoint)에서는 한번에 하나의 터미널만이 메시지 보낼 수 있다.
→ 어떻게 하나만 선택하며 어떻게 해결하는가? Polling / Selection 방식 (현재 많이 사용 안함)
■ Polling is the function of asking the secondaries if they have anything to send.
- Roll-call polling : primary가 secondaries에게 전송할 데이터가 있는지 하나씩 확인
- Hub polling : secondaries에서 primary로 데이터를 보냄
■ Select is used whenever the primary device has something to send : primary에서 secondaries로 데이터를 보냄
Polling 예(Roll-call polling)
Selection 예
§2. 프레임 짜기(Framing)
■ 메시지들을 작은 단위의 비트들로 나누어 프레임을 구성
- 메시지에 대한 발신지와 목적지를 구분
- 송신자와 수신자 주소를 포함
- 목적지주소는 패킷이 가야할 곳을 규정하여 송신자는 수신자로 하여금 받았다는 것을 응답할 수 있도록 도움
- 흐름제어와 오류제어에 있어 효율성 증대
※ 프레임 크기
■ 일정 크기가 될 수도 가변 크기가 될 수도 있음
- 고정 크기 프레임(Fixed-size framing)
- 프레임 경계 필요 없이 크기 자체가 경계 역할을 함 - 예: ATM 망에서는 cell 이라는 고정 크기의 프레임 사용
- 가변 크기 프레임(Variable-size framing)
- 프레임이 끝나는 곳과 다음 프레임이 시작하는 곳을 지정함
- 문자 중심 프로토콜 (다음 슬라이드)
- 전달되는 데이터는 부호화 시스템의 8비트 문자
- 시작과 마지막에 플래그(8bits) 추가
- 비트 중심 프로토콜 (슬라이드14)
- 프레임의 데이터 부분을 전부 bit 열로 인식
- 플래그: 프레임 경계로 비트열 0111 1110을 사용 (프레임 내부의 같은 비트 패턴은 비트 채우기(bit stuffing)으로 처리하여 송신함)
① 문자중심 프로토콜의 프레임
Byte stuffing
■ 바이트 채우기
- 데이터에 Flag 문자나 ESC문자 있으면, 여분의 1문자(바이트) 즉, 추가문자(ESC문자)를 넣는다.
② 비트중심 프로토콜의 프레임
■ 플래그 필드의 패턴: 0111 1110
■ 앞의 문자 중심 프로토콜의 프레임과 같은 문제가 생길 수 있음. (즉, 플래그 패턴이 데이터 속에 나타나는 경우)
→ 해결책? 비트 채우기
Bit stuffing
■ 데이터에 플래그 필드의 패턴 (즉, 0111 1110)과 같은 것 이 포함되는 경우, 플래그 필드와 오인하지 않기 위해
■ 데이터 중에서 1이 연속으로 5번 있는 곳의 뒤에 0을 추가함
§3. 흐름제어(Flow Control)
■ 송신기가 수신기로부터 확인응답(ACK)을 받기 전에 송신기가 보낼 수 있는 데이터 양을 제한하는 절차
- ACK (Acknowledgment) : 수신기가 송신기에게 정상 수신 여부를 알리는 메시지
- 수신기는 한계에 도달하기 전에 송신기에게 프레임을 적게 보내게 하거나 일시적으로 멈추도록 알려야 함
- 처리율 < 전송율 일때 → 버퍼에 저장하여 흐름제어
※ 흐름제어 방식
1) Stop and Wait(정지/대기) 방식
- 송신자는 하나의 프레임을 전송하고 다음 프레임을 전달 하기 전에 확인응답을 기다림
2) Sliding Window (슬라이딩 윈도우) 방식
- 확인응답을 받기 전에 여러 개의 프레임을 전송할 수 있다
1) Stop and Wait 방식
■ 송신자는 하나의 프레임을 전송하고 다음 프레임을 전달하기 전에 확인응답을 기다림
■ 특징
- 장점 : 간단 (오류 프레임만 재전송)
- 단점 : 느린 속도에 따른 비효율성 (프레임 전송마다 응답 기다려야 함) → 링크 이용률 저하
2) Sliding Window
■ 확인응답을 받기 전에 여러 개의 프레임 전송 가능
- 프레임 순서번호 = modulo 2^m
- 2^m=n이라 두면, 0~ n-1까지의 수
- 여기서, m은 순서번호를 표시하는데 사용되는 bit 수
■ Window size = the number of outstanding frame (unacknowledged frame)
- 즉, ACK 받기 전 연속해서 보낼수 있는 프레임 개수
- 최대 크기는 n-1개 (즉, 2^m-1개)
§4. 오류제어(Error Control)
■ 오류 검출 + 오류 정정
- 데이터 링크층에서의 오류제어 → 검출+재전송
- 손상된 프레임
- 손실된 프레임
- 손실된 확인응답 20
■ 오류제어의 3가지 방법
1) Discarding the errors
2) FEC(Forward Error Correction): 수신측에서 에러 정정함
예) 해밍코드 등 사용하여 정정
3) ARQ (Automatic repeat request) : 재전송기법 - 가장 많이 사용됨
오류제어 방법: ARQ
■ 데이터링크 층에서의 오류제어는 ARQ를 기초로 함
■ ARQ (Automatic Repeat Request)
- 수신측에서 오류발생을 탐지하여 송신측에 통보, 송신측이 오류 발생한 프레임을 재전송하는 모든 절차들을 말함
- ACK: 확인응답
- NAK: 부정응답
※ 흐름 및 오류 제어 장치의 분류
1) Stop and Wait ARQ
■ 재전송을 위해 기본 흐름제어 메커니즘에 4가지 특성이 추가됨
① 송신측은 ACK가 올 때까지 전송한 프레임의 사본을 가짐 → 분실시 재전송 위해
② 데이터 프레임과 ACK 프레임에 번갈아 0과 1을 부여한다 → 중복 전송의 프레임 식별 위해
③ NAK 프레임(번호가 없는)
④ 타이머(송신측) → 프레임 손실 여부 파악
◆ 정상 동작
◆ 잃어버린 프레임
◆ 잃어버린 ACK 프레임
◆ 지연된 ACK
◆ Piggybacking(끼워넣기)
2) Sliding Window ARQ
■ 슬라이딩 윈도우 흐름제어에 손실 혹은 손상된 프레임을 재전송할 수 있도록 확장한 것
■ 슬라이딩 윈도우 ARQ 종류
① go-back-n ARQ
② selective-repeat(reject) ARQ
■ 기본 흐름 제어 메커니즘에 추가된 특성
- 송신측은 ACK가 올 때까지 전송한 모든 프레임의 사본을 가짐
- 확인/부정 응답
- ACK: 수신이 예상되는 다음 프레임 번호를 전달
- NAK: 손상된 프레임 번호를 전달
- 분실된 확인 응답을 처리하기 위해 타이머 설치
※ 송신기의 슬라이딩 윈도우
- The ‘send window’ can slide one or more slots when a valid acknowledgment arrives.
※ 수신기의 슬라이딩 윈도우
- The window slides when a correct frame has arrived; sliding occurs one slot at a time.
① Go-Back-N (n 프레임 후퇴) ARQ
■ Go-Back-N ARQ에서는
- 송신기의 윈도우 크기는 2^m보다 작아야 함. 최대 2^m-1 (보통 2^3-1=7개)
- 수신기의 윈도우 크기는 항상 1이다.
- 전송 오류 없으면 연속적으로 송신 가능
■ 프레임의 분실, 손상시
- 여러 프레임을 연속 전송하는데, 프레임이 분실되거나 손상되면 수신측에서 NAK 보냄
- 송신측에서 NAK 받으면, 오류 발생한 이후의 모든 프레임을 재전송함
■ 단점: 오류 발생된 이후의 프레임을 모두 재전송하므로 중복 전송
◆ 정상 동작
◆ 손실된 프레임
◆ 송신기 윈도우 크기
② Selective-Repeat ARQ(선택적 반복ARQ)
■ 손상되거나 분실된 프레임만 재전송
- 수신기의 윈도우 프레임 사이즈 = 송신측 윈도우 프레임 사이즈
◆ 손실된 프레임
◆ Selective-Repeat ARQ에서 윈도우 크기
[비교] 3가지 ARQ
■ Stop and Wait ARQ
- 구조가 간단하여 구현이 용이하나, 비효율적이어서 활용 도가 낮음
■ Go-Back-N ARQ
- 구조가 비교적 간단하고, 효율성이 향상되어 가장 널리 사용
■ Selective-Repeat ARQ
- 가장 효율적이나 구조가 복잡해서 유지 관리 비용 증가, 필요시 사용
§5. HDLC(High-level Data Link Control)
■ HDLC는 점-대-점과 다중점 구성에서 반이중과 전이중 모드를 지원하도록 설계된 실제 프로토콜
- 앞서 소개한 ARQ 장치의 구현
- 오늘날 PPP와 이더넷에서 사용되는 공통 데이터링크 프로토콜의 기초가 되는 프로토콜임
- 비트중심 프로토콜
■ HDLC는 지국의 형태, 구성, 응답 모드에 따라 구분
Station Types
■ 주국(primary station)
- 다중점 회선구성에서 링크의 모든 제어권을 가짐
- 종국에게 명령을 전송
■ 종국(secondary station)
- 주국의 명령에 대한 응답을 전송
■ 혼합국(combined station)
- 명령과 응답을 전송
- 주국,종국 기능 모두 가짐
※ 전송 모드
■ 통신을 하고 있는 두 장치 간의 관계를 나타냄
■ 누가 링크를 제어하는가를 표시
■ HDLC는 두 가지 전송모드를 제공
1) NRM(Normal Response Mode) 정규 응답 모드
2) ABM(Asynchronous Balanced Mode)비동기 균형 모드
1) NRM(Normal Response Mode)
■ 표준의 주국-종국 관계에 적용
- 하나의 주국, 다수의 종국
- 점-대-점과 다중점 링크에 모두 사용
■ 주국의 명령, 종국의 응답
- 종국은 전송 전에 주국의 허가를 받아야 하며
- 이후 하나 이상의 프레임의 응답전송 시작
2) ABM(Asynchronous Balanced Mode)
■ 모든 지국은 동등
- 점-대-점 링크에서만 사용
- 각 지국은 주국이자 종국으로 기능
■ 각 지국은 허가 없이도 다른 지국과 전송을 시작
■ 요즘 보통 사용하는 모드
HDLC 프레임
■ 여러 통신모드와 선택사항을 지원하기 위해 3종류의 프레임을 정의
- I (Information, 정보) 프레임
사용자 데이터와 이와 관계된 제어정보 전송에 사용
- S (Supervisory, 감시,감독) 프레임
데이터링크층의 흐름제어, 오류제어 등과 같은 제어정보 전송에 사용
- U (Unnumbered, 무번호) 프레임
링크 자체를 관리할 목적으로 사용
연결된 단말기 사이의 세션 관리, 제어정보 교환에 사용
HDLC frame 유형(외우기)
① Flag 필드
■ 프레임의 시작과 끝을 인식
■ 수신자를 위한 동기화 패턴으로 제공 (즉, 0111 1110)
■ 다중 프레임 전송에서는 종료 flag는 다음 프레임의 시작 flag를 겸할 수 있다
② 주소 필드
■ 프레임의 발신지 주소나 목적지 주소를 가짐
- 주국이 프레임 생성했으면 목적지(종국) 주소를 가지고, 종국이 프레임 생성했으면 발신지(종국자신) 주소를 가짐.
- 주국은 하나이므로 종국이 프레임을 생성했을 때 발신지 주소를 가질 필요가 없음
③ 정보 필드
■ I frame: 사용자 데이터
■ U frame: 네트워크 관리정보
■ Piggybacking
- 전송할 데이터와 수신된 데이터의 응답을 한 프레임에 조합하여 사용하는 방법
④ FCS 필드 Frame Check Sequence/프레임 검사 순서값
■ HDLC의 오류검출 필드 : 2 or 4바이트 CRC
⑤ 제어 필드
■ 흐름관리에 사용 (보통 1 혹은 2 byte)
Poll/Final
■ P/F 비트가 1인 경우만 유효하며, Poll/Final을 의미함
- Poll : 프레임이 주국에서 종국으로 보내질때, 즉, 주소필드가 수신기(목적지) 주소를 가질때
- Final : 프레임이 종국에서 주국으로 보내질때 즉, 주소필드가 발신지 주소를 가질때
I-frame의 제어필드
■ 사용자의 데이터 전송
■ 확인응답을 포함할 수 있음(끼워 보내기)
S-frame의 제어필드
■ 지국이 송신하려는 데이터가 없을 때 확인응답 전송 위해
■ 흐름제어와 오류 제어를 전송 위해
U-frame의 제어필드
연결 및 종결의 예
오류없는 피기백킹 예