데이터 전송 기법들

 

데이터는 각각의 클럭 차이로 인해 오류를 발생시킬 수 있다.

이를 방지하기 위해 우리는 동기 전송과 비동기 전송 방식을 사용한다.

 

우리가 앞에서 지금까지 배웠었던 동기 전송 방식은 블록 단위로 연속적으로 데이터를 전송하며, 송신기와 수신기의 클럭이 지속적으로 동기화됐었다.

하지만 이제 배울 비동기 전송 방식은 각 문자를 독립적으로 전송하며, 각 문자마다 동기화가 이루어지게 된다.

 

 

 

 

 

비동기 전송 (Asynchronous Transmission)

 

 

이 방식은 데이터를 문자 단위로 전송하며, 각각의 문자는 8~12비트로 구성되어 있고 수신기는 각 문자의 시작 시점에서 동기화를 맞춘다. 이후, 각 문자의 끝에서 다시 동기화가 이루어진다.

 

 

비동기 전송의 주요 특징

  1. 문자 단위 전송: 데이터를 한 문자씩 전송하며, 연속된 비트 스트림 대신 문자 단위로 타이밍 및 동기화가 이루어진다.
    각 문자는 8~12비트로 구성되어 있으며, 수신기가 문자의 시작 지점에서 동기화한 뒤 다음 문자의 시작에서 다시 동기화한다.
  2. 클럭 정밀도 낮아도 가능: 송수신기의 클럭 정밀도가 낮아도 작동이 가능하여 상대적으로 비용이 저렴하고 시스템이 간단하다. 저속 데이터 전송 시스템에서 주로 사용된다.
  3. 비용 효율성과 간단함: 이 방식은 비용 효율성이 높고, 전송 속도가 느린 시스템에서도 적합하여 간헐적인 데이터 전송이나 불규칙한 전송이 필요한 경우에 많이 사용된다.

 

 

 

비동기 전송의 구성 요소

  1. idle상태 (Idle State): 데이터가 전송되지 않을 때 대기 상태이다.
  2. 시작 비트 (Start Bit): 데이터 전송의 시작을 알리는 비트로, 1비트 길이이며, 신호는 항상 0으로 전송된다.
  3. 데이터 비트 (Data Bits): 실제 데이터가 포함된 비트로, 5~8비트의 데이터 비트가 전송된다.
  4. 패리티 비트 (Parity Bit): 오류 검출을 위해 추가되는 비트로, 짝수(even) 또는 홀수(odd) 패리티 검사를 할 수 있다.
  5. 정지 비트 (Stop Bit): 전송의 종료를 알리는 비트로, 1~2비트 길이로 설정된다.

 

 

 

전송 효율은 데이터 프레임에서 전송되는 실제 데이터의 비율로 계산된다.

예를 들어, 1비트의 시작 비트, 8비트의 데이터 비트, 1비트의 패리티 비트, 2비트의 정지 비트로 구성된 프레임에서 전송 효율은 다음과 같다

 

 

 

 

 

 

 

동기화 전송

 

 

동기 전송에서는 송신기와 수신기의 클럭 동기화가 매우 중요하다.

동기화를 유지하기 위해서는 별도의 클럭 신호 라인을 사용하여 정보를 전달하거나, 데이터 신호 내 클럭 정보를 포함하는 방법이 있다.

각각의 방법 모두 비용과 신호의 복잡성 등 trade-off가 있다.

 

 

 

인코딩 방식

  1. 양극성 인코딩 (Bi-polar Encoding):
    • RZ (Return to Zero): 신호가 0일 때는 0V로 반환되고, 비트가 1일 때는 일정 기간 동안 양극성 신호가 유지된다. 이 방식은 클럭 복원에 도움되며, 전송 효율이 높다.
  2. 이중 위상 인코딩 (Bi-phase Encoding):
    • Manchester Encoding: 각 비트 중간에서 신호가 변하는 방식으로, 자연스럽게 동기화가 이루어진다.
    • Differential Manchester Encoding: 비트의 변화를 통해 신호를 인코딩한다. 클럭 신호와 데이터 신호를 명확히 구분할 수 있게 해준다.
  3. 반송파 주파수 자체 사용 (Carrier Frequency for Clock Recovery):
    • 이 방법은 신호의 주파수를 분석하여 동기화를 유지하는 방식이다. 위상 고정 루프 (PLL)를 사용하여 전송된 신호의 주파수를 분석하고 정확한 클럭을 복원할 수 있다.

 

 

 

 

 

 

 

문자 동기와 비트 동기 전송

 

 

문자 지향 동기 전송 (Character-oriented Synchronous Transmission):

  • 데이터 단위: 전송되는 데이터는 문자 단위로 구분되고, 각 문자는 8비트로 구성되어 있다.
  • 제어 정보: 문자(8비트) 형식으로 제어 정보가 포함되어 있다. 제어 정보는 데이터와 함께 전송되며, 데이터의 시작과 끝을 나타내기 위한 특정 문자 STX, ETX가 포함될 수 있다.
  • 용도: 일반적으로 저속 데이터 전송 시스템에서 사용되며, 데이터와 제어 정보가 명확히 구분된 문자 단위로 처리된다. 이 방식은 비용이 저렴하고, 클럭 동기화가 상대적으로 간단하여 많이 사용된다.

 

 

 

 

비트 지향 동기 전송 (Bit-oriented Synchronous Transmission):

  • 데이터 단위: 비트 단위로 전송된다. 데이터는 8비트로 제한되지 않고, 연속적인 비트 시퀀스로 전송된다. (빠름)
  • 제어 정보: 특별한 비트 패턴이나 비트 플래그를 사용하여 데이터의 시작과 끝을 구분합니다.
  • 용도: 주로 LAN(로컬 네트워크) 및 고속 WAN(광역 네트워크)에서 사용된다. 비트 단위로 전송되므로 고속 전송이 가능하며, 데이터 전송의 유연성이 높다.

 

 

 

 

 

 

Byte Stuffing

 

헤더와 데이터의 구분에서 사용되는 Byte Stuffing문자 지향 동기식 전송에서 데이터와 제어 문자를 구분하기 위해 사용된다.

 

 

  1. 문자 패턴 식별:
    • 전송되는 데이터 중에 특정 제어 문자와 동일한 패턴이 나타나는 경우, 이를 구별하기 위해서 추가적인 문자를 삽입하는 과정이다. 일반적으로 제어 문자는 데이터 전송의 시작과 끝을 표시하며, 전송 중 이러한 제어 문자와 동일한 데이터 패턴이 나타나면 이를 처리해야 한다.
  2. DLE (Data Link Escape) 문자 추가:
    • 만약 데이터 본문 중 제어 문자와 동일한 패턴이 나타날 경우, DLE(Data Link Escape) 문자를 추가하여 해당 문자가 실제 제어 문자가 아님을 표시한다. 이렇게 추가된 DLE 문자는 수신 측에서 이를 확인하여 해당 패턴을 구별할 수 있게 해준다.
  3. 데이터 전송:
    • 데이터가 전송될 때 제어 문자와 동일한 패턴이 나타나면 DLE 문자를 추가하여 그 앞에 삽입한다. 수신 측에서는 이러한 DLE 문자를 인식하고 이를 제거한 뒤 원래 데이터를 복원한다.
  4. 미검출 방지:
    • 수신 측에서는 데이터 스트림을 분석하면서 DLE 문자가 포함된 경우, 그 다음에 오는 문자가 제어 문자가 아닌지 확인한 후 데이터를 복원한다.

 

 

 

예시

  • 데이터: "DATA HEADER END"
  • 제어 문자: (미표시)
  • DLE 문자 추가 후: "DATA DLE HEADER DLE END"
    • 데이터 본문 중 제어 문자와 동일한 패턴이 나타나면 DLE 문자가 추가되어 구별할 수 있도록 한다.

 

 

이로 인한 장점은 데이터와 제어 문자가 혼동되지 않도록 하여 데이터 전송의 신뢰성을 높이고,

데이터 전송 중 제어 문자와 동일한 패턴이 나타나는 경우에도 제어 문자가 아닌 데이터로 정확히 구별할 수 있다.

 

 

 

 

 

 

Bit Stuffing

 

Bit Stuffing은 비트 지향 동기식 전송에서 제어 플래그와 동일한 비트 패턴이 데이터 본문에 나타날 경우, 이를 구분하기 위해 추가적인 비트를 삽입한다.

 

 

 

Bit Stuffing 과정

 

  1. 플래그 패턴 식별:
    • 전송되는 데이터 스트림에서 특정 비트 패턴(플래그 패턴)이 제어 신호를 나타낸다. 이 플래그 패턴은 일반적으로 01111110으로 설정된다. 데이터 본문에서 이 패턴이 나타나면 이를 구별해야 한다.
  2. 비트 삽입:
    • 데이터 스트림 중에 플래그 패턴과 동일한 비트 패턴(연속된 1이 5개) 이 나타날 경우, 수신기에서 이를 제어 플래그로 착각하지 않도록 0을 삽입한다. 즉, 연속된 1이 5개가 나타나면 그 뒤에 0을 추가하여 패턴을 변형시킨다.
    • 예를 들어, 데이터가 01111110처럼 나타나면 이를 011111010로 변환한다. 이렇게 변환된 데이터는 수신기에서 플래그와 데이터 본문을 구분할 수 있게 된다.
  3. 디코딩:
    • 수신 측에서는 비트 스트림을 분석하여 플래그 패턴을 찾고, 연속된 1이 5개 나타난 후 삽입된 0 비트를 제거하여 원래 데이터 스트림을 복원한다.

 

 

이런 과정을 통하면 데이터와 제어 플래그를 구별하여 데이터 전송의 신뢰성을 높일 수 있다.

또한 충돌을 방지하여 데이터 스트림 중에 플래그 패턴과 동일한 비트 패턴이 나타나는 경우를 효과적으로 처리할 수 있다.

 

 

요약하자면 Bit Stuffing은 데이터와 제어 신호 간의 혼동을 방지하고, 전송 데이터의 신뢰성을 보장하기 위해 비트 지향 전송 시스템에서 널리 사용되는 기법이다.

 

 

 

 

 

 

 

직렬 전송 (Serial Transmission)

 

직렬 전송은 데이터를 한 비트씩 순차적으로 전송하는 방식이다.

송신 데이터와 수신 데이터가 각각 독립적인 선로를 통해 전송되며, 장거리 전송에 적합하다.

 

 

 

(RS-232 직렬 통신 포트: 송신기와 수신기 간에 각기 다른 신호선을 사용하여 데이터를 주고받는 통신 방식. 주로 컴퓨터와 외부 장치 간의 통신에 사용됨)

 

 

RS-232는 직렬 통신을 위한 표준 인터페이스인데, 이 포트는 데이터를 한 비트씩 순차적으로 전송하고 송 수신 데이터가 각각 독립적인 선로로 전송된다.

 

직렬 전송은 구현이 간단하고 하드웨어 비용이 적게 소요되고, 선로의 수가 적어 장거리 전송에 유리하지만

병렬 전송에 비해 데이터 전송 속도가 느리고 송신기와 수신기 간의 동기화가 필요하다.

 

 

 

 

 

 

병렬 전송(Parallel Transmission)

 

병렬 전송은 여러 비트를 동시에 전송하는 방식으로, 데이터 전송 속도를 높이는 데 유리하다.

주로 단거리 통신에서 사용되며, 여러 선로를 사용해 데이터를 동시에 전송한다.

 

 

 

병렬 전송은 컴퓨터 내의 다양한 구성 요소들 사이에서 데이터를 전송하는 것과 같이
동일한 시스템 또는 장치 내에서 데이터를 전송할 때 사용된다.

보통 컴퓨터 시스템 내에서 CPU, 메모리, I/O 장치 간의 데이터 전송에 병렬 전송이 사용된다.

( 하드 드라이브, RAM, 그래픽 카드 등 내부 장치 간 데이터 전송에도 사용됨)

 

 

여러 비트를 동시에 전송하므로 데이터 전송 속도가 매우 빠르고, 단거리 전송 특성상 빠른 응답성과 짧은 지연 시간을 제공한다.

 

하지만, 여러 선로를 동시에 사용하므로 신호 간섭이 발생할 수 있고(그래서 단거리에서만 유효 ), 하드웨어 설계가 복잡해진다.

 

 

 

 

 

 

 

 

토폴로지(Topology)

 

 

토폴로지는 전송 매체 위에 장치나 노드들의 물리적 배치를 말한다. 이것을 통해 노드 간 연결 방식과 데이터 전송 방식을 설명할 수 있다.

 

토폴로지에는 두 장치나 노드 간에 직접 연결하는 Point-to-Point, 또는 하나의 중앙 장치(점)가 여러 장치(다점)와 연결된 형태인 Point-to-Multipoint 방식이 있다.

 

 

 

전송 모드(Transmission Modes)

 

  • Simplex (단방향):
    • 정의: 데이터 전송이 한 방향으로만 이루어지는 방식.
    • 예시: 텔레비전 방송처럼 신호가 한쪽 방향으로만 전송되는 경우.
    • 특징: 데이터를 보내기만 하고, 피드백이나 응답이 필요 없는 경우 사용됨.
  • Half-Duplex (반이중):
    • 정의: 데이터 전송이 양방향이지만 동시에 이루어지지 않음. 한 번에 하나의 방향으로만 전송 가능.
    • 예시: 워키토키처럼 한쪽이 말할 때 다른 쪽은 듣고, 그 후에 역할을 바꿔 통신.
    • 특징: 양방향 통신이 가능하지만 송신과 수신은 번갈아 가며 수행됨.
  • Full-Duplex (전이중):
    • 정의: 데이터 전송이 양방향이면서 동시에 이루어짐. 양쪽에서 동시에 데이터를 송신하고 수신할 수 있음.
    • 예시: 전화 통화처럼 양쪽 사용자가 동시에 말하고 들을 수 있음.
    • 특징: 동시에 양방향 통신이 가능해 데이터 교환 속도가 빠름.