개요
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.
한쪽이 동작을 종료시키기 위해 신호