📚 네트워크 · 패킷 분석 › 04. 네트워크 장비 실습 — 169편
이전 글: 168. Broadcast Domain · 다음 글: 170. STP 기초
Collision Domain(충돌 도메인) 은 두 장치가 동시에 전송하면 신호가 충돌하는 범위입니다. 하나의 전송 매체를 여러 장치가 나눠 쓰는(공유하는) 구간, 그리고 한 번에 한쪽만 보낼 수 있는 Half Duplex 링크에서만 생깁니다.
168. Broadcast Domain이 "누가 내 브로드캐스트를 받는가"라면, Collision Domain은 "누구와 전송 시점이 겹치면 안 되는가"입니다.
| 장비·링크 | 충돌 도메인 | 설명 |
|---|---|---|
| 허브(리피터) | 연결된 모든 포트가 하나 | 신호를 모든 포트로 그대로 복제 |
| 스위치 포트 (Half Duplex) | 포트마다 하나 | 포트 단위로 분리 |
| 스위치 포트 (Full Duplex) | 사실상 없음 | 송신·수신 경로가 분리되어 충돌 불가 |
| 라우터 인터페이스 | 인터페이스마다 분리 | 브로드캐스트 도메인도 함께 분리 |
| 무선(Wi-Fi) | 같은 채널을 쓰는 AP·단말 전체 | 공유 매체, 충돌 회피 방식 사용 |
Half Duplex Ethernet은 CSMA/CD(Carrier Sense Multiple Access with Collision Detection) 로 매체를 나눠 씁니다.
보낼 프레임 발생
↓
[Carrier Sense] 매체가 사용 중인가? ── 예 → 대기 후 다시 확인
↓ 아니오
전송 시작
↓
[Collision Detection] 전송 중 충돌 감지?
├─ 아니오 → 전송 완료
└─ 예 → Jam 신호 송신 → 무작위 시간 대기(Binary Exponential Backoff)
→ 재시도 (정해진 횟수를 넘으면 프레임 포기)
Full Duplex에서는 송신과 수신이 서로 다른 선(또는 채널)으로 동시에 이뤄지고, 스위치 포트와 단말 사이에 다른 장치가 없으므로 충돌이 일어날 수 없습니다. 그래서 Full Duplex에서는 CSMA/CD를 쓰지 않습니다. 현재의 스위치 기반 유선 네트워크는 대부분 Full Duplex이므로, 충돌 도메인은 이론·장애 진단 개념으로 더 자주 등장합니다.
무선은 전송 중 충돌을 스스로 감지하기 어려워 CSMA/CA(Collision Avoidance) 로 충돌을 미리 피합니다. 같은 채널을 쓰는 장치가 많을수록 대기가 늘어 속도가 떨어지는 이유입니다.
오늘날 충돌이 실제로 문제가 되는 대표 상황은 Duplex 불일치(Duplex Mismatch) 입니다. 한쪽을 속도·Duplex 고정으로, 다른 쪽을 자동 협상(Auto)으로 두면, 자동 쪽은 상대의 Duplex를 알아내지 못해 Half Duplex로 동작할 수 있습니다(10/100Mbps 링크에서 흔함).
| 쪽 | 동작 | 인터페이스 카운터에 나타나는 것 |
|---|---|---|
| Half Duplex 쪽 | 받는 중 보내면 충돌로 판단 | Collisions, Late Collisions 증가 |
| Full Duplex 쪽 | 충돌 개념 없이 전송 | CRC(FCS) 오류, Runt(너무 짧은 프레임) 증가 |
| 공통 증상 | 링크는 Up | 트래픽이 많을 때 급격한 속도 저하, 재전송 증가 |
카운터별 일반적인 해석입니다.
| 카운터 | 정상 환경 | 증가 시 의심 |
|---|---|---|
| Collisions | Full Duplex면 0 | Half Duplex 동작, 허브 연결 |
| Late Collisions | 0 | Duplex 불일치, 케이블 길이 초과 |
| CRC / Input Errors | 0에 가까움 | Duplex 불일치, 케이블·커넥터 불량, 전기적 간섭 |
실습 예시 — 본인 소유 Linux VM(또는 실제 NIC 장비)에서 Duplex와 오류 카운터를 확인합니다(Rocky/Ubuntu 공통, ethtool 패키지 필요). 가상 NIC는 값이 고정 표시되거나 Unknown으로 나올 수 있으며, 출력은 예시(값은 환경마다 다름)입니다.
# 속도·Duplex·자동 협상 상태
sudo ethtool ens33 | grep -E 'Speed|Duplex|Auto-negotiation'
# 송수신 오류와 충돌(collsns) 카운터
ip -s -s link show ens33
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
TX: bytes packets errors dropped carrier collsns
8123456 60211 0 0 0 0
실습 예시 — GNS3 등의 Cisco IOS 계열 장비에서는 인터페이스 상세 출력에서 같은 정보를 봅니다(일부 줄만 표시한 형식 예시).
Switch# show interfaces GigabitEthernet0/1
Full-duplex, 1000Mb/s, media type is 10/100/1000BaseTX
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 output errors, 0 collisions, 0 interface resets
0 babbles, 0 late collision, 0 deferred
📷 [실습 화면 삽입 위치]
ethtool출력의 Speed·Duplex·Auto-negotiation 줄과ip -s -s link출력의 errors·collsns 열을 표시한 화면
| 흔적 | 확인할 수 있는 것 |
|---|---|
| 스위치·서버 인터페이스 카운터 | Collisions, Late Collisions, CRC 증가 시점 |
| CDP·LLDP 관련 로그 | Duplex 불일치 감지(Cisco 계열 %CDP-4-DUPLEX_MISMATCH) |
| 패킷 캡처 | 재전송·중복 ACK 급증(131. TCP Retransmission) |
| 모니터링 시스템 | 링크 사용률 대비 처리량 저하 |
관제자가 확인할 질문
오탐 주의: 재전송이 늘었다고 곧바로 공격이나 캡처 손실로 판단하지 않습니다. 해당 구간 인터페이스의 오류 카운터를 먼저 확인하면, 물리 계층 문제인지 빠르게 구분할 수 있습니다.