CSMA(Carrier Sense Multiple Access)

agnusdei·2025년 4월 20일
0

Network

목록 보기
416/419

CSMA(Carrier Sense Multiple Access)에 대한 설명

1. 개요

CSMA(Carrier Sense Multiple Access, 반송파 감지 다중 접속)는 여러 장치가 하나의 통신 매체(채널)를 공유하는 네트워크 환경에서 사용되는 매체 접근 제어(MAC, Medium Access Control) 프로토콜입니다. CSMA는 네트워크 장치가 데이터를 전송하기 전에 먼저 통신 채널이 사용 중인지 여부를 감지(Carrier Sensing)한 후, 채널이 idle 상태일 때만 전송을 시도하는 방식으로 동작합니다. 이 기술은 주로 버스형 또는 성형 토폴로지의 공유 매체 네트워크에서 충돌 가능성을 줄이고 네트워크 효율성을 높이기 위해 사용됩니다.

2. CSMA의 기본 동작 원리

2.1 캐리어 센싱(Carrier Sensing)

CSMA의 핵심 원리는 '듣고 말하기(Listen Before Talk)'입니다. 네트워크 노드는 데이터 전송 전에 먼저 채널을 모니터링하여 다른 장치가 현재 전송 중인지 확인합니다. 이 과정을 캐리어 센싱이라고 하며, 두 가지 방식으로 수행됩니다:

  1. 물리적 캐리어 센싱: 전송 매체의 전기적 신호나 에너지 수준을 직접 감지
  2. 가상 캐리어 센싱: 매체 예약 정보가 포함된 제어 프레임을 교환하여 채널 상태를 파악

2.2 다중 접속(Multiple Access)

다중 접속은 여러 장치가 동일한 통신 매체를 공유하면서 데이터를 송수신할 수 있게 해주는 기술입니다. 각 노드는 평등한 접근 권한을 가지며, 정해진 규칙에 따라 매체에 접근합니다.

2.3 기본 동작 절차

  1. 전송할 데이터가 있는 노드는 먼저 채널 상태를 확인합니다.
  2. 채널이 사용 중이면(busy) 전송을 연기하고 계속 모니터링합니다.
  3. 채널이 비어있으면(idle) 데이터 전송을 시작합니다.
  4. 만약 두 개 이상의 노드가 동시에 전송을 시작하면 충돌(collision)이 발생할 수 있으며, 이는 CSMA의 변형에 따라 다르게 처리됩니다.

3. CSMA의 주요 변형

3.1 CSMA/CD(Collision Detection, 충돌 감지)

이더넷(IEEE 802.3) 네트워크에서 주로 사용되는 CSMA/CD는 충돌 발생 시 이를 감지하고 대응하는 메커니즘을 포함합니다.

3.1.1 동작 방식

  1. 노드는 전송 중에도 계속 채널을 모니터링합니다.
  2. 충돌이 감지되면 즉시 전송을 중단하고 jam 신호를 전송합니다.
  3. 충돌 후 각 노드는 백오프 알고리즘(Binary Exponential Backoff)에 따라 임의의 시간 동안 대기한 후 재전송을 시도합니다.
  4. 대기 시간은 충돌 횟수에 따라 지수적으로 증가합니다.

3.1.2 특징

  • 전이중 통신(Full-Duplex)에서는 충돌이 발생하지 않아 CSMA/CD가 불필요합니다.
  • 케이블 길이 제한이 있습니다(왕복 지연 시간이 최소 프레임 전송 시간보다 짧아야 함).
  • 유선 네트워크에 적합하며, 충돌 감지가 상대적으로 용이합니다.

3.2 CSMA/CA(Collision Avoidance, 충돌 회피)

무선 LAN(IEEE 802.11)에서 주로 사용되는 CSMA/CA는 충돌이 발생하기 전에 이를 미리 방지하려는 메커니즘을 포함합니다.

3.2.1 동작 방식

  1. 노드는 채널이 idle 상태라도 DIFS(Distributed Inter-Frame Space)라는 일정 시간 동안 대기합니다.
  2. 채널이 계속 idle 상태이면, 추가적인 랜덤 백오프 시간 동안 대기합니다.
  3. 백오프 타이머가 0이 되면 데이터를 전송합니다.
  4. (선택적) RTS/CTS(Request to Send/Clear to Send) 메커니즘을 사용하여 hidden node 문제를 완화합니다.

3.2.2 특징

  • 무선 환경에서는 충돌 감지가 어려워 충돌 회피에 중점을 둡니다.
  • ACK 프레임을 통한 신뢰성 있는 전송을 지원합니다.
  • 충돌 가능성을 줄이기 위한 다양한 IFS(Inter-Frame Space) 시간을 정의합니다.
  • Hidden node와 exposed node 문제가 존재합니다.

3.3 CSMA/CR(Collision Resolution, 충돌 해결)

CSMA/CR은 충돌이 발생했을 때 우선순위 기반으로 이를 해결하는 방식입니다. CAN(Controller Area Network) 프로토콜에서 사용됩니다.

3.3.1 동작 방식

  1. 충돌 발생 시 비트별 우선순위 중재(bit-wise arbitration)를 수행합니다.
  2. 낮은 ID 값(높은 우선순위)을 가진 노드가 버스 접근 권한을 획득합니다.
  3. 높은 ID 값을 가진 노드는 자동으로 전송을 중단하고 재시도합니다.

3.3.2 특징

  • 비파괴적 충돌 해결 방식으로, 높은 우선순위 메시지는 항상 성공적으로 전송됩니다.
  • 실시간 시스템에서 중요한 메시지의 전송 지연을 최소화할 수 있습니다.
  • 주로 차량 내부 네트워크나 산업 제어 시스템에서 사용됩니다.

4. CSMA의 성능 요소

4.1 전파 지연(Propagation Delay)

신호가 송신자로부터 수신자에게 도달하는 데 걸리는 시간으로, 물리적 거리와 매체 특성에 영향을 받습니다. 전파 지연이 길수록 충돌 확률이 높아집니다.

4.2 슬롯 시간(Slot Time)

충돌 감지 시스템에서 중요한 시간 단위로, 네트워크의 가장 먼 두 지점 사이의 왕복 지연 시간보다 길어야 합니다. 이더넷에서는 일반적으로 512비트 전송 시간으로 정의됩니다.

4.3 지속성 전략(Persistence Strategy)

채널이 사용 중일 때 노드가 취하는 대기 전략이며, 다음과 같은 방식이 있습니다:

  1. 1-지속성(1-persistent): 채널이 idle 상태가 되면 즉시 전송 시도 (적극적 방식)
  2. 비지속성(non-persistent): 채널이 busy이면 랜덤 시간 후 재검사 (소극적 방식)
  3. p-지속성(p-persistent): 채널이 idle이면 확률 p로 전송, (1-p)로 다음 슬롯까지 대기

4.4 네트워크 부하와 처리량

CSMA의 성능은 네트워크 부하에 크게 영향을 받습니다:

  • 낮은 부하: 높은 처리량과 낮은 지연 시간
  • 높은 부하: 충돌 증가로 인한 처리량 감소 및 지연 시간 증가

5. CSMA의 응용 분야

5.1 유선 LAN

  • 이더넷(IEEE 802.3): 10Mbps에서 초기에는 CSMA/CD를 사용했으나, 현재 고속 이더넷은 주로 스위치 기반 전이중 통신으로 CSMA/CD를 사용하지 않음
  • 전력선 통신(Power Line Communication): 가정 내 전력선을 통한 네트워크에 CSMA 기반 프로토콜 사용

5.2 무선 네트워크

  • Wi-Fi(IEEE 802.11): CSMA/CA를 기본 MAC 프로토콜로 사용
  • Zigbee(IEEE 802.15.4): 저전력 무선 센서 네트워크에서 CSMA/CA 변형 사용
  • 블루투스(Bluetooth): 일부 동작 모드에서 CSMA 기반 채널 접근 방식 적용

5.3 산업용 네트워크

  • CAN(Controller Area Network): 자동차 및 산업 자동화에서 CSMA/CR 사용
  • LonWorks: 빌딩 자동화 시스템에서 CSMA 기반 프로토콜 사용

6. CSMA의 한계 및 대안

6.1 주요 한계

  • hidden node 문제: 무선 네트워크에서 모든 노드가 서로를 감지할 수 없어 발생하는 문제
  • exposed node 문제: 전송이 가능함에도 다른 노드의 전송으로 인해 대기하게 되는 비효율
  • 확장성 제한: 노드 수가 증가할수록 충돌 확률이 높아지고 성능이 저하됨
  • 비결정적 접근: 실시간 응용에 필요한 보장된 지연 시간을 제공하기 어려움

6.2 대체 및 보완 기술

  • TDMA(Time Division Multiple Access): 시간을 슬롯으로 나누어 각 노드에 할당
  • FDMA(Frequency Division Multiple Access): 주파수 대역을 분할하여 할당
  • 토큰 기반 프로토콜: 토큰을 소유한 노드만 전송할 수 있는 방식
  • 폴링(Polling): 중앙 제어 장치가 각 노드에게 전송 기회를 순차적으로 부여

7. 최신 동향 및 미래 전망

7.1 개선된 CSMA 변형

  • CSMA/ECA(Enhanced Collision Avoidance): 결정적인 백오프를 통해 충돌 해결 개선
  • CSMA/ARC(Advanced Rate Control): 채널 상태에 따른 적응적 전송률 제어

7.2 AI 기반 채널 접근

머신러닝과 인공지능 기술을 활용하여 채널 상태를 예측하고 최적의 전송 시점을 결정하는 지능형 CSMA 연구가 진행 중입니다.

7.3 IoT 환경에서의 CSMA

저전력, 대규모 연결 환경에 맞는 경량화된 CSMA 프로토콜이 IoT(Internet of Things) 네트워크용으로 개발되고 있습니다.

8. 결론

CSMA는 공유 매체 네트워크에서 효율적인 채널 접근을 제공하는 기본적이면서도 강력한 프로토콜입니다. 이더넷과 Wi-Fi와 같은 광범위한 네트워크 기술의 기반이 되어 현대 통신 시스템의 발전에 크게 기여했습니다. 비록 몇 가지 한계가 있지만, 다양한 변형과 개선을 통해 계속 발전하고 있으며, 새로운 네트워크 환경과 요구사항에 맞추어 진화하고 있습니다. 특히, IoT와 5G 네트워크의 확산으로 더 많은 기기가 연결됨에 따라 효율적인 매체 접근 제어의 중요성은 더욱 커질 것으로 예상됩니다.

어린이 버전 요약

CSMA는 여러 사람이 하나의 마이크를 사용해서 대화하는 방법과 비슷해요! 컴퓨터나 핸드폰 같은 기기들이 같은 네트워크 선이나 무선 공간을 통해 이야기할 때 사용하는 특별한 규칙이랍니다.

CSMA를 사용하는 기기들은 먼저 "지금 다른 누군가 말하고 있나?" 하고 확인한 후에 아무도 말하고 있지 않을 때만 자기 차례에 이야기를 시작해요. 마치 친구들과 대화할 때 다른 사람이 말하고 있을 땐 기다렸다가, 조용해지면 말을 시작하는 것과 같아요!

하지만 간혹 두 사람이 동시에 말을 시작해서 '충돌'이 일어날 수 있어요. 이럴 때는 방식에 따라 다르게 해결해요:

  • 유선 네트워크(이더넷)에서는 충돌을 감지하면 둘 다 잠시 멈추고 잠시 후 다시 시도해요(CSMA/CD).
  • 무선 네트워크(와이파이)에서는 충돌이 일어나지 않도록 랜덤한 시간만큼 더 기다렸다가 말해요(CSMA/CA).
  • 자동차 네트워크에서는 더 중요한 메시지가 먼저 전송되도록 해요(CSMA/CR).

이런 규칙 덕분에 수많은 컴퓨터, 스마트폰, 태블릿이 인터넷이라는 하나의 큰 대화방에서 서로 방해하지 않고 원활하게 소통할 수 있답니다!

0개의 댓글