각 호스트끼리 데이터를 주고 받을 때는 네트워크 카드를 통해 주고 받음. (이 과정은 데이터링크 계층에서 일어남)
주고 받는 데이터에 에러가 있는지 확인하기 위해서 네트워크 카드는 CRC라는 방법을 이용함.
즉, CRC는 데이터 링크 계층에 있는 네트워크 카드가 에러 검출을 할 때 적용되는 것임.
CRC 특징
1. 하드웨어임
2. 간단한 비트 (빠른 시간을 위해)
3. SHIFT 연산이나 XOR 연산으로 계산 가능
4. 상용 NIC에 구현
5. 에러는 특정 위치에서 집중적으로 발생하는데, 이런 버스티한 에러에 대한 검출 확률이 높음 -> 디지털 통신망에서 자주 발생
CRC 적용
* G는 송신자와 수신자의 합의 하에 생성됨 (최상위 비트는 항상 1)
* 표준기술에 의해 현재 CRC는 32bit (G는 33bit)
* CRC는 G보다 1 bit 작음
* 송수신 할 때 각 호스트의 네트워크 카드는 G를 갖고 있어야 함.
만약 A호스트가 101110 데이터를 B호스트로 보내고 싶다고 가정하자. 이때 G는 1001이다.
그러면 데이터 앞에 CRC(G비트 수의 -1)가 붙음 > 10110000
그 후 SHIFT + XOR 연산으로 R(=CRC)를 구함 > 10110011
A호스트는 10110011를 B호스트로 전달함.
데이터를 받은 B호스트는 10110011 와 1001 으로 다시 연산
> 만약 나머지가 0이라면 에러 없이 정확한 데이터가 전송되었다는 뜻
> 만약 나머지가 0이 아니라면 에러 발생했다는 뜻
에러 Correction
이제는 Error Corection(에러 정정)에 대하여 알아보자.
에러 정정기법은 이미 서버 주기억 장치에 적용되고 있다. ECC 방법을 이용한다. 은행과 같은 큰 기관에서 사용한다.
에러 정정을 하는 알고리즘으로는 해밍코드가 있다.
해밍코드에 대해 살펴보기 이전에 패러티 비트 검사와 비교를 해보자.
패러티 비트는 에러 검출은 할 수 있지만 수정은 하지 못한다. 또한 2개 이상 에러에 대해 검출하지 못한다.
해밍코드는 에러 검출도 할 수 있고, 에러 수정도 할 수 있다. 또한 최대 2개의 에러에 대해 검출할 수 있고, 최대 1개의 에러를 수정할 수 있다. (3개 이상 에러 부터는 찾아낼 수도 있고 못 찾아낼 수도 있다.)
에러 Correction 적용
* 4비트 1010 을 H(7, 4) 코드 체계로 전송하자고 가정하자.
-> 7은 전송할 전체 비트의 수, 4는 데이터 비트의 수이다. 패러티는 자동으로 3개가 된다.
(pdf 필기 확인)
'분야' 카테고리의 다른 글
데통 - IPv6 (0) | 2024.05.28 |
---|---|
데이터 통신 - LAN과 Data link 계층 (0) | 2024.05.19 |
기억장치2 (0) | 2024.05.18 |
캐시 메모리 (0) | 2024.05.10 |
기억장치 - 컴퓨터 구조 (0) | 2024.05.04 |