CS

[CS / 네트워크] 네이버 접속 과정으로 이해하는 네트워크 프로세스(TCP, OSI 7계층) - (2)

0htmdwns 2025. 10. 7. 00:17

이전 단계

https://0htmdwns.tistory.com/21

(1) URL 입력 & 요청 준비

(2) DNS 조회를 통한 도메인 -> IP주소 변환

 


3단계. TCP 3-Way Handshake (연결 수립)

이제 브라우저는 IP를 알았으니, 

223.130.195.95 (NAVER 서버)와 TCP 연결을 시도한다.

포트는 HTTPS니까 443번이다.

 

과정

1. 클라이언트 -> 서버 : SYN (연결 요청)

2. 서버 -> 클라이언트 : SYN + ACK(요청 수락)

3. 클라이언트 -> 서버 : ACK(응답 확인)

 

이로써 신뢰성 있는 연결이 수립된다.

이건 OSI 4계층(전송 계층) 수준의 동작이다.

 

*OSI 7계층 기준 요약

더보기
계층 역할 예시
7 응용 HTTP 요청/응답 GET / , HTML
6 표현 TLS 암호화 / 복호화 SSL 세션
5 세션 연결 관리 세션 키 유지
4 전송 TCP 3-Way Handshake
3 네트워크 IP 라우팅 223.130.195.95
2. 데이터 링크 MAC 주소, ARP 프레임 전달
1 물리 전기 신호 / 무선 신호 실제 데이터 전송

4단계. TLS Handshake (암호화 세션 결정)

NAVER는 HTTPS를 사용하므로, 

이제 브라우저와 서버가 TLS(SSL) Handshake를 수행한다.

(TCP 연결 위에서 진행된다)

 

과정

1. ClientHello

  • 브라우저가 지원 가능한 암호화 방식 목록, 랜덤 값 전송

2. ServerHello

  • 서버가 암호화 스위트 선택 -> 인증서(naver.com의 공개키) 전달

3. 서버 인증 검증

  • 브라우저는 루트 CA 목록에서 서명 검증

4. 키 교환(Key Exchange)

  • ECDHE 등으로 세션 키 생성

5. Finished 메시지 교환

  • 암호화된 세션 완성

이제부터 모든 HTTP 데이터가 TLS로 암호화된 채널을 통해 전송된다.


5단계. HTTP 요청 전송

TLS 연결이 끝났으니, 브라우저는 서버에 HTTP 요청을 보낸다.

GET / HTTP/1.1
Host: www.naver.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

이 요청은 TLS로 암호화된 형태로 전송된다.

 

6단계. NAVER 서버의 처리

1. 로드 밸런서가 요청을 여러 웹 서버로 분산

2. 백엔드 서버가 정적 리소스(HTML, JS, CSS) 또는 동적 페이지 생성

3. HTTP 응답을 TLS를 통해 다시 클라이언트로 전송

 

7단계. 브라우저 렌더링

응답을 받은 브라우저는 이제 렌더링 엔진을 통해 페이지를 시각화한다.

 

렌더링 과정

1. HTML 파싱 -> DOM 트리 구성

2. CSS 파싱 -> CSSOM 트리 구성

3. DOM + CSSOM 결합 -> 렌더 트리(Render Tree)

4. Layout(배치) -> Paint(그리기)

5. JS 실행(V8 엔진)

 

이 과정에서 <img>, <script>, <link> 등이 있으면,

브라우저가 다시 DNS + HTTP 요청을 병렬로 수행한다.

 

 


학습 및 정리하며 궁금했던 것.

  • 브라우저에서의 도메인 접근은 다 OSI 4계층 수준의 동작인가?
  • OSI 4계층 수준의 동작을 더 자세히 알고싶다.