- Published on
Network Overview
- Authors

- Name
- valery
0. 용어 정리
- 홉(hop): 데이터가 라우터를 하나 거칠 때마다 세는 단위. "다음 노드까지 한 번 건너뛴다"는 그 한 번이 1홉
1. 네트워크 개요
정보공유를 위해 통신망을 깔아놓고 그 위에서 단말들이 데이터를 주고받게 만든 시스템.
1. 구성요소
- 단말장비
- 데이터를 생산·저장·소비하는 주체.
- 서버, PC, 스마트폰
- 교환장비
- 단말들 사이에서 데이터를 중계하는 중간장비
- 라우터, 스위치
- 관리장비
- 내부망 지키는 시스템
- 방화벽
2. 라우터 vs 스위치
- 라우터는 서로 다른 네트워크를 잇고 IP 주소 보고 경로를 결정(라우팅).
- 스위치는 같은 네트워크 안에서 단말들을 묶어주는 역할이고 경로 판단은 안한다.
그래서 라우터가 네트워크 계층, 스위치가 데이터링크 계층 장비로 갈림(2.네트워크 프로토콜에서 계속)
3. 발전사
美 국방부 ARPANET(71)에서 시작 → TCP/IP가 표준 프로토콜로 지정(82) → OSI 참조모델 발표(84) → ARPANET이 '인터넷'으로 개명(85) → 버너스리가 WWW로 웹페이지 표준화(90) → 현재는 모바일·보안·클라우드·IoT.
TCP/IP가 OSI보다 먼저 표준이 됐다.
현실에선 OSI 모델은 이론용으로 박제됐고 TCP/IP가 실제로 굴러감.
4. 동작원리
- PC가 "이 데이터 줘" 요청 메시지에 서버 IP를 적어서 가까운 라우터로 던진다
- 라우터가 목적지 IP 읽고 경로 검색해서 다음 라우터로 넘긴다
- 이걸 라우터들이 릴레이로 반복
- 서버가 요청 받고 데이터 만들어서 이번엔 목적지를 "요청한 PC의 IP"로 바꿔 다시 라우터로 던진다
- 역방향으로 릴레이 → PC가 받아서 화면에 띄운다.
- 라우터는 매 홉마다 목적지 주소를 새로 읽고 경로를 다시 검색
- 경로 전체를 미리 알고 보내는 게 아님
- 주소(IP)가 데이터 안에 들어가 있어야 이게 작동
5. 물리구성
건물 안 단말들 스위치에 UTP로 물린다
2. 네트워크 프로토콜
1. 프로토콜 정의
통신규칙, 데이터에 주소를 어디에 어떤 형식으로 적을지, 크기는 얼마로 자를지, 속도는 어떻게 맞출지 — 서로 미리 약속해둔 규칙 전부를 프로토콜이라고 한다
2. 계층화 필요성
네트워크는 단일 장비가 아닌 장비들이 결합되어 있는 시스템으로서 이 거대한 프로토콜들을 효과적으로 표준화하기 위하여 네트워크 동작에 따른 계층화된 모델이 필요하다
계층화의 장점
- 각 층이 독립적이라 문제 생기면 그 층만 들여다보면 된다.
- 새 기술 갈아끼울 때 그 층만 수정하면 된다
3. OSI 7계층
ISO가 84년에 내놓은 기능별로 7층 케이크처럼 쪼갠 OSI 모델
- 응용(Application) — 사용자가 직접 쓰는 서비스. HTTP, FTP.
- 표현(Presentation) — 암호화·압축·인코딩 등 데이터 형식 변환.
- 세션(Session) — 연결을 언제 열고 닫고 유지할지 관리.
- 전송(Transport) — 양 끝 단말의 포트끼리 연결, 신뢰성 보장. TCP/UDP.
- 네트워크(Network) — 서로 다른 망 넘어 경로 찾기. IP 주소, 라우터.
- 데이터링크(Data Link) — 같은 망 안에서 인접 장비끼리 전달. MAC 주소, 스위치.
- 물리(Physical) — 비트를 전기신호·빛으로 바꿔 선에 흘려보냄. 케이블, 허브.
캡슐화
- 송신단: 위(응용)에서 데이터가 출발해서 한 계단씩 아래로 내려간다, 각 층이 자기 헤더를 덧붙이면서.
- 수신단: 정반대, 아래(물리)에서 받아서 한 계단씩 위로 올라가며 각 층이 자기 헤더를 떼어내고 읽는다.
4. TCP/IP 모델
실제로 인터넷에 적용되는 계층 모델
OSI 7층을 현실에 맞게 4층으로 통합한 것이다
응용계층 = OSI의 응용 + 표현 + 세션 (위 3층을 하나로 뭉침).
전송계층 = OSI 전송 그대로 (TCP, UDP).
인터넷계층 = OSI 네트워크 (IP, ICMP, ARP).
네트워크접속계층 = OSI 데이터링크 + 물리 (LAN 카드, 드라이버).
3. 네트워크 계층
1. 역할
라우팅 담당. 송신자부터 수신자까지 데이터를 보낼 적절한 경로를 찾는 층
2. 주소체계
IP 주소
32비트짜리 소프트웨어적 주소
0~255 사이 십진수 4개로 표기(0.0.0.0 ~ 255.255.255.255).
MAC 주소
네트워크 어댑터(랜카드)마다 박혀 나오는 하드웨어 고유번호
48비트, 16진수 표기(ex: 00-21-85-53-50-66)
IP와 MAC은 상호 보완적이다.
TCP/IP 인터넷계층 프로토콜에 ARP(Address Resolution Protocol)가 바로 "이 IP를 가진 놈의 MAC이 뭐냐"를 알아내는 프로토콜
예시
- PC(A) → 라우터 R1 → 라우터 R2 → 서버(S), 이렇게 갈 때 IP는 처음부터 끝까지 출발지=A, 목적지=S로 고정.
- MAC은 홉마다 새로 쓰이기 때문에(라우터 2개, 라우터 수 +1) 총 3번 바뀌게 된다.
구간 1 (A → R1)
출발지 MAC = A의 MAC
목적지 MAC = R1의 (A쪽) 인터페이스 MAC
구간 2 (R1 → R2)
출발지 MAC = R1의 (R2쪽) 인터페이스 MAC
목적지 MAC = R2의 (R1쪽) 인터페이스 MAC
구간 3 (R2 → S)
출발지 MAC = R2의 (S쪽) 인터페이스 MAC
목적지 MAC = S의 MAC
4. IP 주소체계
1. IP주소 기본
1. 왜 필요한가?
인터넷에서 정보를 정확하게 전달하기 위한 유일한 식별자
2. 어떻게 생겼냐?
- IPv4는 32비트.
- 이걸 8비트(=1바이트)씩 4토막 낸 게 옥텟(Octet)
- 사람이 읽기 쉽게 십진수로 바꿔 점으로 잇는 표기가 DDN(Dotted-Decimal Notation)
- 각 옥텟은 8비트라 0~255 범위. 그래서 0.0.0.0 ~ 255.255.255.255.
2. 구조
Network ID와 Host ID의 경계가 클래스마다 다르다. 그리고 클래스는 첫 비트 패턴으로 갈린다
- Network ID(어느 동네냐)
- Host ID(그 동네 몇 호냐)
3. 클래스
| 클래스 | 첫 비트 | NetID 비트 | HostID 비트 | 1옥텟 범위 | 호스트 수 |
|---|---|---|---|---|---|
| A | 0 | 8 | 24 | 0~127 | 2²⁴−2 = 16,777,214 |
| B | 10 | 16 | 16 | 128~191 | 2¹⁶−2 = 65,534 |
| C | 110 | 24 | 8 | 192~223 | 2⁸−2 = 254 |
호스트 수에서 -2 하는 이유: Host ID가 전부 0이면 그건 "네트워크 ID 자체"를 가리키는 주소라 못 쓰고, 전부 1이면 "브로드캐스트(그 망 전체에 뿌리기)" 주소라 또 못 쓰기 때문에 2개를 뺀다.
4. 왜 굳이 NetID / HostID로 나누는 이유
- 제한된 IP를 효율적으로 사용하기 위해서
- 그룹화하면 라우팅이 빨라져서
5. 서브넷팅
- IP주소를 분할하여 2개 이상의 소규모 네트워크로 구성하는 것
- 쪼개는 이유: 큰 망 하나를 통째로 쓰면 IP낭비가 심하고 브로드 캐스트 트래픽도 한덩어리로 다 퍼져서 비효율적이기 때문에
IP주소를 쪼개는 방법
Host ID 앞쪽 비트 몇 개를 떼어다가 "서브넷 번호"로 쓰는 거 N비트를 빌리면 2ᴺ개로 쪼개져.
예시
C 클래스(197.90.21.0)를 4개로 나눈다고 치자. 4 = 2², 그러니 앞 2비트를 빌린다. 마지막 옥텟(Host ID)의 앞 2비트 조합이 4가지:
00 000000 → 0 → 197.90.21.0
01 000000 → 64 → 197.90.21.64
10 000000 → 128 → 197.90.21.128
11 000000 → 192 → 197.90.21.192
6. 서브넷 마스크
- 32비트 중 어디까지가 Network ID인지 표시하는 값
- 규칙: Network ID 자리엔 1, Host ID 자리엔 0

7. 임의의 IP가 어느 서브넷 소속인지 찾는 방법
문제: 192.168.4.67/26은 어느 서브넷 소속이냐?
규칙: IP와 마스크를 비트끼리 AND 때리면 Network ID가 나온다
IP 192.168.4.67 11000000 10101000 00000100 01000011
Mask /26 11111111 11111111 11111111 11000000
─────────────────────────────────── AND
NetID 11000000 10101000 00000100 01000000
= 192 168 4 64
8. 호스트 수 구하기
2^(남은 호스트 비트) − 2.
192.168.4.64/26 동네를 풀어보면:
네트워크 ID 주소(동네 대표 주소): .64 (호스트 비트 전부 0) (네트워크 id와는 다름 네트워크 id = 26임)
브로드캐스트: .127(111111) (호스트 비트 전부 1, 64+63)
쓸 수 있는 호스트: .65 ~ .126 = 62개
9. IPv6, IPv4
IPv6
- IP 부족 문제 및 기존 IP 프로토콜의 문제 해결하기 위해 개발
- 현재는 가상 IP 등의 방법으로 IP 부족 문제를 해결하고 있음
- 32bit의 IPv4의 주소를 128bit로 확장하여 주소의 개수가 큰 폭으로 증가
- 주소의 표현 : 4개의 16진수의 숫자들이 하나의 그룹을 형성하고, 8개의 그룹으로 하나의 주소를 표현
- 기존 IPv4와의 호환성을 최대로 하는 방향으로 설계
5. 라우팅
1. 정의
데이터를 가장 빠르고 효율적으로 보낼 경로를 판단하는 게 라우팅이고, 그걸 하는 장치가 라우터
그 경로 정보를 누가 등록하냐로 정적/동적이 갈린다
2. 정적 vs 동적
| 구분 | 정적 라우팅 (Static Routing) | 동적 라우팅 (Dynamic Routing) |
|---|---|---|
| 경로 등록 | 관리자가 손으로 입력 | 라우터끼리 자동 교환 |
| 장점 | 단순, 오버헤드 0, 예측 가능, 보안 유리 | 망 변화·장애에 자동 적응, 우회 가능 |
| 단점 | 망이 커지면 관리 지옥, 장애 시 수동 대응 | 프로토콜 오버헤드(대역폭·CPU), 구성 복잡 |
| 적합 | 소규모·경로가 고정된 망 | 대규모·자주 변경되는 망 |
3. 라우팅 테이블
정적이든 동적이든 라우터는 "라우팅 테이블"을 보고 다음 어느 라우터로 보낼지 판단한다.
라우터는 들어온 패킷의 목적지 IP를 테이블의 (NetID + 마스크)랑 맞춰보고(아까 한 AND 연산) 일치하는 동네로 가는 포트로 밀어낸다.
구성요소
- 목적지 네트워크 ID (어느 동네냐)
- 서브넷 마스크 (그 동네 경계가 어디까지냐)
- 인터페이스 또는 next hop 주소 (그럼 어느 포트로/누구한테 던지냐)
4. 동적 프로토콜 — RIP vs OSPF
경로결정의 요소
- 라우터를 몇 개를 거치는가?
- 데이터를 목적지까지 보내는데 시간이 얼마나 걸리는가?
- 한번에 얼마나 많은 데이터를 보낼 수 있는가?
- 어떤 경로를 안정적으로 이용할 수 있는가?
- 특정 시점에 트래픽이 과하게 사용되지 않는가?
RIP vs OSPF
| 구분 | RIP | OSPF |
|---|---|---|
| 방식 | Distance-Vector | Link-State |
| 경로 기준 | 홉 수(거친 라우터 개수) 최소 | 비용(Cost) 최소 |
| 비용 산정 | 홉 수만 고려 | 대역폭·왕복시간·신뢰성 등 링크 상태 기반 |
| 교환 범위 | 인접 라우터하고만 교환 | 지역 내 전체 라우터의 경로 정보 공유 |
| 경로 계산 | 단순 거리 벡터 방식 | 최단 경로 알고리즘으로 비용 계산 |
| 한계 | 최대 15홉, 16홉 = 도달 불가 | 무겁고 복잡하며 계산 부담 존재 |
참고
BGP(Border Gateway Protocol)는 AS(자율 시스템) 사이를 잇는, 인터넷 백본을 굴리는 프로토콜
IGRP는 시스코 독자 프로토콜이고 지금은 거의 안 쓴다.
6. 전송계층(TCP, UDP)
지금까지 네트워크 계층이 "어느 컴퓨터까지 보낼까" 였다면 전송계층은 그 위에서 "컴퓨터의 어느 프로그램한테 줄까 를 담당" 그리고 그 프로그램을 지목하는 게 포트(port)
1. 대표적인 기능
- 흐름제어: 수신자가 감당할 속도에 맞춰 송신 속도 조절 (수신자 안 터지게)
- 오류제어: 빠지거나 깨진 데이터 확인하고 복구
- 혼잡제어: 네트워크 막힘 상태 보고 보낼지 말지 조절 (네트워크망 안 터지게)
2. 대표적 프로토콜: TCP(연결형), UDP(비 연결형)
3. TCP(Transmission Control Protocol)
- 연결형 서비스 지원(신뢰성 보장, 무겁다, ex: 전화(연결하고 통화))
- 연결형이란: 송수신 포트가 먼저 논리적 연결을 수립하면, 그 연결을 끊지 않고 스트리밍으로 쭉 데이터를 흘려보내는 방식
- 응용계층이 준 데이터를 **세그먼트(Segment)**라는 블록으로 쪼개서 IP 계층에 넘긴다
- 3단계의 과정으로 송수신 단말이 연결된다
접속 구축 → 접속 유지 → 접속 해제
(오류/흐름/
혼잡 제어)
1. 접속구축
- Three-Way Handshake를 통해 연결
Three-Way Handshake 과정
- SYN 패킷은 | Src | Dst | Seq | Ack | Flag | 으로 이루어져 있다.
- SYN-ACK 패킷도 동일하게 생겼다. 차이점은 수신단말이 보낸다는 것.
예시
① SYN A→B "연결하자, 내 시작번호 Seq=1200"
Seq=1200, Ack=0, Flag=SYN
② SYN-ACK B→A "오케이(=네 SYN 받음), 내 시작번호 Seq=4800"
Seq=4800, Ack=1201, Flag=SYN+ACK
③ ACK A→B "오케이(=네 SYN-ACK 받음), 시작하자"
Seq=1201, Ack=4801, Flag=ACK
Seq(1200, 4800)는 양쪽이 각자 임의로 정한 값
Ack 번호 = 상대한테 받은 Seq + 1.
③에서 A의 Seq가 1201인 건, ②에서 B가 "다음 1201 줘"라고 했으니 그대로 1201로 맞춰 보내는 거
- 왜 굳이 3번인지
- ①→② 거치면: A는 "B가 내 신호 받았구나"를 확인해 (A→B 방향 검증됨).
- ②→③ 거치면: B는 "A가 내 신호 받았구나"를 확인해 (B→A 방향 검증됨).
- 그래서 두 방향이 둘 다 확인돼야 양방향(전이중, full-duplex) 통신 준비가 끝난다
- 만약 ③가 이뤄지지 않으면? B는 A의 마지막확인을 못받아서 타임아웃 후 SYN-ACK를 재전송한다.
2. 접속유지
공통 토대
ACK번호의 의미: ACK N은 "N−1까지 다 잘 받았으니 다음은 N 줘"라는 뜻
슬라이딩 윈도우(W). ACK를 기다리지 않고 한꺼번에 날릴 수 있는 세그먼트 개수.
- W=3이면 한번에 3개까지 연속으로 쏠 수 있고 ACK를 받으며 창을 민다
1. 오류제어
ACK-재전송 (Go-Back-N)
보냄 DATA1,2,3 → 받음 ACK2,ACK3,ACK4 ("DATA 3까지 다 받음")
보냄 DATA4,5,6
DATA5가 도중에 유실 ✗
수신자: DATA4 받음 → ACK5 ("다음 5 줘")
DATA6 옴 → 근데 5를 기다렸으니 버림, 또 ACK5
DATA7 옴 → 또 버림, 또 ACK5 ← 중복 ACK
송신자: 두 번째 ACK5 보고 "5가 빵꾸났구나" → DATA5 재전송
수신자: DATA5 받음 → ACK6
- 수신자는 순서 어긋난 놈(6,7)을 그냥 버린다
2. 흐름제어(수신자가 속도를 정한다)
- 수신자가 자기 버퍼 여유 크기(=윈도우 크기 W)를 ACK 패킷에 적어서 보낸다. 송신자는 그 값보다 더 많이 안 쏜다.
- 수신자 버퍼가 차면 W를 줄여서 ACK 패킷에 적어서 보낸다 → 송신자 느려짐
3. 혼잡제어(네트워크가 속도를 정한다)
ACK가 제때 오는 정도로 망 혼잡을 파악해서 W를 조절
아래는 혼잡 제어 순서
1. 알고리즘 Slow Start
작은 W에서 시작해 ACK 받을 때마다 **지수적(2배씩)**으로 키운다. 망이 얼마나 받아주나 빠르게 떠보기.
2. 알고리즘 threshold(임계치) 도달
지수적으로 키우다가 임계치에 도달하면 Congestion Avoidance로 전환 후 **선형(+1씩)**으로 조심조심 키운다.
3. 타임아웃 발생(=패킷 유실=혼잡 신호)
W를 확 떨궈버리고 임계치도 절반쯤으로 재설정. 그리고 다시 Slow Start
4. 최종 W = min(흐름제어 윈도우, 혼잡제어 윈도우)
송신자는 윈도우를 두 개 들고 있다 — 수신자가 정해준 흐름제어 윈도우, 망이 정해준 혼잡제어 윈도우.
둘 중 더 작은 값으로 실제 W를 잡는다. 왜냐, 수신자도 안 터뜨리고 네트워크도 안 터뜨리려면, 더 빡빡한 쪽 제약을 따라야 하니까
3. 접속해제
Four-Way Handshake 방식으로 이루어짐
① FIN 송신→수신 "나 보낼 거 끝났어, 연결 끊자"
② ACK 수신→송신 "알았어" (그리고 자기 통신 끝날 때까지 대기)
③ FIN 수신→송신 "나도 다 끝났어, 끊자"
④ ACK 송신→수신 "알았어"
- 4번인 이유
- A가 "나 끝났어(FIN)" 했을 때, B는 일단 "알았어(ACK)"는 바로 보내지만 — B는 아직 보낼 데이터가 남아 있을 수 있기 때문에 FIN, ACK를 따로 보내야해서 4단계다
4. UDP
- 비연결형
- TCP가 전화라면 UDP는 확성기 방송
- 헤더 구조가 훨씬 간단하고, 오류제어·흐름제어·혼잡제어를 아예 안 한다.
- 그래서 신뢰도는 낮지만 빠르고 가볍다
- 용도: 동영상 스트리밍, DNS, NTP(시간서버), 제어신호.
5. TCP vs UDP
| 항목 | TCP | UDP |
|---|---|---|
| 서비스 | 연결형 | 비연결형 |
| 수신 순서 | 송신 순서와 동일하게 보장 | 뒤바뀔 수 있음 |
| 오류·흐름·혼잡 제어 | 있음 | 거의 없음 |
| 속도 / 오버헤드 | 느리고 무거움 | 빠르고 가벼움 |
| 용도 | 웹, 파일 전송 | 스트리밍, DNS, 제어 신호 |
7. 무선 네트워크
1. 네트워크 분류 두 축
- 전송로로: 유선 vs 무선
- 크기로: LAN(건물·구내) < MAN(도시) < WAN(광역·국가)
무선 네트워크는 전파로 통신하는 망을 통칭하고, 종류로 Ad-Hoc / WMN / WSN가 있다.
2. AD-Hoc Network(인프라 없이 단말끼리)
- 기반시설(라우터·AP) 없이 이동통신장비만으로 구성
- 노드와 단말의 구분이 없다. 모든 단말이 동시에 중계기 역할을 함. 그래서 멀리 있는 단말한테도 옆 단말들 거쳐서 전달 가능 → 통신거리 제약 극복.
- 전부 무선이라 이동 중에도 통신 보장.
AD-Hoc Network의 반대 개념 Infrastructure 네트워크
AP·기지국 중심이라 단말들이 무조건 AP를 거쳐야 통신 — 집·회사 WiFi가 이거
Ad-Hoc 라우팅 — Table-Driven vs On-Demand (trade-off)
| 구분 | Table-Driven (Proactive) | On-Demand (Reactive) |
|---|---|---|
| 경로 확보 | 주기적으로 미리 모든 경로 정보를 유지 | 필요할 때만 경로를 탐색 |
| 장점 | 경로가 준비되어 있어 전송 지연이 적음 | 라우팅 오버헤드가 적음 |
| 단점 | 주기적 브로드캐스트로 오버헤드가 큼 | 경로 탐색 시 초기 지연이 발생 |
이동이 잦고 토폴로지가 수시로 바뀌며 통신이 드문드문하면 On-Demand
반대로 통신이 빈번하고 즉각성이 중요하면 미리 깔아두는 Table-Driven이 유리
3. WMN (Wireless Mesh Network) — 메쉬 백본.
- 대표 AP(게이트웨이)만 유선으로 인터넷에 물고, 나머지 무선 라우터들은 메쉬 노드가 돼서 자기들끼리 무선으로 다단 연결해 망을 펼친다
- 도시 전역 WiFi 깔 때 쓰는 방식
4. WSN (Wireless Sensor Network) — 센서 수집망.
- 무선 통신 되는 센서 노드들이 온도·소리·압력 같은 현상을 측정해서 **메인 노드(Sink Node)**로 보낸다.
- Sink Node가 데이터를 종합·해석하고 인터넷에 연결해 내보내는 구조
- 응용: 적 침입 알림, 공기오염·산불·산사태 감지.
- 기술: ZigBee, 6LoWPAN(IPv6 over Low-power WPAN), IoT.