[Network] Medium Access Control
- [Network] Data and Signals
- [Network] Digital Transmission
- [Network] Analog Transmission
- [Network] Error Detection and Correction
- [Network] Framing / Error Control
- [Network] Medium Access Control
- [Network] Case Study: Wi-Fi
- [Network] Internet Addressing
- [Network] Internet Protocol (IP)
- [Network] Routing
- [Network] Other Network-Layer Related Protocols
- [Network] Scheduling and Traffic Shaping
- [Network] Transport Layer
✦ Multiple-access resolution
◆ Multiple access 란?
- 네트워크 구성 방법
- point-to-point : 직접적으로 유선 연결
- ex) bus, switch, hub
- Shared Medium : Wi-Fi 같이 무선 매체로 공유
- 한 번에 한 user 만 전송 가능 → control 필요
- point-to-point : 직접적으로 유선 연결
- 목표 : 여러 명이 동시에 모여서 대화 혼잡 안 생기도록
◆ Multiple Access Protocols

- Random access protocols : 랜덤하게 말하기
- Controlled-access protocols : 사회자가 순서 지정
- Channelization protocols : 채널 나눠 따로따로 이야기
◆ Vulnerable time
-
어떤 frame 이 취약한 시간

- Pure ALOHA
- 2 \times T_{\text{fr}} : 그 frame + 그 frame 이전 frame → Time slot 2배
- Slotted ALOHA
- T_{\text{fr}} : 보내는 중인 frame
-
Example

- T_{\text{fr}} = \frac{200\ \text{bits}}{200\times 10^3\ \text{bps}} = 1ms
- 2 × 1ms = 2ms 동안 다른 전송 없어야 함
◆ Throughput
- Time Slot 시간 동안 성공적으로 수신되는 frame 확률 (충돌 제외)
- Pure ALOHA
- S = G \times e^{-2G}
- S : 성공적 수신 frame 수
- G : 한 T_{\text{fr}} 마다 평균 frame 생성 수
- S = G \times e^{-2G}
- if G = 1, S = 0.135 → 1 time slot 마다 평균 0.135 frame 전송
-
Example

- T_{\text{fr}} = \frac{200\ \text{bits}}{200\times 10^3\ \text{bps}} = 1ms
- 1초에 500 frame 생성 → G = 0.5
- S = G × e^{-2G} = 0.184
- 500 × 0.184 = 92 frame 만 성공적 전송
- 식 proof
- poisson 분포
- k = 0 대입, λ = 2G 대입
- 따라서 S = G \times e^{-2G} - G 를 얼마로 해야 최대 output? - Pure ALOHA : G = \frac{1}{2} (2 T_\text{fr} 마다 1개) - Slotted ALOHA : G = 1 (1 T_\text{fr} 마다 1개)
⭐Random Access Protocols
- 비효율적으로 보이지만 많이 사용
- 전송할 시간 random 설정
- 동시 가능성 有 → 충돌 해결 방법?
✦ ALOHA
- Hawaii 대학에서 개발
- 보낼 것이 있으면, 보낸다
- 충돌이 나면, random 한 시간 기다렸다가 다시 보낸다.
◆ Pure ALOHA
- Sender 가 보낼 frame 이 있으면, 즉시 보낸다.
- Receiver 가 frame 을 받으면, ACK 를 보낸다.
- ACK 가 timeout period 동안 오지 않으면, sender 가 frame 을 재전송 한다
- 이때 random delay 만큼 기다린다
-
만약 두 개 이상의 frame 이 같은 시간에 보내지면, collision 발생

- Collision (충돌) : 2명 이상의 sender 가 동시에 전송, receiver 가 아무것도 받지 못함
- frame 전송 多 → 성공률 ↑
- frame 전송 少 → 성공률 ↓
-
Random Time 설정 방법

- 0 \sim 2^k-1 중 하나 뽑기 → R
- T × R 초 기다리기 (T : time slot)
- 충돌 발생 시 K++ → binary exponential backoff (2^x 만큼 기다림)
- K_{max} = 15 지정
- 넘으면 포기 → 상위 layer 에 맡김
- 이 정도면 ACK 전달 X 문제 → K 증가로 해결 불가
- Time Slot T → 시스템 마다 다름
- Transmission Time (packet size, 갯수)
- Propagation Time (거리, 빛의 속도) → 둘 중 큰 쪽으로 time slot 설정
- Example
- Wi-Fi : 9\mu s
- Ethernet : 512 bit times
◆ Slotted ALOHA
- 시간을 slot 으로 나눠서 관리
-
가정 : slot 은 frame 들어가기 충분한 크기

-
Slot 간의 시작 시간 맞추기 → time synchronization
-
- Vulnerable time = T_{\text{fr}}
- Pure ALOHA = 2T_{\text{fr}} → \frac{1}{2} 배
- 중간 시점에서 전송 시작하는 Frame X → 앞쪽 vulnerable time 없어짐
- Throughput : S = G \times e^{-G}
- Pure ALOHA = S = G \times e^{-2G} → -2G 에서 -G 로
✦ CSMA (Carrier Sense Multiple Access)
- ALOHA : 보내고 충돌 안나길 바람 → 효율 ↓
- Listen before you talk : 보내고자 하는 channel 에 누가 이미 보내는 중인지 sense
- hardware 에 Carrier Sense Capability 필요
- 상태
- idle : 유휴 상태 → 전송
- busy : 이미 전송 받는 중 → 기다렸다 전송
-
Vulnerable time : T_p (propagation delay)

- busy 신호가 도착하기 전 idle 상태인 줄 알고 frame 보내기
◆ 종류
- 기준 : Carrier Sensing 빈도
- 1-persistent CSMA
- 계속 carrier sensing
- busy → idle 변한 시점에 전송
- 장점 : 바로 접근 가능, 노는 시간 없음
- 단점 : Collision 가능성 ↑ 1. non-persistent CSMA
- 한 번 sensing 후 busy 면 일정 시간 wait 후 sensing
- sense 했을 때 idle 로 바뀌면 전송
- 장점 : Collision 가능성 낮음
- 단점 : 다 같이 놀고 있을 수 있음 → 효율성 ↓ 1. p-persistent CSMA
- 계속 carrier sensing
- idle 상태 sense
- p 확률로 전송
- 1-p 확률로 좀 기다렸다 전송
- 1 & 2 의 장단점 보완

✦ CSMA/CD (Collision Detection)
- Ethernet 에서 주로 사용
- frame 충돌 판단?
- frame 크기를 키움
- 내 frame 전송 중 다른 frame 받음 → collision 판단

- Frame 의 크기를 몇으로 설정해야 하는가?
- 가장 먼 얘가 receive 하기 직전에 send 한 frame 이 도착할 때까지 (여전히 전송 중이어야 detect 가능)
- T ≥ 2 \times T_p
- 이걸 위해 Ethernet 에는 maximum 거리 존재
- frame size → variable 하지만 최솟값 존재
-
Example

- T_{fr} ≥ 왕복 시간 = 51.2 \mus
- T_{fr} = \frac{\text{Frame Size}}{\text{Link Bandwidth}}
- Frame Size ≥ 512 bit, 64 byte
- If Collision detected
- Jamming signal 전송 → collision 발생 알림 & transmission 중단
- jammming signal : 48 bit 짜리 garbage data
- binary exponential backoff (ALOHA 유사)
- randon 시간 기다림
- 재전송 시작
- Jamming signal 전송 → collision 발생 알림 & transmission 중단
✦ CSMA/CA (Collision Avoidance)
- 무선 (Wi-Fi) 에서 주로 사용
- detect 불가능 → 회피 (avoid)
- 무선 → half duflex
- 한 채널 사용 시 송신 / 수신 동시에 하나만 가능
- 동시에 하면 서로가 간섭 (self interference)
- CSMA/CD 처럼 collision detect 불가능
- ACK 이용
- frame 전송 → ACK 기다림 → 안오면 collision 판단
- backoff binary exponentially
◆ IFS (inter-frame spacing)
- Carrier Sensing 하던 중 idle 을 확인했을 때 대기하는 시간
- 다른 frame 이 전송했을 수도 있기에
- 시스템마다 고정
- idle 상태 확인 할때 마다 초기화
◆ Contention Window
- IFS 이후 더 기다리는 시간
- random 시간 * frame 만큼 기다림
- countdown 해서 0이 되면 전송 시작
- idle 상태일 때만 감소
- busy 상태 되면 초기화 X, pause O
- 다시 idle 상태되면 초기화된 IFS 기다린 후 countdown 이어감
- Binary exponential backoff
- collision 발생 → contention window * 2배 (0 ~ 31 → 0 ~ 63) → 충돌 감소
- Example


- Window
- A : 5
- B : 10
- C : 15
◆ CSMA/CA with ACK
- 지금까진 ACK 를 보내지 않는다고 가정 → 실제론 ACK 사용
- SIFS (Short IFS) : DIFS 보다 짧은 IFS, ACK 보내기 전에 사용
- DIFS (Data IFS) : Data 보내기 전에 기다리는 IFS

⭐ Controlled Access
- Random 숫자에 의존 X
- Rule 에 기반해 직동
- ex) 5G
◆ Reservation
-
시스템 마다 운영 방식 조금씩 차이

- data 슬롯 이전에 reservation 슬롯 존재. 거기서 1 인 data station 에 reservation 시간 할당
- 아무도 보낼게 없으면 다시 reservation time 돌아옴
- 장점 : 서로 간 충돌 위험 X, 매번 5개 wait X (효율적)
- 단점 : 누군가 in/out 할 때 overhead
◆ Polling
- Bluetooth 에서 사용
- Master & Slave 구성
- Master
- 보내고 싶을 때 보냄
- SEL : 이제부터 전송한다고 알림
- Poll : slave 가 보낼 것 있는지 check
- Slave : Poll 수신 이후
- 보낼 게 있음 → data 전송
- 보낼 게 없음 → NAK 전송

- Master
◆ Token Passing
- Token 을 가지고 있는 주체만 말할 수 있음
- 단점
- token error → token 날라가서 작동 X
- ACK error → token 이 2개 생김 → 복잡해서 이제는 역사의 뒤안길로..
⭐Channelization
- Frequency & Time 통해 통신 channel 을 여러 개로 나눔
◆ FDMA (Frequency-Division Multiple Access)
-
frequency 기준으로 나눔

- Guard band : 간섭을 막기 위한 영역 간 간격
-
Example

- 인당 1MHz + 0.1MHz (guard band) → 총 18명 가능
◆ TDMA (Time-Division Multiple Access)
-
시간 단위로 나눔

- Guard interval : 간섭을 막기 위한 영역 간 간격
- FDMA 보다 flexible. Synchronization 중요
◆ CDMA (Code-Division Multiple Access)
- 같은 시간에 같은 주파수에서 전송 → Code division 기술로 나누기
-
Code Division

- 각 사람에게 Code 배정
- Code → 자기 자신이랑 곱하면 4(인원 수), 다른 얘랑 곱하면 0 (like orthogonal)

- Code → 자기 자신이랑 곱하면 4(인원 수), 다른 얘랑 곱하면 0 (like orthogonal)
- 데이터 전송
- 0 → -1
- 1 → +1
- 전송 X → 0

- Common Channel 에선 다 더한 값이 전송됨 → 이게 각 채널에 전파
- 각 채널이 데이터 받으면 → 나 이외 다른 얘의 code 곱하고 4 로 나누기

- 각 사람에게 Code 배정
-
코드 만드는 방법 : Walsh table

-
2 × 2 \begin{bmatrix} 1 & 1 \ 1 & -1 \end{bmatrix} → code : (1, 1), (1, -1)
-
4 × 4

-
◆ OFDMA
-
요즘 사용 → time & frequency 둘 다 나눠서 배정

- 주파수를 orthogonal 하게 나눠 Guard band 없이 나눔
- 시간축으로는 guard interval 존재
공유하기
Twitter Facebook LinkedIn글 이동
시리즈 이동
Comments