티끌모아 로키산맥 🏔
search
로ᄏl
배움에 끝은 없다... 개발 또한 그러하다.
Today
Yesterday
[네트워크] - 주소창에 naver.com을 치면 일어나는 일
면접 질문에 자주 나오는 질문이다. 올해 어디 공채에서도 이 문제가 나왔는데, 답을 못했던 문제이다. 이번 기회에 정리해보자!
대부분의 가정집에서는 DHCP로 인터넷 접속을 하고 있다. DHCP는 Dynamic Host Configuration Protocol의 약자로, 호스트의 IP 주소 및 TCP / IP 설정을 클라이언트에 자동으로 제공하는 프로토콜이다. 사용자의 PC는 DHCP 서버에서 사용자 자신의 IP 주소, 가장 가까운 라우터의 IP 주소, 가장 가까운 DNS 서버의 IP 주소를 받는다. 이후, ARP 프로토콜을 이용하여 IP 주소를 기반으로 가장 가까운 라우터의 MAC 주소를 알아낸다.
IP 정보 수신
위의 과정을 통해 외부와 통신할 준비를 마쳤으므로, DNS Query를 DNS 서버에 전송한다. DNS 서버는 이에 대한 결과로 웹 서버의 IP 주소를 사용자 PC에 돌려준다. DNS 서버가 도메인에 대한 IP 주소를 송신하는 과정은 약간 복잡하다.
사용자의 PC는 가장 먼저 지정된 DNS 서버(우리나라의 경우, 통신사별로 지정된 DNS 서버가 있다)에 DNS Query를 송신한다. 그 후 지정된 DNS 서버는 Root 네임서버에 www.naver.com을 질의하고, Root 네임서버는 .com 네임서버의 ip 주소를 알려준다.
그 후, .com 네임 서버에 www.naver.com을 질의하면 naver.com 네임서버의 ip 주소를 받고 그곳에 질의를 또 송신하면 www.naver.com의 IP 주소를 수신하게 된다.
이와 같이 여러번 왔다갔다 하는 이유는, 도메인의 계층화 구조에 따라 DNS 서버도 계층화 되어있기 때문이다. 이렇게 계층화되어 있으므로 도메인의 가장 최상단, 즉 가장 뒷쪽(ex .com, .kr)을 담당하는 DNS 서버는 전세계에 13개 뿐이다.
웹 서버 접속
이제 웹 서버의 IP 주소까지 알았다. Http Request를 위해 TCP Socket을 개방하고 연결한다. 이 과정에서 3-way hand shaking 과정이 일어난다. TCP 연결에 성공하면, Http Reqeust가 TCP Socket을 통해 보내진다. 이에 대한 응답으로 웹 페이지의 정보가 사용자의 PC로 들어온다.
[네트워크] - Cookie & Session (0) | 2020.09.25 |
---|---|
[네트워크] - HTTP, HTTPS (0) | 2020.09.25 |
[네트워크] - TCP (3 way handshake & 4 way handshake) (0) | 2020.09.24 |
[네트워크] - TCP (흐름제어/혼잡제어) (0) | 2020.09.24 |
[네트워크] - OSI 7 계층 (0) | 2020.09.24 |