📘

7. Data Link Control Protocols

Keyword
2계층
개요
data link: 데이터 링크 제어 프로토콜이 사용될 때, 스테이션 간의 전송 매체
Frame Synchronization: 데이터는 프레임이라는 블록 단위로 전송됨. 각 프레임의 시작과 끝은 명백히 구분되어야 함.
Flow Control: tx는 rx보다 더 빠르게 프레임을 보내면 안 됨
Error Control: 전송 시스템에 의해 발생되는 비트 오류는 반드시 정정
Addressing: LAN과 같은 다중점 회선에서 전송에 관련된 두 스테이션은 서로 식별
Control and Data on Same Link: 제어 정보를 위해 별도 물리적인 통신로를 갖는 것은 일반적으로 바람직하지 않음. 수신기는 전송되는 데이터와 제어 정보를 구분할 수 있어야 함.
Link Management: 연속적인 데이터 교환을 시작/유지/해제하기 위해 스테이션 간 조정과 협력 요구 ⇒ 데이터 교환의 관리 절차 필요.

Overview

wire처럼 직접적으로 연결되어있음
loss와 error가 존재하지만, 순서에 맞지 않는 frame은 없음
Data Link, LANs, WAN을 잇는 기술들로 활용
예시) PPP, HDLC, Ethernet LAN, IEEE 802.11 LAN(WIFI)

Flow Control

수신 개체를 데이터로써 함몰시키지 않도록 송식 개체를 제어하는 기술
수신 station: 데이터 버퍼를 할당. 데이터 수신 후 처리
처리하는 동안 버퍼가 차서 넘치지 않도록 관리
전송시간(transmission time): 스테이션이 한 프레임의 모든 비트들을 매체 상에 내보내는 데 걸리는 시간
전파시간(propagation time): 한 비트가 발신지와 목적지 사이의 링크를 경유하는 데 걸리는 시간
프레임은 보내는 순서대로 도착하지만, 수신되기 전에 임의의 가변 지연이 존재
stop-and-wait 정지 대기
[RX]
수신한 프레임에 대해 확인 응답을 되돌려 보냄 ⇒ 다음 데이터를 받아들이겠다는 의미
확인 응답을 보류함으로써 데이터의 흐름을 정지시킬 수 있음
[TX]
다음 프레임을 전송하기 전에 확인 응답을 수신할 때까지 기다려야 함
일반적으로 하나의 커다란 데이터 블록을 작은 블록들로 쪼개어 여러 개의 프레임으로 보냄
RX의 버퍼 크기가 제한되어 있음
전송이 길수록 오류 확률이 높음 ⇒ 전체 블록의 재전송이 필요해짐
블록이 작으면 오류가 더 빨리 검출 + 재전송 데이터 양도 적어짐
LAN과 같은 공유매체에서 하나의 스테이션이 오랫동안 media를 점유해서 다른 스테이션의 지연 시간이 길어지는 것이 바람직하지 않음
B = 비트로 나타낸 링크의 길이 = 링크가 비트열로 완전히 채워질 때 링크상에 존재하는 비트의 수
R = bps 단위로 표현된 링크의 데이터 전송률
d = m 단위로 나타낸 링크의 길이
V = m/s 단위로 나타낸 전파 속도
a = 전파지연 = 한 비트가 송신기로부터 수신기까지 가는 데 걸리는 시간
IF (a > 1) : 전파시간 > 전송시간

Sliding-window flow control(슬라이딩-윈도우 흐름제어)

IF a > l (링크의 비트 길이가 프레임 길이보다 더 긴 경우):
심각한 비효율성
⇒ 동시에 여러 개의 프레임이 수송되도록 한다면 효율성 개선
전송 가능한 프레임의 길이에 대해 수신측에서 버퍼 공간을 할당
연달아 보낼 수 있는 프레임의 개수 = Window Size
tx는 rx에게 window size만큼의 프레임을 전송 ⇒ ACK 응답 ⇒ 프레임 전송

Error control: Automatic Repeat Request(ARQ)

Error Control mechanism의 총체를 일컫는 말
[ARQ의 효과] unreliable data link를 reliable하게 바꿈
Error Control Techniques
Error detection
Positive acknowledgement
Retransmission after timeout
Negative acknowledgement & retransmission
Stop and Wait ARQ
1.
Source transmits single frame
2.
[TX] waists for act
: No other data can be sent until destination’s reply arrives
3.
IF frame(received) is damaged : Discard It
[TX] Timeout
NO ACT within timeout ⇒ RETRANSMIT
4.
IF ACK is damaged: transmitter will not recognize
[TX] RETRANSMIT
[RX] get two copies of frame
Use alternate numbering(ACK0 / ACK1)
GO-BACK-N 방식
가장 흔하게 사용되는 error control 방식
sliding-window에 기반함
outstanding frames의 숫자를 컨트롤하기 위해 window size를 사용한다
IF NO ERROR: rx(dst)는 전송되는 frame을 잘 인지함
ELIF ERROR: rx → tx negative ack을 전송
dst(rx)가 에러가 해결되기 전까지 frame들을 받지 않음
tx는 frame을 retransmit하여 에러를 발로잡아야 함
Selective-Reject
== selective retransmission
rejected frames는 retransmitted된 것들
연속적인 프레임들만이 rx의 buffer에 받아들여진다
rx는 충분히 큰 buffer를 유지해야 함 / retransmission을 최소화한다
긴 propagation delay가 있는 위성 link(satellite link)에 적합

HDLC

기본 특성
(다양한 응용을 만족하기 위해) 세 종류의 스테이션 / 2개의 링크 구성 방식 3개의 데이터 전달 모드를 정의
스테이션
주 스테이션: 링크동작을 제어할 책임. 생성하는 프레임 == command(명령)
부 스테이션: 주 스테이션의 제어 아래에서 동작. 생성하는 프레임 == response(응답)
⇒ 주 스테이션은 각각의 부 스테이션과 개별적인 논리 링크를 유지
혼성 스테이션: 주 스테이션과 부 스테이션의 특징을 결합한 스테이션. 명령, 응답 모두 생성 가능
링크 구성 방식
불균형 구성: 1개의 주 스테이션 + 1개 이상의 부 스테이션
전이중, 반이중 전송 모두 지원
균형 구성: 2개의 혼성 스테이션
전이중, 반이중 전송 모두 지원
데이터 전달 모드
정상 응답 모드(NRM): 불균형 구성에 사용. 주→부 임의 데이터 전송은 가능, 역으로는 주에서 명령이 와야만 가능
다수의 단말기가 하나의 호스트에 접속된 다중접속 회선에 사용
컴퓨터가 입력을 받기 위해 단말기에 poll
접대점 링크로도 자주 사용.
비동기 균형 모드(ABM): 균형 구성에 사용. 한 스테이션이 다른 스테이션의 허락을 받지 않고도 전송 개시 가능.
가장 대중적.
폴링 오버헤드가 없으므로, 전이중 점대점 링크를 효과적으로 사용.
비동기 응답 모드(ARM): 불균형 구성에 사용. 부→주 허가 없이 전송 가능. 주의 경우, 초기화/오류복구/논리적 해제를 포함한 회선에 대한 책임.
드물게 사용
부 스테이션이 전송을 개시할 필요가 있는 특수한 상황.%
프레임 구조 — HDLC
동기 전송 사용: 프레임 형식으로 모든 전송이 이루어짐. 한가지 프레임 형식으로 모든 종류의 데이터와 제어 교환 처리.
[HEADER]
플래그, 주소(ADDRESS FIELD), 제어 필드(CONTROL FIELD)
[INFORMATION]
정보 필드
[TRAILER]
FCS, 플래그 필드
[ADDRESS FIELD]
identify secondary station(transmitted or will receive frame)
일반적으로 8비트 길이
8비트가 주소필드의 마지막인지 아닌지에 따라 1, 0
7비트만큼 확장될 수 있음
[CONTROL FIELD]
I-FRAME: 정보 프레임. 사용자를 위해 송신되는 데이터. ARQ 매커니즘을 사용하는 flow/error control는 정보 프레임에 실림.
S-FRAME: 감독 프레임. 피드백이 사용되지 않을 경우 ARQ 매커니즘 재용.
U-FRAME: 무번호 프레임. 링크 제어를 위한 보조 기능 제공. 제어 필드의 처음 1/2개 비트가 프레임의 종류를 식별.
HDLC 프레임 구조 / 플래그 필드
고유 패턴 01111110으로 프레임의 양끝에서 분리자로 사용, 하나의 프레임이 한 프레임의 끝과 다른 프레임의 시작을 나타낼 수도.
수신기) 프레임의 시작을 동기화하기 위해 플래그를 계속 탐색. 한 프레임을 수신하는 동안, 프레임의 끝을 결정하기 위해 플래그 계속 탐색.
비트 삽입(bit stuffing): [송신기] 프레임 내에 1이 연속적으로 5개 발생하면, 뒤에 0을 추가. 이 비트를 수신기가 받을 때, 여섯 번째 비트가 0이면 제거. 1이고 다음 비트가 0이면 플래그로 인정.
⇒ 데이터 투명성: 비트 삽입으로 임의의 비트 패턴이 프레임의 데이터 필드에 삽입 가능.
HDLC 프레임 구조 / 주소 필드
프레임을 송수신하는 부 스테이션을 식별. 점대점 링크에서는 사용할 필요가 없으나, 일관성을 위해 항상 포함. 주소는 보통 8비트 길이. 7비트 형식의 확장 형식도 사용 가능. 8비트가 주소필드의 마지막인지 아닌지에 따라 1 또는 0이 됨. 나머지 7비트가 주소를 구성. 8비트 주소 11111111은 기본/확장 형식 모두에서 모든 스테이션의 주소로 해석됨(주 → 모든 부 스테이션에게 프레임을 broadcast할 때 사용)
HDLC 프레임 구조 / 제어 필드
1) 정보 프레임(I-Frame)
: 사용자(HDLC를 사용하는 HDLC 상위의 개체)를 위해 송신되는 데이터 운반
ARQ 매커니즘을 사용하는 flow/error control 데이터를 정보 프레임에 실림.
2) 감독 프레임(S-Frame)
: piggyback 안 된 경우에 ARQ 매커니즘 제공
3) 무번호 프레임(U-Frame)
: 링크 제어를 위한 보조 기능
항상 9비트의 컨트롤 필드를 포함
제어 필드의 처음 1/2개 비트가 프레임의 종류 식별
모든 제어 필드의 형식은 Poll/Final 비트를 가짐.
command에서는 P비트, 다른 HDLC 개체로부터의 응답을 poll할때 1로 설정
응답 프레임에서는 F비트, 응답 프레임을 나타내기 위해 1로 설정
S, I 프레임 → 기본적인 제어 필드는 3비트 순서번호 사용.
Information & FCS(Frame Check Sequence) Fields
Information Field
FCS(Frame Check Sequence) Field
I-Frame과 소수의 U-Frame에만 존재
프레임에 남아있는 bit로부터 계산되는 error detect code 존재 (flags와 관계 없음)
대다수가 8비트의 정수값을 포함
normal code: 16 bit CRC-CCITT
길이가 가변적
CRC-32를 사용하는 32-bit FCS가 옵션으로 있음
FCS : 프레임의 끝 부분에 수신측의 에러 검출을 돕기 위해 삽입하는 필드
CRC 에러검출 기법에 의해 생성된 비트 배열이 포함됨

HDLC 동작

1.
어느 한쪽에서 프레임의 교환을 위해 데이터 링크를 초기화(개시)
a.
선택 사항에 관해 상호 동의
b.
세가지 모드(NRM, ARM, ABM) 중 어느 요청인지 규정
c.
3비트 / 7비트 순서번호 중 어느 것 사용할 것인지
2.
양쪽이 사용자 데이터 교환 + (흐름 제어, 오류 제어를 위해) 제어 정보 교환
a.
순서번호 0으로 시작되는 I-프레임으로 사용자 데이터 송신
b.
S-프레임은 흐름제어와 오류 제어를 통해 사용됨
3.
한쪽이 동작을 종료시키기 위해 신호