IT/Network

[Network Basic] BEC, ARQ, 동기식, 비동기식 전송

김반장님 2021. 1. 4. 13:19
반응형

② 후진 에러 수정(BEC : Backward Error Correction)  

  • 에러가 발견되면 송신측으로 재전송을 요청하는 방법 
    • ex) ARQ(Automatic Repeat reQuest)가 대표적  
  • ARQ는 송신측에서는 자신이 전송한 데이터에 대해서는 꼭 ACK신호를 받아야 전송된 데이터에 에러가 발생하지 않았다고 간주하는 방법으로, 수신측은 수신한 데이터에 대해서는 꼭 ACK신호를 보내야 하고 송신측은 ACK신호를 기다리는 시간을 정해야만 한다. 

 

 가. Stop and wait ARQ(정지-대기 ARQ) 

  •  송신측에서 전송한 데이터를 꼭 ACK신호를 받아야만 그 다음 데이터를 전송할 수 있는 방법 
  •  전송되는 데이터에 손실이 발생할 수 있고 수신하는 ACK신호에도 손실이 발생할 수 있다. 
  •  송신측에서는 항상 ACK신호를 기다리는 시간을 정해야만 전송하는 데이터의 손실, 또는 ACK에 손실에 오더라도 데이터를 전송 할 수 있다. 이렇게 송신측은 항상 그 다음 데이터를 전송하기 전에 ACK신호를 받아야 하기 때문에 데이터 전송의 효율성이 떨어진다.   

Stop and wait ARQ  

 

 나. Go-Back-N ARQ 

  • 정지-대기 ARQ방식이 효율성이 떨어진다는 단점을 보완하기 위해 흐름제어 방법 중 슬라이딩 윈도우 방법을 적용시킨 방법 
  •  송신측은 데이터를 전송할 때 각 데이터마다 순서번호를 삽입한 후, 데이터를 연속적으로 전송한다. 수신측에서는 데이터를 수신한 후, 오류 발생 유무를 확인하여 오류가 없으면 ACK신호를 송신측으로 보내게 되고, 만약 오류가 발견되면 NAK(Negative ACK) 신호를 송신측으로 보내 재전송을 요청하게 된다. 
  • 송신측에서는 NAK신호가 들어오면 오류가 발생한 데이터부터 그 이후 데이터들을 모두 다시 전송한다. Go-Back-N ARQ는 전송 효율성을 있지만 회선에 대한 효율성을 떨어진다. 

 

Go-Back-N ARQ  

 

다. Select to Reject ARQ(선택적 거부 ARQ) 

  • 에러가 난 데이터만 재전송하는 방식으로 전송에 가장 효율적 
  • 하지만 에러가 발생한 데이터가 송신측으로부터 재전송되어 올 때 까지 다음 데이터를 버퍼에 저장하고 있어야 하기 때문에 많은 메모리가 필요하다. 또한 송신측으로부터 재 전송되어온 데이터를 적당한 자리에 삽입해야 하기 때문에 구성에 있어서 다소 복잡하다는 단점이 있다.  

 

Select to Reject ARQ

 

동기식 전송 

  • 송신측에서 수신측과 미리 약속한 방법에 따라 데이터 전송의 시작을 알리는 데이터를 보냄으로써 수신측이 수신할 데이터의 시작을 알 수 있게 하는 전송방법  
  • 동기 클록 전송 용도의 별도 회선을 사용하는 방법과 송신측에서 데이터에 동기클록 정보를 추가하여 전송함으로써 동기화 하는 두 가지의 방법이 있다. 첫 번째 방법은 근거리 통신 때 많이 사용하는 방법이고 두 번째 방법은 원거리 전송에 많이 사용하는 방법으로 문자 단위로 동기화를 시키는 문자지향 동기화 기법과 비트 단위로 동기화 시키는 비트 지향 동기화 기법이 있다. 

 

(1) 문자 지향 동기화 프로토콜 

  • 모든 데이터의 단위를 문자 단위로 처리함으로써 동기화에 필요한 데이터도 문자로 표현된다. 
  • 문자 지향 동기화에서 사용하는 동기 문자로는 SYN, 문장의 시작을 알리는 STX(Start-of-Text), 그리고 문장의 끝을 알리는 ETX(End-of-Text)등이 있다. 
  • IBM의 BSC, DEC의 DDCMP 등 

 

 

문자 방식 프로토콜 

 

(2) 비트 지향 동기화 프로토콜 

  • 모든 전송되는 데이터 단위를 일련의 비트로 처리함으로써 동기화에 필요한 데이터까지 비트로 표현된다. 
  • 비트 지향 동기화에서는 데이터의 시작과 끝을 알리는 FLAG로 시작해서 FLAG로 끝난다. 

 

비동기식 전송 

  • 동기화 시키지 않는다는 의미가 아니고, 다만 동기식 전송처럼 데이터의 전송 전에 클록을 일치시키는 방법이 아니라 고정된 크기의 비트를 송신측과 수신측이 맞춤으로써 고정된 크기로만 전송하여 동기화를 시키지 않아도 된다는 것이다. 
  • 대부분이 하나의 문자 단위로 비트를 전송하고 각 문자를 구분하기 위해 스타트(start) 비트와 스톱(stop)비트를 추가한다. 스타트비트는 보통 1비트가 사용되고 스톱 비트는 1~2비트 정도가 사용된다. 
  • 스타트 비트는 문자의 시작을 알리는 비트로 비트 0을 사용하고, 스톱 비트는 문자의 끝을 알리는 비트로 비트1을 사용한다. 이렇게 하나의 문자를 전송한 다음 idle타임에 들어가는데 이 시간이 바로 동기화를 이루는 시간이다. 

 

비동기식 전송

※ Framing Error 

에러를 발생시키기에 충분한 타이밍 에러, 또는 휴지 시간에 어떤 잡음으로 인해 수신측에서 시작 비트를 잘못 인식하는 것 

ex) 비트 7번째가 1이고 비트 8번째가 0이면 비트 8은 시작 비트로 잘못 인식 될 수도 있다. 

 

 ※ 동기식과 비동기식의 비교 

비동기식은 단순하고 비용이 저렴하지만 한 문자 당 2~3비트(20~30%)의 오버헤드가 발생하며, 동기식은 flag를 포함한 오버헤더가 48bit(4.6%)이다. 

비동기식은 데이터를 전송할 때 한 문자씩 전송을 하기 때문에 낮은 대역폭을 요구하는 반면, 동기식은 데이터를 전송할 때 일련의 묶음으로 구성되기 때문에 높은 대역폭을 요구한다. 

 

 

 

반응형