8 분 소요

이번 포스트에서는 Multiplexing, MAC에 대해 다룬다. 다루기 이전에는 통신 프로토콜에 대한 기초에 대한 설명도 있다.

통신 프로토콜 & 네트워크 계층

Layered Architecture

  • 복잡한 통신 시스템을 계층 (Layer)으로 나누면 설계와 관리가 쉬워진다.
  • 각 계층은 상위 계층에 서비스를 제공하고, 하위 계층의 세부 동작은 숨긴다.
  • 프로토콜 (Protocol) : 동일 계층끼리 통신하기 위한 약속 (동작 규칙)
    • 예) HTTP <-> HTTP / IP <-> IP
  • 정보 흐름 : 데이터가 상위 계층 -> 하위 계층 -> 물리 채널 -> 다시 상위 계층으로 이동한다.
    • 각 계층에서는 제어 정보가 header를 통해 붙고, 다시 제거되면서 원래 데이터로 복원된다.
  • 용어 정리
    • Peer : 서로 같은 계층에서 통신하는 두 엔티티
    • Interface : 하위 계층이 상위 계층에 제공하는 서비스의 형태
    • Network Architecture : 계층과 프로토콜의 집합
    • Protocol Stack : 시스템에서 실제로 사용하는 프로토콜의 목록

layered Architecture

  • Protocol의 서비스 관계 : 서비스 제공자에게 요청하거나 보고하는 동작들 (서비스 인터페이스의 구조)
    • 1. Request : 상위 계층에서 하위 계층으로 요청을 한다.
    • 2. Indication : 하위 계층에서 상위 계층에게 발생 사실을 알린다.
    • 3. Reply : 상위 계층이 Indication에 응답한다.
    • 4. Confirm : 하위 계층이 Request에 대한 완료 응답을 한다.
  • SDU VS PDU
    • SDU (Service Data Unit) : 상위 계층이 하위 계층에 전달하는 데이터
    • PDU (Protocol Data Unit) : 하위 계층이 header를 붙여서 만들어진 데이터 단위
  • OSI 7 Layer vs TCP/IP 4 Layer

OSI

  • OSI Layer 중에서 Error Control 이 없는 계층은 ?
    • 1계층 (Physical Layer) : 단순히 비트 전기적/기계적 신호 전달만 담당해서 오류 감지나 정정기능이 없다.
  • Data Link Layer (2계층)
    • 2계층은 물리 계층(1계층)에서 올라온 비트 스트림을 의미 있는 프레임으로 구성하고, 전송 중 발생할 수 있는 오류를 검출 및 일부 정정하는 계층이다.
  • OSI 7 계층별 데이터 단위 (PDU)
    • 1계층 (Physical Layer) : Bit (0과 1의 신호 전기적 신호)
    • 2계층 (Data Link) : Frame (MAC 주소 기반, 오류 검출 포함)
    • 3계층 (Network) : Packet (IP 주소 기반 라우팅)
    • 4계층 (Transport) : Segement(TCP) / Datagram(UDP)
    • 5~7계층 (Session, Presentation, Application) : Data

Multiple Radio Access

  • 여러 사용자가 하나의 공유된 통신 자원동시에 사용할 수 있게 만드는 기술
  • 자원 채널은 한정되어 있다.
    • 그렇기 때문에 여러 사용자가 충돌 없이 데이터를 전송하기 위해서 접근 방법을 정해줘야 한다.
  • Multiple Radio Access 의 종류

1. Contetion-Free (충돌 없음)

  • 미리 자원을 예약하고 쓰기 때문에 충돌이 발생하지 않는다.
  • FDMA, TDMA, CDMA, OFDMA

2. Contention-Based (충돌 발생 가능)

  • 자원을 먼저 쓰려고 시도 (충돌 가능) 한다. 하지만 구조가 단순하다.
    • ALOHA, CSMA, CSMA/CA

3. Hybrid 방식

  • 1,2번의 성질을 섞은 것으로 예약 기반과 경쟁 기반을 섞어서 사용한다.
  • LTE의 랜덤 액세스 채널

Contention-FREE Protocols

1. FDMA

  • 1세대 통신 : FDMA (Frequency Division Multiple Access)
  • 전체 주파수 대역을 여러 개의 작은 주파수 블록으로 나눈다.
  • 그 이후 각 사용자에게 하나의 주파수 채널을 독점적으로 할당하는 방식이다.
  • 단점
    • 비효율적 사용 : 사용자가 전송을 하지 않아도 해당 채널을 할당 받았기 때문에 주파수는 비어 있다.
    • 대역폭 낭비 : Guard Band가 필요하기 때문에 대역폭이 낭비된다.

2. TDMA

  • 2세대 통신 : TDMA (Time Division Multiple Access)
  • 하나의 주파수 채널을 시간 단위로 나눈다.
  • 각 사용자에게 일정 시간 슬롯을 반복적으로 할당하여 순차적으로 전송하게 하는 방식
  • 단점
    • 동기화 문제 : 정확한 시간의 정렬이 필요하다.
    • 유효 슬롯 문제 : 사용자의 데이터가 없을 때 해당 시간은 비어 있다.

GSM

  • FDMA 와 TDMA 를 함께 사용하여 더 많은 사용자를 수용한다.
    • FDMA : 전체 대역폭을 여러 개의 주파수 채널로 분할한다.
    • TDMA : 각 주파수 채널을 다시 8개의 시간 슬롯으로 분할한다.
  • 2G 이동통신의 대표적인 다중접속 방식

3. CDMA

  • 3세대 기술 : CDMA (Code Division Multiple Access)
  • 모든 사용자동시에, 같은 주파수를 사용하여 데이터를 전송한다.
  • 각 사용자마다 고유한 코드를 사용하여 신호를 구분한다.
  • 동작 원리
    • Spreading
      • 송신 측에서 보내는 데이터 비트와 고유한 고속 코드를 통해 확산한다.
    • Transmission
      • 확산된 신호는 모든 사용자와 섞여서 전송된다.
    • Despreading
      • 수신 측에서는 동일한 코드로 곱해 원하는 사용자의 신호만 복원한다.
      • 다른 사용자의 코드는 직교 or 비직교라서 평균적으로 상쇄된다.

DSSS

  • CDMA의 동작 원리 이해 : DSSS (Direct Sequence Spread Spectrum)
  • 데이터 신호를 넓은 주파수 대역으로 확산시켜서 전송하는 기술
  • CDMA에서 각 사용자의 신호를 서로 고유한 코드로 spread하여 구분하기 위해 사용한다.

DSSS의 전체 흐름

  1. Chip SequenceBipolar Mapping

    • 각 사용자는 고유한 8비트 길이의 코드를 가진다.
    • 이를 0과 1로 구성된 코드를 Bipolar 형태로 변환한다.
      • 0 -> -1 1-> +1
    • Orthonormality 조건
      • 서로 다른 사용자끼리의 내적은 0으로 직교한다.
      • 자기 자신과의 내적은 1 (정규화 된다.)
  2. DSSS 전송 규칙화 합성

    • 1을 전송하고 싶으면 자신의 chip sequence를 그대로 보낸다.
    • 0을 전송하고 싶으면 chip sequence의 반전된 부호를 보낸다.
    • 전송하고 싶지 않으면 0 벡터 (무신호)
    • 여러 사용자가 동시에 전송하면?
      • 각 사용자의 신호가 벡터 합으로 합성된다.
  3. 수신 측 복조 (Despreading)

    • 수신자는 수신된 벡터 S와 자신의 코드와 내적을 수행하여 자신이 전송한 데이터인지 판단한다.

    • 예시 \(수신된 S = A + \overline{B} + C → C\)

      \[수신자: S \cdot C = A \cdot C + \overline{B} \cdot C + C \cdot C = 0 + 0 + 1 = 1\]
      • bit 1이 전송되었음을 알 수 있다.

FDMA, TDMA, CDMA 사진 설명

FDMA

Channel 종류

1. Traffic Channel

  • 사용자의 실제 데이터를 전송하는 채널

2. Control Channel

  • 네트워크와 단말기 사이의 연결
  • 설정, 동기화, 인증 등 제어 메시지를 주고 받는 채널

Duplexing Method

Uplink 와 Downlink 통신을 어떻게 구분해서 동시에 처리할 것인가를 결정하는 방식

1. FDD

  • 양방향 동시 통신 가능한 주파수 대역 분리 : FDD (Frequency Division Duplexing)
  • 상향과 하향에 서로 다른 주파수 대역을 사용하는 방식
  • 동시에 주고받기가 가능한 구조

2. TDD

  • 시간 슬롯을 분리 : TDD (Time Division Duplexing)
  • 하나의 주파수를 사용하되, 시간을 나누어 Uplink / Downlink을 번갈아서 전송하는 방식
  • 대칭 / 비대칭 트래픽에 유연하고, 주파수 자원을 절약한다는 장점이 존재한다.
  • 동기화 문제와 양방향 동시 통신이 불가능하다.

Contention-Based Protocol

  • 여러 노드가 공유 채널에 동시에 접근하려고 할 때 충돌을 감수하면서 전송한다.
  • 만약 충돌이 생긴다면 재시도를 한다.

1. ALOHA

  • 그냥 ALOHA는 Pure ALOHA 이다.

  • 데이터가 생기면 즉시 전송한다.

  • 충돌이 발생하면 일정 시간 이후 무작위로 재전송한다.

  • 송신 타이밍이 자유롭기 때문에, 전체 프레임 길이 2T만큼 충돌 가능 영역이 존재한다.

  • 최대 효율 \(S = G e^{-2G}, \quad \text{최대 throughput } \approx \frac{1}{2e} \approx 18\%\)

2. Slotted ALOHA

  • 시간대를 슬롯 단위로 나누고, 각 노드는 슬롯의 시작점에서만 전송이 가능하다.

  • 충돌 확률이 절반으로 감소한다. (충돌 가능 구간 T)

  • 효율은 2배로 증가한다. \(S = G e^{-G}, \quad \text{최대 throughput } = \frac{1}{e} \approx 36.8\%\)

수학적 유도

  • 시스템의 단위 시간 당 G 개의 전송 시도가 있다고 가정
  • 각 전송이 성공할 확률이 P 이다.
  • 그 중 G * P 개만이 성공적으로 수신된다.
\[\boxed{S = G \cdot P_0}\]

ALOHA 시스템은 전송 시도가 포아송 분포를 따른다고 가정한다. 즉 전송 간격이 랜덤이다. \(λ = G (프레임/시간)\)

  1. Pure ALOHA

    • 하나의 전송이 자기 전 / 후로 1프레임 시간 동안 다른 전송이 없어야 성공

    • 충돌 가능 시간 : 2T

    • 따라서 성공 확률 \(P_0 = e^{-2G} \Rightarrow S = G \cdot e^{-2G}\)

따라서 Pure ALOHA System에서는 단위 시간 당 평균 전송 시도 횟수인 G가 0.5 일 때 가장 이상적이다.

경우 의미 문제점
G > 0.5 너무 많은 사용자가 동시에 보내려 함 충돌 ↑ → 재전송 발생 → Throughput ↓
G < 0.5 너무 적은 사용자가 시도함 대부분의 슬롯이 비어 있음 (idle) → 자원 낭비
  1. Slotted ALOHA

    • 슬롯의 시작점에서만 전송

    • 충돌 가능 시간 : T

    • 따라서 성공 확률 \(P_0 = e^{-G} \Rightarrow S = G \cdot e^{-G}\)

따라서 Slotted ALOHA System에서는 하나의 슬롯마다 G = 1 정도의 트래픽이 있을 때 가장 효율이 최대이다.

  • Slotted ALOHA VS Pure ALOHA

aloha

  • ALOHA vs TDM
항목 TDM ALOHA
충돌 가능성 없음 (시간 정해짐) 있음 (자유 전송)
평균 지연 ⏱길다 (자기 차례까지 기다림) 짧다 (바로 전송 가능)
자원 활용 비효율적 가능 (사용자 없음 → 슬롯 낭비) 동적으로 반응 가능
예시 Round-robin Slotted ALOHA

Hybrid 방식 고려

  • 너무 질서 정연하게만 하면 지연이 너무 길다.
  • 너무 자유로우면 충돌이 많다.
  • 실제 시스템에서는 TDM과 ALOHA의 하이브리드 구조를 활용하기도 한다.

3. CSMA

  • ALOHA보다 더 개선된 방법이다.
    • ALOHA는 전송 전에 채널 상태를 고려하지 않아서 충돌 확률이 높다.
    • CSMA는 충돌을 줄이기 위해 먼저 듣고 시작한다.
  • 전송 전에 먼저 채널을 감지 (Carrier Sense)한다.
    • idle 이면 전송하고, busy 면 대기 한다.
    • LBT : Listen Before Talk

Nonpersistent CSMA

Nonpersistent CSMA Protocol

  • idle이면 즉시 전송하고, Busy면 랜덤 시간 후에 다시 시도한다.
  • 충돌 확류이 낮다는 장점이 있다.
  • 채널이 idle이여도 너무 오래 기다릴 수 있다. (대기 시간 증가)

Persistent CSMA

1-persistent CSMA

  • Idle이면 즉시 전송하고, Busy면 idle이 될 때까지 계속 감시후에 즉시 전송한다.
  • Idle 순간에 바로 사용이 가능하다.
  • 두 노드가 동시에 기다리다가 전송하게 되면 충돌이 발생할 확률이 높다.

p-persistent CSMA

  • Idle이면 p의 확률로 전송, 1-p 확률로 한 슬롯의 기다림 이후에 다시 시도한다.
  • 1-p dealy를 넣어서 충돌 확률을 낮춘다.
    • Nonpersistent와 1-persistent의 중간형

P값 선택 기준

  • N개의 노드가 있을 때 NP = 1 보다 작게 유지해야 충돌이 적다.

CSMA의 Throughput은 다음과 같다.

CSMA Throughput

CSMA/CD

CSMA/CD = CMSA with Collision Detection

  • 전송 중에 충돌이 감지되면 즉시 전송을 중단한다.
  • 전체 패킷을 끝까지 보내지 않는다.
    • 이는 시간과 자원을 절약한다.
  • 주로 유선 LAN에서 사용된다. (IEEE 802.3 Ethernet)
  • 절차
  1. idle 이면 전송
  2. Busy 면 대기 후에 전송
  3. 전송 중에 충돌이 감지될 때 전송을 중단한다.
  4. Backoff 후 재시도한다.

CSMA/CA

CSMA/CA = CAMA with Collision Avoidance

  • 무선에서는 충돌 감지가 어렵기 때문에 충돌을 미리 회피하는 전략을 사용한다.
  • 절차
  1. Idle 확인 이후에 DIFS (Distributed Interframe Space)를 대기한다.
  2. 랜덤 Backoff Counter를 설정한다.
  3. Backoff Counting 으로 중간에 다른 노드 전송이 발생 시에 카운트를 중단하고 동결한다.
  4. 카운트가 0이 되면 전송한다.
  5. 전송 후에 ACK를 수신한다.

Backoff 에 대해서

Exponential Backoff

  • 충돌이 발생했을 때, 즉시 다시 재전송하지 않고 일정 시간 (Backoff Time)을 기다린 후에 다시 전송을 시도한다.
  • 이때 충돌 횟수가 많아질수록 기다리는 시간의 범위를 점점 늘리는 방식이 Exponential Backoff 이다.

  • 백오프 슬롯 수 계산 절차 \(\text{Backoff Slot} \in [0, 2^k - 1] \text{ 중 uniform random 선택}\)

    • 충돌 횟수 k 가 주어지면 2^k - 1 계산
    • 범위 [0, 2^k - 1] 에서 random 선택
    • Backoff Time = random slot X Slot Time
  • Wi-Fi 에서는 CW가 증가
충돌 횟수 k CW size (범위 [0, CW-1])
0 (초기) CWmin (ex: 16)
1 32
2 64
3 128
CWmax까지 점점 증가

Hidden Node Problem

  • 무선 통신에서는 모든 노드가 서로를 항상 감지할 수 없다.
  • A노드와 C노드는 서로 신호가 도달하지 않지만, 둘 다 중간의 B노드와는 통신이 가능하다.
  • 이는 CSMA만 사용하면 해결이 불가능하다.

CSMA/CA with RTS/CTS

  • 데이터를 전송 하기 전에 Control Frame (RTS/ CTS)으로 먼저 채널을 예약한다.
  • Hidden node에도 간접적으로 전송 예정 사실을 알릴 수 있다.
  • 동작 순서
  1. RTS (Request to Send) 전송
    • 송신자가 RTS 프레임을 전송하여 데이터 전송 예약을 요청한다.
  2. CTS (Clear to Send) 응답
    • 수신자가 CTS 프레임을 보내어 너 전송해도 된다고 승인을 해준다.
    • CTS는 수신자 주변 노드에도 브로드캐스트를 하여 주변 노드들은 채널 사용 예정을 인지하고 기다린다.
  3. DATA 전송
  4. ACK 수신