What is the primary function of the RTP protocol? What is the assumed underlying transport protocol (TCP or UDP)? What does it enable the receiver to accomplish beyond the simple UDP protocol? How does RTP/UDP combination differ from TCP?
The primary function of the RTP protocol is to specify the packetization format for data that has real-time delivery requirements. It assumes that the resulting packets will be transported using UDP protocol. Although UDP itself does not monitor whether a packet is delivered correctly, the receiver can tell whether some packets are lost by checking whether there is a gap in the sequence numbers of received packets. RTP/UDP combination itself only enables detection of lost packets, but it does not necessarily invoke retransmission of lost packets. Also it does not have specifications for flow control or connection management. This is typically done according to an application layer protocol that uses RTP/UDP for transport.
What is the primary function of the RTCP protocol? How does it enable the monitoring of the network condition (loss, congestion, etc) together with RTP?
RTCP protocol is a companion transport control protocol for RTP packets. By periodically sending receiver reports from the receiver (regarding loss and delay), it enables the sender to monitor the network condition. The sender can choose how to react to the changes in network conditions. It can choose to resend lost packets. It can also choose to reduce the sending rate to relieve network congestion. If the sender can vary the source encoding parameters, then it can also reduce the encoding rate, to reduce the traffic load, and/or to invoke more error resilience in the encoded data.
What can the sender and receiver do based-on the header information in RTP packets and the sender and receiver reports sent by RTCP?
If the sender can vary the source encoding parameters, then it can reduce the encoding rate, to reduce the traffic load, and/or to invoke more error resilience in the encoded data. It can retransmit lost packets. The receiver, upon detection of lost packets, can invoke appropriate error-concealment algorithms in the decoder. The receiver can also make use of the time stamps in RTP packet headers and sender description reports to synchronize audio and video streams belonging to the same audio-video session.
What is network jitter? How can a streaming player smooth the jitter?
Network jitter refers to the variation in the transport delay in the received packets. One way to smooth the jitter is by having a large buffer at the streaming player and putting arriving packets into the buffer. Because of the network jitter, the inter-arrival times between successive packets will vary. But the packets will be taken out of the buffer, decoded and displayed after a preset playout time in fixed time interval.
What is the range of the acceptable playout delay in video streaming? What are the trade-offs offered by changing this playout delay?
Up to 10 seconds delay is usually acceptable. By having a larger playout delay, the system can more effectively smooth the jitter and fewer packets will be dropped because of overlong delay. But this will also mean more memory space needed to be allocated for the buffer, and the user will have to wait longer after issuing a streaming request.
What is the primary function of the RTSP protocol? Which layer does it belong in the Internet protocol stack? What transport layer protocol(s) it needs to operate properly?
The RTSP protocol governs the interaction between the streaming server and the streaming client (player), including session set-up, normal play, fast forward, rewind, and stop. It belongs to the application layer. In principle, it can operate over either RTP/UDP, UDP alone or TCP, but in practice, most systems use RTP/UDP as the transport protocol.
What is the major difference in the QoS requirements between video streaming and Internet video telephony? What are the major differences in the interaction between two end-hosts involved?
The major difference is in the tolerable delay. Although video streaming can accept up to 10 second playout delay, video telephony services need to limit the delay to under 400 ms, preferably under 150 ms, for effective conversation between two end-hosts. In terms of interaction, the streaming application has the typical server-client mode of actions, whereas with telephony, the two end-hosts are symmetric in terms of interactions and traffic flows, without one being the server, another being the client.
What is the primary function of the SIP protocol? Which layer does it belong in the Internet stack? What transport layer protocol(s) it needs to operate properly?
SIP is an application layer protocol developed for Internet audio-visual phone services (e.g. Voice over IP). The protocol covers call set-up and termination, user location (i.e. determining the IP address of the callee through SIP registrar and SIP proxy), and call management. It can work with any transport protocols, although RTP/UDP is the preferred transport layer protocol.
What does the H.323 standard govern? What is difference between SIP and H.323?
H.323 is a suite of standards specifying the various layers involved in an Internet audio-visual conferencing or phone-call. It covers signaling, registration, admission control, transport (RTP/RTCP), audio/video codecs (H.26x). On the other hand, SIP is a single component application layer protocol, covering signaling, registration, and admission control. It works with RTP, but does not mandate it. It also works with various types of audio/video codecs.