Physical & Data Link Physics
비트 신호의 물리적 전송부터 인접 노드 간의 데이터 프레임 전송 및 오류 제어를 다루는 물리 계층(L1)과 데이터 링크 계층(L2)의 물리학을 다루는 학습 노드입니다.
Article
M
Me
hyunyoun's Blog
network-communicationnetworkcommunicationnetwork-foundationsosi-stackphysicaldata-link-physicsnetwork-infrastructure10 min read
1. Overview
물리 및 데이터 링크 물리(Physical & Data Link Physics)는 추상적인 소프트웨어 세계를 벗어나, 실제 전자가 구리선을 타고 흐르거나 전자기파가 공기를 가르고 날아가는 0과 1의 진짜 '물리적 본질'을 해부합니다.
학습자는 단순히 OSI 7계층을 외우는 것을 넘어, 전기 신호가 어떻게 디지털 데이터로 변환되는지(Encoding), 그리고 잡음(Noise) 속에서 어떻게 에러를 찾아내는지(Error Detection) **물리 계층(L1)**의 신호 변환 역학을 뜯어봅니다. 나아가 수많은 컴퓨터가 하나의 랜선을 공유할 때 서로 말이 겹치는 충돌(Collision)을 막아내는 CSMA/CD 매체 접근 제어(MAC)와, 인접한 두 장비 간의 물리적 주소를 기반으로 프레임을 정확히 꽂아 넣는 **데이터 링크 계층(L2)**의 스위칭(Switching) 마법을 장악합니다. 마지막으로, 거대한 네트워크를 잘게 쪼개어 브로드캐스트 폭풍(Broadcast Storm)을 차단하는 가상 랜(VLAN) 설정 역량을 확보합니다.
2. Scope & Boundaries
In-Scope
- Physical Layer (L1): 비트(Bit), 시그널링(Signaling), 구리선/광케이블 매체, 허브(Hub)의 브로드캐스트 한계.
- Data Link Layer (L2): 프레임(Frame), MAC 주소, 이더넷(Ethernet) 프로토콜.
- Media Access Control (MAC): CSMA/CD (유선), CSMA/CA (무선) 충돌 회피 알고리즘.
- Switching & VLAN: L2 스위치의 MAC 테이블 학습(Learning) 메커니즘과 VLAN을 통한 네트워크 격리.
Out-of-Scope
- IP 주소와 라우팅(L3): 서로 다른 네트워크 대역(Subnet) 간의 통신 08-01-02 Network Layer & Addressing 영역.
- 무선 주파수(RF) 공학 상세: 5G/LTE의 안테나 전파 물리학 통신 공학 전공 영역으로 위임.
Boundaries
- L1 (Hub) vs L2 (Switch): 허브(L1)는 전기가 들어오면 아무 생각 없이 꽂혀 있는 모든 구멍으로 전기를 뿜어내는 '멍청한 멀티탭'입니다. 반면 스위치(L2)는 전기 신호를 프레임으로 읽어 들이고, 목적지 MAC 주소를 확인하여 정확히 그 구멍으로만 데이터를 쏴주는 '똑똑한 교환원'임을 명확히 경계 짓습니다. 이 차이를 모르면 네트워크 패킷 스니핑과 브로드캐스트 도메인(Broadcast Domain)의 분리를 이해할 수 없습니다.
3. Counterexample
- 허브(Hub) 스니핑의 재앙: 사내망을 싸게 구축하겠다고 스위치 대신 L1 허브(Dummy Hub)를 10개 사서 연결했습니다. 허브는 모든 패킷을 모든 포트로 복사해서 보냅니다(Flooding). 악의적인 직원이 자기 자리에 노트북을 꽂고 와이어샤크(Wireshark)를 켜기만 해도, 옆자리 사장님이 주고받는 비암호화 이메일과 사내 메신저 패킷을 고스란히 엿볼 수 있는(Sniffing) L1 브로드캐스트 도메인의 끔찍한 치명타입니다.
- 브로드캐스트 폭풍 (Broadcast Storm): 사무실 책상 밑에 돌아다니는 스위치의 1번 포트와 5번 포트를 랜선 하나로 둥글게 연결(Loop)해 버렸습니다. 한 대의 PC가 "여기 192.168.0.2 누구야?"라고 브로드캐스트 패킷을 날리자, 이 패킷이 루프를 타고 뱅글뱅글 무한 증폭되며 10초 만에 사내망 전체를 다운시켜 버립니다. L2 계층의 루핑을 막아주는 스패닝 트리 프로토콜(STP)을 이해하지 못해 발생한 물리적 네트워크 마비 현상입니다.
4. Prerequisites
- 컴퓨터 구조 기초 (Basic): 0과 1의 디지털 논리 회로 기초. (02-01 Computer Architecture)
- OSI 7계층 (Basic): L1~L7까지의 추상화 모델 개요. (08-01 OSI Stack)
5. Learning Map
6. Learning Topics
Basic
Core Topic 01: 전자의 춤, 물리 계층 (Physical Layer - L1)
- Why to Learn: 코드로 작성한 스트링(String) 데이터가 실제로 구리선이나 공기를 건너가기 위해 어떤 물리적 희생(에러, 감쇠)을 겪는지 인지하여 네트워크의 본질적 불완전성을 이해하기 위함입니다.
- What to Learn:
- Concepts: Bit, Signaling (NRZ, Manchester encoding), Bandwidth (대역폭), Attenuation (감쇠), Hub (허브), Repeater.
- Skills: 물리 계층의 매체(구리선 UTP vs 광케이블) 특성에 따른 대역폭과 전송 거리 제약 식별.
- How to Learn:
- 1단계: 전기로 말하기: 0과 1을 전송해야 합니다. 0이면 0V, 1이면 5V 전기를 흘려보냅니다. 그런데 거리가 100m를 넘어가면 5V가 2V로 줄어들어(감쇠) 수신 측이 0인지 1인지 헷갈리게 됩니다. 케이블 중간에 신호를 다시 빵빵하게 증폭시켜 주는 리피터(Repeater)의 물리적 역할을 해부합니다.
- 2단계: 멍청한 멀티탭, 허브: 5대의 PC가 허브에 꽂혀 있습니다. A가 B에게 데이터를 쏘면, 허브는 A의 전기를 받아 C, D, E에게도 똑같이 전기를 쏴버립니다. 보안도 없고, 충돌 확률도 극도로 높아지는 초기 L1 장비의 끔찍한 비효율을 뜯어봅니다.
- Implement: 신호 인코딩(Encoding) 렌더링. 비트 스트림
1011을 입력받음. Manchester 인코딩 룰(1은 Low->High 상승 엣지,0은 High->Low 하강 엣지)을 적용하여_- -_ _- _-형태의 ASCII 파형으로 변환해 터미널에 출력하는 데모.
Recommended
Core Topic 02: 쇳덩이의 민증 번호, 데이터 링크 (Data Link - L2)
- Why to Learn: 끝없이 밀려오는 0과 1의 전기 신호 더미에서 '어디서부터 어디까지가 하나의 메시지인지' 끊어내고, 목적지를 구별해 내는 L2 프레임의 규격을 장악하기 위함입니다.
- What to Learn:
- Concepts: Frame (프레임), MAC Address (물리적 주소 - OUI + NIC), Ethernet Header, FCS (Frame Check Sequence), ARP (주소 확인 프로토콜).
- Skills: 프레임 헤더를 뜯어보며 Source MAC과 Destination MAC을 기반으로 로컬 네트워크 통신 흐름 추적.
- How to Learn:
- 1단계: 프레임(Frame) 포장하기: L1에서 받은 전기를 비트(Bit)로 바꿨습니다. L2는 이를 의미 있는 단위인 '프레임'으로 자릅니다. 프레임의 맨 앞에는 수신자 MAC, 송신자 MAC이 적혀있고, 맨 뒤에는 데이터가 깨졌는지 검사하는 꼬리표(FCS)를 붙이는 이더넷(Ethernet) 포장법을 해부합니다.
- 2단계: MAC 주소의 영원함: IP 주소가 '이사가면 바뀌는 주소'라면, MAC 주소(48비트)는 공장에서 랜카드(NIC)를 찍어낼 때 인두로 지져놓는 '영원한 주민등록번호'입니다. 같은 와이파이에 접속한 기기끼리는 IP가 아니라 오직 이 MAC 주소를 통해서만 통신(L2)할 수 있음을 뜯어봅니다.
- Implement: Ethernet Frame 파서.
[DstMAC(6B)][SrcMAC(6B)][Type(2B)][Payload][FCS(4B)]형식의 Hex 스트링을 입력받음. 파이썬으로 슬라이싱하여 "이 패킷은00:1A:2B...에서FF:FF:FF...(브로드캐스트)로 가는 IPv4(0x0800) 데이터이며, FCS 해시 검증 결과 무결함"을 콘솔에 분석(Parse)해 주는 로직.
Practical
Core Topic 03: 눈치 게임의 진수, 충돌 회피 (CSMA/CD & CA)
- Why to Learn: 하나의 선(무선 주파수 포함)을 여러 명이 공유할 때, 데이터가 부딪혀서 파괴되는 물리적 충돌(Collision)을 막아내는 네트워크 매체 접근 제어의 극의를 깨닫기 위함입니다.
- What to Learn:
- Concepts: CSMA/CD (유선), CSMA/CA (무선), Collision Domain (충돌 도메인), Exponential Backoff (지수적 백오프).
- Skills: 여러 대의 디바이스가 동시에 데이터를 전송할 때 충돌이 발생하면, 재전송 대기 시간을 기하급수적으로 늘려 부하를 분산시키는 백오프(Backoff) 알고리즘 구현.
- How to Learn:
- 1단계: 유선의 눈치 게임 (CSMA/CD): A와 B가 동시에 랜선에 데이터를 쐈습니다(충돌). 전압이 솟구치는 걸 보고 둘 다 전송을 즉시 멈춥니다(CD: Collision Detection). 바로 다시 쏘면 또 충돌하니까, A는 주사위를 굴려 3초 뒤에, B는 7초 뒤에 재전송(Backoff)하게 만들어 엉킨 트래픽을 풀어내는 유선의 지혜를 해부합니다.
- 2단계: 무선의 비명 (CSMA/CA): 와이파이(무선) 환경에서는 공중파 전파가 너무 많아 충돌을 감지(Detect)하는 게 불가능합니다. 그래서 와이파이는 쏘기 전에 "나 지금 데이터 보낼 거야! 아무도 보내지 마!"라고 소리(RTS/CTS)를 치고 나서 데이터를 쏘는, 감지(Detection)가 아닌 회피(Avoidance) 전략을 뜯어봅니다.
- Implement: CSMA/CD 백오프(Backoff) 시뮬레이션. 3개의 스레드(노드)가 공유 변수
wire에 동시에 쓰기 시도. 충돌(Collision) 감지 시 스레드들이 전송을 멈추고random(0, 2^n - 1)공식을 사용하여 대기 시간을 결정. 충돌이 거듭될수록 대기 시간 풀이1->3->7->15로 커지며 결국 모든 노드가 겹치지 않게 전송에 성공하는 터미널 타임라인 애니메이션.
Advanced
Core Topic 04: 똑똑한 교환원, L2 스위치와 VLAN (Switching & VLANs)
- Why to Learn: 허브의 멍청한 브로드캐스트 지옥을 끊어내고, 소프트웨어 설정(VLAN)만으로 물리적 네트워크를 쪼개어 보안과 트래픽 효율을 극대화하는 L2 스위치의 심장을 장악하기 위함입니다.
- What to Learn:
- Concepts: L2 Switch, MAC Address Table, Learning/Forwarding/Filtering, VLAN (Virtual LAN), 802.1Q (VLAN Tagging).
- Skills: 스위치가 패킷을 보며 MAC 주소를 스스로 학습하는 과정을 이해하고, VLAN 10(인사팀)과 VLAN 20(개발팀) 간의 브로드캐스트 격리 설계.
- How to Learn:
- 1단계: 스위치의 뇌 (MAC Table): 스위치는 처음에 바보입니다. A가 1번 구멍으로 데이터를 쏘면 "아, 1번 구멍에 A(MAC)가 있구나"라고 뇌(MAC Table)에 적습니다(Learning). 나중에 B가 A에게 데이터를 보내면, 허브처럼 전체에 안 뿌리고 정확히 1번 구멍(Forwarding)으로만 쏴주는 똑똑한 필터링을 해부합니다.
- 2단계: 가상의 벽 (VLAN): 스위치 하나에 인사팀과 개발팀 100명이 꽂혀 있습니다. 인사팀 컴퓨터에 악성코드가 감염되어 브로드캐스트(ARP)를 미친 듯이 뿌립니다. 개발팀 컴퓨터까지 느려집니다. 포트 1
10번은 VLAN 10(인사), 1120번은 VLAN 20(개발)으로 소프트웨어 설정만 쪼개두면, 인사팀의 브로드캐스트가 절대 개발팀으로 넘어오지 못하게 차단(Broadcast Domain 분리)하는 가상화 마법을 뜯어봅니다.
- Implement: L2 스위치 MAC 학습 및 VLAN 렌더링.
Switch_Table = {}.Frame(Src: A, Dst: B, Port: 1, VLAN: 10)도착. 스위치가 1번 포트에 A가 있음을 기록. 목적지 B를 모르면 VLAN 10에 속한 포트에만 Flooding(브로드캐스트) 수행. VLAN 20인 포트에는 트래픽이 전혀 가지 않음을 증명하는 파이썬 네트워크 시뮬레이션 로직.
7. Terminology
8. References
Primary
- [P1] CS2023 - Networking and Communication (NC) - Physical and Data Link Layers
- [P5] SFIA - Network Design (NTDS) - Local Area Networking
Secondary
- [Computer Networking: A Top-Down Approach] Kurose & Ross - The Link Layer and LANs
- [TCP/IP Illustrated, Volume 1] Kevin R. Fall - The Link Layer
Industry
- [Cisco Networking Academy] - CCNA Routing and Switching (VLANs, Switching Concepts)
- [IEEE 802.3 Standard] - Ethernet Local Area Network operation
9. Final Checklist
Primary
- 0과 1의 디지털 데이터를 전송할 때, 구리선 100m 한계(감쇠)를 극복하기 위한 물리 계층(L1) 리피터(Repeater)의 역할과 대역폭(Bandwidth)의 물리적 제약을 설명할 수 있는가?
- L1 장비인 멍청한 더미 허브(Hub)와 L2 장비인 똑똑한 스위치(Switch)가 5대의 PC를 연결할 때 브로드캐스트 도메인(Broadcast Domain)과 패킷 스니핑 보안 취약점 차이를 증명할 수 있는가?
Secondary
- 이더넷 프레임(Ethernet Frame) 구조를 뜯어보고, L3의 IP 주소를 몰라도 L2의 출발지/목적지 MAC 주소만으로 사내 로컬 네트워크 통신이 성립하는 원리를 해부할 수 있는가?
- 하나의 유선 매체를 여러 기기가 공유할 때 발생하는 데이터 파괴(충돌) 현상을 감지하고 랜덤 백오프(Backoff)로 회피하는 CSMA/CD 알고리즘의 동작 단계를 시뮬레이션할 수 있는가?
Industry
- L2 스위치의 포트에 프레임이 들어올 때마다 출발지 MAC 주소를 몰래 뇌에 기록(Learning)하고, 이를 바탕으로 특정 포트로만 프레임을 쏴주는 포워딩(Forwarding) 역학을 논증할 수 있는가?
- 물리적으로 선을 뽑고 스위치를 분리하지 않아도, 소프트웨어적으로 포트 번호에 태그(802.1Q)를 달아 브로드캐스트 폭풍을 차단하는 가상 랜(VLAN)의 인프라 격리 가치를 평가할 수 있는가?