2025-10-26
오늘 배운 것
네트워크 프로토콜
서로 다른 장치들이 데이터를 주고받기 위해 공통으로 정한 통신 규약(약속)
주로 IEEE / IETF 등 표준화 기구에서 정의한다.
예시 프로토콜
- IEEE 802.3 — 유선 LAN(Ethernet) 통신 표준
- HTTP — 웹 서비스에서 사용되는 애플리케이션 계층 프로토콜
- (추가 예) TCP, UDP, DNS, FTP, SMTP 등
프로토콜이 없다면 — 장치들은 “같은 언어”로 대화할 수 없다. 📡
인터넷 프로토콜 스위트 (TCP/IP 4계층 모델)
인터넷에서 컴퓨터들이 서로 통신하기 위해 사용하는 프로토콜들의 집합
TCP/IP 4계층 혹은 OSI 7계층 모델로 설명되며,
한 계층이 변경되어도 다른 계층에 영향을 주지 않도록 설계된 계층형 구조이다.
💡 예: TCP → UDP로 바꿔도 브라우저를 재설치할 필요가 없음 (독립성)
✅ TCP/IP 4계층 구조
1) 애플리케이션 계층 (Application Layer)
OSI의 Application + Presentation + Session 계층 역할 포함
→ 사용자에게 실질적인 서비스 제공
| 프로토콜 | 설명 |
|---|---|
| FTP | 장치 간 파일 전송 표준 |
| SSH | 암호화된 원격 접속 프로토콜 |
| HTTP | 웹 통신의 기반 프로토콜 |
| SMTP | 이메일 전송 프로토콜 |
| DNS | 도메인 ↔ IP 변환 |
2) 전송 계층 (Transport Layer)
송신자 ↔ 수신자를 연결하고 데이터 전송 품질 담당
(신뢰성 / 순서보장 / 흐름제어 등)
■ TCP — 신뢰성 기반 연결형
- 패킷 순서 보장
- 수신 확인(ACK)
- 가상회선 방식 (순서 동일)
- 3-Way Handshake (연결 성립)
- 4-Way Handshake (연결 종료 및 TIME_WAIT 이유 포함)
■ UDP — 비연결형 (빠르지만 보장 없음)
- 순서 보장 X / 수신 확인 X
- 단순, 가벼움 (스트리밍·DNS 등에 적합)
- 데이터그램 방식 — 패킷이 각자 다른 경로로 전송될 수 있음
3) 인터넷 계층 (Internet Layer)
데이터를 목적지 IP로 전달
→ 라우팅 책임, 신뢰성 보장 X
| 프로토콜 | 설명 |
|---|---|
| IP | 패킷 전달 (주소 지정) |
| ARP | IP → MAC 주소 변환 |
| ICMP | 오류보고 및 상태 확인 (ex. ping) |
4) 링크 계층 (Link Layer)
OSI의 Data Link + Physical 역할 포함
물리적 전송 및 MAC 기반 오류 검출·전송제어
■ 물리 계층 (Cable / 무선 전송)
- 유선 LAN (IEEE 802.3, 전이중 통신)
- 트위스트 페어 / 광섬유
- 무선 LAN
- 반이중 통신
- CSMA/CD (충돌 후 재전송)
- CSMA/CA (충돌 회피)
- 주파수: 2.4GHz(장애물강함/간섭많음) vs 5GHz(채널많음/선호)
- Wi-Fi : 무선 LAN 연결 기술
- BSS : 단일 AP 기반 근거리 통신
- ESS : 다수 BSS 연결 → 이동해도 끊김 없음
■ 데이터링크 계층 — Ethernet Frame 구조
| 필드 | 설명 |
|---|---|
| Preamble | 프레임 시작 동기화 |
| SFD | MAC 주소 시작 위치 |
| DMAC / SMAC | 목적지/출발지 MAC |
| EtherType | 상위 프로토콜 종류 (IPv4/IPv6 등) |
| Payload | 전달 데이터 |
| CRC | 오류 확인 |
🔁 캡슐화 & 비캡슐화 과정
- 캡슐화 : 상위 계층 데이터를 감싸며 각 계층의 헤더 추가
- 비캡슐화 : 반대로 상위 계층 향해 오며 헤더 제거
PDU (Protocol Data Unit) — 계층별 데이터 단위
| 계층 | 단위 |
|---|---|
| 애플리케이션 | Message |
| 전송 | Segment(TCP) / Datagram(UDP) |
| 인터넷 | Packet |
| 링크 | Frame / Bit |
TCP/IP는 “계층 분리”를 통해
안정성, 확장성, 호환성을 확보한 인터넷의 설계 철학이다. 🌐
네트워크 기기의 처리 범위 & 계층별 역할
상위 계층을 처리하는 기기는 하위 계층 데이터까지 처리 가능
그러나 하위 계층 기기는 상위 계층 데이터 해석 불가
애플리케이션 계층 (L7)
🔹 L7 스위치 (로드밸런서)
- 요청 내용을 애플리케이션 레벨(Headers/URL/Cookie 등) 로 분석하여 트래픽 분산
- 헬스 체크로 장애 서버 제외 → 안정성 확보
- 응용 트래픽 모니터링, 필터링 가능
L4 vs L7 차이
| 구분 | L4 스위치 | L7 로드밸런서 |
|---|---|---|
| 처리 계층 | 전송 계층 | 애플리케이션 계층 |
| 분산 기준 | IP/PORT | URL/HTTP/Headers/Cookies |
| 콘텐츠 인식 | X | O |
| 스트리밍/메시지 기반 | 부분적 한계 | 가능 |
L7 로드밸런서를 통해 서버 이중화 구현 가능 (가상 IP 기반 무중단 서비스)
인터넷 계층 (L3)
🔹 라우터
- 여러 네트워크를 연결
- 최적 경로 탐색 후 라우팅(포워딩)
🔹 L3 스위치
- 스위칭 + 라우팅 기능 (하드웨어 기반 → 빠름)
L2 vs L3 스위치 차이
| 항목 | L2 스위치 | L3 스위치 |
|---|---|---|
| 참조 테이블 | MAC 주소 테이블 | 라우팅 테이블 |
| 참조 주소 | MAC | IP |
| 처리 단위 | 프레임 | 패킷 |
데이터 링크 계층 (L2)
🔹 L2 스위치
- MAC 기반 프레임 전달
- 목적지 MAC 미등록 시 전체 포트로 브로드캐스트
- MAC 테이블 aging 기능 존재
🔹 브리지
- 서로 다른 LAN을 하나로 연결
- MAC 주소 기반 트래픽 분리/확장
물리 계층 (L1)
🔹 NIC (LAN 카드)
- 네트워크 장치의 물리적 연결 담당
- MAC 주소 보유
🔹 리피터
- 약해진 신호 증폭하여 더 멀리 전달
🔹 AP (Access Point)
- 유선 LAN ↔ 무선 LAN 연결
- 패킷을 복제해 무선 장치에 전달
요약: 상위 계층 장비는 하위 계층 역할을 포함하지만, 반대는 불가능하다.
즉, L7 장비는 L4/L3/L2 기능까지 가능하지만, L2 장비는 상위 계층 패킷을 이해하지 못한다. 🧭
ARP (Address Resolution Protocol)
IP 주소만 알고 있을 때, 해당 장치의 MAC 주소를 알아내기 위한 프로토콜
즉, IP ↔ MAC 사이를 연결하는 다리 역할을 한다.
동작 과정
- ARP Request (Broadcast)
- 장치 A가 네트워크 전체에 “이 IP 가진 사람 누구야? MAC 알려줘” 라고 브로드캐스트 전송
- ARP Reply (Unicast)
- 해당 IP를 가진 장치 B만 응답 자신의 MAC 주소를 유니캐스트로 장치 A에게만 전송
한 줄 요약
ARP는 “IP로 MAC을 찾는 전화번호부 같은 프로토콜”이다. 🔎
홉바이홉(Hop-by-Hop) 통신
IP 통신에서 패킷이 여러 라우터를 “한 단계씩” 거쳐 최종 목적지까지 도달하는 방식
개념 정리
- 각 라우터를 차례로 통과하는 모습이 “Hop”으로 표현됨
- 각 홉마다 라우팅 테이블을 참조해 다음으로 전달할 경로(Next Hop)를 결정
- 이렇게 연속적인 라우팅 과정을 통해 최종 목적지에 도착
라우팅 테이블 (Routing Table)
라우터에 저장된 “목적지까지 어떻게 가야 하는지” 기록된 표
- 각 목적지 네트워크에 대해 “다음 홉(Next Router)” 정보 보유
- 패킷을 어느 인터페이스로 내보낼지 판단하는 기준
게이트웨이 (Gateway)
서로 다른 네트워크 간의 통신을 가능하게 하는 관문
- 서로 다른 프로토콜/네트워크 사이의 변환·연결 역할
- 내부 LAN → 외부 Internet 이동 시 “출구” 역할 수행
한 줄 요약
홉바이홉 통신은 라우팅 테이블을 참고해 라우터를 하나씩 거치며 목적지까지 도달하는 방식,
이 과정에서 게이트웨이가 네트워크 간 경계를 연결해준다.
IP 주소 (Internet Protocol Address)
네트워크 상에서 장치를 구분하기 위해 부여되는 고유한 주소
IPv4 / IPv6 두 가지 방식 사용
IPv4 vs IPv6
| 구분 | IPv4 | IPv6 |
|---|---|---|
| 길이 | 32bit | 128bit |
| 표기 | 8bit × 4개 (예: 192.168.0.1) | 16bit × 8개 (예: 2001:0db8::1) |
| 배경 | 주소 부족 문제 존재 | 이를 해결 위해 확장 |
※ 질문에서 적으신 “IPv6 64비트”는 NAT64 / SLAAC 등 맥락이 있는 경우가 있어 일반 설명에서는 128bit로 표기합니다.
IPv4 — 클래스 기반 할당 (Classful Addressing, 구 방식)
A/B/C/D/E로 구분
- A / B / C 클래스 : 일반 일대일 통신에 사용
- Prefix(구분 비트): A=0 / B=10 / C=110
- D 클래스 : 멀티캐스트용
- E 클래스 : 연구/예비용
- 네트워크 주소 + 호스트 주소 구조
- 마지막 주소는 브로드캐스트 주소
- 사용하지 못하는 예약 주소가 많아 낭비 발생 → 비효율
DHCP (Dynamic Host Configuration Protocol)
네트워크 장치에 IP·게이트웨이·DNS 등의 설정을 자동으로 할당하는 프로토콜
- 라우터나 게이트웨이에 DHCP 기능 탑재 → 가정용 Wi-Fi도 자동배정
- 수동 설정 필요 없음
NAT (Network Address Translation)
내부 사설 IP ↔ 외부 공인 IP 변환하여 IP 부족 문제 해결
- 공유기 내부에서 많이 사용
- 여러 호스트가 공인 IP 하나로 인터넷 접속 가능
- 내부 IP를 외부에 노출하지 않아 기본적인 보안 효과 존재
NAT 단점
- 많은 사용자 동시 접속 시 속도 저하 가능
- 일부 P2P/VoIP/게임 서비스와 호환 문제 발생 가능
위치 추적 가능성
IP 주소는 “지역 네트워크 위치”를 나타내므로
동/구 단위까지 대략적 위치 추적이 가능하다. (정확한 집 주소는 아님)
한 줄 요약
IP 주소는 기기 식별을 위한 네트워크 주소이며, DHCP로 자동할당, NAT로 절약/보안,
IPv6로 확장하는 방향으로 인터넷은 진화해왔다.
HTTP/1.0 → HTTP/1.1 → HTTP/2 → HTTP/3 진화 정리
HTTP/1.0 — “요청마다 연결 1회” (High RTT)
- 한 연결당 하나의 요청만 처리
- 요청마다 TCP 3-way handshake → RTT 증가
- RTT(Round Trip Time) = 패킷이 왕복하는 시간
성능개선 꼼수들
| 기법 | 설명 | 한계 |
|---|---|---|
| 이미지 스프라이트 | 여러 이미지를 하나로 병합 후 position으로 표시 | 유지 보수 어려움 |
| 코드 Minify | 공백/개행 제거로 파일 크기 축소 | 구조적 개선 아님 |
| Base64 인코딩 | HTTP 요청 없이 문자열로 포함 | 파일 크기 약 +37% 증가 |
HTTP/1.1 — Persistent Connection (Keep-Alive)
- TCP 연결 1회로 여러 요청 처리 (keep-alive 기본 적용)
- 그러나 리소스 개수만큼 직렬 요청 → 대기 증가
- 문제: HOL Blocking, 무거운 헤더(압축X)
HTTP/2 — 멀티플렉싱 & 최적화 시대
SPDY 기반 개선 — 지연 시간 감소, 병렬성 강화
| 기능 | 설명 |
|---|---|
| 멀티플렉싱 | 하나의 TCP 연결에서 여러 Stream 병렬 처리 → HOL Blocking 해결 |
| 헤더 압축 (HPACK) | 허프만 코딩 기반 압축으로 오버헤드 감소 |
| Server Push | 요청 없이 서버가 리소스 선제 전송 |
HTTPS — SSL/TLS 기반 보안 HTTP
애플리케이션 계층과 전송 계층 사이에 SSL/TLS 추가하여 암호화 + 무결성 + 인증
SSL/TLS 특징
- 제3자의 도청/변조 차단
- Handshake로 보안 세션(1-RTT) 생성 후 데이터 송수신
- 사이퍼 스위트(프로토콜+암호+해싱 규약 조합) 기반
- 인증서는 CA(공인 인증기관)가 서명하여 신뢰성 보장
SEO 측면 이점
HTTPS 적용 사이트는 검색 랭킹 가산점
- canonical 설정으로 중복 URL 정규화
- 적절한 meta 설정으로 크롤링 효율↑
- 사이트맵 등록으로 인덱싱 정확도↑
구성 방식
- 서버에 직접 인증서 설치
- 혹은 LB/CDN(Nginx, Cloudflare) 앞단에서 SSL 처리
HTTP/3 — QUIC 기반 (UDP)
- TCP 대신 UDP 사용 → 3-way handshake 제거
- 첫 연결 1-RTT, 재접속 0-RTT 가능
- QUIC 자체가 전송+보안 통합
- Forward Error Correction으로 패킷 손실에도 성능 유지
- HTTP/2의 멀티플렉싱 외 HOL Blocking 개선 효과 유지
한 줄 종합 요약
HTTP는 지연 제거 → 병렬화 → 압축·Push → 보안·복원력 → 연결 시간 단축 방향으로 진화하고 있다.