jisung-02notes
← Archive

Datalink Layer - Multiple Access

데이터 링크 계층(Data Link Layer)은 기능 중심으로 두 개의 서브레이어로 나뉜다.

jisung-02

AI 네트워킹 중간범위 — 노션 강의 노트를 옵시디언용으로 정리한 노트.

데이터 링크 계층의 구조

  • 데이터 링크 계층(Data Link Layer)은 기능 중심으로 두 개의 서브레이어로 나뉜다.
  • 상위 — Data Link Control (데이터 링크 제어): 흐름 제어(flow control), 오류 제어(error control), 프레임 관리.
  • 하위 — Multiple Access / MAC (다중 접근 제어): 여러 노드가 공유 매체를 어떻게 공유할지결정.

Multiple Access Protocol (다중 접근 프로토콜)

  • 여러 노드(스테이션)가 하나의 링크(멀티포인트/브로드캐스트 링크)를 공유할 때, 동시에 데이터를 보내면 **충돌(collision)**이 발생한다.
  • “누가 언제 보낼지”를 조정하기 위해 사용하는 것이 Multiple Access Protocol이다.

세 가지 분류

Multiple Access Protocol
 ├─ Random Access     (경쟁 기반)
 ├─ Controlled Access (제어 기반)
 └─ Channelization    (자원 분할)
구분방식충돌특징
Random Access경쟁발생단순, 현실적
Controlled Access순서 제어없음오버헤드 존재
Channelization자원 분할없음고정 할당

Random Access (경쟁 기반)

  • 동작: 각 노드가 독립적으로 판단해 전송 → 충돌 발생 시 재전송.
  • 이유: 현실 트래픽은 예측 불가(burst, 랜덤) → 그래서 가장 많이 쓰이고 다뤄진다. 중앙 제어 없이 유연하게 동작.
  • 특징: 충돌을 본질적으로 제거할 수는 없고 확률적으로 줄인다.
  • 예: ALOHA(아무 때나 보냄), CSMA(듣고 보냄), CSMA/CD(충돌 감지), CSMA/CA(충돌 회피).

Controlled Access (제어 기반)

  • 동작: 누가 보낼지 미리 정해진다. → 충돌을 아예 없애기 위함.
  • 방법: Reservation(미리 예약), Polling(중앙이 순서 지정), Token Passing(토큰 가진 노드만 전송).
  • Trade-off: 충돌 없음 / 대기 시간·관리 오버헤드.

Channelization (자원 분할)

  • 동작: 링크를 물리적으로 나눈다. → 충돌을 구조적으로 제거.
  • 방법: FDMA(주파수 분할), TDMA(시간 분할), CDMA(코드 분할).
  • Trade-off: 충돌 없음 / 자원 낭비(idle slot, unused band) 가능.

Random Access

  • 경쟁(contention) 기반 접근. 모든 스테이션이 동등한 권한을 가지며, 어떤 스테이션도 다른 스테이션을 제어하지 않는다.
  • 하나 이상의 스테이션이 동시에 전송하면 **접근 충돌(access collision)**이 발생, 프레임이 손상될 수 있다.
  • Station = 네트워크에 연결된 통신 주체(노드), 데이터 전송 단위.

Random Access Protocol이 풀어야 할 4가지 문제

  1. (When) 언제 보낼지
  2. (Busy) 매체가 바쁠 때 무엇을 할지
  3. (Result) 전송의 성공/실패를 어떻게 판단할지
  4. (Collision) 충돌 시 어떻게 처리할지

→ ALOHA, CSMA, CSMA/CD, CSMA/CA는 이 네 문제에 대한 각기 다른 해답이다.

ALOHA 프로토콜

  • 1970년대 초 하와이 대학교에서 개발된 가장 초기의 랜덤 접근 방식.
  • 중앙에 Base Station(기지국, 중앙 제어기, 1-hop)이 존재하며 모든 노드가 같은 채널을 공유. 항상 Station → Base Station → Station으로 동작.
  • 업/다운 링크 주파수를 분리(예: 업로드 407 MHz, 다운로드 413 MHz). 모든 업로드 채널이 같은 주파수(407 MHz)이므로 동시에 보내면 충돌 가능.
  • 동작: ① 데이터 생성 → ② listen 없이 즉시 전송 → ③ Base station 수신 → ④ 다른 노드로 전달.
  • 핵심: 그냥 보내고, 충돌 나면 다시 보내는 가장 원시적인 랜덤 접근.

Pure ALOHA (순수 알로하)

  • 전송할 프레임이 생기면 즉시 전송. 단일 채널 공유 → 충돌 발생 → 실패 시 재전송.
  • 프레임이 일부만 겹쳐도 전체 프레임이 손상된다.

ALOHA 동작 규칙 (플로우차트)

  • 변수: K = 시도 횟수, Tp = 최대 전파 지연, Tfr = 프레임 전송 평균 시간, TB = 백오프 시간, R = 랜덤 값.
  1. 전송할 프레임이 있으면 시작, K = 0.
  2. 프레임 전송.
  3. 2 × Tp(왕복 = 최대 전파 시간의 2배)만큼 ACK 대기(타임아웃).
  4. 시간 내 ACK 수신 → 성공(종료). 아니면 실패(5번).
  5. ACK 없음 → 실패, K = K + 1.
  6. K > Kmax 이면 abort(중단), 아니면 7번.
  7. 0 ~ 2^K − 1 사이의 랜덤 값 R 선택.
  8. **TB = R × Tp (또는 R × Tfr)**만큼 대기 — 이진 지수 백오프(binary exponential backoff).
  9. 다시 프레임 전송.
  • Tp(최대 전파 시간) = 거리 / 전파 속도.

취약 시간 (vulnerable time)과 처리량

  • 순수 ALOHA 취약 시간 = 2 × Tfr— 전송 시작 후 2 × Tfr 안에 다른 프레임이 시작하면 충돌.
  • 처리량: S = G × e^(−2G), 최대 Smax = 0.184 (G = 0.5).
  • G = 단위 시간당 전송 시도 수(트래픽 강도), S = 실제 성공 전송 수.
  • S는 취약 구간 동안 다른 프레임이 0개 발생할 확률(포아송 분포 기반).

Slotted ALOHA (슬롯 알로하)

  • 시간을 Tfr 길이의 슬롯으로 나누고, 각 스테이션은 반드시 슬롯 시작 시점에서만전송.
  • 취약 시간이 2 × Tfr → Tfr로 줄어든다.
  • 처리량: S = G × e^(−G), 최대 Smax = 0.368 (G = 1).

CSMA (Carrier Sense Multiple Access)

  • 원칙: “sense before transmit” / “listen before talk”— 보내기 전에 채널을 감지.
  • 충돌 가능성을 줄이지만 완전히 제거하진 못한다: 전파 지연(propagation delay) 때문에, 다른 스테이션의 첫 비트가 아직 도달하지 않아 매체를 비었다고 오판할 수 있다.
  • CSMA 취약 시간 = Tp(전파 지연)— 신호가 모든 노드에 도달하기 전까지는 다른 노드가 채널을 비었다고 착각할 수 있다.

Persistence Methods (지속성 전략)

채널이 바쁠 때 “어떻게 기다리고 다시 시도할지” 결정하는 전략. 세 가지가 있다.

방식행동특징
1-persistentidle 되는 순간 즉시 전송(확률 1)빠르지만 충돌 많음
non-persistentbusy면 랜덤 시간 대기 후 다시 감지충돌 적지만 지연 증가
p-persistentidle 시 확률 p로 전송, q=1−p로 다음 슬롯까지 대기중간 타협(슬롯 기반 시스템에서 사용)
  • 1-persistent: idle 되는 순간 여러 노드가 동시에 시도 → 충돌이 많다.
  • non-persistent: 충돌은 줄지만 불필요한 대기가 생길 수 있다.
  • p-persistent: 충돌과 지연 사이의 타협.

CSMA/CD (Collision Detection)

  • CSMA에 충돌 처리 절차를 추가. 전송 후에도 매체를 모니터링하여 충돌을 감지하면 즉시 중단하고 랜덤 backoff 후 재전송.
  1. 채널 감지(idle이면 전송).
  2. 전송하면서 계속 신호 감지.
  3. 비정상 신호 감지 → 충돌 판단.
  4. 즉시 전송 중단(abort).
  5. 랜덤 backoff 후 재전송.
  • 충돌 감지 방법: 정상 신호는 일정한 전압/파형. 충돌 시 신호 에너지가 비정상적으로 커지므로(이상 파형) 이를 충돌로 판단.

최소 프레임 크기: Tfr ≥ 2Tp

  • CSMA/CD가 동작하려면 프레임 전송 시간 Tfr이 최대 전파 지연 Tp의 최소 2배이상이어야 한다(2Tp = 왕복 지연).
  • 이유: 프레임이 너무 짧으면 충돌 신호가 송신자에게 돌아오기 전에 전송이 끝나, 충돌을 감지하지 못한다.
  • → 프레임은 최소한 충돌이 돌아올 때까지계속 전송 중이어야 한다.

CSMA/CA (Collision Avoidance)

  • 무선 네트워크용. 무선에서는 충돌 감지(CD)가 어렵기 때문에 충돌을 회피한다.
  • 동작: ① 채널 감지 → ② idle 발견 → ③ IFS만큼 대기 → ④ 랜덤 backoff(contention window) → ⑤ 카운트다운 → ⑥ 0 되면 전송 → ⑦ ACK 대기.

세 가지 충돌 회피 전략

  1. IFS (Inter Frame Space): idle을 발견해도 바로 보내지 않고 잠시 대기.
  • IFS가 짧을수록 먼저 보내므로 우선순위가 높다→ IFS로 우선순위를 정의할 수 있다.
  1. Contention Window: 랜덤 슬롯 중 하나를 선택해 backoff.
  • 채널이 busy해지면 타이머를 다시 시작하지 않고 멈췄다가, idle이 되면 이어서카운트다운한다. (매번 다시 시작하면 starvation 발생.)
  1. ACK: 충돌 감지가 어려우니, 성공 여부는 ACK 응답으로 확인.

CSMA/CA 플로우차트

  1. 채널 확인 → 2. idle 발견 → 3. IFS 대기 → 4. 여전히 idle이면 → 5. 랜덤 R 선택(0 ~ 2^K − 1) → 6. R만큼 카운트다운 → 7. 0 되면 전송 → 8. ACK 대기 → 9. 실패 시 K++ → 10. K > 15 면 Abort, 아니면 재시작.

아이디어: 각 노드의 랜덤 넘버가 서로 다를 확률이 높을수록 충돌이 줄어든다. → 랜덤 넘버 선정 시 기존 데이터를 기반으로 AI로 설정할 수도 있다.


Channelization

  • 링크의 가용 대역폭을 시간 / 주파수 / 코드기준으로 나누어 여러 스테이션이 공유하는 다중 접근 방식. 충돌을 구조적으로 제거.

FDMA (Frequency Division Multiple Access)

  • 하나의 큰 채널을 여러 주파수 대역으로 분할 → 각 노드는 자기 주파수만 사용.
  • 주파수 간 간섭을 막기 위해 대역 사이에 Guard Band(보호 대역, gap)를 둔다.
  • FDMA는 데이터 링크 계층 개념, FDM은 물리 계층(1계층) 기술— FDMA는 물리 계층에서 FDM을 사용한다.
  • 장점: 충돌 없음, 동시 전송 가능, 지연 거의 없음. / 단점: 대역폭 낭비(guard band), 미사용 시에도 자리 유지, 유연성 낮음.

TDMA (Time Division Multiple Access)

  • 전체 대역폭은 하나의 채널. 이 채널을 시간 슬롯으로 나눠 각 노드가 자기 시간에만 전송.
  • 타임슬롯을 잘게 잘라 번갈아 전송.

CDMA (Code Division Multiple Access)

  • FDMA와 달리 하나의 채널이 전체 대역폭을 사용하고, TDMA와 달리 시간 분할 없이모든 스테이션이 동시에전송.
  • 아무것도 나누지 않고 **코드(code)**로 구분: 각 노드의 데이터를 서로 다른 코드로 변환 → 신호를 합쳐서 전송 → 수신자는 자기 코드로만 추출.
  • 코드가 서로 **직교(orthogonal)**하므로 겹친 신호에서 분리 가능. → “같은 시간, 같은 주파수에서 코드로 구분하여 동시 전송”.

CDMA 코드(칩 시퀀스, chips)와 직교성

  • 코드 = +1 / −1 로 이루어진 벡터(칩 시퀀스). 예(Walsh):
  • C1 = [+1 +1 +1 +1], C2 = [+1 −1 +1 −1], C3 = [+1 +1 −1 −1], C4 = [+1 −1 −1 +1]
  • 직교 시퀀스의 성질:
  1. 동일한 두 시퀀스의 내적: A · A = N(스테이션 수, 예: C1 × C1 = 4).
  2. 서로 다른 두 시퀀스의 내적: A · B = 0(서로 간섭 안 함).
  3. A · (−A) = −N.
  • 공통 채널 = d1·c1 + d2·c2 + d3·c3 + d4·c4.
  • 전체 신호에 내 코드를 곱하면내 데이터만 남고 남의 데이터는 0이 된다. 예: (Σ dᵢcᵢ) × c1 = 4 × d1.

데이터 표현 (인코딩)

  • 비트 0 → −1, 비트 1 → +1, 무음(idle) → 0.
  • 흐름: 비트 → (+1/−1/0) 변환 → 코드 곱함 → 전부 더함 → 채널로 전송.

예시 (4 노드, N=4)

  • 노드1: bit 0 → −1, c1=[+1 +1 +1 +1] → d1·c1 = [−1 −1 −1 −1]
  • 노드2: bit 0 → −1, c2=[+1 −1 +1 −1] → d2·c2 = [−1 +1 −1 +1]
  • 노드3: idle → 0, c3=[+1 +1 −1 −1] → d3·c3 = [ 0 0 0 0]
  • 노드4: bit 1 → +1, c4=[+1 −1 −1 +1] → d4·c4 = [+1 −1 −1 +1]
  • 채널 합 벡터:
 [-1 -1 -1 -1]
+[-1 +1 -1 +1]
+[ 0  0  0  0]
+[+1 -1 -1 +1]
----------------
 [-1 -1 -3 +1]
  • 수신: (채널 신호) × (내 코드) → 전부 더함 → N으로 나눔→ 비트 변환.

Walsh table (코드 생성)

  • Walsh 테이블의 행 하나 = 하나의 코드(chip sequence). 시퀀스 개수는 N = 2^m(m = 확장 횟수).
W(2N) = [ W(N)   W(N)
          W(N)  -W(N) ]

W1 = [ +1 ]
W2 = [ +1  +1
       +1  -1 ]
W4 = [ +1 +1 +1 +1
       +1 -1 +1 -1
       +1 +1 -1 -1
       +1 -1 -1 +1 ]