네트워크 브라우저 주소창에 youtube.com을 입력하고 Enter를 누른다. 1~2초 후 영상 목록이 뜬다.
그 1~2초 동안 네트워크 안에서는 최소 다섯 개의 독립적인 시스템이 순서대로 작동한다. 이 글은 그 흐름을 처음부터 끝까지 짚는다.
키워드 : 네트워크 동작 원리, DNS, TCP, TLS, HTTP, 로드밸런서, 인터넷 작동 방식
1. 주소를 숫자로 바꾸는 일 : DNS
컴퓨터는 youtube.com이라는 문자를 이해하지 못한다. 네트워크에서 실제로 사용하는 주소는 142.250.196.78 같은 숫자 형식, 즉 IP 주소다.
youtube.com → IP 주소로 변환하는 과정을 DNS 조회(DNS Lookup)라고 한다.
흐름은 이렇다.
1. 브라우저가 먼저 자신의 캐시를 확인한다. 최근에 같은 주소를 조회한 적 있으면 저장된 값을 바로 쓴다.
2. 없으면 운영체제에 묻는다. OS도 자체 캐시를 갖고 있다.
3. 거기도 없으면 DNS 리졸버로 요청이 넘어간다. 보통 통신사(KT, SKT 등)나 Google(8.8.8.8)이 이 역할을 한다.
4. 리졸버가 최종적으로 IP 주소를 찾아 돌려준다.
이 과정은 빠르면 수 밀리초, 느리면 수백 밀리초가 걸린다. 체감상 “순식간”이지만, 내부에서는 여러 서버를 거치는 왕복 통신이다.
2. 연결을 맺는 절차 : TCP 3-Way Handshake
IP 주소를 얻었다고 바로 데이터를 보내는 게 아니다. 먼저 연결을 수립해야 한다.
인터넷의 기본 통신 규약인 TCP는 데이터를 보내기 전에 반드시 상대방과 “연결 확인” 절차를 밟는다. 이를 3-Way Handshake라고 부른다.
클라이언트 → 서버 : SYN “연결해도 돼?”
서버 → 클라이언트 : SYN-ACK “응, 나도 준비됐어”
클라이언트 → 서버 : ACK “알겠어, 시작하자”
세 번의 신호 교환이 끝나야 비로소 연결이 성립된다. 이 과정에서 발생하는 시간을 레이턴시(Latency)라고 하며, 서버가 멀리 있을수록 이 값이 커진다. 한국에서 미국 서버에 접속할 때 체감 속도가 느린 이유 중 하나가 바로 이 왕복 시간 때문이다.
3. 암호화 : TLS Handshake
현재 대부분의 웹사이트는 https://로 시작한다. 주소창 왼쪽의 자물쇠 아이콘이 그 표시다.
TCP 연결이 맺어지면 곧바로 TLS(Transport Layer Security) 협상이 시작된다. 이 단계에서 클라이언트와 서버는 암호화 방식을 합의하고, 서버의 신원을 인증서로 검증한다.
이 과정이 끝나야 실제 데이터가 암호화된 상태로 오간다. 누군가 중간에서 패킷을 가로채도 내용을 볼 수 없다.
TLS Handshake는 TCP Handshake 위에 추가로 발생하는 통신이다. 속도에 민감한 시스템에서 TLS 최적화가 중요한 이유가 여기 있다.
4. 요청과 응답 : HTTP
연결과 암호화가 완료되면 브라우저가 서버에 HTTP 요청을 보낸다.
GET / HTTP/2
Host: youtube.com
단순하게 보이지만, 이 한 줄짜리 요청이 서버 측에서는 복잡한 처리를 유발한다. 유튜브 같은 대형 서비스는 이 요청을 받는 서버가 하나가 아니다.
5. 요청을 나누는 장치 : 로드밸런서
유튜브에는 하루 수억 건의 요청이 들어온다. 이를 서버 한 대로 처리하는 건 불가능하다.
요청이 유튜브 인프라에 도달하면 가장 먼저 로드밸런서(Load Balancer)가 받는다. 로드밸런서는 들어오는 요청을 여러 서버에 분산시킨다. 특정 서버에 부하가 집중되지 않도록 조율하는 역할이다.
사용자 입장에서는 보이지 않지만, 이 장치가 없으면 서비스는 금방 다운된다.
정리
youtube.com Enter 한 번에 일어나는 일을 순서대로 나열하면 이렇다.
1. DNS : 도메인을 IP로 변환
2. TCP Handshake : 서버와 연결 수립
3. TLS Handshake : 암호화 협상
4. HTTP 요청 : 실제 데이터 요청
5. 로드밸런서 : 요청을 적절한 서버로 분배
각 단계는 독립적인 시스템이고, 각각 실패할 수 있다. 웹사이트가 안 열릴 때 “인터넷이 문제인가”라고 뭉뚱그리는 대신, 어느 단계에서 막혔는지를 파악하는 게 문제 해결의 시작이다.
자주 묻는 질문 (FAQ)
Q. DNS가 실패하면 어떻게 되나?
A. 브라우저는 IP 주소를 얻지 못해 연결 자체를 시작할 수 없다. “이 사이트에 연결할 수 없음” 오류가 바로 이 경우다.
Q. HTTP와 HTTPS의 차이는?
A. HTTP는 데이터를 암호화하지 않고 주고받는다. HTTPS는 TLS를 통해 암호화된 상태로 통신한다. 현재 대부분의 서비스는 HTTPS를 기본으로 사용한다.
Q. 로드밸런서는 어디에 위치하나?
A. 사용자의 요청이 서버 인프라에 처음 닿는 지점에 위치한다. 외부에서 들어오는 트래픽을 내부 여러 서버로 분산시키는 역할을 한다.
다음 글에서는 이 흐름 중 DNS를 더 깊이 들어간다. 도메인 등록부터 전파까지, 실제로 어떤 구조로 작동하는지를 다룬다.
Zerion – 시스템 중심의 인사이트