01. 네트워크의 구조
1. 컴퓨터 네트워크란?
두 대 이상의 컴퓨터가 연결되어 데이터를 주고받을 수 있는 상태
네트워크의 규모
┌─────────────────────────────────────────────────────────────────┐
│ 인터넷 (Internet) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ WAN (Wide Area Network) │ │
│ │ ┌───────────────────────────────────────┐ │ │
│ │ │ LAN (Local Area Network) │ │ │
│ │ │ ┌─────────────────────────┐ │ │ │
│ │ │ │ PAN (Personal Area) │ │ │ │
│ │ │ │ 블루투스, USB 등 │ │ │ │
│ │ │ └─────────────────────────┘ │ │ │
│ │ │ 가정, 사무실 내 네트워크 │ │ │
│ │ └───────────────────────────────────────┘ │ │
│ │ 도시, 국가 단위 네트워크 │ │
│ └─────────────────────────────────────────────────────┘ │
│ 전 세계를 연결하는 거대한 네트워크 │
└─────────────────────────────────────────────────────────────────┘| 네트워크 | 범위 | 예시 |
|---|---|---|
| PAN | 개인 영역 (수 m) | 블루투스 이어폰, 스마트워치 |
| LAN | 건물/사무실 (수백 m) | 회사 내부망, 가정 네트워크 |
| MAN | 도시 (수십 km) | 도시 통신망 |
| WAN | 국가/대륙 (수천 km) | KT, SK 등 통신사 망 |
| 인터넷 | 전 세계 | WWW |
2. 패킷 (Packet)
네트워크를 통해 전송되는 데이터의 작은 조각
왜 패킷으로 나누는가?
┌─────────────────────────────────────────────────────────────────┐
│ 큰 데이터를 그대로 전송하면? │
├─────────────────────────────────────────────────────────────────┤
│ │
│ [대용량 파일 전송 중...]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
│ │
│ [다른 사용자 A] ─────────────× 대기 (차단됨) │
│ [다른 사용자 B] ─────────────× 대기 (차단됨) │
│ │
│ → 네트워크 대역폭을 독점하여 다른 통신 차단! │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 패킷으로 나누어 전송하면? │
├─────────────────────────────────────────────────────────────────┤
│ │
│ [패킷1]─→[패킷2]─→[패킷3]─→[패킷4]─→ ... │
│ ↓ ↓ ↓ ↓ │
│ [사용자 A 패킷] [사용자 B 패킷] ← 번갈아가며 전송 │
│ │
│ → 여러 사용자가 네트워크를 공평하게 사용! │
└─────────────────────────────────────────────────────────────────┘패킷의 구조
┌─────────────────────────────────────────────────────────────────┐
│ 패킷 (Packet) │
├──────────────┬──────────────────────────┬───────────────────────┤
│ 헤더 │ 데이터 │ 트레일러 │
│ (Header) │ (Payload) │ (Trailer) │
├──────────────┼──────────────────────────┼───────────────────────┤
│ • 출발지 주소 │ │ • 오류 검출 코드 │
│ • 목적지 주소 │ 실제 전송 내용 │ (CRC 등) │
│ • 순서 번호 │ │ │
│ • 프로토콜 │ │ │
└──────────────┴──────────────────────────┴───────────────────────┘패킷 전송 과정
송신측 (보내는 컴퓨터)
┌─────────────────────────────────────────┐
│ 원본 데이터: [ 큰 이미지 파일 ] │
│ ↓ 분할 │
│ 패킷들: [1] [2] [3] [4] [5] [6] │
│ ↓ ↓ ↓ ↓ ↓ ↓ │
└─────────────────────────────────────────┘
↓
네트워크 전송
(순서 뒤바뀔 수 있음)
↓
수신측 (받는 컴퓨터)
┌─────────────────────────────────────────┐
│ 도착한 패킷: [3] [1] [5] [2] [6] [4] │
│ ↓ 재조립 (순서 번호로) │
│ 원본 데이터: [ 큰 이미지 파일 ] │
└─────────────────────────────────────────┘패킷 손실과 재전송
송신측 수신측
│ │
│──── [패킷 1] ─────────────→│ ✓ 수신 확인 (ACK)
│←─── ACK 1 ─────────────────│
│ │
│──── [패킷 2] ───────× (손실) │
│ (타임아웃 발생) │
│ │
│──── [패킷 2] ─────────────→│ ✓ 재전송 성공
│←─── ACK 2 ─────────────────│
│ │3. 대역폭 (Bandwidth)
네트워크에서 단위 시간당 전송할 수 있는 데이터의 최대량
대역폭 vs 실제 속도
| 용어 | 설명 | 비유 |
|---|---|---|
| 대역폭 | 이론상 최대 전송량 | 고속도로 차선 수 |
| 처리량 (Throughput) | 실제 전송량 | 실제 통과 차량 수 |
| 지연 (Latency) | 전송 지연 시간 | 출발~도착 시간 |
대역폭 단위
| 단위 | 크기 | 환산 |
|---|---|---|
| bps | bits per second | 기본 단위 |
| Kbps | 1,000 bps | 1 Kbps = 1,000 bps |
| Mbps | 1,000,000 bps | 1 Mbps = 1,000 Kbps |
| Gbps | 1,000,000,000 bps | 1 Gbps = 1,000 Mbps |
실생활 예시
| 용도 | 권장 대역폭 |
|---|---|
| 웹 브라우징 | 1~5 Mbps |
| HD 영상 스트리밍 | 5~10 Mbps |
| 4K 영상 스트리밍 | 25+ Mbps |
| 온라인 게임 | 3~6 Mbps (지연이 더 중요) |
| 화상 회의 | 3~4 Mbps |
4. 네트워크 구성 요소
하드웨어
┌─────────────────────────────────────────────────────────────────┐
│ 네트워크 장비 계층 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ [라우터] ←── 네트워크 간 연결 (IP 주소 기반) │
│ │ │
│ ↓ │
│ [스위치] ←── 같은 네트워크 내 연결 (MAC 주소 기반) │
│ │ │
│ ↓ │
│ [허브] ←── 단순 신호 전달 (브로드캐스트) │
│ │ │
│ ↓ │
│ [NIC] ←── 네트워크 인터페이스 카드 (랜카드) │
│ │ │
│ ↓ │
│ [케이블] ←── 물리적 연결 (UTP, 광케이블 등) │
│ │
└─────────────────────────────────────────────────────────────────┘| 장비 | 역할 | OSI 계층 |
|---|---|---|
| 라우터 | 네트워크 간 경로 설정 | 3계층 (네트워크) |
| 스위치 | MAC 주소로 프레임 전달 | 2계층 (데이터링크) |
| 허브 | 신호 증폭 및 전달 | 1계층 (물리) |
| NIC (랜카드) | 컴퓨터-네트워크 연결 | 1~2계층 |
네트워크 토폴로지
버스형 (Bus) 스타형 (Star)
────●────●────●──── ● ●
│ │ │ \ /
│ │ │ [허브]
/ \
● ●
링형 (Ring) 메시형 (Mesh)
●───● ●───●
/ \ │\ /│
● ● │ × │
\ / │/ \│
●───● ●───●| 토폴로지 | 장점 | 단점 |
|---|---|---|
| 버스형 | 설치 간단, 비용 저렴 | 장애 시 전체 영향 |
| 스타형 | 장애 격리 용이 | 중앙 장비 의존 |
| 링형 | 균등한 접근 | 한 곳 장애 시 전체 영향 |
| 메시형 | 고가용성, 대체 경로 | 비용 높음, 복잡 |
5. 프로토콜 (Protocol)
네트워크에서 데이터를 주고받기 위한 약속된 규칙
프로토콜이 필요한 이유
프로토콜이 없다면?
┌──────────────┐ ┌──────────────┐
│ 컴퓨터 A │ ──── ??? ────→ │ 컴퓨터 B │
│ (한국어) │ │ (영어) │
└──────────────┘ └──────────────┘
서로 다른 언어 = 통신 불가
프로토콜이 있다면?
┌──────────────┐ ┌──────────────┐
│ 컴퓨터 A │ ── TCP/IP ──→ │ 컴퓨터 B │
│ (Windows) │ 공통 규칙 │ (Linux) │
└──────────────┘ └──────────────┘
같은 프로토콜 = 통신 가능주요 프로토콜
| 프로토콜 | 계층 | 역할 |
|---|---|---|
| HTTP/HTTPS | 응용 | 웹 페이지 전송 |
| FTP | 응용 | 파일 전송 |
| SMTP/POP3 | 응용 | 이메일 송수신 |
| DNS | 응용 | 도메인 → IP 변환 |
| TCP | 전송 | 신뢰성 있는 전송 |
| UDP | 전송 | 빠른 전송 (비연결) |
| IP | 네트워크 | 주소 지정, 라우팅 |
| Ethernet | 데이터링크 | LAN 통신 |
요약
| 용어 | 핵심 |
|---|---|
| 네트워크 | 2대 이상 컴퓨터의 연결 |
| 인터넷 | 전 세계 네트워크의 네트워크 |
| 패킷 | 데이터의 작은 조각 (순서 번호 포함) |
| 대역폭 | 최대 전송 속도 (bps 단위) |
| 프로토콜 | 통신 규칙 (TCP/IP 등) |
| LAN | 근거리 네트워크 |
| WAN | 광역 네트워크 |
패킷 전송 핵심
1. 큰 데이터 → 작은 패킷으로 분할
2. 각 패킷에 순서 번호 부여
3. 네트워크를 통해 개별 전송
4. 수신측에서 순서대로 재조립
5. 손실 시 재전송 요청