Dev_Study/Network

[Network] 웹사이트 load 과정

LeeDaniel 2025. 8. 21. 16:04
1. URL 해석 & 소켓 준비
▪️웹브라우저가 URL(www.test.com)을 파싱
     →TCP 소켓을 만들 준비(에페머럴 포트 할당).

2. DNS 조회
(1) 브라우저/OS 캐시 확인 → 없으면
(2) 시스템 DNS 해석기(보통 KT DNS 또는 설정한 1.1.1.1/8.8.8.8)로 질의(UDP/TCP 또는 DoH)
     → A/AAAA 레코드(예: 27.101.45.121) 획득.
※ 이 단계 지연은 보통 1~20ms 수준(캐시 있으면 01ms).

3. 로컬 네트워크 통과
▪️PC → (유선 권장) → 집 공유기 → NAT 테이블에 매핑 생성.
     PPPoE를 쓰는 가정 회선이면 MTU 1492로 내려가고,
     MSS 클램핑이 동작(미설정 시 PMTU 문제가 생길 수 있음).

4. 접속망 → 백본 진입
▪️공유기/모뎀(ONU) → 동 단말 수를 묶는 OLT/스위치(지역 집선)
     → BNG/BRAS(가정용 가입자 게이트웨이)
     →KT 코어(백본/IP/MPLS)로 진입.
     이 구간은 다수 가입자 공유(오버서브스크립션) 구조라, 시간대에 따라 큐잉 지연·지터가 발생.

5. 인터넷 경로 선택(라우팅/피어링)
▪️
KT 백본에서 목적지까지의 경로를 결정(동일 KT망/타사/IX 경유).
     특정 홉(예: 11홉 xxx.xxx.xxx.xxx)에서 부하가 걸리면
     RTT가 8ms ↔ 60ms로 출렁일 수 있음.

6. TCP 3-way 핸드셰이크 (SYN → SYN/ACK → ACK)
▪️목적지 IP:포트에 연결.
▪️1 RTT가 기본적으로 소요. (지연이 낮을수록 유리)

7. TLS 1.3 핸드셰이크 + ALPN/SNI
▪️ClientHello(SNI=www.test.com) → 서버 인증서/키 교환
     → 암호화 확립.
▪️TLS 1.3은 기본 1 RTT, 세션 재개/0-RTT가 가능하나
     서버 정책에 따라 비활성일 수 있음(재실행/재접속 시 이득).

8. HTTP/2(or 1.1) 요청 전송
▪️쿠키/헤더 포함한 관련 요청 전송(XHR/Fetch/폼 POST 등).
▪️서버 측에서는 보통 로드밸런서/리버스 프록시(WAF 포함 가능)
     →애플리케이션→DB/캐시 단계를 거쳐 응답 생성.

9. 응답 수신 & 렌더링
▪️최초 바이트(TTFB)는
     대략 DNS + TCP + TLS + 서버처리 + 네트워크 RTT 누적 결과.
     이후 동일 커넥션을 재사용하면
     핸드셰이크 비용 없이 RTT + 서버 처리시간만으로 왕복.
728x90
반응형