[3강. 데이터링크 계층 프로토콜의 HDLC 2]

- frame은 헤더의 시퀀스 넘버를 사용하여 순서를 구분

# ACK 와 NAK

ACK : 정상 수신

NAK : 비정상 수신

 

[ARQ의 종류]

1. Stop N Wait ARQ

프레임을 보내고 ACK/NAK 올때까지 다음 프레임을 보내지 않음

송신측은 time out 이 나면 재전송

(송신측 sliding window 가 1인 Go-Back-N ARQ와 같다)

 

# piggybacking

ACK와 데이터를 동시에 보냄

 

2. Go-Back-n ARQ (GBn ARQ)

window 크기 : 2의 (m-1)제곱 만큼 (window 크기만큼 수신측 회신 없이 프레임 전송)

항상 순서대로 ACK 를 받아서 처리

손상 분실된 프레임 이후의 프레임 모두 재전송(효율 낮음)

구조 간단 하고 구현 단순

수신측 데이터 문제있을 경우 NAK 전송 혹은 silence

타이머 만료시 ACK 오지 않은 프레임(sliding window의 첫 프레임)부터 재전송

수신측 sliding window 크기는 1로 받고자 하는 프레임의 번호만 가리키고 있다. 수신된 프레임의 번호가 기다리는 프레임의 번호가 아닌 경우 버리고 간다.(silence)

윈도우 사이즈에서 -1 을 하는 이유.

3. Selective Repeat ARQ (SR ARQ)

Go-Back-n ARQ 비효율 문제 개선한 방식.

손상되거나 분실된 프레임만 재전송(NAK 받은 프레임)

데이터 재정렬이 필요, 별도 버퍼 필요

Timer는 각 프레임에 존재하여 각 타이머 만료시 해당 프레임을 다시 보냄.

ACK3이 오면 프레임 2만 잘 받았다고 판단

GBn ARQ vs SR ARQ

 

[HDLC (High level Data Link Control) 프로토콜]

- ISO에서 개발한 국제 표준 프로토콜.

- 점대점링크(point to point), 멀티포인트 링크에서 사용

- 오류제어를 위해 GBn ARQ, SR ARQ 방식 사용

 

1. 분류 정의

Data link 프로토콜의 종류 : Asynchronous/Synchronous protocols

Asynchronous protocols의 종류 : XMODEM, YMODEM, ZMODEM, BLAST...

Synchronous protocols의 종류 : Character-oriented protocols, Bit-oriented protocols

Bit-oriented protocols 의 종류 : SDLC, HDLC...

 

2. HDLC 의 3가지 station types

1) primary station(master): link 컨트롤에 책임을 가짐

2) secondary station(slave): master에 의해 제어당하는 station

3) combined station: primary/secondary 의 조합

 

3. Unbalanced(1:N Multi-drop(ex:전화선))/Balanced(1:1 peer to peer) 형태의 link 모두 지원

 

4. half-duplex(반이중: 전송 수신 동시에 불가 (ex: Stop N Wait ARQ))/full-duplex(전이중: 전송 수신 동시 가능 (ex: GBn ARQ)) 모두 지원

 

5. NRM(normal response mode), ARM(asynchronous response mode), ABM(asynchronous balanced mode) 지원

1) NRM: primary 의 command 에 의해 secondary가 데이터 전송 가능

2) ARM: secondary가 primary에 언제든지 데이터 전송 가능(주종 관계는 NRM과 동일)

3) ABM: primary, secondary 관계가 동등 (주로 쓰임)

 

6. Frame 형태

1) I-frames(Information frames) : 일반적인 정보가 담긴 데이터(seq 존재)

2) S-frames(Supervisory frames) : ACK, NAK...

3) Unnumbered frames(U-frames) : seq가 없는 데이터(ex: 연결/단절 신호)

 

frame 형태 : Flag-Header(address/Control)-Data-Trailer(FCS)-Flag

7. Frame 형태 - 상세

1) Flag: 1byte

2) Address: 1byte

3) Control field: 1byte

I/S/U Frame 규격

* S-Frame

REJ : GBn ARQ 에서의 NAK (NAK3 : 3이후로 전부 재전송)

SREJ : SR ARQ 에서의 NAK (NAK3 : 3만 재전송)

S-Frame 형태

* U-Frame

U-Frame의 예 : Data 전송 앞 뒤의 연결/단절 신호

4) data: N bytes

5) FCS: 2Bytes (데이터 에러 검출용)

 

[PPP (Point to Point Protocol구성요소]

1. LCP (Link Control Protocol)

데이터는 없고 링크를 관리하기 위한 프로토콜

 

2. Authentication protocols

1) PAP : 유저가 id, pw 송신, 시스템은 ACK/NAK 회신 (보안취약)

PAP에서의 frame 형태

2) CHAP : 시스템은 challenge value 를 보내고 유저는 pw 에 challenge value를 더한 값을 송신.

시스템은 그 값을 확인하여 인증처리. (pw가 노출되지 않아 보안성 높음)

CHAP에서의 frame 형태(보안성이 높은 대신 복잡)

 

3. NCP (Network control protocols)

LCP -> PAP/CHAP -> NCP -> 데이터 송신 -> NCP -> LCP 와 같은 순서

protocol 순서

※ KOCW 성균관대학교 안성진 교수님의 컴퓨터네트워크 강의 참고

반응형

[1강. 링크계층 프로토콜]

1. Data link 계층에서 하는 일

1. Frame synchronization: frame송수신 동기화

2. Flow control: 수신쪽에서 overflow가 일어나지 않도록 흐름제어

3. Error control

4. Physical addressing: 식별

5. Access control: 접근제어 (multiplex 관련)

 

2. Poll/Select

multidrop/multipoint 방식에서 line cost 를 절감하기 위해 사용하는 방법

* multidrop/multipoint : 여러 터미널이 하나의 선을 공유하는 경우 (ex: 전화선)

1) polling : primary가 secondaries 에 전송할게 있는지 질의 (데이터흐름 secondaries->primary)

2) select : primary 장치가 전송할게 있을때마다 사용 (데이터흐름 primary->secondaries)

 

3. Framing

data link 계층은 bits를 frames 로 packing. 각각의 frames 은 구분가능.

frame 내에서 single bit error 가 존재할 경우 전체에 대한 재전송이 필요.

1) fixed-size framing : 고정크기

2) variable-size framing : 가변크기

 

[2강.데이터링크 계층 프로토콜의 HDLC]

1. Frame

1) Character-oriented protocols

Character(2bytes = 8bit) 가 최소단위의 frame으로 사용됨

#byte-stuffing이란

flag bit와 data 의 bit 가 일치하는 경우 프레임 단위 구분이 모호해지는 문제가 있음.

이를 구분하기 위해 byte-stuffing(or character stuffing) 전략을 사용.

이때 삽입되는 byte를 ESC(escape character)라고 칭함

 

 

예) ESC 삽입의 예

flag와 일치하는 data bit 가 있을 경우 앞에 ESC 삽입.

ESC와 동일한 bit가 있을 경우 그 앞에도 ESC 삽입.

ESC 뒤의 데이터는 무조건 데이터 bit로 간주.

 

2) Bit-oriented protocols (주로사용)

01111110 을 주로 flag 로 사용

 

#Bit stuffing

flag와 data bit을 구분하기 위해 011111 와 같이 1이 연속적으로 5개 있는 경우 그뒤에 0을 삽입하여 flag와 data bit 를 구분

* 수신측은 1 다섯개 뒤에 있는 0은 무조건 제거

 

 

2. Flow control

수신측의 속도를 맞춰 송신측의 속도 제어

# Flow control 방법 세가지

1) XON/XOFF : 전송stat/stop

ex: PC->프린터, 프린터 출력속도가 느려 버퍼가 거의 찰 경우 PC에 stop 요청 이후 start 요청

RTS/CTS handshake 는 Xon/Xoff 기능을 위해 사용됨

2) Stop-and-wait : frame을 1개씩 보내기 

ex: 프레임 1개 전송 후 잘 받았다는 회신을 받아야 다음 프레임 전송

3) Sliding window  : frame 여러개를 한번에 보내기 

* Window size = outstanding frame의 갯수

                    = unacknowledged frame

                    = ACK를 받지 않은 frame

                    = ACK 없이 보낼 수 있는 최대 frame 수

eg. window size 가 3인 경우, ACK 없이 최대 3개 프레임을 전송 할 수 있음.

eg2. window size가 3일 때, ack 를 첫번째 송신후 받은 경우 두번째 프레임으로 부터 다시 3개까지 ACK 없이 프레임 전송 가능

 

3. Error Control

Error detection + Error correction

# Error Control 방법

1) Discarding the errors : 에러 무시 (인터넷 전화)

2) Forward Error Correction(FEC) : 수신측에서 에러 수정

3) Automatic repeat request(ARQ) : 재전송

 

※ KOCW 성균관대학교 안성진 교수님의 컴퓨터네트워크 강의 참고

반응형

+ Recent posts