Data Link Layer 제어의 기본 기능과 관련 프로토콜에 대해 알아보자.

 

- Framing

- Flow and Error Control

- Noiseless Channels

- Noisy Channels

- HDLC

- Point to Point


1. Framing

 

Data Link 계층은 bit들을 프레임(frame)으로 묶어 전송한다.

이러한 frame을 구분할수 있도록 프레임 앞과 뒤에는 일종의 delimiter 를 붙이게 된다.

이러한 framing은 Character-Oriented Framing 과 Bit-Oriented framing 으로 나눌 수 있다.

 

1) Frame in a Character-Oriented protocol

Frame 에 실려가는 data는 8-bit character로 구성되어있으며, 앞뒤에는 식별자로써 Flag를 붙이게 된다.

이 두 flag 는 각각 start 와 end 를 나타낸다.

 

- Byte stuffing and unstuffing

 

Byte stuffing and unstuffing 이란, frame 의 시작과 끝의 혼동을 방지하기 위한 기법이다.

 

 

2) Frame in a Bit-Oriented protocol

 

Bit-Oriented protocol 에서는, 프레임의 시작과 끝을 구분하기 위해 01111110 이라는 특별한 flag를 사용한다.

또한 data에는 임의의 길이를 가진 bit들이 전달될 수 있다.

 

- Bit stuffing and unstuffing

 

flog 와의 혼동을 방지하기위하여, 1이 5번 나올경우 뒤에 0 을 임의로 붙여준다.

 

 

 

2. Flow and Error Control

 

1) Flow contorol

-> Flow contorol 이란 sender 가 receiver가 받을수 있는 데이터의 양을 초과하지 않도록 하는 일련의 데이터 조절 절차이다.

 

- X-ON/X-OFF : sender 의 전송속도가 receiver의 처리속도 보다 빠를경우, receiver의 buffer에 데이터가 쌓이게 되는데, 일정수준이상을 초과할경우 receiver는 sender 에게 X-OFF 메세지를 전달하게 된다. 또한 buffer에 일정데이터가 처리가 되면 다시 X-ON 메세지를 전달한다.

 

 - Stop-and-Wait : sender는 먼저 하나의 데이터를 전송하고, receiver로부터 데이터를 처리했다는 메세지인 ACK를 받게된다. ACK를 받은후 다시 데이터를 전송할 수 있다.

 

- Sliding-Window : sender는 receiver에게 window의 크기만큼의 데이터를 ACK 받는 과정없이 보낼 수 있다.

또한 window크기의 데이터를 보낸후 ACK를 받게되고 다시 window 크기만큼의 데이터를 보낼수 있다.

ACK를 받지 못했을경우 데이터 전송은 자동 중단된다.

 

2) Error Control

 

-> 데이터의 전송중 발생하는 오류에 대한 검출 및 복구 과정이다.

 

- Lost frames : 프레임이 손실되는 경우인데, 이 경우 프레임의 일련번호를 이용해 검출할 수 있다.

- Damaged frames : 프레임이 손상된 경우에는 CRC 혹은 Checksum 등의 방식을 사용해 오류를 검출할 수 있다.

 

 - Error control Techniques

  • Forward error correction : receiver가 직접 오류를 수정하는 방식 ( FEC )
  • Backward error correction : receiver는 오류를 검출만 하고, 재전송을 요청하는 방식 ( ARQ )

 

3) Noiseless Channel

    

Data Link 의 Protocol 에는 노이즈가 있는 이상적인 채널과 노이즈가 있는 실제 채널이 존재한다.

Noiseless channel 에서는 프레임의 손실, 중복, 손상이 없는 이상적인 채널이다.

이러한 이상적인 프로토콜중 Simplest protocol 과 Stop and Wait Protocol 에 대해 알아보자

 

- Simplest Protocol

Simplest Protocol 에서는 Error 및 Flow control 의 필요가 없다고 가정하므로 별도의 ACK 등은 고려하지 않는다. 단지 데이터의 전달만을 고려한다.

 

 

- Stop and Wait Protocol 

Stop and Wait Protocol  에서는 Flow control 만을 고려한다.

 

 

 

4) Noisy Channels

 

Noisy Channels 에서는Flow control 의 기능 외에 Error Control 의 기능이 추가된다.

Error control 을 위한 3가지의 ARQ방식을 알아보자.

 

  •  Stop and Wait ARQ
  •  Go-Back-N ARQ
  •  Selective Repeat ARQ

- ARQ?

ARQ의 동작을 위해서 기본적으로 오류검출 기법이 사용된다. 수신한 프레임의 오류가 없으면, receiver는 positive ack를 보내게 되고 오류가 있다면, negative ack를 보내게 된다. 또한 sender는 positive ack를 time-out내에 받지 못하거나 negative ack를 받을 경우 재전송을 통해 복구하게 된다. 

 

- Stop and Wait ARQ

하나의 프레임마다 Stop 하고, receiver로부터 ACK 를 수신(Wait)한후 다시 다음 프레임을 전송한다.

sender는 receiver로부터 ack 가 올때까지 전송할 프레임을 버퍼에 보관하게 된다. 또한 ACK의 loss를 대비하기위해 time-out 이 존재한다. 또한 중복된 프레임을 식별하기 위해 프레임마다 번호를 붙이는데. 1bit만을 이용하여 0,1번갈아가며 식별자를 지정한다.

또 sequence number는 다음 프레임  넘버를 지정한다.

구현이 간단하고, 최소의 버퍼크기만을 요구하지만 sender와 receiver간의 오버헤드가 크다.

 

 

'Data Communication' 카테고리의 다른 글

[Data communication] Ethernet  (0) 2020.12.04
[Data Communication] Data Communication  (0) 2020.12.04