인터넷은 어떻게 동작하는가
인터넷은 어떻게 동작하는가
"브라우저에 google.com 을 치면 무슨 일이 일어나는가" 는 면접 단골 질문. 그 짧은 한 줄 안에 OSI 일곱 계층 · IP · DNS · TCP · TLS · HTTP 가 차례로 등장합니다. 이 글은 입문자가 큰 그림을 한 번 잡을 수 있도록 각 계층과 핵심 프로토콜.
1. 인터넷에 대한 이야기
1969 년 미국 ARPANET 의 4 개 노드 연결에서 시작. 1974 년 Vint Cerf 와 Bob Kahn 이 TCP / IP 를 제안했고, 1983 년 ARPANET 이 TCP / IP 로 전환된 날이 인터넷의 공식 생일로 자주 인용. 1989 년 Tim Berners-Lee 의 World Wide Web 제안으로 웹이 추가. 1995 년 미국이 백본 상업화를 허용한 뒤 폭발적으로 퍼짐.
2. OSI 7 계층 vs TCP / IP 4 계층
OSI 모델은 1984 년 ISO 가 정한 추상 모델. TCP / IP 는 실제로 구현된 모델로 더 단순:
| OSI | TCP / IP | 예 |
|---|---|---|
| 7. Application | Application | HTTP · DNS · SMTP · SSH |
| 6. Presentation | (포함) | TLS · 인코딩 |
| 5. Session | (포함) | 세션 관리 |
| 4. Transport | Transport | TCP · UDP · QUIC |
| 3. Network | Internet | IP · ICMP · 라우팅 |
| 2. Data Link | Link | 이더넷 · Wi-Fi |
| 1. Physical | (Link 안) | 케이블 · 광섬유 · 전파 |
각 계층은 위 계층에 서비스를 제공하고 아래 계층의 디테일을 숨김.
3. IP 주소
| 종류 | 형식 | 주소 공간 |
|---|---|---|
| IPv4 | 192.168.1.1 (32비트) |
약 43억 개 |
| IPv6 | 2001:0db8:85a3::8a2e:0370:7334 (128비트) |
사실상 무한 |
IPv4 는 1980 년대 정의됐고 주소 부족이 1990 년대부터 예고되어 NAT (공유기) 로 우회. IPv6 는 1998 년 RFC 2460 으로 표준화됐고 점진적으로 보급 중.
서브넷은 192.168.1.0/24 처럼. /24 는 앞 24 비트가 네트워크 식별, 뒤 8 비트가 호스트 식별. 이 서브넷 안에 256 개 주소.
특별한 주소:
127.0.0.1(IPv4) ·::1(IPv6) — 루프백. 자기 자신.192.168.x.x·10.x.x.x·172.16.x.x ~ 172.31.x.x— 사설 IP (집 · 사무실 내부).0.0.0.0— 전체 인터페이스. 서버를 이 주소에 바인드하면 모든 NIC 에서 받음.
4. DNS
Domain Name System 의 줄임말. Paul Mockapetris 가 1983 년 RFC 882 / 883 으로 처음 정의했고, 1987 년 RFC 1034 / 1035 가 현재 SSOT 의 기초. 사람이 외우기 쉬운 도메인을 IP 로:
www.example.com 을 조회한다고 할 때:
1. 브라우저 캐시 확인
2. OS 의 hosts 파일 · 캐시
3. ISP 또는 공용 (8.8.8.8 · 1.1.1.1) DNS 리졸버
4. 루트 서버 → .com TLD 서버 → example.com 권한 서버 의 순서로 재귀 질의
5. 응답 IP 를 받아 캐시
자주 만나는 레코드:
| 레코드 | 의미 |
|---|---|
A |
도메인 → IPv4 |
AAAA |
도메인 → IPv6 |
CNAME |
도메인 → 다른 도메인 (별칭) |
MX |
메일 서버 지정 |
TXT |
임의 텍스트 (SPF · DKIM · 도메인 검증) |
NS |
권한 네임서버 |
SOA |
영역 관리 정보 |
PTR |
IP → 도메인 (역방향) |
TTL (Time To Live) 은 캐시 유지 시간. 도메인 변경 직전에 TTL 을 짧게 줄여 두는 습관.
5. TCP 와 UDP
| 항목 | TCP | UDP |
|---|---|---|
| 연결 | 3-way handshake (SYN → SYN-ACK → ACK) | 없음 |
| 신뢰성 | 순서 · 재전송 보장 | 없음 |
| 흐름 제어 | 있음 (window) | 없음 |
| 오버헤드 | 큼 | 작음 |
| 용도 | HTTP/1·2 · SSH · 메일 · FTP | DNS · 게임 · 실시간 음성 / 영상 · QUIC |
TCP 의 3-way handshake:
client → server : SYN
client ← server : SYN-ACK
client → server : ACK
(이후 데이터 송수신)
QUIC (UDP 기반, HTTP/3 의 전송) 는 TCP 와 TLS 의 handshake 를 합쳐 한 번에 끝냄.
6. TLS
Transport Layer Security 의 줄임말. 1995 년 Netscape 의 SSL 2.0 에서 시작해 1999 년 IETF 가 TLS 1.0 (RFC 2246) 으로 표준화. 현재는 2018 년의 TLS 1.3 (RFC 8446) 이 권장.
대략의 과정:
- 클라이언트가 지원 가능한 암호 묶음 · 확장을 보냄 (
ClientHello). - 서버가 인증서와 선택한 암호를 보냄 (
ServerHello·Certificate). - 클라이언트가 인증서 체인을 검증 (CA 가 발급했는가, 만료되지 않았는가, 도메인이 일치하는가).
- 키 교환으로 세션 키를 만들고, 이후 통신은 그 키로 암호화.
TLS 1.3 은 이 과정을 1-RTT (재방문 시 0-RTT) 로 줄임.
7. 한 줄 요청의 풀스택 흐름
브라우저에 https://example.com 을 입력했을 때:
- 브라우저가 URL 파싱.
- DNS 로
example.com의 IP 조회. - TCP 또는 QUIC 연결.
- TLS 핸드셰이크.
- HTTP 요청 송신.
- 서버가 응답.
- 브라우저가 HTML 파싱 → CSS · JS 추가 자원 요청 → 화면 그리기.
8. 다른 길
- DNS over HTTPS (DoH) · DNS over TLS (DoT) — DNS 질의 자체를 암호화.
- HTTP/3 (QUIC) — TCP 대체.
- WireGuard · Tailscale — 모던 VPN.
- IPFS — 콘텐츠 주소 기반의 P2P 분산 저장.
9. 자주 쓰는 모양
기본 진단 도구:
# 연결성
ping example.com
ping -c 4 example.com # 4 번만 (mac · Linux). Windows: ping -n 4
# 경로 추적
# Mac · Linux
traceroute example.com
# Windows
tracert example.com
# DNS 조회
# Mac · Linux 권장
dig example.com
dig example.com MX +short
# Windows 기본
nslookup example.com
nslookup -type=MX example.com
# 포트 듣기 확인
# Mac · Linux
lsof -i :8080
ss -tlnp | grep 8080
# Windows
netstat -ano | findstr :8080
브라우저 DevTools 의 Network 탭이 실제 요청 흐름을 직관적으로 보여 줌.
10. 자주 걸리는 자리
DNS 캐시 — 도메인 변경 후 일부 사용자가 한참 옛 IP 를 보는 이유. TTL 만큼 기다리거나 OS 캐시 비우기.
- macOS —
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - Windows —
ipconfig /flushdns
NAT 안의 사설 IP 로는 외부에서 접속 불가 — 포트 포워딩 또는 프록시 (ngrok · Cloudflare Tunnel) 필요.
IPv6 가 켜진 환경에서 IPv4 만 바인드한 서버에 접근이 안 되는 경우 — 호스트를 :: 로 바인드.
로컬 호스트 이름 — localhost 와 127.0.0.1 은 보통 같지만 hosts 파일에서 다르게 매핑됐을 수 있음.
HTTPS 인증서 만료 · 도메인 불일치 — 브라우저가 빨간 경고. Let's Encrypt 의 자동 갱신을 까먹은 경우가 흔함.
하고픈 말
인터넷은 OSI 7 계층의 추상 위에 IP · TCP · DNS · TLS · HTTP 의 구체 프로토콜이 쌓인 구조. 하나의 URL 입력 뒤에 7 단계의 작업이 차례로. 운영자가 직접 다루는 건 보통 DNS 레코드 · TLS 인증서 · 포트 바인딩 셋. 나머지는 표준 위에 서 있어 자연스럽게 동작합니다.
Next
- browser-devtools
- (web-fundamentals 끝)
RFC 1034 / 1035 DNS · RFC 791 IPv4 · RFC 8200 IPv6 · RFC 8446 TLS 1.3 · Brief History of the Internet (Internet Society) · How DNS Works (howdns.works) · High Performance Browser Networking · Cloudflare Radar · DNSChecker 를 참고합니다.