'기술사-네트워크'에 해당되는 글 2건

  1. 2014.02.07 OSI 7 layers
  2. 2014.02.06 오류제어(Error Control) 기법 : 데이터 링크 계층에서.

 

 

 

 

Posted by 세모아
,

오류 제어 기법

1. 전진 오류 수정

 - 해밍 코드

 - 상승 코드

 

2. 후진 오류 수정

 2.1. 오류 검출 방식

1. 패리티 검사 (Parity Check)

2. 블록합 검사 (Block Sum check)

3. 순환잉여검사(CRC : Cycle Redundancy Check) 

 

 2.2. (검출 후) 재전송 방식 (Automatic Repeat Request)

1. Stop and Wait ARQ방식

2. Go-back-N방식

3. Selective-Repeat ARQ 방식

4. 적응성(Adaptive)ARQ 방식

 

 


 전진 오류 수정 (Forward Error Correction, FEC)

 : 수신 측에서 오류를 스스로 검출/정정할 수 있는 방법으로, 송신시 오류 복구를 위한 잉여 비트을 추가하여 전송하는 방식

 

후진 오류 수정 (Backward Error Correction, BEC)

 : 전송된 데이터에 오류가 발생된 경우, 송신 측에 오류 사실을 알려서 재전송으로 복원하는 방식.

 

 

해밍(Hamming) 코드 : 수신측에서 오류가 발생한 비트를 찾아 재전송을 요구 하지않고 자신이 직접 오류를 수정하는 방식이다.

 - 자기 정정 부호로서, 오류를 검출해서 1 비트의 오류를 수정하는 방식

 - 1,2,4,8,16~ 비트 위치에 패리티 비트를 삽입하여 오류 검출 및 정정을 수행

 - 데이터 비트 외에 추가되어야 할 패리티 비트가 많이 필요함

 

상승 코드(부호) 방식 : 해밍 코드 방식은 1개의 오류 비트를 수정할 수 있지만 상승 코드 방식은 여러 개의  비트의  오류가 있더라도 한계 값(경계 값), 순차적 디코딩을 이용하여 모두 수정할 수 있는 방식이다.

 - 순차적 디코딩과 한계값 디코딩을 사용하여 여러 비트의 오류를 수정하는 방식

 

 

2 오류 검출 방식

 

(1)패리티 검사(Parity Check)방식

 - 7~8개의 비트로 구성되는 전송문자에 패리티 비트 추가하는 방법

 - 짝수 (Even parity), 홀수 패리티(Odd Parity) 로 분류

 - 한 비트의 오류만 검출. 2개 비트의 오류는 검출 불가능

 - 비동기 전송에 적합

가장 간단한 오류검출 방식으로, 송신측에서 전송될 프레임에 오류검출을 위한 특수한 비트

(패리티 비트)를 추가하여 전송하고, 수신측에서 수신된 문자의 비트와 이 패리티 비트를 합하여

1의 총계를 계산하는 방식이다.

1의 총계가 짝수인지를 검토하는 방식을 "짝수 패리티 검사"라고 하며, 홀수인 지를 검토하는 방식을 "홀수 패리티 검사"라고 한다.

이 방식은 전송 정보비트수가 적고, 오류 발생률이 낮은 경우에 주로 사용되며, 비동기전송에 적합하다.

* 단점

전송된 오류비트수가 2개인 경우에는 검출이 불가능하다.

전송 오류가 발견되더라도 정확한 위치를 알기 어렵다.

그러므로, 이러한 단점을 해결하기 위한 방식으로, 블록합검사(Block sum check)방식과 순환잉여 검사(CRC : Cyclic Redundancy Check)등이 있다.

 

(2)블럭합 검사(Block Sum check)

 - 프레임의 모든 문자로부터 계산되는 잉여 패리티 비트들을 사용하는 방법

 - 각 문자에 생성되는 패리티 비트인 수평 패리티 비트 추가

 - 모든 문자의 각 비트 위치에서 생성되는 패리티 비트인 수직 패리티 비트 추가

 - 프레임 내의 마지막 문자가 블럭합 검사를 수행

 - 2개 문자에서 2개의 비트 에러가 같은 위치에서 발생시 검출 불가능.

패리티 검사의 단점을 보완하는 방식으로, 각 문자 당 패리티 체크 비트(수평 패리티 체크)와 전송 프레임의 모든 문자들에 대한 패리티 문자 (블럭합 체크문자, 또는 수직 패리티 체크)를 함께 전송하는 방식이다.

, 각 문자당 패리티 비트를 할당하고, 프레임의 전체 문자에 대해서 문자크기 만한 잉여 패리티 비트를 모두 검사하는 기법이다.

(송신측에서) 프레임의 끝에 블록합문자를 추가하여 전송한다.

(수신측에서) 수신된 프레임의 문자들에 대해서 블록합을 계산하여 이것과 송신측에서 전송한 블럭합 문자를 비교하여 오류를 검토한다.

이때, 두 값이 같으면, 오류가 없는 것이다. 같지 않으면, 1비트 오류는 위치까지 알 수 있다.

2비트 오류이면 위치는 알 수 없으나, 오류여부는 판단 가능하다.

* 단점

연속된 두 개의 문자에서 같은 위치의 두 개의 비트들이 오류인 경우는 검출 이 불가능하다.

 

(3)순환잉여검사(CRC : Cycle Redundancy Check)

 - 버스트 오류를 검출하는 능력이 탁월 (버스트 오류: 데이터 전송시 한 무리의 데이터에 집단적으로 오류가 발생한 것)

 - 송신측과 수신측이 동일한 생성다항식을 사용하여 오류 검사.

 - 복수 개의 오류 비트도 검출 가능.

오류가 한꺼번에 많이 발생하는 비트들(burst error)에 대한 블록합 검사의 단점을 해결할 수

있도록 하는 방식이다. , 집단 오류를 해결하기 위한 오류제어 방식이다.

이것은 다항식 코드를 사용한 오류 검출방법이다.

이외에도 모듈로 2산술, 쉬프트레지스터, 및 배타적 OR 게이트를 이용하는 방법도 있다.

이 방식에서는 프레임의 실제 내용에 의해서 계산되는 FCS(FRAME Check Sequence 또는 BCC(Block Check Character)라고도 한다.)를 전송 프레임의 끝 에 추가하여 전송한다.

 

 

2.3 검출후 재전송 방식(ARQ: Automatic Repeat Request)

- 수신측에서 6.2.2절의 오류 검출방식으로 오류를 검출한 후 송신측에서 오류 발생 사실을 알리고 송신측으로 오류가 발생한 프레임을 재전송하도록 하는 방식이다.

 

(1)정지- 대기(Stop and Wait) ARQ방식

송신측에서 한 번에 한 개의 프레임을 송신하고 수신측에서는 수신된 이 프레임의 오류 유무를 판단하여 송신측에 ACK 또는 NAK로 응답하는 방식이다. 이때 송신측은 이 ACK 또는 NAK를 받기 전에는 다음 프레임을 송신할 수 없다.

수신측의 응답을 받은 송신측에서 ACK를 받으면, 다음 프레임을 전송하고, NAK를 받으면 해당 프레임을 재전송한다.

*장점

구현 방법이 간단하다.

송신측내의 최대 프레임 크기의 버퍼를 하나만 가지고도 구현이 가능하다.

 

*단점

송신측이 ACK(또는 NAK)를 수신할 때까지 다음 프레임을 전송할 수 없으므로 전송 효율이 떨어진다.

 

2) Go-back-N방식

송신측은 송신 또는 수신 가능한 프레임의 개수 감시표시자("윈도우"라고도 함)크기 만큼의 프레임들에 "순서번호"를 부여하여 전송한다.

수신측에서는 수신된 프레임의 오류 검출후,"NAK+오류 프레임의 순서번호"를 송신측에 송신한다.

송신측에서 NAK를 수신하면, "해당 순서번호의 프레임부터 그 이후에 보낸 프레임들을 다시 전송"한다.  보통, Go-back-N 방식이 많이 사용된다.

 

3) Selective-Repeat ARQ방식

오류검출 이후의 프레임들을 모두 보내는 Go-back-N방식과는 달리, NAK에 해당되는 프레임만 재전송하는 방식이다.

* 단점

전송효율은 좋으나, 송신측에서는 수신측의 수신상태에 따라 전송해야 하므로, "송신순서를 벗어난 전송이 많이 발생"할 수 있다. 그러므로 구현방법이 복잡하다.

 

4) 적응성(Adaptive)ARQ 방식

전송효율을 최대로 하기 위해서 프레임의 길이를 동적으로 변경할 수 있는 방식이다.

수신측은 통신회선의 오류발생율을 검사하여 송신측에 알려주고, 송신측은 이를 이용하여 " 가장 적절한 프레임의 길이"를 결정하여 송신하는 방식이다.

이때 프레임의 길이는 통신회선의 품질이 좋지 않아서 오류발생율이 높을 때는 프레임의 길이를 짧게 하고, 오류발생율이 낮을 경우에는 길게 조절한다.

전송효율은 높으나, 각 장치의 제어회로가 매우 복잡해진다.

 

 

'기술사-네트워크' 카테고리의 다른 글

OSI 7 layers  (0) 2014.02.07
Posted by 세모아
,