다중 접속은 여러 스테이션이 공유된 통신 매체를 사용하면서, 동시에 자신의 신호(비트 스트림, 패킷 스트림)를 전송할 수 있게 해주는 방식이다.
다중 접속 방식은 스케줄링과 랜덤 액세스로 분류할 수 있다.
여기서 스케줄링은 fixed assignment와 demand assignment로 나뉜다.
Scheduling - Fixed assignment: 고정된 할당
FDMA(Frequency division multiple access)
외부 스테이션이 중앙 스테이션으로 자신의 아날로그 신호 또는 비트 스트림을 전송할 때, 중앙 스테이션이 할당한 고유한 주파수 대역을 사용하는 방식이다. 중앙 스테이션이 외부 스테이션에 주파수를 할당하고, 신호 채널을 통해 이를 외부 스테이션에 알려준다.
FDMA에는 Guard band가 존재하는데, 가드 밴드는 외부 스테이션에 할당된 주파수 대역 내의 서브 밴드를 의미한다.
외부 스테이션이 전송하는 신호의 스펙트럼은 가드 밴드를 차지할 수 없으며, 이는 대역 간 간섭을 줄일 수 있다.
FDMA의 대표적인 예시로 AMPS가 있다.
TDMA(Time division multiple access)
외부 스테이션이 주기적으로 할당된 슬롯 시간을 사용하여 비트 스트림 또는 패킷 스트림을 중앙 스테이션으로 전송하는 방식이다. 중앙 스테이션은 외부 스테이션에 시간 슬롯을 할당하고, 신호 채널을 통해 이를 알려준다.
TDMA에는 Preamble이 존재하는데, 프리앰블은 표준 비트 시퀀스로 각 프레임의 시작에 전송된다.
이 프리앰블을 통해 수신자의 시계를 송신자의 시계와 계속 동기화할 수 있다.
TDMA의 대표적인 예시로, GSM이 있다.
CDMA(Code division multiple access)
외부 스테이션이 독점적으로 할당된 직교 함수를 사용하여 비트 스트림 또는 패킷 스트림을 중앙 스테이션으로 전송하는 방식이다. 중앙 스테이션은 외부 스테이션에 직교 함수(코드워드)를 할당하고, 신호 채널을 통해 이를 알려준다.
CDMA의 대표적인 예시로, IS-95가 있다.
824MHz ~ 849MHz 사이의 주파수 대역은 업링크로 사용되며, 869MHz ~ 894MHz 사이의 주파수 대역은 다운링크로 사용된다.
각 대역은 20개의 서브밴드로 나누어지며, 사용자의 비트 스트림은 64개의 Walsh 코드워드 중 하나로 인코딩 된 후 서브밴드 중 하나를 통해 전송된다.
Demand assignment: 협상 할당
DAMA(Dmand Assignment Multiple Access)
각 외부 스테이션은 내부 스테이션과 통신하기 위한 자원을 요청한다. 필요한 경우, 내부 스테이션은 외부 스테이션들과 자원의 양에 대해 협상한다. 내부 스테이션은 자원의 양을 결정하며, 주파수 대역폭, 프레임당 시간 슬롯 수, 직교함수 등을 각 외부 스테이션에 할당한다.
이를 신호 채널을 통해 외부 스테이션에 알려주며, 각 외부 스테이션은 할당된 자원을 사용하여 신호를 전송한다.
4개의 외부 스테이션이 있다고 가정하자. 이를 각각 1, 2, 3, 4로 표시하며, 이들은 전부 자신의 패킷 스트림을 전송하려고 한다.
시간은 프레임으로 나눠져있고, 프레임은 업링크에서 8개의 슬롯으로 나뉜다.
패킷을 전송하는데는 하나의 슬롯이 필요하다고 가정한다. 즉, 업링크에서의 패킷 서비스율($\mu$) 1packet/slot이다.
외부 스테이션 k에서 발생하는 패킷 도착률은 $\lambda_k$이다.
$\lambda_1$ = 5/8 packets/slot time
$\lambda_2$ = 1/8 packets/slot time
$\lambda_3$ = 1/8 packets/slot time
$\lambda_4$ = 1/8 packets/slot time
<시나리오 1>
내부 스테이션이 각 외부 스테이션에 프레임 당 2개의 슬롯을 할당한다고 가정한다.
$\eta_1$은 프레임 당 최대 2개의 패킷이 도착할 수 있고, 슬롯 당 2/8의 패킷이 도착할 것이다.
$\eta_2$는 프레임 당 최대 2개의 패킷이 도착할 수 있지만, 도착률이 낮기 때문에 프레임당 1개의 패킷이 도착할 것이고, 슬롯 당 1/8의 패킷이 도착할 것이다.
$\eta_{3}, \eta_{4}$도 $\eta_2$와 같다.
이 시나리오에서 외부 스테이션1은 자원이 부족하다.
<시나리오 2>
내부 스테이션이 외부 스테이션1에는 5개의 슬롯을, 나머지 스테이션에는 1개의 슬롯을 할당한다고 가정한다.
$\eta_1$은 프레임 당 최대 5개의 패킷이 도착할 수 있고, 슬롯 당 5/8의 패킷이 도착할 것이다.
$\eta_2 , \eta_3 , \eta_4$은 프레임 당 최대 1개의 패킷이 도착할 수 있고, 슬롯 당 1/8의 패킷이 도착할 수 있다.
이 시나리오에서는 자원이 부족한 스테이션은 존재하지 않는다.
Polling: Token Passing Scheme
이 방식은 네트워크 프로토콜에서 각 스테이션이 데이터 전송을 조율하기 위해 토큰을 전달하는 메커니즘이다.
각 스테이션은 패킷을 임시로 저장할 버퍼를 가지고 있으며, 패킷은 전송하기 전에 이 버퍼에 저장된다.
토큰이 링을 따라 회전하는데, 스테이션이 토큰을 받고 전송할 패킷이 있으면 지정된 방식에 따라 패킷을 전송한다.
패킷을 전송한 후, 스테이션은 링을 통해 다음 스테이션에 토큰을 전달한다.
링으로 이루어진 LAN에서는 데이터가 무작위로 떠돌다보면 언젠가 충돌이 일어난다.
이 데이터 충돌을 방지하기 위해 token passing을 사용하는 것이고, token을 소지한 1명의 유저만 데이터를 전송할 수 있는 것이다.
토큰을 보유하면, Token holding mode가 된다.
토큰 보유 모드에는 3가지 모드가 있다.
- Exhaustive mode: 스테이션이 토큰을 획득한 순간부터, 그 스테이션은 버퍼가 비어 있을 때까지 계속 패킷을 전송한다. 패킷을 전송하는 와중에 새로운 패킷이 들어오면 그 패킷까지 전송을 완료한다.
- Gated mode: 스테이션이 토큰을 획득하면, 그 순간에 버퍼에 저장된 모든 패킷을 전송한다. 토큰을 잡은 순간의 버퍼 상태가 기준이되며, 전송 와중 새로운 패킷이 도착하면 그 패킷은 전송하지 않는다.
- Limited mode: 스테이션이 토큰을 획득하면, 최대한의 임계값으로 설정된 개수만큼의 패킷을 전송한다. 전송할 수 있는 패킷의 개수에 제한이 있는 것이다.
M개의 스테이션이 링에 연결되었다고 가정한다.
스테이션 m은 최대 $H_m$ 길이의 시간 동안 토큰을 보유할 수 있으며, 이를 maximum token holding time(최대 토큰 보유 시간)이라고 한다.
토큰이 스테이션 m에서 스테이션(m+1)으로 이동하는데 $W_m$이 걸린다고 가정하고, 이를 walk time(이동 시간)이라고 한다.
T는 패킷을 전송하는데 걸리는 시간이라고 하자.
그러면, 스테이션 m은 토큰을 보유하는 동안 최대 $H_m/T$개의 패킷을 전송할 수 있다.
스테이션 m이 과부하 상태일 때, 스테이션은 $H_m$ 동안 토큰을 보유하게 된다. 과부하 상태란, 스테이션에 전송할 패킷이 매우 많아 최대 보유 시간 동안 패킷을 전송해야하는 상황을 말한다.
모든 스테이션이 과부하 상태, 즉 네트워크 포화 상태라고 가정한다면, 스테이션 m의 처리량은 어떻게 될까?
먼저, 토큰이 네트워크 링을 한바퀴 돌 때까지 걸리는 Cycle time은, 각 스테이션이 토큰을 보유하는 시간과 토큰이 이동하는 시간을 모두 합한 값이 된다.
($H_1 + W_1 + H_2 + W_2 ... + H_k + H_k = S$)
포화 상태에서 각 스테이션이 자신의 최대 토큰 보유 시간 동안 전송할 수 있는 패킷의 개수는 $\frac{H_m}{T}$개였다.
따라서 스테이션 m의 처리량은 다음과 같이 계산된다.
$$\eta_{m} = \frac{\frac{H_m}{T}}{S}$$
지금까지 Multiple Access에서 Scheduling을 사용하는 다중 접속에 대해 알아봤다.
다음 글에는 Scheduling을 사용하지 않는 다중 접속에 대해 공부하겠다.
** 대학교 수업을 듣고 이해한 부분을 최대한 풀어서 작성한 글입니다.
틀린 정보가 존재할 수 있으며, 언제나 피드백은 환영입니다. **
'DKU > 데이터 통신' 카테고리의 다른 글
Error Control (2) | 2024.11.12 |
---|---|
Multiple Access 2 (0) | 2024.10.22 |
Multiplexing 2 (0) | 2024.10.01 |
Multiplexing (4) | 2024.09.30 |
Packet (1) | 2024.09.03 |