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

- 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 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 비직교라서 평균적으로 상쇄된다.
- Spreading
DSSS
- CDMA의 동작 원리 이해 : DSSS (Direct Sequence Spread Spectrum)
- 데이터 신호를 넓은 주파수 대역으로 확산시켜서 전송하는 기술
- CDMA에서 각 사용자의 신호를 서로 고유한 코드로 spread하여 구분하기 위해 사용한다.
DSSS의 전체 흐름
-
Chip Sequence와 Bipolar Mapping
- 각 사용자는 고유한 8비트 길이의 코드를 가진다.
- 이를 0과 1로 구성된 코드를 Bipolar 형태로 변환한다.
0 -> -11-> +1
- Orthonormality 조건
- 서로 다른 사용자끼리의 내적은 0으로 직교한다.
- 자기 자신과의 내적은 1 (정규화 된다.)
-
DSSS 전송 규칙화 합성
- 1을 전송하고 싶으면 자신의 chip sequence를 그대로 보낸다.
- 0을 전송하고 싶으면 chip sequence의 반전된 부호를 보낸다.
- 전송하고 싶지 않으면 0 벡터 (무신호)
- 여러 사용자가 동시에 전송하면?
- 각 사용자의 신호가 벡터 합으로 합성된다.
-
수신 측 복조 (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 사진 설명

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\%\)
수학적 유도
\[\boxed{S = G \cdot P_0}\]
- 시스템의 단위 시간 당 G 개의 전송 시도가 있다고 가정
- 각 전송이 성공할 확률이 P 이다.
- 그 중 G * P 개만이 성공적으로 수신된다.
ALOHA 시스템은 전송 시도가 포아송 분포를 따른다고 가정한다. 즉 전송 간격이 랜덤이다. \(λ = G (프레임/시간)\)
-
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) → 자원 낭비 |
-
Slotted ALOHA
-
슬롯의 시작점에서만 전송
-
충돌 가능 시간 : T
-
따라서 성공 확률 \(P_0 = e^{-G} \Rightarrow S = G \cdot e^{-G}\)
-
따라서 Slotted ALOHA System에서는 하나의 슬롯마다 G = 1 정도의 트래픽이 있을 때 가장 효율이 최대이다.
- Slotted ALOHA VS Pure 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/CD
CSMA/CD = CMSA with Collision Detection
- 전송 중에 충돌이 감지되면 즉시 전송을 중단한다.
- 전체 패킷을 끝까지 보내지 않는다.
- 이는 시간과 자원을 절약한다.
- 주로 유선 LAN에서 사용된다. (IEEE 802.3 Ethernet)
- 절차
- idle 이면 전송
- Busy 면 대기 후에 전송
- 전송 중에 충돌이 감지될 때 전송을 중단한다.
- Backoff 후 재시도한다.
CSMA/CA
CSMA/CA = CAMA with Collision Avoidance
- 무선에서는 충돌 감지가 어렵기 때문에 충돌을 미리 회피하는 전략을 사용한다.
- 절차
- Idle 확인 이후에 DIFS (Distributed Interframe Space)를 대기한다.
- 랜덤 Backoff Counter를 설정한다.
- Backoff Counting 으로 중간에 다른 노드 전송이 발생 시에 카운트를 중단하고 동결한다.
- 카운트가 0이 되면 전송한다.
- 전송 후에 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에도 간접적으로 전송 예정 사실을 알릴 수 있다.
- 동작 순서
- RTS (Request to Send) 전송
- 송신자가 RTS 프레임을 전송하여 데이터 전송 예약을 요청한다.
- CTS (Clear to Send) 응답
- 수신자가 CTS 프레임을 보내어 너 전송해도 된다고 승인을 해준다.
- CTS는 수신자 주변 노드에도 브로드캐스트를 하여 주변 노드들은 채널 사용 예정을 인지하고 기다린다.
- DATA 전송
- ACK 수신