Internet Engineering Task Force Yunhong Gu
Internet Draft University of Illinois at Chicago
Intended status: Informational April 12, 2010
Expires: October 12, 2010
UDT: UDP-based Data Transfer Protocol
draft-gg-udt-03.txt
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on October 15, 2010.
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
Abstract
This document describes UDT, or the UDP based Data Transfer protocol.
UDT is designed to be an alternative data transfer protocol for the
situations when TCP does not work well. One of the most common cases,
and also the original motivation of UDT, is to overcome TCP's
Yunhong Gu Expires - October 12, 2010 [Page 1]
UDT April 12, 2010
inefficiency in high bandwidth-delay product (BDP) networks. Another
important target use scenario is to allow networking researchers,
students, and application developers to easily implement and deploy
new data transfer algorithms and protocols. Furthermore, UDT can also
be used to better support firewall traversing.
UDT is completely built on top of UDP. However, UDT is connection
oriented, unicast, and duplex. It supports both reliable data
streaming and partial reliable messaging. The congestion control
module is an open framework that can be used to implement and/or
deploy different control algorithms. UDT also has a native/default
control algorithm based on AIMD rate control.
Yunhong Gu Expires - October 12, 2010 [Page 2]
UDT April 12, 2010
Table of Contents
1. Introduction...................................................4
2. Packet Structures..............................................5
3. UDP Multiplexer................................................8
4. Timers.........................................................8
5. Connection Setup and shutdown..................................9
5.1 Client/Server Connection Setup............................10
5.2 Rendezvous Connection Setup...............................10
5.3 Shutdown..................................................11
6. Data Sending and Receiving....................................11
6.1 The Sender's Algorithm....................................11
6.2 The Receiver's Algorithm..................................12
6.3 Flow Control..............................................15
6.4 Loss Information Compression Scheme.......................15
7. Configurable Congestion Control (CCC).........................15
7.1 CCC Interface.............................................15
7.2 UDT's Native Control Algorithm............................16
Security Considerations..........................................18
Normative References.............................................18
Informative References...........................................18
Author's Addresses...............................................19
Yunhong Gu Expires - October 12, 2010 [Page 3]
UDT April 12, 2010
1.
Introduction
The Transmission Control Protocol (TCP) [RFC5681] has been very
successful and greatly contributes to the popularity of today's
Internet. Today TCP still contributes the majority of the traffic on
the Internet.
However, TCP is not perfect and it is not designed for every specific
applications. In the last several years, with the rapid advance of
optical networks and rich Internet applications, TCP has been found
inefficient as the network bandwidth-delay product (BDP) increases.
Its AIMD (additive increase multiplicative decrease) algorithm
reduces the TCP congestion window drastically but fails to recover it
to the available bandwidth quickly. Theoretical flow level analysis
has shown that TCP becomes more vulnerable to packet loss as the BDP
increases higher [LM97].
To overcome the TCP's inefficiency problem over high speed wide area
networks is the original motivation of UDT. Although there are new
TCP variants deployed today (for example, BiC TCP [XHR04] on Linux
and Compound TCP [TS06] on Windows), certain problems still exist.
For example, none of the new TCP variants address RTT unfairness, the
situation that connections with shorter RTT consume more bandwidth.
Moreover, as the Internet continues to evolve, new challenges and
requirements to the transport protocol will always emerge.
Researchers need a platform to rapidly develop and test new
algorithms and protocols. Network researchers and students can use
UDT to easily implement their ideas on transport protocols, in
particular congestion control algorithms, and conduct experiments
over real networks.
Finally, there are other situations when UDT can be found more
helpful than TCP. For example, UDP-based protocol is usually easier
for punching NAT firewalls. For another example, TCP's congestion
control and reliability control is not desirable in certain
applications of VOIP, wireless communication, etc. Application
developers can use (with or without modification) UDT to suit their
requirements.
Due to all those reasons and motivations described above, we believe
that it is necessary to design a well defined and developed UDP-based
data transfer protocol.
As its name suggest, UDT is built solely on the top of UDP [RFC768].
Both data and control packets are transferred using UDP. UDT is
connection-oriented in order to easily maintain congestion control,
reliability, and security. It is a unicast protocol while multicast
is not considered here. Finally, data can be transferred over UDT in
Yunhong Gu Expires - October 12, 2010 [Page 4]
UDT April 12, 2010
duplex.
UDT supports both reliable data streaming and partial reliable
messaging. The data streaming semantics is similar to that of TCP,
while the messaging semantics can be regarded as a subset of SCTP
[RFC4960].
This document d