본문 바로가기
TIL/Network

TIL D-96 애플리케이션 계층-DNS resolution, CDN

by 홍차23 2019. 10. 25.

2.1 네트워크 애플리케이션의 원리

2.2 웹과 HTTP

2.3 인터넷 전자메일

2.4 DNS-인터넷의 디렉터리 서비스

2.4.1 DNS가 제공하는 서비스

DNS는 (1) DNS 서버들의 계층구조로 구현된 분산 데이터베이스이고, (2) 호스트가 분산 데이터베이스로 질의하도록 허락하는 애플리케이션 계층 프로토콜이다.

 

2.4.2 DNS 동작 원리 개요 

DNS name resolution process

출처: https://raptor-hw.net/xe/know/17253

 

1) DNS client는 로컬DNS server에게 www.feelanet.com의 ip address를 요청하는 DNS 질의 메시지를 보낸다. 이 요청을 recursive query(재귀적 질의)라고 한다. 즉, 요청을 받은 서버가 ip address를 가르쳐주거나, 에러메시지를 반납하거나 둘 중 하나의 응답을 해야한다. 

2) DNS server는 cache 데이터베이스에 클라이언트가 요청한 정보가 있는지 확인해보고, 없다면 DNS root server에게 요청한다. 루트네임서버는 com도메인을 관리하는 TLD 서버의 정보를 제공한다. 이런 식으로 요청받은 100%의 정답이 아닌 부분적인 정보를 제공하고, 요청을 반복하면서 iterative queries를 보낸다. 

3) 여러 번의 질의를 통해 DNS client가 요청한 정보를 알게 된 DNS server는 www.feelanet.com 의 ip address를 전달한다.

4) 브라우저가 DNS로부터 ip address를 받으면, 브라우저는 ip주소와 그 주소의 80번 포트에 위치하는 HTTP 서버 프로세스로 TCP연결을 초기화한다.

 

Q. What is the difference between recursive and iterative DNS queries?

 

2.4.3 DNS 레코드와 메시지

DNS 분산 데이터베이스를 구현한 DNS 서버들은 호스트 네임을 IP주소로 매핑하기 위한 자원 레코드(resource record, RR)를 저장한다. 각 DNS는 하나 이상의 자원 레코드를 가진 메시지로 응답한다. 

(Name, Value, Type, TTL)

TTL 은 자원 레코드의 생존기간(자원이 캐시에서 제거되는 시간을 결정)이다.

 

Type=A, Name은 호스트 네임이고 Value는 호스트 네임에 대한 ip주소. Type A 레코드는 표준 호스트 네임의 ip 주소 매핑을 제공한다.

예) relay1.bar.foo.com, 145.37.93.126, A

 

Type=NS, Name은 도메인이고 Value는 도메인 내부의 호스트에 대한 ip주소를 얻을 수 있는 방법을 아는 책임 DNS 서버의 호스트 네임. 

예) foo.com, dns.foo.com, NS

 

Type=CNAME, Value는 별칭 호스트 네임 Name에 대한 정식 호스트 네임이다. 

예) foo.com, relay1.bar.foo.com, CNAME

 

Type=MX, Value는 별칭 호스트 네임 Name을 갖는 메일 서버의 정식 이름이다. 

예) foo.com, mail.bar.foo.com, MX

 

 

2.5 P2P 파일 분배

2.6 비디오 스트리밍과 컨텐츠 분배 네트워크

2.6.3 콘텐츠 분배 네트워크(CDN)

CDN 은 사용자가 인터넷상에서 가장 가까운 곳의 서버로 컨텐츠를 전송받아 트래픽이 특정 서버에 집중되지 않고 각 서버로 분산되도록 하는 기술이다.

 

-첫번째 철학: Enter Deep

akamai에 의해 주창된 것으로서 서버 클러스터를 세계 곳곳의 접속 네트워크에 구축함으로써 ISP의 접속 네트워크로 깊숙이 들어가는 것이다. 이 방식의 목적은 서버를 최대한 사용자 가까이에 위치시켜 사용자와 CDN서버 사이의 링크 및 라우터 수를 줄이고, 사용자가 경험하는 지연시간 및 처리율을 향상시키는 것이다. 문제는 고도로 분산된 설계로 인해 서버 클러스터를 유지 및 관리하는 비용이 커진다는 점이다.

-두번째 철학: Bring Home

limelight와 다른 회사들에 의해 적용된 것으로 보다 적은 수의 핵심 지점에 큰 규모의 서버 클러스터를 구축하여 ISP를 Home으로 가져오는 개념이다. 접속 ISP에 연결하는 대신, 이러한 CDN들은 일반적으로 그들의 클러스터를 인터넷 교환지점(internet exchange points, IXPs)에 배치된다. enter-deep에 비해 클러스터 유지관리 비용이 줄어드느 대신 사용자가 느끼는 지연시간과 처리율은 상대적으로 나빠진다.

 

Q. CDNs typically adopt one of two different server placement philosophies. Name and briefly describe them.

 

 

 

2.7 소켓 프로그래밍: 네트워크 애플리케이션 생성

2.8 요약

 

 

좋은 프론트엔드 개발자가 알아야할 것들>

*DNS resolution

: DNS(Domain Name Server) resolution is the process of translating IP addresses to domain names.

https://kb.webtrends.com/articles/Question/What-is-DNS-Resolution-1365448116431

 

What is DNS Resolution?

Products Webtrends Legacy Products Question Answer For products: Webtrends Enterprise 7.x Webtrends Professional 7.x Webtrends Small Business 7.x Webtrends Reporting Center 6.0x Webtrends Reporting Center 5.0x Webtrends Reporting Center 4.0x Last modified:

kb.webtrends.com

 

 

*CDN 사용

 

https://goddaehee.tistory.com/173

 

CDN(Contents Delivery Network) 이란?

[HTTP 기초] CDN 이란? 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ CDN(Contents Delivery Network) ] 입니다. : ) CDN - 지리,물리적으로 떨어져 있는 사용자에게 컨텐츠를 더 빠르게 제공할 수 있는 기술 -..

goddaehee.tistory.com

장점-> CDN을 사용함으로써 서버의 트래픽 부하 및 비용을 줄이고 사용자에게 빠른 서비스 제공 가능. 장애 확률도 낮출 수 있음.

단점-> 부트스트랩, 구글웹폰트 이런 해외cdn 을 사용하면 최소 일본, 미국 홍콩 다녀오느라 웹사이트가 느려진다고 한다.

폰트어썸 역시 마찬가지라서 아래 링크에서 해외cdn에서 로딩하지 않도록 하는 방법을 아래 글쓴 분이 공유해주셨다. 아..구글웹폰트에 이런 문제가 있었다니.

https://xetown.com/tips/377384

 

CDN 필요기술: 1. Load Balance(GSLB) 2. 컨텐츠를 배포하는 기술 3. CDN의 트래픽을 감지하는 기술

 

 

 

아래 두개는 내일 이어서 알아봐야겠다.

*여러 호스트 이름을 통한 리소스 요청 성능 향상

*HTTP헤더(expires, cache-control, if-modified-since)

 

+오늘은 합정 백년커피를 다녀왔다. 작업하기 좋은 카페.

+네트워크 양이 너무너무 많아서 부담스러웠는데 개발자로서 꼭 필요한 지식들을 하나씩 찾아가면서 공부하니까 재밌다. 

 

'TIL > Network' 카테고리의 다른 글

[Network] HTTPS와 SSL인증서  (0) 2020.12.03
[Network] HTTP 프로토콜  (0) 2020.12.03
TIL D-82 멀티스레딩  (0) 2019.11.07
TIL D-89 Best Effort  (0) 2019.10.31
TIL D-93 Application Layer  (0) 2019.10.27

댓글