hyei-devlog

[네트워크] 데이터 링크 계층 완전 정리! MAC 주소는 왜 중요할까? - 스위치, VLAN, MTU, 이더넷 본문

Computer Science/Network

[네트워크] 데이터 링크 계층 완전 정리! MAC 주소는 왜 중요할까? - 스위치, VLAN, MTU, 이더넷

winter126 2025. 6. 23. 18:48

데이터링크 계층 개요

  • 프레이밍: 데이터를 프레임 단위로 나누고 경계를 구분
  • 오류 검출: 전송 중 발생한 오류 탐지 (체크섬, CRC 등 사용)
  • 흐름 제어: 송수신 속도 차이 조절로 데이터 유실 방지
  • 매체 접근 제어(MAC): 공유 매체에서 충돌 없이 통신하도록 제어
  • 주소 지정: MAC 주소를 사용해 장비 식별


CSMA/CD - 유선 환경에서의 충돌 감지 방식

CSMA/CD유선 LAN, 특히 초기 이더넷에서 많이 사용되었던 충돌 제어 방식이다.

말 그대로 "신호가 흐르고 있는지 감지(Carrier Sense)하고, 여러 장치가 함께 접근(Multiple Access)하며, 충돌이 일어나면 감지 후(Collision Detection) 다시 시도" 하는 구조.

 

1. CS(Carrier Sense): 데이터를 보내기 전, 케이블에 신호가 흐르고 있는지 확인

2. MA(Multiple Access): 하나의 네트워크 매체(케이블)를 여러 장치가 공유

3. CD (Collision Detection): 전송 중 충돌이 발생하면 즉시 감지하고, 랜덤한 시간 뒤 재전송 시도

→ 충돌이 나도 괜찮아, 다시 보낼게~

 

하지만 충돌이 자주 발생하면 전체 네트워크 성능이 저하될 수 있어서, 요즘은 잘 사용하지 않는다.

스위치 기반 이더넷으로 이동했다.

 

CSMA/CA - 무선 환경에서의 충동 회피 방식

CSMA/CA는 Wi-Fi처럼 무선 네트워크 환경에서 사용되는 충돌 회피 방식이다.

무선은 유선처럼 충돌을 감지하기 어렵기 때문에, 애초에 충돌이 나지 않게 사전 조치를 취하는 게 핵심이다.

 

1. CS(Carrier Sense): 데이터를 보내기 전에 무선 채널이 비어 있는지 확인

2. CA(Collision Avoidance): 바로 보내지 않고, 랜덤한 대기 시한(backoff)을 두거나, RTS/CTS(Request to Send/Clear to Send) 방식으로 상대방과 통신 타이밍을 조율

→ 부딪히지 않도록 먼저 양해를 구하고 조심해서 보낸다.

 

📌 두 방식 비교

항목 CSMA/CD CSMA/CA
사용 환경 유선 LAN (이더넷) 무선 LAN (Wi-Fi)
충돌 처리 발생 후 감지 및 재전송 발생 전 회피
특징 구조 단순, 충돌 발생 가능성 큼 충돌 예방, 효율적
대표 기술 Ethernet Wi-Fi (802.11)

이처럼 매체의 특성에 따라 충돌 제어 방식도 달라진다!


데이터링크 계층 주요 장비

브리지(Bridge)

브리지는 LAN과 LAN을 연결해주는 장치이다.

쉽게 말해, 두 개의 서로 다른 네트워크를 중계해주는 역할을 한다.

  • 리피터처럼 신호를 단순 증폭하는 것이 아니라, MAC 주소를 기준으로 수신된 프레임을 목적지에 따라 전달 여부를 판단한다.
  • 필터링 기능이 포함된 장비이다. 
  • 브리지는 LAN을 확장하거나, 충돌 도메인을 분리할 때 사용된다.

📌 리피터 vs 브리지

구분 리피터 브리지
계층 1계층 (물리 계층) 2계층 (데이터링크 계층)
역할 신호 증폭 프레임 필터링 및 전달
MAC 주소 인식 ❌ 인식 불가 ✅ 인식 가능
충돌 도메인 분리

 

스위치(Switch)

스위치는 허브를 대체하는 대표적인 2계층 장비이다.

허브와 다르게, 스위치는 데이터 충돌이 발생하지 않는다.

 

왜 스위치는 충돌이 발생하지 않을까?

1. 스위치는 각 포트를 독립적인 충돌 도메인으로 관리한다. 한 포트에서 충돌이 발생해도 다른 포트에 영향을 주지 않는다.

2. 스위치는 MAC 주소를 구별할 수 있다. 내부에 MAC 주소 테이블을 가지고 있어 수신된 프레임의 목적지 MAC 주소를 확인하고 정확한 포트로만 전송한다.

 

이 때문에 여러 장치가 동시에 통신해도 충돌 없이 안정적으로 데이터가 오갈 수 있다.

 

Cisco small business SG300-28 28-port Gigabit Ethernet rackmount switch (p/n: SRW2024-K9-EU), sitting on top of its original packaging (wikipedia)

 

 

📌 스위치 vs 허브

구분  허브 스위치
계층 1계층 2계층
MAC 주소 인식
데이터 전송 방식 브로드캐스트 (모든 포트로 전송) 유니캐스트 (정확한 포트로 전송)
충돌 도메인 하나 (모두 공유) 포트별로 분리
성능 낮음 (충돌 발생 가능) 높음 (동시 전송 가능)

MAC 주소

무언가 식별할 수 있는 개념은 네트워크에서 정말 중요하다!
수많은 장치들이 연결된 세상에서 “누가 누구인지”를 알아야 제대로 소통할 수 있으니까~

 

MAC 주소네트워크에서 장치를 고유하기 식별하기 위한 물리적 주소이다.

마치 컴퓨터의 주민등록번호 (하지만 MAC 주소는 변경 가능하다)

 

48비트 = 6바이트 = 6옥텟 으로 구성. (6개의 8비트 옥텟)

  • 각 옥텟은 16진수로 표시되며, : 또는 - 로 구분한다.
  • 처음 3바이트: 제조사 고유 식별 번호(OUI)
  • 뒤 3바이트: 해당 장치에서 유일한 일련번호

모든 MAC 주소는 전 세계에서 유일한 값을 가진다.

중복되지 않도록 IEEE(아이 트리플 이)에서 MAC 주소를 할당하고 관리한다.

MAC 주소 (wikipedia)

 

UMTS 라우터의 레이블에 LAN과 WLAN 모듈을 위한 MAC 주소가 있다. (wikipedia)


스위치의 핵심 기능

스위치는 단순히 데이터를 전송하는 장비가 아니다.

 

내부에 MAC 주소 테이블(MAC Address Table)을 가지고 있으며,

이를 기반으로 누구에게 데이터를 보내야할지 스스로 판단하고 학습한다.

 

MAC 주소 테이블

스위치는 내부에 MAC 주소 테이블을 가지고 있어, 연결된 장치들의 MAC 주소와 포트 정보를 기억한다.

(전화번호부를 저장해두고, 누가 어디에 있는지 기억하는 것)

뭔가 저장할 수 있다 = 주소를 기억한다.
뭔가 기억한다 = 저장할 수 있는 장치가 있다는 것

 

MAC 주소 테이블은 휘발성 메모리(RAM)에 저장되기 때문에, 전원을 껐다 키면 사라진다

 

플러딩 (Flooding)

스위치가 처음 부팅된 상태에서는 MAC 주소 테이블이 비어 있다.
이때 어떤 장치로부터 패킷이 들어오면, 스위치는 누구에게 보내야 할지 모르기 때문에 모든 포트에 동일한 패킷을 전송한다.
이 과정을 플러딩(Flooding)이라고 한다.

 

어드레스 러닝 (Address Learning)

스위치는 포트로 들어온 패킷의 출발지 MAC 주소와 해당 포트MAC 주소 테이블에 저장한다.

스위치는 수신한 패킷의 출발지 MAC 주소를 기준으로, 어떤 장치가 어느 포트에 연결되어 있는지 학습한다.

(새로운 사람을 만났을 때 연락처를 받는 것)

 

스위치는 패킷의 출발지 MAC 주소만 학습하므로, 브로드캐스트나 멀티캐스트 패킷에서는 목적지 MAC 주소를 학습할 수 없다.

 

불필요한 플러딩을 방지하고, 네트워크의 성능과 효율성을 향상시키는 데 중요한 역할을 담당한다.

 

포워딩(Forwarding) & 필터링(Filtering)

스위치가 MAC 주소 테이블을 통해 목적지 주소가 어느 포트에 있는지 알고 있다면, 해당 포트로만 패킷을 보내는 것을 포워딩(Forwarding)이라고 한다.

 

반대로, 목적지 MAC 주소가 자신과 관련 없는 포트에는 패킷을 보내지 않는 것을 필터링(Filtering)이라고 한다.

 

📌 스위치 기능 요약

기능 설명
MAC 주소 테이블 장치의 MAC 주소와 연결된 포트를 기억
플러딩 MAC 주소를 모를 때 모든 포트로 데이터 전송
어드레스 러닝 수신한 패킷의 출발지 MAC 주소를 기억
포워드 목적지 MAC 주소가 있는 포트로만 전송
필터링 목적지 외 포트에는 전송하지 않음

 

스위치는 MAC 주소를 학습해, 불필요한 트래픽 없이 정확한 대상에게만 데이터를 전송하는 똑똑한 네트워크 장비이다!


그런데 스위치가 많아지면?

여러 개의 스위치를 연결해 큰 네트워크를 구성하면 문제가 생길 수 있다.

 

스위치 간 연결이 원형 구조를 이루면, 하나의 패킷이 무한히 네트워크를 순환한다. → 루프(loop) 현상

이는 자원을 소모하고 네트워크 성능을 저하시킨다. 최악의 경우에는 네트워크 마비, 스위치 장비가 고장난다. → Broadcast Strom

 

루프는 말 그대로 길이 끊기지 않아 계속 도는 구조적인 문제
브로드캐스트 폭풍은 그 루프 위에서 브로드캐스트 패킷이 퍼져서 생기는 결과적인 문제

 

스패닝 트리 프로토콜 (STP, Spanning Tree Protocol) 

이러한 루프 문제를 해결하기 위해 사용하는 것이 바로 스패닝 트리 프로토콜(STP).

 

STP는 스위치 간에 정보를 교환해, 가장 효율적인 통신 경로만 남기고, 나머지 경로는 논리적으로 차단한다.

(실제로 케이블을 끊는 것은 아니고, 일부 포트를 “비활성화”시켜 루프가 발생하지 않도록 만드는 방식)

 

이렇게 구성된 네트워크는 트리 형태(Spanning Tree)를 띠기 때문에

이 프로토콜을 스패닝 트리 프로토콜이라고 부른다.

 

스위치는 MAC 주소 기반의 똑똑한 통신이 가능하지만,
여러 스위치가 연결되면 루프와 브로드캐스트 스톰 같은 구조적인 문제가 생길 수 있다.
이를 방지하기 위한 STP는 스위치 네트워크의 안정성을 유지하는 기술이다.

이더넷(Ethernet)

LAN 환경에서 가장 널리 사용되는 데이터 링크 계층의 프로토콜

IEEE 802.3 표준을 따르며, 유선 통신의 기본이라고 할 수 있다.

 

이더넷 프레임 구조

이더넷 프레임(=MAC 프레임)은 총 7개의 필드로 구성되어 있으며, 각 칸은 1바이트다.

필드 설명 크기
Preamble 수신 동기화를 위한 시작 신호 7
SFD 프레임 시작 표시 1
MAC Destination 목적지 MAC 주소 6
MAC Source 출발지 MAC 주소 6
Len/Type 데이터 길이 or 상위 프로토콜 종류 2
Payload 전송할 실제 데이터 46 ~ 1500
FCS 오류 검사용 시퀀스 4

 

헤더는 14바이트: MAC Dst(6)  + MAC Src(6) + Len/Type(2)

상위 프로톨이 뭔지 구분하는 역할도 한다.


MTU (Maximum Transmission Unit) ⭐️

✅  MTU란?

네트워크에서 한 번에 전송할 수 있는 최대 데이터 크기.

표준 MTU는 1500바이트이다.

프로토콜이 사용하는 파라미터 값.

 

❗ MTU가 너무 크다면?

한 번에 많은 데이터를 보내다가 중간에 오류 발생 시 전체 재전송

네트워크 부하 증가, 성능 저하

 

❗ 너무 작아도 문제

자주 쪼개야 하니까 오버헤드가 늘어남

 

📌 Jumbo Frame

MTU를 늘린 특수한 프레임(1501 ~ 9216 바이트)

고성능 네트워크 환경에서 사용되기도 한다.


VLAN (Virtual LAN)

클라우드, 가상 스위치, 가상 머신 ...
인프라에서 '가상'이라는 키워드를 자주 접하게 된다.

 

✅  VLAN이란?

Virtual Local Area Network

VLAN은 물리적으로는 하나의 네트워크지만, 논리적으로 여러 개의 독립된 네트워크처럼 나눌 수 있는 기술이다.

 

논리적(소프트웨어적으로) 만든 LAN.

↔ 물리적으로 나누는 건 스위치, 라우터, 랜선 등 손으로 만질 수 있는 장치로 나누는 것

 

VLAN을 사용할 때는 이더넷 프레임에 802.1Q 헤더가 삽입되어 VLAN ID가 함께 전달된다.

 

The general concept of virtual LANs. (wikipedia)


Q. MAC 주소란 무엇인가요?

MAC 주소는 네트워크에서 장치를 고유하게 식별하기 위한 물리적 주소이다.

48비트(6바이트)로 구성되며, 전 세계에서 중복되지 않도록 IEEE가 관리한다.

 

Q. CSMA/CD 와 CSMA/CA의 차이점은 무엇인가요?

CSMA/CD는 유선에서 사용되며, 충돌이 나면 감지 후 재전송한다.

CSMA/CA는 무선에서 사용되며, 충돌이 생기지 않도록 사전에 회피한다.

 

Q. 스위치가 허브보다 성능이 좋은 이유는?

스위치는 MAC 주소를 학습하고, 목적지 포트로만 데이터를 전송하기 때문에 충돌이 발생하지 않으며, 동시 통신이 가능하다.

허브는 단순 브로드캐스트로 모든 포트에 데이터를 전송해 충돌 가능성이 크다. 

 

Q. MAC 주소 테이블은 어떤 역할을 하나요?

스위치는 수신한 패킷의 출발지 MAC 주소를 테이블에 저장하고, 목적지 MAC 주소가 등록되어 있으면 해당 포트로만 전송한다.

이 과정을 통해 포워딩, 필터링, 어드레스 러닝이 이뤄진다.

 

Q. VLAN이란 무엇이며, 어떤 상황에서 사용되나요?

VLAN은 하나의 물리적 네트워크를 논리적으로 나눠서 독립된 LAN처럼 작동하게 만드는 기술이다.

Broadcast 도메인을 분리해 보안성과 효율성을 높이며, 802.1Q 헤더 태깅을 통해 VLAN 정보를 이더넷 프레임에 포함시킨다.

 

Q. MTU란 무엇이고, 너무 크거나 작을 경우 어떤 문제가 생기나요?

MTU는 네크워크에서 한 번에 전송 가능한 최대 데이터 크기이다.

일반적으로 1500바이트가 표준이다.

  • 너무 크면 오류 발생 시 재전송 비용이 커지고 부하가 증가
  • 너무 작으면 데이터를 쪼개야 하므로 오버헤드 증가

 

Q. 스위치에서 MAC 주소 테이블이 꽉 차면 어떤 문제가 발생하며, 이를 어떻게 해결하나요?

MAC 주소 테이블이 가득 차면 새로운 주소를 학습하지 못해, 해당 트래픽을 모든 포트로 플러딩하게 된다.
이로 인해 트래픽 과다, 성능 저하, 보안 위협(스니핑) 등이 발생할 수 있다.

 

해결 방법으로는,
① 스위치 업그레이드 또는
② Aging Time 조정,
③ VLAN 분리 등 네트워크 분산이 효과적이며,
보안 이슈가 의심된다면 Port Security나 MAC Flooding 방어도 함께 고려해야 한다.