네트워크의 도메인이나 호스트 이름을 숫자로 된 IP 주소로 해석( 반대의 경우도 해석 )해주는 Network Service이다.
DNS Service를 제공하는 서버이다. IP에 대한 도메인을 저장하고 있기 때문에, 일종의 전화번호부 역할을 하며 DNS Server가 모여 DNS( Domain Name System )을 구성한다. (분산형 데이터베이스 시스템)
DNS Server는 어떤 프로토콜 위에서 동작할까?
DNS 서버는 보통 UDP 프로토콜을 이용한다. TCP를 이용하면 신뢰성을 보장하기 위한 3-way handshaking 작업이 요청마다 일어날 것이고 많은 요청을 받아들이는 DNS 서버 입장에서 부하가 생길 수 있다.
또 DNS 요청은 매우 작아서 UDP 세그먼트에 내에 잚 맞는다. 하지만! 데이터 전송량이 커서 신뢰성 있는 데이터를 보장받기 위해 TCP를 사용하기도 한다.
DNS (Domain Name Server) 를 조회한다.
요약 하자면
주소창에 url을 입력하면 DNS 서버를 조회해서 도메인에 해당하는 IP를 받고 해당 IP를 갖고있는 서버와 TCP 프로토콜 기반으로 세션을 수립하고 ( HTTPS는 추가적인 과정 거치겠지 ) 클라이언트는 서버로부터 자원을 받은 뒤 세션을 종료한다. 라고 할 수 있겠군.
CDN은 컨텐츠 전달 네트워크의 약자로 말 그대로, 컨텐츠를 전달하는 네트워크를 구성하는 것이다. 보통 웹 서버에 HTTP 요청을 하여 리소스를 가져오지만 웹 서버가 아니라 현재 사용자가 접속한 위치에서 가장 가까운 서버에 리소스를 캐싱 해놓고 보다 빠르게 가져오는 기법이다. 물론 네트워크를 구축하는데 비용이 들긴 하지만 만약 구축하게 되면, 정적 리소스를 보다 빠른 속도로 서비스할 수 있다.
즉, End Point 유저가 Origin 서버에 요청을 하게되면, 응답을 받는 시간도 길어지고 Origin 서버 입장에서는 여러 유저의 요청을 받아 들이면 부하도 심해질거야. 그러니 중간에 캐시서버를 여러개 만들어서 가까운 캐시서버가 서비스를 제공하면 부하도 줄어들고 사용자 경험도 증가하겠지~