혼자 공부하는 네트워크 CH2. 물리 계층과 데이터 링크 계층

2024. 12. 9. 17:48·CS

 

이 글에서는 제가 배우고 이해한 내용을 개발자 관점에서 풀어보려고 합니다 !

초보 개발자로서, 어려운 기술 용어보다는 일상적인 예시를 통해 네트워크의 작동 방식으로 내용을 작성해 보았습니다.

 

0. 개요

Vue.js로 프론트엔드를, Spring Boot로 백엔드를 만들어 웹사이트를 개발했다고 가정해 보겠습니다.

 

어떤 사용자가 브라우저에서 해당 웹사이트에 접속하거나 데이터를 요청할 때,

네트워크의 물리 계층과 데이터 링크 계층은 데이터가 안전하고 정확하게 서버와 사용자 간을 오갈 수 있도록 돕습니다.

 


1. 물리 계층 : 데이터를 신호로 변환하는 층

물리 계층은 데이터를 전송할 때 0과 1의 비트로 변환하여 전기 신호, 무선 신호, 또는 광 신호로 만들어 네트워크를 통해 전달합니다.

여기서 이더넷(Ethernet)은 물리 계층에서 데이터를 전송하기 위한 표준 기술로 사용됩니다.

 

물리 계층의 특징

- 데이터를 신호로 변환하여 네트워크를 통해 전달

- 네트워크 전송의 안정성과 속도를 결정

- 전송 매체(케이블, 무선 등)와 물리적 장치를 다룸

 

쉽게 설명하면,

- 물리 계층은 데이터를 실제로 전송하는 "배달원"입니다.

- 이더넷은 데이터를 전기 신호로 변환해 케이블(LAN)을 통해 서버와 사용자 간을 오가도록 돕습니다.

 

이더넷과 통신 매체

- 이더넷은 데이터를 전송하기 위해 다양한 매체를 사용합니다.

- 통신 매체는 네트워크의 설치 환경, 거리, 데이터 전송 속도 요구에 따라 선택됩니다.

구분 매체 특징 장점 단점 적합한 환경
유선
통신
매체
UTP (Unshielded
Twisted Pair)
꼬인 구리선으로 구성된 케이블 저렴하고 설치가 간단함 간섭에 취약,
최대 100m 전송 가능
일반 가정 및
사무실 네트워크
광섬유 (Fiber Optic) 빛을 이용하여 데이터를 전송 장거리 전송 가능,
초고속 전송, 간섭 없음
설치 비용 높음,
유지 관리 어려움
데이터 센터,
ISP 백본 네트워크
무선
통신
매체
Wi-Fi 무선 네트워크 기술로 라우터를
통해 데이터 전송
설치가 간편하고,
이동성이 뛰어남
유선보다 속도 및
안정성이 낮음
가정, 소규모 사무실, 공공장소
5G 이동통신 5세대 이동통신 기술, 낮은 지연과 초고속 데이터 전송 지원 IoT 및 스마트 기기
연결에 적합
제한된 커버리지,
높은 구축 비용
IoT 환경,
스마트 기기 연결

 

이더넷의 역할

(1) 데이터 전송 표준

- 이더넷은 데이터를 LAN 케이블을 통해 전기 신호로 변환해 전송합니다.

- 10 Mbps, 100 Mbps, 1 Gbps 등 표준화된 속도로 데이터를 주고받습니다.

 

(2) 이더넷 케이블(LAN) & NIC(Network Interface Controller / Card)

- LAN 케이블 : 데이터를 안정적이고 빠르게 전송하며, 신호 간섭이 적어 데이터 손실을 최소화합니다.

- NIC : 컴퓨터 내부에 있는 네트워크 카드로 "통역사"라고 볼 수 있습니다. 케이블이나 Wi-Fi를 통해 데이터를 주고받도록 도와주는 하드웨어입니다.

NIC ❘ 네트워크의 통로 역할 ❘ 데이터 <-> 전기신호


2. 데이터 링크 계층 : 데이터를 안전하게 전달하는 층

데이터 링크 계층은 물리 계층 위에서 동작하며, 데이터를 작은 단위인 프레임(Frame)으로 나누고, 송신자와 수신자 간의 데이터 전송을 관리합니다. 이 계층에서 이더넷은 프레임 단위 전송 표준으로 동작합니다.

 

데이터 링크 계층의 특징

- 데이터를 프레임 단위로 나누어 전송

- MAC 주소를 사용해 데이터를 정확한 장치로 전달

- 데이터 손실을 방지하기 위해 오류를 검출하고 복구

 

쉽게 설명하면,

- 데이터 링크 계층은 데이터를 "박스(프레임)"에 포장하여 정확한 주소(MAC 주소)에 전달되도록 합니다.

- 이더넷은 이 박스를 처리하며, 데이터 손실이나 손상을 방지하는 역할을 합니다.

 

이더넷 프레임 구조

: 데이터 링크 계층에서 데이터를 프레임으로 나눌 때, 각 프레임은 헤더(Header), 페이로드(Payload), 트레일러(Trailer)로 구성됩니다.

 

(1) 헤더(Header): 데이터를 보내기 위한 정보

- 데이터를 어디로 보내고, 누가 보냈는지, 어떤 형식인지 등의 정보를 담고 있습니다.

- 송신자의 MAC 주소 : 데이터가 어디에서 왔는지 / 수신자의 MAC 주소 : 데이터가 어디로 가야 하는지 / 데이터 형식 : HTTP, TCP/IP 등

 

(2) 페이로드(Payload): 실제 데이터

- 사용자가 요청하거나 서버가 응답하는 핵심 데이터가 담겨 있습니다.

- 요청 데이터 : { "username": "user", "password": "pass" } / 응답 데이터 : { "message": "Login successful", "token": "abcdef" }

 

(3) 트레일러(Trailer): 데이터 검증

- 데이터가 전송 중 손상되지 않았는지 확인하기 위한 오류 검출 코드(CRC)를 포함합니다.

- CRC는 데이터 무결성을 확인하여, 오류가 감지되면 데이터를 재전송하도록 요청합니다.

 

MAC 주소

- MAC 주소는 네트워크의 '집 주소'와 같습니다. 이 주소 덕분에 데이터가 정확히 어디에서 어디로 가야 하는지 알 수 있습니다.

- 네트워크에 연결된 장치를 고유하게 식별하는 주소로, 데이터가 올바른 송신자와 수신자 간에 전달되도록 돕습니다.

- 네트워크의 각 장치는 고유한 MAC 주소를 가지며, 스위치나 라우터와 같은 장치가 이를 사용해 데이터를 정확히 전달합니다.

 


3. 허브와 스위치의 역할

허브(Hub): 단순 데이터 분배기

: 네트워크에 연결된 모든 장치에 데이터를 전달합니다.

 

- 동작 계층: 물리 계층(1 계층)에서 작동

- 브로드캐스트 방식: 데이터를 네트워크에 연결된 모든 장치로 전달

- 단점: 네트워크 트래픽 증가, 데이터 충돌 빈도 높음 -> CSMA/CD프로토콜로 완화

 

스위치(Switch): 지능형 데이터 분배기

: MAC 주소를 기반으로 데이터를 특정 장치에만 전달합니다.

 

- 동작 계층: 데이터 링크 계층(2 계층)에서 작동

- 유니캐스트 방식: 데이터를 목적지 MAC 주소를 가진 장치에만, 즉 정확한 목적지로만 전달

- 데이터 충돌을 방지하고 네트워크 효율성을 높임

 

-> 허브는 과거의 간단한 네트워크에서 사용되었지만, 데이터 충돌 문제로 인해 현재는 잘 사용되지 않습니다.

대신, 스위치는 오늘날 대부분의 네트워크에서 데이터 효율성을 위해 기본 장치로 사용됩니다.

 

 

CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 프로토콜

- 물리 계층에서 데이터를 신호로 변환하여 전송하기 전에 네트워크가 비어 있는지 확인하며, 데이터 충돌이 발생하면 다시 데이터 전송을 관리합니다.

- CSMA (다중 액세스): 여러 장치가 네트워크를 공유하며 데이터를 전송하기 전에 "채널이 비어 있는지 확인"합니다.

- CD (충돌 감지) : 만약 두 장치가 동시에 데이터를 전송하면 충돌(Collision)이 발생합니다. 충돌 시 데이터를 중단하고 랜덤 대기 시간 이후 다시 전송을 시도합니다.

- 장점: 네트워크 트래픽이 적을 때 효율적입니다.

- 단점: 트래픽이 많아지면 충돌이 빈번해져 성능 저하가 발생할 수 있습니다.


4. 데이터 전송 흐름 : 택배 시스템 예시

사용자가 브라우저에서 웹사이트에 접속 요청

(1) 브라우저 요청 생성 (택배 주문서 작성)

- 사용자가 택배를 보내기 위해 주문서를 작성합니다.

- 주문서에는 무엇을 보내고 싶은지(데이터 내용)와 어디로 보낼지(주소 정보)가 포함됩니다.

 

(2) 데이터를 프레임으로 구성, 택배 상자 포장 (데이터 링크 계층)

- 데이터를 보내기 위해 택배 상자를 준비합니다.

- 상자에는 송신자 주소(보내는 사람), 수신자 주소(받는 사람), 보내는 내용(데이터), 상자의 무결성 확인 스티커(CRC)가 포함됩니다.

 

(3) 물리 계층 전송 (택배기사 출발)

- 포장된 상자를 택배기사가 픽업하여 배송을 시작합니다.

- 택배기사는 도로(LAN 케이블)를 이용해 목적지로 이동합니다.

- 이동 중 충돌(차량 사고 등)이 발생하면, 다시 재전송(랜덤 대기 후 재배송)을 시도합니다.

 

(4) 서버의 NIC(Network Interface Card)에서 데이터 수신 (택배 도착 - 물건 확인)

- 택배가 영희의 집(NIC)에 도착합니다.

- 영희는 택배를 열어 확인합니다.

- 상자의 송신자 주소, 수신자 주소, 내용물을 확인한 뒤 손상 여부(CRC)를 체크합니다.

 

서버(Spring Boot)가 클라이언트로 응답

(1) 서버 응답 생성 (답장 택배 준비)

- 영희(서버)는 택배를 받은 뒤, 철수(클라이언트)에게 답장을 보냅니다.

- "잘 받았습니다!"라는 내용으로 응답을 생성합니다.

 

(2) 응답 데이터 전송 (답장 택배 발송)

- 응답 데이터를 택배 상자로 포장한 뒤, 다시 택배기사(LAN 케이블)를 통해 철수(클라이언트)에게 전달합니다.

 

(3) 클라이언트 수신 및 처리 (응답 택배 수령)

- 철수(클라이언트)는 택배를 수령하고 상자를 열어 내용을 확인합니다.

- 이후 응답 데이터를 사용해 "잘 받았습니다!"라는 메시지를 브라우저에 표시합니다.


5. 결론 : 웹사이트에서 물리 계층과 데이터 링크 계층의 역할

- 물리 계층 : 데이터를 신호로 변환해 네트워크를 통해 전달

- 데이터 링크 계층 : 데이터를 프레임으로 나누어 MAC 주소를 통해 정확히 전달

- 이더넷 : 물리 계층과 데이터 링크 계층에서 데이터를 안정적으로 전송하는 표준 기술

- 허브 : 모든 장치로 데이터를 전달하는 단순한 방식

- 스위치 : 특정 장치로만 데이터를 전달하여 충돌을 줄이고 네트워크 효율을 높이는 방식

 

 

개발자라면 네트워크 계층 간의 역할을 이해함으로써, 네트워크 성능 최적화, API 호출 최적화, 그리고 네트워크 문제 디버깅 시 더 빠르게 문제를 파악할 수 있습니다.

'CS' 카테고리의 다른 글

개발자가 컴퓨터 구조를 알아야 하는 이유  (0) 2025.01.13
웹 개발 시 꼭 챙겨야 할 보안 체크 리스트  (0) 2025.01.07
혼자 공부하는 네트워크 CH5. 응용 계층  (2) 2024.12.19
혼자 공부하는 네트워크 CH4. 전송 계층  (1) 2024.12.17
혼자 공부하는 네트워크 CH3. 네트워크 계층  (1) 2024.12.12
'CS' 카테고리의 다른 글
  • 웹 개발 시 꼭 챙겨야 할 보안 체크 리스트
  • 혼자 공부하는 네트워크 CH5. 응용 계층
  • 혼자 공부하는 네트워크 CH4. 전송 계층
  • 혼자 공부하는 네트워크 CH3. 네트워크 계층
uoaheu
uoaheu
uoaheu 님의 블로그 입니다.
  • uoaheu
    uoaheu 님의 블로그
    uoaheu
  • 전체
    오늘
    어제
    • 분류 전체보기 (50)
      • 알고리즘 (7)
      • CS (9)
      • FRONTEND (9)
        • React (12)
        • Kotlin (1)
        • JS (5)
        • HTML (2)
      • SQL (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    토스분석
    혼자서 공부하는 네트워크
    알고리즘
    토스 앱 분석
    멀티캠퍼스it부트캠프
    부트캠프후기
    boj25418
    mysql
    mysql 피벗테이블
    이더넷프레임
    리액트usestate
    엘지유플러스유레카프론트엔드
    BFS
    유레카3기
    백준1926번
    toss uiux
    toss 분석
    mysql로 피벗테이블만들기
    토스 uiux
    useactionstate
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
uoaheu
혼자 공부하는 네트워크 CH2. 물리 계층과 데이터 링크 계층
상단으로

티스토리툴바