Unicasting is a method of transmitting a single stream of data
to a single client. Unicast delivery provides each
client with an individual stream from the server. Clients that
receive content through unicast delivery can connect to the server
using any of the supported connection protocols.
Once the client has connected to the server, the content can be
delivered through either the User Datagram Protocol (UDP) or the
Transmission Control Protocol (TCP). The difference between these
two protocols is how clients acknowledge the receipt of data
packets.
If a UDP delivery method is used, such as MMSU or RTSPU, the
server does not have to receive verification that a data
packet was successfully received before
transmitting another data packet. This method works best for
streaming. If the client does not receive a packet, it can request
that the server resend the missing data packet. This is known as a
UDP resend request. When the server receives a request for a
UDP resend, it checks its buffer to see if it still has the data
available. If it does, the data is resent to the client. If it does
not, the server cannot fulfill the request. The client can
withstand some packet loss and can continue to render content even
after an unsuccessful UDP resend request.
If a TCP delivery method is used, such as HTTP, MMST or RTSPT,
the server must wait for the client to acknowledge a successful
receipt of a data packet before it can send another. If the data
packet is lost, the server must resend it before continuing with
the data transmission. This method works best for connections
between platform components, such as encoders, cache/proxy servers,
and distribution servers, because it
maintains the highest quality stream.
By default, Windows Media Services determines the optimum packet
size for streaming based on the content. If you are streaming
content over a unicast connection by using the RTSP protocol and
are experiencing a high amount of packet loss or fragmentation, you
may want to set a specific unicast packet size for your server by
using the properties sheet of the WMS Unicast Data Writer plug-in.
When determining the correct packet size for your server, consider
the following:
If the packet size exceeds the capacity of the router that is
forwarding it to the client, the packet is fragmented by the
router, and then the fragments are sent to the client. When all of
the packets are received by the client, they are reassembled into
the original packet. This can result in a high amount of packet
loss because the loss of any one of the fragments will result in
the entire packet being lost.
Each packet sent by the server has an additional bandwidth requirement in order to
transfer header information, such as the control protocol, stream
format, and server address. Sending out a large number of small
packets can result in a large increase in bandwidth use.
Each resend requires the same amount of bandwidth and time to
send as the original data packet.
Different audiences can support varying packet sizes. Optimize
your packet size for your target audience.
When using UDP with the RTSP protocol (RTSPU), setting the RTP
packet size to too small a small value may prevent the Windows
Media server from being able to stream.