본문 바로가기
네트워크

컴퓨터네트워크 4. DNS, P2P,CDN

by MiaCoder 2024. 4. 15.

DNS domain name system

다수의 이름 서버 계층으로 구현된 분산 데이터베이스

에플리케이션 계층 프로토콜 호스트, 이름 ,서버가 이름을 확인하기 위해 통신함

 

DNS service

호스트 이름을 Ip주소로 변환, 호스트 에일리어싱(별칭)

 

DNS를 중앙집중화 하지 않는 이유

높은 트래픽, 유지관리 문제, 확장성 없음

 

DNS구성

name space,

데이터에 대한 이름 관련 규칙을 정의

name server,

name space의 트리구조와 정보 집합체를 관리하는 프로그램

해석기

name server로 부터 클라이언트 요청을 얻어내는 프로그램

 

name space

레이블을 점(.)으로 구분하면 최상위부터 게층적으로 소속관계를 나타냄

media.korea.com 에서 com은 기구 성격, korea는 기구 이름, media는 기구 내부조직 이름

기구성격 -> 기구 이름 -> 기구 내부 단위조직 이름

계층적 트리구조를 지원함

만약 www.amazon dlaus 루트에서 .com DNS를 찾음, -> .com DNS서버에서 amazon.com을 찾음

-> amazon.com DNS 서버에서 www.amazon.com  IP를 찾음

 

root name server 루트서버

ICANN

root dns domain을 관리함

TLD서버의 IP주소를 제공함

 

TLD(top level domain) 최상위 도메인 서버

.com, .org, .net, .edu  등 국가 도메인에 대한 서버

책임 DNS의 서버 IP를 제공함

 

책임 DNS 서버

호스트 이름을 IP주소로 매핑하는 공개적인 DNS레코드를 가지고 있는 서버

실제 도메인과 IP주소의 관계가 기록, 변경, 저장됨

기관이나 서비스 사용자에 의해 유지관리됨

 

local DNS

엄밀히 말하면 DNS 계층은 아님

각 ISP는 하나의 name server을 가짐

호스트가 DNS 쿼리를 만들 . 때 localDNS서버로 전송

이름 주소 변환쌍의 지역캐시를 가짐

호스트 쿼리를 DNS서버 게층으로 보냄

 

DNS name의 확인방법

반복 질의

로컬DNS서버가 rootDNS서버에 묻고, TLD DNS서버에 묻고, 책인 DNS서버에 묻는 것을 순서대로 반복함

 

재귀적 질의

로컬DNS서버는 root DNS서버에 묻고, rootDNS는 TLD DNS서버에 묻고, TLD DNS는 책임 DNS에 묻고

역순으로 돌아가 호스트에게 알려줌

 

Caching

name server은 매핑을 저장(caching)함

일정 시간이 지난 . 후사라짐

일반적으로 local name 서버에 저장됨

오래 된 주소일 수 있음(업데이트 필요)

 

DNS레코드

DNS서버들은 호스트이름을 IP주소로 매핑하기 위한 자원 레코드를 저장함(RR)

type A

name = 호스트 이름, value =ip주소

type NS

name = 도메인, value = 도메인에 대한 책임 DNS 이름

type Cname

name=정식이름에 대한 별칭이름 value = 정식 호스트 이름

type = MX

value = name과 관련된 메일 서버 이름

 

DNS 프로토콜

DNS쿼리와 응답은 모드 같은 format을 가짐

메시지 헤더

쿼리를 식별하는 16bit의 숫자

flags

쿼리 응답  등 각종 정보

 

DNS에 기록하기

DNS 등록기관(network solution)등에 networkutopia.com(예시)을 등록

 

DNS보안

DDos 공격

다량의 패킷을 보내 DNS응답을 정상적으로 할 수 없게됨

 

peer to peet 구조 (p2p)

서버에 최소한의 의존

end system이 직접 통신

peer이 다른 peer에 서비스를 요청하고, 다른 peer에 서비스를 제공함

- > 새로운 peer은 새로운 서비스용량과 수요를 가져오는 것

 

클라이언트 서버의 파일 분배

서버는 1개, peer은 N개, 파일 크기는 F일 때 배분시간, us서버 업로드 속도, di peer i의 다운속도 ui peer i의 업로드 속도

서버는 올릴때 NF의 용량을 올린다

서버 전송 -> 하나의 복사본을 보내는 시간 F/us, N개의 복사본을 보내는 시간 NF/us

클라이언트 -> dmin 최소클라이언트 다운 속도, 최대 클라이언트 다운로드 시간 F/dmin

클라이언트-서버가 N개의 클라이언트에게 F를 분배하는데 걸리는 시간

Dc-s > max(NF/us , F/dmn) NF를 서버가 올리는 시간, F를 클라이언트가 다운받는 시간 중 더 큰게 총 분배시간임

N에 비례해 증가함

 

P2P의 경우

서버 전송

적어도 하나의 복사본을 업로드 해야함 F/us

client

각 클라이언트는 파일 복사본을 다운로드 해야함 F/dmin

clients

전체 NFbits를 전달해야함 NF/( us + Σui )}

p2p를 통해 N개의 클라이언트에 분배하는 시간 max(F/us, F/dmin, NF/( us + Σui )})

 

N이 증가할 수록 p2p업로드 시간이 매우 좋아진다

 

P2P bit torrent

파일이. 256kb의 청크로 나누어짐

peer은 청크를 송수신함

torrent는 파일의 청크를 교환하는. peers의 그룹이다.

트래커가 peer을 추적함

 

토렌트에 합류

다른 peer로 부터 청크 축척 -> 트래커에 등록 peer의 subset에 연결

다운로드 하는 동안 다른 peer에게 청크 업로드

청크를 교환하는 peer을 변경 가능 

 

청크 요청 

주어진 시간동안 다양한 peer은 청크 subset를 가짐

Alice(다운로드 요청)는 가진 청크 리스트를 주기적으로 물어봄, 드문 것 먼저 방법을 통해 청크 요청

 

청크 전송

가장 빠르게 Alice에게 데이터를 제공하는 4개의 이웃 peer에게 청크를 전송함

10초마다 재계산 peer선택

30초마다 랜덤하게 다른 peer을 추가로 선택 후 청크 송신 -> 낙관적 활성화

이를 통해 더 빠른 교역 파트너를 찾아 파일을 휙득 . 할 수 있음

 

CDNS 

비디오 트래픽을 감당하는 법

동영상 비트 . 수감소를 위해 이미지 사이의 중복성을 이용

공간적 코딩 -> 같은 색은 색 정보와 반복 값만 전송함

시간적 코딩 -> 프레임 사이의 차이점만 전송

 

CBR

고정된 비디오 인코딩 속도를 가짐

VBR

공간적, 시간적 코딩 변화량에 따라 비디오 인코딩 속도가 변함

 

비디오 스트리밍

스트리밍 서버가 아직 비디오 뒷부분을 전송하는 동안 클라이언트는 비디오 앞부분을 재생함

연속제생 제약 - 클라이언트 재생이 시작되면 재생이 원래 타이밍과 일치해야함

그러나 네트워크 지연등 발생하면 비디오 재생 조건 만족을 위한 버파가 필요함

 

DASH( dynamic adaptive streaming over http)

서버

비디오를 여러 청크로 나눔, 각 청크는 다른 속도로 저장, 암호화됨, 매니페스트 파일 비트율에 따라느 각 버전의 URl제공

클라이언트

주기적으로 서버 클라이언트 사이 대역폭 측정

매니페스트 파일을 찾고 하나의 청크 요청 

즉 클라이언트는 대역폭에 맞는 매니페스트(정보저장파일)을 찾음 서버는 이에 맞는 URl을 제공

 

클라이언트는 청크를 요청하는 시간(버퍼 기아 ,overflow가 발생하지 않도록),

요청할 인코딩 속도(보다 많은 대역폭을 이용가능할 때 높은 품질 보장),

청크 요청 장소 클라이언트와 가깝거나, 옾은 대역폭을 가진 URL서버로 요청

 

스트리밍 비디오 = 인코딩 + DASH + playout buffering

 

CDNS 콘텐츠 분배 네트워크

단일 거대 서버인 경우 -> 지역적 거리문제, 대역폭낭비, 장애 위험, 확장 불가 문제로 불가능

CDN

지역적으로 다영한 장소에서 다양한 비디오를 저장, 제공 

endter deep - CDN서버를 많은 접속 네트워크에 깊숙히 구축

Bring home - 적은 수의 핵심지구에서 큰 규모의 서블 구축, ISP를 집으로 가져오는 개념

 

콘텐츠 분배 방법

CDN 노드에서 콘텐츠 복사본을 저장

구독자는 CDN으로 부터 콘텐츠 요구(혼잡도에 따라 다른 CND사용 가능)

 

일반적인 콘텐츠 접속 방법

1. 비디오를  URL로 요청

2. 로컬 DNS를 경유하여 URL처리

3. netcinemaDNS는 해당 URL에 대한 CNAME를 반환

4. 로컬 DNS로 CNAME 반환

5. 로컬 DNS가 사용자에게 CNAME반환

6. CNAME에 해당하는 서버로 비디오 요청 http를 통해 스트리밍

 

넷플릭스OTT의 경우

1. 넷플릭스 서버가 있음 사용자가 등록

2. 사용자 아마존 클라우드에 비디오 탐색 - 어떤 CND를 쓸지 정함

3. 매니패스트 파일이 특정 비디오를 위해 요청되고 반환됨

4. DASH서버가 스트리밍을 시작을 선택 사용자에게 접촉

 

 

'네트워크' 카테고리의 다른 글

네트워크 6.  (1) 2024.04.18
네트워크 5. 전송 계층  (0) 2024.04.16
컴퓨터 네트워크 3. 애플리케이션 계층  (1) 2024.04.15
컴퓨터네트워크 2. 응용계층  (0) 2024.04.15
컴퓨터네트워크 1. 기초  (0) 2024.04.14