오늘은 ALTO(Application-Layer Traffic Optimization)를 이용한 CDN 기술에 대해서 소개해 드리겠습니다.
CDN(Content Delivery Network)은 사용자(End User)가 요청한 content를 "사용자와 가장 가까운(closest) 곳에 위치한 캐시 서버(Edge Server)에서 전달"해 줌으로써,
(1) 통신사업자 입장에서는 Delivery Cost를 줄일 수 있고
(2) 사용자에게는 향상된 QoE(Quality of Experience)를 제공해 줄 수 있는 장점을 가지고 있습니다.
결국 CDN의 장점을 극대화 하기 위해서는 사용자의 content 요청(HTTP Request)을 수신한 Request Router가 "사용자와 가장 가까운 최적의 Edge Server를 선택" 할 수 있어야 하는데요. 이를 위해 필요한 정보를 Request Router에서 모두 관리할 수도 있고(CDN without ALTO), ALTO 서버와의 연동을 통해 관련 정보를 얻어 올 수도 있습니다(CDN with ALTO).
1. CDN without ALTO
먼저 ALTO 서버가 없는 환경에서의 CDN 구성입니다.
Request Router에는 각 지역(Region) 별로 분산 배치된 Edge Server의 IP 주소와 각 Edge Server 하단의 사용자 IP 대역이 등록되어야 하고, 또한 Edge Server로 부터 주기적으로 부하 상태(CPU load, Memory/Disk usage, Network bandwidth)를 보고 받아 각 Edge Server의 상태를 관리합니다.
본 구성의 단점은 운영자가 각 Edge Server 하단의 사용자 IP 대역을 일일히 Request Router에 등록 해 주어야 하고 또한 사용자 IP 대역이 변경될 때 마다 운영자의 수작업이 필요합니다(Operational Overhead). 그리고 IP 망의 사용자 IP 대역이 Request Router에 등록되어야 하므로 IP 망을 운영하는 NSP(통신 사업자)와 CDN 사업자는 항상 같은 회사이어야 합니다. (KT가 NSP이고, 네이버가 CDN 사업자인 상황에서, KT가 지역별 가입자 IP 대역을 네이버에게 줄리가 없죠)
2. CDN with ALTO
ALTO의 기본 개념은 IP 망에 ALTO 서버를 배치하고, ALTO 서버가 IP 망의 Routing Protocol에 참여하여(Passive Listening), IP 망의 Routing Topology(Network Topology & Routing Cost Info)를 읽어 와서 관리합니다. 즉, 운영자가 Request Router에 일일히 IP 대역을 등록할 필요 없이 ALTO 서버가 네트워크 정보를 자동으로 읽어 오는 것이죠.
CDN의 Request Router는 Edge Server의 부하 상태만 관리합니다.
그리고 Request Router(ALTO 클라이언트)는 ALTO 서버로부터 IP 망 정보를 받아와 (1) IP 망 정보와 (2) Edge Server의 부하 상태를 고려하여 이용자를 위한 최적의 Edge Server를 선택합니다.
2.1 Network Distance와 Sever Load를 고려한 최적의 Edge Server 선택 (1)
ALTO 서버와의 연동을 통해 최적의 Edge Server를 선택하는 과정은 아래와 같습니다.
2.1 Network Distance와 Sever Load를 고려한 최적의 Edge Server 선택 (2)
이 경우는 Request Router가 위와 동일한 Ranking 정보를 ALTO 서버로 부터 수신하지만, Highest Ranking인 Edge Server 1이 Overload 상태라서 두번째 Ranking인 Edge Server 2를 선정하는 과정으로 보여 주고 있습니다. (5 ~ 7번 과정)
2.2 Dynamic Network Information과 Sever Load를 고려한 최적의 Edge Server 선택
2.1절에서 보인 Network Distance(Link Cost)는 각 라우터의 link(interface)마다 설정된 cost(static한 값)에 의해 Ranking이 정해지기 때문에 IP 망의 동적인 트래픽 상태(e.g., link congestion)를 반영하지 못하는 단점이 있습니다.
본 절에서 보이는 Dynamic Network Information은 IP 망의 네트워크 상태를 주기적으로 모니터링하여 최상의 트래픽 품질을 제공할 수 있는 Edge Server를 선택할 수 있도록 하는 개념입니다.
이를 위해 사용자와 연결된 첫번째 라우터와 Edge Server가 연결된 라우터간에는 주기적으로 RTT(Round Trip Delay)와 Packet Loss 측정을 위한 Probe Packet이 송수신되고, 라우터는 SNMP를 통해 그 결과를 ALTO 서버에 주기적으로 보고합니다.
Request Router가 사용자 IP 주소와 Edge Server list를 ALTO 서버로 전달하면(2번 과정), ALTO 서버는 사용자와 Edge Server가 연결된 라우터 사이의 RTT 및 Packet Loss 값을 참조하여(3번 과정), 각 Edge Server에 대한 Ranking을 정해 Request Router로 전달해 줍니다(4번 과정).
3. Value of ALTO for CDNs
이와 같이 IP Network과 CDN(Application)간에 ALTO라는 abstraction layer를 제공하여,
(1) 더 이상 CDN에서 IP Network의 복잡한 정보를 설정, 관리할 필요가 없고,
(2) NSP 사업자와 CDN 사업자가 같은 회사일 필요가 없게 되었고
(3) NSP 사업자는 CDN 사업자에게 Ranking 정보만 제공함으로써 실제 Physical Topology, Routing Topology등의 망 정보를 감출 수 있게 되었습니다.