1. Multiple Access Control
1.1. Multiple Access Control이 필요한 이유
- 여러 장치가 네트워크에서 하나의 공유 매체(예: 유선 버스나 무선 채널)를 사용하여 데이터를 주고받는다.
- 하나의 공유 매체를 사용하기 때문에 동시에 전송을 시도하면 충돌(Collision)이 발생할 수 있다. Collision이 발생하면 데이터가 손상되거나 손실된다.
- 이 현상은 데이터 링크 계층(Layer 2, Data Link Layer)에서 발생한다.
- 충돌은 특히 Broadcast 환경에서 더 자주 발생한다.
- 예를 들어, 유선 네트워크에서는 여러 장치가 하나의 케이블을 공유하고, 무선 네트워크에서는 공유 주파수를 사용한다.
- 이런 환경에서는 다중 장치가 데이터를 전송하려 할 때 하나의 매체만을 사용하기 때문에 충돌이 불가피하게 발생할 수 있다.
Multiple Access Control (MAC)은 이러한 충돌을 최소화하고, 여러 장치가 공유된 매체를 안전하게 사용할 수 있도록 제어하는 기능을 수행한다.
이는 네트워크가 효율적으로 동작하도록 도와주며, 데이터 손상과 충돌을 방지하여 네트워크 성능을 향상시킨다.
* 하나의 공유 매체만 사용하는 이유 *
- 전용 채널을 가진다는 것은 각 장치가 자신만의 독립적인 통신 경로를 갖는다는 것이다.
- 장치에 대해 별도의 채널을 제공하려면 추가적인 인프라 비용이 발생한다. 유선일 경우, 많은 케이블을 설치해야 하고, 무선일 경우에는 주파수 자원이 한정되어 있기 때문에 전용 주파수를 할당하는 것이 비효율적일 수 있다.
- 그렇기에 다중 장치는 하나의 매체만을 사용하여 비용과 자원을 효율적으로 사용한다.
1.2. MAC의 진행 방식
- 충돌 후 후속 조치
- 만약 충돌이 발생하면 장치는 즉시 전송을 중단한다. 그 후, 랜덤한 대기 시간을 가진 후 다시 전송을 시도한다. 이를 통해 여러 장치가 동시에 다시 충돌하지 않도록 한다.
- 신호 전송 타이밍
- 장치들이 데이터를 전송할 때 충돌을 방지하기 위해 먼저 공유 매체가 비어 있는지 확인한다. 매체가 비어 있을 때만 신호를 전송한다.
- 이를 통해 충돌을 최소화하고, 효율적으로 데이터를 전송할 수 있다. 하지만 충돌을 완전히 제거할 수는 없으며, 이 방식은 충돌을 감지하는 데 최적화되어 있다.
- 이 방식은 CSMA(Carrier Sense Multiple Access)에 해당하며, ALOHA 프로토콜은 매체의 상태를 확인하지 않고 무작위로 신호를 전송하기 때문에 해당되지 않는다.
2. Multiple Access Protocols
- MAC Protocol의 최우선 지향점은 단말간의 충돌을 어떻게 줄일 것인가에 있다.
- MA protocol 중 하나인 Random Access protocols의 변천과정을 살펴 보자.
2.1. Pure ALOHA
Pure ALOHA는 간단한 무선 통신 프로토콜로 장치가 데이터를 전송하기를 원할 때 데이터가 준비되면 즉시 전송한다.
- Station들은 서로 직접 통신하지 않고 Base Station(기지국)을 통해서만 통신한다.
- 매체가 사용 중인지 확인하지 않고 데이터를 전송하므로 충돌 가능성이 높다
- 충돌이 발생하면 일정 시간 후 데이터를 재전송한다.
- 효율이 낮은 편이다.
* station(STN), base station, 공유 매체, 여러 장치 *
- Station (STN): 네트워크에 연결된 장치를 의미한다. 컴퓨터, 스마트폰, 태블릿 등 다양한 형태일 수 있다.
- Base Station: 특정 지역 내에서 무선 통신을 관리하는 중계 장치이다. 공유 매체인 무선 주파수를 사용하여 여러 station과 연결되어 데이터를 수신하고 전송한다.
- 공유 매체: 여러 장치가 동일한 통신 경로를 사용하여 데이터를 주고받는 채널이다. 유선 환경에서는 케이블과 같은 물리적 매체, 무선 환경에서는 무선 주파수가 공유 매체 역할을 한다.
- 여러 장치: 네트워크에 연결된 다양한 station들을 여러 장치라고 한다.
2.1.1. Pure ALOHA의 space-time diagram
- 각각의 Station은 데이터를 보낼 준비가 된다면 즉시 전송하기 때문에 서로 매체를 사용하는 타이밍이 겹처 collision이 발생할 수 있다. (이 때 1bit라도 겹쳐 같이 공유 매체를 사용하는 경우라도 collision이라고 한다.)
2.1.2. Pure ALOHA의 Procedure
- 데이터 전송: 장치가 데이터를 보낼 준비가 되면 즉시 공유 매체에 데이터를 전송한다.
- ACK 수신: 전송한 데이터에 대해 ACK (Acknowledgment)를 받으면 데이터가 성공적으로 전송된 것이고, ACK를 받지 못한 경우 전송이 실패한 것으로 간주한다.
- 재전송 카운트(K): ACK를 받지 못했을 경우, 재전송 횟수인 K를 카운팅한다. K의 값이 최대에 도달하지 않았으면 데이터를 다시 전송하고 최대에 도달했으면 데이터 전송을 중단한다(즉, aborted 된다는 것이다).
- BEB (Binary Exponential Backoff): 재전송 시 K의 값에 따라 Binary Exponential Backoff (BEB) 알고리즘을 적용한다 worst case에 대해서 충돌을 최소화 하기 위함이다. 이 과정에서 T_B(Back-off time)를 곱하여 대기 시간을 설정한다. BEB는 K의 값이 증가할수록 대기 시간이 기하급수적으로 늘어나는 방식이다.
- 반복: 이 과정을 반복하여 ACK를 받을 때까지 전송을 시도한다. K가 최대에 도달하면 전송을 중단한다.
* K의 의미 *
- K는 재전송 횟수를 나타낸다. K의 값이 증가하면 공유 매체에 전송을 시도하는 장치의 수가 많음을 의미한다. 이는 충돌 발생 가능성이 높아짐을 나타낸다.
- K가 증가함에 따라 BEB 알고리즘에 따라 대기 시간이 길어지므로 각 장치는 충돌을 피하기 위해 더 오랜 시간 동안 대기하게 된다.
- 따라서 K의 값은 전송 시도 수와 충돌의 정도를 반영하는 중요한 지표이다.
2.1.3. Vulnerable time for pure ALOHA protocol
Vulnerable time이란 A의 전송을 실패로 만드는 다른 장치의 전송 frame의 발생 시점을 의미한다.
실제로는 frame의 길이는 변하는 변수이나 여기서는 frame의 길이는 고정한다고 가정하자
이 때 pure ALOHA의 vulnerable time은 프레임의 2배이다.
2.2. Slotted ALOHA
Slotted ALOHA는 시간 슬롯으로 나누어져 있어 장치가 데이터를 전송할 수 있는 특정한 시간 단위를 설정합니다. 이 방식은 각 장치가 슬롯의 시작에 맞춰 전송을 시도하게 하여 충돌의 가능성을 줄입니다.
2.2.1. Slotted ALOHA의 space-time diagram
- Slotted ALOHA의 경우, 각 장치는 시간 슬롯의 시작 시점에서만 전송을 시도하므로, 서로 다른 장치가 같은 슬롯에 전송할 가능성이 줄어듭니다. 이로 인해 충돌이 적어지고, 전송의 성공 확률이 높아집니다.
2.2.2. Vulnerable time for slotted ALOHA protocol
이는 각 장치가 슬롯의 시작에서만 전송하기 때문에 충돌이 발생할 수 있는 시간 간격이 줄어들기 때문에 반으로 줄었다.
2.3. CSMA (Carrier Sense Multiple Access)
전송 전 감지:
CSMA는 데이터를 전송하기 전에 공유 매체가 사용 중인지 확인합니다. 전송 매체에서 신호(에너지)를 감지하여, 매체가 비어 있는지(idle), 프레임 전송 중인지, 충돌이 발생했는지 판단합니다. 이는 Pure ALOHA와 Slotted ALOHA에서 매체의 상태를 전혀 확인하지 않는 방식과 대비됩니다.
Carrier Sense: "말하기 전에 듣는 것"처럼, CSMA는 데이터를 전송하기 전에 다른 장치가 매체를 사용 중인지 "듣기" (sense) 과정을 거칩니다. 이를 통해 충돌 가능성을 줄입니다.
충돌 방지 노력:
CSMA는 충돌을 완전히 제거할 수는 없지만, 충돌 가능성을 줄이는 데 목적이 있습니다. 특히, 전송된 신호가 다른 station에 도달하기 전에 매체가 비어 있다고 감지되어 충돌이 발생할 수 있습니다.
CSMA는 collison을 줄이는 방법이긴 하지만 충돌이 아예 없지는 않다.
충돌이 발생하더라도 그걸 제거할 수는 없다.
Persistence Methods (대기 방법)
- 1-persistent CSMA: 매체가 idle 상태이면 즉시 전송을 시도합니다. 그러나 이 방식은 충돌 가능성이 높습니다.
- Non-persistent CSMA: 매체가 busy 상태이면 즉시 전송하지 않고, 랜덤한 시간 후 다시 매체 상태를 확인하고 전송을 시도합니다. 충돌 가능성을 줄이지만, 매체 사용 효율이 낮아질 수 있습니다.
CSMA의 space-time diagram
하나의 station은 carrier sensor를 통해 내가 전송할 수 있는 상태면 전송한다.
broadcast로 퍼져나간다.
이때 다른 station에 도달하지 않았을 때 그 station에서는 지금 carrier sensor로 탐지했을 때 아무도 안 쓰고 있으니까 내가 써버려야지 한다. 그 때 충돌이 생긴다.
2.3.1. CSMA의 Space-Time Diagram
CSMA에서는 각 station이 매체의 상태를 carrier sensor로 감지합니다. 만약 매체가 idle 상태라고 판단되면 데이터를 전송합니다. 그러나 전파 지연으로 인해 다른 station에서는 여전히 매체가 비어 있다고 판단하여 동시에 전송을 시도할 수 있고, 이로 인해 충돌이 발생할 수 있습니다.
이와 같이, CSMA는 충돌 가능성을 줄이기 위한 방식이지만, 전파 지연으로 인해 여전히 충돌이 발생할 수 있다는 점에서 한계가 존재합니다.
추가적인 설명이나 질문이 있으시면 알려 주세요!
'학부 수업 내용 정리 > 컴퓨터네트워크' 카테고리의 다른 글
#5 Controlled Access (0) | 2024.12.17 |
---|---|
#6 Wired and Wireless LANs (0) | 2024.12.06 |
#3 Data Link Control(Logical Link Control, LLC) (0) | 2024.10.10 |
#2 Error Detection and Correction (0) | 2024.10.08 |
#1 데이터는 어떻게 전송할 수 있을까요?: OSI 모델과 이번에는 L3 (0) | 2024.09.10 |