Internet Broadcast Systems

 

 

Afterburner Patent document

 

 

 

 

 

 

 

written by

Mayur Jobanputra

 

 

started: October 8, 1998

last edited: November 6, 2006

 

 

 

 

 

 

 

 

 

 

 

Copyright 1997. IDBS. All contents herein are protected copyright works of IDBS,

IDBS and its respective owners.   Afterbuner is a registered trademark of IDBS,

a division of IBS.  All rights reserved.

 


Table of Contents

 

 

Introduction............................................................................................................................................................ 3

History....................................................................................................................................................................... 3

How web servers are like FTP servers................................................................................................... 5

How FTP works...................................................................................................................................................... 5

How WWW servers work........................................................................................................................................ 5

The Competition...................................................................................................................................................... 6

The Internet Video Streaming industry............................................................................................... 6

The Cache server market.............................................................................................................................. 9

How cache-based servers works.......................................................................................................................... 9

Current competitors............................................................................................................................................ 10

How the Afterburner server works.................................................................................................... 12

Introduction....................................................................................................................................................... 12

Afterburner advantages........................................................................................................................... 13

Afterburner pseudocode............................................................................................................................. 13

Afterburner conceptual model............................................................................................................. 17

Benchmark results......................................................................................................................................... 17

Appendix 1 - Brief description of competitors products....................................................... 18

Microsoft Proxy Server 2.0................................................................................................................................. 18

Netscape Proxy Server........................................................................................................................................ 19

Novell Border Manager...................................................................................................................................... 21

Novell FastCache................................................................................................................................................ 22

Inktomi TrafficServer........................................................................................................................................... 24

Network Appliance Netcache............................................................................................................................ 25

 

 


Introduction

 

Everyone knows about the Internet.  Few people, however, understand how it works and the fine details of how computers connected long distances via a common set of protocols and on a shared telecommunication resource works.  The Internet has changed rapidly over the past decade and will experience the same level of change for the next decade and beyond.  The Afterburner is a revolutionary Internet server, or information provider as another way of looking at it, that can simultaneously 'serve' more visitors to a given website than other servers (which are based on more traditional techniques).  An explanation of how it does this first requires a further investigation into how the Internet works and its rapid improvement in technology over the past 30 years.

 

History

(below section is designed for novice Internet users)

 

The real concrete proof of anything close to the Internet started with ARPANET, a US Defense project to investigate packet networks.  ARPANET proved the viability of using packets and packets switching technology using two computers between UCLA and Stanford.  The objective was to explore how well multiple, linked computers could communicate transparently over different hardware and communication platforms using packet control.

 

Packets can be compared to pieces of a jigsaw puzzle.  A single, whole picture is formed from putting together many different pieces.  When placed together, the picture can be formed, but each piece, or packet, wouldn't make sense on its own.  The packets need to be arranged in a unique configuration and only then can you see the whole picture.  Now imagine if your friend had a completed jigsaw puzzle but he was passing this entire jigsaw puzzle to you, piece by piece, across a room full of people and each of these people would be required to pass pieces, one by one, over to you.  There are numerous different people that a given piece may travel across and the path might not always be the same.  The most efficient path would usually be taken but could easily change if someone was too busy to pay attention.  Finally, if someone forgets to pass a piece of the jigsaw puzzle on to you, your friend could simply send another copy over.  In order for you to make the puzzle, your friend would also have to number and code each piece and there would have to be a way for you to communicate back to your friend if a given packet was completely lost.   This in essence is how packets work and is integral to the proper functioning of nearly every type of Internet protocol devised today.  The concept of packet theory was first devised by who Leonard Kleinrock at MIT who published the first paper on packet switching theory in July 1961 and the first book on the subject in 1964. 

 

After 1969 when packet experiments were proved with ARPANET, computers were quickly added to the network and work continued on a host-to-host protocol, called the Network Control Protocol.  In 1972, ARPANET first demonstrated their work at ICCC (International Computer Communication Conference) which quickly lead to the first 'hot application' for communication, email.  For the next decade, many more university and research computers became nodes on this growing network and made e-mail available to professors, students and researchers alike.

 


Besides being able to send messages over a more reliable network topology and robust means of communication, the packet network devised by ARPANET allowed "open architecture networking".  That is, different network architectures can be seamlessly connected to form a wider area network, we now know as the Internet.  Throughout this transition, the primary protocol in use was the Network Control Protocol.  NCP lacked in its error control and reliability and was the succeeded by the protocol we know today as TCP/IP (or Transmission Control Protocol/Internet Protocol).

 

Some key ideas were formed for the design of this protocol:

 

1.       each network would have its own internal mechanisms of communication and wouldn't need drastic changes to become part of the Internet

2.       packets that didn't make it to the destination would be re-transmitted by the server

3.       black boxes would connect the individual networks to the wider area network or Internet.  We know these now as gateways or routers

 

What started as time-sharing experiments for wide area networks at Xerox, IBM and the like ended up as the basis for how computers interact on the Internet.  Widespread development of cheaper and faster PC's in the 1980's allowed users to connect more and more machines to the Internet.  Since every host machine on the Internet was sending and receiving packets that were uniquely theirs and didn't belong to another host machine, a domain name system was required to resolve a given host name into an IP number.  This system was necessary because the router tables were growing exponentially as more and more computers became nodes on the Internet.

 

So many new organizations have been formed and re-organized again and again to try and maintain a fair system of participation and standardization in this new economy. In just 20 years, the Internet has grown from several hundred mainframe machines connected via 56 kilobyte per second connections to over 100,000 small and large nodes connected via 45 megabyte per second (and faster) connection on every continent in nearly every country and even in outer space.  With the recent formation of the world wide web, commercial activity has exploded at a furious pace as entrepreneurs enter the arena of this new market economy.  Purpose-built companies headed by highly technical individuals and a new generation of young, computer-savvy individuals are finding niche markets across every facet of Internet communications.

 

This rather lengthy discussion brings us to web servers and how the phenomenon of the Internet has fueled growth for this niche market.  Ultimately, Internet growth can only grow as fast as new technology is developed to host , translate, and transport information faster and more efficiently.  We expect Afterburner to make a significant impact in this competitive market.

 

Most end users connect to the Internet using dumb terminals, or low-powered personal computers.  On their own these end user machines couldn't possible handle the processing power required to connect themselves to the other nodes on the Internet. More often than not, these machines dial a local number or are connected on a local area network to larger 'servers' that serve the information they want and ask for the information they need.

 

Afterburner can make a significant impact on servers that experience high hit volumes like search engine sites, media intensive sites that serve still and motion images and video, and other large sites.  Currently these sites are held on extremely large and powerful machines.  Theoretically, these machines can, at best, respond to 5 million hits (a given file or object request), their real capacity is only 500,000 to 1 million hits per day.

 

How web servers are like FTP servers

 

How FTP works

 

FTP stands for file transfer protocol.  During the early phases of development of the Internet, researchers used this system of FTP servers to transfer documents across to other researchers.  Because the number of nodes on the Internet at the time was not great, these servers were programmed to using a new thread process for each request made to the server.  A user accesses the FTP server and is given permission (read, write, modify) based on their username and password.  Anonymous users typically get access to only read (this includes download) the files from the server

 

How WWW servers work

 

WWW servers operate a lot like FTP servers and can be said to be a natural extension of FTP servers.  Clients still access files but the assumption by default is that the user is anonymous.  The WWW server is open to all and because of the ease by which information can be appealingly displayed, WWW servers have been a major influence for the Internet's rapid growth in the past 5 years.  The core difference between FTP and web servers are that web servers are required to handle a much higher hit load and must be able to support more concurrent users without any lag time between a user requesting a file and the server sending that file out.  Creating a new thread for each user that hits the web server at a given moment isn't efficient.  For this reason, web server programming, and in particular socket and packet programming must be much more robust.  Afterburner clearly shows attention to these features and in particular to a single threaded concept.  Serving out of RAM, the fastest type of memory on your computer, also enhances performance.

 

Below is a conceptual model for how a user would connect to an ISP and get web pages and graphics from a server.

 

 

 

How clients get files from WWW servers:

 

 

 

 

 

 

 

 

 

 

 


1.       Client connects to ISP via a phone line or high-speed local area
network connection and asks for a file (say an image)

2.       ISP (Internet Service Provider like Compuserve or AOL) takes
the request and passes it on to the web server

3.       Web server processes request and sends an image back to the ISP

4.       ISP sends image to client PC

 

Shown above the web server is only processing one request from one ISP.  But typically, a given web server is connected to every single other web server and ISP on the Internet and if popular enough could thousands of hits per second.

 

Why do current web servers fail? 

 

Current web server are largely based on research and development completed decades ago.  This may not be very old but Internet hardware and software solutions have been maturing so rapidly that what worked 10 years ago, simply can't suffice for the demands placed on servers today.  Chief among the problems current web servers face is poor socket programming which leads to limitations in both response times and the maximum number of connections that a web server can provide in a given moment. 

 

 

The Competition

 

 

The Internet Video Streaming industry

 

The video streaming industry has created a very high threshold for success by several players all vying for leadership on a relatively clear and defined value chain.  Furthermore, the underlying infrastructure of the Internet's backbone network (the high speed pipes that transport data between servers, routers and hubs) will likely open the gates for widespread high-bandwidth transmissions over the Internet in the foreseeable future.

 

The streaming video market contains competitors from several key areas: Content owners, Content compressors/Encoders, Video servers, and Client players.  Realnetworks (www.real.com) has maintained a clear position in the industry in the provision of video streaming solutions over the past two years but falls in some key areas of video compression, quaility, and video server solutions.

 

In order to establish dominance in this industry it will be essential to provide TV-Quality, VCR-functional, media-rich video content over the Internet in conjunction with an aggressive and sophisticated sales and marketing effort.

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


There are several players vying for competition within each of the individual market segments for this industry:

 
 

 

 


 


In the context of the Internet and high-tech related industries, the streaming media market is relatively sophisticated and has undergone substantial and rapid consolidation in the past year. RealNetworks has been the clear market leader in the industry since its inception in spite of Microsoft's efforts to aggressively enter this market.

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Within the foreseeable near future, end user connections to the Internet will rapidly improve and Internet backbone connection speeds will have increased substantially. 

 
 



The Cache server market

 

Cache servers use highly robust content delivery techniques and algorithms to reduce the amount of redundant traffic over the Internet.  They use RAM (random access memory) to store repetitive data locally, therefore, reducing the amount of demand on the parent server.  The result is faster response times to requests, a problem mentioned earlier in the Introduction.

 

How cache-based servers works

 

A basic understanding of how computers work is essential to understanding the behaviour of cache-based servers.  In computers, you have two basic types of memory: your hard drive and floppy drive, and your RAM. The hard drive or floppy drive is your long-term memory that stores your data even when your computer is turned off.  RAM, on the other hand holds your most frequently accessed data because it operates faster than your hard drive.  When your computer is turned off, any memory in RAM is emptied onto your hard drive.  The concept of caching is to keep your most frequently accessed data in RAM so that the CPU of your computer can retrieve this data and pass it to other functions and areas of your computer.

 

Our Afterburner server is a cache server that stores the most frequently requested files into the high speed memory areas in order to speed up content delivery to outside requests for the files.  The Afterburner server serves as a bridge between the request for a file and the slower web server that offers the content.  If content is requested that isn't stored at the cache-server, that request is passed further on to the web server.

 

 
 

 

 

 

 

 

 

 

 

 

 



Current competitors

 

Currently, the market is growing but is estimated to be a $1 to $2 billion market by the year 2000. Existing providers (Sun, Microsoft, Cisco) are entering this market as are a number of new firms (Inktomi).  All companies offer either software or appliance solutions.  Software solutions are only a partial solution compared to full service appliance solutions which offer an entire integrated package of both new hardware and new software.  Our Afterburner server is of the latter type.

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


ISP's, Enterprises, and Backbone providers would benefit from the user of cache servers because of the reduced bandwidth requirements and the related benefits; lower costs, faster access, and room for more users.

 
 

 

 

 

 

 

 

 

 

 

 

 


Currently, there are a number of competitors offering cache-based servers either as a software only or as an appliance solution (embedded hardware/software)

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


A brief technical description of each of these competitors is provided in Appendix 1.

 

Many of the above products have entered the market within the last 12 months:

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Increased interest by all the above companies has not come without warrant.  Various studies have indicated that backbone congestion is increasing rapidly and a large time lags between data transfers across the backbone are becoming more common.  Within the last few years, many companies have joined the market to solve this problem in various ways, although focusing mainly on cache servers.

 

 

 


How the Afterburner server works

 

 

Introduction

 

Our Afterburner server runs on top  of the FreeBSD operating system on a Pentium class computer.  FreeBSD is a UNIX based operating system that is freeware and fully supported by volunteer programmers worldwide.  FreeBSD was chosen because of its rock solid performance, reliability, scalability and ease of use and installation.  Programmers familiar with UNIX will find FreeBSD just as easy to use.

 

A quick summary of FreeBSD obtained from the freebsd website is attached below:

 

·         Preemptive multitasking with dynamic priority adjustment to ensure smooth and fair sharing of the computer between applications and users.

·         Multiuser access means that many people can use a FreeBSD system simultaneously for a variety of things. System peripherals such as printers and tape drives are also properly SHARED BETWEEN ALL users on the system.

·         Complete TCP/IP networking including SLIP, PPP, NFS and NIS support. This means that your FreeBSD machine can inter-operate easily with other systems as well act as an enterprise server, providing vital functions such as NFS (remote file access) and e-mail services or putting your organization on the Internet with WWW, ftp, routing and firewall (security) services.

·         Memory protection ensures that applications (or users) cannot interfere with each other. One application crashing will not affect others in any way.

·         FreeBSD is a 32-bit operating system and was designed as such from the ground up.

·         Binary compatibility with many programs built for SCO, BSDI, NetBSD, Linux and 386BSD.

·         Demand paged virtual memory and `merged VM/buffer cache' design efficiently satisfies applications with large appetites for memory while still maintaining interactive response to other users.

·         Shared libraries (the Unix equivalent of MS-Windows DLLs) provide for efficient use of disk space and memory.

·         A full complement of C, C++ and Fortran development tools. Many additional languages for advanced research and development are also available in the ports and packages collection.

 

 

Currently, many web servers spawn a new child for each request made to the server.  This traditional socket programming has been passed on from the design legacy of FTP servers.  Normally, this isn't a problem since the hosting machine can handle this new process adequately.  However, if a web server is designed on the same principle, the machine will a) run out of memory space, and 2) the processor will be overworked to process each child process.

 

The Afterburner model does not spawn children.  It simply scans all available connections for requests and/or readiness to receive the response.

 


Afterburner advantages

 

1.       Speed - Since Afterburner does not require the huge overload of heavy or light weight multitasking and it sends all responses from preloaded files it is lightning fast.  Tested performance exceeds 10 million hits a day which was extrapolated from a 30 minute test.

2.       Response time - Since Afterburner uses preloaded files a typical response is much faster than under NCSA or Apache.

3.       Binary Log Files - With NCSA, Apache, and most other servers, logs are in ASCII and grow in size with great speed.  Afterburner log files are binary (5 bytes per hit).  This technique can hold 20 times more data than other servers.

 

 

Afterburner pseudocode

 

 

Congifurations:

 

 *    DATA_DIR    Where we keep the real images

 *

 *    REF         What pages are allowed to refer to us

 *

 *    MAXCONNS    Max number of open connections (probelly should be

 *                OPEN_MAX-2)

 *   

 *    MAXLINE           Our max read/write buffer (probelly should be 1/4 of

 *                the machines scoket buffer sizes)

 *

 *    MAXNAME           The longest file name allowed

 *

 *    MAXFILELEN  The longest file we can read (should be really big)

 *

 *    MAXWAIT           Max wait for request befor we close in seconds

 *

 *    DEFAULT_IMG The default image to give back if the request doesn't

 *                exist and/or we have a bad referer

 *

 *    LOG         The log file

 *

 *    REFTAB            The referer table

 */

 

#include <sys/types.h>

#include <sys/syslimits.h>

#include <sys/socket.h>

#include <sys/filio.h>

#include <sys/time.h>

#include <sys/stat.h>

#include <netinet/in.h>

#include <unistd.h>

#include <fcntl.h>

#include <stdio.h>

#include <signal.h>

#include <dirent.h>

 

/* user configs */

#define MAXCONNS OPEN_MAX-2   /* Max number of connections */

#define MAXLINE 1024          /* Max read or write size */

#define REF ""    /* Who is allowed to ask for files */

#define MAXNAME 80            /* Max file name length */

#define MAXFILELEN 1024*1024  /* Longest file allowed -- 1 meg */

#define MAXWAIT   60          /* How many seconds to wait for request, max */

#define DEFAULT_IMG ""  /* our default image */

#define DATA_DIR "/data/afterburner/data" /* where the files really live */

#define LOG "/data/afterburner/log"       /* the log file */

#define REFTAB "reftab"       /* the reftab */

 

/* global vars */

/* Last system error we got */

/* Our log file */

/* Did we get a SIGPIPE -- 1 if so, 0 if not */

 

/* the data we toss back */

/* next file */

/* length of this file */

/* name of this file */

      /* the contents of this file */

      /* make it a linked list */

 

/* who is allowed to ask for what */

      /* next entry */

/* file name */

      /* referer */

      /* make it a linked list */

     

/* keep track each connection */

/* the file descriptor of this connection */

      /* the data that is being sent back to them */

      /* where we are in the file */

      /* the request */

      /* status -- 0 not open, 1 waiting for request

        2 sending the results */

      /* when we became avaible for reading */

      /* give us MAXCONNS slots */

 

main()

{

      /* number of files ready for r/w */

      /* the file desc of our listen port */

      /* dummy so listen and few other finds don't

         blow up */

      /* the highest fd for select to look for */

      /* the read and write sets for select */

      /* don't wait for timeout */