On Fri, 12 Jan 2001 13:25:09 -0500, "Hung Pham"
On Fri, 12 Jan 2001 20:25:39 +0000 (GMT), Lloyd Wood
Hung> I'm interested in the "TCP for Transaction or T/TCP" protocol,
Hung> basically this protocol collapses the TCP three way handshake to a
Lloyd> five-way, if you remember the two at the _end_ of the connection...
Hung> single message to reduce latency overhead.
Lloyd> while increasing processing load and opening the door further to
Lloyd> effective denial-of-service attacks, since buffers must be allocated
Lloyd> for data immediately by the receiver before the sender is verified.
The problem domain which T/TCP attempts to address is clearly valid.
However, I agree that T/TCP's approach of being bundled with
TCP is not effective and pragmatic.
There are various other protocols (including ESRO -- RFC-2188)
which address the same problem space as T/TCP. A survey of
these protocols and my assessment of where they fail is
included in the article:
ESRO: A Foundation for the Development of Efficient Protocols
The segment related to mention of other protocols in the
reliable RPC (transactions / reliable connectionless
transports) problem space is reproduced below in plain text
Those interested in further discussing this topic are invited
to join the relevant mainling lists at
2 Other Related Protocols
The overall model of ESRO is similar to and consistent with
many existing protocols. The distinguishing characteristic
of ESRO is its efficiency. Also, the scope of ESRO is very
narrow and well defined. The options and selections that
it provides for are few and clear.
A brief comparison of ESRO to other similar protocols is
provided in the sections below.
Remote Procedure Call (RPC) is specified in RFC-1831 
and RFC-1833 .
The RPC specifications define a remote procedure model that
is essentially the same as ESRO. However, the notation of
RPC uses a syntax which is quite different from that of
ESRO. RPC can rely on a connection-oriented or a
connectionless transport mechanism. When using the
connectionless mechanism, the retransmission and
reliability issues are considered to be beyond the scope of
the RPC specification. RPC is usually used in combination
with External Data Representation, XDR (RFC-1832) .
When using RPC over UDP, no meaningful reliable transport
mechanism is defined. For this reason use of RPC over UDP
has been limited to LANs.
Remote Operations Services Element (ROSE) is specified in
 and . ROSE is a complete and heavyweight
traditional OSI application which assumes availability of
all of the underlying OSI layers. The ESRO protocols can
accomplish short operations with much less overhead than
2.3 WAP's WTP
The Wireless Appliction Protocol (WAP) includes a layer
which is similar to ESRO, called ``Wireless Transaction
Protocol'' (WTP) . The WTP specification was published
after ESRO was published, and is similar in functionality
to ESRO. In many ways WTP can be considered to be patterned
after ESRO; however, WTP is in fact a step backwards.
The clear and simple Remote Operations model of ESRO is
renamed as ``Wireless Transactions'' in an inappropriate
context. The notation specification conventions are not
used, and the state machines are not as robust.
More importantly, the WTP specifications are not stable,
have not been published as Internet RFCs, and have not been
declared to be patent free.
As early as 1995, those involved in the development of WTP
were made aware of LSROS and ESRO. The only reason we know
of for their re-specification of WTP, rather than re-use of
ESRO, is the WAP Forum's desire for control. More details
on the problems of the WAP Forum's approach are provided in
the article The WAP Trap .
Transaction/TCP is specified in  and . T/TCP is a
backwards-compatible extension of TCP which provides
efficient transaction-oriented service in addition to
virtual-circuit service. Use of T/TCP often involves
replacing existing TCP implementations. This
non-evolutionary aspect of T/TCP is one of the reasons why
T/TCP has not been widely adopted.
Various lessons can be learned from why T/TCP has not been
Reliable Data Protocol (RDP) is specified in  and .
RDP can be considered to be a specialized TCP, specified
for particular circumstances in which some of TCP's
facilities are needed. One of the reasons why RDP has not
been heavily used is because the set of specialized
circumstances that it addresses do not justify the cost of
implementing it. RDP allows for many options and
selections, which makes its use difficult.
Various lessons can be learned from why RTP has not been
Versatile Message Transaction Protocol (VMTP) is specified
in . VMTP can be considered to be a specialized
transport protocol, targeted for what it calls the
transaction model of communications.
One of the reasons why VMTP has not been heavily used is
because it tries to address too broad of a software
engineering-centric model. VMTP allows for many options
and selections, which makes its use difficult.
Various lessons can be learned from why VMTP has not been widely adopted.
Transmission Control Protocol (TCP) is specified in 
and . TCP is mature, well understood and stable.
Congenstion control and flow control mechanisms for TCP
have been developed over the years, and incorporated into
The simplest and shortest TCP interaction involves 5 PDU exchanges. For
applications wishing to accomplish short and occasional communications in
less than 5 PDU exchanges, ESRO is more efficient that TCP.
UDP (User Datagram Protocol) is specified in .
UDP is a very simple and thin layer on top of IP, which
does not provide reliability or sequence ordering.
Applications requiring a reliable connectionless transport
need to build on top of UDP. ESRO provide an efficient and
reliable transport service on top of UDP.
2.9 UDP Plus Ad Hoc Re-Transmissions
Various protocols have added their own specific
re-transmission policies on top of UDP to make it more
reliable. Examples of such efforts include the Domain Name
System (DNS)  , Network Time Protocol (NTP) ,
and NNTP for Usenet News Reading.
These efforts have all resulted in incomplete and limited
solutions. The problems with such approaches were
understood as early as 1985 .
 WAP Wireless Transaction Protocol Specification, February 2000. The
WAP-201-WTP article available at
 M. Banan. Neda's Efficient Mail Submission and Delivery (EMSD)
Protocol Specification Version 1.3. Request for Comments
(Informational) 2524, Neda Communications, Inc., February 1999. Online
document is available at ftp://ftp.isi.edu/in-notes/rfc2524.txt.
 M. Banan, J. Cheng, and M. Taylor. AT&T/Neda's Efficient Short Remote
Operations (ESRO) Protocol Specification Version 1.2. Request for
Comments (Informational) 2188, Neda Communications, Inc., September
1997. Online document is available at
 B. Braden. Towards a transport service for transaction processing
applications. RFC 955, Internet Engineering Task Force, September
 B. Braden. Extending TCP for transactions -- concepts. Request for
Comments (Informational) 1379, Internet Engineering Task Force,
 B. Braden. T/TCP -- TCP extensions for transactions functional
specification. Request for Comments (Experimental) 1644, Internet
Engineering Task Force, July 1994.
 Remote Operations: Model, Notation and Service Definition. The
International Telegraph and Telephone Consultative Committee, March
1988. Recommendation X.219.
 Remote Operations: Protocol Specification. The International
Telegraph and Telephone Consultative Committee, March 1988.
 D. Cheriton. VMTP: versatile message transaction protocol: Protocol
specification. Request for Comments (Experimental) 1045, Internet
Engineering Task Force, February 1988.
 B. Hinden and C. Partridge. Version 2 of the reliable data protocol
(RDP). Request for Comments (Experimental) 1151, Internet Engineering
Task Force, April 1990.
 B. Hinden and J. Sax. Reliable data protocol. Request for Comments
(Experimental) 908, Internet Engineering Task Force, July 1984.
(Updated by RFC1151).
 D. Mills. Network time protocol (v3). Request for Comments (Draft
Standard) 1305, Internet Engineering Task Force, April 1992.
 P. Mockapetris. Domain names - concepts and facilities. Request for
Comments (Standard) STD 13, 1034, Internet Engineering Task Force,
November 1987. (Obsoletes RFC882); (Obsoletes RFC883); (Obsoletes
RFC973); (Obsoleted by RFC2065); (Updated by RFC1101); (Updated by
RFC1876); (Updated by RFC1982); (Updated by RFC2181); (Updated by
 P. Mockapetris. Domain names - implementation and specification.
Request for Comments (Standard) STD 13, 1035, Internet Engineering Task
Force, November 1987. (Obsoletes RFC973); (Obsoleted by RFC2136);
(Obsoleted by RFC2137); (Updated by RFC1348); (Updated by RFC1995);
(Updated by RFC1996); (Updated by RFC2065); (Updated by RFC2181);
(Updated by RFC2308).
 Mohsen Banan. Efficiency Study of EMSD vs. SMTP/POP3/IMAP. Neda
Published Document 103-101-01.01, EMSD Organization, 1996. Online
document is available at
 Mohsen Banan. ESROS Application Programming Interface. Neda Published
Document 103-101-06.03, ESRO Organization, 1996. Online document is
available at http://www.esro.org/pubs/biblio/103-101-06_03/index.html.
 Mohsen Banan. Lightweight & Efficient Application Protocol (LEAP)
Manifesto. FPF Published Document 108-101-01, Free Protocols
Foundation, Bellevue, WA, January 2000. Online document is available
 Mohsen Banan. The WAP Trap. FPF Published Document 108-102-01, Free
Protocols Foundation, Bellevue, WA, January 2000. Online document is
 G. Montenegro, S. Dawkins, M. Kojo, V. Magret, and N. Vaidya. Long
Thin Networks. Request for Comments (Informational) 2757, The Internet
Society, January 2000. Online document is available at
 Information Processing Systems --- Open Systems Interconnection: Basic
Reference Model. International Organization for Standardization and
International Electrotechnical Committee, 1984. Interational Standard
 J. Postel. User datagram protocol. Request for Comments (Standard) STD
6, 768, Internet Engineering Task Force, August 1980.
 J. Postel. Transmission control protocol. Request for Comments
(Standard) STD 7, 793, Internet Engineering Task Force, September 1981.
 R. Srinivasan. Binding protocols for ONC RPC version 2. Request for
Comments (Proposed Standard) 1833, Internet Engineering Task Force,
 R. Srinivasan. RPC: remote procedure call protocol specification
version 2. Request for Comments (Proposed Standard) 1831, Internet
Engineering Task Force, August 1995.
 R. Srinivasan. XDR: external data representation standard. Request for
Comments (Proposed Standard) 1832, Internet Engineering Task Force,