rfc1693.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,331 行 · 第 1/5 页
TXT
1,331 行
Network Working Group T. Connolly
Request for Comments: 1693 P. Amer
Category: Experimental P. Conrad
University of Delaware
November 1994
An Extension to TCP : Partial Order Service
Status of This Memo
This memo defines an Experimental Protocol for the Internet
community. This memo does not specify an Internet standard of any
kind. Discussion and suggestions for improvement are requested.
Distribution of this memo is unlimited
IESG Note:
Note that the work contained in this memo does not describe an
Internet standard. The Transport AD and Transport Directorate do not
recommend the implementation of the TCP modifications described.
However, outside the context of TCP, we find that the memo offers a
useful analysis of how misordered and incomplete data may be handled.
See, for example, the discussion of Application Layer Framing by D.
Clark and D. Tennenhouse in, "Architectural Considerations for a New
Generation of Protocols", SIGCOM 90 Proceedings, ACM, September 1990.
Abstract
This RFC introduces a new transport mechanism for TCP based upon
partial ordering. The aim is to present the concepts of partial
ordering and promote discussions on its usefulness in network
communications. Distribution of this memo is unlimited.
Introduction
A service which allows partial order delivery and partial reliability
is one which requires some, but not all objects to be received in the
order transmitted while also allowing objects to be transmitted
unreliably (i.e., some may be lost).
The realization of such a service requires, (1) communication and/or
negotiation of what constitutes a valid ordering and/or loss-level,
and (2) an algorithm which enables the receiver to ascertain the
deliverability of objects as they arrive. These issues are addressed
here - both conceptually and formally - summarizing the results of
research and initial implementation efforts.
Connolly, Amer & Conrad [Page 1]
RFC 1693 An Extension to TCP: Partial Order Service November 1994
The authors envision the use of a partial order service within a
connection-oriented, transport protocol such as TCP providing a
further level of granularity to the transport user in terms of the
type and quality of offered service. This RFC focuses specifically
on extending TCP to provide partial order connections.
The idea of a partial order service is not limited to TCP. It may be
considered a useful option for any transport protocol and we
encourage researchers and practitioners to investigate further the
most effective uses for partial ordering whether in a next-generation
TCP, or another general purpose protocol such as XTP, or perhaps
within a "special purpose" protocol tailored to a specific
application and network profile.
Finally, while the crux of this RFC relates to and introduces a new
way of considering object ordering, a number of other classic
transport mechanisms are also seen in a new light - among these are
reliability, window management and data acknowledgments.
Keywords: partial order, quality of service, reliability, multimedia,
client/server database, Windows, transport protocol
Table of Contents
1. Introduction and motivation .................................. 3
2. Partial Order Delivery ....................................... 4
2.1 Example 1: Remote Database .................................. 4
2.2 Example 2: Multimedia ....................................... 8
2.3 Example 3: Windows Screen Refresh ........................... 9
2.4 Potential Savings ........................................... 10
3. Reliability vs. Order ........................................ 12
3.1 Reliability Classes ......................................... 13
4. Partial Order Connection ..................................... 15
4.1 Connection Establishment .................................... 16
4.2 Data Transmission ........................................... 19
4.2.1 Sender .................................................... 22
4.2.2 Receiver .................................................. 25
5. Quantifying and Comparing Partial Order Services ............. 30
6. Future Direction ............................................. 31
7. Summary ...................................................... 32
8. References ................................................... 34
Security Considerations ......................................... 35
Authors' Addresses .............................................. 36
Connolly, Amer & Conrad [Page 2]
RFC 1693 An Extension to TCP: Partial Order Service November 1994
1. Introduction and motivation
Current applications that need to communicate objects (i.e., octets,
packets, frames, protocol data units) usually choose between a fully
ordered service such as that currently provided by TCP and one that
does not guarantee any ordering such as that provided by UDP. A
similar "all-or-nothing" choice is made for object reliability -
reliable connections which guarantee all objects will be delivered
verses unreliable data transport which makes no guarantee. What is
more appropriate for some applications is a partial order and/or
partial reliability service where a subset of objects being
communicated must arrive in the order transmitted, yet some objects
may arrive in a different order, and some (well specified subset) of
the objects may not arrive at all.
One motivating application for a partial order service is the
emerging area of multimedia communications. Multimedia traffic is
often characterized either by periodic, synchronized parallel streams
of information (e.g., combined audio-video), or by structured image
streams (e.g., displays of multiple overlapping and nonoverlapping
windows). These applications have a high degree of tolerance for
less-than-fully-ordered data transport as well as data loss. Thus
they are ideal candidates for using a partial order, partial
reliability service. In general, any application which communicates
parallel and/or independent data structures may potentially be able
to profit from a partial order service.
A second application that could benefit from a partial order service
involves remote or distributed databases. Imagine the case where a
database user transmitting queries to a remote server expects objects
(or records) to be returned in some order, although not necessarily
total order. For example a user writing an SQL data query might
specify this with the "order by" clause. There exist today a great
number of commercial implementations of distributed databases which
utilize - and thus are penalized by - an ordered delivery service.
Currently these applications must use and pay for a fully
ordered/fully reliable service even though they do not need it. The
introduction of partial services allows applications to lower the
demanded quality of service (QOS) of the communication assuming that
such a service is more efficient and less costly. In effect, a
partial order extends the service level from two extremes - ordered
and unordered - to a range of discreet values encompassing both of
the extremes and all possible partial orderings in between. A
similar phenomenon is demonstrated in the area of reliability.
Connolly, Amer & Conrad [Page 3]
RFC 1693 An Extension to TCP: Partial Order Service November 1994
It is worth mentioning that a TCP implementation providing a partial
order service, as described here, would be able to communicate with a
non-partial order implementation simply by recognizing this fact at
connection establishment - hence this extension is backward
compatible with earlier versions of TCP. Furthermore, it is
conceivable for a host to support the sending-half (or receiving-
half) of a partial order connection alone to reduce the size of the
TCP as well as the effort involved in the implementation. Similar
"levels of conformance" have been proposed in other internet
extensions such as [Dee89] involving IP multicasting.
This RFC proceeds as follows. The principles of partial order
delivery, published in [ACCD93a], are presented in Section 2. The
notion of partial reliability, published in [ACCD93b], is introduced
in Section 3 followed by an explanation of "reliability classes".
Then, the practical issues involved with setting up and maintaining a
Partial Order Connection (POC) within a TCP framework are addressed
in Section 4 looking first at connection establishment, and then
discussing the sender's role and the receiver's role. Section 5
provides insights into the expected performance improvements of a
partial order service over an ordered service and Section 6 discusses
some future directions. Concluding remarks are given in Section 7.
2. Partial Order Delivery
Partial order services are needed and can be employed as soon as a
complete ordering is not mandatory. When two objects can be
delivered in either order, there is no need to use an ordered service
that must delay delivery of the second one transmitted until the
first arrives as the following examples demonstrate.
2.1 Example 1: Remote Database
Simpson's Sporting Goods (SSG) has recently installed a state-of-
the-art enterprise-wide network. Their first "network application"
is a client/server SQL database with the following four records,
numbered {1 2 3 4} for convenience:
SALESPERSON LOCATION CHARGES DESCRIPTION
------------- ----------------- --------- -----------------
1 Anderson Atlanta, GA $4,200 Camping Gear
2 Baker Boston, MA $849 Camping Gear
3 Crowell Boston, MA $9,500 Sportswear
4 Dykstra Wash., DC $1,000 Sportswear
SSG employees running the client-side of the application can query
the database server from any location in the enterprise net using
standard SQL commands and the results will be displayed on their
Connolly, Amer & Conrad [Page 4]
RFC 1693 An Extension to TCP: Partial Order Service November 1994
screen. From the employee's perspective, the network is completely
reliable and delivers data (records) in an order that conforms to
their SQL request. In reality though, it is the transport layer
protocol which provides the reliability and order on top of an
unreliable network layer - one which introduces loss, duplication,
and disorder.
Consider the four cases in Figure 1 - in the first query (1.a),
ordered by SALESPERSON, the records have only one acceptable order at
the destination, 1,2,3,4. This is evident due to the fact that there
are four distinct salespersons. If record 2 is received before
record 1 due to a network loss during transmission, the transport
service can not deliver it and must therefore buffer it until record
1 arrives. An ordered service, also referred to as a virtual circuit
or FIFO channel, provides the desired level of service in this case.
At the other extreme, an unordered service is motivated in Figure 1.d
where the employee has implicitly specified that any ordering is
valid simply by omitting the "order by" clause. Here any of 4! = 24
delivery orderings would satisfy the application, or from the
transport layer's point of view, all records are immediately
deliverable as soon as they arrive from the network. No record needs
to buffered should it arrive out of sequential order. As notation, 4
ordered objects are written 1;2;3;4 and 4 unordered objects are
written using a parallel operator: 1||2||3||4.
Figures 1.b and 1.c demonstrate two possible partial orders that
permit 2 and 4 orderings respectively at the destination. Using the
notation just described, the valid orderings for the query in 1.b are
specified as 1;(2||3);4, which is to say that record 1 must be
delivered first followed by record 2 and 3 in either order followed
by record 4. Likewise, the ordering for 1.c is (1||2);(3||4). In
these two cases, an ordered service is too strict and an unordered
service is not strict enough.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?