앞에서 정리를 했던 내용들은 기본적인 단어들의 개념과 정의등을 위주로 설명을 했다면 이제는 여러가지 장치들의 같이 사용을 하게 되는 네트워크에서의 개념들을 정리할 차례가 왔다고 생각을 한다.

그래서 오늘은 네트워크에서 기본적으로 알아야 하는 개념인 CSMA/CD 에 대해서 알아볼까 한다.

CSMA/CD에 기초적인 개념

네트워크에서 여러 장치가 하나의 통신 매체를 공유하면 여러 장치가 동시에 데이터를 전송하려는 상황이 발생할 수 있습니다.

이때 두 장치가 동시에 데이터를 보내면 데이터가 서로 충돌할 수 있습니다.

이더넷에서는 이러한 충돌 문제를 처리하기 위해 과거 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)라는 방식을 사용했습니다.

쉽게 말하면 CSMA/CD는 다음과 같은 방식입니다.

통신 매체 확인      ↓사용 중인지 확인      ↓비어 있으면 데이터 전송      ↓충돌 여부 확인      ↓충돌 발생 시 재전송

즉, 네트워크가 사용 중인지 확인한 후 데이터를 보내고, 충돌이 발생하면 이를 감지하여 다시 전송하는 방식입니다.

CSMA/CD의 의미

CSMA/CD라는 이름 자체에 각각의 의미가 들어 있습니다.

CS(Carrier Sense)
→ 통신 매체가 사용 중인지 확인합니다.

MA(Multiple Access)
→ 여러 장치가 하나의 통신 매체를 공유합니다.

CD(Collision Detection)
→ 데이터를 전송하면서 충돌이 발생했는지 확인합니다.

따라서 전체적으로 해석하면:

“여러 장치가 통신 매체를 공유하면서 사용 여부를 확인하고, 충돌이 발생하면 감지하는 방식”

이라고 할 수 있습니다.

CSMA/CD가 필요한 이유

초기의 Ethernet 환경에서는 여러 장치가 하나의 통신 매체를 공유하는 방식이 사용되었습니다.

예를 들어 다음과 같은 구조를 생각할 수 있습니다.

PC A ─┐PC B ─┼── 하나의 네트워크PC C ─┤PC D ─┘

여러 장치가 같은 통신 매체를 사용하기 때문에 PC A와 PC B가 동시에 데이터를 전송하면 충돌이 발생할 수 있습니다.

PC A ────────┐             ├── 충돌PC B ────────┘

CSMA/CD는 이러한 상황에서 충돌을 감지하고 데이터를 다시 보내도록 합니다.

CSMA/CD의 기본 동작 과정

CSMA/CD의 동작은 크게 다음과 같은 과정으로 이해할 수 있습니다.

① 통신 매체 확인        ↓② 사용 중인지 확인        ↓③ 비어 있으면 데이터 전송        ↓④ 충돌 여부 확인        ↓⑤ 충돌 발생?   ↓           ↓  아니오       예   ↓           ↓전송 완료    전송 중단               ↓          임의의 시간 대기               ↓            재전송

이 과정을 통해 여러 장치가 하나의 통신 매체를 공유하면서 발생할 수 있는 충돌을 처리합니다.

1. 통신 매체 확인

먼저 장치는 데이터를 보내기 전에 네트워크가 사용 중인지 확인합니다.

"지금 다른 장치가 데이터를 보내고 있나?"

다른 장치가 데이터를 전송하고 있다면 잠시 기다립니다.

다른 장치 전송 중       ↓      대기

반대로 통신 매체가 비어 있다면 데이터를 전송할 수 있습니다.

2. 데이터 전송

통신 매체가 비어 있다면 장치는 데이터를 전송합니다.

PC A ↓데이터 전송 ↓네트워크

이때 다른 장치 역시 통신 매체가 비어 있다고 판단하면 동시에 데이터를 전송할 가능성이 있습니다.

3. 충돌 감지

두 장치가 동시에 데이터를 전송하면 데이터가 충돌할 수 있습니다.

PC A ────────┐             ├── 충돌PC B ────────┘

CSMA/CD에서는 데이터를 전송하면서 충돌이 발생했는지 감지합니다.

충돌이 감지되면 정상적으로 전송할 수 없다는 것을 판단합니다.

4. 전송 중단

충돌이 발생하면 현재 진행 중인 데이터 전송을 중단합니다.

데이터 전송     ↓충돌 감지     ↓전송 중단

그 다음 바로 다시 전송하는 것이 아니라 일정 시간 동안 기다립니다.

5. 임의의 시간 대기

충돌한 장치들이 동시에 다시 데이터를 보내면 또다시 충돌할 수 있습니다.

따라서 각 장치는 임의의 시간 동안 기다린 후 다시 전송을 시도합니다.

PC A → 짧은 시간 대기PC B → 조금 더 긴 시간 대기

이렇게 서로 다른 시간을 기다리도록 하여 다시 충돌할 가능성을 줄입니다.

6. 데이터 재전송

대기 시간이 지나면 다시 네트워크가 비어 있는지 확인하고 데이터를 재전송합니다.

충돌 ↓대기 ↓통신 매체 확인 ↓재전송 ↓전송 성공

이러한 과정이 CSMA/CD의 기본적인 동작 방식입니다.

CSMA/CD와 이더넷

CSMA/CD는 과거 공유형 Ethernet 환경에서 중요한 역할을 했습니다.

예를 들어 하나의 케이블을 여러 장치가 공유하는 환경에서는 여러 장치가 동시에 데이터를 전송할 가능성이 높았습니다.

PC A ─┐PC B ─┼── 공유 네트워크PC C ─┤PC D ─┘

이러한 환경에서는 충돌을 관리하는 방식이 필요했고 CSMA/CD가 사용되었습니다.

CSMA/CD와 허브

허브(Hub)는 연결된 모든 포트로 데이터를 전달하는 장비입니다.

허브를 사용하는 환경에서는 여러 장치가 하나의 충돌 영역을 공유할 수 있습니다.

       PC A        │PC B ─ 허브 ─ PC C        │       PC D

이런 환경에서는 여러 장치가 동시에 데이터를 전송하면 충돌이 발생할 수 있습니다.

따라서 CSMA/CD가 중요한 역할을 했습니다.

CSMA/CD와 스위치

현재 Ethernet 네트워크에서는 일반적으로 스위치(Switch)가 사용됩니다.

스위치는 MAC 주소를 기반으로 필요한 포트에만 프레임을 전달할 수 있습니다.

PC A ─┐      │PC B ─┤ 스위치      │PC C ─┘

특히 Full-Duplex 방식으로 통신하는 일반적인 스위치 네트워크에서는 송신과 수신을 동시에 할 수 있기 때문에 기존의 공유형 Ethernet처럼 충돌을 처리할 필요가 없습니다.

따라서 현대의 일반적인 유선 Ethernet에서는 CSMA/CD가 사실상 사용되지 않는다고 이해하면 됩니다.

Half-Duplex와 Full-Duplex

CSMA/CD를 이해하려면 Half-Duplex와 Full-Duplex의 차이를 알아두는 것이 좋습니다.

Half-Duplex는 데이터를 양쪽 방향으로 전송할 수 있지만 동시에 전송할 수 없는 방식입니다.

A → B또는A ← B

반면 Full-Duplex는 양쪽 방향으로 동시에 데이터를 전송할 수 있습니다.

A ─────→ BA ←───── B

Full-Duplex Ethernet에서는 송신과 수신을 동시에 처리할 수 있기 때문에 공유 매체에서 발생하는 충돌 문제가 사라집니다.

CSMA/CD의 Backoff란?

충돌이 발생한 후 장치가 바로 재전송하지 않고 기다리는 과정을 Backoff라고 합니다.

특히 CSMA/CD에서는 Binary Exponential Backoff 방식이 사용되었습니다.

충돌이 반복될수록 장치가 선택할 수 있는 대기 시간이 증가합니다.

첫 번째 충돌↓짧은 시간 대기두 번째 충돌↓더 긴 시간 대기세 번째 충돌↓더 긴 시간 대기

이렇게 하면 여러 장치가 계속 동시에 재전송하는 상황을 줄일 수 있습니다.

CSMA/CD 예시

PC A와 PC B가 하나의 공유 Ethernet에 연결되어 있다고 가정해 보겠습니다.

PC A ─────┐          ├── 공유 네트워크PC B ─────┘

두 장치가 동시에 데이터를 보내려고 합니다.

① 네트워크 확인

PC A → "비어 있음"PC B → "비어 있음"

두 장치 모두 네트워크가 비어 있다고 판단합니다.

② 동시에 전송

PC A ───────→PC B ───────→

③ 충돌 발생

       ↓    충돌 발생

④ 충돌 감지

PC A → 충돌 감지PC B → 충돌 감지

⑤ 대기

PC A → 일정 시간 대기PC B → 다른 시간 대기

⑥ 재전송

PC A ───────→

한 장치가 먼저 전송하고 성공하면 다른 장치는 다시 기다렸다가 전송할 수 있습니다.

CSMA/CD와 CSMA/CA의 차이

CSMA/CD와 비슷한 이름으로 CSMA/CA가 있습니다.

둘 다 여러 장치가 통신 매체를 공유하는 환경에서 사용하는 방식이지만 접근 방법이 다릅니다.

구분CSMA/CDCSMA/CA
의미충돌 감지충돌 회피
대표적인 환경과거 공유형 EthernetWi-Fi
충돌 처리충돌 후 감지충돌 가능성을 줄임
현재 사용일반적인 스위치 Ethernet에서는 거의 사용하지 않음Wi-Fi에서 사용

CSMA/CD는 충돌이 발생하면 감지하고 처리하는 방식이고, CSMA/CA는 충돌이 발생하지 않도록 미리 회피하는 방식이라고 이해하면 쉽습니다.

CSMA/CD의 한계

CSMA/CD는 공유 네트워크에서 충돌을 처리하는 데 유용했지만 몇 가지 한계가 있었습니다.

가장 큰 문제는 네트워크에 장치가 많아질수록 충돌 가능성이 증가한다는 것입니다.

장치 증가   ↓동시 전송 가능성 증가   ↓충돌 증가   ↓재전송 증가   ↓네트워크 효율 감소

따라서 네트워크 규모가 커지면서 공유형 Ethernet보다는 스위치를 사용하는 방식이 널리 사용되게 되었습니다.

CSMA/CD를 쉽게 이해하는 방법

CSMA/CD는 여러 사람이 한 명씩 말해야 하는 회의실에 비유하면 이해하기 쉽습니다.

회의실에 여러 사람이 있는데 한 번에 한 사람만 말할 수 있다고 생각해 보겠습니다.

사람 A사람 B사람 C사람 D

누군가 말하고 있으면 기다립니다.

A가 말하는 중↓B, C, D 대기

그런데 A와 B가 동시에 말을 시작하면 서로의 말을 알아듣기 어렵습니다.

A → 말함B → 말함↓충돌

그러면 둘 다 말을 멈추고 서로 다른 시간 동안 기다린 뒤 다시 말합니다.

이것이 CSMA/CD의 기본적인 개념과 비슷합니다.

결론

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)는 여러 장치가 하나의 통신 매체를 공유하는 Ethernet 환경에서 데이터 충돌을 처리하기 위한 방식입니다.

장치는 데이터를 전송하기 전에 통신 매체가 사용 중인지 확인하고, 비어 있으면 데이터를 전송합니다. 전송 과정에서 충돌이 발생하면 이를 감지하고 전송을 중단한 뒤 일정 시간 기다렸다가 다시 전송합니다.

통신 매체 확인      ↓데이터 전송      ↓충돌 감지      ↓대기      ↓재전송

다만 현재 대부분의 유선 Ethernet은 스위치 기반의 Full-Duplex 환경으로 구성되기 때문에 충돌 자체가 발생하지 않으며, 따라서 CSMA/CD는 일반적인 현대 Ethernet에서는 사실상 사용되지 않습니다.

결국 CSMA/CD는 공유형 Ethernet에서 여러 장치가 동시에 데이터를 전송하면서 발생하는 충돌을 감지하고 재전송하는 기술이라고 이해하면 됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

글쓴이

rjsan46@koreabites.com

관련 게시물

웹 브라우저에 주소를 입력하면 일어나는 일

웹 브라우저 주소창에 웹사이트 주소를 입력하고 엔터를 누르면 바로 화면이 나타나는 것처럼 보인다. 하지만 실제로는 그 짧은 순간에 꽤 많은 일이 일어난다....

모두 읽어보기

소켓이란 무엇일까? 프로그램과 네트워크를 연결하는 통로

네트워크를 공부하다 보면 IP 주소와 포트 번호라는 말을 계속 만나게 된다. IP 주소는 어떤 컴퓨터와 통신할 것인지 구분하고, 포트 번호는 그 컴퓨터에서...

모두 읽어보기

쿠키와 세션은 어떻게 다를까?

웹사이트를 이용하다 보면 한 번 로그인한 뒤 다른 페이지로 이동해도 로그인 상태가 계속 유지되는 것을 볼 수 있다. 예를 들어 쇼핑몰에 로그인한...

모두 읽어보기

SSL과 TLS는 어떤 역할을 할까?

앞에서 HTTPS가 HTTP보다 안전한 이유를 살펴봤다. HTTPS는 단순히 HTTP 자체가 더 안전하게 만들어진 프로토콜이 아니라, HTTP 통신에 TLS라는 보안 계층을 적용한 것이라고...

모두 읽어보기

포트 번호로 네트워크 서비스를 구분하는 방법

컴퓨터가 네트워크를 통해 다른 컴퓨터와 통신할 때 가장 먼저 떠오르는 것이 IP 주소다. 예를 들어 어떤 서버의 IP 주소가 192.168.0.10이라고 해보자. 그런데...

모두 읽어보기

HTTPS는 HTTP보다 무엇이 안전할까?

인터넷에서 웹사이트에 접속하다 보면 주소창에 http://가 붙어 있는 경우도 있고 https://가 붙어 있는 경우도 있다. 요즘은 대부분의 웹사이트가 HTTPS를 사용하기 때문에 사실상...

모두 읽어보기