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 [23] and RFC-1833 [22].
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) [24].
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 [6] and [7]. 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 ROSE.
The Wireless Appliction Protocol (WAP) includes a layer which is similar to ESRO, called ``Wireless Transaction Protocol'' (WTP) [1].
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 [17].
Transaction/TCP is specified in [4] and [5]. 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 widely adopted.
Reliable Data Protocol (RDP) is specified in [10] and [9].
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 RDP has not been widely adopted.
Versatile Message Transaction Protocol (VMTP) is specified in [8].
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 [21] and [5].
TCP is mature, well understood and stable. Congenstion control and flow control mechanisms for TCP have been developed over the years, and incorporated into TCP implementations.
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 [20].
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.
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) [12] [13], Network Time Protocol (NTP) [11], 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 [3].