OTT(Over The Top) 사업자가 가진 가장 큰 challenging issue
OTT service: 인터넷을 통해 contents를 streaming (downloading 하며 동시에 processing)하는 service. 확보된 bandwidth가 아닌 인터넷망을 통해 서비스
그렇다면 content를 가진 server를 어디에 둬야할까?
how to stream content to hundreds of thousands of simultaneous users?
OTT 사업자가 가진 문제 중 storage, network bandwidth 문제를 극복한 server 구축 방식으로 등장한 네트워크
enter deep 방식(하늘색 구름에 놓음)
(bring home은 파란 원에 놓는 방식. 파란 원은 ISP와 ISP를 연결한 third party-IXP: Internet Exchange Point나 POP-아랫층 ISP(custom ISP)가 좀 더 넓은 ISP(provider ISP)와 연결될 때 연결지점-에 둠)
CDNs: Internet Server-Client communication as a service
Ex. watcha, 옥수수
(1) Bob이 영화보려고 netcinema.com에 영화 파일 주소를 요청함. netcinema.com/@#R*@#에)(url:hostname/filename)에 있다고 답변
(2) Bob의 Local DNS(LDNS)에게 파일 주소(url)인 netcinema.com/@#R*@#에)를 요청.
(3) LDNS는 .com DNS 서버에게 요청. .com은 netcinema.com의 Authoratative DNS Server의 hostname을 답변. Authoratative DNS Server는 KingCDN.com/23483r29를 답변 (CNAME
)
(4) 해당 도메인을 관장하는 DNS 서버에게 다시 요청. KingCDN.com의 주소를 받음
(5) LDNS가 해당 주소를 Bob에게 돌려줌
video는 HTTP를 이용해 KingCDN.com에서 오더라.
⇒ CNAME을 이용한 DNS redirection을 통해 server distribution
Bob이 넷플릭스의 영화를 보려고 함
(1) Bob은 Netflix 계정을 관리하는 서버에 접속, 인증
(2) (3) Bob은 Netflix가 대여한 Amazon cloud에서 Manifest file을 받아옴
(4) DASH streaming. 가장 가까운 CDN server들에서 영화 streaming
Push Caching 사용
socket: door between application process and end-end transport protocol
UDP: fast, simple
Why down DNS use UDP not TCP?
one time transaction (한 번만 묻고 답한다)
short msg (no need to setup connection)
TCP: reliable (no loss, in-order, byte stream-oriented (connection estabilshed)
no "connection" between client & server
no handshaking before sending data
sender explicitly attaches IP destination address and
port # to each packer
application process는 IP 주소와 포트번호를 항상 알고 있어야 함
receiver extracts sender IP address and port # from
received packet
(sender receiver와 client server를 혼용하지 않도록 주의)
no closing UDP server socket (또다른 UDP 연결을 위해 기다림)
connection을 별도로 맺지 않기 때문에 connection setup과정이 필요 없으며, 포트번호를 항상 들고 있어야 하고 server는 port를 닫지 않는다.
client must contact server
connection을 별도로 맺어줘야 하기 때문에 (socket을 하나 더 연다)
client contacts server by:
when contacted by client,
server TCP creates new socket for server process to
communicate with that particular client
이 새로운 소켓을 여는 과정(handshaking) 후에 client와 통신
allows server to talk with multiple clients
source port numbers used to distinguish clients
door socket과 dedicated된 socket 두 가지를 열고 관리
dedicated 된 socket을 생성하고 여는 과정이 UDP에는 없는 TCP connection setup 과정, connection이 끝나면 close
→ socket이 dedicated 되었기 때문에 end가 port 번호를 함께 전송할 필요 없음
TCP provides reliable, in-order byte-stream transfer (“pipe”) between client and server