Cisco Videoscape™ Distribution Suite Service Broker (VDS SB) is responsible for performing client request routing in a multiple Content Delivery Network (CDN) environment. The request routing is based on service-provider-specified business logic with the goal of providing a high-quality user experience with a minimum cost to serve the content. The business logic may specify a number of criteria including, but not limited to, subscriber location, CDN status and resource availability, delivery service, and client type.
Traditional TV service providers and content providers that are building a CDN or multiple CDNs to deliver multiscreen TV have a need to partner with other full-service CDNs (Figure 1) to:
• Address a larger geographic reach
• Handle temporary flash crowds
• Build redundancy and higher reliability
• Handle off-net delivery scenarios
• Provide a higher quality of video delivery at all times
There is a need for CDN selector functionality in their networks that is controlled by them to orchestrate their subscriber traffic to one or the other CDN based on business and other criterion.
Figure 1. Service Provider and Content Provider CDNs
As service providers and content providers build CDNs, there is an emerging opportunity to combine their capacities and create a CDN Federation (Figures 2 and 3) to offer full-service video-delivery CDN services to other service providers and content providers. The CDN Federation structure is analogous to how the Internet is built. By peering with multiple backbones, ISPs connect their access networks to the backbones by paying transit costs and in turn offer Internet access services to subscribers that allow them to reach anywhere in the world. A CDN provider in Europe could partner with CDN provider in Australia and a CDN provider in Asia, and offer CDN services to a European content provider who happens to have subscribers in Asia and Australia. The Cisco® VDS SB is a major component of the solution that enables a CDN Federation.
Figure 2. CDN Federation
Figure 3. CDN Federation Benefits
Cisco VDS SB is a complete software-based solution. It can deploy as a virtual machine on Cisco hardware or third-party servers. Multiple instances of the Service Broker can be installed to accomplish both redundancy and high-availability goals and also to address scalability goals. It includes the following components (see Figure 4):
• Cisco Videoscape Delivery Suite Service Manager (VDSM) is the configuration manager for Service Broker instances running on one or more.
• Service Broker software is packaged as a virtual machine, and each Service Broker will support multiple content providers or broker fully qualified domain names (BFQDNs) to which requests will be destined.
Service Broker has several functional modules that are described below:
Figure 4. Cisco VDS SB Architecture
CDN Selection Engine
The Cisco VDS SB client invokes the CDN Selection Engine. This client may be a Content Management System (CMS), a session manager, customer premises equipment (CPE) device, or a Domain Name System (DNS) server. The CDN Selection Engine can perform CDN selection using an HTTP GET interface or a DNS interface.
The CDN Selection Engine runs the following steps:
• Receives and parses a CDN Select request (using one of the interfaces previously specified)
• Optionally validates the signed HTTP request
• Extracts the CDN selection criteria from the request
• Invokes the Cisco VDS SB Location Service if the CDN selection rules use CPE location as criterion
• Implements the CDN selection rules
• Optionally rewrites and re-signs the URL based on the selected CDN
• Returns the CDN selection results
CDN Selection Criteria
The Cisco VDS SB can use a variety of criteria to perform CDN selection. The available criteria are based on the interface used to invoke the VDS SB. The criteria are listed in Table 1.
Table 1. CDN Selection Criteria
Location of CPE (city, country, etc.)
Any parameter in URL
Any parameter in HTTP header
CDN or streaming server status
Time of day
* The CDN Selection Engine also has a status and resource usage interface to the CDNs. CDN or CDN analytics software can forward the status and resource information to the CDN Selection Engine, and this information is used to determine whether or not to send the requests to a particular CDN.
The Cisco VDS SB Location Service converts a CPE IP address into location data. The location data includes the following information:
• On/Off service provider network
• Longitude and latitude
• Civic (country, city, etc.)
• Access services network (ASN) information
• Connection type
• Line speed
The VDS SB Engine calls the Location Service if the CDN selection rules require the location of the CPE device. Third-party suppliers of location data provide the data used by the location service. The data may also include service-provider-specified subnets. These subnets may be mapped to geographic locations. The operator loads the third-party geolocation data and service provider subnet data into the system.
CDN Selection Interfaces
The Cisco VDS SB exposes multiple interfaces to invoke the CDN selection capability. Those interfaces include:
• HTTP GET and Redirect
• Authoritative DNS
• Web service API
The Cisco VDS SB provides an HTTP GET interface to perform CDN selection. The CPE or a proxy for the CPE invokes this interface and is redirected to the requested content on the selected CDN. This interface uses the standard HTTP GET protocol along with a Redirect response.
When the CPE sends the HTTP GET request, the URI contains the delivery service and path to the manifest file or content fragment. The HTTP headers may contain additional information such as CPE type. If a proxy is forwarding the request for a CPE, the request must include the CPE IP address in the X-Forwarded-For HTTP header.
The VDS SB can use any information in the HTTP GET request as input into the CDN selection rules engine. The VDS SB chooses the best CDN based on the rules and builds the URL to return to the CPE. The VDS SB may rewrite the URL based on the selected CDN, since some CDNs have different URL structures. The VDS SB puts the URL in the Location HTTP header and returns the Redirect response to the CPE.
VDS SB will support receiving a HTTP GET request for CDN Selection. The HTTP request is typically sent by a CPE or HTTP proxy. VDS SB will respond with a 302 redirect for successful selections.
For VDS SB to be able to receive HTTP requests, it must be used as authoritative DNS server for all the domains of interest.
The Cisco VDS SB operates as an authoritative DNS (A-DNS) server. The VDS SB is given authority over a set of subdomains. The VDS SB is invoked when a DNS server receives a CPE request on the subdomain over which the VDS SB has authority.
As an A-DNS server, the VDS SB receives the domain name of the CPE request along with the IP address of the DNS server that invoked the VDS SB.
The VDS SB selects the CDN based on the information extracted from the DNS request and returns the IP address of the request router of the selected CDN. That router can then use HTTP GET Redirect or the DNS to direct the CPE to the appropriate CDN node.
VDS SB supports receiving DNS Type A records for CDN selection. For this, VDS SB is configured as an authoritative DNS server for all the BFQDNs of interest. VDS SB provides a DNS response with either the CNAME or the DNS resolved IP Address.
Web Services API
Cisco VDS SB also supports receiving request information through the representational state transfer (REST) web services API, for cases such as a CMS or portal needing to prepare a URL to provide to the CPE. The CMS or portal makes a web service call to the VDS SB at the BFQDN, and the Service Broker picks the best CDN based on the business logic configured, and provides its Router FQDN (RFQDN) to the portal. The portal in turn provides the URL to CPE and thus the CPE directly uses the RFQDN.
Cisco VDS SB functionality is provided for a list of allowed BFQDNs configured. The Service Broker will be the authoritative server for each of the BFQDNs configured, except in DNS proxy redirect mode. Per BFQDN, one of the supported redirect modes is selected:
• HTTP Redirect:
– Receives HTTP GET requests, performs CDN selection, and responds with HTTP/HTTPS 302 redirects to the selected CDN
– Receives web service API requests, performs CDN selection, and provides necessary information for HTTP or HTTPS 302 redirects to the selected CDN
• DNS CNAME Redirect: Receives DNS request, performs CDN selection, and responds with the RFQDN's CNAME; use TTL 0 in the DNS response to avoid caching of the CDN selection by other DNS servers
• DNS IP Redirect: Receives DNS request, performs CDN selection, resolves the IP address of the selected CDN, and responds with the IP address; use TTL 0 in the DNS response to avoid caching of the CDN selection by other DNS servers
• DNS Proxy: Receives DNS request, makes it a proxy it to the authoritative server, and responds with the received response from DNS authoritative server
Multivendor CDN Support
Cisco VDS SB supports CDNs that are built by different vendors, and each CDN vendor may have specific rules on how the requests are formed and sent. VDS SB allows for CDN-specific adaptation rules to be configurable and supports URL rewrite, URL re-sign and URL tokenization.
URL Rewrite (HTTP or Web Service Request)
Typically the BFQDN is always replaced with the RFQDN. Additionally, the complete URL can be rewritten using regular expression substitution (REGSUB) action policy. The REGSUB policy can be used to change the protocol from HTTP to HTTPS.
URL Re-Sign and URL Tokenization (HTTP or Web Service Request)
CDN adaptation policy is used for performing RFQDN-specific URL re-signing or tokenization to provide a response.
Scalability and High Availability
Cisco VDS SB is linearly scalable by deploying multiple instances while using a common VDSM. Also, per-Service-Broker-instance performance is in part dependent on the resources provided to the virtual machine.
Each of the Service Broker instances works independently. Thus the instances may be used as Active/Active or stateless. Cisco VDSM, however, supports state synchronization and manual failover.
Global Site Selectors (GSSs) such as DNS load balancers can be used to select Service Brokers and thus achieving geographical resiliency.
Cisco VDS Service Broker Summary
• Provides CDN selection and routing for multiple in-house CDNs & 3rd party CDNs
• Can interact with multiple CDN vendors
• Provides multiple interfaces (HTTP, DNS, and Web Services) for request routing
• Can be invoked by policy servers, session managers, or rules-based CPE
• Makes selection based upon factors such as location, content, delivery service, and load
• Can define multiple rule sets, selectable by Boolean expressions or pattern-matching resource, status, and location received from cache servers
• Delivers improved quality of experience for end users by routing client requests to the optimal CDN
• Offers lower costs from third-party CDNs, with balanced use of available CDN resources
• Provides new sources of revenue by expanding geographical reach
Cisco Unified Computing System™ (Cisco UCS®) C220M3S is the recommended hardware to run Cisco VDSM and VDS SB. Table 2 shows the suggested hardware.
Table 2. Recommended Hardware Configuration
UCS C220 M3 SFF without CPU, memory HDD, PCIe PSU with rail kit