본문 바로가기

Library/Data Communication

해밍 코드(Hamming Code) 해밍코드(Hamming Code)는, 전방 오류 수정 방법을 이용한 실제적인 해결책이다. 해밍코드는 어떤 길이의 데이터 단위에도 적용될 수 있으며, 데이터와 중복 비트의 관계를 이용한다. 예를 들어, 7비트 ASCII 코드를 해밍코드로 만들기 위해서는, 데이터 단위의 끝에 덧붙이거나 원래의 데이터 비트들 사이에 띄엄띄엄 배치할 수 있는 4개의 중복 비트가 필요하다. 11비트 = d d d (r4) d d d (r3) d (r2) (r1) 해밍코드에서, 각 r비트는 다음의 각 데이터 비트를 조합한 것에 대한 짝수 패리티이다. r1 : 비트 1, 3, 5, 7, 8, 11 r2 : 비트 2, 3, 6, 7, 10, 11 r3 : 비트 4, 5, 6, 7 r4 : 비트 8, 9, 10, 11 각 데이터 비트는.. 더보기
전향 오류 수정(Forward Error Correction) 오류를 수정하는 방법으로, 재전송에 의해 오류를 수정하거나, 전향 오류 수정(forward error correction)이라는 방법이 있다. 전향 오류 수정은, 데이터를 다시 보내지 않고도 데이터 자체 값을 통해서 오류를 수정하도록 하는 방법이다. 예를 들어, 7비트의 ASCII 코드의 오류를 수정하기 위해서, 어느 위치에서 오류가 발생했는지 파악해야 한다. 즉, 최소 3비트의 정보가 필요하다. 그러나, 이 위치 정보를 나타내는 비트 자체에도 오류가 발생할 수 있는 가능성이 있다. 3비트는 여덟가지의 가능성만을 가지고 있기 때문에, 7비트 + 3비트 = 10비트에서의 오류 위치를 알아낼 수 있도록 1비트가 더 필요하다. 주어진 수 m의 데이터 비트를 수정하기 위해 요구되는 중복 비트의 수 r을 계산하기.. 더보기
검사합(Checksum) 상위 계층 프로토콜에서 사용되는 오류 검출 방법을 검사합(checksum)이라 한다. 패리티 검사나 CRC와 같이 검사합은 중복의 개념을 기반으로 한다. 송신기에 검사합 발생기는 데이터 단위를 n개의 비트로 이루어진 세그먼트로 나눈다. 이 세그먼트들은 전체 길이 또한 n비트가 되도록 1의 보수 연산을 이용하여 함께 더해진다. 전체 합은 보수화되고 검사합 필드라 불리는 중복 비트로서 원래 데이터 단위의 끝에 덧붙여진다. 확장된 데이터 단위는 네트워크를 통해 전송된다. 즉, 송신기는 다음의 단계를 따른다. 1, 데이터 단위는 각각 n비트인 k섹션으로 나뉜다. 2. 모든 섹션은 합을 만들기 위해 1의 보수를 사용하여 서로 더해진다. 3. 합은 보수화되고 검사합으로 된다. 4. 검사합은 데이터와 함께 보낸다. .. 더보기
CRC(Cyclic Redundancy Check) 중복 검사 기법 중 가장 강력한 것으로 순환중복검사(CRC, Cyclic redundancy Check)가 있다. CRC는 2진 나눗셈을 기반으로 하는데, 요구되는 패리티를 얻기 위해서 CRC에서는 비트들 대신 CRC 또는 CRC 나머지라 불리는 중복 비트열이 데이터 단위의 끝에 덧붙여진다. 확장된 데이터 단위는 미리 정해진 2진수에 의해 정확히 나누어 떨어지며, 목적지에서는 들어오는 데이터 단위를 같은 수로 나누어본다. 이 단계에서 나머지가 없다면 데이터 단위는 손상되지 않은 않은 것으로 간주되어 받아들여진다. 나머지가 남으면 데이터 단위가 전송 중에 손상되었음을 나타내므로, 이때의 데이터 단위는 거부된다. CRC에 의해 이용되는 중복 비트들은, 데이터 단위를 미리 정의된 제수(divisor)로 나눔으.. 더보기
패리티 검사(Parity Check) 단순 패리티 검사는, 패리티 비트(parity bit)라 불리는 중복 비트를 각 데이터 단위에 덧붙여서, 패리티 비트를 포함한 데이터 단위 내의 1의 전체 개수가 짝수, 또는 홀수가 되도록 한다. 패리티 검사는 모든 단일 비트 오류를 알아낼 수 있다.또한 변경된 비트의 전체 개수가 홀수일 때 폭주 오류도 알아낼 수 있다. 패리티 비트를 포함하여 전체 1의 개수가 6 : 1000111011인 짝수 패리티 데이터 단위를 생각해보자. 임의의 세 비트의 값이 변경되면, 결과적으로 패리티는 홀수가 될 것이며, 오류를 알아낼 수 있다. 패리티 검사는, 동일한 패리티가 변경되었을 경우에는 오류를 탐지하지 못한다. 즉, 홀수 패리티의 경우, 1의 개수가 홀수라고 했을 때, 짝수 패리티라면 1을 추가하여 1의 개수를 짝.. 더보기
오류 검출(Error Detection) 오류 검사의 목적이 오류 정정이라 하더라도, 많은 경우에 먼저 오류를 찾아내야 한다. 오류 정정보다 오류 검출이 더 간단하며, 오류 정정의 첫 번째 과정이다. 오류를 검출하는 가장 단순한 방법 중 하나는 데이터 단위를 중복해서 전송하는 방법이다. 그러면 수신 장치는 두 데이터 사이의 비트 단위를 비교할 수 있다. 불일치는 오류를 가리키며, 적절한 오류 수정을 할 수 있다. 문젠, 데이터를 중복해서 전송하는 것은 매우 느리며, 비효율적이란 점이다. 전송 시간이 중복해서 보내는 만큼 더 걸리며, 비트 단위로 각 단위를 비교해는데 추가적으로 시간이 소모된다. 따라서, 전체 데이터 단위를 다시 보내는 것보다 보다 짧은 비트 그룹을 각 단위의 끝에 추가할 수 있다. 이러한 기법을 중복(redeundancy)이라 .. 더보기
오류의 종류 단일 비트 오류(single bit error)는 주어진 데이터 단위(바이트나 문자, 데이터 단위 또는패킷 등) 중 오직 하나의 비트만이 1에서 0, 또는 0에서 1로 변경되는 오류를 의미한다. 즉, 단일 비트 오류는 데이터 단위 중 하나의 비트만 변경된 경우다. 단일 비트 오류가 발생한다는 것은, 직렬 전송의 경우 잡음의 지속 기간이 한 비트의 전송 시간 보다 짧다는 것을 의미한다. 병렬 전송에서 단일 비트 오류가 발생한다는 것은, 데이터 전송에 사용된 여러 회선 중 하나의 회선에 문제가 있다고 생각할 수 있다. 폭주 오류(burst error)는 데이터 단위에서 2개 이상의 연속적인 비트들이 1에서 0, 또는 0에서 1로 바뀌는 오류를 의미한다. 직렬 전송에서, 잡음의 지속 기간이 한 비트의 지속 시.. 더보기
회선 교환(Circuit Switching) 회선 교환(circuit switching)은 전화나 컴퓨터 같은 장치 간의 직접적인 물리전 연결을 만든다. 회선 교환기는 n개의 입력과 m개의 출력을 가지는 장치로, 하나의 입력 링크와 하나의 출력 링크 간의 임시적인 연결을 만든다. 입력의 수와 출력의 수가 같을 필요는 없다. n × n의 겹교환기(folded switch)는 전이중 방식(full-duplex mode)으로, n개의 링크를 연결할 수 있다. 즉, n, m개의 연결 지점이 있다면, 이것을 완전히 연결하기 위해서 n × m개의 링크가 필요하다. 하지만, n × m 사이에 연결이 항상 활성화되어 있는 것이 아니기 때문에 비효율적이다. 따라서, 평소의 데이터 전송량에 맞게 적절하게 링크를 구성해야 한다. 오늘날의 회선 교환은 공간분할교환기(s.. 더보기
TDM(Time Division Multiplexing) WDM(Wave Division Multiplexing)은 광섬유의 고속 전송률을 이용하기 위해 사용한다. 파형분할다중화는 다중화와 다중화 풀기가 광섬유 채널을 통해 전송된 빛 신호와 관련된다는 점을 제외하고, FDM과 개념적으로 동일하다. 빛 신호의 결합과 분리는 프리즘에 의해 쉽게 다룰 수 있다. TDM(Time Division Multiplexing)은, 링크의 높은 대역폭을 여러 연결이 공유할 수 있도록 하는 과정이다. FDM에서는 대역의 일부를 공유하는 대신에 시간을 공유하는 방식이다. 여기서, 타임 슬롯과 프레임이란 것이 등장하는데, 이것은 무엇인가? 각 연결의 데이터 흐름은 각 단위별로 나뉘어 있고, 링크는 각 연결에서 한 단위씩 합쳐서 하나의 프레임을 만든다. 즉, N개의 입력이 있는 연결.. 더보기
다중화(Multiplexing) 링크의 전송량이 링크에 연결된 장치들이 필요로 하는 용량보다 크다면 여분의 용량이 낭비되는 셈이 된다. 효율적인 시스템에서는 모든 자원의 활용도를 극대화해야 하는데, 대역폭은 데이터통신에서 가장 중요한 자원이다. 대역폭을 효율적으로 사용하기 위해, 다중화된 시스템에서는 n개의 장치가 단일 링크의 용량을 공유하며, 다중화기는 여러 데이터 흐름을 1개의 흐름으로 조합하며, 역다중화기는 이 단일 데이터흐름을 여러개의 데이터 흐름으로 분해하게 된다. 링크는 물리적인 경로를 의미하며, 채널은 주어진 한 쌍의 장치들 사이의 전송을 위한 하나의 경로를 의미한다. 따라서, 하나의 경로에는 n개의 채널이 존재할 수 있다. 여기서, 신호는 주파수분할다중화(FDM), 시분할다중화(TDM), 파형분할다중화(WDM)의 세가지 .. 더보기