1. 핵심 웹 통신 프로토콜 스택
🌐 DNS (도메인 네임 시스템)
인간이 식별하기 쉬운 문자열 형태의 도메인 주소를 컴퓨터가 라우팅할 수 있는 IP 주소 체계로 맵핑하는 분산 데이터베이스 시스템입니다.
- 재귀적 질의(Recursive Query) 작동
- A, CNAME, MX, TXT 레코드 분석
- 전 세계 13개의 루트 네임서버 노드 구조
🤝 TCP / 3-Way Handshake
전송 계층(Layer 4)에서 종단 간 연결을 설정하여 패킷 손실을 방지하고 신뢰성 있는 바이트 스트림 통신을 보장하는 절차입니다.
- SYN, SYN-ACK, ACK 플래그 교환
- 흐름 제어(Sliding Window) 및 혼잡 제어
- 정상 종료를 위한 4-Way Handshake
🔒 HTTPS (TLS / SSL 보안 암호화)
애플리케이션 계층 데이터를 통과시키기 전, 대칭키 및 공개키 암호화 방식을 결합하여 무결성, 기밀성, 인증을 제공하는 보안 통신 규격입니다.
- CA(인증 기관)를 통한 웹서버 공개키 검증
- TLS Handshake를 통한 세션키 생성
- 중간자 공격(MITM) 및 데이터 변조 차단
2. 엔드투엔드(End-to-End) 요청 처리 흐름
브라우저 URL 파싱 & HSTS 확인
입력된 문자열 스키마를 판별하고, 이전에 보안 접속 내역이 있다면 HTTP 요청을 강제로 HTTPS로 변환(HSTS 적용)합니다.
다계층 DNS 네임 래졸루션
브라우저 캐시 → OS Hosts 파일 → 로컬 DNS 서버 조회 순으로 탐색하며, 없을 경우 루트(. ) 서버부터 시작하는 반복적 질의를 수행해 IP 주소를 확보합니다.
커널 수준의 소켓 오픈 및 TCP 연결
확보한 대상 IP 주소와 목적지 포트(HTTP: 80, HTTPS: 443)를 이용해 OS 커널단에서 TCP 3-Way Handshake 세션을 엽니다.
TLS 세션 암호화 핸드셰이크
서버로부터 SSL/TLS 인증서를 받아 유효성을 체크하고, 디피-헬먼 또는 RSA 알고리즘 기반으로 통신에 사용할 대칭 세션키를 안전하게 교환합니다.
HTTP 요청 패킷 송신 및 파이프라이닝
암호화 통로 위로 브라우저가 정의한 HTTP Header(메서드, 쿠키, User-Agent 등)와 Body 스트림을 분할해 서버로 인캡슐레이션 전송합니다.
서버 사이드 프로세싱 및 DOM 브라우저 렌더링
웹 서버(GitHub Pages, Nginx 등)가 요청을 받아 200 OK 상태 코드와 함께 HTML/CSS 정적 자원을 반환하며, 브라우저는 DOM 트리를 생성해 화면에 최종 렌더링합니다.
3. 네트워크 계층별 매핑 데이터 구조
우리가 빌드한 웹 사이트가 전송될 때 각각의 데이터 단위(PDU)가 하향식으로 캡슐화되는 논리적 구조입니다.
| 계층 (Layer) | 데이터 단위 (PDU) | 주요 프로토콜 | 역할 및 장비 |
|---|---|---|---|
| L7. 응용 계층 | Data / Message | HTTP, DNS, FTP, SMTP | 사용자 인터페이스 및 네트워크 서비스 제공 (웹 브라우저) |
| L6. 표현 계층 | Data | TLS, SSL, JPEG, ASCII | 데이터 암호화, 복호화 및 포맷 압축/인코딩 변환 |
| L5. 세션 계층 | Data | RPC, NetBIOS, SSH | 응용 프로세스 간의 대화 유지 및 동기화 제어 |
| L4. 전송 계층 | Segment | TCP, UDP | 종단간(End-to-End) 신뢰성 있는 데이터 전송 및 포트 주소 관리 |
| L3. 네트워크 계층 | Packet | IP, ICMP, ARP | 최적의 경로 제어(Routing) 및 논리적 IP 주소 부여 (라우터) |
| L2. 데이터 링크 계층 | Frame | Ethernet, Wi-Fi | 물리적 인접 노드 간 신뢰성 있는 데이터 전송 (스위치, MAC 주소) |
| L1. 물리 계층 | Bit (0, 1) | Ethernet 전선, 광케이블 | 전기적, 기계적 신호로 비트 스트림을 실어 나름 (허브, 리피터) |
4. 프로젝트 기능 실습: 가상 DNS 레코드 조회기
도메인 이름을 입력하고 조회 버튼을 누르면 내부 자원 레코드(RR) 장부에서 매핑된 값을 시뮬레이션하여 보여줍니다.