📄 rfc1845.txt
字号:
use by a new connection. The Internet Host Requirements [5] also impose restriction on how quickly reconnection attempts can be made (section 5.3.1.1). Once the necessary period has elapsed the client first checks the DNS as described in [6] and determine the set of acceptable IP addresses the message can be transferred to. If the IP address used to connect to the original server is still on this list it should be tried first, since this server is most likely to be capable of restarting the transaction. If this connection attempt fails the client must then proceed as described in [6] to try all the remaining IP addresses and restart the transaction there. If the attempt to restart fails on one of the other servers the client is required to retransmit the transaction in its entirety at that point. Waiting for a server with an interrupted transaction state to come back online is not acceptable. Note: Multi-homed SMTP servers do exist, which means that it is entirely possible for a transaction to restart on a different server host. Once the connection is made the client issues the same MAIL command with exactly the same transaction identifier. If the transaction was interrupted during or at the end of the transfer of actual messageCrocker, Freed & Cargille Experimental [Page 4]RFC 1845 SMTP Checkpoint/Restart September 1995 data, the server first reestablishes its context to a point close as possible to the point of interruption and then responds with the status message: 355 octet-offset is the transaction offset The actual status text can vary. However the octet-offset field is required to be the first thing on the first line of the reply, it must be separated from any following text by linear whitespace, and it is structured as follows: octet-offset ::= 1*DIGIT The octet-offset represents an offset, counting from zero, to the particular octet in the actual message data the server expects to see next. (This is also a count of how many octets the server has received and stored successfully.) This offset does NOT account for envelope data, i.e., MAIL FROM and RCPT TO commands. A value of 0 would indicate that the client needs to start sending the message from the beginning, a value of 1 would indicate that the client should skip one octet, and so on. The SMTP canonical format for messages is used when this offset is computed. Any octets added by any SMTP data-stuffing algorithm do not count as part of this offset. In the case of data transferred with the DATA command the offset must also correspond to the beginning of a line. Once this context is reestablished the client issues another data transfer command (e.g., DATA) and sends the remaining message data. Once this data is terminated the transaction completes in the normal fashion and the server deletes the transaction context from non- volatile storage. Note that the semantics of the octet-offset immediately suggest a particularly simple implementation strategy, where the client retransmits the message data as it normally would but suppresses output of the first octet-offset octets of material. The semantics used here are intentionally designed to make such implementation possible, but care must be taken to insure that such an implementation strategy does not impose a significant performance penalty on the client.Crocker, Freed & Cargille Experimental [Page 5]RFC 1845 SMTP Checkpoint/Restart September 19955. Usage Example The following dialogue illustrates the use of the checkpointing service extension:S: <wait for connection on TCP port 25>C: <open connection to server>S: 220 dbc.mtview.ca.us SMTP service readyC: EHLO ymir.claremont.eduS: 250-dbc.mtview.ca.us says helloS: 250 CHECKPOINTC: MAIL FROM:<ned@ymir.claremont.edu> TRANSID=<12345@claremont.edu>S: 250 <ned@ymir.claremont.edu>... Sender and TRANSID okC: RCPT TO:<mrose@dbc.mtview.ca.us>S: 250 <mrose@dbc.mtview.ca.us>... Recipient okC: DATAS: 354 Send checkpointed message, ending in CRLF.CRLF<some amount of message data transmitted><session is interrupted and TCP connection is broken>Some time later a new connection is established:S: <wait for connection on TCP port 25>C: <open connection to server>S: 220 dbc.mtview.ca.us SMTP service readyC: EHLO ymir.claremont.eduS: 250-dbc.mtview.ca.us says helloS: 250 CHECKPOINTC: MAIL FROM:<ned@ymir.claremont.edu> TRANSID=<12345@claremont.edu>S: 355 6135 is the transaction offsetC: DATAS: 354 Send previously checkpointed message starting at octet 6135C: <message data minus first 6135 octets sent>C: .S: 250 OKC: QUITS: 221 Goodbye6. Security Considerations This RFC does not discuss security issues and is not believed to raise any security issues not already endemic in electronic mail and present in fully conforming implementations of [1].Crocker, Freed & Cargille Experimental [Page 6]RFC 1845 SMTP Checkpoint/Restart September 19957. References [1] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC 821, USC/Information Sciences Institute, August 1982. [2] Crocker, D., "Standard for the Format of ARPA Internet Text Messages", STD 11, RFC 822, UDEL, August 1982. [3] Borenstein, N., and N. Freed, "Multipurpose Internet Mail Extensions", RFC 1521, Bellcore, Innosoft, September 1993. [4] Rose, M., Stefferud, E., Crocker, D., Klensin, J., and N. Freed, "SMTP Service Extensions", RFC 1651, Dover Beach Consulting, Inc., Network Management Associates, Inc., Silicon Graphics, Inc., MCI, Innosoft, July 1994. [5] Braden, R., Editor, "Requirements for Internet Hosts - Application and Support", STD 3, RFC 1123, USC/Information Sciences Institute, October 1989. [6] Partridge, C., "Mail Routing and the Domain System", STD 14, RFC 974, BBN, January 1986.8. Authors' Addresses Dave Crocker Brandenburg Consulting 675 Spruce Dr. Sunnyvale, CA 94086 USA USA Phone: +1 408 246 8253 Fax: +1 408 249 6205 EMail: dcrocker@mordor.stanford.edu Ned Freed Innosoft International, Inc. 1050 East Garvey Avenue South West Covina, CA 91790 USA Phone: +1 818 919 3600 Fax: +1 818 919 3614 EMail: ned@innosoft.comCrocker, Freed & Cargille Experimental [Page 7]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -