테마
네트워크의 큰 그림 3
네트워크의 큰 그림 2에서 본 캡슐화(encapsulation)와 세 가지 주소가 실제 웹 요청 하나에서 어떻게 쓰이는지 따라간다. 브라우저는 이름을 IP(Internet Protocol, 인터넷 프로토콜) 주소로 바꾸고, TCP(Transmission Control Protocol, 전송 제어 프로토콜)로 연결을 맺고, 내용을 암호화해 요청을 보낸 뒤 응답을 받는다. 단계마다 어느 계층의 일인지 붙여 보면 앞에서 본 계층 모델이 한 흐름으로 이어진다.
한 번의 웹 요청이 지나는 길
브라우저 주소창에 https://www.example.com을 입력하면 지금까지 본 계층들이 차례로 일한다. 면접에서 가장 자주 나오는 네트워크 질문이 바로 이 흐름이다.
다이어그램 로딩…
- DNS(Domain Name System, 도메인 이름 시스템) 조회: 한 번 찾은 답을 저장해 둔 캐시(cache)를 먼저 보고, 없으면 대신 찾아 주는 DNS 서버인 리졸버(resolver)가 이름을 IP 주소로 바꿔 준다(DNS).
- TCP 연결: 그 IP 주소에서 HTTPS(HTTP Secure, 보안 HTTP)가 기본으로 쓰는 443번 포트(port)로 메시지 세 번을 주고받는 3-way 핸드셰이크(handshake)를 해 연결을 맺는다(TCP와 UDP).
- 암호화 연결: TLS(Transport Layer Security, 전송 계층 보안)로 서버 인증서(certificate)를 검증한다. 이후 데이터를 빠르게 암호화하려면 양쪽이 같은 키를 가져야 하므로, 암호화와 복호화에 같은 키를 쓰는 대칭 키를 이번 연결용으로 합의한다(HTTPS와 TLS 2).
- HTTP 요청·응답: 암호화된 연결로 요청을 보내고 HTML(HyperText Markup Language, 웹 페이지를 기술하는 언어) 응답을 받는다(HTTP의 기초).
- 이 모든 메시지는 아래 계층에서 캡슐화돼 IP 패킷(packet)으로 라우터(router)들을 건너고(IP와 라우팅 2), 각 구간에서는 ARP(Address Resolution Protocol, 주소 결정 프로토콜)로 찾은 MAC 주소(Media Access Control address, 매체 접근 제어 주소)로 전달된다(물리 계층과 데이터 링크 계층 2).
- 서버 앞에 CDN(Content Delivery Network, 콘텐츠 전송 네트워크)이나 요청을 여러 서버에 나눠 주는 로드 밸런서(load balancer)가 있으면 실제로 응답하는 것은 그 장비일 수 있다(프록시와 로드 밸런싱, CDN은 프록시와 로드 밸런싱 2).
HTTP/3를 쓰면 2·3단계가 UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜) 위에서 동작하는 QUIC(UDP 기반 전송 프로토콜) 연결 수립 한 번으로 합쳐진다(HTTP의 응용 2). QUIC은 연결을 맺으면서 암호화 합의까지 함께 하므로, 첫 요청을 보내기 전까지 오가는 왕복 횟수가 줄어든다.
면접 포인트
- "주소창에 URL을 입력하면?" → DNS 조회 → TCP 연결 → TLS 핸드셰이크 → HTTP 요청·응답 → 렌더링. 각 단계가 어느 계층인지 붙여 말한다.
- "HTTP/3에서는 무엇이 달라지나요?" → TCP 연결과 TLS 핸드셰이크가 UDP 위 QUIC 연결 수립 한 번으로 합쳐져 첫 요청 전 왕복이 준다.
