DNS 서버(1.1.1.1, 8.8.8.8, ISP 제공)에게 해당 도메인에 대한 IP를 질의한다.
DNS 서버는
루트 네임서버로부터 해당 도메인의 TLD(top-level domain: .com .net 등을 관리하는 최상위 네임서버) 서버의 IP를 질의한다.
응답받은 TLD의 IP를 사용하여 해당 도메인의 IP를 질의한다.
캐싱된 IP가 있더라도, 유효기간이 만료(TTL)된 경우 캐시를 버리고 다시 질의함.
OS는 확보한 IP를 기반으로 해당 서버를 찾는다.
필요에 따라, https를 위한 ssl 핸드쉐이크를 수행한다. 패킷의 암호화를 목적으로 하며 공인인증서를 기반으로 비밀키를 공유한다.
응답을 받으면 브라우저는 렌더링한다.
더보기1. IP를 기반으로 서버를 찾는 과정 - LAN과 WAN
google.com의 IP를 확보하면 해당 IP가 같은 네트워크인지 아닌지를 판단한다.
같은 네트워크(LAN)라면 스위치를 통해 빠르게 MAC 주소를 찾는다. 그렇지 않을 경우(WAN) 라우터로 해당 서버를 찾아야 한다. 이때 OS는 게이트웨이(라우터)의 MAC 주소를 찾는다. 모두 ARP로 MAC 주소를 찾는다.
LAN의 판단 기준은 현재 class 가 아닌 서브넷마스크를 기반한다. 서브넷 마스크는 IP의 Net ID와 Host Id를 구분하는 기준이 되는데 서브넷 마스크만큼의 범위가 Net Id이다. 서브넷마스크를 기준으로 서버 IP와 클라이언트 IP가 같은 대역일 경우 LAN으로 판단한다.
class와 서브넷 마스크 관계 없이 해당 범위에서 첫 번째와 마지막 IP는 host로 사용할 수 없다. s class의 경우 마지막 8비트가 00000000일 경우 네트워크 주소로 할당하며 1111_1111은 broadcast로 할당하여 호스트로 할당할 수 없다. 서브넷 또한 마찬가지인데 /25의 경우 123.123.123.0 ~ 123.123.123.127를 범위로 하며 0과 127은 같은 이유로 사용하지 않는다. 서브넷을 나누면 나눌수록 낭비가 발생하지만, 하나의 네트워크 단위를 제공해야 하는 상황에서는 c class를 전체를 제공하는 것보다 서브넷으로 최대한 잘게 쪼개주는 것이 이득이다.
더보기2. ARP와 MAC주소
ARP란 같은 LAN에서 해당 IP를 가진 장치의 MAC 주소를 알기 위한 프로토콜이다. 스위치 등 네트워크 장비는 ARP 테이블을 가지고 있어 IP에 대한 MAC 주소를 제공한다.
MAC 주소는 장비에 할당된 고정된 값으로서 변경 가능한 IP와 함께 장비를 구분하는 기준으로 사용된다.
ARP는 ARP Request로 시작하는데 해당 질의는 브로드캐스트를 통해 수행된다. 같은 네트워크의 모든 서버에 요청하여 일치하는 서버가 해당 요청에 응답하는 형태로 처리된다.
네트워크가 다를 경우 게이트웨이를 통과하여 WAN으로 해당 IP를 가진 서버를 찾는다. 이 경우 게이트웨이에 대한 MAC을 필요로 하며 이때 마찬가지로 ARP를 사용한다.