Difference between revisions of "UDP"

From Second Life Wiki
Jump to navigation Jump to search
(Initial Entry)
 
m (Eliminated sentence I left dangling)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Usergram Data Protocol, an unreliable and unstreamed transmission packet format over TCP/IP networks.  To describe what UDP is, it's easier to explain in terms of what it isn't -- and that's best explained by describing the guarantee that its counterpart, Transmission Control Protocol, provides.  In TCP, each packet of data is given the following guarantee: if it arrives, it will reliably arrive in order (no data will be lost from the stream before it, and no data from the stream which was sent after it will be delivered to the application before it).
'''UDP''' is an initialism for '''Usergram Data Protocol'''


In UDP, no guarantee that it will be delivered at all, in any given order, or in any given timeframe is provided by the network layerThis may sound like a negative, and for many purposes it is -- but it also uses a little less than one half of the packets used by TCPThis lower number of packets makes it the only useful choice in situations which are time-sensitive, including streaming audio and videoThis lower number of packets also makes it suitable for situations where not every packet must arrive perfectly intact in order, including DNS (name to address resolution on the Internet) and Second Life.
UDP is the unreliable cousin of TCP on TCP/IP networks.  UDP does not guarantee delivery, or reliability, and because of this it is ideal for services such as video streamingFor a service such as video streaming, reliability and guarantee of delivery are not the highest concern; instead it is only important that the video is transmitted from the server to ''all'' the clients, without a care for 'expired' packets.  What seperates the two protocols is that TCP requires the client to inform the server that it received all of the packets sent, and also to re-request packets that arrived corrupted or did not arrive at allAs a result of this there is additional overhead for TCP when comparing TCP to UDP, and it is this lack of additional overhead (combined with other factors) that makes UDP superior to TCP in streaming scenarios.


For more information on TCP and UDP, please see their respective definition documents.  (Note that these protocols use the services provided by the IP layer underneath them, be it IPv4 or IPv6.)
==Second Life and UDP==


[ftp://ftp.rfc-editor.org/in-notes/rfc768.txt User Datagram Protocol]
Second Life uses UDP the primary mode of communicating small bits of real-time data between viewers and simulators (e.g. keystrokes and object updates). See [[Protocol]] for more information about how this works.


[ftp://ftp.rfc-editor.org/in-notes/rfc793.txt Transmission Control Protocol]
== Further reading ==
[http://www.faqs.org/rfcs/rfc768.html Official UDP specification (RFC 768)]
*  [http://www.faqs.org/rfcs/rfc793.html Official TCP specification (RFC 793)]
*  [http://en.wikipedia.org/wiki/User_Datagram_Protocol Wikipedia article on UDP]

Latest revision as of 11:02, 23 June 2007

UDP is an initialism for Usergram Data Protocol

UDP is the unreliable cousin of TCP on TCP/IP networks. UDP does not guarantee delivery, or reliability, and because of this it is ideal for services such as video streaming. For a service such as video streaming, reliability and guarantee of delivery are not the highest concern; instead it is only important that the video is transmitted from the server to all the clients, without a care for 'expired' packets. What seperates the two protocols is that TCP requires the client to inform the server that it received all of the packets sent, and also to re-request packets that arrived corrupted or did not arrive at all. As a result of this there is additional overhead for TCP when comparing TCP to UDP, and it is this lack of additional overhead (combined with other factors) that makes UDP superior to TCP in streaming scenarios.

Second Life and UDP

Second Life uses UDP the primary mode of communicating small bits of real-time data between viewers and simulators (e.g. keystrokes and object updates). See Protocol for more information about how this works.

Further reading