Assignment
Clustered multimedia servers are one way of solving the scalability problem of centralized server installations. Typically, these solutions rely on extremely expensive hardware elements to assure the scalability of the server cluster, such as crossbar-switches that interconnect the individual cluster machines (e.g. IBM VideoCharger on SP2, Kassena Mediabase), or specialized interconnect cards (e.g. N-Cube).While Intel IXP network processor cards are mainly used for routing protocol research and development, they can be used in a manner that reminds of the N-Cube interconnect cards.
In this assignment, each group should design a cluster solution for a simple streaming media server cluster and implement a prototype. The individual machines (the nodes) of the cluster are interconnected in a hypercube configuration by IXP network processor cards. One port of each card is connected to the Internet, while the other ports are either unused or connected to a neighbour in the hypercube.
The operating system of the card to be used is Linux, the operating system to be used on the host computer is Linux.
Any of the nodes should be able to establish control connection using a subset of RTSP over TCP. The important RTSP command would seem to be DESCRIBE, SETUP and PLAY.
Any of the nodes should be able to deliver data using a subset of RTP over UDP. The server may ignore RTCP entirely. It may hard-code RTP headers for the only supported encoding format, which is MPEG-1.
The system should be able to stream MPEG-1 constant bitrate videos from any of the nodes, through the node that accepted the TCP connection for RTSP.
The MPEG-1 files are stored on host machines disks, and each MPEG-1 file is stored on exactly one node. Many ways of getting the data from the disk to the IXP card are conceivable, NFS would seem to be the simplest means.
The group may decide to implement hypercube routing on the card or on the host machine, but the nodes should only communicate via the interconnecting links of the hypercube, not via the IP network.
The group may decide to implement RTSP parsing and processing on the card or on the host machine, but the host machine should eventually be notified about all connections, although not necessarily immediately.
Material
Relevant standards:-
RTP (Real-time transport protocol) is the most used
protocol for packaging audio and video data for transmission in the Internet.
Ironically, it has neither any real-time features, nor is it a transport
protocol according to the ISO or the IETF protocol stack. It came out of an
to protocol construction for multimedia streaming called "application layer
framing", and true to that name, it tends to run at the application layer
according to the IETF protocol stack.
The RFC specifies the protocol RTP and its companion protocol RTCP, which is meant to exchange reports concerning the QoS that has been achieved between a sender and all of its receivers. In this project, we do not consider RTCP.
This C++ file may provide som useful information about the headers of RTP packets.
- RTP audio/video profile provides details about carrying some data types in RTP packets. It is mainly included here for the sake of completeness.
- RTP payload format for MPEG1/MPEG2 video describes how MPEG video is packaged and sent via RTP. The constant bitrate transmission of MPEG1 system streams is extremely simple. It is probably the simplest of all RTP profiles.
-
RTSP (Real-time streaming protocol) is a protocol
that is used by RTSP clients to give RTSP servers commands such as SETUP, PLAY
and PAUSE. RTSP addresses files on the server using URLs, and has very HTTP-like
headers that carry information such as the data protocols and the ports that are
to be used. RTSP is specified over TCP and UDP, but it is typically used with
TCP.
This flex-compatible scanner and bison-compatible parser may be helpful to parse RTSP messages if you know flex and bison. Otherwise they may be overly complicated, and just reading the RFC may lead to a faster solution.
-
SDP (Session description protocol) is contained
in an RTSP DESCRIBE response message that is sent from an RTSP server to
an RTSP client to give the client more information about the file that it
has requested in its RTSP URL. SDP was created for use with the session
announcement protocol, SAP. Some special considerations for using it with
RTSP are mentioned in the RTSP RFC.
This flex-compatible scanner and bison-compatible parser may be helpful to parse SDP messages if you know flex and bison. But SDP is a very simple protocol, and it is very likely that just reading the RFC is faster.
- An example of an MPEG1 CBR file and its SDP description.