Error Control Techniques

Positive ACK / Negative ACK

Positive ACK: TCP에서 사용하는 방식. ACK를 보냄으로써 전송이 성공적임을 sender에게 알림
Negative ACK: Error인 것을 알림. timeout을 걸고 일정 시간 내 프레임이 도착하지 않을 시 재전송하도록

수신단 입장에서의 Lost frame, Damaged frame은 구별할 필요가 없다.
어쨌든 receiver는 받지 못한 frame이기 때문.

ARQ (Automatic Repeat Request)

ARQ를 통해 unreliable한 data link를 reliable하게 바꿔줌
Stop-and-wait, Go-back-N, Selective-reject가 있음

Stop-and-wait ARQ


receiver가 한 frame 받으면 ACK보내는 것
receiver가 damaged frame을 받거나 받지 못 한 경우 응답하지 않고, sender의 timeout이 만료되면 retransmit함

ACK가 damaged된 경우??

이미 받았는데 또 보내는 경우이므로 receiver는 다른 숫자(alternate)의 ACK를 보냄


Go-back-N ARQ

Sliding-window에 사용하는 방식 (가장 많이 사용되는 error control)

오류난 frame으로부터 N개를 다시 재전송


Selective-reject ARQ (Selective retransmission)

못 받은 frame만 재전송

못 받은 프레임은 건너뛰고 후의 프레임들은 buffering해 놓음

SREJ보내는 시점부터 요청한 frame이 도착할 때까지의 시간 사이에 도착한 frame은 buffering

잘 받으면 RR을 날림 (홀/짝수 프레임마다) 




HDLC (High level Data Link Control)

Station types

Primary: 컨트롤을 하는 스테이션

Secondary: primary에 의해 컨트롤 당하는 스테이션

Combined: 주거니받거니 가능한 스테이션


Link Configuration

Unbalanced: 1개의 primary, 다수의 secondary

Balanced: 2개의 combined station


Data Transfer modes

NRM, ABM, ARM(거의 안씀)


NRM (Normal Response Mode)

Unbalance configuration에서 사용

primary가 transfer를 초기화함


8-bit control field를 사용


N(s) = sender의 window, N(r) = receiver의 window

앞의 bit에 따라 information, supervisory, unnumbered가 구분됨


I-frame 의 경우 보내면서 받을 수 있음 (상대에게 데이터를 받으며 ARQ를 보내야 할 때 사용)

S-frame 의 경우 받기만 가능


Bit stuffing


일반적 데이터를 flag로 오인하여 처리하지 않도록 하기 위해 bit-stuffing 기법 사용

1이 5번 연속 나타날 경우 0을 삽입


Control Field (P/F field)

Poll/Final, P가 1인 경우 primary -> secondary로 response request(응답 요청)를 함

F가 1인 경우 secondary -> primary로 응답하며 설정하고 보냄


Information field and Frame check sequence field (FCS)

Info 필드는 I,U-Frame에서만 나타남
FCS 필드는 error detecting code가 frame에 남은 비트에 기록됨. 일반적으로 16bit CRC-CCITT사용.

HDLC Commands

Supervisory: RR(receiver ready), RNR(receiver not ready), REJ(reject), SREJ(selective-reject)



'Research & Development > Network' 카테고리의 다른 글

[컴퓨터통신] Multiplexing (2)  (0) 2019.05.11
[컴퓨터통신] Multiplexing (1)  (0) 2019.05.02