CDNs
OTT 사업자가 가진 문제 중 storage, network bandwidth 문제를 극복한 server 구축 방식으로 등장한 네트워크
- enter deep : Client ISP network 안에
- bring home : 좀 더 윗단에 (관리는 쉽지만 client 입장에선 조금 느림)
enter deep 방식(하늘색 구름에 놓음)
(bring home은 파란 원에 놓는 방식. 파란 원은 ISP와 ISP를 연결한 third party-IXP: Internet Exchange Point나 POP-아랫층 ISP(custom ISP)가 좀 더 넓은 ISP(provider ISP)와 연결될 때 연결지점-에 둠)
- CDN stores copieds of content at CDN nodes
- subscriber requests content from CDN
- directed to nearby copy, retrieves content
- may choose different copy if network path congested
CDN content access: a closer look
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
Case study: Netflix
Bob이 넷플릭스의 영화를 보려고 함
(1) Bob은 Netflix 계정을 관리하는 서버에 접속, 인증
(2) (3) Bob은 Netflix가 대여한 Amazon cloud에서 Manifest file을 받아옴
(4) DASH streaming. 가장 가까운 CDN server들에서 영화 streaming
Push Caching 사용
Socket programming
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)
- Why down DNS use UDP not TCP?
- TCP: reliable (no loss, in-order, byte stream-oriented (connection estabilshed)
Socket programming with UDP
no "connection" between client & server
- no handshaking before sending data
- sender explicitly attaches IP destination address and
port # to each packerapplication process는 IP 주소와 포트번호를 항상 알고 있어야 함 - receiver extracts sender IP address and port # from
received packet
(sender receiver와 client server를 혼용하지 않도록 주의)
Client/server socket interaction: UDP
no closing UDP server socket (또다른 UDP 연결을 위해 기다림)
connection을 별도로 맺지 않기 때문에 connection setup과정이 필요 없으며, 포트번호를 항상 들고 있어야 하고 server는 port를 닫지 않는다.
Socket programming with TCP
- client must contact server
- server process must first be running
- server must have created socket (door socket/welcome socket) that welcomes client’s contact
- connection을 별도로 맺어줘야 하기 때문에 (socket을 하나 더 연다)
- client contacts server by:
- creating TCP socket, specifying IP address, port
number of server process - when client creates socket:
client TCP establishes connection to server TCP
- creating TCP socket, specifying IP address, port
- 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
'컴퓨터 네트워크' 카테고리의 다른 글
3.2 TCP & UDP (0) | 2021.06.12 |
---|---|
3.1 Transport Layer (0) | 2021.06.12 |
2.5 P2P & CDN & DASH (0) | 2021.06.12 |
2.4 DNS (0) | 2021.06.12 |
2.3 Web Cache & Mail (SMTP) (0) | 2021.06.12 |