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 |