[CS/네트워크] 데이터 링크 계층: 로컬 네트워크의 최종 배달부

선우·2025년 12월 22일

CS

목록 보기
6/20

[CS/네트워크] 06. 데이터 링크 계층: 로컬 네트워크의 최종 배달부

⚡ 한 줄 요약: 데이터 링크 계층은 MAC 주소와 ARP를 통해 동일 네트워크(LAN) 내의 물리적 기기를 식별하고 데이터를 정확하게 전달하는 역할을 수행합니다.

1. 👋 들어가며: 네트워크의 '마지막 초인종'을 누르는 과정

우리는 흔히 IP 주소만 알면 인터넷을 통해 어디든 데이터를 보낼 수 있다고 생각합니다.
하지만 IP 주소는 목적지 '동네'까지 안내할 뿐, 그 안에서 실제 데이터를 받아야 할 기기를 찾는 것은 다른 문제입니다.

  • 🧐 Why:

    • IP 주소로 찾은 목적지 네트워크 내에서 수많은 장치 중 실제 수신할 '진짜 주인'을 식별하고,
      데이터 배달을 완수하는 물리적 통신 원리를 이해하기 위해서입니다.
  • 🎯 Goal:

    • 데이터 링크 계층의 역할, 이더넷 프레임의 구조, 스위치의 동작 방식, 그리고 MAC 주소와 ARP의 상호작용을 완벽히 정리하여 로컬 통신의 전체 흐름을 마스터합니다.

📂 2. 데이터 링크 계층: LAN 내부 통신의 지휘자

네트워크를 공부하다 보면 'IP 주소만 있으면 전 세계 어디든 데이터를 보낼 수 있지 않나?'라는 의문이 생기기 마련입니다.

하지만 실제 데이터가 목적지 네트워크에 도착한 뒤, 수많은 장치 중 정확히 누구의 컴퓨터에 전달될지를 결정하는 것은 다른 계층의 몫입니다. 바로 데이터 링크 계층(2계층)입니다.

📌 2-1. 네트워크 계층과 데이터 링크 계층의 역할 분담

  • 문제 발생:

    • 전 세계의 수많은 네트워크 중 목적지 네트워크를 찾는 것(라우팅)만으로는 충분하지 않습니다.
    • 목적지 네트워크에 도달한 뒤, 그 내부에 연결된 수많은 기기 중 실제 데이터를 수신할 '진짜 주인'을 찾아 배달을 완료해야 하는 숙제가 남기 때문입니다.
  • 해결책 등장:

    • 이 숙제를 해결하는 곳이 데이터 링크 계층입니다.
    • 네트워크 계층(3계층)이 데이터를 '어느 네트워크'로 보낼지 결정하는 광역 안내소라면,
      데이터 링크 계층은 그 네트워크(LAN) 내부에서 특정 기기를 찾아 데이터를 실제로 전달하는 역할을 수행합니다.
  • 주요 기능:

    • 데이터 링크 계층은 네트워크 계층에서 받은 데이터를 프레임(Frame) 단위로 변환합니다.
    • 이후 고유한 물리 주소인 MAC 주소를 기반으로 장치를 식별하고,
      데이터를 전기 신호나 무선 신호로 변환하여 물리 계층으로 전송합니다.

💡 비유로 이해하기

네트워크 계층이 택배를 '서울시 강남구'라는 동네(네트워크)까지 배달하는 역할이라면,
데이터 링크 계층은 그 동네 안에서 '홍길동 씨'라는 특정 수신인(기기)를 찾아 초인종을 누르는 것과 같습니다.

즉 네트워크 계층이 '어디까지'를 안내한다면, 데이터 링크 계층은 '누구에게'를 안내합니다.


📂 3. 이더넷(Ethernet): 유선 LAN의 표준 규격

데이터 링크 계층에서 가장 널리 활용되는 규칙이 바로 이더넷입니다.
우리가 흔히 사용하는 LAN 선을 통한 통신 방식의 핵심이라고 이해하면 쉽습니다.

📌 3-1. 이더넷의 정의와 충돌 방지(CSMA/CD)

  • 기본 원리:

    • 이더넷은 같은 네트워크 내에서 MAC 주소를 기반으로 장치 간 데이터를 전달하는 유선 네트워크 기술입니다.
    • 데이터를 프레임이라는 단위로 쪼개어 전송하는 것이 특징입니다.
  • 충돌 감지 시스템:

    • 과거에는 여러 장치가 하나의 통로를 공유할 때 데이터가 부딪히는 '충돌' 문제가 잦았습니다.
      이를 해결하기 위해 CSMA/CD 방식을 사용했습니다.
      • CS(Carrier Sense):
        • 데이터를 보내기 전 네트워크가 사용 중인지 확인합니다.
      • MA(Multiple Access):
        • 여러 장치가 네트워크를 공유합니다.
      • CD(Collision Detection):
        • 충돌이 발생하면 잠시 기다린 후 재전송합니다.
  • 현대의 변화:

    • 하지만 현재는 지능형 장비인 스위치를 사용하기 때문에 기술적으로 충돌이 거의 발생하지 않으며,
      훨씬 효율적인 관리가 가능해졌습니다.

📌 3-2. 이더넷 프레임 구조: 데이터의 앞뒤를 감싸는 포장지

데이터는 각 계층을 지날 때마다 헤더가 하나씩 추가되는데,
데이터 링크 계층은 독특하게 데이터의 앞부분뿐만 아니라 뒷부분에도 추가 정보를 붙입니다.

  • 페이로드(Payload):
    • 네트워크 계층에서 내려온 실제 데이터(IP 패킷)를 의미합니다.
  • 구성과 역할:
    • Preamble:
      • 전송 시작을 알리는 동기화 신호입니다.
    • 목적지/출발지 MAC 주소:
      • 데이터를 주고받는 기기들의 물리적 주소를 기록합니다.
    • 이더 타입(Ether Type):
      • 상위 계층의 프로토콜 정보(예: IPv4)를 담습니다.
    • 프레임 체크 시퀀스(FCS):
      • 데이터 끝부분(트레일러)에 추가되어 전송 도중 오류가 발생했는지 감지합니다.

📌 3-3. 헷갈리기 쉬운 포인트 / 오해 정리

  • 데이터 링크 계층도 헤더만 붙이나요?

    • 대부분의 계층은 헤더만 추가하지만, 데이터 링크 계층은 데이터의 무결성을 확인하기 위해 꼬리표인 트레일러(FCS) 정보를 함께 덧붙입니다.
    • 즉, 데이터의 앞뒤를 모두 감싸는 구조입니다.
  • IP 주소가 있는데 왜 MAC 주소가 필요한가요?

    • IP 주소는 목적지 네트워크(동네)를 찾기 위한 주소이고, MAC 주소는 그 동네 안에서 실제 데이터를 받을 기기(사람)를 식별하기 위한 고유 이름표입니다.
    • 둘 다 있어야 최종 목적지까지 정확한 배달이 가능합니다.

📌 3-4. 한 줄 정리

  • 데이터 링크 계층은 MAC 주소를 통해 LAN 내부의 특정 기기를 식별하고,
    데이터를 프레임 단위로 앞뒤로 정교하게 포장하여 실제 신호로 전달하는 역할을 합니다.

💻 참고

실무에서 가끔 접하게 되는 MTU(Maximum Transmission Unit)라는 개념이 있습니다.

이는 이더넷 프레임이 한 번에 실을 수 있는 페이로드의 최대 크기(보통 1500바이트)를 뜻합니다.
우리가 보내는 큰 이미지나 JSON 데이터가 네트워크 단에서 여러 개로 쪼개져 나가는 기준이 바로 여기 있다는 점을 기억해 두면, 네트워크의 지연 성능을 고민할 때 큰 도움이 됩니다.


📂 4. 데이터 링크 계층의 지휘자: 스위치(Switch)

네트워크를 처음 공부하다 보면 여러 장비를 만나게 되는데,
그중에서 가장 영리하게 데이터를 처리하는 장비가 바로 스위치입니다.
왜 이 장비가 현대 네트워크의 표준이 되었는지 그 이유를 파악하는 것이 이번 학습의 핵심입니다.

📌 4-1. 왜 '스위치'라는 해결사가 등장했을까?

네트워크 초기에는 여러 장치를 연결하기 위해 '허브(Hub)'를 사용했습니다.
하지만 허브는 수신한 데이터를 모든 포트로 무차별 전송하는 구조적인 문제를 안고 있었습니다.

  • 문제 발생:
    • 데이터를 모든 곳에 뿌리다 보니 불필요한 트래픽이 발생했고,
      특히 여러 데이터가 동시에 전송될 때 데이터가 부딪히는 충돌(Collision) 현상이 빈번했습니다.
    • 이는 장치가 늘어날수록 네트워크 전체 속도를 떨어뜨리는 치명적인 결함이었습니다.
  • 해결책 등장:
    • 이를 해결하기 위해 등장한 장비가 바로 스위치입니다.
    • 스위치는 장치 간의 데이터를 효율적으로 전달하도록 설계되어 충돌을 방지하고 네트워크 효율성을 높였습니다.
    • 덕분에 오늘날 이더넷(Ethernet) 네트워크의 필수 장비로 자리 잡았습니다.

📌 4-2. 스위치의 작동 원리: 3단계 데이터 처리 과정

스위치가 똑똑하게 동작할 수 있는 이유는 각 장치의 고유 식별 번호인 MAC 주소를 이해하기 때문입니다.

  1. MAC 주소 학습(Learning):

    • 장치가 처음 데이터를 보내면, 스위치는 해당 포트와 연결된 장치의 MAC 주소를 인식합니다.
    • 이 정보를 내부 메모리인 MAC 주소 테이블에 기록하여 일종의 '네트워크 지도'를 스스로 만듭니다.
  2. 프레임 수신 및 분석:

    • 데이터(프레임)가 수신되면 스위치는 헤더를 분석하여 목적지 MAC 주소를 확인합니다.
  3. 정밀한 데이터 전달 (Forwarding & Flooding)

    • Forwarding:
      • 목적지 주소가 테이블에 있다면, 해당 장치가 연결된 특정 포트로만 데이터를 전달합니다.
    • Flooding/Broadcast:
      • 만약 목적지 주소를 모른다면, 일단 모든 포트에 데이터를 뿌려 목적지를 찾습니다.
      • 이후 응답이 오면 주소를 새로 학습하여 테이블을 업데이트합니다.

💡 비유로 이해하기

스위치는 '기억력이 아주 좋은 우편물 분류 전문가' 입니다.

마을 모든 집에 전단지를 뿌리는 방식(허브)이 아니라,
택배 송장에 적힌 주소(MAC 주소)를 보고 정확히 해당 세대의 우편함(포트)에만 넣어주는 시스템입니다.

만약 처음 보는 주소라면 전체 방송을 통해 주인을 찾은 뒤, 그 위치를 명부에 기록하여
다음 배달부터는 지체 없이 전달하는 완벽한 체계를 갖추고 있습니다.

📌 4-3. 헷갈리기 쉬운 포인트 / 오해 정리

  • 스위치는 절대 브로드캐스트를 하지 않는다? (X)

    • 스위치는 1:1 통신만 한다고 오해하는데, 목적지 MAC 주소가 자신의 테이블에 없는 경우에는
      스위치도 모든 포트에 데이터를 뿌리는 플러딩(Flooding)을 수행합니다.
    • 즉, 모를 때는 물어보고, 알게 되면 기록해 두는 유연한 구조를 가지고 있습니다.
  • 스위치는 2계층 장비일 뿐이다? (X)

    • 전통적인 스위치는 2계층(Data Link) 장비이지만, 최근 실무에서는 IP 주소까지 보고 경로를 제어하는 L3 스위치나 포트 번호를 보는 L4 스위치 등 고성능 장비들이 널리 쓰이고 있습니다.

📌 4-4. 한 줄 정리

  • 스위치는 MAC 주소를 스스로 학습하여 필요한 장치에만 데이터를 전달함으로써,
    네트워크의 충돌을 방지하고 전송 효율을 최적화하는 L2 계층의 핵심 장비입니다.

💻 참고

최근에는 물리적인 스위치 외에도 클라우드(VPC) 환경에서 '가상 스위치'의 설정이 매우 중요합니다.
우리가 작성한 코드가 서버에 도달하기까지, 내부망 안에서 이러한 전송 최적화 과정이 수없이 반복된다는 점이 핵심입니다.


📂 5. 데이터 링크 계층의 물리적 이름표: MAC 주소

네트워크 통신에서 목적지를 찾아가는 과정은 매우 정교합니다.
스위치가 데이터를 전달할 때 사용하는 가장 중요한 기준인 'MAC 주소'에 대해 알아봅니다.

📌 5-1. 장치를 식별하기 위한 물리적 이름의 필요성

  • 문제 발생:

    • 인터넷상의 주소인 IP는 논리적인 주소이기 때문에 장소나 네트워크 환경에 따라 수시로 변할 수 있습니다.
    • 이러한 유동적인 특성 때문에, 동일한 로컬 네트워크 내에서 특정 하드웨어를 유일하게 지목하여 데이터를 전달하는 데에는 한계가 존재했습니다.
  • 해결책 등장:

    • 이를 해결하기 위해 컴퓨터, 스마트폰, 라우터 등 모든 네트워크 장치를 제조할 때 하드웨어에 직접 부여하는 고유한 식별 주소인 MAC 주소가 도입되었습니다.
  • 역할 및 특징:

    • MAC 주소는 네트워크에서 데이터를 올바른 장치로 전달하기 위해 사용되는 핵심 데이터입니다.
    • 특히 하드웨어 자체에 내장된 주소이기에 원칙적으로 변경이 불가능하며, 이를 통해 네트워크 내에서 장치의 물리적 정체성을 보장합니다.

📌 5-2. 48비트로 설계된 MAC 주소의 정교한 데이터 구조

  • 문제 발생:

    • 전 세계에 존재하는 천문학적 숫자의 네트워크 기기들을 중복 없이 식별하기 위해서는 매우 체계적이고 방대한 주소 체계가 필요했습니다.
  • 해결책 등장:

    • MAC 주소는 총 48비트(6바이트)의 방대한 크기로 구성되며, 사람이 읽고 관리하기 편하도록
      16진수 6쌍(12자리)으로 표현하는 규칙을 가집니다.
  • 체계적인 관리:

    • 주소의 앞쪽 24비트는 해당 기기를 만든 제조회사 번호를 나타내고,
      뒤쪽 24비트는 해당 회사 내에서 부여한 장치별 고유 식별자로 할당됩니다.
    • 이러한 2단계 구조 덕분에 전 세계 어디에서도 주소가 겹치지 않는 유일성을 유지할 수 있습니다.

📌 5-3. 데이터 전송부터 보안까지, MAC 주소의 실제 활용 사례

  • 상황별 활용:
    • MAC 주소는 단순히 이름표 역할에 그치지 않고 네트워크 운영의 여러 실무 영역에서 결정적인 역할을 수행합니다.
    • 이더넷 통신:
      • 로컬 네트워크 내에서 데이터 프레임을 송수신할 때 물리적 목적지를 찾기 위해 필수적으로 사용됩니다.
    • Wi-Fi 연결:
      • 무선 네트워크 환경에서도 각 장치를 정확히 식별하여 안정적인 연결을 유지하는 기준이 됩니다.
    • 네트워크 보안:
      • 특정 장치의 MAC 주소만 접속을 허용하거나 차단하는 MAC 주소 필터링 기술을 통해 인가되지 않는 기기의 접근을 원천 차단할 수 있습니다.
    • ARP 프로토콜:
      • 우리가 논리적으로 알고 있는 IP 주소를 실제 물리 주소인 MAC 주소로 변환하는 ARP(Address Resolution Protocol) 과정의 핵심 데이터로 활용됩니다.

💡 비유로 이해하기

MAC 주소는 사람으로 치면 '지문'이나 '홍채 정보'와 같습니다.
이름(도메인)이나 현재 거주지 주소(IP)는 필요에 따라 바꿀 수 있지만,
그 사람 본연의 신체적인 특징은 바꿀 수 없는 것과 같은 원리입니다.

📌 5-4. 헷갈리기 쉬운 포인트 / 오해 정리

  • IP 주소와 MAC 주소는 무엇이 다른가요?
    • IP 주소는 통신 위치에 따라 유동적으로 변하는 '논리적 주소'인 반면, MAC 주소는 장비 본연에 각인된 '물리적 주소'입니다.
    • IP가 현재 내가 머물고 있는 '집 주소'라면, MAC 주소는 변하지 않는 나의 '주민등록번호'라고 이해하면 좋습니다.

📌 5-5. 한 줄 정리

  • MAC 주소는 하드웨어에 내장되어 변경이 불가능한 48비트 고유 식별자로,
    로컬 네트워크 내에서 목적지 장치를 정확히 찾아 데이터를 전달하는 물리적 기준이 됩니다.

💻 참고

최근 개인정보 보호 강화 추세에 따라 iOS나 Android OS, 그리고 브라우저 환경에서는
실제 MAC 주소 대신 가상의 '랜덤 MAC 주소'를 생성하여 사용자의 위치 추적을 방지하는 기술이 보편화되었습니다.


📂 6. 논리 주소와 물리 주소를 연결하는 프로토콜: ARP

네트워크를 통해 전송된 데이터가 목적지 네트워크에 무사히 도착했다고 해서 끝난 것이 아닙니다.
이제 네트워크 내부에 있는 수많은 기기 중 실제 목적지 기기를 찾아 데이터를 정확히 전달해야 하는 마지막 단계가 남았습니다.

이때 결정적인 역할을 수행하는 것이 바로 ARP입니다.

📌 6-1. IP 주소만으로는 최종 목적지에 도달할 수 없는 이유

  • 문제 발생:

    • 우리가 흔히 아는 IP 주소는 네트워크 계층(3계층)의 논리적인 위치를 나타낼 뿐입니다.
    • 하지만 실제 데이터가 전송되는 이더넷이나 Wi-Fi 같은 데이터 링크 계층(2계층) 환경에서는 오직 MAC 주소만을 기반으로 장치를 식별하고 통신을 수행합니다.
    • 따라서 상대방의 IP 주소를 알고 있더라도, 그 IP를 가진 기기의 물리적인 이름표인 MAC 주소를 모른다면 데이터를 최종적으로 전달할 방법이 없게 됩니다.
  • 해결책 등장:

    • 이러한 논리 주소(IP)와 물리 주소(MAC) 사이의 간극을 메우기 위해 ARP(Address Resolution Protocol)가 등장했습니다.
    • ARP는 우리가 알고 있는 IP 주소를 실시간으로 추적하여 대응하는 MAC 주소로 변환함으로써,
      같은 네트워크(LAN) 내에서 장치 간 통신이 원활하게 이루어지도록 돕습니다.

📌 6-2. ARP의 2단계 동작: 요청과 응답

ARP는 매우 단순하면서도 효율적인 '질문과 답변' 메커니즘을 통해 작동합니다.

  1. ARP 요청:

    • 데이터를 보내려는 출발지 장치는 목적지의 MAC 주소를 모르기 때문에, 네트워크 전체에 브로드캐스트 방식으로 질문을 던집니다.
    • 예를 들어, "IP 주소가 192.168.1.20인 기기 계신가요? 당신의 MAC 주소를 알려주세요!"라고 모든 기기에 전송하는 것입니다.
    • 이때 목적지 MAC 주소는 모든 기기가 수신할 수 있도록 FF:FF:FF:FF:FF:FF로 설정됩니다.
  2. ARP 응답:

    • 네트워크 내의 모든 장치가 이 요청을 받지만, 오직 해당 IP 주소를 보유한 목적지 장치만이 이 질문에 응답합니다.
    • "네, 제가 192.168.1.20입니다. 제 MAC 주소는 XX:XX:XX:XX:XX:02 입니다"라고 자신의 물리 주소를 담아 답변을 보냅니다.
    • 이를 통해 출발지 장치는 비로소 데이터 프레임을 완성하여 전송할 수 있게 됩니다.

💡 비유로 이해하기

ARP는 30명의 학생이 모여 있는 교실에서 특정 학생을 찾는 과정과 같습니다.

선생님이 "홍길동 학생(IP 주소), 손 들어볼래?"라고 전체 학생에게 소리치면(브로드캐스트), 오직 홍길동 학생만이 손을 들어 자신의 위치(MAC 주소)를 알리는 것과 같습니다.

나머지 학생들은 본인의 이름이 아니므로 해당 요청을 무시하게 됩니다.

📌 6-3. 헷갈리기 쉬운 포인트 / 오해 정리

  • 서로 다른 네트워크 간의 통신 과정인가요?:

    • ARP는 기본적으로 라우터를 넘어가지 않는 동일 네트워크 구간에서만 작동하는 프로토콜입니다.
  • 모든 통신 때마다 매번 브로드캐스트를 하나요?:

    • 매번 전체 기기에 물어보는 것은 비효율적입니다.
    • 따라서, 각 장치는 한 번 알아낸 정보를 ARP 테이블이라는 임시 저장소에 기록해두고 재사용합니다.
    • 테이블에 정보가 없을 때만 브로드캐스트가 발생한다는 점이 핵심입니다.

📌 6-4. 한 줄 정리

  • ARP는 같은 네트워크 내부에서 알고 있는 IP 주소를 기반으로 모르는 MAC 주소를 찾아내어,
    실제 하드웨어 기기까지 데이터가 도달할 수 있게 연결해주는 주소 변환 프로토콜입니다.

💻 참고

로컬 개발 환경에서 모바일 기기와 통신을 테스트할 때, IP는 맞는데 연결이 안 된다면 가끔 이 ARP 정보가 꼬여 있는 경우가 있습니다. 터미널에서 arp -a 명령어를 입력해 현재 내 PC가 기억하고 있는 주변 기기들의 MAC 주소 리스트를 확인해보세요.


🎁 7. 정리

🔑 요약

  • 데이터 링크 계층(L2):

    • LAN 내부 장치 간 신뢰성 있는 전송을 담당하며,
      상위 계층의 패킷을 '프레임' 단위로 캡슐화하여 전달합니다.
  • 이더넷(Ethernet):

    • 유선 LAN의 표준으로, 데이터의 앞(헤더)과 뒤(트레일러/FCS)를 모두 감싸
      데이터 전송 중 발생할 수 있는 오류를 감지합니다.
  • 스위치(Switch):

    • MAC 주소 테이블을 스스로 학습하여 필요한 장치에만 트래픽을 전달함으로써
      네트워크 효율을 극대화하는 L2의 핵심 지휘자입니다.
  • MAC 주소:

    • 제조 시 하드웨어에 각인되는 48비트 고유 식별자로,
      장소에 따라 변하는 IP와 달리 장치의 영구적인 정체성을 나타냅니다.
  • ARP(Address Resolution Protocol):

    • 논리 주소(IP)를 기반으로 대응하는 물리 주소(MAC)를 찾아 내어,
      하위 계층에서 실제 통신이 가능하도록 연결해줍니다.

0개의 댓글