draft-ietf-apex-party-04.txt   rfc3342.txt 
Network Working Group E. Dixon Network Working Group G. Klyne
Internet-Draft H. Franklin Request for Comments: 3342 Clearswift Corporation
Expires: April 12, 2002 J. Kint Category: Standards Track M. Rose
Invisible Worlds, Inc.
G. Klyne
MIMEsweeper Group
D. New
S. Pead
Invisible Worlds, Inc.
M. Rose
Dover Beach Consulting, Inc. Dover Beach Consulting, Inc.
M. Schwartz M. Schwartz
NetTopBox, Inc. Code On The Road, LLC
October 12, 2001 E. Dixon
H. Franklin
J. Kint
D. New
S. Pead
July 2002
The APEX Option Party Pack, Part Deux! The Application Exchange (APEX) Option Party Pack, Part Deux!
draft-ietf-apex-party-04
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document specifies an Internet standards track protocol for the
all provisions of Section 10 of RFC2026. Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Internet-Drafts are working documents of the Internet Engineering Official Protocol Standards" (STD 1) for the standardization state
Task Force (IETF), its areas, and its working groups. Note that and status of this protocol. Distribution of this memo is unlimited.
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 April 12, 2002.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2001). All Rights Reserved. Copyright (C) The Internet Society (2002). All Rights Reserved.
Abstract Abstract
APEX, at its core, provides a best-effort application-layer datagram
service. Options are used to alter the semantics of the core Application Exchange (APEX), at its core, provides a best-effort
service. This memo defines various options to change the default application-layer datagram service. Options are used to alter the
behavior of APEX's "relaying mesh". semantics of the core service. This memo defines various options to
change the default behavior of APEX's "relaying mesh".
Table of Contents Table of Contents
1. The attachOverride Option . . . . . . . . . . . . . . . . . 3 1. The attachOverride Option . . . . . . . . . . . . . . . . . 2
2. The dataTiming Option . . . . . . . . . . . . . . . . . . . 5 2. The dataTiming Option . . . . . . . . . . . . . . . . . . . 3
2.1 Upper-Bounds on Delivery . . . . . . . . . . . . . . . . . . 6 2.1 Upper-Bounds on Delivery . . . . . . . . . . . . . . . . . . 4
2.1.1 Final Hop Report . . . . . . . . . . . . . . . . . . . . . . 7 2.1.1 Final Hop Report . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 Timing Error Report . . . . . . . . . . . . . . . . . . . . 9 2.1.2 Timing Error Report . . . . . . . . . . . . . . . . . . . . 7
2.2 Reporting on Delayed Delivery . . . . . . . . . . . . . . . 11 2.2 Reporting on Delayed Delivery . . . . . . . . . . . . . . . 8
2.2.1 Transient Timing Report . . . . . . . . . . . . . . . . . . 12 2.2.1 Transient Timing Report . . . . . . . . . . . . . . . . . . 9
3. The hold4Endpoint Option . . . . . . . . . . . . . . . . . . 14 3. The hold4Endpoint Option . . . . . . . . . . . . . . . . . . 10
4. The dataHopping Option . . . . . . . . . . . . . . . . . . . 16 4. The dataHopping Option . . . . . . . . . . . . . . . . . . . 13
5. Initial Registrations . . . . . . . . . . . . . . . . . . . 19 5. Initial Registrations . . . . . . . . . . . . . . . . . . . 15
5.1 Registration: The attachOverride Option . . . . . . . . . . 19 5.1 Registration: The attachOverride Option . . . . . . . . . . 15
5.2 Registration: The dataTiming Option . . . . . . . . . . . . 19 5.2 Registration: The dataTiming Option . . . . . . . . . . . . 16
5.3 Registration: The hold4Endpoint Option . . . . . . . . . . . 19 5.3 Registration: The hold4Endpoint Option . . . . . . . . . . . 16
5.4 Registration: The dataHopping Option . . . . . . . . . . . . 20 5.4 Registration: The dataHopping Option . . . . . . . . . . . . 16
6. The APEX Party Pack DTD . . . . . . . . . . . . . . . . . . 21 6. The APEX Party Pack DTD . . . . . . . . . . . . . . . . . . 17
7. Security Considerations . . . . . . . . . . . . . . . . . . 22 7. Security Considerations . . . . . . . . . . . . . . . . . . 18
References . . . . . . . . . . . . . . . . . . . . . . . . . 23 References . . . . . . . . . . . . . . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 23 A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 25 B. IANA Considerations . . . . . . . . . . . . . . . . . . . . 19
B. IANA Considerations . . . . . . . . . . . . . . . . . . . . 26 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 20
C. Revision History . . . . . . . . . . . . . . . . . . . . . . 27 Full Copyright Statement . . . . . . . . . . . . . . . . . . 22
C.1 Changes from draft-ietf-apex-party-03 . . . . . . . . . . . 27
C.2 Changes from draft-ietf-apex-party-02 . . . . . . . . . . . 27
C.3 Changes from draft-ietf-apex-party-01 . . . . . . . . . . . 27
C.4 Changes from draft-ietf-apex-party-00 . . . . . . . . . . . 27
Full Copyright Statement . . . . . . . . . . . . . . . . . . 28
1. The attachOverride Option 1. The attachOverride Option
Section 5.1 contains the APEX option registration for the Section 5.1 contains the APEX option registration for the
"attachOverride" option. "attachOverride" option.
The default behavior of the APEX relaying mesh, in the absence of The default behavior of the APEX relaying mesh, in the absence of
processing options, is to allow at most one application to attach as processing options, is to allow at most one application to attach as
a particular endpoint, on a "first come, first served" basis. The a particular endpoint, on a "first come, first served" basis. The
"attachOverride" option provides gives preference to the current "attachOverride" option provides gives preference to the current
skipping to change at page 3, line 30 skipping to change at page 3, line 6
"attach" operation. The "code" attribute of the resulting "attach" operation. The "code" attribute of the resulting
"terminate" operation is set to 556. "terminate" operation is set to 556.
Note that any data being expected by the previously-attached Note that any data being expected by the previously-attached
application may instead be delivered to the last application to application may instead be delivered to the last application to
successfully attach. Accordingly, applications should take care to successfully attach. Accordingly, applications should take care to
properly deal with incoming data having unrecognized transaction- properly deal with incoming data having unrecognized transaction-
identifiers (c.f., Section 6.1.1 of [1]). identifiers (c.f., Section 6.1.1 of [1]).
This option provides for a new attachment to automatically terminate This option provides for a new attachment to automatically terminate
any existing attachment for the same endpoint. For example, This any existing attachment for the same endpoint. For example, this
might be helpful when a new attachment is required from a different might be helpful when a new attachment is required from a different
device while a previously-used device is still attached e.g., device while a previously-used device is still attached e.g.,
+-------+ +-------+ +-------+ +-------+
| | -- attach -----> | | | | -- attach -----> | |
| appl. | | relay | | appl. | | relay |
| #1 | <--------- ok -- | | | #1 | <--------- ok -- | |
+-------+ +-------+ +-------+ +-------+
C: <attach endpoint='fred@example.com' transID='1' /> C: <attach endpoint='fred@example.com' transID='1' />
S: <ok /> S: <ok />
... some time later appl #2 starts on a different computer ... ... some time later appl #2 starts on a different computer ...
+-------+ +-------+ +-------+ +-------+
| | <----- attach -- | | | | <----- attach -- | |
+-------+ | | | appl. | +-------+ | | | appl. |
| | <-- terminate -- | relay | -- ok ---------> | #2 | | | <-- terminate -- | relay | -- ok ---------> | #2 |
| appl. | | | +-------+ | appl. | | | +-------+
| #1 | -- ok ---------> | | | #1 | -- ok ---------> | |
+-------+ +-------+ +-------+ +-------+
C: <attach endpoint='fred@example.com' transID='2'> C: <attach endpoint='fred@example.com' transID='2'>
<option internal='attachOverride' transID='3' /> <option internal='attachOverride' transID='3' />
</attach> </attach>
S: <ok /> S: <ok />
C: <terminate transID='1' code='556'>overriden</terminate> C: <terminate transID='1' code='556'>overriden</terminate>
S: <ok /> S: <ok />
2. The dataTiming Option 2. The dataTiming Option
Section 5.2 contains the APEX option registration for the Section 5.2 contains the APEX option registration for the
"dataTiming" option. This option contains a "dataTiming" element "dataTiming" option. This option contains a "dataTiming" element
(c.f., Section 6). (c.f., Section 6).
The default behavior of the APEX relaying mesh is "immediate, best The default behavior of the APEX relaying mesh is "immediate, best
effort" and expects that all relays and endpoints are able to process effort", and expects that all relays and endpoints are able to
and transfer data without delay -- in the absence of processing process and transfer data without delay -- in the absence of
options, if a relay is unavailable then data is silently dropped. processing options, if a relay is unavailable, then data is silently
The "dataTiming" option provides for controlled queuing delays in dropped. The "dataTiming" option provides for controlled queuing
processing, whilst providing reasonable deterministic behavior for delays in processing, whilst providing reasonable deterministic
the originator. behavior for the originator.
There are two types of delay addressed by the "dataTiming" option: There are two types of delays addressed by the "dataTiming" option:
o delays in transit through the relaying mesh, possibly due to o delays in transit through the relaying mesh, possibly due to
intermittent or slow connections, or congested relays; and, intermittent or slow connections, or congested relays; and,
o delays because the intended endpoint is not available to receive o delays because the intended endpoint is not available to receive
the data, when used in conjunction with the hold4Endpoint option the data, when used in conjunction with the hold4Endpoint option
(Section 3). (Section 3).
Accordingly, the "dataTiming" option allows for: Accordingly, the "dataTiming" option allows for:
skipping to change at page 8, line 17 skipping to change at page 6, line 17
+-------+ +-------+ +-------+ +-------+
| | -- data -------> | | | | -- data -------> | |
| relay | | appl. | | relay | | appl. |
| | <--------- ok -- | #2 | | | <--------- ok -- | #2 |
+-------+ +-------+ +-------+ +-------+
C: <data content='cid:1@example.com'> C: <data content='cid:1@example.com'>
<originator identity='fred@example.com' /> <originator identity='fred@example.com' />
<recipient identity='barney@example.com' /> <recipient identity='barney@example.com' />
<option internal='dataTiming' targetHop='all' <option internal='dataTiming' targetHop='all'
mustUnderstand='true' transID='86' /> mustUnderstand='true' transID='86'>
<dataTiming noLaterThan='10000' returnTrip='20000' /> <dataTiming noLaterThan='10000' returnTrip='20000' />
</option> </option>
</data> </data>
S: <ok /> S: <ok />
+-------+ +-------+ +-------+ +-------+
| | <------- data -- | | | | <------- data -- | |
| appl. | | relay | | appl. | | relay |
| #1 | -- ok ---------> | | | #1 | -- ok ---------> | |
+-------+ +-------+ +-------+ +-------+
C: <data content='#Content'> C: <data content='#Content'>
<originator identity='apex=report@example.com' /> <originator identity='apex=report@example.com' />
<recipient identity='fred@example.com' /> <recipient identity='fred@example.com' />
<option internal='dataTiming' targetHop='all' <option internal='dataTiming' targetHop='all'
mustUnderstand='true' transID='99' /> mustUnderstand='true' transID='99'>
<dataTiming noLaterThan='20000' /> <dataTiming noLaterThan='20000' />
</option> </option>
<data-content Name='Content'> <data-content Name='Content'>
<statusResponse transID='86'> <statusResponse transID='86'>
<destination identity='barney@example.com'> <destination identity='barney@example.com'>
<reply code='250' /> <reply code='250' />
</destination> </destination>
</statusResponse> </statusResponse>
</data-content> </data-content>
</data> </data>
skipping to change at page 9, line 36 skipping to change at page 8, line 17
+-------+ +-------+ +-------+ +-------+
| | -- data -------> | | | | -- data -------> | |
| appl. | | relay | | appl. | | relay |
| | <--------- ok -- | | | | <--------- ok -- | |
+-------+ +-------+ +-------+ +-------+
C: <data content='cid:1@example.com'> C: <data content='cid:1@example.com'>
<originator identity='fred@example.com' /> <originator identity='fred@example.com' />
<recipient identity='barney@example.com' /> <recipient identity='barney@example.com' />
<option internal='dataTiming' targetHop='all' <option internal='dataTiming' targetHop='all'
mustUnderstand='true' transID='86' /> mustUnderstand='true' transID='86'>
<dataTiming noLaterThan='6000' reportErrors='true' /> <dataTiming noLaterThan='6000' reportErrors='true' />
</option> </option>
</data> </data>
S: <ok /> S: <ok />
... some time later ... ... some time later ...
+-------+ +-------+ +-------+ +-------+
| | <------- data -- | | | | <------- data -- | |
| appl. | | relay | | appl. | | relay |
| | -- ok ---------> | | | | -- ok ---------> | |
+-------+ +-------+ +-------+ +-------+
C: <data content='#Content'> C: <data content='#Content'>
<originator identity='apex=report@example.com' /> <originator identity='apex=report@example.com' />
<recipient identity='fred@example.com' /> <recipient identity='fred@example.com' />
<data-content Name='Content'> <data-content Name='Content'>
<statusResponse transID='86'> <statusResponse transID='86'>
<destination identity='barney@example.com'> <destination identity='barney@example.com'>
<reply code='550' /> <reply code='550' />
</destination> </destination>
</statusResponse> </statusResponse>
</data-content> </data-content>
</data> </data>
S: <ok /> S: <ok />
2.2 Reporting on Delayed Delivery 2.2 Reporting on Delayed Delivery
The "reportAfter" attribute of the "dataTiming" option provides for The "reportAfter" attribute of the "dataTiming" option provides for
the originator to be notified if delivery is delayed beyond a the originator to be notified if delivery is delayed beyond a
specified time. Delivery of the data is not affected. Note that if specified time. Delivery of the data is not affected. Note that if
the value of the "noLaterThan" attribute is non-zero, then it the value of the "noLaterThan" attribute is non-zero, then it
provides the operational upper-bounds for the "reportAfter" provides the operational upper-bounds for the "reportAfter"
attribute. attribute.
skipping to change at page 12, line 26 skipping to change at page 10, line 7
o its content consisting of a "statusResponse" element having: o its content consisting of a "statusResponse" element having:
* its "transID" attribute equal to the "transID" attribute of the * its "transID" attribute equal to the "transID" attribute of the
"dataTiming" option "dataTiming" option
* and identifying the original recipient with a transient success * and identifying the original recipient with a transient success
indicator indicator
For example: For example:
+-------+ +-------+ +-------+ +-------+
| | -- data -------> | | | | -- data -------> | |
| appl. | | relay | | appl. | | relay |
| #1 | <--------- ok -- | | | #1 | <--------- ok -- | |
+-------+ +-------+ +-------+ +-------+
C: <data content='cid:1@example.com'> C: <data content='cid:1@example.com'>
<originator identity='fred@example.com' /> <originator identity='fred@example.com' />
<recipient identity='barney@example.com' /> <recipient identity='barney@example.com' />
<option internal='dataTiming' targetHop='all' <option internal='dataTiming' targetHop='all'
mustUnderstand='true' transID='86' /> mustUnderstand='true' transID='86'>
<dataTiming reportAfter='60000' /> <dataTiming reportAfter='60000' />
</option> </option>
</data> </data>
S: <ok /> S: <ok />
... some time later ... ... some time later ...
+-------+ +-------+ +-------+ +-------+
| | <------- data -- | | | | <------- data -- | |
| relay | | relay | | relay | | relay |
| #n-1 | -- ok ---------> | #n | | #n-1 | -- ok ---------> | #n |
+-------+ +-------+ +-------+ +-------+
C: <data content='#Content'> C: <data content='#Content'>
<originator identity='apex=report@example.com' /> <originator identity='apex=report@example.com' />
<recipient identity='fred@example.com' /> <recipient identity='fred@example.com' />
<data-content Name='Content'> <data-content Name='Content'>
<statusResponse transID='86'> <statusResponse transID='86'>
<destination identity='barney@example.com'> <destination identity='barney@example.com'>
<reply code='350' /> <reply code='350' />
</destination> </destination>
</statusResponse> </statusResponse>
</data-content> </data-content>
</data> </data>
S: <ok /> S: <ok />
3. The hold4Endpoint Option 3. The hold4Endpoint Option
Section 5.3 contains the APEX option registration for the Section 5.3 contains the APEX option registration for the
"hold4Endpoint" option. "hold4Endpoint" option.
The default behavior of the APEX relaying mesh, in the absence of The default behavior of the APEX relaying mesh, in the absence of
processing options, is to silently drop data for a recipient if its processing options, is to silently drop data for a recipient if its
endpoint isn't attached. The "hold4Endpoint" option provides for endpoint isn't attached. The "hold4Endpoint" option provides for
data to be queued if the recipient endpoint is not attached. data to be queued if the recipient endpoint is not attached.
skipping to change at page 14, line 31 skipping to change at page 12, line 7
If the recipient's endpoint is not currently attached, the relay If the recipient's endpoint is not currently attached, the relay
will queue the data waiting for an application to attach as that will queue the data waiting for an application to attach as that
endpoint. endpoint.
Note that in the absence of an upper-bounds on delivery, such as Note that in the absence of an upper-bounds on delivery, such as
limits provided by the dataTiming option (Section 2), the data will limits provided by the dataTiming option (Section 2), the data will
be queued indefinitely for the endpoint. be queued indefinitely for the endpoint.
For example: For example:
+-------+ +-------+ +-------+ +-------+
| | -- data -------> | | | | -- data -------> | |
| appl. | | relay | | appl. | | relay |
| #1 | <--------- ok -- | | | #1 | <--------- ok -- | |
+-------+ +-------+ +-------+ +-------+
C: <data content='cid:1@example.com'> C: <data content='cid:1@example.com'>
<originator identity='fred@example.com' /> <originator identity='fred@example.com' />
<recipient identity='barney@example.com' /> <recipient identity='barney@example.com' />
<option internal='hold4Endpoint' /> <option internal='hold4Endpoint' />
<option internal='dataTiming' targetHop='all' <option internal='dataTiming' targetHop='all'
mustUnderstand='true' transID='86' /> mustUnderstand='true' transID='86'>
<dataTiming noLaterThan='60000' /> <dataTiming noLaterThan='60000' />
</option> </option>
</data> </data>
S: <ok /> S: <ok />
... some time later the recipient's endpoint attaches ... ... some time later the recipient's endpoint attaches ...
+-------+ +-------+ +-------+ +-------+
| | <----- attach -- | | | | <----- attach -- | |
| | | | | | | |
| | -- ok ---------> | | | | -- ok ---------> | |
| relay | | appl. | | relay | | appl. |
| | -- data -------> | #2 | | | -- data -------> | #2 |
| | | | | | | |
| | <--------- ok -- | | | | <--------- ok -- | |
+-------+ +-------+ +-------+ +-------+
C: <attach endpoint='barney@example.com' transID='2'> C: <attach endpoint='barney@example.com' transID='2'>
<option internal='attachOverride' transID='3' /> <option internal='attachOverride' transID='3' />
</attach> </attach>
S: <ok /> S: <ok />
C: <data content='cid:1@example.com'> C: <data content='cid:1@example.com'>
<originator identity='fred@example.com' /> <originator identity='fred@example.com' />
<recipient identity='barney@example.com' /> <recipient identity='barney@example.com' />
<option internal='hold4Endpoint' /> <option internal='hold4Endpoint' />
<option internal='dataTiming' targetHop='all' <option internal='dataTiming' targetHop='all'
mustUnderstand='true' transID='86' /> mustUnderstand='true' transID='86'>
<dataTiming noLaterThan='18000' /> <dataTiming noLaterThan='18000' />
</option> </option>
</data> </data>
S: <ok /> S: <ok />
4. The dataHopping Option 4. The dataHopping Option
To detect misconfigurations that cause forwarding loops in the APEX To detect misconfigurations that cause forwarding loops in the APEX
relaying mesh, the APEX pubsub service re-introduces a mechanism relaying mesh, the APEX pubsub service re-introduces a mechanism
similar to the IP TTL [2] mechanism, in the form of an APEX option. similar to the IP TTL [2] mechanism, in the form of an APEX option.
Section 5.4 contains the APEX option registration for the Section 5.4 contains the APEX option registration for the
"dataHopping" option. "dataHopping" option.
If this option is present in the "data" operation (c.f., Section If this option is present in the "data" operation (c.f., Section
skipping to change at page 17, line 17 skipping to change at page 14, line 17
+-------+ +-------+ +-------+ +-------+
| | -- data -------> | | | | -- data -------> | |
| appl. | | relay | | appl. | | relay |
| | <--------- ok -- | #1 | | | <--------- ok -- | #1 |
+-------+ +-------+ +-------+ +-------+
C: <data content='cid:1@example.com'> C: <data content='cid:1@example.com'>
<originator identity='appl=pubsub/topic=fred@example.com' /> <originator identity='appl=pubsub/topic=fred@example.com' />
<recipient identity='barney@example.com' /> <recipient identity='barney@example.com' />
<option internal='dataHopping' targetHop='all' <option internal='dataHopping' targetHop='all'
mustUnderstand='true' transID='86' /> mustUnderstand='true' transID='86'>
<dataHopping noMoreThan='2' reportErrors='true' /> <dataHopping noMoreThan='2' reportErrors='true' />
</option> </option>
</data> </data>
S: <ok /> S: <ok />
+-------+ +-------+ +-------+ +-------+
| | -- data -------> | | | | -- data -------> | |
| relay | | relay | | relay | | relay |
| #1 | <--------- ok -- | #2 | | #1 | <--------- ok -- | #2 |
+-------+ +-------+ +-------+ +-------+
C: <data content='cid:1@example.com'> C: <data content='cid:1@example.com'>
<originator identity='appl=pubsub/topic=fred@example.com' /> <originator identity='appl=pubsub/topic=fred@example.com' />
<recipient identity='barney@example.com' /> <recipient identity='barney@example.com' />
<option internal='dataHopping' targetHop='all' <option internal='dataHopping' targetHop='all'
mustUnderstand='true' transID='86' /> mustUnderstand='true' transID='86'>
<dataHopping noMoreThan='1' reportErrors='true' /> <dataHopping noMoreThan='1' reportErrors='true' />
</option> </option>
</data> </data>
S: <ok /> S: <ok />
relay #2 determines that further relaying is necessary: relay #2 determines that further relaying is necessary:
+-------+ +-------+ +-------+ +-------+
| | <------- data -- | | | | <------- data -- | |
| relay | | relay | | relay | | relay |
skipping to change at page 22, line 19 skipping to change at page 18, line 19
In addition: In addition:
o The dataTiming option (Section 2) may be used to expose private o The dataTiming option (Section 2) may be used to expose private
network topology. Accordingly, an administrator may wish to network topology. Accordingly, an administrator may wish to
choose to disable this option except at the ingress/egress points choose to disable this option except at the ingress/egress points
for its administrative domain. for its administrative domain.
o The hold4Endpoint option (Section 3) may be used to facilitate o The hold4Endpoint option (Section 3) may be used to facilitate
denial-of-service attacks. Accordingly, an administrator may wish denial-of-service attacks. Accordingly, an administrator may wish
to impose administrative limits on this attribute (e.g., always to impose administrative limits on this attribute (e.g., always
require that the "dataTiming" option also be present with a short- require that the "dataTiming" option also be present with a
lived "noLaterThan" attribute). short-lived "noLaterThan" attribute).
References References
[1] Rose, M., Klyne, G. and D. Crocker, "The Application Exchange [1] Rose, M., Klyne, G. and D. Crocker, "The Application Exchange
Core", draft-ietf-apex-core-05 (work in progress), August 2001. Core", RFC 3340, July 2002.
[2] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981.
[3] Newman, D., "Deliver By SMTP Service Extension", RFC 2852, June [2] Postel, J., "Internet Protocol", STD 5, RFC 791, September
2000. 1981.
Authors' Addresses [3] Newman, D., "Deliver By SMTP Service Extension", RFC 2852, June
2000.
Eric Dixon Appendix A. Acknowledgements
Invisible Worlds, Inc.
131 Stony Circle
Suite 500
Santa Rosa, CA 95401
US
Phone: +1 707 578 2350 The authors gratefully acknowledge the contributions of Chris Newman
EMail: edixon@invisible.net and Bob Wyman. Further, the dataTiming option is similar in function
URI: http://invisible.net/ to "Deliver By" SMTP service extension defined by Dan Newman in [3].
Huston Franklin Appendix B. IANA Considerations
Invisible Worlds, Inc.
131 Stony Circle
Suite 500
Santa Rosa, CA 95401
US
Phone: +1 707 578 2350 The IANA completed the registrations specified in Section 5.
EMail: huston@invisible.net
URI: http://invisible.net/
Jay Kint Authors' Addresses
Invisible Worlds, Inc.
131 Stony Circle
Suite 500
Santa Rosa, CA 95401
US
Phone: +1 707 578 2350
EMail: jkint@invisible.net
URI: http://invisible.net/
Graham Klyne Graham Klyne
MIMEsweeper Group Clearswift Corporation
1310 Waterside 1310 Waterside
Arlington Business Park Arlington Business Park
Theale, Reading RG7 4SA Theale, Reading RG7 4SA
UK UK
Phone: +44 118 903 8000 Phone: +44 11 8903 8903
EMail: Graham.Klyne@MIMEsweeper.com EMail: Graham.Klyne@MIMEsweeper.com
Darren New
5390 Caminito Exquisito
San Diego, CA 92130
US
Phone: +1 858 350 9733
EMail: dnew@san.rr.com
Scott Pead
Invisible Worlds, Inc.
131 Stony Circle
Suite 500
Santa Rosa, CA 95401
US
Phone: +1 707 578 2350
EMail: spead@invisible.net
URI: http://invisible.net/
Marshall T. Rose Marshall T. Rose
Dover Beach Consulting, Inc. Dover Beach Consulting, Inc.
POB 255268 POB 255268
Sacramento, CA 95865-5268 Sacramento, CA 95865-5268
US US
Phone: +1 916 483 8878 Phone: +1 916 483 8878
EMail: mrose@dbc.mtview.ca.us EMail: mrose@dbc.mtview.ca.us
Michael F. Schwartz Michael F. Schwartz
NetTopBox, Inc. Code On The Road, LLC
EMail: schwartz@CodeOnTheRoad.com EMail: schwartz@CodeOnTheRoad.com
URI: http://www.CodeOnTheRoad.com URI: http://www.CodeOnTheRoad.com
Appendix A. Acknowledgements Eric Dixon
The authors gratefully acknowledge the contributions of Chris Newman
and Bob Wyman. Further, the dataTiming option is similar in function
to "Deliver By" SMTP service extension defined by Dan Newman in [3].
Appendix B. IANA Considerations
The IANA makes the registrations specified in Section 5.
Appendix C. Revision History
Note to RFC editor: please remove this entire appendix, and the
corresponding entries in the table of contents, prior to publication.
C.1 Changes from draft-ietf-apex-party-03
o Moved the dataHopping option from the APEX pubsub service
specification.
C.2 Changes from draft-ietf-apex-party-02
o Corrected one typo, used better grammar in one spot.
o Added some text on the deterministic behavior of the "returnTrip" EMail: edixon@myrealbox.com
attribute.
o Added some text on relay optimization of non-connections. Huston Franklin
o Removed the reference to "xml.resource.org" in the DTD. EMail: huston@franklin.ro
C.3 Changes from draft-ietf-apex-party-01 Jay Kint
o A page-break was fixed. EMail: d20@icosahedron.org
Darren New
5390 Caminito Exquisito
San Diego, CA 92130
US
C.4 Changes from draft-ietf-apex-party-00 Phone: +1 858 350 9733
EMail: dnew@san.rr.com
o When terminating an association due to processing the Scott Pead
"attachOverride" option, the "code" attribute of the terminate
operation must be supplied.
o A small number of typos were corrected. EMail: spead@fiber.net
Full Copyright Statement Full Copyright Statement
Copyright (C) The Internet Society (2001). All Rights Reserved. Copyright (C) The Internet Society (2002). All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of Internet organizations, except as needed for the purpose of
 End of changes. 59 change blocks. 
282 lines changed or deleted 199 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/