The specifics of the server size, number of network cards, the disks are to be chosen based on the company’s requirements. Typically it is necessary to investigate and estimate the following:
- usage capacity
- storage capacity
- required bandwidth
-
network design and protocols
1.3 Network Design
Figure 2 shows the design of the network.
One or more servers are connected to the network using network cards. The network will use at least a HTTP/TCP protocol. An explanation of protocols follows later in this document. The network layer passes through a firewall and onto the internet reaching the end users.
Having more than one server offers high scalability, given that data disks can be added as the needs of the company grow. It also allows to stream more data relative to having one server, given that the disk subsystem is dedicated to distributing assets.
1.4 Technical Requirements
1.4.1 Network Usage Capacity
Network capacity planning should be done by a network engineer. Video streams can consume large amounts of bandwidth, and are impacted not only by the features and capacity of the server, but by the features and capacity of the network, including routers, bridges, switches, and interfaces.
It is necessary to determine how much streaming media traffic the network needs to support as well as how much traffic to allow on the network. The general guideline is that you should not exceed 70% of the maximum interface bandwidth. For example, if using a 10Mbps Ethernet, the interface should be run at 7Mbps.
1.4.2 Storage Capacity
It is important to estimate the amount of storage required for on-demand media files. It is important to not only plan for immediate storage needs, but for future demands as well.
There are three parameters that contribute to the size of a media file: the actual bit rate encoded, the type of content, and the length of the content.
As the storage needs change, there may be a need to order additional disks, or Data Pumps. The amount of multimedia content that can be stored at any given time is determined by the number of disks, and the bit rate and length of assets.
1.4.3 Bandwidth
In planning for the deployment of a multimedia streaming server, it is necessary to determine how much bandwidth the network might need to support. To determine this, one can estimate how many concurrent users there will be on a regular basis and during peak times. The amount of bandwidth needed to allocate equals the number of users multiplied by the stream size in kilobits per second (Kbps).
1.4.4 Network Design and Protocols
The total aggregate bandwidth requirements for multicasting are much less than those for unicasting, but the overall network configuration for multicasting could be more complex than that for unicasting. The server should use unicasting the reasons for which are detailed later.
To obtain best results from the server, the network connection should be through a dedicated fast Ethernet. A good consideration to make is using multiple network cards: one dedicated to streaming content to clients; and one for remote administration, monitoring, replication, receiving streams. The benefit of this configuration is that remote administration is not at risk if the client segment becomes saturated.
1.4.4.1 Protocols
It is possible for the server to support three transport protocols: User Datagram Protocol (UDP), Transmission Control Protocol (TCP), and Hypertext Transfer Protocol (HTTP).
UDP is not a session-based protocol. Applications that use UDP typically rely on other mechanisms to guarantee packet delivery. This has several implications that make UDP-based communication especially applicable to streaming media. Because UDP provides very few error recovery services, it is an efficient and direct way to send and receive datagrams over an IP network. UDP does not provide guaranteed delivery, but it is useful when TCP would be too complex, too slow, or unnecessary.
TCP is a connection or session-oriented protocol. Each client connection to the server requires a session setup and breakdown. TCP sessions ensure that packet delivery is completed without intervention from the application using the data. TCP is a more reliable transport that has higher overhead and is more complex than other protocols. Processor utilisation and the additional bandwidth required for session setup, maintenance, and breakdown can affect servers.
For the client, TCP adds reliability, which can adversely affect the user experience. If the server is operating under a heavy load, or if there is latency or heavy congestion on the network, TCP causes the client to wait for all packets to be delivered before continuing. If packet delivery is delayed long enough, the player can pause and re-buffer, although it would continue if UDP was used.
HTTP is a TCP-based protocol. HTTP-based control commands along with TCP-based data delivery. This combination has the benefit of working with all firewalls that let Web traffic through (port 80) and provides much more control (fast forward, rewind, etc) than a standard Web server, but also adds some overhead to the raw TCP stream that decreases scalability.
The conclusion to make here is that a server which supports all three protocols is the optimum choice so that the server can find the best way to stream multimedia.
1.4.4.2 Multicast vs. Unicast
IP traffic can be classified based on different parameters. Unicast means that a distinct copy of the data is sent from the source to each client that requests it. For multicast, in a one to many environment, a single copy of the data is sent across the network and only those clients who request the data, receive it.
The definitions indicate the strengths and weaknesses of each method. Unicast sends multiple copies of the same data for each request (in streaming media terms, unicast is a one-to-one connection between the server and each client; every client gets its own stream). Multicasting is more efficient in its bandwidth usage because multiple copies of data are not sent across the network. Data is not sent to clients who do not want it (in streaming media terms, multicast is a one-to-one connection between the server and a group of clients; every group receives just one stream).
Multicasting has its drawbacks: clients have no control of the data stream – they cannot stop, pause, rewind, or advance it. Multicast streams must be scheduled rather than offered on-demand. Clients can only connect to the multicast stream, or disconnect from it. This means that multicast streaming is not appropriate as a solution for the company streaming server.
1.4.5 Firewall Considerations
Firewalls filter the packets of information that pass across bridges, routers, or gateways, and control traffic between the corporate network and the Internet. Firewalls provide control by monitoring all packets and providing access to only those packets whose source and destination IP address have been given authorization. The firewall should be configured to enable streaming traffic to pass through. The firewall should be chosen based on the type of bandwidth.
In cases where firewalls cannot be adjusted to allow open ports HTTP streaming is useful for delivering streams through firewalls.
1.5 Hardware
“Video serving is a very resource-intensive application. It is also an isochronous workload, which means that data must be fed at a prescribed rate, or end users will see glitches in the video. Networks that carry the data from the server to the client must also be engineered to handle this heavy, isochronous workload.”
1.5.1 Server
The server is to be chosen and sized for;
- Processor
- Memory
- Number of RAIDs (more about RAIDs later in the document)
- Number of Network cards
In the world of website hosting there are two main operating system platforms on which to host a web site, namely: UNIX (Linux) and Windows. In this project I would choose to use UNIX for its superior performance, reliability and efficiency which all mean that it is also the more cost effective option.
Source: http://rshweb.biz/unix_nt.html.
Estimated Cost: £3000
1.5.2 Disks
Because disk output performance is a pivotal concern in streaming on-demand content, it is important to optimize the disk read configuration on each server. The server should have three high-RPM, low-access time disks configured as a RAID array. Throughput from hardware-based array controllers and from striping across multiple drive controllers is preferred to software-based RAID. Typically, more than three disks in each array do not increase performance because of bus saturation (some high-performance drives can saturate a drive chain with only two disks attached). Also, you can increase performance with dedicated memory on the hardware-based disk array controller. This enables the array controller to cache commonly accessed data.
“Disk performance varies from 1.2MBps to 5MBps. Newer IBM disks (2.2GB and 4.5GB disks) have better qualities for playing video, including shorter, interruptible self-test periods. The disk accesses (block sizes) with the multimedia file system are either 32KB or 256KB in size, and are random. For bit rates equal to or greater than 1 Mbps, 256KB block sizes should be used, resulting in higher per disk throughput. 256KB block sizes should also be used in cases where sufficient page pool memory is available. Because the performance of different disks varies greatly, trying the multimedia file system on the disk is the best way to know what performance can be expected. The file system measures the performance of disks and stores performance information in a performance group.”
1.5.2.1 RAID (Redundant Array of Inexpensive Disks)
RAID subsystems provide data loss protection in case of disk failures. This is often highly desirable in a video-serving environment. These subsystems may have glitches when failures occur, and throughput during reconstruction or rebuilding may not be sufficient to sustain all streams. The ability to provide data during reconstruction is dependent upon the RAID hardware and software implementation.
The hardware the solution will support will be RAID 5 as it is the most appropriate for video and audio streaming.
Source: http://whitepapers.zdnet.co.uk/0,1000000651,260285954p,00.htm
Estimated Cost: £7000
1.5.3 Network Switches
After performing some research the most suitable product I’ve found would be a Cisco Catalyst modular network switch would provide operational simplicity, media flexibility, and expandability to extend deployment life and reduce total ownership costs. “Cisco switch products offer high availability, integrated security, strong support for converged applications, and significant long-term investment protection.”
The Cisco Catalyst 6500 Series would be a good investment for the following benefits:
- Supports IP telephony, wireless, and video services
- Highest Availability and enhanced manageability
- Comprehensive security with service modules for firewall, intrusion prevention, SSL and IPSec VPN, and anomaly detection
- Content and application-aware Layer 4 through 7 switching and load balancing; Application-Oriented Networking services modules
- Leading performance, Power over Ethernet (PoE) scalability, and port density.
Estimated Cost: £15000
2 Project Plan
2.1 Needs
The following are the required tasks to implement the multimedia streaming server solution. These are milestones. A GANTT chart below will show predicted timescales of these tasks.
- Purchasing and assembling hardware/software outlined above
- Test server installation
- Test client installation
- Content creation
- Internet integration
- Firewall configuration
- Finalising the system
- Pilot testing
- Reviewing (support review, security review and technical review)
Assumed time to carry out the tasks is 12 to 14 weeks inclusive of potential problems and fixing them. Each task shouldn’t take longer than a week except for content creation and pilot testing.
It is necessary to appoint a manager as an overseer of the completion of these tasks and two technical engineers who will carry out the work.
2.2 Costs
Aside from the estimated costs of hardware which come to £25,000 plus a budget for extras such as cables and hubs (here I assume that the company already has a number of desktop processors in its offices) £2,000 which equals £27,000 other costs are for labour payments to install the server system. A high-end estimate for 12 weeks would be £10,000 including the manager’s salary. The total for the initial budget is £47,000.
Other costs take the form of quality assurance (this should be handled by the manager of the technical team), however there is a risk of undercutting the quality standards, which means that it would be a cost to the company in the long run.
Other risks include configuration and setup of software taking longer than expected through programming errors, which are mitigated by allowing extra time for such faults since there is no risk associated with finishing the project ahead of deadline should there be no faults.
2.3 GANTT Chart
The GANTT chart below shows the number of weeks in the top row, symbolised by W and the tasks in the left hand column which are numbered and placed in order. The arrows show where the task begins and where the target finishing time is in weeks.
2.4 Summary
Key points:
- The initial estimated cost of this project is £47,000
- The time it will take to complete is 12 weeks at an estimate
- Implementation requires two technical engineers and one manager
3 References
http://www.redbooks.ibm.com/redbooks/pdfs/sg244992.pdf
http://rshweb.biz/unix_nt.html
http://uk.emc.com/about/news/press/us/2006/02142006-4012.htm
http://whitepapers.zdnet.co.uk/0,1000000651,260285954p,00.htm
http://www.microsoft.com/windows/windowsmedia/compare/webservvstreamserv.aspx
http://www.cisco.com/en/US/netsol/index.html