The Silk browser software resides both on Kindle Fire and on the massive server fleet that comprises the Amazon Elastic Compute Cloud (Amazon EC2). With each page request, Silk dynamically determines a division of labor between the mobile hardware and Amazon EC2 (i.e. which browser sub-components run where) that takes into consideration factors like network conditions, page complexity and the location of any cached content.
The result is a faster web browsing experience, and it’s available exclusively on Kindle Fire, Amazon’s new Kindle for movies, music, books, magazines, apps, games, and web browsing.
Modern websites have become complex. For example, on a recent day, constructing the CNN.com home page required 161 files served from 25 unique domains. This degree of complexity is common. In fact, a typical web page requires 80 files served from 13 different domains. Latency over wireless connections is high – on the order of 100 milliseconds round trip. Serving a web page requires hundreds of such round trips, only some of which can be done in parallel. In aggregate, this adds seconds to page load times.
Conversely, Amazon EC2 is always connected to the backbone of the internet where round-trip latency is 5 milliseconds or less to most web sites rather than the 100 milliseconds seen over wireless connections. In addition, EC2 servers have massive computational power. On EC2, available CPU, storage, and available memory can be orders of magnitudes larger than on mobile devices. Silk uses the power and speed of the EC2 server fleet to retrieve all of the components of a website and deliver them to Kindle Fire in a single, fast stream.
In addition to having more horsepower than a mobile processor, AWS has peering relationships with major internet service providers, and many top sites are hosted on EC2. This means that many web requests will never leave the extended infrastructure of AWS, reducing transit times to only a few milliseconds. Further, while processing and memory constraints lead most mobile browsers to limit the amount of work they attempt at any one time, using EC2 frees Silk from these constraints. If hundreds of files are required to build a web page across dozens of domains, Silk can request all of this content simultaneously with EC2, without overwhelming the mobile device processor or impacting battery life.
Traditional browsers must wait to receive the HTML file in order to begin downloading the other page assets. Silk is different because it learns these page characteristics automatically by aggregating the results of millions of page loads and maintaining this knowledge on EC2. While another browser might still be setting up a connection with the host server, Silk has already pushed content that it knows is associated with the page to the Kindle Fire before the site has even instructed the browser where to find it.
A typical web request begins with resolving the domain names associated with the server and establishing a TCP connection to issue the http request. Establishing TCP connections for each request consumes time and resources that slow down traditional browsers. Silk keeps a persistent connection open to EC2 so that there is always a connection at the ready to start loading the next page.
Silk also uses EC2 to maintain a persistent connection to the top sites on the web. This approach reduces latency that would otherwise result from constantly establishing TCP connections. Further, Silk’s split architecture uses a pipelined, multiplexing protocol that can send all the content over a single connection.
Finally, Silk leverages the collaborative filtering techniques and machine learning algorithms Amazon has built over the last 15 years to power features such as “customers who bought this also bought…” As Silk serves up millions of page views every day, it learns more about the individual sites it renders and where users go next.
By observing the aggregate traffic patterns on various web sites, it refines its heuristics, allowing for accurate predictions of the next page request. For example, Silk might observe that 85 percent of visitors to a leading news site next click on that site’s top headline. With that knowledge, EC2 and Silk together make intelligent decisions about pre-pushing content to the Kindle Fire. As a result, the next page a Kindle Fire customer is likely to visit will already be available locally in the device cache, enabling instant rendering to the screen.